All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:33,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - papszKeyValues
    - pszUnits
    argTypes:
    - OGRSpatialReferenceH
    - CSLConstList
    - char*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: OSRImportFromCF1
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromCF1(OGRSpatialReferenceH hSRS, CSLConstList papszKeyValues,\n
      \                       const char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - papszKeyValues
    - pszParam
    - dfDefault
    argTypes:
    - CSLConstList
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: FetchDoubleParam
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - CPLAtofM
    linkageType: ''
    returnType: double
    signature: "double FetchDoubleParam(CSLConstList papszKeyValues,\n                               const
      char *pszParam, double dfDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:65,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:74,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:76,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:77,1
    - Dst: reinterpret_cast<char **>
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:81,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:81,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: NCDFTokenizeArray
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    - strncpy
    - EQUAL
    - CSLTokenizeString2
    - CPLCalloc
    - reinterpret_cast<char **>
    linkageType: ''
    returnType: char
    signature: char **NCDFTokenizeArray(const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:103,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:105,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:106,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:112,1
    - Dst: NCDFTokenizeArray
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:116,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:118,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:120,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:126,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:129,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:131,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - papszKeyValues
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 138
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 138
    functionName: FetchStandardParallels
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - strchr
    - NCDFTokenizeArray
    - CPLString
    - CSLTokenizeString2
    - CPLStringList::size
    - CPLStringList::CPLStringList
    - CSLFetchNameValue
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> FetchStandardParallels(CSLConstList papszKeyValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:168,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:171,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:180,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:202,1
    - Dst: FetchDoubleParam
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:221,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:246,1
    - Dst: OSRCalcInvFlattening
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:257,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:259,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:268,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:276,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:281,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:298,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:306,1
    - Dst: FetchStandardParallels
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:317,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:326,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:329,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:329,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:332,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:334,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:334,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:335,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:335,1
    - Dst: FetchDoubleParam
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:341,1
    - Dst: FetchDoubleParam
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:344,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:350,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:359,1
    - Dst: FetchStandardParallels
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:361,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:364,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:366,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:366,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:373,1
    - Dst: OGRSpatialReference::SetCEA
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:387,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:390,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:394,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:408,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:411,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:413,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:414,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:414,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:421,1
    - Dst: OGRSpatialReference::SetAE
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:435,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:438,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:442,1
    - Dst: FetchStandardParallels
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:456,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:459,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:463,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:474,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:478,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:479,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:479,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:486,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:488,1
    - Dst: cos
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:500,1
    - Dst: pow
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:501,1
    - Dst: tan
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:501,1
    - Dst: sin
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:501,1
    - Dst: cos
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:502,1
    - Dst: pow
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:502,1
    - Dst: tan
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:502,1
    - Dst: sin
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:503,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:511,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:514,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:519,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:530,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:537,1
    - Dst: FetchStandardParallels
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:541,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:543,1
    - Dst: OGRSpatialReference::SetMercator2SP
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:559,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:579,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:588,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:602,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:606,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:610,1
    - Dst: FetchStandardParallels
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:612,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:626,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:632,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:639,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:642,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:654,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:663,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:680,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:684,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:688,1
    - Dst: OGRSpatialReference::SetGEOS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:705,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:709,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:711,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:714,1
    - Dst: OGRSpatialReference::SetExtension
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:717,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:717,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:718,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:722,1
    - Dst: OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationNetCDFCFConvention
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:732,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:737,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:742,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:746,1
    - Dst: OGRSpatialReference::SetAngularUnits
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:748,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:748,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:749,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:754,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:756,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:757,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:759,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:761,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:762,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:764,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:765,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:767,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:767,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:768,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:772,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 182
    argCount: 2
    argNames:
    - papszKeyValues
    - pszUnits
    argTypes:
    - CSLConstList
    - char*
    constantsTouched: []
    func_position:
      end: 780
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 780
    functionName: OGRSpatialReference::importFromCF1
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetGeogCS
    - OGRSpatialReference::GetRoot
    - OGRSpatialReference::SetCEA
    - OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationNetCDFCFConvention
    - CPLAtofM
    - CPLDebug
    - OGRSpatialReference::SetLCC1SP
    - OGRSpatialReference::SetAuthority
    - CPLError
    - auto::size
    - CSLFetchNameValue
    - CPLIsEqual
    - FetchStandardParallels
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetStereographic
    - pow
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetMercator2SP
    - OGRSpatialReference::SetAngularUnits
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - OGRSpatialReference::GetAttrValue
    - OGRSpatialReference::SetOrthographic
    - OGRSpatialReference::IsGeographic
    - CPLAtof
    - c_str
    - tan
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetGEOS
    - OGRSpatialReference::exportToProj4
    - OGRSpatialReference::SetExtension
    - auto::empty
    - OGRSpatialReference::SetProjCS
    - sin
    - OGRSpatialReference::SetLinearUnits
    - CPLFree
    - cos
    - OGRSpatialReference::importFromWkt
    - FetchDoubleParam
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetAE
    - OGRSpatialReference::SetMercator
    - OSRCalcInvFlattening
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromCF1(CSLConstList papszKeyValues,\n
      \                                         const char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1209,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1227,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1229,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1230,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1230,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1231,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1234,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1246,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1250,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1251,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1256,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1257,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1257,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1258,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1258,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1259,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1265,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1265,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1266,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1267,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1268,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1268,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1277,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1286,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1286,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1287,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1292,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1298,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1310,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1311,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1312,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1314,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1314,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1320,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1330,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1330,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1335,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1348,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1350,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1352,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1352,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1355,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1355,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1357,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1357,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1358,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1359,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1359,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1360,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1365,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1365,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 2
    argNames:
    - poPROJCS
    - pszProjection
    argTypes:
    - OGR_SRSNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1371
    functionName: NCDFGetProjAttribs
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - std::vector::push_back
    - OGR_SRSNode*::GetChildCount
    - std::map::end
    - std::make_pair
    - CPLDebug
    - auto::c_str
    - EQUAL
    - std::map::find
    - std::string
    - CPLError
    - OGR_SRSNode*::GetChild
    - std::string::c_str
    - cpl::contains
    - CPLIsEqual
    - OGR_SRSNode*::GetValue
    linkageType: ''
    returnType: std::vector<std::pair<std::string, double>>
    signature: std::vector<std::pair<std::string, double>> NCDFGetProjAttribs(const
      OGR_SRSNode *poPROJCS, const char *pszProjection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1437,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1437,1
    - Dst: Value::doubles::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1444,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1445,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1445,1
    - Dst: Value::doubles::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1453,1
    - Dst: Value::doubles::push_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1454,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1455,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1455,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1459,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1473,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1479,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1482,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1482,1
    - Dst: NCDFGetProjAttribs
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1486,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1497,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1502,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1509,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1518,1
    - Dst: addParam2Double
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1527,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1536,1
    - Dst: OGRSpatialReference::IsDerivedGeographic
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1539,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1541,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1549,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1552,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1553,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1553,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1554,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1558,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1562,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1572,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1574,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1575,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1578,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1591,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1593,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1595,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1597,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1600,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1618,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1620,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1621,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1622,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1626,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1637,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1641,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1646,1
    - Dst: OGRSpatialReference::GetPrimeMeridian
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1646,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1647,1
    - Dst: OGRSpatialReference::GetSemiMajor
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1647,1
    - Dst: addParamDouble
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1648,1
    - Dst: OGRSpatialReference::GetInvFlattening
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1648,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1653,1
    - Dst: addParamString
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1656,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1658,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1662,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1662,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1666,1
    - Dst: valueStr::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1669,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1671,1
    - Dst: key::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1671,1
    - Dst: valueStr::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1672,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1679,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1681,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1683,1
    - Dst: key::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1683,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1683,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1686,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1696,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1697,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1697,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1701,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1705,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1705,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1706,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1707,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1712,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 139
    argCount: 4
    argNames:
    - ppszGridMappingName
    - ppapszKeyValues
    - ppszUnits
    - CSLConstList papszOptions
    argTypes:
    - char**
    - char***
    - char**
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1716
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1716
    functionName: OGRSpatialReference::exportToCF1
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - OGR_SRSNode*::GetChildCount
    - NCDFGetProjAttribs
    - std::vector::emplace_back
    - CPLStringList::AddNameValue
    - CPLStringList::StealList
    - CPLError
    - std::string::c_str
    - OGRSpatialReference::GetAttrNode
    - CPLStringList::CPLStringList
    - OGRSpatialReference::IsProjected
    - std::string::empty
    - OGRSpatialReference::IsDerivedGeographic
    - CPLStrdup
    - addParamDouble
    - std::move
    - CPLAtof
    - addParam2Double
    - CPLSPrintf
    - OGRSpatialReference::GetSemiMajor
    - key::c_str
    - OGRSpatialReference::GetInvFlattening
    - CPLFree
    - OGR_SRSNode*::GetValue
    - valueStr::c_str
    - OGRSpatialReference::GetPrimeMeridian
    - EQUAL
    - fabs
    - addParamString
    - OGR_SRSNode*::GetChild
    - valueStr::empty
    - Value::doubles::push_back
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToCF1(char **ppszGridMappingName,\n
      \                                char ***ppapszKeyValues, char **ppszUnits,\n
      \                                CPL_UNUSED CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1731,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_cf1.cpp:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - ppszGridMappingName
    - ppapszKeyValues
    - ppszUnits
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - char***
    - char**
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1735
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1735
    functionName: OSRExportToCF1
    functionSourceFile: /src/gdal/ogr/ogr_srs_cf1.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToCF1(OGRSpatialReferenceH hSRS, char **ppszGridMappingName,\n
      \                     char ***ppapszKeyValues, char **ppszUnits,\n                      CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:48,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:49,1
    - Dst: OGRGeometryCollection::clone
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometryCollection
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: OGRGeometryCollection::OGRGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - VSI_CALLOC_VERBOSE
    - OGRGeometryCollection::clone
    - static_cast<OGRGeometry **>
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::OGRGeometryCollection(const OGRGeometryCollection
      &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometryCollection
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: OGRGeometryCollection::OGRGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::OGRGeometryCollection(OGRGeometryCollection
      &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::empty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: OGRGeometryCollection::~OGRGeometryCollection()
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::empty
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::~OGRGeometryCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::operator=
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:109,1
    - Dst: isCompatibleSubType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:113,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:115,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:122,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:123,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometryCollection
    constantsTouched: []
    func_position:
      end: 134
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 134
    functionName: '&

      OGRGeometryCollection::operator=(const OGRGeometryCollection &other)'
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - getGeometryType
    - VSI_CALLOC_VERBOSE
    - OGRGeometry::operator=
    - isCompatibleSubType
    - static_cast<OGRGeometry **>
    - CPLError
    - clone
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: 'OGRGeometryCollection &

      OGRGeometryCollection::operator=(const OGRGeometryCollection &other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:151,1
    - Dst: OGRGeometry::operator=
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:153,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:153,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:154,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometryCollection
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: '&

      OGRGeometryCollection::operator=(OGRGeometryCollection &&other)'
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - swap
    - std::move
    - empty
    - OGRGeometry::operator=
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: 'OGRGeometryCollection &

      OGRGeometryCollection::operator=(OGRGeometryCollection &&other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: OGRGeometryCollection::empty
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:187,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:190,1
    - Dst: OGRGeometryCollection::WkbSize
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: OGRGeometryCollection::clone
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - auto::WkbSize
    - OGRGeometryCollection::WkbSize
    - OGRGeometryCollection::OGRGeometryCollection
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *OGRGeometryCollection::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: OGRGeometryCollection::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRGeometryCollection::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 237
    functionName: OGRGeometryCollection::getDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGeometryCollection::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::flattenTo2D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: OGRGeometryCollection::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::flattenTo2D
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: OGRGeometryCollection::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRGeometryCollection::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: OGRGeometryCollection::getNumGeometries
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGeometryCollection::getNumGeometries() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: OGRGeometryCollection::getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryCollection::getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: OGRGeometryCollection::getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryCollection::getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:364,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poNewGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: OGRGeometryCollection::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::addGeometryDirectly
    - OGRGeometry*::clone
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::addGeometry(const OGRGeometry *poNewGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::isCompatibleSubType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:405,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:405,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:409,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:412,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:416,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:418,1
    - Dst: HomogenizeDimensionalityWith
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:423,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:426,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - poNewGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 437
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 437
    functionName: OGRGeometryCollection::addGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<int>
    - OGRGeometryCollection::isCompatibleSubType
    - VSI_REALLOC_VERBOSE
    - HomogenizeDimensionalityWith
    - static_cast<OGRGeometry **>
    - CPLError
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::addGeometryDirectly(OGRGeometry *poNewGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometry>::release
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:459,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - geom
    argTypes:
    - std::unique_ptr<OGRGeometry>
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: OGRGeometryCollection::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>::release
    - OGRGeometryCollection::addGeometryDirectly
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::addGeometry(std::unique_ptr<OGRGeometry>
      geom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::removeGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:502,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - iGeom
    - bDelete
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 515
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 515
    functionName: OGRGeometryCollection::removeGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::removeGeometry
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::removeGeometry(int iGeom, int bDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:540,1
    - Dst: OGRGeometryCollection::removeGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iGeom
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: OGRGeometryCollection::stealGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::removeGeometry
    - std::unique_ptr<OGRGeometry>
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: std::unique_ptr<OGRGeometry> OGRGeometryCollection::stealGeometry(int
      iGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:554,1
    - Dst: OGRGeometryCollection::hasEmptyParts
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: OGRGeometryCollection::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::IsEmpty
    - OGRGeometryCollection::hasEmptyParts
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryCollection::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::removeEmptyParts
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:568,1
    - Dst: OGRGeometryCollection::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:569,1
    - Dst: OGRGeometryCollection::removeGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: OGRGeometryCollection::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::IsEmpty
    - OGRGeometryCollection::removeGeometry
    - OGRGeometryCollection::removeEmptyParts
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::WkbSize
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 592
    functionName: OGRGeometryCollection::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryCollection::WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRGeometryCollection::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:608,1
    - Dst: importPreambleOfCollectionFromWkb
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:617,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:624,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:628,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:629,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:643,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:647,1
    - Dst: OGRGeometryCollection::isCompatibleSubType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:651,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:654,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:657,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:663,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:665,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:669,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:675,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:682,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:682,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:684,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:685,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:688,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:688,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:690,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:691,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:705,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:707,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:710,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:711,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:713,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 5
    argNames:
    - pabyData
    - nSize
    - nRecLevel
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - int
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 722
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 722
    functionName: OGRGeometryCollection::importFromWkbInternal
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsMeasured
    - CPLDebug
    - OGRGeometry*::setMeasured
    - IsMeasured
    - CPLError
    - OGRGeometry*::set3D
    - Is3D
    - OGRGeometryCollection::isCompatibleSubType
    - OGRGeometryFactory::createGeometry
    - OGRGeometryFactory::createFromWkb
    - OGRGeometry*::Is3D
    - VSI_CALLOC_VERBOSE
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection::getGeometryType
    - CPLAssert
    - importPreambleOfCollectionFromWkb
    - static_cast<OGRGeometry **>
    - static_cast<size_t>
    - OGRReadWKBGeometryType
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryCollection::importFromWkbInternal(\n    const unsigned
      char *pabyData, size_t nSize, int nRecLevel,\n    OGRwkbVariant eWkbVariant,
      size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::importFromWkbInternal
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: OGRGeometryCollection::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::importFromWkbInternal
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryCollection::importFromWkb(const unsigned char *pabyData,\n
      \                                           size_t nSize,\n                                            OGRwkbVariant
      eWkbVariant,\n                                            size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:763,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:763,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:764,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:764,1
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:773,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:774,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:780,1
    - Dst: getIsoGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:783,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:787,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:795,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:798,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:800,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:803,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:808,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:811,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:815,1
    - Dst: OGRGeometryCollection::exportToWkb
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:826,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:829,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:829,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:831,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:834,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:835,1
    - Dst: OGRGeometryCollection::WkbSize
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:838,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 843
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 843
    functionName: OGRGeometryCollection::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - getCoordinateDimension
    - static_cast<unsigned char>
    - OGRGeometryCollection::getGeometryType
    - OGRGeometryCollection::WkbSize
    - static_cast<OGRwkbGeometryType>
    - getIsoGeometryType
    - OGR_SWAP
    - CPL_SWAP32
    - DB2_V72_UNFIX_BYTE_ORDER
    - OGRGeometryCollection::exportToWkb
    - CPLError
    - wkbFlatten
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryCollection::exportToWkb(unsigned char *pabyData,\n
      \                                  const OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:856,1
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:865,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:879,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:893,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:900,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:902,1
    - Dst: OGRGeometryCollection*::importFromWktInternal
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:904,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:908,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:914,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:914,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:914,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:917,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:931,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - ppszInput
    - nRecLevel
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 943
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 943
    functionName: OGRGeometryCollection::importFromWktInternal
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection*::importFromWktInternal
    - STARTS_WITH_CI
    - OGRGeometry*::IsMeasured
    - OGRGeometryCollection::addGeometryDirectly
    - OGRGeometryCollection::OGRGeometryCollection
    - importPreambleFromWkt
    - OGRGeometryFactory::createFromWkt
    - IsMeasured
    - CPLError
    - Is3D
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryCollection::importFromWktInternal(const char **ppszInput,\n
      \                                                   int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::importFromWktInternal
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 953
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 953
    functionName: OGRGeometryCollection::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::importFromWktInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::exportToWktInternal
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: OGRGeometryCollection::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRGeometryCollection::exportToWkt(const OGRWktOptions
      &opts,\n                                               OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:975,1
    - Dst: OGRGeometryCollection::exportToWkt
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:982,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:987,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:992,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:994,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:998,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1007,1
    - Dst: std::string::erase
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1008,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1009,1
    - Dst: std::string::erase
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1010,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1011,1
    - Dst: std::string::erase
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1012,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1033,1
    - Dst: what
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1033,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1036,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - opts
    - err
    - exclude
    argTypes:
    - OGRWktOptions
    - OGRErr*
    - std::string
    constantsTouched: []
    func_position:
      end: 1038
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1038
    functionName: OGRGeometryCollection::exportToWktInternal
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::exportToWkt
    - std::string::find
    - wktTypeString
    - std::string::compare
    - std::string::erase
    - std::string
    - CPLError
    - std::string::substr
    - what
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRGeometryCollection::exportToWktInternal(\n    const
      OGRWktOptions &opts, OGRErr *err, const std::string &exclude) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getEnvelope
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1055
    functionName: OGRGeometryCollection::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1067,1
    - Dst: OGRGeometryCollection::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1070,1
    - Dst: OGRGeometryCollection::getEnvelope
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1073,1
    - Dst: OGREnvelope3D*::Merge
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 1088
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1088
    functionName: OGRGeometryCollection::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryCollection::IsEmpty
    - OGREnvelope3D
    - OGRGeometryCollection::getEnvelope
    - OGREnvelope3D*::Merge
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::getEnvelope(OGREnvelope3D *psEnvelope)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1100,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1100,1
    - Dst: OGRGeometryCollection::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1103,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1103,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1106,1
    - Dst: OGRGeometryCollection::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1107,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1107,1
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1114,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1119
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1119
    functionName: OGRGeometryCollection::Equals
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::getNumGeometries
    - OGRGeometryCollection::getGeometryRef
    - auto::getGeometryRef
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection::getGeometryType
    - OGRGeometry*::getGeometryType
    - auto::getNumGeometries
    - OGRGeometryCollection::IsEmpty
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometryCollection::Equals(const OGRGeometry *poOther)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::transform
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1131,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1136,1
    - Dst: OGRGeometryCollection::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1149,1
    - Dst: OGRCoordinateTransformation*::GetTargetCS
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 1152
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1152
    functionName: OGRGeometryCollection::transform
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::assignSpatialReference
    - OGRCoordinateTransformation*::GetTargetCS
    - OGRGeometryCollection::transform
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometryCollection::transform(OGRCoordinateTransformation
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1163,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1163,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1163,1
    - Dst: toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1166,1
    - Dst: OGRCurvePolygon*::closeRings
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: OGRGeometryCollection::closeRings
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon*::closeRings
    - OGRGeometryCollection::getGeometryType
    - toCurvePolygon
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::closeRings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::setCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1181,1
    - Dst: OGRGeometry::setCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1186
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1186
    functionName: OGRGeometryCollection::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::setCoordinateDimension
    - OGRGeometryCollection::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryCollection::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::set3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1192,1
    - Dst: OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 1197
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1197
    functionName: OGRGeometryCollection::set3D
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::set3D
    - OGRGeometry::set3D
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryCollection::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::setMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1203,1
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 1208
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1208
    functionName: OGRGeometryCollection::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::setMeasured
    - OGRGeometry::setMeasured
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryCollection::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1232,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1232,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1233,1
    - Dst: toCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1235,1
    - Dst: OGRCurve*::get_Length
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1236,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1238,1
    - Dst: toSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1240,1
    - Dst: OGRSurface*::get_Length
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1241,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1243,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1246,1
    - Dst: OGRGeometryCollection*::get_Length
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1252
    functionName: OGRGeometryCollection::get_Length
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::get_Length
    - OGRGeometryCollection*::get_Length
    - OGRGeometryCollection::getGeometryType
    - toGeometryCollection
    - toSurface
    - OGRSurface*::get_Length
    - toCurve
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    linkageType: ''
    returnType: double
    signature: double OGRGeometryCollection::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1275,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1275,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1276,1
    - Dst: toSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1278,1
    - Dst: OGRSurface*::get_Area
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1279,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1281,1
    - Dst: toCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1283,1
    - Dst: OGRCurve*::get_Area
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1284,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1286,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1294
    functionName: OGRGeometryCollection::get_Area
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGRGeometryCollection::getGeometryType
    - toGeometryCollection
    - toCurve
    - OGRCurve*::get_Area
    - OGRSurface*::get_Area
    - toSurface
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: double
    signature: double OGRGeometryCollection::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1335,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1335,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1336,1
    - Dst: toSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1338,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1345,1
    - Dst: toCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1347,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1365
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1365
    functionName: OGRGeometryCollection::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGRGeometryCollection::getGeometryType
    - toCurve
    - OGR_GT_IsSubClassOf
    - toSurface
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    linkageType: ''
    returnType: double
    signature: "double OGRGeometryCollection::get_GeodesicArea(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1410,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1410,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1411,1
    - Dst: toSurface
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1413,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1420,1
    - Dst: toCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1422,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1441
    functionName: OGRGeometryCollection::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGRGeometryCollection::getGeometryType
    - toCurve
    - OGR_GT_IsSubClassOf
    - toSurface
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    linkageType: ''
    returnType: double
    signature: "double OGRGeometryCollection::get_GeodesicLength(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::IsEmpty
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1455
    functionName: OGRGeometryCollection::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 5
    functionsReached:
    - OGRGeometryCollection::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometryCollection::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1464,1
    - Dst: OGRGeometryCollection::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1469
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1469
    functionName: OGRGeometryCollection::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryCollection::assignSpatialReference
    - OGRGeometry::assignSpatialReference
    linkageType: ''
    returnType: void
    signature: "void OGRGeometryCollection::assignSpatialReference(\n    const OGRSpatialReference
      *poSR)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::segmentize
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1483
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1483
    functionName: OGRGeometryCollection::segmentize
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::segmentize
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryCollection::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::swapXY
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1495
    functionName: OGRGeometryCollection::swapXY
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::swapXY
    linkageType: ''
    returnType: void
    signature: void OGRGeometryCollection::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - OGRwkbGeometryType
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1513
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1513
    functionName: OGRGeometryCollection::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean OGRGeometryCollection::isCompatibleSubType(\n    CPL_UNUSED
      OGRwkbGeometryType eSubType) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1527
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1527
    functionName: OGRGeometryCollection::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometryCollection::hasCurveGeometry(int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1537,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1538,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1538,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1538,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1542,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1542,1
    - Dst: OGRGeometryCollection::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1545,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1547,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 1551
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1551
    functionName: OGRGeometryCollection::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::getLinearGeometry
    - std::unique_ptr<OGRGeometryCollection>
    - OGR_GT_GetLinear
    - OGRGeometryFactory::createGeometry
    - auto::release
    - OGRGeometryCollection::getGeometryType
    - auto::assignSpatialReference
    - auto::addGeometryDirectly
    - getSpatialReference
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRGeometryCollection::getLinearGeometry(double dfMaxAngleStepSizeDegrees,\n
      \                                        const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1560,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1561,1
    - Dst: OGR_GT_GetCurve
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1561,1
    - Dst: OGRGeometryCollection::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1561,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1565,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1565,1
    - Dst: OGRGeometryCollection::getCurveGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1569,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1570,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1572,1
    - Dst: OGRGeometryCollection::clone
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1577,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1579,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1580
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1580
    functionName: OGRGeometryCollection::getCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRGeometryCollection>
    - auto::release
    - OGRGeometryFactory::createGeometry
    - OGRGeometryCollection::getCurveGeometry
    - OGRGeometryCollection::getGeometryType
    - auto::assignSpatialReference
    - auto::addGeometryDirectly
    - OGRGeometryCollection::clone
    - OGR_GT_GetCurve
    - getSpatialReference
    - OGRGeometry*::hasCurveGeometry
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometryCollection::getCurveGeometry(const char *const *papszOptions) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1591,1
    - Dst: OGRGeometryCollection*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1591,1
    - Dst: OGRGeometryCollection*::set3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1592,1
    - Dst: OGRGeometryCollection*::Is3D
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1592,1
    - Dst: OGRGeometryCollection*::setMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1593,1
    - Dst: OGRGeometryCollection*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - poSrc
    - poDst
    argTypes:
    - OGRGeometryCollection*
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 1600
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1600
    functionName: OGRGeometryCollection::TransferMembersAndDestroy
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection*::IsMeasured
    - OGRGeometryCollection*::set3D
    - OGRGeometryCollection*::assignSpatialReference
    - OGRGeometryCollection*::Is3D
    - OGRGeometryCollection*::setMeasured
    - OGRGeometryCollection*::getSpatialReference
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: "OGRGeometryCollection *\nOGRGeometryCollection::TransferMembersAndDestroy(OGRGeometryCollection
      *poSrc,\n                                                 OGRGeometryCollection
      *poDst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1625,1
    - Dst: OGRGeometryCollection*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1625,1
    - Dst: OGRGeometryCollection::TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1627,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometrycollection.cpp:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poSrc
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 1628
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1628
    functionName: OGRGeometryCollection::CastToGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrgeometrycollection.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGRGeometryCollection::TransferMembersAndDestroy
    - OGRGeometryCollection*::getGeometryType
    - OGRGeometryCollection::OGRGeometryCollection
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: 'OGRGeometryCollection *

      OGRGeometryCollection::CastToGeometryCollection(OGRGeometryCollection *poSrc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acos
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: OGR_Safe_acos
    functionSourceFile: /src/gdal/ogr/ogr_geo_utils.cpp
    functionUses: 0
    functionsReached:
    - acos
    linkageType: ''
    returnType: double
    signature: double OGR_Safe_acos(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_Safe_acos
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - LatA_deg
    - LonA_deg
    - LatB_deg
    - LonB_deg
    - dfRadius
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: OGR_GreatCircle_Distance
    functionSourceFile: /src/gdal/ogr/ogr_geo_utils.cpp
    functionUses: 0
    functionsReached:
    - OGR_Safe_acos
    linkageType: ''
    returnType: double
    signature: "double OGR_GreatCircle_Distance(double LatA_deg, double LonA_deg,\n
      \                               double LatB_deg, double LonB_deg,\n                                double
      dfRadius)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:55,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:55,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:59,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:59,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:63,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:63,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:64,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:68,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:68,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:72,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:72,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - LatA_deg
    - LonA_deg
    - LatB_deg
    - LonB_deg
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: OGR_GreatCircle_InitialHeading
    functionSourceFile: /src/gdal/ogr/ogr_geo_utils.cpp
    functionUses: 0
    functionsReached:
    - fmod
    - fabs
    linkageType: ''
    returnType: double
    signature: "double OGR_GreatCircle_InitialHeading(double LatA_deg, double LonA_deg,\n
      \                                     double LatB_deg, double LonB_deg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:138,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:145,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:148,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:148,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:159,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:159,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:162,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_geo_utils.cpp:181,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 7
    argNames:
    - dfLatA_deg
    - dfLonA_deg
    - dfDistance
    - dfHeadingInA
    - dfRadius
    - pdfLatB_deg
    - pdfLonB_deg
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 199
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 199
    functionName: OGR_GreatCircle_ExtendPosition
    functionSourceFile: /src/gdal/ogr/ogr_geo_utils.cpp
    functionUses: 0
    functionsReached:
    - fmod
    - CPLDebug
    - fabs
    linkageType: ''
    returnType: int
    signature: "int OGR_GreatCircle_ExtendPosition(double dfLatA_deg, double dfLonA_deg,\n
      \                                  double dfDistance, double dfHeadingInA,\n
      \                                  double dfRadius, double *pdfLatB_deg,\n                                   double
      *pdfLonB_deg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: OGRMultiPoint::OGRMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiPoint::OGRMultiPoint(const OGRMultiPoint &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::operator=
      Src: /src/gdal/ogr/ogrmultipoint.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiPoint
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: '&OGRMultiPoint::operator=(const OGRMultiPoint &other)'
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::operator=
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint &OGRMultiPoint::operator=(const OGRMultiPoint &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrmultipoint.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: OGRMultiPoint::clone
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint *OGRMultiPoint::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: OGRMultiPoint::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMultiPoint::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: OGRMultiPoint::getDimension
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMultiPoint::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: OGRMultiPoint::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMultiPoint::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrmultipoint.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: OGRMultiPoint::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiPoint::isCompatibleSubType(OGRwkbGeometryType eGeomType)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPoint::getGeometryName
      Src: /src/gdal/ogr/ogrmultipoint.cpp:134,1
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrmultipoint.cpp:135,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrmultipoint.cpp:141,1
    - Dst: OGRMakeWktCoordinateM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:153,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrmultipoint.cpp:154,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrmultipoint.cpp:154,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrmultipoint.cpp:154,1
    - Dst: getM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:155,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrmultipoint.cpp:155,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrmultipoint.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrmultipoint.cpp:172,1
    - Dst: what
      Src: /src/gdal/ogr/ogrmultipoint.cpp:172,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrmultipoint.cpp:175,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 177
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 177
    functionName: OGRMultiPoint::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - CPLError
    - wktTypeString
    - getY
    - getZ
    - OGRMakeWktCoordinateM
    - OGRMultiPoint::getGeometryName
    - IsMeasured
    - std::string
    - getM
    - getX
    - what
    - Is3D
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMultiPoint::exportToWkt(const OGRWktOptions &opts,\n
      \                                      OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrmultipoint.cpp:190,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultipoint.cpp:205,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:208,1
    - Dst: OGRMultiPoint::importFromWkt_Bracketed
      Src: /src/gdal/ogr/ogrmultipoint.cpp:211,1
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:224,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:228,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:229,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:230,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrmultipoint.cpp:250,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:254,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:256,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrmultipoint.cpp:261,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrmultipoint.cpp:263,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrmultipoint.cpp:266,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:269,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:270,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:271,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:279,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 284
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 284
    functionName: OGRMultiPoint::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached:
    - OGRWktReadPointsM
    - OGRMultiPoint::importFromWkt_Bracketed
    - OGRPoint*::setM
    - importPreambleFromWkt
    - EQUAL
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - addGeometryDirectly
    - CPLFree
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMultiPoint::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultipoint.cpp:304,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultipoint.cpp:309,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultipoint.cpp:320,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:321,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:321,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:324,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrmultipoint.cpp:326,1
    - Dst: OGRPoint*::empty
      Src: /src/gdal/ogr/ogrmultipoint.cpp:327,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrmultipoint.cpp:328,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:331,1
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:344,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:349,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:350,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:351,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrmultipoint.cpp:365,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:369,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrmultipoint.cpp:371,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrmultipoint.cpp:376,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrmultipoint.cpp:378,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrmultipoint.cpp:381,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:384,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:385,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:386,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:396,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultipoint.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultipoint.cpp:399,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - ppszInput
    - bHasM
    - bHasZ
    argTypes:
    - char**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 405
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 405
    functionName: OGRMultiPoint::importFromWkt_Bracketed
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 1
    functionsReached:
    - OGRWktReadPointsM
    - OGRPoint*::setM
    - EQUAL
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - OGRPoint*::empty
    - addGeometryDirectly
    - CPLFree
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiPoint::importFromWkt_Bracketed(const char **ppszInput,
      int bHasM,\n                                              int bHasZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: OGRMultiPoint::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrmultipoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiPoint::hasCurveGeometry(int /* bLookForNonLinear
      */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrfeature.cpp:76,1
    - Dst: static_cast<OGRField *>
      Src: /src/gdal/ogr/ogrfeature.cpp:79,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:80,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrfeature.cpp:82,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:83,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 95
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 95
    functionName: OGRFeature::OGRFeature
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - VSI_CALLOC_VERBOSE
    - static_cast<OGRGeometry **>
    - static_cast<OGRField *>
    - GetGeomFieldCount
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: void
    signature: void OGRFeature::OGRFeature(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:120,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:121,1
    - Dst: OGRFeature::CreateFeature
      Src: /src/gdal/ogr/ogrfeature.cpp:122,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: OGR_F_Create
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRFeature::CreateFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureH
    signature: OGRFeatureH OGR_F_Create(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:139,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:141,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:144,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfeature.cpp:148,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfeature.cpp:153,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:157,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:163,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrfeature.cpp:184,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:186,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:187,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:188,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:189,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:190,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 192
    functionName: OGRFeature::~OGRFeature()
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - IsFieldSetAndNotNullUnsafe
    - CSLDestroy
    - OGRFieldDefn*::GetType
    - GetFieldDefnUnsafe
    - VSIFree
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRFeature::~OGRFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: OGR_F_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_Destroy(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrfeature.cpp:240,1
    - Dst: OGRFeatureDefn*::GetFieldCountUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:245,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - poDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: OGRFeature::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeatureDefn*::GetFieldCountUnsafe
    - OGRFeatureDefn*::GetGeomFieldCount
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRFeature::CreateFeature(OGRFeatureDefn *poDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: OGRFeature::DestroyFeature
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeature::DestroyFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:299,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:302,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:303,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfeature.cpp:307,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfeature.cpp:312,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:316,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:322,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:349,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:355,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:361,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 364
    functionName: OGRFeature::Reset
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - IsFieldSetAndNotNullUnsafe
    - CSLDestroy
    - OGRFieldDefn*::GetType
    - GetFieldDefnUnsafe
    - VSIFree
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrfeature.cpp:373,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrfeature.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poNewFDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: OGRFeature::SetFDefnUnsafe
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetFDefnUnsafe(OGRFeatureDefn *poNewFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:423,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:425,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: OGR_F_GetDefnRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureDefnH
    signature: OGRFeatureDefnH OGR_F_GetDefnRef(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetGeometryRef
      Src: /src/gdal/ogr/ogrfeature.cpp:459,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:464,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrfeature.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: OGRFeature::SetGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::GetGeometryRef
    - OGRFeature::SetGeomField
    - std::unique_ptr<OGRGeometry>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetGeometryDirectly(OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:497,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:499,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - hGeom
    argTypes:
    - OGRFeatureH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 501
    functionName: OGR_F_SetGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_F_SetGeometryDirectly(OGRFeatureH hFeat, OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:533,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: OGRFeature::SetGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldCount
    - OGRFeature::SetGeomField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetGeometry(const OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:568,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:570,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - hGeom
    argTypes:
    - OGRFeatureH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 572
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 572
    functionName: OGR_F_SetGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_F_SetGeometry(OGRFeatureH hFeat, OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:602,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeature.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - std::unique_ptr<OGRGeometry>
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: OGRFeature::SetGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - OGRFeature::SetGeomField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetGeometry(std::unique_ptr<OGRGeometry> poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: OGRFeature::StealGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::StealGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: OGRFeature::StealGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::StealGeometry(int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:684,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:686,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: OGR_F_StealGeometry
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_F_StealGeometry(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:714,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:716,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iGeomField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 718
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 718
    functionName: OGR_F_StealGeometryEx
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_F_StealGeometryEx(OGRFeatureH hFeat, int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:742,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: OGRFeature::GetGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldCount
    - OGRFeature::GetGeomFieldRef
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeometryRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:764,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 768
    functionName: OGRFeature::GetGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldCount
    - OGRFeature::GetGeomFieldRef
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeometryRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:789,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:791,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrfeature.cpp:792,1
    - Dst: OGRGetNonLinearGeometriesEnabledFlag
      Src: /src/gdal/ogr/ogrfeature.cpp:794,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrfeature.cpp:795,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrfeature.cpp:795,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrfeature.cpp:798,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrfeature.cpp:798,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrfeature.cpp:799,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrfeature.cpp:799,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrfeature.cpp:801,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrfeature.cpp:802,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 806
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 806
    functionName: OGR_F_GetGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_GT_IsNonLinear
    - OGR_GT_GetLinear
    - OGRGetNonLinearGeometriesEnabledFlag
    - OGRGeometry*::getGeometryType
    - OGRFeature*::StealGeometry
    - ToHandle
    - OGRGeometryFactory::forceTo
    - VALIDATE_POINTER1
    - OGRFeature*::SetGeomFieldDirectly
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_F_GetGeometryRef(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: OGRFeature::GetGeomFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached:
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeomFieldRef(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 851
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 851
    functionName: OGRFeature::GetGeomFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached:
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeomFieldRef(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 875
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 875
    functionName: OGRFeature::GetGeomFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeomFieldRef(const char *pszFName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 894
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: OGRFeature::GetGeomFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRFeature::GetGeomFieldRef(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:916,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:918,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:919,1
    - Dst: OGRGetNonLinearGeometriesEnabledFlag
      Src: /src/gdal/ogr/ogrfeature.cpp:921,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrfeature.cpp:922,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrfeature.cpp:922,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrfeature.cpp:925,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrfeature.cpp:925,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrfeature.cpp:926,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrfeature.cpp:926,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrfeature.cpp:928,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:929,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 933
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 933
    functionName: OGR_F_GetGeomFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_GT_IsNonLinear
    - OGR_GT_GetLinear
    - OGRFeature*::GetGeomFieldRef
    - OGRGetNonLinearGeometriesEnabledFlag
    - OGRFeature*::StealGeometry
    - ToHandle
    - OGRGeometryFactory::forceTo
    - VALIDATE_POINTER1
    - OGRFeature*::SetGeomFieldDirectly
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_F_GetGeomFieldRef(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:962,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:967,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrfeature.cpp:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - iField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 968
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 968
    functionName: OGRFeature::SetGeomFieldDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::GetGeomFieldRef
    - OGRFeature::SetGeomField
    - std::unique_ptr<OGRGeometry>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetGeomFieldDirectly(int iField, OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:999,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1001,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - hGeom
    argTypes:
    - OGRFeatureH
    - int
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1003
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1003
    functionName: OGR_F_SetGeomFieldDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_F_SetGeomFieldDirectly(OGRFeatureH hFeat, int iField,\n
      \                                 OGRGeometryH hGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1033,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrfeature.cpp:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - iField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1049
    functionName: OGRFeature::SetGeomField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 4
    functionsReached:
    - GetGeomFieldCount
    - OGRGeometry*::clone
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetGeomField(int iField, const OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1076,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1078,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - hGeom
    argTypes:
    - OGRFeatureH
    - int
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1080
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1080
    functionName: OGR_F_SetGeomField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_F_SetGeomField(OGRFeatureH hFeat, int iField, OGRGeometryH
      hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1107,1
    - Dst: std::unique_ptr<OGRGeometry>::get
      Src: /src/gdal/ogr/ogrfeature.cpp:1112,1
    - Dst: std::unique_ptr<OGRGeometry>::release
      Src: /src/gdal/ogr/ogrfeature.cpp:1115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - iField
    - poGeomIn
    argTypes:
    - int
    - std::unique_ptr<OGRGeometry>
    constantsTouched: []
    func_position:
      end: 1119
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1119
    functionName: OGRFeature::SetGeomField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 4
    functionsReached:
    - std::unique_ptr<OGRGeometry>::release
    - GetGeomFieldCount
    - std::unique_ptr<OGRGeometry>::get
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeature::SetGeomField(int iField,\n                                std::unique_ptr<OGRGeometry>
      poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::CreateFeature
      Src: /src/gdal/ogr/ogrfeature.cpp:1140,1
    - Dst: OGRFeature::CopySelfTo
      Src: /src/gdal/ogr/ogrfeature.cpp:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1151
    functionName: OGRFeature::Clone
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::CopySelfTo
    - OGRFeature::CreateFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRFeature::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1172,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1174,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1175
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1175
    functionName: OGR_F_Clone
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureH
    signature: OGRFeatureH OGR_F_Clone(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFieldInternal
      Src: /src/gdal/ogr/ogrfeature.cpp:1196,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1203,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrfeature.cpp:1207,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:1218,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:1225,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:1225,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:1229,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:1238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - poNew
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1246
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1246
    functionName: OGRFeature::CopySelfTo
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - GetFID
    - VSI_STRDUP_VERBOSE
    - OGRFeature*::SetFieldInternal
    - clone
    - GetGeomFieldCount
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::CopySelfTo(OGRFeature *poNew) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1282,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1285
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1285
    functionName: OGR_F_GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_GetFieldCount(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1337,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1339,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1341,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - i
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1342
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1342
    functionName: OGR_F_GetFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRFeature*::GetFieldDefnRef
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFieldDefnH
    signature: OGRFieldDefnH OGR_F_GetFieldDefnRef(OGRFeatureH hFeat, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1382,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszName
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 1385
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1385
    functionName: OGR_F_GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_GetFieldIndex(OGRFeatureH hFeat, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1425,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1428
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1428
    functionName: OGR_F_GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_GetGeomFieldCount(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1488,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1490,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - i
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1492
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1492
    functionName: OGR_F_GetGeomFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeomFieldDefnH
    signature: OGRGeomFieldDefnH OGR_F_GetGeomFieldDefnRef(OGRFeatureH hFeat, int
      i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1538,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszName
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 1541
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1541
    functionName: OGR_F_GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_GetGeomFieldIndex(OGRFeatureH hFeat, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:1567,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1571,1
    - Dst: OGRFeature::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:1574,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1577,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrfeature.cpp:1580,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1580,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:1589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1591
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1591
    functionName: OGRFeature::IsFieldSet
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetFID
    - OGR_G_Area
    - ToHandle
    - OGR_RawField_IsUnset
    - GetGeomFieldCount
    - OGRFeature::GetStyleString
    linkageType: ''
    returnType: int
    signature: int OGRFeature::IsFieldSet(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1611,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1613,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:1616,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1621
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1621
    functionName: OGR_F_IsFieldSet
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRFeature*::IsFieldSet
    - VALIDATE_POINTER1
    - CPLError
    - OGRFeature*::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int OGR_F_IsFieldSet(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:1638,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:1640,1
    - Dst: OGRFeature::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1643,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:1645,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1650,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:1654,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1658,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1662,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:1670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1671
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1671
    functionName: OGRFeature::UnsetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::IsFieldSet
    - OGRFeature::IsFieldNull
    - CSLDestroy
    - OGR_RawField_SetUnset
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::UnsetField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:1689,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1692
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1692
    functionName: OGR_F_UnsetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_UnsetField(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:1721,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1723
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1723
    functionName: OGRFeature::IsFieldNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - OGR_RawField_IsNull
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::IsFieldNull(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1745,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1747,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1748,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:1750,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1755
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1755
    functionName: OGR_F_IsFieldNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRFeature*::IsFieldNull
    - CPLError
    - OGRFeature*::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int OGR_F_IsFieldNull(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:1779,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:1779,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1785
      start: 1773
    functionDepth: 2
    functionLinenumber: 1773
    functionLinenumberEnd: 1785
    functionName: OGRFeature::IsFieldSetAndNotNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::IsFieldSet
    - IsFieldSetAndNotNullUnsafe
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::IsFieldSetAndNotNull(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:1808,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1810,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:1812,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:1814,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1819
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1819
    functionName: OGR_F_IsFieldSetAndNotNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - FromHandle
    - VALIDATE_POINTER1
    - CPLError
    - OGRFeature*::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int OGR_F_IsFieldSetAndNotNull(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:1838,1
    - Dst: OGRFeature::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1840,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:1843,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:1845,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1850,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:1854,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1858,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:1862,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrfeature.cpp:1870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1871
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1871
    functionName: OGRFeature::SetFieldNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::IsFieldSet
    - OGRFeature::IsFieldNull
    - CSLDestroy
    - OGR_RawField_SetNull
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetFieldNull(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:1891,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 1894
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1894
    functionName: OGR_F_SetFieldNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldNull(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1912
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1912
    functionName: OGRFeature::operator[](int iField) const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue OGRFeature::operator[](int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1926
      start: 1923
    functionDepth: 0
    functionLinenumber: 1923
    functionLinenumberEnd: 1926
    functionName: OGRFeature::operator[](int iField)
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue OGRFeature::operator[](int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldNotFoundException
      Src: /src/gdal/ogr/ogrfeature.cpp:1941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1943
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1943
    functionName: OGRFeature::operator[](const char *pszFieldName) const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FieldNotFoundException
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue OGRFeature::operator[](const char *pszFieldName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldNotFoundException
      Src: /src/gdal/ogr/ogrfeature.cpp:1957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1959
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1959
    functionName: OGRFeature::operator[](const char *pszFieldName)
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FieldNotFoundException
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue OGRFeature::operator[](const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2011,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 2014
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2014
    functionName: OGR_F_GetRawFieldRef
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRField
    signature: OGRField *OGR_F_GetRawFieldRef(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:2066,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:2070,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:2070,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2076,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:2078,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrfeature.cpp:2079,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2079,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2086,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2091,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2094,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:2108,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:2112,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:2112,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:2113,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:2119,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrfeature.cpp:2126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2130
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2130
    functionName: OGRFeature::GetFieldAsInteger
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Area
    - static_cast<int>
    - atoi
    - GetName
    - IsFieldSetAndNotNullUnsafe
    - OGRFieldDefn*::GetNameRef
    - ToHandle
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CPLError
    - GetGeomFieldCount
    - static_cast<int64_t>
    linkageType: ''
    returnType: int
    signature: int OGRFeature::GetFieldAsInteger(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2154,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 2157
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2157
    functionName: OGR_F_GetFieldAsInteger
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_GetFieldAsInteger(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2206,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:2208,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrfeature.cpp:2209,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2209,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2216,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2221,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2224,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:2227,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:2235,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrfeature.cpp:2243,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2248
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2248
    functionName: OGRFeature::GetFieldAsInteger64
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - OGR_G_Area
    - static_cast<int>
    - IsFieldSetAndNotNullUnsafe
    - CPLAtoGIntBigEx
    - ToHandle
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - GetGeomFieldCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRFeature::GetFieldAsInteger64(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2275,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 2278
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2278
    functionName: OGR_F_GetFieldAsInteger64
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGR_F_GetFieldAsInteger64(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:2321,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:2321,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2324,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrfeature.cpp:2326,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2326,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2333,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2338,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2341,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:2352,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeature.cpp:2359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2363
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2363
    functionName: OGRFeature::GetFieldAsDouble
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - GetFID
    - OGR_G_Area
    - CPLAtof
    - IsFieldSetAndNotNullUnsafe
    - ToHandle
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - GetGeomFieldCount
    linkageType: ''
    returnType: double
    signature: double OGRFeature::GetFieldAsDouble(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2387,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 2390
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2390
    functionName: OGR_F_GetFieldAsDouble
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_F_GetFieldAsDouble(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2403,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:2407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:2410,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2415,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:2416,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrfeature.cpp:2429,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2437,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:2437,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:2438,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2440,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:2440,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:2441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 9
    argNames:
    - szTempBuffer
    - nMaxSize
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - fSecond
    - nTZFlag
    argTypes:
    - char*
    - size_t
    - int
    - int
    - int
    - int
    - int
    - float
    - int
    constantsTouched: []
    func_position:
      end: 2444
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2444
    functionName: OGRFeatureFormatDateTimeBuffer
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::abs
    - CPLsnprintf
    - snprintf
    - strlen
    - CPLError
    - std::isnan
    linkageType: ''
    returnType: void
    signature: "void OGRFeatureFormatDateTimeBuffer(char *szTempBuffer, size_t nMaxSize,\n
      \                                          int nYear, int nMonth, int nDay,\n
      \                                          int nHour, int nMinute,\n                                           float
      fSecond, int nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:2498,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2510,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2510,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2511,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:2512,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2517,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrfeature.cpp:2518,1
    - Dst: OGRFeature::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:2523,1
    - Dst: OGRFeature::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:2526,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2530,1
    - Dst: exportToWkt
      Src: /src/gdal/ogr/ogrfeature.cpp:2533,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:2542,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2546,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2546,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2547,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrfeature.cpp:2549,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2549,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2558,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2563,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2566,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2577,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2577,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2578,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2584,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2584,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2585,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrfeature.cpp:2595,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2597,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrfeature.cpp:2598,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2600,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:2605,1
    - Dst: OGRFormatFloat
      Src: /src/gdal/ogr/ogrfeature.cpp:2607,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrfeature.cpp:2608,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:2613,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2615,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:2620,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2631,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2631,1
    - Dst: OGRFeatureFormatDateTimeBuffer
      Src: /src/gdal/ogr/ogrfeature.cpp:2632,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2645,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2645,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2646,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2655,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2655,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:2657,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2658,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2662,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:2664,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrfeature.cpp:2674,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2677,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:2685,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:2685,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrfeature.cpp:2696,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2699,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:2707,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:2707,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2722,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrfeature.cpp:2723,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrfeature.cpp:2723,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:2726,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrfeature.cpp:2730,1
    - Dst: OGRFormatFloat
      Src: /src/gdal/ogr/ogrfeature.cpp:2736,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrfeature.cpp:2738,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:2743,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:2752,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:2752,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrfeature.cpp:2763,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:2773,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:2773,1
    - Dst: CPLBinaryToHex
      Src: /src/gdal/ogr/ogrfeature.cpp:2782,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 159
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2789
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2789
    functionName: OGRFeature::GetFieldAsString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - GetFieldDefn
    - OGRFieldDefn*::GetWidth
    - OGRFormatFloat
    - getGeometryName
    - GetGeomFieldCount
    - std::isnan
    - GetFID
    - IsFieldSetAndNotNullUnsafe
    - ToHandle
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - strcpy
    - CPLMalloc
    - CPLBinaryToHex
    - OGR_G_Area
    - VSI_STRDUP_VERBOSE
    - OGRFeatureFormatDateTimeBuffer
    - static_cast<float>
    - static_cast<int>
    - CPLString::Printf
    - OGRFieldDefn*::GetType
    - snprintf
    - static_cast<char *>
    - CPLFree
    - CPLsnprintf
    - exportToWkt
    - OGRFeature::GetStyleString
    linkageType: ''
    returnType: char
    signature: char *OGRFeature::GetFieldAsString(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2814,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - iField
    argTypes:
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 2817
      start: 2811
    functionDepth: 0
    functionLinenumber: 2811
    functionLinenumberEnd: 2817
    functionName: OGR_F_GetFieldAsString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_F_GetFieldAsString(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:2866,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2875,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2880,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2883,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:2888,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:2888,1
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrfeature.cpp:2890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - iField
    - CSLConstList papszOptions
    argTypes:
    - int
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2894
      start: 2862
    functionDepth: 1
    functionLinenumber: 2862
    functionLinenumberEnd: 2894
    functionName: OGRFeature::GetFieldAsISO8601DateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - IsFieldSetAndNotNullUnsafe
    - OGRGetISO8601DateTime
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - static_cast<char *>
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *OGRFeature::GetFieldAsISO8601DateTime(\n    int iField, CPL_UNUSED
      CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:2924,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - papszOptions
    argTypes:
    - OGRFeatureH
    - int
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2928
      start: 2920
    functionDepth: 0
    functionLinenumber: 2920
    functionLinenumberEnd: 2928
    functionName: OGR_F_GetFieldAsISO8601DateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: "char *OGR_F_GetFieldAsISO8601DateTime(OGRFeatureH hFeat, int iField,\n
      \                                           CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:2971,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:2973,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:2974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - iField
    - pnCount
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2986
      start: 2968
    functionDepth: 1
    functionLinenumber: 2968
    functionLinenumberEnd: 2986
    functionName: OGRFeature::GetFieldAsIntegerList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - IsFieldSetAndNotNullUnsafe
    - GetFieldDefn
    linkageType: ''
    returnType: int
    signature: int *OGRFeature::GetFieldAsIntegerList(int iField, int *pnCount) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3013,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - pnCount
    argTypes:
    - OGRFeatureH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3017
      start: 3009
    functionDepth: 0
    functionLinenumber: 3009
    functionLinenumberEnd: 3017
    functionName: OGR_F_GetFieldAsIntegerList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int *OGR_F_GetFieldAsIntegerList(OGRFeatureH hFeat, int iField,\n
      \                                      int *pnCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3060,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3062,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - iField
    - pnCount
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3075
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3075
    functionName: OGRFeature::GetFieldAsInteger64List
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - IsFieldSetAndNotNullUnsafe
    - GetFieldDefn
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRFeature::GetFieldAsInteger64List(int iField,\n                                                   int
      *pnCount) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3103,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - pnCount
    argTypes:
    - OGRFeatureH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3107
      start: 3099
    functionDepth: 0
    functionLinenumber: 3099
    functionLinenumberEnd: 3107
    functionName: OGR_F_GetFieldAsInteger64List
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGR_F_GetFieldAsInteger64List(OGRFeatureH hFeat, int iField,\n
      \                                            int *pnCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3147,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3149,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - iField
    - pnCount
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3162
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3162
    functionName: OGRFeature::GetFieldAsDoubleList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - IsFieldSetAndNotNullUnsafe
    - GetFieldDefn
    linkageType: ''
    returnType: double
    signature: double *OGRFeature::GetFieldAsDoubleList(int iField, int *pnCount)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3189,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - pnCount
    argTypes:
    - OGRFeatureH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3192
      start: 3185
    functionDepth: 0
    functionLinenumber: 3185
    functionLinenumberEnd: 3192
    functionName: OGR_F_GetFieldAsDoubleList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double *OGR_F_GetFieldAsDoubleList(OGRFeatureH hFeat, int iField,\n
      \                                        int *pnCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3231,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3236,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3228
    functionDepth: 1
    functionLinenumber: 3228
    functionLinenumberEnd: 3245
    functionName: OGRFeature::GetFieldAsStringList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - IsFieldSetAndNotNullUnsafe
    - GetFieldDefn
    linkageType: ''
    returnType: char
    signature: char **OGRFeature::GetFieldAsStringList(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3272,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3269
    functionDepth: 0
    functionLinenumber: 3269
    functionLinenumberEnd: 3275
    functionName: OGR_F_GetFieldAsStringList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char **OGR_F_GetFieldAsStringList(OGRFeatureH hFeat, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3298,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3305,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3308,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3313,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:3315,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:3315,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:3316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - iField
    - pnBytes
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3320
      start: 3295
    functionDepth: 1
    functionLinenumber: 3295
    functionLinenumberEnd: 3320
    functionName: OGRFeature::GetFieldAsBinary
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<GByte *>
    - IsFieldSetAndNotNullUnsafe
    - OGRFieldDefn*::GetType
    - strlen
    - GetFieldDefn
    linkageType: ''
    returnType: GByte
    signature: GByte *OGRFeature::GetFieldAsBinary(int iField, int *pnBytes) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3345,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3346,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hFeat
    - iField
    - pnBytes
    argTypes:
    - OGRFeatureH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3349
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3349
    functionName: OGR_F_GetFieldAsBinary
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GByte
    signature: GByte *OGR_F_GetFieldAsBinary(OGRFeatureH hFeat, int iField, int *pnBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3379,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3384,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3387,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3387,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3388,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 8
    argNames:
    - iField
    - pnYear
    - pnMonth
    - pnDay
    - pnHour
    - pnMinute
    - pfSecond
    - pnTZFlag
    argTypes:
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - float*
    - int*
    constantsTouched: []
    func_position:
      end: 3409
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3409
    functionName: OGRFeature::GetFieldAsDateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - IsFieldSetAndNotNullUnsafe
    - GetFieldDefn
    linkageType: ''
    returnType: int
    signature: "int OGRFeature::GetFieldAsDateTime(int iField, int *pnYear, int *pnMonth,\n
      \                                  int *pnDay, int *pnHour, int *pnMinute,\n
      \                                  float *pfSecond, int *pnTZFlag) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:3438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - iField
    - pnYear
    - pnMonth
    - pnDay
    - pnHour
    - pnMinute
    - pnSecond
    - pnTZFlag
    argTypes:
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 3440
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3440
    functionName: OGRFeature::GetFieldAsDateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: "int OGRFeature::GetFieldAsDateTime(int iField, int *pnYear, int *pnMonth,\n
      \                                  int *pnDay, int *pnHour, int *pnMinute,\n
      \                                  int *pnSecond, int *pnTZFlag) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3474,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:3482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 9
    argNames:
    - hFeat
    - iField
    - pnYear
    - pnMonth
    - pnDay
    - pnHour
    - pnMinute
    - pnSecond
    - pnTZFlag
    argTypes:
    - OGRFeatureH
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 3484
      start: 3469
    functionDepth: 0
    functionLinenumber: 3469
    functionLinenumberEnd: 3484
    functionName: OGR_F_GetFieldAsDateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_F_GetFieldAsDateTime(OGRFeatureH hFeat, int iField, int *pnYear,\n
      \                            int *pnMonth, int *pnDay, int *pnHour,\n                             int
      *pnMinute, int *pnSecond, int *pnTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:3517,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - hFeat
    - iField
    - pnYear
    - pnMonth
    - pnDay
    - pnHour
    - pnMinute
    - pfSecond
    - pnTZFlag
    argTypes:
    - OGRFeatureH
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - float*
    - int*
    constantsTouched: []
    func_position:
      end: 3521
      start: 3512
    functionDepth: 0
    functionLinenumber: 3512
    functionLinenumberEnd: 3521
    functionName: OGR_F_GetFieldAsDateTimeEx
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_F_GetFieldAsDateTimeEx(OGRFeatureH hFeat, int iField, int
      *pnYear,\n                               int *pnMonth, int *pnDay, int *pnHour,\n
      \                              int *pnMinute, float *pfSecond, int *pnTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:3530,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3532,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3535,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3535,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:3538,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3542,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3545,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3545,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3550,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3553,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - poDefn
    - poFDefn
    - nValue
    argTypes:
    - OGRFeatureDefn*
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 3558
      start: 3527
    functionDepth: 1
    functionLinenumber: 3527
    functionLinenumberEnd: 3558
    functionName: OGRFeatureGetIntegerValue
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn*::GetName
    - OGRFieldDefn*::GetSubType
    linkageType: ''
    returnType: int
    signature: "int OGRFeatureGetIntegerValue(const OGRFeatureDefn *poDefn,\n                                     const
      OGRFieldDefn *poFDefn, int nValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3585,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3590,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3594,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:3595,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:3599,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:3600,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrfeature.cpp:3601,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3603,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeature.cpp:3604,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:3603,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3612,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3620,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrfeature.cpp:3624,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrfeature.cpp:3627,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrfeature.cpp:3628,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3630,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrfeature.cpp:3630,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:3631,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrfeature.cpp:3636,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:3639,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrfeature.cpp:3643,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrfeature.cpp:3644,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrfeature.cpp:3651,1
    - Dst: json_object_new_int
      Src: /src/gdal/ogr/ogrfeature.cpp:3651,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3654,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrfeature.cpp:3654,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:3655,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrfeature.cpp:3659,1
    - Dst: OGRFeature::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrfeature.cpp:3661,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrfeature.cpp:3664,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrfeature.cpp:3664,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3666,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrfeature.cpp:3666,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:3667,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrfeature.cpp:3671,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrfeature.cpp:3676,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrfeature.cpp:3676,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:3678,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrfeature.cpp:3678,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:3679,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3683
      start: 3576
    functionDepth: 1
    functionLinenumber: 3576
    functionLinenumberEnd: 3683
    functionName: OGRFeature::GetFieldAsSerializedJSon
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_boolean
    - strcmp
    - CPLString
    - GetFieldDefn
    - json_object_to_json_string
    - CPLStrdup
    - IsFieldSetAndNotNullUnsafe
    - json_object_new_int64
    - OGRFieldDefn*::GetSubType
    - c_str
    - json_object_new_array
    - json_object_new_string
    - json_object_array_add
    - OGRFieldDefn*::GetType
    - json_object_new_double
    - json_object_put
    - OGRFeature::GetFieldAsInteger64List
    - json_object_new_int
    - CPLGetValueType
    linkageType: ''
    returnType: char
    signature: char *OGRFeature::GetFieldAsSerializedJSon(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3728,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3733,1
    - Dst: OGRFeatureGetIntegerValue
      Src: /src/gdal/ogr/ogrfeature.cpp:3737,1
    - Dst: OGRFeatureGetIntegerValue
      Src: /src/gdal/ogr/ogrfeature.cpp:3744,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3752,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3757,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3762,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:3768,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3770,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:3771,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:3773,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:3776,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:3783,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3785,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - iField
    - nValue
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3791
      start: 3725
    functionDepth: 2
    functionLinenumber: 3725
    functionLinenumberEnd: 3791
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - OGRFeature::SetField
    - IsFieldSetAndNotNullUnsafe
    - OGR_RawField_SetUnset
    - OGRFieldDefn*::GetType
    - snprintf
    - GetFieldDefn
    - OGRFeatureGetIntegerValue
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:3820,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - nValue
    argTypes:
    - OGRFeatureH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3823
      start: 3817
    functionDepth: 0
    functionLinenumber: 3817
    functionLinenumberEnd: 3823
    functionName: OGR_F_SetFieldInteger
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldInteger(OGRFeatureH hFeat, int iField, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:3869,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:3874,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3883,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3887,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3887,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:3888,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3890,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:3898,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:3903,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrfeature.cpp:3903,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:3904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3906,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3910,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3910,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:3911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:3922,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:3926,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:3926,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:3927,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3929,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3933,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3938,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:3944,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:3946,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:3947,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:3949,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:3952,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:3959,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:3961,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - iField
    - nValue
    argTypes:
    - int
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3967
      start: 3866
    functionDepth: 1
    functionLinenumber: 3866
    functionLinenumberEnd: 3967
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - simple_max
    - static_cast<GIntBig>
    - CPLFree
    - VSI_STRDUP_VERBOSE
    - OGRFieldDefn*::GetNameRef
    - OGRFeature::SetField
    - IsFieldSetAndNotNullUnsafe
    - OGR_RawField_SetUnset
    - OGRFieldDefn*::GetType
    - CPLsnprintf
    - GetFieldDefn
    - CPLError
    - static_cast<int64_t>
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, GIntBig nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:3997,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:3999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - nValue
    argTypes:
    - OGRFeatureH
    - int
    - GIntBig
    constantsTouched: []
    func_position:
      end: 4000
      start: 3994
    functionDepth: 0
    functionLinenumber: 3994
    functionLinenumberEnd: 4000
    functionName: OGR_F_SetFieldInteger64
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldInteger64(OGRFeatureH hFeat, int iField, GIntBig
      nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:4046,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:4051,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:4067,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4070,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4074,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4074,1
    - Dst: OGRFeatureGetIntegerValue
      Src: /src/gdal/ogr/ogrfeature.cpp:4083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4086,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4090,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4090,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrfeature.cpp:4098,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:4099,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4102,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4106,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4106,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrfeature.cpp:4110,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:4111,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:4112,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:4114,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:4116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4118,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4122,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4122,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4129,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4134,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:4138,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4139,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:4145,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:4147,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:4148,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4150,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:4153,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:4160,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4162,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 2
    argNames:
    - iField
    - dfValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 4168
      start: 4043
    functionDepth: 2
    functionLinenumber: 4043
    functionLinenumberEnd: 4168
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 3
    functionsReached:
    - simple_max
    - static_cast<double>
    - static_cast<GIntBig>
    - CPLFree
    - VSI_STRDUP_VERBOSE
    - OGRFieldDefn*::GetNameRef
    - OGRFeature::SetField
    - IsFieldSetAndNotNullUnsafe
    - OGR_RawField_SetUnset
    - OGRFieldDefn*::GetType
    - CPLsnprintf
    - GetFieldDefn
    - CPLError
    - OGRFeatureGetIntegerValue
    - std::isnan
    - GetName
    - simple_min
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:4197,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:4199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - dfValue
    argTypes:
    - OGRFeatureH
    - int
    - double
    constantsTouched: []
    func_position:
      end: 4200
      start: 4194
    functionDepth: 0
    functionLinenumber: 4194
    functionLinenumberEnd: 4200
    functionName: OGR_F_SetFieldDouble
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldDouble(OGRFeatureH hFeat, int iField, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrfeature.cpp:4248,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrfeature.cpp:4249,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:4251,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:4257,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:4260,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:4261,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4263,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:4266,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:4271,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4276,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:4284,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrfeature.cpp:4292,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4294,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4297,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4305,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4308,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4309,1
    - Dst: OGRFeatureGetIntegerValue
      Src: /src/gdal/ogr/ogrfeature.cpp:4326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4329,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4332,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4332,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrfeature.cpp:4340,1
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrfeature.cpp:4345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4347,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4350,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4350,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrfeature.cpp:4357,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:4358,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:4364,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrfeature.cpp:4365,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrfeature.cpp:4367,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrfeature.cpp:4374,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4375,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrfeature.cpp:4375,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4377,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:4377,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrfeature.cpp:4385,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4386,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrfeature.cpp:4386,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4388,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:4388,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrfeature.cpp:4396,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4397,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrfeature.cpp:4397,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4399,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:4399,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:4402,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrfeature.cpp:4408,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrfeature.cpp:4410,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrfeature.cpp:4414,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:4414,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:4422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4432,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4436,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4436,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4439,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4442,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:4449,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrfeature.cpp:4453,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4455,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4458,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:4465,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4468,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeature.cpp:4468,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4470,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:4474,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrfeature.cpp:4482,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:4483,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:4489,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4492,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4493,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4494,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:4496,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:4500,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrfeature.cpp:4501,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrfeature.cpp:4503,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrfeature.cpp:4504,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrfeature.cpp:4508,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrfeature.cpp:4510,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrfeature.cpp:4512,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrfeature.cpp:4512,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4514,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrfeature.cpp:4514,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrfeature.cpp:4515,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4520,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 144
    argCount: 2
    argNames:
    - iField
    - pszValue
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 4528
      start: 4243
    functionDepth: 2
    functionLinenumber: 4243
    functionLinenumberEnd: 4528
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 4
    functionsReached:
    - json_object_get_int64
    - atoi
    - OGR_RawField_SetUnset
    - GetFieldDefn
    - CPLError
    - std::vector::push_back
    - CPLGetConfigOption
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - IsFieldSetAndNotNullUnsafe
    - CPLAtoGIntBigEx
    - OGRFieldDefn*::GetSubType
    - strlen
    - CSLTokenizeString2
    - CSLCount
    - json_object_get_double
    - GetName
    - OGRJSonParse
    - json_object_array_get_idx
    - CPLAtof
    - VSI_STRDUP_VERBOSE
    - CPLTestBool
    - json_object_array_length
    - static_cast<int>
    - CPLStrtod
    - CPLGetValueType
    - OGRFieldDefn*::GetNameRef
    - OGRFeature::SetField
    - CPLStringList::AddString
    - OGRFieldDefn*::GetType
    - json_object_get_string
    - OGRFeatureGetIntegerValue
    - CPLFree
    - CSLDestroy
    - json_object_put
    - EQUAL
    - strchr
    - json_object_get_int
    - memcpy
    - OGRParseDate
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:4557,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - pszValue
    argTypes:
    - OGRFeatureH
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 4560
      start: 4554
    functionDepth: 0
    functionLinenumber: 4554
    functionLinenumberEnd: 4560
    functionName: OGR_F_SetFieldString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldString(OGRFeatureH hFeat, int iField, const char
      *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:4604,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:4609,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:4615,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeature.cpp:4616,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrfeature.cpp:4626,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4627,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:4631,1
    - Dst: const_cast<int *>
      Src: /src/gdal/ogr/ogrfeature.cpp:4643,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4645,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:4646,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfeature.cpp:4651,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4653,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4655,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfeature.cpp:4660,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4662,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:4662,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4664,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4670,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4679,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:4679,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4681,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:4682,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - iField
    - nCount
    - panValues
    argTypes:
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 4684
      start: 4601
    functionDepth: 1
    functionLinenumber: 4601
    functionLinenumberEnd: 4684
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 5
    functionsReached:
    - static_cast<double>
    - std::vector::push_back
    - static_cast<int *>
    - const_cast<int *>
    - VSI_STRDUP_VERBOSE
    - OGRFeature::SetField
    - CSLDestroy
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - GetFieldDefn
    - std::vector::reserve
    - memcpy
    - CPLFree
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, int nCount, const int *panValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:4713,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:4715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hFeat
    - iField
    - nCount
    - panValues
    argTypes:
    - OGRFeatureH
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 4716
      start: 4709
    functionDepth: 0
    functionLinenumber: 4709
    functionLinenumberEnd: 4716
    functionName: OGR_F_SetFieldIntegerList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldIntegerList(OGRFeatureH hFeat, int iField, int
      nCount,\n                               const int *panValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:4762,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:4767,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:4781,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:4785,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:4785,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:4786,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4788,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4791,1
    - Dst: const_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeature.cpp:4799,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4801,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfeature.cpp:4806,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4808,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeature.cpp:4808,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4810,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4816,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4826,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:4826,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4828,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:4829,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - iField
    - nCount
    - panValues
    argTypes:
    - int
    - int
    - GIntBig*
    constantsTouched: []
    func_position:
      end: 4831
      start: 4759
    functionDepth: 1
    functionLinenumber: 4759
    functionLinenumberEnd: 4831
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 6
    functionsReached:
    - static_cast<double>
    - std::vector::push_back
    - VSI_STRDUP_VERBOSE
    - OGRFieldDefn*::GetNameRef
    - OGRFeature::SetField
    - const_cast<GIntBig *>
    - CSLDestroy
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CPLError
    - std::vector::reserve
    - static_cast<int64_t>
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, int nCount, const GIntBig *panValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:4861,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:4863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hFeat
    - iField
    - nCount
    - panValues
    argTypes:
    - OGRFeatureH
    - int
    - int
    - GIntBig*
    constantsTouched: []
    func_position:
      end: 4864
      start: 4857
    functionDepth: 0
    functionLinenumber: 4857
    functionLinenumberEnd: 4864
    functionName: OGR_F_SetFieldInteger64List
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldInteger64List(OGRFeatureH hFeat, int iField, int
      nCount,\n                                 const GIntBig *panValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:4908,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:4913,1
    - Dst: const_cast<double *>
      Src: /src/gdal/ogr/ogrfeature.cpp:4921,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4923,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfeature.cpp:4928,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4930,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:4930,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4933,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfeature.cpp:4938,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:4940,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeature.cpp:4940,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4942,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4948,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:4958,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:4958,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:4960,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:4961,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - iField
    - nCount
    - padfValues
    argTypes:
    - int
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 4963
      start: 4905
    functionDepth: 1
    functionLinenumber: 4905
    functionLinenumberEnd: 4963
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 7
    functionsReached:
    - static_cast<GIntBig>
    - std::vector::push_back
    - VSI_STRDUP_VERBOSE
    - static_cast<int>
    - OGRFeature::SetField
    - CSLDestroy
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - const_cast<double *>
    - GetFieldDefn
    - std::vector::reserve
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, int nCount, const double *padfValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:4992,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:4994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hFeat
    - iField
    - nCount
    - padfValues
    argTypes:
    - OGRFeatureH
    - int
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 4995
      start: 4988
    functionDepth: 0
    functionLinenumber: 4988
    functionLinenumberEnd: 4995
    functionName: OGR_F_SetFieldDoubleList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldDoubleList(OGRFeatureH hFeat, int iField, int nCount,\n
      \                             const double *padfValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:5037,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5042,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5045,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:5050,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrfeature.cpp:5053,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5055,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:5074,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:5077,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:5077,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5085,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5086,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5091,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5092,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrfeature.cpp:5097,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5099,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5100,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeature.cpp:5111,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5113,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - iField
    - papszValues
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 5116
      start: 5034
    functionDepth: 1
    functionLinenumber: 5034
    functionLinenumberEnd: 5116
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 8
    functionsReached:
    - CPLAtof
    - const_cast<char **>
    - CPLError
    - OGRFeature::SetField
    - IsFieldSetAndNotNullUnsafe
    - OGRFieldDefn*::GetNameRef
    - CPLAtoGIntBigEx
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CSLCount
    - static_cast<GIntBig *>
    - CPLFree
    - GetName
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, const char *const *papszValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5144,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - papszValues
    argTypes:
    - OGRFeatureH
    - int
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5147
      start: 5140
    functionDepth: 0
    functionLinenumber: 5140
    functionLinenumberEnd: 5147
    functionName: OGR_F_SetFieldStringList
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldStringList(OGRFeatureH hFeat, int iField,\n                              CSLConstList
      papszValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:5173,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5178,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5187,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5187,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5189,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5197,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5199,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - iField
    - nBytes
    - pabyData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 5202
      start: 5170
    functionDepth: 1
    functionLinenumber: 5170
    functionLinenumberEnd: 5202
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 9
    functionsReached:
    - OGRFeature::SetField
    - static_cast<const GByte *>
    - const_cast<GByte *>
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, int nBytes, const void *pabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5230,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hFeat
    - iField
    - nBytes
    - pabyData
    argTypes:
    - OGRFeatureH
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 5233
      start: 5226
    functionDepth: 0
    functionLinenumber: 5226
    functionLinenumberEnd: 5233
    functionName: OGR_F_SetFieldBinary
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldBinary(OGRFeatureH hFeat, int iField, int nBytes,\n
      \                         const void *pabyData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:5290,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5295,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrfeature.cpp:5298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:5300,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrfeature.cpp:5305,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrfeature.cpp:5306,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrfeature.cpp:5307,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrfeature.cpp:5308,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrfeature.cpp:5309,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrfeature.cpp:5311,1
    - Dst: OGRFeatureFormatDateTimeBuffer
      Src: /src/gdal/ogr/ogrfeature.cpp:5318,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:5320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 8
    argNames:
    - iField
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - fSecond
    - nTZFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - float
    - int
    constantsTouched: []
    func_position:
      end: 5322
      start: 5286
    functionDepth: 2
    functionLinenumber: 5286
    functionLinenumberEnd: 5322
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 10
    functionsReached:
    - OGRFeatureFormatDateTimeBuffer
    - OGRFeature::SetField
    - static_cast<GInt16>
    - OGRFieldDefn*::GetType
    - static_cast<GByte>
    - GetFieldDefn
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGRFeature::SetField(int iField, int nYear, int nMonth, int nDay,\n
      \                         int nHour, int nMinute, float fSecond, int nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5357,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5359,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrfeature.cpp:5361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - hFeat
    - iField
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    - nTZFlag
    argTypes:
    - OGRFeatureH
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5362
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5362
    functionName: OGR_F_SetFieldDateTime
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - static_cast<float>
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldDateTime(OGRFeatureH hFeat, int iField, int nYear,\n
      \                           int nMonth, int nDay, int nHour, int nMinute,\n
      \                           int nSecond, int nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5397,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - hFeat
    - iField
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - fSecond
    - nTZFlag
    argTypes:
    - OGRFeatureH
    - int
    - int
    - int
    - int
    - int
    - int
    - float
    - int
    constantsTouched: []
    func_position:
      end: 5401
      start: 5392
    functionDepth: 0
    functionLinenumber: 5392
    functionLinenumberEnd: 5401
    functionName: OGR_F_SetFieldDateTimeEx
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_SetFieldDateTimeEx(OGRFeatureH hFeat, int iField, int nYear,\n
      \                             int nMonth, int nDay, int nHour, int nMinute,\n
      \                             float fSecond, int nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::SetFieldInternal
      Src: /src/gdal/ogr/ogrfeature.cpp:5447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iField
    - puValue
    argTypes:
    - int
    - OGRField*
    constantsTouched: []
    func_position:
      end: 5448
      start: 5444
    functionDepth: 1
    functionLinenumber: 5444
    functionLinenumberEnd: 5448
    functionName: OGRFeature::SetField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 10
    functionsReached:
    - OGRFeature::SetFieldInternal
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetField(int iField, const OGRField *puValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:5453,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5457,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5461,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5465,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5469,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5471,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5472,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5476,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5476,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5480,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5483,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5488,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5488,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5489,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5491,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5493,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5497,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5498,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5500,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5500,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5507,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5507,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5510,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5515,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5521,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5525,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5526,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5528,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5528,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5534,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5535,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5538,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5543,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5549,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5553,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5554,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5556,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5556,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5562,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5563,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5566,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5571,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5577,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5579,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:5580,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5582,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5582,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeature.cpp:5596,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5597,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeature.cpp:5604,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:5604,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:5608,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5610,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:5611,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5613,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5613,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:5619,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:5620,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:5623,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:5628,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 118
    argCount: 2
    argNames:
    - iField
    - puValue
    argTypes:
    - int
    - OGRField*
    constantsTouched: []
    func_position:
      end: 5639
      start: 5450
    functionDepth: 1
    functionLinenumber: 5450
    functionLinenumberEnd: 5639
    functionName: OGRFeature::SetFieldInternal
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - static_cast<int *>
    - OGR_RawField_IsNull
    - IsFieldSetAndNotNullUnsafe
    - CSLDestroy
    - OGR_RawField_SetUnset
    - static_cast<GByte *>
    - OGRFieldDefn*::GetType
    - static_cast<double *>
    - static_cast<GIntBig *>
    - CPLAssert
    - GetFieldDefn
    - CSLCount
    - OGR_RawField_IsUnset
    - memcpy
    - CPLFree
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::SetFieldInternal(int iField, const OGRField *puValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5668,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - iField
    - psValue
    argTypes:
    - OGRFeatureH
    - int
    - OGRField*
    constantsTouched: []
    func_position:
      end: 5671
      start: 5665
    functionDepth: 0
    functionLinenumber: 5665
    functionLinenumberEnd: 5671
    functionName: OGR_F_SetFieldRaw
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetFieldRaw(OGRFeatureH hFeat, int iField, const OGRField
      *psValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::DumpReadableAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:5705,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5706,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:5706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fpOut
    - papszOptions
    argTypes:
    - FILE*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5707
      start: 5699
    functionDepth: 1
    functionLinenumber: 5699
    functionLinenumberEnd: 5707
    functionName: OGRFeature::DumpReadable
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::DumpReadableAsString
    - auto::c_str
    - fprintf
    linkageType: ''
    returnType: void
    signature: void OGRFeature::DumpReadable(FILE *fpOut, CSLConstList papszOptions)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5737,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:5737,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:5738,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrfeature.cpp:5742,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:5747,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:5749,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5759,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:5759,1
    - Dst: OGRFeature::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:5761,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5764,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:5764,1
    - Dst: OGRFeature::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:5768,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrfeature.cpp:5772,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5774,1
    - Dst: OGRFeature::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:5774,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeature.cpp:5783,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:5788,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrfeature.cpp:5794,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrfeature.cpp:5799,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5801,1
    - Dst: "OGRGeomCoordinatePrecision::\n                                           ResolutionToPrecision"
      Src: /src/gdal/ogr/ogrfeature.cpp:5802,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrfeature.cpp:5809,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5811,1
    - Dst: "OGRGeomCoordinatePrecision::\n                                           ResolutionToPrecision"
      Src: /src/gdal/ogr/ogrfeature.cpp:5812,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:5818,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:5818,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:5819,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrfeature.cpp:5820,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeature.cpp:5820,1
    - Dst: dumpReadable
      Src: /src/gdal/ogr/ogrfeature.cpp:5821,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrfeature.cpp:5822,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5830
      start: 5733
    functionDepth: 2
    functionLinenumber: 5733
    functionLinenumberEnd: 5830
    functionName: OGRFeature::DumpReadableAsString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - "OGRGeomCoordinatePrecision::\n                                           ResolutionToPrecision"
    - CPLOPrintf
    - GetGeomFieldDefn
    - OGRFeature::GetFieldAsString
    - GetGeomFieldCount
    - CPLStringList::List
    - GetFID
    - OGRFeature::IsFieldSet
    - OGRGeomFieldDefn*::GetNameRef
    - strlen
    - GetName
    - CPLTestBool
    - OGRFeature::IsFieldNull
    - OGRFieldDefn*::GetNameRef
    - dumpReadable
    - CPLSPrintf
    - GetFieldDefnUnsafe
    - CPLStringList::SetNameValue
    - EQUAL
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRFeature::GetStyleString
    linkageType: ''
    returnType: std::string
    signature: std::string OGRFeature::DumpReadableAsString(CSLConstList papszOptions)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:5852,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - fpOut
    argTypes:
    - OGRFeatureH
    - FILE*
    constantsTouched: []
    func_position:
      end: 5855
      start: 5849
    functionDepth: 0
    functionLinenumber: 5849
    functionLinenumberEnd: 5855
    functionName: OGR_F_DumpReadable
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_DumpReadable(OGRFeatureH hFeat, FILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:5884,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeature.cpp:5886,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - papszOptions
    argTypes:
    - OGRFeatureH
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5889
      start: 5882
    functionDepth: 1
    functionLinenumber: 5882
    functionLinenumberEnd: 5889
    functionName: OGR_F_DumpReadableAsString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - CPLStrdup
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_F_DumpReadableAsString(OGRFeatureH hFeat, CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:5924,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 5927
      start: 5921
    functionDepth: 0
    functionLinenumber: 5921
    functionLinenumberEnd: 5927
    functionName: OGR_F_GetFID
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGR_F_GetFID(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFIDIn
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 5954
      start: 5948
    functionDepth: 0
    functionLinenumber: 5948
    functionLinenumberEnd: 5954
    functionName: OGRFeature::SetFID
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetFID(GIntBig nFIDIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:5979,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:5981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - nFID
    argTypes:
    - OGRFeatureH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 5982
      start: 5976
    functionDepth: 0
    functionLinenumber: 5976
    functionLinenumberEnd: 5982
    functionName: OGR_F_SetFID
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_F_SetFID(OGRFeatureH hFeat, GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:6008,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:6008,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6011,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6011,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:6017,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:6017,1
    - Dst: OGRFeature::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:6019,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:6019,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6021,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6024,1
    - Dst: OGRFeature::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrfeature.cpp:6027,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrfeature.cpp:6027,1
    - Dst: OGRFeature::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrfeature.cpp:6032,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrfeature.cpp:6032,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6040,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6042,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6045,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:6057,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6057,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6058,1
    - Dst: OGRFeature::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrfeature.cpp:6083,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrfeature.cpp:6085,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6109,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6111,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrfeature.cpp:6114,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6132,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6133,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:6138,1
    - Dst: OGRFeature::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrfeature.cpp:6162,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrfeature.cpp:6164,1
    - Dst: OGRFeature::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrfeature.cpp:6180,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrfeature.cpp:6181,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:6184,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeature.cpp:6190,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6190,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6191,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6200,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6201,1
    - Dst: OGRGeometry*::Equals
      Src: /src/gdal/ogr/ogrfeature.cpp:6210,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 117
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 6215
      start: 6002
    functionDepth: 2
    functionLinenumber: 6002
    functionLinenumberEnd: 6215
    functionName: OGRFeature::Equal
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - OGRFeature::GetFieldAsString
    - OGRFeature::GetFieldAsBinary
    - memcmp
    - strcmp
    - OGRFeature::GetFieldAsDateTime
    - OGRFeature*::IsFieldNull
    - std::isnan
    - GetFID
    - OGRFeature::IsFieldSet
    - OGRFeature*::GetDefnRef
    - OGRGeometry*::Equals
    - IsFieldSetAndNotNullUnsafe
    - OGRFeature*::GetFieldAsInteger
    - CSLCount
    - OGRFeature::IsFieldNull
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - GetDefnRef
    - OGRFeature*::GetFieldAsInteger64List
    - OGRFeature::GetGeomFieldRef
    - OGRFeature*::IsFieldSet
    - OGRFeature::GetFieldAsInteger64
    - OGRFeature::GetFieldAsInteger
    - OGRFeature::GetFieldAsInteger64List
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRFeature::Equal(const OGRFeature *poFeature) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6239,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6240,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6242,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hFeat
    - hOtherFeat
    argTypes:
    - OGRFeatureH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 6244
      start: 6236
    functionDepth: 0
    functionLinenumber: 6236
    functionLinenumberEnd: 6244
    functionName: OGR_F_Equal
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_Equal(OGRFeatureH hFeat, OGRFeatureH hOtherFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ComputeMapForSetFrom
      Src: /src/gdal/ogr/ogrfeature.cpp:6274,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6274,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:6275,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrfeature.cpp:6276,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6278,1
    - Dst: OGRFeature::SetFrom
      Src: /src/gdal/ogr/ogrfeature.cpp:6281,1
    - Dst: OGRFeature::SetFrom
      Src: /src/gdal/ogr/ogrfeature.cpp:6283,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrfeature.cpp:6283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - poSrcFeature
    - bForgiving
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 6284
      start: 6271
    functionDepth: 1
    functionLinenumber: 6271
    functionLinenumberEnd: 6284
    functionName: OGRFeature::SetFrom
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature::SetFrom
    - OGRFeature*::GetDefnRef
    - auto::data
    - auto::empty
    - ComputeMapForSetFrom
    - OGRFeature*::GetFieldCount
    - CPL_TO_BOOL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeature::SetFrom(const OGRFeature *poSrcFeature, int bForgiving)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6315,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6316,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6318,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hFeat
    - hOtherFeat
    - bForgiving
    argTypes:
    - OGRFeatureH
    - OGRFeatureH
    - int
    constantsTouched: []
    func_position:
      end: 6320
      start: 6312
    functionDepth: 0
    functionLinenumber: 6312
    functionLinenumberEnd: 6320
    functionName: OGR_F_SetFrom
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_F_SetFrom(OGRFeatureH hFeat, OGRFeatureH hOtherFeat, int
      bForgiving)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:6364,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6369,1
    - Dst: GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6371,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:6375,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6375,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:6379,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6379,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6383,1
    - Dst: GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6385,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:6390,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6390,1
    - Dst: OGRFeature::SetGeomField
      Src: /src/gdal/ogr/ogrfeature.cpp:6392,1
    - Dst: OGRFeature::SetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:6399,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrfeature.cpp:6399,1
    - Dst: OGRFeature::SetNativeData
      Src: /src/gdal/ogr/ogrfeature.cpp:6404,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrfeature.cpp:6404,1
    - Dst: OGRFeature::SetNativeMediaType
      Src: /src/gdal/ogr/ogrfeature.cpp:6405,1
    - Dst: OGRFeature*::GetNativeMediaType
      Src: /src/gdal/ogr/ogrfeature.cpp:6405,1
    - Dst: OGRFeature::SetFieldsFrom
      Src: /src/gdal/ogr/ogrfeature.cpp:6411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - poSrcFeature
    - panMap
    - bForgiving
    - bUseISO8601ForDateTimeAsString
    argTypes:
    - OGRFeature*
    - int*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 6417
      start: 6357
    functionDepth: 2
    functionLinenumber: 6357
    functionLinenumberEnd: 6417
    functionName: OGRFeature::SetFrom
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefnRef
    - OGRFeature::SetFieldsFrom
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature::SetNativeData
    - OGRFeature*::GetStyleString
    - OGRFeature::SetFID
    - OGRFeature::SetStyleString
    - OGRFeature*::GetNativeData
    - OGRFeature::SetGeomField
    - OGRFeature*::GetNativeMediaType
    - GetGeomFieldCount
    - OGRFeature::SetNativeMediaType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeature::SetFrom(const OGRFeature *poSrcFeature, const int
      *panMap,\n                           int bForgiving, bool bUseISO8601ForDateTimeAsString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6456,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6457,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6458,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6460,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hFeat
    - hOtherFeat
    - bForgiving
    - panMap
    argTypes:
    - OGRFeatureH
    - OGRFeatureH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 6462
      start: 6452
    functionDepth: 0
    functionLinenumber: 6452
    functionLinenumberEnd: 6462
    functionName: OGR_F_SetFromWithMap
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_F_SetFromWithMap(OGRFeatureH hFeat, OGRFeatureH hOtherFeat,\n
      \                           int bForgiving, const int *panMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6515,1
    - Dst: OGRFeature::UnsetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6517,1
    - Dst: OGRFeature*::IsFieldNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6521,1
    - Dst: OGRFeature::SetFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:6523,1
    - Dst: OGRFeature*::poDefn::GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6528,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6529,1
    - Dst: SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6534,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6535,1
    - Dst: SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6540,1
    - Dst: OGRFeature*::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6541,1
    - Dst: SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6546,1
    - Dst: OGRFeature*::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6547,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6552,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6553,1
    - Dst: SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6555,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:6557,1
    - Dst: OGRFeature*::GetFieldAsStringUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6558,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6567,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6575,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6576,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6585,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6586,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6590,1
    - Dst: OGRFeature*::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6591,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6595,1
    - Dst: OGRFeature*::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6596,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6600,1
    - Dst: OGRFeature*::GetFieldAsStringUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:6601,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6608,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6608,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6615,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6624,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6624,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrfeature.cpp:6630,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6631,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6640,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6640,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6647,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6659,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6659,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6663,1
    - Dst: OGRFeature*::GetFieldAsISO8601DateTime
      Src: /src/gdal/ogr/ogrfeature.cpp:6666,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6668,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6679,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:6679,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:6683,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6683,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 107
    argCount: 4
    argNames:
    - poSrcFeature
    - panMap
    - bForgiving
    - bUseISO8601ForDateTimeAsString
    argTypes:
    - OGRFeature*
    - int*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 6693
      start: 6498
    functionDepth: 3
    functionLinenumber: 6498
    functionLinenumberEnd: 6693
    functionName: OGRFeature::SetFieldsFrom
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature::UnsetField
    - OGRFeature*::GetFieldAsString
    - OGRFeature::SetFieldNull
    - IsFieldSetAndNotNullUnsafe
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::IsFieldNullUnsafe
    - VSI_STRDUP_VERBOSE
    - OGRFeature*::poDefn::GetFieldDefnUnsafe
    - OGRFeature::SetField
    - SetFieldSameTypeUnsafe
    - GetFieldDefnUnsafe
    - OGRFeature*::GetFieldAsInteger64List
    - OGRFeature*::GetFieldAsISO8601DateTime
    - CPLFree
    - OGRFeature*::GetFieldAsIntegerUnsafe
    - OGRFeature*::GetFieldAsInteger64Unsafe
    - OGRFeature*::GetFieldAsStringUnsafe
    - OGRFeature*::GetFieldAsDoubleUnsafe
    - OGRFeature*::IsFieldSetUnsafe
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeature::SetFieldsFrom(const OGRFeature *poSrcFeature,\n
      \                                const int *panMap, int bForgiving,\n                                 bool
      bUseISO8601ForDateTimeAsString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:6718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6721
      start: 6711
    functionDepth: 0
    functionLinenumber: 6711
    functionLinenumberEnd: 6721
    functionName: OGRFeature::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 3
    functionsReached:
    - OGRFeature::GetFieldAsString
    linkageType: ''
    returnType: char
    signature: char *OGRFeature::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6742,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 6745
      start: 6740
    functionDepth: 0
    functionLinenumber: 6740
    functionLinenumberEnd: 6745
    functionName: OGR_F_GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_F_GetStyleString(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6767,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:6772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6773
      start: 6763
    functionDepth: 0
    functionLinenumber: 6763
    functionLinenumberEnd: 6773
    functionName: OGRFeature::SetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetStyleString(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:6795,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszStyle
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 6798
      start: 6792
    functionDepth: 0
    functionLinenumber: 6792
    functionLinenumberEnd: 6798
    functionName: OGR_F_SetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetStyleString(OGRFeatureH hFeat, const char *pszStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6819
      start: 6815
    functionDepth: 0
    functionLinenumber: 6815
    functionLinenumberEnd: 6819
    functionName: OGRFeature::SetStyleStringDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetStyleStringDirectly(char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:6841,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszStyle
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 6844
      start: 6838
    functionDepth: 0
    functionLinenumber: 6838
    functionLinenumberEnd: 6844
    functionName: OGR_F_SetStyleStringDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetStyleStringDirectly(OGRFeatureH hFeat, char *pszStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable*::Clone
      Src: /src/gdal/ogr/ogrfeature.cpp:6857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 6858
      start: 6853
    functionDepth: 0
    functionLinenumber: 6853
    functionLinenumberEnd: 6858
    functionName: OGRFeature::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable*::Clone
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 6872
      start: 6867
    functionDepth: 0
    functionLinenumber: 6867
    functionLinenumberEnd: 6872
    functionName: OGRFeature::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRField *>
      Src: /src/gdal/ogr/ogrfeature.cpp:6892,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:6892,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:6899,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:6903,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - poNewDefn
    - panRemapSource
    argTypes:
    - OGRFeatureDefn*
    - int*
    constantsTouched: []
    func_position:
      end: 6921
      start: 6883
    functionDepth: 1
    functionLinenumber: 6883
    functionLinenumberEnd: 6921
    functionName: OGRFeature::RemapFields
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_SetUnset
    - static_cast<OGRField *>
    - CPLCalloc
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeature::RemapFields(OGRFeatureDefn *poNewDefn,\n                               const
      int *panRemapSource)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRField *>
      Src: /src/gdal/ogr/ogrfeature.cpp:6933,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrfeature.cpp:6934,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:6935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6936
      start: 6930
    functionDepth: 1
    functionLinenumber: 6930
    functionLinenumberEnd: 6936
    functionName: OGRFeature::AppendField
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRField *>
    - CPLRealloc
    - OGR_RawField_SetUnset
    linkageType: ''
    returnType: void
    signature: void OGRFeature::AppendField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrfeature.cpp:6952,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeature.cpp:6953,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6953,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:6955,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:6976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - poNewDefn
    - panRemapSource
    argTypes:
    - OGRFeatureDefn*
    - int*
    constantsTouched: []
    func_position:
      end: 6982
      start: 6945
    functionDepth: 1
    functionLinenumber: 6945
    functionLinenumberEnd: 6982
    functionName: OGRFeature::RemapGeomFields
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetGeomFieldCount
    - static_cast<OGRGeometry **>
    - CPLCalloc
    - GetGeomFieldCount
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeature::RemapGeomFields(OGRFeatureDefn *poNewDefn,\n                                   const
      int *panRemapSource)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:6993,1
    - Dst: reinterpret_cast<OGRStyleTableH>
      Src: /src/gdal/ogr/ogrfeature.cpp:6995,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:6996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 6997
      start: 6990
    functionDepth: 0
    functionLinenumber: 6990
    functionLinenumberEnd: 6997
    functionName: OGR_F_GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - reinterpret_cast<OGRStyleTableH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRStyleTableH
    signature: OGRStyleTableH OGR_F_GetStyleTable(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7006,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7008,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - hStyleTable
    argTypes:
    - OGRFeatureH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 7010
      start: 7003
    functionDepth: 0
    functionLinenumber: 7003
    functionLinenumberEnd: 7010
    functionName: OGR_F_SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetStyleTableDirectly(OGRFeatureH hFeat, OGRStyleTableH
      hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7019,1
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7020,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7022,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hFeat
    - hStyleTable
    argTypes:
    - OGRFeatureH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 7024
      start: 7016
    functionDepth: 0
    functionLinenumber: 7016
    functionLinenumberEnd: 7024
    functionName: OGR_F_SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetStyleTable(OGRFeatureH hFeat, OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFieldSetUnsafe
      Src: /src/gdal/ogr/ogrfeature.cpp:7047,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7049,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrfeature.cpp:7050,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:7053,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrfeature.cpp:7058,1
    - Dst: time
      Src: /src/gdal/ogr/ogrfeature.cpp:7060,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrfeature.cpp:7062,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:7063,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrfeature.cpp:7066,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrfeature.cpp:7076,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:7079,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeature.cpp:7085,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrfeature.cpp:7088,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:7090,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:7091,1
    - Dst: auto::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrfeature.cpp:7093,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:7094,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - bNotNullableOnly
    - papszOptions
    argTypes:
    - int
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 7097
      start: 7041
    functionDepth: 1
    functionLinenumber: 7041
    functionLinenumberEnd: 7097
    functionName: OGRFeature::FillUnsetWithDefault
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - sscanf
    - IsFieldSetUnsafe
    - STARTS_WITH_CI
    - static_cast<float>
    - OGRFeature::SetField
    - auto::GetType
    - auto::IsDefaultDriverSpecific
    - CPLUnixTimeToYMDHMS
    - time
    - strlen
    - CPLString::pop_back
    - GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRFeature::FillUnsetWithDefault(int bNotNullableOnly,\n                                      CPL_UNUSED
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7120,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - bNotNullableOnly
    - papszOptions
    argTypes:
    - OGRFeatureH
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 7124
      start: 7116
    functionDepth: 0
    functionLinenumber: 7116
    functionLinenumberEnd: 7124
    functionName: OGR_F_FillUnsetWithDefault
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_F_FillUnsetWithDefault(OGRFeatureH hFeat, int bNotNullableOnly,\n
      \                               char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7160,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:7161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:7166,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7169,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7173,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeature.cpp:7175,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7179,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrfeature.cpp:7180,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrfeature.cpp:7182,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrfeature.cpp:7182,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrfeature.cpp:7183,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrfeature.cpp:7187,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrfeature.cpp:7187,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrfeature.cpp:7188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:7193,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7196,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrfeature.cpp:7197,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrfeature.cpp:7198,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7208,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:7208,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:7215,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:7217,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7218,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7222,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7223,1
    - Dst: OGRFeature::IsFieldSet
      Src: /src/gdal/ogr/ogrfeature.cpp:7223,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrfeature.cpp:7224,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:7224,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrfeature.cpp:7225,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:7225,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7226,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:7231,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrfeature.cpp:7234,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7235,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrfeature.cpp:7236,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeature.cpp:7236,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7237,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 36
    argCount: 2
    argNames:
    - nValidateFlags
    - bEmitError
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7243
      start: 7151
    functionDepth: 2
    functionLinenumber: 7151
    functionLinenumberEnd: 7243
    functionName: OGRFeature::Validate
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - wkbHasZ
    - OGRFeature::IsFieldSet
    - CPLStrlenUTF8
    - OGRGeometryTypeToName
    - GetGeomFieldDefn
    - wkbSetZ
    - OGRFeature::GetFieldAsString
    - CPLIsUTF8
    - GetFieldDefn
    - CPLError
    - wkbFlatten
    - OGRFeature::GetGeomFieldRef
    - GetName
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int OGRFeature::Validate(int nValidateFlags, int bEmitError) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:7274,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hFeat
    - nValidateFlags
    - bEmitError
    argTypes:
    - OGRFeatureH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7277
      start: 7271
    functionDepth: 0
    functionLinenumber: 7271
    functionLinenumberEnd: 7277
    functionName: OGR_F_Validate
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_F_Validate(OGRFeatureH hFeat, int nValidateFlags, int bEmitError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:7345,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 7348
      start: 7342
    functionDepth: 0
    functionLinenumber: 7342
    functionLinenumberEnd: 7348
    functionName: OGR_F_GetNativeData
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_F_GetNativeData(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeature.cpp:7395,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 7398
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7398
    functionName: OGR_F_GetNativeMediaType
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_F_GetNativeMediaType(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:7423,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:7425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNativeData
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 7426
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7426
    functionName: OGRFeature::SetNativeData
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetNativeData(const char *pszNativeData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7452,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszNativeData
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 7455
      start: 7450
    functionDepth: 0
    functionLinenumber: 7450
    functionLinenumberEnd: 7455
    functionName: OGR_F_SetNativeData
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetNativeData(OGRFeatureH hFeat, const char *pszNativeData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeature.cpp:7480,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:7482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNativeMediaType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 7483
      start: 7478
    functionDepth: 0
    functionLinenumber: 7478
    functionLinenumberEnd: 7483
    functionName: OGRFeature::SetNativeMediaType
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFeature::SetNativeMediaType(const char *pszNativeMediaType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeature.cpp:7509,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeature.cpp:7511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFeat
    - pszNativeMediaType
    argTypes:
    - OGRFeatureH
    - char*
    constantsTouched: []
    func_position:
      end: 7512
      start: 7507
    functionDepth: 0
    functionLinenumber: 7507
    functionLinenumberEnd: 7512
    functionName: OGR_F_SetNativeMediaType
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_F_SetNativeMediaType(OGRFeatureH hFeat, const char *pszNativeMediaType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - puField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 7533
      start: 7528
    functionDepth: 0
    functionLinenumber: 7528
    functionLinenumberEnd: 7533
    functionName: OGR_RawField_IsUnset
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR_RawField_IsUnset(const OGRField *puField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - puField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 7554
      start: 7549
    functionDepth: 0
    functionLinenumber: 7549
    functionLinenumberEnd: 7554
    functionName: OGR_RawField_IsNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR_RawField_IsNull(const OGRField *puField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - puField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 7578
      start: 7573
    functionDepth: 0
    functionLinenumber: 7573
    functionLinenumberEnd: 7578
    functionName: OGR_RawField_SetUnset
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_RawField_SetUnset(OGRField *puField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - puField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 7602
      start: 7597
    functionDepth: 0
    functionLinenumber: 7597
    functionLinenumberEnd: 7602
    functionName: OGR_RawField_SetNull
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_RawField_SetNull(OGRField *puField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 7612
      start: 7609
    functionDepth: 0
    functionLinenumber: 7609
    functionLinenumberEnd: 7612
    functionName: OGRFeatureUniquePtrDeleter::operator()(OGRFeature *poFeature) const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeatureUniquePtrDeleter::operator()(OGRFeature *poFeature)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrfeature.cpp:7626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint8_t
    constantsTouched: []
    func_position:
      end: 7627
      start: 7624
    functionDepth: 1
    functionLinenumber: 7624
    functionLinenumberEnd: 7627
    functionName: WriteUInt8
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::vector<GByte>::push_back
    linkageType: ''
    returnType: void
    signature: void WriteUInt8(std::vector<GByte> &abyBuffer, uint8_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7639,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7639,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7644,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 7648
      start: 7633
    functionDepth: 2
    functionLinenumber: 7633
    functionLinenumberEnd: 7648
    functionName: WriteVarUInt
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - WriteUInt8
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void WriteVarUInt(std::vector<GByte> &abyBuffer, uint64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrfeature.cpp:7659,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7660,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7665,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7666,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7671,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7671,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7680,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7680,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7685,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:7685,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - int64_t
    constantsTouched: []
    func_position:
      end: 7691
      start: 7654
    functionDepth: 2
    functionLinenumber: 7654
    functionLinenumberEnd: 7691
    functionName: WriteVarInt
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - WriteUInt8
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - WriteVarUInt
    - simple_min
    linkageType: ''
    returnType: void
    signature: void WriteVarInt(std::vector<GByte> &abyBuffer, int64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrfeature.cpp:7699,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7700,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrfeature.cpp:7701,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrfeature.cpp:7701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - fVal
    argTypes:
    - std::vector<GByte>
    - float
    constantsTouched: []
    func_position:
      end: 7702
      start: 7697
    functionDepth: 0
    functionLinenumber: 7697
    functionLinenumberEnd: 7702
    functionName: WriteFloat32
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR32
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteFloat32(std::vector<GByte> &abyBuffer, float fVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrfeature.cpp:7710,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7711,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrfeature.cpp:7712,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrfeature.cpp:7712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - dfVal
    argTypes:
    - std::vector<GByte>
    - double
    constantsTouched: []
    func_position:
      end: 7713
      start: 7708
    functionDepth: 0
    functionLinenumber: 7708
    functionLinenumberEnd: 7713
    functionName: WriteFloat64
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR64
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteFloat64(std::vector<GByte> &abyBuffer, double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::clear
      Src: /src/gdal/ogr/ogrfeature.cpp:7740,1
    - Dst: std::vector<GByte>::resize
      Src: /src/gdal/ogr/ogrfeature.cpp:7749,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7751,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrfeature.cpp:7751,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:7759,1
    - Dst: SetFlagBit
      Src: /src/gdal/ogr/ogrfeature.cpp:7762,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:7765,1
    - Dst: SetFlagBit
      Src: /src/gdal/ogr/ogrfeature.cpp:7768,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:7771,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:7772,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7776,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7781,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrfeature.cpp:7786,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7792,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7794,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrfeature.cpp:7795,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrfeature.cpp:7795,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7801,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7803,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7808,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7810,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7815,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrfeature.cpp:7817,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7822,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7827,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:7829,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrfeature.cpp:7830,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrfeature.cpp:7830,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7837,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrfeature.cpp:7838,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrfeature.cpp:7838,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7848,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7849,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7850,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7855,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7856,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrfeature.cpp:7857,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7858,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7863,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7864,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7865,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7866,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7867,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrfeature.cpp:7868,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:7869,1
    - Dst: SetFlagBit
      Src: /src/gdal/ogr/ogrfeature.cpp:7879,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:7883,1
    - Dst: std::vector<GByte>::resize
      Src: /src/gdal/ogr/ogrfeature.cpp:7885,1
    - Dst: exportToWkb
      Src: /src/gdal/ogr/ogrfeature.cpp:7886,1
    - Dst: std::vector<GByte>::data
      Src: /src/gdal/ogr/ogrfeature.cpp:7887,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeature.cpp:7893,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 107
    argCount: 1
    argNames:
    - abyBuffer
    argTypes:
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 7896
      start: 7734
    functionDepth: 2
    functionLinenumber: 7734
    functionLinenumberEnd: 7896
    functionName: OGRFeature::SerializeToBinary
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - exportToWkb
    - WriteFloat64
    - auto::GetType
    - std::vector<GByte>::insert
    - GetFieldDefn
    - CPLError
    - GetFID
    - WriteVarUInt
    - std::vector<GByte>::resize
    - WriteVarInt
    - SetFlagBit
    - std::vector<GByte>::clear
    - std::vector<GByte>::end
    - OGR_RawField_IsNull
    - WriteUInt8
    - WriteFloat32
    - reinterpret_cast<const GByte *>
    - OGR_RawField_IsUnset
    - std::vector<GByte>::data
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::SerializeToBinary(std::vector<GByte> &abyBuffer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:7937,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nOutVal
    argTypes:
    - GByte*
    - GByte*
    - OutType
    constantsTouched: []
    func_position:
      end: 7942
      start: 7907
    functionDepth: 0
    functionLinenumber: 7907
    functionLinenumberEnd: 7942
    functionName: ReadVarUInt
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: bool
    signature: "bool ReadVarUInt(const GByte *&pabyIter, const GByte *pabyEnd,\n                        OutType
      &nOutVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OutType>
      Src: /src/gdal/ogr/ogrfeature.cpp:7963,1
    - Dst: static_cast<OutType>
      Src: /src/gdal/ogr/ogrfeature.cpp:7965,1
    - Dst: static_cast<OutType>
      Src: /src/gdal/ogr/ogrfeature.cpp:7982,1
    - Dst: static_cast<OutType>
      Src: /src/gdal/ogr/ogrfeature.cpp:7984,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:7989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nOutVal
    argTypes:
    - GByte*
    - GByte*
    - OutType
    constantsTouched: []
    func_position:
      end: 7994
      start: 7949
    functionDepth: 0
    functionLinenumber: 7949
    functionLinenumberEnd: 7994
    functionName: ReadVarInt
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OutType>
    - static_cast<int>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW ReadVarInt(const GByte *&pabyIter,
      const GByte *pabyEnd, OutType &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nVal
    argTypes:
    - GByte*
    - GByte*
    - GByte
    constantsTouched: []
    func_position:
      end: 8007
      start: 8000
    functionDepth: 0
    functionLinenumber: 8000
    functionLinenumberEnd: 8007
    functionName: ReadUInt8
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ReadUInt8(const GByte *&pabyIter, const GByte *pabyEnd, GByte
      &nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:8018,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrfeature.cpp:8019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - fVal
    argTypes:
    - GByte*
    - GByte*
    - float
    constantsTouched: []
    func_position:
      end: 8022
      start: 8013
    functionDepth: 0
    functionLinenumber: 8013
    functionLinenumberEnd: 8022
    functionName: ReadFloat32
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: bool
    signature: "bool ReadFloat32(const GByte *&pabyIter, const GByte *pabyEnd,\n                        float
      &fVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:8033,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrfeature.cpp:8034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - dfVal
    argTypes:
    - GByte*
    - GByte*
    - double
    constantsTouched: []
    func_position:
      end: 8037
      start: 8028
    functionDepth: 0
    functionLinenumber: 8028
    functionLinenumberEnd: 8037
    functionName: ReadFloat64
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: bool
    signature: "bool ReadFloat64(const GByte *&pabyIter, const GByte *pabyEnd,\n                        double
      &dfVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::Reset
      Src: /src/gdal/ogr/ogrfeature.cpp:8061,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8073,1
    - Dst: IsFlagBitSet
      Src: /src/gdal/ogr/ogrfeature.cpp:8084,1
    - Dst: IsFlagBitSet
      Src: /src/gdal/ogr/ogrfeature.cpp:8092,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrfeature.cpp:8094,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:8098,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:8099,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8105,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8113,1
    - Dst: ReadFloat64
      Src: /src/gdal/ogr/ogrfeature.cpp:8121,1
    - Dst: ReadVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8128,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrfeature.cpp:8129,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:8133,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8136,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8136,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:8142,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8150,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8155,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8156,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8165,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8174,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8179,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8180,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8189,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8198,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8203,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8204,1
    - Dst: ReadFloat64
      Src: /src/gdal/ogr/ogrfeature.cpp:8213,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8222,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrfeature.cpp:8223,1
    - Dst: static_cast<char **>
      Src: /src/gdal/ogr/ogrfeature.cpp:8228,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8229,1
    - Dst: ReadVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8239,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrfeature.cpp:8240,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:8244,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8247,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8247,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:8250,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8259,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8265,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrfeature.cpp:8265,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrfeature.cpp:8272,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrfeature.cpp:8281,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8282,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8283,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8284,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrfeature.cpp:8292,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8293,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8294,1
    - Dst: ReadFloat32
      Src: /src/gdal/ogr/ogrfeature.cpp:8295,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8296,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrfeature.cpp:8304,1
    - Dst: ReadVarInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8305,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8306,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8307,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8308,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8309,1
    - Dst: ReadFloat32
      Src: /src/gdal/ogr/ogrfeature.cpp:8310,1
    - Dst: ReadUInt8
      Src: /src/gdal/ogr/ogrfeature.cpp:8311,1
    - Dst: IsFlagBitSet
      Src: /src/gdal/ogr/ogrfeature.cpp:8322,1
    - Dst: ReadVarUInt
      Src: /src/gdal/ogr/ogrfeature.cpp:8327,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrfeature.cpp:8331,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrfeature.cpp:8336,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeature.cpp:8337,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 190
    argCount: 2
    argNames:
    - pabyBuffer
    - nSize
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 8348
      start: 8059
    functionDepth: 1
    functionLinenumber: 8059
    functionLinenumberEnd: 8348
    functionName: OGRFeature::DeserializeFromBinary
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - ReadVarUInt
    - ReadUInt8
    - GetGeomFieldDefn
    - auto::GetType
    - static_cast<char **>
    - GetFieldDefn
    - static_cast<GIntBig *>
    - simple_max
    - OGRGeometryFactory::createFromWkb
    - IsFlagBitSet
    - static_cast<double *>
    - VSI_CALLOC_VERBOSE
    - OGR_RawField_SetNull
    - static_cast<GByte *>
    - static_cast<char *>
    - ReadFloat64
    - static_cast<size_t>
    - static_cast<int *>
    - VSI_MALLOC2_VERBOSE
    - ReadVarInt
    - ReadFloat32
    - memset
    - OGRFeature::Reset
    - memcpy
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::DeserializeFromBinary(const GByte *pabyBuffer, size_t
      nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poSelf
    - iFieldIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8368
      start: 8365
    functionDepth: 0
    functionLinenumber: 8365
    functionLinenumberEnd: 8368
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    linkageType: ''
    returnType: void
    signature: void Private(const OGRFeature *poSelf, int iFieldIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poSelf
    - iFieldIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8373
      start: 8370
    functionDepth: 0
    functionLinenumber: 8370
    functionLinenumberEnd: 8373
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(OGRFeature *poSelf, int iFieldIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poSelf
    - iFieldIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8386
      start: 8383
    functionDepth: 0
    functionLinenumber: 8383
    functionLinenumberEnd: 8386
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(const OGRFeature *poSelf, int iFieldIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrfeature.cpp:8392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - nPos
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8395
      start: 8390
    functionDepth: 0
    functionLinenumber: 8390
    functionLinenumberEnd: 8395
    functionName: "OGRFeature::ConstFieldIterator::ConstFieldIterator(const OGRFeature
      *poSelf,\n                                                   int nPos)"
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: "void OGRFeature::ConstFieldIterator::ConstFieldIterator(const OGRFeature
      *poSelf,\n                                                   int nPos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8397
      start: 8397
    functionDepth: 0
    functionLinenumber: 8397
    functionLinenumberEnd: 8397
    functionName: OGRFeature::ConstFieldIterator::~ConstFieldIterator()
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeature::ConstFieldIterator::~ConstFieldIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8402
      start: 8399
    functionDepth: 0
    functionLinenumber: 8399
    functionLinenumberEnd: 8402
    functionName: '&OGRFeature::ConstFieldIterator::operator*() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::ConstFieldIterator::operator*()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8409
      start: 8404
    functionDepth: 0
    functionLinenumber: 8404
    functionLinenumberEnd: 8409
    functionName: '&OGRFeature::ConstFieldIterator::operator++()'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator &OGRFeature::ConstFieldIterator::operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - ConstFieldIterator
    constantsTouched: []
    func_position:
      end: 8415
      start: 8411
    functionDepth: 0
    functionLinenumber: 8411
    functionLinenumberEnd: 8415
    functionName: "OGRFeature::ConstFieldIterator::operator!=(\n    const ConstFieldIterator
      &it) const"
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeature::ConstFieldIterator::operator!=(\n    const ConstFieldIterator
      &it) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 0
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: OGRFeature::begin
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator OGRFeature::begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrfeature.cpp:8426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8427
      start: 8424
    functionDepth: 1
    functionLinenumber: 8424
    functionLinenumberEnd: 8427
    functionName: OGRFeature::end
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator OGRFeature::end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrfeature.cpp:8434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poFeature
    - iFieldIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8436
      start: 8433
    functionDepth: 0
    functionLinenumber: 8433
    functionLinenumberEnd: 8436
    functionName: OGRFeature::FieldValue::FieldValue(const OGRFeature *poFeature,
      int iFieldIndex)
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::FieldValue(const OGRFeature *poFeature,
      int iFieldIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrfeature.cpp:8439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poFeature
    - iFieldIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 8441
      start: 8438
    functionDepth: 0
    functionLinenumber: 8438
    functionLinenumberEnd: 8441
    functionName: OGRFeature::FieldValue::FieldValue(OGRFeature *poFeature, int iFieldIndex)
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::FieldValue(OGRFeature *poFeature, int
      iFieldIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldValue::GetType
      Src: /src/gdal/ogr/ogrfeature.cpp:8449,1
    - Dst: FieldValue::IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:8450,1
    - Dst: SetNull
      Src: /src/gdal/ogr/ogrfeature.cpp:8451,1
    - Dst: FieldValue::IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:8452,1
    - Dst: Unset
      Src: /src/gdal/ogr/ogrfeature.cpp:8453,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8455,1
    - Dst: FieldValue::GetInteger
      Src: /src/gdal/ogr/ogrfeature.cpp:8456,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8458,1
    - Dst: FieldValue::GetInteger64
      Src: /src/gdal/ogr/ogrfeature.cpp:8459,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8461,1
    - Dst: FieldValue::GetDouble
      Src: /src/gdal/ogr/ogrfeature.cpp:8462,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8464,1
    - Dst: FieldValue::GetString
      Src: /src/gdal/ogr/ogrfeature.cpp:8465,1
    - Dst: FieldValue::GetDateTime
      Src: /src/gdal/ogr/ogrfeature.cpp:8476,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8478,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8484,1
    - Dst: FieldValue::m_poPrivate::m_poSelf::GetFieldAsStringList
      Src: /src/gdal/ogr/ogrfeature.cpp:8486,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - FieldValue
    constantsTouched: []
    func_position:
      end: 8503
      start: 8443
    functionDepth: 1
    functionLinenumber: 8443
    functionLinenumberEnd: 8503
    functionName: '&OGRFeature::FieldValue::Assign(const FieldValue &oOther)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - FieldValue::m_poPrivate::m_poSelf::GetFieldAsStringList
    - FieldValue::GetString
    - FieldValue::GetDateTime
    - FieldValue::GetType
    - FieldValue::IsUnset
    - m_poSelf::SetField
    - FieldValue::IsNull
    - SetNull
    - FieldValue::GetInteger64
    - FieldValue::GetDouble
    - Unset
    - FieldValue::GetInteger
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::Assign(const FieldValue
      &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/gdal/ogr/ogrfeature.cpp:8508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - FieldValue
    constantsTouched: []
    func_position:
      end: 8509
      start: 8505
    functionDepth: 0
    functionLinenumber: 8505
    functionLinenumberEnd: 8509
    functionName: '&

      OGRFeature::FieldValue::operator=(const FieldValue &oOther)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - Assign
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const FieldValue &oOther)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/gdal/ogr/ogrfeature.cpp:8514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - FieldValue
    constantsTouched: []
    func_position:
      end: 8515
      start: 8512
    functionDepth: 0
    functionLinenumber: 8512
    functionLinenumberEnd: 8515
    functionName: '&OGRFeature::FieldValue::operator=(FieldValue &&oOther)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - Assign
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::operator=(FieldValue
      &&oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 8523
      start: 8519
    functionDepth: 1
    functionLinenumber: 8519
    functionLinenumberEnd: 8523
    functionName: '&OGRFeature::FieldValue::operator=(int nVal)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::operator=(int nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 8529
      start: 8525
    functionDepth: 1
    functionLinenumber: 8525
    functionLinenumberEnd: 8529
    functionName: '&OGRFeature::FieldValue::operator=(GIntBig nVal)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::operator=(GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 8535
      start: 8531
    functionDepth: 1
    functionLinenumber: 8531
    functionLinenumberEnd: 8535
    functionName: '&OGRFeature::FieldValue::operator=(double dfVal)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::operator=(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 8541
      start: 8537
    functionDepth: 1
    functionLinenumber: 8537
    functionLinenumberEnd: 8541
    functionName: '&OGRFeature::FieldValue::operator=(const char *pszVal)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: OGRFeature::FieldValue &OGRFeature::FieldValue::operator=(const char
      *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8546,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:8546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - osVal
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 8548
      start: 8543
    functionDepth: 1
    functionLinenumber: 8543
    functionLinenumberEnd: 8548
    functionName: '&

      OGRFeature::FieldValue::operator=(const std::string &osVal)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const std::string &osVal)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8553,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:8554,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrfeature.cpp:8554,1
    - Dst: std::vector<int>::empty
      Src: /src/gdal/ogr/ogrfeature.cpp:8555,1
    - Dst: std::vector<int>::data
      Src: /src/gdal/ogr/ogrfeature.cpp:8555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - oArray
    argTypes:
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 8557
      start: 8550
    functionDepth: 1
    functionLinenumber: 8550
    functionLinenumberEnd: 8557
    functionName: '&

      OGRFeature::FieldValue::operator=(const std::vector<int> &oArray)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::vector<int>::size
    - static_cast<int>
    - std::vector<int>::empty
    - std::vector<int>::data
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const std::vector<int> &oArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8562,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:8563,1
    - Dst: std::vector<GIntBig>::size
      Src: /src/gdal/ogr/ogrfeature.cpp:8563,1
    - Dst: std::vector<GIntBig>::empty
      Src: /src/gdal/ogr/ogrfeature.cpp:8564,1
    - Dst: std::vector<GIntBig>::data
      Src: /src/gdal/ogr/ogrfeature.cpp:8564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - oArray
    argTypes:
    - std::vector<GIntBig>
    constantsTouched: []
    func_position:
      end: 8566
      start: 8559
    functionDepth: 1
    functionLinenumber: 8559
    functionLinenumberEnd: 8566
    functionName: '&

      OGRFeature::FieldValue::operator=(const std::vector<GIntBig> &oArray)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - std::vector<GIntBig>::data
    - static_cast<int>
    - m_poSelf::SetField
    - std::vector<GIntBig>::size
    - std::vector<GIntBig>::empty
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const std::vector<GIntBig> &oArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8571,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeature.cpp:8572,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrfeature.cpp:8572,1
    - Dst: std::vector<double>::empty
      Src: /src/gdal/ogr/ogrfeature.cpp:8573,1
    - Dst: std::vector<double>::data
      Src: /src/gdal/ogr/ogrfeature.cpp:8573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - oArray
    argTypes:
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 8575
      start: 8568
    functionDepth: 1
    functionLinenumber: 8568
    functionLinenumberEnd: 8575
    functionName: '&

      OGRFeature::FieldValue::operator=(const std::vector<double> &oArray)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector<double>::size
    - std::vector<double>::data
    - m_poSelf::SetField
    - std::vector<double>::empty
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const std::vector<double> &oArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrfeature.cpp:8580,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrfeature.cpp:8582,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrfeature.cpp:8582,1
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8583,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrfeature.cpp:8583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - oArray
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 8585
      start: 8577
    functionDepth: 1
    functionLinenumber: 8577
    functionLinenumberEnd: 8585
    functionName: '&

      OGRFeature::FieldValue::operator=(const std::vector<std::string> &oArray)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLStringList::AddString
    - m_poSelf::SetField
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(const std::vector<std::string> &oArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszValues
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 8592
      start: 8587
    functionDepth: 1
    functionLinenumber: 8587
    functionLinenumberEnd: 8592
    functionName: '&

      OGRFeature::FieldValue::operator=(CSLConstList papszValues)'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: OGRFeature::FieldValue
    signature: 'OGRFeature::FieldValue &

      OGRFeature::FieldValue::operator=(CSLConstList papszValues)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - fSecond
    - nTZFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - float
    - int
    constantsTouched: []
    func_position:
      end: 8600
      start: 8594
    functionDepth: 1
    functionLinenumber: 8594
    functionLinenumberEnd: 8600
    functionName: "OGRFeature::FieldValue::SetDateTime(int nYear, int nMonth, int
      nDay,\n                                         int nHour, int nMinute, float
      fSecond,\n                                         int nTZFlag)"
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetField
    linkageType: ''
    returnType: void
    signature: "void OGRFeature::FieldValue::SetDateTime(int nYear, int nMonth, int
      nDay,\n                                         int nHour, int nMinute, float
      fSecond,\n                                         int nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::SetFieldNull
      Src: /src/gdal/ogr/ogrfeature.cpp:8604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8605
      start: 8602
    functionDepth: 0
    functionLinenumber: 8602
    functionLinenumberEnd: 8605
    functionName: OGRFeature::FieldValue::SetNull()
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::SetFieldNull
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::SetNull()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::UnsetField
      Src: /src/gdal/ogr/ogrfeature.cpp:8609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8610
      start: 8607
    functionDepth: 0
    functionLinenumber: 8607
    functionLinenumberEnd: 8610
    functionName: OGRFeature::FieldValue::clear()
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::UnsetField
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8613
      start: 8613
    functionDepth: 0
    functionLinenumber: 8613
    functionLinenumberEnd: 8613
    functionName: OGRFeature::FieldValue::~FieldValue()
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::~FieldValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8620
      start: 8617
    functionDepth: 0
    functionLinenumber: 8617
    functionLinenumberEnd: 8620
    functionName: OGRFeature::FieldValue::GetIndex() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRFeature::FieldValue::GetIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrfeature.cpp:8624,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8625
      start: 8622
    functionDepth: 1
    functionLinenumber: 8622
    functionLinenumberEnd: 8625
    functionName: '*OGRFeature::FieldValue::GetDefn() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::GetFieldDefnRef
    - GetIndex
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *OGRFeature::FieldValue::GetDefn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8630
      start: 8627
    functionDepth: 0
    functionLinenumber: 8627
    functionLinenumberEnd: 8630
    functionName: '*OGRFeature::FieldValue::GetRawValue() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetIndex
    linkageType: ''
    returnType: OGRField
    signature: OGRField *OGRFeature::FieldValue::GetRawValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:8634,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrfeature.cpp:8634,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogrfeature.cpp:8634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8635
      start: 8632
    functionDepth: 1
    functionLinenumber: 8632
    functionLinenumberEnd: 8635
    functionName: OGRFeature::FieldValue::IsUnset() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetRawValue
    - OGR_RawField_IsUnset
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::FieldValue::IsUnset() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:8639,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrfeature.cpp:8639,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogrfeature.cpp:8639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8640
      start: 8637
    functionDepth: 1
    functionLinenumber: 8637
    functionLinenumberEnd: 8640
    functionName: OGRFeature::FieldValue::IsNull() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - GetRawValue
    - OGR_RawField_IsNull
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRFeature::FieldValue::IsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8644,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8642
    functionDepth: 0
    functionLinenumber: 8642
    functionLinenumberEnd: 8646
    functionName: OGRFeature::FieldValue::GetAsInteger() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - GetIndex
    linkageType: ''
    returnType: int
    signature: int OGRFeature::FieldValue::GetAsInteger() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8650,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8652
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8652
    functionName: OGRFeature::FieldValue::GetAsInteger64() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - GetIndex
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRFeature::FieldValue::GetAsInteger64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8656,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8658
      start: 8654
    functionDepth: 0
    functionLinenumber: 8654
    functionLinenumberEnd: 8658
    functionName: OGRFeature::FieldValue::GetAsDouble() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - GetIndex
    linkageType: ''
    returnType: double
    signature: double OGRFeature::FieldValue::GetAsDouble() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8662,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8664
      start: 8660
    functionDepth: 0
    functionLinenumber: 8660
    functionLinenumberEnd: 8664
    functionName: '*OGRFeature::FieldValue::GetAsString() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - GetIndex
    linkageType: ''
    returnType: char
    signature: char *OGRFeature::FieldValue::GetAsString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeature.cpp:8670,1
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8670,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pnYear
    - pnMonth
    - pnDay
    - pnHour
    - pnMinute
    - pfSecond
    - pnTZFlag
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - float*
    - int*
    constantsTouched: []
    func_position:
      end: 8674
      start: 8666
    functionDepth: 1
    functionLinenumber: 8666
    functionLinenumberEnd: 8674
    functionName: "OGRFeature::FieldValue::GetDateTime(int *pnYear, int *pnMonth,
      int *pnDay,\n                                         int *pnHour, int *pnMinute,\n
      \                                        float *pfSecond, int *pnTZFlag) const"
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - CPL_TO_BOOL
    - GetIndex
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeature::FieldValue::GetDateTime(int *pnYear, int *pnMonth,
      int *pnDay,\n                                         int *pnHour, int *pnMinute,\n
      \                                        float *pfSecond, int *pnTZFlag) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8679,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8680,1
    - Dst: m_anList::assign
      Src: /src/gdal/ogr/ogrfeature.cpp:8681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8683
      start: 8676
    functionDepth: 0
    functionLinenumber: 8676
    functionLinenumberEnd: 8683
    functionName: '&OGRFeature::FieldValue::GetAsIntegerList() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - m_anList::assign
    - GetIndex
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> &OGRFeature::FieldValue::GetAsIntegerList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8688,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8689,1
    - Dst: m_anList64::assign
      Src: /src/gdal/ogr/ogrfeature.cpp:8690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8692
      start: 8685
    functionDepth: 0
    functionLinenumber: 8685
    functionLinenumberEnd: 8692
    functionName: '&OGRFeature::FieldValue::GetAsInteger64List() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - m_anList64::assign
    - GetIndex
    linkageType: ''
    returnType: std::vector<GIntBig>
    signature: std::vector<GIntBig> &OGRFeature::FieldValue::GetAsInteger64List()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8697,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8698,1
    - Dst: m_adfList::assign
      Src: /src/gdal/ogr/ogrfeature.cpp:8699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8701
      start: 8694
    functionDepth: 0
    functionLinenumber: 8694
    functionLinenumberEnd: 8701
    functionName: '&OGRFeature::FieldValue::GetAsDoubleList() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - m_adfList::assign
    - GetIndex
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> &OGRFeature::FieldValue::GetAsDoubleList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8705,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8706,1
    - Dst: m_aosList::clear
      Src: /src/gdal/ogr/ogrfeature.cpp:8707,1
    - Dst: m_aosList::emplace_back
      Src: /src/gdal/ogr/ogrfeature.cpp:8712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8716
      start: 8703
    functionDepth: 0
    functionLinenumber: 8703
    functionLinenumberEnd: 8716
    functionName: '&OGRFeature::FieldValue::GetAsStringList() const'
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - m_aosList::emplace_back
    - m_aosList::clear
    - GetIndex
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> &OGRFeature::FieldValue::GetAsStringList()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<CSLConstList>
      Src: /src/gdal/ogr/ogrfeature.cpp:8720,1
    - Dst: const_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeature.cpp:8721,1
    - Dst: GetIndex
      Src: /src/gdal/ogr/ogrfeature.cpp:8722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8718
    functionDepth: 0
    functionLinenumber: 8718
    functionLinenumberEnd: 8723
    functionName: OGRFeature::FieldValue::operator CSLConstList() const
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRFeature *>
    - GetIndex
    - const_cast<CSLConstList>
    linkageType: ''
    returnType: void
    signature: void OGRFeature::FieldValue::operator CSLConstList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRRangeFieldDomain::OGRRangeFieldDomain
      Src: /src/gdal/ogr/ogrfeature.cpp:8727,1
    - Dst: auto::SetMergePolicy
      Src: /src/gdal/ogr/ogrfeature.cpp:8730,1
    - Dst: auto::SetSplitPolicy
      Src: /src/gdal/ogr/ogrfeature.cpp:8731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8733
      start: 8725
    functionDepth: 0
    functionLinenumber: 8725
    functionLinenumberEnd: 8733
    functionName: OGRRangeFieldDomain::Clone
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - auto::SetMergePolicy
    - OGRRangeFieldDomain::OGRRangeFieldDomain
    - auto::SetSplitPolicy
    linkageType: ''
    returnType: OGRRangeFieldDomain
    signature: OGRRangeFieldDomain *OGRRangeFieldDomain::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGlobFieldDomain::OGRGlobFieldDomain
      Src: /src/gdal/ogr/ogrfeature.cpp:8737,1
    - Dst: auto::SetMergePolicy
      Src: /src/gdal/ogr/ogrfeature.cpp:8739,1
    - Dst: auto::SetSplitPolicy
      Src: /src/gdal/ogr/ogrfeature.cpp:8740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8742
      start: 8735
    functionDepth: 0
    functionLinenumber: 8735
    functionLinenumberEnd: 8742
    functionName: OGRGlobFieldDomain::Clone
    functionSourceFile: /src/gdal/ogr/ogrfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRGlobFieldDomain::OGRGlobFieldDomain
    - auto::SetMergePolicy
    - auto::SetSplitPolicy
    linkageType: ''
    returnType: OGRGlobFieldDomain
    signature: OGRGlobFieldDomain *OGRGlobFieldDomain::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nVal
    - nBitsPrecision
    argTypes:
    - uint64_t
    - int
    constantsTouched: []
    func_position:
      end: 267
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 267
    functionName: OGRRoundValueIEEE754
    functionSourceFile: /src/gdal/ogr/ogr_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t OGRRoundValueIEEE754(uint64_t nVal, int nBitsPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:289,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogr_p.h:290,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:291,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:293,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogr_p.h:295,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - nBitsPrecision
    - pabyBase
    - nPoints
    argTypes:
    - int
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 300
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 300
    functionName: OGRRoundCoordinatesIEEE754XYValues
    functionSourceFile: /src/gdal/ogr/ogr_p.h
    functionUses: 0
    functionsReached:
    - memcpy
    - OGRRoundValueIEEE754
    linkageType: ''
    returnType: void
    signature: "void OGRRoundCoordinatesIEEE754XYValues(int nBitsPrecision,\n                                               GByte
      *pabyBase, size_t nPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:320,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogr_p.h:321,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_p.h:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - nBitsPrecision
    - pabyBase
    - nPoints
    argTypes:
    - int
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: OGRRoundCoordinatesIEEE754
    functionSourceFile: /src/gdal/ogr/ogr_p.h
    functionUses: 0
    functionsReached:
    - memcpy
    - OGRRoundValueIEEE754
    linkageType: ''
    returnType: void
    signature: "void OGRRoundCoordinatesIEEE754(int nBitsPrecision, GByte *pabyBase,\n
      \                                      size_t nPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:54,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - papszLines
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: OSRImportFromOzi
    functionSourceFile: /src/gdal/ogr/ogr_srs_ozi.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromOzi(OGRSpatialReferenceH hSRS,\n                        const
      char *const *papszLines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:83,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:93,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:97,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:114,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:119,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:123,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:125,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:132,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:133,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:135,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:137,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:139,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:139,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:139,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:140,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:140,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:141,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:143,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:145,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:147,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:147,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:147,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:148,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:148,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:149,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:149,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:151,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:153,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:155,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:155,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:155,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:156,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:158,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:160,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:162,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:162,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:162,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:163,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:163,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:164,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:164,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:166,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:174,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:181,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:181,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:182,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:184,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:187,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:187,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:188,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:201,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:207,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:209,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:216,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:242,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:245,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:246,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:250,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:254,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:256,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:258,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:260,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:262,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:264,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:266,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:268,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:346,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:347,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:348,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:354,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:360,1
    - Dst: CSVScanFileByName
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:367,1
    - Dst: CSVFilename
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:370,1
    - Dst: CSVFilename
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:374,1
    - Dst: CSVGetField
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:384,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:388,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:400,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:401,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:402,1
    - Dst: CSVGetField
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:407,1
    - Dst: CSVScanFileByName
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:422,1
    - Dst: CSVFilename
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:426,1
    - Dst: CSVFilename
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:431,1
    - Dst: CSVGetField
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:443,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:447,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:449,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:465,1
    - Dst: OGRSpatialReference::SetTOWGS84
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:466,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:473,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:473,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:474,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:476,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:477,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:478,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:484,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:485,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:486,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:492,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:493,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_ozi.cpp:494,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 162
    argCount: 1
    argNames:
    - papszLines
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 497
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 497
    functionName: OGRSpatialReference::importFromOzi
    functionSourceFile: /src/gdal/ogr/ogr_srs_ozi.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - OGRSpatialReference::SetGeogCS
    - CPLDebug
    - OGRSpatialReference::SetLCC1SP
    - OGRSpatialReference::CopyGeogCSFrom
    - OGRSpatialReference::SetTOWGS84
    - CPLString
    - CPLError
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetACEA
    - CSVScanFileByName
    - OGRSpatialReference::SetLCC
    - CSVGetField
    - CPLString::c_str
    - OGRSpatialReference::IsLocal
    - CSLTokenizeString2
    - CSLCount
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - static_cast<int>
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::Clear
    - CSVFilename
    - OGRSpatialReference::SetLinearUnits
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetMercator
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromOzi(const char *const *papszLines)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfCenterLong
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: GetZoneNumberGK
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetZoneNumberGK(double dfCenterLong)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfCenterLong
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: GetZoneNumberUTM
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetZoneNumberUTM(double dfCenterLong)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: IsNone
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNone(long val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:223,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - iProjSys
    - iDatum
    - iEllips
    - padfPrjParams
    argTypes:
    - OGRSpatialReferenceH
    - long
    - long
    - long
    - double*
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: OSRImportFromPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromPanorama(OGRSpatialReferenceH hSRS, long iProjSys,\n
      \                            long iDatum, long iEllips, double *padfPrjParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:355,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:363,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:366,1
    - Dst: IsNone
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:374,1
    - Dst: IsNone
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:375,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:384,1
    - Dst: IsNone
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:387,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:397,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:415,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:430,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:441,1
    - Dst: OGRSpatialReference::SetWagner
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:446,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:450,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:456,1
    - Dst: OGRSpatialReference::SetPolyconic
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:461,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:467,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:473,1
    - Dst: GetZoneNumberGK
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:490,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:494,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:500,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:506,1
    - Dst: OGRSpatialReference::SetAE
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:512,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:517,1
    - Dst: OGRSpatialReference::SetMollweide
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:523,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:528,1
    - Dst: OGRSpatialReference::SetEquirectangular
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:533,1
    - Dst: OGRSpatialReference::SetCEA
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:539,1
    - Dst: OGRSpatialReference::SetIWMPolyconic
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:544,1
    - Dst: OGRSpatialReference::SetMC
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:550,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:567,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:573,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:574,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:574,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:583,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:587,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:588,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:589,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:593,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:594,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:595,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:599,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:600,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:601,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:605,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:606,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:607,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:616,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:620,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:621,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:623,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:627,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:631,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:635,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:638,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:642,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:646,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:653,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:653,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:655,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 147
    argCount: 5
    argNames:
    - iProjSys
    - iDatum
    - iEllips
    - padfPrjParams
    - bNorth
    argTypes:
    - long
    - long
    - long
    - double*
    - bool
    constantsTouched: []
    func_position:
      end: 659
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 659
    functionName: OGRSpatialReference::importFromPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetMollweide
    - OGRSpatialReference::SetGeogCS
    - GetZoneNumberGK
    - OGRSpatialReference::SetCEA
    - IsNone
    - CPLDebug
    - OGRSpatialReference::CopyGeogCSFrom
    - OGRSpatialReference::SetAuthority
    - OGRSpatialReference::SetEquirectangular
    - CPLString
    - OGRSpatialReference::SetWagner
    - CPLError
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - OGRSpatialReference::IsLocal
    - OGRSpatialReference::importFromEPSG
    - static_cast<int>
    - OGRSpatialReference::SetMC
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetEC
    - std::copy
    - OGRSpatialReference::SetGnomonic
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::SetPolyconic
    - OGRSpatialReference::Clear
    - OGRSpatialReference::SetLinearUnits
    - CPLFree
    - OSRGetEllipsoidInfo
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetIWMPolyconic
    - OGRSpatialReference::SetTM
    - OGRSpatialReference::SetAE
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetMercator
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromPanorama(long iProjSys, long
      iDatum,\n                                               long iEllips,\n                                               double
      *padfPrjParams,\n                                               bool bNorth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:701,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:707,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:708,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:709,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:712,1
    - Dst: OGRSpatialReference::IsVertical
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:719,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:721,1
    - Dst: OGRSpatialReference::SetVertCS
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:729,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:729,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:729,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - iVCS
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 739
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 739
    functionName: OGRSpatialReference::importVertCSFromPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetAxisMappingStrategy
    - OGRSpatialReference::SetVertCS
    - OGRSpatialReference::IsVertical
    - OGRSpatialReference::GetAttrValue
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importVertCSFromPanorama(int iVCS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:746,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:749,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:752,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:771,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:772,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:773,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:773,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - piVert
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 786
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 786
    functionName: OGRSpatialReference::exportVertCSToPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::OGRSpatialReference
    - atoi
    - CPLDebug
    - EQUAL
    - OGRSpatialReference::GetAttrValue
    - OGRSpatialReference::GetAuthorityCode
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::exportVertCSToPanorama(int *piVert) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:802,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:803,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:804,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:805,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:806,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - hSRS
    - piProjSys
    - piDatum
    - piEllips
    - piZone
    - padfPrjParams
    argTypes:
    - OGRSpatialReferenceH
    - long*
    - long*
    - long*
    - long*
    - double*
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: OSRExportToPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToPanorama(OGRSpatialReferenceH hSRS, long *piProjSys,\n
      \                          long *piDatum, long *piEllips, long *piZone,\n                           double
      *padfPrjParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:845,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:849,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:852,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:856,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:871,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:875,1
    - Dst: OGRSpatialReference::IsGeocentric
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:875,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:890,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:895,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:899,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:901,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:902,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:903,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:904,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:906,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:910,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:912,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:913,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:914,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:917,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:921,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:923,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:924,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:925,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:927,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:931,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:933,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:935,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:937,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:938,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:939,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:941,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:945,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:947,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:949,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:951,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:952,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:953,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:955,1
    - Dst: OGRSpatialReference::GetUTMZone
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:959,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:961,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:964,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:965,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:966,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:967,1
    - Dst: GetZoneNumberGK
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:978,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:982,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:985,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:986,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:988,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:992,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:994,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:995,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:996,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:997,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:999,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1003,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1005,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1006,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1007,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1009,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1013,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1015,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1016,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1017,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1019,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1023,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1024,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1025,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1027,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1031,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1033,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1034,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1035,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1037,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1041,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1043,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1044,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1045,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1047,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1051,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1053,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1054,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1055,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1057,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1061,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1063,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1065,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1066,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1067,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1072,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1089,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1094,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1099,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1112,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1126,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1128,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1129,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_panorama.cpp:1140,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 183
    argCount: 5
    argNames:
    - piProjSys
    - piDatum
    - piEllips
    - piZone
    - padfPrjParams
    argTypes:
    - long*
    - long*
    - long*
    - long*
    - double*
    constantsTouched: []
    func_position:
      end: 1150
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 1150
    functionName: OGRSpatialReference::exportToPanorama
    functionSourceFile: /src/gdal/ogr/ogr_srs_panorama.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::IsGeocentric
    - atoi
    - GetZoneNumberGK
    - CPLDebug
    - EQUAL
    - std::abs
    - CPLAssert
    - OGRSpatialReference::GetAuthorityCode
    - OGRSpatialReference::GetNormProjParm
    - OGRSpatialReference::GetUTMZone
    - OSRGetEllipsoidInfo
    - OGRSpatialReference::IsLocal
    - OGRSpatialReference::IsGeographic
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToPanorama(long *piProjSys, long
      *piDatum,\n                                             long *piEllips, long
      *piZone,\n                                             double *padfPrjParams)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/swq_op_general.cpp:72,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/swq_op_general.cpp:80,1
    - Dst: swq_test_like
      Src: /src/gdal/ogr/swq_op_general.cpp:95,1
    - Dst: utf8codepointcalcsize
      Src: /src/gdal/ogr/swq_op_general.cpp:119,1
    - Dst: reinterpret_cast<const utf8_int8_t *>
      Src: /src/gdal/ogr/swq_op_general.cpp:120,1
    - Dst: IsStringLongEnough
      Src: /src/gdal/ogr/swq_op_general.cpp:121,1
    - Dst: utf8codepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:124,1
    - Dst: reinterpret_cast<const utf8_int8_t *>
      Src: /src/gdal/ogr/swq_op_general.cpp:124,1
    - Dst: utf8codepointcalcsize
      Src: /src/gdal/ogr/swq_op_general.cpp:127,1
    - Dst: reinterpret_cast<const utf8_int8_t *>
      Src: /src/gdal/ogr/swq_op_general.cpp:128,1
    - Dst: IsStringLongEnough
      Src: /src/gdal/ogr/swq_op_general.cpp:129,1
    - Dst: utf8codepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:132,1
    - Dst: reinterpret_cast<const utf8_int8_t *>
      Src: /src/gdal/ogr/swq_op_general.cpp:132,1
    - Dst: utf8uprcodepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:136,1
    - Dst: utf8uprcodepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:137,1
    - Dst: utf8lwrcodepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:138,1
    - Dst: utf8lwrcodepoint
      Src: /src/gdal/ogr/swq_op_general.cpp:139,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/swq_op_general.cpp:149,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq_op_general.cpp:149,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/swq_op_general.cpp:150,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq_op_general.cpp:150,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_op_general.cpp:162,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 5
    argNames:
    - input
    - pattern
    - chEscape
    - insensitive
    - bUTF8Strings
    argTypes:
    - char*
    - char*
    - char
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 166
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 166
    functionName: swq_test_like
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 1
    functionsReached:
    - utf8codepointcalcsize
    - reinterpret_cast<const utf8_int8_t *>
    - utf8codepoint
    - IsStringLongEnough
    - static_cast<unsigned char>
    - static_cast<unsigned int>
    - utf8uprcodepoint
    - utf8lwrcodepoint
    - CPLTolower
    - swq_test_like
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int swq_test_like(const char *input, const char *pattern, char chEscape,\n
      \                 bool insensitive, bool bUTF8Strings)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - pszIter
    - bIsKey
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 209
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 209
    functionName: OGRHStoreCheckEnd
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRHStoreCheckEnd(char *pszIter, int bIsKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHStoreCheckEnd
      Src: /src/gdal/ogr/swq_op_general.cpp:224,1
    - Dst: OGRHStoreCheckEnd
      Src: /src/gdal/ogr/swq_op_general.cpp:242,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - pszIter
    - ppszOut
    - bIsKey
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 280
    functionName: OGRHStoreGetNextString
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - OGRHStoreCheckEnd
    linkageType: ''
    returnType: char
    signature: char *OGRHStoreGetNextString(char *pszIter, char **ppszOut, int bIsKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHStoreGetNextString
      Src: /src/gdal/ogr/swq_op_general.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pszHStore
    - ppszKey
    - ppszValue
    argTypes:
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: OGRHStoreGetNextKeyValue
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - OGRHStoreGetNextString
    linkageType: ''
    returnType: char
    signature: "char *OGRHStoreGetNextKeyValue(char *pszHStore, char **ppszKey,\n
      \                                     char **ppszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHStoreGetNextKeyValue
      Src: /src/gdal/ogr/swq_op_general.cpp:301,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_op_general.cpp:306,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_op_general.cpp:308,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_op_general.cpp:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - pszHStore
    - pszSearchedKey
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: OGRHStoreGetValue
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - OGRHStoreGetNextKeyValue
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *OGRHStoreGetValue(const char *pszHStore, const char *pszSearchedKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_op_general.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: OGRFormatDate
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRFormatDate(const OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:361,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:364,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq_op_general.cpp:366,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:368,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq_op_general.cpp:370,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:390,1
    - Dst: fmod
      Src: /src/gdal/ogr/swq_op_general.cpp:503,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_op_general.cpp:509,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:518,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:521,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:533,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:640,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:641,1
    - Dst: v
      Src: /src/gdal/ogr/swq_op_general.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:646,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:654,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:655,1
    - Dst: v
      Src: /src/gdal/ogr/swq_op_general.cpp:654,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:660,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:668,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:669,1
    - Dst: v
      Src: /src/gdal/ogr/swq_op_general.cpp:668,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:674,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:687,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/swq_op_general.cpp:688,1
    - Dst: v
      Src: /src/gdal/ogr/swq_op_general.cpp:687,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:693,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_op_general.cpp:708,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:730,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/swq_op_general.cpp:739,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/swq_op_general.cpp:740,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:741,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq_op_general.cpp:744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:747,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq_op_general.cpp:755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:757,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:768,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:772,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:776,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:780,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:784,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq_op_general.cpp:790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:793,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:801,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:802,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq_op_general.cpp:825,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:828,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/swq_op_general.cpp:836,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_op_general.cpp:852,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:864,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_op_general.cpp:881,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:899,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:900,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_op_general.cpp:901,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:902,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:905,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/swq_op_general.cpp:915,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:917,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:924,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:925,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:927,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_op_general.cpp:929,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:930,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/swq_op_general.cpp:941,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_op_general.cpp:943,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:955,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:971,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:986,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1001,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1016,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1031,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1056,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1082,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1084,1
    - Dst: swq_test_like
      Src: /src/gdal/ogr/swq_op_general.cpp:1103,1
    - Dst: swq_test_like
      Src: /src/gdal/ogr/swq_op_general.cpp:1123,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_op_general.cpp:1142,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1152,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1153,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1155,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1162,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1163,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1165,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1194,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq_op_general.cpp:1194,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/swq_op_general.cpp:1195,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_op_general.cpp:1197,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_op_general.cpp:1214,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_op_general.cpp:1221,1
    CyclomaticComplexity: 197
    EdgeCount: 197
    ICount: 492
    argCount: 3
    argNames:
    - node
    - sub_node_values
    - sContext
    argTypes:
    - swq_expr_node*
    - swq_expr_node**
    - swq_evaluation_context
    constantsTouched: []
    func_position:
      end: 1229
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 1229
    functionName: SWQGeneralEvaluator
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - v
    - OGR_RawField_SetUnset
    - strcmp
    - CPLError
    - EQUALN
    - CPLString::resize
    - CPLStrdup
    - fmod
    - CPLString::size
    - strlen
    - static_cast<int>
    - swq_expr_node::swq_expr_node
    - SWQ_IS_INTEGER
    - CPLAssert
    - strcasecmp
    - CPLSM
    - static_cast<double>
    - OGRCompareDate
    - swq_test_like
    - OGRParseDate
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *SWQGeneralEvaluator(swq_expr_node *node,\n                                   swq_expr_node
      **sub_node_values,\n                                   const swq_evaluation_context
      &sContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1249,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1260,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq_op_general.cpp:1265,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1278
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1278
    functionName: SWQAutoPromoteIntegerToInteger64OrFloat
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - SWQ_IS_INTEGER
    linkageType: ''
    returnType: void
    signature: void SWQAutoPromoteIntegerToInteger64OrFloat(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1319
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1319
    functionName: SWQAutoPromoteStringToDateTime
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SWQAutoPromoteStringToDateTime(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1341,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1343,1
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/swq_op_general.cpp:1361,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1364,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/swq_op_general.cpp:1373,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1378
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1378
    functionName: SWQAutoConvertStringToNumeric
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GIntBig>
    - CPLStrtod
    - SWQ_IS_INTEGER
    linkageType: ''
    returnType: void
    signature: void SWQAutoConvertStringToNumeric(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1396
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1396
    functionName: SWQCheckSubExprAreNotGeometries
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool SWQCheckSubExprAreNotGeometries(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1419,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1432,1
    - Dst: SWQAutoConvertStringToNumeric
      Src: /src/gdal/ogr/swq_op_general.cpp:1435,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/swq_op_general.cpp:1436,1
    - Dst: SWQAutoPromoteStringToDateTime
      Src: /src/gdal/ogr/swq_op_general.cpp:1437,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1447,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1454,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/swq_op_general.cpp:1456,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1485,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/swq_op_general.cpp:1487,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1508,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1515,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1520,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1530,1
    - Dst: SWQCheckSubExprAreNotGeometries
      Src: /src/gdal/ogr/swq_op_general.cpp:1539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1544,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1553,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_op_general.cpp:1563,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1565,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1576,1
    - Dst: SWQ_IS_INTEGER
      Src: /src/gdal/ogr/swq_op_general.cpp:1582,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1596,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_op_general.cpp:1597,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_op_general.cpp:1598,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1598,1
    - Dst: SWQCastChecker
      Src: /src/gdal/ogr/swq_op_general.cpp:1599,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1610,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_op_general.cpp:1611,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_op_general.cpp:1612,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1612,1
    - Dst: SWQCastChecker
      Src: /src/gdal/ogr/swq_op_general.cpp:1613,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_op_general.cpp:1619,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1621,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_op_general.cpp:1639,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1641,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 142
    argCount: 2
    argNames:
    - poNode
    - bAllowMismatchTypeOnFieldComparison
    argTypes:
    - swq_expr_node*
    - int
    constantsTouched: []
    func_position:
      end: 1651
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1651
    functionName: SWQGeneralChecker
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - SWQCheckSubExprAreNotGeometries
    - SWQAutoPromoteStringToDateTime
    - swq_expr_node*::PushSubExpression
    - SWQAutoPromoteIntegerToInteger64OrFloat
    - swq_expr_node::swq_expr_node
    - SWQ_IS_INTEGER
    - SWQAutoConvertStringToNumeric
    - SWQCastChecker
    - CPLError
    - swq_op_registrar::GetOperator
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type SWQGeneralChecker(swq_expr_node *poNode,\n                                 int
      bAllowMismatchTypeOnFieldComparison)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1669,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1682,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1688,1
    - Dst: atoi
      Src: /src/gdal/ogr/swq_op_general.cpp:1692,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1700,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/swq_op_general.cpp:1714,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/swq_op_general.cpp:1719,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1727,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq_op_general.cpp:1736,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/swq_op_general.cpp:1744,1
    - Dst: static_cast<OGRGeometry *>
      Src: /src/gdal/ogr/swq_op_general.cpp:1752,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1752,1
    - Dst: swq_expr_node*::geometry_value::clone
      Src: /src/gdal/ogr/swq_op_general.cpp:1760,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/swq_op_general.cpp:1767,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_op_general.cpp:1792,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_op_general.cpp:1796,1
    - Dst: swq_expr_node*::geometry_value::exportToWkt
      Src: /src/gdal/ogr/swq_op_general.cpp:1804,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_op_general.cpp:1806,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_op_general.cpp:1821,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq_op_general.cpp:1821,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/swq_op_general.cpp:1822,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/swq_op_general.cpp:1825,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_op_general.cpp:1825,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 112
    argCount: 2
    argNames:
    - node
    - sub_node_values
    argTypes:
    - swq_expr_node*
    - swq_expr_node**
    constantsTouched: []
    func_position:
      end: 1831
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1831
    functionName: SWQCastEvaluator
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<double>
    - CPLAtof
    - static_cast<int>
    - static_cast<OGRGeometry *>
    - atoi
    - swq_expr_node*::geometry_value::clone
    - CPLString::Printf
    - CPLAtoGIntBig
    - swq_expr_node::swq_expr_node
    - swq_expr_node*::geometry_value::exportToWkt
    - CPLString::c_str
    - CPLString::size
    - OGRGeometryFactory::createFromWkt
    - CPLString::resize
    - CPLFree
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *SWQCastEvaluator(swq_expr_node *node,\n                                swq_expr_node
      **sub_node_values,\n                                const swq_evaluation_context
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1845,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1847,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1854,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1858,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1862,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_op_general.cpp:1868,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1878,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1882,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1886,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1890,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1894,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_general.cpp:1898,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1903,1
    - Dst: SWQFieldTypeToString
      Src: /src/gdal/ogr/swq_op_general.cpp:1904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_general.cpp:1911,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1837
    functionDepth: 1
    functionLinenumber: 1837
    functionLinenumberEnd: 1918
    functionName: SWQCastChecker
    functionSourceFile: /src/gdal/ogr/swq_op_general.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - strcmp
    - SWQFieldTypeToString
    - CPLError
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type SWQCastChecker(swq_expr_node *poNode,\n                              int
      /* bAllowMismatchTypeOnFieldComparison */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointOnSurfaceInternal
      Src: /src/gdal/ogr/ogrsurface.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRSurface::PointOnSurface
    functionSourceFile: /src/gdal/ogr/ogrsurface.cpp
    functionUses: 0
    functionsReached:
    - PointOnSurfaceInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSurface::PointOnSurface(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::GetCasterToPolygon
      Src: /src/gdal/ogr/ogrsurface.cpp:155,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrsurface.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: OGRSurface::CastToPolygon
    functionSourceFile: /src/gdal/ogr/ogrsurface.cpp
    functionUses: 0
    functionsReached:
    - pfn
    - OGRSurface*::GetCasterToPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRSurface::CastToPolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::GetCasterToCurvePolygon
      Src: /src/gdal/ogr/ogrsurface.cpp:175,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrsurface.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: OGRSurface::CastToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrsurface.cpp
    functionUses: 0
    functionsReached:
    - pfn
    - OGRSurface*::GetCasterToCurvePolygon
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *OGRSurface::CastToCurvePolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - pszStr
    - ppszNextToken
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 84
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 84
    functionName: GMLGetCoordTokenPos
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *GMLGetCoordTokenPos(const char *pszStr,\n                                       const
      char **ppszNextToken)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: BareGMLElement
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BareGMLElement(const char *pszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:121,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - psParent
    - pszBareName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: FindBareXMLChild
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - BareGMLElement
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *FindBareXMLChild(const CPLXMLNode *psParent,\n                                          const
      char *pszBareName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - psElement
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: GetElementText
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetElementText(const CPLXMLNode *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - psElement
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: GetChildElement
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GetChildElement(const CPLXMLNode *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:191,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - psElement
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 198
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 198
    functionName: GetElementOrientation
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: bool GetElementOrientation(const CPLXMLNode *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:210,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:210,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:213,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:215,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:217,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:222,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:223,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:225,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:231,1
    - Dst: OGRSimpleCurve*::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:233,1
    - Dst: OGRSimpleCurve*::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:235,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - poGeometry
    - dfX
    - dfY
    - dfZ
    - nDimension
    argTypes:
    - OGRGeometry*
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 242
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 242
    functionName: AddPoint
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPoint*::setX
    - CPLAssert
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - OGRGeometry*::toSimpleCurve
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRPoint*::IsEmpty
    - OGRSimpleCurve*::addPoint
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: "bool AddPoint(OGRGeometry *poGeometry, double dfX, double dfY,\n                     double
      dfZ, int nDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:253,1
    - Dst: strlen
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:269,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:272,1
    - Dst: strlen
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:285,1
    - Dst: strlen
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:297,1
    - Dst: OGRGeometry*::empty
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:306,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:313,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:313,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:320,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:320,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:323,1
    - Dst: OGRFastAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:338,1
    - Dst: CPLAtofDelim
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:340,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:343,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:348,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:353,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:353,1
    - Dst: OGRFastAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:371,1
    - Dst: CPLAtofDelim
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:373,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:376,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:376,1
    - Dst: OGRFastAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:386,1
    - Dst: CPLAtofDelim
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:388,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:393,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:393,1
    - Dst: isspace
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:402,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:402,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:410,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:412,1
    - Dst: AddPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:414,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:457,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:459,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:460,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:487,1
    - Dst: OGRGeometry*::empty
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:493,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:508,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:532,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:546,1
    - Dst: atoi
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:555,1
    - Dst: OGRGeometry*::empty
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:563,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:583,1
    - Dst: AddPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:593,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:611,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:611,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:614,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:615,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:616,1
    - Dst: GetElementText
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:619,1
    - Dst: GetElementText
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:620,1
    - Dst: GetElementText
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:623,1
    - Dst: GetElementText
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:633,1
    - Dst: OGRFastAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:635,1
    - Dst: GetElementText
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:635,1
    - Dst: AddPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:639,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 169
    argCount: 3
    argNames:
    - psGeomNode
    - poGeometry
    - nSRSDimension
    argTypes:
    - CPLXMLNode*
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 646
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 646
    functionName: ParseGMLCoordinates
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve*::setPoint
    - atoi
    - OGRGeometry*::empty
    - strcmp
    - ParseGMLCoordinates
    - CPLGetXMLValue
    - CPLError
    - static_cast<unsigned char>
    - isspace
    - GetElementText
    - FindBareXMLChild
    - OGRPoint::OGRPoint
    - strlen
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - AddPoint
    - OGRGeometry*::toSimpleCurve
    - BareGMLElement
    - CPLAtofDelim
    - OGRFastAtof
    - OGRSimpleCurve*::setNumPoints
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool ParseGMLCoordinates(const CPLXMLNode *psGeomNode,\n                                OGRGeometry
      *poGeometry, int nSRSDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRGeometryCollection *>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:664,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:667,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:680,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:680,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:682,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:683,1
    - Dst: std::unique_ptr<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:703,1
    - Dst: OGRPolygon*::clone
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:703,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:706,1
    - Dst: std::unique_ptr<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:709,1
    - Dst: OGRPolygon*::clone
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:709,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 713
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 713
    functionName: GML2FaceExtRing
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - getGeometryType
    - OGRGeometryCollection*::getNumGeometries
    - toPolygon
    - OGRPolygon*::getNumInteriorRings
    - OGRPolygon*::clone
    - dynamic_cast<const OGRGeometryCollection *>
    - CPLError
    - wkbFlatten
    - std::unique_ptr<OGRPolygon>
    linkageType: ''
    returnType: std::unique_ptr<OGRPolygon>
    signature: std::unique_ptr<OGRPolygon> GML2FaceExtRing(const OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:725,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:725,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:727,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:730,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:735,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:735,1
    - Dst: std::unique_ptr<OGRCompoundCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:737,1
    - Dst: std::unique_ptr<OGRGeometry>::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:738,1
    - Dst: auto::getNumCurves
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:739,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:741,1
    - Dst: auto::stealCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:741,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:742,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:742,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:744,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:744,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:752,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:752,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:755,1
    - Dst: std::unique_ptr<OGRGeometry>::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:755,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:756,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:756,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - poCC
    - poGeom
    - bChildrenAreAllLineString
    argTypes:
    - OGRCompoundCurve*
    - std::unique_ptr<OGRGeometry>
    - bool
    constantsTouched: []
    func_position:
      end: 762
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 762
    functionName: GML2OGRGeometry_AddToCompositeCurve
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::stealCurve
    - std::unique_ptr<OGRGeometry>::getGeometryName
    - std::unique_ptr<OGRCurve>
    - OGRCompoundCurve*::addCurve
    - auto::getGeometryType
    - std::unique_ptr<OGRCompoundCurve>
    - std::move
    - std::unique_ptr<OGRGeometry>::release
    - std::unique_ptr<OGRGeometry>::getGeometryType
    - wkbFlatten
    - OGR_GT_IsCurve
    - auto::getNumCurves
    linkageType: ''
    returnType: bool
    signature: "bool GML2OGRGeometry_AddToCompositeCurve(OGRCompoundCurve *poCC,\n
      \                                   std::unique_ptr<OGRGeometry> poGeom,\n                                    bool
      &bChildrenAreAllLineString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:774,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:778,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:778,1
    - Dst: OGRMultiSurface*::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:784,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:784,1
    - Dst: std::unique_ptr<OGRGeometry>::toMultiSurface
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:791,1
    - Dst: OGRMultiSurface*::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:792,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:794,1
    - Dst: OGRMultiSurface*::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:794,1
    - Dst: OGRMultiSurface*::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:798,1
    - Dst: OGRMultiSurface*::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:798,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:806,1
    - Dst: std::unique_ptr<OGRGeometry>::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:807,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - poMS
    - poGeom
    - pszMemberElement
    - bChildrenAreAllPolygons
    argTypes:
    - OGRMultiSurface*
    - std::unique_ptr<OGRGeometry>
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 811
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 811
    functionName: GML2OGRGeometry_AddToMultiSurface
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>::getGeometryType
    - std::unique_ptr<OGRGeometry>::toMultiSurface
    - std::unique_ptr<OGRGeometry>::getGeometryName
    - OGRMultiSurface*::addGeometry
    - OGRMultiSurface*::getGeometryRef
    - std::move
    - OGRMultiSurface*::getNumGeometries
    - CPLError
    - wkbFlatten
    linkageType: ''
    returnType: bool
    signature: "bool GML2OGRGeometry_AddToMultiSurface(\n    OGRMultiSurface *poMS,
      std::unique_ptr<OGRGeometry> poGeom,\n    const char *pszMemberElement, bool
      &bChildrenAreAllPolygons)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:820,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:826,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:826,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:827,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:829,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:830,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:832,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:833,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:837,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pszUnits
    - pszAttribute
    - pszId
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 849
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 849
    functionName: GetUOMInMetre
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: "double GetUOMInMetre(const char *pszUnits, const char *pszAttribute,\n
      \                           const char *pszId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: GetSemiMajor
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - std::fabs
    linkageType: ''
    returnType: double
    signature: double GetSemiMajor(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - psNode
    - nPseudoBoolGetSecondaryGeometryOption
    - nRecLevel
    - nSRSDimension
    - bIgnoreGSG
    - bOrientation
    - bFaceHoleNegative
    - pszId
    argTypes:
    - CPLXMLNode*
    - int
    - int
    - int
    - bool
    - bool
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 891
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 891
    functionName: GML2OGRGeometry_XMLNode
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GML2OGRGeometry_XMLNode_Internal
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *GML2OGRGeometry_XMLNode(const CPLXMLNode *psNode,\n                                     int
      nPseudoBoolGetSecondaryGeometryOption,\n                                     int
      nRecLevel, int nSRSDimension,\n                                     bool bIgnoreGSG,
      bool bOrientation,\n                                     bool bFaceHoleNegative,
      const char *pszId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:899,1
    - Dst: CPLString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:905,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:906,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:906,1
    - Dst: CPLErrorV
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:910,1
    - Dst: va_end
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pszId
    - eErr
    - fmt
    argTypes:
    - char*
    - CPLErr
    - char*
    constantsTouched: []
    func_position:
      end: 913
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 913
    functionName: ReportError
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - CPLErrorV
    - va_end
    - CPLString
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void ReportError(const char *pszId, CPLErr eErr, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:928,1
    - Dst: atoi
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:938,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:941,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:945,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:951,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:951,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:962,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:969,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:970,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:976,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:977,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:978,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:981,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:983,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:985,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:989,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:993,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:998,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1002,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1002,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1004,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1005,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1009,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1009,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1010,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1010,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1012,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1013,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1016,1
    - Dst: assert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1021,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1022,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1022,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1024,1
    - Dst: std::make_unique<OGRCurvePolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1029,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1035,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1035,1
    - Dst: std::unique_ptr::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1036,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1036,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1047,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1047,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1048,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1048,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1050,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1053,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1059,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1063,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1063,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1065,1
    - Dst: std::unique_ptr::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1067,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1073,1
    - Dst: std::unique_ptr::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1073,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1075,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1075,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1079,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1081,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1084,1
    - Dst: std::unique_ptr<OGRCurvePolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1091,1
    - Dst: OGRSurface::CastToCurvePolygon
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1092,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1092,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1097,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1104,1
    - Dst: std::unique_ptr::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1104,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1106,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1107,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1108,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1111,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1112,1
    - Dst: std::unique_ptr::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1113,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1127,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1130,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1134,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1137,1
    - Dst: std::make_unique<OGRTriangle>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1138,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1142,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1147,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1151,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1151,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1153,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1154,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1158,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1159,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1159,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1161,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1162,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1166,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1166,1
    - Dst: std::make_unique<OGRTriangle>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1171,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1172,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1172,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1173,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1184,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1186,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1188,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1188,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1203,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1216,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1217,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1219,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1222,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1222,1
    - Dst: GetSemiMajor
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1223,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1225,1
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1225,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1226,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1249,1
    - Dst: getCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1252,1
    - Dst: getNumCurves
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1252,1
    - Dst: auto::toLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1253,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1254,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1255,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1257,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1258,1
    - Dst: OGRCurve*::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1259,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1260,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1263,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1264,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1264,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1264,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1264,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1267,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1268,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1268,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1268,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1268,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1276,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1279,1
    - Dst: getCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1287,1
    - Dst: getNumCurves
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1287,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1288,1
    - Dst: OGRCurve*::toLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1290,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1291,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1293,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1293,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1295,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1296,1
    - Dst: OGRCurve*::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1297,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1298,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1301,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1302,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1302,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1302,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1302,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1305,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1306,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1306,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1306,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1306,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1317,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1320,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1320,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1330,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1351,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1351,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1353,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1357,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1367,1
    - Dst: ReportWarning
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1369,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1378,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1378,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1380,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1380,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1381,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1385,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1385,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1390,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1390,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1397,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1397,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1399,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1400,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1400,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1402,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1403,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1403,1
    - Dst: storeArcByCenterPointParameters
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1406,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1428,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1428,1
    - Dst: std::make_unique<OGRCompoundCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1434,1
    - Dst: GML2OGRGeometry_AddToCompositeCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1436,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1437,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1437,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1441,1
    - Dst: connectArcByCenterPointToOtherSegments
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1444,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1445,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1445,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1452,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1452,1
    - Dst: GML2OGRGeometry_AddToCompositeCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1455,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1456,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1482,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1482,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1487,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1487,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1491,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1493,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1493,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1500,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1500,1
    - Dst: storeArcByCenterPointParameters
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1503,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1534,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1535,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1536,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1536,1
    - Dst: std::unique_ptr::toLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1538,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1540,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1541,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1542,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1543,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1546,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1547,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1547,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1547,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1547,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1549,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1550,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1550,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1550,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1550,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1553,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1556,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1559,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1560,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1561,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1561,1
    - Dst: std::unique_ptr::toLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1563,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1565,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1566,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1567,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1568,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1571,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1572,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1572,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1572,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1572,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1574,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1575,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1575,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1575,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1575,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1578,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1581,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1581,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1585,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1585,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1587,1
    - Dst: std::unique_ptr<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1598,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1599,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1599,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1603,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1603,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1615,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1617,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1618,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1620,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1622,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1622,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1633,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1635,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1637,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1637,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1645,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1645,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1647,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1657,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1659,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1661,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1661,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1666,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1666,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1678,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1680,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1682,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1682,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1687,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1689,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1699,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1700,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1700,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1700,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1701,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1701,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1701,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1707,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1708,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1709,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1710,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1711,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1712,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1713,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1714,1
    - Dst: auto::getCoordinateDimension
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1720,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1721,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1721,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1723,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1724,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1725,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1732,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1734,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1738,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1743,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1746,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1751,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1752,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1752,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1757,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1759,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1763,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1764,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1765,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1766,1
    - Dst: auto::getCoordinateDimension
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1783,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1784,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1784,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1786,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1788,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1789,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1797,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1799,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1802,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1811,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1814,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1820,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1823,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1829,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1830,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1840,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1841,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1843,1
    - Dst: GetSemiMajor
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1845,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1847,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1847,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1848,1
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1848,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1849,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1851,1
    - Dst: GetSemiMajor
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1853,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1855,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1855,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1870,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1881,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1886,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1887,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1891,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1894,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1895,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1897,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1904,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1907,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1908,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1912,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1915,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1916,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1918,1
    - Dst: swap
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1924,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1926,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1927,1
    - Dst: cos
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1927,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1928,1
    - Dst: sin
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1928,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1929,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1931,1
    - Dst: cos
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1931,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1932,1
    - Dst: sin
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1932,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1933,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1934,1
    - Dst: cos
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1934,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1935,1
    - Dst: sin
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1935,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1936,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1939,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1947,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1949,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1952,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1961,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1962,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1972,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1973,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1975,1
    - Dst: GetSemiMajor
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1977,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1979,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1979,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1980,1
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1980,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1981,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1983,1
    - Dst: GetSemiMajor
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1985,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1987,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:1987,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2002,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2010,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2013,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2014,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2018,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2021,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2022,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2024,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2026,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2027,1
    - Dst: swap
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2032,1
    - Dst: std::make_unique<OGRCircularString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2034,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2035,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2036,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2037,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2038,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2039,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2040,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2041,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2042,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2043,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2044,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2045,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2046,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2047,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2048,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2049,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2052,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2060,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2061,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2062,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2063,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2065,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2067,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2067,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2078,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2078,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2080,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2082,1
    - Dst: OGRLineString::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2085,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2088,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2089,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2091,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2092,1
    - Dst: OGRLineString::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2092,1
    - Dst: OGRLineString::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2092,1
    - Dst: OGRLineString::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2093,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2094,1
    - Dst: OGRLineString::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2094,1
    - Dst: OGRLineString::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2094,1
    - Dst: OGRLineString::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2095,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2096,1
    - Dst: OGRLineString::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2096,1
    - Dst: OGRLineString::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2096,1
    - Dst: OGRLineString::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2097,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2098,1
    - Dst: OGRLineString::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2098,1
    - Dst: OGRLineString::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2098,1
    - Dst: OGRLineString::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2099,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2100,1
    - Dst: OGRLineString::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2100,1
    - Dst: OGRLineString::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2100,1
    - Dst: OGRLineString::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2101,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2102,1
    - Dst: OGRLineString::Is3D
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2102,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2104,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2104,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2112,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2115,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2117,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2130,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2131,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2139,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2140,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2142,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2143,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2145,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2146,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2147,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2148,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2149,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2150,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2151,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2167,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2168,1
    - Dst: std::make_unique<OGRMultiSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2169,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2179,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2180,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2182,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2189,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2189,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2193,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2193,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2196,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2197,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2197,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2206,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2206,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2210,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2214,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2221,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2224,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2224,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2227,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2231,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2236,1
    - Dst: std::unique_ptr<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2238,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2239,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2240,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2240,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2241,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2241,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2247,1
    - Dst: GML2OGRGeometry_AddToMultiSurface
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2251,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2252,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2261,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2268,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2269,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2270,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2271,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2273,1
    - Dst: GML2OGRGeometry_AddToMultiSurface
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2277,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2278,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2278,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2291,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2291,1
    - Dst: std::unique_ptr<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2292,1
    - Dst: OGRMultiSurface::CastToMultiPolygon
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2293,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2293,1
    - Dst: std::unique_ptr<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2294,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2295,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2298,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2301,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2301,1
    - Dst: auto::removeGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2302,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2304,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2306,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2307,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2308,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2313,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2313,1
    - Dst: std::unique_ptr<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2316,1
    - Dst: OGRMultiSurface::CastToMultiPolygon
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2317,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2327,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2336,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2336,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2338,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2342,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2347,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2347,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2350,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2353,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2358,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2362,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2362,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2368,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2368,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2370,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2376,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2377,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2381,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2381,1
    - Dst: std::unique_ptr<OGRPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2383,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2384,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2385,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2385,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2389,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2405,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2414,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2414,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2416,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2420,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2425,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2425,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2427,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2429,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2433,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2433,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2443,1
    - Dst: std::make_unique<OGRMultiCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2453,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2453,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2455,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2458,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2462,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2462,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2464,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2466,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2471,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2471,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2474,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2481,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2481,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2488,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2493,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2493,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2495,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2497,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2502,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2502,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2506,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2506,1
    - Dst: std::unique_ptr<OGRMultiLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2517,1
    - Dst: OGRMultiCurve::CastToMultiLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2518,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2518,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2527,1
    - Dst: std::make_unique<OGRCompoundCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2529,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2537,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2537,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2539,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2542,1
    - Dst: GML2OGRGeometry_AddToCompositeCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2545,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2546,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2554,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2554,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2561,1
    - Dst: GML2OGRGeometry_AddToCompositeCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2565,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2566,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2566,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2578,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2579,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2588,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2589,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2591,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2594,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2598,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2601,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2601,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2603,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2615,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2639,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2643,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2643,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2645,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2647,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2654,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2654,1
    - Dst: storeArcByCenterPointParameters
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2657,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2664,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2664,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2669,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2669,1
    - Dst: std::make_unique<OGRCompoundCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2675,1
    - Dst: std::unique_ptr::addCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2676,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2676,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2680,1
    - Dst: connectArcByCenterPointToOtherSegments
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2683,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2684,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2684,1
    - Dst: std::unique_ptr<OGRCurve>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2691,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2691,1
    - Dst: std::unique_ptr::addCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2692,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2692,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2705,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2709,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2710,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2723,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2725,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2732,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2732,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2734,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2738,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2744,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2750,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2754,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2754,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2762,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2768,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2774,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2774,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2786,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2789,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2792,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2810,1
    - Dst: GetElementOrientation
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2814,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2816,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2820,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2823,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2827,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2829,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2833,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2837,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2837,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2846,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2848,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2856,1
    - Dst: GetElementOrientation
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2861,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2864,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2868,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2871,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2875,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2877,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2881,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2885,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2885,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2894,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2896,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2898,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2904,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2905,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2905,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2906,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2906,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2915,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2918,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2923,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2925,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2928,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2933,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2937,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2937,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2940,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2942,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2946,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2947,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2952,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2953,1
    - Dst: auto::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2956,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2956,1
    - Dst: auto::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2957,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2957,1
    - Dst: auto::StartPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2961,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2961,1
    - Dst: auto::EndPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2962,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2962,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2965,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2966,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2966,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2967,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2967,1
    - Dst: auto::reversePoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2974,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2982,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2988,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2990,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2997,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2997,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:2999,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3004,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3010,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3010,1
    - Dst: std::unique_ptr<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3012,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3013,1
    - Dst: std::unique_ptr::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3017,1
    - Dst: std::unique_ptr::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3018,1
    - Dst: std::unique_ptr::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3018,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3019,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3021,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3021,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3023,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3023,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3026,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3026,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3028,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3028,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3032,1
    - Dst: auto::getGeometryName
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3033,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3050,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3077,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3088,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3095,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3095,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3098,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3103,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3103,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3110,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3119,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3119,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3122,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3128,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3128,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3131,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3136,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3136,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3140,1
    - Dst: auto::Polygonize
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3141,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3144,1
    - Dst: GML2FaceExtRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3149,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3149,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3153,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3162,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3162,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3167,1
    - Dst: auto::Union
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3168,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3168,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3171,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3174,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3174,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3178,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3179,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3179,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3181,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3181,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3184,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3184,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3188,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3218,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3225,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3225,1
    - Dst: GetElementOrientation
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3227,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3230,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3232,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3232,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3247,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3247,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3250,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3257,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3257,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3260,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3265,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3266,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3269,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3270,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3274,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3278,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3279,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3279,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3279,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3280,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3281,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3281,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3281,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3282,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3283,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3283,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3283,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3284,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3288,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3293,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3295,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3299,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3300,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3301,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3305,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3306,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3306,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3306,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3307,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3308,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3308,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3308,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3309,1
    - Dst: fabs
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3310,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3310,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3310,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3311,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3315,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3320,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3334,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3352,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3353,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3356,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3358,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3360,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3362,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3367,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3377,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3378,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3378,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3380,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3389,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3389,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3392,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3398,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3398,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3401,1
    - Dst: std::make_unique<OGRMultiSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3403,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3405,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3405,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3406,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3407,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3408,1
    - Dst: cpl::down_cast<OGRMultiSurface *>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3409,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3410,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3413,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3413,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3417,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3418,1
    - Dst: OGRMultiPolygon::CastToMultiSurface
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3419,1
    - Dst: cpl::down_cast<OGRMultiSurface *>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3420,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3421,1
    - Dst: OGRMultiSurface*::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3423,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3423,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3424,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3425,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3429,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3429,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3431,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3440,1
    - Dst: std::make_unique<OGRTriangulatedSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3445,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3447,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3447,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3448,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3449,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3450,1
    - Dst: cpl::down_cast<OGRTriangulatedSurface *>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3451,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3452,1
    - Dst: OGRTriangulatedSurface*::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3454,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3454,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3455,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3456,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3470,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3471,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3471,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3472,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3481,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3484,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3486,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3488,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3491,1
    - Dst: std::make_unique<OGRTriangulatedSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3495,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3499,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3499,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3501,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3510,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3510,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3521,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3524,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3527,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3530,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3534,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3540,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3544,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3546,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3546,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3548,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3556,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3559,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3562,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3566,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3566,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3568,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3573,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3578,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3578,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3581,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3581,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3583,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3583,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3586,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3587,1
    - Dst: auto::release
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3588,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3592,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3598,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3598,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3601,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3605,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3608,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3608,1
    - Dst: auto::removeGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3609,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3621,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3623,1
    - Dst: ReportWarning
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3629,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3635,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3640,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3645,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3648,1
    - Dst: BareGMLElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3648,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3650,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3660,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3662,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3666,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3671,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3671,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3673,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3673,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3682,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3687,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3697,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3700,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3702,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3705,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3709,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3712,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3712,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3714,1
    - Dst: GetElementOrientation
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3717,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3719,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3727,1
    - Dst: FindBareXMLChild
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3730,1
    - Dst: GetChildElement
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3732,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3735,1
    - Dst: GML2OGRGeometry_XMLNode_Internal
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3739,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3748,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3749,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3751,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3753,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3753,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3758,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3760,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3761,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3761,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3765,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3767,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3769,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3769,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3774,1
    - Dst: std::make_unique<OGRTriangle>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3776,1
    - Dst: auto::addRing
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3777,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3784,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3786,1
    - Dst: ParseGMLCoordinates
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3788,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3788,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3793,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3797,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3798,1
    - Dst: auto::get
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3798,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3799,1
    - Dst: std::move
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3799,1
    - Dst: strcmp
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3804,1
    - Dst: ReportFailure
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3809,1
    CyclomaticComplexity: 506
    EdgeCount: 506
    ICount: 1218
    argCount: 9
    argNames:
    - psNode
    - pszId
    - nPseudoBoolGetSecondaryGeometryOption
    - nRecLevel
    - nSRSDimension
    - pszSRSName
    - bIgnoreGSG
    - bOrientation
    - bFaceHoleNegative
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    - int
    - int
    - char*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3812
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 3812
    functionName: GML2OGRGeometry_XMLNode_Internal
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<OGRCompoundCurve>
    - auto::toLineString
    - GML2OGRGeometry_AddToMultiSurface
    - cpl::down_cast<OGRMultiSurface *>
    - std::unique_ptr<OGRGeometry>
    - assert
    - std::unique_ptr<OGRCurve>
    - CPLDebug
    - OGRLineString*::getNumPoints
    - CPLGetXMLValue
    - OGRMultiSurface::CastToMultiPolygon
    - std::unique_ptr::getGeometryName
    - std::unique_ptr<OGRMultiLineString>
    - ReportFailure
    - GetSemiMajor
    - OGRPoint::getY
    - getNumCurves
    - connectArcByCenterPointToOtherSegments
    - std::unique_ptr::release
    - std::make_unique<OGRLineString>
    - auto::EndPoint
    - FindBareXMLChild
    - auto::set3D
    - OGRLineString::getNumPoints
    - std::vector::reserve
    - OGRLineString::OGRLineString
    - OGRSpatialReference::IsGeographic
    - std::make_unique<OGRPolyhedralSurface>
    - OGRTriangulatedSurface*::addGeometry
    - OGRSpatialReference::SetFromUserInput
    - OGRCurve*::toLineString
    - OGR_GreatCircle_Distance
    - OGRMultiCurve::CastToMultiLineString
    - auto::setNumPoints
    - BareGMLElement
    - OGR_GT_IsCurve
    - auto::reversePoints
    - GetChildElement
    - OGRCurve*::getGeometryType
    - std::make_unique<OGRTriangulatedSurface>
    - auto::getNumPoints
    - OGRLineString::getX
    - CSLDestroy
    - auto::getNumGeometries
    - std::make_unique<OGRMultiPolygon>
    - OGRPoint::getZ
    - fabs
    - GML2OGRGeometry_AddToCompositeCurve
    - std::unique_ptr::getGeometryRef
    - std::unique_ptr<OGRCurvePolygon>
    - auto::addRing
    - std::unique_ptr::toLineString
    - OGRPoint::setX
    - OGRPoint::setY
    - GML2OGRGeometry_XMLNode_Internal
    - auto::getCoordinateDimension
    - std::unique_ptr<OGRLineString>
    - std::unique_ptr<OGRLinearRing>
    - auto::setPoint
    - OGRLineString::Is3D
    - getCurve
    - std::move
    - wkbFlatten
    - std::unique_ptr::getNumGeometries
    - auto::removeGeometry
    - std::make_unique<OGRGeometryCollection>
    - std::vector::data
    - CPLAtof
    - OGRPoint::getX
    - OGRLineString*::EndPoint
    - CPLAssert
    - std::make_unique<OGRPolygon>
    - std::unique_ptr::addGeometry
    - GetElementOrientation
    - GML2FaceExtRing
    - OGRSpatialReference::OGRSpatialReference
    - OGRSurface::CastToCurvePolygon
    - auto::getX
    - auto::closeRings
    - OGRSpatialReference::GetAngularUnits
    - OGRLineString*::addSubLineString
    - auto::getPoint
    - EQUAL
    - OGRGeometryFactory::forceToLineString
    - OGRCurve::CastToLinearRing
    - std::make_unique<OGRMultiPoint>
    - auto::reset
    - atoi
    - std::unique_ptr<OGRMultiPoint>
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - std::vector::emplace_back
    - OGRMultiSurface*::addGeometry
    - strcmp
    - ParseGMLCoordinates
    - auto::Union
    - OGRLineString*::getZ
    - CPLGetConfigOption
    - auto::StartPoint
    - CPL_TO_BOOL
    - OGRLineString*::getY
    - auto::getGeometryRef
    - std::unique_ptr<OGRMultiPolygon>
    - OGRCurve*::EndPoint
    - std::make_unique<OGRTriangle>
    - storeArcByCenterPointParameters
    - std::make_unique<OGRCircularString>
    - OGRLineString*::StartPoint
    - std::unique_ptr::reset
    - std::make_unique<OGRMultiSurface>
    - std::make_unique<OGRLinearRing>
    - std::unique_ptr::getGeometryType
    - OGRLineString::getZ
    - OGRGeometryFactory::organizePolygons
    - auto::Polygonize
    - std::unique_ptr::get_IsClosed
    - std::unique_ptr::getNumPoints
    - std::make_unique<OGRPoint>
    - auto::getGeometryType
    - auto::toCurve
    - OGRGeometryFactory::forceToPolygon
    - OGR_GreatCircle_ExtendPosition
    - std::make_unique<OGRMultiCurve>
    - OGRCurve*::StartPoint
    - auto::get
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - cpl::down_cast<OGRTriangulatedSurface *>
    - OGRSpatialReference::IsProjected
    - OGRLineString::getY
    - auto::getGeometryName
    - OGRLineString*::getX
    - std::unique_ptr::addCurve
    - ReportWarning
    - OGRPoint::OGRPoint
    - swap
    - std::unique_ptr::addRing
    - OGRCurve*::getNumPoints
    - CPLTestBool
    - OGRCurve::CastToLineString
    - auto::addGeometryDirectly
    - std::make_unique<OGRCurvePolygon>
    - auto::empty
    - OGRMultiPolygon::CastToMultiSurface
    - std::make_unique<OGRMultiLineString>
    - CPL_IGNORE_RET_VAL
    - sin
    - std::unique_ptr::get
    - auto::addGeometry
    - auto::release
    - auto::addPoint
    - std::unique_ptr<OGRPoint>
    - auto::getY
    - OGRGeometryFactory::GetCurveParameters
    - cos
    - OGRLineString*::setPoint
    - auto::swapXY
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: "std::unique_ptr<OGRGeometry> GML2OGRGeometry_XMLNode_Internal(const
      CPLXMLNode *psNode, const char *pszId,\n                                 int
      nPseudoBoolGetSecondaryGeometryOption,\n                                 int
      nRecLevel, int nSRSDimension,\n                                 const char *pszSRSName,
      bool bIgnoreGSG,\n                                 bool bOrientation, bool bFaceHoleNegative)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3822,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psTree
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3823
      start: 3819
    functionDepth: 2
    functionLinenumber: 3819
    functionLinenumberEnd: 3823
    functionName: OGR_G_CreateFromGMLTree
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - GML2OGRGeometry_XMLNode
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_CreateFromGMLTree(const CPLXMLNode *psTree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3866,1
    - Dst: CPLError
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3868,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3878,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3890,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3893,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/gml2ogrgeometry.cpp:3895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pszGML
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3896
      start: 3863
    functionDepth: 2
    functionLinenumber: 3863
    functionLinenumberEnd: 3896
    functionName: OGR_G_CreateFromGML
    functionSourceFile: /src/gdal/ogr/gml2ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - ToHandle
    - CPLParseXMLString
    - strlen
    - GML2OGRGeometry_XMLNode
    - CPLError
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_CreateFromGML(const char *pszGML)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: swq_select::swq_select
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_select::swq_select()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:44,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:50,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:52,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:54,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:58,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:59,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:60,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:71,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:72,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:73,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:81,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:82,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:85,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 94
    functionName: swq_select::~swq_select()
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void swq_select::~swq_select()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swqparse
      Src: /src/gdal/ogr/swq_select.cpp:122,1
    - Dst: swq_fixup
      Src: /src/gdal/ogr/swq_select.cpp:130,1
    - Dst: swq_select::postpreparse
      Src: /src/gdal/ogr/swq_select.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - select_statement
    - bAcceptCustomFuncs
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 135
    functionName: swq_select::preparse
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - swqparse
    - swq_fixup
    - swq_select::postpreparse
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr swq_select::preparse(const char *select_statement,\n                            int
      bAcceptCustomFuncs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/swq_select.cpp:149,1
    - Dst: memcpy
      Src: /src/gdal/ogr/swq_select.cpp:150,1
    - Dst: memcpy
      Src: /src/gdal/ogr/swq_select.cpp:152,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_select.cpp:158,1
    - Dst: swq_select::postpreparse
      Src: /src/gdal/ogr/swq_select.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: swq_select::postpreparse
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 2
    functionsReached:
    - CPLAssert
    - memcpy
    - swq_select::postpreparse
    linkageType: ''
    returnType: void
    signature: void swq_select::postpreparse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:175,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:186,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:226,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:229,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_select.cpp:234,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:237,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:248,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_select.cpp:250,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:254,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:268,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_select.cpp:270,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:274,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:280,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:288,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_select.cpp:299,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_select.cpp:308,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_select.cpp:314,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:317,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 318
    functionName: swq_select::Unparse
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - swq_expr_node::QuoteIfNecessary
    - result_columns
    - CPLSPrintf
    - strcmp
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *swq_select::Unparse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:332,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/swq_select.cpp:342,1
    - Dst: back
      Src: /src/gdal/ogr/swq_select.cpp:343,1
    - Dst: memset
      Src: /src/gdal/ogr/swq_select.cpp:345,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:353,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:358,1
    - Dst: find
      Src: /src/gdal/ogr/swq_select.cpp:360,1
    - Dst: end
      Src: /src/gdal/ogr/swq_select.cpp:362,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_select.cpp:366,1
    - Dst: erase
      Src: /src/gdal/ogr/swq_select.cpp:367,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:378,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:381,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:385,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:386,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:393,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:395,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:396,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_select.cpp:399,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:400,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:402,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_select.cpp:402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:412,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:415,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:417,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:419,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:444,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:449,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:453,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:457,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:461,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:466,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:470,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:475,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:479,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:483,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/swq_select.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:493,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:495,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:497,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:499,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:514,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:518,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:520,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/swq_select.cpp:525,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_select.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:542,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:545,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:547,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:549,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:551,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_select.cpp:555,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_select.cpp:562,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:578,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:579,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_select.cpp:583,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:585,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:589,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:593,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:595,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_select.cpp:600,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:602,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:606,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:608,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:610,1
    - Dst: pop_back
      Src: /src/gdal/ogr/swq_select.cpp:612,1
    - Dst: static_cast<swq_col_func>
      Src: /src/gdal/ogr/swq_select.cpp:617,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 174
    argCount: 4
    argNames:
    - poExpr
    - pszAlias
    - distinct_flag
    - bHidden
    argTypes:
    - swq_expr_node*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 632
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 632
    functionName: swq_select::PushField
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFromOGCGeomType
    - end
    - CPLStrdup
    - find
    - std::move
    - emplace_back
    - static_cast<int>
    - static_cast<swq_col_func>
    - CPLSPrintf
    - swq_op_registrar::GetOperator
    - CPLFree
    - strcasecmp
    - erase
    - back
    - EQUAL
    - static_cast<swq_op>
    - pop_back
    - memset
    linkageType: ''
    returnType: int
    signature: "int swq_select::PushField(swq_expr_node *poExpr, const char *pszAlias,\n
      \                         bool distinct_flag, bool bHidden)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:644,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:645,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:648,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/swq_select.cpp:656,1
    - Dst: back
      Src: /src/gdal/ogr/swq_select.cpp:657,1
    - Dst: memset
      Src: /src/gdal/ogr/swq_select.cpp:658,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:661,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poExpr
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 669
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 669
    functionName: swq_select::PushExcludeField
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - back
    - CPLStrdup
    - EQUAL
    - CPLError
    - memset
    - emplace_back
    linkageType: ''
    returnType: int
    signature: int swq_select::PushExcludeField(swq_expr_node *poExpr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_table_def *>
      Src: /src/gdal/ogr/swq_select.cpp:681,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/swq_select.cpp:682,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:685,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:689,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:692,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pszDataSource
    - pszName
    - pszAlias
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 697
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 697
    functionName: swq_select::PushTableDef
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_table_def *>
    - CPLRealloc
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: "int swq_select::PushTableDef(const char *pszDataSource, const char
      *pszName,\n                             const char *pszAlias)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_order_def *>
      Src: /src/gdal/ogr/swq_select.cpp:708,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/swq_select.cpp:709,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:712,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pszTableName
    - pszFieldName
    - bAscending
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 717
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 717
    functionName: swq_select::PushOrderBy
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<swq_order_def *>
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void swq_select::PushOrderBy(const char *pszTableName, const char
      *pszFieldName,\n                             int bAscending)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_join_def *>
      Src: /src/gdal/ogr/swq_select.cpp:727,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/swq_select.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - iSecondaryTable
    - poExpr
    argTypes:
    - int
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 732
    functionName: swq_select::PushJoin
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_join_def *>
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void swq_select::PushJoin(int iSecondaryTable, swq_expr_node *poExpr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_select.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poOtherSelectIn
    argTypes:
    - swq_select*
    constantsTouched: []
    func_position:
      end: 742
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 742
    functionName: swq_select::PushUnionAll
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void swq_select::PushUnionAll(swq_select *poOtherSelectIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLimit
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: swq_select::SetLimit
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_select::SetLimit(GIntBig nLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nOffset
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 762
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 762
    functionName: swq_select::SetOffset
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_select::SetOffset(GIntBig nOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:783,1
    - Dst: strlen
      Src: /src/gdal/ogr/swq_select.cpp:790,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_select.cpp:798,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:806,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:813,1
    - Dst: swq_select::IsFieldExcluded
      Src: /src/gdal/ogr/swq_select.cpp:833,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/swq_select.cpp:849,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/swq_select.cpp:850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:860,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:873,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:874,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_select.cpp:876,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:883,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:884,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:885,1
    - Dst: erase
      Src: /src/gdal/ogr/swq_select.cpp:887,1
    - Dst: next
      Src: /src/gdal/ogr/swq_select.cpp:887,1
    - Dst: begin
      Src: /src/gdal/ogr/swq_select.cpp:887,1
    - Dst: insert
      Src: /src/gdal/ogr/swq_select.cpp:889,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/swq_select.cpp:889,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/swq_select.cpp:890,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_select.cpp:892,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_select.cpp:892,1
    - Dst: find
      Src: /src/gdal/ogr/swq_select.cpp:894,1
    - Dst: end
      Src: /src/gdal/ogr/swq_select.cpp:895,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/swq_select.cpp:897,1
    - Dst: auto::second::front
      Src: /src/gdal/ogr/swq_select.cpp:899,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:900,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 2
    argNames:
    - field_list
    - bAlwaysPrefixWithTableName
    argTypes:
    - swq_field_list*
    - int
    constantsTouched: []
    func_position:
      end: 910
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 910
    functionName: swq_select::expand_wildcard
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - auto::second::empty
    - std::vector::size
    - result_columns
    - std::vector::emplace_back
    - strcmp
    - CPLError
    - end
    - CPLStrdup
    - std::vector::end
    - insert
    - find
    - std::vector::begin
    - strlen
    - swq_select::IsFieldExcluded
    - static_cast<int>
    - begin
    - CPLFree
    - erase
    - auto::second::front
    - std::vector::back
    - EQUAL
    - next
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr swq_select::expand_wildcard(swq_field_list *field_list,\n                                   int
      bAlwaysPrefixWithTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_select.cpp:924,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_select.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:929,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:934,1
    - Dst: CheckCompatibleJoinExpr
      Src: /src/gdal/ogr/swq_select.cpp:948,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - poExpr
    - secondary_table
    - field_list
    argTypes:
    - swq_expr_node*
    - int
    - swq_field_list*
    constantsTouched: []
    func_position:
      end: 956
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 956
    functionName: CheckCompatibleJoinExpr
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLAssert
    - CheckCompatibleJoinExpr
    linkageType: ''
    returnType: bool
    signature: "bool CheckCompatibleJoinExpr(swq_expr_node *poExpr, int secondary_table,\n
      \                                   swq_field_list *field_list)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_select::expand_wildcard
      Src: /src/gdal/ogr/swq_select.cpp:969,1
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:980,1
    - Dst: swq_col_def*::expr::Check
      Src: /src/gdal/ogr/swq_select.cpp:989,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/swq_select.cpp:1001,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_select.cpp:1008,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1010,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_select.cpp:1013,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_select.cpp:1027,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_select.cpp:1028,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1029,1
    - Dst: SWQFieldTypeToString
      Src: /src/gdal/ogr/swq_select.cpp:1031,1
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:1045,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1048,1
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:1053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1064,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1086,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1095,1
    - Dst: result_columns
      Src: /src/gdal/ogr/swq_select.cpp:1105,1
    - Dst: swq_join_def*::poExpr::Check
      Src: /src/gdal/ogr/swq_select.cpp:1116,1
    - Dst: CheckCompatibleJoinExpr
      Src: /src/gdal/ogr/swq_select.cpp:1119,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/swq_select.cpp:1134,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1138,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_select.cpp:1141,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_select.cpp:1157,1
    - Dst: Check
      Src: /src/gdal/ogr/swq_select.cpp:1173,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 87
    argCount: 2
    argNames:
    - field_list
    - poParseOptions
    argTypes:
    - swq_field_list*
    - swq_select_parse_options*
    constantsTouched: []
    func_position:
      end: 1180
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 1180
    functionName: swq_select::parse
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 0
    functionsReached:
    - swq_select::expand_wildcard
    - result_columns
    - CPLSPrintf
    - swq_join_def*::poExpr::Check
    - static_cast<swq_op>
    - Check
    - strcmp
    - CheckCompatibleJoinExpr
    - CPLError
    - swq_identify_field
    - SWQFieldTypeToString
    - swq_op_registrar::GetOperator
    - swq_col_def*::expr::Check
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr swq_select::parse(swq_field_list *field_list,\n                         swq_select_parse_options
      *poParseOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/swq_select.cpp:1185,1
    - Dst: end
      Src: /src/gdal/ogr/swq_select.cpp:1187,1
    - Dst: std::partition
      Src: /src/gdal/ogr/swq_select.cpp:1194,1
    - Dst: auto::begin
      Src: /src/gdal/ogr/swq_select.cpp:1195,1
    - Dst: auto::end
      Src: /src/gdal/ogr/swq_select.cpp:1195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:1198,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:1199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_select.cpp:1204,1
    - Dst: auto::end
      Src: /src/gdal/ogr/swq_select.cpp:1207,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:1209,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:1210,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_select.cpp:1211,1
    - Dst: auto::erase
      Src: /src/gdal/ogr/swq_select.cpp:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - src_index
    - pszTableName
    - pszFieldName
    argTypes:
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1220
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1220
    functionName: swq_select::IsFieldExcluded
    functionSourceFile: /src/gdal/ogr/swq_select.cpp
    functionUses: 1
    functionsReached:
    - end
    - auto::erase
    - find
    - std::partition
    - EQUAL
    - CPLFree
    - auto::begin
    - auto::end
    linkageType: ''
    returnType: bool
    signature: "bool swq_select::IsFieldExcluded(int src_index, const char *pszTableName,\n
      \                                const char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: OGRMultiSurface::OGRMultiSurface
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiSurface::OGRMultiSurface(const OGRMultiSurface &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::operator=
      Src: /src/gdal/ogr/ogrmultisurface.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiSurface
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: '&OGRMultiSurface::operator=(const OGRMultiSurface &other)'
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::operator=
    linkageType: ''
    returnType: OGRMultiSurface
    signature: OGRMultiSurface &OGRMultiSurface::operator=(const OGRMultiSurface &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrmultisurface.cpp:68,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrmultisurface.cpp:71,1
    - Dst: WkbSize
      Src: /src/gdal/ogr/ogrmultisurface.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: OGRMultiSurface::clone
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - auto::WkbSize
    - OGRMultiSurface::OGRMultiSurface
    - WkbSize
    linkageType: ''
    returnType: OGRMultiSurface
    signature: OGRMultiSurface *OGRMultiSurface::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: OGRMultiSurface::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMultiSurface::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: OGRMultiSurface::getDimension
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMultiSurface::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: OGRMultiSurface::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMultiSurface::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrmultisurface.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: OGRMultiSurface::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiSurface::isCompatibleSubType(OGRwkbGeometryType
      eGeomType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrmultisurface.cpp:141,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultisurface.cpp:157,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultisurface.cpp:176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultisurface.cpp:185,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrmultisurface.cpp:187,1
    - Dst: OGRPolygon*::importFromWKTListOnly
      Src: /src/gdal/ogr/ogrmultisurface.cpp:190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmultisurface.cpp:193,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrmultisurface.cpp:195,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrmultisurface.cpp:199,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrmultisurface.cpp:200,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrmultisurface.cpp:205,1
    - Dst: OGRGeometry*::toSurface
      Src: /src/gdal/ogr/ogrmultisurface.cpp:211,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrmultisurface.cpp:215,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrmultisurface.cpp:222,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrmultisurface.cpp:234,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultisurface.cpp:237,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmultisurface.cpp:238,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 252
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 252
    functionName: OGRMultiSurface::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLFree
    - OGRGeometry*::toSurface
    - importPreambleFromWkt
    - EQUAL
    - OGRGeometryFactory::createFromWkt
    - addGeometryDirectly
    - CPLError
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::importFromWKTListOnly
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMultiSurface::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exportToWktInternal
      Src: /src/gdal/ogr/ogrmultisurface.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: OGRMultiSurface::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMultiSurface::exportToWkt(const OGRWktOptions &opts,\n
      \                                        OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::hasCurveGeometry
      Src: /src/gdal/ogr/ogrmultisurface.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: OGRMultiSurface::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiSurface::hasCurveGeometry(int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointOnSurfaceInternal
      Src: /src/gdal/ogr/ogrmultisurface.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: OGRMultiSurface::PointOnSurface
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 0
    functionsReached:
    - PointOnSurfaceInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMultiSurface::PointOnSurface(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrmultisurface.cpp:319,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrmultisurface.cpp:327,1
    - Dst: TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrmultisurface.cpp:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poMS
    argTypes:
    - OGRMultiSurface*
    constantsTouched: []
    func_position:
      end: 330
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 330
    functionName: OGRMultiSurface::CastToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrmultisurface.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRSurface::CastToPolygon
    - TransferMembersAndDestroy
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon *OGRMultiSurface::CastToMultiPolygon(OGRMultiSurface
      *poMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogr_schema_override.cpp:23,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:23,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr_schema_override.cpp:26,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogr_schema_override.cpp:26,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogr_schema_override.cpp:27,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogr_schema_override.cpp:35,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogr_schema_override.cpp:36,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogr_schema_override.cpp:38,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:39,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogr_schema_override.cpp:41,1
    - Dst: OGRSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:45,1
    - Dst: GetArray
      Src: /src/gdal/ogr/ogr_schema_override.cpp:47,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:49,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:50,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:53,1
    - Dst: OGRLayerSchemaOverride::SetLayerName
      Src: /src/gdal/ogr/ogr_schema_override.cpp:55,1
    - Dst: OGRLayerSchemaOverride::SetFullOverride
      Src: /src/gdal/ogr/ogr_schema_override.cpp:56,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogr_schema_override.cpp:58,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:58,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:62,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:63,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:65,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:72,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:72,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:74,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:74,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:77,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogr_schema_override.cpp:77,1
    - Dst: GetInteger
      Src: /src/gdal/ogr/ogr_schema_override.cpp:79,1
    - Dst: GetInteger
      Src: /src/gdal/ogr/ogr_schema_override.cpp:81,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:83,1
    - Dst: OGRFieldDefnOverride::SetFieldName
      Src: /src/gdal/ogr/ogr_schema_override.cpp:85,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:88,1
    - Dst: OGRFieldDefn::GetFieldTypeByName
      Src: /src/gdal/ogr/ogr_schema_override.cpp:91,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:92,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:96,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:99,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:100,1
    - Dst: OGRFieldDefnOverride::SetFieldType
      Src: /src/gdal/ogr/ogr_schema_override.cpp:103,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:106,1
    - Dst: OGRFieldDefn::GetFieldSubTypeByName
      Src: /src/gdal/ogr/ogr_schema_override.cpp:109,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:114,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:117,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:118,1
    - Dst: OGRFieldDefnOverride::SetFieldSubType
      Src: /src/gdal/ogr/ogr_schema_override.cpp:121,1
    - Dst: OGRFieldDefnOverride::SetFieldWidth
      Src: /src/gdal/ogr/ogr_schema_override.cpp:126,1
    - Dst: OGRFieldDefnOverride::SetFieldPrecision
      Src: /src/gdal/ogr/ogr_schema_override.cpp:131,1
    - Dst: OGRFieldDefnOverride::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:134,1
    - Dst: OGRLayerSchemaOverride::AddFieldOverride
      Src: /src/gdal/ogr/ogr_schema_override.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:141,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:144,1
    - Dst: OGRLayerSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:150,1
    - Dst: AddLayerOverride
      Src: /src/gdal/ogr/ogr_schema_override.cpp:152,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:156,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogr_schema_override.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_schema_override.cpp:180,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 1
    argNames:
    - osJSON
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 183
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 183
    functionName: OGRSchemaOverride::LoadFromJSON
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.cpp
    functionUses: 0
    functionsReached:
    - GetString
    - OGRFieldDefnOverride::SetFieldPrecision
    - CPLJSONDocument::GetRoot
    - OGRFieldDefn::GetFieldTypeByName
    - CPLString
    - CPLError
    - std::string::c_str
    - OGRFieldDefnOverride::SetFieldSubType
    - OGRLayerSchemaOverride::SetLayerName
    - CPLString::empty
    - auto::c_str
    - OGRFieldDefnOverride::IsValid
    - reinterpret_cast<char *>
    - OGRLayerSchemaOverride::SetFullOverride
    - CPLString::c_str
    - OGRLayerSchemaOverride::AddFieldOverride
    - AddLayerOverride
    - auto::Size
    - GetInteger
    - CPLJSONDocument::LoadMemory
    - OGRSchemaOverride::IsValid
    - auto::empty
    - OGRFieldDefnOverride::SetFieldName
    - VSIIngestFile
    - CPLJSONObject::GetArray
    - std::string
    - OGRFieldDefnOverride::SetFieldWidth
    - OGRLayerSchemaOverride::IsValid
    - OGRFieldDefn::GetFieldSubTypeByName
    - OGRFieldDefnOverride::SetFieldType
    - VSIFree
    - GetArray
    - CPLJSONObject::IsValid
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: bool OGRSchemaOverride::LoadFromJSON(const std::string &osJSON)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: OGRSchemaOverride::IsValid
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.cpp
    functionUses: 1
    functionsReached:
    - second::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRSchemaOverride::IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first::empty
      Src: /src/gdal/ogr/ogr_schema_override.cpp:200,1
    - Dst: second::IsValid
      Src: /src/gdal/ogr/ogr_schema_override.cpp:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: OGRLayerSchemaOverride::IsValid
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.cpp
    functionUses: 1
    functionsReached:
    - first::empty
    - second::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRLayerSchemaOverride::IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/gdal/ogr/ogr_schema_override.cpp:213,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogr_schema_override.cpp:213,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogr_schema_override.cpp:214,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogr_schema_override.cpp:214,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogr_schema_override.cpp:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: OGRFieldDefnOverride::IsValid
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.cpp
    functionUses: 1
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool OGRFieldDefnOverride::IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:130,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszProj
    - pszUnits
    - padfPrjParams
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - double*
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: OSRImportFromPCI
    functionSourceFile: /src/gdal/ogr/ogr_srs_pci.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromPCI(OGRSpatialReferenceH hSRS, const char *pszProj,\n
      \                       const char *pszUnits, double *padfPrjParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:188,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:191,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:191,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:196,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:213,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:222,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:223,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:223,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:239,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:243,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:244,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:246,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:247,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:249,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:249,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:251,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:252,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:252,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:254,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:256,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:259,1
    - Dst: OGRSpatialReference::SetAE
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:261,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:264,1
    - Dst: OGRSpatialReference::SetCS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:266,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:269,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:271,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:274,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:277,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:280,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:282,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:287,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:289,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:292,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:294,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:297,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:299,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:302,1
    - Dst: OGRSpatialReference::SetMC
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:304,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:309,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:314,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:316,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:320,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:322,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:325,1
    - Dst: OGRSpatialReference::SetHOM
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:330,1
    - Dst: OGRSpatialReference::SetHOM2PNO
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:336,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:341,1
    - Dst: OGRSpatialReference::SetPolyconic
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:343,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:346,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:348,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:352,1
    - Dst: OGRSpatialReference::SetRobinson
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:354,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:357,1
    - Dst: OGRSpatialReference::SetOS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:359,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:363,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:365,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:369,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:371,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:374,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:379,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:380,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:382,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:387,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:388,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:389,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:391,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:396,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:397,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:398,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:400,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:402,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:407,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:423,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:429,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:447,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:449,1
    - Dst: OGRSpatialReference::SetVDG
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:451,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:455,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:456,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:466,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:467,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:467,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:467,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:474,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:476,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:477,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:478,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:496,1
    - Dst: CSVReadParseLineL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:502,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:504,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:505,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:509,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:513,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:516,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:536,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:539,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:540,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:556,1
    - Dst: CSVReadParseLineL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:562,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:564,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:565,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:567,1
    - Dst: OSRCalcInvFlattening
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:571,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:574,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:576,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:578,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:587,1
    - Dst: OSRCalcInvFlattening
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:593,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:618,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:619,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:625,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:629,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:634,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:637,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:638,1
    - Dst: OGRSpatialReference::SetTOWGS84
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:647,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:649,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:649,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:650,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:650,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:656,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:657,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:658,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:659,1
    - Dst: OGRSpatialReference::SetTOWGS84
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:661,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:661,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:662,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:663,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:667,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:673,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:675,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:677,1
    - Dst: OGRSpatialReference::SetAngularUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:678,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:678,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:680,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 215
    argCount: 3
    argNames:
    - pszProj
    - pszUnits
    - padfPrjParams
    argTypes:
    - char*
    - char*
    - double*
    constantsTouched: []
    func_position:
      end: 684
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 684
    functionName: OGRSpatialReference::importFromPCI
    functionSourceFile: /src/gdal/ogr/ogr_srs_pci.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::GetRoot
    - OGRSpatialReference::SetGeogCS
    - strncpy
    - CPLDebug
    - OGRSpatialReference::SetLCC1SP
    - OGRSpatialReference::SetOS
    - OGRSpatialReference::CopyGeogCSFrom
    - OGRSpatialReference::SetAuthority
    - OGRSpatialReference::SetTOWGS84
    - CPLStrnlen
    - EQUALN
    - OGRSpatialReference::SetVDG
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetMercator
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetStereographic
    - CPLToupper
    - static_cast<unsigned char>
    - OGRSpatialReference::SetAngularUnits
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - CSVReadParseLineL
    - strlen
    - OGRSpatialReference::IsLocal
    - CSLCount
    - OGRSpatialReference::SetOrthographic
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::SetLinearUnitsAndUpdateParameters
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - OGRSpatialReference::SetMC
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetHOM2PNO
    - CPLString::Printf
    - OGRSpatialReference::SetEC
    - OGRSpatialReference::SetGnomonic
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::SetCS
    - OGRSpatialReference::SetPolyconic
    - VSIFOpenL
    - snprintf
    - OGRSpatialReference::Clear
    - OGRSpatialReference::SetHOM
    - OGRSpatialReference::SetStatePlane
    - CPL_IGNORE_RET_VAL
    - OGRSpatialReference::SetLinearUnits
    - OGRSpatialReference::SetEquirectangular2
    - OSRGetEllipsoidInfo
    - CPLFree
    - static_cast<size_t>
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetRobinson
    - VSIFCloseL
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetAE
    - OGRSpatialReference::SetUTM
    - strcpy
    - OSRCalcInvFlattening
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromPCI(const char *pszProj,\n                                          const
      char *pszUnits,\n                                          const double *padfPrjParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:698,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hSRS
    - ppszProj
    - ppszUnits
    - ppadfPrjParams
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - char**
    - double**
    constantsTouched: []
    func_position:
      end: 706
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 706
    functionName: OSRExportToPCI
    functionSourceFile: /src/gdal/ogr/ogr_srs_pci.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToPCI(OGRSpatialReferenceH hSRS, char **ppszProj,\n
      \                     char **ppszUnits, double **ppadfPrjParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:747,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:747,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:755,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:758,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:759,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:759,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:761,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:761,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:770,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:772,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:772,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:773,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:775,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:779,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:781,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:783,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:784,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:785,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:786,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:787,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:788,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:789,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:791,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:793,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:794,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:795,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:796,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:797,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:799,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:801,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:802,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:803,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:804,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:805,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:807,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:809,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:810,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:811,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:812,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:813,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:814,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:815,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:817,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:819,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:820,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:821,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:822,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:825,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:827,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:828,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:829,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:830,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:831,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:833,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:835,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:836,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:837,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:838,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:839,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:841,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:843,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:844,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:845,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:846,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:847,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:848,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:849,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:851,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:853,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:854,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:855,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:856,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:857,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:858,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:860,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:862,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:863,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:864,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:865,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:866,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:868,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:870,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:871,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:872,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:873,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:874,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:875,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:877,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:879,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:880,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:881,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:882,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:883,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:885,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:887,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:888,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:889,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:890,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:892,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:893,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:894,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:896,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:899,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:900,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:902,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:904,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:906,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:908,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:909,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:910,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:911,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:913,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:915,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:916,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:917,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:918,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:919,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:921,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:923,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:924,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:925,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:926,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:927,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:928,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:930,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:932,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:933,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:934,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:935,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:937,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:939,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:940,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:941,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:942,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:943,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:946,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:948,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:949,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:950,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:951,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:952,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:953,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:955,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:957,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:958,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:959,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:960,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:962,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:969,1
    - Dst: CPLPrintInt32
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:971,1
    - Dst: CPLPrintInt32
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:973,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:977,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:979,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:981,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:982,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:983,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:984,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:987,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:989,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:990,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:991,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:992,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:997,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1001,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1014,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1018,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1020,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1022,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1024,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1026,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1028,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1029,1
    - Dst: OGRSpatialReference::GetWKT2ProjectionMethod
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1033,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1034,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1036,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1049,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1057,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1080,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1082,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1083,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1085,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1100,1
    - Dst: CSVReadParseLineL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1106,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1108,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1109,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1109,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1110,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1110,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1112,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1117,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1120,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1121,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1128,1
    - Dst: OSRCalcSemiMinorFromInvFlattening
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1138,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1145,1
    - Dst: CSVReadParseLineL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1151,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1158,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1160,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1167,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1171,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1171,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1172,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1172,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1173,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1173,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1176,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1177,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1177,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1178,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1178,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1179,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1179,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1182,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1190,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1191,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1195,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1196,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1197,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1198,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1199,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1204,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1209,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1212,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1213,1
    - Dst: CPLPrintStringFill
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1217,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1219,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1231,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srs_pci.cpp:1233,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 285
    argCount: 3
    argNames:
    - ppszProj
    - ppszUnits
    - ppadfPrjParams
    argTypes:
    - char**
    - char**
    - double**
    constantsTouched: []
    func_position:
      end: 1236
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 1236
    functionName: OGRSpatialReference::exportToPCI
    functionSourceFile: /src/gdal/ogr/ogr_srs_pci.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - CPLPrintInt32
    - CPLPrintStringFill
    - CPLDebug
    - OGRSpatialReference::GetAttrNode
    - CPLIsEqual
    - CPLStrdup
    - OGRSpatialReference::GetWKT2ProjectionMethod
    - CSVReadParseLineL
    - static_cast<double *>
    - OGRSpatialReference::GetNormProjParm
    - strlen
    - OGRSpatialReference::IsLocal
    - CSLCount
    - CPLMalloc
    - CPLAtof
    - VSIFOpenL
    - snprintf
    - OSRGetEllipsoidInfo
    - OGRSpatialReference::GetLinearUnits
    - VSIFCloseL
    - CSLDestroy
    - EQUAL
    - fabs
    - OGR_SRSNode*::GetChild
    - OSRCalcSemiMinorFromInvFlattening
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToPCI(char **ppszProj, char **ppszUnits,\n
      \                                       double **ppadfPrjParams) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: OGRWKBNeedSwap
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRWKBNeedSwap(GByte b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:53,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pabyWkb
    - bNeedSwap
    argTypes:
    - GByte*
    - bool
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: OGRWKBReadUInt32
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_SWAP32PTR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OGRWKBReadUInt32(const GByte *pabyWkb, bool bNeedSwap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:66,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pabyWkb
    - bNeedSwap
    argTypes:
    - GByte*
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: OGRWKBReadFloat64
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: double
    signature: double OGRWKBReadFloat64(const GByte *pabyWkb, bool bNeedSwap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogr_wkb.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - pabyWkb
    - nWKBSize
    - nDim
    - bNeedSwap
    - dfArea
    argTypes:
    - GByte*
    - size_t
    - int
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 108
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 108
    functionName: OGRWKBRingGetArea
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - std::fabs
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBRingGetArea(const GByte *&pabyWkb, size_t &nWKBSize, int
      nDim,\n                              bool bNeedSwap, double &dfArea)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBNeedSwap
      Src: /src/gdal/ogr/ogr_wkb.cpp:119,1
    - Dst: OGRWKBReadUInt32
      Src: /src/gdal/ogr/ogr_wkb.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pabyWkb
    - nWKBSize
    - bNeedSwap
    - nType
    argTypes:
    - GByte*
    - size_t
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: OGRWKBGetGeomType
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBNeedSwap
    - OGRWKBReadUInt32
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBGetGeomType(const GByte *pabyWkb, size_t nWKBSize, bool
      &bNeedSwap,\n                       uint32_t &nType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBGetGeomType
      Src: /src/gdal/ogr/ogr_wkb.cpp:135,1
    - Dst: OGRWKBRingGetArea
      Src: /src/gdal/ogr/ogr_wkb.cpp:165,1
    - Dst: OGRWKBRingGetArea
      Src: /src/gdal/ogr/ogr_wkb.cpp:170,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - dfArea
    argTypes:
    - GByte*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: OGRWKBPolygonGetArea
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBRingGetArea
    - OGRWKBGetGeomType
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBPolygonGetArea(const GByte *&pabyWkb, size_t &nWKBSize,\n
      \                         double &dfArea)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBPolygonGetArea
      Src: /src/gdal/ogr/ogr_wkb.cpp:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - dfArea
    argTypes:
    - GByte*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: OGRWKBMultiPolygonGetArea
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBPolygonGetArea
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBMultiPolygonGetArea(const GByte *&pabyWkb, size_t &nWKBSize,\n
      \                              double &dfArea)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_wkb.cpp:219,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogr_wkb.cpp:220,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:237,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:240,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogr_wkb.cpp:241,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogr_wkb.cpp:251,1
    - Dst: memset
      Src: /src/gdal/ogr/ogr_wkb.cpp:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - pabyEWKB
    - nEWKBSize
    - nWKBSizeOut
    - pnSRIDOut
    argTypes:
    - GByte*
    - size_t
    - size_t
    - int*
    constantsTouched: []
    func_position:
      end: 267
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 267
    functionName: WKBFromEWKB
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - OGR_SWAP
    - CPL_SWAP32
    - CPLError
    - memset
    - memcpy
    - memmove
    linkageType: ''
    returnType: GByte
    signature: "GByte *WKBFromEWKB(GByte *pabyEWKB, size_t nEWKBSize, size_t &nWKBSizeOut,\n
      \                        int *pnSRIDOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:278,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:280,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - eByteOrder
    - iOffset
    argTypes:
    - uint8_t*
    - OGRwkbByteOrder
    - size_t
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: OGRWKBReadUInt32AtOffset
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGR_SWAP
    - memcpy
    - CPL_SWAP32PTR
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t OGRWKBReadUInt32AtOffset(const uint8_t *data,\n                                         OGRwkbByteOrder
      eByteOrder,\n                                         size_t &iOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:306,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:307,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:311,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:315,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:317,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:318,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:321,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:324,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:325,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:326,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:327,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:332,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - data
    - size
    - eByteOrder
    - nDim
    - bHasZ
    - iOffset
    - sEnvelope
    argTypes:
    - uint8_t*
    - size_t
    - OGRwkbByteOrder
    - int
    - bool
    - size_t
    - EnvelopeType
    constantsTouched: []
    func_position:
      end: 338
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 338
    functionName: ReadWKBPointSequence
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGR_SWAP
    - min
    - max
    - memcpy
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: bool
    signature: "bool ReadWKBPointSequence(const uint8_t *data, size_t size,\n                                 OGRwkbByteOrder
      eByteOrder, int nDim,\n                                 bool bHasZ, size_t &iOffset,\n
      \                                EnvelopeType &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadWKBPointSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - data
    - size
    - eByteOrder
    - nDim
    - bHasZ
    - iOffset
    - sEnvelope
    argTypes:
    - uint8_t*
    - size_t
    - OGRwkbByteOrder
    - int
    - bool
    - size_t
    - EnvelopeType
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: ReadWKBRingSequence
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - ReadWKBPointSequence
    linkageType: ''
    returnType: bool
    signature: "bool ReadWKBRingSequence(const uint8_t *data, size_t size,\n                                OGRwkbByteOrder
      eByteOrder, int nDim,\n                                bool bHasZ, size_t &iOffset,\n
      \                               EnvelopeType &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogr_wkb.cpp:381,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogr_wkb.cpp:384,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_wkb.cpp:386,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:397,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:398,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:402,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:406,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:408,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:409,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:412,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:415,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:418,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:440,1
    - Dst: ReadWKBPointSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:442,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:448,1
    - Dst: ReadWKBRingSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:450,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:456,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:468,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:469,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:473,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:477,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:479,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:480,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:483,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:486,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:487,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:488,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:489,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_wkb.cpp:494,1
    - Dst: max
      Src: /src/gdal/ogr/ogr_wkb.cpp:495,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:504,1
    - Dst: ReadWKBPointSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:515,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:524,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_wkb.cpp:534,1
    - Dst: ReadWKBRingSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:536,1
    - Dst: EnvelopeType
      Src: /src/gdal/ogr/ogr_wkb.cpp:550,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogr_wkb.cpp:559,1
    - Dst: EnvelopeType::Merge
      Src: /src/gdal/ogr/ogr_wkb.cpp:562,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 122
    argCount: 5
    argNames:
    - data
    - size
    - iOffset
    - sEnvelope
    - nRec
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - EnvelopeType
    - int
    constantsTouched: []
    func_position:
      end: 568
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 568
    functionName: OGRWKBGetBoundingBox
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached:
    - EnvelopeType::Merge
    - EnvelopeType
    - static_cast<OGRwkbByteOrder>
    - OGR_SWAP
    - min
    - max
    - ReadWKBPointSequence
    - OGRReadWKBGeometryType
    - ReadWKBRingSequence
    - CPLAssert
    - OGRWKBGetBoundingBox
    - wkbFlatten
    - memcpy
    - std::isnan
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBGetBoundingBox(const uint8_t *data, size_t size,\n                                 size_t
      &iOffset, EnvelopeType &sEnvelope,\n                                 int nRec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogr_wkb.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - sEnvelope
    argTypes:
    - GByte*
    - size_t
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: OGRWKBGetBoundingBox
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 2
    functionsReached:
    - OGRWKBGetBoundingBox
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBGetBoundingBox(const GByte *pabyWkb, size_t nWKBSize,\n
      \                         OGREnvelope &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogr_wkb.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - sEnvelope
    argTypes:
    - GByte*
    - size_t
    - OGREnvelope3D
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: OGRWKBGetBoundingBox
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 3
    functionsReached:
    - OGRWKBGetBoundingBox
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBGetBoundingBox(const GByte *pabyWkb, size_t nWKBSize,\n
      \                         OGREnvelope3D &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:614,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:615,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:617,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:619,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - data
    - size
    - eByteOrder
    - nDim
    - iOffsetInOut
    - sEnvelope
    - bErrorOut
    argTypes:
    - uint8_t*
    - size_t
    - OGRwkbByteOrder
    - int
    - size_t
    - OGREnvelope
    - bool
    constantsTouched: []
    func_position:
      end: 630
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 630
    functionName: OGRWKBIntersectsPointSequencePessimistic
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGR_SWAP
    - memcpy
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBIntersectsPointSequencePessimistic(\n    const uint8_t
      *data, const size_t size, const OGRwkbByteOrder eByteOrder,\n    const int nDim,
      size_t &iOffsetInOut, const OGREnvelope &sEnvelope,\n    bool &bErrorOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBIntersectsPointSequencePessimistic
      Src: /src/gdal/ogr/ogr_wkb.cpp:655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 7
    argNames:
    - data
    - size
    - eByteOrder
    - nDim
    - iOffsetInOut
    - sEnvelope
    - bErrorOut
    argTypes:
    - uint8_t*
    - size_t
    - OGRwkbByteOrder
    - int
    - size_t
    - OGREnvelope
    - bool
    constantsTouched: []
    func_position:
      end: 681
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 681
    functionName: OGRWKBIntersectsRingSequencePessimistic
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBIntersectsPointSequencePessimistic
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBIntersectsRingSequencePessimistic(\n    const uint8_t *data,
      const size_t size, const OGRwkbByteOrder eByteOrder,\n    const int nDim, size_t
      &iOffsetInOut, const OGREnvelope &sEnvelope,\n    bool &bErrorOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogr_wkb.cpp:703,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogr_wkb.cpp:706,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_wkb.cpp:708,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:718,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:719,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogr_wkb.cpp:721,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:723,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:724,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:726,1
    - Dst: OGRWKBIntersectsPointSequencePessimistic
      Src: /src/gdal/ogr/ogr_wkb.cpp:739,1
    - Dst: OGRWKBIntersectsRingSequencePessimistic
      Src: /src/gdal/ogr/ogr_wkb.cpp:745,1
    - Dst: OGRWKBIntersectsPessimistic
      Src: /src/gdal/ogr/ogr_wkb.cpp:769,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 54
    argCount: 6
    argNames:
    - data
    - size
    - iOffsetInOut
    - sEnvelope
    - nRec
    - bErrorOut
    argTypes:
    - GByte*
    - size_t
    - size_t
    - OGREnvelope
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 784
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 784
    functionName: OGRWKBIntersectsPessimistic
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRwkbByteOrder>
    - OGRWKBIntersectsRingSequencePessimistic
    - OGR_SWAP
    - OGRWKBIntersectsPointSequencePessimistic
    - OGRReadWKBGeometryType
    - OGRWKBIntersectsPessimistic
    - wkbFlatten
    - memcpy
    - std::isnan
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBIntersectsPessimistic(const GByte *data, const size_t size,\n
      \                                       size_t &iOffsetInOut,\n                                        const
      OGREnvelope &sEnvelope,\n                                        const int nRec,
      bool &bErrorOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - sEnvelope
    argTypes:
    - GByte*
    - size_t
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: OGRWKBIntersectsPessimistic
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBIntersectsPessimistic(const GByte *pabyWkb, size_t nWKBSize,\n
      \                                const OGREnvelope &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::fabs
      Src: /src/gdal/ogr/ogr_wkb.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - eps
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 818
    functionName: epsilonEqual
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - cpl::fabs
    linkageType: ''
    returnType: bool
    signature: bool epsilonEqual(double a, double b, double eps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:828,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:828,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - i
    - nDim
    - bNeedSwap
    argTypes:
    - GByte*
    - uint32_t
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: GetX
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - memcpy
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: double
    signature: "double GetX(const GByte *data, uint32_t i, int nDim,\n                          bool
      bNeedSwap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:839,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:839,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - i
    - nDim
    - bNeedSwap
    argTypes:
    - GByte*
    - uint32_t
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: GetY
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - memcpy
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: double
    signature: "double GetY(const GByte *data, uint32_t i, int nDim,\n                          bool
      bNeedSwap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:867,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogr_wkb.cpp:892,1
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:892,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogr_wkb.cpp:893,1
    - Dst: GetY
      Src: /src/gdal/ogr/ogr_wkb.cpp:893,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogr_wkb.cpp:910,1
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:910,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogr_wkb.cpp:911,1
    - Dst: GetY
      Src: /src/gdal/ogr/ogr_wkb.cpp:911,1
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:942,1
    - Dst: GetY
      Src: /src/gdal/ogr/ogr_wkb.cpp:943,1
    - Dst: GetY
      Src: /src/gdal/ogr/ogr_wkb.cpp:944,1
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:947,1
    - Dst: GetY
      Src: /src/gdal/ogr/ogr_wkb.cpp:948,1
    - Dst: GetX
      Src: /src/gdal/ogr/ogr_wkb.cpp:949,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - data
    - nPoints
    - nDim
    - bNeedSwap
    argTypes:
    - GByte*
    - uint32_t
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 952
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 952
    functionName: OGRWKBIsClockwiseRing
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - GetX
    - GetY
    - epsilonEqual
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBIsClockwiseRing(const GByte *data, const uint32_t nPoints,\n
      \                                 const int nDim, const bool bNeedSwap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogr_wkb.cpp:970,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogr_wkb.cpp:973,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_wkb.cpp:975,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1012,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1013,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1014,1
    - Dst: OGRWKBFixupCounterClockWiseExternalRingInternal
      Src: /src/gdal/ogr/ogr_wkb.cpp:1038,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 4
    argNames:
    - data
    - size
    - iOffsetInOut
    - nRec
    argTypes:
    - GByte*
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1047
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 1047
    functionName: OGRWKBFixupCounterClockWiseExternalRingInternal
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRwkbByteOrder>
    - OGRReadWKBGeometryType
    - OGRWKBFixupCounterClockWiseExternalRingInternal
    - wkbFlatten
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBFixupCounterClockWiseExternalRingInternal(\n    GByte *data,
      size_t size, size_t &iOffsetInOut, const int nRec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBFixupCounterClockWiseExternalRingInternal
      Src: /src/gdal/ogr/ogr_wkb.cpp:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyWkb
    - nWKBSize
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 1057
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1057
    functionName: OGRWKBFixupCounterClockWiseExternalRing
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBFixupCounterClockWiseExternalRingInternal
    linkageType: ''
    returnType: void
    signature: void OGRWKBFixupCounterClockWiseExternalRing(GByte *pabyWkb, size_t
      nWKBSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1063
    functionName: OGRWKBPointUpdater::OGRWKBPointUpdater
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWKBPointUpdater::OGRWKBPointUpdater()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1065
    functionName: OGRWKBPointUpdater::~OGRWKBPointUpdater()
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWKBPointUpdater::~OGRWKBPointUpdater()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBPointUpdater::update
      Src: /src/gdal/ogr/ogr_wkb.cpp:1092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 8
    argNames:
    - data
    - size
    - oUpdater
    - eByteOrder
    - nDim
    - bHasZ
    - bHasM
    - iOffsetInOut
    argTypes:
    - uint8_t*
    - size_t
    - OGRWKBPointUpdater
    - OGRwkbByteOrder
    - int
    - bool
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 1099
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1099
    functionName: OGRWKBUpdatePointsSequence
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBPointUpdater::update
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBUpdatePointsSequence(uint8_t *data, const size_t size,\n
      \                                      OGRWKBPointUpdater &oUpdater,\n                                       const
      OGRwkbByteOrder eByteOrder,\n                                       const int
      nDim, const bool bHasZ,\n                                       const bool bHasM,
      size_t &iOffsetInOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBUpdatePointsSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 8
    argNames:
    - data
    - size
    - oUpdater
    - eByteOrder
    - nDim
    - bHasZ
    - bHasM
    - iOffsetInOut
    argTypes:
    - uint8_t*
    - size_t
    - OGRWKBPointUpdater
    - OGRwkbByteOrder
    - int
    - bool
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 1131
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1131
    functionName: OGRWKBVisitRingSequence
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBUpdatePointsSequence
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBVisitRingSequence(uint8_t *data, const size_t size,\n                                    OGRWKBPointUpdater
      &oUpdater,\n                                    const OGRwkbByteOrder eByteOrder,\n
      \                                   const int nDim, const bool bHasZ,\n                                    const
      bool bHasM, size_t &iOffsetInOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1150,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogr_wkb.cpp:1153,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_wkb.cpp:1155,1
    - Dst: OGRWKBUpdatePoints
      Src: /src/gdal/ogr/ogr_wkb.cpp:1174,1
    - Dst: OGRWKBPointUpdater::update
      Src: /src/gdal/ogr/ogr_wkb.cpp:1196,1
    - Dst: OGRWKBUpdatePointsSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:1204,1
    - Dst: OGRWKBVisitRingSequence
      Src: /src/gdal/ogr/ogr_wkb.cpp:1210,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_wkb.cpp:1214,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 5
    argNames:
    - data
    - size
    - oUpdater
    - iOffsetInOut
    - nRec
    argTypes:
    - uint8_t*
    - size_t
    - OGRWKBPointUpdater
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1216
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1216
    functionName: OGRWKBUpdatePoints
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRwkbByteOrder>
    - OGRWKBPointUpdater::update
    - CPLDebug
    - OGRWKBUpdatePointsSequence
    - OGRReadWKBGeometryType
    - OGRWKBVisitRingSequence
    - wkbFlatten
    - OGRWKBUpdatePoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBUpdatePoints(uint8_t *data, const size_t size,\n                               OGRWKBPointUpdater
      &oUpdater,\n                               size_t &iOffsetInOut, const int nRec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBUpdatePoints
      Src: /src/gdal/ogr/ogr_wkb.cpp:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyWkb
    - nWKBSize
    - oUpdater
    argTypes:
    - GByte*
    - size_t
    - OGRWKBPointUpdater
    constantsTouched: []
    func_position:
      end: 1226
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1226
    functionName: OGRWKBUpdatePoints
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 2
    functionsReached:
    - OGRWKBUpdatePoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBUpdatePoints(GByte *pabyWkb, size_t nWKBSize,\n                        OGRWKBPointUpdater
      &oUpdater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1235,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1236,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1237,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1238,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1239,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1240,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1241,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1242,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1243,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1244,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1246
    functionName: OGRWKBTransformCache::clear
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 1
    functionsReached:
    - OGRWKBTransformCache::clear
    linkageType: ''
    returnType: void
    signature: void OGRWKBTransformCache::clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1276,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1277,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1280,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1281,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:1283,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:1283,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1287,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1290,1
    - Dst: TransformWithErrorCodes
      Src: /src/gdal/ogr/ogr_wkb.cpp:1296,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogr_wkb.cpp:1300,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1303,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1304,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1305,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1307,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1308,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1310,1
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogr_wkb.cpp:1321,1
    - Dst: OGRWKBUpdatePoints
      Src: /src/gdal/ogr/ogr_wkb.cpp:1323,1
    - Dst: abNeedSwap::push_back
      Src: /src/gdal/ogr/ogr_wkb.cpp:1338,1
    - Dst: apdfX::push_back
      Src: /src/gdal/ogr/ogr_wkb.cpp:1339,1
    - Dst: apdfY::push_back
      Src: /src/gdal/ogr/ogr_wkb.cpp:1340,1
    - Dst: apdfZ::push_back
      Src: /src/gdal/ogr/ogr_wkb.cpp:1341,1
    - Dst: OGRWKBTransformCache::clear
      Src: /src/gdal/ogr/ogr_wkb.cpp:1346,1
    - Dst: OGRWKBUpdatePoints
      Src: /src/gdal/ogr/ogr_wkb.cpp:1348,1
    - Dst: OGRWKBTransformCache::adfX::resize
      Src: /src/gdal/ogr/ogr_wkb.cpp:1351,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1351,1
    - Dst: OGRWKBTransformCache::adfY::resize
      Src: /src/gdal/ogr/ogr_wkb.cpp:1352,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1352,1
    - Dst: OGRWKBTransformCache::adfZ::resize
      Src: /src/gdal/ogr/ogr_wkb.cpp:1353,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1353,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1355,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1357,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1358,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1360,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1363,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1364,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1365,1
    - Dst: OGRWKBTransformCache::abIsEmpty::push_back
      Src: /src/gdal/ogr/ogr_wkb.cpp:1367,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:1367,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_wkb.cpp:1368,1
    - Dst: OGRWKBTransformCache::anErrorCodes::resize
      Src: /src/gdal/ogr/ogr_wkb.cpp:1371,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1371,1
    - Dst: OGRCoordinateTransformation*::TransformWithErrorCodes
      Src: /src/gdal/ogr/ogr_wkb.cpp:1372,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1372,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1372,1
    - Dst: OGRWKBTransformCache::adfX::data
      Src: /src/gdal/ogr/ogr_wkb.cpp:1373,1
    - Dst: OGRWKBTransformCache::adfY::data
      Src: /src/gdal/ogr/ogr_wkb.cpp:1373,1
    - Dst: OGRWKBTransformCache::adfZ::data
      Src: /src/gdal/ogr/ogr_wkb.cpp:1374,1
    - Dst: OGRWKBTransformCache::anErrorCodes::data
      Src: /src/gdal/ogr/ogr_wkb.cpp:1375,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1377,1
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogr_wkb.cpp:1383,1
    - Dst: OGRWKBTransformCache::apdfX::size
      Src: /src/gdal/ogr/ogr_wkb.cpp:1384,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogr_wkb.cpp:1388,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogr_wkb.cpp:1389,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogr_wkb.cpp:1390,1
    - Dst: OGREnvelope3D::Merge
      Src: /src/gdal/ogr/ogr_wkb.cpp:1394,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1398,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1399,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogr_wkb.cpp:1400,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1402,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1403,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1405,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 5
    argNames:
    - pabyWkb
    - nWKBSize
    - poCT
    - oCache
    - sEnvelope
    argTypes:
    - GByte*
    - size_t
    - OGRCoordinateTransformation*
    - OGRWKBTransformCache
    - OGREnvelope3D
    constantsTouched: []
    func_position:
      end: 1410
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1410
    functionName: OGRWKBTransform
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - apdfY::push_back
    - OGRCoordinateTransformation*::TransformWithErrorCodes
    - OGRWKBTransformCache::adfY::data
    - OGRWKBTransformCache::anErrorCodes::data
    - std::isnan
    - OGRWKBTransformCache::clear
    - OGRWKBTransformCache::adfX::data
    - abNeedSwap::push_back
    - apdfZ::push_back
    - OGRWKBTransformCache::adfX::resize
    - OGRWKBTransformCache::adfY::resize
    - OGREnvelope3D::Merge
    - CPL_SWAP64PTR
    - OGRWKBTransformCache::anErrorCodes::resize
    - static_cast<int>
    - OGREnvelope3D
    - TransformWithErrorCodes
    - OGRWKBTransformCache::abIsEmpty::push_back
    - cpl::quiet_NaN
    - apdfX::push_back
    - OGRWKBTransformCache::adfZ::resize
    - OGRWKBUpdatePoints
    - OGRWKBTransformCache::adfZ::data
    - OGRWKBTransformCache::apdfX::size
    - Merge
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRWKBTransform(GByte *pabyWkb, size_t nWKBSize,\n                     OGRCoordinateTransformation
      *poCT,\n                     [[maybe_unused]] OGRWKBTransformCache &oCache,\n
      \                    OGREnvelope3D &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1416
    functionName: OGRAppendBuffer::OGRAppendBuffer
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAppendBuffer::OGRAppendBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1422
    functionName: OGRAppendBuffer::~OGRAppendBuffer()
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAppendBuffer::~OGRAppendBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_wkb.cpp:1434,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogr_wkb.cpp:1435,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_wkb.cpp:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oAppendBuffer
    argTypes:
    - OGRAppendBuffer
    constantsTouched: []
    func_position:
      end: 1438
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1438
    functionName: OGRWKTToWKBTranslator::OGRWKTToWKBTranslator
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - CPL_IGNORE_RET_VAL
    - snprintf
    linkageType: ''
    returnType: void
    signature: void OGRWKTToWKBTranslator::OGRWKTToWKBTranslator(OGRAppendBuffer &oAppendBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_wkb.cpp:1449,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_wkb.cpp:1450,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_wkb.cpp:1450,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogr_wkb.cpp:1495,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1508,1
    - Dst: GetPtrForNewBytes
      Src: /src/gdal/ogr/ogr_wkb.cpp:1509,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1512,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogr_wkb.cpp:1524,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1525,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogr_wkb.cpp:1531,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1532,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogr_wkb.cpp:1544,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1545,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogr_wkb.cpp:1551,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1552,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogr_wkb.cpp:1558,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1559,1
    - Dst: argparse::details::do_from_chars
      Src: /src/gdal/ogr/ogr_wkb.cpp:1578,1
    - Dst: std::errc
      Src: /src/gdal/ogr/ogr_wkb.cpp:1579,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogr_wkb.cpp:1592,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_wkb.cpp:1593,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_wkb.cpp:1603,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_wkb.cpp:1611,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1615,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogr_wkb.cpp:1633,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogr_wkb.cpp:1640,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogr_wkb.cpp:1641,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_wkb.cpp:1641,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_wkb.cpp:1645,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1646,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1650,1
    - Dst: GetPtrForNewBytes
      Src: /src/gdal/ogr/ogr_wkb.cpp:1650,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_wkb.cpp:1653,1
    - Dst: std::unique_ptr::exportToWkb
      Src: /src/gdal/ogr/ogr_wkb.cpp:1655,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 103
    argCount: 3
    argNames:
    - pabyWKTStart
    - nLength
    - bCanAlterByteAfter
    argTypes:
    - void*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 1657
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1657
    functionName: OGRWKTToWKBTranslator::TranslateWKT
    functionSourceFile: /src/gdal/ogr/ogr_wkb.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - CPLError
    - CPL_LSBPTR64
    - std::string::assign
    - CPLAssert
    - OGRGeometryFactory::createFromWkt
    - GetPtrForNewBytes
    - strlen
    - std::unique_ptr::exportToWkb
    - static_cast<GByte *>
    - std::errc
    - EQUALN
    - argparse::details::do_from_chars
    - memcpy
    - std::string::c_str
    - CPL_LSBPTR32
    linkageType: ''
    returnType: size_t
    signature: "size_t OGRWKTToWKBTranslator::TranslateWKT(void *pabyWKTStart, size_t
      nLength,\n                                           bool bCanAlterByteAfter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: swq_evaluation_context
    functionSourceFile: /src/gdal/ogr/ogr_swq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_UNSTABLE_API
    signature: struct CPL_UNSTABLE_API swq_evaluation_context
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node
      Src: /src/gdal/ogr/ogr_swq.h:136,1
    - Dst: swq_custom_func_registrar
      Src: /src/gdal/ogr/ogr_swq.h:228,1
    - Dst: swq_parse_context
      Src: /src/gdal/ogr/ogr_swq.h:256,1
    - Dst: nStartToken
      Src: /src/gdal/ogr/ogr_swq.h:257,1
    - Dst: pszInput
      Src: /src/gdal/ogr/ogr_swq.h:257,1
    - Dst: pszNext
      Src: /src/gdal/ogr/ogr_swq.h:257,1
    - Dst: pszLastValid
      Src: /src/gdal/ogr/ogr_swq.h:258,1
    - Dst: bAcceptCustomFuncs
      Src: /src/gdal/ogr/ogr_swq.h:258,1
    - Dst: poRoot
      Src: /src/gdal/ogr/ogr_swq.h:258,1
    - Dst: poCurSelect
      Src: /src/gdal/ogr/ogr_swq.h:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 272
    functionName: swq_expr_node
    functionSourceFile: /src/gdal/ogr/ogr_swq.h
    functionUses: 4
    functionsReached:
    - bAcceptCustomFuncs
    - pszInput
    - swq_expr_node
    - nStartToken
    - pszNext
    - swq_custom_func_registrar
    - swq_parse_context
    - pszLastValid
    - poRoot
    - poCurSelect
    linkageType: ''
    returnType: class CPL_UNSTABLE_API
    signature: class CPL_UNSTABLE_API swq_expr_node
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 398
    functionName: swq_summary
    functionSourceFile: /src/gdal/ogr/ogr_swq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_UNSTABLE_API
    signature: class CPL_UNSTABLE_API swq_summary
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 434
    functionName: swq_select_parse_options
    functionSourceFile: /src/gdal/ogr/ogr_swq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_UNSTABLE_API
    signature: class CPL_UNSTABLE_API swq_select_parse_options
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_swq.h:440,1
    - Dst: swq_select
      Src: /src/gdal/ogr/ogr_swq.h:443,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_swq.h:457,1
    - Dst: size
      Src: /src/gdal/ogr/ogr_swq.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 507
    functionName: swq_select
    functionSourceFile: /src/gdal/ogr/ogr_swq.h
    functionUses: 1
    functionsReached:
    - size
    - swq_select
    - static_cast<int>
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_UNSTABLE_API
    signature: class CPL_UNSTABLE_API swq_select
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 82
    argCount: 3
    argNames:
    - p
    - end
    - len
    argTypes:
    - char*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 113
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 113
    functionName: utf8decode
    functionSourceFile: /src/gdal/ogr/generate_encoding_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned utf8decode(const char *p, const char *end, int *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/generate_encoding_table.c:125,1
    - Dst: iconv_open
      Src: /src/gdal/ogr/generate_encoding_table.c:131,1
    - Dst: fprintf
      Src: /src/gdal/ogr/generate_encoding_table.c:135,1
    - Dst: strerror
      Src: /src/gdal/ogr/generate_encoding_table.c:136,1
    - Dst: fprintf
      Src: /src/gdal/ogr/generate_encoding_table.c:161,1
    - Dst: fprintf
      Src: /src/gdal/ogr/generate_encoding_table.c:166,1
    - Dst: utf8decode
      Src: /src/gdal/ogr/generate_encoding_table.c:173,1
    - Dst: strlen
      Src: /src/gdal/ogr/generate_encoding_table.c:173,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:181,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:185,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:186,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:192,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:201,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:204,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:206,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:208,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:214,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:218,1
    - Dst: printf
      Src: /src/gdal/ogr/generate_encoding_table.c:219,1
    - Dst: iconv_close
      Src: /src/gdal/ogr/generate_encoding_table.c:223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 226
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 226
    functionName: main
    functionSourceFile: /src/gdal/ogr/generate_encoding_table.c
    functionUses: 2
    functionsReached:
    - strerror
    - fprintf
    - iconv_open
    - utf8decode
    - strlen
    - printf
    - iconv_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:16,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:19,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:20,1
    - Dst: OGR_GreatCircle_InitialHeading
      Src: /src/gdal/ogr/test_geo_utils.cpp:22,1
    - Dst: OGR_GreatCircle_Distance
      Src: /src/gdal/ogr/test_geo_utils.cpp:23,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:25,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:28,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:29,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:31,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:33,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:35,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:37,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:39,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:41,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:43,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:45,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:47,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:49,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:51,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:53,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:55,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:57,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/test_geo_utils.cpp:59,1
    - Dst: printf
      Src: /src/gdal/ogr/test_geo_utils.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 4
    functionDepth: 2
    functionLinenumber: 4
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/gdal/ogr/test_geo_utils.cpp
    functionUses: 2
    functionsReached:
    - printf
    - OGR_GreatCircle_Distance
    - OGR_GreatCircle_ExtendPosition
    - OGR_GreatCircle_InitialHeading
    linkageType: ''
    returnType: int
    signature: int main(int /* argc */, char * /* argv */[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrgeometry.cpp:57,1
    - Dst: CPLErrorV
      Src: /src/gdal/ogr/ogrgeometry.cpp:58,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrgeometry.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: OGRGEOSErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void OGRGEOSErrorHandler(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrgeometry.cpp:66,1
    - Dst: CPLErrorV
      Src: /src/gdal/ogr/ogrgeometry.cpp:67,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrgeometry.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: OGRGEOSWarningHandler
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void OGRGEOSWarningHandler(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrgeometry.cpp:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrgeometry.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: OGRWktOptions::getDefaultPrecision
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - atoi
    linkageType: ''
    returnType: int
    signature: int OGRWktOptions::getDefaultPrecision()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometry.cpp:83,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrgeometry.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRWktOptions::getDefaultRound
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: bool
    signature: bool OGRWktOptions::getDefaultRound()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: OGRGeometry::OGRGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::OGRGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometry
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: OGRGeometry::OGRGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::OGRGeometry(const OGRGeometry &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometry
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: OGRGeometry::OGRGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::OGRGeometry(OGRGeometry &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: OGRGeometry::~OGRGeometry()
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::~OGRGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:156,1
    - Dst: assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:157,1
    - Dst: OGRGeometry::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometry
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: '&OGRGeometry::operator=(const OGRGeometry &other)'
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - assignSpatialReference
    - OGRGeometry::getSpatialReference
    - empty
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry &OGRGeometry::operator=(const OGRGeometry &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRGeometry
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: '&OGRGeometry::operator=(OGRGeometry &&other)'
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry &OGRGeometry::operator=(OGRGeometry &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::dumpReadable
      Src: /src/gdal/ogr/ogrgeometry.cpp:212,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:213,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrgeometry.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fp
    - pszPrefix
    - papszOptions
    argTypes:
    - FILE*
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: OGRGeometry::dumpReadable
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::dumpReadable
    - auto::c_str
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void OGRGeometry::dumpReadable(FILE *fp, const char *pszPrefix,\n
      \                              CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrgeometry.cpp:258,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrgeometry.cpp:264,1
    - Dst: OGRGeometry::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:268,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrgeometry.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:279,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:281,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:281,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:282,1
    - Dst: toPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:300,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:302,1
    - Dst: OGRPolyhedralSurface*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometry.cpp:302,1
    - Dst: OGRGeometry::dumpReadable
      Src: /src/gdal/ogr/ogrgeometry.cpp:306,1
    - Dst: toSimpleCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:319,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:320,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:320,1
    - Dst: toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:336,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:337,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:345,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:345,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:346,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:346,1
    - Dst: OGRCurve*::dumpReadable
      Src: /src/gdal/ogr/ogrgeometry.cpp:350,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:355,1
    - Dst: OGRCurvePolygon*::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:358,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:362,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:362,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:363,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:363,1
    - Dst: OGRCurve*::dumpReadable
      Src: /src/gdal/ogr/ogrgeometry.cpp:368,1
    - Dst: toCompoundCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:383,1
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrgeometry.cpp:384,1
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrgeometry.cpp:390,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:395,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:396,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:397,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:428,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:430,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometry.cpp:430,1
    - Dst: OGRGeometry::dumpReadable
      Src: /src/gdal/ogr/ogrgeometry.cpp:434,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:450,1
    - Dst: exportToWktWithOpts
      Src: /src/gdal/ogr/ogrgeometry.cpp:452,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometry.cpp:454,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:455,1
    - Dst: exportToWktWithOpts
      Src: /src/gdal/ogr/ogrgeometry.cpp:457,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 158
    argCount: 2
    argNames:
    - pszPrefix
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 461
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 461
    functionName: OGRGeometry::dumpReadable
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGRCurve*::dumpReadable
    - CPLOPrintf
    - atoi
    - std::string::data
    - OGRCurvePolygon*::getInteriorRingCurve
    - toCurvePolygon
    - getGeometryName
    - toGeometryCollection
    - OGRPolyhedralSurface*::getNumGeometries
    - OGRGeometryCollection*::getNumGeometries
    - OGRCurvePolygon*::getExteriorRingCurve
    - OGRGeometry::exportToWkt
    - toSimpleCurve
    - OGRCurve*::getNumPoints
    - wkbFlatten
    - CPLTestBool
    - getGeometryType
    - OGRSimpleCurve*::getNumPoints
    - exportToWktWithOpts
    - toCompoundCurve
    - OGRCompoundCurve*::getNumCurves
    - OGRCurve*::getGeometryType
    - toPolyhedralSurface
    - OGRCompoundCurve*::getCurve
    - OGRGeometry::dumpReadable
    - EQUAL
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRGeometry::dumpReadable(const char *pszPrefix,\n                                      CSLConstList
      papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:479,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - fp
    - pszPrefix
    argTypes:
    - OGRGeometryH
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: OGR_G_DumpReadable
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_DumpReadable(OGRGeometryH hGeom, FILE *fp, const char *pszPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:514,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: OGRGeometry::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::assignSpatialReference(const OGRSpatialReference
      *poSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:551,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:553,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - hSRS
    argTypes:
    - OGRGeometryH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: OGR_G_AssignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_AssignSpatialReference(OGRGeometryH hGeom, OGRSpatialReferenceH
      hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrgeometry.cpp:586,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrgeometry.cpp:589,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:601,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:602,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:603,1
    - Dst: GEOSIntersects_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:609,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:612,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:613,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:614,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 618
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 618
    functionName: OGRGeometry::Intersects
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - GEOSIntersects_r
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - getEnvelope
    - OGRGeometry::exportToGEOS
    - OGRGeometry*::exportToGEOS
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Intersects(const OGRGeometry *poOtherGeom)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::Intersects
      Src: /src/gdal/ogr/ogrgeometry.cpp:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: OGRGeometry::Intersect
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::Intersects
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Intersect(OGRGeometry *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:652,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:653,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:655,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hGeom
    - hOtherGeom
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 657
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 657
    functionName: OGR_G_Intersects
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Intersects(OGRGeometryH hGeom, OGRGeometryH hOtherGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:663,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:664,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:666,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hGeom
    - hOtherGeom
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 668
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 668
    functionName: OGR_G_Intersect
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Intersect(OGRGeometryH hGeom, OGRGeometryH hOtherGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:705,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:707,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:713,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrgeometry.cpp:718,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:718,1
    - Dst: transform
      Src: /src/gdal/ogr/ogrgeometry.cpp:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 727
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 727
    functionName: OGRGeometry::transformTo
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCreateCoordinateTransformation
    - getSpatialReference
    - transform
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometry::transformTo(const OGRSpatialReference *poSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:762,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:764,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - hSRS
    argTypes:
    - OGRGeometryH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 766
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 766
    functionName: OGR_G_TransformTo
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_TransformTo(OGRGeometryH hGeom, OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:831,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:833,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - hTransform
    argTypes:
    - OGRGeometryH
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 835
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 835
    functionName: OGR_G_Transform
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_Transform(OGRGeometryH hGeom,\n                       OGRCoordinateTransformationH
      hTransform)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:859,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:859,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:862,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: OGRGeometry::getIsoGeometryType
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - getGeometryType
    - static_cast<OGRwkbGeometryType>
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRGeometry::getIsoGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: OGRGeometry::segmentize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::segmentize(CPL_UNUSED double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:916,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:920,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - dfMaxLength
    argTypes:
    - OGRGeometryH
    - double
    constantsTouched: []
    func_position:
      end: 925
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 925
    functionName: OGR_G_Segmentize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_Segmentize(OGRGeometryH hGeom, double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:948,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: OGR_G_GetDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_GetDimension(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 970
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 970
    functionName: OGRGeometry::getCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGeometry::getCoordinateDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: OGRGeometry::CoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGeometry::CoordinateDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1018,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1021
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1021
    functionName: OGR_G_GetCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_GetCoordinateDimension(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1044,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1047
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1047
    functionName: OGR_G_CoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_CoordinateDimension(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1065,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: OGR_G_Is3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Is3D(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1086,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1089
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1089
    functionName: OGR_G_IsMeasured
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_IsMeasured(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:1117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1118
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1118
    functionName: OGRGeometry::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::setMeasured
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 1142
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1142
    functionName: OGRGeometry::set3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 1167
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1167
    functionName: OGRGeometry::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:1192,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - nNewDimension
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    functionName: OGR_G_SetCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_SetCoordinateDimension(OGRGeometryH hGeom, int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:1218,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - bIs3D
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 1221
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1221
    functionName: OGR_G_Set3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_Set3D(OGRGeometryH hGeom, int bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:1245,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - bIsMeasured
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 1248
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1248
    functionName: OGR_G_SetMeasured
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_SetMeasured(OGRGeometryH hGeom, int bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Equals
      Src: /src/gdal/ogr/ogrgeometry.cpp:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1276
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1276
    functionName: OGRGeometry::Equal
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - Equals
    linkageType: ''
    returnType: int
    signature: int OGRGeometry::Equal(OGRGeometry *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1307,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:1311,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1316,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1318
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1318
    functionName: OGR_G_Equals
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Equals(OGRGeometryH hGeom, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:1326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:1332,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1336,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hGeom
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1338
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1338
    functionName: OGR_G_Equal
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_G_Equal(OGRGeometryH hGeom, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1381,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:1384,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometry.cpp:1384,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:1386,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:1391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1392
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1392
    functionName: OGR_G_WkbSize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<int>
    - VALIDATE_POINTER1
    - CPLError
    linkageType: ''
    returnType: int
    signature: int OGR_G_WkbSize(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1416,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1419
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1419
    functionName: OGR_G_WkbSizeEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: size_t
    signature: size_t OGR_G_WkbSizeEx(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:1448,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - psEnvelope
    argTypes:
    - OGRGeometryH
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1451
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1451
    functionName: OGR_G_GetEnvelope
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_GetEnvelope(OGRGeometryH hGeom, OGREnvelope *psEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:1484,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - psEnvelope
    argTypes:
    - OGRGeometryH
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 1487
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1487
    functionName: OGR_G_GetEnvelope3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_GetEnvelope3D(OGRGeometryH hGeom, OGREnvelope3D *psEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::importFromWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    argTypes:
    - GByte*
    - size_t
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 1521
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1521
    functionName: OGRGeometry::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::importFromWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::importFromWkb(const GByte *pabyData, size_t nSize,\n
      \                                 OGRwkbVariant eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1576,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1578,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - pabyData
    - nSize
    argTypes:
    - OGRGeometryH
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1580
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1580
    functionName: OGR_G_ImportFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const GByte *>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_ImportFromWkb(OGRGeometryH hGeom, const void *pabyData,
      int nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::exportToWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - eByteOrder
    - pabyData
    - eWkbVariant
    argTypes:
    - OGRwkbByteOrder
    - unsigned char*
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 1618
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1618
    functionName: OGRGeometry::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::exportToWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::exportToWkb(OGRwkbByteOrder eByteOrder,\n                                unsigned
      char *pabyData,\n                                OGRwkbVariant eWkbVariant)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1652,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - eOrder
    - pabyDstBuffer
    argTypes:
    - OGRGeometryH
    - OGRwkbByteOrder
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1655
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1655
    functionName: OGR_G_ExportToWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_ExportToWkb(OGRGeometryH hGeom, OGRwkbByteOrder eOrder,\n
      \                        unsigned char *pabyDstBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1689,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - eOrder
    - pabyDstBuffer
    argTypes:
    - OGRGeometryH
    - OGRwkbByteOrder
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1693
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1693
    functionName: OGR_G_ExportToIsoWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_ExportToIsoWkb(OGRGeometryH hGeom, OGRwkbByteOrder eOrder,\n
      \                           unsigned char *pabyDstBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1743,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - pabyDstBuffer
    - psOptions
    argTypes:
    - OGRGeometryH
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 1747
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1747
    functionName: OGR_G_ExportToWkbEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_ExportToWkbEx(OGRGeometryH hGeom, unsigned char *pabyDstBuffer,\n
      \                          const OGRwkbExportOptions *psOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:1796,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:1798,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrgeometry.cpp:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - ppszSrcText
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 1800
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1800
    functionName: OGR_G_ImportFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_ImportFromWkt(OGRGeometryH hGeom, char **ppszSrcText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:1816,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:1828,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1855,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:1855,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1869,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1888,1
    - Dst: OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:1893,1
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:1895,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1899,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:1905,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1906,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:1908,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1910,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:1914,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:1921,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - ppszInput
    - pbHasZ
    - pbHasM
    - pbIsEmpty
    argTypes:
    - char**
    - int*
    - int*
    - bool*
    constantsTouched: []
    func_position:
      end: 1931
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1931
    functionName: OGRGeometry::importPreambleFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - empty
    - EQUAL
    - OGRGeometry::setMeasured
    - getGeometryName
    - OGRGeometry::set3D
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::importPreambleFromWkt(const char **ppszInput,
      int *pbHasZ,\n                                          int *pbHasM, bool *pbIsEmpty)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrgeometry.cpp:1956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - variant
    argTypes:
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 1959
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1959
    functionName: OGRGeometry::wktTypeString
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string OGRGeometry::wktTypeString(OGRwkbVariant variant) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:1989,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:1990,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrgeometry.cpp:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ppszDstText
    - variant
    argTypes:
    - char**
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 1992
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1992
    functionName: OGRGeometry::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - std::string::data
    - OGRGeometry::exportToWkt
    - CPLStrdup
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometry::exportToWkt(char **ppszDstText, OGRwkbVariant variant)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2021,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - ppszSrcText
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 2024
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2024
    functionName: OGR_G_ExportToWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_ExportToWkt(OGRGeometryH hGeom, char **ppszSrcText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2054,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - ppszSrcText
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 2058
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2058
    functionName: OGR_G_ExportToIsoWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_ExportToIsoWkt(OGRGeometryH hGeom, char **ppszSrcText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2093,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2096
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2096
    functionName: OGR_G_GetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_G_GetGeometryType(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2129,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2132
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2132
    functionName: OGR_G_GetGeometryName
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_G_GetGeometryName(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2165,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2167,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2168
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2168
    functionName: OGR_G_Clone
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Clone(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2202,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2204,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:2204,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2206
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2206
    functionName: OGR_G_GetSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - const_cast<OGRSpatialReference *>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH OGR_G_GetSpatialReference(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:2238,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2241
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2241
    functionName: OGR_G_Empty
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_Empty(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2274,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2277
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2277
    functionName: OGR_G_IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_IsEmpty(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:2300,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:2305,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:2305,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:2312,1
    - Dst: sfcgal_init
      Src: /src/gdal/ogr/ogrgeometry.cpp:2317,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:2318,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:2321,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:2327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:2334,1
    - Dst: initGEOS_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2346,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:2348,1
    - Dst: GEOSisValid_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2352,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometry.cpp:2357,1
    - Dst: GEOSFree_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2358,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2361,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:2363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2369
    functionName: OGRGeometry::IsValid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - getGeometryType
    - GEOSisValid_r
    - OGRGeometry::OGRexportToSFCGAL
    - sfcgal_init
    - CPLDebug
    - GEOSFree_r
    - OGRGeometry::exportToGEOS
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_delete
    - CPLError
    - wkbFlatten
    - initGEOS_r
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2393,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2396
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2396
    functionName: OGR_G_IsValid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_IsValid(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:2420,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:2427,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:2428,1
    - Dst: GEOSisSimple_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2432,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2433,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2416
    functionDepth: 1
    functionLinenumber: 2416
    functionLinenumberEnd: 2440
    functionName: OGRGeometry::IsSimple
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - GEOSisSimple_r
    - CPLError
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::IsSimple() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2463,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2466
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2466
    functionName: OGR_G_IsSimple
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_IsSimple(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:2490,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:2497,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:2498,1
    - Dst: GEOSisRing_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2502,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:2503,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:2505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2510
    functionName: OGRGeometry::IsRing
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - GEOSisRing_r
    - CPLError
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::IsRing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:2534,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 2537
      start: 2531
    functionDepth: 0
    functionLinenumber: 2531
    functionLinenumberEnd: 2537
    functionName: OGR_G_IsRing
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_IsRing(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:2558,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:2559,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2567,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2569,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2571,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2573,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2575,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2577,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2579,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2581,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2583,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2585,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2587,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2589,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2591,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2593,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2595,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2597,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:2599,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:2605,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:2607,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 1
    argNames:
    - pszGeomType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2610
      start: 2547
    functionDepth: 0
    functionLinenumber: 2547
    functionLinenumberEnd: 2610
    functionName: OGRFromOGCGeomType
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - wkbSetM
    - STARTS_WITH_CI
    - strlen
    - wkbSetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRFromOGCGeomType(const char *pszGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:2630,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:2696,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:2698,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:2700,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:2704,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrgeometry.cpp:2704,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 4
    argNames:
    - eGeomType
    - bCamelCase
    - bAddZM
    - bSpaceBeforeZM
    argTypes:
    - OGRwkbGeometryType
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2706
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2706
    functionName: OGRToOGCGeomType
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - CPLString
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *OGRToOGCGeomType(OGRwkbGeometryType eGeomType, bool bCamelCase,\n
      \                            bool bAddZM, bool bSpaceBeforeZM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:2730,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeometry.cpp:2917,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:2917,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 152
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 2920
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2920
    functionName: OGRGeometryTypeToName
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - wkbFlatten
    - static_cast<int>
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRGeometryTypeToName(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMergeGeometryTypesEx
      Src: /src/gdal/ogr/ogrgeometry.cpp:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eMain
    - eExtra
    argTypes:
    - OGRwkbGeometryType
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 2951
      start: 2946
    functionDepth: 1
    functionLinenumber: 2946
    functionLinenumberEnd: 2951
    functionName: OGRMergeGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRMergeGeometryTypesEx
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain,\n
      \                                        OGRwkbGeometryType eExtra)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:2987,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:2988,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:2994,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3004,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:3009,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:3009,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3010,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:3012,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3013,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:3015,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3016,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:3020,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3022,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:3024,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3026,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3030,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - eMain
    - eExtra
    - bAllowPromotingToCurves
    argTypes:
    - OGRwkbGeometryType
    - OGRwkbGeometryType
    - int
    constantsTouched: []
    func_position:
      end: 3031
      start: 2982
    functionDepth: 1
    functionLinenumber: 2982
    functionLinenumberEnd: 3031
    functionName: OGRMergeGeometryTypesEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGR_GT_SetModifier
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain,\n
      \                                          OGRwkbGeometryType eExtra,\n                                           int
      bAllowPromotingToCurves)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 3060
      start: 3056
    functionDepth: 0
    functionLinenumber: 3056
    functionLinenumberEnd: 3060
    functionName: OGR_G_FlattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_FlattenTo2D(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_ExportToGMLEx
      Src: /src/gdal/ogr/ogrgeometry.cpp:3140,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3141,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3141,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3143
      start: 3138
    functionDepth: 1
    functionLinenumber: 3138
    functionLinenumberEnd: 3143
    functionName: OGRGeometry::exportToGML
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_ExportToGMLEx
    - const_cast<char **>
    - const_cast<OGRGeometry *>
    - ToHandle
    linkageType: ''
    returnType: char
    signature: char *OGRGeometry::exportToGML(const char *const *papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_ExportToKML
      Src: /src/gdal/ogr/ogrgeometry.cpp:3163,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3164,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3161
    functionDepth: 1
    functionLinenumber: 3161
    functionLinenumberEnd: 3165
    functionName: OGRGeometry::exportToKML
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_ExportToKML
    - const_cast<OGRGeometry *>
    - ToHandle
    linkageType: ''
    returnType: char
    signature: char *OGRGeometry::exportToKML() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3194,1
    - Dst: OGR_G_ExportToJsonEx
      Src: /src/gdal/ogr/ogrgeometry.cpp:3195,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3195,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3197
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3197
    functionName: OGRGeometry::exportToJson
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - const_cast<char **>
    - OGR_G_ExportToJsonEx
    - const_cast<OGRGeometry *>
    - ToHandle
    linkageType: ''
    returnType: char
    signature: char *OGRGeometry::exportToJson(CSLConstList papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bGenerate_DB2_V72_BYTE_ORDER
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3223
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3223
    functionName: OGRSetGenerate_DB2_V72_BYTE_ORDER
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSetGenerate_DB2_V72_BYTE_ORDER(int bGenerate_DB2_V72_BYTE_ORDER)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3231
    functionDepth: 0
    functionLinenumber: 3231
    functionLinenumberEnd: 3234
    functionName: OGRGetGenerate_DB2_V72_BYTE_ORDER
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGetGenerate_DB2_V72_BYTE_ORDER()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3246,1
    - Dst: initGEOS_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3243
    functionDepth: 1
    functionLinenumber: 3243
    functionLinenumberEnd: 3251
    functionName: OGRGeometry::createGEOSContext
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - initGEOS_r
    linkageType: ''
    returnType: GEOSContextHandle_t
    signature: GEOSContextHandle_t OGRGeometry::createGEOSContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: finishGEOS_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - GEOSContextHandle_t
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 3269
      start: 3260
    functionDepth: 0
    functionLinenumber: 3260
    functionLinenumberEnd: 3269
    functionName: OGRGeometry::freeGEOSContext
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 4
    functionsReached:
    - finishGEOS_r
    linkageType: ''
    returnType: void
    signature: "void OGRGeometry::freeGEOSContext(\n    UNUSED_IF_NO_GEOS GEOSContextHandle_t
      hGEOSCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:3290,1
    - Dst: GEOSGeomFromWKB_buf_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:3292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - hGEOSCtxt
    - poGeom
    argTypes:
    - GEOSContextHandle_t
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3294
      start: 3277
    functionDepth: 0
    functionLinenumber: 3277
    functionLinenumberEnd: 3294
    functionName: convertToGEOSGeom
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeomFromWKB_buf_r
    - OGRGeometry*::exportToWkb
    - CPLFree
    linkageType: ''
    returnType: GEOSGeom
    signature: "GEOSGeom convertToGEOSGeom(GEOSContextHandle_t hGEOSCtxt,\n                                  OGRGeometry
      *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3316,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:3324,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:3324,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:3328,1
    - Dst: GEOSGeomFromWKT_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3330,1
    - Dst: OGRGeometry::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:3337,1
    - Dst: OGRGeometry::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:3339,1
    - Dst: OGRGeometry*::removeEmptyParts
      Src: /src/gdal/ogr/ogrgeometry.cpp:3341,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3344,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3345,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:3350,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3353,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3355,1
    - Dst: OGRGeometry*::removeEmptyParts
      Src: /src/gdal/ogr/ogrgeometry.cpp:3357,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3358,1
    - Dst: OGRGeometry::hasEmptyParts
      Src: /src/gdal/ogr/ogrgeometry.cpp:3362,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3364,1
    - Dst: OGRGeometry*::removeEmptyParts
      Src: /src/gdal/ogr/ogrgeometry.cpp:3365,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:3370,1
    - Dst: convertToGEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:3371,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometry.cpp:3375,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3376,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3377,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:3377,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3378,1
    - Dst: convertToGEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:3380,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:3388,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometry.cpp:3389,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:3392,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometry.cpp:3392,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometry.cpp:3406,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3407,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3408,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:3408,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3409,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometry.cpp:3411,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrgeometry.cpp:3413,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:3413,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:3414,1
    - Dst: convertToGEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:3416,1
    - Dst: convertToGEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:3421,1
    - Dst: convertToGEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:3426,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 2
    argNames:
    - GEOSContextHandle_t
    - bRemoveEmptyParts
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 3435
      start: 3309
    functionDepth: 1
    functionLinenumber: 3309
    functionLinenumberEnd: 3435
    functionName: OGRGeometry::exportToGEOS
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 4
    functionsReached:
    - OGRGeometry*::IsMeasured
    - OGRGeometry*::setMeasured
    - OGRGeometry::hasEmptyParts
    - IsMeasured
    - CPLError
    - OGRGeometry*::clone
    - OGRGeometry::hasCurveGeometry
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometry*::Is3D
    - wkbFlatten
    - IsEmpty
    - getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry::getLinearGeometry
    - OGRGeometryFactory::forceTo
    - OGR_GT_SetModifier
    - GEOSGeomFromWKT_r
    - convertToGEOSGeom
    - OGRGeometry*::removeEmptyParts
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toPolygon
    - clone
    - const_cast<OGRGeometry *>
    linkageType: ''
    returnType: GEOSGeom
    signature: "GEOSGeom OGRGeometry::exportToGEOS(UNUSED_IF_NO_GEOS GEOSContextHandle_t
      hGEOSCtxt,\n                          UNUSED_IF_NO_GEOS bool bRemoveEmptyParts)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 3470
      start: 3467
    functionDepth: 0
    functionLinenumber: 3467
    functionLinenumberEnd: 3470
    functionName: OGRGeometry::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::hasCurveGeometry(CPL_UNUSED int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 3504
      start: 3499
    functionDepth: 0
    functionLinenumber: 3499
    functionLinenumberEnd: 3504
    functionName: OGRGeometry::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - clone
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRGeometry::getLinearGeometry(CPL_UNUSED double dfMaxAngleStepSizeDegrees,\n
      \                              CPL_UNUSED const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 3538
      start: 3534
    functionDepth: 0
    functionLinenumber: 3534
    functionLinenumberEnd: 3538
    functionName: OGRGeometry::getCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::getCurveGeometry(CPL_UNUSED const char *const *papszOptions) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometry.cpp:3567,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:3572,1
    - Dst: OGRGeometry*::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:3572,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3576,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:3581,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:3586,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3589,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3595,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3596,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3607,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3612,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3614,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3615,1
    - Dst: GEOSDistance_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3622,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3625,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3626,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3639
      start: 3562
    functionDepth: 2
    functionLinenumber: 3562
    functionLinenumberEnd: 3639
    functionName: OGRGeometry::Distance
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - sfcgal_geometry_delete
    - GEOSDistance_r
    - OGRGeometry::OGRexportToSFCGAL
    - CPLDebug
    - OGRGeometry::exportToGEOS
    - OGRGeometry*::exportToGEOS
    - OGRGeometry*::IsSFCGALCompatible
    - OGRGeometry::IsSFCGALCompatible
    - CPLError
    linkageType: ''
    returnType: double
    signature: double OGRGeometry::Distance(const OGRGeometry *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:3666,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3668,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFirst
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 3670
      start: 3663
    functionDepth: 0
    functionLinenumber: 3663
    functionLinenumberEnd: 3670
    functionName: OGR_G_Distance
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_Distance(OGRGeometryH hFirst, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometry.cpp:3698,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:3703,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:3703,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometry.cpp:3705,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3712,1
    - Dst: sfcgal_init
      Src: /src/gdal/ogr/ogrgeometry.cpp:3717,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:3718,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:3722,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3725,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3731,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:3732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_SFCGAL
    constantsTouched: []
    func_position:
      end: 3737
      start: 3693
    functionDepth: 1
    functionLinenumber: 3693
    functionLinenumberEnd: 3737
    functionName: OGRGeometry::Distance3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGeometry::OGRexportToSFCGAL
    - sfcgal_init
    - CPLDebug
    - sfcgal_geometry_delete
    - Is3D
    linkageType: ''
    returnType: double
    signature: "double OGRGeometry::Distance3D(\n    UNUSED_IF_NO_SFCGAL const OGRGeometry
      *poOtherGeom) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:3766,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3768,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:3769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFirst
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 3770
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3770
    functionName: OGR_G_Distance3D
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_Distance3D(OGRGeometryH hFirst, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:3782,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:3782,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:3783,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:3784,1
    - Dst: OGRGeometry*::getCurveGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:3786,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - poGeom
    - poOtherGeom
    - poOGRProduct
    argTypes:
    - OGRGeometry*
    - OGRGeometry*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3791
      start: 3777
    functionDepth: 0
    functionLinenumber: 3777
    functionLinenumberEnd: 3791
    functionName: OGRGeometryRebuildCurves
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGRGeometry*::hasCurveGeometry
    - OGRGeometry*::getCurveGeometry
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryRebuildCurves(const OGRGeometry *poGeom,\n
      \                                            const OGRGeometry *poOtherGeom,\n
      \                                            OGRGeometry *poOGRProduct)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3806,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3808,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3810,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3811,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3812,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3814,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3814,1
    - Dst: OGRGeometryRebuildCurves
      Src: /src/gdal/ogr/ogrgeometry.cpp:3817,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - hGEOSCtxt
    - hGeosProduct
    - poSelf
    - poOtherGeom
    argTypes:
    - GEOSContextHandle_t
    - GEOSGeom
    - OGRGeometry*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3821
      start: 3797
    functionDepth: 1
    functionLinenumber: 3797
    functionLinenumberEnd: 3821
    functionName: BuildGeometryFromGEOS
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - GEOSGeom_destroy_r
    - OGRGeometry*::getSpatialReference
    - OGRGeometryRebuildCurves
    - OGRGeometryFactory::createFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *BuildGeometryFromGEOS(GEOSContextHandle_t hGEOSCtxt,\n
      \                                         GEOSGeom hGeosProduct,\n                                          const
      OGRGeometry *poSelf,\n                                          const OGRGeometry
      *poOtherGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3835,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3836,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3837,1
    - Dst: pfnGEOSFunction_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3841,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3844,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3846,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3847,1
    - Dst: OGRGeometry*::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - poSelf
    - poOtherGeom
    - "(*pfnGEOSFunction_r)(GEOSContextHandle_t,\n                                       const
      GEOSGeometry *,\n                                       const GEOSGeometry *)"
    argTypes:
    - OGRGeometry*
    - OGRGeometry*
    - GEOSGeometry*
    constantsTouched: []
    func_position:
      end: 3851
      start: 3827
    functionDepth: 2
    functionLinenumber: 3827
    functionLinenumberEnd: 3851
    functionName: BuildGeometryFromTwoGeoms
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeom_destroy_r
    - OGRGeometry*::createGEOSContext
    - pfnGEOSFunction_r
    - OGRGeometry*::exportToGEOS
    - BuildGeometryFromGEOS
    - OGRGeometry*::freeGEOSContext
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *BuildGeometryFromTwoGeoms(\n    const OGRGeometry *poSelf,
      const OGRGeometry *poOtherGeom,\n    GEOSGeometry *(*pfnGEOSFunction_r)(GEOSContextHandle_t,\n
      \                                      const GEOSGeometry *,\n                                       const
      GEOSGeometry *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3864,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3865,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3866,1
    - Dst: pfnGEOSFunction_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3869,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3871,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3872,1
    - Dst: OGRGeometry*::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - poSelf
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3876
      start: 3857
    functionDepth: 0
    functionLinenumber: 3857
    functionLinenumberEnd: 3876
    functionName: OGRGEOSBooleanPredicate
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeom_destroy_r
    - pfnGEOSFunction_r
    - OGRGeometry*::exportToGEOS
    - OGRGeometry*::createGEOSContext
    - OGRGeometry*::freeGEOSContext
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean OGRGEOSBooleanPredicate(\n    const OGRGeometry *poSelf,
      const OGRGeometry *poOtherGeom,\n    char (*pfnGEOSFunction_r)(GEOSContextHandle_t,
      const GEOSGeometry *,\n                              const GEOSGeometry *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsValid
      Src: /src/gdal/ogr/ogrgeometry.cpp:3926,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3929,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:3932,1
    - Dst: OGRGeometry::IsValid
      Src: /src/gdal/ogr/ogrgeometry.cpp:3934,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3935,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:3937,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:3937,1
    - Dst: initGEOS_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3939,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3941,1
    - Dst: GEOSisValid_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3944,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3945,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3947,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:3949,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:3954,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:3959,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:3967,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3968,1
    - Dst: GEOSMakeValidParams_create_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3977,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometry.cpp:3978,1
    - Dst: GEOSMakeValidParams_setMethod_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3979,1
    - Dst: GEOSMakeValidParams_setKeepCollapsed_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3981,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrgeometry.cpp:3983,1
    - Dst: GEOSMakeValidWithParams_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3984,1
    - Dst: GEOSMakeValidParams_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3985,1
    - Dst: GEOSMakeValid_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3990,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:3992,1
    - Dst: OGRGeometryFactory::createFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:3997,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3998,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3999,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:3999,1
    - Dst: OGRGeometryRebuildCurves
      Src: /src/gdal/ogr/ogrgeometry.cpp:4001,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4002,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:4009,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:4009,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:4010,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:4010,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometry.cpp:4013,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:4014,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4019,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4023
      start: 3922
    functionDepth: 2
    functionLinenumber: 3922
    functionLinenumberEnd: 4023
    functionName: OGRGeometry::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry::IsSFCGALCompatible
    - CPLError
    - OGRGeometry::createGEOSContext
    - GEOSGeom_destroy_r
    - GEOSMakeValidParams_create_r
    - OGRGeometry::IsValid
    - wkbFlatten
    - OGRGeometryFactory::createFromGEOS
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::getGeometryType
    - GEOSMakeValid_r
    - GEOSMakeValidParams_destroy_r
    - getGeometryType
    - CPLFetchBool
    - GEOSisValid_r
    - getSpatialReference
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OGRGeometryFactory::forceTo
    - GEOSMakeValidWithParams_r
    - initGEOS_r
    - OGRGeometry::freeGEOSContext
    - clone
    - OGRGeometryRebuildCurves
    - OGRGeometry::exportToGEOS
    - GEOSMakeValidParams_setKeepCollapsed_r
    - GEOSMakeValidParams_setMethod_r
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::MakeValid(CSLConstList papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4052,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4054,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4055
      start: 4049
    functionDepth: 0
    functionLinenumber: 4049
    functionLinenumberEnd: 4055
    functionName: OGR_G_MakeValid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_MakeValid(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4082,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4084,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - papszOptions
    argTypes:
    - OGRGeometryH
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4086
      start: 4079
    functionDepth: 0
    functionLinenumber: 4079
    functionLinenumberEnd: 4086
    functionName: OGR_G_MakeValidEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_MakeValidEx(OGRGeometryH hGeom, CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4109,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4114,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4115,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4124,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4128,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4106
    functionDepth: 2
    functionLinenumber: 4106
    functionLinenumberEnd: 4135
    functionName: OGRGeometry::Normalize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::Normalize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4161,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4163,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4164
      start: 4158
    functionDepth: 0
    functionLinenumber: 4158
    functionLinenumberEnd: 4164
    functionName: OGR_G_Normalize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Normalize(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:4189,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4193,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4198,1
    - Dst: sfcgal_geometry_convexhull_3d
      Src: /src/gdal/ogr/ogrgeometry.cpp:4202,1
    - Dst: OGRGeometry::SFCGALexportToOGR
      Src: /src/gdal/ogr/ogrgeometry.cpp:4203,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4205,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4205,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4207,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4208,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4219,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4226,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4227,1
    - Dst: GEOSConvexHull_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4230,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4231,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4234,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4242
      start: 4186
    functionDepth: 2
    functionLinenumber: 4186
    functionLinenumberEnd: 4242
    functionName: OGRGeometry::ConvexHull
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - OGRGeometry*::assignSpatialReference
    - GEOSGeom_destroy_r
    - sfcgal_geometry_convexhull_3d
    - OGRGeometry::OGRexportToSFCGAL
    - getSpatialReference
    - OGRGeometry::exportToGEOS
    - GEOSConvexHull_r
    - OGRGeometry::SFCGALexportToOGR
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_delete
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::ConvexHull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4269,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4271,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTarget
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4273
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4273
    functionName: OGR_G_ConvexHull
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ConvexHull(OGRGeometryH hTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4315,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4321,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4322,1
    - Dst: GEOSConcaveHull_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4326,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4327,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4330,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - dfRatio
    - bAllowHoles
    argTypes:
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 4336
      start: 4305
    functionDepth: 2
    functionLinenumber: 4305
    functionLinenumberEnd: 4336
    functionName: OGRGeometry::ConcaveHull
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - GEOSConcaveHull_r
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::ConcaveHull(double dfRatio, bool bAllowHoles)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4373,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4375,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hTarget
    - dfRatio
    - bAllowHoles
    argTypes:
    - OGRGeometryH
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 4377
      start: 4369
    functionDepth: 0
    functionLinenumber: 4369
    functionLinenumberEnd: 4377
    functionName: OGR_G_ConcaveHull
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_ConcaveHull(OGRGeometryH hTarget, double dfRatio,\n
      \                              bool bAllowHoles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4406,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4413,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4414,1
    - Dst: GEOSBoundary_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4417,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4418,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4421,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4401
    functionDepth: 2
    functionLinenumber: 4401
    functionLinenumberEnd: 4428
    functionName: OGRGeometry::Boundary
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSBoundary_r
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::Boundary() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::Boundary
      Src: /src/gdal/ogr/ogrgeometry.cpp:4441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4438
    functionDepth: 3
    functionLinenumber: 4438
    functionLinenumberEnd: 4442
    functionName: OGRGeometry::getBoundary
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::Boundary
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::getBoundary() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4472,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4474,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTarget
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4475
      start: 4469
    functionDepth: 0
    functionLinenumber: 4469
    functionLinenumberEnd: 4475
    functionName: OGR_G_Boundary
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Boundary(OGRGeometryH hTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4487,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4489,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTarget
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4490
      start: 4484
    functionDepth: 0
    functionLinenumber: 4484
    functionLinenumberEnd: 4490
    functionName: OGR_G_GetBoundary
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_GetBoundary(OGRGeometryH hTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4532,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4539,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4540,1
    - Dst: GEOSBuffer_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4544,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4545,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4548,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - double
    - nQuadSegs
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 4555
      start: 4526
    functionDepth: 2
    functionLinenumber: 4526
    functionLinenumberEnd: 4555
    functionName: OGRGeometry::Buffer
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - GEOSBuffer_r
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::Buffer(UNUSED_IF_NO_GEOS double dfDist,\n
      \                                UNUSED_IF_NO_GEOS int nQuadSegs) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4596,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4598,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hTarget
    - dfDist
    - nQuadSegs
    argTypes:
    - OGRGeometryH
    - double
    - int
    constantsTouched: []
    func_position:
      end: 4600
      start: 4593
    functionDepth: 0
    functionLinenumber: 4593
    functionLinenumberEnd: 4600
    functionName: OGR_G_Buffer
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Buffer(OGRGeometryH hTarget, double dfDist, int
      nQuadSegs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4642,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4647,1
    - Dst: GEOSBufferParams_create_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4649,1
    - Dst: cpl::IterateNameValue
      Src: /src/gdal/ogr/ogrgeometry.cpp:4652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4654,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4661,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4665,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4672,1
    - Dst: GEOSBufferParams_setEndCapStyle_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4677,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4682,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4689,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4700,1
    - Dst: GEOSBufferParams_setJoinStyle_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4705,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4711,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:4718,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrgeometry.cpp:4720,1
    - Dst: GEOSBufferParams_setMitreLimit_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4723,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4733,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4739,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4743,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:4750,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrgeometry.cpp:4752,1
    - Dst: GEOSBufferParams_setQuadrantSegments_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4765,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4771,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4775,1
    - Dst: GEOSBufferParams_setSingleSided_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4779,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4789,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4796,1
    - Dst: GEOSBufferWithParams_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4800,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4801,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:4805,1
    - Dst: GEOSBufferParams_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:4811,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:4812,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 2
    argNames:
    - double
    - CSLConstList papszOptions
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 4815
      start: 4636
    functionDepth: 2
    functionLinenumber: 4636
    functionLinenumberEnd: 4815
    functionName: OGRGeometry::BufferEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSBufferParams_setJoinStyle_r
    - GEOSBufferParams_setMitreLimit_r
    - GEOSGeom_destroy_r
    - GEOSBufferParams_create_r
    - GEOSBufferParams_setSingleSided_r
    - std::invalid_argument
    - GEOSBufferParams_destroy_r
    - GEOSBufferWithParams_r
    - cpl::IterateNameValue
    - EQUAL
    - OGRGeometry::exportToGEOS
    - strlen
    - CPLError
    - GEOSBufferParams_setEndCapStyle_r
    - GEOSBufferParams_setQuadrantSegments_r
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRGeometry::BufferEx(UNUSED_IF_NO_GEOS double dfDist,\n
      \                     UNUSED_IF_NO_GEOS CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4857,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4859,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hTarget
    - dfDist
    - papszOptions
    argTypes:
    - OGRGeometryH
    - double
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4861
      start: 4853
    functionDepth: 0
    functionLinenumber: 4853
    functionLinenumberEnd: 4861
    functionName: OGR_G_BufferEx
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_BufferEx(OGRGeometryH hTarget, double dfDist,\n
      \                           CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:4896,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:4896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4900,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4905,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:4910,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4913,1
    - Dst: sfcgal_geometry_intersection_3d
      Src: /src/gdal/ogr/ogrgeometry.cpp:4918,1
    - Dst: OGRGeometry::SFCGALexportToOGR
      Src: /src/gdal/ogr/ogrgeometry.cpp:4919,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4920,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4921,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4922,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4922,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4923,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:4923,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4925,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4926,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:4927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:4938,1
    - Dst: BuildGeometryFromTwoGeoms
      Src: /src/gdal/ogr/ogrgeometry.cpp:4942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_PARAMETER
    constantsTouched: []
    func_position:
      end: 4945
      start: 4892
    functionDepth: 3
    functionLinenumber: 4892
    functionLinenumberEnd: 4945
    functionName: OGRGeometry::Intersection
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry::OGRexportToSFCGAL
    - getSpatialReference
    - BuildGeometryFromTwoGeoms
    - sfcgal_geometry_intersection_3d
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_delete
    - CPLError
    - OGRGeometry::SFCGALexportToOGR
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::Intersection(UNUSED_PARAMETER const OGRGeometry *poOtherGeom) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:4979,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4981,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4981,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:4982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4983
      start: 4976
    functionDepth: 0
    functionLinenumber: 4976
    functionLinenumberEnd: 4983
    functionName: OGR_G_Intersection
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Intersection(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5015,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5019,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5024,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5029,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5032,1
    - Dst: sfcgal_geometry_union_3d
      Src: /src/gdal/ogr/ogrgeometry.cpp:5036,1
    - Dst: OGRGeometry::SFCGALexportToOGR
      Src: /src/gdal/ogr/ogrgeometry.cpp:5037,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5038,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5039,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5040,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5040,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5041,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5041,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5043,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5044,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5045,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5056,1
    - Dst: BuildGeometryFromTwoGeoms
      Src: /src/gdal/ogr/ogrgeometry.cpp:5060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_PARAMETER
    constantsTouched: []
    func_position:
      end: 5063
      start: 5011
    functionDepth: 3
    functionLinenumber: 5011
    functionLinenumberEnd: 5063
    functionName: OGRGeometry::Union
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - sfcgal_geometry_delete
    - OGRGeometry::OGRexportToSFCGAL
    - getSpatialReference
    - BuildGeometryFromTwoGeoms
    - OGRGeometry::SFCGALexportToOGR
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_union_3d
    - CPLError
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::Union(UNUSED_PARAMETER const OGRGeometry *poOtherGeom) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5096,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5098,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5099,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5100
      start: 5093
    functionDepth: 0
    functionLinenumber: 5093
    functionLinenumberEnd: 5100
    functionName: OGR_G_Union
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Union(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5134,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:5139,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:5139,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:5139,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:5142,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5143,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5143,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:5149,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:5150,1
    - Dst: GEOSUnionCascaded_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:5153,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:5154,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:5157,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:5159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5164
      start: 5129
    functionDepth: 2
    functionLinenumber: 5129
    functionLinenumberEnd: 5164
    functionName: OGRGeometry::UnionCascaded
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - IsEmpty
    - GEOSGeom_destroy_r
    - getGeometryType
    - OGRGeometryCollection::OGRGeometryCollection
    - auto::assignSpatialReference
    - getSpatialReference
    - GEOSUnionCascaded_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - wkbFlatten
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::UnionCascaded() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5197,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5199,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hThis
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5201
      start: 5194
    functionDepth: 0
    functionLinenumber: 5194
    functionLinenumberEnd: 5201
    functionName: OGR_G_UnionCascaded
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_UnionCascaded(OGRGeometryH hThis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5232,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:5237,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:5240,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5241,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5241,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:5247,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:5248,1
    - Dst: GEOSUnaryUnion_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:5251,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:5252,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:5255,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:5257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5262
      start: 5227
    functionDepth: 2
    functionLinenumber: 5227
    functionLinenumberEnd: 5262
    functionName: OGRGeometry::UnaryUnion
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - IsEmpty
    - GEOSUnaryUnion_r
    - GEOSGeom_destroy_r
    - OGRGeometryCollection::OGRGeometryCollection
    - auto::assignSpatialReference
    - getSpatialReference
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::UnaryUnion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5298,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5300,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hThis
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5301
      start: 5295
    functionDepth: 0
    functionLinenumber: 5295
    functionLinenumberEnd: 5301
    functionName: OGR_G_UnaryUnion
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_UnaryUnion(OGRGeometryH hThis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5334,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5338,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5343,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5348,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5351,1
    - Dst: sfcgal_geometry_difference_3d
      Src: /src/gdal/ogr/ogrgeometry.cpp:5356,1
    - Dst: OGRGeometry::SFCGALexportToOGR
      Src: /src/gdal/ogr/ogrgeometry.cpp:5357,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5358,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5359,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5360,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5360,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5361,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5361,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5363,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5364,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5365,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5376,1
    - Dst: BuildGeometryFromTwoGeoms
      Src: /src/gdal/ogr/ogrgeometry.cpp:5380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_PARAMETER
    constantsTouched: []
    func_position:
      end: 5383
      start: 5330
    functionDepth: 3
    functionLinenumber: 5330
    functionLinenumberEnd: 5383
    functionName: OGRGeometry::Difference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - sfcgal_geometry_difference_3d
    - OGRGeometry::OGRexportToSFCGAL
    - getSpatialReference
    - BuildGeometryFromTwoGeoms
    - OGRGeometry::SFCGALexportToOGR
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_delete
    - CPLError
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::Difference(UNUSED_PARAMETER const OGRGeometry *poOtherGeom) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5416,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5418,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5418,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5420
      start: 5413
    functionDepth: 0
    functionLinenumber: 5413
    functionLinenumberEnd: 5420
    functionName: OGR_G_Difference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Difference(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5455,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5455,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5458,1
    - Dst: OGRGeometry::Difference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5461,1
    - Dst: OGRGeometry::Difference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5465,1
    - Dst: OGRGeometry*::Union
      Src: /src/gdal/ogr/ogrgeometry.cpp:5472,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5481,1
    - Dst: BuildGeometryFromTwoGeoms
      Src: /src/gdal/ogr/ogrgeometry.cpp:5485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 5487
      start: 5451
    functionDepth: 4
    functionLinenumber: 5451
    functionLinenumberEnd: 5487
    functionName: OGRGeometry::SymDifference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - BuildGeometryFromTwoGeoms
    - OGRGeometry::Difference
    - OGRGeometry::IsSFCGALCompatible
    - CPLError
    - OGRGeometry*::Union
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::SymDifference(\n    UNUSED_IF_NO_GEOS const
      OGRGeometry *poOtherGeom) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::SymDifference
      Src: /src/gdal/ogr/ogrgeometry.cpp:5501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5502
      start: 5497
    functionDepth: 5
    functionLinenumber: 5497
    functionLinenumberEnd: 5502
    functionName: OGRGeometry::SymmetricDifference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::SymDifference
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::SymmetricDifference(const OGRGeometry *poOtherGeom) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5540,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5542,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5542,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5544
      start: 5537
    functionDepth: 0
    functionLinenumber: 5537
    functionLinenumberEnd: 5544
    functionName: OGR_G_SymDifference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_SymDifference(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5556,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5558,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5558,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5560
      start: 5553
    functionDepth: 0
    functionLinenumber: 5553
    functionLinenumberEnd: 5560
    functionName: OGR_G_SymmetricDifference
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_SymmetricDifference(OGRGeometryH hThis, OGRGeometryH
      hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5593,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 5599
      start: 5587
    functionDepth: 1
    functionLinenumber: 5587
    functionLinenumberEnd: 5599
    functionName: OGRGeometry::Disjoint
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGEOSBooleanPredicate
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Disjoint(UNUSED_IF_NO_GEOS const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5629,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5631,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5633
      start: 5626
    functionDepth: 0
    functionLinenumber: 5626
    functionLinenumberEnd: 5633
    functionName: OGR_G_Disjoint
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Disjoint(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5666,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 5672
      start: 5660
    functionDepth: 1
    functionLinenumber: 5660
    functionLinenumberEnd: 5672
    functionName: OGRGeometry::Touches
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGEOSBooleanPredicate
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Touches(UNUSED_IF_NO_GEOS const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5702,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5704,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5706
      start: 5699
    functionDepth: 0
    functionLinenumber: 5699
    functionLinenumberEnd: 5706
    functionName: OGR_G_Touches
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Touches(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5737,1
    - Dst: OGRGeometry::IsSFCGALCompatible
      Src: /src/gdal/ogr/ogrgeometry.cpp:5737,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5741,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5746,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:5751,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5754,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5760,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrgeometry.cpp:5761,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5773,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_PARAMETER
    constantsTouched: []
    func_position:
      end: 5780
      start: 5733
    functionDepth: 1
    functionLinenumber: 5733
    functionLinenumberEnd: 5780
    functionName: OGRGeometry::Crosses
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::OGRexportToSFCGAL
    - OGRGEOSBooleanPredicate
    - OGRGeometry::IsSFCGALCompatible
    - sfcgal_geometry_delete
    - CPLError
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Crosses(UNUSED_PARAMETER const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5810,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5812,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5814
      start: 5807
    functionDepth: 0
    functionLinenumber: 5807
    functionLinenumberEnd: 5814
    functionName: OGR_G_Crosses
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Crosses(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5847,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 5853
      start: 5841
    functionDepth: 1
    functionLinenumber: 5841
    functionLinenumberEnd: 5853
    functionName: OGRGeometry::Within
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGEOSBooleanPredicate
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Within(UNUSED_IF_NO_GEOS const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5883,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5885,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5887
      start: 5880
    functionDepth: 0
    functionLinenumber: 5880
    functionLinenumberEnd: 5887
    functionName: OGR_G_Within
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Within(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5920,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 5926
      start: 5914
    functionDepth: 1
    functionLinenumber: 5914
    functionLinenumberEnd: 5926
    functionName: OGRGeometry::Contains
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGEOSBooleanPredicate
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Contains(UNUSED_IF_NO_GEOS const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:5956,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5958,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:5959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 5960
      start: 5953
    functionDepth: 0
    functionLinenumber: 5953
    functionLinenumberEnd: 5960
    functionName: OGR_G_Contains
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Contains(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:5994,1
    - Dst: OGRGEOSBooleanPredicate
      Src: /src/gdal/ogr/ogrgeometry.cpp:5998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - OGRGeometry *poOtherGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 6000
      start: 5988
    functionDepth: 1
    functionLinenumber: 5988
    functionLinenumberEnd: 6000
    functionName: OGRGeometry::Overlaps
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGEOSBooleanPredicate
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::Overlaps(UNUSED_IF_NO_GEOS const OGRGeometry
      *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6031,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6033,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - hOther
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6035
      start: 6028
    functionDepth: 0
    functionLinenumber: 6028
    functionLinenumberEnd: 6035
    functionName: OGR_G_Overlaps
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_Overlaps(OGRGeometryH hThis, OGRGeometryH hOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6051
      start: 6049
    functionDepth: 0
    functionLinenumber: 6049
    functionLinenumberEnd: 6051
    functionName: OGRGeometry::closeRings
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::closeRings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:6070,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6073
      start: 6067
    functionDepth: 0
    functionLinenumber: 6067
    functionLinenumberEnd: 6073
    functionName: OGR_G_CloseRings
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_CloseRings(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6113,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6118,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6120,1
    - Dst: GEOSGetCentroid_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6124,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6125,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6129,1
    - Dst: OGRGeometryFactory::createFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6134,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6136,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6140,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6143,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6143,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6146,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6150,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6151,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6151,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrgeometry.cpp:6153,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:6155,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6157,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6157,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6158,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6158,1
    - Dst: OGRPoint*::empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:6162,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6167,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 6177
      start: 6106
    functionDepth: 2
    functionLinenumber: 6106
    functionLinenumberEnd: 6177
    functionName: OGRGeometry::Centroid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry*::assignSpatialReference
    - OGRPoint*::setX
    - OGRPoint*::getX
    - OGRPoint*::getY
    - getSpatialReference
    - OGRGeometry*::toPoint
    - OGRGeometry::exportToGEOS
    - GEOSGetCentroid_r
    - OGRPoint*::setY
    - CPLError
    - OGRPoint*::empty
    - wkbFlatten
    - OGRGeometryFactory::createFromGEOS
    - OGRPoint*::IsEmpty
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometry::Centroid(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6210,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6212,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6215,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6215,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6217,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6222,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrgeometry.cpp:6222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - hGeom
    - hCentroidPoint
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6223
      start: 6207
    functionDepth: 1
    functionLinenumber: 6207
    functionLinenumberEnd: 6223
    functionName: OGR_G_Centroid
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRGeometry*::toPoint
    - VALIDATE_POINTER1
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int OGR_G_Centroid(OGRGeometryH hGeom, OGRGeometryH hCentroidPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6252,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6255,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6259,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6261,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6262,1
    - Dst: GEOSPointOnSurface_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6267,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6268,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6272,1
    - Dst: OGRGeometryFactory::createFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6277,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6279,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6283,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6286,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6286,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6289,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6293,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6294,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometry.cpp:6295,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6297,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6298,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6304
      start: 6249
    functionDepth: 2
    functionLinenumber: 6249
    functionLinenumberEnd: 6304
    functionName: OGR_G_PointOnSurface
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry*::assignSpatialReference
    - FromHandle
    - OGRGeometry*::getSpatialReference
    - ToHandle
    - OGRGeometry*::exportToGEOS
    - VALIDATE_POINTER1
    - CPLError
    - wkbFlatten
    - OGRGeometryFactory::createFromGEOS
    - GEOSPointOnSurface_r
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_PointOnSurface(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:6313,1
    - Dst: OGR_G_PointOnSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:6316,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6317,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:6317,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6321,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:6322,1
    - Dst: OGRPoint*::empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:6324,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6328,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6328,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6329,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6329,1
    - Dst: OGR_G_DestroyGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:6332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 6335
      start: 6311
    functionDepth: 3
    functionLinenumber: 6311
    functionLinenumberEnd: 6335
    functionName: OGRGeometry::PointOnSurfaceInternal
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - FromHandle
    - OGRPoint*::setX
    - OGRPoint*::getY
    - OGR_G_PointOnSurface
    - ToHandle
    - OGRPoint*::setY
    - OGRPoint*::empty
    - OGRPoint*::IsEmpty
    - const_cast<OGRGeometry *>
    - OGR_G_DestroyGeometry
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeometry::PointOnSurfaceInternal(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6365,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6371,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6372,1
    - Dst: GEOSSimplify_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6376,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6377,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6379,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dTolerance
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 6385
      start: 6360
    functionDepth: 2
    functionLinenumber: 6360
    functionLinenumberEnd: 6385
    functionName: OGRGeometry::Simplify
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSSimplify_r
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::Simplify(UNUSED_IF_NO_GEOS double dTolerance)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6413,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6414,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - dTolerance
    argTypes:
    - OGRGeometryH
    - double
    constantsTouched: []
    func_position:
      end: 6416
      start: 6410
    functionDepth: 0
    functionLinenumber: 6410
    functionLinenumberEnd: 6416
    functionName: OGR_G_Simplify
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Simplify(OGRGeometryH hThis, double dTolerance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6445,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6451,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6452,1
    - Dst: GEOSTopologyPreserveSimplify_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6455,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6457,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6459,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dTolerance
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 6465
      start: 6439
    functionDepth: 2
    functionLinenumber: 6439
    functionLinenumberEnd: 6465
    functionName: OGRGeometry::SimplifyPreserveTopology
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometry::exportToGEOS
    - GEOSTopologyPreserveSimplify_r
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometry::SimplifyPreserveTopology(UNUSED_IF_NO_GEOS double dTolerance) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6495,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6496,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hThis
    - dTolerance
    argTypes:
    - OGRGeometryH
    - double
    constantsTouched: []
    func_position:
      end: 6498
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6498
    functionName: OGR_G_SimplifyPreserveTopology
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_SimplifyPreserveTopology(OGRGeometryH hThis,\n
      \                                           double dTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6551,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrgeometry.cpp:6551,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:6551,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6553,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrgeometry.cpp:6553,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:6553,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:6558,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:6560,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrgeometry.cpp:6560,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:6560,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:6565,1
    - Dst: setM
      Src: /src/gdal/ogr/ogrgeometry.cpp:6567,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrgeometry.cpp:6567,1
    - Dst: getM
      Src: /src/gdal/ogr/ogrgeometry.cpp:6567,1
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:6574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - sPrecision
    argTypes:
    - OGRGeomCoordinatePrecision
    constantsTouched: []
    func_position:
      end: 6575
      start: 6518
    functionDepth: 1
    functionLinenumber: 6518
    functionLinenumberEnd: 6575
    functionName: OGRGeometry::roundCoordinates
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - setY
    - accept
    - getY
    - getZ
    - setM
    - std::round
    - IsMeasured
    - setZ
    - setX
    - Is3D
    - getX
    - getM
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::roundCoordinates(const OGRGeomCoordinatePrecision
      &sPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6612,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6618,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6619,1
    - Dst: GEOSGeom_setPrecision_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6622,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6624,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6626,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dfGridSize
    - nFlags
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 6632
      start: 6608
    functionDepth: 2
    functionLinenumber: 6608
    functionLinenumberEnd: 6632
    functionName: OGRGeometry::SetPrecision
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - GEOSGeom_setPrecision_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::SetPrecision(UNUSED_IF_NO_GEOS double dfGridSize,\n
      \                                      UNUSED_IF_NO_GEOS int nFlags) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6669,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6670,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hThis
    - dfGridSize
    - nFlags
    argTypes:
    - OGRGeometryH
    - double
    - int
    constantsTouched: []
    func_position:
      end: 6672
      start: 6666
    functionDepth: 0
    functionLinenumber: 6666
    functionLinenumberEnd: 6672
    functionName: OGR_G_SetPrecision
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_SetPrecision(OGRGeometryH hThis, double dfGridSize,\n
      \                               int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6702
      start: 6697
    functionDepth: 1
    functionLinenumber: 6697
    functionLinenumberEnd: 6702
    functionName: OGRGeometry::DelaunayTriangulation
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::DelaunayTriangulation(double /*dfTolerance*/,\n
      \                                               int /*bOnlyEdges*/) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6709,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6710,1
    - Dst: GEOSDelaunayTriangulation_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6713,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6715,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6717,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dfTolerance
    - bOnlyEdges
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 6721
      start: 6704
    functionDepth: 2
    functionLinenumber: 6704
    functionLinenumberEnd: 6721
    functionName: OGRGeometry::DelaunayTriangulation
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - GEOSDelaunayTriangulation_r
    - OGRGeometry::exportToGEOS
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::DelaunayTriangulation(double dfTolerance,\n
      \                                               int bOnlyEdges) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6753,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6755,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hThis
    - dfTolerance
    - bOnlyEdges
    argTypes:
    - OGRGeometryH
    - double
    - int
    constantsTouched: []
    func_position:
      end: 6758
      start: 6749
    functionDepth: 0
    functionLinenumber: 6749
    functionLinenumberEnd: 6758
    functionName: OGR_G_DelaunayTriangulation
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_DelaunayTriangulation(OGRGeometryH hThis, double
      dfTolerance,\n                                         int bOnlyEdges)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6794,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6800,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6800,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6801,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6801,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:6802,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6811,1
    - Dst: GEOSGeom::GEOSGeom
      Src: /src/gdal/ogr/ogrgeometry.cpp:6813,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometry.cpp:6817,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:6819,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:6819,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6823,1
    - Dst: GEOSPolygonize_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6833,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6836,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6843,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6846,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6851
      start: 6789
    functionDepth: 2
    functionLinenumber: 6789
    functionLinenumberEnd: 6851
    functionName: OGRGeometry::Polygonize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - getGeometryType
    - OGRGeometryCollection*::getGeometryRef
    - GEOSGeom::GEOSGeom
    - OGRGeometry*::exportToGEOS
    - GEOSPolygonize_r
    - CPLError
    - wkbFlatten
    - toGeometryCollection
    - BuildGeometryFromGEOS
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::Polygonize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6882,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6884,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTarget
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6886
      start: 6879
    functionDepth: 0
    functionLinenumber: 6879
    functionLinenumberEnd: 6886
    functionName: OGR_G_Polygonize
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Polygonize(OGRGeometryH hTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:6921,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6928,1
    - Dst: OGRGeometry::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6929,1
    - Dst: GEOSBuildArea_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6932,1
    - Dst: BuildGeometryFromGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:6934,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:6935,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:6937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6942
      start: 6916
    functionDepth: 2
    functionLinenumber: 6916
    functionLinenumberEnd: 6942
    functionName: OGRGeometry::BuildArea
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - GEOSBuildArea_r
    - OGRGeometry::exportToGEOS
    - CPLError
    - BuildGeometryFromGEOS
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::BuildArea() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometry.cpp:6977,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6979,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:6979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 6980
      start: 6974
    functionDepth: 0
    functionLinenumber: 6974
    functionLinenumberEnd: 6980
    functionName: OGR_G_BuildArea
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_BuildArea(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6992
    functionDepth: 0
    functionLinenumber: 6992
    functionLinenumberEnd: 6995
    functionName: OGRGeometry::swapXY
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeometry.cpp:7010,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:7012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 7013
      start: 7008
    functionDepth: 0
    functionLinenumber: 7008
    functionLinenumberEnd: 7013
    functionName: OGR_G_SwapXY
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_SwapXY(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7042
      start: 7035
    functionDepth: 0
    functionLinenumber: 7035
    functionLinenumberEnd: 7042
    functionName: OGRHasPreparedGeometrySupport
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRHasPreparedGeometrySupport()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:7060,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:7061,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:7062,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:7065,1
    - Dst: GEOSPrepare_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7069,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7072,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:7073,1
    - Dst: OGRPreparedGeometry::OGRPreparedGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:7077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - OGRGeometryH
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 7086
      start: 7056
    functionDepth: 2
    functionLinenumber: 7056
    functionLinenumberEnd: 7086
    functionName: OGRCreatePreparedGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - FromHandle
    - GEOSPrepare_r
    - OGRGeometry*::exportToGEOS
    - OGRPreparedGeometry::OGRPreparedGeometry
    linkageType: ''
    returnType: OGRPreparedGeometryH
    signature: OGRPreparedGeometryH OGRCreatePreparedGeometry(UNUSED_IF_NO_GEOS OGRGeometryH
      hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GEOSPreparedGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7102,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7104,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrgeometry.cpp:7105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - OGRPreparedGeometryH hPreparedGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 7109
      start: 7096
    functionDepth: 1
    functionLinenumber: 7096
    functionLinenumberEnd: 7109
    functionName: OGRDestroyPreparedGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - GEOSPreparedGeom_destroy_r
    linkageType: ''
    returnType: void
    signature: "void OGRDestroyPreparedGeometry(\n    UNUSED_IF_NO_GEOS OGRPreparedGeometryH
      hPreparedGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:7126,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:7131,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:7137,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - OGRPreparedGeometryH hPreparedGeom
    - OGRGeometryH
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 7150
      start: 7121
    functionDepth: 1
    functionLinenumber: 7121
    functionLinenumberEnd: 7150
    functionName: OGRPreparedGeometryIntersects
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeom_destroy_r
    - FromHandle
    - OGRGeometry*::exportToGEOS
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: int
    signature: "int OGRPreparedGeometryIntersects(\n    UNUSED_IF_NO_GEOS const OGRPreparedGeometryH
      hPreparedGeom,\n    UNUSED_IF_NO_GEOS const OGRGeometryH hOtherGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometry.cpp:7162,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:7167,1
    - Dst: OGRGeometry*::exportToGEOS
      Src: /src/gdal/ogr/ogrgeometry.cpp:7173,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrgeometry.cpp:7180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - "OGRPreparedGeometryH\n                                    hPreparedGeom"
    - OGRGeometryH
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 7186
      start: 7157
    functionDepth: 1
    functionLinenumber: 7157
    functionLinenumberEnd: 7186
    functionName: OGRPreparedGeometryContains
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeom_destroy_r
    - FromHandle
    - OGRGeometry*::exportToGEOS
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: int
    signature: "int OGRPreparedGeometryContains(UNUSED_IF_NO_GEOS const OGRPreparedGeometryH\n
      \                                   hPreparedGeom,\n                                UNUSED_IF_NO_GEOS
      const OGRGeometryH hOtherGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WKBFromEWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:7199,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:7206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pabyEWKB
    - nLength
    - pnSRID
    - bIsPostGIS1_EWKB
    argTypes:
    - GByte*
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 7211
      start: 7192
    functionDepth: 2
    functionLinenumber: 7192
    functionLinenumberEnd: 7211
    functionName: OGRGeometryFromEWKB
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - WKBFromEWKB
    - OGRGeometryFactory::createFromWkb
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFromEWKB(GByte *pabyEWKB, int nLength, int
      *pnSRID,\n                                 int bIsPostGIS1_EWKB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrgeometry.cpp:7225,1
    - Dst: OGRGeometryFromEWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:7228,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pszBytea
    - pnSRID
    - bIsPostGIS1_EWKB
    argTypes:
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 7233
      start: 7217
    functionDepth: 3
    functionLinenumber: 7217
    functionLinenumberEnd: 7233
    functionName: OGRGeometryFromHexEWKB
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFromEWKB
    - CPLFree
    - CPLHexToBinary
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFromHexEWKB(const char *pszBytea, int *pnSRID,\n
      \                                   int bIsPostGIS1_EWKB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7243,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrgeometry.cpp:7243,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:7245,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7248,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:7248,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometry.cpp:7249,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:7251,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7254,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:7255,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:7258,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7263,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:7264,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7274,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometry.cpp:7274,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7276,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:7277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7283,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeometry.cpp:7284,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7290,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7291,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7296,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrgeometry.cpp:7303,1
    - Dst: CPLBinaryToHex
      Src: /src/gdal/ogr/ogrgeometry.cpp:7309,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7309,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7310,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7311,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrgeometry.cpp:7318,1
    - Dst: CPLBinaryToHex
      Src: /src/gdal/ogr/ogrgeometry.cpp:7319,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7320,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7321,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7322,1
    - Dst: CPLBinaryToHex
      Src: /src/gdal/ogr/ogrgeometry.cpp:7328,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7328,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7329,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7332,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7335,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7336,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - poGeometry
    - nSRSId
    - nPostGISMajor
    - nPostGISMinor
    argTypes:
    - OGRGeometry*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7339
      start: 7239
    functionDepth: 1
    functionLinenumber: 7239
    functionLinenumberEnd: 7339
    functionName: OGRGeometryToHexEWKB
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<int>
    - CPLStrdup
    - OGRGeometry*::exportToWkb
    - reinterpret_cast<const GByte *>
    - OGRGeometry*::IsEmpty
    - static_cast<GByte *>
    - strcpy
    - CPLBinaryToHex
    - wkbFlatten
    - memcpy
    - CPLFree
    - VSI_MALLOC_VERBOSE
    - CPL_LSBWORD32
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: char
    signature: "char *OGRGeometryToHexEWKB(OGRGeometry *poGeometry, int nSRSId,\n
      \                          int nPostGISMajor, int nPostGISMinor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7351,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7360,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:7367,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7368,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7370,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:7373,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eByteOrder
    - eWkbVariant
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbByteOrder
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 7377
      start: 7346
    functionDepth: 1
    functionLinenumber: 7346
    functionLinenumberEnd: 7377
    functionName: OGRGeometry::importPreambleFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbHasZ
    - static_cast<size_t>
    - getGeometryType
    - static_cast<OGRwkbByteOrder>
    - OGRReadWKBGeometryType
    - wkbHasM
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::importPreambleFromWkb(const unsigned char *pabyData,\n
      \                                         size_t nSize,\n                                          OGRwkbByteOrder
      &eByteOrder,\n                                          OGRwkbVariant eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::importPreambleFromWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:7394,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrgeometry.cpp:7402,1
    - Dst: OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:7406,1
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:7408,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:7413,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrgeometry.cpp:7415,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrgeometry.cpp:7416,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7419,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometry.cpp:7420,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7428,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:7430,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7437,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometry.cpp:7439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 7
    argNames:
    - pabyData
    - nSize
    - nDataOffset
    - eByteOrder
    - nMinSubGeomSize
    - nGeomCount
    - eWkbVariant
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - OGRwkbByteOrder
    - size_t
    - int
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 7444
      start: 7386
    functionDepth: 2
    functionLinenumber: 7386
    functionLinenumberEnd: 7444
    functionName: OGRGeometry::importPreambleOfCollectionFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::importPreambleFromWkb
    - simple_max
    - static_cast<size_t>
    - empty
    - OGR_SWAP
    - CPLAssert
    - CPL_SWAP32
    - OGRGeometry::setMeasured
    - CPLError
    - memcpy
    - OGRGeometry::set3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::importPreambleOfCollectionFromWkb(\n    const
      unsigned char *pabyData, size_t &nSize, size_t &nDataOffset,\n    OGRwkbByteOrder
      &eByteOrder, size_t nMinSubGeomSize, int &nGeomCount,\n    OGRwkbVariant eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::importPreambleFromWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:7462,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:7478,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:7498,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:7506,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:7508,1
    - Dst: OGRLineString*::importFromWKTListOnly
      Src: /src/gdal/ogr/ogrgeometry.cpp:7511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:7514,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:7516,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:7520,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:7521,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:7522,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:7523,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrgeometry.cpp:7523,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometry.cpp:7525,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:7530,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:7537,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:7542,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:7548,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:7548,1
    - Dst: OGRCurve*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:7548,1
    - Dst: pfnAddCurveDirectly
      Src: /src/gdal/ogr/ogrgeometry.cpp:7552,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometry.cpp:7564,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7567,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:7568,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 5
    argNames:
    - ppszInput
    - bAllowEmptyComponent
    - bAllowLineString
    - bAllowCurve
    - bAllowCompoundCurve
    argTypes:
    - char**
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7582
      start: 7453
    functionDepth: 2
    functionLinenumber: 7453
    functionLinenumberEnd: 7582
    functionName: OGRGeometry::importCurveCollectionFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::importFromWKTListOnly
    - OGRGeometry*::toCurve
    - STARTS_WITH_CI
    - OGRCurve*::IsMeasured
    - OGRFromOGCGeomType
    - OGR_GT_IsCurve
    - pfnAddCurveDirectly
    - EQUAL
    - OGRGeometryFactory::createFromWkt
    - IsMeasured
    - Is3D
    - CPLError
    - OGRLineString::OGRLineString
    - CPLFree
    - OGRGeometry::importPreambleFromWkt
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometry::importCurveCollectionFromWkt(\n    const char
      **ppszInput, int bAllowEmptyComponent, int bAllowLineString,\n    int bAllowCurve,
      int bAllowCompoundCurve,\n    OGRErr (*pfnAddCurveDirectly)(OGRGeometry *poSelf,
      OGRCurve *poCurve))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7606,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7608,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7610,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7614
      start: 7604
    functionDepth: 0
    functionLinenumber: 7604
    functionLinenumberEnd: 7614
    functionName: OGR_GT_Flatten
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRwkbGeometryType>
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7638
      start: 7629
    functionDepth: 0
    functionLinenumber: 7629
    functionLinenumberEnd: 7638
    functionName: OGR_GT_HasZ
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR_GT_HasZ(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7660
      start: 7653
    functionDepth: 0
    functionLinenumber: 7653
    functionLinenumberEnd: 7660
    functionName: OGR_GT_HasM
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR_GT_HasM(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7678,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7681,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7684
      start: 7676
    functionDepth: 1
    functionLinenumber: 7676
    functionLinenumberEnd: 7684
    functionName: OGR_GT_SetZ
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_HasZ
    - static_cast<OGRwkbGeometryType>
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7702,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7706,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7707,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrgeometry.cpp:7709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7710
      start: 7700
    functionDepth: 1
    functionLinenumber: 7700
    functionLinenumberEnd: 7710
    functionName: OGR_GT_SetM
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_HasM
    - static_cast<OGRwkbGeometryType>
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7731,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7731,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7733,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7733,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7735,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7735,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - eType
    - bHasZ
    - bHasM
    argTypes:
    - OGRwkbGeometryType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7738
      start: 7727
    functionDepth: 2
    functionLinenumber: 7727
    functionLinenumberEnd: 7738
    functionName: OGR_GT_SetModifier
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGR_GT_SetM
    - wkbFlatten
    - OGR_GT_SetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGR_GT_SetModifier(OGRwkbGeometryType eType, int
      bHasZ,\n                                      int bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7756,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7757,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 22
    argCount: 2
    argNames:
    - eType
    - eSuperType
    argTypes:
    - OGRwkbGeometryType
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7792
      start: 7754
    functionDepth: 0
    functionLinenumber: 7754
    functionLinenumberEnd: 7792
    functionName: OGR_GT_IsSubClassOf
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: int
    signature: int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType
      eSuperType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7824,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:7837,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:7840,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7847,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7852
      start: 7818
    functionDepth: 1
    functionLinenumber: 7818
    functionLinenumberEnd: 7852
    functionName: OGR_GT_GetCollection
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbSetM
    - wkbSetZ
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7884,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7904,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7906,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7909
      start: 7878
    functionDepth: 0
    functionLinenumber: 7878
    functionLinenumberEnd: 7909
    functionName: OGR_GT_GetSingle
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbSetM
    - wkbFlatten
    - wkbSetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_GetSingle(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7936,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:7954,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:7956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 7959
      start: 7932
    functionDepth: 0
    functionLinenumber: 7932
    functionLinenumberEnd: 7959
    functionName: OGR_GT_GetCurve
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - wkbSetM
    - wkbFlatten
    - wkbSetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:7986,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometry.cpp:7988,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:7991,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:8001,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrgeometry.cpp:8003,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 8006
      start: 7982
    functionDepth: 1
    functionLinenumber: 7982
    functionLinenumberEnd: 8006
    functionName: OGR_GT_GetLinear
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 3
    functionsReached:
    - wkbSetM
    - wkbSetZ
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:8026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 8027
      start: 8024
    functionDepth: 1
    functionLinenumber: 8024
    functionLinenumberEnd: 8027
    functionName: OGR_GT_IsCurve
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 10
    functionsReached:
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: int
    signature: int OGR_GT_IsCurve(OGRwkbGeometryType eGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometry.cpp:8047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 8048
      start: 8045
    functionDepth: 1
    functionLinenumber: 8045
    functionLinenumberEnd: 8048
    functionName: OGR_GT_IsSurface
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 6
    functionsReached:
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: int
    signature: int OGR_GT_IsSurface(OGRwkbGeometryType eGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:8069,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 8074
      start: 8067
    functionDepth: 0
    functionLinenumber: 8067
    functionLinenumberEnd: 8074
    functionName: OGR_GT_IsNonLinear
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: int
    signature: int OGR_GT_IsNonLinear(OGRwkbGeometryType eGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:8083,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 8087
      start: 8081
    functionDepth: 1
    functionLinenumber: 8081
    functionLinenumberEnd: 8087
    functionName: OGRGeometry::CastToError
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGeometry*::getGeometryName
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometry::CastToError(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sfcgal_init
      Src: /src/gdal/ogr/ogrgeometry.cpp:8101,1
    - Dst: SFCGAL_MAKE_VERSION
      Src: /src/gdal/ogr/ogrgeometry.cpp:8102,1
    - Dst: OGRGeometry::exportToWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:8122,1
    - Dst: sfcgal_io_read_wkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:8124,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:8125,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8133,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8133,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8136,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8136,1
    - Dst: exportToSFCGALViaWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:8137,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrgeometry.cpp:8137,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8139,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8139,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8140,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8140,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8143,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8143,1
    - Dst: exportToSFCGALViaWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:8145,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrgeometry.cpp:8145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8147,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8147,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:8150,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8151,1
    - Dst: exportToSFCGALViaWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:8153,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrgeometry.cpp:8153,1
    - Dst: exportToSFCGALViaWKB
      Src: /src/gdal/ogr/ogrgeometry.cpp:8158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8166,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8166,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8170,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8170,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8171,1
    - Dst: sfcgal_io_read_wkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8174,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:8174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8175,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8184,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8185,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8185,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8189,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8189,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8191,1
    - Dst: sfcgal_io_read_wkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8194,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:8194,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8195,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometry.cpp:8204,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrgeometry.cpp:8204,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:8208,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometry.cpp:8209,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8211,1
    - Dst: sfcgal_io_read_wkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8214,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:8214,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8215,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8220,1
    - Dst: OGRGeometry::exportToWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8224,1
    - Dst: sfcgal_io_read_wkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8227,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrgeometry.cpp:8227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8228,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:8238,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 1
    argNames:
    - OGRGeometry *poGeom
    argTypes:
    - UNUSED_IF_NO_SFCGAL
    constantsTouched: []
    func_position:
      end: 8241
      start: 8096
    functionDepth: 2
    functionLinenumber: 8096
    functionLinenumberEnd: 8241
    functionName: OGRGeometry::OGRexportToSFCGAL
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - OGRGeometryFactory::forceToPolygon
    - CPLError
    - getGeometryName
    - sfcgal_io_read_wkt
    - OGRGeometry::exportToWkt
    - strlen
    - reinterpret_cast<const char *>
    - OGRCurve::CastToLineString
    - exportToSFCGALViaWKB
    - sfcgal_io_read_wkb
    - CPLFree
    - std::unique_ptr::get
    - OGRGeometry::exportToWkb
    - sfcgal_init
    - EQUAL
    - OGRGeometryFactory::forceToLineString
    - std::unique_ptr::exportToWkt
    - clone
    - SFCGAL_MAKE_VERSION
    linkageType: ''
    returnType: sfcgal_geometry_t
    signature: 'sfcgal_geometry_t *

      OGRGeometry::OGRexportToSFCGAL(UNUSED_IF_NO_SFCGAL const OGRGeometry *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sfcgal_init
      Src: /src/gdal/ogr/ogrgeometry.cpp:8257,1
    - Dst: SFCGAL_MAKE_VERSION
      Src: /src/gdal/ogr/ogrgeometry.cpp:8260,1
    - Dst: sfcgal_geometry_as_wkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:8262,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometry.cpp:8268,1
    - Dst: reinterpret_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrgeometry.cpp:8269,1
    - Dst: free
      Src: /src/gdal/ogr/ogrgeometry.cpp:8272,1
    - Dst: sfcgal_geometry_as_text_decim
      Src: /src/gdal/ogr/ogrgeometry.cpp:8283,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8285,1
    - Dst: free
      Src: /src/gdal/ogr/ogrgeometry.cpp:8287,1
    - Dst: sfcgal_geometry_type_id
      Src: /src/gdal/ogr/ogrgeometry.cpp:8289,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometry.cpp:8294,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8298,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:8302,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometry.cpp:8306,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometry.cpp:8310,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:8314,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:8318,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometry.cpp:8322,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:8326,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometry.cpp:8330,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8334,1
    - Dst: OGRGeometry*::importFromWkt
      Src: /src/gdal/ogr/ogrgeometry.cpp:8339,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8341,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometry.cpp:8347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometry.cpp:8352,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 1
    argNames:
    - sfcgal_geometry_t *geometry
    argTypes:
    - UNUSED_IF_NO_SFCGAL
    constantsTouched: []
    func_position:
      end: 8355
      start: 8250
    functionDepth: 1
    functionLinenumber: 8250
    functionLinenumberEnd: 8355
    functionName: OGRGeometry::SFCGALexportToOGR
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 4
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - sfcgal_geometry_as_text_decim
    - OGRGeometry*::importFromWkt
    - CPLError
    - OGRPolygon::OGRPolygon
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    - OGRGeometryFactory::createFromWkb
    - sfcgal_geometry_type_id
    - OGRPoint::OGRPoint
    - OGRTriangle::OGRTriangle
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - free
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - OGRMultiPolygon::OGRMultiPolygon
    - CPLFree
    - OGRGeometryCollection::OGRGeometryCollection
    - sfcgal_init
    - reinterpret_cast<unsigned char *>
    - memcpy
    - sfcgal_geometry_as_wkb
    - SFCGAL_MAKE_VERSION
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometry::SFCGALexportToOGR(\n    UNUSED_IF_NO_SFCGAL
      const sfcgal_geometry_t *geometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:8362,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:8362,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometry.cpp:8370,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:8375,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:8375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8389
      start: 8360
    functionDepth: 0
    functionLinenumber: 8360
    functionLinenumberEnd: 8389
    functionName: OGRGeometry::IsSFCGALCompatible
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 9
    functionsReached:
    - toGeometryCollection
    - wkbFlatten
    - getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRGeometry::IsSFCGALCompatible() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8429,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8430,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogrgeometry.cpp:8431,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8432,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8433,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8434,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8435,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogrgeometry.cpp:8436,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8437,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8438,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8440,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:8444,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8445,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogrgeometry.cpp:8446,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8447,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrgeometry.cpp:8448,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8450,1
    - Dst: getM
      Src: /src/gdal/ogr/ogrgeometry.cpp:8454,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8455,1
    - Dst: OGRRoundValueIEEE754
      Src: /src/gdal/ogr/ogrgeometry.cpp:8456,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometry.cpp:8457,1
    - Dst: setM
      Src: /src/gdal/ogr/ogrgeometry.cpp:8458,1
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - options
    argTypes:
    - OGRGeomCoordinateBinaryPrecision
    constantsTouched: []
    func_position:
      end: 8465
      start: 8409
    functionDepth: 1
    functionLinenumber: 8409
    functionLinenumberEnd: 8465
    functionName: OGRGeometry::roundCoordinatesIEEE754
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - setY
    - accept
    - OGRRoundValueIEEE754
    - getY
    - getZ
    - setM
    - IsMeasured
    - setZ
    - setX
    - Is3D
    - getX
    - memcpy
    - getM
    linkageType: ''
    returnType: void
    signature: "void OGRGeometry::roundCoordinatesIEEE754(\n    const OGRGeomCoordinateBinaryPrecision
      &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 8477
      start: 8471
    functionDepth: 1
    functionLinenumber: 8471
    functionLinenumberEnd: 8477
    functionName: OGRDefaultGeometryVisitor::_visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::_visit(OGRSimpleCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::_visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 8482
      start: 8479
    functionDepth: 2
    functionLinenumber: 8479
    functionLinenumberEnd: 8482
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRDefaultGeometryVisitor::_visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8486,1
    - Dst: OGRLinearRing*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRLinearRing*
    constantsTouched: []
    func_position:
      end: 8487
      start: 8484
    functionDepth: 1
    functionLinenumber: 8484
    functionLinenumberEnd: 8487
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRLinearRing*::toUpperClass
    - OGRDefaultGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRLinearRing *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::_visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCircularString*
    constantsTouched: []
    func_position:
      end: 8492
      start: 8489
    functionDepth: 2
    functionLinenumber: 8489
    functionLinenumberEnd: 8492
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRDefaultGeometryVisitor::_visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRCircularString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 8498
      start: 8494
    functionDepth: 1
    functionLinenumber: 8494
    functionLinenumberEnd: 8498
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8502,1
    - Dst: OGRPolygon*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 8503
      start: 8500
    functionDepth: 1
    functionLinenumber: 8500
    functionLinenumberEnd: 8503
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGRDefaultGeometryVisitor::visit
    - OGRPolygon*::toUpperClass
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8507,1
    - Dst: OGRMultiPoint*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 8508
      start: 8505
    functionDepth: 1
    functionLinenumber: 8505
    functionLinenumberEnd: 8508
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 3
    functionsReached:
    - OGRDefaultGeometryVisitor::visit
    - OGRMultiPoint*::toUpperClass
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8512,1
    - Dst: OGRMultiLineString*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 8513
      start: 8510
    functionDepth: 1
    functionLinenumber: 8510
    functionLinenumberEnd: 8513
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 4
    functionsReached:
    - OGRDefaultGeometryVisitor::visit
    - OGRMultiLineString*::toUpperClass
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRMultiLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8517,1
    - Dst: OGRMultiPolygon*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPolygon*
    constantsTouched: []
    func_position:
      end: 8518
      start: 8515
    functionDepth: 1
    functionLinenumber: 8515
    functionLinenumberEnd: 8518
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - OGRMultiPolygon*::toUpperClass
    - OGRDefaultGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 8524
      start: 8520
    functionDepth: 1
    functionLinenumber: 8520
    functionLinenumberEnd: 8524
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRGeometryCollection *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 8530
      start: 8526
    functionDepth: 1
    functionLinenumber: 8526
    functionLinenumberEnd: 8530
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRCompoundCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8534,1
    - Dst: OGRMultiCurve*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiCurve*
    constantsTouched: []
    func_position:
      end: 8535
      start: 8532
    functionDepth: 1
    functionLinenumber: 8532
    functionLinenumberEnd: 8535
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 6
    functionsReached:
    - OGRDefaultGeometryVisitor::visit
    - OGRMultiCurve*::toUpperClass
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8539,1
    - Dst: OGRMultiSurface*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiSurface*
    constantsTouched: []
    func_position:
      end: 8540
      start: 8537
    functionDepth: 1
    functionLinenumber: 8537
    functionLinenumberEnd: 8540
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 7
    functionsReached:
    - OGRDefaultGeometryVisitor::visit
    - OGRMultiSurface*::toUpperClass
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRMultiSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8544,1
    - Dst: OGRTriangle*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRTriangle*
    constantsTouched: []
    func_position:
      end: 8545
      start: 8542
    functionDepth: 1
    functionLinenumber: 8542
    functionLinenumberEnd: 8545
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - OGRTriangle*::toUpperClass
    - OGRDefaultGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRTriangle *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolyhedralSurface*
    constantsTouched: []
    func_position:
      end: 8551
      start: 8547
    functionDepth: 1
    functionLinenumber: 8547
    functionLinenumberEnd: 8551
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRPolyhedralSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8555,1
    - Dst: OGRTriangulatedSurface*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRTriangulatedSurface*
    constantsTouched: []
    func_position:
      end: 8556
      start: 8553
    functionDepth: 1
    functionLinenumber: 8553
    functionLinenumberEnd: 8556
    functionName: OGRDefaultGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 9
    functionsReached:
    - OGRTriangulatedSurface*::toUpperClass
    - OGRDefaultGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultGeometryVisitor::visit(OGRTriangulatedSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 8564
      start: 8558
    functionDepth: 1
    functionLinenumber: 8558
    functionLinenumberEnd: 8564
    functionName: OGRDefaultConstGeometryVisitor::_visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::_visit(const OGRSimpleCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::_visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 8569
      start: 8566
    functionDepth: 2
    functionLinenumber: 8566
    functionLinenumberEnd: 8569
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRDefaultConstGeometryVisitor::_visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8573,1
    - Dst: OGRLinearRing*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRLinearRing*
    constantsTouched: []
    func_position:
      end: 8574
      start: 8571
    functionDepth: 1
    functionLinenumber: 8571
    functionLinenumberEnd: 8574
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRLinearRing*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRLinearRing *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::_visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCircularString*
    constantsTouched: []
    func_position:
      end: 8579
      start: 8576
    functionDepth: 2
    functionLinenumber: 8576
    functionLinenumberEnd: 8579
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRDefaultConstGeometryVisitor::_visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRCircularString
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 8585
      start: 8581
    functionDepth: 1
    functionLinenumber: 8581
    functionLinenumberEnd: 8585
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8589,1
    - Dst: OGRPolygon*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 8590
      start: 8587
    functionDepth: 1
    functionLinenumber: 8587
    functionLinenumberEnd: 8590
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGRPolygon*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8594,1
    - Dst: OGRMultiPoint*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 8595
      start: 8592
    functionDepth: 1
    functionLinenumber: 8592
    functionLinenumberEnd: 8595
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 3
    functionsReached:
    - OGRMultiPoint*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8599,1
    - Dst: OGRMultiLineString*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 8600
      start: 8597
    functionDepth: 1
    functionLinenumber: 8597
    functionLinenumberEnd: 8600
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 4
    functionsReached:
    - OGRMultiLineString*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRMultiLineString
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8604,1
    - Dst: OGRMultiPolygon*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPolygon*
    constantsTouched: []
    func_position:
      end: 8605
      start: 8602
    functionDepth: 1
    functionLinenumber: 8602
    functionLinenumberEnd: 8605
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - OGRMultiPolygon*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 8611
      start: 8607
    functionDepth: 1
    functionLinenumber: 8607
    functionLinenumberEnd: 8611
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRGeometryCollection
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 8617
      start: 8613
    functionDepth: 1
    functionLinenumber: 8613
    functionLinenumberEnd: 8617
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 5
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRCompoundCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8621,1
    - Dst: OGRMultiCurve*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiCurve*
    constantsTouched: []
    func_position:
      end: 8622
      start: 8619
    functionDepth: 1
    functionLinenumber: 8619
    functionLinenumberEnd: 8622
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 6
    functionsReached:
    - OGRMultiCurve*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8626,1
    - Dst: OGRMultiSurface*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiSurface*
    constantsTouched: []
    func_position:
      end: 8627
      start: 8624
    functionDepth: 1
    functionLinenumber: 8624
    functionLinenumberEnd: 8627
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 7
    functionsReached:
    - OGRMultiSurface*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRMultiSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8631,1
    - Dst: OGRTriangle*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRTriangle*
    constantsTouched: []
    func_position:
      end: 8632
      start: 8629
    functionDepth: 1
    functionLinenumber: 8629
    functionLinenumberEnd: 8632
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - OGRTriangle*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRTriangle *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/gdal/ogr/ogrgeometry.cpp:8637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolyhedralSurface*
    constantsTouched: []
    func_position:
      end: 8638
      start: 8634
    functionDepth: 1
    functionLinenumber: 8634
    functionLinenumberEnd: 8638
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 8
    functionsReached:
    - accept
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRPolyhedralSurface
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDefaultConstGeometryVisitor::visit
      Src: /src/gdal/ogr/ogrgeometry.cpp:8642,1
    - Dst: OGRTriangulatedSurface*::toUpperClass
      Src: /src/gdal/ogr/ogrgeometry.cpp:8642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRTriangulatedSurface*
    constantsTouched: []
    func_position:
      end: 8643
      start: 8640
    functionDepth: 1
    functionLinenumber: 8640
    functionLinenumberEnd: 8643
    functionName: OGRDefaultConstGeometryVisitor::visit
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 9
    functionsReached:
    - OGRTriangulatedSurface*::toUpperClass
    - OGRDefaultConstGeometryVisitor::visit
    linkageType: ''
    returnType: void
    signature: void OGRDefaultConstGeometryVisitor::visit(const OGRTriangulatedSurface
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 8653
      start: 8650
    functionDepth: 0
    functionLinenumber: 8650
    functionLinenumberEnd: 8653
    functionName: OGRGeometryUniquePtrDeleter::operator()(OGRGeometry *poGeom) const
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometryUniquePtrDeleter::operator()(OGRGeometry *poGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDestroyPreparedGeometry
      Src: /src/gdal/ogr/ogrgeometry.cpp:8665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPreparedGeom
    argTypes:
    - OGRPreparedGeometry*
    constantsTouched: []
    func_position:
      end: 8666
      start: 8662
    functionDepth: 2
    functionLinenumber: 8662
    functionLinenumberEnd: 8666
    functionName: "OGRPreparedGeometryUniquePtrDeleter::operator()(\n    OGRPreparedGeometry
      *poPreparedGeom) const"
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRDestroyPreparedGeometry
    linkageType: ''
    returnType: void
    signature: "void OGRPreparedGeometryUniquePtrDeleter::operator()(\n    OGRPreparedGeometry
      *poPreparedGeom) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8677,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8677,1
    - Dst: OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8678,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8680,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8680,1
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8681,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8683,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8683,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometry.cpp:8684,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8686,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8686,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometry.cpp:8687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 8688
      start: 8675
    functionDepth: 1
    functionLinenumber: 8675
    functionLinenumberEnd: 8688
    functionName: OGRGeometry::HomogenizeDimensionalityWith
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsMeasured
    - OGRGeometry*::setMeasured
    - IsMeasured
    - OGRGeometry*::Is3D
    - OGRGeometry::setMeasured
    - Is3D
    - OGRGeometry*::set3D
    - OGRGeometry::set3D
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::HomogenizeDimensionalityWith(OGRGeometry *poOtherGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:8706,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrgeometry.cpp:8706,1
    - Dst: log2
      Src: /src/gdal/ogr/ogrgeometry.cpp:8706,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:8710,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrgeometry.cpp:8710,1
    - Dst: log2
      Src: /src/gdal/ogr/ogrgeometry.cpp:8710,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometry.cpp:8714,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrgeometry.cpp:8714,1
    - Dst: log2
      Src: /src/gdal/ogr/ogrgeometry.cpp:8714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - prec
    argTypes:
    - OGRGeomCoordinatePrecision
    constantsTouched: []
    func_position:
      end: 8716
      start: 8700
    functionDepth: 0
    functionLinenumber: 8700
    functionLinenumberEnd: 8716
    functionName: OGRGeomCoordinateBinaryPrecision::SetFrom
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - log2
    - ceil
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinateBinaryPrecision::SetFrom(\n    const OGRGeomCoordinatePrecision
      &prec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRwkbExportOptions::OGRwkbExportOptions
      Src: /src/gdal/ogr/ogrgeometry.cpp:8732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8733
      start: 8730
    functionDepth: 1
    functionLinenumber: 8730
    functionLinenumberEnd: 8733
    functionName: OGRwkbExportOptionsCreate
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRwkbExportOptions::OGRwkbExportOptions
    linkageType: ''
    returnType: OGRwkbExportOptions
    signature: OGRwkbExportOptions *OGRwkbExportOptionsCreate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psOptions
    argTypes:
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 8749
      start: 8746
    functionDepth: 0
    functionLinenumber: 8746
    functionLinenumberEnd: 8749
    functionName: OGRwkbExportOptionsDestroy
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRwkbExportOptionsDestroy(OGRwkbExportOptions *psOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psOptions
    - eByteOrder
    argTypes:
    - OGRwkbExportOptions*
    - OGRwkbByteOrder
    constantsTouched: []
    func_position:
      end: 8768
      start: 8764
    functionDepth: 0
    functionLinenumber: 8764
    functionLinenumberEnd: 8768
    functionName: OGRwkbExportOptionsSetByteOrder
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRwkbExportOptionsSetByteOrder(OGRwkbExportOptions *psOptions,\n
      \                                    OGRwkbByteOrder eByteOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psOptions
    - eWkbVariant
    argTypes:
    - OGRwkbExportOptions*
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 8787
      start: 8783
    functionDepth: 0
    functionLinenumber: 8783
    functionLinenumberEnd: 8787
    functionName: OGRwkbExportOptionsSetVariant
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRwkbExportOptionsSetVariant(OGRwkbExportOptions *psOptions,\n
      \                                  OGRwkbVariant eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomCoordinateBinaryPrecision
      Src: /src/gdal/ogr/ogrgeometry.cpp:8805,1
    - Dst: OGRwkbExportOptions*::sPrecision::SetFrom
      Src: /src/gdal/ogr/ogrgeometry.cpp:8807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psOptions
    - hPrecisionOptions
    argTypes:
    - OGRwkbExportOptions*
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 8808
      start: 8801
    functionDepth: 1
    functionLinenumber: 8801
    functionLinenumberEnd: 8808
    functionName: OGRwkbExportOptionsSetPrecision
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRwkbExportOptions*::sPrecision::SetFrom
    - OGRGeomCoordinateBinaryPrecision
    linkageType: ''
    returnType: void
    signature: "void OGRwkbExportOptionsSetPrecision(\n    OGRwkbExportOptions *psOptions,\n
      \   OGRGeomCoordinatePrecisionH hPrecisionOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometry.cpp:8822,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometry.cpp:8822,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrgeometry.cpp:8825,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometry.cpp:8827,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometry.cpp:8830,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:8834,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:8834,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometry.cpp:8838,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8838,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8838,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8839,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8839,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8843,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8843,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8844,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8844,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8845,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8845,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8846,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8846,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8850,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8850,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8851,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8851,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8852,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeometry.cpp:8852,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8853,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometry.cpp:8853,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8857
      start: 8820
    functionDepth: 1
    functionLinenumber: 8820
    functionLinenumberEnd: 8857
    functionName: OGRGeometry::IsRectangle
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - getGeometryType
    - OGRLinearRing*::getY
    - toPolygon
    - OGRPolygon*::getNumInteriorRings
    - OGRPolygon*::getExteriorRing
    - OGRLinearRing*::getX
    - wkbFlatten
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::IsRectangle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8872
    functionDepth: 0
    functionLinenumber: 8872
    functionLinenumberEnd: 8875
    functionName: OGRGeometry::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometry::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8888
      start: 8886
    functionDepth: 0
    functionLinenumber: 8886
    functionLinenumberEnd: 8888
    functionName: OGRGeometry::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometry::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8894
      start: 8894
    functionDepth: 0
    functionLinenumber: 8894
    functionLinenumberEnd: 8894
    functionName: IOGRGeometryVisitor::~IOGRGeometryVisitor()
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGRGeometryVisitor::~IOGRGeometryVisitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8900
      start: 8900
    functionDepth: 0
    functionLinenumber: 8900
    functionLinenumberEnd: 8900
    functionName: IOGRConstGeometryVisitor::~IOGRConstGeometryVisitor()
    functionSourceFile: /src/gdal/ogr/ogrgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGRConstGeometryVisitor::~IOGRConstGeometryVisitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:49,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:50,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurveCollection
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: OGRCurveCollection::OGRCurveCollection
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRCurve **>
    - clone
    - VSI_CALLOC_VERBOSE
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::OGRCurveCollection(const OGRCurveCollection
      &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurveCollection
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: OGRCurveCollection::OGRCurveCollection
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::OGRCurveCollection(OGRCurveCollection &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::empty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: OGRCurveCollection::~OGRCurveCollection()
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - OGRCurveCollection::empty
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::~OGRCurveCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:107,1
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:112,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:113,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurveCollection
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: '&

      OGRCurveCollection::operator=(const OGRCurveCollection &other)'
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRCurve **>
    - clone
    - empty
    - VSI_MALLOC2_VERBOSE
    linkageType: ''
    returnType: OGRCurveCollection
    signature: 'OGRCurveCollection &

      OGRCurveCollection::operator=(const OGRCurveCollection &other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:141,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:142,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurveCollection
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: '&OGRCurveCollection::operator=(OGRCurveCollection &&other)'
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - swap
    - empty
    linkageType: ''
    returnType: OGRCurveCollection
    signature: OGRCurveCollection &OGRCurveCollection::operator=(OGRCurveCollection
      &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::WkbSize
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: OGRCurveCollection::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRCurveCollection::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::HomogenizeDimensionalityWith
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:171,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:176,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:177,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:179,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:185,1
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:190,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - poGeom
    - poCurve
    - bNeedRealloc
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    - int
    constantsTouched: []
    func_position:
      end: 202
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 202
    functionName: OGRCurveCollection::addCurveDirectly
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<int>
    - VSI_REALLOC_VERBOSE
    - OGRGeometry*::HomogenizeDimensionalityWith
    - CPLError
    - static_cast<OGRCurve **>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurveCollection::addCurveDirectly(OGRGeometry *poGeom,\n
      \                                           OGRCurve *poCurve, int bNeedRealloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::importPreambleOfCollectionFromWkb
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:215,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:221,1
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:225,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - poGeom
    - pabyData
    - nSize
    - nDataOffset
    - eByteOrder
    - nMinSubGeomSize
    - eWkbVariant
    argTypes:
    - OGRGeometry*
    - unsigned char*
    - size_t
    - size_t
    - OGRwkbByteOrder
    - size_t
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: OGRCurveCollection::importPreambleFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRCurve **>
    - CPLAssert
    - VSI_CALLOC_VERBOSE
    - OGRGeometry*::importPreambleOfCollectionFromWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurveCollection::importPreambleFromWkb(\n    OGRGeometry
      *poGeom, const unsigned char *pabyData, size_t &nSize,\n    size_t &nDataOffset,
      OGRwkbByteOrder &eByteOrder, size_t nMinSubGeomSize,\n    OGRwkbVariant eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:260,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:264,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:267,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:272,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:275,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:281,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:284,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:290,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:291,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:293,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:299,1
    - Dst: pfnAddCurveDirectlyFromWkb
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 6
    argNames:
    - poGeom
    - pabyData
    - nSize
    - bAcceptCompoundCurve
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - OGRGeometry*
    - unsigned char*
    - size_t
    - bool
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 311
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 311
    functionName: OGRCurveCollection::importBodyFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toCurve
    - static_cast<size_t>
    - pfnAddCurveDirectlyFromWkb
    - OGRGeometryFactory::createFromWkb
    - CPLDebug
    - CPLAssert
    - OGRReadWKBGeometryType
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurveCollection::importBodyFromWkb(\n    OGRGeometry *poGeom,
      const unsigned char *pabyData, size_t nSize,\n    bool bAcceptCompoundCurve,\n
      \   OGRErr (*pfnAddCurveDirectlyFromWkb)(OGRGeometry *poGeom,\n                                         OGRCurve
      *poCurve),\n    OGRwkbVariant eWkbVariant, size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:324,1
    - Dst: OGRGeometry*::wktTypeString
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:328,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:335,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:340,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:347,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:347,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:349,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:351,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:375,1
    - Dst: what
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:375,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:378,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - baseGeom
    - opts
    - err
    argTypes:
    - OGRGeometry*
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 380
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 380
    functionName: OGRCurveCollection::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - OGRGeometry*::exportToWkt
    - std::string::compare
    - strlen
    - OGRGeometry*::wktTypeString
    - std::string
    - CPLError
    - std::string::substr
    - OGRGeometry*::getGeometryName
    - what
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRCurveCollection::exportToWkt(const OGRGeometry *baseGeom,\n
      \                                           const OGRWktOptions &opts,\n                                            OGRErr
      *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:400,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:401,1
    - Dst: OGRGeometry*::getIsoGeometryType
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:407,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:411,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:417,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:420,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:422,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:425,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:430,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:433,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:437,1
    - Dst: OGRCurveCollection::exportToWkb
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:448,1
    - Dst: OGRCurveCollection::WkbSize
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - poGeom
    - pabyData
    - psOptions
    argTypes:
    - OGRGeometry*
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 454
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 454
    functionName: OGRCurveCollection::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::getIsoGeometryType
    - static_cast<unsigned char>
    - static_cast<OGRwkbGeometryType>
    - OGRCurveCollection::exportToWkb
    - OGR_SWAP
    - OGRCurveCollection::WkbSize
    - CPL_SWAP32
    - DB2_V72_UNFIX_BYTE_ORDER
    - wkbFlatten
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurveCollection::exportToWkb(const OGRGeometry *poGeom,\n
      \                               unsigned char *pabyData,\n                                const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:468,1
    - Dst: OGRGeometry*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 475
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 475
    functionName: OGRCurveCollection::empty
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - OGRGeometry*::setCoordinateDimension
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::empty(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::getEnvelope
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: OGRCurveCollection::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:500,1
    - Dst: OGRCurveCollection::IsEmpty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:503,1
    - Dst: OGRCurveCollection::getEnvelope
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:506,1
    - Dst: OGREnvelope3D*::Merge
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: OGRCurveCollection::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 2
    functionsReached:
    - OGREnvelope3D
    - OGRCurveCollection::IsEmpty
    - OGRCurveCollection::getEnvelope
    - OGREnvelope3D*::Merge
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::IsEmpty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 535
    functionName: OGRCurveCollection::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 2
    functionsReached:
    - OGRCurveCollection::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurveCollection::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::getNumCurves
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:543,1
    - Dst: OGRCurveCollection*::getNumCurves
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:543,1
    - Dst: OGRCurveCollection::getCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:550,1
    - Dst: OGRCurveCollection*::getCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOCC
    argTypes:
    - OGRCurveCollection*
    constantsTouched: []
    func_position:
      end: 555
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 555
    functionName: OGRCurveCollection::Equals
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - OGRCurveCollection::getCurve
    - OGRCurveCollection::getNumCurves
    - OGRCurveCollection*::getNumCurves
    - OGRCurveCollection*::getCurve
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurveCollection::Equals(const OGRCurveCollection *poOCC)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:566,1
    - Dst: OGRGeometry*::OGRGeometry::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - poGeom
    - nNewDimension
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: OGRCurveCollection::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::setCoordinateDimension
    - OGRGeometry*::OGRGeometry::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: "bool OGRCurveCollection::setCoordinateDimension(OGRGeometry *poGeom,\n
      \                                               int nNewDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::set3D
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:577,1
    - Dst: OGRGeometry*::OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - poGeom
    - bIs3D
    argTypes:
    - OGRGeometry*
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: OGRCurveCollection::set3D
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::OGRGeometry::set3D
    - OGRCurveCollection::set3D
    linkageType: ''
    returnType: bool
    signature: bool OGRCurveCollection::set3D(OGRGeometry *poGeom, OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::setMeasured
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:589,1
    - Dst: OGRGeometry*::OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - poGeom
    - bIsMeasured
    argTypes:
    - OGRGeometry*
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 594
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 594
    functionName: OGRCurveCollection::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::setMeasured
    - OGRGeometry*::OGRGeometry::setMeasured
    linkageType: ''
    returnType: bool
    signature: "bool OGRCurveCollection::setMeasured(OGRGeometry *poGeom,\n                                     OGRBoolean
      bIsMeasured)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:605,1
    - Dst: OGRGeometry*::OGRGeometry::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - poGeom
    - poSR
    argTypes:
    - OGRGeometry*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: OGRCurveCollection::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::OGRGeometry::assignSpatialReference
    - OGRCurveCollection::assignSpatialReference
    linkageType: ''
    returnType: void
    signature: "void OGRCurveCollection::assignSpatialReference(OGRGeometry *poGeom,\n
      \                                               const OGRSpatialReference *poSR)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: OGRCurveCollection::getNumCurves
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurveCollection::getNumCurves() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 628
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 628
    functionName: OGRCurveCollection::getCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurveCollection::getCurve(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: OGRCurveCollection::getCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurveCollection::getCurve(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 657
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 657
    functionName: OGRCurveCollection::stealCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurveCollection::stealCurve(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::transform
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:668,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:673,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:684,1
    - Dst: OGRCoordinateTransformation*::GetTargetCS
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - poGeom
    - poCT
    argTypes:
    - OGRGeometry*
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 687
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 687
    functionName: OGRCurveCollection::transform
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::transform
    - OGRGeometry*::assignSpatialReference
    - OGRCoordinateTransformation*::GetTargetCS
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurveCollection::transform(OGRGeometry *poGeom,\n                                     OGRCoordinateTransformation
      *poCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::flattenTo2D
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:697,1
    - Dst: OGRGeometry*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 701
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 701
    functionName: OGRCurveCollection::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::setCoordinateDimension
    - OGRCurveCollection::flattenTo2D
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::flattenTo2D(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::segmentize
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 715
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 715
    functionName: OGRCurveCollection::segmentize
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::segmentize
    linkageType: ''
    returnType: bool
    signature: bool OGRCurveCollection::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::swapXY
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: OGRCurveCollection::swapXY
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::swapXY
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::hasCurveGeometry
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: OGRCurveCollection::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurveCollection::hasCurveGeometry(int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::removeCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:774,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:781,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - iIndex
    - bDelete
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 787
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 787
    functionName: OGRCurveCollection::removeCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - memmove
    - OGRCurveCollection::removeCurve
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurveCollection::removeCurve(int iIndex, bool bDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::IsEmpty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:806,1
    - Dst: OGRCurveCollection::hasEmptyParts
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 810
    functionName: OGRCurveCollection::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::hasEmptyParts
    - OGRCurveCollection::IsEmpty
    linkageType: ''
    returnType: bool
    signature: bool OGRCurveCollection::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection::removeEmptyParts
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:825,1
    - Dst: OGRCurveCollection::IsEmpty
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:826,1
    - Dst: OGRCurveCollection::removeCurve
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 829
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 829
    functionName: OGRCurveCollection::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - OGRCurveCollection::removeEmptyParts
    - OGRCurveCollection::IsEmpty
    - OGRCurveCollection::removeCurve
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:848,1
    - Dst: OGRCurveCollection::reversePoints
      Src: /src/gdal/ogr/ogrcurvecollection.cpp:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 854
    functionName: OGRCurveCollection::reversePoints
    functionSourceFile: /src/gdal/ogr/ogrcurvecollection.cpp
    functionUses: 1
    functionsReached:
    - swap
    - OGRCurveCollection::reversePoints
    linkageType: ''
    returnType: void
    signature: void OGRCurveCollection::reversePoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:26,1
    - Dst: OGRESRIJSONReadPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:27,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:28,1
    - Dst: OGRESRIJSONReadLineString
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:29,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:30,1
    - Dst: OGRESRIJSONReadPolygon
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:31,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:32,1
    - Dst: OGRESRIJSONReadMultiPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: OGRESRIJSONReadGeometry
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRESRIJSONReadMultiPoint
    - OGRESRIJSONReadPoint
    - OGRESRIJSONReadLineString
    - OGRGeoJSONFindMemberByName
    - OGRESRIJSONReadPolygon
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRESRIJSONReadGeometry(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:52,1
    - Dst: OGRESRIJSONReadGeometry
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:55,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:58,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszJson
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: OGR_G_CreateGeometryFromEsriJson
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRESRIJSONReadGeometry
    - OGRJSonParse
    - ToHandle
    - json_object_put
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_CreateGeometryFromEsriJson(const char *pszJson)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:72,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:81,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: OGRESRIJSONGetGeometryType
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRGeoJSONFindMemberByName
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRESRIJSONGetGeometryType(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:102,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:105,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - poObjCoord
    - pszCoordName
    - bValid
    argTypes:
    - json_object*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: OGRESRIJSONGetCoordinateToDouble
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - json_object_get_double
    - json_object_to_json_string
    linkageType: ''
    returnType: double
    signature: "double OGRESRIJSONGetCoordinateToDouble(json_object *poObjCoord,\n
      \                                              const char *pszCoordName,\n                                               bool
      &bValid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:120,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:123,1
    - Dst: OGRESRIJSONGetCoordinateToDouble
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - poObj
    - pszCoordName
    - bValid
    argTypes:
    - json_object*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: OGRESRIJSONGetCoordinate
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRESRIJSONGetCoordinateToDouble
    - OGRGeoJSONFindMemberByName
    linkageType: ''
    returnType: double
    signature: "double OGRESRIJSONGetCoordinate(json_object *poObj,\n                                       const
      char *pszCoordName, bool &bValid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:140,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:148,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:150,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: OGRESRIJSONReadPoint
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint::OGRPoint
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *OGRESRIJSONReadPoint(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:165,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:171,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:174,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:176,1
    - Dst: json_object_get_boolean
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:176,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:181,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:184,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:186,1
    - Dst: json_object_get_boolean
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - poObj
    - bHasZ
    - bHasM
    argTypes:
    - json_object*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: OGRESRIJSONReaderParseZM
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_type
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - json_object_get_boolean
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRESRIJSONReaderParseZM(json_object *poObj, bool *bHasZ,\n                                     bool
      *bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:207,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:212,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:214,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:219,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:224,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:231,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:234,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:244,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:247,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:260,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:263,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:288,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:291,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:313,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 7
    argNames:
    - poObjCoords
    - bHasM
    - pdfX
    - pdfY
    - pdfZ
    - pdfM
    - pnNumCoords
    argTypes:
    - json_object*
    - bool
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 320
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 320
    functionName: OGRESRIJSONReaderParseXYZMArray
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - static_cast<int>
    - json_object_get_type
    - CPLDebug
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRESRIJSONReaderParseXYZMArray(json_object *poObjCoords,\n                                            bool
      /*bHasZ*/, bool bHasM,\n                                            double *pdfX,
      double *pdfY,\n                                            double *pdfZ, double
      *pdfM,\n                                            int *pnNumCoords)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:328,1
    - Dst: OGRESRIJSONReaderParseZM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:333,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:335,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:338,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:346,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:354,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:357,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:359,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:362,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:366,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:371,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:374,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:380,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:384,1
    - Dst: OGRESRIJSONReaderParseXYZMArray
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:389,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:399,1
    - Dst: OGRLineString*::addPointM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:403,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:407,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:411,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:417,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 420
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 420
    functionName: OGRESRIJSONReadLineString
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRLineString*::addPoint
    - OGRESRIJSONReaderParseXYZMArray
    - json_object_get_type
    - CPLDebug
    - OGRMultiLineString*::addGeometryDirectly
    - OGRLineString*::addPointM
    - CPLAssert
    - OGRESRIJSONReaderParseZM
    - OGRGeoJSONFindMemberByName
    - CPLError
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRESRIJSONReadLineString(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:428,1
    - Dst: OGRESRIJSONReaderParseZM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:433,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:435,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:438,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:446,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:452,1
    - Dst: OGRGeometry::OGRGeometry
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:453,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:456,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:458,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:463,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:467,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:468,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:471,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:475,1
    - Dst: OGRESRIJSONReaderParseXYZMArray
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:480,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:492,1
    - Dst: auto::addPointM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:496,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:500,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:504,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:507,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:507,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:510,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:511,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 515
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 515
    functionName: OGRESRIJSONReadPolygon
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - static_cast<int>
    - OGRGeometry::OGRGeometry
    - OGRESRIJSONReaderParseXYZMArray
    - auto::addPoint
    - OGRPolygon*::addRingDirectly
    - auto::release
    - json_object_get_type
    - CPLDebug
    - auto::addPointM
    - OGRGeometryFactory::organizePolygons
    - CPLAssert
    - OGRESRIJSONReaderParseZM
    - OGRGeoJSONFindMemberByName
    - CPLError
    - OGRPolygon::OGRPolygon
    - std::make_unique<OGRLinearRing>
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRESRIJSONReadPolygon(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:523,1
    - Dst: OGRESRIJSONReaderParseZM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:528,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:530,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:533,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:541,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:547,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:549,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:553,1
    - Dst: OGRESRIJSONReaderParseXYZMArray
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:558,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:567,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:567,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:571,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:572,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:573,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:577,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:577,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:581,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:581,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 586
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 586
    functionName: OGRESRIJSONReadMultiPoint
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRMultiPoint::OGRMultiPoint
    - OGRESRIJSONReaderParseXYZMArray
    - json_object_get_type
    - OGRMultiPoint*::addGeometryDirectly
    - OGRPoint*::setM
    - OGRPoint::OGRPoint
    - CPLAssert
    - OGRESRIJSONReaderParseZM
    - OGRGeoJSONFindMemberByName
    - CPLError
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint *OGRESRIJSONReadMultiPoint(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:600,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:604,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:606,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:609,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:614,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:615,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:616,1
    - Dst: OGRSpatialReference*::FindBestMatch
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:623,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:626,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:628,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:637,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:638,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogresrijsongeometry.cpp:639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 647
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 647
    functionName: OGRESRIJSONReadSpatialReference
    functionSourceFile: /src/gdal/ogr/ogresrijsongeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::FindBestMatch
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::importFromWkt
    - OGRSpatialReference*::Release
    - OGRGeoJSONFindMemberByName
    - OGRSpatialReference*::importFromEPSG
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRESRIJSONReadSpatialReference(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nValueIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(int nValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nValueIn
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(GIntBig nValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dfValueIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(double dfValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszValueIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(const char *pszValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached:
    - OGRGeometry*::clone
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eOp
    argTypes:
    - swq_op
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(swq_op eOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::reset
      Src: /src/gdal/ogr/swq_expr_node.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: swq_expr_node::~swq_expr_node()
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_node::reset
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::~swq_expr_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:112,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:114,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: swq_expr_node::reset
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_expr_node.cpp:157,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_expr_node.cpp:170,1
    - Dst: Equals
      Src: /src/gdal/ogr/swq_expr_node.cpp:183,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 37
    argCount: 1
    argNames:
    - other
    argTypes:
    - swq_expr_node
    constantsTouched: []
    func_position:
      end: 188
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 188
    functionName: swq_expr_node::operator==(const swq_expr_node &other) const
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - Equals
    linkageType: ''
    returnType: bool
    signature: bool swq_expr_node::operator==(const swq_expr_node &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - swq_expr_node
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(const swq_expr_node &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/swq_expr_node.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:214,1
    - Dst: PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:216,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:216,1
    - Dst: swq_expr_node::geometry_value::clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:221,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - other
    argTypes:
    - swq_expr_node
    constantsTouched: []
    func_position:
      end: 228
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 228
    functionName: '&swq_expr_node::operator=(const swq_expr_node &other)'
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - swq_expr_node::swq_expr_node
    - PushSubExpression
    - reset
    - swq_expr_node::geometry_value::clone
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node &swq_expr_node::operator=(const swq_expr_node &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - swq_expr_node
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: swq_expr_node::swq_expr_node
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::swq_expr_node(swq_expr_node &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/swq_expr_node.cpp:247,1
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:253,1
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:254,1
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:255,1
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:259,1
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - other
    argTypes:
    - swq_expr_node
    constantsTouched: []
    func_position:
      end: 265
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 265
    functionName: '&swq_expr_node::operator=(swq_expr_node &&other)'
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - swap
    - reset
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node &swq_expr_node::operator=(swq_expr_node &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:274,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: swq_expr_node::MarkAsTimestamp
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::MarkAsTimestamp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node **>
      Src: /src/gdal/ogr/swq_expr_node.cpp:287,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/swq_expr_node.cpp:288,1
    - Dst: max
      Src: /src/gdal/ogr/swq_expr_node.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - child
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: swq_expr_node::PushSubExpression
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<swq_expr_node **>
    - max
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::PushSubExpression(swq_expr_node *child)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/swq_expr_node.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: swq_expr_node::ReverseSubExpressions
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::ReverseSubExpressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/swq_expr_node.cpp:333,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:352,1
    - Dst: swq_custom_func_registrar*::GetOperator
      Src: /src/gdal/ogr/swq_expr_node.cpp:368,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_expr_node.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:378,1
    - Dst: swq_expr_node::Check
      Src: /src/gdal/ogr/swq_expr_node.cpp:389,1
    - Dst: swq_operation*::pfnChecker
      Src: /src/gdal/ogr/swq_expr_node.cpp:398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - poFieldList
    - bAllowFieldsInSecondaryTables
    - bAllowMismatchTypeOnFieldComparison
    - poCustomFuncRegistrar
    argTypes:
    - swq_field_list*
    - int
    - int
    - swq_custom_func_registrar*
    constantsTouched: []
    func_position:
      end: 401
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 401
    functionName: swq_expr_node::Check
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::Check
    - swq_operation*::pfnChecker
    - CPLError
    - swq_identify_field
    - swq_op_registrar::GetOperator
    - swq_custom_func_registrar*::GetOperator
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type swq_expr_node::Check(swq_field_list *poFieldList,\n
      \                    int bAllowFieldsInSecondaryTables,\n                     int
      bAllowMismatchTypeOnFieldComparison,\n                     swq_custom_func_registrar
      *poCustomFuncRegistrar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_expr_node.cpp:414,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:421,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:429,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:431,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:435,1
    - Dst: exportToWkt
      Src: /src/gdal/ogr/swq_expr_node.cpp:439,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:441,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:445,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:449,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_expr_node.cpp:451,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:453,1
    - Dst: fprintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:455,1
    - Dst: swq_expr_node::Dump
      Src: /src/gdal/ogr/swq_expr_node.cpp:458,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - fp
    - depth
    argTypes:
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 459
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 459
    functionName: swq_expr_node::Dump
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::Dump
    - static_cast<int>
    - fprintf
    - CPLAssert
    - exportToWkt
    - swq_op_registrar::GetOperator
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::Dump(FILE *fp, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::Quote
      Src: /src/gdal/ogr/swq_expr_node.cpp:471,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_expr_node.cpp:475,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:475,1
    - Dst: isalnum
      Src: /src/gdal/ogr/swq_expr_node.cpp:478,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq_expr_node.cpp:478,1
    - Dst: swq_expr_node::Quote
      Src: /src/gdal/ogr/swq_expr_node.cpp:481,1
    - Dst: swq_is_reserved_keyword
      Src: /src/gdal/ogr/swq_expr_node.cpp:485,1
    - Dst: swq_expr_node::Quote
      Src: /src/gdal/ogr/swq_expr_node.cpp:487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - osExpr
    - chQuote
    argTypes:
    - CPLString
    - char
    constantsTouched: []
    func_position:
      end: 491
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 491
    functionName: swq_expr_node::QuoteIfNecessary
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - swq_is_reserved_keyword
    - static_cast<unsigned char>
    - CPLString::size
    - swq_expr_node::Quote
    - isalnum
    linkageType: ''
    returnType: CPLString
    signature: CPLString swq_expr_node::QuoteIfNecessary(const CPLString &osExpr,
      char chQuote)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_expr_node.cpp:506,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - osTarget
    - chQuote
    argTypes:
    - CPLString
    - char
    constantsTouched: []
    func_position:
      end: 519
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 519
    functionName: swq_expr_node::Quote
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - CPLString::size
    - static_cast<int>
    linkageType: ''
    returnType: CPLString
    signature: CPLString swq_expr_node::Quote(const CPLString &osTarget, char chQuote)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:536,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:540,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:543,1
    - Dst: strchr
      Src: /src/gdal/ogr/swq_expr_node.cpp:546,1
    - Dst: strchr
      Src: /src/gdal/ogr/swq_expr_node.cpp:547,1
    - Dst: strchr
      Src: /src/gdal/ogr/swq_expr_node.cpp:548,1
    - Dst: swq_expr_node::Quote
      Src: /src/gdal/ogr/swq_expr_node.cpp:553,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:556,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:567,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:569,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:570,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:572,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:574,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:587,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:589,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:593,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:609,1
    - Dst: swq_expr_node::QuoteIfNecessary
      Src: /src/gdal/ogr/swq_expr_node.cpp:609,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/swq_expr_node.cpp:617,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:619,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq_expr_node.cpp:619,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:624,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/swq_expr_node.cpp:624,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/swq_expr_node.cpp:631,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:633,1
    - Dst: swq_expr_node::Unparse
      Src: /src/gdal/ogr/swq_expr_node.cpp:634,1
    - Dst: swq_expr_node::UnparseOperationFromUnparsedSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:636,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:642,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_expr_node.cpp:644,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/swq_expr_node.cpp:644,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 2
    argNames:
    - field_list
    - chColumnQuote
    argTypes:
    - swq_field_list*
    - char
    constantsTouched: []
    func_position:
      end: 645
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 645
    functionName: swq_expr_node::Unparse
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - CPLStrdup
    - swq_expr_node::QuoteIfNecessary
    - CPLString::Printf
    - CPLSPrintf
    - strchr
    - CPLString::c_str
    - swq_expr_node::UnparseOperationFromUnparsedSubExpr
    - swq_expr_node::Unparse
    - std::vector::reserve
    - swq_expr_node::Quote
    - CPLFree
    - CPLString::empty
    linkageType: ''
    returnType: char
    signature: char *swq_expr_node::Unparse(swq_field_list *field_list, char chColumnQuote)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_expr_node.cpp:658,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:662,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:699,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:700,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:704,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:709,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:714,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:716,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:720,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:721,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:726,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:732,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:738,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:739,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:743,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:745,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_expr_node.cpp:760,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:766,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:778,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq_expr_node.cpp:780,1
    - Dst: AddSubExpr
      Src: /src/gdal/ogr/swq_expr_node.cpp:785,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 102
    argCount: 1
    argNames:
    - apszSubExpr
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 792
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 792
    functionName: swq_expr_node::UnparseOperationFromUnparsedSubExpr
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - AddSubExpr
    - CPLString::Printf
    - EQUAL
    - CPLAssert
    - swq_op_registrar::GetOperator
    linkageType: ''
    returnType: CPLString
    signature: CPLString swq_expr_node::UnparseOperationFromUnparsedSubExpr(char **apszSubExpr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 801
    functionName: swq_expr_node::Clone
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_node::swq_expr_node
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node *swq_expr_node::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::Evaluate
      Src: /src/gdal/ogr/swq_expr_node.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pfnFetcher
    - pRecord
    - sContext
    argTypes:
    - swq_field_fetcher
    - void*
    - swq_evaluation_context
    constantsTouched: []
    func_position:
      end: 813
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 813
    functionName: swq_expr_node::Evaluate
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::Evaluate
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *swq_expr_node::Evaluate(swq_field_fetcher pfnFetcher,\n
      \                                      void *pRecord,\n                                       const
      swq_evaluation_context &sContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:824,1
    - Dst: swq_expr_node::Clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:834,1
    - Dst: pfnFetcher
      Src: /src/gdal/ogr/swq_expr_node.cpp:842,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/swq_expr_node.cpp:852,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:858,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:859,1
    - Dst: swq_expr_node::Evaluate
      Src: /src/gdal/ogr/swq_expr_node.cpp:863,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:869,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:870,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_expr_node.cpp:880,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:884,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_expr_node.cpp:889,1
    - Dst: swq_operation*::pfnEvaluator
      Src: /src/gdal/ogr/swq_expr_node.cpp:896,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_expr_node.cpp:902,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:902,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - pfnFetcher
    - pRecord
    - sContext
    - nRecLevel
    argTypes:
    - swq_field_fetcher
    - void*
    - swq_evaluation_context
    - int
    constantsTouched: []
    func_position:
      end: 910
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 910
    functionName: swq_expr_node::Evaluate
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - static_cast<int>
    - pfnFetcher
    - std::vector::size
    - swq_expr_node::Clone
    - swq_operation*::pfnEvaluator
    - CPLError
    - swq_op_registrar::GetOperator
    - std::vector::reserve
    - swq_expr_node::Evaluate
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *swq_expr_node::Evaluate(swq_field_fetcher pfnFetcher,\n
      \                                      void *pRecord,\n                                       const
      swq_evaluation_context &sContext,\n                                       int
      nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/swq_expr_node.cpp:924,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:937,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:938,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:939,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:940,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:941,1
    - Dst: swq_expr_node*::Clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:941,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 943
    functionName: swq_expr_node::ReplaceBetweenByGEAndLERecurse
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::swq_expr_node
    - swq_expr_node*::Clone
    - swq_expr_node::PushSubExpression
    - swq_expr_node::ReplaceBetweenByGEAndLERecurse
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::ReplaceBetweenByGEAndLERecurse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::ReplaceInByOrRecurse
      Src: /src/gdal/ogr/swq_expr_node.cpp:957,1
    - Dst: swq_expr_node::Clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:962,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:965,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:966,1
    - Dst: swq_expr_node*::Clone
      Src: /src/gdal/ogr/swq_expr_node.cpp:966,1
    - Dst: swq_expr_node::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:967,1
    - Dst: swq_expr_node::RebalanceAndOr
      Src: /src/gdal/ogr/swq_expr_node.cpp:972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 973
    functionName: swq_expr_node::ReplaceInByOrRecurse
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::RebalanceAndOr
    - swq_expr_node::swq_expr_node
    - swq_expr_node::Clone
    - swq_expr_node::ReplaceInByOrRecurse
    - swq_expr_node::PushSubExpression
    - swq_expr_node*::Clone
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::ReplaceInByOrRecurse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::queue::push
      Src: /src/gdal/ogr/swq_expr_node.cpp:982,1
    - Dst: std::queue::empty
      Src: /src/gdal/ogr/swq_expr_node.cpp:983,1
    - Dst: std::queue::front
      Src: /src/gdal/ogr/swq_expr_node.cpp:985,1
    - Dst: std::queue::pop
      Src: /src/gdal/ogr/swq_expr_node.cpp:986,1
    - Dst: swq_expr_node::RebalanceAndOr
      Src: /src/gdal/ogr/swq_expr_node.cpp:995,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:996,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq_expr_node.cpp:999,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:1005,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:1007,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:1009,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1011,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1012,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:1014,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/swq_expr_node.cpp:1018,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1021,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq_expr_node.cpp:1023,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/swq_expr_node.cpp:1023,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1024,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1025,1
    - Dst: std::queue::push
      Src: /src/gdal/ogr/swq_expr_node.cpp:1031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 1036
    functionName: swq_expr_node::RebalanceAndOr
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 2
    functionsReached:
    - std::queue::empty
    - swq_expr_node::RebalanceAndOr
    - swq_expr_node*::PushSubExpression
    - std::queue::push
    - std::queue::front
    - std::queue::pop
    - std::vector::size
    - swq_expr_node::swq_expr_node
    - CPLAssert
    - std::move
    - std::vector::push_back
    - auto::PushSubExpression
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::RebalanceAndOr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::PushNotOperationDownToStack
      Src: /src/gdal/ogr/swq_expr_node.cpp:1062,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1064,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:1073,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1074,1
    - Dst: auto::PushNotOperationDownToStack
      Src: /src/gdal/ogr/swq_expr_node.cpp:1075,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1081,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_expr_node.cpp:1090,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq_expr_node.cpp:1091,1
    - Dst: auto::PushNotOperationDownToStack
      Src: /src/gdal/ogr/swq_expr_node.cpp:1092,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1098,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1108,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1117,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1126,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1135,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1144,1
    - Dst: std::move
      Src: /src/gdal/ogr/swq_expr_node.cpp:1153,1
    - Dst: swq_expr_node::PushNotOperationDownToStack
      Src: /src/gdal/ogr/swq_expr_node.cpp:1160,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1161
    functionName: swq_expr_node::PushNotOperationDownToStack
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 1
    functionsReached:
    - swq_expr_node::PushNotOperationDownToStack
    - swq_expr_node::swq_expr_node
    - std::move
    - auto::PushNotOperationDownToStack
    - auto::PushSubExpression
    linkageType: ''
    returnType: void
    signature: void swq_expr_node::PushNotOperationDownToStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1170
    functionName: swq_expr_node::HasReachedMaxDepth
    functionSourceFile: /src/gdal/ogr/swq_expr_node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool swq_expr_node::HasReachedMaxDepth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/gdal/ogr/ogr_geocoding.cpp:54,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogr_geocoding.cpp:58,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogr_geocoding.cpp:61,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogr_geocoding.cpp:62,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogr_geocoding.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: OGR_gettimeofday
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - static_cast<long>
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: int
    signature: "int OGR_gettimeofday(struct timeval *tv,\n                            struct
      timezone * /* tzIgnored */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_geocoding.cpp:137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_geocoding.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - papszOptions
    - pszKey
    - pszDefaultValue
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: OGRGeocodeGetParameter
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *OGRGeocodeGetParameter(char **papszOptions,\n                                          const
      char *pszKey,\n                                          const char *pszDefaultValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pszQueryTemplate
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 179
    functionName: OGRGeocodeHasStringValidFormat
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeocodeHasStringValidFormat(const char *pszQueryTemplate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGeocodingSessionH>
      Src: /src/gdal/ogr/ogr_geocoding.cpp:239,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogr_geocoding.cpp:240,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogr_geocoding.cpp:244,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_geocoding.cpp:245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:246,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:248,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogr_geocoding.cpp:250,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:253,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr_geocoding.cpp:256,1
    - Dst: OGRGeocodeGetParameter
      Src: /src/gdal/ogr/ogr_geocoding.cpp:256,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr_geocoding.cpp:257,1
    - Dst: OGRGeocodeGetParameter
      Src: /src/gdal/ogr/ogr_geocoding.cpp:258,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:262,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:266,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:270,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:275,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:277,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogr_geocoding.cpp:279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:282,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:284,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogr_geocoding.cpp:286,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:292,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:296,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:301,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:304,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:308,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:310,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:312,1
    - Dst: OGRGeocodeHasStringValidFormat
      Src: /src/gdal/ogr/ogr_geocoding.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:320,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogr_geocoding.cpp:322,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:327,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:330,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:332,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:336,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:338,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:344,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:347,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogr_geocoding.cpp:349,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:354,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 358
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 358
    functionName: OGRGeocodeCreateSession
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLTestBool
    - CPLStrdup
    - OGRGeocodeDestroySession
    - CPLAtofM
    - OGRGeocodeHasStringValidFormat
    - EQUAL
    - static_cast<OGRGeocodingSessionH>
    - strstr
    - CPLError
    - CPLCalloc
    - OGRGeocodeGetParameter
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: OGRGeocodingSessionH
    signature: OGRGeocodingSessionH OGRGeocodeCreateSession(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:375,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:376,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:377,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:378,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:379,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:380,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:381,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:382,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:383,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - OGRGeocodingSessionH
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: OGRGeocodeDestroySession
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGeocodeDestroySession(OGRGeocodingSessionH hSession)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogr_geocoding.cpp:398,1
    - Dst: GDALGetDriverCount
      Src: /src/gdal/ogr/ogr_geocoding.cpp:402,1
    - Dst: GDALAllRegister
      Src: /src/gdal/ogr/ogr_geocoding.cpp:403,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_geocoding.cpp:407,1
    - Dst: CPLSetThreadLocalConfigOption
      Src: /src/gdal/ogr/ogr_geocoding.cpp:409,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogr_geocoding.cpp:411,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:415,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogr_geocoding.cpp:417,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:422,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:423,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_geocoding.cpp:424,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_geocoding.cpp:431,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogr_geocoding.cpp:433,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:435,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:437,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:438,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_geocoding.cpp:439,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogr_geocoding.cpp:442,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:447,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogr_geocoding.cpp:450,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogr_geocoding.cpp:453,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:457,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:457,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:459,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:461,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogr_geocoding.cpp:461,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_geocoding.cpp:461,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:462,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_geocoding.cpp:463,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogr_geocoding.cpp:465,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_geocoding.cpp:469,1
    - Dst: CPLSetThreadLocalConfigOption
      Src: /src/gdal/ogr/ogr_geocoding.cpp:473,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:474,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogr_geocoding.cpp:482,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogr_geocoding.cpp:483,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogr_geocoding.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:489,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogr_geocoding.cpp:492,1
    - Dst: GDALDataset*::CreateLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:495,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_geocoding.cpp:496,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:501,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:503,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:504,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_geocoding.cpp:505,1
    - Dst: GDALDataset*::ExecuteSQL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:510,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:517,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:518,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 3
    argNames:
    - hSession
    - bCreateIfNecessary
    - pnIdxBlob
    argTypes:
    - OGRGeocodingSessionH
    - bool
    - int*
    constantsTouched: []
    func_position:
      end: 527
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 527
    functionName: OGRGeocodeGetCacheLayer
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - GDALDataset*::GetLayerByName
    - auto::Create
    - std::string::c_str
    - CPLGetConfigOption
    - GDALAllRegister
    - CPLGetExtensionSafe
    - GDALDataset*::ExecuteSQL
    - CPLStrdup
    - GDALGetDriverCount
    - GetGDALDriverManager
    - CPLSetThreadLocalConfigOption
    - OGRAPISpyOpen
    - CPLString::c_str
    - CPLPopErrorHandler
    - OGRLayer*::GetLayerDefn
    - STARTS_WITH_CI
    - GDALDataset*::CreateLayer
    - OGRLayer*::CreateField
    - CPLSPrintf
    - CPLFree
    - CSLDestroy
    - EQUAL
    - CSLAddNameValue
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRGeocodeGetCacheLayer(OGRGeocodingSessionH hSession,\n
      \                                        bool bCreateIfNecessary,\n                                         int
      *pnIdxBlob)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_geocoding.cpp:536,1
    - Dst: OGRGeocodeGetCacheLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:539,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogr_geocoding.cpp:544,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_geocoding.cpp:545,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:546,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:549,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogr_geocoding.cpp:552,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_geocoding.cpp:553,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogr_geocoding.cpp:553,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - hSession
    - pszURL
    argTypes:
    - OGRGeocodingSessionH
    - char*
    constantsTouched: []
    func_position:
      end: 558
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 558
    functionName: OGRGeocodeGetFromCache
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - CPLStrdup
    - CPLMutexHolderD
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - CPLSPrintf
    - OGRLayer*::SetAttributeFilter
    - OGRGeocodeGetCacheLayer
    - OGRFeature::DestroyFeature
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *OGRGeocodeGetFromCache(OGRGeocodingSessionH hSession,\n                                    const
      char *pszURL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_geocoding.cpp:567,1
    - Dst: OGRGeocodeGetCacheLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:570,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:574,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:574,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:575,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pszURL
    - pszContent
    argTypes:
    - OGRGeocodingSessionH
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 581
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 581
    functionName: OGRGeocodePutIntoCache
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeGetCacheLayer
    - CPLMutexHolderD
    - OGRFeature*::SetField
    - OGRLayer*::GetLayerDefn
    - OGRFeature::OGRFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeocodePutIntoCache(OGRGeocodingSessionH hSession,\n                                   const
      char *pszURL, const char *pszContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:589,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:590,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:592,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:593,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:594,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:595,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:595,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pszContent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 598
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 598
    functionName: OGRGeocodeMakeRawLayer
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer*::CreateFeature
    - OGRMemLayer*::GetLayerDefn
    - ToHandle
    - OGRMemLayer::OGRMemLayer
    - OGRMemLayer*::CreateField
    - CPL_IGNORE_RET_VAL
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    linkageType: ''
    returnType: OGRLayerH
    signature: OGRLayerH OGRGeocodeMakeRawLayer(const char *pszContent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:608,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:609,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:616,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:617,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:625,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:626,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:629,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:631,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:633,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:635,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:637,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:638,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:640,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:642,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:653,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:660,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:661,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:669,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:687,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:688,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:691,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:693,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:694,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:697,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:701,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogr_geocoding.cpp:706,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogr_geocoding.cpp:709,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:721,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:722,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogr_geocoding.cpp:727,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogr_geocoding.cpp:729,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr_geocoding.cpp:729,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:731,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:731,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:736,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 66
    argCount: 2
    argNames:
    - psSearchResults
    - bAddRawFeature
    argTypes:
    - CPLXMLNode*
    - bool
    constantsTouched: []
    func_position:
      end: 737
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 737
    functionName: OGRGeocodeBuildLayerNominatim
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer*::CreateFeature
    - OGRMemLayer*::GetLayerDefn
    - CPLFree
    - CPLAtofM
    - ToHandle
    - OGRFeatureDefn*::GetFieldIndex
    - OGRFieldDefn::SetType
    - OGRMemLayer::OGRMemLayer
    - strcmp
    - OGRMemLayer*::CreateField
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - OGRPoint::OGRPoint
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeBuildLayerNominatim(CPLXMLNode *psSearchResults,\n
      \                                              const char * /* pszContent */,\n
      \                                              const bool bAddRawFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:746,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:748,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:754,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:755,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:770,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:773,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:778,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:780,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:782,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:787,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:789,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:791,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:798,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:807,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:810,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:818,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:822,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:831,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:834,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:841,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_geocoding.cpp:848,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:851,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:854,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:861,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogr_geocoding.cpp:866,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogr_geocoding.cpp:867,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr_geocoding.cpp:867,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:869,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:869,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:872,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 3
    argNames:
    - psReverseGeocode
    - pszContent
    - bAddRawFeature
    argTypes:
    - CPLXMLNode*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 873
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 873
    functionName: OGRGeocodeReverseBuildLayerNominatim
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer*::CreateFeature
    - OGRMemLayer*::GetLayerDefn
    - CPLGetXMLNode
    - CPLAtofM
    - ToHandle
    - OGRFeatureDefn*::GetFieldIndex
    - OGRMemLayer::OGRMemLayer
    - OGRFieldDefn::SetType
    - strcmp
    - OGRMemLayer*::CreateField
    - OGRPoint::OGRPoint
    - OGRFeature*::SetField
    - CPL_IGNORE_RET_VAL
    - CPLGetXMLValue
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeReverseBuildLayerNominatim(\n    CPLXMLNode *psReverseGeocode,
      const char *pszContent, bool bAddRawFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:883,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:884,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:891,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:899,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:902,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:904,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:906,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:908,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:910,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:920,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:925,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:932,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:940,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:957,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:958,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:961,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:963,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:966,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogr_geocoding.cpp:979,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_geocoding.cpp:981,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogr_geocoding.cpp:983,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:986,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:986,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:995,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:996,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1001,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1001,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1003,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1003,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1008,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 67
    argCount: 2
    argNames:
    - psResultSet
    - bAddRawFeature
    argTypes:
    - CPLXMLNode*
    - bool
    constantsTouched: []
    func_position:
      end: 1009
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 1009
    functionName: OGRGeocodeBuildLayerYahoo
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - CPLAtofM
    - OGRFeature*::GetFieldAsString
    - OGRFeatureDefn*::GetFieldIndex
    - strcmp
    - OGRMemLayer*::CreateField
    - CPLString::empty
    - ToHandle
    - OGRMemLayer::OGRMemLayer
    - CPLString::c_str
    - OGRPoint::OGRPoint
    - OGRFeature*::SetGeometryDirectly
    - OGRMemLayer*::CreateFeature
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRMemLayer*::GetLayerDefn
    - OGRFieldDefn::SetType
    - OGRFeature*::SetField
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeBuildLayerYahoo(CPLXMLNode *psResultSet,\n                                           const
      char * /* pszContent */,\n                                           bool bAddRawFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1020,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1024,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1025,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1032,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1040,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1041,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1042,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1053,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1056,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1058,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1060,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1062,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1064,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1072,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1084,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1092,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1099,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1115,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1117,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1118,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1126,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1135,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1136,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1139,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1141,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1144,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1160,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1161,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1166,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1166,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1168,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1168,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1174,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 80
    argCount: 2
    argNames:
    - psResponse
    - bAddRawFeature
    argTypes:
    - CPLXMLNode*
    - bool
    constantsTouched: []
    func_position:
      end: 1175
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1175
    functionName: OGRGeocodeBuildLayerBing
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer*::CreateFeature
    - OGRMemLayer*::GetLayerDefn
    - OGRFeature*::SetGeometryDirectly
    - CPLGetXMLNode
    - CPLAtofM
    - ToHandle
    - OGRFeatureDefn*::GetFieldIndex
    - OGRMemLayer::OGRMemLayer
    - OGRFieldDefn::SetType
    - strcmp
    - OGRMemLayer*::CreateField
    - OGRPoint::OGRPoint
    - OGRFeature*::SetField
    - CPL_IGNORE_RET_VAL
    - CPLGetXMLValue
    - OGRFeature::OGRFeature
    - CPLFree
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeBuildLayerBing(CPLXMLNode *psResponse,\n                                          const
      char * /* pszContent */,\n                                          bool bAddRawFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1185,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1193,1
    - Dst: OGRGeocodeBuildLayerNominatim
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1195,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1198,1
    - Dst: OGRGeocodeReverseBuildLayerNominatim
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1199,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1201,1
    - Dst: OGRGeocodeBuildLayerNominatim
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1203,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1205,1
    - Dst: OGRGeocodeBuildLayerYahoo
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1207,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1209,1
    - Dst: OGRGeocodeBuildLayerBing
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1211,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1213,1
    - Dst: OGRGeocodeMakeRawLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - pszContent
    - bAddRawFeature
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1218
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1218
    functionName: OGRGeocodeBuildLayer
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeBuildLayerNominatim
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - OGRGeocodeMakeRawLayer
    - OGRGeocodeReverseBuildLayerNominatim
    - CPLSearchXMLNode
    - OGRGeocodeBuildLayerBing
    - OGRGeocodeBuildLayerYahoo
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeBuildLayer(const char *pszContent,\n                                      bool
      bAddRawFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1246,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1254,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1260,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1262,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1268,1
    - Dst: OGRGeocodeGetFromCache
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1278,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1284,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1300,1
    - Dst: gettimeofday
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1303,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1308,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1312,1
    - Dst: gettimeofday
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1314,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1319,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1322,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1327,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1328,1
    - Dst: OGRGeocodePutIntoCache
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1339,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1339,1
    - Dst: OGRGeocodeBuildLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1341,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1343,1
    - Dst: OGRGeocodeBuildLayer
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1348,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1349,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 3
    argNames:
    - hSession
    - osURLIn
    - papszOptions
    argTypes:
    - OGRGeocodingSessionH
    - std::string
    - char**
    constantsTouched: []
    func_position:
      end: 1353
      start: 1224
    functionDepth: 4
    functionLinenumber: 1224
    functionLinenumberEnd: 1353
    functionName: OGRGeocodeCommon
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeBuildLayer
    - CPLSleep
    - CPLHTTPDestroyResult
    - CPLMutexHolderD
    - gettimeofday
    - CPLHTTPFetch
    - CSLDestroy
    - EQUAL
    - CPLString::c_str
    - OGRGeocodeGetFromCache
    - CPLError
    - std::string::c_str
    - CPLFree
    - OGRGeocodePutIntoCache
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeCommon(OGRGeocodingSessionH hSession,\n                                  const
      std::string &osURLIn,\n                                  char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1412,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1416,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1423,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1430,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1446,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1449,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1450,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1453,1
    - Dst: OGRGeocodeCommon
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1478,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - hSession
    - pszQuery
    - papszStructuredQuery
    - papszOptions
    argTypes:
    - OGRGeocodingSessionH
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1479
      start: 1409
    functionDepth: 5
    functionLinenumber: 1409
    functionLinenumberEnd: 1479
    functionName: OGRGeocode
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeCommon
    - std::string::assign
    - EQUAL
    - strlen
    - VALIDATE_POINTER1
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocode(OGRGeocodingSessionH hSession, const char *pszQuery,\n
      \                    char **papszStructuredQuery, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1491,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1492,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1493,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1497,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1500,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1501,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - osURL
    - dfLon
    - dfLat
    argTypes:
    - CPLString
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1507
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1507
    functionName: OGRGeocodeReverseSubstitute
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find
    - CPLSPrintf
    - CPLString::substr
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeocodeReverseSubstitute(CPLString osURL, double dfLon,\n
      \                                            double dfLat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1559,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1563,1
    - Dst: OGRGeocodeReverseSubstitute
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1571,1
    - Dst: OGRGeocodeCommon
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - hSession
    - dfLon
    - dfLat
    - papszOptions
    argTypes:
    - OGRGeocodingSessionH
    - double
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 1583
      start: 1556
    functionDepth: 5
    functionLinenumber: 1556
    functionLinenumberEnd: 1583
    functionName: OGRGeocodeReverse
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeCommon
    - EQUAL
    - OGRGeocodeReverseSubstitute
    - VALIDATE_POINTER1
    - CPLError
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGRGeocodeReverse(OGRGeocodingSessionH hSession, double
      dfLon,\n                            double dfLat, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_geocoding.cpp:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1600
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1600
    functionName: OGRGeocodeFreeResult
    functionSourceFile: /src/gdal/ogr/ogr_geocoding.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGRGeocodeFreeResult(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/swq.cpp:51,1
    - Dst: min
      Src: /src/gdal/ogr/swq.cpp:59,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq.cpp:63,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/swq.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - swq_parse_context*
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: swqerror
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - min
    - CPLString::c_str
    - CPLString::Printf
    - CPLError
    linkageType: ''
    returnType: void
    signature: void swqerror(swq_parse_context *context, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/swq.cpp:144,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq.cpp:146,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:150,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq.cpp:151,1
    - Dst: strstr
      Src: /src/gdal/ogr/swq.cpp:192,1
    - Dst: strstr
      Src: /src/gdal/ogr/swq.cpp:192,1
    - Dst: strstr
      Src: /src/gdal/ogr/swq.cpp:193,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/swq.cpp:195,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:195,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq.cpp:200,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/swq.cpp:201,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/swq.cpp:203,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:203,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq.cpp:205,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/swq.cpp:209,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/swq.cpp:210,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq.cpp:211,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:211,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:213,1
    - Dst: isalnum
      Src: /src/gdal/ogr/swq.cpp:221,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq.cpp:221,1
    - Dst: isalnum
      Src: /src/gdal/ogr/swq.cpp:230,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq.cpp:230,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/swq.cpp:231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:240,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:244,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:246,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:248,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:254,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:256,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:260,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:262,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:264,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:268,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:270,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:274,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:276,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:284,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:286,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:290,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:292,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:294,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:301,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:301,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:306,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 151
    argCount: 2
    argNames:
    - ppNode
    - context
    argTypes:
    - YYSTYPE*
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 321
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 321
    functionName: swqlex
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - static_cast<int>
    - CPLStrdup
    - static_cast<unsigned char>
    - CPL_INT64_FITS_ON_INT32
    - CPLAtoGIntBig
    - swq_expr_node::swq_expr_node
    - EQUAL
    - CPLString::size
    - strstr
    - CPLError
    - CPLFree
    - isalnum
    linkageType: ''
    returnType: int
    signature: int swqlex(YYSTYPE *ppNode, swq_parse_context *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq.cpp:338,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/swq.cpp:338,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/swq.cpp:360,1
    - Dst: swq_select*::column_summary::resize
      Src: /src/gdal/ogr/swq.cpp:362,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/swq.cpp:362,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/swq.cpp:363,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq.cpp:370,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq.cpp:371,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/swq.cpp:371,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/swq.cpp:373,1
    - Dst: std::set<CPLString, swq_summary::Comparator>
      Src: /src/gdal/ogr/swq.cpp:389,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/swq.cpp:392,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/swq.cpp:394,1
    - Dst: assert
      Src: /src/gdal/ogr/swq.cpp:398,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/swq.cpp:398,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/swq.cpp:412,1
    - Dst: swq_summary::oSetDistinctValues::insert
      Src: /src/gdal/ogr/swq.cpp:414,1
    - Dst: swq_summary::oVectorDistinctValues::emplace_back
      Src: /src/gdal/ogr/swq.cpp:418,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq.cpp:446,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq.cpp:462,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/swq.cpp:482,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/swq.cpp:484,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/swq.cpp:484,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq.cpp:509,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq.cpp:518,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/swq.cpp:520,1
    - Dst: fmod
      Src: /src/gdal/ogr/swq.cpp:522,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq.cpp:522,1
    - Dst: UpdateVariance
      Src: /src/gdal/ogr/swq.cpp:554,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/swq.cpp:563,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq.cpp:572,1
    - Dst: UpdateVariance
      Src: /src/gdal/ogr/swq.cpp:574,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq.cpp:574,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/swq.cpp:575,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 151
    argCount: 4
    argNames:
    - select_info
    - dest_column
    - pszValue
    - pdfValue
    argTypes:
    - swq_select*
    - int
    - char*
    - double*
    constantsTouched: []
    func_position:
      end: 596
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 596
    functionName: swq_select_summarize
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - assert
    - swq_summary::oSetDistinctValues::insert
    - strcmp
    - std::fabs
    - cpl::contains
    - CPL_TO_BOOL
    - fmod
    - swq_select*::column_defs::size
    - static_cast<int>
    - swq_summary::oVectorDistinctValues::emplace_back
    - CPLAssert
    - UpdateVariance
    - static_cast<double>
    - swq_select*::column_summary::resize
    - std::isfinite
    - swq_select*::column_summary::empty
    - std::set<CPLString, swq_summary::Comparator>
    - CPLYMDHMSToUnixTime
    - OGRParseDate
    linkageType: ''
    returnType: char
    signature: "char *swq_select_summarize(swq_select *select_info, int dest_column,\n
      \                                const char *pszValue, const double *pdfValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/swq.cpp:612,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/swq.cpp:612,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/swq.cpp:614,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/swq.cpp:614,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/swq.cpp:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - eType
    - a
    - b
    argTypes:
    - swq_field_type
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 623
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 623
    functionName: Compare
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLAssert
    - CPLAtoGIntBig
    linkageType: ''
    returnType: bool
    signature: "bool Compare(swq_field_type eType, const CPLString &a,\n                    const
      CPLString &b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/gdal/ogr/swq.cpp:631,1
    - Dst: Compare
      Src: /src/gdal/ogr/swq.cpp:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 637
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 637
    functionName: "swq_summary::Comparator::operator()(const CPLString &a,\n                                         const
      CPLString &b) const"
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: "bool swq_summary::Comparator::operator()(const CPLString &a,\n                                         const
      CPLString &b) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_identify_field_internal
      Src: /src/gdal/ogr/swq.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - table_name
    - field_token
    - field_list
    - this_type
    - table_id
    argTypes:
    - char*
    - char*
    - swq_field_list*
    - swq_field_type*
    - int*
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: swq_identify_field
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 2
    functionsReached:
    - swq_identify_field_internal
    linkageType: ''
    returnType: int
    signature: "int swq_identify_field(const char *table_name, const char *field_token,\n
      \                      swq_field_list *field_list, swq_field_type *this_type,\n
      \                      int *table_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/swq.cpp:680,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:681,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:693,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/swq.cpp:726,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/swq.cpp:726,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/swq.cpp:731,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq.cpp:753,1
    - Dst: strchr
      Src: /src/gdal/ogr/swq.cpp:768,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/swq.cpp:771,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq.cpp:779,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 59
    argCount: 6
    argNames:
    - table_name
    - field_token
    - field_list
    - this_type
    - table_id
    - bOneMoreTimeOK
    argTypes:
    - char*
    - char*
    - swq_field_list*
    - swq_field_type*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 800
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 800
    functionName: swq_identify_field_internal
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - CPLSPrintf
    - EQUAL
    - strchr
    - strcmp
    - CPLError
    - CPLString::resize
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: "int swq_identify_field_internal(const char *table_name, const char
      *field_token,\n                                swq_field_list *field_list,\n
      \                               swq_field_type *this_type, int *table_id,\n
      \                               int bOneMoreTimeOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_compile2
      Src: /src/gdal/ogr/swq.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - where_clause
    - field_count
    - field_names
    - field_types
    - bCheck
    - poCustomFuncRegistrar
    - expr_out
    argTypes:
    - char*
    - int
    - char**
    - swq_field_type*
    - int
    - swq_custom_func_registrar*
    - swq_expr_node**
    constantsTouched: []
    func_position:
      end: 826
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 826
    functionName: swq_expr_compile
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_compile2
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr swq_expr_compile(const char *where_clause, int field_count,\n
      \                       char **field_names, swq_field_type *field_types,\n                        int
      bCheck,\n                        swq_custom_func_registrar *poCustomFuncRegistrar,\n
      \                       swq_expr_node **expr_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_parse_context*::poRoot::RebalanceAndOr
      Src: /src/gdal/ogr/swq.cpp:836,1
    - Dst: auto::where_expr::RebalanceAndOr
      Src: /src/gdal/ogr/swq.cpp:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - psParseContext
    argTypes:
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 847
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 847
    functionName: swq_fixup
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 1
    functionsReached:
    - swq_parse_context*::poRoot::RebalanceAndOr
    - auto::where_expr::RebalanceAndOr
    linkageType: ''
    returnType: void
    signature: void swq_fixup(swq_parse_context *psParseContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq.cpp:856,1
    - Dst: static_cast<swq_expr_node **>
      Src: /src/gdal/ogr/swq.cpp:865,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/swq.cpp:866,1
    - Dst: memcpy
      Src: /src/gdal/ogr/swq.cpp:868,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/swq.cpp:873,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq.cpp:881,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq.cpp:893,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq.cpp:901,1
    - Dst: auto::PushSubExpression
      Src: /src/gdal/ogr/swq.cpp:902,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - op
    - left
    - right
    argTypes:
    - swq_op
    - swq_expr_node*
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 906
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 906
    functionName: swq_create_and_or_or
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_expr_node **>
    - swq_expr_node::swq_expr_node
    - CPLRealloc
    - auto::PushSubExpression
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *swq_create_and_or_or(swq_op op, swq_expr_node *left,\n
      \                                   swq_expr_node *right)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swqparse
      Src: /src/gdal/ogr/swq.cpp:926,1
    - Dst: swq_parse_context::poRoot::Check
      Src: /src/gdal/ogr/swq.cpp:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - where_clause
    - field_list
    - bCheck
    - poCustomFuncRegistrar
    - expr_out
    argTypes:
    - char*
    - swq_field_list*
    - int
    - swq_custom_func_registrar*
    - swq_expr_node**
    constantsTouched: []
    func_position:
      end: 940
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 940
    functionName: swq_expr_compile2
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 1
    functionsReached:
    - swqparse
    - swq_parse_context::poRoot::Check
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr swq_expr_compile2(const char *where_clause, swq_field_list
      *field_list,\n                         int bCheck,\n                         swq_custom_func_registrar
      *poCustomFuncRegistrar,\n                         swq_expr_node **expr_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 959
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 959
    functionName: swq_is_reserved_keyword
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int swq_is_reserved_keyword(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - field_type
    argTypes:
    - swq_field_type
    constantsTouched: []
    func_position:
      end: 992
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 992
    functionName: SWQFieldTypeToString
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SWQFieldTypeToString(swq_field_type field_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 996
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 996
    functionName: swq_custom_func_registrar::~swq_custom_func_registrar()
    functionSourceFile: /src/gdal/ogr/swq.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swq_custom_func_registrar::~swq_custom_func_registrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:48,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:49,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: OGRFeatureDefn::OGRFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRGeomFieldDefn>
    - CPLStrdup
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::OGRFeatureDefn(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:73,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: OGR_FD_Create
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::OGRFeatureDefn
    - ToHandle
    linkageType: ''
    returnType: OGRFeatureDefnH
    signature: OGRFeatureDefnH OGR_FD_Create(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:85,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: OGRFeatureDefn::~OGRFeatureDefn()
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::~OGRFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: OGR_FD_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_Destroy(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: OGRFeatureDefn::Release
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - Dereference
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: OGR_FD_Release
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_Release(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetName
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:165,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:165,1
    - Dst: OGRFeatureDefn*::apoFieldDefn::reserve
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:169,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:171,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:171,1
    - Dst: OGRFeatureDefn*::DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:176,1
    - Dst: OGRFeatureDefn*::apoGeomFieldDefn::reserve
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:178,1
    - Dst: OGRFeatureDefn*::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:180,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 184
    functionName: OGRFeatureDefn::Clone
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn::GetName
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFeatureDefn*::DeleteGeomFieldDefn
    - OGRFeatureDefn::GetGeomFieldDefn
    - OGRFeatureDefn::GetFieldDefn
    - OGRFeatureDefn*::AddGeomFieldDefn
    - OGRFeatureDefn*::apoGeomFieldDefn::reserve
    - OGRFeatureDefn*::apoFieldDefn::reserve
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRFeatureDefn::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:203,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: OGRFeatureDefn::SetName
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::SetName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: OGRFeatureDefn::GetName
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRFeatureDefn::GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: OGR_FD_GetName
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_FD_GetName(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:264,1
    - Dst: size
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: OGRFeatureDefn::GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::GetFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_FD_GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:285,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: OGR_FD_GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_FD_GetFieldCount
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_GetFieldCount(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:311,1
    - Dst: get
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: OGRFeatureDefn::GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetFieldCount
    - get
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *OGRFeatureDefn::GetFieldDefn(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:336,1
    - Dst: get
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: OGRFeatureDefn::GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetFieldCount
    - get
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *OGRFeatureDefn::GetFieldDefn(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:364,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:365,1
    - Dst: OGRAPISpy_FD_GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hDefn
    - iField
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: OGR_FD_GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_FD_GetFieldDefn
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRFieldDefnH
    signature: OGRFieldDefnH OGR_FD_GetFieldDefn(OGRFeatureDefnH hDefn, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFieldCountIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: OGRFeatureDefn::ReserveSpaceForFields
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::ReserveSpaceForFields(int nFieldCountIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:412,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:417,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: OGRFeatureDefn::AddFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::make_unique<OGRFieldDefn>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::AddFieldDefn(const OGRFieldDefn *poNewDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:436,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:441,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - std::unique_ptr<OGRFieldDefn>
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: OGRFeatureDefn::AddFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::AddFieldDefn(std::unique_ptr<OGRFieldDefn> &&poNewDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:468,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - hNewField
    argTypes:
    - OGRFeatureDefnH
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: OGR_FD_AddFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_AddFieldDefn(OGRFeatureDefnH hDefn, OGRFieldDefnH hNewField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:497,1
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:502,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:505,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 507
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 507
    functionName: OGRFeatureDefn::DeleteFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetFieldCount
    - begin
    - erase
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeatureDefn::DeleteFieldDefn(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:517,1
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:522,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:526,1
    - Dst: at
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:526,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:527,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 529
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 529
    functionName: OGRFeatureDefn::StealGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - erase
    - at
    - begin
    - std::move
    - CPLError
    - OGRFeatureDefn::GetGeomFieldCount
    linkageType: ''
    returnType: std::unique_ptr<OGRGeomFieldDefn>
    signature: std::unique_ptr<OGRGeomFieldDefn> OGRFeatureDefn::StealGeomFieldDefn(int
      iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:537,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:540,1
    - Dst: at
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:540,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:541,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: OGRFeatureDefn::StealFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - erase
    - at
    - begin
    - std::move
    - OGRFeatureDefn::GetFieldCount
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDefn>
    signature: std::unique_ptr<OGRFieldDefn> OGRFeatureDefn::StealFieldDefn(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - iField
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: OGR_FD_DeleteFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_FD_DeleteFieldDefn(OGRFeatureDefnH hDefn, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:599,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:608,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:615,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 619
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 619
    functionName: OGRFeatureDefn::ReorderFieldDefns
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCheckPermutation
    - std::move
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeatureDefn::ReorderFieldDefns(const int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - panMap
    argTypes:
    - OGRFeatureDefnH
    - int*
    constantsTouched: []
    func_position:
      end: 650
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 650
    functionName: OGR_FD_ReorderFieldDefns
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_FD_ReorderFieldDefns(OGRFeatureDefnH hDefn, const int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:668,1
    - Dst: size
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: OGRFeatureDefn::GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::GetGeomFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_FD_GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:691,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: OGR_FD_GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_FD_GetGeomFieldCount
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_GetGeomFieldCount(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:720,1
    - Dst: get
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 725
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 725
    functionName: OGRFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetGeomFieldCount
    - get
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *OGRFeatureDefn::GetGeomFieldDefn(int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:746,1
    - Dst: get
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 751
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 751
    functionName: OGRFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetGeomFieldCount
    - get
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *OGRFeatureDefn::GetGeomFieldDefn(int iGeomField)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:777,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:778,1
    - Dst: OGRAPISpy_FD_GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hDefn
    - iGeomField
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 786
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 786
    functionName: OGR_FD_GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - ToHandle
    - OGRAPISpy_FD_GetGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefnH
    signature: OGRGeomFieldDefnH OGR_FD_GetGeomFieldDefn(OGRFeatureDefnH hDefn, int
      iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:817,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:822,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 824
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 824
    functionName: OGRFeatureDefn::AddGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::make_unique<OGRGeomFieldDefn>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::AddGeomFieldDefn(const OGRGeomFieldDefn *poNewDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:845,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - std::unique_ptr<OGRGeomFieldDefn>
    constantsTouched: []
    func_position:
      end: 846
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 846
    functionName: OGRFeatureDefn::AddGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRFeatureDefn::AddGeomFieldDefn(\n    std::unique_ptr<OGRGeomFieldDefn>
      &&poNewDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:876,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - hNewGeomField
    argTypes:
    - OGRFeatureDefnH
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: OGR_FD_AddGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_FD_AddGeomFieldDefn(OGRFeatureDefnH hDefn,\n                             OGRGeomFieldDefnH
      hNewGeomField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:906,1
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:911,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:914,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 916
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 916
    functionName: OGRFeatureDefn::DeleteGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetGeomFieldCount
    - erase
    - begin
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFeatureDefn::DeleteGeomFieldDefn(int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - iGeomField
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: OGR_FD_DeleteGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_FD_DeleteGeomFieldDefn(OGRFeatureDefnH hDefn, int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:971,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:973,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszGeomFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: OGRFeatureDefn::GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRGeomFieldDefn*::GetNameRef
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::GetGeomFieldIndex(const char *pszGeomFieldName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_FD_GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1004,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hDefn
    - pszGeomFieldName
    argTypes:
    - OGRFeatureDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1009
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1009
    functionName: OGR_FD_GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_FD_GetGeomFieldIndex
    linkageType: ''
    returnType: int
    signature: "int OGR_FD_GetGeomFieldIndex(OGRFeatureDefnH hDefn,\n                             const
      char *pszGeomFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1035,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1037,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1040,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1042,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1045
    functionName: OGRFeatureDefn::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGRGeomFieldDefn*::GetType
    - OGRFeatureDefn::GetGeomFieldDefn
    - OGRFeatureDefn::GetGeomFieldCount
    - CPLGetConfigOption
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRFeatureDefn::GetGeomType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1064,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1065,1
    - Dst: OGRGetNonLinearGeometriesEnabledFlag
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1065,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1067,1
    - Dst: OGRAPISpy_FD_GetGeomType
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1075
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1075
    functionName: OGR_FD_GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_FD_GetGeomType
    - FromHandle
    - OGR_GT_GetLinear
    - OGR_GT_IsNonLinear
    - OGRGetNonLinearGeometriesEnabledFlag
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_FD_GetGeomType(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1101,1
    - Dst: OGRFeatureDefn::DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1110,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1112,1
    - Dst: OGRFeatureDefn::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - eNewType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 1119
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1119
    functionName: OGRFeatureDefn::SetGeomType
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatureDefn::AddGeomFieldDefn
    - OGRFeatureDefn::DeleteGeomFieldDefn
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::SetGeomType(OGRwkbGeometryType eNewType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - eType
    argTypes:
    - OGRFeatureDefnH
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: OGR_FD_SetGeomType
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_SetGeomType(OGRFeatureDefnH hDefn, OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: OGR_FD_Reference
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_Reference(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1220
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1220
    functionName: OGR_FD_Dereference
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_Dereference(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: OGR_FD_GetReferenceCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_GetReferenceCount(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1281,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1286
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1286
    functionName: OGRFeatureDefn::GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::GetFieldIndex(const char *pszFieldName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1309,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1311,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1318
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1318
    functionName: OGRFeatureDefn::GetFieldIndexCaseSensitive
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::GetFieldDefn
    - strcmp
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::GetFieldIndexCaseSensitive(const char *pszFieldName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_FD_GetFieldIndex
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1342,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hDefn
    - pszFieldName
    argTypes:
    - OGRFeatureDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1346
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1346
    functionName: OGR_FD_GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_FD_GetFieldIndex
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_GetFieldIndex(OGRFeatureDefnH hDefn, const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1367,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1369,1
    - Dst: OGRGeomFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1373
    functionName: OGRFeatureDefn::IsGeometryIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::GetGeomFieldCount
    - OGRFeatureDefn::GetGeomFieldDefn
    - OGRGeomFieldDefn*::IsIgnored
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::IsGeometryIgnored() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1396
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1396
    functionName: OGR_FD_IsGeometryIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_IsGeometryIgnored(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1416,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1418,1
    - Dst: OGRGeomFieldDefn*::SetIgnored
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bIgnore
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    functionName: OGRFeatureDefn::SetGeometryIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::GetGeomFieldCount
    - OGRFeatureDefn::GetGeomFieldDefn
    - OGRGeomFieldDefn*::SetIgnored
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::SetGeometryIgnored(int bIgnore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bIgnore
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1444
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1444
    functionName: OGR_FD_SetGeometryIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_SetGeometryIgnored(OGRFeatureDefnH hDefn, int bIgnore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1478
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1478
    functionName: OGR_FD_IsStyleIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_FD_IsStyleIgnored(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1511,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bIgnore
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: OGR_FD_SetStyleIgnored
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FD_SetStyleIgnored(OGRFeatureDefnH hDefn, int bIgnore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1526
    functionName: OGRFeatureDefn::CreateFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::OGRFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRFeatureDefn::CreateFeatureDefn(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: OGRFeatureDefn::DestroyFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::DestroyFeatureDefn(OGRFeatureDefn *poDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1556,1
    - Dst: OGRFeatureDefn::GetName
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1556,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1556,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1557,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1558,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1562,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1564,1
    - Dst: OGRFieldDefn*::IsSame
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1565,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1572,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1574,1
    - Dst: OGRGeomFieldDefn*::IsSame
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - poOtherFeatureDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1583
      start: 1552
    functionDepth: 2
    functionLinenumber: 1552
    functionLinenumberEnd: 1583
    functionName: OGRFeatureDefn::IsSame
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeatureDefn::GetName
    - OGRGeomFieldDefn*::IsSame
    - OGRFieldDefn*::IsSame
    - OGRFeatureDefn::GetGeomFieldDefn
    - strcmp
    - OGRFeatureDefn::GetFieldDefn
    - OGRFeatureDefn*::GetName
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRFeatureDefn::IsSame(const OGRFeatureDefn *poOtherFeatureDefn)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1602,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1603,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1605,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hFDefn
    - hOtherFDefn
    argTypes:
    - OGRFeatureDefnH
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1607
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1607
    functionName: OGR_FD_IsSame
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_FD_IsSame(OGRFeatureDefnH hFDefn, OGRFeatureDefnH hOtherFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1639,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1646,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1647,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1654,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1657,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1662,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1663,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1666,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1670,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1674,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1674,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1677,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1678,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1679,1
    - Dst: std::vector<int>
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - poSrcFDefn
    - bForgiving
    argTypes:
    - OGRFeatureDefn*
    - bool
    constantsTouched: []
    func_position:
      end: 1698
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1698
    functionName: OGRFeatureDefn::ComputeMapForSetFrom
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - std::map::end
    - OGRFieldDefn*::GetNameRef
    - std::vector<int>
    - std::map::find
    - OGRFeatureDefn::GetFieldDefn
    - std::vector::resize
    - CPLString
    - std::map::empty
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> OGRFeatureDefn::ComputeMapForSetFrom(const OGRFeatureDefn
      *poSrcFDefn,\n                                     bool bForgiving) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1722,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1730,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bSealFields
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1736
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 1736
    functionName: OGRFeatureDefn::Seal
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetFieldDefn
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::Seal(bool bSealFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1763,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1772,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bUnsealFields
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1777
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1777
    functionName: OGRFeatureDefn::Unseal
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatureDefn::GetFieldDefn
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::Unseal(bool bUnsealFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TemporaryUnsealer
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSealFields
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1808
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1808
    functionName: OGRFeatureDefn::GetTemporaryUnsealer
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - TemporaryUnsealer
    linkageType: ''
    returnType: OGRFeatureDefn::TemporaryUnsealer
    signature: OGRFeatureDefn::TemporaryUnsealer OGRFeatureDefn::GetTemporaryUnsealer(bool
      bSealFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unseal
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - poFeatureDefn
    - bSealFields
    argTypes:
    - OGRFeatureDefn*
    - bool
    constantsTouched: []
    func_position:
      end: 1847
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1847
    functionName: "OGRFeatureDefn::TemporaryUnsealer::TemporaryUnsealer(\n    OGRFeatureDefn
      *poFeatureDefn, bool bSealFields)"
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - Unseal
    linkageType: ''
    returnType: void
    signature: "void OGRFeatureDefn::TemporaryUnsealer::TemporaryUnsealer(\n    OGRFeatureDefn
      *poFeatureDefn, bool bSealFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seal
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1864,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1868,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeaturedefn.cpp:1880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1883
    functionName: OGRFeatureDefn::TemporaryUnsealer::~TemporaryUnsealer()
    functionSourceFile: /src/gdal/ogr/ogrfeaturedefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    - Seal
    linkageType: ''
    returnType: void
    signature: void OGRFeatureDefn::TemporaryUnsealer::~TemporaryUnsealer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: OGRLinearRing::OGRLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLinearRing::OGRLinearRing(const OGRLinearRing &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrlinearring.cpp:54,1
    - Dst: setNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:60,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:60,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:62,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:63,1
    - Dst: Make3D
      Src: /src/gdal/ogr/ogrlinearring.cpp:67,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:68,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poSrcRing
    argTypes:
    - OGRLinearRing*
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: OGRLinearRing::OGRLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - setNumPoints
    - getNumPoints
    - Make3D
    - CPLDebug
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGRLinearRing::OGRLinearRing(const OGRLinearRing *poSrcRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::operator=
      Src: /src/gdal/ogr/ogrlinearring.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRLinearRing
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: '&OGRLinearRing::operator=(const OGRLinearRing &other)'
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString::operator=
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing &OGRLinearRing::operator=(const OGRLinearRing &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGRLinearRing::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRLinearRing::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: OGRLinearRing::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OGRLinearRing::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: OGRLinearRing::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLinearRing::importFromWkb(const unsigned char * /*pabyData*/,\n
      \                                   size_t /*nSize*/,\n                                    OGRwkbVariant
      /*eWkbVariant*/,\n                                    size_t & /* nBytesConsumedOut
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - OGRwkbExportOptions
    argTypes:
    - CPL_UNUSED unsigned*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: OGRLinearRing::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLinearRing::exportToWkb(CPL_UNUSED unsigned char *pabyData,\n
      \                                 CPL_UNUSED const OGRwkbExportOptions *) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:159,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:167,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrlinearring.cpp:169,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrlinearring.cpp:170,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:184,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinearring.cpp:185,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinearring.cpp:193,1
    - Dst: setNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:199,1
    - Dst: Make3D
      Src: /src/gdal/ogr/ogrlinearring.cpp:202,1
    - Dst: Make2D
      Src: /src/gdal/ogr/ogrlinearring.cpp:204,1
    - Dst: AddM
      Src: /src/gdal/ogr/ogrlinearring.cpp:207,1
    - Dst: RemoveM
      Src: /src/gdal/ogr/ogrlinearring.cpp:209,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:218,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:220,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:221,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:222,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:223,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:228,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:230,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:231,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:232,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:237,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:239,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:240,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:241,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:246,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:246,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrlinearring.cpp:252,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:254,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinearring.cpp:256,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinearring.cpp:257,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinearring.cpp:261,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinearring.cpp:265,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 5
    argNames:
    - eByteOrder
    - _flags
    - pabyData
    - nBytesAvailable
    - nBytesConsumedOut
    argTypes:
    - OGRwkbByteOrder
    - int
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 271
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 271
    functionName: OGRLinearRing::_importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - Make2D
    - RemoveM
    - setNumPoints
    - Make3D
    - OGR_SWAP
    - CPL_SWAP32
    - AddM
    - CPL_SWAPDOUBLE
    - CPLError
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLinearRing::_importFromWkb(OGRwkbByteOrder eByteOrder, int
      _flags,\n                                     const unsigned char *pabyData,\n
      \                                    size_t nBytesAvailable,\n                                     size_t
      &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:288,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:297,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:299,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:300,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinearring.cpp:302,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:304,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinearring.cpp:306,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:308,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinearring.cpp:310,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinearring.cpp:312,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinearring.cpp:315,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:321,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:322,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:324,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:325,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinearring.cpp:327,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:329,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinearring.cpp:331,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinearring.cpp:333,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:340,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:342,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:343,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinearring.cpp:345,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:347,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinearring.cpp:349,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinearring.cpp:351,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:357,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:358,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:358,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinearring.cpp:359,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrlinearring.cpp:366,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinearring.cpp:369,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinearring.cpp:373,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - _flags
    - pabyData
    - psOptions
    argTypes:
    - int
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 378
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 378
    functionName: OGRLinearRing::_exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - OGRRoundCoordinatesIEEE754
    - OGRRoundCoordinatesIEEE754XYValues
    - OGR_SWAP
    - CPL_SWAPDOUBLE
    - memset
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLinearRing::_exportToWkb(int _flags, unsigned char *pabyData,\n
      \                                  const OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:390,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:392,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinearring.cpp:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - _flags
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: OGRLinearRing::_WkbSize
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t OGRLinearRing::_WkbSize(int _flags) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrlinearring.cpp:409,1
    - Dst: OGRLinearRing*::assignSpatialReference
      Src: /src/gdal/ogr/ogrlinearring.cpp:410,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrlinearring.cpp:410,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: OGRLinearRing::clone
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::assignSpatialReference
    - OGRLinearRing*::setPoints
    - getSpatialReference
    - OGRLinearRing::OGRLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRLinearRing::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reversePoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: OGRLinearRing::reverseWindingOrder
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - reversePoints
    linkageType: ''
    returnType: void
    signature: void OGRLinearRing::reverseWindingOrder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrlinearring.cpp:443,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrlinearring.cpp:443,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrlinearring.cpp:443,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrlinearring.cpp:443,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrlinearring.cpp:444,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrlinearring.cpp:444,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:446,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:447,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: OGRLinearRing::closeRings
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - addPoint
    - getY
    - getZ
    - OGRPoint::OGRPoint
    - getX
    - getPoint
    linkageType: ''
    returnType: void
    signature: void OGRLinearRing::closeRings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrlinearring.cpp:467,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrlinearring.cpp:472,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrlinearring.cpp:490,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - poPoint
    - bTestEnvelope
    argTypes:
    - OGRPoint*
    - int
    constantsTouched: []
    func_position:
      end: 531
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 531
    functionName: OGRLinearRing::isPointInRing
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::IsEmpty
    - getEnvelope
    - CPLDebug
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean OGRLinearRing::isPointInRing(const OGRPoint *poPoint,\n
      \                                       int bTestEnvelope) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrlinearring.cpp:548,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrlinearring.cpp:566,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - poPoint
    - bTestEnvelope
    argTypes:
    - OGRPoint*
    - int
    constantsTouched: []
    func_position:
      end: 616
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 616
    functionName: OGRLinearRing::isPointOnRingBoundary
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - CPLDebug
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean OGRLinearRing::isPointOnRingBoundary(const OGRPoint *poPoint,\n
      \                                               int bTestEnvelope) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::transform
      Src: /src/gdal/ogr/ogrlinearring.cpp:626,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrlinearring.cpp:627,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrlinearring.cpp:629,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:637,1
    - Dst: StartPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:638,1
    - Dst: setPoint
      Src: /src/gdal/ogr/ogrlinearring.cpp:640,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinearring.cpp:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 643
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 643
    functionName: OGRLinearRing::transform
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - get_IsClosed
    - StartPoint
    - getNumPoints
    - CPLDebug
    - OGRPoint::OGRPoint
    - setPoint
    - OGRGeometryCollection::transform
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLinearRing::transform(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrlinearring.cpp:660,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrlinearring.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLR
    argTypes:
    - OGRLinearRing*
    constantsTouched: []
    func_position:
      end: 661
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 661
    functionName: OGRLinearRing::CastToLineString
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString::OGRLineString
    - TransferMembersAndDestroy
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRLinearRing::CastToLineString(OGRLinearRing *poLR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::CastToLineString
      Src: /src/gdal/ogr/ogrlinearring.cpp:670,1
    - Dst: OGRCurve*::toLinearRing
      Src: /src/gdal/ogr/ogrlinearring.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: OGRLinearRing::CasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::toLinearRing
    - OGRLinearRing::CastToLineString
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRLinearRing::CasterToLineString(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: OGRLinearRing::GetCasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLineString
    signature: OGRCurveCasterToLineString OGRLinearRing::GetCasterToLineString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::toLinearRing
      Src: /src/gdal/ogr/ogrlinearring.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: CasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *CasterToLinearRing(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: OGRLinearRing::GetCasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinearring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLinearRing
    signature: OGRCurveCasterToLinearRing OGRLinearRing::GetCasterToLinearRing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogr_proj_p.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pj
    argTypes:
    - PJ*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: operator()(PJ *pj) const
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached:
    - proj_destroy
    linkageType: ''
    returnType: void
    signature: void operator()(PJ *pj) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - nCode
    - bUseNonDeprecated
    - bAddTOWGS84
    argTypes:
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: OSRProjTLSCache::EPSGCacheKey
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EPSGCacheKey(int nCode, bool bUseNonDeprecated, bool bAddTOWGS84)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - EPSGCacheKey
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: operator==(const EPSGCacheKey &other) const
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EPSGCacheKey &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - EPSGCacheKey
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: operator()(const EPSGCacheKey &k) const
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(const EPSGCacheKey &k) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: OSRProjTLSCache::OSRProjTLSCache
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OSRProjTLSCache(const OSRProjTLSCache &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '&operator=(const OSRProjTLSCache &)'
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSRProjTLSCache
    signature: OSRProjTLSCache &operator=(const OSRProjTLSCache &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tlsContext
    argTypes:
    - PJ_CONTEXT*
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: OSRProjTLSCache::OSRProjTLSCache
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OSRProjTLSCache(PJ_CONTEXT *tlsContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:33,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:38,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:44,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:46,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:48,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:50,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:52,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:54,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 58
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 58
    functionName: OGRGeoJSONGetType
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRGeoJSONFindMemberByName
    linkageType: ''
    returnType: GeoJSONObject::Type
    signature: GeoJSONObject::Type OGRGeoJSONGetType(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:69,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:75,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:77,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:81,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:85,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:87,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:96,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:98,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:99,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:101,1
    - Dst: OGRGeoJSONGetOGRGeometryType
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:101,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:102,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:103,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:108,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:110,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:111,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:115,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:117,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:118,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:120,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:121,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 39
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 130
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 130
    functionName: OGRGeoJSONGetOGRGeometryType
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - OGR_GT_SetZ
    - OGR_GT_HasZ
    - json_object_get_type
    - EQUAL
    - OGRGeoJSONGetOGRGeometryType
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRGeoJSONGetOGRGeometryType(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberEntryByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:142,1
    - Dst: static_cast<json_object *>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:146,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:146,1
    - Dst: OGRGeoJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:149,1
    - Dst: OGRSpatialReference::GetWGS84SRS
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:165,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:168,1
    - Dst: OGRGeoJSONReadPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:170,1
    - Dst: OGRGeoJSONReadMultiPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:172,1
    - Dst: OGRGeoJSONReadLineString
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:174,1
    - Dst: OGRGeoJSONReadMultiLineString
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:176,1
    - Dst: OGRGeoJSONReadPolygon
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:178,1
    - Dst: OGRGeoJSONReadMultiPolygon
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:180,1
    - Dst: OGRGeoJSONReadGeometryCollection
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:182,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:185,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:191,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - poObj
    - poParentSRS
    argTypes:
    - json_object*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 197
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 197
    functionName: OGRGeoJSONReadGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<json_object *>
    - OGRGeometry*::assignSpatialReference
    - OGRGeoJSONReadPolygon
    - CPLError
    - OGRSpatialReference*::Release
    - OGRGeoJSONReadLineString
    - OGRGeoJSONReadGeometryCollection
    - OGRGeoJSONReadSpatialReference
    - OGRGeoJSONReadMultiLineString
    - const_cast<void *>
    - OGRSpatialReference::GetWGS84SRS
    - OGRGeoJSONReadMultiPoint
    - OGRGeoJSONReadPoint
    - OGRGeoJSONFindMemberEntryByName
    - OGRGeoJSONGetType
    - OGRGeoJSONReadMultiPolygon
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeoJSONReadGeometry(json_object *poObj,\n                                    OGRSpatialReference
      *poParentSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - eType
    argTypes:
    - json_type
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: GetJSONConstructName
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetJSONConstructName(json_type eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:233,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:236,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:244,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:247,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:248,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - poObj
    - pszCoordName
    - nIndex
    - bValid
    argTypes:
    - json_object*
    - char*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 254
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 254
    functionName: OGRGeoJSONGetCoordinate
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - json_object_to_json_string
    - json_object_get_type
    - CPLDebug
    - GetJSONConstructName
    - CPLError
    - json_object_get_double
    - json_object_array_get_idx
    linkageType: ''
    returnType: double
    signature: "double OGRGeoJSONGetCoordinate(json_object *poObj,\n                                      const
      char *pszCoordName, int nIndex,\n                                      bool
      &bValid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:268,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:272,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:279,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:280,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:287,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:291,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:297,1
    - Dst: OGRPoint::flattenTo2D
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:301,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:307,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:310,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:310,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - poObj
    - point
    argTypes:
    - json_object*
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 315
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 315
    functionName: OGRGeoJSONReadRawPoint
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - json_object_to_json_string
    - OGRPoint::flattenTo2D
    - OGRPoint::setX
    - OGRPoint::setY
    - json_object_get_type
    - GetJSONConstructName
    - CPLErrorOnce
    - CPLError
    - OGRPoint::setZ
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONReadRawPoint(json_object *poObj, OGRPoint &point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:325,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:329,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:332,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:338,1
    - Dst: OGRGeoJSONReadRawPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:339,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 345
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 345
    functionName: OGRGeoJSONReadPoint
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - auto::release
    - OGRGeoJSONReadRawPoint
    - OGRGeoJSONFindMemberByName
    - CPLError
    - std::make_unique<OGRPoint>
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *OGRGeoJSONReadPoint(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:355,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:363,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:370,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:372,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:374,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:379,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:381,1
    - Dst: OGRGeoJSONReadRawPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:382,1
    - Dst: std::unique_ptr::addGeometry
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:391,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:394,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:394,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:395,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 399
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 399
    functionName: OGRGeoJSONReadMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_to_json_string
    - OGRGeoJSONReadRawPoint
    - std::unique_ptr::release
    - json_object_get_type
    - OGRPoint::OGRPoint
    - GetJSONConstructName
    - OGRGeoJSONFindMemberByName
    - CPLError
    - std::make_unique<OGRMultiPoint>
    - std::unique_ptr::addGeometry
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint *OGRGeoJSONReadMultiPoint(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:409,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:418,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:421,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:434,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:436,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:438,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:439,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:439,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:444,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:446,1
    - Dst: OGRGeoJSONReadRawPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:447,1
    - Dst: OGRPoint::getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:451,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:453,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:453,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:453,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:453,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:457,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:457,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:457,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:457,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:464,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:467,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:467,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:468,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - poObj
    - bRaw
    argTypes:
    - json_object*
    - bool
    constantsTouched: []
    func_position:
      end: 472
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 472
    functionName: OGRGeoJSONReadLineString
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::setPoint
    - json_object_array_length
    - static_cast<int>
    - OGRPoint::getY
    - json_object_to_json_string
    - OGRGeoJSONReadRawPoint
    - std::unique_ptr::setNumPoints
    - std::make_unique<OGRLineString>
    - OGRPoint::getX
    - json_object_get_type
    - std::unique_ptr::release
    - OGRPoint::OGRPoint
    - GetJSONConstructName
    - OGRGeoJSONFindMemberByName
    - OGRPoint::getCoordinateDimension
    - OGRPoint::getZ
    - CPLError
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRGeoJSONReadLineString(json_object *poObj, bool bRaw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:480,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:485,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:493,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:495,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:497,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:501,1
    - Dst: OGRGeoJSONReadLineString
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:503,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:512,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:515,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:515,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:516,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 520
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 520
    functionName: OGRGeoJSONReadMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_to_json_string
    - std::unique_ptr::release
    - json_object_get_type
    - OGRGeoJSONReadLineString
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - std::make_unique<OGRMultiLineString>
    - std::unique_ptr::addGeometryDirectly
    - GetJSONConstructName
    - CPLError
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRMultiLineString
    signature: OGRMultiLineString *OGRGeoJSONReadMultiLineString(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:528,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:532,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:534,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:536,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:537,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:537,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:541,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:543,1
    - Dst: OGRGeoJSONReadRawPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:544,1
    - Dst: OGRPoint::getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:549,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:550,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:550,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:550,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:550,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:552,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:552,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:552,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:552,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:553,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:558,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:561,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:561,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:562,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 566
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 566
    functionName: OGRGeoJSONReadLinearRing
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::setPoint
    - json_object_array_length
    - static_cast<int>
    - OGRPoint::getY
    - json_object_to_json_string
    - OGRGeoJSONReadRawPoint
    - std::unique_ptr::setNumPoints
    - std::unique_ptr::release
    - OGRPoint::getX
    - json_object_get_type
    - OGRPoint::OGRPoint
    - CPLAssert
    - GetJSONConstructName
    - OGRPoint::getCoordinateDimension
    - OGRPoint::getZ
    - CPLError
    - std::make_unique<OGRLinearRing>
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRGeoJSONReadLinearRing(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:576,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:587,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:600,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:602,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:605,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:608,1
    - Dst: OGRGeoJSONReadLinearRing
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:612,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:615,1
    - Dst: std::unique_ptr::addRingDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:616,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:623,1
    - Dst: OGRGeoJSONReadLinearRing
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:627,1
    - Dst: std::unique_ptr::addRingDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:630,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:637,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:642,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:645,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:645,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:646,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:649,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - poObj
    - bRaw
    argTypes:
    - json_object*
    - bool
    constantsTouched: []
    func_position:
      end: 650
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 650
    functionName: OGRGeoJSONReadPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_to_json_string
    - OGRGeoJSONReadLinearRing
    - std::unique_ptr::release
    - json_object_get_type
    - GetJSONConstructName
    - OGRGeoJSONFindMemberByName
    - std::unique_ptr::addRingDirectly
    - CPLError
    - std::make_unique<OGRPolygon>
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRGeoJSONReadPolygon(json_object *poObj, bool bRaw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:658,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:660,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:663,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:671,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:673,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:675,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:679,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:682,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:683,1
    - Dst: OGRGeoJSONReadPolygon
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:687,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:690,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:697,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:700,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:700,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:701,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 705
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 705
    functionName: OGRGeoJSONReadMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_to_json_string
    - OGRGeoJSONReadPolygon
    - std::unique_ptr::release
    - json_object_get_type
    - GetJSONConstructName
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - std::make_unique<OGRMultiPolygon>
    - std::unique_ptr::addGeometryDirectly
    - CPLError
    - std::make_unique<OGRPolygon>
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon *OGRGeoJSONReadMultiPolygon(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:714,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:719,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:727,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:729,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:730,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:732,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:738,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:744,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:747,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:753,1
    - Dst: GetJSONConstructName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:756,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:756,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:757,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - poObj
    - poSRS
    argTypes:
    - json_object*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 761
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 761
    functionName: OGRGeoJSONReadGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_to_json_string
    - OGRGeoJSONReadGeometry
    - std::unique_ptr::release
    - json_object_get_type
    - std::unique_ptr::assignSpatialReference
    - GetJSONConstructName
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - std::unique_ptr::addGeometryDirectly
    - CPLError
    - std::make_unique<OGRGeometryCollection>
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: 'OGRGeometryCollection *

      OGRGeoJSONReadGeometryCollection(json_object *poObj, OGRSpatialReference *poSRS)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:769,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:771,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 789
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 789
    functionName: OGRGeoJSONGetGeometryName
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - CPLAssert
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: char
    signature: char *OGRGeoJSONGetGeometryName(OGRGeometry const *poGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:803,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:807,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:814,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:817,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:822,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:830,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:833,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:834,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:836,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:838,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:845,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:848,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:853,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:859,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:860,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:861,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:868,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:869,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:872,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:877,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:881,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:888,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:889,1
    - Dst: OGRSpatialReference*::importFromUrl
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:890,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:897,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:900,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:905,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:909,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:910,1
    - Dst: OGRSpatialReference*::importFromURN
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:912,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:912,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:926,1
    - Dst: OGR_SRSNode*::StripNodes
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:928,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 932
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 932
    functionName: OGRGeoJSONReadSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference*::SetAxisMappingStrategy
    - STARTS_WITH_CI
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::GetAttrNode
    - OGR_SRSNode*::StripNodes
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - EQUAL
    - OGRGeoJSONFindMemberByName
    - OGRSpatialReference*::SetFromUserInput
    - OGRSpatialReference*::importFromEPSG
    - json_object_get_string
    - OGRSpatialReference*::importFromURN
    - OGRSpatialReference*::importFromUrl
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRGeoJSONReadSpatialReference(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:948,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:951,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:954,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeojsongeometry.cpp:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszJson
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 957
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 957
    functionName: OGR_G_CreateGeometryFromJson
    functionSourceFile: /src/gdal/ogr/ogrgeojsongeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReadGeometry
    - OGRJSonParse
    - ToHandle
    - json_object_put
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_CreateGeometryFromJson(const char *pszJson)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_evaluation_context::swq_evaluation_context
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: OGRFeatureQuery::OGRFeatureQuery
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - swq_evaluation_context::swq_evaluation_context
    linkageType: ''
    returnType: void
    signature: void OGRFeatureQuery::OGRFeatureQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: OGRFeatureQuery::~OGRFeatureQuery()
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_expr_node *>
    linkageType: ''
    returnType: void
    signature: void OGRFeatureQuery::~OGRFeatureQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::TestCapability
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:73,1
    - Dst: OGRFeatureQuery::Compile
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:75,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - poLayer
    - pszExpression
    - bCheck
    - poCustomFuncRegistrar
    argTypes:
    - OGRLayer*
    - char*
    - int
    - swq_custom_func_registrar*
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: OGRFeatureQuery::Compile
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureQuery::Compile
    - OGRLayer*::TestCapability
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeatureQuery::Compile(OGRLayer *poLayer, const char *pszExpression,\n
      \                        int bCheck,\n                         swq_custom_func_registrar
      *poCustomFuncRegistrar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureQuery::Compile
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poDefn
    - pszExpression
    - bCheck
    - poCustomFuncRegistrar
    argTypes:
    - OGRFeatureDefn*
    - char*
    - int
    - swq_custom_func_registrar*
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: OGRFeatureQuery::Compile
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 2
    functionsReached:
    - OGRFeatureQuery::Compile
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeatureQuery::Compile(OGRFeatureDefn *poDefn, const char
      *pszExpression,\n                         int bCheck,\n                         swq_custom_func_registrar
      *poCustomFuncRegistrar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:105,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:116,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:116,1
    - Dst: static_cast<swq_field_type *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:129,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:130,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:132,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:134,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:137,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:141,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:141,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:143,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:147,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:156,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:186,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:187,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:188,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:193,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:195,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:199,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:199,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:202,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:208,1
    - Dst: OGRLayer*::GetMetadataItem
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:211,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:212,1
    - Dst: OGRLayer*::GetMetadataItem
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:212,1
    - Dst: swq_expr_compile
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:219,1
    - Dst: reinterpret_cast<swq_expr_node **>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:221,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:230,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:231,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 5
    argNames:
    - poLayer
    - poDefn
    - pszExpression
    - bCheck
    - poCustomFuncRegistrar
    argTypes:
    - OGRLayer*
    - OGRFeatureDefn*
    - char*
    - int
    - swq_custom_func_registrar*
    constantsTouched: []
    func_position:
      end: 234
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 234
    functionName: OGRFeatureQuery::Compile
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer*::GetMetadataItem
    - static_cast<swq_field_type *>
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetSubType
    - CPLMalloc
    - OGRLayer*::GetFIDColumn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - reinterpret_cast<swq_expr_node **>
    - swq_expr_compile
    - OGRFieldDefn*::GetNameRef
    - CPLAssert
    - OGRFieldDefn*::GetType
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - const_cast<char *>
    - EQUAL
    - static_cast<swq_expr_node *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFeatureQuery::Compile(OGRLayer *poLayer, OGRFeatureDefn
      *poDefn,\n                         const char *pszExpression, int bCheck,\n
      \                        swq_custom_func_registrar *poCustomFuncRegistrar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:244,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:245,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poFDefn
    - nIdx
    argTypes:
    - OGRFeatureDefn*
    - int
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: OGRFeatureFetcherFixFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    linkageType: ''
    returnType: int
    signature: int OGRFeatureFetcherFixFieldIndex(OGRFeatureDefn *poFDefn, int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:259,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:266,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:266,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:278,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:278,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:282,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:282,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:286,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:286,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:290,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:290,1
    - Dst: swq_expr_node*::MarkAsTimestamp
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:291,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:295,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:295,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - op
    - pFeatureIn
    argTypes:
    - swq_expr_node*
    - void*
    constantsTouched: []
    func_position:
      end: 302
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 302
    functionName: OGRFeatureFetcher
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFieldAsInteger
    - static_cast<OGRFeature *>
    - OGRFeature*::GetFieldAsDouble
    - swq_expr_node::swq_expr_node
    - OGRFeature*::GetFieldAsString
    - swq_expr_node*::MarkAsTimestamp
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node *OGRFeatureFetcher(swq_expr_node *op, void *pFeatureIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:314,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:324,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 329
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 329
    functionName: OGRFeatureQuery::Evaluate
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_expr_node *>
    - static_cast<int>
    - CPL_TO_BOOL
    linkageType: ''
    returnType: int
    signature: int OGRFeatureQuery::Evaluate(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:337,1
    - Dst: OGRLayer*::GetIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:340,1
    - Dst: OGRFeatureQuery::CanUseIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: OGRFeatureQuery::CanUseIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureQuery::CanUseIndex
    - static_cast<swq_expr_node *>
    - OGRLayer*::GetIndex
    linkageType: ''
    returnType: int
    signature: int OGRFeatureQuery::CanUseIndex(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureQuery::CanUseIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:355,1
    - Dst: OGRFeatureQuery::CanUseIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:356,1
    - Dst: OGRLayer*::GetIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:370,1
    - Dst: OGRFeatureFetcherFixFieldIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:370,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:371,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 2
    argNames:
    - psExpr
    - poLayer
    argTypes:
    - swq_expr_node*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 377
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 377
    functionName: OGRFeatureQuery::CanUseIndex
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 2
    functionsReached:
    - OGRFeatureQuery::CanUseIndex
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::GetIndex
    - OGRFeatureFetcherFixFieldIndex
    linkageType: ''
    returnType: int
    signature: int OGRFeatureQuery::CanUseIndex(const swq_expr_node *psExpr, OGRLayer
      *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:397,1
    - Dst: OGRLayer*::GetIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:403,1
    - Dst: OGRFeatureQuery::EvaluateAgainstIndices
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - poLayer
    - peErr
    argTypes:
    - OGRLayer*
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 408
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 408
    functionName: OGRFeatureQuery::EvaluateAgainstIndices
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 1
    functionsReached:
    - static_cast<swq_expr_node *>
    - OGRFeatureQuery::EvaluateAgainstIndices
    - OGRLayer*::GetIndex
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRFeatureQuery::EvaluateAgainstIndices(OGRLayer *poLayer,\n
      \                                                OGRErr *peErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:416,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:417,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - panFIDList1
    - nFIDCount1
    - panFIDList2
    - nFIDCount2
    - nFIDCount
    argTypes:
    - GIntBig[]
    - GIntBig
    - GIntBig[]
    - GIntBig
    - GIntBig
    constantsTouched: []
    func_position:
      end: 480
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 480
    functionName: OGRORGIntBigArray
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - static_cast<GIntBig *>
    - static_cast<size_t>
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRORGIntBigArray(GIntBig panFIDList1[], GIntBig nFIDCount1,\n
      \                                 GIntBig panFIDList2[], GIntBig nFIDCount2,\n
      \                                 GIntBig &nFIDCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:487,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:488,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:489,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - panFIDList1
    - nFIDCount1
    - panFIDList2
    - nFIDCount2
    - nFIDCount
    argTypes:
    - GIntBig[]
    - GIntBig
    - GIntBig[]
    - GIntBig
    - GIntBig
    constantsTouched: []
    func_position:
      end: 531
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 531
    functionName: OGRANDGIntBigArray
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - max
    - static_cast<GIntBig *>
    - CPLMalloc
    - static_cast<size_t>
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRANDGIntBigArray(GIntBig panFIDList1[], GIntBig nFIDCount1,\n
      \                                  GIntBig panFIDList2[], GIntBig nFIDCount2,\n
      \                                  GIntBig &nFIDCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureQuery::EvaluateAgainstIndices
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:547,1
    - Dst: OGRFeatureQuery::EvaluateAgainstIndices
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:551,1
    - Dst: OGRORGIntBigArray
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:558,1
    - Dst: OGRANDGIntBigArray
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:562,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:565,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:566,1
    - Dst: OGRLayer*::GetIndex
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:583,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:590,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:601,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:605,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:608,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:614,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:629,1
    - Dst: OGRAttrIndex*::GetAllMatches
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:634,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:642,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:648,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:652,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:654,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:659,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:673,1
    - Dst: OGRAttrIndex*::GetAllMatches
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:680,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:685,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 3
    argNames:
    - psExpr
    - poLayer
    - nFIDCount
    argTypes:
    - swq_expr_node*
    - OGRLayer*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 688
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 688
    functionName: OGRFeatureQuery::EvaluateAgainstIndices
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 2
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<int>
    - OGRFeatureQuery::EvaluateAgainstIndices
    - OGRORGIntBigArray
    - std::sort
    - OGRLayer*::GetIndex
    - OGRFieldDefn*::GetType
    - CPLAssert
    - OGRANDGIntBigArray
    - OGRAttrIndex*::GetAllMatches
    - OGRLayer*::GetLayerDefn
    - CPLFree
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRFeatureQuery::EvaluateAgainstIndices(const swq_expr_node
      *psExpr,\n                                                 OGRLayer *poLayer,\n
      \                                                GIntBig &nFIDCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:700,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:708,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:717,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:718,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:721,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:723,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:725,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:728,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:729,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:732,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:736,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:740,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:741,1
    - Dst: OGRFeatureQuery::FieldCollector
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:749,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 754
    functionName: OGRFeatureQuery::FieldCollector
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 1
    functionsReached:
    - CSLAddString
    - CSLDestroy
    - GetFieldCount
    - static_cast<swq_expr_node *>
    - CPLAssert
    - OGRFeatureQuery::FieldCollector
    - CSLFindString
    - GetFieldDefn
    - auto::GetNameRef
    linkageType: ''
    returnType: char
    signature: char **OGRFeatureQuery::FieldCollector(void *pBareOp, char **papszList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureQuery::FieldCollector
      Src: /src/gdal/ogr/ogrfeaturequery.cpp:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: OGRFeatureQuery::GetUsedFields
    functionSourceFile: /src/gdal/ogr/ogrfeaturequery.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureQuery::FieldCollector
    linkageType: ''
    returnType: char
    signature: char **OGRFeatureQuery::GetUsedFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/mitab_bounds.cpp:20242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - eps
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 20243
      start: 20240
    functionDepth: 0
    functionLinenumber: 20240
    functionLinenumberEnd: 20243
    functionName: TAB_EQUAL
    functionSourceFile: /src/gdal/ogr/mitab_bounds.cpp
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool TAB_EQUAL(double a, double b, double eps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/mitab_bounds.cpp:20269,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/mitab_bounds.cpp:20271,1
    - Dst: MITABLoadCoordSysTable
      Src: /src/gdal/ogr/mitab_bounds.cpp:20273,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20274,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20283,1
    - Dst: MITABLoadCoordSysTable
      Src: /src/gdal/ogr/mitab_bounds.cpp:20287,1
    - Dst: memcpy
      Src: /src/gdal/ogr/mitab_bounds.cpp:20288,1
    - Dst: MITABFreeCoordSysTable
      Src: /src/gdal/ogr/mitab_bounds.cpp:20295,1
    - Dst: strcpy
      Src: /src/gdal/ogr/mitab_bounds.cpp:20296,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20324,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20325,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20326,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20327,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20329,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20331,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20333,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20335,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20337,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20338,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20339,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20340,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20341,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20342,1
    - Dst: memcpy
      Src: /src/gdal/ogr/mitab_bounds.cpp:20344,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20366,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20367,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20368,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20369,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20371,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20373,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20375,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20377,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20379,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20380,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20381,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20382,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20383,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20384,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 43
    argCount: 6
    argNames:
    - psCS
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    - bOnlyUserTable
    argTypes:
    - TABProjInfo*
    - double
    - double
    - double
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 20396
      start: 20258
    functionDepth: 1
    functionLinenumber: 20258
    functionLinenumberEnd: 20396
    functionName: MITABLookupCoordSysBounds
    functionSourceFile: /src/gdal/ogr/mitab_bounds.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - CPLStrlcpy
    - MITABFreeCoordSysTable
    - MITABLoadCoordSysTable
    - strcmp
    - TAB_EQUAL
    - strcpy
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool MITABLookupCoordSysBounds(TABProjInfo *psCS, double &dXMin, double
      &dYMin,\n                               double &dXMax, double &dYMax,\n                               bool
      bOnlyUserTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABFreeCoordSysTable
      Src: /src/gdal/ogr/mitab_bounds.cpp:20421,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20426,1
    - Dst: static_cast<MapInfoRemapProjInfo *>
      Src: /src/gdal/ogr/mitab_bounds.cpp:20432,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/mitab_bounds.cpp:20433,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20436,1
    - Dst: strlen
      Src: /src/gdal/ogr/mitab_bounds.cpp:20440,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/mitab_bounds.cpp:20440,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/mitab_bounds.cpp:20447,1
    - Dst: CPLError
      Src: /src/gdal/ogr/mitab_bounds.cpp:20452,1
    - Dst: MITABCoordSys2TABProjInfo
      Src: /src/gdal/ogr/mitab_bounds.cpp:20457,1
    - Dst: strstr
      Src: /src/gdal/ogr/mitab_bounds.cpp:20462,1
    - Dst: CPLError
      Src: /src/gdal/ogr/mitab_bounds.cpp:20464,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20470,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/mitab_bounds.cpp:20472,1
    - Dst: strchr
      Src: /src/gdal/ogr/mitab_bounds.cpp:20473,1
    - Dst: CPLError
      Src: /src/gdal/ogr/mitab_bounds.cpp:20475,1
    - Dst: MITABCoordSys2TABProjInfo
      Src: /src/gdal/ogr/mitab_bounds.cpp:20482,1
    - Dst: MITABExtractCoordSysBounds
      Src: /src/gdal/ogr/mitab_bounds.cpp:20491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/mitab_bounds.cpp:20494,1
    - Dst: static_cast<MapInfoRemapProjInfo *>
      Src: /src/gdal/ogr/mitab_bounds.cpp:20503,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/mitab_bounds.cpp:20504,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/mitab_bounds.cpp:20518,1
    - Dst: CPLError
      Src: /src/gdal/ogr/mitab_bounds.cpp:20522,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 20526
      start: 20419
    functionDepth: 1
    functionLinenumber: 20419
    functionLinenumberEnd: 20526
    functionName: MITABLoadCoordSysTable
    functionSourceFile: /src/gdal/ogr/mitab_bounds.cpp
    functionUses: 1
    functionsReached:
    - CPLReadLineL
    - STARTS_WITH_CI
    - MITABExtractCoordSysBounds
    - VSIFCloseL
    - MITABFreeCoordSysTable
    - strchr
    - VSIFOpenL
    - CPLRealloc
    - strlen
    - strstr
    - MITABCoordSys2TABProjInfo
    - CPLError
    - CPLMalloc
    - static_cast<MapInfoRemapProjInfo *>
    linkageType: ''
    returnType: int
    signature: int MITABLoadCoordSysTable(const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/mitab_bounds.cpp:20535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20538
      start: 20533
    functionDepth: 0
    functionLinenumber: 20533
    functionLinenumberEnd: 20538
    functionName: MITABFreeCoordSysTable
    functionSourceFile: /src/gdal/ogr/mitab_bounds.cpp
    functionUses: 2
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void MITABFreeCoordSysTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:55,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 4
    argNames:
    - pszURN
    - ppszObjectType
    - ppszAuthority
    - ppszCode
    argTypes:
    - char*
    - char**
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 111
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 111
    functionName: parseURN
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: bool
    signature: "bool parseURN(char *pszURN, const char **ppszObjectType,\n                     const
      char **ppszAuthority, const char **ppszCode,\n                     const char
      **ppszVersion = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:126,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:126,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:126,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:129,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:133,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:133,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:133,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:136,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - psTarget
    - pszAuthority
    - pszObjectType
    - nCode
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: addURN
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - CPLAssert
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void addURN(CPLXMLNode *psTarget, const char *pszAuthority,\n                   const
      char *pszObjectType, int nCode,\n                   const char *pszVersion =
      \"\")"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:154,1
    - Dst: addURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - psTarget
    - pszElement
    - pszAuthority
    - pszObjectType
    - nCode
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: AddValueIDWithURN
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - addURN
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *AddValueIDWithURN(CPLXMLNode *psTarget,\n                                     const
      char *pszElement,\n                                     const char *pszAuthority,\n
      \                                    const char *pszObjectType, int nCode,\n
      \                                    const char *pszVersion = \"\")"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:182,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:182,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:182,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:185,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:191,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:196,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:201,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:201,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:208,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - psTarget
    - pszElement
    - pszAuthority
    - pszObjectType
    - nCode
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 213
    functionName: addAuthorityIDBlock
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - CPLAssert
    - snprintf
    - strlen
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *addAuthorityIDBlock(CPLXMLNode *psTarget,\n                                       const
      char *pszElement,\n                                       const char *pszAuthority,\n
      \                                      const char *pszObjectType, int nCode,\n
      \                                      const char *pszVersion = \"\")"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:222,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:227,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:229,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - psParent
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 231
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 231
    functionName: addGMLId
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - snprintf
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: void addGMLId(CPLXMLNode *psParent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:251,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:256,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:264,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:265,1
    - Dst: AddValueIDWithURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:267,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - poAuthParent
    - pszTagName
    - psXMLParent
    - pszObjectType
    argTypes:
    - OGR_SRSNode*
    - char*
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 269
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 269
    functionName: exportAuthorityToXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - atoi
    - AddValueIDWithURN
    - OGR_SRSNode*::GetChild
    - addAuthorityIDBlock
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *exportAuthorityToXML(const OGR_SRSNode *poAuthParent,\n
      \                                       const char *pszTagName,\n                                        CPLXMLNode
      *psXMLParent,\n                                        const char *pszObjectType,\n
      \                                       int bUseSubName = TRUE)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:280,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:289,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:291,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:291,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:300,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:301,1
    - Dst: AddValueIDWithURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - poSRS
    - psBase
    - pszMeasureType
    - dfDefault
    - nParameterID
    - pszWKTName
    argTypes:
    - OGRSpatialReference*
    - CPLXMLNode*
    - char*
    - double
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 308
    functionName: addProjArg
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - CPLString
    - AddValueIDWithURN
    linkageType: ''
    returnType: void
    signature: "void addProjArg(const OGRSpatialReference *poSRS, CPLXMLNode *psBase,\n
      \                      const char *pszMeasureType, double dfDefault,\n                       int
      nParameterID, const char *pszWKTName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:321,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:322,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:326,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:331,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:333,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:333,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:336,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:337,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:338,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:341,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:343,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:343,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:346,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:348,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:349,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:350,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:352,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:354,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:354,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:357,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:358,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:359,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:362,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:364,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:364,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:367,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:368,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:369,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:370,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - psXMLParent
    - pszAxis
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 378
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 378
    functionName: addAxis
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLElementAndValue
    - CPLCreateXMLNode
    - EQUAL
    - CPLAssert
    - CPLError
    - addGMLId
    - addAuthorityIDBlock
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *addAxis(CPLXMLNode *psXMLParent,\n                           const
      char *pszAxis,  // \"Lat\", \"Long\", \"E\" or \"N\"\n                           const
      OGR_SRSNode * /* poUnitsSrc */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:387,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:396,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:397,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:402,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:403,1
    - Dst: exportAuthorityToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:409,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:416,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:417,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:420,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:422,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:424,1
    - Dst: addAxis
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:426,1
    - Dst: addAxis
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:427,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:432,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:436,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:440,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:441,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:444,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:449,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:450,1
    - Dst: exportAuthorityToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:455,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:460,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:464,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:465,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:468,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:470,1
    - Dst: exportAuthorityToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:473,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:475,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:476,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:479,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:479,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:482,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:483,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:488,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:492,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:493,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:496,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:498,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:499,1
    - Dst: exportAuthorityToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:501,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:505,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:507,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:507,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:510,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:511,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:514,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:514,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:518,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:518,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:521,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 526
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 526
    functionName: exportGeogCSToXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode*::GetNode
    - OGRSpatialReference*::GetAttrNode
    - CPLCreateXMLElementAndValue
    - exportAuthorityToXML
    - addAxis
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLString
    - OGR_SRSNode*::GetChild
    - addGMLId
    - addAuthorityIDBlock
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *exportGeogCSToXML(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:535,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:544,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:545,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:550,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:551,1
    - Dst: exportAuthorityToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:556,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:562,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:564,1
    - Dst: exportGeogCSToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:564,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:570,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:577,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:578,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:580,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:591,1
    - Dst: AddValueIDWithURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:593,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:595,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:597,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:599,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:600,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:601,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:606,1
    - Dst: AddValueIDWithURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:608,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:610,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:612,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:614,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:615,1
    - Dst: addProjArg
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:616,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:620,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:622,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:629,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:630,1
    - Dst: addGMLId
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:633,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:635,1
    - Dst: addAuthorityIDBlock
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:636,1
    - Dst: addAxis
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:637,1
    - Dst: addAxis
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 641
      start: 532
    functionDepth: 5
    functionLinenumber: 532
    functionLinenumberEnd: 641
    functionName: exportProjCSToXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - exportGeogCSToXML
    - OGRSpatialReference*::GetAttrNode
    - CPLCreateXMLElementAndValue
    - exportAuthorityToXML
    - addAxis
    - AddValueIDWithURN
    - CPLCreateXMLNode
    - addProjArg
    - CPLDestroyXMLNode
    - CPLAddXMLChild
    - EQUAL
    - CPLError
    - OGR_SRSNode*::GetChild
    - addGMLId
    - addAuthorityIDBlock
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *exportProjCSToXML(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:671,1
    - Dst: exportGeogCSToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:673,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:675,1
    - Dst: exportProjCSToXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:677,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:685,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ppszRawXML
    - pszDialect
    argTypes:
    - char**
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 689
      start: 666
    functionDepth: 6
    functionLinenumber: 666
    functionLinenumberEnd: 689
    functionName: OGRSpatialReference::exportToXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - exportGeogCSToXML
    - CPLSerializeXMLTree
    - CPLDestroyXMLNode
    - exportProjCSToXML
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToXML(char **ppszRawXML,\n                                        CPL_UNUSED
      const char *pszDialect) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:704,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - ppszRawXML
    - pszDialect
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: OSRExportToXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToXML(OGRSpatialReferenceH hSRS, char **ppszRawXML,\n
      \                     const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:719,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:721,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:721,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:721,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:723,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:733,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:735,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:736,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:737,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:741,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:747,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:751,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:753,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:753,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:754,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:755,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:759,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:760,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:760,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:761,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:761,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:763,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:768,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:769,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:771,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:771,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:772,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:772,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:776,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:776,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:777,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:777,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - psSrcXML
    - pszClass
    - poSRS
    - pszTarget
    argTypes:
    - CPLXMLNode*
    - char*
    - OGRSpatialReference*
    - char*
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: importXMLUnits
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode*::AddChild
    - OGRSpatialReference*::GetAttrNode
    - CPLGetXMLNode
    - OGR_SRSNode::OGR_SRSNode
    - CPLDebug
    - EQUAL
    - CPLAssert
    - OGR_SRSNode*::FindChild
    - CPLGetXMLValue
    - OGR_SRSNode*::GetChild
    linkageType: ''
    returnType: void
    signature: "void importXMLUnits(CPLXMLNode *psSrcXML, const char *pszClass,\n
      \                          OGRSpatialReference *poSRS, const char *pszTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:793,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:794,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:795,1
    - Dst: parseURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:804,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:806,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:810,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:811,1
    - Dst: OGRSpatialReference*::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:816,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - psSrcXML
    - poSRS
    - pszSourceKey
    - pszTargetKey
    argTypes:
    - CPLXMLNode*
    - OGRSpatialReference*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 819
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 819
    functionName: importXMLAuthority
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - parseURN
    - CPLGetXMLNode
    - strlen
    - CPLGetXMLValue
    - CPLFree
    - OGRSpatialReference*::SetAuthority
    linkageType: ''
    returnType: void
    signature: "void importXMLAuthority(CPLXMLNode *psSrcXML, OGRSpatialReference
      *poSRS,\n                               const char *pszSourceKey,\n                               const
      char *pszTargetKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:845,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:851,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:853,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:869,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - pszURN
    - poObjectType
    - poAuthority
    - poVersion
    - poValue
    argTypes:
    - char*
    - CPLString*
    - CPLString*
    - CPLString*
    - CPLString*
    constantsTouched: []
    func_position:
      end: 871
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 871
    functionName: ParseOGCDefURN
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - STARTS_WITH_CI
    - CSLDestroy
    linkageType: ''
    returnType: bool
    signature: "bool ParseOGCDefURN(const char *pszURN, CPLString *poObjectType,\n
      \                          CPLString *poAuthority, CPLString *poVersion,\n                           CPLString
      *poValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:891,1
    - Dst: ParseOGCDefURN
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:896,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:900,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:900,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:903,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:904,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - psNode
    - pszEPSGObjectType
    - nDefault
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 911
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 911
    functionName: getEPSGObjectCodeValue
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - EQUAL
    - CPLGetXMLValue
    - CPLString::empty
    - ParseOGCDefURN
    linkageType: ''
    returnType: int
    signature: "int getEPSGObjectCodeValue(CPLXMLNode *psNode,\n                                  const
      char *pszEPSGObjectType, /*\"method\" */\n                                  int
      nDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:928,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:929,1
    - Dst: getEPSGObjectCodeValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:932,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:933,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - psRootNode
    - nParameterCode
    - dfDefault
    argTypes:
    - CPLXMLNode*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 947
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 947
    functionName: getProjectionParam
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLGetXMLNode
    - getEPSGObjectCodeValue
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: "double getProjectionParam(CPLXMLNode *psRootNode, int nParameterCode,\n
      \                                const char * /*pszMeasureType */,\n                                 double
      dfDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:960,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:962,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - psNode
    - pszPath
    - dfDefault
    argTypes:
    - CPLXMLNode*
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 979
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 979
    functionName: getNormalizedValue
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLGetXMLNode
    - strlen
    linkageType: ''
    returnType: double
    signature: "double getNormalizedValue(CPLXMLNode *psNode, const char *pszPath,\n
      \                                const char * /*pszMeasure*/, double dfDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:999,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1003,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1005,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1006,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1008,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1009,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1010,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1010,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1012,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1013,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1013,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1026,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1038,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1050,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1059,1
    - Dst: getNormalizedValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1060,1
    - Dst: OGRSpatialReference*::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1067,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1076,1
    - Dst: importXMLUnits
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1078,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1084,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1085,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1086,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - poSRS
    - psCRS
    argTypes:
    - OGRSpatialReference*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1092
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1092
    functionName: importGeogCSFromXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - importXMLAuthority
    - OGRSpatialReference::OGRSpatialReference
    - atoi
    - OGRSpatialReference*::SetGeogCS
    - CPLGetXMLNode
    - CPLGetXMLValue
    - importXMLUnits
    - OGRSpatialReference::GetAuthorityName
    - OGRSpatialReference::SetLocalCS
    - EQUAL
    - OGRSpatialReference::GetAuthorityCode
    - OGRSpatialReference*::importFromEPSG
    - CPLError
    - getNormalizedValue
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr importGeogCSFromXML(OGRSpatialReference *poSRS, CPLXMLNode *psCRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::SetProjCS
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1104,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1104,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1111,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1113,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1114,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1115,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1115,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1116,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1117,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1119,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1119,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1119,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1126,1
    - Dst: importGeogCSFromXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1129,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1141,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1158,1
    - Dst: getProjectionParam
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1158,1
    - Dst: getProjectionParam
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1159,1
    - Dst: getProjectionParam
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1160,1
    - Dst: getProjectionParam
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1161,1
    - Dst: getProjectionParam
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1170,1
    - Dst: importXMLAuthority
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - poSRS
    - psCRS
    argTypes:
    - OGRSpatialReference*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1181
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1181
    functionName: importProjCSFromXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - importXMLAuthority
    - OGRSpatialReference*::GetAuthorityName
    - CPLError
    - atoi
    - CPLGetXMLNode
    - OGRSpatialReference*::GetAuthorityCode
    - EQUAL
    - getProjectionParam
    - OGRSpatialReference*::importFromEPSG
    - importGeogCSFromXML
    - OGRSpatialReference*::SetProjCS
    - CPLGetXMLValue
    - OGRSpatialReference*::SetTM
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr importProjCSFromXML(OGRSpatialReference *poSRS, CPLXMLNode *psCRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1197,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1202,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1207,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1219,1
    - Dst: importGeogCSFromXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1221,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1225,1
    - Dst: importProjCSFromXML
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1227,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pszXML
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1194
    functionDepth: 5
    functionLinenumber: 1194
    functionLinenumberEnd: 1235
    functionName: OGRSpatialReference::importFromXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - importProjCSFromXML
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - EQUAL
    - importGeogCSFromXML
    - OGRSpatialReference::Clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromXML(const char *pszXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1249,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1250,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_xml.cpp:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS
    - pszXML
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 1253
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1253
    functionName: OSRImportFromXML
    functionSourceFile: /src/gdal/ogr/ogr_srs_xml.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRImportFromXML(OGRSpatialReferenceH hSRS, const char *pszXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: TABUnitIdToString
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TABUnitIdToString(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: TABUnitIdFromString
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int TABUnitIdFromString(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: TAB_EQUAL
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 1
    functionsReached:
    - std::fabs
    linkageType: ''
    returnType: bool
    signature: bool TAB_EQUAL(double a, double b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:856,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:857,1
    - Dst: OGRSpatialReference*::SetLocalCS
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:865,1
    - Dst: OGRSpatialReference*::SetLinearUnits
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:866,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:866,1
    - Dst: OGRSpatialReference*::SetCEA
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:879,1
    - Dst: OGRSpatialReference*::SetLCC
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:888,1
    - Dst: OGRSpatialReference*::SetLAEA
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:899,1
    - Dst: OGRSpatialReference*::SetAE
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:908,1
    - Dst: OGRSpatialReference*::SetEC
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:916,1
    - Dst: OGRSpatialReference*::SetHOM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:926,1
    - Dst: OGRSpatialReference*::SetHOM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:936,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:948,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:959,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:970,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:981,1
    - Dst: OGRSpatialReference*::SetTM
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:992,1
    - Dst: OGRSpatialReference*::SetACEA
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1002,1
    - Dst: OGRSpatialReference*::SetMercator
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1012,1
    - Dst: OGRSpatialReference*::SetMC
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1020,1
    - Dst: OGRSpatialReference*::SetRobinson
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1027,1
    - Dst: OGRSpatialReference*::SetMollweide
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1034,1
    - Dst: OGRSpatialReference*::SetEckertIV
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1041,1
    - Dst: OGRSpatialReference*::SetEckertVI
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1048,1
    - Dst: OGRSpatialReference*::SetSinusoidal
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1055,1
    - Dst: OGRSpatialReference*::SetGS
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1062,1
    - Dst: OGRSpatialReference*::SetNZMG
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1069,1
    - Dst: OGRSpatialReference*::SetLCCB
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1078,1
    - Dst: OGRSpatialReference*::SetStereographic
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1088,1
    - Dst: OGRSpatialReference*::SetSOC
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1098,1
    - Dst: OGRSpatialReference*::SetMercator2SP
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1107,1
    - Dst: OGRSpatialReference*::SetPolyconic
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1115,1
    - Dst: OGRSpatialReference*::SetCS
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1124,1
    - Dst: OGRSpatialReference*::SetOS
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1133,1
    - Dst: OGRSpatialReference*::SetKrovak
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1143,1
    - Dst: OGRSpatialReference*::SetEquirectangular
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1157,1
    - Dst: OGRSpatialReference*::SetProjection
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1163,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1163,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1191,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1195,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1196,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1197,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1198,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1199,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1200,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1201,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1202,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1217,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1224,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1234,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1236,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1241,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1281,1
    - Dst: OGRSpatialReference*::SetGeogCS
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1291,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1293,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1297,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1298,1
    - Dst: OGRSpatialReference*::SetTOWGS84
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1300,1
    - Dst: OGRSpatialReference*::SetTOWGS84
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1314,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1328,1
    - Dst: OGRSpatialReference*::SetExtension
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1329,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1340,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1340,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1342,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1342,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1345,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1346,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1347,1
    - Dst: OGRSpatialReference*::convertToOtherProjection
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1355,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1359,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1360,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1362,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1390,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1391,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1393,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1394,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1397,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1398,1
    - Dst: OGRSpatialReference*::SetAuthority
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1402,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1409,1
    - Dst: OGRSpatialReference*::SetLCC
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1411,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1430,1
    - Dst: OGRSpatialReference*::SetTargetLinearUnits
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1432,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1433,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1438,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1439,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1440,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1442,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1453,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1454,1
    - Dst: OGRSpatialReference*::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1455,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1465,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1466,1
    - Dst: OGRSpatialReference*::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1467,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 271
    argCount: 1
    argNames:
    - sTABProj
    argTypes:
    - TABProjInfo
    constantsTouched: []
    func_position:
      end: 1471
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 1471
    functionName: TABFileGetSpatialRefFromTABProj
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::SetExtension
    - OGRSpatialReference*::SetEckertVI
    - OGRSpatialReference*::SetSOC
    - OGRSpatialReference*::SetGeogCS
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLDebug
    - OGRSpatialReference*::SetStereographic
    - OGRSpatialReference*::CopyGeogCSFrom
    - fabs
    - OGRSpatialReference*::SetAE
    - OGRSpatialReference*::SetCEA
    - CPLGetConfigOption
    - OGRSpatialReference*::SetEckertIV
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference*::SetACEA
    - OGRSpatialReference*::SetLocalCS
    - OGRSpatialReference*::SetEquirectangular
    - OGRSpatialReference*::SetLCCB
    - CPLStrlcpy
    - OGRSpatialReference*::SetRobinson
    - OGRSpatialReference*::SetGS
    - std::move
    - strlen
    - OGRSpatialReference*::SetPolyconic
    - OGRSpatialReference*::SetTOWGS84
    - OGRSpatialReference*::SetTM
    - OGRSpatialReference*::SetLCC
    - OGRSpatialReference*::SetMollweide
    - OGRSpatialReference*::SetAuthority
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - CPLTestBool
    - OGRSpatialReference*::convertToOtherProjection
    - OGRSpatialReference*::SetNZMG
    - OGRSpatialReference*::SetTargetLinearUnits
    - CPLSPrintf
    - OGRSpatialReference*::SetCS
    - OGRSpatialReference*::SetMercator2SP
    - TAB_EQUAL
    - snprintf
    - OGRSpatialReference*::SetHOM
    - OGRSpatialReference*::SetEC
    - OGRSpatialReference*::SetProjection
    - OGRSpatialReference*::GetNormProjParm
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetOS
    - OGRSpatialReference*::SetSinusoidal
    - OGRSpatialReference*::SetLAEA
    - OGRSpatialReference*::SetKrovak
    - OGRSpatialReference*::SetMC
    - OGRSpatialReference*::SetLinearUnits
    - OGRSpatialReference*::SetNode
    - OGRSpatialReference*::SetMercator
    linkageType: ''
    returnType: OGRSpatialReference
    signature: 'OGRSpatialReference *

      TABFileGetSpatialRefFromTABProj(const TABProjInfo &sTABProj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetTOWGS84
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1496,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1510,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1511,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1521,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1527,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - poSpatialRef
    - sTABProj
    argTypes:
    - OGRSpatialReference*
    - TABProjInfo
    constantsTouched: []
    func_position:
      end: 1529
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1529
    functionName: MITABGetCustomDatum
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - EQUAL
    - OGRSpatialReference*::GetTOWGS84
    - static_cast<GByte>
    - CPLIsEqual
    linkageType: ''
    returnType: int
    signature: "int MITABGetCustomDatum(const OGRSpatialReference *poSpatialRef,\n
      \                              TABProjInfo &sTABProj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1579,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1581,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1597,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1598,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1598,1
    - Dst: GetDatumCode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1602,1
    - Dst: GetDatumCodeFromCRSIndirect
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1612,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1613,1
    - Dst: GetDatumCodeFromCRSIndirect
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1618,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1630,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1641,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1645,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1647,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1649,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1651,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1652,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1653,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1657,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1661,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1663,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1667,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1667,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1671,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1674,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1680,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1683,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1687,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1690,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1694,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1698,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1700,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1702,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1704,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1705,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1706,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1710,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1717,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1719,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1719,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1725,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1727,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1728,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1729,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1730,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1731,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1738,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1740,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1741,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1743,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1744,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1745,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1751,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1755,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1757,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1761,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1761,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1765,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1768,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1770,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1772,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1774,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1775,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1776,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1780,1
    - Dst: OGRSpatialReference*::convertToOtherProjection
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1783,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1789,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1791,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1793,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1795,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1796,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1797,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1803,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1806,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1808,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1810,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1812,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1813,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1814,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1818,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1821,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1823,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1824,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1834,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1837,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1839,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1843,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1847,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1851,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1854,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1858,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1861,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1863,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1864,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1865,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1869,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1872,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1874,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1875,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1876,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1881,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1883,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1883,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1885,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1885,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1888,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1888,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1893,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1895,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1896,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1897,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1901,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1904,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1908,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1911,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1915,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1918,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1920,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1921,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1922,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1923,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1927,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1930,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1932,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1933,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1934,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1935,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1939,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1943,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1949,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1951,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1952,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1953,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1954,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1958,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1962,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1964,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1965,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1966,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1967,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1971,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1975,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1977,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1978,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1979,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1980,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1984,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1988,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1990,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1991,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1992,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1993,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:1997,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2001,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2003,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2004,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2005,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2006,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2010,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2013,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2015,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2016,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2017,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2021,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2024,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2026,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2027,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2028,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2032,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2035,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2037,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2039,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2040,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2041,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2042,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2046,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2049,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2051,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2052,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2059,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2073,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2086,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2087,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2087,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2101,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2112,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2113,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2113,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2115,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2115,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2119,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2121,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2121,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2122,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2123,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2124,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2127,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2129,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2130,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2132,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2133,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2136,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2138,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2159,1
    - Dst: MITABGetCustomDatum
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2167,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2169,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2179,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2180,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2202,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2203,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2205,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2206,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2208,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2209,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2219,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2221,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2224,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2226,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2230,1
    - Dst: TAB_EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2232,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2235,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2237,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2252,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2253,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2255,1
    - Dst: OGRSpatialReference*::GetExtension
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2256,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2261,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2276,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2277,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2279,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2283,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2292,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2292,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2294,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2297,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2299,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2303,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2305,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2307,1
    CyclomaticComplexity: 125
    EdgeCount: 125
    ICount: 441
    argCount: 3
    argNames:
    - poSpatialRef
    - sTABProj
    - nParamCount
    argTypes:
    - OGRSpatialReference*
    - TABProjInfo
    - int
    constantsTouched: []
    func_position:
      end: 2313
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 2313
    functionName: TABFileGetTABProjFromSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::GetAttrNode
    - atoi
    - OGRSpatialReference*::GetAuthorityCode
    - CPLDebug
    - static_cast<GByte>
    - CPLError
    - std::fabs
    - OGRSpatialReference*::GetExtension
    - std::abs
    - swap
    - CSLCount
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - STARTS_WITH_CI
    - OGRSpatialReference*::GetAuthorityName
    - OGRSpatialReference*::convertToOtherProjection
    - GetDatumCode
    - CPLSPrintf
    - static_cast<GInt16>
    - GetDatumCodeFromCRSIndirect
    - TAB_EQUAL
    - OGRSpatialReference*::GetNormProjParm
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - fabs
    - MITABGetCustomDatum
    - OGRSpatialReference*::GetProjParm
    linkageType: ''
    returnType: int
    signature: "int TABFileGetTABProjFromSpatialRef(const OGRSpatialReference *poSpatialRef,\n
      \                                   TABProjInfo &sTABProj, int &nParamCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABCoordSys2TABProjInfo
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2329,1
    - Dst: TABFileGetSpatialRefFromTABProj
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2331,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2336,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2339,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszCoordSys
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2345
      start: 2325
    functionDepth: 2
    functionLinenumber: 2325
    functionLinenumberEnd: 2345
    functionName: MITABCoordSys2SpatialRef
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::exportToWkt
    - TABFileGetSpatialRefFromTABProj
    - CPLDebug
    - MITABCoordSys2TABProjInfo
    - CPLFree
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *MITABCoordSys2SpatialRef(const char *pszCoordSys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFileGetTABProjFromSpatialRef
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2365,1
    - Dst: MITABLookupCoordSysBounds
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2374,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2387,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2391,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2397,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2402,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2410,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2423,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2428,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2433,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2433,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2434,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2434,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2435,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2435,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2436,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2436,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2439,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2439,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2440,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2440,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2441,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2445,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2453,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2456,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2457,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2458,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2461,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2461,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 2462
      start: 2357
    functionDepth: 3
    functionLinenumber: 2357
    functionLinenumberEnd: 2462
    functionName: MITABSpatialRef2CoordSys
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::exportToWkt
    - static_cast<int>
    - CPLStrdup
    - floor
    - TABFileGetTABProjFromSpatialRef
    - CPLString::Printf
    - MITABLookupCoordSysBounds
    - CPLSPrintf
    - CPLDebug
    - CPLString::c_str
    - fabs
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *MITABSpatialRef2CoordSys(const OGRSpatialReference *poSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2483,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2485,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2486,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2487,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2488,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2489,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - pszCoordSys
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - char*
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2495
      start: 2471
    functionDepth: 1
    functionLinenumber: 2471
    functionLinenumberEnd: 2495
    functionName: MITABExtractCoordSysBounds
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 1
    functionsReached:
    - CSLCount
    - CSLDestroy
    - CPLAtof
    linkageType: ''
    returnType: bool
    signature: "bool MITABExtractCoordSysBounds(const char *pszCoordSys, double &dXMin,\n
      \                               double &dYMin, double &dXMax, double &dYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2508,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2527,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2535,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2535,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2536,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2546,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2549,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2549,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2555,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2561,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2562,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2564,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2571,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2573,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2577,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2579,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2579,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2580,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2581,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2582,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2585,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2587,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2588,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2589,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2590,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2591,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2618,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2620,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2633,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2635,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2635,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2637,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2637,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2642,1
    - Dst: TABUnitIdFromString
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2642,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2650,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrmitabspatialref.cpp:2654,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 2
    argNames:
    - pszCoordSys
    - psProj
    argTypes:
    - char*
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 2657
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2657
    functionName: MITABCoordSys2TABProjInfo
    functionSourceFile: /src/gdal/ogr/ogrmitabspatialref.cpp
    functionUses: 2
    functionsReached:
    - CPLAtof
    - TABUnitIdFromString
    - STARTS_WITH_CI
    - isdigit
    - CPLError
    - atoi
    - static_cast<unsigned char>
    - CSLDestroy
    - static_cast<GInt16>
    - EQUAL
    - static_cast<GByte>
    - CSLCount
    - memset
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int MITABCoordSys2TABProjInfo(const char *pszCoordSys, TABProjInfo
      *psProj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nESRIZone
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: ESRIToUSGSZone
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ESRIToUSGSZone(int nESRIZone)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:105,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - papszPrj
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: OSRImportFromESRI
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRImportFromESRI(OGRSpatialReferenceH hSRS, char **papszPrj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:126,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:130,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:138,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:142,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:158,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:167,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:167,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:168,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:170,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:173,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:175,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:182,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:192,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:192,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:200,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:200,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 3
    argNames:
    - papszNV
    - pszField
    - dfDefaultValue
    argTypes:
    - char**
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 201
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 201
    functionName: OSR_GDV
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - STARTS_WITH_CI
    - CSLDestroy
    - std::abs
    - strlen
    - CSLCount
    - EQUALN
    linkageType: ''
    returnType: double
    signature: "double OSR_GDV(char **papszNV, const char *pszField,\n                      double
      dfDefaultValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:216,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:216,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:227,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - papszNV
    - pszField
    - pszDefaultValue
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 231
    functionName: OSR_GDS
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - EQUALN
    - CSLDestroy
    - strlen
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OSR_GDS(char **papszNV, const char *pszField,\n                         const
      char *pszDefaultValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:277,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:278,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:279,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:283,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:290,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:290,1
    - Dst: OSR_GDS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:301,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:303,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:310,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:317,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:317,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:327,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:331,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:335,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:336,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:336,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:338,1
    - Dst: ESRIToUSGSZone
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:346,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:351,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:352,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:366,1
    - Dst: OSR_GDS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:366,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:367,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:372,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:373,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:388,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:390,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:392,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:392,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:393,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:394,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:395,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:396,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:399,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:401,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:401,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:402,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:403,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:404,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:405,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:408,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:412,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:435,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:436,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:436,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:437,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:438,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:439,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:444,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:444,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:445,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:446,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:450,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:454,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:455,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:457,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:465,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:465,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:466,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:467,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:468,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:469,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:470,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:474,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:474,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:475,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:476,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:477,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:478,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:479,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:482,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:484,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:484,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:485,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:486,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:487,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:488,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:490,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:492,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:492,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:493,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:494,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:495,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:497,1
    - Dst: OGRSpatialReference::SetMercator2SP
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:499,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:499,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:500,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:501,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:502,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:504,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:511,1
    - Dst: OGRSpatialReference::SetPolyconic
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:513,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:513,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:514,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:515,1
    - Dst: OSR_GDV
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:516,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:520,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:520,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:521,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:527,1
    - Dst: OSR_GDS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:529,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:532,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:532,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:536,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:536,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:538,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:540,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:542,1
    - Dst: OSR_GDS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:548,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:549,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:551,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:552,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:553,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:555,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:557,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:558,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:559,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:561,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:563,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:564,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:565,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:567,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:569,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:570,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:571,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:573,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:574,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:575,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:577,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:578,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:581,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:583,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:584,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:585,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:592,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:596,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:598,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:603,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:605,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:608,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:616,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:617,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:619,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:624,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:634,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:634,1
    - Dst: OSR_GDS
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:637,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:645,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:646,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:647,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:649,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:650,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:651,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:652,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:654,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:658,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:658,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:659,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:661,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:661,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 170
    argCount: 1
    argNames:
    - papszPrj
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 666
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 666
    functionName: OGRSpatialReference::importFromESRI
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetGeogCS
    - atoi
    - CPLDebug
    - OGRSpatialReference::CopyGeogCSFrom
    - OGRSpatialReference::SetAuthority
    - OSR_GDV
    - CPLError
    - std::string::c_str
    - std::isnan
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    - simple_max
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetMercator2SP
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - CPLString::c_str
    - std::abs
    - OGRSpatialReference::IsLocal
    - CSLCount
    - simple_min
    - OGRSpatialReference::SetLinearUnitsAndUpdateParameters
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - static_cast<int>
    - OSR_GDS
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetEC
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::SetPolyconic
    - strstr
    - OGRSpatialReference::SetStatePlane
    - OGRSpatialReference::importFromWkt
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetWellKnownGeogCS
    - ESRIToUSGSZone
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromESRI(char **papszPrj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:683,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:693,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:698,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:703,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - pszDictFile
    - CSName
    - code
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 717
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 717
    functionName: FindCodeFromDict
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    - VSIFCloseL
    - strncpy
    - VSIFOpenL
    - strstr
    linkageType: ''
    returnType: int
    signature: "int FindCodeFromDict(const char *pszDictFile, const char *CSName,\n
      \                           char *code)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindCodeFromDict
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:735,1
    - Dst: OGRSpatialReference::importFromDict
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:738,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:749,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:751,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:751,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:816,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:819,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:821,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:823,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:823,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:826,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:826,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:828,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:830,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:832,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:832,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:835,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:835,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:836,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:846,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:846,1
    - Dst: OGRSpatialReference::importFromDict
      Src: /src/gdal/ogr/ogr_srs_esri.cpp:847,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 82
    argCount: 5
    argNames:
    - code
    - datumName
    - unitsName
    - pcsCode
    - csName
    argTypes:
    - int
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 850
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 850
    functionName: OGRSpatialReference::ImportFromESRIStatePlaneWKT
    functionSourceFile: /src/gdal/ogr/ogr_srs_esri.cpp
    functionUses: 0
    functionsReached:
    - FindCodeFromDict
    - static_cast<int>
    - OGRSpatialReference::importFromDict
    - EQUAL
    - snprintf
    - strstr
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::ImportFromESRIStatePlaneWKT(int code,\n
      \                                                       const char *datumName,\n
      \                                                       const char *unitsName,\n
      \                                                       int pcsCode,\n                                                        const
      char *csName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRTriangulatedSurface
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: OGRTriangulatedSurface::OGRTriangulatedSurface
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRTriangulatedSurface::OGRTriangulatedSurface(\n    const OGRTriangulatedSurface
      &other)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface::operator=
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:51,1
    - Dst: OGRTriangulatedSurface::addGeometry
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRTriangulatedSurface
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: '&

      OGRTriangulatedSurface::operator=(const OGRTriangulatedSurface &other)'
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRTriangulatedSurface::addGeometry
    - OGRSurface::operator=
    linkageType: ''
    returnType: OGRTriangulatedSurface
    signature: 'OGRTriangulatedSurface &

      OGRTriangulatedSurface::operator=(const OGRTriangulatedSurface &other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: OGRTriangulatedSurface::clone
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    linkageType: ''
    returnType: OGRTriangulatedSurface
    signature: OGRTriangulatedSurface *OGRTriangulatedSurface::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRTriangulatedSurface::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRTriangulatedSurface::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: OGRTriangulatedSurface::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRTriangulatedSurface::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eSubType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: OGRTriangulatedSurface::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRTriangulatedSurface::isCompatibleSubType(OGRwkbGeometryType
      eSubType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: OGRTriangulatedSurface::getSubGeometryName
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRTriangulatedSurface::getSubGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: OGRTriangulatedSurface::getSubGeometryType
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRTriangulatedSurface::getSubGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:151,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:151,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:155,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:155,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:158,1
    - Dst: OGRPolyhedralSurface::addGeometry
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poNewGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: OGRTriangulatedSurface::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::addGeometry
    - EQUAL
    - OGRGeometry*::toPolygon
    - OGRTriangle::OGRTriangle
    - addGeometryDirectly
    - OGRGeometry*::getGeometryName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRTriangulatedSurface::addGeometry(const OGRGeometry *poNewGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: OGRTriangulatedSurface::GetCasterToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPolyhedralSurfaceCastToMultiPolygon
    signature: OGRPolyhedralSurfaceCastToMultiPolygon OGRTriangulatedSurface::GetCasterToMultiPolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:193,1
    - Dst: OGRMultiPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:194,1
    - Dst: OGRPolyhedralSurface*::getSpatialReference
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:194,1
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:198,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poTS
    argTypes:
    - OGRPolyhedralSurface*
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: OGRTriangulatedSurface::CastToMultiPolygonImpl
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::assignSpatialReference
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRSurface::CastToPolygon
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRPolyhedralSurface*::getSpatialReference
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: 'OGRMultiPolygon *

      OGRTriangulatedSurface::CastToMultiPolygonImpl(OGRPolyhedralSurface *poTS)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:226,1
    - Dst: OGRPolyhedralSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:227,1
    - Dst: OGRTriangulatedSurface*::getSpatialReference
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:227,1
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:230,1
    - Dst: OGRPolyhedralSurface*::oMP::addGeometryDirectly
      Src: /src/gdal/ogr/ogrtriangulatedsurface.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poTS
    argTypes:
    - OGRTriangulatedSurface*
    constantsTouched: []
    func_position:
      end: 236
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: OGRTriangulatedSurface::CastToPolyhedralSurface
    functionSourceFile: /src/gdal/ogr/ogrtriangulatedsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRSurface::CastToPolygon
    - OGRPolyhedralSurface*::assignSpatialReference
    - OGRTriangulatedSurface*::getSpatialReference
    - OGRPolyhedralSurface*::oMP::addGeometryDirectly
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: 'OGRPolyhedralSurface *

      OGRTriangulatedSurface::CastToPolyhedralSurface(OGRTriangulatedSurface *poTS)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogr_core.h:47,1
    - Dst: MinX
      Src: /src/gdal/ogr/ogr_core.h:48,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:48,1
    - Dst: MaxX
      Src: /src/gdal/ogr/ogr_core.h:49,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:49,1
    - Dst: MinY
      Src: /src/gdal/ogr/ogr_core.h:50,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:50,1
    - Dst: MaxY
      Src: /src/gdal/ogr/ogr_core.h:51,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:51,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:85,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:96,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:97,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:98,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:99,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:106,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:107,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:108,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:109,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogr_core.h:116,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogr_core.h:118,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:120,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:121,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:122,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:123,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogr_core.h:135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 176
    functionName: OGREnvelope
    functionSourceFile: /src/gdal/ogr/ogr_core.h
    functionUses: 1
    functionsReached:
    - MinX
    - MIN
    - cpl::infinity
    - MAX
    - OGREnvelope
    - Intersects
    - MaxX
    - MinY
    - IsInit
    - MaxY
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGREnvelope
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogr_core.h:202,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogr_core.h:203,1
    - Dst: MinZ
      Src: /src/gdal/ogr/ogr_core.h:203,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:203,1
    - Dst: MaxZ
      Src: /src/gdal/ogr/ogr_core.h:204,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:204,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogr_core.h:220,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogr_core.h:220,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogr_core.h:237,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:247,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:248,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:249,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:250,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:251,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:252,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:259,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:260,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:261,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:262,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:269,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:270,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:271,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:272,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:273,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:274,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogr_core.h:281,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogr_core.h:283,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:285,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:286,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:287,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:288,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogr_core.h:289,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogr_core.h:290,1
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogr_core.h:304,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 324
    functionName: OGREnvelope3D
    functionSourceFile: /src/gdal/ogr/ogr_core.h
    functionUses: 4
    functionsReached:
    - IsInit
    - std::isfinite
    - MIN
    - cpl::infinity
    - MaxZ
    - OGREnvelope3D
    - MAX
    - OGREnvelope
    - Intersects
    - MinZ
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGREnvelope3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:75,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:76,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:77,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:77,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:86,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:86,1
    - Dst: proj_ellipsoid_get_parameters
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:88,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:88,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - nCode
    - ppszName
    - pdfSemiMajor
    - pdfInvFlattening
    argTypes:
    - int
    - char**
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: OSRGetEllipsoidInfo
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 4
    functionsReached:
    - proj_ellipsoid_get_parameters
    - CPLStrdup
    - proj_destroy
    - CPLString::Printf
    - CPLString::c_str
    - OSRGetProjTLSContext
    - proj_get_name
    - proj_create_from_database
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRGetEllipsoidInfo(int nCode, char **ppszName, double *pdfSemiMajor,\n
      \                          double *pdfInvFlattening)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:157,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:163,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:167,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:169,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:170,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:175,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:177,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:178,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:178,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:187,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:199,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:199,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:204,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:206,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:207,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:209,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:210,1
    - Dst: OGR_SRSNode*::DestroyChild
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:212,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - nZone
    - bNAD83
    - pszOverrideUnitName
    - dfOverrideUnit
    argTypes:
    - int
    - int
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 217
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 217
    functionName: OGRSpatialReference::SetStatePlane
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 2
    functionsReached:
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - OGR_SRSNode*::DestroyChild
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::SetNormProjParm
    - snprintf
    - OGRSpatialReference::Clear
    - fabs
    - CPLError
    - OGRSpatialReference::SetLinearUnits
    - OGRSpatialReference::GetAttrNode
    - OGRSpatialReference::GetLinearUnits
    - OGR_SRSNode*::FindChild
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetStatePlane(int nZone, int bNAD83,\n
      \                                         const char *pszOverrideUnitName,\n
      \                                         double dfOverrideUnit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:232,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - nZone
    - bNAD83
    argTypes:
    - OGRSpatialReferenceH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: OSRSetStatePlane
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetStatePlane(OGRSpatialReferenceH hSRS, int nZone, int bNAD83)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:253,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - nZone
    - bNAD83
    - pszOverrideUnitName
    - dfOverrideUnit
    argTypes:
    - OGRSpatialReferenceH
    - int
    - int
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: OSRSetStatePlaneWithUnits
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetStatePlaneWithUnits(OGRSpatialReferenceH hSRS, int nZone,\n
      \                                int bNAD83, const char *pszOverrideUnitName,\n
      \                                double dfOverrideUnit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:296,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:296,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:297,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:298,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:302,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:305,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:305,1
    - Dst: OGRSpatialReference::GetUTMZone
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:316,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:325,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:325,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:329,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:331,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:333,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:333,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:336,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:338,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:338,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:341,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:343,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:343,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:346,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:348,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:365,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:366,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:367,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:367,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:368,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:368,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:369,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:369,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:370,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:370,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:371,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:371,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:372,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:372,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:376,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:379,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:387,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:387,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:390,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:390,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 394
    functionName: OGRSpatialReference::AutoIdentifyEPSG
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - OGRSpatialReference::GetProjParm
    - OGRSpatialReference::GetLinearUnits
    - OGRSpatialReference::SetAuthority
    - EQUAL
    - OGRSpatialReference::GetAttrValue
    - OGRSpatialReference::GetAuthorityCode
    - OGRSpatialReference::GetUTMZone
    - OGRSpatialReference::GetNormProjParm
    - fabs
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::AutoIdentifyEPSG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:413,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_fromepsg.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: OSRAutoIdentifyEPSG
    functionSourceFile: /src/gdal/ogr/ogr_fromepsg.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRAutoIdentifyEPSG(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:41,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:41,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:42,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:42,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - poLine1
    - iPoint1
    - poLine2
    - iPoint2
    - pdfDistance
    argTypes:
    - OGRLineString*
    - int
    - OGRLineString*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: CheckPoints
    functionSourceFile: /src/gdal/ogr/ograssemblepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRLineString*::getY
    linkageType: ''
    returnType: bool
    signature: "bool CheckPoints(OGRLineString *poLine1, int iPoint1,\n                        OGRLineString
      *poLine2, int iPoint2,\n                        double *pdfDistance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:94,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:95,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:95,1
    - Dst: OGRLinearRing*::addSubLineString
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - poRing
    - poLine
    - bReverse
    - dfTolerance
    argTypes:
    - OGRLinearRing*
    - OGRLineString*
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: AddEdgeToRing
    functionSourceFile: /src/gdal/ogr/ograssemblepolygon.cpp
    functionUses: 0
    functionsReached:
    - CheckPoints
    - OGRLinearRing*::getNumPoints
    - OGRLinearRing*::addSubLineString
    linkageType: ''
    returnType: void
    signature: "void AddEdgeToRing(OGRLinearRing *poRing, OGRLineString *poLine,\n
      \                         bool bReverse, double dfTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:140,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:141,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:141,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:143,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:145,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:149,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:156,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:160,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:168,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:179,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:180,1
    - Dst: std::list::push_back
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:182,1
    - Dst: std::list::empty
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:189,1
    - Dst: std::list::front
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:196,1
    - Dst: std::list::erase
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:197,1
    - Dst: std::list::begin
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:197,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:204,1
    - Dst: AddEdgeToRing
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:206,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:217,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:217,1
    - Dst: std::list::empty
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:219,1
    - Dst: std::list::begin
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:235,1
    - Dst: std::list::end
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:235,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:240,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:240,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:247,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:247,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:248,1
    - Dst: AddEdgeToRing
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:263,1
    - Dst: std::list::erase
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:265,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:277,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:277,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:280,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:283,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:283,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:283,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:284,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:284,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:284,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:285,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:285,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:299,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:299,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:302,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:302,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:302,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:303,1
    - Dst: CheckPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:305,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:305,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:311,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:311,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:311,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:312,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:312,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:316,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:326,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:326,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:328,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:337,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:342,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:342,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:346,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograssemblepolygon.cpp:360,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 90
    argCount: 5
    argNames:
    - hLines
    - bBestEffort
    - bAutoClose
    - dfTolerance
    - peErr
    argTypes:
    - OGRGeometryH
    - CPL_UNUSED
    - int
    - double
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 361
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 361
    functionName: OGRBuildPolygonFromEdges
    functionSourceFile: /src/gdal/ogr/ograssemblepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::setPoint
    - getEnvelope
    - std::vector::size
    - std::list::erase
    - std::list::push_back
    - CPLDebug
    - OGRLinearRing*::getY
    - OGRLineString*::getNumPoints
    - std::list::empty
    - OGRLinearRing*::getX
    - CPLError
    - std::vector::push_back
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::addRingDirectly
    - ToHandle
    - std::list::begin
    - wkbFlatten
    - std::list::front
    - OGRGeometry*::getGeometryType
    - OGRLinearRing*::getNumPoints
    - getGeometryType
    - FromHandle
    - static_cast<int>
    - OGRLinearRing::OGRLinearRing
    - OGRGeometry*::toGeometryCollection
    - std::list::end
    - OGRLinearRing*::getZ
    - OGRGeometryCollection*::getGeometryRef
    - CheckPoints
    - OGRLinearRing*::addPoint
    - AddEdgeToRing
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGRBuildPolygonFromEdges(OGRGeometryH hLines,\n                                      CPL_UNUSED
      int bBestEffort,\n                                      int bAutoClose, double
      dfTolerance,\n                                      OGRErr *peErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/gdal/ogr/ogrcircularstring.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x0
    - y0
    - x1
    - y1
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: dist
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double dist(double x0, double y0, double x1, double y1)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: OGRCircularString::OGRCircularString
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCircularString::OGRCircularString(const OGRCircularString &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::operator=
      Src: /src/gdal/ogr/ogrcircularstring.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCircularString
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: '&OGRCircularString::operator=(const OGRCircularString &other)'
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::operator=
    linkageType: ''
    returnType: OGRCircularString
    signature: OGRCircularString &OGRCircularString::operator=(const OGRCircularString
      &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: OGRCircularString::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRCircularString::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: OGRCircularString::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRCircularString::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrcircularstring.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: OGRCircularString::clone
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::OGRCircularString
    linkageType: ''
    returnType: OGRCircularString
    signature: OGRCircularString *OGRCircularString::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::importFromWkb
      Src: /src/gdal/ogr/ogrcircularstring.cpp:120,1
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:124,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: OGRCircularString::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::importFromWkb
    - empty
    - OGRCircularString::IsValidFast
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCircularString::importFromWkb(const unsigned char *pabyData,\n
      \                                       size_t nSize, OGRwkbVariant eWkbVariant,\n
      \                                       size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:144,1
    - Dst: OGRwkbExportOptions
      Src: /src/gdal/ogr/ogrcircularstring.cpp:150,1
    - Dst: OGRSimpleCurve::exportToWkb
      Src: /src/gdal/ogr/ogrcircularstring.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: OGRCircularString::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRwkbExportOptions
    - OGRSimpleCurve::exportToWkb
    - OGRCircularString::IsValidFast
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCircularString::exportToWkb(unsigned char *pabyData,\n                               const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::importFromWkt
      Src: /src/gdal/ogr/ogrcircularstring.cpp:168,1
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:171,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: OGRCircularString::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::importFromWkt
    - empty
    - OGRCircularString::IsValidFast
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCircularString::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:187,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrcircularstring.cpp:191,1
    - Dst: OGRSimpleCurve::exportToWkt
      Src: /src/gdal/ogr/ogrcircularstring.cpp:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: OGRCircularString::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - OGRSimpleCurve::exportToWkt
    - OGRCircularString::IsValidFast
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRCircularString::exportToWkt(const OGRWktOptions &opts,\n
      \                                          OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:223,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcircularstring.cpp:226,1
    - Dst: dist
      Src: /src/gdal/ogr/ogrcircularstring.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 234
    functionName: OGRCircularString::get_Length
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::GetCurveParameters
    - dist
    - fabs
    linkageType: ''
    returnType: double
    signature: double OGRCircularString::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:243,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:262,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:265,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:265,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:267,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrcircularstring.cpp:276,1
    - Dst: max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:284,1
    - Dst: max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:287,1
    - Dst: min
      Src: /src/gdal/ogr/ogrcircularstring.cpp:290,1
    - Dst: min
      Src: /src/gdal/ogr/ogrcircularstring.cpp:293,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcircularstring.cpp:296,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 302
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 302
    functionName: OGRCircularString::ExtendEnvelopeWithCircular
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - min
    - max
    - CPLAssert
    - swap
    - OGRCircularString::IsValidFast
    - OGRGeometryFactory::GetCurveParameters
    - std::isnan
    linkageType: ''
    returnType: void
    signature: "void OGRCircularString::ExtendEnvelopeWithCircular(\n    OGREnvelope
      *psEnvelope) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::getEnvelope
      Src: /src/gdal/ogr/ogrcircularstring.cpp:311,1
    - Dst: OGRCircularString::ExtendEnvelopeWithCircular
      Src: /src/gdal/ogr/ogrcircularstring.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: OGRCircularString::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::ExtendEnvelopeWithCircular
    - OGRSimpleCurve::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCircularString::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::getEnvelope
      Src: /src/gdal/ogr/ogrcircularstring.cpp:322,1
    - Dst: OGRCircularString::ExtendEnvelopeWithCircular
      Src: /src/gdal/ogr/ogrcircularstring.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: OGRCircularString::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::ExtendEnvelopeWithCircular
    - OGRSimpleCurve::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCircularString::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:332,1
    - Dst: reversePoints
      Src: /src/gdal/ogr/ogrcircularstring.cpp:343,1
    - Dst: reversePoints
      Src: /src/gdal/ogr/ogrcircularstring.cpp:345,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:367,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:369,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:374,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:385,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:388,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:402,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:408,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:412,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:414,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:421,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:424,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:438,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:445,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:460,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:461,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:463,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:472,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:476,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:482,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:484,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrcircularstring.cpp:491,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrcircularstring.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:494,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:504,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:508,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:515,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrcircularstring.cpp:517,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcircularstring.cpp:519,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:519,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:520,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:520,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcircularstring.cpp:523,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:523,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:523,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:527,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:527,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:529,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:529,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:530,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrcircularstring.cpp:531,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrcircularstring.cpp:532,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:535,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrcircularstring.cpp:536,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrcircularstring.cpp:536,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrcircularstring.cpp:537,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 91
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 541
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 541
    functionName: OGRCircularString::segmentize
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - std::vector::push_back
    - static_cast<int>
    - CPLError
    - memcpy
    - std::vector::size
    - std::vector::emplace_back
    - static_cast<OGRRawPoint *>
    - CPLAssert
    - CPLRealloc
    - static_cast<double *>
    - OGRCircularString::IsValidFast
    - OGRGeometryFactory::GetCurveParameters
    - reversePoints
    - std::vector::empty
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool OGRCircularString::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartPoint
      Src: /src/gdal/ogr/ogrcircularstring.cpp:554,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:578,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:596,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:597,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrcircularstring.cpp:599,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrcircularstring.cpp:600,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:621,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:623,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrcircularstring.cpp:626,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrcircularstring.cpp:627,1
    - Dst: EndPoint
      Src: /src/gdal/ogr/ogrcircularstring.cpp:638,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - dfDistance
    - poPoint
    argTypes:
    - double
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 639
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 639
    functionName: OGRCircularString::Value
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - getCoordinateDimension
    - StartPoint
    - OGRPoint*::setX
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - OGRGeometryFactory::GetCurveParameters
    - EndPoint
    linkageType: ''
    returnType: void
    signature: void OGRCircularString::Value(double dfDistance, OGRPoint *poPoint)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrcircularstring.cpp:649,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcircularstring.cpp:650,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcircularstring.cpp:650,1
    - Dst: OGRGeometryFactory::curveToLineString
      Src: /src/gdal/ogr/ogrcircularstring.cpp:655,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrcircularstring.cpp:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 664
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 664
    functionName: OGRCircularString::CurveToLine
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::addSubLineString
    - getSpatialReference
    - OGRLineString*::assignSpatialReference
    - OGRGeometryFactory::curveToLineString
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *\nOGRCircularString::CurveToLine(double dfMaxAngleStepSizeDegrees,\n
      \                              const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: OGRCircularString::IsValidFast
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 6
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCircularString::IsValidFast() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsValidFast
      Src: /src/gdal/ogr/ogrcircularstring.cpp:690,1
    - Dst: OGRGeometry::IsValid
      Src: /src/gdal/ogr/ogrcircularstring.cpp:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 691
    functionName: OGRCircularString::IsValid
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::IsValid
    - OGRCircularString::IsValidFast
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCircularString::IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: OGRCircularString::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCircularString::hasCurveGeometry(int /* bLookForNonLinear
      */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::CurveToLine
      Src: /src/gdal/ogr/ogrcircularstring.cpp:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: OGRCircularString::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::CurveToLine
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRCircularString::getLinearGeometry(double dfMaxAngleStepSizeDegrees,\n
      \                                    const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:721,1
    - Dst: OGRCurve*::getGeometryName
      Src: /src/gdal/ogr/ogrcircularstring.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: CasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCurve*::getGeometryName
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *CasterToLineString(OGRCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 730
    functionName: OGRCircularString::GetCasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLineString
    signature: OGRCurveCasterToLineString OGRCircularString::GetCasterToLineString()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:738,1
    - Dst: OGRCurve*::getGeometryName
      Src: /src/gdal/ogr/ogrcircularstring.cpp:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: CasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCurve*::getGeometryName
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *CasterToLinearRing(OGRCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: OGRCircularString::GetCasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLinearRing
    signature: OGRCurveCasterToLinearRing OGRCircularString::GetCasterToLinearRing()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrcircularstring.cpp:758,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcircularstring.cpp:758,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrcircularstring.cpp:770,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcircularstring.cpp:770,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:784,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:785,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:787,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcircularstring.cpp:788,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcircularstring.cpp:790,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcircularstring.cpp:790,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcircularstring.cpp:791,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - cx
    - cy
    - square_R
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 801
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 801
    functionName: OGRCircularString::IsFullCircle
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - get_IsClosed
    - getNumPoints
    - getY
    - fabs
    - OGRGeometryFactory::GetCurveParameters
    - getX
    linkageType: ''
    returnType: int
    signature: "int OGRCircularString::IsFullCircle(double &cx, double &cy,\n                                    double
      &square_R) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrcircularstring.cpp:811,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrcircularstring.cpp:825,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcircularstring.cpp:833,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrcircularstring.cpp:833,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrcircularstring.cpp:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 838
    functionName: OGRCircularString::get_AreaOfCurveSegments
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::GetCurveParameters
    - sin
    - getNumPoints
    - fabs
    linkageType: ''
    returnType: double
    signature: double OGRCircularString::get_AreaOfCurveSegments() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:848,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcircularstring.cpp:848,1
    - Dst: OGRCircularString::IsFullCircle
      Src: /src/gdal/ogr/ogrcircularstring.cpp:855,1
    - Dst: IsConvex
      Src: /src/gdal/ogr/ogrcircularstring.cpp:861,1
    - Dst: OGRCircularString::get_AreaOfCurveSegments
      Src: /src/gdal/ogr/ogrcircularstring.cpp:867,1
    - Dst: OGRCircularString::CurveToLine
      Src: /src/gdal/ogr/ogrcircularstring.cpp:872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 877
    functionName: OGRCircularString::get_Area
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - get_IsClosed
    - IsEmpty
    - OGRCircularString::IsFullCircle
    - OGRCircularString::get_AreaOfCurveSegments
    - IsConvex
    - OGRCircularString::CurveToLine
    linkageType: ''
    returnType: double
    signature: double OGRCircularString::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:886,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcircularstring.cpp:889,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcircularstring.cpp:891,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcircularstring.cpp:896,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:898,1
    - Dst: OGRCircularString::CurveToLine
      Src: /src/gdal/ogr/ogrcircularstring.cpp:898,1
    - Dst: auto::get_GeodesicArea
      Src: /src/gdal/ogr/ogrcircularstring.cpp:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 900
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 900
    functionName: OGRCircularString::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRLineString>
    - get_IsClosed
    - IsEmpty
    - auto::get_GeodesicArea
    - getSpatialReference
    - CPLError
    - OGRCircularString::CurveToLine
    linkageType: ''
    returnType: double
    signature: "double OGRCircularString::get_GeodesicArea(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrcircularstring.cpp:909,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcircularstring.cpp:913,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrcircularstring.cpp:915,1
    - Dst: OGRCircularString::CurveToLine
      Src: /src/gdal/ogr/ogrcircularstring.cpp:915,1
    - Dst: auto::get_GeodesicLength
      Src: /src/gdal/ogr/ogrcircularstring.cpp:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 917
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 917
    functionName: OGRCircularString::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRLineString>
    - IsEmpty
    - auto::get_GeodesicLength
    - getSpatialReference
    - OGRCircularString::CurveToLine
    linkageType: ''
    returnType: double
    signature: "double OGRCircularString::get_GeodesicLength(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsFullCircle
      Src: /src/gdal/ogr/ogrcircularstring.cpp:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 937
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 937
    functionName: OGRCircularString::ContainsPoint
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::IsFullCircle
    linkageType: ''
    returnType: int
    signature: int OGRCircularString::ContainsPoint(const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::IsFullCircle
      Src: /src/gdal/ogr/ogrcircularstring.cpp:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 955
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 955
    functionName: OGRCircularString::IntersectsPoint
    functionSourceFile: /src/gdal/ogr/ogrcircularstring.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::IsFullCircle
    linkageType: ''
    returnType: int
    signature: int OGRCircularString::IntersectsPoint(const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:147,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:151,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:165,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:167,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:169,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:175,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:179,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:193,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:195,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:197,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:204,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:210,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:215,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:217,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:219,1
    - Dst: const_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:219,1
    - Dst: const_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:220,1
    - Dst: const_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:221,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:223,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:225,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:231,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:235,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:249,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:251,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:253,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:256,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 8
    argNames:
    - poGC
    - poMP
    - poLastPoly
    - nPartType
    - nPartPoints
    - padfX
    - padfY
    - padfZ
    argTypes:
    - OGRGeometryCollection*
    - OGRMultiPolygon*
    - OGRPolygon*
    - int
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 257
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 257
    functionName: OGRCreateFromMultiPatchPart
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRLinearRing*::setPoints
    - OGRLinearRing::OGRLinearRing
    - OGRTriangulatedSurface*::addGeometryDirectly
    - CPLDebug
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - OGRMultiPolygon::OGRMultiPolygon
    - const_cast<double *>
    - OGRPolygon*::addRingDirectly
    - OGRTriangle::OGRTriangle
    - OGRPolygon::OGRPolygon
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: void
    signature: "void OGRCreateFromMultiPatchPart(OGRGeometryCollection *poGC,\n                                        OGRMultiPolygon
      *&poMP,\n                                        OGRPolygon *&poLastPoly, int
      nPartType,\n                                        int nPartPoints, const double
      *padfX,\n                                        const double *padfY,\n                                        const
      double *padfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:284,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:285,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:286,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:287,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:288,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:289,1
    - Dst: std::map<std::vector<double>, std::pair<int, int>>::find
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:290,1
    - Dst: std::map<std::vector<double>, std::pair<int, int>>::end
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:291,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:293,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - padfX
    - padfY
    - padfZ
    - nPart
    - oMapEdges
    argTypes:
    - double*
    - double*
    - double*
    - int
    - std::map<std::vector<double>, std::pair<int, int>>
    constantsTouched: []
    func_position:
      end: 304
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 304
    functionName: RegisterEdge
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - std::map<std::vector<double>, std::pair<int, int>>::end
    - std::pair
    - std::map<std::vector<double>, std::pair<int, int>>::find
    - CPLAssert
    - std::vector::push_back
    linkageType: ''
    returnType: bool
    signature: "bool RegisterEdge(const double *padfX, const double *padfY, const
      double *padfZ,\n             int nPart,\n             std::map<std::vector<double>,
      std::pair<int, int>> &oMapEdges)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:330,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:332,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:335,1
    - Dst: std::map<std::vector<double>, std::pair<int, int>>::find
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:336,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:337,1
    - Dst: std::map<std::vector<double>, std::pair<int, int>>::end
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - padfX
    - padfY
    - padfZ
    - oMapEdges
    argTypes:
    - double*
    - double*
    - double*
    - std::map<std::vector<double>, std::pair<int, int>>
    constantsTouched: []
    func_position:
      end: 339
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 339
    functionName: GetEdgeOwners
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - CPLAssert
    - std::map<std::vector<double>, std::pair<int, int>>::end
    - std::map<std::vector<double>, std::pair<int, int>>::find
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> &GetEdgeOwners(\n    const double *padfX, const
      double *padfY, const double *padfZ,\n    const std::map<std::vector<double>,
      std::pair<int, int>> &oMapEdges)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:372,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:373,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:374,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:375,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:376,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:377,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:378,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:379,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:380,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:403,1
    - Dst: RegisterEdge
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:405,1
    - Dst: RegisterEdge
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:407,1
    - Dst: RegisterEdge
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:410,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:432,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:433,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:436,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:437,1
    - Dst: GetEdgeOwners
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:442,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:448,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:448,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:450,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:454,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:454,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:455,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:455,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:457,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:460,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:460,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:474,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:476,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:482,1
    - Dst: OGRCreateFromMultiPatchPart
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:505,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:512,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:516,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:518,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:520,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:521,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 71
    argCount: 7
    argNames:
    - nParts
    - panPartStart
    - panPartType
    - nPoints
    - padfX
    - padfY
    - padfZ
    argTypes:
    - int
    - GInt32*
    - GInt32*
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 528
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 528
    functionName: OGRCreateFromMultiPatch
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRCreateFromMultiPatchPart
    - std::set::size
    - OGRTriangulatedSurface*::addGeometryDirectly
    - std::set::insert
    - std::set::erase
    - std::isnan
    - OGRGeometryCollection*::addGeometryDirectly
    - GetEdgeOwners
    - OGRGeometryCollection*::getNumGeometries
    - OGRTriangle::OGRTriangle
    - RegisterEdge
    - static_cast<int>
    - OGRMultiPolygon*::addGeometryDirectly
    - std::set::find
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - OGRGeometryCollection*::removeGeometry
    - std::set::empty
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometryCollection*::getGeometryRef
    - std::set::end
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRCreateFromMultiPatch(int nParts, const GInt32 *panPartStart,\n
      \                                    const GInt32 *panPartType, int nPoints,\n
      \                                    const double *padfX, const double *padfY,\n
      \                                    const double *padfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:544,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:546,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:546,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:550,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:555,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:555,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:573,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:574,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:585,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:586,1
    - Dst: std::unique_ptr::getNumInteriorRings
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:587,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:590,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:601,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:604,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:615,1
    - Dst: OGRLineString*::IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:619,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:622,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:634,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:635,1
    - Dst: std::unique_ptr::IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:639,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:646,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:667,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:667,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:683,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:685,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:687,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:693,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:695,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:697,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:702,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:704,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:706,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:711,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:713,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:715,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:720,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:722,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:724,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:729,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:731,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:735,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:740,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:742,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:744,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:815,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:816,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:824,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:829,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:830,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:834,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:839,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:843,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:845,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:846,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:848,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:850,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:860,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:861,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:862,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:863,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:864,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:867,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:870,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:877,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:878,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:881,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:884,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:904,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:907,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:908,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:912,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:913,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:918,1
    - Dst: auto::getPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:922,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:922,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:923,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:929,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:938,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:942,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:943,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:945,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:947,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:956,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:959,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:960,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:964,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:965,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:990,1
    - Dst: auto::getExteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:990,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:991,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:993,1
    - Dst: std::unique_ptr::reversePoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:994,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:998,1
    - Dst: auto::getInteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:998,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:999,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1001,1
    - Dst: std::unique_ptr::reversePoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1002,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1009,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1014,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1015,1
    - Dst: std::unique_ptr::getPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1018,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1018,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1019,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1025,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1034,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1038,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1039,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1041,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1043,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1062,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1065,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1066,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1081,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1087,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1088,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1092,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1097,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1105,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1107,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1108,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1110,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1112,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1129,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1132,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1133,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1137,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1138,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1149,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1155,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1156,1
    - Dst: auto::getPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1159,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1159,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1160,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1166,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1175,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1179,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1180,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1182,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1184,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1204,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1207,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1208,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1212,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1213,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1235,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1246,1
    - Dst: auto::getExteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1246,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1247,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1249,1
    - Dst: std::unique_ptr::reversePoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1250,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1254,1
    - Dst: auto::getInteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1254,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1255,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1257,1
    - Dst: std::unique_ptr::reversePoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1258,1
    - Dst: std::unique_ptr::get_IsClosed
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1264,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1268,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1269,1
    - Dst: std::unique_ptr::getPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1272,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1272,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1273,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1279,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1288,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1292,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1293,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1295,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1297,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1320,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1321,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1324,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1327,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 411
    argCount: 3
    argNames:
    - poGeom
    - ppabyShape
    - pnBytes
    argTypes:
    - OGRGeometry*
    - GByte**
    - int*
    constantsTouched: []
    func_position:
      end: 1332
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 1332
    functionName: OGRWriteToShapeBin
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::getNumInteriorRings
    - OGRLineString*::IsEmpty
    - OGRGeometry*::toMultiPoint
    - assert
    - OGR_SWAP
    - OGRLineString*::getNumPoints
    - auto::getPoints
    - CPL_SWAPDOUBLE
    - OGRGeometry*::toMultiPolygon
    - std::unique_ptr::reversePoints
    - std::unique_ptr::reset
    - wkbFlatten
    - CPL_LSBWORD32
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - reinterpret_cast<double *>
    - IsEmpty
    - std::unique_ptr::getPoints
    - getNumPoints
    - std::unique_ptr::isClockwise
    - auto::getExteriorRing
    - static_cast<GByte *>
    - std::unique_ptr::get_IsClosed
    - std::unique_ptr::closeRings
    - OGRGeometry*::toLineString
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - auto::IsEmpty
    - reinterpret_cast<OGRRawPoint *>
    - std::unique_ptr::IsEmpty
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    - auto::getInteriorRing
    - memcpy
    - CPL_LSBPTR32
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWriteToShapeBin(const OGRGeometry *poGeom, GByte **ppabyShape,\n
      \                         int *pnBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1345,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1345,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1354,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1355,1
    - Dst: std::unique_ptr::toMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1360,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1363,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1364,1
    - Dst: std::unique_ptr::clone
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1364,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1365,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1366,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1366,1
    - Dst: std::unique_ptr::toMultiPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1368,1
    - Dst: std::vector<int>::clear
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1377,1
    - Dst: std::vector<int>::clear
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1378,1
    - Dst: std::vector<OGRRawPoint>::clear
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1380,1
    - Dst: std::vector<double>::clear
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1381,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1386,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1390,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1391,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1406,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1407,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1408,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1409,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1410,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1411,1
    - Dst: std::vector<OGRRawPoint>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1416,1
    - Dst: std::vector<double>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1417,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1418,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1419,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1420,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1429,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1430,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1431,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1432,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1433,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1434,1
    - Dst: std::vector<OGRRawPoint>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1439,1
    - Dst: std::vector<double>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1440,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1441,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1442,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1443,1
    - Dst: std::vector<int>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1453,1
    - Dst: std::vector<int>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1454,1
    - Dst: std::vector<OGRRawPoint>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1461,1
    - Dst: std::vector<double>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1462,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1465,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1466,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1467,1
    - Dst: std::vector<int>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1474,1
    - Dst: std::vector<int>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1475,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1482,1
    - Dst: getInteriorRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1487,1
    - Dst: std::vector<OGRRawPoint>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1490,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1490,1
    - Dst: std::vector<double>::resize
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1491,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1491,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1492,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1494,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1495,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1496,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1498,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 93
    argCount: 8
    argNames:
    - poGeomConst
    - bAllowSHPTTriangle
    - nParts
    - anPartStart
    - anPartType
    - nPoints
    - aoPoints
    - adfZ
    argTypes:
    - OGRGeometry*
    - int
    - int
    - std::vector<int>
    - std::vector<int>
    - int
    - std::vector<OGRRawPoint>
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 1512
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1512
    functionName: OGRCreateMultiPatch
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>
    - OGRLinearRing*::getY
    - getInteriorRing
    - OGRLinearRing*::getX
    - std::vector<OGRRawPoint>::clear
    - OGRGeometry*::clone
    - std::unique_ptr::clone
    - std::vector<int>::resize
    - std::vector<OGRRawPoint>::resize
    - wkbFlatten
    - std::vector<int>::clear
    - OGRGeometry*::getGeometryType
    - std::unique_ptr::toMultiPolygon
    - getExteriorRing
    - IsEmpty
    - OGRLinearRing*::getNumPoints
    - std::unique_ptr::getGeometryType
    - OGRGeometryFactory::forceToMultiPolygon
    - std::unique_ptr::closeRings
    - std::vector<double>::resize
    - std::unique_ptr::get
    - OGRLinearRing*::getZ
    - std::vector<double>::clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCreateMultiPatch(const OGRGeometry *poGeomConst,\n                           int
      bAllowSHPTTriangle, int &nParts,\n                           std::vector<int>
      &anPartStart,\n                           std::vector<int> &anPartType, int
      &nPoints,\n                           std::vector<OGRRawPoint> &aoPoints,\n
      \                          std::vector<double> &adfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateMultiPatch
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1527,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1550,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1550,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1555,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1556,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1557,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1561,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1562,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1563,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1564,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1565,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1568,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1571,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1576,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1577,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1581,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1582,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1588,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1594,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1598,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1599,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1599,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1602,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1605,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1611,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1612,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1613,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1616,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1620,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1621,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1621,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1623,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1626,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - poGeom
    - ppabyShape
    - pnBytes
    argTypes:
    - OGRGeometry*
    - GByte**
    - int*
    constantsTouched: []
    func_position:
      end: 1632
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1632
    functionName: OGRWriteMultiPatchToShapeBin
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRCreateMultiPatch
    - std::vector::empty
    - OGR_SWAP
    - CPL_SWAPDOUBLE
    - static_cast<GByte *>
    - CPLMalloc
    - memcpy
    - OGRGeometry*::getEnvelope
    - CPL_LSBWORD32
    - std::vector::data
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWriteMultiPatchToShapeBin(const OGRGeometry *poGeom,\n                                    GByte
      **ppabyShape, int *pnBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 7
    argNames:
    - dfPointOnArcX
    - dfPointOnArcY
    - dfCenterX
    - dfCenterY
    - dfRotationDeg
    - dfSemiMajor
    - dfSemiMinor
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1666
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1666
    functionName: GetAngleOnEllipse
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double GetAngleOnEllipse(double dfPointOnArcX, double dfPointOnArcY,\n
      \                               double dfCenterX, double dfCenterY,\n                                double
      dfRotationDeg,  // Ellipse rotation.\n                                double
      dfSemiMajor, double dfSemiMinor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRCompoundCurve>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1681,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1708,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1709,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1714,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1732,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1732,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1732,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1732,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1734,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1734,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1734,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1734,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1737,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1740,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1741,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1742,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1745,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1746,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1747,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1748,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1751,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1752,1
    - Dst: OGRCircularString*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1753,1
    - Dst: OGRCircularString*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1754,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1755,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1761,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1762,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1763,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1764,1
    - Dst: OGRCircularString*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1765,1
    - Dst: OGRCircularString*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1766,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1767,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1803,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1804,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1811,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1812,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1813,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1814,1
    - Dst: OGRCircularString*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1815,1
    - Dst: OGRCircularString*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1816,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1817,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1823,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1861,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1862,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1869,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1878,1
    - Dst: OGRLineString*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1882,1
    - Dst: OGRLineString*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1883,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1884,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1945,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1953,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1955,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1959,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1960,1
    - Dst: OGRLineString*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1965,1
    - Dst: OGRLineString*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1966,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1967,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1973,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1974,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1978,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1991,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1992,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:1996,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2006,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2006,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2007,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2008,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2008,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2009,1
    - Dst: reinterpret_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2010,1
    - Dst: OGR_G_ForceTo
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2010,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2011,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2011,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2014,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 128
    argCount: 10
    argNames:
    - nPartStartIdx
    - nPartPoints
    - pasCurves
    - nCurves
    - nFirstCurveIdx
    - padfX
    - padfY
    - padfZ
    - padfM
    - pnLastCurveIdx
    argTypes:
    - int
    - int
    - CurveSegment*
    - int
    - int
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 2015
      start: 1672
    functionDepth: 2
    functionLinenumber: 1672
    functionLinenumberEnd: 2015
    functionName: OGRShapeCreateCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRCompoundCurve>
    - OGRCircularString*::addPoint
    - OGR_GT_SetZ
    - OGR_G_ForceTo
    - OGRLineString*::getNumPoints
    - OGRLineString*::setMeasured
    - OGRCircularString::OGRCircularString
    - OGR_GT_SetM
    - OGRCircularString*::setMeasured
    - OGRLineString*::set3D
    - OGRPoint::getY
    - OGR_GT_HasZ
    - ToHandle
    - OGRLineString::OGRLineString
    - OGRCircularString*::set3D
    - OGRPoint::getX
    - OGRLineString*::setNumPoints
    - reinterpret_cast<OGRCurve *>
    - sin
    - OGR_GT_HasM
    - OGRLineString*::setPoints
    - auto::release
    - auto::addCurveDirectly
    - OGRGeometryFactory::approximateArcAngles
    - auto::getGeometryType
    - cos
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRCurve
    signature: "OGRCurve *OGRShapeCreateCompoundCurve(int nPartStartIdx, int nPartPoints,\n
      \                                            const CurveSegment *pasCurves,\n
      \                                            int nCurves, int nFirstCurveIdx,\n
      \                                            /* const */ double *padfX,\n                                             /*
      const */ double *padfY,\n                                             /* const
      */ double *padfZ,\n                                             /* const */
      double *padfM,\n                                             int *pnLastCurveIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2032,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2048,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2049,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2050,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2051,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2055,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2055,1
    - Dst: CPLZLibInflate
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2062,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2066,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2068,1
    - Dst: OGRCreateFromShapeBin
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2073,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2074,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2076,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2096,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2150,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2163,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2165,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2167,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2200,1
    - Dst: static_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2208,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2208,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2219,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2222,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2231,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2236,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2240,1
    - Dst: static_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2256,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2257,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2260,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2264,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2267,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2289,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2290,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2292,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2293,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2294,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2300,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2301,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2302,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2303,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2317,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2318,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2334,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2335,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2336,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2340,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2356,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2357,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2360,1
    - Dst: nCurves < 0 || nCurves >
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2362,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2364,1
    - Dst: static_cast<CurveSegment *>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2367,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2368,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2378,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2382,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2383,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2386,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2387,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2390,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2397,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2406,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2411,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2412,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2413,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2414,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2416,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2417,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2420,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2421,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2424,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2426,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2428,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2430,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2432,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2434,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2462,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2467,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2468,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2469,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2470,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2473,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2474,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2475,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2476,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2478,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2479,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2480,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2494,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2498,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2500,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2503,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2505,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2508,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2510,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2513,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2515,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2518,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2520,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2523,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2524,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2528,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2529,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2530,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2531,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2533,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2534,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2536,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2539,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2541,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2543,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2545,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2547,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2549,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2551,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2553,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2555,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2579,1
    - Dst: OGRShapeCreateCompoundCurve
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2603,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2609,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2612,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2625,1
    - Dst: OGRShapeCreateCompoundCurve
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2636,1
    - Dst: OGRMultiCurve*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2640,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2652,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2657,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2663,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2669,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2687,1
    - Dst: OGRShapeCreateCompoundCurve
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2691,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2696,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2707,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2712,1
    - Dst: OGRShapeCreateCompoundCurve
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2718,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2723,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2741,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2742,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2747,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2762,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2764,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2767,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2772,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2782,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2786,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2787,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2793,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2798,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2821,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2822,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2827,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2840,1
    - Dst: OGRCreateFromMultiPatch
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2852,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2856,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2857,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2858,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2859,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2860,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2861,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2862,1
    - Dst: set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2867,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2880,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2881,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2885,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2895,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2900,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2904,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2905,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2906,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2910,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2911,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2912,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2918,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2919,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2920,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2927,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2928,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2929,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2932,1
    - Dst: OGRMultiPoint*::set3D
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2935,1
    - Dst: OGRMultiPoint*::setMeasured
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2936,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2949,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2958,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2959,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2961,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2962,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2968,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2969,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2975,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2976,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2981,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2985,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2989,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2990,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:2995,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpgeogeometry.cpp:3001,1
    CyclomaticComplexity: 184
    EdgeCount: 184
    ICount: 472
    argCount: 3
    argNames:
    - pabyShape
    - ppoGeom
    - nBytes
    argTypes:
    - GByte*
    - OGRGeometry**
    - int
    constantsTouched: []
    func_position:
      end: 3005
      start: 2024
    functionDepth: 3
    functionLinenumber: 2024
    functionLinenumberEnd: 3005
    functionName: OGRCreateFromShapeBin
    functionSourceFile: /src/gdal/ogr/ogrpgeogeometry.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<OGRGeometry **>
    - OGRMultiPoint::OGRMultiPoint
    - OGRPoint*::setX
    - static_cast<CurveSegment *>
    - CPLDebug
    - OGRMultiPoint*::addGeometryDirectly
    - OGRPoint*::setY
    - CPLError
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - std::isnan
    - set3D
    - OGRLinearRing*::setPoints
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - nCurves < 0 || nCurves >
    - OGRLineString::OGRLineString
    - OGRMultiCurve*::addGeometryDirectly
    - OGRMultiLineString::OGRMultiLineString
    - OGRShapeCreateCompoundCurve
    - static_cast<int>
    - CPL_LSBPTR64
    - OGRLinearRing::OGRLinearRing
    - OGRMultiPoint*::set3D
    - OGRGeometryFactory::organizePolygons
    - OGRCurvePolygon*::addRingDirectly
    - static_cast<GInt32 *>
    - static_cast<GByte *>
    - OGRCreateFromShapeBin
    - CPLFree
    - CPLZLibInflate
    - OGRMultiLineString*::addGeometryDirectly
    - OGRMultiPoint*::setMeasured
    - OGRLineString*::setPoints
    - addRingDirectly
    - OGRMultiCurve::OGRMultiCurve
    - OGRCurvePolygon::OGRCurvePolygon
    - OGRPoint*::setM
    - VSI_MALLOC2_VERBOSE
    - VSIFree
    - OGRCreateFromMultiPatch
    - memcpy
    - CPL_LSBPTR32
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCreateFromShapeBin(GByte *pabyShape, OGRGeometry **ppoGeom,\n
      \                            int nBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: OGRMultiCurve::OGRMultiCurve
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiCurve::OGRMultiCurve(const OGRMultiCurve &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::operator=
      Src: /src/gdal/ogr/ogrmulticurve.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiCurve
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: '&OGRMultiCurve::operator=(const OGRMultiCurve &other)'
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::operator=
    linkageType: ''
    returnType: OGRMultiCurve
    signature: OGRMultiCurve &OGRMultiCurve::operator=(const OGRMultiCurve &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrmulticurve.cpp:67,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrmulticurve.cpp:70,1
    - Dst: WkbSize
      Src: /src/gdal/ogr/ogrmulticurve.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: OGRMultiCurve::clone
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - auto::WkbSize
    - OGRMultiCurve::OGRMultiCurve
    - WkbSize
    linkageType: ''
    returnType: OGRMultiCurve
    signature: OGRMultiCurve *OGRMultiCurve::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: OGRMultiCurve::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMultiCurve::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: OGRMultiCurve::getDimension
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMultiCurve::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: OGRMultiCurve::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMultiCurve::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrmulticurve.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: OGRMultiCurve::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_IsCurve
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiCurve::isCompatibleSubType(OGRwkbGeometryType eGeomType)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toMultiCurve
      Src: /src/gdal/ogr/ogrmulticurve.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - poCurve
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: OGRMultiCurve::addCurveDirectlyFromWkt
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiCurve
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiCurve::addCurveDirectlyFromWkt(OGRGeometry *poSelf,\n
      \                                             OGRCurve *poCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importCurveCollectionFromWkt
      Src: /src/gdal/ogr/ogrmulticurve.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: OGRMultiCurve::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - importCurveCollectionFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMultiCurve::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exportToWktInternal
      Src: /src/gdal/ogr/ogrmulticurve.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: OGRMultiCurve::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMultiCurve::exportToWkt(const OGRWktOptions &opts,\n
      \                                      OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::hasCurveGeometry
      Src: /src/gdal/ogr/ogrmulticurve.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OGRMultiCurve::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiCurve::hasCurveGeometry(int bLookForNonLinear) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrmulticurve.cpp:203,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrmulticurve.cpp:210,1
    - Dst: TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrmulticurve.cpp:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poMC
    argTypes:
    - OGRMultiCurve*
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: OGRMultiCurve::CastToMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrmulticurve.cpp
    functionUses: 1
    functionsReached:
    - TransferMembersAndDestroy
    - OGRMultiLineString::OGRMultiLineString
    - OGRCurve::CastToLineString
    linkageType: ''
    returnType: OGRMultiLineString
    signature: OGRMultiLineString *OGRMultiCurve::CastToMultiLineString(OGRMultiCurve
      *poMC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pabyData
    - poSR
    - ppoReturn
    - nBytes
    - eWkbVariant
    argTypes:
    - void*
    - OGRSpatialReference*
    - OGRGeometry**
    - size_t
    - OGRwkbVariant
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: OGRGeometryFactory::createFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 6
    functionsReached:
    - OGRGeometryFactory::createFromWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromWkb(const void *pabyData,\n                                         const
      OGRSpatialReference *poSR,\n                                         OGRGeometry
      **ppoReturn, size_t nBytes,\n                                         OGRwkbVariant
      eWkbVariant)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:141,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:145,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:155,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:172,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:181,1
    - Dst: OGRGeometry*::importFromWkb
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:189,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:201,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:202,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:202,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:204,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 6
    argNames:
    - pabyData
    - poSR
    - ppoReturn
    - nBytes
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - void*
    - OGRSpatialReference*
    - OGRGeometry**
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 212
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 212
    functionName: OGRGeometryFactory::createFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 6
    functionsReached:
    - static_cast<size_t>
    - CPLTestBool
    - OGRGeometry*::assignSpatialReference
    - OGRGeometryFactory::createGeometry
    - static_cast<const GByte *>
    - CPLDebug
    - OGRGeometry*::importFromWkb
    - OGRGeometry*::hasCurveGeometry
    - OGRReadWKBGeometryType
    - CPLGetConfigOption
    - OGRGeometry*::getLinearGeometry
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromWkb(const void *pabyData,\n                                         const
      OGRSpatialReference *poSR,\n                                         OGRGeometry
      **ppoReturn, size_t nBytes,\n                                         OGRwkbVariant
      eWkbVariant,\n                                         size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:251,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:252,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pabyData
    - hSRS
    - phGeometry
    - nBytes
    argTypes:
    - void*
    - OGRSpatialReferenceH
    - OGRGeometryH*
    - int
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: OGR_G_CreateFromWkb
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::createFromWkb
    - reinterpret_cast<OGRGeometry **>
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_CreateFromWkb(const void *pabyData,\n                                   OGRSpatialReferenceH
      hSRS,\n                                   OGRGeometryH *phGeometry, int nBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:294,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:295,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pabyData
    - hSRS
    - phGeometry
    - nBytes
    argTypes:
    - void*
    - OGRSpatialReferenceH
    - OGRGeometryH*
    - size_t
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: OGR_G_CreateFromWkbEx
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::createFromWkb
    - reinterpret_cast<OGRGeometry **>
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_CreateFromWkbEx(const void *pabyData,\n                                     OGRSpatialReferenceH
      hSRS,\n                                     OGRGeometryH *phGeometry, size_t
      nBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:351,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:358,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:360,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:362,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:364,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:366,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:368,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:370,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:372,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:374,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:376,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:378,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:380,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:382,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:384,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:386,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:388,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:390,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:392,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:394,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:396,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:398,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:400,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:402,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:404,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:406,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:408,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:411,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:413,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:416,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:418,1
    - Dst: OGRGeometry*::importFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:429,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:436,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:437,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:437,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:439,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:443,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 3
    argNames:
    - ppszData
    - poSR
    - ppoReturn
    argTypes:
    - char**
    - OGRSpatialReference*
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 453
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 453
    functionName: OGRGeometryFactory::createFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 6
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiSurface::OGRMultiSurface
    - OGRGeometry*::importFromWkt
    - OGRGeometry*::hasCurveGeometry
    - OGRCircularString::OGRCircularString
    - OGRPolygon::OGRPolygon
    - CPLGetConfigOption
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    - OGRGeometry*::getLinearGeometry
    - OGRPoint::OGRPoint
    - OGRTriangle::OGRTriangle
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRWktReadToken
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRCompoundCurve::OGRCompoundCurve
    - OGRMultiCurve::OGRMultiCurve
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRCurvePolygon::OGRCurvePolygon
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromWkt(const char **ppszData,\n
      \                                        const OGRSpatialReference *poSR,\n
      \                                        OGRGeometry **ppoReturn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszData
    - poSR
    - ppoReturn
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: OGRGeometryFactory::createFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 7
    functionsReached:
    - OGRGeometryFactory::createFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromWkt(const char *pszData,\n                                         const
      OGRSpatialReference *poSR,\n                                         OGRGeometry
      **ppoReturn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:509,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:510,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszData
    - poSR
    argTypes:
    - char*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 513
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 513
    functionName: OGRGeometryFactory::createFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 8
    functionsReached:
    - std::unique_ptr::reset
    - OGRGeometryFactory::createFromWkt
    - std::move
    linkageType: ''
    returnType: std::pair<std::unique_ptr<OGRGeometry>, OGRErr>
    signature: "std::pair<std::unique_ptr<OGRGeometry>, OGRErr> OGRGeometryFactory::createFromWkt(const
      char *pszData,\n                                  const OGRSpatialReference
      *poSR)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:544,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:545,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:546,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ppszData
    - hSRS
    - phGeometry
    argTypes:
    - char**
    - OGRSpatialReferenceH
    - OGRGeometryH*
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: OGR_G_CreateFromWkt
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - reinterpret_cast<OGRGeometry **>
    - OGRGeometryFactory::createFromWkt
    - FromHandle
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_CreateFromWkt(char **ppszData, OGRSpatialReferenceH hSRS,\n
      \                                  OGRGeometryH *phGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:574,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:577,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:581,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:585,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:589,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:593,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:597,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:601,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:605,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:609,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:613,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:617,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:621,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:625,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:629,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:633,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:637,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:644,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:649,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:650,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:651,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:652,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 1
    argNames:
    - eGeometryType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 655
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 655
    functionName: OGRGeometryFactory::createGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 4
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiSurface::OGRMultiSurface
    - OGRGeometry*::setMeasured
    - OGRCircularString::OGRCircularString
    - OGRGeometry*::set3D
    - OGRPolygon::OGRPolygon
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    - OGR_GT_HasZ
    - OGRPoint::OGRPoint
    - OGRTriangle::OGRTriangle
    - wkbFlatten
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRLinearRing::OGRLinearRing
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - CPLAssert
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRCompoundCurve::OGRCompoundCurve
    - OGR_GT_HasM
    - OGRMultiCurve::OGRMultiCurve
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRCurvePolygon::OGRCurvePolygon
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometryFactory::createGeometry(OGRwkbGeometryType eGeometryType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:679,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeometryType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: OGR_G_CreateGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRGeometryFactory::createGeometry
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_CreateGeometry(OGRwkbGeometryType eGeometryType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: OGRGeometryFactory::destroyGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometryFactory::destroyGeometry(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: OGR_G_DestroyGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_G_DestroyGeometry(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:751,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:751,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:755,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:757,1
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:758,1
    - Dst: OGRCurvePolygon*::CurvePolyToPoly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:760,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:766,1
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:768,1
    - Dst: OGRGeometry*::toSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:768,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:771,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:773,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:774,1
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:774,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:776,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:777,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:777,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:779,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:781,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:781,1
    - Dst: OGRCurve*::CurveToLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:785,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:786,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:786,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:793,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:795,1
    - Dst: OGRPolyhedralSurface*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:796,1
    - Dst: OGRSurface::CastToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:798,1
    - Dst: OGRPolyhedralSurface*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:799,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:810,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:811,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:812,1
    - Dst: OGRGeometryCollection*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:815,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:821,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:821,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:823,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:825,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:825,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:829,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:831,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:834,1
    - Dst: OGRPolygon*::stealExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:834,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:836,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:837,1
    - Dst: OGRPolygon*::stealInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:837,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 843
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 843
    functionName: OGRGeometryFactory::forceToPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometry*::getSpatialReference
    - OGRGeometryCollection*::getLinearGeometry
    - OGRPolygon*::getNumInteriorRings
    - OGRGeometry*::hasCurveGeometry
    - OGRPolyhedralSurface*::getGeometryRef
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRPolyhedralSurface*::getNumGeometries
    - OGRCurve*::CurveToLine
    - OGRGeometryCollection*::getNumGeometries
    - OGRPolygon*::assignSpatialReference
    - OGRCurve*::getNumPoints
    - wkbFlatten
    - OGRPolygon*::stealInteriorRing
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::getGeometryType
    - OGRCurvePolygon*::CurvePolyToPoly
    - OGRGeometry*::toGeometryCollection
    - OGRPolygon*::stealExteriorRing
    - OGR_GT_IsCurve
    - OGRGeometry*::toCurve
    - OGRSurface::CastToPolygon
    - OGRGeometry*::toSurface
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toCurvePolygon
    - OGRPolygon*::getExteriorRing
    - OGR_GT_IsSubClassOf
    - OGRCurve::CastToLinearRing
    - OGRCurve*::get_IsClosed
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryFactory::forceToPolygon(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:864,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:865,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: OGR_G_ForceToPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::forceToPolygon
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ForceToPolygon(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:888,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:888,1
    - Dst: OGRGeometry*::toMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:904,1
    - Dst: OGRMultiSurface*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:905,1
    - Dst: OGRMultiSurface::CastToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:907,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:918,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:919,1
    - Dst: OGRGeometryCollection*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:922,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:929,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:932,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:932,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:945,1
    - Dst: OGRMultiPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:946,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:946,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:948,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:950,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:951,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:954,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:958,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:959,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:960,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:962,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:962,1
    - Dst: OGRMultiPolygon*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:963,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:976,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:977,1
    - Dst: OGRMultiPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:978,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:978,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:979,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:988,1
    - Dst: OGRPolyhedralSurface::CastToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:990,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:991,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:996,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:996,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1006,1
    - Dst: OGRMultiPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1007,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1007,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1008,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1011
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 1011
    functionName: OGRGeometryFactory::forceToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryFactory::forceToPolygon
    - OGRGeometry*::getSpatialReference
    - OGRGeometryCollection*::getLinearGeometry
    - OGRMultiPolygon*::removeGeometry
    - OGRGeometry*::hasCurveGeometry
    - OGRMultiSurface::CastToMultiPolygon
    - OGRGeometry*::toMultiPolygon
    - OGRMultiPolygon*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - wkbFlatten
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiSurface
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryFactory::forceToMultiPolygon
    - OGRGeometryCollection*::removeGeometry
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRPolyhedralSurface::CastToMultiPolygon
    - OGRMultiPolygon*::assignSpatialReference
    - OGRMultiPolygon*::getNumGeometries
    - OGRMultiSurface*::hasCurveGeometry
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toCurvePolygon
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryFactory::forceToMultiPolygon(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1032,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1032,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1034
      start: 1029
    functionDepth: 4
    functionLinenumber: 1029
    functionLinenumberEnd: 1034
    functionName: OGR_G_ForceToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRGeometryFactory::forceToMultiPolygon
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ForceToMultiPolygon(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1057,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1057,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1073,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1076,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1076,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1080,1
    - Dst: OGRMultiPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1081,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1081,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1083,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1085,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1085,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1086,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1097,1
    - Dst: OGRMultiPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1098,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1098,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1099,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1102
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1102
    functionName: OGRGeometryFactory::forceToMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - getGeometryType
    - OGRMultiPoint::OGRMultiPoint
    - OGRGeometry*::getSpatialReference
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryCollection*::getGeometryRef
    - OGRMultiPoint*::addGeometryDirectly
    - OGRGeometryCollection*::removeGeometry
    - wkbFlatten
    - OGRMultiPoint*::assignSpatialReference
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryFactory::forceToMultiPoint(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1123,1
    - Dst: OGRGeometryFactory::forceToMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1124,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1125
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1125
    functionName: OGR_G_ForceToMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::forceToMultiPoint
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ForceToMultiPoint(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1157,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1157,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1173,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1174,1
    - Dst: OGRGeometryCollection*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1177,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1185,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1185,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1191,1
    - Dst: OGRMultiLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1192,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1192,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1194,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1196,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1196,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1197,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1210,1
    - Dst: OGRMultiLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1211,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1211,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1212,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1219,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1221,1
    - Dst: OGRMultiLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1222,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1222,1
    - Dst: getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1226,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1233,1
    - Dst: getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1238,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1240,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1243,1
    - Dst: auto::addSubLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1244,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1245,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1249,1
    - Dst: AddRingFromSrcPoly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1251,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1251,1
    - Dst: std::unique_ptr<OGRPolygon>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1255,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1256,1
    - Dst: AddRingFromSrcPoly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1257,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1257,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1269,1
    - Dst: CPLAssertNotNull
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1271,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1271,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1280,1
    - Dst: OGRMultiLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1281,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1281,1
    - Dst: OGRLineString*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1289,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1292,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1293,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1294,1
    - Dst: AddRingFromSrcMP
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1301,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1301,1
    - Dst: std::unique_ptr<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1305,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1306,1
    - Dst: AddRingFromSrcMP
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1307,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1307,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1320,1
    - Dst: OGRMultiLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1321,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1321,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1322,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1322,1
    - Dst: OGRGeometry*::toMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1332,1
    - Dst: OGRMultiCurve::CastToMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1334,1
    - Dst: OGRGeometry*::toMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1334,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1342,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1343,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1343,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1343,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1346,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1350
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1350
    functionName: OGRGeometryFactory::forceToMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::getSpatialReference
    - OGRGeometryCollection*::getLinearGeometry
    - OGRLineString*::IsEmpty
    - auto::get
    - OGRLineString*::getNumPoints
    - getInteriorRing
    - OGRGeometry*::hasCurveGeometry
    - AddRingFromSrcMP
    - OGRGeometry*::getLinearGeometry
    - auto::addSubLineString
    - std::unique_ptr<OGRMultiPolygon>
    - OGRGeometry*::toMultiPolygon
    - OGRGeometryCollection*::getNumGeometries
    - AddRingFromSrcPoly
    - wkbFlatten
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - std::unique_ptr<OGRPolygon>
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - getExteriorRing
    - getNumInteriorRings
    - getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryFactory::forceToMultiPolygon
    - OGRGeometryCollection*::removeGeometry
    - CPLAssert
    - OGRMultiCurve::CastToMultiLineString
    - OGRMultiLineString*::addGeometryDirectly
    - OGRMultiLineString*::assignSpatialReference
    - CPLAssertNotNull
    - OGRGeometry*::toCurve
    - OGRLineString*::addSubLineString
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toCurvePolygon
    - OGRGeometry*::toPolygon
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::toMultiCurve
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryFactory::forceToMultiLineString(OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1371,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1371,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1373
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1373
    functionName: OGR_G_ForceToMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::forceToMultiLineString
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ForceToMultiLineString(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1402,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1402,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1403,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1405,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1407,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1412,1
    - Dst: getDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1412,1
    - Dst: hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1413,1
    - Dst: getDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1419,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1427,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1431,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1431,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1434,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1435,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1436,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1436,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1438,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1438,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1439,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1439,1
    - Dst: getDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1442,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1444,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1444,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1448,1
    - Dst: getDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1451,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1453,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1453,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1459,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1459,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1464
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1464
    functionName: OGRGeometryFactory::removeLowerDimensionSubGeoms
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - hasCurveGeometry
    - OGRMultiSurface::OGRMultiSurface
    - toGeometryCollection
    - OGRGeometry*::clone
    - OGRGeometryCollection*::addGeometryDirectly
    - static_cast<OGRGeometryCollection *>
    - wkbFlatten
    - OGRMultiLineString::OGRMultiLineString
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::getGeometryType
    - getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRGeometry*::IsEmpty
    - OGRMultiCurve::OGRMultiCurve
    - getDimension
    - max
    - clone
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometryFactory::removeLowerDimensionSubGeoms(const OGRGeometry *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1485,1
    - Dst: OGRGeometryFactory::removeLowerDimensionSubGeoms
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1486,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1488
      start: 1482
    functionDepth: 2
    functionLinenumber: 1482
    functionLinenumberEnd: 1488
    functionName: OGR_G_RemoveLowerDimensionSubGeoms
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::removeLowerDimensionSubGeoms
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_RemoveLowerDimensionSubGeoms(const OGRGeometryH
      hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1497
    functionName: sPolyExtended
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sPolyExtended()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1498
    functionName: sPolyExtended
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sPolyExtended(sPolyExtended &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1499
    functionName: '&operator=(sPolyExtended &&)'
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sPolyExtended
    signature: sPolyExtended &operator=(sPolyExtended &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sPoly1
    - sPoly2
    argTypes:
    - sPolyExtended
    - sPolyExtended
    constantsTouched: []
    func_position:
      end: 1518
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1518
    functionName: OGRGeometryFactoryCompareArea
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeometryFactoryCompareArea(const sPolyExtended &sPoly1,\n
      \                                         const sPolyExtended &sPoly2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sPoly1
    - sPoly2
    argTypes:
    - sPolyExtended
    - sPolyExtended
    constantsTouched: []
    func_position:
      end: 1524
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1524
    functionName: OGRGeometryFactoryCompareByIndex
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeometryFactoryCompareByIndex(const sPolyExtended &sPoly1,\n
      \                                            const sPolyExtended &sPoly2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1601,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1614,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1620,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1624,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1640,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1640,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1647,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1649,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1658,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1665,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1679,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1684,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1688,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1692,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1694,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1706,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1706,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1711,1
    - Dst: toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1721,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1723,1
    - Dst: sPolyExtended::poPolygon::IsEmpty
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1727,1
    - Dst: sPolyExtended::poPolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1728,1
    - Dst: sPolyExtended::poPolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1729,1
    - Dst: sPolyExtended::poPolygon::get_Area
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1732,1
    - Dst: sPolyExtended::poPolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1733,1
    - Dst: sPolyExtended::poExteriorRing::StartPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1734,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1737,1
    - Dst: sPolyExtended::poExteriorRing::toLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1738,1
    - Dst: sPolyExtended::poExteriorRing::CurveToLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1743,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1744,1
    - Dst: OGRLinearRing::addSubLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1745,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1746,1
    - Dst: OGRLinearRing::isClockwise
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1762,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1771,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1771,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1782,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1782,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1786,1
    - Dst: poPolygon::stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1787,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1806,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1813,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1815,1
    - Dst: OGRMultiSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1817,1
    - Dst: OGRMultiSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1820,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1825,1
    - Dst: poPolygon::stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1826,1
    - Dst: poAPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1827,1
    - Dst: poAPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1828,1
    - Dst: poAPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1829,1
    - Dst: poAPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1830,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1832,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1835,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1848,1
    - Dst: poPolygon::get_Area
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1849,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1863,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1875,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1920,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1920,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1920,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1937,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1937,1
    - Dst: sEnvelope::Contains
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1960,1
    - Dst: poExteriorRing::toLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1973,1
    - Dst: poExteriorRing::toLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1979,1
    - Dst: poExteriorRing::toLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1981,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1990,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1991,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1992,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1992,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1993,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1993,1
    - Dst: OGRLinearRing*::isPointOnRingBoundary
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:1997,1
    - Dst: OGRLinearRing*::isPointInRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2001,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2013,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2020,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2023,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2024,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2025,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2025,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2026,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2026,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2030,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2031,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2032,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2032,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2033,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2034,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2034,1
    - Dst: OGRLinearRing*::isPointOnRingBoundary
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2035,1
    - Dst: OGRLinearRing*::isPointInRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2041,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2055,1
    - Dst: poExteriorRing::toLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2062,1
    - Dst: poPolygon::Contains
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2069,1
    - Dst: sEnvelope::Intersects
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2096,1
    - Dst: poPolygon::Overlaps
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2097,1
    - Dst: poPolygon::exportToWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2110,1
    - Dst: poPolygon::exportToWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2111,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2112,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2116,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2116,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2118,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2119,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2147,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2147,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2155,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2155,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2155,1
    - Dst: sPolyExtended::poEnclosingPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2163,1
    - Dst: sPolyExtended::poPolygon::stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2164,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2177,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2177,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2182,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 254
    argCount: 4
    argNames:
    - papoPolygons
    - nPolygonCount
    - pbIsValidGeometry
    - papszOptions
    argTypes:
    - OGRGeometry**
    - int
    - int*
    - char**
    constantsTouched: []
    func_position:
      end: 2189
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 2189
    functionName: OGRGeometryFactory::organizePolygons
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 3
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - poPolygon::Overlaps
    - getEnvelope
    - sPolyExtended::poPolygon::get_Area
    - std::vector::size
    - OGRLinearRing::isClockwise
    - OGRLinearRing*::getPoint
    - OGRPoint::setX
    - OGRPoint::setY
    - CPLDebug
    - OGRMultiSurface::OGRMultiSurface
    - sPolyExtended::poEnclosingPolygon::addRingDirectly
    - toCurvePolygon
    - CPLError
    - std::vector::push_back
    - OGRPolygon::OGRPolygon
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - sEnvelope::Contains
    - poExteriorRing::toLinearRing
    - OGRPoint::getY
    - sPolyExtended::poExteriorRing::CurveToLine
    - std::vector::end
    - OGRGeometryCollection*::addGeometryDirectly
    - std::vector::begin
    - OGRLinearRing*::isPointOnRingBoundary
    - std::sort
    - OGRPoint::OGRPoint
    - std::move
    - sPolyExtended::poPolygon::stealExteriorRingCurve
    - sPolyExtended::poPolygon::getExteriorRingCurve
    - std::vector::reserve
    - wkbFlatten
    - sPolyExtended::poExteriorRing::toLinearRing
    - poPolygon::stealExteriorRingCurve
    - CPLTestBool
    - getGeometryType
    - static_cast<int>
    - sPolyExtended::poExteriorRing::StartPoint
    - OGRLinearRing::OGRLinearRing
    - sPolyExtended::poPolygon::getNumInteriorRings
    - poPolygon::get_Area
    - OGRLinearRing::addSubLineString
    - OGRMultiSurface*::addGeometryDirectly
    - poAPoint::getX
    - OGRPoint::getX
    - OGRCurvePolygon*::addRingDirectly
    - OGRLinearRing*::isPointInRing
    - OGRMultiPolygon::OGRMultiPolygon
    - sEnvelope::Intersects
    - CPLFree
    - poPolygon::exportToWkt
    - sPolyExtended::poPolygon::IsEmpty
    - poPolygon::Contains
    - EQUAL
    - poAPoint::getY
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::organizePolygons(OGRGeometry **papoPolygons,\n
      \                                                 int nPolygonCount,\n                                                  int
      *pbIsValidGeometry,\n                                                  const
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2233,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszData
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2236
      start: 2228
    functionDepth: 3
    functionLinenumber: 2228
    functionLinenumberEnd: 2236
    functionName: OGRGeometryFactory::createFromGML
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_G_CreateFromGML
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGeometryFactory::createFromGML(const char *pszData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2254,1
    - Dst: GEOSGeomTypeId_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2264,1
    - Dst: GEOSisEmpty_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2265,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2266,1
    - Dst: GEOSWKBWriter_create_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2270,1
    - Dst: GEOSWKBWriter_setOutputDimension_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2271,1
    - Dst: GEOSWKBWriter_write_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2272,1
    - Dst: GEOSWKBWriter_destroy_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2273,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2280,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2281,1
    - Dst: GEOSFree_r
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - GEOSContextHandle_t
    - GEOSGeom
    argTypes:
    - UNUSED_IF_NO_GEOS
    - UNUSED_IF_NO_GEOS
    constantsTouched: []
    func_position:
      end: 2292
      start: 2247
    functionDepth: 2
    functionLinenumber: 2247
    functionLinenumberEnd: 2292
    functionName: OGRGeometryFactory::createFromGEOS
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 4
    functionsReached:
    - GEOSWKBWriter_create_r
    - static_cast<int>
    - OGRGeometryFactory::createFromWkb
    - GEOSGeomTypeId_r
    - GEOSFree_r
    - GEOSWKBWriter_write_r
    - OGRPoint::OGRPoint
    - GEOSisEmpty_r
    - CPLError
    - GEOSWKBWriter_destroy_r
    - GEOSWKBWriter_setOutputDimension_r
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::createFromGEOS(\n    UNUSED_IF_NO_GEOS
      GEOSContextHandle_t hGEOSCtxt,\n    UNUSED_IF_NO_GEOS GEOSGeom geosGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2315
    functionName: OGRGeometryFactory::haveGEOS
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeometryFactory::haveGEOS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromFgfInternal
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2352,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pabyData
    - poSR
    - ppoReturn
    - nBytes
    - pnBytesConsumed
    argTypes:
    - void*
    - OGRSpatialReference*
    - OGRGeometry**
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2354
      start: 2346
    functionDepth: 1
    functionLinenumber: 2346
    functionLinenumberEnd: 2354
    functionName: OGRGeometryFactory::createFromFgf
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const GByte *>
    - OGRGeometryFactory::createFromFgfInternal
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromFgf(const void *pabyData,\n                                         OGRSpatialReference
      *poSR,\n                                         OGRGeometry **ppoReturn, int
      nBytes,\n                                         int *pnBytesConsumed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2367,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2382,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2383,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2403,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2404,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2441,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2444,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2447,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2449,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2464,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2465,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2473,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2475,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2480,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2484,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2487,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2489,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2505,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2506,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2529,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2530,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2546,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2547,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2552,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2557,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2560,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2563,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2566,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2585,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2586,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2597,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2599,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2601,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2603,1
    - Dst: OGRGeometryFactory::createFromFgfInternal
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2612,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2624,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2653,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 151
    argCount: 6
    argNames:
    - pabyData
    - poSR
    - ppoReturn
    - nBytes
    - pnBytesConsumed
    - nRecLevel
    argTypes:
    - unsigned char*
    - OGRSpatialReference*
    - OGRGeometry**
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2657
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2657
    functionName: OGRGeometryFactory::createFromFgfInternal
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 2
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRGeometry*::assignSpatialReference
    - OGRMultiPoint::OGRMultiPoint
    - OGRPolygon*::addRingDirectly
    - CPLError
    - OGRPolygon::OGRPolygon
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryFactory::createFromFgfInternal
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - CPL_SWAP64PTR
    - OGRLinearRing*::setNumPoints
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRGeometryCollection::OGRGeometryCollection
    - memcpy
    - CPL_LSBPTR32
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeometryFactory::createFromFgfInternal(\n    const unsigned
      char *pabyData, OGRSpatialReference *poSR,\n    OGRGeometry **ppoReturn, int
      nBytes, int *pnBytesConsumed, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::createFromFgf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2674,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2675,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pabyData
    - hSRS
    - phGeometry
    - nBytes
    - pnBytesConsumed
    argTypes:
    - void*
    - OGRSpatialReferenceH
    - OGRGeometryH*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2677
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2677
    functionName: OGR_G_CreateFromFgf
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::createFromFgf
    - FromHandle
    - reinterpret_cast<OGRGeometry **>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_G_CreateFromFgf(const void *pabyData,\n                                   OGRSpatialReferenceH
      hSRS,\n                                   OGRGeometryH *phGeometry, int nBytes,\n
      \                                  int *pnBytesConsumed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2692,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2693,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2694,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2697,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2697,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2707,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2708,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2709,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2712,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2712,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2712,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2714,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2714,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2719,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2719,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2719,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2720,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2722,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2722,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2722,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2726,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2727,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2728,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2731,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2731,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2731,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2733,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2733,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2738,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2738,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2738,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2739,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2741,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2741,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2741,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2747,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2748,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2749,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2761,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2762,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2762,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2763,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2763,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2766,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2768,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2770,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2772,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2773,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2777,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2778,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2781,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2785,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2786,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2790,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2790,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2790,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2792,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2792,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 51
    argCount: 4
    argNames:
    - poMulti
    - poLS
    - dfDateLineOffset
    - dfXOffset
    argTypes:
    - OGRGeometryCollection*
    - OGRLineString*
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2794
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2794
    functionName: SplitLineStringAtDateline
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRLineString*::addPoint
    - OGRLineString*::getNumPoints
    - swap
    - fabs
    - OGRLineString*::getZ
    - OGRLineString::OGRLineString
    - OGRLineString*::getY
    linkageType: ''
    returnType: void
    signature: "void SplitLineStringAtDateline(OGRGeometryCollection *poMulti,\n                                      const
      OGRLineString *poLS,\n                                      double dfDateLineOffset,
      double dfXOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2808,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2810,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2811,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2814,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2827,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2827,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2827,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2829,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2829,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2835,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2839,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2839,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2840,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2842,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2842,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - poPoly
    - dfDateLineOffset
    argTypes:
    - OGRPolygon*
    - double
    constantsTouched: []
    func_position:
      end: 2854
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2854
    functionName: FixPolygonCoordinatesAtDateLine
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRPolygon*::getInteriorRing
    - OGRLineString*::getNumPoints
    - OGRPolygon*::getNumInteriorRings
    - OGRPolygon*::getExteriorRing
    - OGRLineString*::getZ
    - OGRLineString*::getY
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void FixPolygonCoordinatesAtDateLine(OGRPolygon *poPoly,\n                                            double
      dfDateLineOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2863,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2863,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2867,1
    - Dst: AddOffsetToLon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2869,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2879,1
    - Dst: AddOffsetToLon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2881,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2889,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2895,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2896,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2897,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2899,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2900,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2901,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2901,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - poGeom
    - dfOffset
    argTypes:
    - OGRGeometry*
    - double
    constantsTouched: []
    func_position:
      end: 2909
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2909
    functionName: AddOffsetToLon
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::getX
    - OGRGeometry*::toGeometryCollection
    - AddOffsetToLon
    - OGRGeometry*::toPolygon
    - OGRLineString*::getY
    - OGRLineString*::getZ
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRLineString*::setPoint
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void AddOffsetToLon(OGRGeometry *poGeom, double dfOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2919,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2919,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2923,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2930,1
    - Dst: AddSimpleGeomToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2932,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - poMulti
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2940
      start: 2916
    functionDepth: 1
    functionLinenumber: 2916
    functionLinenumberEnd: 2940
    functionName: AddSimpleGeomToMulti
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - AddSimpleGeomToMulti
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::addGeometry
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void AddSimpleGeomToMulti(OGRGeometryCollection *poMulti,\n                                 const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2949,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2951,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2951,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2951,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2953,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2955,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2955,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2957
      start: 2947
    functionDepth: 1
    functionLinenumber: 2947
    functionLinenumberEnd: 2957
    functionName: WrapPointDateLine
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - OGRPoint*::setX
    - fmod
    linkageType: ''
    returnType: void
    signature: void WrapPointDateLine(OGRPoint *poPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2967,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2967,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2972,1
    - Dst: WrapPointDateLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2973,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2974,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:2984,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3003,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3012,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3013,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3019,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3040,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3043,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3043,1
    - Dst: FixPolygonCoordinatesAtDateLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3044,1
    - Dst: std::unique_ptr::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3045,1
    - Dst: std::unique_ptr::getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3048,1
    - Dst: SplitLineStringAtDateline
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3058,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3058,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3066,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3078,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3080,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3082,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3083,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3084,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3085,1
    - Dst: AddSimpleGeomToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3091,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3091,1
    - Dst: AddOffsetToLon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3092,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3092,1
    - Dst: AddSimpleGeomToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3094,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3094,1
    - Dst: AddSimpleGeomToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3098,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3104,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3113,1
    - Dst: CutGeometryOnDateLineAndAddToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3115,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 3
    argNames:
    - poMulti
    - poGeom
    - dfDateLineOffset
    argTypes:
    - OGRGeometryCollection*
    - OGRGeometry*
    - double
    constantsTouched: []
    func_position:
      end: 3123
      start: 2963
    functionDepth: 2
    functionLinenumber: 2963
    functionLinenumberEnd: 3123
    functionName: CutGeometryOnDateLineAndAddToMulti
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRGeometry>
    - OGRGeometry*::Intersection
    - auto::get
    - OGRGeometryCollection*::addGeometry
    - CPLError
    - OGRGeometry*::clone
    - OGRGeometryCollection*::addGeometryDirectly
    - AddOffsetToLon
    - CutGeometryOnDateLineAndAddToMulti
    - std::unique_ptr::reset
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - AddSimpleGeomToMulti
    - std::unique_ptr::toPolygon
    - FixPolygonCoordinatesAtDateLine
    - std::unique_ptr::getEnvelope
    - OGRGeometry*::toGeometryCollection
    - WrapPointDateLine
    - std::unique_ptr::get
    - OGRGeometry*::toLineString
    - OGRGeometry*::getEnvelope
    - auto::getNumPoints
    - SplitLineStringAtDateline
    - OGRGeometry*::toPolygon
    - OGRGeometryFactory::createFromWkt
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: void
    signature: "void CutGeometryOnDateLineAndAddToMulti(OGRGeometryCollection *poMulti,\n
      \                                              const OGRGeometry *poGeom,\n
      \                                              double dfDateLineOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3134,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3134,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3139,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3142,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3144,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3144,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3145,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3145,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3151,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3151,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3151,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3152,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3156,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3156,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3156,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3162,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3168,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3169,1
    - Dst: RemovePoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3171,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3171,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3172,1
    - Dst: RemovePoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3174,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3174,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3184,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3185,1
    - Dst: RemovePoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3187,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - poGeom
    - poPoint
    argTypes:
    - OGRGeometry*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 3195
      start: 3132
    functionDepth: 1
    functionLinenumber: 3132
    functionLinenumberEnd: 3195
    functionName: RemovePoint
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getY
    - OGRLineString*::getNumPoints
    - OGRPolygon*::getNumInteriorRings
    - OGRLineString*::getZ
    - OGRLineString*::getY
    - OGRLineString*::getX
    - OGRGeometryCollection*::getNumGeometries
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - OGRGeometry*::toGeometryCollection
    - OGRLineString*::setNumPoints
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toLineString
    - RemovePoint
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: void RemovePoint(OGRGeometry *poGeom, OGRPoint *poPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfDeltaX
    - dfDeltaY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3204
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3204
    functionName: GetDist
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double GetDist(double dfDeltaX, double dfDeltaY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3216,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3216,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3223,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3235,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3235,1
    - Dst: OGRRawPoint::OGRRawPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3251,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3254,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3255,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3255,1
    - Dst: GetDist
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3260,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3265,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3266,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3266,1
    - Dst: OGRRawPoint::OGRRawPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3270,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3273,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3274,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3274,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3279,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3280,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3283,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3283,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3283,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3291,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3292,1
    - Dst: AlterPole
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3294,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3294,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3295,1
    - Dst: AlterPole
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3297,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3297,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3307,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3308,1
    - Dst: AlterPole
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3310,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - poGeom
    - poPole
    argTypes:
    - OGRGeometry*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 3318
      start: 3213
    functionDepth: 1
    functionLinenumber: 3213
    functionLinenumberEnd: 3318
    functionName: AlterPole
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - GetDist
    - OGRPoint*::getY
    - std::vector::size
    - OGRPolygon*::getNumInteriorRings
    - OGRLineString*::getZ
    - std::vector::push_back
    - OGRGeometryCollection*::getNumGeometries
    - AlterPole
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - static_cast<int>
    - OGRGeometry*::toGeometryCollection
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toLineString
    - OGRLineString*::setPoints
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRRawPoint::OGRRawPoint
    linkageType: ''
    returnType: void
    signature: "void AlterPole(OGRGeometry *poGeom, OGRPoint *poPole,\n                      bool
      bIsRing = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3337,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3338,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3340,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3344,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3344,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3348,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3349,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3350,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3351,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3359,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3359,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3359,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3363,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3364,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3365,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3366,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3372,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 3
    argNames:
    - poCT
    - poRevCT
    - bIsNorthPolarOut
    argTypes:
    - OGRCoordinateTransformation*
    - OGRCoordinateTransformation*
    - bool
    constantsTouched: []
    func_position:
      end: 3382
      start: 3327
    functionDepth: 1
    functionLinenumber: 3327
    functionLinenumberEnd: 3382
    functionName: IsPolarToGeographic
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformation*::Transform
    - OGRCoordinateTransformation*::SetEmitErrors
    - fabs
    linkageType: ''
    returnType: bool
    signature: "bool IsPolarToGeographic(OGRCoordinateTransformation *poCT,\n                                OGRCoordinateTransformation
      *poRevCT,\n                                bool &bIsNorthPolarOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3401,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3410,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3423,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3424,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3425,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3426,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3433,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3434,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3435,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3436,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3437,1
    - Dst: OGRPolygon::transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3439,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3442,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3442,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3442,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3442,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3448,1
    - Dst: std::unique_ptr<OGRGeometry>::Difference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3448,1
    - Dst: RemovePoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3452,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3452,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3453,1
    - Dst: AlterPole
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3459,1
    - Dst: std::unique_ptr<OGRGeometry>::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3459,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - poRevCT
    - bIsNorthPolar
    - poDstGeom
    - bNeedPostCorrectionOut
    argTypes:
    - OGRCoordinateTransformation*
    - bool
    - std::unique_ptr<OGRGeometry>
    - bool
    constantsTouched: []
    func_position:
      end: 3465
      start: 3392
    functionDepth: 2
    functionLinenumber: 3392
    functionLinenumberEnd: 3465
    functionName: TransformBeforePolarToGeographic
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - OGRPolygon::addRingDirectly
    - OGRCoordinateTransformation*::Transform
    - RemovePoint
    - OGRLinearRing::OGRLinearRing
    - std::unique_ptr<OGRGeometry>
    - AlterPole
    - auto::get
    - OGRPolygon::transform
    - std::unique_ptr<OGRGeometry>::Difference
    - OGRLinearRing*::getX
    - std::move
    - OGRLinearRing*::addPoint
    - fabs
    - OGRPolygon::OGRPolygon
    - std::unique_ptr<OGRGeometry>::get
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: "std::unique_ptr<OGRGeometry> TransformBeforePolarToGeographic(\n    OGRCoordinateTransformation
      *poRevCT, bool bIsNorthPolar,\n    std::unique_ptr<OGRGeometry> poDstGeom, bool
      &bNeedPostCorrectionOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3479,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3480,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3484,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3486,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3488,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3501,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3501,1
    - Dst: GetDist
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3502,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3502,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3503,1
    - Dst: GetDist
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3504,1
    - Dst: GetDist
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3505,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3507,1
    - Dst: OGRCoordinateTransformation*::SetEmitErrors
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - poCT
    - poRevCT
    - poDstGeometry
    argTypes:
    - OGRCoordinateTransformation*
    - OGRCoordinateTransformation*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3514
      start: 3474
    functionDepth: 1
    functionLinenumber: 3474
    functionLinenumberEnd: 3514
    functionName: IsAntimeridianProjToGeographic
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - GetDist
    - OGRCoordinateTransformation*::Transform
    - OGRCoordinateTransformation*::SetEmitErrors
    - OGRGeometry*::getEnvelope
    - OGRPoint::transform
    linkageType: ''
    returnType: bool
    signature: "bool IsAntimeridianProjToGeographic(OGRCoordinateTransformation *poCT,\n
      \                                          OGRCoordinateTransformation *poRevCT,\n
      \                                          OGRGeometry *poDstGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3528,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3528,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3533,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3545,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3546,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3551,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3551,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3552,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3552,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3565,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3565,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3566,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3566,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3573,1
    - Dst: OGRRawPoint::OGRRawPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3593,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3596,1
    - Dst: std::vector<OGRRawPoint>::push_back
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3598,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3607,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3608,1
    - Dst: CollectPointsOnAntimeridian
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3610,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3610,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3612,1
    - Dst: CollectPointsOnAntimeridian
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3614,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3614,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3625,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3626,1
    - Dst: CollectPointsOnAntimeridian
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3628,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3628,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 4
    argNames:
    - poGeom
    - poCT
    - poRevCT
    - aoPoints
    argTypes:
    - OGRGeometry*
    - OGRCoordinateTransformation*
    - OGRCoordinateTransformation*
    - std::vector<OGRRawPoint>
    constantsTouched: []
    func_position:
      end: 3637
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3637
    functionName: CollectPointsOnAntimeridian
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRCoordinateTransformation*::Transform
    - CollectPointsOnAntimeridian
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryCollection*::getGeometryRef
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRRawPoint::OGRRawPoint
    - std::vector<OGRRawPoint>::push_back
    - OGRPolygon*::getNumInteriorRings
    - fabs
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void CollectPointsOnAntimeridian(OGRGeometry *poGeom,\n                                        OGRCoordinateTransformation
      *poCT,\n                                        OGRCoordinateTransformation
      *poRevCT,\n                                        std::vector<OGRRawPoint>
      &aoPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OGRRawPoint
    - OGRRawPoint
    constantsTouched: []
    func_position:
      end: 3648
      start: 3645
    functionDepth: 0
    functionLinenumber: 3645
    functionLinenumberEnd: 3648
    functionName: operator()(const OGRRawPoint &a, const OGRRawPoint &b)
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(const OGRRawPoint &a, const OGRRawPoint &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometry>::getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3663,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3665,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3667,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3668,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3669,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3671,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3671,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3672,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3672,1
    - Dst: CollectPointsOnAntimeridian
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3680,1
    - Dst: std::unique_ptr<OGRGeometry>::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3680,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3681,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3685,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3685,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3685,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3690,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3694,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3695,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3701,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3702,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3707,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3708,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3713,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3714,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3722,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3723,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3728,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3729,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3731,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3733,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3734,1
    - Dst: OGRPolygon::exportToWkt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3738,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3739,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3740,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3745,1
    - Dst: std::unique_ptr<OGRGeometry>::Difference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3745,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - poCT
    - poRevCT
    - poDstGeom
    - bNeedPostCorrectionOut
    argTypes:
    - OGRCoordinateTransformation*
    - OGRCoordinateTransformation*
    - std::unique_ptr<OGRGeometry>
    - bool
    constantsTouched: []
    func_position:
      end: 3753
      start: 3658
    functionDepth: 2
    functionLinenumber: 3658
    functionLinenumberEnd: 3753
    functionName: TransformBeforeAntimeridianToGeographic
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>::getEnvelope
    - std::unique_ptr<OGRGeometry>
    - OGRPoint::setX
    - OGRPoint::setY
    - CPLDebug
    - OGRPolygon::OGRPolygon
    - OGRPoint::getY
    - OGRCoordinateTransformation*::Transform
    - std::vector::end
    - std::vector::begin
    - std::sort
    - std::move
    - std::vector::empty
    - OGRLinearRing::OGRLinearRing
    - OGRPoint::getX
    - std::unique_ptr<OGRGeometry>::Difference
    - OGRPolygon::exportToWkt
    - CPLFree
    - OGRPolygon::addRingDirectly
    - CollectPointsOnAntimeridian
    - OGRLinearRing*::addPoint
    - std::unique_ptr<OGRGeometry>::get
    - OGRPoint::transform
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: "std::unique_ptr<OGRGeometry> TransformBeforeAntimeridianToGeographic(\n
      \   OGRCoordinateTransformation *poCT, OGRCoordinateTransformation *poRevCT,\n
      \   std::unique_ptr<OGRGeometry> poDstGeom, bool &bNeedPostCorrectionOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3764,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3764,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3769,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3771,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3773,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3774,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3775,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3775,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3777,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3778,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3780,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3780,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3782,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3783,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3786,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3786,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3788,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3789,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3791,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3791,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3793,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3794,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3802,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3803,1
    - Dst: SnapCoordsCloseToLatLongBounds
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3805,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3805,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3806,1
    - Dst: SnapCoordsCloseToLatLongBounds
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3808,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3808,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3818,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3819,1
    - Dst: SnapCoordsCloseToLatLongBounds
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3821,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3821,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3829
      start: 3762
    functionDepth: 1
    functionLinenumber: 3762
    functionLinenumberEnd: 3829
    functionName: SnapCoordsCloseToLatLongBounds
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint::setX
    - OGRPoint::setY
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - OGRPolygon*::getNumInteriorRings
    - SnapCoordsCloseToLatLongBounds
    - OGRPoint::getY
    - OGRGeometryCollection*::getNumGeometries
    - OGRPoint::OGRPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRPoint::getX
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toLineString
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - fabs
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: void SnapCoordsCloseToLatLongBounds(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3846
    functionDepth: 0
    functionLinenumber: 3846
    functionLinenumberEnd: 3854
    functionName: clear
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 5
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3861
    functionDepth: 0
    functionLinenumber: 3861
    functionLinenumberEnd: 3864
    functionName: OGRGeometryFactory::TransformWithOptionsCache::TransformWithOptionsCache()
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRGeometryFactory::TransformWithOptionsCache::TransformWithOptionsCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3872
      start: 3870
    functionDepth: 0
    functionLinenumber: 3870
    functionLinenumberEnd: 3872
    functionName: OGRGeometryFactory::TransformWithOptionsCache::~TransformWithOptionsCache()
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeometryFactory::TransformWithOptionsCache::~TransformWithOptionsCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3889,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3890,1
    - Dst: OGRSpatialReference*::GetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3891,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3893,1
    - Dst: OGRSpatialReference*::GetAngularUnits
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3893,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3894,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3895,1
    - Dst: OGRSpatialReference*::GetAreaOfUse
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3901,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 10
    argCount: 3
    argNames:
    - poSourceCRS
    - poTargetCRS
    - papszOptions
    argTypes:
    - OGRSpatialReference*
    - OGRSpatialReference*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3915
      start: 3880
    functionDepth: 1
    functionLinenumber: 3880
    functionLinenumberEnd: 3915
    functionName: OGRGeometryFactory::isTransformWithOptionsRegularTransform
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRSpatialReference*::GetAxisMappingStrategy
    - OGRSpatialReference*::IsProjected
    - OGRSpatialReference*::GetAngularUnits
    - OGRSpatialReference*::IsGeographic
    - std::fabs
    - OGRSpatialReference*::GetAreaOfUse
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeometryFactory::isTransformWithOptionsRegularTransform(\n
      \   [[maybe_unused]] const OGRSpatialReference *poSourceCRS,\n    [[maybe_unused]]
      const OGRSpatialReference *poTargetCRS,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3956,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3956,1
    - Dst: OGRCoordinateTransformation*::GetSourceCS
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3961,1
    - Dst: OGRCoordinateTransformation*::GetTargetCS
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3962,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3963,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3963,1
    - Dst: CPL_UNUSED::d::clear
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3971,1
    - Dst: OGRGeometryFactory::isTransformWithOptionsRegularTransform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3976,1
    - Dst: CPL_UNUSED::d::poRevCT::reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3979,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3979,1
    - Dst: CPL_UNUSED::d::poRevCT::reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3983,1
    - Dst: OGRCoordinateTransformation*::GetInverse
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3983,1
    - Dst: IsPolarToGeographic
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3985,1
    - Dst: CPL_UNUSED::d::poRevCT::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3985,1
    - Dst: CPL_UNUSED::d::poRevCT::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3993,1
    - Dst: TransformBeforePolarToGeographic
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3997,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:3998,1
    - Dst: IsAntimeridianProjToGeographic
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4001,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4002,1
    - Dst: TransformBeforeAntimeridianToGeographic
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4004,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4005,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4009,1
    - Dst: SnapCoordsCloseToLatLongBounds
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4017,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4017,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4022,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4022,1
    - Dst: auto::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4024,1
    - Dst: auto::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4025,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4027,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4031,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4036,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4036,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4039,1
    - Dst: WrapPointDateLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4040,1
    - Dst: auto::toMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4044,1
    - Dst: WrapPointDateLine
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4046,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4052,1
    - Dst: AddOffsetToLon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4054,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4054,1
    - Dst: AddOffsetToLon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4056,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4056,1
    - Dst: std::unique_ptr<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4067,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4068,1
    - Dst: CutGeometryOnDateLineAndAddToMulti
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4075,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4076,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4076,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4078,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4082,1
    - Dst: auto::stealGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4085,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4089,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4095,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 68
    argCount: 4
    argNames:
    - poSrcGeom
    - poCT
    - papszOptions
    - cache
    argTypes:
    - OGRGeometry*
    - OGRCoordinateTransformation*
    - char**
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 4096
      start: 3952
    functionDepth: 3
    functionLinenumber: 3952
    functionLinenumberEnd: 4096
    functionName: OGRGeometryFactory::transformWithOptions
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometryCollection>
    - std::unique_ptr<OGRGeometry>
    - auto::get
    - SnapCoordsCloseToLatLongBounds
    - CPL_UNUSED::d::poRevCT::reset
    - OGRGeometry*::clone
    - auto::toPoint
    - auto::stealGeometry
    - IsAntimeridianProjToGeographic
    - OGRGeometryFactory::createGeometry
    - OGRCoordinateTransformation*::GetSourceCS
    - AddOffsetToLon
    - TransformBeforeAntimeridianToGeographic
    - OGRCoordinateTransformation*::GetTargetCS
    - CutGeometryOnDateLineAndAddToMulti
    - std::move
    - CPL_UNUSED::d::poRevCT::get
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - CPLTestBool
    - auto::toMultiPoint
    - CPL_UNUSED::d::clear
    - OGRCreateCoordinateTransformation
    - WrapPointDateLine
    - auto::getEnvelope
    - auto::getSpatialReference
    - TransformBeforePolarToGeographic
    - auto::release
    - OGRCoordinateTransformation*::GetInverse
    - CSLFetchNameValueDef
    - auto::getNumGeometries
    - auto::getGeometryType
    - auto::transform
    - CPLErrorOnce
    - IsPolarToGeographic
    - OGRGeometryFactory::isTransformWithOptionsRegularTransform
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::transformWithOptions(\n    const
      OGRGeometry *poSrcGeom, OGRCoordinateTransformation *poCT,\n    char **papszOptions,
      CPL_UNUSED const TransformWithOptionsCache &cache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4108
    functionDepth: 0
    functionLinenumber: 4108
    functionLinenumberEnd: 4108
    functionName: OGRGeomTransformer
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeomTransformer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4109
      start: 4109
    functionDepth: 0
    functionLinenumber: 4109
    functionLinenumberEnd: 4109
    functionName: OGRGeomTransformer
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeomTransformer(const OGRGeomTransformer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4110
      start: 4110
    functionDepth: 0
    functionLinenumber: 4110
    functionLinenumberEnd: 4110
    functionName: '&operator=(const OGRGeomTransformer &)'
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeomTransformer
    signature: OGRGeomTransformer &operator=(const OGRGeomTransformer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomTransformer::OGRGeomTransformer
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4148,1
    - Dst: OGRGeomTransformer*::poCT::reset
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4151,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4152,1
    - Dst: OGRGeomTransformer*::aosOptions::Assign
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4154,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hCT
    - papszOptions
    argTypes:
    - OGRCoordinateTransformationH
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4156
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4156
    functionName: OGR_GeomTransformer_Create
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomTransformer::OGRGeomTransformer
    - FromHandle
    - CSLDuplicate
    - OGRGeomTransformer*::poCT::reset
    - OGRGeomTransformer*::aosOptions::Assign
    linkageType: ''
    returnType: OGRGeomTransformerH
    signature: "OGRGeomTransformerH OGR_GeomTransformer_Create(OGRCoordinateTransformationH
      hCT,\n                                               CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4172,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4173,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4175,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4175,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4176,1
    - Dst: OGRGeomTransformerH::poCT::get
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4176,1
    - Dst: OGRGeomTransformerH::aosOptions::List
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hTransformer
    - hGeom
    argTypes:
    - OGRGeomTransformerH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4178
      start: 4169
    functionDepth: 4
    functionLinenumber: 4169
    functionLinenumberEnd: 4178
    functionName: OGR_GeomTransformer_Transform
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRGeomTransformerH::aosOptions::List
    - ToHandle
    - OGRGeometryFactory::transformWithOptions
    - OGRGeomTransformerH::poCT::get
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_GeomTransformer_Transform(OGRGeomTransformerH hTransformer,\n
      \                                          OGRGeometryH hGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hTransformer
    argTypes:
    - OGRGeomTransformerH
    constantsTouched: []
    func_position:
      end: 4192
      start: 4189
    functionDepth: 0
    functionLinenumber: 4189
    functionLinenumberEnd: 4192
    functionName: OGR_GeomTransformer_Destroy
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_GeomTransformer_Destroy(OGRGeomTransformerH hTransformer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4212,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4206
    functionDepth: 0
    functionLinenumber: 4206
    functionLinenumberEnd: 4226
    functionName: OGRGeometryFactory::GetDefaultArcStepSize
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorOnce
    linkageType: ''
    returnType: double
    signature: double OGRGeometryFactory::GetDefaultArcStepSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 4235
      start: 4232
    functionDepth: 0
    functionLinenumber: 4232
    functionLinenumberEnd: 4235
    functionName: DISTANCE
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double DISTANCE(double x1, double y1, double x2, double y2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4282,1
    - Dst: OGRGeometryFactory::GetDefaultArcStepSize
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4288,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4353,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4355,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4356,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4363,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4371,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4383,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4392,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4393,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 10
    argNames:
    - dfCenterX
    - dfCenterY
    - dfZ
    - dfPrimaryRadius
    - dfSecondaryRadius
    - dfRotation
    - dfStartAngle
    - dfEndAngle
    - dfMaxAngleStepSizeDegrees
    - bUseMaxGap
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 4398
      start: 4275
    functionDepth: 1
    functionLinenumber: 4275
    functionLinenumberEnd: 4398
    functionName: OGRGeometryFactory::approximateArcAngles
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::getPoint
    - OGRGeometryFactory::GetDefaultArcStepSize
    - OGRLineString*::getNumPoints
    - OGRPoint::OGRPoint
    - sin
    - cos
    - OGRLineString::OGRLineString
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::approximateArcAngles(\n    double
      dfCenterX, double dfCenterY, double dfZ, double dfPrimaryRadius,\n    double
      dfSecondaryRadius, double dfRotation, double dfStartAngle,\n    double dfEndAngle,
      double dfMaxAngleStepSizeDegrees,\n    const bool bUseMaxGap /* = false */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4438,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - dfCenterX
    - dfCenterY
    - dfZ
    - dfPrimaryRadius
    - dfSecondaryRadius
    - dfRotation
    - dfStartAngle
    - dfEndAngle
    - dfMaxAngleStepSizeDegrees
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 4441
      start: 4432
    functionDepth: 2
    functionLinenumber: 4432
    functionLinenumberEnd: 4441
    functionName: OGR_G_ApproximateArcAngles
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::approximateArcAngles
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_ApproximateArcAngles(\n    double dfCenterX, double
      dfCenterY, double dfZ, double dfPrimaryRadius,\n    double dfSecondaryRadius,
      double dfRotation, double dfStartAngle,\n    double dfEndAngle, double dfMaxAngleStepSizeDegrees)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4475,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4475,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4483,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4483,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4493,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4494,1
    - Dst: OGRCurvePolygon*::stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4496,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4498,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4508,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4518,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4519,1
    - Dst: OGRGeometryCollection*::getLinearGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4522,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4527,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4529,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4530,1
    - Dst: OGRGeometryCollection*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4530,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4536,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4538,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4538,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4546,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4547,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4553,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4554,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4555,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4556,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4559,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4561,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4561,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4566,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4567,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4570,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4571,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4572,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4573,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4575,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4576,1
    - Dst: OGRLineString*::reversePoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4578,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4579,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4580,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4583,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4585,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4586,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4590,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4592,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4593,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4598,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4604,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4606,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4607,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 74
    argCount: 2
    argNames:
    - poGeom
    - bOnlyInOrder
    argTypes:
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 4614
      start: 4468
    functionDepth: 1
    functionLinenumber: 4468
    functionLinenumberEnd: 4614
    functionName: OGRGeometryFactory::forceToLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 3
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometryCollection*::getLinearGeometry
    - OGRLineString*::reversePoints
    - OGRLineString*::getNumPoints
    - OGRGeometry*::hasCurveGeometry
    - OGRGeometryCollection*::getNumGeometries
    - OGRPoint::OGRPoint
    - OGRLineString*::StartPoint
    - wkbFlatten
    - OGRLineString::OGRLineString
    - OGRGeometry*::getGeometryType
    - OGRCurvePolygon*::getNumInteriorRings
    - OGRCurve::CastToLineString
    - OGRGeometry*::toGeometryCollection
    - OGRLineString*::EndPoint
    - OGRGeometryCollection*::removeGeometry
    - OGRGeometryCollection*::getSpatialReference
    - OGRGeometry*::toCurve
    - OGRCurvePolygon*::stealExteriorRingCurve
    - OGRLineString*::addSubLineString
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::toCurvePolygon
    - OGRGeometryFactory::forceToLineString
    - OGRPoint::Equals
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::forceToLineString(OGRGeometry *poGeom,\n
      \                                                  bool bOnlyInOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4635,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4636,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 4637
      start: 4632
    functionDepth: 2
    functionLinenumber: 4632
    functionLinenumberEnd: 4637
    functionName: OGR_G_ForceToLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::forceToLineString
    - FromHandle
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_ForceToLineString(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4676,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4680,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4682,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4685,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4685,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4686,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4686,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4687,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4687,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4693,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4694,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4698,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4701,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4701,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4702,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4702,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4709,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4709,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4710,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4710,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4716,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4721,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4722,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4723,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4724,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4725,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4725,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4729,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4732,1
    - Dst: OGRGeometryCollection::CastToGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4733,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4734,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4734,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4735,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4735,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4741,1
    - Dst: OGRPolyhedralSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4742,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4742,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4743,1
    - Dst: OGRTriangle::CastToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4743,1
    - Dst: OGRPolyhedralSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4744,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4744,1
    - Dst: OGRPolyhedralSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4745,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4745,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4750,1
    - Dst: OGRPolyhedralSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4751,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4751,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4752,1
    - Dst: OGRPolyhedralSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4753,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4753,1
    - Dst: OGRPolyhedralSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4754,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4754,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4760,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4761,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4762,1
    - Dst: OGRPolyhedralSurface*::addGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4764,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4764,1
    - Dst: OGRPolyhedralSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4767,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4767,1
    - Dst: OGRPolyhedralSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4768,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4768,1
    - Dst: OGRTriangulatedSurface::CastToPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4773,1
    - Dst: OGRGeometry*::toTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4774,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4780,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4781,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4782,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4783,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4784,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4784,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4791,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4792,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4793,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4794,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4795,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4795,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4801,1
    - Dst: OGRTriangulatedSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4802,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4802,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4803,1
    - Dst: OGRTriangulatedSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4804,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4804,1
    - Dst: OGRTriangulatedSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4805,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4805,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4810,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4811,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4812,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4813,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4818,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4819,1
    - Dst: OGRTriangulatedSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4820,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4820,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4821,1
    - Dst: OGRTriangulatedSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4823,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4823,1
    - Dst: OGRTriangulatedSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4824,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4824,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4829,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4832,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4833,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4834,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4839,1
    - Dst: OGRTriangulatedSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4840,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4840,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4844,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4844,1
    - Dst: OGRTriangulatedSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4847,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4847,1
    - Dst: OGRTriangulatedSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4848,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4848,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4853,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4856,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4857,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4858,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4860,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4860,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4861,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4861,1
    - Dst: OGRTriangulatedSurface::OGRTriangulatedSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4865,1
    - Dst: OGRTriangulatedSurface*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4866,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4866,1
    - Dst: OGRTriangulatedSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4870,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4870,1
    - Dst: OGRTriangulatedSurface*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4873,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4873,1
    - Dst: OGRTriangulatedSurface*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4874,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4874,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4880,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4881,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4882,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4883,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4885,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4885,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4886,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4886,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4890,1
    - Dst: OGRTriangle*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4892,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4892,1
    - Dst: OGRTriangle*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4893,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4893,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4901,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4902,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4903,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4904,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4905,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4908,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4913,1
    - Dst: OGRGeometryCollection*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4914,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4914,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4915,1
    - Dst: OGRGeometryCollection*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4916,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4916,1
    - Dst: OGRGeometryCollection*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4917,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4917,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4922,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4923,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4923,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4925,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4931,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4931,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4933,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4933,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4934,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4935,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4935,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4936,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4936,1
    - Dst: OGRCurve::CastToCompoundCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4943,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4943,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4946,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4946,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4947,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4947,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4953,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4954,1
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4954,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4956,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4957,1
    - Dst: OGRCurvePolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4959,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4959,1
    - Dst: OGRCurvePolygon*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4960,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4960,1
    - Dst: OGRCurvePolygon*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4961,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4961,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4971,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4973,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4974,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4974,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4975,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4979,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4980,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4980,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4981,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4985,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4986,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4986,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4987,1
    - Dst: OGRSurface::CastToCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4991,1
    - Dst: OGRTriangle::CastToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4992,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4993,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4993,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4994,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4994,1
    - Dst: OGRSurface::CastToCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4999,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:4999,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5000,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5000,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5001,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5001,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5004,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5007,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5008,1
    - Dst: OGRCurvePolygon*::stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5010,1
    - Dst: OGRCurve*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5012,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5012,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5014,1
    - Dst: OGRMultiPolygon::CastToMultiSurface
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5020,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5020,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5021,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5021,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5022,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5022,1
    - Dst: OGRMultiLineString::CastToMultiCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5028,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5028,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5029,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5029,1
    - Dst: auto::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5030,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5030,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5033,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5035,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5036,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5038,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5041,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5042,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5043,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5045,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5045,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5046,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5046,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5046,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5053,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5054,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5054,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5055,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5055,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5060,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5061,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5062,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5064,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5065,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5067,1
    - Dst: OGRCurve*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5068,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5068,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5069,1
    - Dst: OGRCurve*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5070,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5071,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5072,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5088,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5089,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5089,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5090,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5090,1
    - Dst: OGRGeometryFactory::forceToPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5094,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5097,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5097,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5098,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5098,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5103,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5104,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5104,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5105,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5105,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5109,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5110,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5110,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5111,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5111,1
    - Dst: OGRGeometryFactory::forceToMultiPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5115,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5116,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5116,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5117,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5117,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 280
    argCount: 3
    argNames:
    - poGeom
    - eTargetType
    - papszOptions
    argTypes:
    - OGRGeometry*
    - OGRwkbGeometryType
    - char**
    constantsTouched: []
    func_position:
      end: 5121
      start: 4669
    functionDepth: 5
    functionLinenumber: 4669
    functionLinenumberEnd: 5121
    functionName: OGRGeometryFactory::forceTo
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 5
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::getSpatialReference
    - OGRTriangulatedSurface*::addGeometryDirectly
    - OGRGeometryCollection*::set3D
    - OGRPolyhedralSurface*::addGeometry
    - OGRGeometryFactory::forceToMultiPoint
    - OGRGeometry*::setMeasured
    - OGRTriangulatedSurface::CastToPolyhedralSurface
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryFactory::createGeometry
    - OGRMultiLineString::CastToMultiCurve
    - auto::set3D
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::getGeometryType
    - OGRCurvePolygon*::getNumInteriorRings
    - OGRCurvePolygon*::addRingDirectly
    - OGRTriangulatedSurface::OGRTriangulatedSurface
    - OGR_GT_HasM
    - OGRCurve::CastToCompoundCurve
    - OGRCurve*::getGeometryType
    - OGRMultiPolygon*::getNumGeometries
    - OGRCurvePolygon*::stealExteriorRingCurve
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::assignSpatialReference
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::set3D
    - OGRGeometry*::clone
    - OGRGeometryFactory::forceToMultiLineString
    - OGRGeometry*::toMultiPolygon
    - OGRGeometryCollection*::getNumGeometries
    - auto::setMeasured
    - OGRCurvePolygon*::getExteriorRingCurve
    - wkbFlatten
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::toMultiLineString
    - OGRCurve*::assignSpatialReference
    - OGRGeometryCollection*::removeGeometry
    - OGRGeometryFactory::forceTo
    - OGRGeometry*::IsEmpty
    - OGRGeometry*::toCurve
    - OGRSurface::CastToCurvePolygon
    - OGRGeometry*::toTriangulatedSurface
    - OGRCurvePolygon*::assignSpatialReference
    - OGRPolyhedralSurface*::setMeasured
    - OGRGeometry*::toPolygon
    - OGRTriangulatedSurface*::assignSpatialReference
    - OGRGeometryFactory::forceToLineString
    - OGRGeometryCollection*::setMeasured
    - OGRCurvePolygon*::set3D
    - OGRPolygon*::getNumInteriorRings
    - OGRCurve*::clone
    - OGR_GT_SetM
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    - OGRMultiPolygon*::getGeometryRef
    - OGRTriangle::OGRTriangle
    - OGRLinearRing*::getNumPoints
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryFactory::forceToMultiPolygon
    - OGR_GT_GetCollection
    - OGRPolyhedralSurface*::addGeometryDirectly
    - OGRGeometryCollection::CastToGeometryCollection
    - OGRCurvePolygon*::setMeasured
    - OGRCurvePolygon::OGRCurvePolygon
    - OGRPolyhedralSurface*::set3D
    - OGRGeometryFactory::forceToPolygon
    - OGR_GT_SetZ
    - OGRPolyhedralSurface*::assignSpatialReference
    - OGRTriangle*::setMeasured
    - OGR_GT_HasZ
    - OGRTriangulatedSurface*::setMeasured
    - OGRTriangle::CastToPolygon
    - OGRCurve*::getNumPoints
    - OGRCurve::CastToLineString
    - OGRTriangle*::set3D
    - OGRMultiPolygon::CastToMultiSurface
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometry*::toCurvePolygon
    - OGRTriangulatedSurface*::set3D
    - OGRCurve*::get_IsClosed
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::forceTo(OGRGeometry *poGeom,\n                                         OGRwkbGeometryType
      eTargetType,\n                                         const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5144,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5144,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hGeom
    - eTargetType
    - papszOptions
    argTypes:
    - OGRGeometryH
    - OGRwkbGeometryType
    - char**
    constantsTouched: []
    func_position:
      end: 5146
      start: 5140
    functionDepth: 6
    functionLinenumber: 5140
    functionLinenumberEnd: 5146
    functionName: OGR_G_ForceTo
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - FromHandle
    - OGRGeometryFactory::forceTo
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_ForceTo(OGRGeometryH hGeom, OGRwkbGeometryType
      eTargetType,\n                           char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5182,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5182,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5182,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5182,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5183,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5183,1
    - Dst: DISTANCE
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5195,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5197,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5216,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5217,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5218,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5219,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5220,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5221,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5229,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5229,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5242,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5243,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5244,1
    - Dst: DISTANCE
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5245,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5263,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 12
    argNames:
    - x0
    - y0
    - x1
    - y1
    - x2
    - y2
    - R
    - cx
    - cy
    - alpha0
    - alpha1
    - alpha2
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5267
      start: 5176
    functionDepth: 1
    functionLinenumber: 5176
    functionLinenumberEnd: 5267
    functionName: OGRGeometryFactory::GetCurveParameters
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 7
    functionsReached:
    - DISTANCE
    - CPLAssert
    - fabs
    - std::isnan
    - atan2
    linkageType: ''
    returnType: int
    signature: "int OGRGeometryFactory::GetCurveParameters(double x0, double y0, double
      x1,\n                                           double y1, double x2, double
      y2,\n                                           double &R, double &cx, double
      &cy,\n                                           double &alpha0, double &alpha1,\n
      \                                          double &alpha2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5283,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5284,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5286,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5307,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5318,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 11
    argNames:
    - poLine
    - cx
    - cy
    - R
    - z0
    - z1
    - bHasZ
    - alpha0
    - alpha1
    - dfStep
    - bStealthConstraints
    argTypes:
    - OGRLineString*
    - double
    - double
    - double
    - double
    - double
    - int
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 5325
      start: 5273
    functionDepth: 1
    functionLinenumber: 5273
    functionLinenumberEnd: 5325
    functionName: OGRGeometryFactoryStrokeArc
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - OGRLineString*::addPoint
    - fabs
    - CPLError
    - std::isnan
    - simple_min
    linkageType: ''
    returnType: void
    signature: "void OGRGeometryFactoryStrokeArc(OGRLineString *poLine, double cx,\n
      \                                       double cy, double R, double z0,\n                                        double
      z1, int bHasZ, double alpha0,\n                                        double
      alpha1, double dfStep,\n                                        int bStealthConstraints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5350,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5351,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5352,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5354,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5355,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - nValue
    - dfX
    - dfY
    argTypes:
    - GUInt16
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5357
      start: 5346
    functionDepth: 0
    functionLinenumber: 5346
    functionLinenumberEnd: 5357
    functionName: OGRGF_SetHiddenValue
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGRGF_SetHiddenValue(GUInt16 nValue, double &dfX, double &dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5367,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dfX
    - dfY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5373
      start: 5364
    functionDepth: 0
    functionLinenumber: 5364
    functionLinenumberEnd: 5373
    functionName: OGRGF_GetHiddenValue
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: GUInt16
    signature: GUInt16 OGRGF_GetHiddenValue(double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - x0
    - y0
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5384
      start: 5381
    functionDepth: 0
    functionLinenumber: 5381
    functionLinenumberEnd: 5384
    functionName: OGRGF_NeedSwithArcOrder
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGF_NeedSwithArcOrder(double x0, double y0, double x2, double
      y2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGF_NeedSwithArcOrder
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5446,1
    - Dst: OGRGeometryFactory::curveToLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5449,1
    - Dst: OGRLineString*::reversePoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5451,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5462,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5464,1
    - Dst: OGRGeometryFactory::GetDefaultArcStepSize
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5481,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5487,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5494,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5496,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5505,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5507,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5507,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5513,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5513,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5514,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5519,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5526,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5529,1
    - Dst: OGRGeometryFactoryStrokeArc
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5534,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5538,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5540,1
    - Dst: OGRGeometryFactoryStrokeArc
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5542,1
    - Dst: OGRGeometryFactoryStrokeArc
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5547,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5550,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5562,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5566,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5567,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5569,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5571,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5573,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5581,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5581,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5583,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5591,1
    - Dst: OGRGF_SetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5593,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5594,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5596,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5597,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5600,1
    - Dst: OGRGF_SetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5602,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5603,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5609,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5611,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 12
    argNames:
    - x0
    - y0
    - z0
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    - bHasZ
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - int
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 5614
      start: 5439
    functionDepth: 2
    functionLinenumber: 5439
    functionLinenumberEnd: 5614
    functionName: OGRGeometryFactory::curveToLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 2
    functionsReached:
    - OGRLineString*::reversePoints
    - CPLDebug
    - OGRLineString*::getNumPoints
    - CPLError
    - OGRGeometryFactory::curveToLineString
    - std::isnan
    - OGRLineString*::getY
    - OGRGF_NeedSwithArcOrder
    - simple_max
    - OGRLineString*::getX
    - OGRLineString::OGRLineString
    - static_cast<GUInt32>
    - OGRGF_SetHiddenValue
    - CPLAssert
    - CPLFree
    - OGRLineString*::addPoint
    - OGRGeometryFactory::GetDefaultArcStepSize
    - EQUAL
    - OGRGeometryFactoryStrokeArc
    - OGRGeometryFactory::GetCurveParameters
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *OGRGeometryFactory::curveToLineString(\n    double
      x0, double y0, double z0, double x1, double y1, double z1, double x2,\n    double
      y2, double z2, int bHasZ, double dfMaxAngleStepSizeDegrees,\n    const char
      *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - dfAngleStart
    - dfAngleStop
    - dfAngle
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5636
      start: 5622
    functionDepth: 0
    functionLinenumber: 5622
    functionLinenumberEnd: 5636
    functionName: OGRGF_FixAngle
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double OGRGF_FixAngle(double dfAngleStart, double dfAngleStop,\n                             double
      dfAngle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5648
      start: 5644
    functionDepth: 0
    functionLinenumber: 5644
    functionLinenumberEnd: 5648
    functionName: IS_ALMOST_INTEGER
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IS_ALMOST_INTEGER(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5654,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5657,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5658,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5659,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5660,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5661,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5662,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5669,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5670,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5672,1
    - Dst: OGRGF_GetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5682,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5682,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5682,1
    - Dst: OGRGF_GetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5683,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5683,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5683,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5690,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5690,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5691,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5691,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5692,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5692,1
    - Dst: log10
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5692,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5701,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5702,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5703,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5704,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5706,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5707,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5711,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5719,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5721,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5723,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5724,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5725,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5734,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5735,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5735,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5735,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5735,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5735,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5736,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5739,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5749,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5759,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5777,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5793,1
    - Dst: OGRGF_GetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5803,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5803,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5803,1
    - Dst: OGRGF_GetHiddenValue
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5805,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5805,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5805,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5807,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5829,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5833,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5836,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5848,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5851,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5864,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5867,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5871,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5876,1
    - Dst: OGRGF_FixAngle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5885,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5892,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5894,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5895,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5895,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5895,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5896,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5896,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5896,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5896,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5900,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5902,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5907,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5908,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5909,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5911,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5911,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5925,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5927,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5928,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5929,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5930,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5937,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5937,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5937,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5942,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5942,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5942,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5942,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5944,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5944,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5944,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5944,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5946,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5947,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5950,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5951,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5960,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5961,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5964,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5972,1
    - Dst: OGRGF_NeedSwithArcOrder
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5975,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5975,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5975,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5975,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5976,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5979,1
    - Dst: OGRGF_FixAngle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5984,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5993,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5994,1
    - Dst: OGRLineString*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:5996,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6003,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6004,1
    - Dst: OGRGF_FixAngle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6006,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6013,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6017,1
    - Dst: IS_ALMOST_INTEGER
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6021,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6022,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6022,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6034,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6034,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6035,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6035,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6037,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6037,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6038,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6038,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6047,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6058,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6058,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6059,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6059,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6060,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6061,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6072,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6072,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6073,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6073,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6075,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6075,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6077,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6077,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6084,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6085,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6086,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6105,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6108,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6108,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6111,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6114,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6114,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6121,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6129,1
    - Dst: OGRLineString*::getGeometryName
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6129,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6132,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6134,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6135,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6138,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6139,1
    - Dst: OGRLineString*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6140,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6141,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6145,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6147,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6148,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6149,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6154,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6155,1
    - Dst: OGRLineString*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6156,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6157,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6158,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6165,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6166,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6168,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6169,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6169,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6169,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6175,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6176,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6178,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6180,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6180,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6180,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6183,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6186,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6189,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 219
    argCount: 5
    argNames:
    - poLS
    - i
    - poCC
    - poCS
    - poLSNew
    argTypes:
    - OGRLineString*
    - int
    - OGRCompoundCurve*
    - OGRCircularString*
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 6192
      start: 5650
    functionDepth: 2
    functionLinenumber: 5650
    functionLinenumberEnd: 6192
    functionName: OGRGF_DetectArc
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getGeometryName
    - OGRCircularString*::addPoint
    - OGRPoint*::getY
    - OGRPoint::setX
    - OGRPoint::setY
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - OGRCircularString::OGRCircularString
    - printf
    - ceil
    - OGRCompoundCurve*::addCurveDirectly
    - OGRLineString*::getY
    - OGRGF_NeedSwithArcOrder
    - static_cast<GIntBig>
    - OGRPoint::getY
    - pow
    - OGRLineString*::getX
    - OGRPoint::OGRPoint
    - log10
    - OGRLineString*::getCoordinateDimension
    - static_cast<int>
    - OGRPoint*::getX
    - floor
    - OGRPoint::getX
    - OGRGF_FixAngle
    - OGRCompoundCurve::OGRCompoundCurve
    - sin
    - OGRPoint::setZ
    - IS_ALMOST_INTEGER
    - OGRLineString*::addPoint
    - EQUAL
    - max
    - OGRPoint::getZ
    - fabs
    - OGRGeometryFactory::GetCurveParameters
    - cos
    - OGRGF_GetHiddenValue
    - OGRPoint::Equals
    linkageType: ''
    returnType: int
    signature: "int OGRGF_DetectArc(const OGRLineString *poLS, int i,\n                           OGRCompoundCurve
      *&poCC, OGRCircularString *&poCS,\n                           OGRLineString
      *&poLSNew)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6236,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6237,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6241,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6242,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6245,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6246,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6253,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6253,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6253,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6258,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6258,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6258,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6258,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6260,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6260,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6260,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6260,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6263,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6272,1
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6278,1
    - Dst: OGRCompoundCurve*::stealCurve
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6280,1
    - Dst: OGRLineString*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6288,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6293,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6295,1
    - Dst: OGRLineString*::clone
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6303,1
    - Dst: OGRCurve*::assignSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6305,1
    - Dst: OGRLineString*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6305,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 2
    argNames:
    - poLS
    - papszOptions
    argTypes:
    - OGRLineString*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 6308
      start: 6214
    functionDepth: 1
    functionLinenumber: 6214
    functionLinenumberEnd: 6308
    functionName: OGRGeometryFactory::curveFromLineString
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getY
    - OGRLineString*::addPoint
    - OGRLineString*::getX
    - OGRLineString*::getSpatialReference
    - OGRCurve*::assignSpatialReference
    - OGRPoint::getX
    - OGRLineString*::clone
    - OGRLineString*::getPoint
    - OGRPoint::OGRPoint
    - max
    - OGRLineString*::getNumPoints
    - OGRCompoundCurve*::getNumCurves
    - fabs
    - OGRCompoundCurve::OGRCompoundCurve
    - OGRCompoundCurve*::addCurveDirectly
    - OGRLineString::OGRLineString
    - OGRLineString*::getY
    - OGRCompoundCurve*::stealCurve
    linkageType: ''
    returnType: OGRCurve
    signature: "OGRCurve *OGRGeometryFactory::curveFromLineString(\n    const OGRLineString
      *poLS, CPL_UNUSED const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6325,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6326,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6326,1
    - Dst: OGRGeometryFactory::createFromGeoJson
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6332,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszJsonString
    - nSize
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 6333
      start: 6322
    functionDepth: 1
    functionLinenumber: 6322
    functionLinenumberEnd: 6333
    functionName: OGRGeometryFactory::createFromGeoJson
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - OGRGeometryFactory::createFromGeoJson
    - reinterpret_cast<const GByte *>
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeometryFactory::createFromGeoJson(const char *pszJsonString,\n
      \                                                  int nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6348,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6355,1
    - Dst: static_cast<json_object *>
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6356,1
    - Dst: CPLJSONObject::GetInternalHandle
      Src: /src/gdal/ogr/ogrgeometryfactory.cpp:6356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oJsonObject
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 6357
      start: 6345
    functionDepth: 3
    functionLinenumber: 6345
    functionLinenumberEnd: 6357
    functionName: OGRGeometryFactory::createFromGeoJson
    functionSourceFile: /src/gdal/ogr/ogrgeometryfactory.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONReadGeometry
    - static_cast<json_object *>
    - CPLJSONObject::GetInternalHandle
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRGeometryFactory::createFromGeoJson(const CPLJSONObject &oJsonObject)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:150,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - iProjsys
    - iZone
    - padfPrjParams
    - iDatum
    argTypes:
    - OGRSpatialReferenceH
    - long
    - long
    - double*
    - long
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: OSRImportFromUSGS
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromUSGS(OGRSpatialReferenceH hSRS, long iProjsys,
      long iZone,\n                         double *padfPrjParams, long iDatum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: OGRSpatialReferenceUSGSUnpackNoOp
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReferenceUSGSUnpackNoOp(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: OGRSpatialReferenceUSGSUnpackRadian
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReferenceUSGSUnpackRadian(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:435,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:441,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:456,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:456,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:467,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:470,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:472,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:472,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:477,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:477,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:478,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:479,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:480,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:485,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:485,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:486,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:487,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:488,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:493,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:493,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:494,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:499,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:499,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:500,1
    - Dst: OGRSpatialReference::SetPolyconic
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:506,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:506,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:507,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:514,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:514,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:515,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:516,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:517,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:522,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:522,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:523,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:524,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:525,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:531,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:531,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:532,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:537,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:537,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:538,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:543,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:543,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:544,1
    - Dst: OGRSpatialReference::SetAE
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:549,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:549,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:550,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:555,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:555,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:556,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:561,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:561,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:562,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:569,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:569,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:574,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:574,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:575,1
    - Dst: OGRSpatialReference::SetMC
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:580,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:580,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:581,1
    - Dst: OGRSpatialReference::SetVDG
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:586,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:586,1
    - Dst: OGRSpatialReference::SetHOM
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:593,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:593,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:594,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:595,1
    - Dst: OGRSpatialReference::SetHOM2PNO
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:600,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:600,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:601,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:602,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:603,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:604,1
    - Dst: OGRSpatialReference::SetRobinson
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:611,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:611,1
    - Dst: OGRSpatialReference::SetMollweide
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:620,1
    - Dst: pfnUnpackAnglesFn
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:620,1
    - Dst: OGRSpatialReference::SetWagner
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:628,1
    - Dst: OGRSpatialReference::SetWagner
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:632,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:644,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:645,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:646,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:654,1
    - Dst: OSRCalcInvFlattening
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:666,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:672,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:679,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:686,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:689,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:690,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:693,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:697,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:702,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:705,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:706,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:709,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:713,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:722,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:724,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:728,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:729,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:731,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:739,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:742,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:743,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:748,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:751,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:752,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:755,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:761,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:761,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:762,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:767,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:771,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:772,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:772,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:772,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 166
    argCount: 5
    argNames:
    - iProjSys
    - iZone
    - padfPrjParams
    - iDatum
    - nUSGSAngleFormat
    argTypes:
    - long
    - long
    - double*
    - long
    - int
    constantsTouched: []
    func_position:
      end: 777
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 777
    functionName: OGRSpatialReference::importFromUSGS
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetMollweide
    - OGRSpatialReference::SetGeogCS
    - atoi
    - CPLDebug
    - OGRSpatialReference::SetAuthority
    - CPLString
    - OGRSpatialReference::SetWagner
    - CPLError
    - OGRSpatialReference::SetVDG
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetACEA
    - static_cast<long>
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - OGRSpatialReference::IsLocal
    - OGRSpatialReference::SetOrthographic
    - OGRSpatialReference::importFromEPSG
    - static_cast<int>
    - OGRSpatialReference::SetMC
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetHOM2PNO
    - OGRSpatialReference::SetEC
    - OGRSpatialReference::SetGnomonic
    - OGRSpatialReference::SetLocalCS
    - OGRSpatialReference::SetPolyconic
    - OGRSpatialReference::SetHOM
    - OGRSpatialReference::AutoIdentifyEPSG
    - OGRSpatialReference::SetStatePlane
    - CPL_IGNORE_RET_VAL
    - OGRSpatialReference::SetLinearUnits
    - OGRSpatialReference::SetEquirectangular2
    - OSRGetEllipsoidInfo
    - CPLFree
    - OGRSpatialReference::SetRobinson
    - sqrt
    - OGRSpatialReference::SetTM
    - pfnUnpackAnglesFn
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetAE
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetMercator
    - OSRCalcInvFlattening
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromUSGS(long iProjSys, long iZone,\n
      \                                          double *padfPrjParams, long iDatum,\n
      \                                          int nUSGSAngleFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:792,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSRS
    - piProjSys
    - piZone
    - ppadfPrjParams
    - piDatum
    argTypes:
    - OGRSpatialReferenceH
    - long*
    - long*
    - double**
    - long*
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: OSRExportToUSGS
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToUSGS(OGRSpatialReferenceH hSRS, long *piProjSys,
      long *piZone,\n                       double **ppadfPrjParams, long *piDatum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:835,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:835,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:844,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:856,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:860,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:860,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:862,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:862,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:864,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:864,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:866,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:866,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:867,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:868,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:871,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:875,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:875,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:877,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:877,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:879,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:879,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:881,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:881,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:882,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:883,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:886,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:890,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:890,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:892,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:892,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:893,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:894,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:897,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:901,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:901,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:903,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:903,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:904,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:905,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:908,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:912,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:912,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:914,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:914,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:915,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:916,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:919,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:923,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:923,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:925,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:925,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:927,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:927,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:929,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:929,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:930,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:931,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:935,1
    - Dst: OGRSpatialReference::GetUTMZone
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:939,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:950,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:951,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:952,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:953,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:954,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:955,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:956,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:960,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:964,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:964,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:966,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:966,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:967,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:968,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:971,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:975,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:975,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:977,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:977,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:978,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:979,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:982,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:986,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:986,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:988,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:988,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:989,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:990,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:993,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:997,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:997,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:999,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:999,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1000,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1001,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1004,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1008,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1008,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1010,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1010,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1011,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1012,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1015,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1019,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1019,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1020,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1021,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1024,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1028,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1028,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1030,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1030,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1031,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1032,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1035,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1039,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1039,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1041,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1041,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1042,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1043,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1046,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1050,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1050,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1051,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1052,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1055,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1058,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1060,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1060,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1062,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1062,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1064,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1064,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1065,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1066,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1070,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1074,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1076,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1076,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1077,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1078,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1079,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1080,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1082,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1082,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1083,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1084,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1086,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1086,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1090,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1094,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1094,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1095,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1096,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1099,1
    - Dst: CPLDecToPackedDMS
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1103,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1103,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1104,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1105,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1108,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1111,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1112,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1115,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1118,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1119,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1142,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1146,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1157,1
    - Dst: OSRGetEllipsoidInfo
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1169,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1171,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1172,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1182,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogr_srs_usgs.cpp:1189,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 215
    argCount: 4
    argNames:
    - piProjSys
    - piZone
    - ppadfPrjParams
    - piDatum
    argTypes:
    - long*
    - long*
    - double**
    - long*
    constantsTouched: []
    func_position:
      end: 1207
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 1207
    functionName: OGRSpatialReference::exportToUSGS
    functionSourceFile: /src/gdal/ogr/ogr_srs_usgs.cpp
    functionUses: 0
    functionsReached:
    - CPLDecToPackedDMS
    - CPLDebug
    - EQUAL
    - std::abs
    - static_cast<double *>
    - OGRSpatialReference::GetNormProjParm
    - OSRGetEllipsoidInfo
    - OGRSpatialReference::IsLocal
    - CPLMalloc
    - OGRSpatialReference::GetUTMZone
    - CPLIsEqual
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToUSGS(long *piProjSys, long *piZone,\n
      \                                        double **ppadfPrjParams,\n                                         long
      *piDatum) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrutils.cpp:45,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrutils.cpp:46,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrutils.cpp:50,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: CPLIsDoubleAnInt
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<int>
    - static_cast<double>
    - simple_min
    linkageType: ''
    returnType: bool
    signature: bool CPLIsDoubleAnInt(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrutils.cpp:59,1
    - Dst: std::string::find_last_not_of
      Src: /src/gdal/ogr/ogrutils.cpp:65,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrutils.cpp:66,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrutils.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: removeTrailingZeros
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - std::string::find_last_not_of
    - std::string::substr
    - std::string::back
    linkageType: ''
    returnType: void
    signature: void removeTrailingZeros(std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrutils.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 105
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 105
    functionName: roundup
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    linkageType: ''
    returnType: void
    signature: void roundup(std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrutils.cpp:151,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrutils.cpp:168,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrutils.cpp:168,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrutils.cpp:176,1
    - Dst: roundup
      Src: /src/gdal/ogr/ogrutils.cpp:177,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrutils.cpp:186,1
    - Dst: roundup
      Src: /src/gdal/ogr/ogrutils.cpp:187,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 189
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 189
    functionName: intelliround
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::resize
    - std::string::pop_back
    - roundup
    linkageType: ''
    returnType: void
    signature: void intelliround(std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:206,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrutils.cpp:209,1
    - Dst: std::string::replace
      Src: /src/gdal/ogr/ogrutils.cpp:211,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrutils.cpp:211,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrutils.cpp:213,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrutils.cpp:213,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:215,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrutils.cpp:218,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrutils.cpp:218,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrutils.cpp:219,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrutils.cpp:221,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrutils.cpp:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - pszBuffer
    - nBufferLen
    - dfVal
    - chDecimalSep
    - nPrecision
    - chConversionSpecifier
    argTypes:
    - char*
    - int
    - double
    - char
    - int
    - char
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: OGRFormatDouble
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - std::string::data
    - std::string::find
    - std::string::size
    - std::string::replace
    - std::string::resize
    - strcpy
    - std::string
    - CPLError
    - std::string::substr
    - OGRFormatDouble
    linkageType: ''
    returnType: void
    signature: "void OGRFormatDouble(char *pszBuffer, int nBufferLen, double dfVal,\n
      \                    char chDecimalSep, int nPrecision,\n                     char
      chConversionSpecifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrutils.cpp:229,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrutils.cpp:231,1
    - Dst: std::locale::classic
      Src: /src/gdal/ogr/ogrutils.cpp:235,1
    - Dst: std::ostringstream::imbue
      Src: /src/gdal/ogr/ogrutils.cpp:237,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrutils.cpp:240,1
    - Dst: std::setprecision
      Src: /src/gdal/ogr/ogrutils.cpp:248,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrutils.cpp:253,1
    - Dst: intelliround
      Src: /src/gdal/ogr/ogrutils.cpp:256,1
    - Dst: removeTrailingZeros
      Src: /src/gdal/ogr/ogrutils.cpp:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - val
    - opts
    - nDimIdx
    argTypes:
    - double
    - OGRWktOptions
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 259
    functionName: OGRFormatDouble
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - std::locale::classic
    - std::setprecision
    - removeTrailingZeros
    - std::ostringstream::str
    - intelliround
    - fabs
    - std::isinf
    - std::isnan
    - std::ostringstream::imbue
    linkageType: ''
    returnType: std::string
    signature: std::string OGRFormatDouble(double val, const OGRWktOptions &opts,
      int nDimIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrutils.cpp:277,1
    - Dst: OGRWktOptions
      Src: /src/gdal/ogr/ogrutils.cpp:277,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrutils.cpp:278,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrutils.cpp:278,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrutils.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pszTarget
    - x
    - y
    - z
    - nDimension
    argTypes:
    - char*
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: OGRMakeWktCoordinate
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - OGRWktOptions
    - std::string::data
    - std::string::size
    - OGRMakeWktCoordinate
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGRMakeWktCoordinate(char *pszTarget, double x, double y, double
      z,\n                          int nDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_first_not_of
      Src: /src/gdal/ogr/ogrutils.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: isInteger
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_first_not_of
    linkageType: ''
    returnType: bool
    signature: bool isInteger(const std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:293,1
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:294,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:296,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:296,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:298,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:298,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:302,1
    - Dst: isInteger
      Src: /src/gdal/ogr/ogrutils.cpp:304,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:308,1
    - Dst: isInteger
      Src: /src/gdal/ogr/ogrutils.cpp:309,1
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:317,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:318,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:318,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - x
    - y
    - z
    - nDimension
    - opts
    argTypes:
    - double
    - double
    - double
    - int
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 325
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 325
    functionName: OGRMakeWktCoordinate
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - isInteger
    - CPLIsDoubleAnInt
    - std::to_string
    - OGRFormatDouble
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMakeWktCoordinate(double x, double y, double z, int
      nDimension,\n                                 const OGRWktOptions &opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMakeWktCoordinateM
      Src: /src/gdal/ogr/ogrutils.cpp:343,1
    - Dst: OGRWktOptions
      Src: /src/gdal/ogr/ogrutils.cpp:343,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrutils.cpp:344,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrutils.cpp:344,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrutils.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pszTarget
    - x
    - y
    - z
    - m
    - hasZ
    - hasM
    argTypes:
    - char*
    - double
    - double
    - double
    - double
    - OGRBoolean
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: OGRMakeWktCoordinateM
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 2
    functionsReached:
    - OGRWktOptions
    - std::string::data
    - std::string::size
    - OGRMakeWktCoordinateM
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGRMakeWktCoordinateM(char *pszTarget, double x, double y, double
      z,\n                           double m, OGRBoolean hasZ, OGRBoolean hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:352,1
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:353,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:355,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:357,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:357,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:361,1
    - Dst: isInteger
      Src: /src/gdal/ogr/ogrutils.cpp:362,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:366,1
    - Dst: isInteger
      Src: /src/gdal/ogr/ogrutils.cpp:367,1
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:375,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:376,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:376,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:378,1
    - Dst: CPLIsDoubleAnInt
      Src: /src/gdal/ogr/ogrutils.cpp:384,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrutils.cpp:385,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:385,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrutils.cpp:387,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 7
    argNames:
    - x
    - y
    - z
    - m
    - hasZ
    - hasM
    - opts
    argTypes:
    - double
    - double
    - double
    - double
    - OGRBoolean
    - OGRBoolean
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 390
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 390
    functionName: OGRMakeWktCoordinateM
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - isInteger
    - CPLIsDoubleAnInt
    - std::to_string
    - OGRFormatDouble
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMakeWktCoordinateM(double x, double y, double z, double
      m,\n                                  OGRBoolean hasZ, OGRBoolean hasM,\n                                  const
      OGRWktOptions &opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 18
    argCount: 2
    argNames:
    - pszInput
    - pszToken
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 451
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 451
    functionName: OGRWktReadToken
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRWktReadToken(const char *pszInput, char *pszToken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrutils.cpp:482,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:507,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:508,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:510,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:510,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:512,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:512,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrutils.cpp:524,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:525,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:529,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:530,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:539,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:540,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:547,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:549,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:549,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:554,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrutils.cpp:555,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:558,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:560,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:575,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:575,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:578,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrutils.cpp:589,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 5
    argNames:
    - pszInput
    - ppaoPoints
    - ppadfZ
    - pnMaxPoints
    - pnPointsRead
    argTypes:
    - char*
    - OGRRawPoint**
    - double**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 598
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 598
    functionName: OGRWktReadPoints
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - isdigit
    - static_cast<unsigned char>
    - CPLDebug
    - CPLRealloc
    - static_cast<double *>
    - static_cast<OGRRawPoint *>
    - CPLCalloc
    - OGRWktReadToken
    linkageType: ''
    returnType: char
    signature: "char *OGRWktReadPoints(const char *pszInput, OGRRawPoint **ppaoPoints,\n
      \                            double **ppadfZ, int *pnMaxPoints,\n                             int
      *pnPointsRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrutils.cpp:631,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:656,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:657,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:659,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:661,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:662,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:664,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrutils.cpp:675,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:676,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:680,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:681,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:686,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:687,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:696,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:697,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:704,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:714,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:714,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:715,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:731,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrutils.cpp:732,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:734,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:734,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:735,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:737,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:738,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:759,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:759,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:760,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:768,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:783,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrutils.cpp:784,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:786,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:787,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:789,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:790,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:811,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:811,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrutils.cpp:812,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrutils.cpp:817,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrutils.cpp:818,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:821,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrutils.cpp:822,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrutils.cpp:839,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 83
    argCount: 7
    argNames:
    - pszInput
    - ppaoPoints
    - ppadfZ
    - ppadfM
    - flags
    - pnMaxPoints
    - pnPointsRead
    argTypes:
    - char*
    - OGRRawPoint**
    - double**
    - double**
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 848
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 848
    functionName: OGRWktReadPointsM
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 2
    functionsReached:
    - CPLAtof
    - isdigit
    - static_cast<unsigned char>
    - CPLDebug
    - EQUAL
    - CPLRealloc
    - static_cast<double *>
    - static_cast<OGRRawPoint *>
    - CPLCalloc
    - OGRWktReadToken
    linkageType: ''
    returnType: char
    signature: "char *OGRWktReadPointsM(const char *pszInput, OGRRawPoint **ppaoPoints,\n
      \                             double **ppadfZ, double **ppadfM, int *flags,\n
      \                             int *pnMaxPoints, int *pnPointsRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrutils.cpp:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: OGRMalloc
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void *OGRMalloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrutils.cpp:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 872
    functionName: OGRCalloc
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void *OGRCalloc(size_t count, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrutils.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pOld
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: OGRRealloc
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void *OGRRealloc(void *pOld, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrutils.cpp:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pMemory
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: OGRFree
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFree(void *pMemory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeneralCmdLineProcessor
      Src: /src/gdal/ogr/ogrutils.cpp:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nArgc
    - ppapszArgv
    - nOptions
    argTypes:
    - int
    - char***
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: OGRGeneralCmdLineProcessor
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - GDALGeneralCmdLineProcessor
    linkageType: ''
    returnType: int
    signature: "int OGRGeneralCmdLineProcessor(int nArgc, char ***ppapszArgv,\n                               CPL_UNUSED
      int nOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrutils.cpp:961,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrutils.cpp:961,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:987,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 2
    argNames:
    - pszTZ
    - bEmitErrorIfUnhandledFormat
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 991
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 991
    functionName: OGRTimezoneToTZFlag
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - strcmp
    linkageType: ''
    returnType: int
    signature: int OGRTimezoneToTZFlag(const char *pszTZ, bool bEmitErrorIfUnhandledFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrutils.cpp:1020,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrutils.cpp:1026,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrutils.cpp:1030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - nTZFlag
    - pszUTCRepresentation
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1032
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1032
    functionName: OGRTZFlagToTimezone
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - CPLSPrintf
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string OGRTZFlagToTimezone(int nTZFlag, const char *pszUTCRepresentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:1091,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:1091,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrutils.cpp:1097,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrutils.cpp:1098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:1100,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrutils.cpp:1102,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrutils.cpp:1103,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1106,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1134,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1142,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1160,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1168,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:1200,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1212,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1223,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1238,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1247,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrutils.cpp:1266,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrutils.cpp:1303,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1305,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1305,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1308,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1310,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1311,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1311,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:1316,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:1316,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:1317,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:1318,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1319,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1321,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1322,1
    - Dst: CPLScanLong
      Src: /src/gdal/ogr/ogrutils.cpp:1322,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1323,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrutils.cpp:1328,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrutils.cpp:1328,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1330,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1332,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1333,1
    - Dst: CPLScanLong
      Src: /src/gdal/ogr/ogrutils.cpp:1333,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrutils.cpp:1334,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 164
    argCount: 3
    argNames:
    - pszInput
    - psField
    - nOptions
    argTypes:
    - char*
    - OGRField*
    - int
    constantsTouched: []
    func_position:
      end: 1343
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1343
    functionName: OGRParseDate
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 3
    functionsReached:
    - simple_max
    - isdigit
    - static_cast<float>
    - atoi
    - static_cast<unsigned char>
    - static_cast<GInt16>
    - strchr
    - static_cast<GByte>
    - strlen
    - CPLError
    - simple_min
    - CPLScanLong
    linkageType: ''
    returnType: int
    signature: int OGRParseDate(const char *pszInput, OGRField *psField, int nOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1352,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1352,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1354,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1355,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1356,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1357,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1358,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1359,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1360,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1361,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1362,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1363,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1364,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1365,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1367,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1373,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1375,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1377,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1379,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1381,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 16
    argCount: 2
    argNames:
    - sInput
    - psField
    argTypes:
    - std::string_view
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1393
    functionName: OGRParseDateTimeYYYYMMDDTHHMMZ
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    - std::string_view::size
    - static_cast<unsigned>
    - static_cast<GInt16>
    linkageType: ''
    returnType: bool
    signature: bool OGRParseDateTimeYYYYMMDDTHHMMZ(std::string_view sInput, OGRField
      *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1403,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1403,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1406,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1407,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1408,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1409,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1410,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1411,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1412,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1413,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1414,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1415,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1416,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1417,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1418,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1419,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1421,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1427,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1429,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1431,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1433,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrutils.cpp:1435,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1436,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 16
    argCount: 2
    argNames:
    - sInput
    - psField
    argTypes:
    - std::string_view
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1449
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1449
    functionName: OGRParseDateTimeYYYYMMDDTHHMMSSZ
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - static_cast<unsigned>
    - static_cast<GInt16>
    - static_cast<GByte>
    - std::string_view::size
    linkageType: ''
    returnType: bool
    signature: "bool OGRParseDateTimeYYYYMMDDTHHMMSSZ(std::string_view sInput,\n                                      OGRField
      *psField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1459,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1459,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1462,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1463,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1464,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1465,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1466,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1467,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1468,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1469,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1470,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1471,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1472,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1473,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1474,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1475,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1476,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1477,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrutils.cpp:1478,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1480,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1486,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1488,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1490,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1492,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrutils.cpp:1494,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrutils.cpp:1498,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 16
    argCount: 2
    argNames:
    - sInput
    - psField
    argTypes:
    - std::string_view
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1511
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1511
    functionName: OGRParseDateTimeYYYYMMDDTHHMMSSsssZ
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - static_cast<unsigned>
    - static_cast<GInt16>
    - static_cast<GByte>
    - std::string_view::size
    linkageType: ''
    returnType: bool
    signature: "bool OGRParseDateTimeYYYYMMDDTHHMMSSsssZ(std::string_view sInput,\n
      \                                        OGRField *psField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrutils.cpp:1532,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrutils.cpp:1540,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrutils.cpp:1549,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrutils.cpp:1556,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrutils.cpp:1562,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1572,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1573,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1574,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1575,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1576,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - pszXMLDateTime
    - psField
    argTypes:
    - char*
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1582
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1582
    functionName: OGRParseXMLDateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - static_cast<GByte>
    - static_cast<GInt16>
    linkageType: ''
    returnType: int
    signature: int OGRParseXMLDateTime(const char *pszXMLDateTime, OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseRFC822DateTime
      Src: /src/gdal/ogr/ogrutils.cpp:1595,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrutils.cpp:1601,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1602,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1603,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1604,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1605,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrutils.cpp:1606,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrutils.cpp:1607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - pszRFC822DateTime
    - psField
    argTypes:
    - char*
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1611
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1611
    functionName: OGRParseRFC822DateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    - static_cast<float>
    - static_cast<GInt16>
    - CPLParseRFC822DateTime
    linkageType: ''
    returnType: int
    signature: int OGRParseRFC822DateTime(const char *pszRFC822DateTime, OGRField
      *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - day
    - month
    - year
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1641
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1641
    functionName: OGRGetDayOfWeek
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGetDayOfWeek(int day, int month, int year)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrutils.cpp:1663,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrutils.cpp:1670,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrutils.cpp:1670,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrutils.cpp:1678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1680
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1680
    functionName: OGRGetRFC822DateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRGetRFC822DateTime(const OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrutils.cpp:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1692
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1692
    functionName: OGRGetXMLDateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - OGRGetISO8601DateTime
    linkageType: ''
    returnType: char
    signature: char *OGRGetXMLDateTime(const OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrutils.cpp:1698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - psField
    - bAlwaysMillisecond
    argTypes:
    - OGRField*
    - bool
    constantsTouched: []
    func_position:
      end: 1700
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1700
    functionName: OGRGetXMLDateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - OGRGetISO8601DateTime
    linkageType: ''
    returnType: char
    signature: char *OGRGetXMLDateTime(const OGRField *psField, bool bAlwaysMillisecond)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrutils.cpp:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - psField
    - bAlwaysMillisecond
    - szBuffer
    argTypes:
    - OGRField*
    - bool
    - char[]
    constantsTouched: []
    func_position:
      end: 1709
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1709
    functionName: OGRGetISO8601DateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 4
    functionsReached:
    - OGRGetISO8601DateTime
    linkageType: ''
    returnType: int
    signature: "int OGRGetISO8601DateTime(const OGRField *psField, bool bAlwaysMillisecond,\n
      \                         char szBuffer[OGR_SIZEOF_ISO8601_DATETIME_BUFFER])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:1725,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrutils.cpp:1738,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrutils.cpp:1762,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 3
    argNames:
    - psField
    - sFormat
    - szBuffer
    argTypes:
    - OGRField*
    - OGRISO8601Format
    - char[]
    constantsTouched: []
    func_position:
      end: 1826
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1826
    functionName: OGRGetISO8601DateTime
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 4
    functionsReached:
    - CPLError
    - OGR_GET_MS
    - static_cast<char>
    linkageType: ''
    returnType: int
    signature: "int OGRGetISO8601DateTime(const OGRField *psField,\n                          const
      OGRISO8601Format &sFormat,\n                          char szBuffer[OGR_SIZEOF_ISO8601_DATETIME_BUFFER])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrutils.cpp:1835,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrutils.cpp:1836,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrutils.cpp:1836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:1842,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrutils.cpp:1852,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrutils.cpp:1857,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrutils.cpp:1858,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrutils.cpp:1861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1863
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1863
    functionName: OGRGetXML_UTF8_EscapedString
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLEscapeString
    - CPLTestBool
    - CPLDebug
    - CPLIsUTF8
    - CPLError
    - CPLGetConfigOption
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *OGRGetXML_UTF8_EscapedString(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - psFirstTuple
    - psSecondTuple
    argTypes:
    - OGRField*
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1904
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1904
    functionName: OGRCompareDate
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCompareDate(const OGRField *psFirstTuple, const OGRField *psSecondTuple)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:1926,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:1929,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1930
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1930
    functionName: OGRCallAtofOnShortString
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double OGRCallAtofOnShortString(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCallAtofOnShortString
      Src: /src/gdal/ogr/ogrutils.cpp:1974,1
    - Dst: OGRCallAtofOnShortString
      Src: /src/gdal/ogr/ogrutils.cpp:1989,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrutils.cpp:1992,1
    - Dst: OGRCallAtofOnShortString
      Src: /src/gdal/ogr/ogrutils.cpp:1995,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 35
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1998
      start: 1939
    functionDepth: 2
    functionLinenumber: 1939
    functionLinenumberEnd: 1998
    functionName: OGRFastAtof
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - OGRCallAtofOnShortString
    - CPL_ARRAYSIZE
    linkageType: ''
    returnType: double
    signature: double OGRFastAtof(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:2015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:2022,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrutils.cpp:2029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - panPermutation
    - nSize
    argTypes:
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2031
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2031
    functionName: OGRCheckPermutation
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCheckPermutation(const int *panPermutation, int nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrutils.cpp:2046,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrutils.cpp:2055,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrutils.cpp:2056,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrutils.cpp:2058,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrutils.cpp:2185,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrutils.cpp:2206,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 127
    argCount: 3
    argNames:
    - pabyData
    - eWkbVariant
    - peGeometryType
    argTypes:
    - unsigned char*
    - OGRwkbVariant
    - OGRwkbGeometryType*
    constantsTouched: []
    func_position:
      end: 2209
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2209
    functionName: OGRReadWKBGeometryType
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 8
    functionsReached:
    - static_cast<OGRwkbByteOrder>
    - static_cast<OGRwkbGeometryType>
    - OGR_SWAP
    - CPL_SWAP32PTR
    - CPLError
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRReadWKBGeometryType(const unsigned char *pabyData,\n                              OGRwkbVariant
      eWkbVariant,\n                              OGRwkbGeometryType *peGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2222,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2224,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2226,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2228,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2230,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2232,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2234,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2236,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2238,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2240,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2242,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2244,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2246,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrutils.cpp:2248,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2253,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrutils.cpp:2254,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2255,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrutils.cpp:2256,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2257,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrutils.cpp:2258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 2
    argNames:
    - pszWKT
    - peGeometryType
    argTypes:
    - char*
    - OGRwkbGeometryType*
    constantsTouched: []
    func_position:
      end: 2263
      start: 2215
    functionDepth: 3
    functionLinenumber: 2215
    functionLinenumberEnd: 2263
    functionName: OGRReadWKTGeometryType
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_SetModifier
    - STARTS_WITH_CI
    - strstr
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRReadWKTGeometryType(const char *pszWKT,\n                              OGRwkbGeometryType
      *peGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrutils.cpp:2273,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2274,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrutils.cpp:2275,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2276,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2284,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2286,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2292,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2293,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2300,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2302,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:2303,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2304,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrutils.cpp:2305,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrutils.cpp:2306,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrutils.cpp:2306,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrutils.cpp:2314,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrutils.cpp:2314,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrutils.cpp:2314,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:2315,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrutils.cpp:2315,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:2319,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:2320,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrutils.cpp:2320,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrutils.cpp:2322,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 5
    argNames:
    - pszBuffer
    - nBufferLen
    - fVal
    - nPrecision
    - chConversionSpecifier
    argTypes:
    - char*
    - int
    - float
    - int
    - char
    constantsTouched: []
    func_position:
      end: 2326
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2326
    functionName: OGRFormatFloat
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - static_cast<int>
    - static_cast<float>
    - strchr
    - CPLString::c_str
    - CPLsnprintf
    - CPLString::size
    - strstr
    - std::isinf
    - memcpy
    - std::isnan
    linkageType: ''
    returnType: int
    signature: "int OGRFormatFloat(char *pszBuffer, int nBufferLen, float fVal, int
      nPrecision,\n                   char chConversionSpecifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrutils.cpp:2330,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrutils.cpp:2337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fSec
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 2338
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2338
    functionName: OGR_GET_MS
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::isnan
    linkageType: ''
    returnType: int
    signature: int OGR_GET_MS(float fSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrutils.cpp:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osStr
    - ch
    argTypes:
    - std::string
    - char
    constantsTouched: []
    func_position:
      end: 2348
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2348
    functionName: OGRDuplicateCharacter
    functionSourceFile: /src/gdal/ogr/ogrutils.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: std::string
    signature: std::string OGRDuplicateCharacter(const std::string &osStr, char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_new
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:23,1
    - Dst: json_tokener_parse_ex
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:25,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:30,1
    - Dst: json_tokener_error_desc
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:32,1
    - Dst: json_tokener_free
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:35,1
    - Dst: json_tokener_free
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pszText
    - ppoObj
    - bVerboseError
    argTypes:
    - char*
    - json_object**
    - bool
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: OGRJSonParse
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 3
    functionsReached:
    - json_tokener_error_desc
    - CPLError
    - json_tokener_parse_ex
    - json_tokener_free
    - json_tokener_new
    linkageType: ''
    returnType: bool
    signature: bool OGRJSonParse(const char *pszText, json_object **ppoObj, bool bVerboseError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - struct json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: CPL_json_object_object_get
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 1
    functionsReached:
    - json_object_object_get_ex
    linkageType: ''
    returnType: json_object
    signature: "json_object *CPL_json_object_object_get(struct json_object *obj,\n
      \                                       const char *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:64,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:72,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:77,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - poObj
    - pszPath
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: json_ex_get_object_by_path
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - json_object_get_type
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: json_object *json_ex_get_object_by_path(json_object *poObj, const char
      *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_object
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:98,1
    - Dst: json_object_get_object
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:103,1
    - Dst: static_cast<const char *>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - poObj
    - pszName
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: OGRGeoJSONFindMemberEntryByName
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - static_cast<const char *>
    - json_object_get_object
    linkageType: ''
    returnType: lh_entry
    signature: "lh_entry *OGRGeoJSONFindMemberEntryByName(json_object *poObj,\n                                          const
      char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberEntryByName
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:114,1
    - Dst: static_cast<json_object *>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:117,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poObj
    - pszName
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: OGRGeoJSONFindMemberByName
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 18
    functionsReached:
    - static_cast<json_object *>
    - OGRGeoJSONFindMemberEntryByName
    - const_cast<void *>
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRGeoJSONFindMemberByName(json_object *poObj, const char
      *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_userdata
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:133,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:138,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:138,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:143,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:143,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:154,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:156,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:156,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:156,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - jso
    - pb
    argTypes:
    - struct json_object*
    - struct printbuf*
    constantsTouched: []
    func_position:
      end: 158
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 158
    functionName: OGR_json_double_with_precision_to_string
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - printbuf_memappend
    - std::string::data
    - std::string::size
    - json_object_get_userdata
    - fabs
    - std::isinf
    - OGRFormatDouble
    linkageType: ''
    returnType: int
    signature: "int OGR_json_double_with_precision_to_string(struct json_object *jso,\n
      \                                                   struct printbuf *pb,\n                                                    int
      /* level */,\n                                                    int /* flags
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:167,1
    - Dst: json_object_set_serializer
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:168,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:170,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfVal
    - nCoordPrecision
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: json_object_new_double_with_precision
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - json_object_set_serializer
    - reinterpret_cast<void *>
    - json_object_new_double
    linkageType: ''
    returnType: json_object
    signature: "json_object *json_object_new_double_with_precision(double dfVal,\n
      \                                                  int nCoordPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:186,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:187,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:188,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:191,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:193,1
    - Dst: json_object_get_userdata
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:202,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:212,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:214,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:220,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:221,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:226,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:228,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:230,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:231,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:232,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:240,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:242,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:247,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:248,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:249,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:252,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:256,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 2
    argNames:
    - jso
    - pb
    argTypes:
    - struct json_object*
    - struct printbuf*
    constantsTouched: []
    func_position:
      end: 257
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 257
    functionName: OGR_json_double_with_significant_figures_to_string
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - printbuf_memappend
    - strchr
    - json_object_get_userdata
    - CPLsnprintf
    - strstr
    - std::isinf
    - std::isnan
    linkageType: ''
    returnType: int
    signature: "int OGR_json_double_with_significant_figures_to_string(\n    struct
      json_object *jso, struct printbuf *pb, int /* level */,\n    int /* flags */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:267,1
    - Dst: json_object_set_serializer
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:268,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:270,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfVal
    - nSignificantFigures
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: json_object_new_double_with_significant_figures
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - json_object_set_serializer
    - reinterpret_cast<void *>
    - json_object_new_double
    linkageType: ''
    returnType: json_object
    signature: "json_object *\njson_object_new_double_with_significant_figures(double
      dfVal,\n                                                int nSignificantFigures)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:294,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:305,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:306,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:314,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:337,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:346,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:349,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:380,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrlibjsonutils.cpp:381,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 3
    argNames:
    - poObject
    - eSubType
    - bArrayAsString
    argTypes:
    - json_object*
    - OGRFieldSubType
    - bool
    constantsTouched: []
    func_position:
      end: 431
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 431
    functionName: GeoJSONPropertyToFieldType
    functionSourceFile: /src/gdal/ogr/ogrlibjsonutils.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - json_object_array_length
    - CPL_INT64_FITS_ON_INT32
    - json_object_get_type
    - CPLError
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType GeoJSONPropertyToFieldType(json_object *poObject,\n                                        OGRFieldSubType
      &eSubType,\n                                        bool bArrayAsString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrlinestring.cpp:31,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:33,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:34,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrlinestring.cpp:35,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrlinestring.cpp:36,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlinestring.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: DoubleToIntClamp
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<int>
    - std::isnan
    - simple_min
    linkageType: ''
    returnType: int
    signature: int DoubleToIntClamp(double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRSimpleCurve
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: OGRSimpleCurve::OGRSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setPoints
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::OGRSimpleCurve(const OGRSimpleCurve &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrlinestring.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRSimpleCurve
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: OGRSimpleCurve::OGRSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::OGRSimpleCurve(OGRSimpleCurve &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:95,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:96,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: OGRSimpleCurve::~OGRSimpleCurve()
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::~OGRSimpleCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::operator=
      Src: /src/gdal/ogr/ogrlinestring.cpp:118,1
    - Dst: setPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRSimpleCurve
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: '&OGRSimpleCurve::operator=(const OGRSimpleCurve &other)'
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - setPoints
    - OGRCurve::operator=
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve &OGRSimpleCurve::operator=(const OGRSimpleCurve &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::operator=
      Src: /src/gdal/ogr/ogrlinestring.cpp:141,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrlinestring.cpp:141,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:145,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:147,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRSimpleCurve
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: '&OGRSimpleCurve::operator=(OGRSimpleCurve &&other)'
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OGRCurve::operator=
    - std::move
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve &OGRSimpleCurve::operator=(OGRSimpleCurve &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:170,1
    - Dst: OGRSimpleCurve::setMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: OGRSimpleCurve::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setMeasured
    - OGRSimpleCurve::Make2D
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: OGRSimpleCurve::empty
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:191,1
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:193,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: OGRSimpleCurve::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setMeasured
    - OGRSimpleCurve::Make2D
    - OGRSimpleCurve::Make3D
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:203,1
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: OGRSimpleCurve::set3D
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::Make2D
    - OGRSimpleCurve::Make3D
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:213,1
    - Dst: OGRSimpleCurve::RemoveM
      Src: /src/gdal/ogr/ogrlinestring.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: OGRSimpleCurve::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 2
    functionsReached:
    - OGRSimpleCurve::RemoveM
    - OGRSimpleCurve::AddM
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:229,1
    - Dst: CoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: OGRSimpleCurve::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CoordinateDimension
    linkageType: ''
    returnType: size_t
    signature: size_t OGRSimpleCurve::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: OGRSimpleCurve::Make2D
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 3
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::Make2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:258,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:259,1
    - Dst: max
      Src: /src/gdal/ogr/ogrlinestring.cpp:259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: OGRSimpleCurve::Make3D
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - max
    - static_cast<double *>
    - VSI_CALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::Make3D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: OGRSimpleCurve::RemoveM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::RemoveM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:296,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:297,1
    - Dst: max
      Src: /src/gdal/ogr/ogrlinestring.cpp:297,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: OGRSimpleCurve::AddM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - max
    - static_cast<double *>
    - VSI_CALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::AddM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrlinestring.cpp:328,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrlinestring.cpp:329,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrlinestring.cpp:330,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrlinestring.cpp:332,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrlinestring.cpp:333,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:336,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrlinestring.cpp:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - i
    - poPoint
    argTypes:
    - int
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: OGRSimpleCurve::getPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - OGRPoint*::setM
    - CPLAssert
    - OGRPoint*::setY
    - OGRPoint*::setZ
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::getPoint(int i, OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - iVertex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: OGRSimpleCurve::getZ
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSimpleCurve::getZ(int iVertex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - iVertex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: OGRSimpleCurve::getM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSimpleCurve::getM(int iVertex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrlinestring.cpp:450,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:457,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlinestring.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:460,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:464,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlinestring.cpp:465,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:485,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:487,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:489,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:494,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:495,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:535,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:538,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:542,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - nNewPointCount
    - bZeroizeNewContent
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 548
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 548
    functionName: OGRSimpleCurve::setNumPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<int>
    - VSI_REALLOC_VERBOSE
    - static_cast<OGRRawPoint *>
    - CPLAssert
    - VSIFree
    - CPLError
    - memset
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setNumPoints(int nNewPointCount, int bZeroizeNewContent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:572,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:572,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:572,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:573,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrlinestring.cpp:573,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:575,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:575,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:575,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:576,1
    - Dst: OGRSimpleCurve::setPointM
      Src: /src/gdal/ogr/ogrlinestring.cpp:578,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:578,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:578,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrlinestring.cpp:579,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:581,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:581,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - iPoint
    - poPoint
    argTypes:
    - int
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 582
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 582
    functionName: OGRSimpleCurve::setPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRSimpleCurve::setPoint
    - OGRSimpleCurve::setPointM
    - OGRPoint*::getZ
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setPoint(int iPoint, OGRPoint *poPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iPoint
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 596
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: CheckPointCount
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool CheckPointCount(int iPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:623,1
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:629,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - iPoint
    - xIn
    - yIn
    - zIn
    argTypes:
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 645
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 645
    functionName: OGRSimpleCurve::setPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - CheckPointCount
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setPoint(int iPoint, double xIn, double yIn, double
      zIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:668,1
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:674,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - iPoint
    - xIn
    - yIn
    - mIn
    argTypes:
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 690
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 690
    functionName: OGRSimpleCurve::setPointM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::AddM
    - CheckPointCount
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setPointM(int iPoint, double xIn, double yIn,
      double mIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:715,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:720,1
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:726,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:726,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 5
    argNames:
    - iPoint
    - xIn
    - yIn
    - zIn
    - mIn
    argTypes:
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 746
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 746
    functionName: OGRSimpleCurve::setPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::AddM
    - CheckPointCount
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPoint(int iPoint, double xIn, double yIn,
      double zIn,\n                              double mIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:768,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - iPoint
    - xIn
    - yIn
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: OGRSimpleCurve::setPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - CheckPointCount
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setPoint(int iPoint, double xIn, double yIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:797,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:799,1
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:805,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - iPoint
    - zIn
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 812
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 812
    functionName: OGRSimpleCurve::setZ
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - getCoordinateDimension
    - CheckPointCount
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setZ(int iPoint, double zIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:836,1
    - Dst: CheckPointCount
      Src: /src/gdal/ogr/ogrlinestring.cpp:842,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - iPoint
    - mIn
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 849
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 849
    functionName: OGRSimpleCurve::setM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::AddM
    - CheckPointCount
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::setM(int iPoint, double mIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint*::Is3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:870,1
    - Dst: OGRPoint*::IsMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:870,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:871,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:871,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:871,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:872,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrlinestring.cpp:872,1
    - Dst: OGRPoint*::Is3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:873,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:874,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:874,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:874,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:875,1
    - Dst: OGRPoint*::IsMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:876,1
    - Dst: OGRSimpleCurve::setPointM
      Src: /src/gdal/ogr/ogrlinestring.cpp:877,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:877,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:877,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrlinestring.cpp:878,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:880,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:880,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 881
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 881
    functionName: OGRSimpleCurve::addPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRPoint*::IsMeasured
    - OGRPoint*::Is3D
    - OGRSimpleCurve::setPoint
    - OGRSimpleCurve::setPointM
    - OGRPoint*::getZ
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::addPoint(const OGRPoint *poPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - y
    - z
    - m
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 906
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 906
    functionName: OGRSimpleCurve::addPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setPoint
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::addPoint(double x, double y, double z, double
      m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: OGRSimpleCurve::addPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setPoint
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::addPoint(double x, double y, double z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: OGRSimpleCurve::addPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setPoint
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::addPoint(double x, double y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setPointM
      Src: /src/gdal/ogr/ogrlinestring.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - m
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: OGRSimpleCurve::addPointM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::setPointM
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::addPointM(double x, double y, double m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/gdal/ogr/ogrlinestring.cpp:986,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrlinestring.cpp:990,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrlinestring.cpp:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1001
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 1001
    functionName: OGRSimpleCurve::removePoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::removePoint(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1026,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1034,1
    - Dst: OGRSimpleCurve::RemoveM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1041,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1045,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1048,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - nPointsIn
    - paoPointsIn
    - padfMIn
    argTypes:
    - int
    - OGRRawPoint*
    - double*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1051
    functionName: OGRSimpleCurve::setPointsM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::RemoveM
    - memcpy
    - OGRSimpleCurve::AddM
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPointsM(int nPointsIn, const OGRRawPoint *paoPointsIn,\n
      \                               const double *padfMIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1077,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1085,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:1090,1
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1092,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1096,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1099,1
    - Dst: OGRSimpleCurve::RemoveM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1107,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1111,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 4
    argNames:
    - nPointsIn
    - paoPointsIn
    - padfZIn
    - padfMIn
    argTypes:
    - int
    - OGRRawPoint*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1117
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1117
    functionName: OGRSimpleCurve::setPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - getCoordinateDimension
    - OGRSimpleCurve::Make2D
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::RemoveM
    - OGRSimpleCurve::AddM
    - OGRSimpleCurve::setNumPoints
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPoints(int nPointsIn, const OGRRawPoint *paoPointsIn,\n
      \                              const double *padfZIn, const double *padfMIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1142,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1150,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:1155,1
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1157,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1161,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - nPointsIn
    - paoPointsIn
    - padfZIn
    argTypes:
    - int
    - OGRRawPoint*
    - double*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1167
    functionName: OGRSimpleCurve::setPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - getCoordinateDimension
    - OGRSimpleCurve::Make2D
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::setNumPoints
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPoints(int nPointsIn, const OGRRawPoint *paoPointsIn,\n
      \                              const double *padfZIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1197,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1200,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1207,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - nPointsIn
    - padfX
    - padfY
    - padfZIn
    argTypes:
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1221
    functionName: OGRSimpleCurve::setPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::Make2D
    - memcpy
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPoints(int nPointsIn, const double *padfX,\n
      \                              const double *padfY, const double *padfZIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::RemoveM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1250,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1253,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1260,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - nPointsIn
    - padfX
    - padfY
    - padfMIn
    argTypes:
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1274
      start: 1242
    functionDepth: 2
    functionLinenumber: 1242
    functionLinenumberEnd: 1274
    functionName: OGRSimpleCurve::setPointsM
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - OGRSimpleCurve::RemoveM
    - OGRSimpleCurve::AddM
    - OGRSimpleCurve::setNumPoints
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPointsM(int nPointsIn, const double *padfX,\n
      \                               const double *padfY, const double *padfMIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::Make2D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1305,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1308,1
    - Dst: OGRSimpleCurve::RemoveM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1316,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1319,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1326,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1336,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1338,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 5
    argNames:
    - nPointsIn
    - padfX
    - padfY
    - padfZIn
    - padfMIn
    argTypes:
    - int
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1340
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1340
    functionName: OGRSimpleCurve::setPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::Make2D
    - OGRSimpleCurve::Make3D
    - OGRSimpleCurve::RemoveM
    - OGRSimpleCurve::AddM
    - OGRSimpleCurve::setNumPoints
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRSimpleCurve::setPoints(int nPointsIn, const double *padfX,\n
      \                              const double *padfY, const double *padfZIn,\n
      \                              const double *padfMIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1365,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1373,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:1375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - paoPointsOut
    - padfZOut
    argTypes:
    - OGRRawPoint*
    - double*
    constantsTouched: []
    func_position:
      end: 1377
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1377
    functionName: OGRSimpleCurve::getPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGRSimpleCurve::getPoints(OGRRawPoint *paoPointsOut,\n                               double
      *padfZOut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1419,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1420,1
    - Dst: OGRSimpleCurve::getPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1423,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1423,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1424,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1431,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1431,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1434,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1434,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1443,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:1445,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1451,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1451,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1463,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrlinestring.cpp:1465,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1471,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1471,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 8
    argNames:
    - pabyX
    - nXStride
    - pabyY
    - nYStride
    - pabyZ
    - nZStride
    - pabyM
    - nMStride
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1477
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1477
    functionName: OGRSimpleCurve::getPoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRRawPoint *>
    - OGRSimpleCurve::getPoints
    - static_cast<double *>
    - static_cast<char *>
    - memset
    - memcpy
    - reinterpret_cast<double *>
    linkageType: ''
    returnType: void
    signature: "void OGRSimpleCurve::getPoints(void *pabyX, int nXStride, void *pabyY,\n
      \                              int nYStride, void *pabyZ, int nZStride,\n                               void
      *pabyM, int nMStride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrlinestring.cpp:1495,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrlinestring.cpp:1498,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrlinestring.cpp:1503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1506
    functionName: OGRSimpleCurve::reversePoints
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::reversePoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrlinestring.cpp:1544,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1554,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1566,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1570,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1573,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1579,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1582,1
    - Dst: OGRSimpleCurve::Make3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1603,1
    - Dst: OGRSimpleCurve::AddM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1615,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 3
    argNames:
    - poOtherLine
    - nStartVertex
    - nEndVertex
    argTypes:
    - OGRLineString*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1626
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1626
    functionName: OGRSimpleCurve::addSubLineString
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::Make3D
    - CPLAssert
    - OGRSimpleCurve::AddM
    - OGRSimpleCurve::setNumPoints
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGRSimpleCurve::addSubLineString(const OGRLineString *poOtherLine,\n
      \                                     int nStartVertex, int nEndVertex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleOfCollectionFromWkb
      Src: /src/gdal/ogr/ogrlinestring.cpp:1645,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1656,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrlinestring.cpp:1657,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1663,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:1665,1
    - Dst: OGRSimpleCurve::setNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1670,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1673,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1682,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1684,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1685,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1686,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1691,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1693,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1694,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1699,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1701,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1702,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1707,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1707,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrlinestring.cpp:1713,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1715,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinestring.cpp:1717,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinestring.cpp:1718,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1723,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinestring.cpp:1725,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1731,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrlinestring.cpp:1733,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 1739
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1739
    functionName: OGRSimpleCurve::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - OGR_SWAP
    - importPreambleOfCollectionFromWkb
    - CPL_SWAPDOUBLE
    - OGRSimpleCurve::setNumPoints
    - CPLError
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSimpleCurve::importFromWkb(const unsigned char *pabyData,\n
      \                                    size_t nSize, OGRwkbVariant eWkbVariant,\n
      \                                    size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrlinestring.cpp:1760,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1761,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrlinestring.cpp:1766,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrlinestring.cpp:1770,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1771,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1774,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:1775,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1776,1
    - Dst: getIsoGeometryType
      Src: /src/gdal/ogr/ogrlinestring.cpp:1779,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrlinestring.cpp:1783,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrlinestring.cpp:1787,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1790,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1795,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1802,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1804,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1805,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1806,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinestring.cpp:1808,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinestring.cpp:1810,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinestring.cpp:1813,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1819,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1821,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1822,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinestring.cpp:1824,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinestring.cpp:1826,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1832,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1834,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1835,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinestring.cpp:1837,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrlinestring.cpp:1839,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1845,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:1845,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrlinestring.cpp:1846,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrlinestring.cpp:1853,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrlinestring.cpp:1856,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrlinestring.cpp:1862,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 1867
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1867
    functionName: OGRSimpleCurve::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - OGRRoundCoordinatesIEEE754
    - getGeometryType
    - OGRRoundCoordinatesIEEE754XYValues
    - static_cast<unsigned char>
    - static_cast<OGRwkbGeometryType>
    - getIsoGeometryType
    - OGR_SWAP
    - IsMeasured
    - DB2_V72_UNFIX_BYTE_ORDER
    - CPL_MSBPTR32
    - CPL_SWAP64PTR
    - Is3D
    - wkbFlatten
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSimpleCurve::exportToWkb(unsigned char *pabyData,\n                                   const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrlinestring.cpp:1883,1
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1905,1
    - Dst: OGRSimpleCurve::set3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:1912,1
    - Dst: OGRSimpleCurve::setMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:1917,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1924
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 1924
    functionName: OGRSimpleCurve::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - importPreambleFromWkt
    - OGRWktReadPointsM
    - OGRSimpleCurve::setMeasured
    - OGRSimpleCurve::set3D
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSimpleCurve::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1957,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:1962,1
    - Dst: OGRSimpleCurve::setPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1979,1
    - Dst: OGRSimpleCurve::setPointsM
      Src: /src/gdal/ogr/ogrlinestring.cpp:1981,1
    - Dst: OGRSimpleCurve::setPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:1983,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:1985,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 6
    argNames:
    - ppszInput
    - bHasZ
    - bHasM
    - paoPointsIn
    - nMaxPointsIn
    - padfZIn
    argTypes:
    - char**
    - int
    - int
    - OGRRawPoint*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 1988
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1988
    functionName: OGRSimpleCurve::importFromWKTListOnly
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRWktReadPointsM
    - OGRSimpleCurve::setPoints
    - CPLFree
    - OGRSimpleCurve::setPointsM
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSimpleCurve::importFromWKTListOnly(const char **ppszInput,
      int bHasZ,\n                                             int bHasM,\n                                             OGRRawPoint
      *&paoPointsIn,\n                                             int &nMaxPointsIn,\n
      \                                            double *&padfZIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrlinestring.cpp:2003,1
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrlinestring.cpp:2004,1
    - Dst: OGRSimpleCurve::IsEmpty
      Src: /src/gdal/ogr/ogrlinestring.cpp:2005,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:2013,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:2015,1
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrlinestring.cpp:2023,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrlinestring.cpp:2023,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2023,1
    - Dst: OGRMakeWktCoordinateM
      Src: /src/gdal/ogr/ogrlinestring.cpp:2031,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2039,1
    - Dst: what
      Src: /src/gdal/ogr/ogrlinestring.cpp:2039,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrlinestring.cpp:2042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 2048
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2048
    functionName: OGRSimpleCurve::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - what
    - CPLError
    - std::string::size
    - std::string::reserve
    - wktTypeString
    - OGRMakeWktCoordinateM
    - IsMeasured
    - OGRSimpleCurve::IsEmpty
    - std::string
    - Is3D
    - getGeometryName
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRSimpleCurve::exportToWkt(const OGRWktOptions &opts,\n
      \                                       OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrlinestring.cpp:2066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2070
    functionName: OGRSimpleCurve::get_Length
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double OGRSimpleCurve::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::getPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2080
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2080
    functionName: OGRSimpleCurve::StartPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::getPoint
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::StartPoint(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::getPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2090
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2090
    functionName: OGRSimpleCurve::EndPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::getPoint
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::EndPoint(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::StartPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2103,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrlinestring.cpp:2123,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrlinestring.cpp:2125,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2128,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:2129,1
    - Dst: OGRSimpleCurve::EndPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - dfDistance
    - poPoint
    argTypes:
    - double
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2140
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2140
    functionName: OGRSimpleCurve::Value
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - getCoordinateDimension
    - OGRPoint*::setX
    - OGRSimpleCurve::StartPoint
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - OGRSimpleCurve::EndPoint
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::Value(double dfDistance, OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrlinestring.cpp:2168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2169,1
    - Dst: createGEOSContext
      Src: /src/gdal/ogr/ogrlinestring.cpp:2175,1
    - Dst: exportToGEOS
      Src: /src/gdal/ogr/ogrlinestring.cpp:2176,1
    - Dst: OGRPoint*::exportToGEOS
      Src: /src/gdal/ogr/ogrlinestring.cpp:2177,1
    - Dst: GEOSProject_r
      Src: /src/gdal/ogr/ogrlinestring.cpp:2180,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrlinestring.cpp:2182,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrlinestring.cpp:2183,1
    - Dst: freeGEOSContext
      Src: /src/gdal/ogr/ogrlinestring.cpp:2184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2189
      start: 2163
    functionDepth: 1
    functionLinenumber: 2163
    functionLinenumberEnd: 2189
    functionName: OGRSimpleCurve::Project
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - GEOSGeom_destroy_r
    - freeGEOSContext
    - CPL_IGNORE_RET_VAL
    - GEOSProject_r
    - CPLError
    - createGEOSContext
    - OGRPoint*::exportToGEOS
    - exportToGEOS
    linkageType: ''
    returnType: double
    signature: double OGRSimpleCurve::Project(const OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2222,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:2224,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:2224,1
    - Dst: auto::setCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2225,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2242,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2255,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2256,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2259,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2285,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2287,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2293,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2309,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2311,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2318,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2321,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrlinestring.cpp:2326,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2342,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2343,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2346,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2367,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2368,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2372,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrlinestring.cpp:2376,1
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrlinestring.cpp:2384,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2385,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2389,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2392,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrlinestring.cpp:2397,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 3
    argNames:
    - dfDistanceFrom
    - dfDistanceTo
    - bAsRatio
    argTypes:
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2398
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2398
    functionName: OGRSimpleCurve::getSubLine
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - getCoordinateDimension
    - auto::getNumPoints
    - auto::release
    - auto::setCoordinateDimension
    - auto::addPoint
    - std::make_unique<OGRLineString>
    - auto::assignSpatialReference
    - getSpatialReference
    - CPLError
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *OGRSimpleCurve::getSubLine(double dfDistanceFrom,\n
      \                                         double dfDistanceTo,\n                                          int
      bAsRatio) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::IsEmpty
      Src: /src/gdal/ogr/ogrlinestring.cpp:2407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2437
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2437
    functionName: OGRSimpleCurve::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 2
    functionsReached:
    - OGRSimpleCurve::IsEmpty
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::getEnvelope
      Src: /src/gdal/ogr/ogrlinestring.cpp:2446,1
    - Dst: static_cast<OGREnvelope *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2446,1
    - Dst: OGRSimpleCurve::IsEmpty
      Src: /src/gdal/ogr/ogrlinestring.cpp:2448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 2468
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2468
    functionName: OGRSimpleCurve::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 3
    functionsReached:
    - static_cast<OGREnvelope *>
    - OGRSimpleCurve::IsEmpty
    - OGRSimpleCurve::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrlinestring.cpp:2480,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrlinestring.cpp:2480,1
    - Dst: OGRSimpleCurve::IsEmpty
      Src: /src/gdal/ogr/ogrlinestring.cpp:2483,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrlinestring.cpp:2483,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/ogrlinestring.cpp:2488,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2489,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2489,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2492,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:2494,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:2494,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:2495,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:2495,1
    - Dst: OGRSimpleCurve::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:2496,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrlinestring.cpp:2496,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2501
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2501
    functionName: OGRSimpleCurve::Equals
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - auto::getZ
    - auto::getNumPoints
    - getGeometryType
    - auto::getX
    - getNumPoints
    - OGRSimpleCurve::getZ
    - OGRGeometry*::getGeometryType
    - getY
    - auto::getY
    - OGRGeometry*::toSimpleCurve
    - OGRSimpleCurve::IsEmpty
    - getX
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRSimpleCurve::Equals(const OGRGeometry *poOther) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2522,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2523,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrlinestring.cpp:2540,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrlinestring.cpp:2558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2577,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2585,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2586,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrlinestring.cpp:2589,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2592,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2600,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2601,1
    - Dst: OGRSimpleCurve::setPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2605,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2607,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2608,1
    - Dst: assignSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:2610,1
    - Dst: OGRCoordinateTransformation*::GetTargetCS
      Src: /src/gdal/ogr/ogrlinestring.cpp:2610,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 2613
      start: 2507
    functionDepth: 3
    functionLinenumber: 2507
    functionLinenumberEnd: 2613
    functionName: OGRSimpleCurve::transform
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformation*::Transform
    - CPLTestBool
    - OGRSimpleCurve::setPoints
    - OGRCoordinateTransformation*::GetTargetCS
    - assignSpatialReference
    - VSIFree
    - CPLError
    - CPLGetConfigOption
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSimpleCurve::transform(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2619
    functionDepth: 0
    functionLinenumber: 2619
    functionLinenumberEnd: 2622
    functionName: OGRSimpleCurve::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRSimpleCurve::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2632,1
    - Dst: OGRSimpleCurve::reversePoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2645,1
    - Dst: OGRSimpleCurve::reversePoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2647,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:2683,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2697,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:2698,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2705,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:2706,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2709,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrlinestring.cpp:2715,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrlinestring.cpp:2716,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2719,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2720,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2786,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2793,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrlinestring.cpp:2798,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2802
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2802
    functionName: OGRSimpleCurve::segmentize
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRRawPoint *>
    - OGRSimpleCurve::reversePoints
    - static_cast<double *>
    - VSIFree
    - CPLError
    - CPLFree
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrlinestring.cpp:2812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2814
    functionName: OGRSimpleCurve::swapXY
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poSCIn
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 2831
      start: 2828
    functionDepth: 0
    functionLinenumber: 2828
    functionLinenumberEnd: 2831
    functionName: OGRSimpleCurvePointIterator::OGRSimpleCurvePointIterator
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurvePointIterator(const OGRSimpleCurve *poSCIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:2842,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrlinestring.cpp:2844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 2847
      start: 2840
    functionDepth: 1
    functionLinenumber: 2840
    functionLinenumberEnd: 2847
    functionName: OGRSimpleCurvePointIterator::getNextPoint
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - getPoint
    - getNumPoints
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRSimpleCurvePointIterator::getNextPoint(OGRPoint *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurvePointIterator::OGRSimpleCurvePointIterator
      Src: /src/gdal/ogr/ogrlinestring.cpp:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2853
    functionDepth: 1
    functionLinenumber: 2853
    functionLinenumberEnd: 2856
    functionName: OGRSimpleCurve::getPointIterator
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurvePointIterator::OGRSimpleCurvePointIterator
    linkageType: ''
    returnType: OGRPointIterator
    signature: OGRPointIterator *OGRSimpleCurve::getPointIterator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2871
    functionDepth: 0
    functionLinenumber: 2871
    functionLinenumberEnd: 2871
    functionName: OGRLineString::OGRLineString
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLineString::OGRLineString(const OGRLineString &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2883
    functionName: OGRLineString::OGRLineString
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLineString::OGRLineString(OGRLineString &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::operator=
      Src: /src/gdal/ogr/ogrlinestring.cpp:2902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRLineString
    constantsTouched: []
    func_position:
      end: 2905
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2905
    functionName: '&OGRLineString::operator=(const OGRLineString &other)'
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::operator=
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString &OGRLineString::operator=(const OGRLineString &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::operator=
      Src: /src/gdal/ogr/ogrlinestring.cpp:2921,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrlinestring.cpp:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRLineString
    constantsTouched: []
    func_position:
      end: 2924
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2924
    functionName: '&OGRLineString::operator=(OGRLineString &&other)'
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - OGRSimpleCurve::operator=
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString &OGRLineString::operator=(OGRLineString &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2930
    functionDepth: 0
    functionLinenumber: 2930
    functionLinenumberEnd: 2941
    functionName: OGRLineString::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRLineString::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2951
    functionName: OGRLineString::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRLineString::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::clone
      Src: /src/gdal/ogr/ogrlinestring.cpp:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - double
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2962
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 2962
    functionName: OGRLineString::CurveToLine
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString::clone
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *OGRLineString::CurveToLine(\n    CPL_UNUSED double
      /* dfMaxAngleStepSizeDegrees */,\n    CPL_UNUSED const char *const * /* papszOptions
      */) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::WkbSize
      Src: /src/gdal/ogr/ogrlinestring.cpp:2983,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3001,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2979
    functionDepth: 1
    functionLinenumber: 2979
    functionLinenumberEnd: 3002
    functionName: OGRSimpleCurve::get_LinearArea
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve::WkbSize
    - fabs
    linkageType: ''
    returnType: double
    signature: double OGRSimpleCurve::get_LinearArea() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryFactory::curveFromLineString
      Src: /src/gdal/ogr/ogrlinestring.cpp:3011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3012
      start: 3008
    functionDepth: 2
    functionLinenumber: 3008
    functionLinenumberEnd: 3012
    functionName: OGRLineString::getCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::curveFromLineString
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRLineString::getCurveGeometry(const char *const *papszOptions) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::Is3D
      Src: /src/gdal/ogr/ogrlinestring.cpp:3021,1
    - Dst: OGRLineString*::IsMeasured
      Src: /src/gdal/ogr/ogrlinestring.cpp:3023,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:3025,1
    - Dst: OGRLineString*::getSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:3025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - poSrc
    - poDst
    argTypes:
    - OGRLineString*
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 3038
      start: 3018
    functionDepth: 0
    functionLinenumber: 3018
    functionLinenumberEnd: 3038
    functionName: OGRLineString::TransferMembersAndDestroy
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::Is3D
    - OGRLineString*::IsMeasured
    - OGRLineString*::getSpatialReference
    - OGRLineString*::assignSpatialReference
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *OGRLineString::TransferMembersAndDestroy(OGRLineString
      *poSrc,\n                                                        OGRLineString
      *poDst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::get_IsClosed
      Src: /src/gdal/ogr/ogrlinestring.cpp:3057,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:3059,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrlinestring.cpp:3064,1
    - Dst: OGRLineString::TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrlinestring.cpp:3065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poLS
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 3067
      start: 3055
    functionDepth: 1
    functionLinenumber: 3055
    functionLinenumberEnd: 3067
    functionName: OGRLineString::CastToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRLineString::TransferMembersAndDestroy
    - OGRLineString*::get_IsClosed
    - OGRLinearRing::OGRLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRLineString::CastToLinearRing(OGRLineString *poLS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrlinestring.cpp:3075,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:3078,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrlinestring.cpp:3078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3073
    functionDepth: 1
    functionLinenumber: 3073
    functionLinenumberEnd: 3085
    functionName: OGRLineString::clone
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 1
    functionsReached:
    - auto::getNumPoints
    - OGRLineString::OGRLineString
    - getNumPoints
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRLineString::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::toLineString
      Src: /src/gdal/ogr/ogrlinestring.cpp:3095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 3096
      start: 3093
    functionDepth: 0
    functionLinenumber: 3093
    functionLinenumberEnd: 3096
    functionName: CasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::toLineString
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *CasterToLineString(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3101
    functionName: OGRLineString::GetCasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLineString
    signature: OGRCurveCasterToLineString OGRLineString::GetCasterToLineString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::CastToLinearRing
      Src: /src/gdal/ogr/ogrlinestring.cpp:3109,1
    - Dst: OGRCurve*::toLineString
      Src: /src/gdal/ogr/ogrlinestring.cpp:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 3110
      start: 3107
    functionDepth: 2
    functionLinenumber: 3107
    functionLinenumberEnd: 3110
    functionName: OGRLineString::CasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString::CastToLinearRing
    - OGRCurve*::toLineString
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRLineString::CasterToLinearRing(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3115
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3115
    functionName: OGRLineString::GetCasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLinearRing
    signature: OGRCurveCasterToLinearRing OGRLineString::GetCasterToLinearRing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_LinearArea
      Src: /src/gdal/ogr/ogrlinestring.cpp:3123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3121
    functionDepth: 0
    functionLinenumber: 3121
    functionLinenumberEnd: 3124
    functionName: OGRLineString::get_Area
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - get_LinearArea
    linkageType: ''
    returnType: double
    signature: double OGRLineString::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:3137,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:3141,1
    - Dst: geod_init
      Src: /src/gdal/ogr/ogrlinestring.cpp:3155,1
    - Dst: std::vector<double>::reserve
      Src: /src/gdal/ogr/ogrlinestring.cpp:3159,1
    - Dst: std::vector<double>::reserve
      Src: /src/gdal/ogr/ogrlinestring.cpp:3160,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrlinestring.cpp:3162,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrlinestring.cpp:3163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:3165,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrlinestring.cpp:3169,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrlinestring.cpp:3170,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrlinestring.cpp:3171,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:3174,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/ogr/ogrlinestring.cpp:3180,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrlinestring.cpp:3180,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/ogr/ogrlinestring.cpp:3181,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrlinestring.cpp:3181,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrlinestring.cpp:3188,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrlinestring.cpp:3188,1
    - Dst: auto::Transform
      Src: /src/gdal/ogr/ogrlinestring.cpp:3192,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrlinestring.cpp:3192,1
    - Dst: std::vector<double>::data
      Src: /src/gdal/ogr/ogrlinestring.cpp:3192,1
    - Dst: std::vector<double>::data
      Src: /src/gdal/ogr/ogrlinestring.cpp:3192,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrlinestring.cpp:3193,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3196,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrlinestring.cpp:3202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 6
    argNames:
    - poLS
    - poSRSOverride
    - pszComputationType
    - g
    - adfLat
    - adfLon
    argTypes:
    - OGRLineString*
    - OGRSpatialReference*
    - char*
    - geod_geodesic
    - std::vector<double>
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 3211
      start: 3130
    functionDepth: 1
    functionLinenumber: 3130
    functionLinenumberEnd: 3211
    functionName: GetGeodesicInputs
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - OGRSpatialReference::OGRSpatialReference
    - OGRLineString*::getX
    - std::vector<double>::size
    - std::vector<double>::data
    - OGRSpatialReference::SetAxisMappingStrategy
    - std::unique_ptr<OGRCoordinateTransformation>
    - OGRSpatialReference::CopyGeogCSFrom
    - std::vector<double>::push_back
    - std::vector::resize
    - auto::Transform
    - std::vector<double>::reserve
    - CPLError
    - OGRCreateCoordinateTransformation
    - std::fabs
    - OGRLineString*::getY
    - OGRLineString*::getSpatialReference
    - geod_init
    linkageType: ''
    returnType: bool
    signature: "bool GetGeodesicInputs(const OGRLineString *poLS,\n                              const
      OGRSpatialReference *poSRSOverride,\n                              const char
      *pszComputationType, geod_geodesic &g,\n                              std::vector<double>
      &adfLat,\n                              std::vector<double> &adfLon)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeodesicInputs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3223,1
    - Dst: geod_polygonarea
      Src: /src/gdal/ogr/ogrlinestring.cpp:3226,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrlinestring.cpp:3226,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrlinestring.cpp:3226,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrlinestring.cpp:3227,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrlinestring.cpp:3227,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3229
      start: 3217
    functionDepth: 2
    functionLinenumber: 3217
    functionLinenumberEnd: 3229
    functionName: OGRLineString::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - geod_polygonarea
    - static_cast<int>
    - std::vector::size
    - GetGeodesicInputs
    - std::fabs
    - std::vector::data
    linkageType: ''
    returnType: double
    signature: double OGRLineString::get_GeodesicArea(const OGRSpatialReference *poSRSOverride)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeodesicInputs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3241,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrlinestring.cpp:3244,1
    - Dst: geod_inverse
      Src: /src/gdal/ogr/ogrlinestring.cpp:3247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3252
      start: 3235
    functionDepth: 2
    functionLinenumber: 3235
    functionLinenumberEnd: 3252
    functionName: OGRLineString::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - geod_inverse
    - std::vector::size
    - GetGeodesicInputs
    linkageType: ''
    returnType: double
    signature: "double OGRLineString::get_GeodesicLength(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3258
    functionDepth: 0
    functionLinenumber: 3258
    functionLinenumberEnd: 3261
    functionName: OGRLineString::get_AreaOfCurveSegments
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRLineString::get_AreaOfCurveSegments() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::fabs
      Src: /src/gdal/ogr/ogrlinestring.cpp:3316,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrlinestring.cpp:3318,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrlinestring.cpp:3319,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrlinestring.cpp:3336,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrlinestring.cpp:3337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3275
    functionDepth: 2
    functionLinenumber: 3275
    functionLinenumberEnd: 3374
    functionName: OGRLineString::isClockwise
    functionSourceFile: /src/gdal/ogr/ogrlinestring.cpp
    functionUses: 0
    functionsReached:
    - cpl::fabs
    - epsilonEqual
    linkageType: ''
    returnType: int
    signature: int OGRLineString::isClockwise() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr_expat.cpp:39,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_expat.cpp:39,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_expat.cpp:42,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_expat.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: CanAlloc
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - static_cast<int>
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool CanAlloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CanAlloc
      Src: /src/gdal/ogr/ogr_expat.cpp:58,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogr_expat.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: OGRExpatMalloc
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached:
    - CanAlloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void *OGRExpatMalloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CanAlloc
      Src: /src/gdal/ogr/ogr_expat.cpp:71,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogr_expat.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: OGRExpatRealloc
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached:
    - realloc
    - CanAlloc
    linkageType: ''
    returnType: void
    signature: void *OGRExpatRealloc(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - info
    argTypes:
    - XML_Encoding*
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: FillWINDOWS1252
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FillWINDOWS1252(XML_Encoding *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - info
    argTypes:
    - XML_Encoding*
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: FillISO885915
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FillISO885915(XML_Encoding *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_expat.cpp:162,1
    - Dst: FillWINDOWS1252
      Src: /src/gdal/ogr/ogr_expat.cpp:163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_expat.cpp:164,1
    - Dst: FillISO885915
      Src: /src/gdal/ogr/ogr_expat.cpp:165,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_expat.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - info
    argTypes:
    - XML_Char*
    - XML_Encoding*
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: OGRExpatUnknownEncodingHandler
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - FillISO885915
    - CPLDebug
    - FillWINDOWS1252
    linkageType: ''
    returnType: int
    signature: "int OGRExpatUnknownEncodingHandler(void * /* unused_encodingHandlerData
      */,\n                               const XML_Char *name, XML_Encoding *info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserCreate_MM
      Src: /src/gdal/ogr/ogr_expat.cpp:189,1
    - Dst: XML_SetUnknownEncodingHandler
      Src: /src/gdal/ogr/ogr_expat.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: OGRCreateExpatXMLParser
    functionSourceFile: /src/gdal/ogr/ogr_expat.cpp
    functionUses: 0
    functionsReached:
    - XML_SetUnknownEncodingHandler
    - XML_ParserCreate_MM
    linkageType: ''
    returnType: XML_Parser
    signature: XML_Parser OGRCreateExpatXMLParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:55,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:79,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:88,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:103,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:105,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:109,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:118,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:123,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:123,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:124,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:125,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:125,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:126,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:126,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:127,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:128,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:128,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:129,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:131,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:135,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:136,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:137,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:138,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:139,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:139,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:140,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:141,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:141,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:142,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:143,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:143,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:144,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:145,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:147,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 63
    argCount: 6
    argNames:
    - pszTarget
    - nTargetLen
    - x
    - y
    - z
    - b3D
    argTypes:
    - char*
    - size_t
    - double
    - double
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 150
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 150
    functionName: MakeKMLCoordinate
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLsnprintf
    - CPL_IGNORE_RET_VAL
    - snprintf
    - fabs
    - CPLError
    - OGRMakeWktCoordinate
    - std::isnan
    linkageType: ''
    returnType: void
    signature: "void MakeKMLCoordinate(char *pszTarget, size_t nTargetLen, double
      x,\n                              double y, double z, bool b3D)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:161,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:162,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nNeeded
    - ppszText
    - pnMaxLength
    argTypes:
    - size_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: _GrowBuffer
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char *>
    - max
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void _GrowBuffer(size_t nNeeded, char **ppszText, size_t *pnMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:174,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:174,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:176,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ppszText
    - pnLength
    - pnMaxLength
    - pszTextToAppend
    argTypes:
    - char**
    - size_t*
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: AppendString
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - strcat
    - _GrowBuffer
    - strlen
    linkageType: ''
    returnType: void
    signature: "void AppendString(char **ppszText, size_t *pnLength, size_t *pnMaxLength,\n
      \                        const char *pszTextToAppend)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:191,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:192,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:194,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:195,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:197,1
    - Dst: MakeKMLCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:199,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:200,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:200,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:201,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:202,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:202,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:206,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:208,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:209,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:212,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:213,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - poLine
    - ppszText
    - pnLength
    - pnMaxLength
    argTypes:
    - OGRLineString*
    - char**
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 215
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 215
    functionName: AppendCoordinateList
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - MakeKMLCoordinate
    - _GrowBuffer
    - strcat
    - OGRLineString*::getNumPoints
    - strlen
    - OGRLineString*::getZ
    - OGRLineString*::getY
    linkageType: ''
    returnType: void
    signature: "void AppendCoordinateList(OGRLineString *poLine, char **ppszText,\n
      \                                size_t *pnLength, size_t *pnMaxLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:229,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:231,1
    - Dst: OGRPoint*::getCoordinateDimension
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:233,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:235,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:236,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:237,1
    - Dst: MakeKMLCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:242,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:243,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:243,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:245,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:245,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:248,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:252,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:258,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:261,1
    - Dst: MakeKMLCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:263,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:263,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:264,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:264,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:268,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:268,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:271,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:277,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:277,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:278,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:281,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:286,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:291,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:292,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:297,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:299,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:303,1
    - Dst: AppendCoordinateList
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:306,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:306,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:310,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:312,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:318,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:319,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:321,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:323,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:327,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:330,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:332,1
    - Dst: OGR2KMLGeometryAppend
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:334,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:334,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:339,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:342,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:344,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:346,1
    - Dst: OGR2KMLGeometryAppend
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:348,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:353,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:356,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:362,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:362,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:363,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:363,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:364,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:364,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:365,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:365,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:367,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:369,1
    - Dst: OGR2KMLGeometryAppend
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:379,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:386,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 5
    argNames:
    - poGeometry
    - ppszText
    - pnLength
    - pnMaxLength
    - szAltitudeMode
    argTypes:
    - OGRGeometry*
    - char**
    - size_t*
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 394
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 394
    functionName: OGR2KMLGeometryAppend
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getY
    - MakeKMLCoordinate
    - OGRPolygon*::getNumInteriorRings
    - AppendCoordinateList
    - strlen
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - OGRGeometry*::toGeometryCollection
    - OGRPolygon*::getInteriorRing
    - strcat
    - snprintf
    - OGRGeometry*::toLineString
    - OGRPoint*::getZ
    - OGR2KMLGeometryAppend
    - OGRPoint*::getCoordinateDimension
    - _GrowBuffer
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    - AppendString
    linkageType: ''
    returnType: bool
    signature: "bool OGR2KMLGeometryAppend(OGRGeometry *poGeometry, char **ppszText,\n
      \                                 size_t *pnLength, size_t *pnMaxLength,\n                                  char
      *szAltitudeMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:405,1
    - Dst: memset
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:409,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:410,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:421,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:426,1
    - Dst: MakeKMLCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:429,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:434,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:435,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:440,1
    - Dst: MakeKMLCoordinate
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:442,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:444,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:447,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 451
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 451
    functionName: OGR_G_ExportEnvelopeToKMLTree
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLElementAndValue
    - getEnvelope
    - MakeKMLCoordinate
    - CPLCreateXMLNode
    - strstr
    - VALIDATE_POINTER1
    - memset
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode * OGR_G_ExportEnvelopeToKMLTree( OGRGeometryH hGeometry
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:476,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:482,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:484,1
    - Dst: OGR2KMLGeometryAppend
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:493,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:493,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - hGeometry
    - pszAltitudeMode
    argTypes:
    - OGRGeometryH
    - char*
    constantsTouched: []
    func_position:
      end: 501
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 501
    functionName: OGR_G_ExportToKML
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGR2KMLGeometryAppend
    - FromHandle
    - CPLStrdup
    - snprintf
    - strlen
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *OGR_G_ExportToKML(OGRGeometryH hGeometry, const char *pszAltitudeMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2kmlgeometry.cpp:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 521
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 521
    functionName: OGR_G_ExportToKMLTree
    functionSourceFile: /src/gdal/ogr/ogr2kmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLParseXMLString
    - CPLFree
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *OGR_G_ExportToKMLTree( OGRGeometryH hGeometry )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:62,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:63,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:63,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - pszTarget
    - x
    - y
    - z
    - b3D
    - coordOpts
    argTypes:
    - char*
    - double
    - double
    - double
    - bool
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: MakeGMLCoordinate
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - OGRMakeWktCoordinate
    - memcpy
    - std::string::data
    linkageType: ''
    returnType: void
    signature: "void MakeGMLCoordinate(char *pszTarget, double x, double y, double
      z,\n                              bool b3D, const OGRWktOptions &coordOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:82,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:83,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nNeeded
    - ppszText
    - pnMaxLength
    argTypes:
    - size_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: _GrowBuffer
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 3
    functionsReached:
    - static_cast<char *>
    - max
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void _GrowBuffer(size_t nNeeded, char **ppszText, size_t *pnMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:95,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:95,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:97,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ppszText
    - pnLength
    - pnMaxLength
    - pszTextToAppend
    argTypes:
    - char**
    - size_t*
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: AppendString
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - strcat
    - _GrowBuffer
    - strlen
    linkageType: ''
    returnType: void
    signature: "void AppendString(char **ppszText, size_t *pnLength, size_t *pnMaxLength,\n
      \                        const char *pszTextToAppend)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:112,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:113,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:115,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:116,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:119,1
    - Dst: MakeGMLCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:121,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:121,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:122,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:122,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:124,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:124,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:128,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:130,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:131,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:134,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:135,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - poLine
    - ppszText
    - pnLength
    - pnMaxLength
    - coordOpts
    argTypes:
    - OGRLineString*
    - char**
    - size_t*
    - size_t*
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: AppendCoordinateList
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::getX
    - _GrowBuffer
    - strcat
    - OGRLineString*::getNumPoints
    - strlen
    - OGRLineString*::getZ
    - MakeGMLCoordinate
    - OGRLineString*::getY
    linkageType: ''
    returnType: void
    signature: "void AppendCoordinateList(const OGRLineString *poLine, char **ppszText,\n
      \                                size_t *pnLength, size_t *pnMaxLength,\n                                 const
      OGRWktOptions &coordOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:160,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:164,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:167,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:176,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:177,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:179,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:183,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:187,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:188,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:195,1
    - Dst: MakeGMLCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:198,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:198,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:198,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:201,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:201,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:204,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:209,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:216,1
    - Dst: MakeGMLCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:219,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:219,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:219,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:220,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:222,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:222,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:225,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:230,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:248,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:251,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:255,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:258,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:262,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:264,1
    - Dst: AppendCoordinateList
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:265,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:269,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:271,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:279,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:288,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:294,1
    - Dst: auto::getExteriorRing
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:297,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:299,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:302,1
    - Dst: OGR2GMLGeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:302,1
    - Dst: auto::getExteriorRing
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:303,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:306,1
    - Dst: auto::getNumInteriorRings
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:310,1
    - Dst: auto::getInteriorRing
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:312,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:314,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:317,1
    - Dst: OGR2GMLGeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:317,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:320,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:324,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:333,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:343,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:343,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:344,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:352,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:352,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:353,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:361,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:361,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:362,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:370,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:370,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:371,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:377,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:378,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:380,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:382,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:384,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:385,1
    - Dst: OGR2GMLGeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:387,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:390,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:394,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:395,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:398,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:399,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:402,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:406,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:407,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 7
    argNames:
    - poGeometry
    - ppszText
    - pnLength
    - pnMaxLength
    - bIsSubGeometry
    - pszNamespaceDecl
    - coordOpts
    argTypes:
    - OGRGeometry*
    - char**
    - size_t*
    - size_t*
    - bool
    - char*
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 412
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 412
    functionName: OGR2GMLGeometryAppend
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::getSpatialReference
    - CPLError
    - AppendCoordinateList
    - MakeGMLCoordinate
    - auto::getGeometryRef
    - strlen
    - wkbFlatten
    - CPLMalloc
    - OGRGeometry*::getGeometryType
    - auto::getZ
    - OGRGeometry*::toGeometryCollection
    - snprintf
    - CPL_IGNORE_RET_VAL
    - static_cast<char *>
    - CPLFree
    - OGRGeometry*::toLineString
    - auto::getNumInteriorRings
    - OGR2GMLGeometryAppend
    - auto::getX
    - OGRGeometryTypeToName
    - _GrowBuffer
    - OGRGeometry*::toPolygon
    - auto::getNumGeometries
    - auto::getY
    - OGRGeometry*::toPoint
    - auto::getInteriorRing
    - auto::getExteriorRing
    - AppendString
    linkageType: ''
    returnType: bool
    signature: "bool OGR2GMLGeometryAppend(const OGRGeometry *poGeometry,\n                                  char
      **ppszText, size_t *pnLength,\n                                  size_t *pnMaxLength,
      bool bIsSubGeometry,\n                                  const char *pszNamespaceDecl,\n
      \                                 const OGRWktOptions &coordOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:424,1
    - Dst: OGREnvelope::IsInit
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:426,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:433,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:438,1
    - Dst: MakeGMLCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:443,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:448,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:450,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:456,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:457,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:462,1
    - Dst: MakeGMLCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:464,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:466,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:469,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 473
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 473
    functionName: OGR_G_ExportEnvelopeToGMLTree
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLElementAndValue
    - FromHandle
    - CPLCreateXMLNode
    - OGREnvelope::IsInit
    - strlen
    - strstr
    - CPLError
    - MakeGMLCoordinate
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *OGR_G_ExportEnvelopeToGMLTree(OGRGeometryH hGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:488,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:489,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:492,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:494,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:495,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:499,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:503,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:504,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:504,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:505,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:506,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:506,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:506,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:510,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:511,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:511,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:512,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:513,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:513,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:513,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:515,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:515,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:519,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:521,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:522,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:525,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:526,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - poLine
    - bCoordSwap
    - ppszText
    - pnLength
    - pnMaxLength
    - nSRSDimensionLocFlags
    - coordOpts
    argTypes:
    - OGRSimpleCurve*
    - bool
    - char**
    - size_t*
    - size_t*
    - int
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 528
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 528
    functionName: AppendGML3CoordinateList
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::getX
    - std::string::data
    - OGRSimpleCurve*::getNumPoints
    - std::string::size
    - _GrowBuffer
    - strcat
    - strlen
    - OGRSimpleCurve*::getZ
    - OGRMakeWktCoordinate
    - memcpy
    - OGRSimpleCurve*::getY
    linkageType: ''
    returnType: void
    signature: "void AppendGML3CoordinateList(const OGRSimpleCurve *poLine,\n                                     bool
      bCoordSwap, char **ppszText,\n                                     size_t *pnLength,
      size_t *pnMaxLength,\n                                     int nSRSDimensionLocFlags,\n
      \                                    const OGRWktOptions &coordOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:552,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:559,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:563,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:571,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:572,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:578,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:585,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:591,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:597,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:603,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:603,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:605,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:607,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:613,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:615,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:618,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:621,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:622,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:629,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:634,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:635,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:635,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:636,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:636,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:636,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:640,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:641,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:641,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:642,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:642,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:642,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:644,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:644,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:647,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:651,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:658,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:664,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:664,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:664,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:665,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:666,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:666,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:666,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:671,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:671,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:671,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:672,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:673,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:673,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:673,1
    - Dst: _GrowBuffer
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:676,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:676,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:679,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:683,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:695,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:696,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:697,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:699,1
    - Dst: AppendGML3CoordinateList
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:700,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:703,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:718,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:723,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:726,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:730,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:732,1
    - Dst: AppendGML3CoordinateList
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:734,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:739,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:742,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:752,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:753,1
    - Dst: OGRGeometry*::toCircularString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:754,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:757,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:757,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:757,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:758,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:758,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:768,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:769,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:770,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:771,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:772,1
    - Dst: auto::getCoordinateDimension
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:773,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:774,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:774,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:776,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:777,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:778,1
    - Dst: AppendGML3CoordinateList
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:780,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:783,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:789,1
    - Dst: AppendGML3CoordinateList
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:791,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:794,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:804,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:805,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:806,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:808,1
    - Dst: auto::getNumCurves
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:809,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:811,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:815,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:817,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:817,1
    - Dst: auto::getCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:818,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:822,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:824,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:826,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:834,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:845,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:848,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:851,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:856,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:856,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:859,1
    - Dst: toCompoundCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:860,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:864,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:870,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:870,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:872,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:872,1
    - Dst: auto::getCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:873,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:878,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:880,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:883,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:889,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:893,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:893,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:901,1
    - Dst: auto::getExteriorRingCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:909,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:912,1
    - Dst: AppendCompoundCurveMembers
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:914,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:916,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:916,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:919,1
    - Dst: auto::getNumInteriorRings
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:921,1
    - Dst: auto::getInteriorRingCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:923,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:925,1
    - Dst: AppendCompoundCurveMembers
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:927,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:928,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:929,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:928,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:933,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:938,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:939,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:940,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:948,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:950,1
    - Dst: auto::getExteriorRingCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:952,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:954,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:956,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:956,1
    - Dst: auto::getExteriorRingCurve
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:957,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:962,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:965,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:975,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:985,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:985,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:986,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:994,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:994,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:995,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1003,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1003,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1004,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1012,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1012,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1013,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1019,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1020,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1023,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1025,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1027,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1029,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1030,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1034,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1034,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1036,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1041,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1045,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1047,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1048,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1051,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1052,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1063,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1065,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1066,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1067,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1069,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1071,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1074,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1074,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1076,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1082,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1086,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1089,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1090,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1115,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1117,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1119,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1120,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1122,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1124,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1128,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1128,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1130,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1130,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1135,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1138,1
    - Dst: AppendString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1145,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1146,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 231
    argCount: 15
    argNames:
    - poGeometry
    - poParentSRS
    - ppszText
    - pnLength
    - pnMaxLength
    - bIsSubGeometry
    - eSRSNameFormat
    - bCoordSwap
    - bLineStringAsCurve
    - pszGMLId
    - nSRSDimensionLocFlags
    - bForceLineStringAsLinearRing
    - pszNamespaceDecl
    - pszOverriddenElementName
    - coordOpts
    argTypes:
    - OGRGeometry*
    - OGRSpatialReference*
    - char**
    - size_t*
    - size_t*
    - bool
    - GMLSRSNameFormat
    - bool
    - bool
    - char*
    - int
    - bool
    - char*
    - char*
    - OGRWktOptions
    constantsTouched: []
    func_position:
      end: 1151
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 1151
    functionName: OGR2GML3GeometryAppend
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::getSpatialReference
    - OGRGeometry*::toCompoundCurve
    - auto::getCoordinateDimension
    - auto::getExteriorRingCurve
    - CPLError
    - auto::size
    - wkbHasZ
    - AppendGML3CoordinateList
    - auto::getGeometryRef
    - CPLStrdup
    - auto::getCurve
    - auto::getInteriorRingCurve
    - OGRPoint::OGRPoint
    - strlen
    - wkbFlatten
    - OGRLineString::OGRLineString
    - CPLMalloc
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::getGeometryType
    - auto::getNumCurves
    - auto::getZ
    - c_str
    - getGeometryType
    - OGRGeometry*::toGeometryCollection
    - std::to_string
    - CPLSPrintf
    - AppendCompoundCurveMembers
    - OGR2GML3GeometryAppend
    - toCompoundCurve
    - snprintf
    - CPL_IGNORE_RET_VAL
    - static_cast<char *>
    - CPLFree
    - OGRGeometry*::toLineString
    - auto::getNumInteriorRings
    - auto::getNumPoints
    - auto::getX
    - auto::data
    - OGRLineString*::addPoint
    - OGRGeometryTypeToName
    - _GrowBuffer
    - auto::getPoint
    - OGRGeometry*::toCircularString
    - OGRGeometry*::toCurvePolygon
    - OGRGeometry*::toPolygon
    - auto::getNumGeometries
    - auto::getY
    - OGRPoint::getZ
    - std::string
    - OGRGeometry*::toPoint
    - OGRMakeWktCoordinate
    - memcpy
    - AppendString
    linkageType: ''
    returnType: bool
    signature: "bool OGR2GML3GeometryAppend(\n    const OGRGeometry *poGeometry, const
      OGRSpatialReference *poParentSRS,\n    char **ppszText, size_t *pnLength, size_t
      *pnMaxLength, bool bIsSubGeometry,\n    GMLSRSNameFormat eSRSNameFormat, bool
      bCoordSwap, bool bLineStringAsCurve,\n    const char *pszGMLId, int nSRSDimensionLocFlags,\n
      \   bool bForceLineStringAsLinearRing, const char *pszNamespaceDecl,\n    const
      char *pszOverriddenElementName, const OGRWktOptions &coordOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1165,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: OGR_G_ExportToGMLTree
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLParseXMLString
    - CPLFree
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *OGR_G_ExportToGMLTree(OGRGeometryH hGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_ExportToGMLEx
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: OGR_G_ExportToGML
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_ExportToGMLEx
    linkageType: ''
    returnType: char
    signature: char *OGR_G_ExportToGML(OGRGeometryH hGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1278,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1281,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1291,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1292,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1301,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1330,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1336,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1338,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1342,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1347,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1351,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1352,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1361,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1363,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1366,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1371,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1381,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1386,1
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1389,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1390,1
    - Dst: OGR2GML3GeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1403,1
    - Dst: OGR2GMLGeometryAppend
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1413,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr2gmlgeometry.cpp:1416,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 2
    argNames:
    - hGeometry
    - papszOptions
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 1421
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1421
    functionName: OGR_G_ExportToGMLEx
    functionSourceFile: /src/gdal/ogr/ogr2gmlgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - CPLAtof
    - CPLTestBool
    - OGR2GMLGeometryAppend
    - FromHandle
    - CPLStrdup
    - OGRGeometry*::getSpatialReference
    - CSLDestroy
    - CPLDebug
    - EQUAL
    - OGR2GML3GeometryAppend
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    - CPLError
    - auto::size
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *OGR_G_ExportToGMLEx(OGRGeometryH hGeometry, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: OGRGeoJSONWriteOptions::SetRFC7946Settings
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONWriteOptions::SetRFC7946Settings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:102,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:106,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:111,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:118,1
    - Dst: CSLFetchBoolean
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: OGRGeoJSONWriteOptions::SetIDOptions
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLFetchNameValueDef
    - CPL_TO_BOOL
    - CSLFetchBoolean
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONWriteOptions::SetIDOptions(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:136,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:142,1
    - Dst: json_object_new_double_with_significant_figures
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - dfVal
    - nDimIdx
    - oOptions
    argTypes:
    - double
    - int
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: json_object_new_coord
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_double_with_significant_figures
    - json_object_new_double_with_precision
    linkageType: ''
    returnType: json_object
    signature: "json_object *\njson_object_new_coord(double dfVal, int nDimIdx,\n
      \                     const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:157,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:158,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:159,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:160,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:161,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:161,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:163,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - poJSonCoordinates
    - poNativeCoordinates
    argTypes:
    - json_object*
    - json_object*
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: OGRGeoJSONIsPatchablePosition
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - json_object_get_type
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONIsPatchablePosition(json_object *poJSonCoordinates,\n
      \                                         json_object *poNativeCoordinates)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:174,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:175,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:176,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:177,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:178,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:178,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:180,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - poJSonCoordinates
    - poNativeCoordinates
    argTypes:
    - json_object*
    - json_object*
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: OGRGeoJSONIsCompatiblePosition
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - json_object_get_type
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONIsCompatiblePosition(json_object *poJSonCoordinates,\n
      \                                          json_object *poNativeCoordinates)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:191,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:194,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:196,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poJSonCoordinates
    - poNativeCoordinates
    argTypes:
    - json_object*
    - json_object*
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: OGRGeoJSONPatchPosition
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_add
    - json_object_get
    - json_object_array_length
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONPatchPosition(json_object *poJSonCoordinates,\n                                    json_object
      *poNativeCoordinates)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONIsPatchablePosition
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:208,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:210,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:211,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:213,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:214,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:219,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:221,1
    - Dst: OGRGeoJSONIsPatchableArray
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - poJSonArray
    - poNativeArray
    - nDepth
    argTypes:
    - json_object*
    - json_object*
    - int
    constantsTouched: []
    func_position:
      end: 234
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 234
    functionName: OGRGeoJSONIsPatchableArray
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRGeoJSONIsPatchableArray
    - json_object_get_type
    - OGRGeoJSONIsPatchablePosition
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONIsPatchableArray(json_object *poJSonArray,\n                                       json_object
      *poNativeArray, int nDepth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONIsPatchablePosition
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:249,1
    - Dst: OGRGeoJSONIsCompatiblePosition
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:251,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:252,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:253,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:254,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:254,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:256,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:256,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:260,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:261,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:263,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:264,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:269,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:271,1
    - Dst: OGRGeoJSONComputePatchableOrCompatibleArrayInternal
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:272,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 5
    argNames:
    - poJSonArray
    - poNativeArray
    - nDepth
    - bOutPatchable
    - bOutCompatible
    argTypes:
    - json_object*
    - json_object*
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 288
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 288
    functionName: OGRGeoJSONComputePatchableOrCompatibleArrayInternal
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRGeoJSONComputePatchableOrCompatibleArrayInternal
    - json_object_get_type
    - OGRGeoJSONIsPatchablePosition
    - OGRGeoJSONIsCompatiblePosition
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONComputePatchableOrCompatibleArrayInternal(\n    json_object
      *poJSonArray, json_object *poNativeArray, int nDepth,\n    bool &bOutPatchable,
      bool &bOutCompatible)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONComputePatchableOrCompatibleArrayInternal
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - poJSonArray
    - poNativeArray
    - nDepth
    - bOutPatchable
    - bOutCompatible
    argTypes:
    - json_object*
    - json_object*
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: OGRGeoJSONComputePatchableOrCompatibleArray
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONComputePatchableOrCompatibleArrayInternal
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONComputePatchableOrCompatibleArray(\n    json_object
      *poJSonArray, json_object *poNativeArray, int nDepth,\n    bool &bOutPatchable,
      bool &bOutCompatible)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONPatchPosition
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:311,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:314,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:317,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:319,1
    - Dst: OGRGeoJSONPatchArray
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - poJSonArray
    - poNativeArray
    - nDepth
    argTypes:
    - json_object*
    - json_object*
    - int
    constantsTouched: []
    func_position:
      end: 322
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 322
    functionName: OGRGeoJSONPatchArray
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRGeoJSONPatchArray
    - OGRGeoJSONPatchPosition
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONPatchArray(json_object *poJSonArray,\n                                 json_object
      *poNativeArray, int nDepth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:333,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:334,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:339,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:341,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:343,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:344,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:345,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:345,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:346,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:357,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:360,1
    - Dst: OGRGeoJSONComputePatchableOrCompatibleArray
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:368,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:377,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:380,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:382,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:383,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:385,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:386,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:391,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:393,1
    - Dst: OGRGeoJSONIsPatchableGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:394,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 4
    argNames:
    - poJSonGeometry
    - poNativeGeometry
    - bOutPatchableCoords
    - bOutCompatibleCoords
    argTypes:
    - json_object*
    - json_object*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 408
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 408
    functionName: OGRGeoJSONIsPatchableGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - OGRGeoJSONIsPatchableGeometry
    - json_object_get_type
    - strcmp
    - json_object_get_string
    - OGRGeoJSONComputePatchableOrCompatibleArray
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONIsPatchableGeometry(json_object *poJSonGeometry,\n
      \                                         json_object *poNativeGeometry,\n                                          bool
      &bOutPatchableCoords,\n                                          bool &bOutCompatibleCoords)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:425,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:425,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:429,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:438,1
    - Dst: OGRGeoJSONIsPatchableArray
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:442,1
    - Dst: OGRGeoJSONPatchArray
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:445,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:453,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:456,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:458,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:462,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:464,1
    - Dst: OGRGeoJSONPatchGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:465,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:474,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:475,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:476,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:481,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:481,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 4
    argNames:
    - poJSonGeometry
    - poNativeGeometry
    - bPatchableCoordinates
    - oOptions
    argTypes:
    - json_object*
    - json_object*
    - bool
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 483
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 483
    functionName: OGRGeoJSONPatchGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - OGRGeoJSONIsPatchableArray
    - OGRGeoJSONPatchGeometry
    - strcmp
    - json_object_get
    - json_object_object_add
    - OGRGeoJSONPatchArray
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONPatchGeometry(json_object *poJSonGeometry,\n                                    json_object
      *poNativeGeometry,\n                                    bool bPatchableCoordinates,\n
      \                                   const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:493,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:501,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:501,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:505,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:506,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:510,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:518,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:520,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:567,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:573,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:575,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:578,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:579,1
    - Dst: min
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:584,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:588,1
    - Dst: max
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:589,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:592,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 56
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRGeometry*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 602
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 602
    functionName: OGRGeoJSONGetBBox
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - getEnvelope
    - cpl::infinity
    - OGRGeometry*::toGeometryCollection
    - min
    - CPLAssert
    - max
    - fabs
    - wkbFlatten
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGREnvelope3D
    signature: "OGREnvelope3D OGRGeoJSONGetBBox(const OGRGeometry *poGeometry,\n                                const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:611,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:615,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:616,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:618,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:618,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:629,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:633,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:634,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:644,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:648,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:653,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:658,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:660,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:663,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:665,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:682,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:684,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:684,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:685,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:695,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:697,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:698,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:710,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:712,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:712,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:713,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:718,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:720,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:722,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:723,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:732,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:733,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:734,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:739,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:739,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:741,1
    - Dst: OGRGeoJSONWriteId
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:748,1
    - Dst: OGRGeoJSONWriteAttributes
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:755,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:757,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:766,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:769,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:771,1
    - Dst: OGRGeoJSONGetBBox
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:773,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:775,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:776,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:777,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:778,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:779,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:780,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:780,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:781,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:783,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:784,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:785,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:786,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:787,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:788,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:788,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:789,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:791,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:793,1
    - Dst: OGRGeoJSONIsPatchableGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:798,1
    - Dst: OGRGeoJSONPatchGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:802,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:807,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:810,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 86
    argCount: 2
    argNames:
    - poFeature
    - oOptions
    argTypes:
    - OGRFeature*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 813
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 813
    functionName: OGRGeoJSONWriteFeature
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRFeature*::GetFieldAsInteger64
    - OGRGeoJSONIsPatchableGeometry
    - OGRFeature*::GetFieldAsString
    - OGRGeoJSONWriteAttributes
    - strcmp
    - json_object_object_add
    - wkbHasZ
    - OGRGeoJSONPatchGeometry
    - CPLAtoGIntBig
    - json_object_new_int64
    - json_object_get
    - OGRGeoJSONWriteId
    - OGRJSonParse
    - OGRGeometry*::getGeometryType
    - json_object_new_coord
    - json_object_new_array
    - OGRGeoJSONWriteGeometry
    - json_object_new_string
    - json_object_get_type
    - OGRGeoJSONGetBBox
    - json_object_array_add
    - CPLAssert
    - json_object_get_string
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::GetFieldDefnRef
    - OGRGeometry*::IsEmpty
    - json_object_new_object
    - json_object_put
    - EQUAL
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteFeature(OGRFeature *poFeature,\n                                    const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONWriteOptions::osIDField::empty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:823,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:832,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:833,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:835,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:837,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:838,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:842,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:844,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:844,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:848,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:853,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:854,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:854,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:855,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:859,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:860,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:860,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 4
    argNames:
    - poFeature
    - poObj
    - bIdAlreadyWritten
    - oOptions
    argTypes:
    - OGRFeature*
    - json_object*
    - bool
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 863
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 863
    functionName: OGRGeoJSONWriteId
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFID
    - OGRFeature*::GetFieldAsString
    - json_object_new_string
    - CPLSPrintf
    - json_object_new_int64
    - json_object_object_add
    - OGRGeoJSONWriteOptions::osIDField::empty
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONWriteId(const OGRFeature *poFeature, json_object *poObj,\n
      \                      bool bIdAlreadyWritten,\n                       const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:873,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:875,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:876,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:878,1
    - Dst: OGRFeature*::GetNativeMediaType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:901,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:902,1
    - Dst: OGRFeature*::GetNativeMediaType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:902,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:904,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:908,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:910,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:910,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:913,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:924,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:929,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:930,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:931,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:932,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:935,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:935,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:942,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:949,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:950,1
    - Dst: json_object_new_int
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:953,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:953,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:958,1
    - Dst: static_cast<json_bool>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:958,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:959,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:961,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:962,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:967,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:971,1
    - Dst: json_object_new_float_with_significant_figures
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:978,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:979,1
    - Dst: json_object_new_double_with_significant_figures
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:983,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:999,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1000,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1003,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1005,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1015,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1021,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1028,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1032,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1033,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1035,1
    - Dst: json_object_new_int
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1036,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1043,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1044,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1048,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1049,1
    - Dst: static_cast<json_bool>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1050,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1052,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1053,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1061,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1066,1
    - Dst: json_object_new_float_with_significant_figures
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1068,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1069,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1074,1
    - Dst: json_object_new_double_with_significant_figures
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1076,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1084,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1087,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1088,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1100,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1101,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1106,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1106,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1109,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1109,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1115,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 113
    argCount: 3
    argNames:
    - poFeature
    - bWriteIdIfFoundInAttributes
    - oOptions
    argTypes:
    - OGRFeature*
    - bool
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1119
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 1119
    functionName: OGRGeoJSONWriteAttributes
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - static_cast<json_bool>
    - OGRFeature*::GetFieldAsInteger64
    - json_object_new_boolean
    - OGRFeature*::GetFieldAsString
    - strcmp
    - OGRFeature*::IsFieldNull
    - json_object_object_add
    - OGRFeature*::GetDefnRef
    - json_object_new_double_with_significant_figures
    - OGRFeature*::GetFieldAsInteger
    - json_object_new_int64
    - json_object_get
    - OGRFieldDefn*::GetSubType
    - OGRJSonParse
    - static_cast<float>
    - json_object_new_array
    - OGRFieldDefn*::GetNameRef
    - json_object_new_string
    - json_object_array_add
    - CPLAssert
    - OGRFieldDefn*::GetType
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - json_object_new_object
    - std::isfinite
    - OGRFeature*::IsFieldSet
    - json_object_put
    - OGRFeature*::GetNativeData
    - OGRGeoJSONFindMemberByName
    - json_object_new_float_with_significant_figures
    - OGRFeature*::GetNativeMediaType
    - CPLErrorOnce
    - json_object_new_int
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteAttributes(OGRFeature *poFeature,\n                                       bool
      bWriteIdIfFoundInAttributes,\n                                       const OGRGeoJSONWriteOptions
      &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1130,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1134,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1134,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1138,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1143,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1144,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1152,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1152,1
    - Dst: OGRGeoJSONWriteGeometryCollection
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1161,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1162,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1163,1
    - Dst: OGRGeoJSONWritePoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1168,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1168,1
    - Dst: OGRGeoJSONWriteLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1171,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1171,1
    - Dst: OGRGeoJSONWritePolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1174,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1174,1
    - Dst: OGRGeoJSONWriteMultiPoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1177,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1177,1
    - Dst: OGRGeoJSONWriteMultiLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1179,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1180,1
    - Dst: OGRGeoJSONWriteMultiPolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1182,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1186,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1194,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1198,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRGeometry*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1204
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1204
    functionName: OGRGeoJSONWriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::toMultiPoint
    - OGRGeoJSONWritePolygon
    - json_object_object_add
    - CPLError
    - OGRGeometry*::toMultiPolygon
    - OGRGeoJSONWriteGeometryCollection
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - OGRGeometry*::toGeometryCollection
    - json_object_new_string
    - OGRGeoJSONWriteMultiPoint
    - CPLAssert
    - OGRGeoJSONWritePoint
    - OGRGeoJSONWriteMultiPolygon
    - OGRGeometry*::toLineString
    - OGRGeometry*::IsEmpty
    - json_object_new_object
    - OGRGeoJSONWriteMultiLineString
    - json_object_put
    - OGRGeometry*::toPolygon
    - OGRGeoJSONWriteLineString
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteGeometry(const OGRGeometry *poGeometry,\n
      \                                    const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1213,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1218,1
    - Dst: OGRPoint*::getGeometryType
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1218,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1220,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1220,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1220,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1221,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1223,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1226,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1226,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poPoint
    - oOptions
    argTypes:
    - OGRPoint*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1230
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1230
    functionName: OGRGeoJSONWritePoint
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - wkbHasZ
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRPoint*::getZ
    - CPLAssert
    - OGRGeoJSONWriteCoords
    - OGRPoint*::IsEmpty
    - OGRPoint*::getGeometryType
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWritePoint(const OGRPoint *poPoint,\n                                  const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1239,1
    - Dst: OGRGeoJSONWriteLineCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poLine
    - oOptions
    argTypes:
    - OGRLineString*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1245
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1245
    functionName: OGRGeoJSONWriteLineString
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONWriteLineCoords
    - CPLAssert
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteLineString(const OGRLineString *poLine,\n
      \                                      const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1254,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1257,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1260,1
    - Dst: OGRGeoJSONWriteRingCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1264,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1267,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1270,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1276,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1277,1
    - Dst: OGRGeoJSONWriteRingCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1279,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1282,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - poPolygon
    - oOptions
    argTypes:
    - OGRPolygon*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1290
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1290
    functionName: OGRGeoJSONWritePolygon
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_array
    - OGRGeoJSONWriteRingCoords
    - OGRPolygon*::getInteriorRing
    - json_object_put
    - json_object_array_add
    - CPLAssert
    - OGRPolygon*::getExteriorRing
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWritePolygon(const OGRPolygon *poPolygon,\n
      \                                   const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1299,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1302,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1304,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1306,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1307,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1308,1
    - Dst: OGRGeoJSONWritePoint
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1310,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1313,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRMultiPoint*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1321
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1321
    functionName: OGRGeoJSONWriteMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPoint*::getGeometryRef
    - OGRMultiPoint*::getNumGeometries
    - json_object_new_array
    - json_object_put
    - json_object_array_add
    - CPLAssert
    - OGRGeoJSONWritePoint
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteMultiPoint(const OGRMultiPoint *poGeometry,\n
      \                                      const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1331,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1334,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1336,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1338,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1339,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1340,1
    - Dst: OGRGeoJSONWriteLineString
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1342,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1345,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRMultiLineString*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1353
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1353
    functionName: OGRGeoJSONWriteMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_array
    - OGRMultiLineString*::getNumGeometries
    - OGRMultiLineString*::getGeometryRef
    - json_object_put
    - json_object_array_add
    - CPLAssert
    - OGRGeoJSONWriteLineString
    - OGRGeometry*::toLineString
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nOGRGeoJSONWriteMultiLineString(const OGRMultiLineString
      *poGeometry,\n                               const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1362,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1365,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1367,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1369,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1370,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1371,1
    - Dst: OGRGeoJSONWritePolygon
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1373,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1376,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRMultiPolygon*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1384
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1384
    functionName: OGRGeoJSONWriteMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPolygon*::getNumGeometries
    - json_object_new_array
    - OGRMultiPolygon*::getGeometryRef
    - json_object_put
    - OGRGeometry*::toPolygon
    - CPLAssert
    - json_object_array_add
    - OGRGeoJSONWritePolygon
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteMultiPolygon(const OGRMultiPolygon *poGeometry,\n
      \                                        const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1394,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1397,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1399,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1401,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1402,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1404,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1407,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRGeometryCollection*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1415
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1415
    functionName: OGRGeoJSONWriteGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_array
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeoJSONWriteGeometry
    - json_object_put
    - json_object_array_add
    - CPLAssert
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nOGRGeoJSONWriteGeometryCollection(const OGRGeometryCollection
      *poGeometry,\n                                  const OGRGeoJSONWriteOptions
      &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1425,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1425,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1425,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1425,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1427,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1431,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1432,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1432,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1433,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - fX
    - fY
    - oOptions
    argTypes:
    - double
    - double
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1436
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1436
    functionName: OGRGeoJSONWriteCoords
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_coord
    - CPLError
    - json_object_new_array
    - json_object_array_add
    - std::isinf
    - std::isnan
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteCoords(double const &fX, double const
      &fY,\n                                   const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1442,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1442,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1442,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1442,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1443,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1443,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1445,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1449,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1450,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1450,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1451,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1451,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1452,1
    - Dst: json_object_new_coord
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - fX
    - fY
    - fZ
    - oOptions
    argTypes:
    - double
    - double
    - double
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1455
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1455
    functionName: OGRGeoJSONWriteCoords
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_coord
    - CPLError
    - json_object_new_array
    - json_object_array_add
    - std::isinf
    - std::isnan
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteCoords(double const &fX, double const
      &fY,\n                                   double const &fZ,\n                                   const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1465,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1472,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1472,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1472,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1475,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1475,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1475,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1476,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1479,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - poLine
    - oOptions
    argTypes:
    - OGRLineString*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1486
      start: 1461
    functionDepth: 4
    functionLinenumber: 1461
    functionLinenumberEnd: 1486
    functionName: OGRGeoJSONWriteLineCoords
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::getX
    - json_object_new_array
    - json_object_put
    - json_object_array_add
    - OGRGeoJSONWriteCoords
    - OGRLineString*::getZ
    - OGRLineString*::getY
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteLineCoords(const OGRLineString *poLine,\n
      \                                      const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1497,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1509,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1509,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1510,1
    - Dst: OGRGeoJSONWriteCoords
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1513,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1513,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1513,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1514,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1517,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - poLine
    - bIsExteriorRing
    - oOptions
    argTypes:
    - OGRLinearRing*
    - bool
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 1524
      start: 1492
    functionDepth: 4
    functionLinenumber: 1492
    functionLinenumberEnd: 1524
    functionName: OGRGeoJSONWriteRingCoords
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_array
    - OGRLinearRing*::getY
    - json_object_put
    - json_object_array_add
    - OGRGeoJSONWriteCoords
    - OGRLinearRing*::getX
    - OGRLinearRing*::getZ
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRGeoJSONWriteRingCoords(const OGRLinearRing *poLine,\n
      \                                      bool bIsExteriorRing,\n                                       const
      OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1537,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1538,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1539,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1542,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1544,1
    - Dst: json_object_get_userdata
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1552,1
    - Dst: OGRFormatFloat
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1562,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - jso
    - pb
    argTypes:
    - struct json_object*
    - struct printbuf*
    constantsTouched: []
    func_position:
      end: 1567
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1567
    functionName: OGR_json_float_with_significant_figures_to_string
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - printbuf_memappend
    - json_object_get_userdata
    - CPLsnprintf
    - std::isinf
    - OGRFormatFloat
    - std::isnan
    linkageType: ''
    returnType: int
    signature: "int OGR_json_float_with_significant_figures_to_string(\n    struct
      json_object *jso, struct printbuf *pb, int /* level */,\n    int /* flags */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1577,1
    - Dst: json_object_set_serializer
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1578,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1580,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fVal
    - nSignificantFigures
    argTypes:
    - float
    - int
    constantsTouched: []
    func_position:
      end: 1583
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1583
    functionName: json_object_new_float_with_significant_figures
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uintptr_t>
    - json_object_set_serializer
    - reinterpret_cast<void *>
    - json_object_new_double
    linkageType: ''
    returnType: json_object
    signature: "json_object *\njson_object_new_float_with_significant_figures(float
      fVal,\n                                               int nSignificantFigures)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_ExportToJsonEx
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeometry
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1605
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1605
    functionName: OGR_G_ExportToJson
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_ExportToJsonEx
    linkageType: ''
    returnType: char
    signature: char *OGR_G_ExportToJson(OGRGeometryH hGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1645,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1647,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1656,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1656,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1658,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1658,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1666,1
    - Dst: auto::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1668,1
    - Dst: auto::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1669,1
    - Dst: auto::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1670,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1672,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1676,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1680,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrgeojsonwriter.cpp:1687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - hGeometry
    - papszOptions
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 1694
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1694
    functionName: OGR_G_ExportToJsonEx
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometry*::swapXY
    - OGRGeometry*::getSpatialReference
    - FromHandle
    - atoi
    - auto::EPSGTreatsAsLatLong
    - CSLFetchNameValueDef
    - OGRGeoJSONWriteGeometry
    - auto::GetDataAxisToSRSAxisMapping
    - json_object_put
    - VALIDATE_POINTER1
    - auto::EPSGTreatsAsNorthingEasting
    linkageType: ''
    returnType: char
    signature: char *OGR_G_ExportToJsonEx(OGRGeometryH hGeometry, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: SetFieldName
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldName(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: SetFieldType
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldType(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eSubType
    argTypes:
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: SetFieldSubType
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldSubType(OGRFieldSubType eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: SetFieldWidth
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldWidth(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nPrecision
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: SetFieldPrecision
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldPrecision(int nPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: GetFieldName
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetFieldName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: GetFieldType
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<OGRFieldType>
    signature: std::optional<OGRFieldType> GetFieldType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: GetFieldSubType
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<OGRFieldSubType>
    signature: std::optional<OGRFieldSubType> GetFieldSubType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: GetFieldWidth
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int>
    signature: std::optional<int> GetFieldWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: GetFieldPrecision
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int>
    signature: std::optional<int> GetFieldPrecision() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerSchemaOverride
      Src: /src/gdal/ogr/ogr_schema_override.h:99,1
    - Dst: m_osLayerName
      Src: /src/gdal/ogr/ogr_schema_override.h:99,1
    - Dst: m_moFieldOverrides
      Src: /src/gdal/ogr/ogr_schema_override.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: OGRLayerSchemaOverride
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached:
    - m_osLayerName
    - m_moFieldOverrides
    - OGRLayerSchemaOverride
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRLayerSchemaOverride
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSchemaOverride
      Src: /src/gdal/ogr/ogr_schema_override.h:146,1
    - Dst: m_moLayerOverrides
      Src: /src/gdal/ogr/ogr_schema_override.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: OGRSchemaOverride
    functionSourceFile: /src/gdal/ogr/ogr_schema_override.h
    functionUses: 1
    functionsReached:
    - OGRSchemaOverride
    - m_moLayerOverrides
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRSchemaOverride
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrpolygon.cpp:42,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrpolygon.cpp:43,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrpolygon.cpp:44,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrpolygon.cpp:45,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrpolygon.cpp:46,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrpolygon.cpp:47,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrpolygon.cpp:48,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrpolygon.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: OGRPolygon::OGRPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 13
    functionsReached:
    - auto::release
    - std::make_unique<OGRLinearRing>
    - addRingDirectly
    - auto::addPoint
    linkageType: ''
    returnType: void
    signature: void OGRPolygon::OGRPolygon(double x1, double y1, double x2, double
      y2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - envelope
    argTypes:
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OGRPolygon::OGRPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPolygon::OGRPolygon(const OGREnvelope &envelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: OGRPolygon::OGRPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPolygon::OGRPolygon(const OGRPolygon &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::operator=
      Src: /src/gdal/ogr/ogrpolygon.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPolygon
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: '&OGRPolygon::operator=(const OGRPolygon &other)'
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::operator=
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon &OGRPolygon::operator=(const OGRPolygon &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:111,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrpolygon.cpp:114,1
    - Dst: OGRPolygon::WkbSize
      Src: /src/gdal/ogr/ogrpolygon.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: OGRPolygon::clone
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - auto::WkbSize
    - OGRPolygon::OGRPolygon
    - OGRPolygon::WkbSize
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRPolygon::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: OGRPolygon::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRPolygon::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: OGRPolygon::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPolygon::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: OGRPolygon::getExteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::getExteriorRing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: OGRPolygon::getExteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::getExteriorRing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stealExteriorRingCurve
      Src: /src/gdal/ogr/ogrpolygon.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: OGRPolygon::stealExteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - stealExteriorRingCurve
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::stealExteriorRing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: OGRPolygon::getInteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::getInteriorRing(int iRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: OGRPolygon::getInteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::getInteriorRing(int iRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: OGRPolygon::stealInteriorRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRPolygon::stealInteriorRing(int iRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolygon.cpp:302,1
    - Dst: OGRCurve*::getGeometryName
      Src: /src/gdal/ogr/ogrpolygon.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: OGRPolygon::isRingCorrectType
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRCurve*::getGeometryName
    linkageType: ''
    returnType: bool
    signature: bool OGRPolygon::isRingCorrectType(const OGRCurve *poRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::isRingCorrectType
      Src: /src/gdal/ogr/ogrpolygon.cpp:311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolygon.cpp:313,1
    - Dst: OGRCurve*::IsEmpty
      Src: /src/gdal/ogr/ogrpolygon.cpp:318,1
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrpolygon.cpp:318,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrpolygon.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolygon.cpp:326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolygon.cpp:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: OGRPolygon::checkRing
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGRCurve*::IsEmpty
    - OGRPolygon::isRingCorrectType
    - CPLError
    - OGRCurve*::get_IsClosed
    linkageType: ''
    returnType: bool
    signature: bool OGRPolygon::checkRing(const OGRCurve *poNewRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _WkbSize
      Src: /src/gdal/ogr/ogrpolygon.cpp:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: OGRPolygon::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - _WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRPolygon::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrpolygon.cpp:382,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrpolygon.cpp:390,1
    - Dst: cpl::down_cast<OGRLinearRing *>
      Src: /src/gdal/ogr/ogrpolygon.cpp:393,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrpolygon.cpp:402,1
    - Dst: importPreambleFromWkb
      Src: /src/gdal/ogr/ogrpolygon.cpp:411,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:421,1
    - Dst: OGRLinearRing*::_importFromWkb
      Src: /src/gdal/ogr/ogrpolygon.cpp:424,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpolygon.cpp:433,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrpolygon.cpp:434,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpolygon.cpp:436,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 445
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 445
    functionName: OGRPolygon::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - empty
    - cpl::down_cast<OGRLinearRing *>
    - importPreambleFromWkb
    - OGRLinearRing::OGRLinearRing
    - memcmp
    - OGRLinearRing*::_importFromWkb
    - CPLAssert
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPolygon::importFromWkb(const unsigned char *pabyData, size_t
      nSize,\n                                 OGRwkbVariant eWkbVariant,\n                                 size_t
      &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrpolygon.cpp:466,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrpolygon.cpp:467,1
    - Dst: OGRPolygon::getGeometryType
      Src: /src/gdal/ogr/ogrpolygon.cpp:472,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpolygon.cpp:476,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrpolygon.cpp:477,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrpolygon.cpp:480,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrpolygon.cpp:481,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrpolygon.cpp:482,1
    - Dst: getIsoGeometryType
      Src: /src/gdal/ogr/ogrpolygon.cpp:485,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpolygon.cpp:487,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrpolygon.cpp:489,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolygon.cpp:492,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpolygon.cpp:497,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolygon.cpp:500,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolygon.cpp:504,1
    - Dst: _exportToWkb
      Src: /src/gdal/ogr/ogrpolygon.cpp:514,1
    - Dst: _WkbSize
      Src: /src/gdal/ogr/ogrpolygon.cpp:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 520
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 520
    functionName: OGRPolygon::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - _exportToWkb
    - _WkbSize
    - static_cast<OGRwkbGeometryType>
    - OGRPolygon::getGeometryType
    - getIsoGeometryType
    - OGR_SWAP
    - IsMeasured
    - DB2_V72_UNFIX_BYTE_ORDER
    - CPL_SWAP32
    - Is3D
    - wkbFlatten
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPolygon::exportToWkb(unsigned char *pabyData,\n                               const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrpolygon.cpp:535,1
    - Dst: OGRPolygon::importFromWKTListOnly
      Src: /src/gdal/ogr/ogrpolygon.cpp:550,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolygon.cpp:553,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolygon.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 557
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 557
    functionName: OGRPolygon::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - importPreambleFromWkt
    - OGRPolygon::importFromWKTListOnly
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolygon::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolygon.cpp:575,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolygon.cpp:576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolygon.cpp:581,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolygon.cpp:595,1
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrpolygon.cpp:605,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrpolygon.cpp:605,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:608,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolygon.cpp:611,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolygon.cpp:612,1
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrpolygon.cpp:634,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolygon.cpp:638,1
    - Dst: static_cast<OGRCurve **>
      Src: /src/gdal/ogr/ogrpolygon.cpp:660,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrpolygon.cpp:660,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:669,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpolygon.cpp:673,1
    - Dst: OGRLinearRing*::setPointsM
      Src: /src/gdal/ogr/ogrpolygon.cpp:675,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpolygon.cpp:677,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrpolygon.cpp:679,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolygon.cpp:689,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolygon.cpp:692,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 6
    argNames:
    - ppszInput
    - bHasZ
    - bHasM
    - paoPoints
    - nMaxPoints
    - padfZ
    argTypes:
    - char**
    - int
    - int
    - OGRRawPoint*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 703
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 703
    functionName: OGRPolygon::importFromWKTListOnly
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRWktReadPointsM
    - OGRLinearRing*::setPointsM
    - OGRLinearRing*::setPoints
    - OGRLinearRing::OGRLinearRing
    - EQUAL
    - CPLRealloc
    - static_cast<OGRCurve **>
    - CPLFree
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPolygon::importFromWKTListOnly(const char **ppszInput, int
      bHasZ,\n                                         int bHasM, OGRRawPoint *&paoPoints,\n
      \                                        int &nMaxPoints, double *&padfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::getGeometryName
      Src: /src/gdal/ogr/ogrpolygon.cpp:721,1
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrpolygon.cpp:722,1
    - Dst: OGRPolygon::getExteriorRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:723,1
    - Dst: OGRPolygon::getExteriorRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:723,1
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:738,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrpolygon.cpp:739,1
    - Dst: OGRLinearRing*::exportToWkt
      Src: /src/gdal/ogr/ogrpolygon.cpp:745,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrpolygon.cpp:750,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrpolygon.cpp:754,1
    - Dst: std::string::find_first_of
      Src: /src/gdal/ogr/ogrpolygon.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolygon.cpp:761,1
    - Dst: what
      Src: /src/gdal/ogr/ogrpolygon.cpp:761,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrpolygon.cpp:764,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 771
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 771
    functionName: OGRPolygon::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - OGRLinearRing*::exportToWkt
    - toLinearRing
    - OGRPolygon::getGeometryName
    - wktTypeString
    - OGRPolygon::getExteriorRing
    - std::string::find_first_of
    - std::string
    - CPLError
    - std::string::substr
    - what
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRPolygon::exportToWkt(const OGRWktOptions &opts,\n                                    OGRErr
      *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isPointInRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pt
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 812
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 812
    functionName: OGRPolygon::IsPointOnSurface
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - isPointInRing
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolygon::IsPointOnSurface(const OGRPoint *pt) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::closeRings
      Src: /src/gdal/ogr/ogrpolygon.cpp:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: OGRPolygon::closeRings
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRPolygon::closeRings
    linkageType: ''
    returnType: void
    signature: void OGRPolygon::closeRings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::clone
      Src: /src/gdal/ogr/ogrpolygon.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 834
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 834
    functionName: OGRPolygon::CurvePolyToPoly
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::clone
    linkageType: ''
    returnType: OGRPolygon
    signature: "OGRPolygon *\nOGRPolygon::CurvePolyToPoly(CPL_UNUSED double dfMaxAngleStepSizeDegrees,\n
      \                           CPL_UNUSED const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: OGRPolygon::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolygon::hasCurveGeometry(CPL_UNUSED int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::getLinearGeometry
      Src: /src/gdal/ogr/ogrpolygon.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 855
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 855
    functionName: OGRPolygon::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::getLinearGeometry
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRPolygon::getLinearGeometry(double dfMaxAngleStepSizeDegrees,\n
      \                             const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:863,1
    - Dst: OGRCurvePolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrpolygon.cpp:864,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrpolygon.cpp:864,1
    - Dst: OGRPolygon::getCurveGeometry
      Src: /src/gdal/ogr/ogrpolygon.cpp:868,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpolygon.cpp:869,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrpolygon.cpp:869,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrpolygon.cpp:871,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogrpolygon.cpp:871,1
    - Dst: OGRPolygon::clone
      Src: /src/gdal/ogr/ogrpolygon.cpp:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 879
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 879
    functionName: OGRPolygon::getCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon*::assignSpatialReference
    - OGRCurvePolygon::OGRCurvePolygon
    - getSpatialReference
    - OGRCurvePolygon*::addRingDirectly
    - auto::getGeometryType
    - OGRPolygon::getCurveGeometry
    - wkbFlatten
    - auto::toCurve
    - OGRPolygon::clone
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRPolygon::getCurveGeometry(const char *const *papszOptions)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:897,1
    - Dst: OGRCurvePolygon*::set3D
      Src: /src/gdal/ogr/ogrpolygon.cpp:898,1
    - Dst: OGRPolygon*::Is3D
      Src: /src/gdal/ogr/ogrpolygon.cpp:898,1
    - Dst: OGRCurvePolygon*::setMeasured
      Src: /src/gdal/ogr/ogrpolygon.cpp:899,1
    - Dst: OGRPolygon*::IsMeasured
      Src: /src/gdal/ogr/ogrpolygon.cpp:899,1
    - Dst: OGRCurvePolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrpolygon.cpp:900,1
    - Dst: OGRPolygon*::getSpatialReference
      Src: /src/gdal/ogr/ogrpolygon.cpp:900,1
    - Dst: OGRLinearRing::CastToLineString
      Src: /src/gdal/ogr/ogrpolygon.cpp:908,1
    - Dst: toLinearRing
      Src: /src/gdal/ogr/ogrpolygon.cpp:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - poPoly
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 913
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 913
    functionName: OGRPolygon::CastToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - toLinearRing
    - OGRLinearRing::CastToLineString
    - OGRCurvePolygon*::setMeasured
    - OGRPolygon*::Is3D
    - OGRCurvePolygon*::assignSpatialReference
    - OGRCurvePolygon::OGRCurvePolygon
    - OGRPolygon*::IsMeasured
    - OGRPolygon*::getSpatialReference
    - OGRCurvePolygon*::set3D
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *OGRPolygon::CastToCurvePolygon(OGRPolygon *poPoly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::toPolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: CasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRSurface*::toPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *CasterToPolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: OGRPolygon::GetCasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToPolygon
    signature: OGRSurfaceCasterToPolygon OGRPolygon::GetCasterToPolygon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::CastToCurvePolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:935,1
    - Dst: OGRSurface*::toPolygon
      Src: /src/gdal/ogr/ogrpolygon.cpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 936
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 936
    functionName: OGRPolygon::CasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRSurface*::toPolygon
    - OGRPolygon::CastToCurvePolygon
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *OGRPolygon::CasterToCurvePolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: OGRPolygon::GetCasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrpolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToCurvePolygon
    signature: OGRSurfaceCasterToCurvePolygon OGRPolygon::GetCasterToCurvePolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogr_expat.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: OGRExpatUniquePtrDeleter
    functionSourceFile: /src/gdal/ogr/ogr_expat.h
    functionUses: 0
    functionsReached:
    - XML_ParserFree
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRExpatUniquePtrDeleter
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: OGRGeoJSONWriteOptions
    functionSourceFile: /src/gdal/ogr/ogrgeojsonwriter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeoJSONWriteOptions
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: OGRCurvePolygon::OGRCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::OGRCurvePolygon(const OGRCurvePolygon &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface::operator=
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:58,1
    - Dst: isRingCorrectType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:62,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurvePolygon
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: '&OGRCurvePolygon::operator=(const OGRCurvePolygon &other)'
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - isRingCorrectType
    - OGRSurface::operator=
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon &OGRCurvePolygon::operator=(const OGRCurvePolygon &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: OGRCurvePolygon::clone
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::OGRCurvePolygon
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *OGRCurvePolygon::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::empty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: OGRCurvePolygon::empty
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::empty
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: OGRCurvePolygon::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRCurvePolygon::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: OGRCurvePolygon::getDimension
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurvePolygon::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::flattenTo2D
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: OGRCurvePolygon::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::flattenTo2D
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: OGRCurvePolygon::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRCurvePolygon::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: OGRCurvePolygon::getExteriorRingCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurvePolygon::getExteriorRingCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: OGRCurvePolygon::getExteriorRingCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurvePolygon::getExteriorRingCurve() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: OGRCurvePolygon::getNumInteriorRings
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurvePolygon::getNumInteriorRings() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: OGRCurvePolygon::getInteriorRingCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurvePolygon::getInteriorRingCurve(int iRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: OGRCurvePolygon::getInteriorRingCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurvePolygon::getInteriorRingCurve(int iRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: OGRCurvePolygon::stealExteriorRingCurve
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCurvePolygon::stealExteriorRingCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: removeCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iIndex
    - bDelete
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: OGRCurvePolygon::removeRing
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - removeCurve
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::removeRing(int iIndex, bool bDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::clone
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:327,1
    - Dst: OGRCurvePolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: OGRCurvePolygon::addRing
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::clone
    - OGRCurvePolygon::addRingDirectly
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::addRing(const OGRCurve *poNewRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:339,1
    - Dst: OGRCurve*::getGeometryName
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: OGRCurvePolygon::isRingCorrectType
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRCurve*::getGeometryName
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::isRingCorrectType(const OGRCurve *poRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::isRingCorrectType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:350,1
    - Dst: OGRCurve*::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:354,1
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:354,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:362,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:367,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:376,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:376,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 385
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 385
    functionName: OGRCurvePolygon::checkRing
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGRCurvePolygon::isRingCorrectType
    - OGRCurve*::IsEmpty
    - OGRCurve*::getNumPoints
    - CPLError
    - wkbFlatten
    - OGRCurve*::get_IsClosed
    - OGRCurve*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::checkRing(const OGRCurve *poNewRing) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::addRingDirectlyInternal
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: OGRCurvePolygon::addRingDirectly
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::addRingDirectlyInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::addRingDirectly(OGRCurve *poNewRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::checkRing
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:413,1
    - Dst: HomogenizeDimensionalityWith
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:416,1
    - Dst: addCurveDirectly
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poNewRing
    - bNeedRealloc
    argTypes:
    - OGRCurve*
    - int
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: OGRCurvePolygon::addRingDirectlyInternal
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - HomogenizeDimensionalityWith
    - addCurveDirectly
    - OGRCurvePolygon::checkRing
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurvePolygon::addRingDirectlyInternal(OGRCurve *poNewRing,\n
      \                                               int bNeedRealloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRCurve>::release
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:438,1
    - Dst: OGRCurvePolygon::addRingDirectlyInternal
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - std::unique_ptr<OGRCurve>
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: OGRCurvePolygon::addRing
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::addRingDirectlyInternal
    - std::unique_ptr<OGRCurve>::release
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::addRing(std::unique_ptr<OGRCurve> poNewRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::WkbSize
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: OGRCurvePolygon::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRCurvePolygon::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:465,1
    - Dst: OGRCurvePolygon*::addRingDirectlyInternal
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - poCurve
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: OGRCurvePolygon::addCurveDirectlyFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon*::addRingDirectlyInternal
    - OGRGeometry*::toCurvePolygon
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurvePolygon::addCurveDirectlyFromWkb(OGRGeometry *poSelf,\n
      \                                               OGRCurve *poCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkb
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:485,1
    - Dst: importBodyFromWkb
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: OGRCurvePolygon::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - importBodyFromWkb
    - importPreambleFromWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurvePolygon::importFromWkb(const unsigned char *pabyData,\n
      \                                     size_t nSize, OGRwkbVariant eWkbVariant,\n
      \                                     size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRwkbExportOptions
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:509,1
    - Dst: OGRCurvePolygon::exportToWkb
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: OGRCurvePolygon::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRwkbExportOptions
    - OGRCurvePolygon::exportToWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurvePolygon::exportToWkb(unsigned char *pabyData,\n                                    const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:524,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - poCurve
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 526
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 526
    functionName: OGRCurvePolygon::addCurveDirectlyFromWkt
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon*::addRingDirectly
    - OGRGeometry*::toCurvePolygon
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCurvePolygon::addCurveDirectlyFromWkt(OGRGeometry *poSelf,\n
      \                                               OGRCurve *poCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importCurveCollectionFromWkt
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: OGRCurvePolygon::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - importCurveCollectionFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::exportToWkt
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: OGRCurvePolygon::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::exportToWkt
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRCurvePolygon::exportToWkt(const OGRWktOptions &opts,\n
      \                                        OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:581,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:582,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:582,1
    - Dst: CurveToLine
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:585,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:587,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:590,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 597
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 597
    functionName: OGRCurvePolygon::CurvePolyToPoly
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon*::addRingDirectly
    - OGRCurve::CastToLinearRing
    - OGRPolygon*::assignSpatialReference
    - getSpatialReference
    - CurveToLine
    - CPLError
    - OGRPolygon::OGRPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: "OGRPolygon *\nOGRCurvePolygon::CurvePolyToPoly(double dfMaxAngleStepSizeDegrees,\n
      \                                const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::hasCurveGeometry
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 611
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 611
    functionName: OGRCurvePolygon::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::hasCurveGeometry(int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::CurvePolyToPoly
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: OGRCurvePolygon::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::CurvePolyToPoly
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRCurvePolygon::getLinearGeometry(double dfMaxAngleStepSizeDegrees,\n
      \                                  const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getEnvelope
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: OGRCurvePolygon::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getEnvelope
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: OGRCurvePolygon::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 2
    functionsReached:
    - OGRCurvePolygon::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:654,1
    - Dst: OGRCurvePolygon::getGeometryType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:654,1
    - Dst: OGRCurvePolygon::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:657,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:657,1
    - Dst: OGRCurvePolygon::Equals
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:660,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: OGRCurvePolygon::Equals
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::getGeometryType
    - OGRCurvePolygon::Equals
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toCurvePolygon
    - OGRCurvePolygon::IsEmpty
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::Equals(const OGRGeometry *poOther) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::transform
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: OGRCurvePolygon::transform
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::transform
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCurvePolygon::transform(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::get_Length
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: OGRCurvePolygon::get_Length
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::get_Length
    linkageType: ''
    returnType: double
    signature: double OGRCurvePolygon::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 710
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 710
    functionName: OGRCurvePolygon::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - getSpatialReference
    linkageType: ''
    returnType: double
    signature: "double OGRCurvePolygon::get_GeodesicLength(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:719,1
    - Dst: OGRCurvePolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:724,1
    - Dst: OGRCurvePolygon::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: OGRCurvePolygon::get_Area
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::getNumInteriorRings
    - OGRCurvePolygon::getExteriorRingCurve
    - OGRCurvePolygon::getInteriorRingCurve
    linkageType: ''
    returnType: double
    signature: double OGRCurvePolygon::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:740,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:744,1
    - Dst: OGRCurvePolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:749,1
    - Dst: OGRCurvePolygon::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 757
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 757
    functionName: OGRCurvePolygon::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::getNumInteriorRings
    - OGRCurvePolygon::getExteriorRingCurve
    - getSpatialReference
    - OGRCurvePolygon::getInteriorRingCurve
    linkageType: ''
    returnType: double
    signature: "double OGRCurvePolygon::get_GeodesicArea(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 767
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 767
    functionName: OGRCurvePolygon::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::set3D
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: OGRCurvePolygon::set3D
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::set3D
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::setMeasured
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: OGRCurvePolygon::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::setMeasured
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: OGRCurvePolygon::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::assignSpatialReference
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::assignSpatialReference(const OGRSpatialReference
      *poSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 795
    functionName: OGRCurvePolygon::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 2
    functionsReached:
    - OGRCurvePolygon::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:803,1
    - Dst: OGRCurvePolygon::getGeometryName
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:803,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:805,1
    - Dst: OGRCurvePolygon::segmentize
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 810
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 810
    functionName: OGRCurvePolygon::segmentize
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - OGRCurvePolygon::getGeometryName
    - CPLError
    - OGRCurvePolygon::segmentize
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::swapXY
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: OGRCurvePolygon::swapXY
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::swapXY
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:827,1
    - Dst: OGRCurvePolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:827,1
    - Dst: OGRGeometry::Contains
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 835
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 835
    functionName: OGRCurvePolygon::ContainsPoint
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::Contains
    - OGRCurvePolygon::getNumInteriorRings
    - OGRCurvePolygon::getExteriorRingCurve
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::ContainsPoint(const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:843,1
    - Dst: OGRCurvePolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:843,1
    - Dst: OGRGeometry::Intersects
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 851
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 851
    functionName: OGRCurvePolygon::IntersectsPoint
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::getNumInteriorRings
    - OGRCurvePolygon::getExteriorRingCurve
    - OGRGeometry::Intersects
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::IntersectsPoint(const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:860,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:861,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:861,1
    - Dst: OGRCurvePolygon::ContainsPoint
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:863,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:863,1
    - Dst: OGRGeometry::Contains
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: OGRCurvePolygon::Contains
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::Contains
    - OGRGeometry*::getGeometryType
    - OGRCurvePolygon::IsEmpty
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRCurvePolygon::ContainsPoint
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::Contains(const OGRGeometry *poOtherGeom)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:876,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:877,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:877,1
    - Dst: OGRCurvePolygon::IntersectsPoint
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:879,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:879,1
    - Dst: OGRGeometry::Intersects
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 883
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 883
    functionName: OGRCurvePolygon::Intersects
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::Intersects
    - OGRCurvePolygon::IsEmpty
    - OGRCurvePolygon::IntersectsPoint
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurvePolygon::Intersects(const OGRGeometry *poOtherGeom)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:909,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:916,1
    - Dst: OGRPolygon*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:917,1
    - Dst: OGRCurvePolygon*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:917,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:918,1
    - Dst: OGRCurvePolygon*::getSpatialReference
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - poCP
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 925
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 925
    functionName: OGRCurvePolygon::CastToPolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon*::setCoordinateDimension
    - OGRCurvePolygon*::getSpatialReference
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::assignSpatialReference
    - OGRCurvePolygon*::getCoordinateDimension
    - OGRCurve::CastToLinearRing
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRCurvePolygon::CastToPolygon(OGRCurvePolygon *poCP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::toCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:934,1
    - Dst: OGRCurvePolygon::CastToPolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: OGRCurvePolygon::CasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon::CastToPolygon
    - OGRSurface*::toCurvePolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRCurvePolygon::CasterToPolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: OGRCurvePolygon::GetCasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToPolygon
    signature: OGRSurfaceCasterToPolygon OGRCurvePolygon::GetCasterToPolygon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::toCurvePolygon
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: CasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRSurface*::toCurvePolygon
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *CasterToCurvePolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 955
    functionName: OGRCurvePolygon::GetCasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToCurvePolygon
    signature: OGRSurfaceCasterToCurvePolygon OGRCurvePolygon::GetCasterToCurvePolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::hasEmptyParts
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: OGRCurvePolygon::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - OGRCurvePolygon::hasEmptyParts
    linkageType: ''
    returnType: bool
    signature: bool OGRCurvePolygon::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:974,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:975,1
    - Dst: OGRCurvePolygon::empty
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:976,1
    - Dst: OGRCurvePolygon::removeEmptyParts
      Src: /src/gdal/ogr/ogrcurvepolygon.cpp:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 979
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 979
    functionName: OGRCurvePolygon::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcurvepolygon.cpp
    functionUses: 1
    functionsReached:
    - auto::IsEmpty
    - OGRCurvePolygon::empty
    - OGRCurvePolygon::getExteriorRingCurve
    - OGRCurvePolygon::removeEmptyParts
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: OGRPolyhedralSurface::OGRPolyhedralSurface
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::OGRPolyhedralSurface(const OGRPolyhedralSurface
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface::operator=
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPolyhedralSurface
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: '&

      OGRPolyhedralSurface::operator=(const OGRPolyhedralSurface &other)'
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRSurface::operator=
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: 'OGRPolyhedralSurface &

      OGRPolyhedralSurface::operator=(const OGRPolyhedralSurface &other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: OGRPolyhedralSurface::clone
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: OGRPolyhedralSurface *OGRPolyhedralSurface::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OGRPolyhedralSurface::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPolyhedralSurface::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: OGRPolyhedralSurface::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRPolyhedralSurface::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::WkbSize
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: OGRPolyhedralSurface::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRPolyhedralSurface::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: OGRPolyhedralSurface::getDimension
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRPolyhedralSurface::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: OGRPolyhedralSurface::empty
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::getEnvelope
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: OGRPolyhedralSurface::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::getEnvelope
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: OGRPolyhedralSurface::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 2
    functionsReached:
    - OGRPolyhedralSurface::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleOfCollectionFromWkb
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:166,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:173,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:174,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:188,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:192,1
    - Dst: OGRPolyhedralSurface::isCompatibleSubType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:196,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:199,1
    - Dst: OGRPolyhedralSurface::getGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:202,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:208,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:221,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:223,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:226,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:227,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 238
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 238
    functionName: OGRPolyhedralSurface::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - VSI_CALLOC_VERBOSE
    - OGRPolyhedralSurface::isCompatibleSubType
    - OGRGeometryFactory::createFromWkb
    - CPLDebug
    - CPLAssert
    - importPreambleOfCollectionFromWkb
    - OGRReadWKBGeometryType
    - IsMeasured
    - Is3D
    - OGRPolyhedralSurface::getGeometryType
    - reinterpret_cast<OGRGeometry **>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPolyhedralSurface::importFromWkb(const unsigned char *pabyData,\n
      \                                          size_t nSize,\n                                           OGRwkbVariant
      eWkbVariant,\n                                           size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:258,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:259,1
    - Dst: getIsoGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:265,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:267,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:269,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:272,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:275,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:278,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:281,1
    - Dst: OGRPolyhedralSurface::exportToWkb
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:288,1
    - Dst: OGRPolyhedralSurface::WkbSize
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 293
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 293
    functionName: OGRPolyhedralSurface::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::exportToWkb
    - OGRPolyhedralSurface::WkbSize
    - static_cast<unsigned char>
    - getIsoGeometryType
    - OGR_SWAP
    - CPL_SWAP32
    - DB2_V72_UNFIX_BYTE_ORDER
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPolyhedralSurface::exportToWkb(unsigned char *pabyData,\n
      \                                 const OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:304,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:319,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:348,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:351,1
    - Dst: OGRPolyhedralSurface::getSubGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:351,1
    - Dst: OGRPolygon*::importFromWKTListOnly
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:360,1
    - Dst: _addGeometryDirectlyWithExpectedSubGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:367,1
    - Dst: OGRPolyhedralSurface::getSubGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:368,1
    - Dst: OGRWktReadToken
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:376,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:380,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:381,1
    - Dst: OGRPolyhedralSurface::set3D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:390,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:390,1
    - Dst: OGRPolyhedralSurface::setMeasured
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:391,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:391,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 395
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 395
    functionName: OGRPolyhedralSurface::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OGRGeometryFactory::createGeometry
    - OGRPolyhedralSurface::setMeasured
    - importPreambleFromWkt
    - EQUAL
    - IsMeasured
    - OGRPolyhedralSurface::getSubGeometryType
    - _addGeometryDirectlyWithExpectedSubGeometryType
    - CPLError
    - OGRPolyhedralSurface::set3D
    - OGRPolygon*::importFromWKTListOnly
    - Is3D
    - OGRWktReadToken
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::exportToWktInternal
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: OGRPolyhedralSurface::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRPolyhedralSurface::exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRPolyhedralSurface::exportToWkt(const OGRWktOptions
      &opts,\n                                              OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:416,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:424,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:429,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:432,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:457,1
    - Dst: what
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:457,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:460,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 462
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 462
    functionName: OGRPolyhedralSurface::exportToWktInternal
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - std::string::find
    - wktTypeString
    - OGRGeometry*::exportToWkt
    - std::string
    - CPLError
    - std::string::substr
    - what
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRPolyhedralSurface::exportToWktInternal(const OGRWktOptions
      &opts,\n                                                      OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::flattenTo2D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: OGRPolyhedralSurface::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::flattenTo2D
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::transform
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: OGRPolyhedralSurface::transform
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::transform
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::transform(OGRCoordinateTransformation
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:494,1
    - Dst: OGRSurface*::getGeometryName
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: CasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRSurface*::getGeometryName
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *CasterToPolygon(OGRSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: OGRPolyhedralSurface::GetCasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToPolygon
    signature: OGRSurfaceCasterToPolygon OGRPolyhedralSurface::GetCasterToPolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:514,1
    - Dst: OGRSurface*::getGeometryName
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: CasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRSurface*::getGeometryName
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *CasterToCurvePolygon(OGRSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: OGRPolyhedralSurface::GetCasterToCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToCurvePolygon
    signature: OGRSurfaceCasterToCurvePolygon OGRPolyhedralSurface::GetCasterToCurvePolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eSubType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: OGRPolyhedralSurface::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolyhedralSurface::isCompatibleSubType(OGRwkbGeometryType
      eSubType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: OGRPolyhedralSurface::getSubGeometryName
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPolyhedralSurface::getSubGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: OGRPolyhedralSurface::getSubGeometryType
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRPolyhedralSurface::getSubGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:575,1
    - Dst: OGRPolyhedralSurface::getGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:575,1
    - Dst: OGRPolyhedralSurface::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:578,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:578,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:581,1
    - Dst: OGRPolyhedralSurface::getNumGeometries
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:582,1
    - Dst: auto::oMP::getNumGeometries
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:582,1
    - Dst: OGRPolyhedralSurface::getGeometryRef
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:587,1
    - Dst: auto::oMP::getGeometryRef
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 593
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 593
    functionName: OGRPolyhedralSurface::Equals
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRPolyhedralSurface::getGeometryRef
    - auto::oMP::getGeometryRef
    - OGRGeometry*::getGeometryType
    - auto::oMP::getNumGeometries
    - OGRPolyhedralSurface::getGeometryType
    - OGRPolyhedralSurface::getNumGeometries
    - OGRPolyhedralSurface::IsEmpty
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolyhedralSurface::Equals(const OGRGeometry *poOther)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:614,1
    - Dst: sfcgal_init
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:619,1
    - Dst: OGRGeometry::OGRexportToSFCGAL
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:620,1
    - Dst: sfcgal_geometry_delete
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 631
    functionName: OGRPolyhedralSurface::get_Area
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRGeometry::OGRexportToSFCGAL
    - sfcgal_init
    - sfcgal_geometry_delete
    linkageType: ''
    returnType: double
    signature: double OGRPolyhedralSurface::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:639,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: OGRPolyhedralSurface::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPolyhedralSurface::IsEmpty
    linkageType: ''
    returnType: double
    signature: double OGRPolyhedralSurface::get_GeodesicArea(const OGRSpatialReference
      *) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: OGRPolyhedralSurface::get_Length
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPolyhedralSurface::IsEmpty
    linkageType: ''
    returnType: double
    signature: double OGRPolyhedralSurface::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:668,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 674
    functionName: OGRPolyhedralSurface::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPolyhedralSurface::IsEmpty
    linkageType: ''
    returnType: double
    signature: double OGRPolyhedralSurface::get_GeodesicLength(const OGRSpatialReference
      *) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointOnSurfaceInternal
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoint
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: OGRPolyhedralSurface::PointOnSurface
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - PointOnSurfaceInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::PointOnSurface(OGRPoint *poPoint) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: OGRPolyhedralSurface::GetCasterToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPolyhedralSurfaceCastToMultiPolygon
    signature: OGRPolyhedralSurfaceCastToMultiPolygon OGRPolyhedralSurface::GetCasterToMultiPolygon()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:702,1
    - Dst: OGRMultiPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:703,1
    - Dst: OGRPolyhedralSurface*::getSpatialReference
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poPS
    argTypes:
    - OGRPolyhedralSurface*
    constantsTouched: []
    func_position:
      end: 706
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 706
    functionName: OGRPolyhedralSurface::CastToMultiPolygonImpl
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::assignSpatialReference
    - OGRPolyhedralSurface*::getSpatialReference
    - OGRMultiPolygon::OGRMultiPolygon
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: 'OGRMultiPolygon *

      OGRPolyhedralSurface::CastToMultiPolygonImpl(OGRPolyhedralSurface *poPS)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface*::GetCasterToMultiPolygon
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:728,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPS
    argTypes:
    - OGRPolyhedralSurface*
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: OGRPolyhedralSurface::CastToMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - pfn
    - OGRPolyhedralSurface*::GetCasterToMultiPolygon
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: 'OGRMultiPolygon *

      OGRPolyhedralSurface::CastToMultiPolygon(OGRPolyhedralSurface *poPS)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::isCompatibleSubType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:746,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:746,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:749,1
    - Dst: OGRPolyhedralSurface::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poNewGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 761
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 761
    functionName: OGRPolyhedralSurface::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::addGeometryDirectly
    - OGRPolyhedralSurface::isCompatibleSubType
    - OGRGeometry*::clone
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::addGeometry(const OGRGeometry *poNewGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::isCompatibleSubType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:786,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:786,1
    - Dst: HomogenizeDimensionalityWith
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:791,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:794,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poNewGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 804
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 804
    functionName: OGRPolyhedralSurface::addGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - VSI_REALLOC_VERBOSE
    - OGRPolyhedralSurface::isCompatibleSubType
    - HomogenizeDimensionalityWith
    - static_cast<OGRGeometry **>
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::addGeometryDirectly(OGRGeometry *poNewGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRGeometry>::release
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:823,1
    - Dst: OGRPolyhedralSurface::addGeometryDirectly
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - geom
    argTypes:
    - std::unique_ptr<OGRGeometry>
    constantsTouched: []
    func_position:
      end: 828
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 828
    functionName: OGRPolyhedralSurface::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRGeometry>::release
    - OGRPolyhedralSurface::addGeometryDirectly
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::addGeometry(std::unique_ptr<OGRGeometry>
      geom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: OGRPolyhedralSurface::getNumGeometries
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRPolyhedralSurface::getNumGeometries() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: OGRPolyhedralSurface::getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - toPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRPolyhedralSurface::getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: OGRPolyhedralSurface::getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - toPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRPolyhedralSurface::getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::IsEmpty
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 902
    functionName: OGRPolyhedralSurface::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 5
    functionsReached:
    - OGRPolyhedralSurface::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolyhedralSurface::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::set3D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:914,1
    - Dst: OGRGeometry::set3D
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: OGRPolyhedralSurface::set3D
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometry::set3D
    - OGRPolyhedralSurface::set3D
    linkageType: ''
    returnType: bool
    signature: bool OGRPolyhedralSurface::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::setMeasured
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:927,1
    - Dst: OGRGeometry::setMeasured
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: OGRPolyhedralSurface::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 2
    functionsReached:
    - OGRPolyhedralSurface::setMeasured
    - OGRGeometry::setMeasured
    linkageType: ''
    returnType: bool
    signature: bool OGRPolyhedralSurface::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::setCoordinateDimension
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:948,1
    - Dst: OGRGeometry::setCoordinateDimension
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 950
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 950
    functionName: OGRPolyhedralSurface::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::setCoordinateDimension
    - OGRGeometry::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: bool OGRPolyhedralSurface::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::swapXY
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: OGRPolyhedralSurface::swapXY
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::swapXY
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: OGRPolyhedralSurface::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPolyhedralSurface::hasCurveGeometry(int) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::removeGeometry
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iGeom
    - bDelete
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 998
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 998
    functionName: OGRPolyhedralSurface::removeGeometry
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::removeGeometry
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPolyhedralSurface::removeGeometry(int iGeom, int bDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::hasEmptyParts
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1007
    functionName: OGRPolyhedralSurface::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::hasEmptyParts
    linkageType: ''
    returnType: bool
    signature: bool OGRPolyhedralSurface::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::removeEmptyParts
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: OGRPolyhedralSurface::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRPolyhedralSurface::removeEmptyParts
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::assignSpatialReference
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:1025,1
    - Dst: OGRPolyhedralSurface::assignSpatialReference
      Src: /src/gdal/ogr/ogrpolyhedralsurface.cpp:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1027
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1027
    functionName: OGRPolyhedralSurface::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrpolyhedralsurface.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry::assignSpatialReference
    - OGRPolyhedralSurface::assignSpatialReference
    linkageType: ''
    returnType: void
    signature: "void OGRPolyhedralSurface::assignSpatialReference(\n    const OGRSpatialReference
      *poSR)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:96,1
    - Dst: reinterpret_cast<OGRFieldDefnH>
      Src: /src/gdal/ogr/ogr_feature.h:244,1
    - Dst: reinterpret_cast<OGRFieldDefn *>
      Src: /src/gdal/ogr/ogr_feature.h:252,1
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_feature.h:264,1
    - Dst: explicit::Unseal
      Src: /src/gdal/ogr/ogr_feature.h:269,1
    - Dst: explicit::Seal
      Src: /src/gdal/ogr/ogr_feature.h:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 284
    functionName: OGRFieldDefn
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<OGRFieldDefnH>
    - CPL_DISALLOW_COPY_ASSIGN
    - OGRFieldDefn
    - explicit::Seal
    - reinterpret_cast<OGRFieldDefn *>
    - explicit::Unseal
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRFieldDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogr_feature.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: whileUnsealing
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetTemporaryUnsealer
    linkageType: ''
    returnType: OGRFieldDefn::TemporaryUnsealer
    signature: OGRFieldDefn::TemporaryUnsealer whileUnsealing(OGRFieldDefn *object)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:352,1
    - Dst: reinterpret_cast<OGRGeomFieldDefnH>
      Src: /src/gdal/ogr/ogr_feature.h:410,1
    - Dst: reinterpret_cast<OGRGeomFieldDefn *>
      Src: /src/gdal/ogr/ogr_feature.h:418,1
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_feature.h:430,1
    - Dst: explicit::Unseal
      Src: /src/gdal/ogr/ogr_feature.h:435,1
    - Dst: explicit::Seal
      Src: /src/gdal/ogr/ogr_feature.h:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 450
    functionName: OGRGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<OGRGeomFieldDefnH>
    - reinterpret_cast<OGRGeomFieldDefn *>
    - CPL_DISALLOW_COPY_ASSIGN
    - OGRGeomFieldDefn
    - explicit::Seal
    - explicit::Unseal
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeomFieldDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogr_feature.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: whileUnsealing
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::GetTemporaryUnsealer
    linkageType: ''
    returnType: OGRGeomFieldDefn::TemporaryUnsealer
    signature: OGRGeomFieldDefn::TemporaryUnsealer whileUnsealing(OGRGeomFieldDefn
      *object)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:568,1
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_feature.h:585,1
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_feature.h:590,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:590,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogr_feature.h:595,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:595,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:600,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_feature.h:600,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:605,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_feature.h:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 607
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 607
    functionName: Fields
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - static_cast<int>
    - ConstIterator
    - static_cast<std::size_t>
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL Fields
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fields
      Src: /src/gdal/ogr/ogr_feature.h:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: GetFields
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - Fields
    linkageType: ''
    returnType: Fields
    signature: Fields GetFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_feature.h:631,1
    - Dst: size
      Src: /src/gdal/ogr/ogr_feature.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: GetFieldCountUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetFieldCountUnsafe() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogr_feature.h:637,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:638,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogr_feature.h:639,1
    - Dst: get
      Src: /src/gdal/ogr/ogr_feature.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: GetFieldDefnUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 4
    functionsReached:
    - static_cast<std::size_t>
    - get
    - empty
    - GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefnUnsafe(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogr_feature.h:644,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:645,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogr_feature.h:646,1
    - Dst: get
      Src: /src/gdal/ogr/ogr_feature.h:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: GetFieldDefnUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 4
    functionsReached:
    - static_cast<std::size_t>
    - get
    - empty
    - GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefnUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:712,1
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_feature.h:729,1
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_feature.h:734,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:734,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogr_feature.h:739,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:739,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:744,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_feature.h:744,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:749,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogr_feature.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 751
    functionName: GeomFields
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetGeomFieldCount
    - static_cast<int>
    - OGRFeatureDefn*::GetGeomFieldDefn
    - ConstIterator
    - static_cast<std::size_t>
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL GeomFields
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeomFields
      Src: /src/gdal/ogr/ogr_feature.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: GetGeomFields
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - GeomFields
    linkageType: ''
    returnType: GeomFields
    signature: GeomFields GetGeomFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtomicInc
      Src: /src/gdal/ogr/ogr_feature.h:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: Reference
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 69
    functionsReached:
    - CPLAtomicInc
    linkageType: ''
    returnType: int
    signature: int Reference()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtomicDec
      Src: /src/gdal/ogr/ogr_feature.h:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: Dereference
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - CPLAtomicDec
    linkageType: ''
    returnType: int
    signature: int Dereference()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: GetReferenceCount
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetReferenceCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: IsStyleIgnored
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsStyleIgnored() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIgnore
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: SetStyleIgnored
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetStyleIgnored(bool bIgnore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRFeatureDefnH>
      Src: /src/gdal/ogr/ogr_feature.h:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeatureDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: ToHandle
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 67
    functionsReached:
    - reinterpret_cast<OGRFeatureDefnH>
    linkageType: ''
    returnType: OGRFeatureDefnH
    signature: OGRFeatureDefnH ToHandle(OGRFeatureDefn *poFeatureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRFeatureDefn *>
      Src: /src/gdal/ogr/ogr_feature.h:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFeatureDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: FromHandle
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 195
    functionsReached:
    - reinterpret_cast<OGRFeatureDefn *>
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *FromHandle(OGRFeatureDefnH hFeatureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_feature.h:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 861
    functionName: TemporaryUnsealer
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 3
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL TemporaryUnsealer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogr_feature.h:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: whileUnsealing
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetTemporaryUnsealer
    linkageType: ''
    returnType: OGRFeatureDefn::TemporaryUnsealer
    signature: "OGRFeatureDefn::TemporaryUnsealer whileUnsealing(OGRFeatureDefn *object,\n
      \                                                       bool bSealFields = true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldValue
      Src: /src/gdal/ogr/ogr_feature.h:946,1
    - Dst: clear
      Src: /src/gdal/ogr/ogr_feature.h:981,1
    - Dst: GetDefn
      Src: /src/gdal/ogr/ogr_feature.h:996,1
    - Dst: GetDefn
      Src: /src/gdal/ogr/ogr_feature.h:1002,1
    - Dst: GetDefn
      Src: /src/gdal/ogr/ogr_feature.h:1008,1
    - Dst: IsUnset
      Src: /src/gdal/ogr/ogr_feature.h:1015,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogr_feature.h:1035,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogr_feature.h:1044,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogr_feature.h:1053,1
    - Dst: GetRawValue
      Src: /src/gdal/ogr/ogr_feature.h:1062,1
    - Dst: GetAsInteger
      Src: /src/gdal/ogr/ogr_feature.h:1072,1
    - Dst: GetAsInteger64
      Src: /src/gdal/ogr/ogr_feature.h:1079,1
    - Dst: GetAsDouble
      Src: /src/gdal/ogr/ogr_feature.h:1085,1
    - Dst: GetAsString
      Src: /src/gdal/ogr/ogr_feature.h:1091,1
    - Dst: GetAsIntegerList
      Src: /src/gdal/ogr/ogr_feature.h:1097,1
    - Dst: GetAsInteger64List
      Src: /src/gdal/ogr/ogr_feature.h:1104,1
    - Dst: GetAsDoubleList
      Src: /src/gdal/ogr/ogr_feature.h:1110,1
    - Dst: GetAsStringList
      Src: /src/gdal/ogr/ogr_feature.h:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 1140
    functionName: FieldValue
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - GetAsStringList
    - GetAsString
    - GetAsInteger64List
    - GetAsInteger64
    - GetAsDoubleList
    - GetRawValue
    - FieldValue
    - GetAsIntegerList
    - GetAsDouble
    - GetDefn
    - IsUnset
    - GetAsInteger
    - clear
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL FieldValue
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConstFieldIterator
      Src: /src/gdal/ogr/ogr_feature.h:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1161
    functionName: ConstFieldIterator
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - ConstFieldIterator
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL ConstFieldIterator
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1208
    functionName: GetDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetDefnRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: GetDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetDefnRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1229
    functionName: GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 33
    functionsReached:
    - GetGeomFieldCount
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1234
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1234
    functionName: GetGeomFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *GetGeomFieldDefnRef(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1239
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1239
    functionName: GetGeomFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *GetGeomFieldDefnRef(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1244
    functionName: GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - GetGeomFieldIndex
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldIndex(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogr_feature.h:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1263
    functionName: GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 16
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: int
    signature: int GetFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1268
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1268
    functionName: GetFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 4
    functionsReached:
    - GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefnRef(int iField) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogr_feature.h:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1273
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1273
    functionName: GetFieldDefnRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 4
    functionsReached:
    - GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefnRef(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1278
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1278
    functionName: GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 6
    functionsReached:
    - GetFieldIndex
    linkageType: ''
    returnType: int
    signature: int GetFieldIndex(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1293
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1293
    functionName: GetRawFieldRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRField
    signature: OGRField *GetRawFieldRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1298
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1298
    functionName: GetRawFieldRef
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRField
    signature: OGRField *GetRawFieldRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1325
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1325
    functionName: IsFieldSetUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFieldSetUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1332
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1332
    functionName: IsFieldNullUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFieldNullUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFieldSetUnsafe
      Src: /src/gdal/ogr/ogr_feature.h:1336,1
    - Dst: IsFieldNullUnsafe
      Src: /src/gdal/ogr/ogr_feature.h:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1337
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1337
    functionName: IsFieldSetAndNotNullUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 23
    functionsReached:
    - IsFieldSetUnsafe
    - IsFieldNullUnsafe
    linkageType: ''
    returnType: bool
    signature: bool IsFieldSetAndNotNullUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: GetFieldAsIntegerUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFieldAsIntegerUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1349
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1349
    functionName: GetFieldAsInteger64Unsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFieldAsInteger64Unsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1354
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1354
    functionName: GetFieldAsDoubleUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetFieldAsDoubleUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1359
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1359
    functionName: GetFieldAsStringUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFieldAsStringUnsafe(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogr_feature.h:1365,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1366
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1366
    functionName: GetFieldAsInteger
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 4
    functionsReached:
    - GetFieldIndex
    - GetFieldAsInteger
    linkageType: ''
    returnType: int
    signature: int GetFieldAsInteger(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsInteger64
      Src: /src/gdal/ogr/ogr_feature.h:1370,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1371
    functionName: GetFieldAsInteger64
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 6
    functionsReached:
    - GetFieldIndex
    - GetFieldAsInteger64
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFieldAsInteger64(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsDouble
      Src: /src/gdal/ogr/ogr_feature.h:1375,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1376
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1376
    functionName: GetFieldAsDouble
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - GetFieldAsDouble
    - GetFieldIndex
    linkageType: ''
    returnType: double
    signature: double GetFieldAsDouble(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogr_feature.h:1380,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1381
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1381
    functionName: GetFieldAsString
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 12
    functionsReached:
    - GetFieldIndex
    - GetFieldAsString
    linkageType: ''
    returnType: char
    signature: char *GetFieldAsString(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsISO8601DateTime
      Src: /src/gdal/ogr/ogr_feature.h:1386,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1387
      start: 1383
    functionDepth: 2
    functionLinenumber: 1383
    functionLinenumberEnd: 1387
    functionName: GetFieldAsISO8601DateTime
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - GetFieldIndex
    - GetFieldAsISO8601DateTime
    linkageType: ''
    returnType: char
    signature: "char *GetFieldAsISO8601DateTime(const char *pszFName,\n                                          CSLConstList
      papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsIntegerList
      Src: /src/gdal/ogr/ogr_feature.h:1391,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - pnCount
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1389
    functionDepth: 2
    functionLinenumber: 1389
    functionLinenumberEnd: 1392
    functionName: GetFieldAsIntegerList
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - GetFieldIndex
    - GetFieldAsIntegerList
    linkageType: ''
    returnType: int
    signature: int *GetFieldAsIntegerList(const char *pszFName, int *pnCount) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogr_feature.h:1397,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - pnCount
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1398
      start: 1394
    functionDepth: 2
    functionLinenumber: 1394
    functionLinenumberEnd: 1398
    functionName: GetFieldAsInteger64List
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 5
    functionsReached:
    - GetFieldIndex
    - GetFieldAsInteger64List
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *GetFieldAsInteger64List(const char *pszFName,\n                                           int
      *pnCount) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsDoubleList
      Src: /src/gdal/ogr/ogr_feature.h:1402,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - pnCount
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1403
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1403
    functionName: GetFieldAsDoubleList
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - GetFieldIndex
    - GetFieldAsDoubleList
    linkageType: ''
    returnType: double
    signature: double *GetFieldAsDoubleList(const char *pszFName, int *pnCount) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsStringList
      Src: /src/gdal/ogr/ogr_feature.h:1407,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1408
    functionName: GetFieldAsStringList
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - GetFieldIndex
    - GetFieldAsStringList
    linkageType: ''
    returnType: char
    signature: char **GetFieldAsStringList(const char *pszFName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - nValue
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1431
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1431
    functionName: SetFieldSameTypeUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldSameTypeUnsafe(int i, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - nValue
    argTypes:
    - int
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1436
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1436
    functionName: SetFieldSameTypeUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldSameTypeUnsafe(int i, GIntBig nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: SetFieldSameTypeUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldSameTypeUnsafe(int i, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - pszValueTransferred
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1446
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1446
    functionName: SetFieldSameTypeUnsafe
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFieldSameTypeUnsafe(int i, char *pszValueTransferred)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1452,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - nValue
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1453
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1453
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 31
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1457,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - nValue
    argTypes:
    - char*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1458
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1458
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 32
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, GIntBig nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1462,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - dfValue
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 1463
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1463
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 33
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1467,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1468
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1468
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 34
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1472,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszFName
    - nCount
    - panValues
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1473
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 35
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, int nCount, const int *panValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1477,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszFName
    - nCount
    - panValues
    argTypes:
    - char*
    - int
    - GIntBig*
    constantsTouched: []
    func_position:
      end: 1478
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1478
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 36
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, int nCount, const GIntBig *panValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1482,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszFName
    - nCount
    - padfValues
    argTypes:
    - char*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1483
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 37
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, int nCount, const double *padfValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1487,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - papszValues
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1488
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1488
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 38
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, const char *const *papszValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1492,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFName
    - puValue
    argTypes:
    - char*
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1493
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1493
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 39
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: void SetField(const char *pszFName, const OGRField *puValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogr_feature.h:1499,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogr_feature.h:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszFName
    - nYear
    - nMonth
    - nDay
    argTypes:
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1501
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1501
    functionName: SetField
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 40
    functionsReached:
    - GetFieldIndex
    - SetField
    linkageType: ''
    returnType: void
    signature: "void SetField(const char *pszFName, int nYear, int nMonth, int nDay,\n
      \                 int nHour = 0, int nMinute = 0, float fSecond = 0.f,\n                  int
      nTZFlag = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1506
    functionName: GetFID
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1543
    functionName: GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *GetStyleTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1551
    functionName: GetNativeData
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetNativeData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1556
    functionName: GetNativeMediaType
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetNativeMediaType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRFeatureH>
      Src: /src/gdal/ogr/ogr_feature.h:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1570
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1570
    functionName: ToHandle
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 67
    functionsReached:
    - reinterpret_cast<OGRFeatureH>
    linkageType: ''
    returnType: OGRFeatureH
    signature: OGRFeatureH ToHandle(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogr_feature.h:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFeature
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1578
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1578
    functionName: FromHandle
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 195
    functionsReached:
    - reinterpret_cast<OGRFeature *>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FromHandle(OGRFeatureH hFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1588
    functionName: OGRFeatureUniquePtrDeleter
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRFeatureUniquePtrDeleter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::begin
      Src: /src/gdal/ogr/ogr_feature.h:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1603
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1603
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 10
    functionsReached:
    - OGRFeature*::begin
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator begin(const OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::end
      Src: /src/gdal/ogr/ogr_feature.h:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 26
    functionsReached:
    - OGRFeature*::end
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator end(const OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureUniquePtr::begin
      Src: /src/gdal/ogr/ogr_feature.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeatureUniquePtr
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 11
    functionsReached:
    - OGRFeatureUniquePtr::begin
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator begin(const OGRFeatureUniquePtr &poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureUniquePtr::end
      Src: /src/gdal/ogr/ogr_feature.h:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeatureUniquePtr
    constantsTouched: []
    func_position:
      end: 1622
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1622
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 27
    functionsReached:
    - OGRFeatureUniquePtr::end
    linkageType: ''
    returnType: OGRFeature::ConstFieldIterator
    signature: OGRFeature::ConstFieldIterator end(const OGRFeatureUniquePtr &poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDomain
      Src: /src/gdal/ogr/ogr_feature.h:1674,1
    - Dst: reinterpret_cast<OGRFieldDomainH>
      Src: /src/gdal/ogr/ogr_feature.h:1731,1
    - Dst: reinterpret_cast<OGRFieldDomain *>
      Src: /src/gdal/ogr/ogr_feature.h:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1775
    functionName: OGRFieldDomain
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<OGRFieldDomainH>
    - reinterpret_cast<OGRFieldDomain *>
    - OGRFieldDomain
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRFieldDomain
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCodedFieldDomain
      Src: /src/gdal/ogr/ogr_feature.h:1807,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogr_feature.h:1823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1783
    functionDepth: 1
    functionLinenumber: 1783
    functionLinenumberEnd: 1825
    functionName: OGRCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - OGRCodedFieldDomain
    - std::vector::data
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRCodedFieldDomain
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRRangeFieldDomain
      Src: /src/gdal/ogr/ogr_feature.h:1868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1913
    functionName: OGRRangeFieldDomain
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - OGRRangeFieldDomain
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRRangeFieldDomain
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGlobFieldDomain
      Src: /src/gdal/ogr/ogr_feature.h:1938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1953
    functionName: OGRGlobFieldDomain
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 2
    functionsReached:
    - OGRGlobFieldDomain
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGlobFieldDomain
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_feature.h:1982,1
    - Dst: OGRFeatureQuery
      Src: /src/gdal/ogr/ogr_feature.h:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 2004
    functionName: OGRFeatureQuery
    functionSourceFile: /src/gdal/ogr/ogr_feature.h
    functionUses: 1
    functionsReached:
    - OGRFeatureQuery
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRFeatureQuery
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftime
      Src: /src/gdal/ogr/ogrct.cpp:61,1
    - Dst: static_cast<time_t>
      Src: /src/gdal/ogr/ogrct.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct CPLTimeVal*
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: CPLGettimeofday
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - static_cast<time_t>
    - _ftime
    linkageType: ''
    returnType: void
    signature: void CPLGettimeofday(struct CPLTimeVal *tp, void * /* timezonep*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(const Private &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(Private &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '&operator=(const Private &)'
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Private
    signature: Private &operator=(const Private &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '&operator=(Private &&)'
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Private
    signature: Private &operator=(Private &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RefreshCheckWithInvertProj
      Src: /src/gdal/ogr/ogrct.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: OGRCoordinateTransformationOptions::Private::Private()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - RefreshCheckWithInvertProj
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformationOptions::Private::Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:135,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:135,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:136,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:137,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:138,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:139,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:141,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:142,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:143,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:144,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:145,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:145,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:146,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:146,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:147,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:148,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:149,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:150,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: OGRCoordinateTransformationOptions::Private::GetKey() const
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string OGRCoordinateTransformationOptions::Private::GetKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:161,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: OGRCoordinateTransformationOptions::Private::RefreshCheckWithInvertProj()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformationOptions::Private::RefreshCheckWithInvertProj()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetExtension
      Src: /src/gdal/ogr/ogrct.cpp:174,1
    - Dst: OGRSpatialReference*::exportToProj4
      Src: /src/gdal/ogr/ogrct.cpp:176,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:177,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrct.cpp:179,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:180,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrct.cpp:181,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrct.cpp:181,1
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/ogr/ogrct.cpp:184,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrct.cpp:186,1
    - Dst: OGRSpatialReference*::exportToPROJJSON
      Src: /src/gdal/ogr/ogrct.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 199
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 199
    functionName: GetAsAProjRecognizableString
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::GetExtension
    - CPLStrdup
    - OGRSpatialReference*::exportToProj4
    - OGRSpatialReference*::IsEmpty
    - strstr
    - std::string
    - CPLFree
    - auto::c_str
    - OGRSpatialReference*::exportToPROJJSON
    linkageType: ''
    returnType: char
    signature: char *GetAsAProjRecognizableString(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:211,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:212,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:213,1
    - Dst: AddGuessedTOWGS84
      Src: /src/gdal/ogr/ogrct.cpp:226,1
    - Dst: GetTOWGS84
      Src: /src/gdal/ogr/ogrct.cpp:228,1
    - Dst: GetTOWGS84
      Src: /src/gdal/ogr/ogrct.cpp:229,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrct.cpp:230,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:246,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:247,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrct.cpp:252,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrct.cpp:253,1
    - Dst: OGRSpatialReference::SetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:254,1
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:255,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrct.cpp:258,1
    - Dst: CanUseAuthorityDef
      Src: /src/gdal/ogr/ogrct.cpp:260,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrct.cpp:262,1
    - Dst: GetAsAProjRecognizableString
      Src: /src/gdal/ogr/ogrct.cpp:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 271
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 271
    functionName: GetTextRepresentation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetDataAxisToSRSAxisMapping
    - OGRSpatialReference::SetFromUserInput
    - CPLTestBool
    - OGRSpatialReference::OGRSpatialReference
    - CPLStrdup
    - memcmp
    - EQUAL
    - GetTOWGS84
    - OGRSpatialReference::IsSame
    - AddGuessedTOWGS84
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    - CanUseAuthorityDef
    - CPLGetConfigOption
    - GetAsAProjRecognizableString
    linkageType: ''
    returnType: char
    signature: char *GetTextRepresentation(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrct.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrct.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: "void OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions(\n
      \   const OGRCoordinateTransformationOptions &other)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: "&\nOGRCoordinateTransformationOptions::operator=(\n    const OGRCoordinateTransformationOptions
      &other)"
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCoordinateTransformationOptions
    signature: "OGRCoordinateTransformationOptions &\nOGRCoordinateTransformationOptions::operator=(\n
      \   const OGRCoordinateTransformationOptions &other)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: OGRCoordinateTransformationOptions::~OGRCoordinateTransformationOptions()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformationOptions::~OGRCoordinateTransformationOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions
      Src: /src/gdal/ogr/ogrct.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: OCTNewCoordinateTransformationOptions
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions
    linkageType: ''
    returnType: OGRCoordinateTransformationOptionsH
    signature: OGRCoordinateTransformationOptionsH OCTNewCoordinateTransformationOptions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hOptions
    argTypes:
    - OGRCoordinateTransformationOptionsH
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: OCTDestroyCoordinateTransformationOptions
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OCTDestroyCoordinateTransformationOptions(\n    OGRCoordinateTransformationOptionsH
      hOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrct.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:383,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrct.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:388,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrct.cpp:391,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:393,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrct.cpp:396,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:398,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - dfWestLongitudeDeg
    - dfSouthLatitudeDeg
    - dfEastLongitudeDeg
    - dfNorthLatitudeDeg
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 413
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 413
    functionName: OGRCoordinateTransformationOptions::SetAreaOfInterest
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::fabs
    linkageType: ''
    returnType: bool
    signature: "bool OGRCoordinateTransformationOptions::SetAreaOfInterest(\n    double
      dfWestLongitudeDeg, double dfSouthLatitudeDeg,\n    double dfEastLongitudeDeg,
      double dfNorthLatitudeDeg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptionsH::SetAreaOfInterest
      Src: /src/gdal/ogr/ogrct.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hOptions
    - dfWestLongitudeDeg
    - dfSouthLatitudeDeg
    - dfEastLongitudeDeg
    - dfNorthLatitudeDeg
    argTypes:
    - OGRCoordinateTransformationOptionsH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: OCTCoordinateTransformationOptionsSetAreaOfInterest
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptionsH::SetAreaOfInterest
    linkageType: ''
    returnType: int
    signature: "int OCTCoordinateTransformationOptionsSetAreaOfInterest(\n    OGRCoordinateTransformationOptionsH
      hOptions, double dfWestLongitudeDeg,\n    double dfSouthLatitudeDeg, double
      dfEastLongitudeDeg,\n    double dfNorthLatitudeDeg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszCO
    - bReverseCO
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: OGRCoordinateTransformationOptions::SetCoordinateOperation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRCoordinateTransformationOptions::SetCoordinateOperation(\n
      \   const char *pszCO, bool bReverseCO)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfCenterLong
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: OGRCoordinateTransformationOptions::SetSourceCenterLong
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRCoordinateTransformationOptions::SetSourceCenterLong(\n    double
      dfCenterLong)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfCenterLong
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: OGRCoordinateTransformationOptions::SetTargetCenterLong
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRCoordinateTransformationOptions::SetTargetCenterLong(\n    double
      dfCenterLong)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptionsH::SetCoordinateOperation
      Src: /src/gdal/ogr/ogrct.cpp:507,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrct.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hOptions
    - pszCO
    - bReverseCO
    argTypes:
    - OGRCoordinateTransformationOptionsH
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: OCTCoordinateTransformationOptionsSetOperation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptionsH::SetCoordinateOperation
    - CPL_TO_BOOL
    linkageType: ''
    returnType: int
    signature: "int OCTCoordinateTransformationOptionsSetOperation(\n    OGRCoordinateTransformationOptionsH
      hOptions, const char *pszCO,\n    int bReverseCO)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfAccuracy
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: OGRCoordinateTransformationOptions::SetDesiredAccuracy
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRCoordinateTransformationOptions::SetDesiredAccuracy(double
      dfAccuracy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptionsH::SetDesiredAccuracy
      Src: /src/gdal/ogr/ogrct.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hOptions
    - dfAccuracy
    argTypes:
    - OGRCoordinateTransformationOptionsH
    - double
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: OCTCoordinateTransformationOptionsSetDesiredAccuracy
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptionsH::SetDesiredAccuracy
    linkageType: ''
    returnType: int
    signature: "int OCTCoordinateTransformationOptionsSetDesiredAccuracy(\n    OGRCoordinateTransformationOptionsH
      hOptions, double dfAccuracy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bAllowBallpark
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 577
    functionName: OGRCoordinateTransformationOptions::SetBallparkAllowed
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRCoordinateTransformationOptions::SetBallparkAllowed(bool bAllowBallpark)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptionsH::SetBallparkAllowed
      Src: /src/gdal/ogr/ogrct.cpp:593,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrct.cpp:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hOptions
    - bAllowBallpark
    argTypes:
    - OGRCoordinateTransformationOptionsH
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: OCTCoordinateTransformationOptionsSetBallparkAllowed
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptionsH::SetBallparkAllowed
    - CPL_TO_BOOL
    linkageType: ''
    returnType: int
    signature: "int OCTCoordinateTransformationOptionsSetBallparkAllowed(\n    OGRCoordinateTransformationOptionsH
      hOptions, int bAllowBallpark)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bOnlyBest
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: OGRCoordinateTransformationOptions::SetOnlyBest
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRCoordinateTransformationOptions::SetOnlyBest(bool bOnlyBest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptionsH::SetOnlyBest
      Src: /src/gdal/ogr/ogrct.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hOptions
    - bOnlyBest
    argTypes:
    - OGRCoordinateTransformationOptionsH
    - bool
    constantsTouched: []
    func_position:
      end: 648
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 648
    functionName: OCTCoordinateTransformationOptionsSetOnlyBest
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptionsH::SetOnlyBest
    linkageType: ''
    returnType: int
    signature: "int OCTCoordinateTransformationOptionsSetOnlyBest(\n    OGRCoordinateTransformationOptionsH
      hOptions, bool bOnlyBest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrct.cpp:672,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:672,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: OGRProjCT::PjPtr::reset
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    - proj_assign_context
    - proj_destroy
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 680
    functionName: OGRProjCT::PjPtr::PjPtr
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PjPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pjIn
    argTypes:
    - PJ*
    constantsTouched: []
    func_position:
      end: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: OGRProjCT::PjPtr::PjPtr
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PjPtr(PJ *pjIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrct.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: ~PjPtr()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ~PjPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrct.cpp:693,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - PjPtr
    constantsTouched: []
    func_position:
      end: 696
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 696
    functionName: OGRProjCT::PjPtr::PjPtr
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    - proj_clone
    linkageType: ''
    returnType: void
    signature: void PjPtr(const PjPtr &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - PjPtr
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: OGRProjCT::PjPtr::PjPtr
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PjPtr(PjPtr &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrct.cpp:707,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrct.cpp:709,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - PjPtr
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: '&operator=(const PjPtr &other)'
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    - proj_clone
    - reset
    linkageType: ''
    returnType: PjPtr
    signature: PjPtr &operator=(const PjPtr &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrct.cpp:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pjIn
    argTypes:
    - PJ*
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: '&operator=(PJ *pjIn)'
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: PjPtr
    signature: PjPtr &operator=(PJ *pjIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: operator PJ *()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator PJ *()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: operator const PJ *() const
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const PJ *() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - minxIn
    - minyIn
    - maxxIn
    - maxyIn
    - pjIn
    - osNameIn
    - osProjStringIn
    - accuracyIn
    argTypes:
    - double
    - double
    - double
    - double
    - PJ*
    - CPLString
    - CPLString
    - double
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: OGRProjCT::Transformation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Transformation(double minxIn, double minyIn, double maxxIn,\n
      \                      double maxyIn, PJ *pjIn, const CPLString &osNameIn,\n
      \                      const CPLString &osProjStringIn, double accuracyIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 812
    functionName: '&operator=(const OGRProjCT &)'
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRProjCT
    signature: OGRProjCT &operator=(const OGRProjCT &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: OGRProjCT::GetEmitErrors
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetEmitErrors() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bEmitErrors
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: OGRProjCT::SetEmitErrors
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetEmitErrors(bool bEmitErrors) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGRProjCT *>
      Src: /src/gdal/ogr/ogrct.cpp:876,1
    - Dst: auto::m_lastPjUsedPROJString::clear
      Src: /src/gdal/ogr/ogrct.cpp:881,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 889
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 889
    functionName: OGRProjCTDifferentOperationsStart
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<OGRProjCT *>
    - auto::m_lastPjUsedPROJString::clear
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRProjCTDifferentOperationsStart(OGRCoordinateTransformation
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGRProjCT *>
      Src: /src/gdal/ogr/ogrct.cpp:897,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 908
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 908
    functionName: OGRProjCTDifferentOperationsStop
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<OGRProjCT *>
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRProjCTDifferentOperationsStop(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGRProjCT *>
      Src: /src/gdal/ogr/ogrct.cpp:916,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: OGRProjCTDifferentOperationsUsed
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<OGRProjCT *>
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRProjCTDifferentOperationsUsed(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 936
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 936
    functionName: OGRCoordinateTransformation::~OGRCoordinateTransformation()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformation::~OGRCoordinateTransformation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation::DestroyCT
      Src: /src/gdal/ogr/ogrct.cpp:954,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hCT
    argTypes:
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: CPL_STDCALL::OCTDestroyCoordinateTransformation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformation::DestroyCT
    - FromHandle
    linkageType: ''
    returnType: void
    signature: 'void CPL_STDCALL

      OCTDestroyCoordinateTransformation(OGRCoordinateTransformationH hCT)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGRProjCT *>
      Src: /src/gdal/ogr/ogrct.cpp:981,1
    - Dst: OGRProjCT::InsertIntoCache
      Src: /src/gdal/ogr/ogrct.cpp:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 990
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 990
    functionName: OGRCoordinateTransformation::DestroyCT
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<OGRProjCT *>
    - OGRProjCT::InsertIntoCache
    linkageType: ''
    returnType: void
    signature: void OGRCoordinateTransformation::DestroyCT(OGRCoordinateTransformation
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrct.cpp:1022,1
    - Dst: OGRCoordinateTransformationOptions
      Src: /src/gdal/ogr/ogrct.cpp:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSource
    - poTarget
    argTypes:
    - OGRSpatialReference*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1024
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1024
    functionName: OGRCreateCoordinateTransformation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 4
    functionsReached:
    - OGRCreateCoordinateTransformation
    - OGRCoordinateTransformationOptions
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: "OGRCoordinateTransformation *\nOGRCreateCoordinateTransformation(const
      OGRSpatialReference *poSource,\n                                  const OGRSpatialReference
      *poTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProjCT::FindFromCache
      Src: /src/gdal/ogr/ogrct.cpp:1099,1
    - Dst: OGRProjCT::OGRProjCT
      Src: /src/gdal/ogr/ogrct.cpp:1103,1
    - Dst: OGRProjCT*::Initialize
      Src: /src/gdal/ogr/ogrct.cpp:1104,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:1111,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:1112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - poSource
    - poTarget
    - options
    argTypes:
    - OGRSpatialReference*
    - OGRSpatialReference*
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 1115
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1115
    functionName: OGRCreateCoordinateTransformation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 4
    functionsReached:
    - OGRProjCT::FindFromCache
    - CPLFree
    - OGRProjCT*::Initialize
    - OGRProjCT::OGRProjCT
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: "OGRCoordinateTransformation *OGRCreateCoordinateTransformation(\n
      \   const OGRSpatialReference *poSource, const OGRSpatialReference *poTarget,\n
      \   const OGRCoordinateTransformationOptions &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRCoordinateTransformationH>
      Src: /src/gdal/ogr/ogrct.cpp:1147,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrct.cpp:1148,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1149,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hSourceSRS
    - hTargetSRS
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1151
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1151
    functionName: CPL_STDCALL::OCTNewCoordinateTransformation
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCreateCoordinateTransformation
    - reinterpret_cast<OGRCoordinateTransformationH>
    - reinterpret_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: OGRCoordinateTransformationH
    signature: "OGRCoordinateTransformationH CPL_STDCALL OCTNewCoordinateTransformation(\n
      \   OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRCoordinateTransformationH>
      Src: /src/gdal/ogr/ogrct.cpp:1201,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrct.cpp:1202,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1203,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1204,1
    - Dst: OGRCoordinateTransformationOptions
      Src: /src/gdal/ogr/ogrct.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSourceSRS
    - hTargetSRS
    - hOptions
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    - OGRCoordinateTransformationOptionsH
    constantsTouched: []
    func_position:
      end: 1206
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1206
    functionName: OCTNewCoordinateTransformationEx
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRCreateCoordinateTransformation
    - reinterpret_cast<OGRCoordinateTransformationH>
    - reinterpret_cast<OGRSpatialReference *>
    - OGRCoordinateTransformationOptions
    linkageType: ''
    returnType: OGRCoordinateTransformationH
    signature: "OGRCoordinateTransformationH OCTNewCoordinateTransformationEx(OGRSpatialReferenceH
      hSourceSRS,\n                                 OGRSpatialReferenceH hTargetSRS,\n
      \                                OGRCoordinateTransformationOptionsH hOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:1226,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrct.cpp:1227,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTransform
    argTypes:
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 1229
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1229
    functionName: OCTClone
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRCoordinateTransformationH
    signature: OGRCoordinateTransformationH OCTClone(OGRCoordinateTransformationH
      hTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:1253,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrct.cpp:1254,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1254,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTransform
    argTypes:
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 1256
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1256
    functionName: OCTGetSourceCS
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - const_cast<OGRSpatialReference *>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH OCTGetSourceCS(OGRCoordinateTransformationH hTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:1280,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrct.cpp:1281,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrct.cpp:1281,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTransform
    argTypes:
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 1283
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1283
    functionName: OCTGetTargetCS
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - const_cast<OGRSpatialReference *>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH OCTGetTargetCS(OGRCoordinateTransformationH hTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:1305,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrct.cpp:1306,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hTransform
    argTypes:
    - OGRCoordinateTransformationH
    constantsTouched: []
    func_position:
      end: 1308
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1308
    functionName: OCTGetInverse
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRCoordinateTransformationH
    signature: OGRCoordinateTransformationH OCTGetInverse(OGRCoordinateTransformationH
      hTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1317
    functionName: OGRProjCT::OGRProjCT
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::OGRProjCT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProjCT::poSRSSource::Clone
      Src: /src/gdal/ogr/ogrct.cpp:1324,1
    - Dst: OGRProjCT::poSRSTarget::Clone
      Src: /src/gdal/ogr/ogrct.cpp:1332,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrct.cpp:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRProjCT
    constantsTouched: []
    func_position:
      end: 1350
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1350
    functionName: OGRProjCT::OGRProjCT
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached:
    - OGRProjCT::poSRSTarget::Clone
    - OGRProjCT::poSRSSource::Clone
    - std::string
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::OGRProjCT(const OGRProjCT &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrct.cpp:1361,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrct.cpp:1366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1368
    functionName: OGRProjCT::~OGRProjCT()
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::~OGRProjCT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:1380,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:1380,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:1387,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1389
    functionName: OGRProjCT::ComputeThreshold
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::ComputeThreshold()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d::osCoordOperation::empty
      Src: /src/gdal/ogr/ogrct.cpp:1398,1
    - Dst: IsProjected
      Src: /src/gdal/ogr/ogrct.cpp:1399,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrct.cpp:1399,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:1401,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:1404,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1415,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1415,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1421,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrct.cpp:1425,1
    - Dst: exportToProj4
      Src: /src/gdal/ogr/ogrct.cpp:1427,1
    - Dst: exportToProj4
      Src: /src/gdal/ogr/ogrct.cpp:1430,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrct.cpp:1431,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1436,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1437,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1439,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1440,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrct.cpp:1443,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1444,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1445,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrct.cpp:1447,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1448,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1450,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1451,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1454,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1455,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrct.cpp:1463,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1463,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrct.cpp:1467,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1467,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1471,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrct.cpp:1473,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1473,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrct.cpp:1475,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1478,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrct.cpp:1479,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrct.cpp:1479,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrct.cpp:1482,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrct.cpp:1484,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrct.cpp:1489,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:1496,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:1497,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1502,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1505
    functionName: OGRProjCT::DetectWebMercatorToWGS84
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - d::osCoordOperation::empty
    - IsProjected
    - CPLDebug
    - EQUAL
    - GetDataAxisToSRSAxisMapping
    - strcmp
    - CPLPopErrorHandler
    - strlen
    - CPLPushErrorHandler
    - exportToProj4
    - strstr
    - memcpy
    - CPLFree
    - memmove
    - IsGeographic
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::DetectWebMercatorToWGS84()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptions::d::osCoordOperation::empty
      Src: /src/gdal/ogr/ogrct.cpp:1522,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1524,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrct.cpp:1533,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrct.cpp:1538,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:1543,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:1544,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrct.cpp:1547,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrct.cpp:1549,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrct.cpp:1554,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrct.cpp:1554,1
    - Dst: IsDynamic
      Src: /src/gdal/ogr/ogrct.cpp:1555,1
    - Dst: GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrct.cpp:1556,1
    - Dst: HasPointMotionOperation
      Src: /src/gdal/ogr/ogrct.cpp:1559,1
    - Dst: GetAxis
      Src: /src/gdal/ogr/ogrct.cpp:1561,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrct.cpp:1565,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrct.cpp:1565,1
    - Dst: IsDynamic
      Src: /src/gdal/ogr/ogrct.cpp:1566,1
    - Dst: GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrct.cpp:1567,1
    - Dst: HasPointMotionOperation
      Src: /src/gdal/ogr/ogrct.cpp:1570,1
    - Dst: GetAxis
      Src: /src/gdal/ogr/ogrct.cpp:1572,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1581,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:1600,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:1606,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:1606,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1607,1
    - Dst: GetExtension
      Src: /src/gdal/ogr/ogrct.cpp:1614,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:1619,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1621,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1627,1
    - Dst: GetExtension
      Src: /src/gdal/ogr/ogrct.cpp:1633,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:1638,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1640,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1646,1
    - Dst: OGRProjCT::ComputeThreshold
      Src: /src/gdal/ogr/ogrct.cpp:1649,1
    - Dst: OGRProjCT::DetectWebMercatorToWGS84
      Src: /src/gdal/ogr/ogrct.cpp:1651,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:1661,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1664,1
    - Dst: if
      Src: /src/gdal/ogr/ogrct.cpp:1670,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:1680,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1682,1
    - Dst: OGRCoordinateTransformationOptions::d::osCoordOperation::empty
      Src: /src/gdal/ogr/ogrct.cpp:1688,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:1690,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1691,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1694,1
    - Dst: OGRCoordinateTransformationOptions::d::osCoordOperation::c_str
      Src: /src/gdal/ogr/ogrct.cpp:1696,1
    - Dst: proj_pj_info
      Src: /src/gdal/ogr/ogrct.cpp:1701,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1702,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrct.cpp:1710,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1711,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1714,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1716,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1718,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1720,1
    - Dst: proj_area_create
      Src: /src/gdal/ogr/ogrct.cpp:1729,1
    - Dst: proj_area_set_bbox
      Src: /src/gdal/ogr/ogrct.cpp:1730,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:1735,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1737,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1738,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1741,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1742,1
    - Dst: proj_area_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1744,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrct.cpp:1747,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrct.cpp:1749,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrct.cpp:1750,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrct.cpp:1752,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrct.cpp:1757,1
    - Dst: proj_coordinate_metadata_create
      Src: /src/gdal/ogr/ogrct.cpp:1767,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1769,1
    - Dst: proj_coordinate_metadata_create
      Src: /src/gdal/ogr/ogrct.cpp:1772,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1774,1
    - Dst: proj_create_crs_to_crs_from_pj
      Src: /src/gdal/ogr/ogrct.cpp:1779,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrct.cpp:1780,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1781,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1782,1
    - Dst: proj_create_crs_to_crs
      Src: /src/gdal/ogr/ogrct.cpp:1784,1
    - Dst: proj_area_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1787,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1790,1
    - Dst: OGRProjCT::ListCoordinateOperations
      Src: /src/gdal/ogr/ogrct.cpp:1796,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1798,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrct.cpp:1805,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1809,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:1810,1
    - Dst: OGRCoordinateTransformationOptions::d::osCoordOperation::empty
      Src: /src/gdal/ogr/ogrct.cpp:1814,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrct.cpp:1823,1
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrct.cpp:1823,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 161
    argCount: 5
    argNames:
    - poSourceIn
    - pszSrcSRS
    - poTargetIn
    - pszTargetSRS
    - options
    argTypes:
    - OGRSpatialReference*
    - char*
    - OGRSpatialReference*
    - char*
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 1827
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1827
    functionName: OGRProjCT::Initialize
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - IsDynamic
    - IsSame
    - GetAxis
    - CPLDebug
    - CPLError
    - HasPointMotionOperation
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - CPLStringList::CPLStringList
    - proj_pj_info
    - CPLStringList::List
    - OGRCoordinateTransformationOptions::d::osCoordOperation::empty
    - proj_create
    - OGRProjCT::DetectWebMercatorToWGS84
    - CPLGettimeofday
    - SetAxisMappingStrategy
    - IsGeographic
    - CPLAtof
    - CPLTestBool
    - static_cast<int>
    - proj_destroy
    - proj_create_crs_to_crs_from_pj
    - OGRCoordinateTransformationOptions::d::osCoordOperation::c_str
    - CPLSPrintf
    - proj_create_crs_to_crs
    - CPLStringList::SetNameValue
    - proj_area_set_bbox
    - OGRSpatialReference*::Clone
    - proj_area_create
    - OGRProjCT::ComputeThreshold
    - GetCoordinateEpoch
    - GetExtension
    - if
    - proj_area_destroy
    - OGRProjCT::ListCoordinateOperations
    - EQUAL
    - proj_coordinate_metadata_create
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: int
    signature: "int OGRProjCT::Initialize(const OGRSpatialReference *poSourceIn,\n
      \                         const char *pszSrcSRS,\n                          const
      OGRSpatialReference *poTargetIn,\n                          const char *pszTargetSRS,\n
      \                         const OGRCoordinateTransformationOptions &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrct.cpp:1841,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:1845,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:1853,1
    - Dst: proj_as_proj_string
      Src: /src/gdal/ogr/ogrct.cpp:1858,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1869,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - PJ_CONTEXT*
    - PJ*
    constantsTouched: []
    func_position:
      end: 1875
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1875
    functionName: op_to_pj
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - proj_create
    - CPLTestBool
    - CPLErrorOnce
    - proj_as_proj_string
    linkageType: ''
    returnType: PJ
    signature: "PJ *op_to_pj(PJ_CONTEXT *ctx, PJ *op,\n                    CPLString
      *osOutProjString = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:1885,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1887,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1890,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrct.cpp:1894,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:1897,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1898,1
    - Dst: proj_create_operation_factory_context
      Src: /src/gdal/ogr/ogrct.cpp:1902,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1905,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1906,1
    - Dst: proj_operation_factory_context_set_spatial_criterion
      Src: /src/gdal/ogr/ogrct.cpp:1910,1
    - Dst: proj_operation_factory_context_set_grid_availability_use
      Src: /src/gdal/ogr/ogrct.cpp:1912,1
    - Dst: proj_context_is_network_enabled
      Src: /src/gdal/ogr/ogrct.cpp:1915,1
    - Dst: proj_operation_factory_context_set_area_of_interest
      Src: /src/gdal/ogr/ogrct.cpp:1923,1
    - Dst: proj_operation_factory_context_set_desired_accuracy
      Src: /src/gdal/ogr/ogrct.cpp:1930,1
    - Dst: proj_operation_factory_context_set_allow_ballpark_transformations
      Src: /src/gdal/ogr/ogrct.cpp:1936,1
    - Dst: proj_operation_factory_context_set_desired_accuracy
      Src: /src/gdal/ogr/ogrct.cpp:1941,1
    - Dst: proj_create_operations
      Src: /src/gdal/ogr/ogrct.cpp:1947,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1951,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1952,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1953,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrct.cpp:1957,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1960,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1961,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1962,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1963,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1964,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrct.cpp:1969,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrct.cpp:1970,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrct.cpp:1972,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrct.cpp:1973,1
    - Dst: op_to_pj
      Src: /src/gdal/ogr/ogrct.cpp:1974,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrct.cpp:1976,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1979,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1980,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1981,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1982,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1983,1
    - Dst: proj_pj_info
      Src: /src/gdal/ogr/ogrct.cpp:1987,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:1988,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrct.cpp:1988,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrct.cpp:1995,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1998,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:1999,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2000,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2001,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2002,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrct.cpp:2005,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrct.cpp:2010,1
    - Dst: proj_crs_get_datum_forced
      Src: /src/gdal/ogr/ogrct.cpp:2015,1
    - Dst: proj_get_ellipsoid
      Src: /src/gdal/ogr/ogrct.cpp:2020,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2021,1
    - Dst: proj_ellipsoid_get_parameters
      Src: /src/gdal/ogr/ogrct.cpp:2024,1
    - Dst: proj_create_ellipsoidal_2D_cs
      Src: /src/gdal/ogr/ogrct.cpp:2026,1
    - Dst: proj_create_geographic_crs
      Src: /src/gdal/ogr/ogrct.cpp:2029,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrct.cpp:2030,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2033,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2034,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2035,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrct.cpp:2037,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2043,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2044,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2045,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2046,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2047,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2048,1
    - Dst: proj_create_operations
      Src: /src/gdal/ogr/ogrct.cpp:2054,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2055,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrct.cpp:2058,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2060,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2063,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2064,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2065,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2066,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2067,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrct.cpp:2070,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrct.cpp:2071,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2072,1
    - Dst: op_to_pj
      Src: /src/gdal/ogr/ogrct.cpp:2073,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2074,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2077,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2078,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2079,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2080,1
    - Dst: proj_trans_generic
      Src: /src/gdal/ogr/ogrct.cpp:2113,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:2120,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:2121,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:2122,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:2123,1
    - Dst: op_to_pj
      Src: /src/gdal/ogr/ogrct.cpp:2132,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrct.cpp:2134,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2137,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrct.cpp:2141,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrct.cpp:2153,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrct.cpp:2154,1
    - Dst: proj_get_area_of_use
      Src: /src/gdal/ogr/ogrct.cpp:2159,1
    - Dst: addTransformation
      Src: /src/gdal/ogr/ogrct.cpp:2169,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrct.cpp:2174,1
    - Dst: addTransformation
      Src: /src/gdal/ogr/ogrct.cpp:2176,1
    - Dst: addTransformation
      Src: /src/gdal/ogr/ogrct.cpp:2177,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2179,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2183,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2186,1
    - Dst: proj_operation_factory_context_set_area_of_interest
      Src: /src/gdal/ogr/ogrct.cpp:2193,1
    - Dst: proj_operation_factory_context_set_spatial_criterion
      Src: /src/gdal/ogr/ogrct.cpp:2195,1
    - Dst: proj_create_operations
      Src: /src/gdal/ogr/ogrct.cpp:2197,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrct.cpp:2200,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrct.cpp:2203,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrct.cpp:2204,1
    - Dst: proj_get_area_of_use
      Src: /src/gdal/ogr/ogrct.cpp:2209,1
    - Dst: addTransformation
      Src: /src/gdal/ogr/ogrct.cpp:2214,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2217,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2220,1
    - Dst: proj_operation_factory_context_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2223,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2224,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2225,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2226,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrct.cpp:2227,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 182
    argCount: 3
    argNames:
    - pszSrcSRS
    - pszTargetSRS
    - options
    argTypes:
    - char*
    - char*
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 2228
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 2228
    functionName: OGRProjCT::ListCoordinateOperations
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached:
    - op_to_pj
    - proj_operation_factory_context_set_allow_ballpark_transformations
    - proj_operation_factory_context_set_area_of_interest
    - proj_list_get
    - CPLDebug
    - proj_operation_factory_context_set_grid_availability_use
    - CPLError
    - proj_operation_factory_context_destroy
    - proj_pj_info
    - proj_context_is_network_enabled
    - proj_trans_generic
    - proj_ellipsoid_get_parameters
    - proj_operation_factory_context_set_desired_accuracy
    - proj_get_area_of_use
    - proj_create
    - proj_clone
    - proj_get_ellipsoid
    - CPLString::c_str
    - proj_create_operations
    - proj_crs_get_datum_forced
    - proj_operation_factory_context_set_spatial_criterion
    - emplace_back
    - proj_crs_get_geodetic_crs
    - proj_create_ellipsoidal_2D_cs
    - proj_create_operation_factory_context
    - proj_destroy
    - proj_get_type
    - proj_list_get_count
    - proj_crs_get_datum
    - proj_list_destroy
    - min
    - CPLAssert
    - addTransformation
    - proj_get_name
    - empty
    - max
    - OSRGetProjTLSContext
    - proj_create_geographic_crs
    linkageType: ''
    returnType: bool
    signature: "bool OGRProjCT::ListCoordinateOperations(\n    const char *pszSrcSRS,
      const char *pszTargetSRS,\n    const OGRCoordinateTransformationOptions &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2238
    functionName: OGRProjCT::GetSourceCS
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRProjCT::GetSourceCS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2244
    functionDepth: 0
    functionLinenumber: 2244
    functionLinenumberEnd: 2248
    functionName: OGRProjCT::GetTargetCS
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRProjCT::GetTargetCS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrct.cpp:2268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - nCount
    - x
    - y
    - z
    - pabSuccessIn
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 2271
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2271
    functionName: OGRCoordinateTransformation::Transform
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int OGRCoordinateTransformation::Transform(size_t nCount, double *x,
      double *y,\n                                           double *z, int *pabSuccessIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrct.cpp:2297,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - nCount
    - x
    - y
    - z
    - t
    - panErrorCodes
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 2317
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2317
    functionName: OGRCoordinateTransformation::TransformWithErrorCodes
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::vector::resize
    linkageType: ''
    returnType: int
    signature: "int OGRCoordinateTransformation::TransformWithErrorCodes(size_t nCount,\n
      \                                                        double *x, double *y,\n
      \                                                        double *z, double *t,\n
      \                                                        int *panErrorCodes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - nCount
    - x
    - y
    - z
    - t
    - pabSuccess
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 2338
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2338
    functionName: OGRProjCT::Transform
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGRProjCT::Transform(size_t nCount, double *x, double *y, double
      *z,\n                         double *t, int *pabSuccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2374,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2377,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrct.cpp:2385,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:2399,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrct.cpp:2400,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrct.cpp:2402,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrct.cpp:2402,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrct.cpp:2404,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrct.cpp:2422,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrct.cpp:2476,1
    - Dst: atan
      Src: /src/gdal/ogr/ogrct.cpp:2541,1
    - Dst: exp
      Src: /src/gdal/ogr/ogrct.cpp:2541,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrct.cpp:2561,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:2576,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:2577,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2580,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrct.cpp:2585,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrct.cpp:2586,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2589,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:2597,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrct.cpp:2616,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrct.cpp:2617,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrct.cpp:2667,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2670,1
    - Dst: auto::osProjString::c_str
      Src: /src/gdal/ogr/ogrct.cpp:2671,1
    - Dst: auto::osName::c_str
      Src: /src/gdal/ogr/ogrct.cpp:2671,1
    - Dst: proj_trans
      Src: /src/gdal/ogr/ogrct.cpp:2675,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2681,1
    - Dst: proj_coordoperation_get_grid_used_count
      Src: /src/gdal/ogr/ogrct.cpp:2698,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrct.cpp:2702,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2705,1
    - Dst: auto::osProjString::c_str
      Src: /src/gdal/ogr/ogrct.cpp:2706,1
    - Dst: auto::osName::c_str
      Src: /src/gdal/ogr/ogrct.cpp:2707,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2719,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2724,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrct.cpp:2741,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrct.cpp:2750,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrct.cpp:2757,1
    - Dst: proj_errno_reset
      Src: /src/gdal/ogr/ogrct.cpp:2770,1
    - Dst: proj_trans
      Src: /src/gdal/ogr/ogrct.cpp:2771,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2773,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrct.cpp:2786,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrct.cpp:2798,1
    - Dst: CPLDebugOnce
      Src: /src/gdal/ogr/ogrct.cpp:2801,1
    - Dst: proj_errno
      Src: /src/gdal/ogr/ogrct.cpp:2808,1
    - Dst: proj_trans_get_last_used_operation
      Src: /src/gdal/ogr/ogrct.cpp:2822,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrct.cpp:2829,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrct.cpp:2838,1
    - Dst: proj_trans
      Src: /src/gdal/ogr/ogrct.cpp:2850,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrct.cpp:2851,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrct.cpp:2852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2899,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2905,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2908,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:2915,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:2923,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 289
    argCount: 6
    argNames:
    - nCount
    - x
    - y
    - z
    - t
    - panErrorCodes
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 2932
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2932
    functionName: OGRProjCT::TransformWithErrorCodes
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - proj_trans
    - CPLDebug
    - CPLError
    - auto::size
    - CPLGetConfigOption
    - std::isnan
    - CPLGettimeofday
    - std::abs
    - exp
    - swap
    - auto::osName::c_str
    - CPLTestBool
    - proj_destroy
    - proj_errno
    - proj_coordoperation_get_grid_used_count
    - CPLGetErrorCounter
    - proj_assign_context
    - proj_errno_reset
    - static_cast<double>
    - std::isfinite
    - empty
    - auto::osProjString::c_str
    - GetDataAxisToSRSAxisMapping
    - proj_trans_get_last_used_operation
    - atan
    - CPLErrorOnce
    - fabs
    - OSRGetProjTLSContext
    - CPLDebugOnce
    linkageType: ''
    returnType: int
    signature: "int OGRProjCT::TransformWithErrorCodes(size_t nCount, double *x, double
      *y,\n                                       double *z, double *t, int *panErrorCodes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - data
    - panErrorCodes
    - arr_len
    argTypes:
    - double*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3052
      start: 3041
    functionDepth: 0
    functionLinenumber: 3041
    functionLinenumberEnd: 3052
    functionName: simple_min
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double simple_min(const double *data, const int *panErrorCodes,\n
      \                        const int arr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - data
    - panErrorCodes
    - arr_len
    argTypes:
    - double*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3066
      start: 3055
    functionDepth: 0
    functionLinenumber: 3055
    functionLinenumberEnd: 3066
    functionName: simple_max
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double simple_max(const double *data, const int *panErrorCodes,\n
      \                        const int arr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - iii
    - panErrorCodes
    - arr_len
    argTypes:
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3083
      start: 3069
    functionDepth: 0
    functionLinenumber: 3069
    functionLinenumberEnd: 3083
    functionName: _find_previous_index
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _find_previous_index(const int iii, const int *panErrorCodes,\n
      \                               const int arr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 3
    argNames:
    - data
    - panErrorCodes
    - arr_len
    argTypes:
    - double*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3178
      start: 3133
    functionDepth: 0
    functionLinenumber: 3133
    functionLinenumberEnd: 3178
    functionName: antimeridian_min
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double antimeridian_min(const double *data, const int *panErrorCodes,\n
      \                              const int arr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 3
    argNames:
    - data
    - panErrorCodes
    - arr_len
    argTypes:
    - double*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3234
      start: 3187
    functionDepth: 0
    functionLinenumber: 3187
    functionLinenumberEnd: 3234
    functionName: antimeridian_max
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double antimeridian_max(const double *data, const int *panErrorCodes,\n
      \                              const int arr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrct.cpp:3251,1
    - Dst: OGRProjCT::GetInverse
      Src: /src/gdal/ogr/ogrct.cpp:3251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - xmin
    - ymin
    - xmax
    - ymax
    - lon_lat_order
    argTypes:
    - double
    - double
    - double
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 3259
      start: 3240
    functionDepth: 0
    functionLinenumber: 3240
    functionLinenumberEnd: 3259
    functionName: OGRProjCT::ContainsNorthPole
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRProjCT::GetInverse
    - std::unique_ptr<OGRCoordinateTransformation>
    linkageType: ''
    returnType: bool
    signature: "bool OGRProjCT::ContainsNorthPole(const double xmin, const double
      ymin,\n                                  const double xmax, const double ymax,\n
      \                                 bool lon_lat_order)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrct.cpp:3276,1
    - Dst: OGRProjCT::GetInverse
      Src: /src/gdal/ogr/ogrct.cpp:3276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - xmin
    - ymin
    - xmax
    - ymax
    - lon_lat_order
    argTypes:
    - double
    - double
    - double
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 3284
      start: 3265
    functionDepth: 0
    functionLinenumber: 3265
    functionLinenumberEnd: 3284
    functionName: OGRProjCT::ContainsSouthPole
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - OGRProjCT::GetInverse
    - std::unique_ptr<OGRCoordinateTransformation>
    linkageType: ''
    returnType: bool
    signature: "bool OGRProjCT::ContainsSouthPole(const double xmin, const double
      ymin,\n                                  const double xmax, const double ymax,\n
      \                                 bool lon_lat_order)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3308,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3314,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3319,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrct.cpp:3330,1
    - Dst: GetAngularUnits
      Src: /src/gdal/ogr/ogrct.cpp:3330,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:3331,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:3332,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrct.cpp:3341,1
    - Dst: GetAngularUnits
      Src: /src/gdal/ogr/ogrct.cpp:3341,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrct.cpp:3342,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:3343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3353,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrct.cpp:3365,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrct.cpp:3366,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrct.cpp:3367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3371,1
    - Dst: what
      Src: /src/gdal/ogr/ogrct.cpp:3371,1
    - Dst: OGRProjCT::ContainsNorthPole
      Src: /src/gdal/ogr/ogrct.cpp:3381,1
    - Dst: OGRProjCT::ContainsSouthPole
      Src: /src/gdal/ogr/ogrct.cpp:3383,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3390,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrct.cpp:3405,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3458,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3458,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3460,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3460,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3462,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3462,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3464,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3464,1
    - Dst: IsProjected
      Src: /src/gdal/ogr/ogrct.cpp:3466,1
    - Dst: std::unique_ptr<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrct.cpp:3470,1
    - Dst: CloneGeogCS
      Src: /src/gdal/ogr/ogrct.cpp:3471,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrct.cpp:3472,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrct.cpp:3475,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrct.cpp:3476,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrct.cpp:3476,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrct.cpp:3489,1
    - Dst: auto::TransformWithErrorCodes
      Src: /src/gdal/ogr/ogrct.cpp:3508,1
    - Dst: OGRProjCT::TransformWithErrorCodes
      Src: /src/gdal/ogr/ogrct.cpp:3512,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:3517,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:3518,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:3519,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:3520,1
    - Dst: auto::TransformWithErrorCodes
      Src: /src/gdal/ogr/ogrct.cpp:3535,1
    - Dst: OGRProjCT::TransformWithErrorCodes
      Src: /src/gdal/ogr/ogrct.cpp:3539,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:3542,1
    - Dst: min
      Src: /src/gdal/ogr/ogrct.cpp:3543,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:3544,1
    - Dst: max
      Src: /src/gdal/ogr/ogrct.cpp:3545,1
    - Dst: TryAtPlusMinus180
      Src: /src/gdal/ogr/ogrct.cpp:3557,1
    - Dst: TryAtPlusMinus180
      Src: /src/gdal/ogr/ogrct.cpp:3562,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3571,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3571,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3578,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3578,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3589,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3589,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3596,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3596,1
    - Dst: antimeridian_min
      Src: /src/gdal/ogr/ogrct.cpp:3601,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3601,1
    - Dst: antimeridian_max
      Src: /src/gdal/ogr/ogrct.cpp:3603,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3603,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3606,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3606,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3608,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3608,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrct.cpp:3613,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3613,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrct.cpp:3615,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3615,1
    - Dst: antimeridian_min
      Src: /src/gdal/ogr/ogrct.cpp:3616,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3616,1
    - Dst: antimeridian_max
      Src: /src/gdal/ogr/ogrct.cpp:3618,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrct.cpp:3618,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 166
    argCount: 9
    argNames:
    - xmin
    - ymin
    - xmax
    - ymax
    - out_xmin
    - out_ymin
    - out_xmax
    - out_ymax
    - densify_pts
    argTypes:
    - double
    - double
    - double
    - double
    - double*
    - double*
    - double*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 3624
      start: 3286
    functionDepth: 2
    functionLinenumber: 3286
    functionLinenumberEnd: 3624
    functionName: OGRProjCT::TransformBounds
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRSpatialReference>
    - TryAtPlusMinus180
    - auto::get
    - CPLError
    - simple_max
    - auto::TransformWithErrorCodes
    - OGRProjCT::TransformWithErrorCodes
    - std::unique_ptr<OGRCoordinateTransformation>
    - OGRProjCT::ContainsSouthPole
    - CloneGeogCS
    - simple_min
    - std::vector::data
    - CPLAtof
    - min
    - OGRProjCT::ContainsNorthPole
    - OGRCreateCoordinateTransformation
    - auto::SetAxisMappingStrategy
    - what
    - std::vector::resize
    - IsProjected
    - GetAngularUnits
    - antimeridian_max
    - EQUAL
    - GetDataAxisToSRSAxisMapping
    - max
    - fabs
    - antimeridian_min
    linkageType: ''
    returnType: int
    signature: "int OGRProjCT::TransformBounds(const double xmin, const double ymin,\n
      \                              const double xmax, const double ymax,\n                               double
      *out_xmin, double *out_ymin,\n                               double *out_xmax,
      double *out_ymax,\n                               const int densify_pts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProjCT::OGRProjCT
      Src: /src/gdal/ogr/ogrct.cpp:3632,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrct.cpp:3641,1
    - Dst: OGRProjCT::OGRProjCT
      Src: /src/gdal/ogr/ogrct.cpp:3641,1
    - Dst: std::unique_ptr::Initialize
      Src: /src/gdal/ogr/ogrct.cpp:3643,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrct.cpp:3643,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrct.cpp:3644,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrct.cpp:3651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3630
    functionDepth: 1
    functionLinenumber: 3630
    functionLinenumberEnd: 3652
    functionName: OGRProjCT::Clone
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - std::unique_ptr::release
    - std::unique_ptr::Initialize
    - std::unique_ptr::reset
    - OGRProjCT::OGRProjCT
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *OGRProjCT::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrct.cpp:3667,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrct.cpp:3667,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrct.cpp:3671,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrct.cpp:3673,1
    - Dst: OGRCoordinateTransformationOptions::d::RefreshCheckWithInvertProj
      Src: /src/gdal/ogr/ogrct.cpp:3676,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrct.cpp:3680,1
    - Dst: OGRProjCT::OGRProjCT
      Src: /src/gdal/ogr/ogrct.cpp:3684,1
    - Dst: OGRProjCT::Clone
      Src: /src/gdal/ogr/ogrct.cpp:3687,1
    - Dst: OGRProjCT::Clone
      Src: /src/gdal/ogr/ogrct.cpp:3697,1
    - Dst: auto::ComputeThreshold
      Src: /src/gdal/ogr/ogrct.cpp:3706,1
    - Dst: auto::DetectWebMercatorToWGS84
      Src: /src/gdal/ogr/ogrct.cpp:3714,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3658
    functionDepth: 2
    functionLinenumber: 3658
    functionLinenumberEnd: 3717
    functionName: OGRProjCT::GetInverse
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 2
    functionsReached:
    - OGRProjCT::Clone
    - proj_clone
    - swap
    - OSRGetProjTLSContext
    - OGRCreateCoordinateTransformation
    - auto::ComputeThreshold
    - auto::DetectWebMercatorToWGS84
    - OGRProjCT::OGRProjCT
    - OGRCoordinateTransformationOptions::d::RefreshCheckWithInvertProj
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *OGRProjCT::GetInverse() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3723
    functionDepth: 0
    functionLinenumber: 3723
    functionLinenumberEnd: 3728
    functionName: OSRCTCleanCache
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OSRCTCleanCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrct.cpp:3745,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrct.cpp:3748,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrct.cpp:3754,1
    - Dst: GetKeyForSRS
      Src: /src/gdal/ogr/ogrct.cpp:3759,1
    - Dst: OGRCoordinateTransformationOptions::d::GetKey
      Src: /src/gdal/ogr/ogrct.cpp:3760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - poSRS1
    - pszSrcSRS
    - poSRS2
    - pszTargetSRS
    - options
    argTypes:
    - OGRSpatialReference*
    - char*
    - OGRSpatialReference*
    - char*
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 3762
      start: 3734
    functionDepth: 1
    functionLinenumber: 3734
    functionLinenumberEnd: 3762
    functionName: OGRProjCT::MakeCacheKey
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - GetKeyForSRS
    - OGRCoordinateTransformationOptions::d::GetKey
    - std::to_string
    - GetDataAxisToSRSAxisMapping
    - std::string
    linkageType: ''
    returnType: CTCacheKey
    signature: "CTCacheKey OGRProjCT::MakeCacheKey(\n    const OGRSpatialReference
      *poSRS1, const char *pszSrcSRS,\n    const OGRSpatialReference *poSRS2, const
      char *pszTargetSRS,\n    const OGRCoordinateTransformationOptions &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lru11::Cache<CTCacheKey, CTCacheValue>::Cache<CTCacheKey, CTCacheValue>
      Src: /src/gdal/ogr/ogrct.cpp:3774,1
    - Dst: OGRProjCT::MakeCacheKey
      Src: /src/gdal/ogr/ogrct.cpp:3777,1
    - Dst: OGRProjCT*::m_osSrcSRS::c_str
      Src: /src/gdal/ogr/ogrct.cpp:3777,1
    - Dst: OGRProjCT*::m_osTargetSRS::c_str
      Src: /src/gdal/ogr/ogrct.cpp:3779,1
    - Dst: contains
      Src: /src/gdal/ogr/ogrct.cpp:3782,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrct.cpp:3787,1
    - Dst: std::unique_ptr<OGRProjCT>
      Src: /src/gdal/ogr/ogrct.cpp:3787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRProjCT*
    constantsTouched: []
    func_position:
      end: 3788
      start: 3768
    functionDepth: 2
    functionLinenumber: 3768
    functionLinenumberEnd: 3788
    functionName: OGRProjCT::InsertIntoCache
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached:
    - OGRProjCT::MakeCacheKey
    - lru11::Cache<CTCacheKey, CTCacheValue>::Cache<CTCacheKey, CTCacheValue>
    - insert
    - OGRProjCT*::m_osSrcSRS::c_str
    - std::unique_ptr<OGRProjCT>
    - contains
    - OGRProjCT*::m_osTargetSRS::c_str
    linkageType: ''
    returnType: void
    signature: void OGRProjCT::InsertIntoCache(OGRProjCT *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrct.cpp:3801,1
    - Dst: OGRProjCT::MakeCacheKey
      Src: /src/gdal/ogr/ogrct.cpp:3806,1
    - Dst: getPtr
      Src: /src/gdal/ogr/ogrct.cpp:3809,1
    - Dst: CTCacheValue*::release
      Src: /src/gdal/ogr/ogrct.cpp:3812,1
    - Dst: remove
      Src: /src/gdal/ogr/ogrct.cpp:3813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - poSource
    - pszSrcSRS
    - poTarget
    - pszTargetSRS
    - options
    argTypes:
    - OGRSpatialReference*
    - char*
    - OGRSpatialReference*
    - char*
    - OGRCoordinateTransformationOptions
    constantsTouched: []
    func_position:
      end: 3817
      start: 3794
    functionDepth: 2
    functionLinenumber: 3794
    functionLinenumberEnd: 3817
    functionName: OGRProjCT::FindFromCache
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 1
    functionsReached:
    - getPtr
    - empty
    - remove
    - OGRProjCT::MakeCacheKey
    - CTCacheValue*::release
    linkageType: ''
    returnType: OGRProjCT
    signature: "OGRProjCT *OGRProjCT::FindFromCache(\n    const OGRSpatialReference
      *poSource, const char *pszSrcSRS,\n    const OGRSpatialReference *poTarget,
      const char *pszTargetSRS,\n    const OGRCoordinateTransformationOptions &options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:3839,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:3841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hTransform
    - nCount
    - x
    - y
    - z
    argTypes:
    - OGRCoordinateTransformationH
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 3843
      start: 3835
    functionDepth: 0
    functionLinenumber: 3835
    functionLinenumberEnd: 3843
    functionName: CPL_STDCALL::OCTTransform
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int CPL_STDCALL OCTTransform(OGRCoordinateTransformationH hTransform,\n
      \                            int nCount, double *x, double *y, double *z)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:3865,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:3867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hTransform
    - nCount
    - x
    - y
    - z
    - pabSuccess
    argTypes:
    - OGRCoordinateTransformationH
    - int
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 3869
      start: 3860
    functionDepth: 0
    functionLinenumber: 3860
    functionLinenumberEnd: 3869
    functionName: CPL_STDCALL::OCTTransformEx
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int CPL_STDCALL OCTTransformEx(OGRCoordinateTransformationH hTransform,\n
      \                              int nCount, double *x, double *y, double *z,\n
      \                              int *pabSuccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:3893,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:3895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hTransform
    - nCount
    - x
    - y
    - z
    - t
    - pabSuccess
    argTypes:
    - OGRCoordinateTransformationH
    - int
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 0
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: OCTTransform4D
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OCTTransform4D(OGRCoordinateTransformationH hTransform, int nCount,\n
      \                  double *x, double *y, double *z, double *t, int *pabSuccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:3923,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hTransform
    - nCount
    - x
    - y
    - z
    - t
    - panErrorCodes
    argTypes:
    - OGRCoordinateTransformationH
    - int
    - double*
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 3927
      start: 3918
    functionDepth: 0
    functionLinenumber: 3918
    functionLinenumberEnd: 3927
    functionName: OCTTransform4DWithErrorCodes
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OCTTransform4DWithErrorCodes(OGRCoordinateTransformationH hTransform,\n
      \                                int nCount, double *x, double *y, double *z,\n
      \                                double *t, int *panErrorCodes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrct.cpp:3973,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrct.cpp:3975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - hTransform
    - xmin
    - ymin
    - xmax
    - ymax
    - out_xmin
    - out_ymin
    - out_xmax
    - out_ymax
    - densify_pts
    argTypes:
    - OGRCoordinateTransformationH
    - double
    - double
    - double
    - double
    - double*
    - double*
    - double*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 3978
      start: 3965
    functionDepth: 0
    functionLinenumber: 3965
    functionLinenumberEnd: 3978
    functionName: CPL_STDCALL::OCTTransformBounds
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int CPL_STDCALL OCTTransformBounds(OGRCoordinateTransformationH hTransform,\n
      \                                  const double xmin, const double ymin,\n                                   const
      double xmax, const double ymax,\n                                   double *out_xmin,
      double *out_ymin,\n                                   double *out_xmax, double
      *out_ymax,\n                                   int densify_pts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:3987,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:3988,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrct.cpp:3989,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrct.cpp:3990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3984
    functionDepth: 1
    functionLinenumber: 3984
    functionLinenumberEnd: 3992
    functionName: OGRCTDumpStatistics
    functionSourceFile: /src/gdal/ogr/ogrct.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRCTDumpStatistics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_proj_p.cpp:40,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_proj_p.cpp:44,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_proj_p.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - level
    - message
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: osr_proj_logger
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: "void osr_proj_logger(void * /* user_data */, int level,\n                            const
      char *message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: ForkOccurred
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ForkOccurred(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/gdal/ogr/ogr_proj_p.cpp:96,1
    - Dst: pthread_atfork
      Src: /src/gdal/ogr/ogr_proj_p.cpp:100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_proj_p.cpp:102,1
    - Dst: init
      Src: /src/gdal/ogr/ogr_proj_p.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: (getpid())
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::call_once
    - pthread_atfork
    - init
    linkageType: ''
    returnType: curpid
    signature: curpid (getpid())
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/gdal/ogr/ogr_proj_p.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: OSRPJContextHolder
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void OSRPJContextHolder()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: OSRPJContextHolder
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OSRPJContextHolder(const OSRPJContextHolder &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '&operator=(const OSRPJContextHolder &)'
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSRPJContextHolder
    signature: OSRPJContextHolder &operator=(const OSRPJContextHolder &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_proj_p.cpp:129,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_proj_p.cpp:129,1
    - Dst: OSRSetPROJSearchPaths
      Src: /src/gdal/ogr/ogr_proj_p.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - pszKey
    - pszValue
    - bThreadLocal
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: OSRSetConfigOption
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OSRSetPROJSearchPaths
    linkageType: ''
    returnType: void
    signature: "void OSRSetConfigOption(const char *pszKey, const char *pszValue,\n
      \                              bool bThreadLocal, void *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/gdal/ogr/ogr_proj_p.cpp:139,1
    - Dst: CPLSubscribeToSetConfigOption
      Src: /src/gdal/ogr/ogr_proj_p.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: OSRInstallSetConfigOptionCallback
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - std::call_once
    - CPLSubscribeToSetConfigOption
    linkageType: ''
    returnType: void
    signature: void OSRInstallSetConfigOptionCallback()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/gdal/ogr/ogr_proj_p.cpp:149,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_proj_p.cpp:161,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_proj_p.cpp:172,1
    - Dst: OSRInstallSetConfigOptionCallback
      Src: /src/gdal/ogr/ogr_proj_p.cpp:177,1
    - Dst: proj_context_create
      Src: /src/gdal/ogr/ogr_proj_p.cpp:180,1
    - Dst: proj_log_func
      Src: /src/gdal/ogr/ogr_proj_p.cpp:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: OSRPJContextHolder::init
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - proj_log_func
    - std::call_once
    - OSRInstallSetConfigOptionCallback
    - proj_context_create
    - CSLTokenizeString2
    - CPLGetConfigOption
    linkageType: ''
    returnType: PJ_CONTEXT
    signature: PJ_CONTEXT *OSRPJContextHolder::init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRPJContextHolder::deinit
      Src: /src/gdal/ogr/ogr_proj_p.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: OSRPJContextHolder::~OSRPJContextHolder()
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - OSRPJContextHolder::deinit
    linkageType: ''
    returnType: void
    signature: void OSRPJContextHolder::~OSRPJContextHolder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogr_proj_p.cpp:194,1
    - Dst: proj_context_destroy
      Src: /src/gdal/ogr/ogr_proj_p.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: OSRPJContextHolder::deinit
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 1
    functionsReached:
    - proj_context_destroy
    - clear
    linkageType: ''
    returnType: void
    signature: void OSRPJContextHolder::deinit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OSRPJContextHolder *>
      Src: /src/gdal/ogr/ogr_proj_p.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: FreeProjTLSContextHolder
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OSRPJContextHolder *>
    linkageType: ''
    returnType: void
    signature: void FreeProjTLSContextHolder(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRPJContextHolder::OSRPJContextHolder
      Src: /src/gdal/ogr/ogr_proj_p.cpp:219,1
    - Dst: CPLSetTLSWithFreeFuncEx
      Src: /src/gdal/ogr/ogr_proj_p.cpp:220,1
    - Dst: static_cast<OSRPJContextHolder *>
      Src: /src/gdal/ogr/ogr_proj_p.cpp:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 231
    functionName: GetProjTLSContextHolder
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - OSRPJContextHolder::OSRPJContextHolder
    - CPLSetTLSWithFreeFuncEx
    - static_cast<OSRPJContextHolder *>
    linkageType: ''
    returnType: OSRPJContextHolder
    signature: OSRPJContextHolder &GetProjTLSContextHolder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/gdal/ogr/ogr_proj_p.cpp:246,1
    - Dst: proj_log_func
      Src: /src/gdal/ogr/ogr_proj_p.cpp:256,1
    - Dst: proj_context_set_autoclose_database
      Src: /src/gdal/ogr/ogr_proj_p.cpp:257,1
    - Dst: proj_context_get_database_path
      Src: /src/gdal/ogr/ogr_proj_p.cpp:259,1
    - Dst: proj_context_set_autoclose_database
      Src: /src/gdal/ogr/ogr_proj_p.cpp:260,1
    - Dst: proj_log_func
      Src: /src/gdal/ogr/ogr_proj_p.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: GetProjTLSContextHolder
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - proj_log_func
    - proj_context_get_database_path
    - proj_context_set_autoclose_database
    - getpid
    linkageType: ''
    returnType: OSRPJContextHolder
    signature: OSRPJContextHolder &GetProjTLSContextHolder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProjTLSContextHolder
      Src: /src/gdal/ogr/ogr_proj_p.cpp:270,1
    - Dst: auto::init
      Src: /src/gdal/ogr/ogr_proj_p.cpp:274,1
    - Dst: proj_context_set_search_paths
      Src: /src/gdal/ogr/ogr_proj_p.cpp:284,1
    - Dst: Count
      Src: /src/gdal/ogr/ogr_proj_p.cpp:285,1
    - Dst: List
      Src: /src/gdal/ogr/ogr_proj_p.cpp:286,1
    - Dst: proj_context_get_database_path
      Src: /src/gdal/ogr/ogr_proj_p.cpp:294,1
    - Dst: proj_context_set_database_path
      Src: /src/gdal/ogr/ogr_proj_p.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_proj_p.cpp:296,1
    - Dst: List
      Src: /src/gdal/ogr/ogr_proj_p.cpp:297,1
    - Dst: proj_context_set_enable_network
      Src: /src/gdal/ogr/ogr_proj_p.cpp:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 311
    functionName: OSRGetProjTLSContext
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 8
    functionsReached:
    - proj_context_set_enable_network
    - GetProjTLSContextHolder
    - auto::init
    - proj_context_set_database_path
    - proj_context_get_database_path
    - Count
    - proj_context_set_search_paths
    - List
    - std::string::c_str
    linkageType: ''
    returnType: PJ_CONTEXT
    signature: PJ_CONTEXT *OSRGetProjTLSContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProjTLSContextHolder
      Src: /src/gdal/ogr/ogr_proj_p.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: OSRGetProjTLSCache
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - GetProjTLSContextHolder
    linkageType: ''
    returnType: OSRProjTLSCache
    signature: OSRProjTLSCache *OSRGetProjTLSCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRProjTLSCache::clear
      Src: /src/gdal/ogr/ogr_proj_p.cpp:325,1
    - Dst: OSRProjTLSCache::clear
      Src: /src/gdal/ogr/ogr_proj_p.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: OSRProjTLSCache::clear
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 1
    functionsReached:
    - OSRProjTLSCache::clear
    linkageType: ''
    returnType: void
    signature: void OSRProjTLSCache::clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogr_proj_p.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: OSRProjTLSCache::GetPJContext
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: PJ_CONTEXT
    signature: PJ_CONTEXT *OSRProjTLSCache::GetPJContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPtr
      Src: /src/gdal/ogr/ogr_proj_p.cpp:341,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogr_proj_p.cpp:344,1
    - Dst: OSRProjTLSCache::GetPJContext
      Src: /src/gdal/ogr/ogr_proj_p.cpp:344,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogr_proj_p.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nCode
    - bUseNonDeprecated
    - bAddTOWGS84
    argTypes:
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: OSRProjTLSCache::GetPJForEPSGCode
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - getPtr
    - OSRProjTLSCache::GetPJContext
    - auto::get
    - proj_clone
    linkageType: ''
    returnType: PJ
    signature: "PJ *OSRProjTLSCache::GetPJForEPSGCode(int nCode, bool bUseNonDeprecated,\n
      \                                     bool bAddTOWGS84)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogr_proj_p.cpp:353,1
    - Dst: UniquePtrPJ
      Src: /src/gdal/ogr/ogr_proj_p.cpp:353,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogr_proj_p.cpp:353,1
    - Dst: OSRProjTLSCache::GetPJContext
      Src: /src/gdal/ogr/ogr_proj_p.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nCode
    - bUseNonDeprecated
    - bAddTOWGS84
    - pj
    argTypes:
    - int
    - bool
    - bool
    - PJ*
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: OSRProjTLSCache::CachePJForEPSGCode
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - UniquePtrPJ
    - insert
    - OSRProjTLSCache::GetPJContext
    - proj_clone
    linkageType: ''
    returnType: void
    signature: "void OSRProjTLSCache::CachePJForEPSGCode(int nCode, bool bUseNonDeprecated,\n
      \                                        bool bAddTOWGS84, PJ *pj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPtr
      Src: /src/gdal/ogr/ogr_proj_p.cpp:358,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogr_proj_p.cpp:361,1
    - Dst: OSRProjTLSCache::GetPJContext
      Src: /src/gdal/ogr/ogr_proj_p.cpp:361,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogr_proj_p.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - wkt
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: OSRProjTLSCache::GetPJForWKT
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - getPtr
    - OSRProjTLSCache::GetPJContext
    - auto::get
    - proj_clone
    linkageType: ''
    returnType: PJ
    signature: PJ *OSRProjTLSCache::GetPJForWKT(const std::string &wkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogr_proj_p.cpp:368,1
    - Dst: UniquePtrPJ
      Src: /src/gdal/ogr/ogr_proj_p.cpp:368,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogr_proj_p.cpp:368,1
    - Dst: OSRProjTLSCache::GetPJContext
      Src: /src/gdal/ogr/ogr_proj_p.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wkt
    - pj
    argTypes:
    - std::string
    - PJ*
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: OSRProjTLSCache::CachePJForWKT
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - UniquePtrPJ
    - insert
    - OSRProjTLSCache::GetPJContext
    - proj_clone
    linkageType: ''
    returnType: void
    signature: void OSRProjTLSCache::CachePJForWKT(const std::string &wkt, PJ *pj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProjTLSContextHolder
      Src: /src/gdal/ogr/ogr_proj_p.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: OSRCleanupTLSContext
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - GetProjTLSContextHolder
    linkageType: ''
    returnType: void
    signature: void OSRCleanupTLSContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/gdal/ogr/ogr_proj_p.cpp:398,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogr_proj_p.cpp:398,1
    - Dst: OSRInstallSetConfigOptionCallback
      Src: /src/gdal/ogr/ogr_proj_p.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - papszPaths
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: OSRSetPROJSearchPaths
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 1
    functionsReached:
    - OSRInstallSetConfigOptionCallback
    - Assign
    - CSLDuplicate
    linkageType: ''
    returnType: void
    signature: void OSRSetPROJSearchPaths(const char *const *papszPaths)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogr_proj_p.cpp:415,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogr_proj_p.cpp:417,1
    - Dst: List
      Src: /src/gdal/ogr/ogr_proj_p.cpp:417,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_proj_p.cpp:427,1
    - Dst: proj_info
      Src: /src/gdal/ogr/ogr_proj_p.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 428
    functionName: OSRGetPROJSearchPaths
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - empty
    - proj_info
    - CSLDuplicate
    - List
    - CSLTokenizeString2
    linkageType: ''
    returnType: char
    signature: char **OSRGetPROJSearchPaths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/gdal/ogr/ogr_proj_p.cpp:445,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogr_proj_p.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszAux
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: OSRSetPROJAuxDbPaths
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - Assign
    - CSLDuplicate
    linkageType: ''
    returnType: void
    signature: void OSRSetPROJAuxDbPaths(const char *const *papszAux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogr_proj_p.cpp:465,1
    - Dst: List
      Src: /src/gdal/ogr/ogr_proj_p.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: OSRGetPROJAuxDbPaths
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    - List
    linkageType: ''
    returnType: char
    signature: char **OSRGetPROJAuxDbPaths(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_proj_p.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: OSRSetPROJEnableNetwork
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OSRSetPROJEnableNetwork(int enabled)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/gdal/ogr/ogr_proj_p.cpp:514,1
    - Dst: lock
      Src: /src/gdal/ogr/ogr_proj_p.cpp:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 523
    functionName: OSRGetPROJEnableNetwork
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - lock
    - unlock
    linkageType: ''
    returnType: int
    signature: int OSRGetPROJEnableNetwork(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_info
      Src: /src/gdal/ogr/ogr_proj_p.cpp:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pnMajor
    - pnMinor
    - pnPatch
    argTypes:
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 545
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 545
    functionName: OSRGetPROJVersion
    functionSourceFile: /src/gdal/ogr/ogr_proj_p.cpp
    functionUses: 0
    functionsReached:
    - proj_info
    linkageType: ''
    returnType: void
    signature: void OSRGetPROJVersion(int *pnMajor, int *pnMinor, int *pnPatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: OGRTriangle::OGRTriangle
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRTriangle::OGRTriangle(const OGRTriangle &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrtriangle.cpp:47,1
    - Dst: OGRPolygon::getNumInteriorRings
      Src: /src/gdal/ogr/ogrtriangle.cpp:48,1
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrtriangle.cpp:49,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrtriangle.cpp:49,1
    - Dst: addRing
      Src: /src/gdal/ogr/ogrtriangle.cpp:52,1
    - Dst: const_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogrtriangle.cpp:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrtriangle.cpp:54,1
    - Dst: assignSpatialReference
      Src: /src/gdal/ogr/ogrtriangle.cpp:56,1
    - Dst: OGRPolygon::getSpatialReference
      Src: /src/gdal/ogr/ogrtriangle.cpp:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - other
    - eErr
    argTypes:
    - OGRPolygon
    - OGRErr
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: OGRTriangle::OGRTriangle
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 7
    functionsReached:
    - OGRPolygon::getSpatialReference
    - CPLError
    - const_cast<OGRCurve *>
    - OGRCurve*::get_IsClosed
    - OGRPolygon::getExteriorRingCurve
    - assignSpatialReference
    - OGRCurve*::getNumPoints
    - addRing
    - OGRPolygon::getNumInteriorRings
    linkageType: ''
    returnType: void
    signature: void OGRTriangle::OGRTriangle(const OGRPolygon &other, OGRErr &eErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrtriangle.cpp:74,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrtriangle.cpp:75,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrtriangle.cpp:76,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrtriangle.cpp:77,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrtriangle.cpp:78,1
    - Dst: addCurveDirectly
      Src: /src/gdal/ogr/ogrtriangle.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p
    - q
    - r
    argTypes:
    - OGRPoint
    - OGRPoint
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: OGRTriangle::OGRTriangle
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 7
    functionsReached:
    - addCurveDirectly
    - OGRLinearRing*::addPoint
    - OGRLinearRing::OGRLinearRing
    linkageType: ''
    returnType: void
    signature: "void OGRTriangle::OGRTriangle(const OGRPoint &p, const OGRPoint &q,\n
      \                        const OGRPoint &r)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::operator=
      Src: /src/gdal/ogr/ogrtriangle.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRTriangle
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: '&OGRTriangle::operator=(const OGRTriangle &other)'
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::operator=
    linkageType: ''
    returnType: OGRTriangle
    signature: OGRTriangle &OGRTriangle::operator=(const OGRTriangle &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrtriangle.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: OGRTriangle::clone
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - OGRTriangle::OGRTriangle
    linkageType: ''
    returnType: OGRTriangle
    signature: OGRTriangle *OGRTriangle::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: OGRTriangle::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRTriangle::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: OGRTriangle::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRTriangle::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrtriangle.cpp:147,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrtriangle.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: OGRTriangle::quickValidityCheck
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - get_IsClosed
    - getNumPoints
    linkageType: ''
    returnType: bool
    signature: bool OGRTriangle::quickValidityCheck() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::importFromWkb
      Src: /src/gdal/ogr/ogrtriangle.cpp:159,1
    - Dst: OGRTriangle::quickValidityCheck
      Src: /src/gdal/ogr/ogrtriangle.cpp:164,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrtriangle.cpp:166,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrtriangle.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: OGRTriangle::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::importFromWkb
    - OGRTriangle::quickValidityCheck
    - empty
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRTriangle::importFromWkb(const unsigned char *pabyData, size_t
      nSize,\n                                  OGRwkbVariant eWkbVariant,\n                                  size_t
      &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::importFromWKTListOnly
      Src: /src/gdal/ogr/ogrtriangle.cpp:186,1
    - Dst: OGRTriangle::quickValidityCheck
      Src: /src/gdal/ogr/ogrtriangle.cpp:190,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrtriangle.cpp:192,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrtriangle.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ppszInput
    - bHasZ
    - bHasM
    - paoPoints
    - nMaxPoints
    - padfZ
    argTypes:
    - char**
    - int
    - int
    - OGRRawPoint*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: OGRTriangle::importFromWKTListOnly
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - OGRTriangle::quickValidityCheck
    - OGRPolygon::importFromWKTListOnly
    - empty
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRTriangle::importFromWKTListOnly(const char **ppszInput,
      int bHasZ,\n                                          int bHasM, OGRRawPoint
      *&paoPoints,\n                                          int &nMaxPoints, double
      *&padfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addRingDirectlyInternal
      Src: /src/gdal/ogr/ogrtriangle.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poNewRing
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: OGRTriangle::addRingDirectly
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - addRingDirectlyInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRTriangle::addRingDirectly(OGRCurve *poNewRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSurface*::toTriangle
      Src: /src/gdal/ogr/ogrtriangle.cpp:223,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrtriangle.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poSurface
    argTypes:
    - OGRSurface*
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: OGRTriangle::CasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::OGRPolygon
    - OGRSurface*::toTriangle
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRTriangle::CasterToPolygon(OGRSurface *poSurface)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OGRTriangle::GetCasterToPolygon
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSurfaceCasterToPolygon
    signature: OGRSurfaceCasterToPolygon OGRTriangle::GetCasterToPolygon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrtriangle.cpp:240,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrtriangle.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: OGRTriangle::CastToPolygon
    functionSourceFile: /src/gdal/ogr/ogrtriangle.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::toPolygon
    - OGRPolygon::OGRPolygon
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRTriangle::CastToPolygon(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: IsLeafNode
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsLeafNode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: GetChildCount
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetChildCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: GetValue
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_spatialref.h:212,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_spatialref.h:308,1
    - Dst: GetLinearUnits
      Src: /src/gdal/ogr/ogr_spatialref.h:316,1
    - Dst: static_cast<const char **>
      Src: /src/gdal/ogr/ogr_spatialref.h:316,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_spatialref.h:324,1
    - Dst: GetTargetLinearUnits
      Src: /src/gdal/ogr/ogr_spatialref.h:334,1
    - Dst: static_cast<const char **>
      Src: /src/gdal/ogr/ogr_spatialref.h:335,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_spatialref.h:343,1
    - Dst: GetAngularUnits
      Src: /src/gdal/ogr/ogr_spatialref.h:351,1
    - Dst: static_cast<const char **>
      Src: /src/gdal/ogr/ogr_spatialref.h:351,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_spatialref.h:358,1
    - Dst: GetPrimeMeridian
      Src: /src/gdal/ogr/ogr_spatialref.h:366,1
    - Dst: static_cast<const char **>
      Src: /src/gdal/ogr/ogr_spatialref.h:366,1
    - Dst: reinterpret_cast<OGRSpatialReferenceH>
      Src: /src/gdal/ogr/ogr_spatialref.h:731,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_spatialref.h:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 741
    functionName: OGRSpatialReference
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 14
    functionsReached:
    - reinterpret_cast<OGRSpatialReferenceH>
    - GetAngularUnits
    - reinterpret_cast<OGRSpatialReference *>
    - CPL_WARN_DEPRECATED
    - static_cast<const char **>
    - GetPrimeMeridian
    - GetLinearUnits
    - GetTargetLinearUnits
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRSpatialReference
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogr_spatialref.h:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: OGRSpatialReferenceReleaser
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRSpatialReferenceReleaser
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation
      Src: /src/gdal/ogr/ogr_spatialref.h:774,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_spatialref.h:929,1
    - Dst: reinterpret_cast<OGRCoordinateTransformationH>
      Src: /src/gdal/ogr/ogr_spatialref.h:941,1
    - Dst: reinterpret_cast<OGRCoordinateTransformation *>
      Src: /src/gdal/ogr/ogr_spatialref.h:951,1
    - Dst: OGRCoordinateTransformation
      Src: /src/gdal/ogr/ogr_spatialref.h:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 980
    functionName: OGRCoordinateTransformation
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 1
    functionsReached:
    - CPLError
    - reinterpret_cast<OGRCoordinateTransformationH>
    - reinterpret_cast<OGRCoordinateTransformation *>
    - OGRCoordinateTransformation
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRCoordinateTransformation
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformationOptions
      Src: /src/gdal/ogr/ogr_spatialref.h:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1021
    functionName: OGRCoordinateTransformationOptions
    functionSourceFile: /src/gdal/ogr/ogr_spatialref.h
    functionUses: 4
    functionsReached:
    - OGRCoordinateTransformationOptions
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRCoordinateTransformationOptions
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDataSetStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: OGRStyleMgr::OGRStyleMgr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRStyleMgr::OGRStyleMgr(OGRStyleTable *poDataSetStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleMgrH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:133,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:134,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hStyleTable
    argTypes:
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: OGR_SM_Create
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgrH>
    - OGRStyleMgr::OGRStyleMgr
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: OGRStyleMgrH
    signature: OGRStyleMgrH OGR_SM_Create(OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: OGRStyleMgr::~OGRStyleMgr()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStyleMgr::~OGRStyleMgr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSM
    argTypes:
    - OGRStyleMgrH
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: OGR_SM_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    linkageType: ''
    returnType: void
    signature: void OGR_SM_Destroy(OGRStyleMgrH hSM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:198,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:200,1
    - Dst: OGRStyleMgr::GetStyleName
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:201,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:202,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - poFeature
    - pszStyleString
    - bNoMatching
    argTypes:
    - OGRFeature*
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: OGRStyleMgr::SetFeatureStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetStyleString
    - OGRStyleMgr::GetStyleName
    linkageType: ''
    returnType: GBool
    signature: "GBool OGRStyleMgr::SetFeatureStyleString(OGRFeature *poFeature,\n
      \                                        const char *pszStyleString,\n                                         GBool
      bNoMatching)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:227,1
    - Dst: OGRStyleMgr::InitStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:231,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: OGRStyleMgr::InitFromFeature
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetStyleString
    - OGRStyleMgr::InitStyleString
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *OGRStyleMgr::InitFromFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:258,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:259,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:261,1
    - Dst: reinterpret_cast<OGRFeature *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSM
    - hFeat
    argTypes:
    - OGRStyleMgrH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: OGR_SM_InitFromFeature
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - reinterpret_cast<OGRFeature *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_SM_InitFromFeature(OGRStyleMgrH hSM, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:285,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:293,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: OGRStyleMgr::InitStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleMgr::InitStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:323,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSM
    - pszStyleString
    argTypes:
    - OGRStyleMgrH
    - char*
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: OGR_SM_InitStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_SM_InitStyleString(OGRStyleMgrH hSM, const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::GetStyleName
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 355
    functionName: OGRStyleMgr::GetStyleName
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 2
    functionsReached:
    - OGRStyleMgr::GetStyleName
    linkageType: ''
    returnType: char
    signature: char *OGRStyleMgr::GetStyleName(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Find
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszStyleName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: OGRStyleMgr::GetStyleByName
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - Find
    linkageType: ''
    returnType: char
    signature: char *OGRStyleMgr::GetStyleByName(const char *pszStyleName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::AddStyle
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszStyleName
    - pszStyleString
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: OGRStyleMgr::AddStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - OGRStyleMgr::AddStyle
    linkageType: ''
    returnType: GBool
    signature: "GBool OGRStyleMgr::AddStyle(const char *pszStyleName,\n                            const
      char *pszStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:429,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:430,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSM
    - pszStyleName
    - pszStyleString
    argTypes:
    - OGRStyleMgrH
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: OGR_SM_AddStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_SM_AddStyle(OGRStyleMgrH hSM, const char *pszStyleName,\n
      \                   const char *pszStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: OGRStyleMgr::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleMgr::InitFromFeature
    linkageType: ''
    returnType: char
    signature: char *OGRStyleMgr::GetStyleString(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:484,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszPart
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 494
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 494
    functionName: OGRStyleMgr::AddPart
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleMgr::AddPart(const char *pszPart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool*::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:513,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:520,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - poStyleTool
    argTypes:
    - OGRStyleTool*
    constantsTouched: []
    func_position:
      end: 531
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 531
    functionName: OGRStyleMgr::AddPart
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OGRStyleTool*::GetStyleString
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleMgr::AddPart(OGRStyleTool *poStyleTool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:551,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:552,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:554,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSM
    - hST
    argTypes:
    - OGRStyleMgrH
    - OGRStyleToolH
    constantsTouched: []
    func_position:
      end: 556
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 556
    functionName: OGR_SM_AddPart
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - reinterpret_cast<OGRStyleTool *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_SM_AddPart(OGRStyleMgrH hSM, OGRStyleToolH hST)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 595
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 595
    functionName: OGRStyleMgr::GetPartCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRStyleMgr::GetPartCount(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:616,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSM
    - pszStyleString
    argTypes:
    - OGRStyleMgrH
    - char*
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: OGR_SM_GetPartCount
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_SM_GetPartCount(OGRStyleMgrH hSM, const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:657,1
    - Dst: OGRStyleMgr::CreateStyleToolFromStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:659,1
    - Dst: OGRStyleTool*::SetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:661,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nPartId
    - pszStyleString
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 667
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 667
    functionName: OGRStyleMgr::GetPart
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - OGRStyleMgr::CreateStyleToolFromStyleString
    - OGRStyleTool*::SetStyleString
    - strlen
    linkageType: ''
    returnType: OGRStyleTool
    signature: OGRStyleTool *OGRStyleMgr::GetPart(int nPartId, const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:693,1
    - Dst: reinterpret_cast<OGRStyleToolH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:695,1
    - Dst: reinterpret_cast<OGRStyleMgr *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSM
    - nPartId
    - pszStyleString
    argTypes:
    - OGRStyleMgrH
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 697
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: OGR_SM_GetPart
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleMgr *>
    - reinterpret_cast<OGRStyleToolH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRStyleToolH
    signature: "OGRStyleToolH OGR_SM_GetPart(OGRStyleMgrH hSM, int nPartId,\n                             const
      char *pszStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:715,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:717,1
    - Dst: OGRStylePen::OGRStylePen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:718,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:719,1
    - Dst: OGRStyleBrush::OGRStyleBrush
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:720,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:721,1
    - Dst: OGRStyleSymbol::OGRStyleSymbol
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:723,1
    - Dst: OGRStyleLabel::OGRStyleLabel
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:724,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 731
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 731
    functionName: OGRStyleMgr::CreateStyleToolFromStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - OGRStyleBrush::OGRStyleBrush
    - CSLDestroy
    - EQUAL
    - OGRStylePen::OGRStylePen
    - OGRStyleSymbol::OGRStyleSymbol
    - CSLCount
    - OGRStyleLabel::OGRStyleLabel
    linkageType: ''
    returnType: OGRStyleTool
    signature: 'OGRStyleTool *

      OGRStyleMgr::CreateStyleToolFromStyleString(const char *pszStyleString)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: OGRStyleTable::OGRStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRStyleTable::OGRStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleTableH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:765,1
    - Dst: OGRStyleTable::OGRStyleTable
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 766
    functionName: OGR_STBL_Create
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTableH>
    - OGRStyleTable::OGRStyleTable
    linkageType: ''
    returnType: OGRStyleTableH
    signature: OGRStyleTableH OGR_STBL_Create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 783
    functionName: OGRStyleTable::Clear
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void OGRStyleTable::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable::Clear
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: OGRStyleTable::~OGRStyleTable()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable::Clear
    linkageType: ''
    returnType: void
    signature: void OGRStyleTable::~OGRStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSTBL
    argTypes:
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: OGR_STBL_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_STBL_Destroy(OGRStyleTableH hSTBL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:825,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:830,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 843
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 843
    functionName: OGRStyleTable::GetStyleName
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - EQUAL
    - substr
    linkageType: ''
    returnType: char
    signature: char *OGRStyleTable::GetStyleName(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:874,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pszName
    - pszStyleString
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 877
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 877
    functionName: OGRStyleTable::AddStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLString
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleTable::AddStyle(const char *pszName, const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:899,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hStyleTable
    - pszName
    - pszStyleString
    argTypes:
    - OGRStyleTableH
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 903
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 903
    functionName: OGR_STBL_AddStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_STBL_AddStyle(OGRStyleTableH hStyleTable, const char *pszName,\n
      \                     const char *pszStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLRemoveStrings
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 928
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 928
    functionName: OGRStyleTable::RemoveStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLRemoveStrings
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleTable::RemoveStyle(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable::RemoveStyle
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:954,1
    - Dst: OGRStyleTable::AddStyle
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszStyleString
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 956
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 956
    functionName: OGRStyleTable::ModifyStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable::RemoveStyle
    - OGRStyleTable::AddStyle
    linkageType: ''
    returnType: GBool
    signature: "GBool OGRStyleTable::ModifyStyle(const char *pszName,\n                                 const
      char *pszStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSave
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 982
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 982
    functionName: OGRStyleTable::SaveStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLSave
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleTable::SaveStyleTable(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1001,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1002,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hStyleTable
    - pszFilename
    argTypes:
    - OGRStyleTableH
    - char*
    constantsTouched: []
    func_position:
      end: 1006
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1006
    functionName: OGR_STBL_SaveStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_STBL_SaveStyleTable(OGRStyleTableH hStyleTable, const char
      *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1028,1
    - Dst: CSLLoad
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1033
    functionName: OGRStyleTable::LoadStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLLoad
    - CSLDestroy
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleTable::LoadStyleTable(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1052,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1053,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hStyleTable
    - pszFilename
    argTypes:
    - OGRStyleTableH
    - char*
    constantsTouched: []
    func_position:
      end: 1057
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1057
    functionName: OGR_STBL_LoadStyleTable
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_STBL_LoadStyleTable(OGRStyleTableH hStyleTable, const char
      *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1088
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1088
    functionName: OGRStyleTable::Find
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRStyleTable::Find(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1107,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1108,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hStyleTable
    - pszName
    argTypes:
    - OGRStyleTableH
    - char*
    constantsTouched: []
    func_position:
      end: 1111
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1111
    functionName: OGR_STBL_Find
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_STBL_Find(OGRStyleTableH hStyleTable, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1128,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1128,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1129,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1129,1
    - Dst: CSLPrint
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1134
    functionName: OGRStyleTable::Print
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLPrint
    - CPL_IGNORE_RET_VAL
    - VSIFPrintf
    linkageType: ''
    returnType: void
    signature: void OGRStyleTable::Print(FILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1167
    functionName: OGRStyleTable::IsExist
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRStyleTable::IsExist(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable::OGRStyleTable
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1185,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: OGRStyleTable::Clone
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    - OGRStyleTable::OGRStyleTable
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRStyleTable::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1201
    functionName: OGRStyleTable::ResetStyleStringReading
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRStyleTable::ResetStyleStringReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1219,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hStyleTable
    argTypes:
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 1222
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1222
    functionName: OGR_STBL_ResetStyleStringReading
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_STBL_ResetStyleStringReading(OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1236,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1254
    functionName: OGRStyleTable::GetNextStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - substr
    linkageType: ''
    returnType: char
    signature: char *OGRStyleTable::GetNextStyle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1272,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hStyleTable
    argTypes:
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 1275
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1275
    functionName: OGR_STBL_GetNextStyle
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_STBL_GetNextStyle(OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1291
    functionName: OGRStyleTable::GetLastStyleName
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRStyleTable::GetLastStyleName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1310,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hStyleTable
    argTypes:
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 1313
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1313
    functionName: OGR_STBL_GetLastStyleName
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTable *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_STBL_GetLastStyleName(OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eClassId
    argTypes:
    - OGRSTClassId
    constantsTouched: []
    func_position:
      end: 1323
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1323
    functionName: OGRStyleTool::OGRStyleTool
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRStyleTool::OGRStyleTool(OGRSTClassId eClassId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleToolH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1346,1
    - Dst: OGRStylePen::OGRStylePen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1346,1
    - Dst: reinterpret_cast<OGRStyleToolH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1348,1
    - Dst: OGRStyleBrush::OGRStyleBrush
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1348,1
    - Dst: reinterpret_cast<OGRStyleToolH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1350,1
    - Dst: OGRStyleSymbol::OGRStyleSymbol
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1350,1
    - Dst: reinterpret_cast<OGRStyleToolH>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1352,1
    - Dst: OGRStyleLabel::OGRStyleLabel
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - eClassId
    argTypes:
    - OGRSTClassId
    constantsTouched: []
    func_position:
      end: 1356
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1356
    functionName: OGR_ST_Create
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleBrush::OGRStyleBrush
    - OGRStylePen::OGRStylePen
    - OGRStyleSymbol::OGRStyleSymbol
    - OGRStyleLabel::OGRStyleLabel
    - reinterpret_cast<OGRStyleToolH>
    linkageType: ''
    returnType: OGRStyleToolH
    signature: OGRStyleToolH OGR_ST_Create(OGRSTClassId eClassId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: OGRStyleTool::~OGRStyleTool()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStyleTool::~OGRStyleTool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hST
    argTypes:
    - OGRStyleToolH
    constantsTouched: []
    func_position:
      end: 1380
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1380
    functionName: OGR_ST_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTool *>
    linkageType: ''
    returnType: void
    signature: void OGR_ST_Destroy(OGRStyleToolH hST)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1393
    functionName: OGRStyleTool::SetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRStyleTool::SetStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStyleModified
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1411,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1413,1
    - Dst: OGRStyleTool::GetType
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1416,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1458,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1462,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1466,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1497,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 3
    argNames:
    - pasStyleParam
    - pasStyleValue
    - nSize
    argTypes:
    - OGRStyleParamId*
    - OGRStyleValue*
    - int
    constantsTouched: []
    func_position:
      end: 1503
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1503
    functionName: OGRStyleTool::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetType
    - CPLStrdup
    - CPLString
    - IsStyleModified
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *OGRStyleTool::GetStyleString(const OGRStyleParamId *pasStyleParam,\n
      \                                        OGRStyleValue *pasStyleValue,\n                                         int
      nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1538,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1540,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1541,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1542,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - pszColor
    - nRed
    - nGreen
    - nBlue
    - nTransparance
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1546
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1546
    functionName: OGRStyleTool::GetRGBFromString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - static_cast<int>
    linkageType: ''
    returnType: GBool
    signature: "GBool OGRStyleTool::GetRGBFromString(const char *pszColor, int &nRed,\n
      \                                    int &nGreen, int &nBlue,\n                                     int
      &nTransparance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1565,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1578,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1579,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1579,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - pszId
    - pszWanted
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1583
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1583
    functionName: OGRStyleTool::GetSpecificId
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: int OGRStyleTool::GetSpecificId(const char *pszId, const char *pszWanted)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1599
    functionName: OGRStyleTool::GetType
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRSTClassId
    signature: OGRSTClassId OGRStyleTool::GetType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1617,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hST
    argTypes:
    - OGRStyleToolH
    constantsTouched: []
    func_position:
      end: 1619
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1619
    functionName: OGR_ST_GetType
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTool *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSTClassId
    signature: OGRSTClassId OGR_ST_GetType(OGRStyleToolH hST)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1643,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hST
    argTypes:
    - OGRStyleToolH
    constantsTouched: []
    func_position:
      end: 1645
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1645
    functionName: OGR_ST_GetUnit
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTool *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSTUnitId
    signature: OGRSTUnitId OGR_ST_GetUnit(OGRStyleToolH hST)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - eUnit
    - dfGroundPaperScale
    argTypes:
    - OGRSTUnitId
    - double
    constantsTouched: []
    func_position:
      end: 1662
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1662
    functionName: OGRStyleTool::SetUnit
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRStyleTool::SetUnit(OGRSTUnitId eUnit, double dfGroundPaperScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1682,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hST
    - eUnit
    - dfGroundPaperScale
    argTypes:
    - OGRStyleToolH
    - OGRSTUnitId
    - double
    constantsTouched: []
    func_position:
      end: 1684
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1684
    functionName: OGR_ST_SetUnit
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - reinterpret_cast<OGRStyleTool *>
    linkageType: ''
    returnType: void
    signature: "void OGR_ST_SetUnit(OGRStyleToolH hST, OGRSTUnitId eUnit,\n                    double
      dfGroundPaperScale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStyleParsed
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1694,1
    - Dst: StyleParsed
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1697,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1709,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1709,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1711,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1712,1
    - Dst: OGRStyleTool::GetType
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1724,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1727,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1729,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1733,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1734,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1739,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1741,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1745,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1751,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1753,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1757,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1758,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1763,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1765,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1769,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1770,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1775,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1777,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1820,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1822,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1825,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1832,1
    - Dst: OGRStyleTool::SetInternalInputUnitFromParam
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1835,1
    - Dst: OGRStyleTool::SetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1840,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1848,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1854,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1855,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 3
    argNames:
    - pasStyle
    - pasValue
    - nCount
    argTypes:
    - OGRStyleParamId*
    - OGRStyleValue*
    - int
    constantsTouched: []
    func_position:
      end: 1858
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1858
    functionName: OGRStyleTool::Parse
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetType
    - CPLError
    - CSLDestroy
    - EQUAL
    - StyleParsed
    - IsStyleParsed
    - CSLCount
    - OGRStyleTool::SetParamStr
    - OGRStyleTool::SetInternalInputUnitFromParam
    linkageType: ''
    returnType: GBool
    signature: "GBool OGRStyleTool::Parse(const OGRStyleParamId *pasStyle,\n                          OGRStyleValue
      *pasValue, int nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1875,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1879,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1882,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1886,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1889,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1893,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1896,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1900,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1903,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1907,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1910,1
    - Dst: OGRStyleTool::SetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1916
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1916
    functionName: OGRStyleTool::SetInternalInputUnitFromParam
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - strstr
    - OGRStyleTool::SetUnit
    linkageType: ''
    returnType: void
    signature: void OGRStyleTool::SetInternalInputUnitFromParam(char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1923,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - dfValue
    - eInputUnit
    argTypes:
    - double
    - OGRSTUnitId
    constantsTouched: []
    func_position:
      end: 1978
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1978
    functionName: OGRStyleTool::ComputeWithUnit
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - GetUnit
    linkageType: ''
    returnType: double
    signature: double OGRStyleTool::ComputeWithUnit(double dfValue, OGRSTUnitId eInputUnit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1985,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1986,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nValue
    - eUnit
    argTypes:
    - int
    - OGRSTUnitId
    constantsTouched: []
    func_position:
      end: 1987
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1987
    functionName: OGRStyleTool::ComputeWithUnit
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - static_cast<int>
    - OGRStyleTool::ComputeWithUnit
    linkageType: ''
    returnType: int
    signature: int OGRStyleTool::ComputeWithUnit(int nValue, OGRSTUnitId eUnit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2005,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2023,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2023,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2026,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2030,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2030,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2033,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - bValueIsNull
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - GBool
    constantsTouched: []
    func_position:
      end: 2040
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2040
    functionName: OGRStyleTool::GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::ComputeWithUnit
    - OGRStyleTool::Parse
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *OGRStyleTool::GetParamStr(const OGRStyleParamId &sStyleParam,\n
      \                                     const OGRStyleValue &sStyleValue,\n                                      GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2059,1
    - Dst: OGRStyleTool::GetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - bValueIsNull
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - GBool
    constantsTouched: []
    func_position:
      end: 2061
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2061
    functionName: OGRStyleTool::GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamDbl
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: "int OGRStyleTool::GetParamNum(const OGRStyleParamId &sStyleParam,\n
      \                             const OGRStyleValue &sStyleValue,\n                              GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2080,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2096,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2096,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2099,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2102,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2107,1
    - Dst: OGRStyleTool::ComputeWithUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2108,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2110,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - bValueIsNull
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - GBool
    constantsTouched: []
    func_position:
      end: 2117
      start: 2076
    functionDepth: 2
    functionLinenumber: 2076
    functionLinenumberEnd: 2117
    functionName: OGRStyleTool::GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - static_cast<double>
    - OGRStyleTool::Parse
    - OGRStyleTool::ComputeWithUnit
    linkageType: ''
    returnType: double
    signature: "double OGRStyleTool::GetParamDbl(const OGRStyleParamId &sStyleParam,\n
      \                                const OGRStyleValue &sStyleValue,\n                                 GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2135,1
    - Dst: StyleModified
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2136,1
    - Dst: GetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2138,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2143,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2146,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2149,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - pszParamString
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - char*
    constantsTouched: []
    func_position:
      end: 2158
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2158
    functionName: OGRStyleTool::SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - CPLStrdup
    - StyleModified
    - atoi
    - OGRStyleTool::Parse
    - GetUnit
    linkageType: ''
    returnType: void
    signature: "void OGRStyleTool::SetParamStr(const OGRStyleParamId &sStyleParam,\n
      \                              OGRStyleValue &sStyleValue,\n                               const
      char *pszParamString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2175,1
    - Dst: StyleModified
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2176,1
    - Dst: GetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2178,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2184,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2184,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - nParam
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - int
    constantsTouched: []
    func_position:
      end: 2199
      start: 2172
    functionDepth: 2
    functionLinenumber: 2172
    functionLinenumberEnd: 2199
    functionName: OGRStyleTool::SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - CPLStrdup
    - StyleModified
    - OGRStyleTool::Parse
    - GetUnit
    - CPLString
    linkageType: ''
    returnType: void
    signature: "void OGRStyleTool::SetParamNum(const OGRStyleParamId &sStyleParam,\n
      \                              OGRStyleValue &sStyleValue, int nParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2216,1
    - Dst: StyleModified
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2217,1
    - Dst: GetUnit
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2219,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2224,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2224,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2230,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sStyleParam
    - sStyleValue
    - dfParam
    argTypes:
    - OGRStyleParamId
    - OGRStyleValue
    - double
    constantsTouched: []
    func_position:
      end: 2239
      start: 2213
    functionDepth: 2
    functionLinenumber: 2213
    functionLinenumberEnd: 2239
    functionName: OGRStyleTool::SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLStrdup
    - StyleModified
    - OGRStyleTool::Parse
    - GetUnit
    - CPLString
    linkageType: ''
    returnType: void
    signature: "void OGRStyleTool::SetParamDbl(const OGRStyleParamId &sStyleParam,\n
      \                              OGRStyleValue &sStyleValue, double dfParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2261,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2262,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2267,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2270,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2271,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2274,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2275,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2278,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2279,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2282,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - hST
    - eParam
    - bValueIsNull
    argTypes:
    - OGRStyleToolH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2291
      start: 2259
    functionDepth: 0
    functionLinenumber: 2259
    functionLinenumberEnd: 2291
    functionName: OGR_ST_GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRStyleBrush *>
    linkageType: ''
    returnType: char
    signature: char *OGR_ST_GetParamStr(OGRStyleToolH hST, int eParam, int *bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2313,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2314,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2319,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2322,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2323,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2326,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2327,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2330,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2331,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2334,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - hST
    - eParam
    - bValueIsNull
    argTypes:
    - OGRStyleToolH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2343
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2343
    functionName: OGR_ST_GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRStyleBrush *>
    linkageType: ''
    returnType: int
    signature: int OGR_ST_GetParamNum(OGRStyleToolH hST, int eParam, int *bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2365,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2366,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2371,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2374,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2375,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2378,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2379,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2382,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2383,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2386,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - hST
    - eParam
    - bValueIsNull
    argTypes:
    - OGRStyleToolH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2395
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2395
    functionName: OGR_ST_GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRStyleBrush *>
    linkageType: ''
    returnType: double
    signature: double OGR_ST_GetParamDbl(OGRStyleToolH hST, int eParam, int *bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2415,1
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2416,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2418,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2421,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2422,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2425,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2426,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2429,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2430,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2433,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hST
    - eParam
    - pszValue
    argTypes:
    - OGRStyleToolH
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2439
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2439
    functionName: OGR_ST_SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - reinterpret_cast<OGRStyleBrush *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER0
    linkageType: ''
    returnType: void
    signature: void OGR_ST_SetParamStr(OGRStyleToolH hST, int eParam, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2459,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2461,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2464,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2465,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2468,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2469,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2472,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2473,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2476,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - hST
    - eParam
    - nValue
    argTypes:
    - OGRStyleToolH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2482
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2482
    functionName: OGR_ST_SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - reinterpret_cast<OGRStyleBrush *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER0
    linkageType: ''
    returnType: void
    signature: void OGR_ST_SetParamNum(OGRStyleToolH hST, int eParam, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2502,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2504,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2507,1
    - Dst: static_cast<OGRSTPenParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2508,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2511,1
    - Dst: static_cast<OGRSTBrushParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2512,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2515,1
    - Dst: static_cast<OGRSTSymbolParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2516,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2519,1
    - Dst: static_cast<OGRSTLabelParam>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - hST
    - eParam
    - dfValue
    argTypes:
    - OGRStyleToolH
    - int
    - double
    constantsTouched: []
    func_position:
      end: 2525
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2525
    functionName: OGR_ST_SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - reinterpret_cast<OGRStyleBrush *>
    - static_cast<OGRSTPenParam>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - static_cast<OGRSTBrushParam>
    - static_cast<OGRSTLabelParam>
    - static_cast<OGRSTSymbolParam>
    - VALIDATE_POINTER0
    linkageType: ''
    returnType: void
    signature: void OGR_ST_SetParamDbl(OGRStyleToolH hST, int eParam, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2554,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2556,1
    - Dst: reinterpret_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2559,1
    - Dst: reinterpret_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2562,1
    - Dst: reinterpret_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2565,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - hST
    argTypes:
    - OGRStyleToolH
    constantsTouched: []
    func_position:
      end: 2575
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2575
    functionName: OGR_ST_GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleSymbol *>
    - reinterpret_cast<OGRStylePen *>
    - reinterpret_cast<OGRStyleTool *>
    - reinterpret_cast<OGRStyleLabel *>
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRStyleBrush *>
    linkageType: ''
    returnType: char
    signature: char *OGR_ST_GetStyleString(OGRStyleToolH hST)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2602,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2603,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2604,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2605,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2606,1
    - Dst: reinterpret_cast<OGRStyleTool *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - hST
    - pszColor
    - pnRed
    - pnGreen
    - pnBlue
    - pnAlpha
    argTypes:
    - OGRStyleToolH
    - char*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2610
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2610
    functionName: OGR_ST_GetRGBFromString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRStyleTool *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_ST_GetRGBFromString(OGRStyleToolH hST, const char *pszColor,
      int *pnRed,\n                            int *pnGreen, int *pnBlue, int *pnAlpha)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRStyleValue *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2624,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2627
    functionName: OGRStylePen::OGRStylePen
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRStyleValue *>
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void OGRStylePen::OGRStylePen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2639,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2645
    functionName: OGRStylePen::~OGRStylePen()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStylePen::~OGRStylePen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2653,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2650
    functionDepth: 2
    functionLinenumber: 2650
    functionLinenumberEnd: 2655
    functionName: OGRStylePen::Parse
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::Parse
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStylePen::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTPenParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2664
      start: 2660
    functionDepth: 3
    functionLinenumber: 2660
    functionLinenumberEnd: 2664
    functionName: OGRStylePen::GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamStr
    linkageType: ''
    returnType: char
    signature: char *OGRStylePen::GetParamStr(OGRSTPenParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTPenParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2673
      start: 2669
    functionDepth: 2
    functionLinenumber: 2669
    functionLinenumberEnd: 2673
    functionName: OGRStylePen::GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamNum
    linkageType: ''
    returnType: int
    signature: int OGRStylePen::GetParamNum(OGRSTPenParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTPenParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2682
      start: 2678
    functionDepth: 3
    functionLinenumber: 2678
    functionLinenumberEnd: 2682
    functionName: OGRStylePen::GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamDbl
    linkageType: ''
    returnType: double
    signature: double OGRStylePen::GetParamDbl(OGRSTPenParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - pszParamString
    argTypes:
    - OGRSTPenParam
    - char*
    constantsTouched: []
    func_position:
      end: 2692
      start: 2688
    functionDepth: 3
    functionLinenumber: 2688
    functionLinenumberEnd: 2692
    functionName: OGRStylePen::SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamStr
    linkageType: ''
    returnType: void
    signature: void OGRStylePen::SetParamStr(OGRSTPenParam eParam, const char *pszParamString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - nParam
    argTypes:
    - OGRSTPenParam
    - int
    constantsTouched: []
    func_position:
      end: 2701
      start: 2697
    functionDepth: 3
    functionLinenumber: 2697
    functionLinenumberEnd: 2701
    functionName: OGRStylePen::SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamNum
    linkageType: ''
    returnType: void
    signature: void OGRStylePen::SetParamNum(OGRSTPenParam eParam, int nParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - dfParam
    argTypes:
    - OGRSTPenParam
    - double
    constantsTouched: []
    func_position:
      end: 2710
      start: 2706
    functionDepth: 3
    functionLinenumber: 2706
    functionLinenumberEnd: 2710
    functionName: OGRStylePen::SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamDbl
    linkageType: ''
    returnType: void
    signature: void OGRStylePen::SetParamDbl(OGRSTPenParam eParam, double dfParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2717,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2715
    functionDepth: 2
    functionLinenumber: 2715
    functionLinenumberEnd: 2719
    functionName: OGRStylePen::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::GetStyleString
    linkageType: ''
    returnType: char
    signature: char *OGRStylePen::GetStyleString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRStyleValue *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2727,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2725
    functionDepth: 1
    functionLinenumber: 2725
    functionLinenumberEnd: 2730
    functionName: OGRStyleBrush::OGRStyleBrush
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRStyleValue *>
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void OGRStyleBrush::OGRStyleBrush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2742,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2748
    functionName: OGRStyleBrush::~OGRStyleBrush()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStyleBrush::~OGRStyleBrush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2755,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 2757
    functionName: OGRStyleBrush::Parse
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::Parse
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleBrush::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTBrushParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2767
      start: 2762
    functionDepth: 3
    functionLinenumber: 2762
    functionLinenumberEnd: 2767
    functionName: OGRStyleBrush::GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamStr
    linkageType: ''
    returnType: char
    signature: "char *OGRStyleBrush::GetParamStr(OGRSTBrushParam eParam,\n                                       GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTBrushParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2776
      start: 2772
    functionDepth: 2
    functionLinenumber: 2772
    functionLinenumberEnd: 2776
    functionName: OGRStyleBrush::GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamNum
    linkageType: ''
    returnType: int
    signature: int OGRStyleBrush::GetParamNum(OGRSTBrushParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTBrushParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2785
      start: 2781
    functionDepth: 3
    functionLinenumber: 2781
    functionLinenumberEnd: 2785
    functionName: OGRStyleBrush::GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamDbl
    linkageType: ''
    returnType: double
    signature: double OGRStyleBrush::GetParamDbl(OGRSTBrushParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - pszParamString
    argTypes:
    - OGRSTBrushParam
    - char*
    constantsTouched: []
    func_position:
      end: 2795
      start: 2790
    functionDepth: 3
    functionLinenumber: 2790
    functionLinenumberEnd: 2795
    functionName: OGRStyleBrush::SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamStr
    linkageType: ''
    returnType: void
    signature: "void OGRStyleBrush::SetParamStr(OGRSTBrushParam eParam,\n                                const
      char *pszParamString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - nParam
    argTypes:
    - OGRSTBrushParam
    - int
    constantsTouched: []
    func_position:
      end: 2804
      start: 2800
    functionDepth: 3
    functionLinenumber: 2800
    functionLinenumberEnd: 2804
    functionName: OGRStyleBrush::SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamNum
    linkageType: ''
    returnType: void
    signature: void OGRStyleBrush::SetParamNum(OGRSTBrushParam eParam, int nParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - dfParam
    argTypes:
    - OGRSTBrushParam
    - double
    constantsTouched: []
    func_position:
      end: 2813
      start: 2809
    functionDepth: 3
    functionLinenumber: 2809
    functionLinenumberEnd: 2813
    functionName: OGRStyleBrush::SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamDbl
    linkageType: ''
    returnType: void
    signature: void OGRStyleBrush::SetParamDbl(OGRSTBrushParam eParam, double dfParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2820,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2818
    functionDepth: 2
    functionLinenumber: 2818
    functionLinenumberEnd: 2822
    functionName: OGRStyleBrush::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::GetStyleString
    linkageType: ''
    returnType: char
    signature: char *OGRStyleBrush::GetStyleString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRStyleValue *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2829,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2832
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2832
    functionName: OGRStyleSymbol::OGRStyleSymbol
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRStyleValue *>
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void OGRStyleSymbol::OGRStyleSymbol()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2844,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2838
    functionDepth: 0
    functionLinenumber: 2838
    functionLinenumberEnd: 2850
    functionName: OGRStyleSymbol::~OGRStyleSymbol()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStyleSymbol::~OGRStyleSymbol()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2857,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2855
    functionDepth: 2
    functionLinenumber: 2855
    functionLinenumberEnd: 2859
    functionName: OGRStyleSymbol::Parse
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::Parse
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleSymbol::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTSymbolParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2869
      start: 2864
    functionDepth: 3
    functionLinenumber: 2864
    functionLinenumberEnd: 2869
    functionName: OGRStyleSymbol::GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamStr
    linkageType: ''
    returnType: char
    signature: "char *OGRStyleSymbol::GetParamStr(OGRSTSymbolParam eParam,\n                                        GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTSymbolParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2878
      start: 2874
    functionDepth: 2
    functionLinenumber: 2874
    functionLinenumberEnd: 2878
    functionName: OGRStyleSymbol::GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamNum
    linkageType: ''
    returnType: int
    signature: int OGRStyleSymbol::GetParamNum(OGRSTSymbolParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTSymbolParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 3
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: OGRStyleSymbol::GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamDbl
    linkageType: ''
    returnType: double
    signature: double OGRStyleSymbol::GetParamDbl(OGRSTSymbolParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - pszParamString
    argTypes:
    - OGRSTSymbolParam
    - char*
    constantsTouched: []
    func_position:
      end: 2897
      start: 2892
    functionDepth: 3
    functionLinenumber: 2892
    functionLinenumberEnd: 2897
    functionName: OGRStyleSymbol::SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamStr
    linkageType: ''
    returnType: void
    signature: "void OGRStyleSymbol::SetParamStr(OGRSTSymbolParam eParam,\n                                 const
      char *pszParamString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - nParam
    argTypes:
    - OGRSTSymbolParam
    - int
    constantsTouched: []
    func_position:
      end: 2906
      start: 2902
    functionDepth: 3
    functionLinenumber: 2902
    functionLinenumberEnd: 2906
    functionName: OGRStyleSymbol::SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamNum
    linkageType: ''
    returnType: void
    signature: void OGRStyleSymbol::SetParamNum(OGRSTSymbolParam eParam, int nParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - dfParam
    argTypes:
    - OGRSTSymbolParam
    - double
    constantsTouched: []
    func_position:
      end: 2915
      start: 2911
    functionDepth: 3
    functionLinenumber: 2911
    functionLinenumberEnd: 2915
    functionName: OGRStyleSymbol::SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamDbl
    linkageType: ''
    returnType: void
    signature: void OGRStyleSymbol::SetParamDbl(OGRSTSymbolParam eParam, double dfParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2922,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2920
    functionDepth: 2
    functionLinenumber: 2920
    functionLinenumberEnd: 2924
    functionName: OGRStyleSymbol::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::GetStyleString
    linkageType: ''
    returnType: char
    signature: char *OGRStyleSymbol::GetStyleString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRStyleValue *>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2932,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2935
    functionName: OGRStyleLabel::OGRStyleLabel
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRStyleValue *>
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void OGRStyleLabel::OGRStyleLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2947,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2941
    functionDepth: 0
    functionLinenumber: 2941
    functionLinenumberEnd: 2953
    functionName: OGRStyleLabel::~OGRStyleLabel()
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRStyleLabel::~OGRStyleLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::Parse
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2960,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 2
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: OGRStyleLabel::Parse
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::Parse
    linkageType: ''
    returnType: GBool
    signature: GBool OGRStyleLabel::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTLabelParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2972
      start: 2967
    functionDepth: 3
    functionLinenumber: 2967
    functionLinenumberEnd: 2972
    functionName: OGRStyleLabel::GetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamStr
    linkageType: ''
    returnType: char
    signature: "char *OGRStyleLabel::GetParamStr(OGRSTLabelParam eParam,\n                                       GBool
      &bValueIsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTLabelParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2981
      start: 2977
    functionDepth: 2
    functionLinenumber: 2977
    functionLinenumberEnd: 2981
    functionName: OGRStyleLabel::GetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamNum
    linkageType: ''
    returnType: int
    signature: int OGRStyleLabel::GetParamNum(OGRSTLabelParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - bValueIsNull
    argTypes:
    - OGRSTLabelParam
    - GBool
    constantsTouched: []
    func_position:
      end: 2990
      start: 2986
    functionDepth: 3
    functionLinenumber: 2986
    functionLinenumberEnd: 2990
    functionName: OGRStyleLabel::GetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::GetParamDbl
    linkageType: ''
    returnType: double
    signature: double OGRStyleLabel::GetParamDbl(OGRSTLabelParam eParam, GBool &bValueIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamStr
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:2998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - pszParamString
    argTypes:
    - OGRSTLabelParam
    - char*
    constantsTouched: []
    func_position:
      end: 3000
      start: 2995
    functionDepth: 3
    functionLinenumber: 2995
    functionLinenumberEnd: 3000
    functionName: OGRStyleLabel::SetParamStr
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamStr
    linkageType: ''
    returnType: void
    signature: "void OGRStyleLabel::SetParamStr(OGRSTLabelParam eParam,\n                                const
      char *pszParamString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamNum
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:3007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - nParam
    argTypes:
    - OGRSTLabelParam
    - int
    constantsTouched: []
    func_position:
      end: 3009
      start: 3005
    functionDepth: 3
    functionLinenumber: 3005
    functionLinenumberEnd: 3009
    functionName: OGRStyleLabel::SetParamNum
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamNum
    linkageType: ''
    returnType: void
    signature: void OGRStyleLabel::SetParamNum(OGRSTLabelParam eParam, int nParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::SetParamDbl
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eParam
    - dfParam
    argTypes:
    - OGRSTLabelParam
    - double
    constantsTouched: []
    func_position:
      end: 3018
      start: 3014
    functionDepth: 3
    functionLinenumber: 3014
    functionLinenumberEnd: 3018
    functionName: OGRStyleLabel::SetParamDbl
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTool::SetParamDbl
    linkageType: ''
    returnType: void
    signature: void OGRStyleLabel::SetParamDbl(OGRSTLabelParam eParam, double dfParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTool::GetStyleString
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:3025,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrfeaturestyle.cpp:3026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3023
    functionDepth: 2
    functionLinenumber: 3023
    functionLinenumberEnd: 3027
    functionName: OGRStyleLabel::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrfeaturestyle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleTool::GetStyleString
    linkageType: ''
    returnType: char
    signature: char *OGRStyleLabel::GetStyleString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomCoordinatePrecision::OGRGeomCoordinatePrecision
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: OGRGeomCoordinatePrecisionCreate
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomCoordinatePrecision::OGRGeomCoordinatePrecision
    linkageType: ''
    returnType: OGRGeomCoordinatePrecisionH
    signature: OGRGeomCoordinatePrecisionH OGRGeomCoordinatePrecisionCreate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeomCoordPrec
    argTypes:
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: OGRGeomCoordinatePrecisionDestroy
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinatePrecisionDestroy(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeomCoordPrec
    argTypes:
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: OGRGeomCoordinatePrecisionGetXYResolution
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OGRGeomCoordinatePrecisionGetXYResolution(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeomCoordPrec
    argTypes:
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: OGRGeomCoordinatePrecisionGetZResolution
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OGRGeomCoordinatePrecisionGetZResolution(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hGeomCoordPrec
    argTypes:
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: OGRGeomCoordinatePrecisionGetMResolution
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OGRGeomCoordinatePrecisionGetMResolution(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:131,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:133,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:136,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:136,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: OGRGeomCoordinatePrecisionGetFormats
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::AddString
    - first::c_str
    - CPLStringList::StealList
    - VALIDATE_POINTER1
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: 'char **

      OGRGeomCoordinatePrecisionGetFormats(OGRGeomCoordinatePrecisionH hGeomCoordPrec)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:160,1
    - Dst: OGRGeomCoordinatePrecisionH::oFormatSpecificOptions::find
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:164,1
    - Dst: OGRGeomCoordinatePrecisionH::oFormatSpecificOptions::end
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:165,1
    - Dst: auto::second::List
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGeomCoordPrec
    - pszFormatName
    argTypes:
    - OGRGeomCoordinatePrecisionH
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: OGRGeomCoordinatePrecisionGetFormatSpecificOptions
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - auto::second::List
    - OGRGeomCoordinatePrecisionH::oFormatSpecificOptions::end
    - OGRGeomCoordinatePrecisionH::oFormatSpecificOptions::find
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: CSLConstList
    signature: "CSLConstList OGRGeomCoordinatePrecisionGetFormatSpecificOptions(\n
      \   OGRGeomCoordinatePrecisionH hGeomCoordPrec, const char *pszFormatName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeomCoordPrec
    - pszFormatName
    - papszOptions
    argTypes:
    - OGRGeomCoordinatePrecisionH
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: OGRGeomCoordinatePrecisionSetFormatSpecificOptions
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinatePrecisionSetFormatSpecificOptions(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec, const char *pszFormatName,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hGeomCoordPrec
    - dfXYResolution
    - dfZResolution
    - dfMResolution
    argTypes:
    - OGRGeomCoordinatePrecisionH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: OGRGeomCoordinatePrecisionSet
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinatePrecisionSet(OGRGeomCoordinatePrecisionH hGeomCoordPrec,\n
      \                                  double dfXYResolution, double dfZResolution,\n
      \                                  double dfMResolution)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:255,1
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:256,1
    - Dst: OGRGeomCoordinatePrecisionH::SetFromMeter
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:257,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hGeomCoordPrec
    - hSRS
    - dfXYMeterResolution
    - dfZMeterResolution
    - dfMResolution
    argTypes:
    - OGRGeomCoordinatePrecisionH
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: OGRGeomCoordinatePrecisionSetFromMeter
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - OGRGeomCoordinatePrecisionH::SetFromMeter
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinatePrecisionSetFromMeter(\n    OGRGeomCoordinatePrecisionH
      hGeomCoordPrec, OGRSpatialReferenceH hSRS,\n    double dfXYMeterResolution,
      double dfZMeterResolution, double dfMResolution)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:274,1
    - Dst: OGRSpatialReference*::GetSemiMajor
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:276,1
    - Dst: OGRSpatialReference*::GetLinearUnits
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:280,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:283,1
    - Dst: OGRSpatialReference*::GetAxis
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - poSRS
    - dfXYFactor
    - dfZFactor
    argTypes:
    - OGRSpatialReference*
    - double
    - double
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: GetConversionFactors
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::GetSemiMajor
    - OGRSpatialReference*::GetAxis
    - OGRSpatialReference*::IsGeographic
    - OGRSpatialReference*::GetLinearUnits
    - OGRSpatialReference*::GetAxesCount
    linkageType: ''
    returnType: void
    signature: "void GetConversionFactors(const OGRSpatialReference *poSRS,\n                                 double
      &dfXYFactor, double &dfZFactor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetConversionFactors
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - poSRS
    - dfXYMeterResolution
    - dfZMeterResolution
    - dfMResolutionIn
    argTypes:
    - OGRSpatialReference*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: OGRGeomCoordinatePrecision::SetFromMeter
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - GetConversionFactors
    linkageType: ''
    returnType: void
    signature: "void OGRGeomCoordinatePrecision::SetFromMeter(const OGRSpatialReference
      *poSRS,\n                                              double dfXYMeterResolution,\n
      \                                             double dfZMeterResolution,\n                                              double
      dfMResolutionIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetConversionFactors
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:345,1
    - Dst: GetConversionFactors
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:349,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - poSRSSrc
    - poSRSDst
    argTypes:
    - OGRSpatialReference*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: OGRGeomCoordinatePrecision::ConvertToOtherSRS
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::IsSame
    - GetConversionFactors
    linkageType: ''
    returnType: OGRGeomCoordinatePrecision
    signature: "OGRGeomCoordinatePrecision OGRGeomCoordinatePrecision::ConvertToOtherSRS(\n
      \   const OGRSpatialReference *poSRSSrc,\n    const OGRSpatialReference *poSRSDst)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:381,1
    - Dst: std::ceil
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:382,1
    - Dst: std::log10
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:382,1
    - Dst: min
      Src: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfResolution
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: OGRGeomCoordinatePrecision::ResolutionToPrecision
    functionSourceFile: /src/gdal/ogr/ogrgeomcoordinateprecision.cpp
    functionUses: 1
    functionsReached:
    - min
    - std::log10
    - std::ceil
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRGeomCoordinatePrecision::ResolutionToPrecision(double dfResolution)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 83
    functionName: OGRGeomCoordinatePrecision
    functionSourceFile: /src/gdal/ogr/ogr_geomcoordinateprecision.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRGeomCoordinatePrecision
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogr_api.cpp:41,1
    - Dst: GEOSversion
      Src: /src/gdal/ogr/ogr_api.cpp:41,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogr_api.cpp:43,1
    - Dst: std::stoi
      Src: /src/gdal/ogr/ogr_api.cpp:44,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogr_api.cpp:45,1
    - Dst: std::stoi
      Src: /src/gdal/ogr/ogr_api.cpp:46,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogr_api.cpp:47,1
    - Dst: std::stoi
      Src: /src/gdal/ogr/ogr_api.cpp:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - pnMajor
    - pnMinor
    - pnPatch
    argTypes:
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: OGRGetGEOSVersion
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - CPLStringList::size
    - std::stoi
    - GEOSversion
    linkageType: ''
    returnType: bool
    signature: bool OGRGetGEOSVersion(int *pnMajor, int *pnMinor, int *pnPatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pnMajor
    - pnMinor
    - pnPatch
    argTypes:
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: OGRGetGEOSVersion
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGetGEOSVersion(int *pnMajor, int *pnMinor, int *pnPatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_api.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ToPointer
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *ToPointer(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ToHandle
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 72
    functionsReached:
    - ToHandle
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH ToHandle(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:99,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:102,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:102,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:107,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 119
    functionName: OGR_G_GetPointCount
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGR_GT_IsCurve
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_GetPointCount(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:138,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:140,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:140,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:145,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - hGeom
    - nNewPointCount
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: OGR_G_SetPointCount
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::setNumPoints
    - ToPointer
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGR_G_SetPointCount(OGRGeometryH hGeom, int nNewPointCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:162,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:162,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogr_api.cpp:168,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:172,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:181,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:182,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:184,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogr_api.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - hGeom
    - i
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 195
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 195
    functionName: OGR_G_Get_Component
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::getNumPoints
    - ToPointer
    - CPLError
    - wkbFlatten
    - CPL_json_object_object_get
    linkageType: ''
    returnType: double
    signature: double OGR_G_Get_Component(OGRGeometryH hGeom, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:212,1
    - Dst: getX
      Src: /src/gdal/ogr/ogr_api.cpp:218,1
    - Dst: getX
      Src: /src/gdal/ogr/ogr_api.cpp:223,1
    - Dst: OGR_G_Get_Component
      Src: /src/gdal/ogr/ogr_api.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - i
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 228
    functionName: OGR_G_GetX
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Get_Component
    - getX
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_GetX(OGRGeometryH hGeom, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:245,1
    - Dst: getY
      Src: /src/gdal/ogr/ogr_api.cpp:251,1
    - Dst: getY
      Src: /src/gdal/ogr/ogr_api.cpp:256,1
    - Dst: OGR_G_Get_Component
      Src: /src/gdal/ogr/ogr_api.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - i
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: OGR_G_GetY
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Get_Component
    - getY
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_GetY(OGRGeometryH hGeom, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:278,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogr_api.cpp:284,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogr_api.cpp:289,1
    - Dst: OGR_G_Get_Component
      Src: /src/gdal/ogr/ogr_api.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - i
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 294
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 294
    functionName: OGR_G_GetZ
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Get_Component
    - getZ
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_GetZ(OGRGeometryH hGeom, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:310,1
    - Dst: getM
      Src: /src/gdal/ogr/ogr_api.cpp:316,1
    - Dst: getM
      Src: /src/gdal/ogr/ogr_api.cpp:321,1
    - Dst: OGR_G_Get_Component
      Src: /src/gdal/ogr/ogr_api.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - i
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: OGR_G_GetM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - getM
    - OGR_G_Get_Component
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OGR_G_GetM(OGRGeometryH hGeom, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:360,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:363,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:363,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:367,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:369,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:369,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:371,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:371,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:373,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:373,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:381,1
    - Dst: OGRSimpleCurve*::getPoints
      Src: /src/gdal/ogr/ogr_api.cpp:382,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:383,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - hGeom
    - pabyX
    - nXStride
    - pabyY
    - nYStride
    - pabyZ
    - nZStride
    argTypes:
    - OGRGeometryH
    - void*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 395
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 395
    functionName: OGR_G_GetPoints
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRSimpleCurve*::getNumPoints
    - ToPointer
    - static_cast<double *>
    - VALIDATE_POINTER1
    - CPLError
    - OGRSimpleCurve*::getPoints
    - wkbFlatten
    - OGRPoint*::getZ
    linkageType: ''
    returnType: int
    signature: "int OGR_G_GetPoints(OGRGeometryH hGeom, void *pabyX, int nXStride,
      void *pabyY,\n                    int nYStride, void *pabyZ, int nZStride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:433,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:436,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:436,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:440,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:442,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:442,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:444,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:444,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:446,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:446,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogr_api.cpp:448,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogr_api.cpp:448,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:456,1
    - Dst: OGRSimpleCurve*::getPoints
      Src: /src/gdal/ogr/ogr_api.cpp:457,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:459,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 9
    argNames:
    - hGeom
    - pabyX
    - nXStride
    - pabyY
    - nYStride
    - pabyZ
    - nZStride
    - pabyM
    - nMStride
    argTypes:
    - OGRGeometryH
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 472
    functionName: OGR_G_GetPointsZM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRSimpleCurve*::getNumPoints
    - ToPointer
    - static_cast<double *>
    - VALIDATE_POINTER1
    - CPLError
    - OGRSimpleCurve*::getPoints
    - wkbFlatten
    - OGRPoint*::getZ
    linkageType: ''
    returnType: int
    signature: "int OGR_G_GetPointsZM(OGRGeometryH hGeom, void *pabyX, int nXStride,\n
      \                     void *pabyY, int nYStride, void *pabyZ, int nZStride,\n
      \                     void *pabyM, int nMStride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:492,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:494,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:494,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:500,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:501,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:502,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:508,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:517,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:518,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:520,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:528,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:529,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:537,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - hGeom
    - i
    - pdfX
    - pdfY
    - pdfZ
    argTypes:
    - OGRGeometryH
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 541
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 541
    functionName: OGR_G_GetPoint
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRSimpleCurve*::getX
    - OGRSimpleCurve*::getNumPoints
    - ToPointer
    - OGRSimpleCurve*::getZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    - OGRSimpleCurve*::getY
    - OGRPoint*::getZ
    linkageType: ''
    returnType: void
    signature: "void OGR_G_GetPoint(OGRGeometryH hGeom, int i, double *pdfX, double
      *pdfY,\n                    double *pdfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:562,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:564,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:564,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:570,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:571,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:572,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:574,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogr_api.cpp:576,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:580,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:589,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:592,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogr_api.cpp:602,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogr_api.cpp:603,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogr_api.cpp:605,1
    - Dst: OGRSimpleCurve*::getM
      Src: /src/gdal/ogr/ogr_api.cpp:607,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - hGeom
    - i
    - pdfX
    - pdfY
    - pdfZ
    - pdfM
    argTypes:
    - OGRGeometryH
    - int
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 617
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 617
    functionName: OGR_G_GetPointZM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getM
    - OGRSimpleCurve*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRSimpleCurve*::getX
    - OGRSimpleCurve*::getNumPoints
    - ToPointer
    - OGRSimpleCurve*::getZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    - OGRSimpleCurve*::getY
    - OGRPoint*::getZ
    linkageType: ''
    returnType: void
    signature: "void OGR_G_GetPointZM(OGRGeometryH hGeom, int i, double *pdfX, double
      *pdfY,\n                      double *pdfZ, double *pdfM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:644,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:648,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:657,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:657,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:661,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:662,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:663,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:665,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:671,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogr_api.cpp:678,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:682,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogr_api.cpp:695,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogr_api.cpp:699,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:706,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 8
    argNames:
    - hGeom
    - nPointsIn
    - pabyX
    - nXStride
    - pabyY
    - nYStride
    - pabyZ
    - nZStride
    argTypes:
    - OGRGeometryH
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 710
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 710
    functionName: OGR_G_SetPoints
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::setPoint
    - OGRPoint*::setX
    - ToPointer
    - OGRSimpleCurve*::setPoints
    - OGRSimpleCurve*::setNumPoints
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGR_G_SetPoints(OGRGeometryH hGeom, int nPointsIn,\n                             const
      void *pabyX, int nXStride, const void *pabyY,\n                             int
      nYStride, const void *pabyZ, int nZStride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:745,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:759,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:759,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:763,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:764,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:765,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:767,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogr_api.cpp:769,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:775,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogr_api.cpp:785,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogr_api.cpp:787,1
    - Dst: OGRSimpleCurve*::setPointsM
      Src: /src/gdal/ogr/ogr_api.cpp:789,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogr_api.cpp:791,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogr_api.cpp:795,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogr_api.cpp:807,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogr_api.cpp:820,1
    - Dst: OGRSimpleCurve*::setPointM
      Src: /src/gdal/ogr/ogr_api.cpp:836,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogr_api.cpp:851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:859,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 10
    argNames:
    - hGeom
    - nPointsIn
    - pX
    - nXStride
    - pY
    - nYStride
    - pZ
    - nZStride
    - pM
    - nMStride
    argTypes:
    - OGRGeometryH
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 863
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 863
    functionName: OGR_G_SetPointsZM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::setPoint
    - OGRPoint*::setX
    - OGRSimpleCurve*::setPointsM
    - ToPointer
    - OGRSimpleCurve*::setPoints
    - OGRPoint*::setM
    - OGRSimpleCurve*::setNumPoints
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    - OGRSimpleCurve*::setPointM
    linkageType: ''
    returnType: void
    signature: "void OGR_G_SetPointsZM(OGRGeometryH hGeom, int nPointsIn,\n                               const
      void *pX, int nXStride, const void *pY,\n                               int
      nYStride, const void *pZ, int nZStride,\n                               const
      void *pM, int nMStride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:890,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:892,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:892,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:898,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:899,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:900,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:901,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:905,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:916,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:924,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - hGeom
    - i
    - dfX
    - dfY
    - dfZ
    argTypes:
    - OGRGeometryH
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 928
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 928
    functionName: OGR_G_SetPoint
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGR_G_SetPoint(OGRGeometryH hGeom, int i, double dfX, double
      dfY,\n                    double dfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:950,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:952,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:952,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:958,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:959,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:964,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:975,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:978,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - hGeom
    - i
    - dfX
    - dfY
    argTypes:
    - OGRGeometryH
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 987
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 987
    functionName: OGR_G_SetPoint_2D
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setY
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGR_G_SetPoint_2D(OGRGeometryH hGeom, int i, double dfX, double
      dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1014,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1016,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1016,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1022,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1023,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1024,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogr_api.cpp:1025,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1029,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1040,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1043,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1048,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - hGeom
    - i
    - dfX
    - dfY
    - dfM
    argTypes:
    - OGRGeometryH
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1052
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1052
    functionName: OGR_G_SetPointM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setM
    - OGRPoint*::setY
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGR_G_SetPointM(OGRGeometryH hGeom, int i, double dfX, double
      dfY,\n                     double dfM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1080,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1082,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1082,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1088,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1089,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1090,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:1091,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogr_api.cpp:1092,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1096,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1107,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - hGeom
    - i
    - dfX
    - dfY
    - dfZ
    - dfM
    argTypes:
    - OGRGeometryH
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1119
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1119
    functionName: OGR_G_SetPointZM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setM
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGR_G_SetPointZM(OGRGeometryH hGeom, int i, double dfX, double
      dfY,\n                      double dfZ, double dfM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1142,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1144,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1144,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1148,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1149,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1150,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:1151,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - hGeom
    - dfX
    - dfY
    - dfZ
    argTypes:
    - OGRGeometryH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1165
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1165
    functionName: OGR_G_AddPoint
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGR_G_AddPoint(OGRGeometryH hGeom, double dfX, double dfY, double
      dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1187,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1189,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1189,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1193,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1194,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1195,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1201,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - hGeom
    - dfX
    - dfY
    argTypes:
    - OGRGeometryH
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1209
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1209
    functionName: OGR_G_AddPoint_2D
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setY
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGR_G_AddPoint_2D(OGRGeometryH hGeom, double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1232,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1234,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1234,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1238,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1239,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1240,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogr_api.cpp:1241,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1247,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - hGeom
    - dfX
    - dfY
    - dfM
    argTypes:
    - OGRGeometryH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1255
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1255
    functionName: OGR_G_AddPointM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setM
    - OGRPoint*::setY
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGR_G_AddPointM(OGRGeometryH hGeom, double dfX, double dfY, double
      dfM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogr_api.cpp:1280,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1282,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1282,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1286,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogr_api.cpp:1287,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogr_api.cpp:1288,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogr_api.cpp:1289,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogr_api.cpp:1290,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - hGeom
    - dfX
    - dfY
    - dfZ
    - dfM
    argTypes:
    - OGRGeometryH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1304
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1304
    functionName: OGR_G_AddPointZM
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::setX
    - ToPointer
    - OGRPoint*::setM
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - CPLError
    - VALIDATE_POINTER0
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGR_G_AddPointZM(OGRGeometryH hGeom, double dfX, double dfY,
      double dfZ,\n                      double dfM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1328,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1330,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1331,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1331,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1332,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1334,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1337,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1339,1
    - Dst: auto::toCompoundCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1341,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1343,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1345,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1347,1
    - Dst: auto::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1359
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1359
    functionName: OGR_G_GetGeometryCount
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - auto::toCurvePolygon
    - auto::toPolyhedralSurface
    - auto::toCompoundCurve
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - auto::toGeometryCollection
    linkageType: ''
    returnType: int
    signature: int OGR_G_GetGeometryCount(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1392,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1394,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1395,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1395,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1396,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1399,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1399,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1401,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1402,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1404,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1406,1
    - Dst: auto::toCompoundCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1406,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1408,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1410,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1411,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1413,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1415,1
    - Dst: auto::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1416,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - hGeom
    - iSubGeom
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 1424
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1424
    functionName: OGR_G_GetGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - auto::toCurvePolygon
    - auto::toPolyhedralSurface
    - auto::toCompoundCurve
    - ToPointer
    - ToHandle
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - auto::toGeometryCollection
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_GetGeometryRef(OGRGeometryH hGeom, int iSubGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1456,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1457,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1462,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1463,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1464,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1464,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1465,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1467,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1467,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1467,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1468,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1468,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1470,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1472,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1472,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1472,1
    - Dst: auto::toCompoundCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1473,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1473,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1475,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1477,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1479,1
    - Dst: auto::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - hGeom
    - hNewSubGeom
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1485
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1485
    functionName: OGR_G_AddGeometry
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - auto::toCurvePolygon
    - auto::toPolyhedralSurface
    - auto::toCompoundCurve
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - auto::toCurve
    - auto::toGeometryCollection
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_AddGeometry(OGRGeometryH hGeom, OGRGeometryH hNewSubGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1517,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1519,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1524,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1525,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1526,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1526,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1528,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1530,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1530,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1530,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1531,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1532,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1534,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1536,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1536,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1536,1
    - Dst: auto::toCompoundCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1537,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1538,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1540,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1543,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1545,1
    - Dst: auto::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1547,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - hGeom
    - hNewSubGeom
    argTypes:
    - OGRGeometryH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1554
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1554
    functionName: OGR_G_AddGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - auto::toCurvePolygon
    - auto::toPolyhedralSurface
    - auto::toCompoundCurve
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - auto::toCurve
    - auto::toGeometryCollection
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_AddGeometryDirectly(OGRGeometryH hGeom, OGRGeometryH hNewSubGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1588,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1590,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1591,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1591,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1592,1
    - Dst: auto::toCurvePolygon
      Src: /src/gdal/ogr/ogr_api.cpp:1594,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogr_api.cpp:1595,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1597,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1599,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1601,1
    - Dst: auto::toPolyhedralSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - hGeom
    - iGeom
    - bDelete
    argTypes:
    - OGRGeometryH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1609
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1609
    functionName: OGR_G_RemoveGeometry
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - auto::toCurvePolygon
    - auto::toPolyhedralSurface
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - CPL_TO_BOOL
    - auto::toGeometryCollection
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_G_RemoveGeometry(OGRGeometryH hGeom, int iGeom, int bDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1637,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1641,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1642,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1642,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1643,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1645,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1647,1
    - Dst: auto::toSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1649,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1651,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1663
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1663
    functionName: OGR_G_Length
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    - auto::toCurve
    - auto::toGeometryCollection
    - auto::toSurface
    linkageType: ''
    returnType: double
    signature: double OGR_G_Length(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1697,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1701,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1702,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1702,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1703,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1705,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1707,1
    - Dst: auto::toSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1709,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1711,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1713,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1724
      start: 1694
    functionDepth: 2
    functionLinenumber: 1694
    functionLinenumberEnd: 1724
    functionName: OGR_G_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    - auto::toCurve
    - auto::toGeometryCollection
    - auto::toSurface
    linkageType: ''
    returnType: double
    signature: double OGR_G_GeodesicLength(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1755,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1759,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1760,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1760,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1761,1
    - Dst: auto::toSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1763,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1765,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1767,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1769,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1771,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1782
      start: 1752
    functionDepth: 2
    functionLinenumber: 1752
    functionLinenumberEnd: 1782
    functionName: OGR_G_Area
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 5
    functionsReached:
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    - auto::toCurve
    - auto::toGeometryCollection
    - auto::toSurface
    linkageType: ''
    returnType: double
    signature: double OGR_G_Area(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogr_api.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1794
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1794
    functionName: OGR_G_GetArea
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Area
    linkageType: ''
    returnType: double
    signature: double OGR_G_GetArea(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1836,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1840,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1841,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1841,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1842,1
    - Dst: auto::toSurface
      Src: /src/gdal/ogr/ogr_api.cpp:1844,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1846,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1848,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogr_api.cpp:1850,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogr_api.cpp:1852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1862
      start: 1833
    functionDepth: 2
    functionLinenumber: 1833
    functionLinenumberEnd: 1862
    functionName: OGR_G_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - OGR_GT_IsCurve
    - OGR_GT_IsSurface
    - auto::toCurve
    - auto::toGeometryCollection
    - auto::toSurface
    linkageType: ''
    returnType: double
    signature: double OGR_G_GeodesicArea(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1879,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1881,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogr_api.cpp:1882,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:1882,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1883,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:1885,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_api.cpp:1889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1893
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 1893
    functionName: OGR_G_IsClockwise
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - CPLError
    - wkbFlatten
    - OGR_GT_IsCurve
    - auto::toCurve
    linkageType: ''
    returnType: bool
    signature: bool OGR_G_IsClockwise(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1926,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - bLookForNonLinear
    argTypes:
    - OGRGeometryH
    - int
    constantsTouched: []
    func_position:
      end: 1928
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1928
    functionName: OGR_G_HasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_G_HasCurveGeometry(OGRGeometryH hGeom, int bLookForNonLinear)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:1964,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:1965,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hGeom
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - OGRGeometryH
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 1967
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1967
    functionName: OGR_G_GetLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_GetLinearGeometry(OGRGeometryH hGeom,\n                                             double
      dfMaxAngleStepSizeDegrees,\n                                             char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:2001,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:2003,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hGeom
    - papszOptions
    argTypes:
    - OGRGeometryH
    - char**
    constantsTouched: []
    func_position:
      end: 2004
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2004
    functionName: OGR_G_GetCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: "OGRGeometryH OGR_G_GetCurveGeometry(OGRGeometryH hGeom,\n                                            char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_api.cpp:2027,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogr_api.cpp:2029,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogr_api.cpp:2030,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogr_api.cpp:2030,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogr_api.cpp:2032,1
    - Dst: auto::toCurve
      Src: /src/gdal/ogr/ogr_api.cpp:2033,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogr_api.cpp:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGeom
    - dfDistance
    argTypes:
    - OGRGeometryH
    - double
    constantsTouched: []
    func_position:
      end: 2038
      start: 2025
    functionDepth: 2
    functionLinenumber: 2025
    functionLinenumberEnd: 2038
    functionName: OGR_G_Value
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - ToHandle
    - OGRPoint::OGRPoint
    - auto::getGeometryType
    - VALIDATE_POINTER1
    - OGR_GT_IsCurve
    - auto::toCurve
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_G_Value(OGRGeometryH hGeom, double dfDistance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2072
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2072
    functionName: OGRSetNonLinearGeometriesEnabledFlag
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSetNonLinearGeometriesEnabledFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: OGRGetNonLinearGeometriesEnabledFlag
    functionSourceFile: /src/gdal/ogr/ogr_api.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGetNonLinearGeometriesEnabledFlag(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftime
      Src: /src/gdal/ogr/ogr_xerces.cpp:55,1
    - Dst: static_cast<time_t>
      Src: /src/gdal/ogr/ogr_xerces.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct CPLTimeVal*
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: CPLGettimeofday
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 2
    functionsReached:
    - static_cast<time_t>
    - _ftime
    linkageType: ''
    returnType: int
    signature: int CPLGettimeofday(struct CPLTimeVal *tp, void * /* timezonep*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: OGRXercesStandardMemoryManager::OGRXercesStandardMemoryManager
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXercesStandardMemoryManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: OGRXercesStandardMemoryManager::getExceptionMemoryManager
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemoryManager
    signature: MemoryManager *getExceptionMemoryManager() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OutOfMemoryException
      Src: /src/gdal/ogr/ogr_xerces.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: OGRXercesStandardMemoryManager::allocate
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - OutOfMemoryException
    linkageType: ''
    returnType: void
    signature: void *OGRXercesStandardMemoryManager::allocate(XMLSize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: OGRXercesStandardMemoryManager::deallocate
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void OGRXercesStandardMemoryManager::deallocate(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: OGRXercesInstrumentedMemoryManager::OGRXercesInstrumentedMemoryManager
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXercesInstrumentedMemoryManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: OGRXercesInstrumentedMemoryManager::getExceptionMemoryManager
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MemoryManager
    signature: MemoryManager *getExceptionMemoryManager() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogr_xerces.cpp:143,1
    - Dst: OutOfMemoryException
      Src: /src/gdal/ogr/ogr_xerces.cpp:144,1
    - Dst: OutOfMemoryException
      Src: /src/gdal/ogr/ogr_xerces.cpp:147,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_xerces.cpp:148,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:152,1
    - Dst: find
      Src: /src/gdal/ogr/ogr_xerces.cpp:156,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogr_xerces.cpp:156,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_xerces.cpp:157,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:171,1
    - Dst: LimitationStruct*::osMsgMaxMemAlloc::empty
      Src: /src/gdal/ogr/ogr_xerces.cpp:172,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_xerces.cpp:174,1
    - Dst: LimitationStruct*::osMsgMaxMemAlloc::c_str
      Src: /src/gdal/ogr/ogr_xerces.cpp:175,1
    - Dst: OutOfMemoryException
      Src: /src/gdal/ogr/ogr_xerces.cpp:177,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogr_xerces.cpp:195,1
    - Dst: min
      Src: /src/gdal/ogr/ogr_xerces.cpp:203,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:213,1
    - Dst: LimitationStruct*::osMsgTimeout::empty
      Src: /src/gdal/ogr/ogr_xerces.cpp:214,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_xerces.cpp:216,1
    - Dst: LimitationStruct*::osMsgTimeout::c_str
      Src: /src/gdal/ogr/ogr_xerces.cpp:217,1
    - Dst: OutOfMemoryException
      Src: /src/gdal/ogr/ogr_xerces.cpp:219,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr_xerces.cpp:230,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 1
    argNames:
    - size
    argTypes:
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 231
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 231
    functionName: OGRXercesInstrumentedMemoryManager::allocate
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - end
    - LimitationStruct*::osMsgMaxMemAlloc::c_str
    - CPLGetPID
    - CPLMutexHolderD
    - LimitationStruct*::osMsgMaxMemAlloc::empty
    - find
    - LimitationStruct*::osMsgTimeout::empty
    - CPLGettimeofday
    - min
    - OutOfMemoryException
    - LimitationStruct*::osMsgTimeout::c_str
    - VSIFree
    - CPLError
    - memcpy
    - static_cast<char *>
    linkageType: ''
    returnType: void
    signature: void *OGRXercesInstrumentedMemoryManager::allocate(XMLSize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogr_xerces.cpp:240,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:241,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:245,1
    - Dst: find
      Src: /src/gdal/ogr/ogr_xerces.cpp:249,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogr_xerces.cpp:249,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_xerces.cpp:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 269
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 269
    functionName: OGRXercesInstrumentedMemoryManager::deallocate
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLGetPID
    - CPLMutexHolderD
    - find
    - VSIFree
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGRXercesInstrumentedMemoryManager::deallocate(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:280,1
    - Dst: std::map<GIntBig, LimitationStruct>::map<GIntBig, LimitationStruct>
      Src: /src/gdal/ogr/ogr_xerces.cpp:283,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogr_xerces.cpp:292,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogr_xerces.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - nMaxMemAlloc
    - pszMsgMaxMemAlloc
    - dfTimeoutSecond
    - pszMsgTimeout
    argTypes:
    - size_t
    - char*
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: OGRStartXercesLimitsForThisThread
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - std::map<GIntBig, LimitationStruct>::map<GIntBig, LimitationStruct>
    - std::move
    - CPLGetPID
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: "void OGRStartXercesLimitsForThisThread(size_t nMaxMemAlloc,\n                                       const
      char *pszMsgMaxMemAlloc,\n                                       double dfTimeoutSecond,\n
      \                                      const char *pszMsgTimeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:301,1
    - Dst: erase
      Src: /src/gdal/ogr/ogr_xerces.cpp:302,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogr_xerces.cpp:302,1
    - Dst: empty
      Src: /src/gdal/ogr/ogr_xerces.cpp:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: OGRStopXercesLimitsForThisThread
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - erase
    - CPLGetPID
    - empty
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: void OGRStopXercesLimitsForThisThread()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: OGRXercesBinInputStream::getContentType
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMLCh
    signature: XMLCh *getContentType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: OGRXercesNetAccessor::OGRXercesNetAccessor
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXercesNetAccessor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: OGRXercesNetAccessor::getId
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMLCh
    signature: XMLCh *getId() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogr_xerces.cpp:370,1
    - Dst: XMLURL::getURLText
      Src: /src/gdal/ogr/ogr_xerces.cpp:370,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_xerces.cpp:371,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogr_xerces.cpp:371,1
    - Dst: OGRXercesBinInputStream::OGRXercesBinInputStream
      Src: /src/gdal/ogr/ogr_xerces.cpp:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - urlSource
    argTypes:
    - XMLURL
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: OGRXercesNetAccessor::makeNew
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - XMLURL::getURLText
    - OGRXercesBinInputStream::OGRXercesBinInputStream
    - VSIFOpenL
    - std::string::c_str
    - transcode
    linkageType: ''
    returnType: BinInputStream
    signature: "BinInputStream *\nOGRXercesNetAccessor::makeNew(const XMLURL &urlSource,\n
      \                             const XMLNetHTTPInfo * /*httpInfo*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:383,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_xerces.cpp:393,1
    - Dst: OGRXercesStandardMemoryManager::OGRXercesStandardMemoryManager
      Src: /src/gdal/ogr/ogr_xerces.cpp:400,1
    - Dst: OGRXercesInstrumentedMemoryManager::OGRXercesInstrumentedMemoryManager
      Src: /src/gdal/ogr/ogr_xerces.cpp:401,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_xerces.cpp:405,1
    - Dst: OGRProjCT::Initialize
      Src: /src/gdal/ogr/ogr_xerces.cpp:406,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr_xerces.cpp:413,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_xerces.cpp:413,1
    - Dst: OGRXercesNetAccessor::OGRXercesNetAccessor
      Src: /src/gdal/ogr/ogr_xerces.cpp:417,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_xerces.cpp:426,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogr_xerces.cpp:428,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogr_xerces.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 432
    functionName: OGRInitializeXerces
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - OGRXercesStandardMemoryManager::OGRXercesStandardMemoryManager
    - OGRProjCT::Initialize
    - CPLTestBool
    - CPLMutexHolderD
    - OGRXercesInstrumentedMemoryManager::OGRXercesInstrumentedMemoryManager
    - OGRXercesNetAccessor::OGRXercesNetAccessor
    - CPLDebug
    - getMessage
    - CPLError
    - CPLGetConfigOption
    - transcode
    linkageType: ''
    returnType: bool
    signature: bool OGRInitializeXerces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogr_xerces.cpp:440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogr_xerces.cpp:443,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogr_xerces.cpp:451,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogr_xerces.cpp:451,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogr_xerces.cpp:453,1
    - Dst: CPLVirtualMemManagerTerminate
      Src: /src/gdal/ogr/ogr_xerces.cpp:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 462
    functionName: OGRDeinitializeXerces
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLMutexHolderD
    - CPLDebug
    - CPLVirtualMemManagerTerminate
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRDeinitializeXerces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogr_xerces.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: OGRCleanupXercesMutex
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRCleanupXercesMutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogr_xerces.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - panXMLString
    - nLimitingChars
    argTypes:
    - XMLCh*
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: OGR::transcode
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 1
    functionsReached:
    - OGR::transcode
    linkageType: ''
    returnType: CPLString
    signature: CPLString transcode(const XMLCh *panXMLString, int nLimitingChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogr_xerces.cpp:498,1
    - Dst: CPLString::reserve
      Src: /src/gdal/ogr/ogr_xerces.cpp:500,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogr_xerces.cpp:512,1
    - Dst: static_cast<wchar_t *>
      Src: /src/gdal/ogr/ogr_xerces.cpp:525,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr_xerces.cpp:525,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:534,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_xerces.cpp:535,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - panXMLString
    - osRet
    - nLimitingChars
    argTypes:
    - XMLCh*
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 538
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 538
    functionName: OGR::transcode
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 1
    functionsReached:
    - static_cast<char>
    - CPLString::clear
    - CPLMalloc
    - CPLString::reserve
    - CPLFree
    - static_cast<wchar_t *>
    linkageType: ''
    returnType: CPLString
    signature: "CPLString &transcode(const XMLCh *panXMLString, CPLString &osRet,\n
      \                    int nLimitingChars)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: OGRXercesInputSource::makeStream
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BinInputStream
    signature: BinInputStream *makeStream() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - fpIn
    - bOwnFPIn
    argTypes:
    - VSILFILE*
    - bool
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: OGRXercesBinInputStream::OGRXercesBinInputStream
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXercesBinInputStream::OGRXercesBinInputStream(VSILFILE *fpIn,
      bool bOwnFPIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_xerces.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: OGRXercesBinInputStream::~OGRXercesBinInputStream()
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRXercesBinInputStream::~OGRXercesBinInputStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XMLFilePos>
      Src: /src/gdal/ogr/ogr_xerces.cpp:589,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogr_xerces.cpp:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: OGRXercesBinInputStream::curPos
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMLFilePos>
    - VSIFTellL
    linkageType: ''
    returnType: XMLFilePos
    signature: XMLFilePos OGRXercesBinInputStream::curPos() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XMLSize_t>
      Src: /src/gdal/ogr/ogr_xerces.cpp:599,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogr_xerces.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - toFill
    - maxToRead
    argTypes:
    - XMLByte*
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: OGRXercesBinInputStream::readBytes
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMLSize_t>
    - VSIFReadL
    linkageType: ''
    returnType: XMLSize_t
    signature: "XMLSize_t OGRXercesBinInputStream::readBytes(XMLByte *const toFill,\n
      \                                            const XMLSize_t maxToRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXercesBinInputStream::OGRXercesBinInputStream
      Src: /src/gdal/ogr/ogr_xerces.cpp:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - fp
    - manager
    argTypes:
    - VSILFILE*
    - MemoryManager*
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: OGRXercesInputSource::OGRXercesInputSource
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - OGRXercesBinInputStream::OGRXercesBinInputStream
    linkageType: ''
    returnType: void
    signature: "void OGRXercesInputSource::OGRXercesInputSource(VSILFILE *fp,\n                                           MemoryManager
      *const manager)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 617
    functionName: OGRXercesInputSource::~OGRXercesInputSource()
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXercesInputSource::~OGRXercesInputSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXercesInputSource::OGRXercesInputSource
      Src: /src/gdal/ogr/ogr_xerces.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: OGRCreateXercesInputSource
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached:
    - OGRXercesInputSource::OGRXercesInputSource
    linkageType: ''
    returnType: InputSource
    signature: InputSource *OGRCreateXercesInputSource(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is
    argTypes:
    - InputSource*
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: OGRDestroyXercesInputSource
    functionSourceFile: /src/gdal/ogr/ogr_xerces.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDestroyXercesInputSource(InputSource *is)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: OGRCompoundCurve::OGRCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::OGRCompoundCurve(const OGRCompoundCurve &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::operator=
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCompoundCurve
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: '&OGRCompoundCurve::operator=(const OGRCompoundCurve &other)'
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve::operator=
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve &OGRCompoundCurve::operator=(const OGRCompoundCurve
      &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:71,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:74,1
    - Dst: OGRCompoundCurve::WkbSize
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: OGRCompoundCurve::clone
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve::OGRCompoundCurve
    - auto::WkbSize
    - OGRCompoundCurve::WkbSize
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *OGRCompoundCurve::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: OGRCompoundCurve::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRCompoundCurve::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: OGRCompoundCurve::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRCompoundCurve::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::WkbSize
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: OGRCompoundCurve::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 2
    functionsReached:
    - OGRCompoundCurve::WkbSize
    linkageType: ''
    returnType: size_t
    signature: size_t OGRCompoundCurve::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:125,1
    - Dst: OGRCompoundCurve*::addCurveDirectlyInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - poCurve
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: OGRCompoundCurve::addCurveDirectlyFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve*::addCurveDirectlyInternal
    - OGRGeometry*::toCompoundCurve
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurveDirectlyFromWkb(OGRGeometry *poSelf,\n
      \                                                OGRCurve *poCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkb
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:141,1
    - Dst: importBodyFromWkb
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: OGRCompoundCurve::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - importBodyFromWkb
    - importPreambleFromWkb
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::importFromWkb(const unsigned char *pabyData,\n
      \                                      size_t nSize, OGRwkbVariant eWkbVariant,\n
      \                                      size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRwkbExportOptions
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:163,1
    - Dst: OGRCompoundCurve::exportToWkb
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: OGRCompoundCurve::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::exportToWkb
    - OGRwkbExportOptions
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::exportToWkb(unsigned char *pabyData,\n                                     const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSelf
    - poCurve
    argTypes:
    - OGRGeometry*
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: OGRCompoundCurve::addCurveDirectlyFromWkt
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toCompoundCurve
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurveDirectlyFromWkt(OGRGeometry *poSelf,\n
      \                                                OGRCurve *poCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importCurveCollectionFromWkt
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: OGRCompoundCurve::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - importCurveCollectionFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCompoundCurve::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::exportToWkt
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: OGRCompoundCurve::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::exportToWkt
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRCompoundCurve::exportToWkt(const OGRWktOptions &opts,\n
      \                                         OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::empty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: OGRCompoundCurve::empty
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::empty
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getEnvelope
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: OGRCompoundCurve::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getEnvelope
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: OGRCompoundCurve::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 2
    functionsReached:
    - OGRCompoundCurve::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: OGRCompoundCurve::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::IsEmpty
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCompoundCurve::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::get_Length
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: OGRCompoundCurve::get_Length
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::get_Length
    linkageType: ''
    returnType: double
    signature: double OGRCompoundCurve::get_Length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:260,1
    - Dst: OGRCompoundCurve::StartPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: OGRCompoundCurve::StartPoint
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - OGRCompoundCurve::StartPoint
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::StartPoint(OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:270,1
    - Dst: OGRCompoundCurve::EndPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: OGRCompoundCurve::EndPoint
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - OGRCompoundCurve::EndPoint
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::EndPoint(OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::StartPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:283,1
    - Dst: OGRCompoundCurve::Value
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:296,1
    - Dst: OGRCompoundCurve::EndPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - dfDistance
    - poPoint
    argTypes:
    - double
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 306
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 306
    functionName: OGRCompoundCurve::Value
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::Value
    - OGRCompoundCurve::StartPoint
    - OGRCompoundCurve::EndPoint
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::Value(double dfDistance, OGRPoint *poPoint)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:318,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:318,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:319,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:319,1
    - Dst: OGRCompoundCurve::CurveToLine
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:322,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    - bIsLinearRing
    argTypes:
    - double
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 328
    functionName: OGRCompoundCurve::CurveToLineInternal
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::addSubLineString
    - OGRCompoundCurve::CurveToLine
    - getSpatialReference
    - OGRLineString*::assignSpatialReference
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *\nOGRCompoundCurve::CurveToLineInternal(double dfMaxAngleStepSizeDegrees,\n
      \                                     const char *const *papszOptions,\n                                      int
      bIsLinearRing) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::CurveToLineInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: OGRCompoundCurve::CurveToLine
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::CurveToLineInternal
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *\nOGRCompoundCurve::CurveToLine(double dfMaxAngleStepSizeDegrees,\n
      \                             const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:350,1
    - Dst: OGRCompoundCurve::getGeometryType
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:350,1
    - Dst: OGRCompoundCurve::Equals
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:353,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: OGRCompoundCurve::Equals
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::getGeometryType
    - OGRGeometry*::toCompoundCurve
    - OGRCompoundCurve::Equals
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCompoundCurve::Equals(const OGRGeometry *poOther) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::setCoordinateDimension
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: OGRCompoundCurve::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: bool OGRCompoundCurve::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::set3D
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIs3D
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: OGRCompoundCurve::set3D
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::set3D
    linkageType: ''
    returnType: bool
    signature: bool OGRCompoundCurve::set3D(OGRBoolean bIs3D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::setMeasured
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIsMeasured
    argTypes:
    - OGRBoolean
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: OGRCompoundCurve::setMeasured
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::setMeasured
    linkageType: ''
    returnType: bool
    signature: bool OGRCompoundCurve::setMeasured(OGRBoolean bIsMeasured)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::assignSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSR
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: OGRCompoundCurve::assignSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::assignSpatialReference
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::assignSpatialReference(const OGRSpatialReference
      *poSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: OGRCompoundCurve::getNumCurves
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCompoundCurve::getNumCurves() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRing
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: OGRCompoundCurve::getCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCompoundCurve::getCurve(int iRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iCurve
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: OGRCompoundCurve::getCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 2
    functionsReached:
    - OGRCompoundCurve::getCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCompoundCurve::getCurve(int iCurve) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::stealCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iCurve
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: OGRCompoundCurve::stealCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::stealCurve
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *OGRCompoundCurve::stealCurve(int iCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::clone
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:493,1
    - Dst: OGRCompoundCurve::addCurveDirectly
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poCurve
    - dfToleranceEps
    argTypes:
    - OGRCurve*
    - double
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: OGRCompoundCurve::addCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::clone
    - OGRCompoundCurve::addCurveDirectly
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurve(const OGRCurve *poCurve,\n                                  double
      dfToleranceEps)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::addCurveDirectlyInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poCurve
    - dfToleranceEps
    argTypes:
    - OGRCurve*
    - double
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: OGRCompoundCurve::addCurveDirectly
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::addCurveDirectlyInternal
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurveDirectly(OGRCurve *poCurve,\n                                          double
      dfToleranceEps)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:535,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:541,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:541,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:542,1
    - Dst: OGRCurve*::getGeometryName
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:544,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:549,1
    - Dst: OGRCompoundCurve::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:556,1
    - Dst: OGRCurve*::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:557,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:559,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:563,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:564,1
    - Dst: OGRCompoundCurve::EndPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:565,1
    - Dst: OGRCurve*::StartPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:566,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:567,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:567,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:567,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:568,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:568,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:569,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:569,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:569,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:570,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:570,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:571,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:571,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:571,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:572,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:572,1
    - Dst: OGRCurve*::EndPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:574,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:575,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:575,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:575,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:576,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:576,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:577,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:577,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:577,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:578,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:578,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:579,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:579,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:579,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:580,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:582,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:586,1
    - Dst: OGRCurve*::toSimpleCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:587,1
    - Dst: OGRCurve*::toSimpleCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:590,1
    - Dst: OGRCompoundCurve::addCurveDirectly
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:593,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - poCurve
    - dfToleranceEps
    - bNeedRealloc
    argTypes:
    - OGRCurve*
    - double
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 594
    functionName: OGRCompoundCurve::addCurveDirectlyInternal
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::EndPoint
    - OGRCurve*::StartPoint
    - CPLDebug
    - CPLError
    - OGRPoint::getY
    - OGRCurve*::EndPoint
    - OGRPoint::OGRPoint
    - OGRCompoundCurve::IsEmpty
    - OGRCurve*::getNumPoints
    - wkbFlatten
    - OGRPoint::getX
    - OGRCurve*::getGeometryType
    - OGRCurve*::getGeometryName
    - OGRCurve*::IsEmpty
    - OGRCompoundCurve::addCurveDirectly
    - EQUAL
    - OGRPoint::getZ
    - fabs
    - OGRCurve*::toSimpleCurve
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurveDirectlyInternal(OGRCurve *poCurve,\n
      \                                                 double dfToleranceEps,\n                                                  int
      bNeedRealloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRCurve>::release
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:618,1
    - Dst: OGRCompoundCurve::addCurveDirectlyInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poCurve
    - dfToleranceEps
    argTypes:
    - std::unique_ptr<OGRCurve>
    - double
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: OGRCompoundCurve::addCurve
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve::addCurveDirectlyInternal
    - std::unique_ptr<OGRCurve>::release
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCompoundCurve::addCurve(std::unique_ptr<OGRCurve> poCurve,\n
      \                                 double dfToleranceEps)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::transform
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: OGRCompoundCurve::transform
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::transform
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCompoundCurve::transform(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::flattenTo2D
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: OGRCompoundCurve::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::flattenTo2D
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::segmentize
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfMaxLength
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: OGRCompoundCurve::segmentize
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::segmentize
    linkageType: ''
    returnType: bool
    signature: bool OGRCompoundCurve::segmentize(double dfMaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::swapXY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: OGRCompoundCurve::swapXY
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::swapXY
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::hasCurveGeometry
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bLookForNonLinear
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: OGRCompoundCurve::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::hasCurveGeometry
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCompoundCurve::hasCurveGeometry(int bLookForNonLinear)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::CurveToLine
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfMaxAngleStepSizeDegrees
    - papszOptions
    argTypes:
    - double
    - char**
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 684
    functionName: OGRCompoundCurve::getLinearGeometry
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve::CurveToLine
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGRCompoundCurve::getLinearGeometry(double dfMaxAngleStepSizeDegrees,\n
      \                                   const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getNumPoints
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 700
    functionName: OGRCompoundCurve::getNumPoints
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::getNumPoints
    linkageType: ''
    returnType: int
    signature: int OGRCompoundCurve::getNumPoints() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poCCIn
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: OGRCompoundCurvePointIterator::OGRCompoundCurvePointIterator
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurvePointIterator(const OGRCompoundCurve *poCCIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: ~OGRCompoundCurvePointIterator() override
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OGRCompoundCurvePointIterator() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNumCurves
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:734,1
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:737,1
    - Dst: OGRCompoundCurvePointIterator::getNextPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:738,1
    - Dst: getNumCurves
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:741,1
    - Dst: getCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:744,1
    - Dst: OGRCompoundCurvePointIterator::getNextPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:746,1
    - Dst: OGRCompoundCurvePointIterator::getNextPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 749
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 749
    functionName: OGRCompoundCurvePointIterator::getNextPoint
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - getNumCurves
    - OGRCompoundCurvePointIterator::getNextPoint
    - getCurve
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCompoundCurvePointIterator::getNextPoint(OGRPoint *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurvePointIterator::OGRCompoundCurvePointIterator
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: OGRCompoundCurve::getPointIterator
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurvePointIterator::OGRCompoundCurvePointIterator
    linkageType: ''
    returnType: OGRPointIterator
    signature: OGRPointIterator *OGRCompoundCurve::getPointIterator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:770,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:780,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:781,1
    - Dst: OGRCompoundCurve*::getSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:781,1
    - Dst: OGRCompoundCurve*::CurveToLineInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - poCC
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 790
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 790
    functionName: OGRCompoundCurve::CastToLineString
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve*::CurveToLineInternal
    - OGRCurve::CastToLineString
    - toLineString
    - OGRCompoundCurve*::getSpatialReference
    - OGRLineString*::assignSpatialReference
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRCompoundCurve::CastToLineString(OGRCompoundCurve
      *poCC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:811,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:822,1
    - Dst: OGRLinearRing*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:825,1
    - Dst: OGRCompoundCurve*::getSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:825,1
    - Dst: OGRCompoundCurve*::CurveToLineInternal
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - poCC
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 836
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 836
    functionName: OGRCompoundCurve::CastToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve*::CurveToLineInternal
    - OGRCurve::CastToLineString
    - OGRCompoundCurve*::getSpatialReference
    - OGRLinearRing*::assignSpatialReference
    - OGRCurve::CastToLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRCompoundCurve::CastToLinearRing(OGRCompoundCurve
      *poCC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:844,1
    - Dst: OGRCompoundCurve::CastToLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 846
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 846
    functionName: OGRCompoundCurve::CasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve::CastToLineString
    - OGRCurve*::toCompoundCurve
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRCompoundCurve::CasterToLineString(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: OGRCompoundCurve::GetCasterToLineString
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLineString
    signature: OGRCurveCasterToLineString OGRCompoundCurve::GetCasterToLineString()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:859,1
    - Dst: OGRCompoundCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 861
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 861
    functionName: OGRCompoundCurve::CasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCompoundCurve::CastToLinearRing
    - OGRCurve*::toCompoundCurve
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRCompoundCurve::CasterToLinearRing(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: OGRCompoundCurve::GetCasterToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurveCasterToLinearRing
    signature: OGRCurveCasterToLinearRing OGRCompoundCurve::GetCasterToLinearRing()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:876,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:876,1
    - Dst: IsConvex
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:880,1
    - Dst: OGRCompoundCurve::getPointIterator
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:883,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:884,1
    - Dst: OGRLineString::setNumPoints
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:885,1
    - Dst: OGRCompoundCurve::getNumPoints
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:885,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:886,1
    - Dst: OGRPointIterator*::getNextPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:887,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:889,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:889,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:889,1
    - Dst: OGRCompoundCurve::get_AreaOfCurveSegments
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:895,1
    - Dst: OGRCompoundCurve::CurveToLine
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 905
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 905
    functionName: OGRCompoundCurve::get_Area
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - get_IsClosed
    - OGRPointIterator*::getNextPoint
    - OGRLineString::setPoint
    - OGRPoint::getY
    - OGRPoint::getX
    - OGRCompoundCurve::CurveToLine
    - OGRPoint::OGRPoint
    - OGRLineString::setNumPoints
    - OGRCompoundCurve::getPointIterator
    - OGRCompoundCurve::IsEmpty
    - OGRCompoundCurve::get_AreaOfCurveSegments
    - IsConvex
    - OGRLineString::OGRLineString
    - OGRCompoundCurve::getNumPoints
    linkageType: ''
    returnType: double
    signature: double OGRCompoundCurve::get_Area() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:914,1
    - Dst: get_IsClosed
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:917,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:919,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:924,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:926,1
    - Dst: OGRCompoundCurve::CurveToLine
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:926,1
    - Dst: auto::get_GeodesicArea
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 928
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 928
    functionName: OGRCompoundCurve::get_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRLineString>
    - get_IsClosed
    - OGRCompoundCurve::CurveToLine
    - auto::get_GeodesicArea
    - getSpatialReference
    - OGRCompoundCurve::IsEmpty
    - CPLError
    linkageType: ''
    returnType: double
    signature: "double OGRCompoundCurve::get_GeodesicArea(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::IsEmpty
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:937,1
    - Dst: getSpatialReference
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:941,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:943,1
    - Dst: OGRCompoundCurve::CurveToLine
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:943,1
    - Dst: auto::get_GeodesicLength
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poSRSOverride
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 945
      start: 934
    functionDepth: 3
    functionLinenumber: 934
    functionLinenumberEnd: 945
    functionName: OGRCompoundCurve::get_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRLineString>
    - auto::get_GeodesicLength
    - OGRCompoundCurve::CurveToLine
    - getSpatialReference
    - OGRCompoundCurve::IsEmpty
    linkageType: ''
    returnType: double
    signature: "double OGRCompoundCurve::get_GeodesicLength(\n    const OGRSpatialReference
      *poSRSOverride) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::getNumCurves
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:957,1
    - Dst: OGRCompoundCurve::getCurve
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:959,1
    - Dst: OGRCurve*::get_AreaOfCurveSegments
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 963
    functionName: OGRCompoundCurve::get_AreaOfCurveSegments
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCurve*::get_AreaOfCurveSegments
    - OGRCompoundCurve::getCurve
    - OGRCompoundCurve::getNumCurves
    linkageType: ''
    returnType: double
    signature: double OGRCompoundCurve::get_AreaOfCurveSegments() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::hasEmptyParts
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: OGRCompoundCurve::hasEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::hasEmptyParts
    linkageType: ''
    returnType: bool
    signature: bool OGRCompoundCurve::hasEmptyParts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::removeEmptyParts
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: OGRCompoundCurve::removeEmptyParts
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::removeEmptyParts
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::removeEmptyParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::reversePoints
      Src: /src/gdal/ogr/ogrcompoundcurve.cpp:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 999
    functionName: OGRCompoundCurve::reversePoints
    functionSourceFile: /src/gdal/ogr/ogrcompoundcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve::reversePoints
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve::reversePoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:41,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszProj
    - pszDatum
    - pszUnits
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: OSRImportFromERM
    functionSourceFile: /src/gdal/ogr/ogr_srs_erm.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromERM(OGRSpatialReferenceH hSRS, const char *pszProj,\n
      \                       const char *pszDatum, const char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:70,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:75,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:82,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:83,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:83,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:85,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:86,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:86,1
    - Dst: OGRSpatialReference::lookupInDict
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:88,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:95,1
    - Dst: OGRSpatialReference::lookupInDict
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:97,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:98,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:98,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:101,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:103,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:107,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:110,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:113,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:117,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:122,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:124,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:129,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - pszProj
    - pszDatum
    - pszUnits
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 135
    functionName: OGRSpatialReference::importFromERM
    functionSourceFile: /src/gdal/ogr/ogr_srs_erm.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - CPLString::back
    - STARTS_WITH_CI
    - OGRSpatialReference::importFromWkt
    - OGRSpatialReference::lookupInDict
    - atoi
    - CPLString::substr
    - EQUAL
    - CPLString::pop_back
    - OGRSpatialReference::Clear
    - CPLString::find
    - CPLString::resize
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromERM(const char *pszProj,\n                                          const
      char *pszDatum,\n                                          const char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:149,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszProj
    - pszDatum
    - pszUnits
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: OSRExportToERM
    functionSourceFile: /src/gdal/ogr/ogr_srs_erm.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToERM(OGRSpatialReferenceH hSRS, char *pszProj, char
      *pszDatum,\n                      char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:175,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:176,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:177,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:179,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:179,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:191,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:193,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:193,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:196,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:200,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:202,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:202,1
    - Dst: OGRSpatialReference::lookupInDict
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:212,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:214,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:221,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:226,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:229,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:232,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:235,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:238,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:241,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:244,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:247,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:250,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:253,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:256,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:259,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:262,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:265,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:268,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:277,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:281,1
    - Dst: OGRSpatialReference::GetUTMZone
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:292,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:295,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:298,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:303,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:305,1
    - Dst: OGRSpatialReference::lookupInDict
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:317,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:319,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:328,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:328,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:330,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:331,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:339,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:340,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srs_erm.cpp:344,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 84
    argCount: 3
    argNames:
    - pszProj
    - pszDatum
    - pszUnits
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 348
    functionName: OGRSpatialReference::exportToERM
    functionSourceFile: /src/gdal/ogr/ogr_srs_erm.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::lookupInDict
    - atoi
    - strncpy
    - EQUAL
    - OGRSpatialReference::GetUTMZone
    - OGRSpatialReference::GetAuthorityCode
    - snprintf
    - fabs
    - strcpy
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToERM(char *pszProj, char *pszDatum,\n
      \                                       char *pszUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getDefaultPrecision
      Src: /src/gdal/ogr/ogr_geometry.h:63,1
    - Dst: getDefaultRound
      Src: /src/gdal/ogr/ogr_geometry.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: OGRWktOptions
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 2
    functionsReached:
    - getDefaultRound
    - getDefaultPrecision
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRWktOptions
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: OGRRawPoint::OGRRawPoint
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRRawPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - xIn
    - yIn
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: OGRRawPoint::OGRRawPoint
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRRawPoint(double xIn, double yIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor
      Src: /src/gdal/ogr/ogr_geometry.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: IOGRGeometryVisitor
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached:
    - IOGRGeometryVisitor
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL IOGRGeometryVisitor
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: OGRDefaultGeometryVisitor
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRDefaultGeometryVisitor
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor
      Src: /src/gdal/ogr/ogr_geometry.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 262
    functionName: IOGRConstGeometryVisitor
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached:
    - IOGRConstGeometryVisitor
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL IOGRConstGeometryVisitor
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 295
    functionName: OGRDefaultConstGeometryVisitor
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRDefaultConstGeometryVisitor
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: OGRGeomCoordinateBinaryPrecision
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRGeomCoordinateBinaryPrecision
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: OGRwkbExportOptions
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRwkbExportOptions
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry
      Src: /src/gdal/ogr/ogr_geometry.h:407,1
    - Dst: OGRGeometry
      Src: /src/gdal/ogr/ogr_geometry.h:409,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogr_geometry.h:418,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogr_geometry.h:418,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogr_geometry.h:424,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogr_geometry.h:424,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_geometry.h:457,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:473,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogr_geometry.h:476,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogr_geometry.h:476,1
    - Dst: OGRWktOptions
      Src: /src/gdal/ogr/ogr_geometry.h:487,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:604,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:607,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:610,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:613,1
    - Dst: reinterpret_cast<OGRGeometryH>
      Src: /src/gdal/ogr/ogr_geometry.h:641,1
    - Dst: reinterpret_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogr_geometry.h:649,1
    - Dst: cpl::down_cast<OGRPoint *>
      Src: /src/gdal/ogr/ogr_geometry.h:658,1
    - Dst: cpl::down_cast<const OGRPoint *>
      Src: /src/gdal/ogr/ogr_geometry.h:667,1
    - Dst: cpl::down_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:677,1
    - Dst: cpl::down_cast<const OGRCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:687,1
    - Dst: cpl::down_cast<OGRSimpleCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:697,1
    - Dst: cpl::down_cast<const OGRSimpleCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:707,1
    - Dst: cpl::down_cast<OGRLineString *>
      Src: /src/gdal/ogr/ogr_geometry.h:717,1
    - Dst: cpl::down_cast<const OGRLineString *>
      Src: /src/gdal/ogr/ogr_geometry.h:727,1
    - Dst: cpl::down_cast<OGRLinearRing *>
      Src: /src/gdal/ogr/ogr_geometry.h:736,1
    - Dst: cpl::down_cast<const OGRLinearRing *>
      Src: /src/gdal/ogr/ogr_geometry.h:745,1
    - Dst: cpl::down_cast<OGRCircularString *>
      Src: /src/gdal/ogr/ogr_geometry.h:755,1
    - Dst: cpl::down_cast<const OGRCircularString *>
      Src: /src/gdal/ogr/ogr_geometry.h:765,1
    - Dst: cpl::down_cast<OGRCompoundCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:775,1
    - Dst: cpl::down_cast<const OGRCompoundCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:785,1
    - Dst: cpl::down_cast<OGRSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:795,1
    - Dst: cpl::down_cast<const OGRSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:805,1
    - Dst: cpl::down_cast<OGRPolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:815,1
    - Dst: cpl::down_cast<const OGRPolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:825,1
    - Dst: cpl::down_cast<OGRTriangle *>
      Src: /src/gdal/ogr/ogr_geometry.h:834,1
    - Dst: cpl::down_cast<const OGRTriangle *>
      Src: /src/gdal/ogr/ogr_geometry.h:843,1
    - Dst: cpl::down_cast<OGRCurvePolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:853,1
    - Dst: cpl::down_cast<const OGRCurvePolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:863,1
    - Dst: cpl::down_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogr_geometry.h:873,1
    - Dst: cpl::down_cast<const OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogr_geometry.h:883,1
    - Dst: cpl::down_cast<OGRMultiPoint *>
      Src: /src/gdal/ogr/ogr_geometry.h:893,1
    - Dst: cpl::down_cast<const OGRMultiPoint *>
      Src: /src/gdal/ogr/ogr_geometry.h:903,1
    - Dst: cpl::down_cast<OGRMultiLineString *>
      Src: /src/gdal/ogr/ogr_geometry.h:913,1
    - Dst: cpl::down_cast<const OGRMultiLineString *>
      Src: /src/gdal/ogr/ogr_geometry.h:923,1
    - Dst: cpl::down_cast<OGRMultiPolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:933,1
    - Dst: cpl::down_cast<const OGRMultiPolygon *>
      Src: /src/gdal/ogr/ogr_geometry.h:943,1
    - Dst: cpl::down_cast<OGRMultiCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:953,1
    - Dst: cpl::down_cast<const OGRMultiCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:963,1
    - Dst: cpl::down_cast<OGRMultiSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:973,1
    - Dst: cpl::down_cast<const OGRMultiSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:983,1
    - Dst: cpl::down_cast<OGRPolyhedralSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:993,1
    - Dst: cpl::down_cast<const OGRPolyhedralSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:1003,1
    - Dst: cpl::down_cast<OGRTriangulatedSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:1012,1
    - Dst: cpl::down_cast<const OGRTriangulatedSurface *>
      Src: /src/gdal/ogr/ogr_geometry.h:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 1023
    functionName: OGRGeometry
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 2
    functionsReached:
    - cpl::down_cast<OGRSurface *>
    - const_cast<const char **>
    - OGRGeometry
    - Equals
    - cpl::down_cast<OGRSimpleCurve *>
    - cpl::down_cast<OGRLinearRing *>
    - cpl::down_cast<const OGRLinearRing *>
    - cpl::down_cast<OGRGeometryCollection *>
    - cpl::down_cast<OGRMultiSurface *>
    - reinterpret_cast<OGRGeometryH>
    - cpl::down_cast<const OGRTriangulatedSurface *>
    - cpl::down_cast<const OGRSurface *>
    - cpl::down_cast<const OGRPolyhedralSurface *>
    - cpl::down_cast<OGRMultiPolygon *>
    - cpl::down_cast<OGRCurve *>
    - cpl::down_cast<const OGRCurvePolygon *>
    - cpl::down_cast<OGRTriangulatedSurface *>
    - cpl::down_cast<OGRMultiCurve *>
    - CPL_TO_BOOL
    - cpl::down_cast<const OGRCircularString *>
    - cpl::down_cast<const OGRSimpleCurve *>
    - cpl::down_cast<OGRLineString *>
    - reinterpret_cast<OGRGeometry *>
    - cpl::down_cast<const OGRMultiCurve *>
    - cpl::down_cast<const OGRPolygon *>
    - cpl::down_cast<const OGRLineString *>
    - cpl::down_cast<const OGRCurve *>
    - cpl::down_cast<const OGRMultiPolygon *>
    - cpl::down_cast<OGRMultiLineString *>
    - cpl::down_cast<const OGRGeometryCollection *>
    - cpl::down_cast<const OGRMultiSurface *>
    - importFromWkt
    - cpl::down_cast<OGRCurvePolygon *>
    - cpl::down_cast<const OGRPoint *>
    - cpl::down_cast<const OGRCompoundCurve *>
    - cpl::down_cast<const OGRMultiLineString *>
    - CPL_WARN_DEPRECATED
    - cpl::down_cast<OGRPolygon *>
    - cpl::down_cast<OGRCircularString *>
    - cpl::down_cast<OGRCompoundCurve *>
    - static_cast<size_t>
    - OGRWktOptions
    - cpl::down_cast<OGRPolyhedralSurface *>
    - cpl::down_cast<const OGRMultiPoint *>
    - cpl::down_cast<OGRTriangle *>
    - cpl::down_cast<OGRMultiPoint *>
    - cpl::down_cast<const OGRTriangle *>
    - cpl::down_cast<OGRPoint *>
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1029
    functionName: OGRGeometryUniquePtrDeleter
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRGeometryUniquePtrDeleter
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 1150
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1150
    functionName: OGRPoint
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPoint(OGRPoint &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: IsEmpty
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean IsEmpty() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: getX
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getX() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: getY
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getY() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1210
    functionName: getZ
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getZ() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: getM
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getM() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_geometry.h:1227,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_geometry.h:1227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - xIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1231
      start: 1224
    functionDepth: 0
    functionLinenumber: 1224
    functionLinenumberEnd: 1231
    functionName: setX
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 26
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void setX(double xIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_geometry.h:1239,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogr_geometry.h:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - yIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1243
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1243
    functionName: setY
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 25
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void setY(double yIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1252
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1252
    functionName: setZ
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setZ(double zIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1261
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1261
    functionName: setM
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setM(double mIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1277
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1277
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1282
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1282
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPointIterator
      Src: /src/gdal/ogr/ogr_geometry.h:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1309
    functionName: OGRPointIterator
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached:
    - OGRPointIterator
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRPointIterator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve
      Src: /src/gdal/ogr/ogr_geometry.h:1324,1
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_geometry.h:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1352
    functionName: OGRGeometry
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 2
    functionsReached:
    - OGRCurve
    - ConstIterator
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRSimpleCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1410
    functionName: toSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached:
    - cpl::down_cast<OGRSimpleCurve *>
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toSimpleCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<const OGRSimpleCurve *>
      Src: /src/gdal/ogr/ogr_geometry.h:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1418
    functionName: toSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached:
    - cpl::down_cast<const OGRSimpleCurve *>
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toSimpleCurve() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::begin
      Src: /src/gdal/ogr/ogr_geometry.h:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 1435
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1435
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - OGRCurve*::begin
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: OGRCurve::ConstIterator begin(const OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::end
      Src: /src/gdal/ogr/ogr_geometry.h:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 31
    functionsReached:
    - OGRCurve*::end
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: OGRCurve::ConstIterator end(const OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_geometry.h:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1502
    functionName: OGRIteratedPoint
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRIteratedPoint
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve
      Src: /src/gdal/ogr/ogr_geometry.h:1546,1
    - Dst: Iterator
      Src: /src/gdal/ogr/ogr_geometry.h:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1563
    functionName: OGRSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached:
    - Iterator
    - OGRSimpleCurve
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRSimpleCurve
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConstIterator
      Src: /src/gdal/ogr/ogr_geometry.h:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1582
    functionName: ConstIterator
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 4
    functionsReached:
    - ConstIterator
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL ConstIterator
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1664
    functionName: getNumPoints
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getNumPoints() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1671
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1671
    functionName: getX
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getX(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1676
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1676
    functionName: getY
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getY(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::begin
      Src: /src/gdal/ogr/ogr_geometry.h:1738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 1739
      start: 1736
    functionDepth: 0
    functionLinenumber: 1736
    functionLinenumberEnd: 1739
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 13
    functionsReached:
    - OGRSimpleCurve*::begin
    linkageType: ''
    returnType: OGRSimpleCurve::Iterator
    signature: OGRSimpleCurve::Iterator begin(OGRSimpleCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::end
      Src: /src/gdal/ogr/ogr_geometry.h:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 1745
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1745
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 32
    functionsReached:
    - OGRSimpleCurve*::end
    linkageType: ''
    returnType: OGRSimpleCurve::Iterator
    signature: OGRSimpleCurve::Iterator end(OGRSimpleCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::begin
      Src: /src/gdal/ogr/ogr_geometry.h:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 1751
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1751
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 14
    functionsReached:
    - OGRSimpleCurve*::begin
    linkageType: ''
    returnType: OGRSimpleCurve::ConstIterator
    signature: OGRSimpleCurve::ConstIterator begin(const OGRSimpleCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::end
      Src: /src/gdal/ogr/ogr_geometry.h:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 1757
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1757
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 33
    functionsReached:
    - OGRSimpleCurve*::end
    linkageType: ''
    returnType: OGRSimpleCurve::ConstIterator
    signature: OGRSimpleCurve::ConstIterator end(const OGRSimpleCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1820
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1831
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1831
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1836
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1836
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRLinearRing
    constantsTouched: []
    func_position:
      end: 1903
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1903
    functionName: OGRLinearRing
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLinearRing(OGRLinearRing &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1927
    functionDepth: 0
    functionLinenumber: 1927
    functionLinenumberEnd: 1930
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1936
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1941
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1941
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 1946
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1946
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCircularString
    constantsTouched: []
    func_position:
      end: 1990
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 1990
    functionName: OGRCircularString
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCircularString(OGRCircularString &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2051
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2057
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve
    signature: OGRSimpleCurve *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2062
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2062
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2067
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2067
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurveCollection
      Src: /src/gdal/ogr/ogr_geometry.h:2100,1
    - Dst: OGRCurveCollection
      Src: /src/gdal/ogr/ogr_geometry.h:2102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2186
    functionName: OGRCurveCollection
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 1
    functionsReached:
    - OGRCurveCollection
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRCurveCollection
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCompoundCurve
    constantsTouched: []
    func_position:
      end: 2238
      start: 2238
    functionDepth: 0
    functionLinenumber: 2238
    functionLinenumberEnd: 2238
    functionName: OGRCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCompoundCurve(OGRCompoundCurve &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2250
    functionDepth: 0
    functionLinenumber: 2250
    functionLinenumberEnd: 2253
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 15
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2259
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 34
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2267
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 16
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2273
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 35
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2369
      start: 2366
    functionDepth: 0
    functionLinenumber: 2366
    functionLinenumberEnd: 2369
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2374
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2374
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2391
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 17
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRCompoundCurve::ChildType
    signature: 'OGRCompoundCurve::ChildType *const *

      begin(const OGRCompoundCurve *poCurve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2394
    functionDepth: 0
    functionLinenumber: 2394
    functionLinenumberEnd: 2398
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 36
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRCompoundCurve::ChildType
    signature: 'OGRCompoundCurve::ChildType *const *

      end(const OGRCompoundCurve *poCurve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2404
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRCompoundCurve::ChildType
    signature: OGRCompoundCurve::ChildType **begin(OGRCompoundCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2410
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 37
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRCompoundCurve::ChildType
    signature: OGRCompoundCurve::ChildType **end(OGRCompoundCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2508
    functionName: OGRCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCurvePolygon(OGRCurvePolygon &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2523
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 19
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2529
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 38
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2537
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 20
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2540
    functionDepth: 0
    functionLinenumber: 2540
    functionLinenumberEnd: 2543
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 39
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2633
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2633
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2638
      start: 2635
    functionDepth: 0
    functionLinenumber: 2635
    functionLinenumberEnd: 2638
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2651
    functionDepth: 0
    functionLinenumber: 2651
    functionLinenumberEnd: 2655
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 21
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRCurvePolygon::ChildType
    signature: 'OGRCurvePolygon::ChildType *const *

      begin(const OGRCurvePolygon *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2662
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 40
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRCurvePolygon::ChildType
    signature: 'OGRCurvePolygon::ChildType *const *

      end(const OGRCurvePolygon *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2668
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 22
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRCurvePolygon::ChildType
    signature: OGRCurvePolygon::ChildType **begin(OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2671
    functionDepth: 0
    functionLinenumber: 2671
    functionLinenumberEnd: 2674
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 41
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRCurvePolygon::ChildType
    signature: OGRCurvePolygon::ChildType **end(OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPolygon
    constantsTouched: []
    func_position:
      end: 2725
      start: 2721
    functionDepth: 0
    functionLinenumber: 2721
    functionLinenumberEnd: 2725
    functionName: OGRPolygon
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPolygon(OGRPolygon &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:2739,1
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2740
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 23
    functionsReached:
    - begin
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:2745,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2746
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 42
    functionsReached:
    - end
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:2753,1
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 24
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:2759,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2760
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 43
    functionsReached:
    - end
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2817
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2823
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2828
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2828
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2833
      start: 2830
    functionDepth: 0
    functionLinenumber: 2830
    functionLinenumberEnd: 2833
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2843
    functionDepth: 0
    functionLinenumber: 2843
    functionLinenumberEnd: 2846
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 25
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRPolygon::ChildType
    signature: OGRPolygon::ChildType *const *begin(const OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2852
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 44
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRPolygon::ChildType
    signature: OGRPolygon::ChildType *const *end(const OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:2857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2855
    functionDepth: 0
    functionLinenumber: 2855
    functionLinenumberEnd: 2858
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 26
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRPolygon::ChildType
    signature: OGRPolygon::ChildType **begin(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:2863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2864
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 45
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRPolygon::ChildType
    signature: OGRPolygon::ChildType **end(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRTriangle
    constantsTouched: []
    func_position:
      end: 2900
      start: 2900
    functionDepth: 0
    functionLinenumber: 2900
    functionLinenumberEnd: 2900
    functionName: OGRTriangle
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRTriangle(OGRTriangle &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2921
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2924
    functionDepth: 0
    functionLinenumber: 2924
    functionLinenumberEnd: 2927
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2932
      start: 2929
    functionDepth: 0
    functionLinenumber: 2929
    functionLinenumberEnd: 2932
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:2936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 2937
      start: 2934
    functionDepth: 0
    functionLinenumber: 2934
    functionLinenumberEnd: 2937
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3000
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3006
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 3011
    functionDepth: 0
    functionLinenumber: 3011
    functionLinenumberEnd: 3014
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3017
    functionDepth: 0
    functionLinenumber: 3017
    functionLinenumberEnd: 3020
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3106
      start: 3103
    functionDepth: 0
    functionLinenumber: 3103
    functionLinenumberEnd: 3106
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3111
      start: 3108
    functionDepth: 0
    functionLinenumber: 3108
    functionLinenumberEnd: 3111
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3128
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 27
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRGeometryCollection::ChildType
    signature: 'OGRGeometryCollection::ChildType *const *

      begin(const OGRGeometryCollection *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3131
    functionDepth: 0
    functionLinenumber: 3131
    functionLinenumberEnd: 3135
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 46
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRGeometryCollection::ChildType
    signature: 'OGRGeometryCollection::ChildType *const *

      end(const OGRGeometryCollection *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3138
    functionDepth: 0
    functionLinenumber: 3138
    functionLinenumberEnd: 3141
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 28
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRGeometryCollection::ChildType
    signature: OGRGeometryCollection::ChildType **begin(OGRGeometryCollection *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3144
    functionDepth: 0
    functionLinenumber: 3144
    functionLinenumberEnd: 3147
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 47
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRGeometryCollection::ChildType
    signature: OGRGeometryCollection::ChildType **end(OGRGeometryCollection *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiSurface
    constantsTouched: []
    func_position:
      end: 3172
      start: 3172
    functionDepth: 0
    functionLinenumber: 3172
    functionLinenumberEnd: 3172
    functionName: OGRMultiSurface
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiSurface(OGRMultiSurface &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3184
    functionDepth: 0
    functionLinenumber: 3184
    functionLinenumberEnd: 3187
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 28
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3190
    functionDepth: 0
    functionLinenumber: 3190
    functionLinenumberEnd: 3193
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 47
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3201
      start: 3198
    functionDepth: 0
    functionLinenumber: 3198
    functionLinenumberEnd: 3201
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 28
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3208
      start: 3204
    functionDepth: 0
    functionLinenumber: 3204
    functionLinenumberEnd: 3208
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 47
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3243
      start: 3240
    functionDepth: 0
    functionLinenumber: 3240
    functionLinenumberEnd: 3243
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 25
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRSurface
    signature: OGRSurface *getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3249
      start: 3246
    functionDepth: 0
    functionLinenumber: 3246
    functionLinenumberEnd: 3249
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 26
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRSurface
    signature: OGRSurface *getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3256
    functionDepth: 0
    functionLinenumber: 3256
    functionLinenumberEnd: 3259
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3262
    functionDepth: 0
    functionLinenumber: 3262
    functionLinenumberEnd: 3265
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3270
      start: 3267
    functionDepth: 0
    functionLinenumber: 3267
    functionLinenumberEnd: 3270
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3275
      start: 3272
    functionDepth: 0
    functionLinenumber: 3272
    functionLinenumberEnd: 3275
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3292
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 29
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiSurface::ChildType
    signature: 'OGRMultiSurface::ChildType *const *

      begin(const OGRMultiSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3295
    functionDepth: 0
    functionLinenumber: 3295
    functionLinenumberEnd: 3299
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 48
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiSurface::ChildType
    signature: 'OGRMultiSurface::ChildType *const *

      end(const OGRMultiSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3302
    functionDepth: 0
    functionLinenumber: 3302
    functionLinenumberEnd: 3305
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 30
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiSurface::ChildType
    signature: OGRMultiSurface::ChildType **begin(OGRMultiSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3308
    functionDepth: 0
    functionLinenumber: 3308
    functionLinenumberEnd: 3311
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 49
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiSurface::ChildType
    signature: OGRMultiSurface::ChildType **end(OGRMultiSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiPolygon
    constantsTouched: []
    func_position:
      end: 3344
      start: 3344
    functionDepth: 0
    functionLinenumber: 3344
    functionLinenumberEnd: 3344
    functionName: OGRMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiPolygon(OGRMultiPolygon &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3356
    functionDepth: 0
    functionLinenumber: 3356
    functionLinenumberEnd: 3359
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 30
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3365
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 49
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3370
    functionDepth: 0
    functionLinenumber: 3370
    functionLinenumberEnd: 3373
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 30
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3376
    functionDepth: 0
    functionLinenumber: 3376
    functionLinenumberEnd: 3380
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 49
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3387
      start: 3384
    functionDepth: 0
    functionLinenumber: 3384
    functionLinenumberEnd: 3387
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 27
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3393
      start: 3390
    functionDepth: 0
    functionLinenumber: 3390
    functionLinenumberEnd: 3393
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 28
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3419
    functionDepth: 0
    functionLinenumber: 3419
    functionLinenumberEnd: 3422
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3428
      start: 3425
    functionDepth: 0
    functionLinenumber: 3425
    functionLinenumberEnd: 3428
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3433
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3433
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3438
      start: 3435
    functionDepth: 0
    functionLinenumber: 3435
    functionLinenumberEnd: 3438
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3448
    functionDepth: 0
    functionLinenumber: 3448
    functionLinenumberEnd: 3452
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 31
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiPolygon::ChildType
    signature: 'OGRMultiPolygon::ChildType *const *

      begin(const OGRMultiPolygon *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3455
    functionDepth: 0
    functionLinenumber: 3455
    functionLinenumberEnd: 3459
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 50
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiPolygon::ChildType
    signature: 'OGRMultiPolygon::ChildType *const *

      end(const OGRMultiPolygon *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3462
    functionDepth: 0
    functionLinenumber: 3462
    functionLinenumberEnd: 3465
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 32
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiPolygon::ChildType
    signature: OGRMultiPolygon::ChildType **begin(OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3468
    functionDepth: 0
    functionLinenumber: 3468
    functionLinenumberEnd: 3471
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 51
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiPolygon::ChildType
    signature: OGRMultiPolygon::ChildType **end(OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPolyhedralSurface
    constantsTouched: []
    func_position:
      end: 3511
      start: 3511
    functionDepth: 0
    functionLinenumber: 3511
    functionLinenumberEnd: 3511
    functionName: OGRPolyhedralSurface
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPolyhedralSurface(OGRPolyhedralSurface &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3523
    functionDepth: 0
    functionLinenumber: 3523
    functionLinenumberEnd: 3526
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 33
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3529
    functionDepth: 0
    functionLinenumber: 3529
    functionLinenumberEnd: 3532
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 52
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3537
    functionDepth: 0
    functionLinenumber: 3537
    functionLinenumberEnd: 3540
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 34
    functionsReached:
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3543
    functionDepth: 0
    functionLinenumber: 3543
    functionLinenumberEnd: 3546
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 53
    functionsReached:
    - end
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3619
      start: 3616
    functionDepth: 0
    functionLinenumber: 3616
    functionLinenumberEnd: 3619
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3624
      start: 3621
    functionDepth: 0
    functionLinenumber: 3621
    functionLinenumberEnd: 3624
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3635
    functionDepth: 0
    functionLinenumber: 3635
    functionLinenumberEnd: 3639
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 35
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRPolyhedralSurface::ChildType
    signature: 'OGRPolyhedralSurface::ChildType *const *

      begin(const OGRPolyhedralSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3642
    functionDepth: 0
    functionLinenumber: 3642
    functionLinenumberEnd: 3646
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 54
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRPolyhedralSurface::ChildType
    signature: 'OGRPolyhedralSurface::ChildType *const *

      end(const OGRPolyhedralSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3649
    functionDepth: 0
    functionLinenumber: 3649
    functionLinenumberEnd: 3652
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 36
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRPolyhedralSurface::ChildType
    signature: OGRPolyhedralSurface::ChildType **begin(OGRPolyhedralSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3658
      start: 3655
    functionDepth: 0
    functionLinenumber: 3655
    functionLinenumberEnd: 3658
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 55
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRPolyhedralSurface::ChildType
    signature: OGRPolyhedralSurface::ChildType **end(OGRPolyhedralSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRTriangulatedSurface
    constantsTouched: []
    func_position:
      end: 3691
      start: 3691
    functionDepth: 0
    functionLinenumber: 3691
    functionLinenumberEnd: 3691
    functionName: OGRTriangulatedSurface
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRTriangulatedSurface(OGRTriangulatedSurface &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3705,1
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3706
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 37
    functionsReached:
    - begin
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3711,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3712
      start: 3709
    functionDepth: 0
    functionLinenumber: 3709
    functionLinenumberEnd: 3712
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 56
    functionsReached:
    - end
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3719,1
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3720
      start: 3717
    functionDepth: 0
    functionLinenumber: 3717
    functionLinenumberEnd: 3720
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 38
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    - begin
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3725,1
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3723
    functionDepth: 0
    functionLinenumber: 3723
    functionLinenumberEnd: 3726
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 57
    functionsReached:
    - end
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3736
      start: 3733
    functionDepth: 0
    functionLinenumber: 3733
    functionLinenumberEnd: 3736
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 29
    functionsReached:
    - OGRPolyhedralSurface::getGeometryRef
    linkageType: ''
    returnType: OGRTriangle
    signature: OGRTriangle *getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolyhedralSurface::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3742
      start: 3739
    functionDepth: 0
    functionLinenumber: 3739
    functionLinenumberEnd: 3742
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 30
    functionsReached:
    - OGRPolyhedralSurface::getGeometryRef
    linkageType: ''
    returnType: OGRTriangle
    signature: OGRTriangle *getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3752
    functionDepth: 0
    functionLinenumber: 3752
    functionLinenumberEnd: 3755
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: OGRPolyhedralSurface *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3761
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: OGRPolyhedralSurface *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3766
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3766
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:3770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 3771
      start: 3768
    functionDepth: 0
    functionLinenumber: 3768
    functionLinenumberEnd: 3771
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3782
    functionDepth: 0
    functionLinenumber: 3782
    functionLinenumberEnd: 3786
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 39
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRTriangulatedSurface::ChildType
    signature: 'OGRTriangulatedSurface::ChildType *const *

      begin(const OGRTriangulatedSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3793
      start: 3789
    functionDepth: 0
    functionLinenumber: 3789
    functionLinenumberEnd: 3793
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 58
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRTriangulatedSurface::ChildType
    signature: 'OGRTriangulatedSurface::ChildType *const *

      end(const OGRTriangulatedSurface *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3799
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 40
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRTriangulatedSurface::ChildType
    signature: OGRTriangulatedSurface::ChildType **begin(OGRTriangulatedSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3805
      start: 3802
    functionDepth: 0
    functionLinenumber: 3802
    functionLinenumberEnd: 3805
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 59
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRTriangulatedSurface::ChildType
    signature: OGRTriangulatedSurface::ChildType **end(OGRTriangulatedSurface *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPoint
      Src: /src/gdal/ogr/ogr_geometry.h:3827,1
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3845,1
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:3851,1
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3859,1
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:3865,1
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3873,1
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:3879,1
    - Dst: OGRWktOptions
      Src: /src/gdal/ogr/ogr_geometry.h:3901,1
    - Dst: visit
      Src: /src/gdal/ogr/ogr_geometry.h:3921,1
    - Dst: visit
      Src: /src/gdal/ogr/ogr_geometry.h:3926,1
    - Dst: OGR_ALLOW_CAST_TO_THIS
      Src: /src/gdal/ogr/ogr_geometry.h:3933,1
    - Dst: OGR_ALLOW_UPCAST_TO
      Src: /src/gdal/ogr/ogr_geometry.h:3934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3817
    functionDepth: 1
    functionLinenumber: 3817
    functionLinenumberEnd: 3939
    functionName: OGRGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 11
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    - OGRWktOptions
    - OGRMultiPoint
    - reinterpret_cast<const ChildType *const *>
    - OGR_ALLOW_UPCAST_TO
    - reinterpret_cast<ChildType **>
    - OGR_ALLOW_CAST_TO_THIS
    - visit
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeometryCollection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3946
      start: 3943
    functionDepth: 0
    functionLinenumber: 3943
    functionLinenumberEnd: 3946
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 41
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiPoint::ChildType
    signature: OGRMultiPoint::ChildType *const *begin(const OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3952
      start: 3949
    functionDepth: 0
    functionLinenumber: 3949
    functionLinenumberEnd: 3952
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 60
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiPoint::ChildType
    signature: OGRMultiPoint::ChildType *const *end(const OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:3957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3955
    functionDepth: 0
    functionLinenumber: 3955
    functionLinenumberEnd: 3958
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 42
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiPoint::ChildType
    signature: OGRMultiPoint::ChildType **begin(OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:3963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3961
    functionDepth: 0
    functionLinenumber: 3961
    functionLinenumberEnd: 3964
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 61
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiPoint::ChildType
    signature: OGRMultiPoint::ChildType **end(OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiCurve
    constantsTouched: []
    func_position:
      end: 3993
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 3993
    functionName: OGRMultiCurve
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiCurve(OGRMultiCurve &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:4007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4008
      start: 4005
    functionDepth: 0
    functionLinenumber: 4005
    functionLinenumberEnd: 4008
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 42
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:4013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4011
    functionDepth: 0
    functionLinenumber: 4011
    functionLinenumberEnd: 4014
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 61
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:4021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 4019
    functionDepth: 0
    functionLinenumber: 4019
    functionLinenumberEnd: 4022
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 42
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:4027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4025
    functionDepth: 0
    functionLinenumber: 4025
    functionLinenumberEnd: 4029
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 61
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:4035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4036
      start: 4033
    functionDepth: 0
    functionLinenumber: 4033
    functionLinenumberEnd: 4036
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 32
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:4041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4042
      start: 4039
    functionDepth: 0
    functionLinenumber: 4039
    functionLinenumberEnd: 4042
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 33
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve *getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4074
    functionDepth: 0
    functionLinenumber: 4074
    functionLinenumberEnd: 4077
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4080
    functionDepth: 0
    functionLinenumber: 4080
    functionLinenumberEnd: 4083
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 4088
      start: 4085
    functionDepth: 0
    functionLinenumber: 4085
    functionLinenumberEnd: 4088
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:4092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 4093
      start: 4090
    functionDepth: 0
    functionLinenumber: 4090
    functionLinenumberEnd: 4093
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:4108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4109
      start: 4106
    functionDepth: 0
    functionLinenumber: 4106
    functionLinenumberEnd: 4109
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 43
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiCurve::ChildType
    signature: OGRMultiCurve::ChildType *const *begin(const OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:4114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4112
    functionDepth: 0
    functionLinenumber: 4112
    functionLinenumberEnd: 4115
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 62
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiCurve::ChildType
    signature: OGRMultiCurve::ChildType *const *end(const OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:4120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4118
    functionDepth: 0
    functionLinenumber: 4118
    functionLinenumberEnd: 4121
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 44
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiCurve::ChildType
    signature: OGRMultiCurve::ChildType **begin(OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:4126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4124
    functionDepth: 0
    functionLinenumber: 4124
    functionLinenumberEnd: 4127
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 63
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiCurve::ChildType
    signature: OGRMultiCurve::ChildType **end(OGRMultiCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiLineString
    constantsTouched: []
    func_position:
      end: 4150
      start: 4150
    functionDepth: 0
    functionLinenumber: 4150
    functionLinenumberEnd: 4150
    functionName: OGRMultiLineString
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiLineString(OGRMultiLineString &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:4164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4162
    functionDepth: 0
    functionLinenumber: 4162
    functionLinenumberEnd: 4165
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 44
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ChildType **>
      Src: /src/gdal/ogr/ogr_geometry.h:4170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4171
      start: 4168
    functionDepth: 0
    functionLinenumber: 4168
    functionLinenumberEnd: 4171
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 63
    functionsReached:
    - reinterpret_cast<ChildType **>
    linkageType: ''
    returnType: ChildType
    signature: ChildType **end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:4178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4176
    functionDepth: 0
    functionLinenumber: 4176
    functionLinenumberEnd: 4179
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 44
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const ChildType *const *>
      Src: /src/gdal/ogr/ogr_geometry.h:4184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4182
    functionDepth: 0
    functionLinenumber: 4182
    functionLinenumberEnd: 4186
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 63
    functionsReached:
    - reinterpret_cast<const ChildType *const *>
    linkageType: ''
    returnType: ChildType
    signature: ChildType *const *end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:4192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4193
      start: 4190
    functionDepth: 0
    functionLinenumber: 4190
    functionLinenumberEnd: 4193
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 34
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *getGeometryRef(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogr_geometry.h:4198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4199
      start: 4196
    functionDepth: 0
    functionLinenumber: 4196
    functionLinenumberEnd: 4199
    functionName: getGeometryRef
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 35
    functionsReached:
    - OGRGeometryCollection::getGeometryRef
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *getGeometryRef(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4225
    functionDepth: 0
    functionLinenumber: 4225
    functionLinenumberEnd: 4228
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4234
      start: 4231
    functionDepth: 0
    functionLinenumber: 4231
    functionLinenumberEnd: 4234
    functionName: toUpperClass
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *toUpperClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:4238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 4239
      start: 4236
    functionDepth: 0
    functionLinenumber: 4236
    functionLinenumberEnd: 4239
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRGeometryVisitor *visitor) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRConstGeometryVisitor*::visit
      Src: /src/gdal/ogr/ogr_geometry.h:4243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - IOGRConstGeometryVisitor*
    constantsTouched: []
    func_position:
      end: 4244
      start: 4241
    functionDepth: 0
    functionLinenumber: 4241
    functionLinenumberEnd: 4244
    functionName: accept
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 12
    functionsReached:
    - IOGRConstGeometryVisitor*::visit
    linkageType: ''
    returnType: void
    signature: void accept(IOGRConstGeometryVisitor *visitor) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:4260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4261
      start: 4257
    functionDepth: 0
    functionLinenumber: 4257
    functionLinenumberEnd: 4261
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 45
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiLineString::ChildType
    signature: 'OGRMultiLineString::ChildType *const *

      begin(const OGRMultiLineString *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:4267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4268
      start: 4264
    functionDepth: 0
    functionLinenumber: 4264
    functionLinenumberEnd: 4268
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 64
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiLineString::ChildType
    signature: 'OGRMultiLineString::ChildType *const *

      end(const OGRMultiLineString *poGeom)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogr_geometry.h:4273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4271
    functionDepth: 0
    functionLinenumber: 4271
    functionLinenumberEnd: 4274
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 46
    functionsReached:
    - begin
    linkageType: ''
    returnType: OGRMultiLineString::ChildType
    signature: OGRMultiLineString::ChildType **begin(OGRMultiLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogr_geometry.h:4279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4280
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4280
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 65
    functionsReached:
    - end
    linkageType: ''
    returnType: OGRMultiLineString::ChildType
    signature: OGRMultiLineString::ChildType **end(OGRMultiLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogr_geometry.h:4302,1
    - Dst: CPL_WARN_DEPRECATED
      Src: /src/gdal/ogr/ogr_geometry.h:4321,1
    - Dst: createFromWkt
      Src: /src/gdal/ogr/ogr_geometry.h:4323,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogr_geometry.h:4323,1
    - Dst: TransformWithOptionsCache
      Src: /src/gdal/ogr/ogr_geometry.h:4364,1
    - Dst: TransformWithOptionsCache
      Src: /src/gdal/ogr/ogr_geometry.h:4377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4292
    functionDepth: 0
    functionLinenumber: 4292
    functionLinenumberEnd: 4400
    functionName: OGRGeometryFactory
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - const_cast<const char **>
    - CPL_WARN_DEPRECATED
    - createFromWkt
    - TransformWithOptionsCache
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRGeometryFactory
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4411
    functionDepth: 0
    functionLinenumber: 4411
    functionLinenumberEnd: 4414
    functionName: OGRPreparedGeometryUniquePtrDeleter
    functionSourceFile: /src/gdal/ogr/ogr_geometry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRPreparedGeometryUniquePtrDeleter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_op_registrar.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: swq_op_registrar::GetOperator
    functionSourceFile: /src/gdal/ogr/swq_op_registrar.cpp
    functionUses: 7
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: swq_operation
    signature: swq_operation *swq_op_registrar::GetOperator(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - eOperator
    argTypes:
    - swq_op
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: swq_op_registrar::GetOperator
    functionSourceFile: /src/gdal/ogr/swq_op_registrar.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: swq_operation
    signature: swq_operation *swq_op_registrar::GetOperator(swq_op eOperator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_op_registrar.cpp:109,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/swq_op_registrar.cpp:109,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_op_registrar.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: SWQColumnFuncChecker
    functionSourceFile: /src/gdal/ogr/swq_op_registrar.cpp
    functionUses: 0
    functionsReached:
    - static_cast<swq_op>
    - swq_op_registrar::GetOperator
    - CPLError
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type SWQColumnFuncChecker(swq_expr_node *poNode,\n                     int
      /* bAllowMismatchTypeOnFieldComparison */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::operator=
      Src: /src/gdal/ogr/ogrcurve.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRCurve
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: '&OGRCurve::operator=(const OGRCurve &other)'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::operator=
    linkageType: ''
    returnType: OGRCurve
    signature: OGRCurve &OGRCurve::operator=(const OGRCurve &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: OGRCurve::getDimension
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurve::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:63,1
    - Dst: StartPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:64,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:66,1
    - Dst: EndPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:67,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:69,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:69,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:72,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:72,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:73,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:73,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcurve.cpp:74,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrcurve.cpp:74,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:83,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:83,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:84,1
    - Dst: OGRPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:84,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:92,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:92,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:93,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 98
    functionName: OGRCurve::get_IsClosed
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - StartPoint
    - OGRPoint::getY
    - OGRPoint::getX
    - OGRPoint::OGRPoint
    - OGRPoint::getZ
    - OGRPoint::Is3D
    - EndPoint
    linkageType: ''
    returnType: int
    signature: int OGRCurve::get_IsClosed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPointIterator
      Src: /src/gdal/ogr/ogrcurve.cpp:314,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:315,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:316,1
    - Dst: OGRPointIterator*::getNextPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:317,1
    - Dst: OGRPointIterator*::getNextPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:317,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:319,1
    - Dst: OGRPointIterator*::getNextPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:320,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrcurve.cpp:330,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:330,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrcurve.cpp:331,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:331,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrcurve.cpp:332,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:332,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrcurve.cpp:333,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 338
    functionName: OGRCurve::IsConvex
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRPointIterator*::getNextPoint
    - OGRPoint::getY
    - OGRPoint::setX
    - OGRPoint::setY
    - OGRPoint::getX
    - OGRPoint::OGRPoint
    - getPointIterator
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRCurve::IsConvex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrcurve.cpp:358,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrcurve.cpp:359,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrcurve.cpp:359,1
    - Dst: OGRCurve::CastToLineString
      Src: /src/gdal/ogr/ogrcurve.cpp:360,1
    - Dst: OGRCurve*::IsEmpty
      Src: /src/gdal/ogr/ogrcurve.cpp:361,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrcurve.cpp:361,1
    - Dst: OGRCompoundCurve*::assignSpatialReference
      Src: /src/gdal/ogr/ogrcurve.cpp:367,1
    - Dst: OGRCurve*::getSpatialReference
      Src: /src/gdal/ogr/ogrcurve.cpp:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: OGRCurve::CastToCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRCurve::CastToLineString
    - OGRCurve*::IsEmpty
    - OGRCurve*::getSpatialReference
    - OGRCompoundCurve::OGRCompoundCurve
    - wkbFlatten
    - OGRCompoundCurve*::assignSpatialReference
    - OGRCurve*::getGeometryType
    - OGRCompoundCurve*::addCurveDirectly
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *OGRCurve::CastToCompoundCurve(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::GetCasterToLineString
      Src: /src/gdal/ogr/ogrcurve.cpp:389,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrcurve.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: OGRCurve::CastToLineString
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 8
    functionsReached:
    - pfn
    - OGRCurve*::GetCasterToLineString
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRCurve::CastToLineString(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::GetCasterToLinearRing
      Src: /src/gdal/ogr/ogrcurve.cpp:411,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrcurve.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poCurve
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: OGRCurve::CastToLinearRing
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 5
    functionsReached:
    - pfn
    - OGRCurve*::GetCasterToLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRCurve::CastToLinearRing(OGRCurve *poCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: OGRCurve::ContainsPoint
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurve::ContainsPoint(CPL_UNUSED const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: OGRCurve::IntersectsPoint
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRCurve::IntersectsPoint(CPL_UNUSED const OGRPoint *p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: OGRPointIterator::~OGRPointIterator()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPointIterator::~OGRPointIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poIter
    argTypes:
    - OGRPointIterator*
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: OGRPointIterator::destroy
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPointIterator::destroy(OGRPointIterator *poIter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: OGRIteratedPoint::~OGRIteratedPoint()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIteratedPoint::~OGRIteratedPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIteratedPoint::setX
      Src: /src/gdal/ogr/ogrcurve.cpp:495,1
    - Dst: setPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:496,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrcurve.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: OGRIteratedPoint::setX
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 1
    functionsReached:
    - setPoint
    - getY
    - OGRIteratedPoint::setX
    linkageType: ''
    returnType: void
    signature: void OGRIteratedPoint::setX(double xIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIteratedPoint::setY
      Src: /src/gdal/ogr/ogrcurve.cpp:501,1
    - Dst: setPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:502,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrcurve.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - yIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: OGRIteratedPoint::setY
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 1
    functionsReached:
    - setPoint
    - getX
    - OGRIteratedPoint::setY
    linkageType: ''
    returnType: void
    signature: void OGRIteratedPoint::setY(double yIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setZ
      Src: /src/gdal/ogr/ogrcurve.cpp:507,1
    - Dst: OGRIteratedPoint::setZ
      Src: /src/gdal/ogr/ogrcurve.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: OGRIteratedPoint::setZ
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::setZ
    - OGRIteratedPoint::setZ
    linkageType: ''
    returnType: void
    signature: void OGRIteratedPoint::setZ(double zIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve::setM
      Src: /src/gdal/ogr/ogrcurve.cpp:513,1
    - Dst: OGRIteratedPoint::setM
      Src: /src/gdal/ogr/ogrcurve.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: OGRIteratedPoint::setM
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 1
    functionsReached:
    - OGRSimpleCurve::setM
    - OGRIteratedPoint::setM
    linkageType: ''
    returnType: void
    signature: void OGRIteratedPoint::setM(double mIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CPL_DISALLOW_COPY_ASSIGN
    signature: CPL_DISALLOW_COPY_ASSIGN Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:530,1
    - Dst: m_oPoint::m_poCurve::getPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:531,1
    - Dst: m_oPoint::Is3D
      Src: /src/gdal/ogr/ogrcurve.cpp:535,1
    - Dst: m_oPoint::m_poCurve::set3D
      Src: /src/gdal/ogr/ogrcurve.cpp:536,1
    - Dst: m_oPoint::IsMeasured
      Src: /src/gdal/ogr/ogrcurve.cpp:537,1
    - Dst: m_oPoint::m_poCurve::setMeasured
      Src: /src/gdal/ogr/ogrcurve.cpp:538,1
    - Dst: m_oPoint::m_poCurve::setPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 544
    functionName: OGRSimpleCurve::Iterator::update()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - m_oPoint::m_poCurve::setPoint
    - m_oPoint::m_poCurve::setMeasured
    - m_oPoint::m_poCurve::getPoint
    - m_oPoint::m_poCurve::set3D
    - OGRPoint::OGRPoint
    - m_oPoint::IsMeasured
    - m_oPoint::Is3D
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::Iterator::update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrcurve.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poSelf
    - nPos
    argTypes:
    - OGRSimpleCurve*
    - int
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: OGRSimpleCurve::Iterator::Iterator(OGRSimpleCurve *poSelf, int nPos)
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::Iterator::Iterator(OGRSimpleCurve *poSelf, int
      nPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/gdal/ogr/ogrcurve.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: OGRSimpleCurve::Iterator::~Iterator()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::Iterator::~Iterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/gdal/ogr/ogrcurve.cpp:560,1
    - Dst: m_oPoint::m_poCurve::getPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: '&OGRSimpleCurve::Iterator::operator*()'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - m_oPoint::m_poCurve::getPoint
    - update
    linkageType: ''
    returnType: OGRIteratedPoint
    signature: OGRIteratedPoint &OGRSimpleCurve::Iterator::operator*()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/gdal/ogr/ogrcurve.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: '&OGRSimpleCurve::Iterator::operator++()'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: OGRSimpleCurve::Iterator
    signature: OGRSimpleCurve::Iterator &OGRSimpleCurve::Iterator::operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - Iterator
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: OGRSimpleCurve::Iterator::operator!=(const Iterator &it) const
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::Iterator::operator!=(const Iterator &it) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: OGRSimpleCurve::begin
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve::Iterator
    signature: OGRSimpleCurve::Iterator OGRSimpleCurve::begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: OGRSimpleCurve::end
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve::Iterator
    signature: OGRSimpleCurve::Iterator OGRSimpleCurve::end()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 596
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: CPL_DISALLOW_COPY_ASSIGN
    signature: CPL_DISALLOW_COPY_ASSIGN Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrcurve.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poSelf
    - nPos
    argTypes:
    - OGRSimpleCurve*
    - int
    constantsTouched: []
    func_position:
      end: 609
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 609
    functionName: "OGRSimpleCurve::ConstIterator::ConstIterator(const OGRSimpleCurve
      *poSelf,\n                                             int nPos)"
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: "void OGRSimpleCurve::ConstIterator::ConstIterator(const OGRSimpleCurve
      *poSelf,\n                                             int nPos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 611
    functionName: OGRSimpleCurve::ConstIterator::~ConstIterator()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSimpleCurve::ConstIterator::~ConstIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poSelf::getPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: '&OGRSimpleCurve::ConstIterator::operator*() const'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - m_poSelf::getPoint
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint &OGRSimpleCurve::ConstIterator::operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: '&OGRSimpleCurve::ConstIterator::operator++()'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve::ConstIterator
    signature: OGRSimpleCurve::ConstIterator &OGRSimpleCurve::ConstIterator::operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - ConstIterator
    constantsTouched: []
    func_position:
      end: 629
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 629
    functionName: OGRSimpleCurve::ConstIterator::operator!=(const ConstIterator &it)
      const
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSimpleCurve::ConstIterator::operator!=(const ConstIterator
      &it) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: OGRSimpleCurve::begin
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve::ConstIterator
    signature: OGRSimpleCurve::ConstIterator OGRSimpleCurve::begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: OGRSimpleCurve::end
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSimpleCurve::ConstIterator
    signature: OGRSimpleCurve::ConstIterator OGRSimpleCurve::end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 648
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CPL_DISALLOW_COPY_ASSIGN
    signature: CPL_DISALLOW_COPY_ASSIGN Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 649
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 649
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(Private &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 650
    functionName: '&operator=(Private &&)'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Private
    signature: Private &operator=(Private &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrcurve.cpp:659,1
    - Dst: m_poIterator::reset
      Src: /src/gdal/ogr/ogrcurve.cpp:664,1
    - Dst: OGRCurve*::getPointIterator
      Src: /src/gdal/ogr/ogrcurve.cpp:664,1
    - Dst: m_poIterator::getNextPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:665,1
    - Dst: m_poIterator::reset
      Src: /src/gdal/ogr/ogrcurve.cpp:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poSelf
    - bStart
    argTypes:
    - OGRCurve*
    - bool
    constantsTouched: []
    func_position:
      end: 675
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 675
    functionName: OGRCurve::ConstIterator::ConstIterator(const OGRCurve *poSelf, bool
      bStart)
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::getPointIterator
    - m_poIterator::getNextPoint
    - m_poIterator::reset
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRCurve::ConstIterator::ConstIterator(const OGRCurve *poSelf,
      bool bStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrcurve.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - ConstIterator
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: OGRCurve::ConstIterator::ConstIterator(ConstIterator &&oOther) noexcept
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRCurve::ConstIterator::ConstIterator(ConstIterator &&oOther)
      noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrcurve.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - ConstIterator
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: '&

      OGRCurve::ConstIterator::operator=(ConstIterator &&oOther)'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: 'OGRCurve::ConstIterator &

      OGRCurve::ConstIterator::operator=(ConstIterator &&oOther)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: OGRCurve::ConstIterator::~ConstIterator()
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCurve::ConstIterator::~ConstIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: '&OGRCurve::ConstIterator::operator*() const'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint &OGRCurve::ConstIterator::operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrcurve.cpp:698,1
    - Dst: m_poIterator::getNextPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:700,1
    - Dst: m_poIterator::reset
      Src: /src/gdal/ogr/ogrcurve.cpp:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 706
    functionName: '&OGRCurve::ConstIterator::operator++()'
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - m_poIterator::getNextPoint
    - CPLAssert
    - m_poIterator::reset
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: OGRCurve::ConstIterator &OGRCurve::ConstIterator::operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - ConstIterator
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: OGRCurve::ConstIterator::operator!=(const ConstIterator &it) const
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRCurve::ConstIterator::operator!=(const ConstIterator &it) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: OGRCurve::begin
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: OGRCurve::ConstIterator OGRCurve::begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: OGRCurve::end
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCurve::ConstIterator
    signature: OGRCurve::ConstIterator OGRCurve::end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve::begin
      Src: /src/gdal/ogr/ogrcurve.cpp:749,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:752,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrcurve.cpp:754,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:767,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:767,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:768,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:768,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:769,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:769,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:777,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:777,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:778,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:778,1
    - Dst: cpl::fabs
      Src: /src/gdal/ogr/ogrcurve.cpp:801,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrcurve.cpp:803,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:803,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:803,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrcurve.cpp:804,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:804,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:804,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrcurve.cpp:820,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:820,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:820,1
    - Dst: epsilonEqual
      Src: /src/gdal/ogr/ogrcurve.cpp:821,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:821,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:821,1
    - Dst: OGRCurve::begin
      Src: /src/gdal/ogr/ogrcurve.cpp:845,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:855,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:855,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:855,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrcurve.cpp:860,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:860,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrcurve.cpp:860,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 863
    functionName: OGRCurve::isClockwise
    functionSourceFile: /src/gdal/ogr/ogrcurve.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getY
    - auto::getX
    - cpl::fabs
    - OGRPoint::getX
    - epsilonEqual
    - OGRPoint::OGRPoint
    - auto::getY
    - OGRCurve::begin
    linkageType: ''
    returnType: int
    signature: int OGRCurve::isClockwise() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:57,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:60,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:61,1
    - Dst: OGRSpatialReference::morphFromESRI
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pszDictFile
    - pszCode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: OGRSpatialReference::importFromDict
    functionSourceFile: /src/gdal/ogr/ogr_srs_dict.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::morphFromESRI
    - OGRSpatialReference::importFromWkt
    - strstr
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromDict(const char *pszDictFile,\n
      \                                          const char *pszCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:83,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:85,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:87,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:95,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:101,1
    - Dst: OGRSpatialReference::lookupInDict
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:103,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:104,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:109,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:112,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:112,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:113,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:115,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:123,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - pszDictFile
    - pszCode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 126
    functionName: OGRSpatialReference::lookupInDict
    functionSourceFile: /src/gdal/ogr/ogr_srs_dict.cpp
    functionUses: 3
    functionsReached:
    - CPLReadLineL
    - STARTS_WITH_CI
    - OGRSpatialReference::lookupInDict
    - VSIFCloseL
    - VSIFOpenL
    - CPLString
    - strstr
    - strlen
    - EQUALN
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSpatialReference::lookupInDict(const char *pszDictFile,\n
      \                                           const char *pszCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:161,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogr_srs_dict.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszDictFile
    - pszCode
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: OSRImportFromDict
    functionSourceFile: /src/gdal/ogr/ogr_srs_dict.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSpatialReference *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromDict(OGRSpatialReferenceH hSRS, const char *pszDictFile,\n
      \                        const char *pszCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn::Initialize
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszNameIn
    - eGeomTypeIn
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: OGRGeomFieldDefn::OGRGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn::Initialize
    linkageType: ''
    returnType: void
    signature: "void OGRGeomFieldDefn::OGRGeomFieldDefn(const char *pszNameIn,\n                                   OGRwkbGeometryType
      eGeomTypeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn::Initialize
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:64,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:64,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:64,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:65,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:68,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:69,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:70,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:72,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:72,1
    - Dst: OGRGeomFieldDefn::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:73,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poPrototype
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: OGRGeomFieldDefn::OGRGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRGeomFieldDefn::SetNullable
    - OGRGeomFieldDefn*::IsNullable
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetType
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn::Initialize
    - OGRGeomFieldDefn::SetCoordinatePrecision
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::OGRGeomFieldDefn(const OGRGeomFieldDefn *poPrototype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:95,1
    - Dst: OGRGeomFieldDefn::OGRGeomFieldDefn
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - eType
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: OGR_GFld_Create
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRGeomFieldDefn::OGRGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefnH
    signature: OGRGeomFieldDefnH OGR_GFld_Create(const char *pszName, OGRwkbGeometryType
      eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszNameIn
    - eTypeIn
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: OGRGeomFieldDefn::Initialize
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRGeomFieldDefn::Initialize(const char *pszNameIn,\n                                  OGRwkbGeometryType
      eTypeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:120,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: OGRGeomFieldDefn::~OGRGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::~OGRGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:136,1
    - Dst: OGRGeomFieldDefn::poSRS::Clone
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRGeomFieldDefn
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: OGRGeomFieldDefn::OGRGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 1
    functionsReached:
    - OGRGeomFieldDefn::poSRS::Clone
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::OGRGeomFieldDefn(const OGRGeomFieldDefn &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:160,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:161,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:164,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRGeomFieldDefn
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: '&OGRGeomFieldDefn::operator=(const OGRGeomFieldDefn &oOther)'
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn &OGRGeomFieldDefn::operator=(const OGRGeomFieldDefn
      &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:190,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: OGR_GFld_Destroy
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_Destroy(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:220,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:226,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: OGRGeomFieldDefn::SetName
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::SetName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:255,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDefn
    - pszName
    argTypes:
    - OGRGeomFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: OGR_GFld_SetName
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_SetName(OGRGeomFieldDefnH hDefn, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:294,1
    - Dst: OGRAPISpy_GFld_GetXXXX
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:298,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: OGR_GFld_GetNameRef
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_GFld_GetXXXX
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_GFld_GetNameRef(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:337,1
    - Dst: OGRAPISpy_GFld_GetXXXX
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:341,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:344,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:345,1
    - Dst: OGRGetNonLinearGeometriesEnabledFlag
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:345,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 350
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 350
    functionName: OGR_GFld_GetType
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_GT_IsNonLinear
    - OGR_GT_GetLinear
    - OGRGetNonLinearGeometriesEnabledFlag
    - OGRAPISpy_GFld_GetXXXX
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_GFld_GetType(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - eTypeIn
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: OGRGeomFieldDefn::SetType
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::SetType(OGRwkbGeometryType eTypeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:411,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDefn
    - eType
    argTypes:
    - OGRGeomFieldDefnH
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: OGR_GFld_SetType
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_SetType(OGRGeomFieldDefnH hDefn, OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:449,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: OGR_GFld_IsIgnored
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_GFld_IsIgnored(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:495,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDefn
    - ignore
    argTypes:
    - OGRGeomFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: OGR_GFld_SetIgnored
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_SetIgnored(OGRGeomFieldDefnH hDefn, int ignore)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: OGRGeomFieldDefn::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRGeomFieldDefn::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:538,1
    - Dst: OGRAPISpy_GFld_GetXXXX
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:542,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:545,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:545,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: OGR_GFld_GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - FromHandle
    - ToHandle
    - OGRAPISpy_GFld_GetXXXX
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH OGR_GFld_GetSpatialRef(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:576,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:588,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poSRSIn
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 594
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 594
    functionName: OGRGeomFieldDefn::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::SetSpatialRef(const OGRSpatialReference *poSRSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:623,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:625,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDefn
    - hSRS
    argTypes:
    - OGRGeomFieldDefnH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: OGR_GFld_SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - reinterpret_cast<OGRSpatialReference *>
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_SetSpatialRef(OGRGeomFieldDefnH hDefn, OGRSpatialReferenceH
      hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:644,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:644,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:644,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:645,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:645,1
    - Dst: IsNullable
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:646,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:646,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:654,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:655,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:658,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 1
    argNames:
    - poOtherFieldDefn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 659
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 659
    functionName: OGRGeomFieldDefn::IsSame
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::IsNullable
    - GetNameRef
    - OGRGeomFieldDefn*::GetType
    - OGRGeomFieldDefn*::GetNameRef
    - strcmp
    - IsNullable
    - GetType
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn::GetSpatialRef
    - OGRSpatialReference*::IsSame
    linkageType: ''
    returnType: int
    signature: int OGRGeomFieldDefn::IsSame(const OGRGeomFieldDefn *poOtherFieldDefn)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: OGR_GFld_IsNullable
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_GFld_IsNullable(OGRGeomFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bNullableIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 755
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 755
    functionName: OGRGeomFieldDefn::SetNullable
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::SetNullable(int bNullableIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bNullableIn
    argTypes:
    - OGRGeomFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: OGR_GFld_SetNullable
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_GFld_SetNullable(OGRGeomFieldDefnH hDefn, int bNullableIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRGeomCoordinatePrecision *>
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:814,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: OGR_GFld_GetCoordinatePrecision
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRGeomCoordinatePrecision *>
    - FromHandle
    linkageType: ''
    returnType: OGRGeomCoordinatePrecisionH
    signature: OGRGeomCoordinatePrecisionH OGR_GFld_GetCoordinatePrecision(OGRGeomFieldDefnH
      hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prec
    argTypes:
    - OGRGeomCoordinatePrecision
    constantsTouched: []
    func_position:
      end: 845
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 845
    functionName: OGRGeomFieldDefn::SetCoordinatePrecision
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGRGeomFieldDefn::SetCoordinatePrecision(\n    const OGRGeomCoordinatePrecision
      &prec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:867,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDefn
    - hGeomCoordPrec
    argTypes:
    - OGRGeomFieldDefnH
    - OGRGeomCoordinatePrecisionH
    constantsTouched: []
    func_position:
      end: 870
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 870
    functionName: OGR_GFld_SetCoordinatePrecision
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_GFld_SetCoordinatePrecision(OGRGeomFieldDefnH hDefn,\n                                     OGRGeomCoordinatePrecisionH
      hGeomCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: OGRGeomFieldDefn::Seal
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::Seal()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 906
    functionName: OGRGeomFieldDefn::Unseal
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeomFieldDefn::Unseal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TemporaryUnsealer
      Src: /src/gdal/ogr/ogrgeomfielddefn.cpp:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: OGRGeomFieldDefn::GetTemporaryUnsealer
    functionSourceFile: /src/gdal/ogr/ogrgeomfielddefn.cpp
    functionUses: 0
    functionsReached:
    - TemporaryUnsealer
    linkageType: ''
    returnType: OGRGeomFieldDefn::TemporaryUnsealer
    signature: OGRGeomFieldDefn::TemporaryUnsealer OGRGeomFieldDefn::GetTemporaryUnsealer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:76,1
    - Dst: OGRStyleTable
      Src: /src/gdal/ogr/ogr_featurestyle.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: OGRStyleTable
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 3
    functionsReached:
    - OGRStyleTable
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleTable
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 150
    functionName: OGRStyleMgr
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 1
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleMgr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:167,1
    - Dst: OGRStyleTool
      Src: /src/gdal/ogr/ogr_featurestyle.h:176,1
    - Dst: m_bModified
      Src: /src/gdal/ogr/ogr_featurestyle.h:177,1
    - Dst: m_bParsed
      Src: /src/gdal/ogr/ogr_featurestyle.h:177,1
    - Dst: m_dfScale
      Src: /src/gdal/ogr/ogr_featurestyle.h:177,1
    - Dst: m_eUnit
      Src: /src/gdal/ogr/ogr_featurestyle.h:178,1
    - Dst: m_eClassId
      Src: /src/gdal/ogr/ogr_featurestyle.h:178,1
    - Dst: m_pszStyleString
      Src: /src/gdal/ogr/ogr_featurestyle.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 259
    functionName: OGRStyleTool
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 1
    functionsReached:
    - m_eClassId
    - m_dfScale
    - CPL_DISALLOW_COPY_ASSIGN
    - m_bModified
    - m_pszStyleString
    - m_bParsed
    - m_eUnit
    - OGRStyleTool
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleTool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:273,1
    - Dst: OGRStylePen
      Src: /src/gdal/ogr/ogr_featurestyle.h:276,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:285,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:290,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:295,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:300,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:305,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:310,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:315,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:320,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:325,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:330,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:335,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:340,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:345,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:350,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:355,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 372
    functionName: OGRStyleTool
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 1
    functionsReached:
    - SetParamDbl
    - GetParamNum
    - GetParamStr
    - SetParamStr
    - SetParamNum
    - CPL_DISALLOW_COPY_ASSIGN
    - OGRStylePen
    - GetParamDbl
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleTool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:384,1
    - Dst: OGRStyleBrush
      Src: /src/gdal/ogr/ogr_featurestyle.h:387,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:394,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:399,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:404,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:409,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:414,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:419,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:424,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:429,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:434,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:439,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:444,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:449,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:454,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:459,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:464,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 481
    functionName: OGRStyleBrush
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 3
    functionsReached:
    - OGRStyleBrush
    - SetParamDbl
    - GetParamNum
    - GetParamStr
    - SetParamStr
    - SetParamNum
    - CPL_DISALLOW_COPY_ASSIGN
    - GetParamDbl
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleBrush
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:493,1
    - Dst: OGRStyleSymbol
      Src: /src/gdal/ogr/ogr_featurestyle.h:496,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:505,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:510,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:515,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:520,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:525,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:530,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:535,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:540,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:545,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:550,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:555,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:560,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:565,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:570,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:575,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:580,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:585,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:590,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:595,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:600,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:605,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:610,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:615,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 632
    functionName: OGRStyleSymbol
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 3
    functionsReached:
    - SetParamDbl
    - GetParamNum
    - GetParamStr
    - SetParamStr
    - OGRStyleSymbol
    - SetParamNum
    - CPL_DISALLOW_COPY_ASSIGN
    - GetParamDbl
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleSymbol
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogr_featurestyle.h:644,1
    - Dst: OGRStyleLabel
      Src: /src/gdal/ogr/ogr_featurestyle.h:647,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:656,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:661,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:666,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:671,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:676,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:681,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:686,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:691,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:696,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:701,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:706,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:711,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:716,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:721,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:726,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:731,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:736,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:741,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:746,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:751,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:756,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:761,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:766,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:771,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:776,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:781,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:786,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:791,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:796,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:801,1
    - Dst: GetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:806,1
    - Dst: SetParamNum
      Src: /src/gdal/ogr/ogr_featurestyle.h:811,1
    - Dst: GetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:816,1
    - Dst: SetParamDbl
      Src: /src/gdal/ogr/ogr_featurestyle.h:821,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:826,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:831,1
    - Dst: GetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:836,1
    - Dst: SetParamStr
      Src: /src/gdal/ogr/ogr_featurestyle.h:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 853
    functionName: OGRStyleLabel
    functionSourceFile: /src/gdal/ogr/ogr_featurestyle.h
    functionUses: 3
    functionsReached:
    - SetParamDbl
    - GetParamNum
    - GetParamStr
    - SetParamStr
    - SetParamNum
    - CPL_DISALLOW_COPY_ASSIGN
    - GetParamDbl
    - OGRStyleLabel
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRStyleLabel
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBPointUpdater
      Src: /src/gdal/ogr/ogr_wkb.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: OGRWKBPointUpdater
    functionSourceFile: /src/gdal/ogr/ogr_wkb.h
    functionUses: 1
    functionsReached:
    - OGRWKBPointUpdater
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRWKBPointUpdater
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: OGRWKBTransformCache
    functionSourceFile: /src/gdal/ogr/ogr_wkb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CPL_DLL
    signature: struct CPL_DLL OGRWKBTransformCache
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAppendBuffer
      Src: /src/gdal/ogr/ogr_wkb.h:102,1
    - Dst: Grow
      Src: /src/gdal/ogr/ogr_wkb.h:114,1
    - Dst: OGRAppendBuffer
      Src: /src/gdal/ogr/ogr_wkb.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 146
    functionName: OGRAppendBuffer
    functionSourceFile: /src/gdal/ogr/ogr_wkb.h
    functionUses: 1
    functionsReached:
    - OGRAppendBuffer
    - Grow
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRAppendBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 171
    functionName: OGRWKTToWKBTranslator
    functionSourceFile: /src/gdal/ogr/ogr_wkb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRWKTToWKBTranslator
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yysymbol
    argTypes:
    - yysymbol_kind_t
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: yysymbol_name
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yysymbol_name (yysymbol_kind_t yysymbol)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_USE
      Src: /src/gdal/ogr/swq_parser.cpp:985,1
    - Dst: YY_USE
      Src: /src/gdal/ogr/swq_parser.cpp:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - yyo
    - yykind
    - yyvaluep
    - context
    argTypes:
    - FILE*
    - yysymbol_kind_t
    - YYSTYPE*
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 992
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 992
    functionName: yy_symbol_value_print
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - YY_USE
    linkageType: ''
    returnType: void
    signature: "void yy_symbol_value_print (FILE *yyo,\n                       yysymbol_kind_t
      yykind, YYSTYPE const * const yyvaluep, swq_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1003,1
    - Dst: yysymbol_name
      Src: /src/gdal/ogr/swq_parser.cpp:1004,1
    - Dst: yy_symbol_value_print
      Src: /src/gdal/ogr/swq_parser.cpp:1006,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - yyo
    - yykind
    - yyvaluep
    - context
    argTypes:
    - FILE*
    - yysymbol_kind_t
    - YYSTYPE*
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 1008
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1008
    functionName: yy_symbol_print
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yysymbol_name
    - yy_symbol_value_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: "void yy_symbol_print (FILE *yyo,\n                 yysymbol_kind_t
      yykind, YYSTYPE const * const yyvaluep, swq_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1018,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1022,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yybottom
    - yytop
    argTypes:
    - yy_state_t*
    - yy_state_t*
    constantsTouched: []
    func_position:
      end: 1025
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1025
    functionName: yy_stack_print
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1045,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1050,1
    - Dst: yy_symbol_print
      Src: /src/gdal/ogr/swq_parser.cpp:1051,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/swq_parser.cpp:1052,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - yyssp
    - yyvsp
    - yyrule
    - context
    argTypes:
    - yy_state_t*
    - YYSTYPE*
    - int
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 1056
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1056
    functionName: yy_reduce_print
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yy_symbol_print
    - YYFPRINTF
    - YY_ACCESSING_SYMBOL
    linkageType: ''
    returnType: void
    signature: "void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,\n                 int
      yyrule, swq_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yypact_value_is_default
      Src: /src/gdal/ogr/swq_parser.cpp:1112,1
    - Dst: yytable_value_is_error
      Src: /src/gdal/ogr/swq_parser.cpp:1124,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:1131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - yyctx
    - yyarg
    - yyargn
    argTypes:
    - yypcontext_t*
    - yysymbol_kind_t[]
    - int
    constantsTouched: []
    func_position:
      end: 1137
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1137
    functionName: yypcontext_expected_tokens
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yytable_value_is_error
    - yypact_value_is_default
    - YY_CAST
    linkageType: ''
    returnType: int
    signature: "int yypcontext_expected_tokens (const yypcontext_t *yyctx,\n                            yysymbol_kind_t
      yyarg[], int yyargn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - yystr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1154
    functionName: yystrlen
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yystrlen (const char *yystr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - yydest
    - yysrc
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1174
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1174
    functionName: yystpcpy
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yystpcpy (char *yydest, const char *yysrc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yystpcpy
      Src: /src/gdal/ogr/swq_parser.cpp:1222,1
    - Dst: yystrlen
      Src: /src/gdal/ogr/swq_parser.cpp:1224,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - yyres
    - yystr
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1225
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1225
    functionName: yytnamerr
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yystrlen
    - yystpcpy
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yypcontext_expected_tokens
      Src: /src/gdal/ogr/swq_parser.cpp:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - yyctx
    - yyarg
    - yyargn
    argTypes:
    - yypcontext_t*
    - yysymbol_kind_t[]
    - int
    constantsTouched: []
    func_position:
      end: 1272
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1272
    functionName: yy_syntax_error_arguments
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yypcontext_expected_tokens
    linkageType: ''
    returnType: int
    signature: "int yy_syntax_error_arguments (const yypcontext_t *yyctx,\n                           yysymbol_kind_t
      yyarg[], int yyargn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1307,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1307,1
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1308,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1308,1
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1309,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1309,1
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1310,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1310,1
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1311,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1311,1
    - Dst: YYCASE_
      Src: /src/gdal/ogr/swq_parser.cpp:1312,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1312,1
    - Dst: yystrlen
      Src: /src/gdal/ogr/swq_parser.cpp:1318,1
    - Dst: yytnamerr
      Src: /src/gdal/ogr/swq_parser.cpp:1324,1
    - Dst: yytnamerr
      Src: /src/gdal/ogr/swq_parser.cpp:1350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - yymsg_alloc
    - yymsg
    - yyctx
    argTypes:
    - YYPTRDIFF_T*
    - char**
    - yypcontext_t*
    constantsTouched: []
    func_position:
      end: 1360
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1360
    functionName: yysyntax_error
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - yytnamerr
    - YY_
    - yystrlen
    - YYCASE_
    linkageType: ''
    returnType: int
    signature: "int yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,\n                const
      yypcontext_t *yyctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_USE
      Src: /src/gdal/ogr/swq_parser.cpp:1371,1
    - Dst: YY_USE
      Src: /src/gdal/ogr/swq_parser.cpp:1372,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:1375,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 4
    argNames:
    - yymsg
    - yykind
    - yyvaluep
    - context
    argTypes:
    - char*
    - yysymbol_kind_t
    - YYSTYPE*
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 1440
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1440
    functionName: yydestruct
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - YY_SYMBOL_PRINT
    - YY_USE
    linkageType: ''
    returnType: void
    signature: "void yydestruct (const char *yymsg,\n            yysymbol_kind_t yykind,
      YYSTYPE *yyvaluep, swq_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1507,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1527,1
    - Dst: YY_ASSERT
      Src: /src/gdal/ogr/swq_parser.cpp:1528,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:1530,1
    - Dst: yyoverflow
      Src: /src/gdal/ogr/swq_parser.cpp:1554,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:1554,1
    - Dst: YYSIZEOF
      Src: /src/gdal/ogr/swq_parser.cpp:1555,1
    - Dst: YYSIZEOF
      Src: /src/gdal/ogr/swq_parser.cpp:1556,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:1572,1
    - Dst: YYSTACK_ALLOC
      Src: /src/gdal/ogr/swq_parser.cpp:1573,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:1573,1
    - Dst: YYSTACK_BYTES
      Src: /src/gdal/ogr/swq_parser.cpp:1573,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/gdal/ogr/swq_parser.cpp:1576,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/gdal/ogr/swq_parser.cpp:1577,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/swq_parser.cpp:1580,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:1589,1
    - Dst: yypact_value_is_default
      Src: /src/gdal/ogr/swq_parser.cpp:1613,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1621,1
    - Dst: yylex
      Src: /src/gdal/ogr/swq_parser.cpp:1622,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/swq_parser.cpp:1629,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/swq_parser.cpp:1643,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:1644,1
    - Dst: yytable_value_is_error
      Src: /src/gdal/ogr/swq_parser.cpp:1655,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:1667,1
    - Dst: YY_REDUCE_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:1706,1
    - Dst: swq_fixup
      Src: /src/gdal/ogr/swq_parser.cpp:1712,1
    - Dst: swq_create_and_or_or
      Src: /src/gdal/ogr/swq_parser.cpp:1731,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1732,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1734,1
    - Dst: swq_create_and_or_or
      Src: /src/gdal/ogr/swq_parser.cpp:1743,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1744,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1746,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1755,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1757,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1758,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1760,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1769,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1771,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1772,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1773,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1775,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1784,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1786,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1787,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1788,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1790,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1799,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1801,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1802,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1803,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1805,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1814,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1816,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1817,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1818,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1820,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1829,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1831,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1832,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1833,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1835,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1844,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1846,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1847,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1848,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1850,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1859,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1861,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1862,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1863,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1865,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1874,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1876,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1877,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1878,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1880,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1889,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1891,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1892,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1893,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1895,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1904,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1906,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1907,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1908,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1910,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1919,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1921,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1922,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1924,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1926,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1927,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1929,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1938,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1940,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1941,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1942,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1943,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1945,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1954,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1956,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1957,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1958,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1960,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1962,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1963,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1965,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1974,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1976,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1977,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1978,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1980,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1989,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1991,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1992,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:1994,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:1996,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:1997,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:1999,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2008,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2010,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2011,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2012,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2013,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2015,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2024,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2026,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2027,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2028,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2030,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2032,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2033,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2035,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2047,1
    - Dst: YYSTYPE::ReverseSubExpressions
      Src: /src/gdal/ogr/swq_parser.cpp:2048,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2049,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2051,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2063,1
    - Dst: swq_expr_node*::ReverseSubExpressions
      Src: /src/gdal/ogr/swq_parser.cpp:2064,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2066,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2068,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2069,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2071,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2080,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2082,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2083,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2084,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2085,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2087,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2096,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2098,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2099,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2100,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2102,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2104,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2105,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2107,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2116,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2118,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2119,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2121,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2130,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2132,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2134,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2136,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2137,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2139,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2149,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2150,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2152,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2161,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2162,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2163,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2165,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2188,1
    - Dst: static_cast<const char*>
      Src: /src/gdal/ogr/swq_parser.cpp:2226,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2226,1
    - Dst: strcmp
      Src: /src/gdal/ogr/swq_parser.cpp:2236,1
    - Dst: simple_min
      Src: /src/gdal/ogr/swq_parser.cpp:2240,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/swq_parser.cpp:2241,1
    - Dst: simple_min
      Src: /src/gdal/ogr/swq_parser.cpp:2241,1
    - Dst: simple_min
      Src: /src/gdal/ogr/swq_parser.cpp:2246,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2259,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2260,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2260,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2261,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2262,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2264,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2274,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2275,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2276,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2277,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2279,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2288,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2289,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2290,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2291,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2293,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2302,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2303,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2304,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2305,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2307,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2316,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2317,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2318,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2319,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2321,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2330,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2331,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2332,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2333,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2335,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/swq_parser.cpp:2345,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2354,1
    - Dst: YYSTYPE::ReverseSubExpressions
      Src: /src/gdal/ogr/swq_parser.cpp:2355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_parser.cpp:2360,1
    - Dst: YYSTYPE::ReverseSubExpressions
      Src: /src/gdal/ogr/swq_parser.cpp:2373,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2382,1
    - Dst: YYSTYPE::ReverseSubExpressions
      Src: /src/gdal/ogr/swq_parser.cpp:2383,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2384,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2386,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2395,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2396,1
    - Dst: YYSTYPE::HasReachedMaxDepth
      Src: /src/gdal/ogr/swq_parser.cpp:2397,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2399,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2408,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2409,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2410,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2416,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2417,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2418,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2419,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/swq_parser.cpp:2425,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2426,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/swq_parser.cpp:2427,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/swq_parser.cpp:2428,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2430,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2435,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2436,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2437,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/swq_parser.cpp:2443,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2444,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/swq_parser.cpp:2445,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/swq_parser.cpp:2446,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2448,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2454,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2455,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2456,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2457,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/swq_parser.cpp:2476,1
    - Dst: swq_parse_context*::poCurSelect::PushUnionAll
      Src: /src/gdal/ogr/swq_parser.cpp:2477,1
    - Dst: swq_parse_context*::poCurSelect::PushExcludeField
      Src: /src/gdal/ogr/swq_parser.cpp:2484,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2494,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2504,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2516,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2518,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2522,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2532,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2534,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2538,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2553,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2555,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2556,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2571,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_parser.cpp:2573,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2583,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2585,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2589,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2590,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2592,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_parser.cpp:2605,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2616,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/swq_parser.cpp:2618,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2622,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2623,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2639,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_parser.cpp:2641,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2651,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2652,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2654,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/swq_parser.cpp:2665,1
    - Dst: CPLError
      Src: /src/gdal/ogr/swq_parser.cpp:2667,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2675,1
    - Dst: swq_expr_node*::PushSubExpression
      Src: /src/gdal/ogr/swq_parser.cpp:2676,1
    - Dst: swq_parse_context*::poCurSelect::PushField
      Src: /src/gdal/ogr/swq_parser.cpp:2678,1
    - Dst: swq_parse_context*::poCurSelect::PushJoin
      Src: /src/gdal/ogr/swq_parser.cpp:2716,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_parser.cpp:2716,1
    - Dst: swq_parse_context*::poCurSelect::PushJoin
      Src: /src/gdal/ogr/swq_parser.cpp:2724,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/swq_parser.cpp:2724,1
    - Dst: swq_parse_context*::poCurSelect::PushOrderBy
      Src: /src/gdal/ogr/swq_parser.cpp:2732,1
    - Dst: swq_parse_context*::poCurSelect::PushOrderBy
      Src: /src/gdal/ogr/swq_parser.cpp:2740,1
    - Dst: swq_parse_context*::poCurSelect::PushOrderBy
      Src: /src/gdal/ogr/swq_parser.cpp:2748,1
    - Dst: swq_parse_context*::poCurSelect::SetLimit
      Src: /src/gdal/ogr/swq_parser.cpp:2756,1
    - Dst: swq_parse_context*::poCurSelect::SetOffset
      Src: /src/gdal/ogr/swq_parser.cpp:2764,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2777,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2789,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2801,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2815,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2827,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/swq_parser.cpp:2841,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:2860,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:2860,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/swq_parser.cpp:2862,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/swq_parser.cpp:2887,1
    - Dst: yysyntax_error
      Src: /src/gdal/ogr/swq_parser.cpp:2897,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/swq_parser.cpp:2903,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:2904,1
    - Dst: YYSTACK_ALLOC
      Src: /src/gdal/ogr/swq_parser.cpp:2905,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/swq_parser.cpp:2905,1
    - Dst: yysyntax_error
      Src: /src/gdal/ogr/swq_parser.cpp:2909,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:2919,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/swq_parser.cpp:2938,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/swq_parser.cpp:2961,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:2963,1
    - Dst: yypact_value_is_default
      Src: /src/gdal/ogr/swq_parser.cpp:2978,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/swq_parser.cpp:2994,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/swq_parser.cpp:2995,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/swq_parser.cpp:2996,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:2998,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/swq_parser.cpp:3007,1
    - Dst: yyerror
      Src: /src/gdal/ogr/swq_parser.cpp:3033,1
    - Dst: YY_
      Src: /src/gdal/ogr/swq_parser.cpp:3033,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/swq_parser.cpp:3046,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/swq_parser.cpp:3047,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/swq_parser.cpp:3052,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/swq_parser.cpp:3053,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/swq_parser.cpp:3056,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/swq_parser.cpp:3057,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/swq_parser.cpp:3058,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/swq_parser.cpp:3062,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/swq_parser.cpp:3065,1
    CyclomaticComplexity: 207
    EdgeCount: 207
    ICount: 1021
    argCount: 1
    argNames:
    - context
    argTypes:
    - swq_parse_context*
    constantsTouched: []
    func_position:
      end: 3067
      start: 1451
    functionDepth: 3
    functionLinenumber: 1451
    functionLinenumberEnd: 3067
    functionName: yyparse
    functionSourceFile: /src/gdal/ogr/swq_parser.cpp
    functionUses: 0
    functionsReached:
    - swq_parse_context*::poCurSelect::PushJoin
    - YYDPRINTF
    - yylex
    - YYSTACK_BYTES
    - swq_parse_context*::poCurSelect::PushOrderBy
    - swq_select::swq_select
    - YYSTACK_FREE
    - swq_parse_context*::poCurSelect::PushExcludeField
    - yytable_value_is_error
    - strcmp
    - swq_create_and_or_or
    - CPLError
    - OGRFromOGCGeomType
    - yyoverflow
    - swq_parse_context*::poCurSelect::SetOffset
    - CPLStrdup
    - swq_expr_node*::ReverseSubExpressions
    - swq_fixup
    - swq_parse_context*::poCurSelect::PushField
    - static_cast<const char*>
    - YY_ACCESSING_SYMBOL
    - YYSTYPE::ReverseSubExpressions
    - YY_ASSERT
    - wkbFlatten
    - simple_min
    - STARTS_WITH_CI
    - static_cast<int>
    - swq_parse_context*::poCurSelect::PushUnionAll
    - swq_expr_node::swq_expr_node
    - swq_parse_context*::poCurSelect::SetLimit
    - yyerror
    - YY_CAST
    - YYSTYPE::HasReachedMaxDepth
    - yydestruct
    - YYTRANSLATE
    - swq_op_registrar::GetOperator
    - YY_
    - YYSTACK_RELOCATE
    - YYSIZEOF
    - static_cast<double>
    - YYSTYPE::PushSubExpression
    - YY_STACK_PRINT
    - swq_expr_node*::PushSubExpression
    - YY_SYMBOL_PRINT
    - YY_REDUCE_PRINT
    - EQUAL
    - yysyntax_error
    - yypact_value_is_default
    - YYPOPSTACK
    - YYSTACK_ALLOC
    linkageType: ''
    returnType: int
    signature: int yyparse (swq_parse_context *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: LayerDescription::LayerDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LayerDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iLayerIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: LayerDescription::LayerDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LayerDescription(int iLayerIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: DatasetDescription::DatasetDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DatasetDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iDSIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: DatasetDescription::DatasetDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DatasetDescription(int iDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: '&operator=(DatasetDescription &&)'
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DatasetDescription
    signature: DatasetDescription &operator=(DatasetDescription &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: FeatureDefnDescription::FeatureDefnDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FeatureDefnDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hFDefnIn
    - iUniqueNumberIn
    argTypes:
    - OGRFeatureDefnH
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: FeatureDefnDescription::FeatureDefnDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FeatureDefnDescription(OGRFeatureDefnH hFDefnIn, int iUniqueNumberIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: FeatureDefnDescription::FeatureDefnDescription
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FeatureDefnDescription(const FeatureDefnDescription &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '&operator=(const FeatureDefnDescription &)'
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FeatureDefnDescription
    signature: FeatureDefnDescription &operator=(const FeatureDefnDescription &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ograpispy.cpp:111,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:112,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:113,1
    - Dst: begin
      Src: /src/gdal/ogr/ograpispy.cpp:116,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:117,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: FeatureDefnDescription::Free
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - erase
    linkageType: ''
    returnType: void
    signature: void FeatureDefnDescription::Free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ograpispy.cpp:126,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:127,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: DatasetDescription::~DatasetDescription()
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - erase
    linkageType: ''
    returnType: void
    signature: void DatasetDescription::~DatasetDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ograpispy.cpp:136,1
    - Dst: clear
      Src: /src/gdal/ogr/ograpispy.cpp:139,1
    - Dst: clear
      Src: /src/gdal/ogr/ograpispy.cpp:140,1
    - Dst: clear
      Src: /src/gdal/ogr/ograpispy.cpp:141,1
    - Dst: clear
      Src: /src/gdal/ogr/ograpispy.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: OGRAPISpyDestroyMutex
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyDestroyMutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/gdal/ogr/ograpispy.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: OGRAPISpyFileReopen
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - fopen
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyFileReopen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/gdal/ogr/ograpispy.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: OGRAPISpyFileClose
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyFileClose()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/gdal/ogr/ograpispy.cpp:174,1
    - Dst: clear
      Src: /src/gdal/ogr/ograpispy.cpp:175,1
    - Dst: empty
      Src: /src/gdal/ogr/ograpispy.cpp:178,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:181,1
    - Dst: empty
      Src: /src/gdal/ogr/ograpispy.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ograpispy.cpp:189,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ograpispy.cpp:194,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ograpispy.cpp:196,1
    - Dst: fopen
      Src: /src/gdal/ogr/ograpispy.cpp:199,1
    - Dst: assert
      Src: /src/gdal/ogr/ograpispy.cpp:203,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:204,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:206,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:207,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:208,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:209,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:210,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:212,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:213,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 217
    functionName: OGRAPISpyEnabled
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - fopen
    - empty
    - CPLMutexHolderD
    - assert
    - fprintf
    - EQUAL
    - resize
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRAPISpyEnabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: OGRAPISpyGetOptions
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetOptions(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: OGRAPISpyGetString
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetString(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:261,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:261,1
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:264,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:264,1
    - Dst: DatasetDescription
      Src: /src/gdal/ogr/ograpispy.cpp:266,1
    - Dst: insert
      Src: /src/gdal/ogr/ograpispy.cpp:267,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: OGRAPISpyGetDSVar
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    - find
    - CPLSPrintf
    - DatasetDescription
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetDSVar(GDALDatasetH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: OGRAPISpyGetLayerVar
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetLayerVar(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DatasetDescription::oMapLayer::find
      Src: /src/gdal/ogr/ograpispy.cpp:281,1
    - Dst: DatasetDescription::oMapLayer::end
      Src: /src/gdal/ogr/ograpispy.cpp:281,1
    - Dst: LayerDescription
      Src: /src/gdal/ogr/ograpispy.cpp:284,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:286,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:286,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:289,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hDS
    - hLayer
    argTypes:
    - GDALDatasetH
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: OGRAPISpyGetAndRegisterLayerVar
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - DatasetDescription::oMapLayer::find
    - CPLSPrintf
    - OGRAPISpyGetDSVar
    - LayerDescription
    - DatasetDescription::oMapLayer::end
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRAPISpyGetAndRegisterLayerVar(GDALDatasetH hDS,\n                                                 OGRLayerH
      hLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:299,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ograpispy.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hSpatialRef
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: OGRAPISpyGetSRS
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - FromHandle
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetSRS(OGRSpatialReferenceH hSpatialRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:312,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ograpispy.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: OGRAPISpyGetGeom
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - FromHandle
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetGeom(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:326,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:326,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:326,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:326,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:327,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:327,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:328,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:328,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:328,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:329,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:329,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:330,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:330,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:330,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:331,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:331,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:331,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:332,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:332,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:332,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:333,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:333,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:334,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:334,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:334,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:335,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:335,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:336,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:336,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:336,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:337,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:338,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:338,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:339,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:339,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:340,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:340,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:340,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:341,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:341,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:342,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:342,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:343,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:344,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:344,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:345,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:346,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:346,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:347,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:348,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:348,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:349,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:350,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:350,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:351,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:352,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:352,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:353,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:354,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:354,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:355,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:356,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:356,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:358,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:358,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:360,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:362,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:364,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:366,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:368,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 374
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 374
    functionName: OGRAPISpyGetGeomType
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - casePrefixOgrDot
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetGeomType(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:380,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:380,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:381,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:381,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:382,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:382,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:383,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:383,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:384,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:385,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:386,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:387,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:388,1
    - Dst: casePrefixOgrDot
      Src: /src/gdal/ogr/ograpispy.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: OGRAPISpyGetFieldType
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - casePrefixOgrDot
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetFieldType(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:399,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:401,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ograpispy.cpp:403,1
    - Dst: size
      Src: /src/gdal/ogr/ograpispy.cpp:403,1
    - Dst: FeatureDefnDescription
      Src: /src/gdal/ogr/ograpispy.cpp:404,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:407,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - hFDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 414
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 414
    functionName: OGRAPISpyGetFeatureDefnVar
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - static_cast<int>
    - FromHandle
    - find
    - CPLSPrintf
    - FeatureDefnDescription
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAPISpyGetFeatureDefnVar(OGRFeatureDefnH hFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyFileReopen
      Src: /src/gdal/ogr/ograpispy.cpp:418,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograpispy.cpp:421,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:422,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:423,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:424,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:425,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:429,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:430,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:439,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:440,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:446,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:447,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 452
    functionName: OGRAPISpyFlushDefered
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpyGetLayerVar
    - OGRAPISpyFileReopen
    - fprintf
    - ToHandle
    - OGRAPISpyGetFeatureDefnVar
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyFlushDefered()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:456,1
    - Dst: empty
      Src: /src/gdal/ogr/ograpispy.cpp:456,1
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:457,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:457,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:459,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ograpispy.cpp:462,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ograpispy.cpp:466,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ograpispy.cpp:469,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:479,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:480,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ograpispy.cpp:481,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ograpispy.cpp:485,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ograpispy.cpp:486,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:487,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ograpispy.cpp:488,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:489,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ograpispy.cpp:490,1
    - Dst: OGRAPISpyFileReopen
      Src: /src/gdal/ogr/ograpispy.cpp:492,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:493,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:494,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:495,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ograpispy.cpp:496,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:497,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:498,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:499,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ograpispy.cpp:499,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:502,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ograpispy.cpp:503,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:504,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ograpispy.cpp:505,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ograpispy.cpp:506,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ograpispy.cpp:506,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ograpispy.cpp:507,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ograpispy.cpp:508,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:509,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ograpispy.cpp:510,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ograpispy.cpp:511,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ograpispy.cpp:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - pszName
    - bUpdate
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 518
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 518
    functionName: OGRAPISpyOpenTakeSnapshot
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - end
    - GDALOpenEx
    - empty
    - VSIStatL
    - CPLGetFilename
    - OGRAPISpyFileReopen
    - CPLCopyFile
    - find
    - OGRAPISpyFlushDefered
    - VSIMkdir
    - CPLSPrintf
    - fprintf
    - CSLDestroy
    - CPLString::c_str
    - CPL_IGNORE_RET_VAL
    - CPLFormFilenameSafe
    - OGRAPISpyEnabled
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int OGRAPISpyOpenTakeSnapshot(const char *pszName, int bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:523,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:525,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:526,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:531,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:532,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:534,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ograpispy.cpp:536,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ograpispy.cpp:536,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ograpispy.cpp:537,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ograpispy.cpp:542,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:542,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ograpispy.cpp:543,1
    - Dst: OGRAPISpyFileReopen
      Src: /src/gdal/ogr/ograpispy.cpp:549,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:551,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:551,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:553,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:554,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:556,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:557,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pszName
    - bUpdate
    - iSnapshot
    - phDS
    argTypes:
    - char*
    - int
    - int
    - GDALDatasetH*
    constantsTouched: []
    func_position:
      end: 559
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 559
    functionName: OGRAPISpyOpen
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - GDALOpenEx
    - FromHandle
    - CPLGetFilename
    - CPLMutexHolderD
    - OGRAPISpyFileReopen
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - CPLSPrintf
    - OGRAPISpyGetDSVar
    - CPLString::c_str
    - OGRAPISpyFileClose
    - CPLFormFilenameSafe
    - OGRAPISpyEnabled
    - GDALClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpyOpen(const char *pszName, int bUpdate, int iSnapshot,\n
      \                  GDALDatasetH *phDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:563,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:565,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:566,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:567,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:568,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:569,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: OGRAPISpyPreClose
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - erase
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyPreClose(GDALDatasetH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:576,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:578,1
    - Dst: begin
      Src: /src/gdal/ogr/ograpispy.cpp:580,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:582,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:585,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ograpispy.cpp:588,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:594,1
    - Dst: FeatureDefnDescription::Free
      Src: /src/gdal/ogr/ograpispy.cpp:596,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 600
    functionName: OGRAPISpyPostClose
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - end
    - erase
    - FromHandle
    - FeatureDefnDescription::Free
    - CPLMutexHolderD
    - begin
    - std::vector::push_back
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyPostClose()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:605,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:607,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:608,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:610,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:610,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:611,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/ogr/ograpispy.cpp:613,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:614,1
    - Dst: OGRAPISpyGetOptions
      Src: /src/gdal/ogr/ograpispy.cpp:615,1
    - Dst: insert
      Src: /src/gdal/ogr/ograpispy.cpp:618,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - hDriver
    - pszName
    - papszOptions
    - hDS
    argTypes:
    - GDALDriverH
    - char*
    - char**
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 621
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 621
    functionName: OGRAPISpyCreateDataSource
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - insert
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyGetOptions
    - OGRAPISpyFileClose
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpyCreateDataSource(GDALDriverH hDriver, const char *pszName,\n
      \                              char **papszOptions, GDALDatasetH hDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:625,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:627,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:628,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:629,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/ogr/ograpispy.cpp:630,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:631,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:632,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hDriver
    - pszName
    argTypes:
    - GDALDriverH
    - char*
    constantsTouched: []
    func_position:
      end: 634
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 634
    functionName: OGRAPISpyDeleteDataSource
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - erase
    - GDALGetDriverShortName
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyDeleteDataSource(GDALDriverH hDriver, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:638,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:639,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:641,1
    - Dst: OGRAPISpyGetAndRegisterLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:642,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:643,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:643,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hDS
    - iLayer
    - hLayer
    argTypes:
    - GDALDatasetH
    - int
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 646
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 646
    functionName: OGRAPISpy_DS_GetLayer
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - OGRAPISpyGetAndRegisterLayerVar
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_DS_GetLayer(GDALDatasetH hDS, int iLayer, OGRLayerH
      hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:650,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:651,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:652,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:652,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: OGRAPISpy_DS_GetLayerCount
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_DS_GetLayerCount(GDALDatasetH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:659,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:660,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:662,1
    - Dst: OGRAPISpyGetAndRegisterLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:663,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:664,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:665,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:666,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hDS
    - pszLayerName
    - hLayer
    argTypes:
    - GDALDatasetH
    - char*
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 668
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 668
    functionName: OGRAPISpy_DS_GetLayerByName
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - OGRAPISpyGetAndRegisterLayerVar
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_DS_GetLayerByName(GDALDatasetH hDS, const char *pszLayerName,\n
      \                                OGRLayerH hLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:674,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:675,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:677,1
    - Dst: OGRAPISpyGetAndRegisterLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:678,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:679,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:680,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:681,1
    - Dst: OGRAPISpyGetGeom
      Src: /src/gdal/ogr/ograpispy.cpp:682,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:683,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - hDS
    - pszStatement
    - hSpatialFilter
    - pszDialect
    - hLayer
    argTypes:
    - GDALDatasetH
    - char*
    - OGRGeometryH
    - char*
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 685
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 685
    functionName: OGRAPISpy_DS_ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - OGRAPISpyGetAndRegisterLayerVar
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyGetGeom
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_DS_ExecuteSQL(GDALDatasetH hDS, const char *pszStatement,\n
      \                            OGRGeometryH hSpatialFilter,\n                             const
      char *pszDialect, OGRLayerH hLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:689,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:690,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:691,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:692,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:693,1
    - Dst: DatasetDescription::oMapLayer::erase
      Src: /src/gdal/ogr/ograpispy.cpp:696,1
    - Dst: erase
      Src: /src/gdal/ogr/ograpispy.cpp:697,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hDS
    - hLayer
    argTypes:
    - GDALDatasetH
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 700
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 700
    functionName: OGRAPISpy_DS_ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - erase
    - DatasetDescription::oMapLayer::erase
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_DS_ReleaseResultSet(GDALDatasetH hDS, OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:707,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:708,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:710,1
    - Dst: OGRAPISpyGetAndRegisterLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:711,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:712,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:713,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:713,1
    - Dst: OGRAPISpyGetSRS
      Src: /src/gdal/ogr/ograpispy.cpp:714,1
    - Dst: OGRAPISpyGetGeomType
      Src: /src/gdal/ogr/ograpispy.cpp:715,1
    - Dst: OGRAPISpyGetOptions
      Src: /src/gdal/ogr/ograpispy.cpp:716,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - hDS
    - pszName
    - hSpatialRef
    - eType
    - papszOptions
    - hLayer
    argTypes:
    - GDALDatasetH
    - char*
    - OGRSpatialReferenceH
    - OGRwkbGeometryType
    - char**
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 718
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 718
    functionName: OGRAPISpy_DS_CreateLayer
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - OGRAPISpyGetAndRegisterLayerVar
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyGetOptions
    - OGRAPISpyFileClose
    - OGRAPISpyGetGeomType
    - OGRAPISpyGetSRS
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_DS_CreateLayer(GDALDatasetH hDS, const char *pszName,\n
      \                             OGRSpatialReferenceH hSpatialRef,\n                              OGRwkbGeometryType
      eType, char **papszOptions,\n                              OGRLayerH hLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:722,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:723,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:724,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:724,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - iLayer
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 728
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 728
    functionName: OGRAPISpy_DS_DeleteLayer
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_DS_DeleteLayer(GDALDatasetH hDS, int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:732,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:733,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:734,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:735,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - bForce
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: OGRAPISpy_Dataset_StartTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_Dataset_StartTransaction(GDALDatasetH hDS, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:741,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:742,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:743,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:744,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: OGRAPISpy_Dataset_CommitTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_Dataset_CommitTransaction(GDALDatasetH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:750,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:751,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:752,1
    - Dst: OGRAPISpyGetDSVar
      Src: /src/gdal/ogr/ograpispy.cpp:753,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - GDALDatasetH
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: OGRAPISpy_Dataset_RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetDSVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_Dataset_RollbackTransaction(GDALDatasetH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:759,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:760,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:761,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:762,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - bForce
    argTypes:
    - OGRLayerH
    - int
    constantsTouched: []
    func_position:
      end: 764
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 764
    functionName: OGRAPISpy_L_GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetFeatureCount(OGRLayerH hLayer, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:768,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:769,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:770,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:771,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - bForce
    argTypes:
    - OGRLayerH
    - int
    constantsTouched: []
    func_position:
      end: 773
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: OGRAPISpy_L_GetExtent
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetExtent(OGRLayerH hLayer, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:777,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:778,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:779,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:780,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - bForce
    argTypes:
    - OGRLayerH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 782
    functionName: OGRAPISpy_L_GetExtentEx
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetExtentEx(OGRLayerH hLayer, int iGeomField, int
      bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:786,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:787,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:788,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:789,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - bForce
    argTypes:
    - OGRLayerH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 791
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 791
    functionName: OGRAPISpy_L_GetExtent3D
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetExtent3D(OGRLayerH hLayer, int iGeomField, int
      bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:795,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:796,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:797,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:798,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:799,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - pszFilter
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 801
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 801
    functionName: OGRAPISpy_L_SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_SetAttributeFilter(OGRLayerH hLayer, const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:805,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:806,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:807,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:808,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nFeatureId
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 3
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: OGRAPISpy_L_GetFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetFeature(OGRLayerH hLayer, GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:814,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:815,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:816,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:817,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nIndex
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 819
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 819
    functionName: OGRAPISpy_L_SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_SetNextByIndex(OGRLayerH hLayer, GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:823,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:826,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 831
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 831
    functionName: OGRAPISpy_L_GetNextFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyFlushDefered
    - OGRAPISpyFileClose
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetNextFeature(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:835,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:837,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:838,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograpispy.cpp:839,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ograpispy.cpp:839,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ograpispy.cpp:841,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:842,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ograpispy.cpp:842,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ograpispy.cpp:843,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ograpispy.cpp:845,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:847,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ograpispy.cpp:849,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ograpispy.cpp:851,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:854,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ograpispy.cpp:855,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:858,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:859,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ograpispy.cpp:860,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:863,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:864,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ograpispy.cpp:864,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:868,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:869,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ograpispy.cpp:869,1
    - Dst: OGRFeature*::GetGeomFieldCount
      Src: /src/gdal/ogr/ograpispy.cpp:875,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ograpispy.cpp:877,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:880,1
    - Dst: OGRAPISpyGetGeom
      Src: /src/gdal/ogr/ograpispy.cpp:881,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograpispy.cpp:881,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:886,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:887,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - hFeat
    argTypes:
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 888
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 888
    functionName: OGRAPISpyDumpFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::GetDefnRef
    - FromHandle
    - OGRFeature*::IsFieldSet
    - OGRFeature*::GetFID
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRAPISpyGetString
    - fprintf
    - ToHandle
    - OGRAPISpyGetFeatureDefnVar
    - CPLSPrintf
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::GetGeomFieldRef
    - OGRAPISpyGetGeom
    - OGRFeature*::IsFieldNull
    - OGRFeature*::GetFieldCount
    - OGRFeature*::GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyDumpFeature(OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:892,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:893,1
    - Dst: OGRAPISpyDumpFeature
      Src: /src/gdal/ogr/ograpispy.cpp:894,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:895,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:896,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:898,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 900
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 900
    functionName: OGRAPISpy_L_SetFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyDumpFeature
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_SetFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:904,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:905,1
    - Dst: OGRAPISpyDumpFeature
      Src: /src/gdal/ogr/ograpispy.cpp:906,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:907,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:908,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:910,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 4
    functionLinenumber: 902
    functionLinenumberEnd: 912
    functionName: OGRAPISpy_L_CreateFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyDumpFeature
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_CreateFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:916,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:917,1
    - Dst: OGRAPISpyDumpFeature
      Src: /src/gdal/ogr/ograpispy.cpp:918,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:919,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:920,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:922,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 924
    functionName: OGRAPISpy_L_UpsertFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyDumpFeature
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_UpsertFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:928,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:929,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:930,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ograpispy.cpp:930,1
    - Dst: OGRAPISpyGetFieldType
      Src: /src/gdal/ogr/ograpispy.cpp:931,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ograpispy.cpp:931,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ograpispy.cpp:932,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:933,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ograpispy.cpp:933,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ograpispy.cpp:934,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:935,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ograpispy.cpp:936,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ograpispy.cpp:937,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:938,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ograpispy.cpp:939,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:940,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:941,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ograpispy.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 942
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 942
    functionName: OGRAPISpyDumpFieldDefn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRFieldDefn*::GetPrecision
    - OGRAPISpyGetString
    - OGRFieldDefn*::GetNameRef
    - OGRAPISpyGetFieldType
    - fprintf
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::GetWidth
    linkageType: ''
    returnType: void
    signature: void OGRAPISpyDumpFieldDefn(OGRFieldDefn *poFieldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:947,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:948,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:949,1
    - Dst: OGRAPISpyDumpFieldDefn
      Src: /src/gdal/ogr/ograpispy.cpp:950,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:951,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:952,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - hLayer
    - hField
    - bApproxOK
    argTypes:
    - OGRLayerH
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 954
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 954
    functionName: OGRAPISpy_L_CreateField
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpyDumpFieldDefn
    - CPLMutexHolderD
    - OGRAPISpyGetLayerVar
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_CreateField(OGRLayerH hLayer, OGRFieldDefnH hField,\n
      \                            int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:958,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:959,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:960,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:961,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - iField
    argTypes:
    - OGRLayerH
    - int
    constantsTouched: []
    func_position:
      end: 963
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 963
    functionName: OGRAPISpy_L_DeleteField
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_DeleteField(OGRLayerH hLayer, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:967,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:968,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:969,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:970,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:971,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ograpispy.cpp:972,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:975,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:976,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:978,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - hLayer
    - panMap
    argTypes:
    - OGRLayerH
    - int*
    constantsTouched: []
    func_position:
      end: 980
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 980
    functionName: OGRAPISpy_L_ReorderFields
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_ReorderFields(OGRLayerH hLayer, int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:985,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:986,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:987,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:988,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iOldFieldPos
    - iNewFieldPos
    argTypes:
    - OGRLayerH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 990
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: OGRAPISpy_L_ReorderField
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_ReorderField(OGRLayerH hLayer, int iOldFieldPos,\n
      \                             int iNewFieldPos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:995,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:996,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:997,1
    - Dst: OGRAPISpyDumpFieldDefn
      Src: /src/gdal/ogr/ograpispy.cpp:998,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:999,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1000,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hLayer
    - iField
    - hNewFieldDefn
    - nFlags
    argTypes:
    - OGRLayerH
    - int
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1002
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1002
    functionName: OGRAPISpy_L_AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpyDumpFieldDefn
    - CPLMutexHolderD
    - OGRAPISpyGetLayerVar
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_AlterFieldDefn(OGRLayerH hLayer, int iField,\n                                OGRFieldDefnH
      hNewFieldDefn, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1007,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1008,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:1009,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1011,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1012,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ograpispy.cpp:1012,1
    - Dst: OGRAPISpyGetGeomType
      Src: /src/gdal/ogr/ograpispy.cpp:1013,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ograpispy.cpp:1013,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ograpispy.cpp:1014,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1015,1
    - Dst: OGRAPISpyGetSRS
      Src: /src/gdal/ogr/ograpispy.cpp:1016,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograpispy.cpp:1016,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ograpispy.cpp:1017,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ograpispy.cpp:1018,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ograpispy.cpp:1020,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1021,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1022,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1023,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - hLayer
    - hField
    - bApproxOK
    argTypes:
    - OGRLayerH
    - OGRGeomFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1025
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1025
    functionName: OGRAPISpy_L_CreateGeomField
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - FromHandle
    - CPLMutexHolderD
    - OGRGeomFieldDefn*::IsNullable
    - OGRAPISpyGetString
    - OGRAPISpyGetLayerVar
    - OGRAPISpyFlushDefered
    - OGRGeomFieldDefn*::GetNameRef
    - fprintf
    - OGRGeomFieldDefn*::GetType
    - ToHandle
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRAPISpyFileClose
    - OGRAPISpyGetGeomType
    - OGRAPISpyGetSRS
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH
      hField,\n                                 int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1029,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1030,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1031,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1031,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - pszMethod
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1034
    functionName: OGRAPISpy_L_Op
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_Op(OGRLayerH hLayer, const char *pszMethod)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1039
      start: 1036
    functionDepth: 4
    functionLinenumber: 1036
    functionLinenumberEnd: 1039
    functionName: OGRAPISpy_L_StartTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_StartTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1044
      start: 1041
    functionDepth: 4
    functionLinenumber: 1041
    functionLinenumberEnd: 1044
    functionName: OGRAPISpy_L_CommitTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_CommitTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 4
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: OGRAPISpy_L_RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_RollbackTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1055,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1059
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1059
    functionName: OGRAPISpy_L_GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyFlushDefered
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetLayerDefn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1064
      start: 1061
    functionDepth: 4
    functionLinenumber: 1061
    functionLinenumberEnd: 1064
    functionName: OGRAPISpy_L_GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetSpatialRef(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1069
      start: 1066
    functionDepth: 4
    functionLinenumber: 1066
    functionLinenumberEnd: 1069
    functionName: OGRAPISpy_L_GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetSpatialFilter(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: OGRAPISpy_L_ResetReading
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_ResetReading(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1079
      start: 1076
    functionDepth: 4
    functionLinenumber: 1076
    functionLinenumberEnd: 1079
    functionName: OGRAPISpy_L_SyncToDisk
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_SyncToDisk(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1084
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1084
    functionName: OGRAPISpy_L_GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetFIDColumn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1089
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1089
    functionName: OGRAPISpy_L_GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetGeometryColumn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1094
      start: 1091
    functionDepth: 4
    functionLinenumber: 1091
    functionLinenumberEnd: 1094
    functionName: OGRAPISpy_L_GetName
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetName(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_Op
      Src: /src/gdal/ogr/ograpispy.cpp:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: OGRAPISpy_L_GetGeomType
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_Op
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_GetGeomType(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1104,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1105,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1106,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1107,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1108,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - pszFieldName
    - bExactMatch
    argTypes:
    - OGRLayerH
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1110
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1110
    functionName: OGRAPISpy_L_FindFieldIndex
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_FindFieldIndex(OGRLayerH hLayer, const char *pszFieldName,\n
      \                               int bExactMatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1114,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1115,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1116,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1117,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1118,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - pszCap
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1120
    functionName: OGRAPISpy_L_TestCapability
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_TestCapability(OGRLayerH hLayer, const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1124,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1125,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1126,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1127,1
    - Dst: OGRAPISpyGetGeom
      Src: /src/gdal/ogr/ograpispy.cpp:1128,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - hGeom
    argTypes:
    - OGRLayerH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1130
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1130
    functionName: OGRAPISpy_L_SetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetGeom
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_SetSpatialFilter(OGRLayerH hLayer, OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1135,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1136,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1137,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1138,1
    - Dst: OGRAPISpyGetGeom
      Src: /src/gdal/ogr/ograpispy.cpp:1139,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - hGeom
    argTypes:
    - OGRLayerH
    - int
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1141
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1141
    functionName: OGRAPISpy_L_SetSpatialFilterEx
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetGeom
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_SetSpatialFilterEx(OGRLayerH hLayer, int iGeomField,\n
      \                                   OGRGeometryH hGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1147,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1148,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1149,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:1150,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1151,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - hLayer
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRLayerH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1154
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1154
    functionName: OGRAPISpy_L_SetSpatialFilterRect
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - CPLSPrintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_SetSpatialFilterRect(OGRLayerH hLayer, double dfMinX,\n
      \                                     double dfMinY, double dfMaxX,\n                                      double
      dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1160,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1161,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1162,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:1163,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1165,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - hLayer
    - iGeomField
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRLayerH
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1168
      start: 1156
    functionDepth: 3
    functionLinenumber: 1156
    functionLinenumberEnd: 1168
    functionName: OGRAPISpy_L_SetSpatialFilterRectEx
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - CPLSPrintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_SetSpatialFilterRectEx(OGRLayerH hLayer, int iGeomField,\n
      \                                       double dfMinX, double dfMinY,\n                                        double
      dfMaxX, double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1172,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1173,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1174,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1175,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nFID
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1177
      start: 1170
    functionDepth: 3
    functionLinenumber: 1170
    functionLinenumberEnd: 1177
    functionName: OGRAPISpy_L_DeleteFeature
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_L_DeleteFeature(OGRLayerH hLayer, GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1182,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1183,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1184,1
    - Dst: OGRAPISpyGetLayerVar
      Src: /src/gdal/ogr/ograpispy.cpp:1186,1
    - Dst: OGRAPISpyGetOptions
      Src: /src/gdal/ogr/ograpispy.cpp:1187,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ograpispy.cpp:1187,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - papszIgnoredFields
    argTypes:
    - OGRLayerH
    - char**
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 3
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: OGRAPISpy_L_SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - const_cast<char **>
    - OGRAPISpyGetLayerVar
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetOptions
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_L_SetIgnoredFields(OGRLayerH hLayer,\n                                  const
      char **papszIgnoredFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1193,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1194,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1195,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1196,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1198
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1198
    functionName: OGRAPISpy_FD_GetGeomType
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_FD_GetGeomType(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1202,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ograpispy.cpp:1204,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ograpispy.cpp:1205,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1211,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1212,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1213,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1216
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1216
    functionName: OGRAPISpy_FD_GetFieldCount
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - FromHandle
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - ToHandle
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_FD_GetFieldCount(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1221,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1222,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1223,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1224,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1225,1
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:1228,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:1229,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:1233,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1234,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - hDefn
    - iField
    - hField
    argTypes:
    - OGRFeatureDefnH
    - int
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1238
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1238
    functionName: OGRAPISpy_FD_GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - end
    - CPLMutexHolderD
    - find
    - OGRAPISpyFlushDefered
    - fprintf
    - CPLSPrintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_FD_GetFieldDefn(OGRFeatureDefnH hDefn, int iField,\n
      \                              OGRFieldDefnH hField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1242,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1243,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1244,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1245,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1246,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hDefn
    - pszFieldName
    argTypes:
    - OGRFeatureDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1248
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1248
    functionName: OGRAPISpy_FD_GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_FD_GetFieldIndex(OGRFeatureDefnH hDefn, const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1252,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1253,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1254,1
    - Dst: c_str
      Src: /src/gdal/ogr/ograpispy.cpp:1254,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hField
    - pszOp
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1256
      start: 1250
    functionDepth: 3
    functionLinenumber: 1250
    functionLinenumberEnd: 1256
    functionName: OGRAPISpy_Fld_GetXXXX
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_Fld_GetXXXX(OGRFieldDefnH hField, const char *pszOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1260,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1261,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1262,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1263,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFeatureDefnH
    constantsTouched: []
    func_position:
      end: 1265
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1265
    functionName: OGRAPISpy_FD_GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_FD_GetGeomFieldCount(OGRFeatureDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1270,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1271,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1272,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1273,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1274,1
    - Dst: find
      Src: /src/gdal/ogr/ograpispy.cpp:1277,1
    - Dst: end
      Src: /src/gdal/ogr/ograpispy.cpp:1278,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ograpispy.cpp:1282,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1283,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - hDefn
    - iGeomField
    - hGeomField
    argTypes:
    - OGRFeatureDefnH
    - int
    - OGRGeomFieldDefnH
    constantsTouched: []
    func_position:
      end: 1287
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1287
    functionName: OGRAPISpy_FD_GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - end
    - CPLMutexHolderD
    - find
    - OGRAPISpyFlushDefered
    - fprintf
    - CPLSPrintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_FD_GetGeomFieldDefn(OGRFeatureDefnH hDefn, int iGeomField,\n
      \                                  OGRGeomFieldDefnH hGeomField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1292,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1293,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1294,1
    - Dst: OGRAPISpyGetFeatureDefnVar
      Src: /src/gdal/ogr/ograpispy.cpp:1295,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1296,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hDefn
    - pszFieldName
    argTypes:
    - OGRFeatureDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1298
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1298
    functionName: OGRAPISpy_FD_GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderD
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyGetFeatureDefnVar
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: "void OGRAPISpy_FD_GetGeomFieldIndex(OGRFeatureDefnH hDefn,\n                                    const
      char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ograpispy.cpp:1302,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1303,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1304,1
    - Dst: c_str
      Src: /src/gdal/ogr/ograpispy.cpp:1304,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hGeomField
    - pszOp
    argTypes:
    - OGRGeomFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1300
    functionDepth: 3
    functionLinenumber: 1300
    functionLinenumberEnd: 1307
    functionName: OGRAPISpy_GFld_GetXXXX
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - CPLMutexHolderD
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: void
    signature: void OGRAPISpy_GFld_GetXXXX(OGRGeomFieldDefnH hGeomField, const char
      *pszOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ograpispy.cpp:1311,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ograpispy.cpp:1311,1
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:1313,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1315,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1318,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1319,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1320,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1324,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1325,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pszKey
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1328
      start: 1309
    functionDepth: 3
    functionLinenumber: 1309
    functionLinenumberEnd: 1328
    functionName: OGRAPISPYCPLSetConfigOption
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    - STARTS_WITH
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: void OGRAPISPYCPLSetConfigOption(const char *pszKey, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ograpispy.cpp:1333,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ograpispy.cpp:1333,1
    - Dst: OGRAPISpyEnabled
      Src: /src/gdal/ogr/ograpispy.cpp:1335,1
    - Dst: OGRAPISpyFlushDefered
      Src: /src/gdal/ogr/ograpispy.cpp:1337,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1340,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1343,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1344,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ograpispy.cpp:1348,1
    - Dst: OGRAPISpyGetString
      Src: /src/gdal/ogr/ograpispy.cpp:1351,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ograpispy.cpp:1353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pszKey
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1354
      start: 1330
    functionDepth: 3
    functionLinenumber: 1330
    functionLinenumberEnd: 1354
    functionName: OGRAPISPYCPLSetThreadLocalConfigOption
    functionSourceFile: /src/gdal/ogr/ograpispy.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyGetString
    - OGRAPISpyFlushDefered
    - fprintf
    - OGRAPISpyFileClose
    - STARTS_WITH
    - OGRAPISpyEnabled
    linkageType: ''
    returnType: void
    signature: "void OGRAPISPYCPLSetThreadLocalConfigOption(const char *pszKey,\n
      \                                           const char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:50,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:50,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:54,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:55,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:56,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:57,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:58,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - pszGType
    - pbError
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: OGRVRTGetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrvrtgeometrytypes.cpp
    functionUses: 0
    functionsReached:
    - wkbSetM
    - wkbSetZ
    - strstr
    - strlen
    - EQUALN
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRVRTGetGeometryType(const char *pszGType, int
      *pbError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:77,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:80,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:82,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:86,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:91,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrvrtgeometrytypes.cpp:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: OGRVRTGetSerializedGeometryType
    functionSourceFile: /src/gdal/ogr/ogrvrtgeometrytypes.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - OGR_GT_HasM
    - OGR_GT_HasZ
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string OGRVRTGetSerializedGeometryType(OGRwkbGeometryType eGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:41,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszNameIn
    - eTypeIn
    argTypes:
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: OGRFieldDefn::OGRFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::OGRFieldDefn(const char *pszNameIn, OGRFieldType
      eTypeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:63,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrfielddefn.cpp:63,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:64,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrfielddefn.cpp:64,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:65,1
    - Dst: OGRFieldDefn*::GetJustify
      Src: /src/gdal/ogr/ogrfielddefn.cpp:65,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrfielddefn.cpp:66,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrfielddefn.cpp:66,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:69,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrfielddefn.cpp:69,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrfielddefn.cpp:70,1
    - Dst: OGRFieldDefn*::IsGenerated
      Src: /src/gdal/ogr/ogrfielddefn.cpp:71,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrfielddefn.cpp:73,1
    - Dst: OGRFieldDefn*::GetTZFlag
      Src: /src/gdal/ogr/ogrfielddefn.cpp:74,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrfielddefn.cpp:76,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrfielddefn.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPrototype
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: OGRFieldDefn::OGRFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetAlternativeNameRef
    - OGRFieldDefn::SetDefault
    - CPLStrdup
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetTZFlag
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::GetComment
    - OGRFieldDefn*::IsGenerated
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - OGRFieldDefn*::IsUnique
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::GetWidth
    - OGRFieldDefn*::GetJustify
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::OGRFieldDefn(const OGRFieldDefn *poPrototype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:97,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrfielddefn.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - eType
    argTypes:
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: OGR_Fld_Create
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRFieldDefn::OGRFieldDefn
    linkageType: ''
    returnType: OGRFieldDefnH
    signature: OGRFieldDefnH OGR_Fld_Create(const char *pszName, OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:107,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:108,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: OGRFieldDefn::~OGRFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::~OGRFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:122,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:123,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRFieldDefn
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: OGRFieldDefn::OGRFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::OGRFieldDefn(const OGRFieldDefn &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:149,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:150,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:151,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:152,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:157,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRFieldDefn
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: '&OGRFieldDefn::operator=(const OGRFieldDefn &oOther)'
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn &OGRFieldDefn::operator=(const OGRFieldDefn &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: OGR_Fld_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_Destroy(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:210,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:216,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: OGRFieldDefn::SetName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - pszName
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: OGR_Fld_SetName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetName(OGRFieldDefnH hDefn, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_Fld_GetXXXX
      Src: /src/gdal/ogr/ogrfielddefn.cpp:279,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: OGR_Fld_GetNameRef
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_Fld_GetXXXX
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_Fld_GetNameRef(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:325,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszAlternativeNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: OGRFieldDefn::SetAlternativeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetAlternativeName(const char *pszAlternativeNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - pszAlternativeName
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: OGR_Fld_SetAlternativeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_Fld_SetAlternativeName(OGRFieldDefnH hDefn,\n                                const
      char *pszAlternativeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_Fld_GetXXXX
      Src: /src/gdal/ogr/ogrfielddefn.cpp:421,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 425
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: OGR_Fld_GetAlternativeNameRef
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_Fld_GetXXXX
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_Fld_GetAlternativeNameRef(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_Fld_GetXXXX
      Src: /src/gdal/ogr/ogrfielddefn.cpp:459,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: OGR_Fld_GetType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_Fld_GetXXXX
    - FromHandle
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType OGR_Fld_GetType(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:489,1
    - Dst: OGR_AreTypeSubTypeCompatible
      Src: /src/gdal/ogr/ogrfielddefn.cpp:493,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - eTypeIn
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: OGRFieldDefn::SetType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 4
    functionsReached:
    - CPLError
    - OGR_AreTypeSubTypeCompatible
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetType(OGRFieldType eTypeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - eType
    argTypes:
    - OGRFieldDefnH
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: OGR_Fld_SetType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetType(OGRFieldDefnH hDefn, OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_Fld_GetXXXX
      Src: /src/gdal/ogr/ogrfielddefn.cpp:563,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 567
    functionName: OGR_Fld_GetSubType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_Fld_GetXXXX
    - FromHandle
    linkageType: ''
    returnType: OGRFieldSubType
    signature: OGRFieldSubType OGR_Fld_GetSubType(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:593,1
    - Dst: OGR_AreTypeSubTypeCompatible
      Src: /src/gdal/ogr/ogrfielddefn.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - eSubTypeIn
    argTypes:
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 608
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 608
    functionName: OGRFieldDefn::SetSubType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGR_AreTypeSubTypeCompatible
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetSubType(OGRFieldSubType eSubTypeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - eSubType
    argTypes:
    - OGRFieldDefnH
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: OGR_Fld_SetSubType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetSubType(OGRFieldDefnH hDefn, OGRFieldSubType eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:680,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:684,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfielddefn.cpp:688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:699,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:708,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrfielddefn.cpp:714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - pszDefaultIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 715
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 715
    functionName: OGRFieldDefn::SetDefault
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLFree
    - strlen
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetDefault(const char *pszDefaultIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - pszDefault
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: OGR_Fld_SetDefault
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetDefault(OGRFieldDefnH hDefn, const char *pszDefault)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 778
    functionName: OGRFieldDefn::GetDefault
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRFieldDefn::GetDefault() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: OGR_Fld_GetDefault
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_Fld_GetDefault(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:824,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:824,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrfielddefn.cpp:827,1
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrfielddefn.cpp:831,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 836
    functionName: OGRFieldDefn::IsDefaultDriverSpecific
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - strlen
    - CPLStrtod
    linkageType: ''
    returnType: int
    signature: int OGRFieldDefn::IsDefaultDriverSpecific() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: OGR_Fld_IsDefaultDriverSpecific
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_IsDefaultDriverSpecific(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 925
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 925
    functionName: OGRFieldDefn::GetFieldTypeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRFieldDefn::GetFieldTypeName(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:938,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:940,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:942,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:946,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:948,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:950,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:952,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:954,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:956,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:958,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:960,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 964
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 964
    functionName: OGRFieldDefn::GetFieldTypeByName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType OGRFieldDefn::GetFieldTypeByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetFieldTypeByName
      Src: /src/gdal/ogr/ogrfielddefn.cpp:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: OGR_GetFieldTypeByName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetFieldTypeByName
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType OGR_GetFieldTypeByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: OGR_GetFieldTypeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetFieldTypeName
    linkageType: ''
    returnType: char
    signature: char *OGR_GetFieldTypeName(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - eSubType
    argTypes:
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 1044
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1044
    functionName: OGRFieldDefn::GetFieldSubTypeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRFieldDefn::GetFieldSubTypeName(OGRFieldSubType eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1057,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1059,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1061,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1063,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1069
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1069
    functionName: OGRFieldDefn::GetFieldSubTypeByName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRFieldSubType
    signature: OGRFieldSubType OGRFieldDefn::GetFieldSubTypeByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetFieldSubTypeByName
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: OGR_GetFieldSubTypeByName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetFieldSubTypeByName
    linkageType: ''
    returnType: OGRFieldSubType
    signature: OGRFieldSubType OGR_GetFieldSubTypeByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eSubType
    argTypes:
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: OGR_GetFieldSubTypeName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetFieldSubTypeName
    linkageType: ''
    returnType: char
    signature: char *OGR_GetFieldSubTypeName(OGRFieldSubType eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - eType
    - eSubType
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 1136
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1136
    functionName: OGR_AreTypeSubTypeCompatible
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR_AreTypeSubTypeCompatible(OGRFieldType eType, OGRFieldSubType
      eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1172
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1172
    functionName: OGR_Fld_GetJustify
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRJustification
    signature: OGRJustification OGR_Fld_GetJustify(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - eJustify
    argTypes:
    - OGRFieldDefnH
    - OGRJustification
    constantsTouched: []
    func_position:
      end: 1208
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1208
    functionName: OGR_Fld_SetJustify
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetJustify(OGRFieldDefnH hDefn, OGRJustification eJustify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1240
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1240
    functionName: OGR_Fld_GetWidth
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_GetWidth(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1263,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nWidthIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1268
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1268
    functionName: OGRFieldDefn::SetWidth
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - MAX
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetWidth(int nWidthIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - nNewWidth
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1292
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1292
    functionName: OGR_Fld_SetWidth
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetWidth(OGRFieldDefnH hDefn, int nNewWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1328
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1328
    functionName: OGR_Fld_GetPrecision
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_GetPrecision(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nPrecisionIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1358
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1358
    functionName: OGRFieldDefn::SetPrecision
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetPrecision(int nPrecisionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - nPrecision
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1384
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1384
    functionName: OGR_Fld_SetPrecision
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetPrecision(OGRFieldDefnH hDefn, int nPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1426
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1426
    functionName: OGR_Fld_GetTZFlag
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_GetTZFlag(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nTZFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1460
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1460
    functionName: OGRFieldDefn::SetTZFlag
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetTZFlag(int nTZFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - nTZFlag
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1490
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1490
    functionName: OGR_Fld_SetTZFlag
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetTZFlag(OGRFieldDefnH hDefn, int nTZFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1523,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1527,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1528,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1529,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1530,1
    - Dst: SetJustify
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - pszNameIn
    - eTypeIn
    - nWidthIn
    - nPrecisionIn
    - eJustifyIn
    argTypes:
    - char*
    - OGRFieldType
    - int
    - int
    - OGRJustification
    constantsTouched: []
    func_position:
      end: 1532
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1532
    functionName: OGRFieldDefn::Set
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - SetJustify
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetName
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGRFieldDefn::Set(const char *pszNameIn, OGRFieldType eTypeIn,\n
      \                      int nWidthIn, int nPrecisionIn,\n                       OGRJustification
      eJustifyIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hDefn
    - pszNameIn
    - eTypeIn
    - nWidthIn
    - nPrecisionIn
    - eJustifyIn
    argTypes:
    - OGRFieldDefnH
    - char*
    - OGRFieldType
    - int
    - int
    - OGRJustification
    constantsTouched: []
    func_position:
      end: 1566
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1566
    functionName: OGR_Fld_Set
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_Fld_Set(OGRFieldDefnH hDefn, const char *pszNameIn,\n                 OGRFieldType
      eTypeIn, int nWidthIn, int nPrecisionIn,\n                 OGRJustification
      eJustifyIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1598
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1598
    functionName: OGR_Fld_IsIgnored
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_IsIgnored(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - ignore
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1638
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1638
    functionName: OGR_Fld_SetIgnored
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetIgnored(OGRFieldDefnH hDefn, int ignore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1653,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - poOtherFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1663
    functionName: OGRFieldDefn::IsSame
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int OGRFieldDefn::IsSame(const OGRFieldDefn *poOtherFieldDefn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1711
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1711
    functionName: OGR_Fld_IsNullable
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_IsNullable(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bNullableIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1748
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1748
    functionName: OGRFieldDefn::SetNullable
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetNullable(int bNullableIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bNullableIn
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1779
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1779
    functionName: OGR_Fld_SetNullable
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetNullable(OGRFieldDefnH hDefn, int bNullableIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bGeneratedIn
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1807
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1807
    functionName: OGR_Fld_SetGenerated
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetGenerated(OGRFieldDefnH hDefn, int bGeneratedIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1828
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1828
    functionName: OGR_Fld_IsGenerated
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_IsGenerated(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1866
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1866
    functionName: OGR_Fld_IsUnique
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: int
    signature: int OGR_Fld_IsUnique(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bUniqueIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1901
      start: 1892
    functionDepth: 1
    functionLinenumber: 1892
    functionLinenumberEnd: 1901
    functionName: OGRFieldDefn::SetUnique
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetUnique(int bUniqueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - bUniqueIn
    argTypes:
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1933
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1933
    functionName: OGR_Fld_SetUnique
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetUnique(OGRFieldDefnH hDefn, int bUniqueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 1977
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1977
    functionName: OGR_Fld_GetDomainName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_Fld_GetDomainName(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - osDomainName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2009
      start: 1999
    functionDepth: 1
    functionLinenumber: 1999
    functionLinenumberEnd: 2009
    functionName: OGRFieldDefn::SetDomainName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetDomainName(const std::string &osDomainName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - pszFieldName
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 2037
      start: 2033
    functionDepth: 0
    functionLinenumber: 2033
    functionLinenumberEnd: 2037
    functionName: OGR_Fld_SetDomainName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetDomainName(OGRFieldDefnH hDefn, const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDefn
    argTypes:
    - OGRFieldDefnH
    constantsTouched: []
    func_position:
      end: 2075
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2075
    functionName: OGR_Fld_GetComment
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_Fld_GetComment(OGRFieldDefnH hDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - osComment
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2104
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2104
    functionName: OGRFieldDefn::SetComment
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::SetComment(const std::string &osComment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDefn
    - pszComment
    argTypes:
    - OGRFieldDefnH
    - char*
    constantsTouched: []
    func_position:
      end: 2129
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2129
    functionName: OGR_Fld_SetComment
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_Fld_SetComment(OGRFieldDefnH hDefn, const char *pszComment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2151,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2154,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2157,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2161,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2162,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2168,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2169,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2173,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2174,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2181,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2182,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2186,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2187,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2192,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2193,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2197,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2198,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2206,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2210,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2215,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2216,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2222,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2224,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2228,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2229,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2233,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2234,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2238,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2239,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2245,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2249,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2250,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2259,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2260,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2267,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2273,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2275,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2279,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 94
    argCount: 3
    argNames:
    - poFDefn
    - eNewType
    - eNewSubType
    argTypes:
    - OGRFieldDefn*
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 2281
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2281
    functionName: OGRUpdateFieldType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetSubType
    linkageType: ''
    returnType: void
    signature: "void OGRUpdateFieldType(OGRFieldDefn *poFDefn, OGRFieldType eNewType,\n
      \                       OGRFieldSubType eNewSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2295
    functionDepth: 0
    functionLinenumber: 2295
    functionLinenumberEnd: 2298
    functionName: OGRFieldDefn::Seal
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::Seal()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2314
    functionDepth: 0
    functionLinenumber: 2314
    functionLinenumberEnd: 2317
    functionName: OGRFieldDefn::Unseal
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFieldDefn::Unseal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TemporaryUnsealer
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2338
    functionName: OGRFieldDefn::GetTemporaryUnsealer
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - TemporaryUnsealer
    linkageType: ''
    returnType: OGRFieldDefn::TemporaryUnsealer
    signature: OGRFieldDefn::TemporaryUnsealer OGRFieldDefn::GetTemporaryUnsealer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - osName
    - osDescription
    - eDomainType
    - eFieldType
    - eFieldSubType
    argTypes:
    - std::string
    - std::string
    - OGRFieldDomainType
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 2354
      start: 2345
    functionDepth: 0
    functionLinenumber: 2345
    functionLinenumberEnd: 2354
    functionName: OGRFieldDomain::OGRFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRFieldDomain::OGRFieldDomain(const std::string &osName,\n                               const
      std::string &osDescription,\n                               OGRFieldDomainType
      eDomainType,\n                               OGRFieldType eFieldType,\n                               OGRFieldSubType
      eFieldSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2362
    functionName: OGRFieldDomain::~OGRFieldDomain()
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFieldDomain::~OGRFieldDomain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2378
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2378
    functionName: OGR_FldDomain_Destroy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_FldDomain_Destroy(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2391,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2394,1
    - Dst: back
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2394,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - osName
    - osDescription
    - eFieldType
    - eFieldSubType
    - asValues
    argTypes:
    - std::string
    - std::string
    - OGRFieldType
    - OGRFieldSubType
    - std::vector<OGRCodedValue>
    constantsTouched: []
    func_position:
      end: 2401
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2401
    functionName: OGRCodedFieldDomain::OGRCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - back
    - std::move
    - empty
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRCodedFieldDomain::OGRCodedFieldDomain(const std::string &osName,\n
      \                                        const std::string &osDescription,\n
      \                                        OGRFieldType eFieldType,\n                                         OGRFieldSubType
      eFieldSubType,\n                                         std::vector<OGRCodedValue>
      &&asValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2432,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2433,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2442,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2446,1
    - Dst: what
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2446,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2453,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2461,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2464,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2473,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2479,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2480,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2489,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2491,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2493,1
    - Dst: OGRCodedFieldDomain::OGRCodedFieldDomain
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2491,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - pszName
    - pszDescription
    - eFieldType
    - eFieldSubType
    - enumeration
    argTypes:
    - char*
    - char*
    - OGRFieldType
    - OGRFieldSubType
    - OGRCodedValue*
    constantsTouched: []
    func_position:
      end: 2494
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2494
    functionName: OGR_CodedFldDomain_Create
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - VSI_STRDUP_VERBOSE
    - CPLError
    - std::vector::emplace_back
    - ToHandle
    - OGRCodedFieldDomain::OGRCodedFieldDomain
    - VSIFree
    - std::move
    - VALIDATE_POINTER1
    - std::vector::reserve
    - what
    linkageType: ''
    returnType: OGRFieldDomainH
    signature: "OGRFieldDomainH OGR_CodedFldDomain_Create(const char *pszName,\n                                          const
      char *pszDescription,\n                                          OGRFieldType
      eFieldType,\n                                          OGRFieldSubType eFieldSubType,\n
      \                                         const OGRCodedValue *enumeration)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2502,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2503,1
    - Dst: OGR_CodedFldDomain_Create
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2503,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2504,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2504,1
    - Dst: data
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2505,1
    - Dst: auto::SetMergePolicy
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2506,1
    - Dst: auto::SetSplitPolicy
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2500
    functionDepth: 2
    functionLinenumber: 2500
    functionLinenumberEnd: 2509
    functionName: OGRCodedFieldDomain::Clone
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - FromHandle
    - auto::SetMergePolicy
    - OGR_CodedFldDomain_Create
    - cpl::down_cast<OGRCodedFieldDomain *>
    - data
    - auto::SetSplitPolicy
    linkageType: ''
    returnType: OGRCodedFieldDomain
    signature: OGRCodedFieldDomain *OGRCodedFieldDomain::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2519,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2522
    functionName: OGRCodedFieldDomain::~OGRCodedFieldDomain()
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRCodedFieldDomain::~OGRCodedFieldDomain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 8
    argNames:
    - osName
    - osDescription
    - eFieldType
    - eFieldSubType
    - sMin
    - bMinIsInclusive
    - sMax
    - bMaxIsInclusive
    argTypes:
    - std::string
    - std::string
    - OGRFieldType
    - OGRFieldSubType
    - OGRField
    - bool
    - OGRField
    - bool
    constantsTouched: []
    func_position:
      end: 2541
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2541
    functionName: OGRRangeFieldDomain::OGRRangeFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: "void OGRRangeFieldDomain::OGRRangeFieldDomain(\n    const std::string
      &osName, const std::string &osDescription,\n    OGRFieldType eFieldType, OGRFieldSubType
      eFieldSubType,\n    const OGRField &sMin, bool bMinIsInclusive, const OGRField
      &sMax,\n    bool bMaxIsInclusive)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2547
    functionDepth: 1
    functionLinenumber: 2547
    functionLinenumberEnd: 2552
    functionName: GetUnsetField
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_SetUnset
    linkageType: ''
    returnType: OGRField
    signature: OGRField GetUnsetField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2582,1
    - Dst: GetUnsetField
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2585,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2586,1
    - Dst: OGRRangeFieldDomain::OGRRangeFieldDomain
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 8
    argNames:
    - pszName
    - pszDescription
    - eFieldType
    - eFieldSubType
    - psMin
    - bMinIsInclusive
    - psMax
    - bMaxIsInclusive
    argTypes:
    - char*
    - char*
    - OGRFieldType
    - OGRFieldSubType
    - OGRField*
    - bool
    - OGRField*
    - bool
    constantsTouched: []
    func_position:
      end: 2590
      start: 2573
    functionDepth: 2
    functionLinenumber: 2573
    functionLinenumberEnd: 2590
    functionName: OGR_RangeFldDomain_Create
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - GetUnsetField
    - OGRRangeFieldDomain::OGRRangeFieldDomain
    - VALIDATE_POINTER1
    - CPLError
    linkageType: ''
    returnType: OGRFieldDomainH
    signature: "OGRFieldDomainH OGR_RangeFldDomain_Create(\n    const char *pszName,
      const char *pszDescription, OGRFieldType eFieldType,\n    OGRFieldSubType eFieldSubType,
      const OGRField *psMin, bool bMinIsInclusive,\n    const OGRField *psMax, bool
      bMaxIsInclusive)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - osName
    - osDescription
    - eFieldType
    - eFieldSubType
    - osGlob
    argTypes:
    - std::string
    - std::string
    - OGRFieldType
    - OGRFieldSubType
    - std::string
    constantsTouched: []
    func_position:
      end: 2605
      start: 2596
    functionDepth: 0
    functionLinenumber: 2596
    functionLinenumberEnd: 2605
    functionName: OGRGlobFieldDomain::OGRGlobFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRGlobFieldDomain::OGRGlobFieldDomain(const std::string &osName,\n
      \                                      const std::string &osDescription,\n                                       OGRFieldType
      eFieldType,\n                                       OGRFieldSubType eFieldSubType,\n
      \                                      const std::string &osGlob)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2629,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2630,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2631,1
    - Dst: OGRGlobFieldDomain::OGRGlobFieldDomain
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pszName
    - pszDescription
    - eFieldType
    - eFieldSubType
    - pszGlob
    argTypes:
    - char*
    - char*
    - OGRFieldType
    - OGRFieldSubType
    - char*
    constantsTouched: []
    func_position:
      end: 2634
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2634
    functionName: OGR_GlobFldDomain_Create
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRGlobFieldDomain::OGRGlobFieldDomain
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFieldDomainH
    signature: "OGRFieldDomainH OGR_GlobFldDomain_Create(const char *pszName,\n                                         const
      char *pszDescription,\n                                         OGRFieldType
      eFieldType,\n                                         OGRFieldSubType eFieldSubType,\n
      \                                        const char *pszGlob)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2651
      start: 2648
    functionDepth: 0
    functionLinenumber: 2648
    functionLinenumberEnd: 2651
    functionName: OGR_FldDomain_GetName
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_FldDomain_GetName(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2668
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2668
    functionName: OGR_FldDomain_GetDescription
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: char
    signature: char *OGR_FldDomain_GetDescription(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2685
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2685
    functionName: OGR_FldDomain_GetDomainType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRFieldDomainType
    signature: OGRFieldDomainType OGR_FldDomain_GetDomainType(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2702
      start: 2699
    functionDepth: 0
    functionLinenumber: 2699
    functionLinenumberEnd: 2702
    functionName: OGR_FldDomain_GetFieldType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType OGR_FldDomain_GetFieldType(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2719
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2719
    functionName: OGR_FldDomain_GetFieldSubType
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRFieldSubType
    signature: OGRFieldSubType OGR_FldDomain_GetFieldSubType(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2738
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2738
    functionName: OGR_FldDomain_GetSplitPolicy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRFieldDomainSplitPolicy
    signature: OGRFieldDomainSplitPolicy OGR_FldDomain_GetSplitPolicy(OGRFieldDomainH
      hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hFieldDomain
    - policy
    argTypes:
    - OGRFieldDomainH
    - OGRFieldDomainSplitPolicy
    constantsTouched: []
    func_position:
      end: 2757
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2757
    functionName: OGR_FldDomain_SetSplitPolicy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_FldDomain_SetSplitPolicy(OGRFieldDomainH hFieldDomain,\n
      \                                 OGRFieldDomainSplitPolicy policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2776
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2776
    functionName: OGR_FldDomain_GetMergePolicy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRFieldDomainMergePolicy
    signature: OGRFieldDomainMergePolicy OGR_FldDomain_GetMergePolicy(OGRFieldDomainH
      hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hFieldDomain
    - policy
    argTypes:
    - OGRFieldDomainH
    - OGRFieldDomainMergePolicy
    constantsTouched: []
    func_position:
      end: 2795
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2795
    functionName: OGR_FldDomain_SetMergePolicy
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_FldDomain_SetMergePolicy(OGRFieldDomainH hFieldDomain,\n
      \                                 OGRFieldDomainMergePolicy policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2816,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2817,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2820,1
    - Dst: auto::GetEnumeration
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2826
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2826
    functionName: OGR_CodedFldDomain_GetEnumeration
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::GetEnumeration
    - FromHandle
    - dynamic_cast<const OGRCodedFieldDomain *>
    linkageType: ''
    returnType: OGRCodedValue
    signature: 'OGRCodedValue *

      OGR_CodedFldDomain_GetEnumeration(OGRFieldDomainH hFieldDomain)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRRangeFieldDomain *>
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2852,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2853,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2856,1
    - Dst: GetUnsetField
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2859,1
    - Dst: auto::GetMin
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hFieldDomain
    - pbIsInclusiveOut
    argTypes:
    - OGRFieldDomainH
    - bool*
    constantsTouched: []
    func_position:
      end: 2867
      start: 2847
    functionDepth: 2
    functionLinenumber: 2847
    functionLinenumberEnd: 2867
    functionName: OGR_RangeFldDomain_GetMin
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - GetUnsetField
    - auto::GetMin
    - dynamic_cast<const OGRRangeFieldDomain *>
    - CPLError
    linkageType: ''
    returnType: OGRField
    signature: "OGRField *OGR_RangeFldDomain_GetMin(OGRFieldDomainH hFieldDomain,\n
      \                                         bool *pbIsInclusiveOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRRangeFieldDomain *>
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2893,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2894,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2897,1
    - Dst: GetUnsetField
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2900,1
    - Dst: auto::GetMax
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hFieldDomain
    - pbIsInclusiveOut
    argTypes:
    - OGRFieldDomainH
    - bool*
    constantsTouched: []
    func_position:
      end: 2908
      start: 2888
    functionDepth: 2
    functionLinenumber: 2888
    functionLinenumberEnd: 2908
    functionName: OGR_RangeFldDomain_GetMax
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - auto::GetMax
    - FromHandle
    - GetUnsetField
    - dynamic_cast<const OGRRangeFieldDomain *>
    - CPLError
    linkageType: ''
    returnType: OGRField
    signature: "OGRField *OGR_RangeFldDomain_GetMax(OGRFieldDomainH hFieldDomain,\n
      \                                         bool *pbIsInclusiveOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRGlobFieldDomain *>
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2926,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2930,1
    - Dst: auto::GetGlob
      Src: /src/gdal/ogr/ogrfielddefn.cpp:2935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hFieldDomain
    argTypes:
    - OGRFieldDomainH
    constantsTouched: []
    func_position:
      end: 2936
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2936
    functionName: OGR_GlobFldDomain_GetGlob
    functionSourceFile: /src/gdal/ogr/ogrfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - dynamic_cast<const OGRGlobFieldDomain *>
    - FromHandle
    - auto::GetGlob
    linkageType: ''
    returnType: char
    signature: char *OGR_GlobFldDomain_GetGlob(OGRFieldDomainH hFieldDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpoint.cpp:35,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpoint.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: GetEmptyNonEmptyFlag
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: int
    signature: int GetEmptyNonEmptyFlag(double x, double y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: OGRPoint::OGRPoint
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPoint::OGRPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEmptyNonEmptyFlag
      Src: /src/gdal/ogr/ogrpoint.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xIn
    - yIn
    - zIn
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: OGRPoint::OGRPoint
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 35
    functionsReached:
    - GetEmptyNonEmptyFlag
    linkageType: ''
    returnType: void
    signature: void OGRPoint::OGRPoint(double xIn, double yIn, double zIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEmptyNonEmptyFlag
      Src: /src/gdal/ogr/ogrpoint.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xIn
    - yIn
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRPoint::OGRPoint
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 35
    functionsReached:
    - GetEmptyNonEmptyFlag
    linkageType: ''
    returnType: void
    signature: void OGRPoint::OGRPoint(double xIn, double yIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEmptyNonEmptyFlag
      Src: /src/gdal/ogr/ogrpoint.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xIn
    - yIn
    - zIn
    - mIn
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGRPoint::OGRPoint
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 35
    functionsReached:
    - GetEmptyNonEmptyFlag
    linkageType: ''
    returnType: void
    signature: void OGRPoint::OGRPoint(double xIn, double yIn, double zIn, double
      mIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpoint.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - m
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: OGRPoint::createXYM
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::OGRPoint
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *OGRPoint::createXYM(double x, double y, double m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: OGRPoint::OGRPoint
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPoint::OGRPoint(const OGRPoint &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assignSpatialReference
      Src: /src/gdal/ogr/ogrpoint.cpp:157,1
    - Dst: OGRPoint::getSpatialReference
      Src: /src/gdal/ogr/ogrpoint.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: '&OGRPoint::operator=(const OGRPoint &other)'
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getSpatialReference
    - assignSpatialReference
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint &OGRPoint::operator=(const OGRPoint &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrpoint.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: OGRPoint::clone
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::OGRPoint
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *OGRPoint::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: OGRPoint::empty
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPoint::empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: OGRPoint::getDimension
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRPoint::getDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: OGRPoint::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRPoint::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: OGRPoint::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPoint::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setMeasured
      Src: /src/gdal/ogr/ogrpoint.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: OGRPoint::flattenTo2D
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 1
    functionsReached:
    - setMeasured
    linkageType: ''
    returnType: void
    signature: void OGRPoint::flattenTo2D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::flattenTo2D
      Src: /src/gdal/ogr/ogrpoint.cpp:251,1
    - Dst: setMeasured
      Src: /src/gdal/ogr/ogrpoint.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nNewDimension
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: OGRPoint::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - setMeasured
    - OGRPoint::flattenTo2D
    linkageType: ''
    returnType: bool
    signature: bool OGRPoint::setCoordinateDimension(int nNewDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: OGRPoint::WkbSize
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OGRPoint::WkbSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkb
      Src: /src/gdal/ogr/ogrpoint.cpp:294,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrpoint.cpp:299,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:316,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:318,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:321,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:323,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:324,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:329,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:331,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:332,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:340,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:342,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:344,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpoint.cpp:353,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrpoint.cpp:353,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 357
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 357
    functionName: OGRPoint::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - importPreambleFromWkb
    - OGR_SWAP
    - CPL_SWAPDOUBLE
    - memcpy
    - std::isnan
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPoint::importFromWkb(const unsigned char *pabyData, size_t
      nSize,\n                               OGRwkbVariant eWkbVariant,\n                               size_t
      &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DB2_V72_UNFIX_BYTE_ORDER
      Src: /src/gdal/ogr/ogrpoint.cpp:378,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrpoint.cpp:379,1
    - Dst: OGRPoint::getGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:386,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpoint.cpp:390,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrpoint.cpp:391,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrpoint.cpp:394,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrpoint.cpp:395,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrpoint.cpp:396,1
    - Dst: getIsoGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:400,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrpoint.cpp:405,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrpoint.cpp:409,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:412,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpoint.cpp:419,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:422,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:423,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:424,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:426,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:427,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:428,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:432,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:433,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:434,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:439,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:440,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:441,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:446,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:447,1
    - Dst: OGRRoundCoordinatesIEEE754XYValues
      Src: /src/gdal/ogr/ogrpoint.cpp:448,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:450,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:452,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:453,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:458,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrpoint.cpp:459,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:461,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:462,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrpoint.cpp:467,1
    - Dst: OGRRoundCoordinatesIEEE754
      Src: /src/gdal/ogr/ogrpoint.cpp:468,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrpoint.cpp:470,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrpoint.cpp:471,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - pabyData
    - psOptions
    argTypes:
    - unsigned char*
    - OGRwkbExportOptions*
    constantsTouched: []
    func_position:
      end: 476
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 476
    functionName: OGRPoint::exportToWkb
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - OGRRoundCoordinatesIEEE754
    - OGRRoundCoordinatesIEEE754XYValues
    - static_cast<unsigned char>
    - OGRPoint::getGeometryType
    - static_cast<OGRwkbGeometryType>
    - getIsoGeometryType
    - OGR_SWAP
    - IsMeasured
    - DB2_V72_UNFIX_BYTE_ORDER
    - CPL_MSBPTR32
    - CPL_SWAPDOUBLE
    - Is3D
    - wkbFlatten
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPoint::exportToWkb(unsigned char *pabyData,\n                             const
      OGRwkbExportOptions *psOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: importPreambleFromWkt
      Src: /src/gdal/ogr/ogrpoint.cpp:491,1
    - Dst: OGRWktReadPointsM
      Src: /src/gdal/ogr/ogrpoint.cpp:520,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:524,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:525,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:526,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:543,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:556,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrpoint.cpp:557,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 562
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 562
    functionName: OGRPoint::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - importPreambleFromWkt
    - OGRWktReadPointsM
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPoint::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::getGeometryName
      Src: /src/gdal/ogr/ogrpoint.cpp:573,1
    - Dst: wktTypeString
      Src: /src/gdal/ogr/ogrpoint.cpp:573,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpoint.cpp:574,1
    - Dst: OGRMakeWktCoordinateM
      Src: /src/gdal/ogr/ogrpoint.cpp:583,1
    - Dst: Is3D
      Src: /src/gdal/ogr/ogrpoint.cpp:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 591
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 591
    functionName: OGRPoint::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getGeometryName
    - IsEmpty
    - wktTypeString
    - OGRMakeWktCoordinateM
    - Is3D
    linkageType: ''
    returnType: std::string
    signature: std::string OGRPoint::exportToWkt(const OGRWktOptions &opts, OGRErr
      *err) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrpoint.cpp:600,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrpoint.cpp:601,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrpoint.cpp:602,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrpoint.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: OGRPoint::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void OGRPoint::getEnvelope(OGREnvelope *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrpoint.cpp:613,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrpoint.cpp:614,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrpoint.cpp:615,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrpoint.cpp:616,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrpoint.cpp:617,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrpoint.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 619
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 619
    functionName: OGRPoint::getEnvelope
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void OGRPoint::getEnvelope(OGREnvelope3D *psEnvelope) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:687,1
    - Dst: OGRPoint::getGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:687,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrpoint.cpp:690,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpoint.cpp:694,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrpoint.cpp:698,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrpoint.cpp:698,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrpoint.cpp:698,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrpoint.cpp:698,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrpoint.cpp:699,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrpoint.cpp:699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 703
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 703
    functionName: OGRPoint::Equals
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 2
    functionsReached:
    - auto::getZ
    - IsEmpty
    - auto::getX
    - OGRPoint::getGeometryType
    - getY
    - getZ
    - auto::getY
    - OGRGeometry*::toPoint
    - getX
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPoint::Equals(const OGRGeometry *poOther) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrpoint.cpp:712,1
    - Dst: assignSpatialReference
      Src: /src/gdal/ogr/ogrpoint.cpp:714,1
    - Dst: OGRCoordinateTransformation*::GetTargetCS
      Src: /src/gdal/ogr/ogrpoint.cpp:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: OGRPoint::transform
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 2
    functionsReached:
    - assignSpatialReference
    - OGRCoordinateTransformation*::Transform
    - OGRCoordinateTransformation*::GetTargetCS
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPoint::transform(OGRCoordinateTransformation *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrpoint.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: OGRPoint::swapXY
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void OGRPoint::swapXY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpoint.cpp:737,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpoint.cpp:738,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:738,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrpoint.cpp:740,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrpoint.cpp:741,1
    - Dst: OGRGeometry::Within
      Src: /src/gdal/ogr/ogrpoint.cpp:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 745
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 745
    functionName: OGRPoint::Within
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - OGRGeometry::Within
    - auto::Contains
    - OGRGeometry*::toCurvePolygon
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPoint::Within(const OGRGeometry *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrpoint.cpp:754,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrpoint.cpp:755,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrpoint.cpp:755,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrpoint.cpp:757,1
    - Dst: auto::Intersects
      Src: /src/gdal/ogr/ogrpoint.cpp:758,1
    - Dst: OGRGeometry::Intersects
      Src: /src/gdal/ogr/ogrpoint.cpp:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - poOtherGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 762
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 762
    functionName: OGRPoint::Intersects
    functionSourceFile: /src/gdal/ogr/ogrpoint.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - auto::Intersects
    - OGRGeometry::Intersects
    - OGRGeometry*::toCurvePolygon
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRPoint::Intersects(const OGRGeometry *poOtherGeom) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - OGRSpatialReference::Private*
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Listener
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Listener(OGRSpatialReference::Private *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Listener
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Listener(const Listener &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '&operator=(const Listener &)'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Listener
    signature: Listener &operator=(const Listener &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Private(const Private &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '&operator=(const Private &)'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Private
    signature: Private &operator=(const Private &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: SetThreadSafe
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetThreadSafe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: getPROJContext
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: PJ_CONTEXT
    signature: PJ_CONTEXT *getPROJContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_mutex::lock
      Src: /src/gdal/ogr/ogrspatialreference.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Private*
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: OptionalLockGuard
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - m_mutex::lock
    linkageType: ''
    returnType: void
    signature: void OptionalLockGuard(Private *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_mutex::unlock
      Src: /src/gdal/ogr/ogrspatialreference.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: ~OptionalLockGuard()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - m_mutex::unlock
    linkageType: ''
    returnType: void
    signature: void ~OptionalLockGuard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OptionalLockGuard
      Src: /src/gdal/ogr/ogrspatialreference.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: GetOptionalLockGuard
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OptionalLockGuard
    linkageType: ''
    returnType: OptionalLockGuard
    signature: OptionalLockGuard GetOptionalLockGuard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nodesChanged
      Src: /src/gdal/ogr/ogrspatialreference.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: OGRSpatialReference::Private::Listener::notifyChange(OGR_SRSNode
      *)
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - nodesChanged
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::Listener::notifyChange(OGR_SRSNode
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:212,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: GetDefaultAxisMappingStrategy
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: OSRAxisMappingStrategy
    signature: OSRAxisMappingStrategy GetDefaultAxisMappingStrategy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<Listener>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:226,1
    - Dst: Listener::Listener
      Src: /src/gdal/ogr/ogrspatialreference.cpp:226,1
    - Dst: GetDefaultAxisMappingStrategy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSelf
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: OGRSpatialReference::Private::Private(OGRSpatialReference *poSelf)
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - GetDefaultAxisMappingStrategy
    - Listener::Listener
    - std::shared_ptr<Listener>
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::Private(OGRSpatialReference *poSelf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:238,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:240,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:241,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:243,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:244,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:246,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:247,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:249,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:250,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:252,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:253,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:255,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 260
    functionName: OGRSpatialReference::Private::~Private()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - proj_assign_context
    - proj_destroy
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::~Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:264,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:264,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:265,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:272,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:273,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:277,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:278,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 262
    functionDepth: 5
    functionLinenumber: 262
    functionLinenumberEnd: 291
    functionName: OGRSpatialReference::Private::clear()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - proj_assign_context
    - proj_destroy
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterListener
      Src: /src/gdal/ogr/ogrspatialreference.cpp:298,1
    - Dst: nodesChanged
      Src: /src/gdal/ogr/ogrspatialreference.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poRoot
    argTypes:
    - OGR_SRSNode*
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: OGRSpatialReference::Private::setRoot(OGR_SRSNode *poRoot)
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - RegisterListener
    - nodesChanged
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::setRoot(OGR_SRSNode *poRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:306,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:308,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:309,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrspatialreference.cpp:313,1
    - Dst: SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrspatialreference.cpp:315,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:317,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:318,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:323,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:324,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:328,1
    - Dst: invalidateNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:334,1
    - Dst: refreshAxisMapping
      Src: /src/gdal/ogr/ogrspatialreference.cpp:337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pj_crsIn
    - doRefreshAxisMapping
    argTypes:
    - PJ*
    - bool
    constantsTouched: []
    func_position:
      end: 339
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 339
    functionName: "OGRSpatialReference::Private::setPjCRS(PJ *pj_crsIn,\n                                            bool
      doRefreshAxisMapping)"
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_get_source_crs
    - PROJ_AT_LEAST_VERSION
    - proj_get_type
    - proj_destroy
    - invalidateNodes
    - std::isnan
    - getPROJContext
    - refreshAxisMapping
    - proj_assign_context
    - SetCoordinateEpoch
    linkageType: ''
    returnType: void
    signature: "void OGRSpatialReference::Private::setPjCRS(PJ *pj_crsIn,\n                                            bool
      doRefreshAxisMapping)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:346,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:350,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:352,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:363,1
    - Dst: proj_create_from_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:363,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:363,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrspatialreference.cpp:367,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrspatialreference.cpp:371,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:373,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:374,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:376,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 381
    functionName: OGRSpatialReference::Private::refreshProjObj()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - setPjCRS
    - getPROJContext
    - strstr
    - push_back
    - exportToWkt
    - proj_string_list_destroy
    - proj_create_from_wkt
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::refreshProjObj()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:385,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrspatialreference.cpp:389,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:392,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:393,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:395,1
    - Dst: proj_as_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:400,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:400,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:402,1
    - Dst: proj_as_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:407,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:407,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:408,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:413,1
    - Dst: setRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:414,1
    - Dst: auto::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 419
    functionName: OGRSpatialReference::Private::refreshRootFromProjObj()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - auto::importFromWkt
    - setRoot
    - getPROJContext
    - CPLAssert
    - proj_as_wkt
    - CPLStringList::SetNameValue
    - OGR_SRSNode::OGR_SRSNode
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::refreshRootFromProjObj()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:425,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:429,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:438,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:438,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:439,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - cs
    argTypes:
    - PJ_CONTEXT*
    - PJ*
    constantsTouched: []
    func_position:
      end: 445
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 445
    functionName: isNorthEastAxisOrder
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - STARTS_WITH_CI
    - proj_cs_get_axis_info
    linkageType: ''
    returnType: bool
    signature: bool isNorthEastAxisOrder(PJ_CONTEXT *ctx, PJ *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:456,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:458,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:467,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:468,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:470,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:473,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:478,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:481,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:483,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:486,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:491,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:494,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:495,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:497,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:508,1
    - Dst: isNorthEastAxisOrder
      Src: /src/gdal/ogr/ogrspatialreference.cpp:515,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:517,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:522,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:526,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrspatialreference.cpp:529,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 547
    functionName: OGRSpatialReference::Private::refreshAxisMapping()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - proj_cs_get_axis_count
    - demoteFromBoundCRS
    - isNorthEastAxisOrder
    - getPROJContext
    - proj_crs_get_sub_crs
    - resize
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::refreshAxisMapping()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: OGRSpatialReference::Private::nodesChanged()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::nodesChanged()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: OGRSpatialReference::Private::invalidateNodes()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::invalidateNodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invalidateNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: OGRSpatialReference::Private::setMorphToESRI(bool b)
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - invalidateNodes
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::setMorphToESRI(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:569,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:570,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:571,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:572,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:578,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:578,1
    - Dst: proj_get_target_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:579,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:579,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:581,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:581,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 589
    functionName: OGRSpatialReference::Private::demoteFromBoundCRS()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_get_source_crs
    - proj_get_type
    - getPROJContext
    - CPLAssert
    - proj_crs_get_coordoperation
    - proj_get_target_crs
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::demoteFromBoundCRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:595,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:596,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:599,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:601,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:608,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:610,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:610,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:610,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:619,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 624
    functionName: OGRSpatialReference::Private::undoDemoteFromBoundCRS()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_get_type
    - proj_destroy
    - proj_crs_create_bound_crs
    - setPjCRS
    - getPROJContext
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Private::undoDemoteFromBoundCRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:639,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:644,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:649,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:653,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - pszTargetKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 656
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 656
    functionName: "*OGRSpatialReference::Private::nullifyTargetKeyIfPossible(\n    const
      char *pszTargetKey)"
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - demoteFromBoundCRS
    - undoDemoteFromBoundCRS
    linkageType: ''
    returnType: char
    signature: "char *OGRSpatialReference::Private::nullifyTargetKeyIfPossible(\n
      \   const char *pszTargetKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:666,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:669,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:670,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:671,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:675,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:676,1
    - Dst: proj_create_ellipsoidal_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:677,1
    - Dst: proj_create_geographic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:679,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:682,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 686
    functionName: '*OGRSpatialReference::Private::getGeodBaseCRS()'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_create_ellipsoidal_2D_cs
    - CPLAtof
    - proj_destroy
    - getPROJContext
    - proj_assign_context
    - proj_create_geographic_crs
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: PJ
    signature: PJ *OGRSpatialReference::Private::getGeodBaseCRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:690,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:693,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:694,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:696,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:696,1
    - Dst: proj_assign_context
      Src: /src/gdal/ogr/ogrspatialreference.cpp:700,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:701,1
    - Dst: proj_create_cartesian_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 688
    functionDepth: 5
    functionLinenumber: 688
    functionLinenumberEnd: 705
    functionName: '*OGRSpatialReference::Private::getProjCRSCoordSys()'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_destroy
    - proj_create_cartesian_2D_cs
    - getPROJContext
    - proj_assign_context
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: PJ
    signature: PJ *OGRSpatialReference::Private::getProjCRSCoordSys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 715
    functionName: '*OGRSpatialReference::Private::getProjCRSName()'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_get_name
    linkageType: ''
    returnType: char
    signature: char *OGRSpatialReference::Private::getProjCRSName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:719,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:721,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:724,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:724,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:724,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:725,1
    - Dst: getProjCRSCoordSys
      Src: /src/gdal/ogr/ogrspatialreference.cpp:725,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:726,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:728,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - conv
    argTypes:
    - PJ*
    constantsTouched: []
    func_position:
      end: 732
      start: 717
    functionDepth: 5
    functionLinenumber: 717
    functionLinenumberEnd: 732
    functionName: OGRSpatialReference::Private::replaceConversionAndUnref(PJ *conv)
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - getProjCRSCoordSys
    - setPjCRS
    - getPROJContext
    - refreshProjObj
    - getGeodBaseCRS
    - getProjCRSName
    - proj_create_projected_crs
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::Private::replaceConversionAndUnref(PJ *conv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: ToPointer
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 30
    functionsReached:
    - FromHandle
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *ToPointer(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 750
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 750
    functionName: ToHandle
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 87
    functionsReached:
    - ToHandle
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH ToHandle(OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:761,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrspatialreference.cpp:767,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrspatialreference.cpp:768,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:770,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - pszStrBuf
    - size
    - dfValue
    argTypes:
    - char*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 779
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 779
    functionName: OGRsnPrintDouble
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - CPLsnprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void OGRsnPrintDouble(char *pszStrBuf, size_t size, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrspatialreference.cpp:818,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pszWKT
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 822
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 822
    functionName: OGRSpatialReference::OGRSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 14
    functionsReached:
    - OGRSpatialReference::importFromWkt
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::OGRSpatialReference(const char *pszWKT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:849,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:851,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:853,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszWKT
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 861
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 861
    functionName: CPL_STDCALL::OSRNewSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::importFromWkt
    - OGRSpatialReference::OGRSpatialReference
    - strlen
    - ToHandle
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH CPL_STDCALL OSRNewSpatialReference(const char
      *pszWKT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrspatialreference.cpp:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: OGRSpatialReference::OGRSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 15
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::OGRSpatialReference(const OGRSpatialReference
      &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrspatialreference.cpp:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: OGRSpatialReference::OGRSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 15
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::OGRSpatialReference(OGRSpatialReference &&oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 904
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 904
    functionName: OGRSpatialReference::~OGRSpatialReference()
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::~OGRSpatialReference()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 928
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 928
    functionName: OGRSpatialReference::DestroySpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::DestroySpatialReference(OGRSpatialReference
      *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: CPL_STDCALL::OSRDestroySpatialReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    linkageType: ''
    returnType: void
    signature: void CPL_STDCALL OSRDestroySpatialReference(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 963
    functionName: OGRSpatialReference::Clear
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:979,1
    - Dst: OGRSpatialReference::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:985,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:987,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:987,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:987,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:989,1
    - Dst: SetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrspatialreference.cpp:991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - oSource
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 997
      start: 973
    functionDepth: 5
    functionLinenumber: 973
    functionLinenumberEnd: 997
    functionName: '&

      OGRSpatialReference::operator=(const OGRSpatialReference &oSource)'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - SetDataAxisToSRSAxisMapping
    - Clear
    - setPjCRS
    - OGRSpatialReference::d::refreshProjObj
    - proj_clone
    - getPROJContext
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: OGRSpatialReference
    signature: 'OGRSpatialReference &

      OGRSpatialReference::operator=(const OGRSpatialReference &oSource)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - oSource
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 1017
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1017
    functionName: '&

      OGRSpatialReference::operator=(OGRSpatialReference &&oSource)'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: OGRSpatialReference
    signature: 'OGRSpatialReference &

      OGRSpatialReference::operator=(OGRSpatialReference &&oSource)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetThreadSafe
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oSource
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    functionName: '&

      OGRSpatialReference::AssignAndSetThreadSafe(const OGRSpatialReference &oSource)'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - SetThreadSafe
    linkageType: ''
    returnType: OGRSpatialReference
    signature: 'OGRSpatialReference &

      OGRSpatialReference::AssignAndSetThreadSafe(const OGRSpatialReference &oSource)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtomicInc
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1060
    functionName: OGRSpatialReference::Reference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLAtomicInc
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::Reference()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1074,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1077
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1077
    functionName: OSRReference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRReference(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1095,1
    - Dst: CPLAtomicDec
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: OGRSpatialReference::Dereference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLAtomicDec
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::Dereference()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1114,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1117
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1117
    functionName: OSRDereference
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRDereference(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1131
    functionName: OGRSpatialReference::GetReferenceCount
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::GetReferenceCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::Dereference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    functionName: OGRSpatialReference::Release
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::Dereference
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1162,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1165
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1165
    functionName: OSRRelease
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - ToPointer
    linkageType: ''
    returnType: void
    signature: void OSRRelease(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1169,1
    - Dst: refreshRootFromProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1176
    functionName: OGRSpatialReference::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - refreshRootFromProjObj
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGRSpatialReference::GetRoot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1180,1
    - Dst: refreshRootFromProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1187
    functionName: OGRSpatialReference::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - refreshRootFromProjObj
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGRSpatialReference::GetRoot() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poNewRoot
    argTypes:
    - OGR_SRSNode*
    constantsTouched: []
    func_position:
      end: 1211
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1211
    functionName: OGRSpatialReference::SetRoot
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - setRoot
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::SetRoot(OGR_SRSNode *poNewRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1238,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1241,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1243,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1250,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1252,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1256,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1259,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pszNodePath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1265
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1265
    functionName: OGRSpatialReference::GetAttrNode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - OGR_SRSNode*::GetNode
    - OGRSpatialReference::GetRoot
    - CSLDestroy
    - strchr
    - CSLCount
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGRSpatialReference::GetAttrNode(const char *pszNodePath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszNodePath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1293
    functionName: OGRSpatialReference::GetAttrNode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: OGR_SRSNode
    signature: 'OGR_SRSNode *

      OGRSpatialReference::GetAttrNode(const char *pszNodePath) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1319,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1322,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1324,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1326,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1328,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1330,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1332,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1337,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1340,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - pszNodeName
    - iAttr
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1341
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1341
    functionName: OGRSpatialReference::GetAttrValue
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - EQUAL
    - OGRSpatialReference::GetAttrValue
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    linkageType: ''
    returnType: char
    signature: "char *OGRSpatialReference::GetAttrValue(const char *pszNodeName,\n
      \                                             int iAttr) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1356,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszKey
    - iChild
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1359
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1359
    functionName: CPL_STDCALL::OSRGetAttrValue
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: "char *CPL_STDCALL OSRGetAttrValue(OGRSpatialReferenceH hSRS,\n                                        const
      char *pszKey, int iChild)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1376,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1378,1
    - Dst: PROJ_COMPUTE_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1383,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1386,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1386,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1389,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1374
    functionDepth: 5
    functionLinenumber: 1374
    functionLinenumberEnd: 1397
    functionName: OGRSpatialReference::GetName
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - proj_destroy
    - EQUAL
    - getPROJContext
    - refreshProjObj
    - PROJ_COMPUTE_VERSION
    - proj_get_name
    linkageType: ''
    returnType: char
    signature: char *OGRSpatialReference::GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1414,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: OSRGetName
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OSRGetName(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1434,1
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1436,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1438,1
    - Dst: OGRSpatialReference*::d::setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1440,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1440,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1440,1
    - Dst: OGRSpatialReference*::d::setRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1443,1
    - Dst: m_poRoot::Clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1431
    functionDepth: 5
    functionLinenumber: 1431
    functionLinenumberEnd: 1449
    functionName: OGRSpatialReference::Clone
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::OGRSpatialReference
    - proj_clone
    - getPROJContext
    - OGRSpatialReference*::d::setPjCRS
    - m_poRoot::Clone
    - refreshProjObj
    - OGRSpatialReference*::d::setRoot
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSpatialReference::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1463,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1465,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 1466
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1466
    functionName: CPL_STDCALL::OSRClone
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH CPL_STDCALL OSRClone(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1480,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1481,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1483
    functionName: OGRSpatialReference::dumpReadable
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - printf
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::dumpReadable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1516,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1517,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1520,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1522,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ppszResult
    - bSimplify
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1523
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1523
    functionName: OGRSpatialReference::exportToPrettyWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - CPLStringList::CPLStringList
    - CPLStringList::SetNameValue
    - CPLStringList::List
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToPrettyWkt(char **ppszResult,\n
      \                                             int bSimplify) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1544,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSRS
    - ppszReturn
    - bSimplify
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1549
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1549
    functionName: CPL_STDCALL::OSRExportToPrettyWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr CPL_STDCALL OSRExportToPrettyWkt(OGRSpatialReferenceH hSRS,\n
      \                                       char **ppszReturn, int bSimplify)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszResult
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1579
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1579
    functionName: OGRSpatialReference::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - OGRSpatialReference::exportToWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::exportToWkt(char **ppszResult) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1590,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1592,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1593,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1594,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1596,1
    - Dst: proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1600,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1601,1
    - Dst: proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1603,1
    - Dst: proj_create_compound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1606,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1606,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1609,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1610,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1612,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1613,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1615,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1616,1
    - Dst: proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1618,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - pj
    - onlyIfEPSGCode
    - canModifyHorizPart
    argTypes:
    - PJ_CONTEXT*
    - PJ*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1621
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1621
    functionName: GDAL_proj_crs_create_bound_crs_to_WGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_crs_create_bound_crs_to_WGS84
    - proj_get_type
    - proj_destroy
    - proj_clone
    - proj_crs_get_sub_crs
    - proj_get_id_auth_name
    - proj_create_compound_crs
    - proj_get_name
    linkageType: ''
    returnType: PJ
    signature: "PJ *GDAL_proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, PJ *pj,\n
      \                                                  bool onlyIfEPSGCode,\n                                                   bool
      canModifyHorizPart)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1675,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1678,1
    - Dst: m_poRoot::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1684,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1687,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1692,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1695,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1699,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1699,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1700,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1700,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1704,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1708,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1708,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1709,1
    - Dst: OGRSpatialReference::IsDerivedGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1716,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1720,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1720,1
    - Dst: OGRSpatialReference::IsCompound
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1720,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1721,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1728,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1729,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1733,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1736,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1738,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1739,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1745,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1751,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1751,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1753,1
    - Dst: GDAL_proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1755,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1756,1
    - Dst: CPLErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1762,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1763,1
    - Dst: proj_as_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1764,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1765,1
    - Dst: CPLErrorAccumulator::GetErrors
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1767,1
    - Dst: msg::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1770,1
    - Dst: msg::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1772,1
    - Dst: msg::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1774,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1777,1
    - Dst: proj_as_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1779,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1780,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1783,1
    - Dst: msg::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1783,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1788,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1789,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1793,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1793,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1795,1
    - Dst: OGR_SRSNode::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1796,1
    - Dst: OGR_SRSNode::StripNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1797,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1798,1
    - Dst: OGR_SRSNode::StripNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1800,1
    - Dst: OGR_SRSNode::StripNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1802,1
    - Dst: OGR_SRSNode::StripNodes
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1803,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1805,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1805,1
    - Dst: OGR_SRSNode::exportToPrettyWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1806,1
    - Dst: OGR_SRSNode::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1808,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1809,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1813,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1815,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1823,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1847,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1849,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1849,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1852,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1853,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1879,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 116
    argCount: 2
    argNames:
    - ppszResult
    - papszOptions
    argTypes:
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1881
      start: 1667
    functionDepth: 5
    functionLinenumber: 1667
    functionLinenumberEnd: 1881
    functionName: OGRSpatialReference::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - m_poRoot::exportToWkt
    - CPLErrorAccumulator::GetErrors
    - getPROJContext
    - GDAL_proj_crs_create_bound_crs_to_WGS84
    - CPLError
    - CPLGetConfigOption
    - CPLStringList::CPLStringList
    - OGRSpatialReference::IsProjected
    - CPLStringList::List
    - CPLErrorReset
    - CPLStrdup
    - OGRSpatialReference::IsDerivedGeographic
    - PROJ_AT_LEAST_VERSION
    - strlen
    - OGR_SRSNode::StripNodes
    - OGRSpatialReference::IsGeographic
    - OGR_SRSNode::exportToPrettyWkt
    - CPLTestBool
    - STARTS_WITH_CI
    - proj_destroy
    - OGR_SRSNode::importFromWkt
    - OGRSpatialReference::IsCompound
    - CPLSPrintf
    - msg::find
    - CPLAssert
    - CPLErrorAccumulator::InstallForCurrentScope
    - refreshProjObj
    - CPLStringList::SetNameValue
    - CPL_IGNORE_RET_VAL
    - proj_as_wkt
    - msg::c_str
    - OGRSpatialReference::GetAxesCount
    - CSLFetchNameValueDef
    - EQUAL
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode::exportToWkt
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToWkt(char **ppszResult,\n                                        const
      char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1928,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1932
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1932
    functionName: OGRSpatialReference::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string OGRSpatialReference::exportToWkt(const char *const *papszOptions)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1954,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS
    - ppszReturn
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 1959
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1959
    functionName: CPL_STDCALL::OSRExportToWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPL_STDCALL OSRExportToWkt(OGRSpatialReferenceH hSRS, char **ppszReturn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1977,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSRS
    - ppszReturn
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1982
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1982
    functionName: OSRExportToWktEx
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToWktEx(OGRSpatialReferenceH hSRS, char **ppszReturn,\n
      \                       const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2012,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2014,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2026,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2030,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2032,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2039,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2062,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2073,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2074,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 2
    argNames:
    - ppszResult
    - papszOptions
    argTypes:
    - char**
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 2101
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2101
    functionName: OGRSpatialReference::exportToPROJJSON
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - PROJ_AT_LEAST_VERSION
    - CPLStrdup
    - CPLAssert
    - strlen
    - refreshProjObj
    - STARTS_WITH
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::exportToPROJJSON(\n    char **ppszResult,
      CPL_UNUSED const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2118,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSRS
    - ppszReturn
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 2123
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2123
    functionName: OSRExportToPROJJSON
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRExportToPROJJSON(OGRSpatialReferenceH hSRS, char **ppszReturn,\n
      \                          const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2160
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2160
    functionName: OGRSpatialReference::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - OGRSpatialReference::importFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszInput
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2173
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2173
    functionName: OGRSpatialReference::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - OGRSpatialReference::importFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromWkt(const char *pszInput,\n
      \                                         CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2179,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2184,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2185,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2185,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2187,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2194,1
    - Dst: OSRGetProjTLSCache
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2197,1
    - Dst: auto::GetPJForWKT
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2202,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2205,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2210,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2211,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2214,1
    - Dst: proj_create_from_wkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2215,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2215,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2217,1
    - Dst: m_wktImportWarnings::push_back
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2221,1
    - Dst: m_wktImportErrors::push_back
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2228,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2235,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2236,1
    - Dst: proj_is_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2243,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2245,1
    - Dst: auto::CachePJForWKT
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2251,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2254,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2256,1
    - Dst: setRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2257,1
    - Dst: auto::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2259,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2265,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2276,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2276,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2280,1
    - Dst: auto::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2281,1
    - Dst: OGR_SRSNode*::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2282,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - ppszInput
    - papszOptions
    argTypes:
    - char**
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2285
      start: 2175
    functionDepth: 5
    functionLinenumber: 2175
    functionLinenumberEnd: 2285
    functionName: OGRSpatialReference::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - auto::importFromWkt
    - auto::GetPJForWKT
    - getPROJContext
    - CPLError
    - CPLGetConfigOption
    - CPLStringList::List
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - proj_is_crs
    - setRoot
    - OSRGetProjTLSCache
    - strlen
    - proj_string_list_destroy
    - auto::AddChild
    - CPLTestBool
    - OGRSpatialReference::Clear
    - CPLStringList::SetNameValue
    - strstr
    - CPLStringList::FetchNameValue
    - m_wktImportErrors::push_back
    - OGR_SRSNode*::importFromWkt
    - auto::CachePJForWKT
    - OGR_SRSNode::OGR_SRSNode
    - proj_create_from_wkt
    - m_wktImportWarnings::push_back
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromWkt(const char **ppszInput,\n
      \                                         CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2315,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2316
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2316
    functionName: OGRSpatialReference::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 8
    functionsReached:
    - const_cast<const char **>
    - OGRSpatialReference::importFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromWkt(char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2340
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2340
    functionName: OGRSpatialReference::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 9
    functionsReached:
    - OGRSpatialReference::importFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromWkt(const char *pszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2364,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2368,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2368,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2372,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2372,1
    - Dst: m_wktImportErrors::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2374,1
    - Dst: m_wktImportWarnings::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2383
    functionName: OGRSpatialReference::Validate
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - m_wktImportErrors::empty
    - c_str
    - CPLDebug
    - m_wktImportWarnings::empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::Validate() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2396,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 2399
      start: 2393
    functionDepth: 0
    functionLinenumber: 2393
    functionLinenumberEnd: 2399
    functionName: OSRValidate
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRValidate(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2417,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2419,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - ppszInput
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 2420
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2420
    functionName: OSRImportFromWkt
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRImportFromWkt(OGRSpatialReferenceH hSRS, char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2449,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2454,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2456,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2460,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2461,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2461,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2463,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2464,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2466,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2467,1
    - Dst: OGRSpatialReference::SetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2471,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2471,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2475,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2482,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2482,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2484,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2492,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2493,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2498,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2502,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2503,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2505,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2505,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - pszNodePath
    - pszNewNodeValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2508
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2508
    functionName: OGRSpatialReference::SetNode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - OGR_SRSNode*::AddChild
    - OGRSpatialReference::GetRoot
    - OGRSpatialReference::SetRoot
    - CSLDestroy
    - EQUAL
    - OGRSpatialReference::SetProjCS
    - OGR_SRSNode::OGR_SRSNode
    - CSLCount
    - OGR_SRSNode*::GetChild
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetNode(const char *pszNodePath,\n                                    const
      char *pszNewNodeValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2523,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszPath
    - pszValue
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2526
      start: 2519
    functionDepth: 0
    functionLinenumber: 2519
    functionLinenumberEnd: 2526
    functionName: CPL_STDCALL::OSRSetAttrValue
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr CPL_STDCALL OSRSetAttrValue(OGRSpatialReferenceH hSRS,\n                                   const
      char *pszPath, const char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2554,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2554,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2555,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2555,1
    - Dst: OGRsnPrintDouble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2557,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszNodePath
    - dfValue
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2560
      start: 2549
    functionDepth: 2
    functionLinenumber: 2549
    functionLinenumberEnd: 2560
    functionName: OGRSpatialReference::SetNode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - OGRsnPrintDouble
    - OGRSpatialReference::SetNode
    - std::abs
    - snprintf
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetNode(const char *pszNodePath, double
      dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2588,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2592,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2595,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2595,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2598,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2599,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2600,1
    - Dst: proj_crs_alter_cs_angular_unit
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2600,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2600,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - pszUnitsName
    - dfInRadians
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2609
      start: 2584
    functionDepth: 5
    functionLinenumber: 2584
    functionLinenumberEnd: 2609
    functionName: OGRSpatialReference::SetAngularUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - setPjCRS
    - proj_crs_alter_cs_angular_unit
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetAngularUnits(const char *pszUnitsName,\n
      \                                           double dfInRadians)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2624,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszUnits
    - dfInRadians
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2627
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2627
    functionName: OSRSetAngularUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetAngularUnits(OGRSpatialReferenceH hSRS, const char *pszUnits,\n
      \                         double dfInRadians)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2655,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2657,1
    - Dst: m_osAngularUnits::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2659,1
    - Dst: m_osAngularUnits::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2662,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2674,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2674,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2680,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2680,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2681,1
    - Dst: proj_cs_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2686,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2686,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2689,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2695,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2695,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2699,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2705,1
    - Dst: m_osAngularUnits::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2709,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2712,1
    - Dst: m_osAngularUnits::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2716,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2718
      start: 2652
    functionDepth: 5
    functionLinenumber: 2652
    functionLinenumberEnd: 2718
    functionName: OGRSpatialReference::GetAngularUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - m_osAngularUnits::empty
    - proj_destroy
    - m_osAngularUnits::c_str
    - proj_cs_get_type
    - getPROJContext
    - refreshProjObj
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetAngularUnits(const char **ppszName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2742,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2743
      start: 2739
    functionDepth: 1
    functionLinenumber: 2739
    functionLinenumberEnd: 2743
    functionName: OGRSpatialReference::GetAngularUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - OGRSpatialReference::GetAngularUnits
    - const_cast<const char **>
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetAngularUnits(char **ppszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2757,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2759,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - ppszName
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 2761
      start: 2754
    functionDepth: 0
    functionLinenumber: 2754
    functionLinenumberEnd: 2761
    functionName: OSRGetAngularUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetAngularUnits(OGRSpatialReferenceH hSRS, char **ppszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2795,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2800,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2804,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2807,1
    - Dst: proj_crs_alter_parameters_linear_unit
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2807,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2808,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2811,1
    - Dst: proj_crs_alter_cs_linear_unit
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2811,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2811,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - pszName
    - dfInMeters
    - pszUnitAuthority
    - pszUnitCode
    argTypes:
    - char*
    - double
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2820
      start: 2790
    functionDepth: 5
    functionLinenumber: 2790
    functionLinenumberEnd: 2820
    functionName: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - proj_crs_alter_cs_linear_unit
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - demoteFromBoundCRS
    - setPjCRS
    - getPROJContext
    - proj_crs_alter_parameters_linear_unit
    - refreshProjObj
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLinearUnitsAndUpdateParameters(\n    const
      char *pszName, double dfInMeters, const char *pszUnitAuthority,\n    const char
      *pszUnitCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2837,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszUnits
    - dfInMeters
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2842
      start: 2832
    functionDepth: 0
    functionLinenumber: 2832
    functionLinenumberEnd: 2842
    functionName: OSRSetLinearUnitsAndUpdateParameters
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLinearUnitsAndUpdateParameters(OGRSpatialReferenceH hSRS,\n
      \                                           const char *pszUnits,\n                                            double
      dfInMeters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszUnitsName
    - dfInMeters
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2873
      start: 2868
    functionDepth: 1
    functionLinenumber: 2868
    functionLinenumberEnd: 2873
    functionName: OGRSpatialReference::SetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - OGRSpatialReference::SetTargetLinearUnits
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLinearUnits(const char *pszUnitsName,\n
      \                                          double dfInMeters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2888,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszUnits
    - dfInMeters
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 2891
      start: 2884
    functionDepth: 0
    functionLinenumber: 2884
    functionLinenumberEnd: 2891
    functionName: OSRSetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLinearUnits(OGRSpatialReferenceH hSRS, const char *pszUnits,\n
      \                        double dfInMeters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2932,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2937,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2938,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2944,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2947,1
    - Dst: proj_crs_alter_parameters_linear_unit
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2947,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2948,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2951,1
    - Dst: proj_crs_alter_cs_linear_unit
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2951,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2952,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2954,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2962,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2968,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2969,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2970,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2971,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2971,1
    - Dst: OGRsnPrintDouble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2973,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2976,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2978,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2978,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2979,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2981,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2982,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2983,1
    - Dst: OGR_SRSNode*::DestroyChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2984,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2984,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2988,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2989,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2989,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2990,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2990,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:2992,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - pszTargetKey
    - pszUnitsName
    - dfInMeters
    - pszUnitAuthority
    - pszUnitCode
    argTypes:
    - char*
    - char*
    - double
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2996
      start: 2925
    functionDepth: 5
    functionLinenumber: 2925
    functionLinenumberEnd: 2996
    functionName: OGRSpatialReference::SetTargetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - OGR_SRSNode*::AddChild
    - OGRsnPrintDouble
    - demoteFromBoundCRS
    - OGR_SRSNode*::DestroyChild
    - getPROJContext
    - nullifyTargetKeyIfPossible
    - OGRSpatialReference::GetAttrNode
    - simple_max
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - simple_min
    - proj_crs_alter_cs_linear_unit
    - static_cast<int>
    - snprintf
    - refreshProjObj
    - undoDemoteFromBoundCRS
    - OGR_SRSNode::OGR_SRSNode
    - proj_crs_alter_parameters_linear_unit
    - OGR_SRSNode*::FindChild
    - OGR_SRSNode*::GetChild
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTargetLinearUnits(const char *pszTargetKey,\n
      \                                                const char *pszUnitsName,\n
      \                                                double dfInMeters,\n                                                 const
      char *pszUnitAuthority,\n                                                 const
      char *pszUnitCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3014,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszTargetKey
    - pszUnits
    - dfInMeters
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 3018
      start: 3009
    functionDepth: 0
    functionLinenumber: 3009
    functionLinenumberEnd: 3018
    functionName: OSRSetTargetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTargetLinearUnits(OGRSpatialReferenceH hSRS,\n                               const
      char *pszTargetKey, const char *pszUnits,\n                               double
      dfInMeters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3047,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3048
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3048
    functionName: OGRSpatialReference::GetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - const_cast<const char **>
    - OGRSpatialReference::GetTargetLinearUnits
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetLinearUnits(char **ppszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3073
      start: 3069
    functionDepth: 1
    functionLinenumber: 3069
    functionLinenumberEnd: 3073
    functionName: OGRSpatialReference::GetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - OGRSpatialReference::GetTargetLinearUnits
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetLinearUnits(const char **ppszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3087,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3089,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - ppszName
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 3090
      start: 3084
    functionDepth: 0
    functionLinenumber: 3084
    functionLinenumberEnd: 3090
    functionName: OSRGetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetLinearUnits(OGRSpatialReferenceH hSRS, char **ppszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3123,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3125,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3127,1
    - Dst: m_osLinearUnits::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3131,1
    - Dst: m_osLinearUnits::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3134,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3145,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3151,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3151,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3153,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3156,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3156,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3157,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3161,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3162,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3163,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3165,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3166,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3167,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3172,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3177,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3183,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3183,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3187,1
    - Dst: proj_cs_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3192,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3192,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3199,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3217,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3224,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3224,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3228,1
    - Dst: m_osLinearUnits::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3235,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3237,1
    - Dst: m_osLinearUnits::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3245,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3249,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3257,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3261,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3261,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3261,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3264,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3266,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3266,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 82
    argCount: 2
    argNames:
    - pszTargetKey
    - ppszName
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 3271
      start: 3119
    functionDepth: 5
    functionLinenumber: 3119
    functionLinenumberEnd: 3271
    functionName: OGRSpatialReference::GetTargetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - demoteFromBoundCRS
    - m_osLinearUnits::c_str
    - getPROJContext
    - m_osLinearUnits::empty
    - nullifyTargetKeyIfPossible
    - OGRSpatialReference::GetAttrNode
    - TAKE_OPTIONAL_LOCK
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - CPLAtof
    - proj_get_source_crs
    - proj_get_type
    - proj_destroy
    - refreshProjObj
    - OGR_SRSNode*::GetValue
    - undoDemoteFromBoundCRS
    - proj_cs_get_type
    - EQUAL
    - proj_crs_get_sub_crs
    - OGR_SRSNode*::GetChild
    linkageType: ''
    returnType: double
    signature: "double OGRSpatialReference::GetTargetLinearUnits(const char *pszTargetKey,\n
      \                                                const char **ppszName) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3298,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszTargetKey
    - ppszName
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 3300
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3300
    functionName: OGRSpatialReference::GetTargetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - const_cast<const char **>
    - OGRSpatialReference::GetTargetLinearUnits
    linkageType: ''
    returnType: double
    signature: "double OGRSpatialReference::GetTargetLinearUnits(const char *pszTargetKey,\n
      \                                                char **ppszName) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3317,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3319,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszTargetKey
    - ppszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 3321
      start: 3313
    functionDepth: 0
    functionLinenumber: 3313
    functionLinenumberEnd: 3321
    functionName: OSRGetTargetLinearUnits
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OSRGetTargetLinearUnits(OGRSpatialReferenceH hSRS,\n                               const
      char *pszTargetKey, char **ppszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3352,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3354,1
    - Dst: m_osPrimeMeridianName::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3356,1
    - Dst: m_osPrimeMeridianName::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3359,1
    - Dst: proj_get_prime_meridian
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3368,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3368,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3372,1
    - Dst: m_osPrimeMeridianName::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3374,1
    - Dst: proj_prime_meridian_get_parameters
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3377,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3378,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3379,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3381,1
    - Dst: m_osPrimeMeridianName::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3390
      start: 3349
    functionDepth: 5
    functionLinenumber: 3349
    functionLinenumberEnd: 3390
    functionName: OGRSpatialReference::GetPrimeMeridian
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - m_osPrimeMeridianName::empty
    - proj_destroy
    - m_osPrimeMeridianName::c_str
    - getPROJContext
    - refreshProjObj
    - proj_get_prime_meridian
    - proj_get_name
    - proj_prime_meridian_get_parameters
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetPrimeMeridian(const char **ppszName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetPrimeMeridian
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3417,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszName
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3418
      start: 3414
    functionDepth: 1
    functionLinenumber: 3414
    functionLinenumberEnd: 3418
    functionName: OGRSpatialReference::GetPrimeMeridian
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - const_cast<const char **>
    - OGRSpatialReference::GetPrimeMeridian
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetPrimeMeridian(char **ppszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3432,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3434,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - ppszName
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 3436
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3436
    functionName: OSRGetPrimeMeridian
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetPrimeMeridian(OGRSpatialReferenceH hSRS, char **ppszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3491,1
    - Dst: m_osAngularUnits::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3494,1
    - Dst: m_osPrimeMeridianName::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3496,1
    - Dst: OGRSpatialReference::IsGeocentric
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3505,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3507,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3509,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3512,1
    - Dst: proj_create_ellipsoidal_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3515,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3516,1
    - Dst: proj_create_geographic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3519,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3520,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3522,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3527,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3531,1
    - Dst: proj_crs_alter_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3532,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3532,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3533,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 9
    argNames:
    - pszGeogName
    - pszDatumName
    - pszSpheroidName
    - dfSemiMajor
    - dfInvFlattening
    - pszPMName
    - dfPMOffset
    - pszAngularUnits
    - dfConvertToRadians
    argTypes:
    - char*
    - char*
    - char*
    - double
    - double
    - char*
    - double
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 3541
      start: 3484
    functionDepth: 5
    functionLinenumber: 3484
    functionLinenumberEnd: 3541
    functionName: OGRSpatialReference::SetGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - proj_create_ellipsoidal_2D_cs
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::OGRSpatialReference
    - proj_crs_alter_geodetic_crs
    - m_osPrimeMeridianName::clear
    - OGRSpatialReference::SetGeogCS
    - proj_destroy
    - setPjCRS
    - OGRSpatialReference::CopyGeogCSFrom
    - getPROJContext
    - proj_create_geographic_crs
    - m_osAngularUnits::clear
    - OGRSpatialReference::IsGeocentric
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGeogCS(\n    const char *pszGeogName,
      const char *pszDatumName,\n    const char *pszSpheroidName, double dfSemiMajor,
      double dfInvFlattening,\n    const char *pszPMName, double dfPMOffset, const
      char *pszAngularUnits,\n    double dfConvertToRadians)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3559,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - hSRS
    - pszGeogName
    - pszDatumName
    - pszSpheroidName
    - dfSemiMajor
    - dfInvFlattening
    - pszPMName
    - dfPMOffset
    - pszAngularUnits
    - dfConvertToRadians
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - char*
    - double
    - double
    - char*
    - double
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 3565
      start: 3552
    functionDepth: 0
    functionLinenumber: 3552
    functionLinenumberEnd: 3565
    functionName: OSRSetGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGeogCS(OGRSpatialReferenceH hSRS, const char *pszGeogName,\n
      \                   const char *pszDatumName, const char *pszSpheroidName,\n
      \                   double dfSemiMajor, double dfInvFlattening,\n                    const
      char *pszPMName, double dfPMOffset,\n                    const char *pszAngularUnits,
      double dfConvertToRadians)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3601,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3606,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3606,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3608,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3609,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3609,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3613,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3624,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3628,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3628,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3671,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3682,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3682,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3698,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3699,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3706,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3707
      start: 3598
    functionDepth: 2
    functionLinenumber: 3598
    functionLinenumberEnd: 3707
    functionName: OGRSpatialReference::SetWellKnownGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromWkt
    - atoi
    - OGRSpatialReference::CopyGeogCSFrom
    - EQUAL
    - OGRSpatialReference::IsGeographic
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetWellKnownGeogCS(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3721,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 3724
      start: 3718
    functionDepth: 0
    functionLinenumber: 3718
    functionLinenumberEnd: 3724
    functionName: OSRSetWellKnownGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetWellKnownGeogCS(OGRSpatialReferenceH hSRS, const char
      *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3745,1
    - Dst: m_osAngularUnits::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3748,1
    - Dst: m_osPrimeMeridianName::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3750,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3753,1
    - Dst: OGRSpatialReference*::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3754,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3760,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3760,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3772,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3772,1
    - Dst: proj_crs_get_datum_ensemble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3777,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3777,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3782,1
    - Dst: proj_create_geocentric_crs_from_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3789,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3790,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3790,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3792,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3794,1
    - Dst: proj_crs_alter_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3799,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3799,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3801,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3806,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3806,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3806,1
    - Dst: proj_get_target_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3813,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3813,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3814,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3814,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3816,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3816,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3816,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3818,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3819,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3822,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - poSrcSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3825
      start: 3742
    functionDepth: 5
    functionLinenumber: 3742
    functionLinenumberEnd: 3825
    functionName: OGRSpatialReference::CopyGeogCSFrom
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_geocentric_crs_from_datum
    - proj_crs_alter_geodetic_crs
    - m_osPrimeMeridianName::clear
    - proj_destroy
    - proj_crs_create_bound_crs
    - proj_crs_get_datum
    - setPjCRS
    - proj_clone
    - getPROJContext
    - refreshProjObj
    - proj_get_target_crs
    - proj_crs_get_coordoperation
    - m_osAngularUnits::clear
    - OGRSpatialReference*::d::refreshProjObj
    - proj_crs_get_datum_ensemble
    - proj_get_name
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::CopyGeogCSFrom(const OGRSpatialReference
      *poSrcSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3840,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3841,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3843,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS
    - hSrcSRS
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 3844
      start: 3836
    functionDepth: 0
    functionLinenumber: 3836
    functionLinenumberEnd: 3844
    functionName: OSRCopyGeogCSFrom
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRCopyGeogCSFrom(OGRSpatialReferenceH hSRS,\n                         const
      OGRSpatialReferenceH hSrcSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3860
    functionDepth: 0
    functionLinenumber: 3860
    functionLinenumberEnd: 3863
    functionName: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CSLConstList
    signature: CSLConstList OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3876,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3878,1
    - Dst: RemoveIDFromMemberOfEnsembles
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3880,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3883,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3884,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3886,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3888,1
    - Dst: Delete
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 3894
      start: 3870
    functionDepth: 1
    functionLinenumber: 3870
    functionLinenumberEnd: 3894
    functionName: RemoveIDFromMemberOfEnsembles
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetType
    - RemoveIDFromMemberOfEnsembles
    - CPLJSONObject::GetName
    - CPLJSONObject::GetChildren
    - Delete
    - GetType
    - CPLJSONObject::ToArray
    linkageType: ''
    returnType: void
    signature: void RemoveIDFromMemberOfEnsembles(CPLJSONObject &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszDefinition
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3942
      start: 3939
    functionDepth: 1
    functionLinenumber: 3939
    functionLinenumberEnd: 3942
    functionName: OGRSpatialReference::SetFromUserInput
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetFromUserInput(const char *pszDefinition)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3996,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3999,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:3999,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4002,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4019,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4021,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4026,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4030,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4030,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4035,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4035,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4040,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4041,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4047,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4047,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4053,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4054,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4055,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4056,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4057,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4058,1
    - Dst: OGRSpatialReference::importFromURN
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4059,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4061,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4062,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4063,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4064,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4065,1
    - Dst: OGRSpatialReference::importFromCRSURL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4066,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4068,1
    - Dst: OGRSpatialReference::importFromWMSAUTO
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4069,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4072,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4073,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4075,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4076,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4078,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4078,1
    - Dst: OGRSpatialReference::importFromDict
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4085,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4086,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4091,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4091,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4092,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4092,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4094,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4095,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4099,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4100,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4101,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4102,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4103,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4104,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4105,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4106,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4107,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4108,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4109,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4110,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4111,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4112,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4113,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4114,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4115,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4118,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4122,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4123,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4125,1
    - Dst: RemoveIDFromMemberOfEnsembles
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4126,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4127,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4127,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4127,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4131,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4131,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4137,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4138,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4142,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4143,1
    - Dst: OGRSpatialReference::importFromProj4
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4144,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4146,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4147,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4149,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4149,1
    - Dst: OGRSpatialReference::importFromUrl
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4151,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4153,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4159,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4161,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4165,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4170,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4173,1
    - Dst: proj_get_authorities_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4182,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4182,1
    - Dst: std::set::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4190,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4191,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4196,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4196,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4196,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4198,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4200,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4204,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4205,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4205,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4206,1
    - Dst: std::set::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4208,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4209,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4214,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4216,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4218,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4219,1
    - Dst: std::set::rbegin
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4220,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4226,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4227,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4236,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4237,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4240,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4243,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4254,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4261,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4265,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4270,1
    - Dst: OGRSpatialReference::importFromXML
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4282,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4283,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4284,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4285,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4286,1
    - Dst: OGRSpatialReference::importFromProj4
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4287,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4290,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4296,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4299,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 133
    argCount: 2
    argNames:
    - pszDefinition
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4302
      start: 3993
    functionDepth: 6
    functionLinenumber: 3993
    functionLinenumberEnd: 4302
    functionName: OGRSpatialReference::SetFromUserInput
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - atoi
    - std::set::insert
    - strncmp
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - getPROJContext
    - std::set::clear
    - CPLString
    - RemoveIDFromMemberOfEnsembles
    - CPLError
    - STARTS_WITH
    - VSIStatExL
    - TAKE_OPTIONAL_LOCK
    - static_cast<unsigned char>
    - isspace
    - setPjCRS
    - proj_create
    - CPLString::c_str
    - CPLString::size
    - strlen
    - proj_get_authorities_from_database
    - proj_string_list_destroy
    - OGRSpatialReference::importFromEPSG
    - CPLJSONDocument::LoadMemory
    - STARTS_WITH_CI
    - CPLJSONObject::ToString
    - CPLTestBool
    - OGRSpatialReference::SetFromUserInput
    - VSIFOpenL
    - OGRSpatialReference::importFromProj4
    - OGRSpatialReference::Clear
    - strstr
    - std::set::empty
    - CPLString::find
    - OGRSpatialReference::importFromUrl
    - CPLFree
    - std::set::rbegin
    - OGRSpatialReference::importFromWkt
    - OGRSpatialReference::importFromURN
    - VSIFCloseL
    - OGRSpatialReference::importFromDict
    - CSLFetchNameValueDef
    - OGRSpatialReference::importFromCRSURL
    - strchr
    - EQUAL
    - OGRSpatialReference::importFromWMSAUTO
    - CPLJSONDocument::CPLJSONDocument
    - OGRSpatialReference::importFromXML
    - OGRSpatialReference::SetWellKnownGeogCS
    - proj_create_from_database
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetFromUserInput(const char *pszDefinition,\n
      \                                            CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4319,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszDef
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 4322
      start: 4315
    functionDepth: 0
    functionLinenumber: 4315
    functionLinenumberEnd: 4322
    functionName: CPL_STDCALL::OSRSetFromUserInput
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr CPL_STDCALL OSRSetFromUserInput(OGRSpatialReferenceH hSRS,\n
      \                                      const char *pszDef)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4339,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszDef
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4342
      start: 4335
    functionDepth: 0
    functionLinenumber: 4335
    functionLinenumberEnd: 4342
    functionName: OSRSetFromUserInputEx
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetFromUserInputEx(OGRSpatialReferenceH hSRS, const char
      *pszDef,\n                             CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4365,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4367,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4368,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4370,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4380,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4390,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4393,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4393,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4394,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4409,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4409,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4417,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4420,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4422,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4425,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4431,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4433,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4438,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4439,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4441,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4445,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4448,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4450,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4454,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - pszUrl
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4456
      start: 4362
    functionDepth: 2
    functionLinenumber: 4362
    functionLinenumberEnd: 4456
    functionName: OGRSpatialReference::importFromUrl
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::SetFromUserInput
    - STARTS_WITH_CI
    - CPLErrorReset
    - CSLTokenizeString2
    - CPLHTTPFetch
    - CPLStringList::size
    - CPLGetLastErrorNo
    - strlen
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromUrl(const char *pszUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4470,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszUrl
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 4473
      start: 4467
    functionDepth: 0
    functionLinenumber: 4467
    functionLinenumberEnd: 4473
    functionName: OSRImportFromUrl
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRImportFromUrl(OGRSpatialReferenceH hSRS, const char *pszUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4482,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4493,1
    - Dst: OGRSpatialReference::importFromEPSGA
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4494,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4494,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4499,1
    - Dst: OGRSpatialReference::importFromDict
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4500,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4505,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4507,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4512,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4513,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4514,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4515,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4516,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4517,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4518,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4519,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4525,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4529,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4532,1
    - Dst: OGRSpatialReference::importFromWMSAUTO
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4545,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - pszAuthority
    - pszCode
    - pszURN
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4550
      start: 4478
    functionDepth: 3
    functionLinenumber: 4478
    functionLinenumberEnd: 4550
    functionName: OGRSpatialReference::importFromURNPart
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - PROJ_AT_LEAST_VERSION
    - atoi
    - OGRSpatialReference::importFromDict
    - snprintf
    - strlen
    - OGRSpatialReference::importFromEPSGA
    - OGRSpatialReference::importFromWMSAUTO
    - CPLError
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::importFromURNPart(const char *pszAuthority,\n
      \                                             const char *pszCode,\n                                              const
      char *pszURN)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4578,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4579,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4579,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4582,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4582,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4582,1
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4585,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4587,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4590,1
    - Dst: OGRSpatialReference::importFromDict
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4603,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4608,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4610,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4613,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4613,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4618,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4619,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4624,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4626,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4628,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4630,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4632,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4636,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4644,1
    - Dst: OGRSpatialReference::importFromURNPart
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4676,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4680,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4682,1
    - Dst: OGRSpatialReference::importFromURNPart
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4691,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4692,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4723,1
    - Dst: OGRSpatialReference::importFromURNPart
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4724,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4729,1
    - Dst: OGRSpatialReference::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4731,1
    - Dst: OGRSpatialReference::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4732,1
    - Dst: OGRSpatialReference::SetCompoundCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4743,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 1
    argNames:
    - pszURN
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4748
      start: 4574
    functionDepth: 5
    functionLinenumber: 4574
    functionLinenumberEnd: 4748
    functionName: OGRSpatialReference::importFromURN
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - getPROJContext
    - OGRSpatialReference::importFromURNPart
    - CPLError
    - STARTS_WITH
    - TAKE_OPTIONAL_LOCK
    - PROJ_AT_LEAST_VERSION
    - setPjCRS
    - OGRSpatialReference::d::refreshProjObj
    - proj_create
    - strlen
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - OGRSpatialReference::Clear
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromDict
    - OGRSpatialReference::SetCompoundCS
    - CPLGetValueType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromURN(const char *pszURN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4775,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4777,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4780,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4785,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4786,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4788,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4789,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4790,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4792,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4797,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4797,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4803,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4804,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4809,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4811,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4813,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4815,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4817,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4821,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4828,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4835,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4837,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4852,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4857,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4867,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4867,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4868,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4872,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4878,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4885,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4891,1
    - Dst: OGRSpatialReference::importFromCRSURL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4892,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4894,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4899,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4903,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4904,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4905,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4905,1
    - Dst: OGRSpatialReference::importFromURNPart
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4936,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4938
      start: 4772
    functionDepth: 5
    functionLinenumber: 4772
    functionLinenumberEnd: 4938
    functionName: OGRSpatialReference::importFromCRSURL
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - OGRSpatialReference::GetRoot
    - strncpy
    - getPROJContext
    - OGRSpatialReference::importFromURNPart
    - CPLError
    - STARTS_WITH
    - TAKE_OPTIONAL_LOCK
    - PROJ_AT_LEAST_VERSION
    - CPLStrdup
    - setPjCRS
    - proj_create
    - strlen
    - CPLMalloc
    - CPLString::length
    - STARTS_WITH_CI
    - CPLSPrintf
    - snprintf
    - OGRSpatialReference::Clear
    - static_cast<char *>
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetNode
    - OGRSpatialReference::importFromCRSURL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromCRSURL(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4958,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4960,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4961,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4963,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4967,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4967,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4972,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4973,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4982,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4988,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4990,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4991,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4992,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4993,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4995,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4995,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4997,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4998,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:4999,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5002,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5004,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5006,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5007,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5009,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5009,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5011,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5013,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5017,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5018,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5025,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5031,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5036,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5041,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5041,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5041,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5046,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5051,1
    - Dst: OGRSpatialReference::SetEquirectangular
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5055,1
    - Dst: OGRSpatialReference::SetMollweide
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5059,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5063,1
    - Dst: OGRSpatialReference::SetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5076,1
    - Dst: OGRSpatialReference::SetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5080,1
    - Dst: OGRSpatialReference::SetTargetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5084,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5089,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 1
    argNames:
    - pszDefinition
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5097
      start: 4955
    functionDepth: 6
    functionLinenumber: 4955
    functionLinenumberEnd: 5097
    functionName: OGRSpatialReference::importFromWMSAUTO
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - OGRSpatialReference::SetMollweide
    - getPROJContext
    - OGRSpatialReference::SetEquirectangular
    - CPLError
    - TAKE_OPTIONAL_LOCK
    - PROJ_AT_LEAST_VERSION
    - setPjCRS
    - proj_create
    - strlen
    - CSLCount
    - OGRSpatialReference::SetOrthographic
    - CPLAtof
    - STARTS_WITH_CI
    - static_cast<int>
    - floor
    - OGRSpatialReference::SetTargetLinearUnits
    - OGRSpatialReference::Clear
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromWMSAUTO(const char *pszDefinition)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5117,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5122,1
    - Dst: proj_get_ellipsoid
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5126,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5126,1
    - Dst: proj_ellipsoid_get_parameters
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5131,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5131,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pnErr
    argTypes:
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5143
      start: 5114
    functionDepth: 5
    functionLinenumber: 5114
    functionLinenumberEnd: 5143
    functionName: OGRSpatialReference::GetSemiMajor
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_ellipsoid_get_parameters
    - proj_destroy
    - proj_get_ellipsoid
    - getPROJContext
    - refreshProjObj
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetSemiMajor(OGRErr *pnErr) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5157,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pnErr
    argTypes:
    - OGRSpatialReferenceH
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5160
      start: 5154
    functionDepth: 0
    functionLinenumber: 5154
    functionLinenumberEnd: 5160
    functionName: OSRGetSemiMajor
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetSemiMajor(OGRSpatialReferenceH hSRS, OGRErr *pnErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5180,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5185,1
    - Dst: proj_get_ellipsoid
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5189,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5189,1
    - Dst: proj_ellipsoid_get_parameters
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5194,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5194,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pnErr
    argTypes:
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5206
      start: 5177
    functionDepth: 5
    functionLinenumber: 5177
    functionLinenumberEnd: 5206
    functionName: OGRSpatialReference::GetInvFlattening
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_ellipsoid_get_parameters
    - proj_destroy
    - proj_get_ellipsoid
    - getPROJContext
    - refreshProjObj
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetInvFlattening(OGRErr *pnErr) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5220,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pnErr
    argTypes:
    - OGRSpatialReferenceH
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5223
      start: 5217
    functionDepth: 0
    functionLinenumber: 5217
    functionLinenumberEnd: 5223
    functionName: OSRGetInvFlattening
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetInvFlattening(OGRSpatialReferenceH hSRS, OGRErr *pnErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5251
      start: 5236
    functionDepth: 0
    functionLinenumber: 5236
    functionLinenumberEnd: 5251
    functionName: OGRSpatialReference::GetEccentricity
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetEccentricity() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5278
      start: 5264
    functionDepth: 0
    functionLinenumber: 5264
    functionLinenumberEnd: 5278
    functionName: OGRSpatialReference::GetSquaredEccentricity
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetSquaredEccentricity() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRCalcSemiMinorFromInvFlattening
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pnErr
    argTypes:
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5302
      start: 5295
    functionDepth: 1
    functionLinenumber: 5295
    functionLinenumberEnd: 5302
    functionName: OGRSpatialReference::GetSemiMinor
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OSRCalcSemiMinorFromInvFlattening
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetSemiMinor(OGRErr *pnErr) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5316,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pnErr
    argTypes:
    - OGRSpatialReferenceH
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 5319
      start: 5313
    functionDepth: 0
    functionLinenumber: 5313
    functionLinenumberEnd: 5319
    functionName: OSRGetSemiMinor
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetSemiMinor(OGRSpatialReferenceH hSRS, OGRErr *pnErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5341,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5346,1
    - Dst: proj_create_engineering_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5346,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5346,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5358
      start: 5338
    functionDepth: 5
    functionLinenumber: 5338
    functionLinenumberEnd: 5358
    functionName: OGRSpatialReference::SetLocalCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - CPLDebug
    - getPROJContext
    - proj_create_engineering_crs
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetLocalCS(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5372,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 5375
      start: 5369
    functionDepth: 0
    functionLinenumber: 5369
    functionLinenumberEnd: 5375
    functionName: OSRSetLocalCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetLocalCS(OGRSpatialReferenceH hSRS, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5401,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5404,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5405,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5408,1
    - Dst: proj_create_geocentric_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5408,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5409,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5411,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5416,1
    - Dst: proj_alter_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5416,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5416,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5421,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5421,1
    - Dst: proj_crs_get_datum_ensemble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5427,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5427,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5432,1
    - Dst: proj_create_geocentric_crs_from_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5436,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5437,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5437,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5439,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5441,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5445,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5451,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5454
      start: 5398
    functionDepth: 5
    functionLinenumber: 5398
    functionLinenumberEnd: 5454
    functionName: OGRSpatialReference::SetGeocCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - proj_create_geocentric_crs_from_datum
    - undoDemoteFromBoundCRS
    - proj_destroy
    - proj_create_geocentric_crs
    - demoteFromBoundCRS
    - setPjCRS
    - proj_crs_get_datum
    - CPLDebug
    - getPROJContext
    - proj_get_name
    - refreshProjObj
    - proj_crs_get_datum_ensemble
    - proj_alter_name
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetGeocCS(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5470,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 5473
      start: 5467
    functionDepth: 0
    functionLinenumber: 5467
    functionLinenumberEnd: 5473
    functionName: OSRSetGeocCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetGeocCS(OGRSpatialReferenceH hSRS, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5506,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5508,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5510,1
    - Dst: proj_create_vertical_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5512,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5512,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5519,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5519,1
    - Dst: proj_create_compound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5521,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5522,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5523,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5524,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pszVertCSName
    - pszVertDatumName
    - nVertDatumType
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5531
      start: 5501
    functionDepth: 5
    functionLinenumber: 5501
    functionLinenumberEnd: 5531
    functionName: OGRSpatialReference::SetVertCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - setPjCRS
    - getPROJContext
    - CPL_IGNORE_RET_VAL
    - refreshProjObj
    - proj_create_compound_crs
    - proj_create_vertical_crs
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetVertCS(const char *pszVertCSName,\n
      \                                     const char *pszVertDatumName,\n                                      int
      nVertDatumType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5548,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszVertCSName
    - pszVertDatumName
    - nVertDatumType
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5552
      start: 5544
    functionDepth: 0
    functionLinenumber: 5544
    functionLinenumberEnd: 5552
    functionName: OSRSetVertCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetVertCS(OGRSpatialReferenceH hSRS, const char *pszVertCSName,\n
      \                   const char *pszVertDatumName, int nVertDatumType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5580,1
    - Dst: OGRSpatialReference*::IsVertical
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5586,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5588,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5592,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5592,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5594,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5603,1
    - Dst: proj_create_compound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5605,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5605,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pszName
    - poHorizSRS
    - poVertSRS
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 5611
      start: 5575
    functionDepth: 5
    functionLinenumber: 5575
    functionLinenumberEnd: 5611
    functionName: OGRSpatialReference::SetCompoundCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference*::IsProjected
    - setPjCRS
    - OGRSpatialReference*::IsGeographic
    - getPROJContext
    - OGRSpatialReference*::IsVertical
    - OGRSpatialReference::Clear
    - CPLError
    - proj_create_compound_crs
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetCompoundCS(const char *pszName,\n                                          const
      OGRSpatialReference *poHorizSRS,\n                                          const
      OGRSpatialReference *poVertSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5627,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5628,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5629,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5631,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5631,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hSRS
    - pszName
    - hHorizSRS
    - hVertSRS
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 5633
      start: 5622
    functionDepth: 0
    functionLinenumber: 5622
    functionLinenumberEnd: 5633
    functionName: OSRSetCompoundCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetCompoundCS(OGRSpatialReferenceH hSRS, const char *pszName,\n
      \                       OGRSpatialReferenceH hHorizSRS,\n                        OGRSpatialReferenceH
      hVertSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5656,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5658,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5659,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5662,1
    - Dst: proj_alter_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5662,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5662,1
    - Dst: proj_create_conversion
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5666,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5666,1
    - Dst: proj_create_cartesian_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5669,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5670,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5672,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5673,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5673,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5674,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5675,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5677,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5681
      start: 5653
    functionDepth: 5
    functionLinenumber: 5653
    functionLinenumberEnd: 5681
    functionName: OGRSpatialReference::SetProjCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - setPjCRS
    - proj_create_conversion
    - proj_create_cartesian_2D_cs
    - getPROJContext
    - refreshProjObj
    - getGeodBaseCRS
    - proj_create_projected_crs
    - proj_alter_name
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetProjCS(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5695,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 5698
      start: 5692
    functionDepth: 0
    functionLinenumber: 5692
    functionLinenumberEnd: 5698
    functionName: OSRSetProjCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetProjCS(OGRSpatialReferenceH hSRS, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5718,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5722,1
    - Dst: m_poRoot::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5722,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5728,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5730,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5733,1
    - Dst: m_poRoot::InsertChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszProjection
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5741
      start: 5715
    functionDepth: 2
    functionLinenumber: 5715
    functionLinenumberEnd: 5741
    functionName: OGRSpatialReference::SetProjection
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - m_poRoot::InsertChild
    - OGRSpatialReference::GetRoot
    - OGRSpatialReference::SetNode
    - EQUAL
    - m_poRoot::GetValue
    - OGRSpatialReference::GetAttrNode
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetProjection(const char *pszProjection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5755,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszProjection
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 5758
      start: 5752
    functionDepth: 0
    functionLinenumber: 5752
    functionLinenumberEnd: 5758
    functionName: OSRSetProjection
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetProjection(OGRSpatialReferenceH hSRS, const char *pszProjection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5789,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5791,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5791,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5801,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5803,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5806,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5810,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ppszMethodName
    - ppszMethodAuthName
    - ppszMethodCode
    argTypes:
    - char**
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 5813
      start: 5784
    functionDepth: 5
    functionLinenumber: 5784
    functionLinenumberEnd: 5813
    functionName: OGRSpatialReference::GetWKT2ProjectionMethod
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - CPLSPrintf
    - getPROJContext
    - CPLAssert
    - proj_crs_get_coordoperation
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::GetWKT2ProjectionMethod(const char **ppszMethodName,\n
      \                                            const char **ppszMethodAuthName,\n
      \                                            const char **ppszMethodCode) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5842,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5844,1
    - Dst: OGRsnPrintDouble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5850,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5855,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5857,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5859,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5859,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5860,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5861,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5861,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5863,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5871,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5872,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5872,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5873,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5873,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pszParamName
    - dfValue
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 5878
      start: 5838
    functionDepth: 2
    functionLinenumber: 5838
    functionLinenumberEnd: 5878
    functionName: OGRSpatialReference::SetProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - OGR_SRSNode*::AddChild
    - OGRsnPrintDouble
    - EQUAL
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - OGR_SRSNode*::GetValue
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetProjParm(const char *pszParamName,\n
      \                                       double dfValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5893,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszParamName
    - dfValue
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 5896
      start: 5889
    functionDepth: 0
    functionLinenumber: 5889
    functionLinenumberEnd: 5896
    functionName: OSRSetProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetProjParm(OGRSpatialReferenceH hSRS, const char *pszParamName,\n
      \                     double dfValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5916,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5919,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5928,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5930,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5935,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5936,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5936,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5941,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5951,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5958,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5962,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5965,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5972,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:5978,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - pszParameter
    - poPROJCS
    argTypes:
    - char*
    - OGR_SRSNode*
    constantsTouched: []
    func_position:
      end: 5983
      start: 5912
    functionDepth: 2
    functionLinenumber: 5912
    functionLinenumberEnd: 5983
    functionName: OGRSpatialReference::FindProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - EQUAL
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - OGRSpatialReference::FindProjParm
    linkageType: ''
    returnType: int
    signature: "int OGRSpatialReference::FindProjParm(const char *pszParameter,\n
      \                                     const OGR_SRSNode *poPROJCS) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6012,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6014,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6015,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6024,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6035,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6035,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6037,1
    - Dst: OGRSpatialReference*::DemoteTo2D
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6038,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6050,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6051,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6051,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - pszName
    - dfDefaultValue
    - pnErr
    argTypes:
    - char*
    - double
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 6052
      start: 6007
    functionDepth: 2
    functionLinenumber: 6007
    functionLinenumberEnd: 6052
    functionName: OGRSpatialReference::GetProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::GetAxesCount
    - OGRSpatialReference::GetRoot
    - OGRSpatialReference::Clone
    - refreshProjObj
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - OGRSpatialReference*::DemoteTo2D
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: double
    signature: "double OGRSpatialReference::GetProjParm(const char *pszName,\n                                        double
      dfDefaultValue,\n                                        OGRErr *pnErr) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6067,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszName
    - dfDefaultValue
    - pnErr
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 6070
      start: 6063
    functionDepth: 0
    functionLinenumber: 6063
    functionLinenumberEnd: 6070
    functionName: OSRGetProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OSRGetProjParm(OGRSpatialReferenceH hSRS, const char *pszName,\n
      \                     double dfDefaultValue, OGRErr *pnErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6100,1
    - Dst: OGRSpatialReference::GetNormInfo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6102,1
    - Dst: OGRSpatialReference::IsAngularParameter
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6113,1
    - Dst: OGRSpatialReference::IsLinearParameter
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - pszName
    - dfDefaultValue
    - pnErr
    argTypes:
    - char*
    - double
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 6120
      start: 6095
    functionDepth: 1
    functionLinenumber: 6095
    functionLinenumberEnd: 6120
    functionName: OGRSpatialReference::GetNormProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::IsAngularParameter
    - OGRSpatialReference::GetNormInfo
    - OGRSpatialReference::IsLinearParameter
    linkageType: ''
    returnType: double
    signature: "double OGRSpatialReference::GetNormProjParm(const char *pszName,\n
      \                                           double dfDefaultValue,\n                                            OGRErr
      *pnErr) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6135,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszName
    - dfDefaultValue
    - pnErr
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 6138
      start: 6131
    functionDepth: 0
    functionLinenumber: 6131
    functionLinenumberEnd: 6138
    functionName: OSRGetNormProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: "double OSRGetNormProjParm(OGRSpatialReferenceH hSRS, const char *pszName,\n
      \                         double dfDefaultValue, OGRErr *pnErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6165,1
    - Dst: OGRSpatialReference::GetNormInfo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6167,1
    - Dst: OGRSpatialReference::IsAngularParameter
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6171,1
    - Dst: OGRSpatialReference::IsLinearParameter
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6176,1
    - Dst: OGRSpatialReference::SetProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - pszName
    - dfValue
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 6180
      start: 6162
    functionDepth: 3
    functionLinenumber: 6162
    functionLinenumberEnd: 6180
    functionName: OGRSpatialReference::SetNormProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::IsAngularParameter
    - OGRSpatialReference::IsLinearParameter
    - OGRSpatialReference::SetProjParm
    - OGRSpatialReference::GetNormInfo
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetNormProjParm(const char *pszName, double
      dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6195,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszParamName
    - dfValue
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 6198
      start: 6191
    functionDepth: 0
    functionLinenumber: 6191
    functionLinenumberEnd: 6198
    functionName: OSRSetNormProjParm
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetNormProjParm(OGRSpatialReferenceH hSRS, const char *pszParamName,\n
      \                         double dfValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6209,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6211,1
    - Dst: proj_create_conversion_transverse_mercator
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6212,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6215
      start: 6204
    functionDepth: 5
    functionLinenumber: 6204
    functionLinenumberEnd: 6215
    functionName: OGRSpatialReference::SetTM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 7
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_transverse_mercator
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTM(double dfCenterLat, double dfCenterLong,\n
      \                                 double dfScale, double dfFalseEasting,\n                                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6226,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6230
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6230
    functionName: OSRSetTM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTM(OGRSpatialReferenceH hSRS, double dfCenterLat,\n                double
      dfCenterLong, double dfScale, double dfFalseEasting,\n                double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6243,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6245,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6246,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6247,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6248,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6249,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - pszVariantName
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - char*
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6253
      start: 6236
    functionDepth: 4
    functionLinenumber: 6236
    functionLinenumberEnd: 6253
    functionName: OGRSpatialReference::SetTMVariant
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetProjection
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTMVariant(const char *pszVariantName,\n
      \                                        double dfCenterLat,\n                                         double
      dfCenterLong, double dfScale,\n                                         double
      dfFalseEasting,\n                                         double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6264,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - pszVariantName
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6269
      start: 6259
    functionDepth: 0
    functionLinenumber: 6259
    functionLinenumberEnd: 6269
    functionName: OSRSetTMVariant
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTMVariant(OGRSpatialReferenceH hSRS, const char *pszVariantName,\n
      \                      double dfCenterLat, double dfCenterLong, double dfScale,\n
      \                      double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6280,1
    - Dst: proj_create_conversion_transverse_mercator_south_oriented
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6282,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6283,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6290,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6292,1
    - Dst: proj_create_cartesian_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6294,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6295,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6296,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6296,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6298,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6298,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6298,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6299,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6300,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6301,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6303,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6308
      start: 6275
    functionDepth: 5
    functionLinenumber: 6275
    functionLinenumberEnd: 6308
    functionName: OGRSpatialReference::SetTMSO
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - CPLString::empty
    - proj_create_cartesian_2D_cs
    - setPjCRS
    - getPROJContext
    - CPLString::c_str
    - refreshProjObj
    - getGeodBaseCRS
    - getProjCRSName
    - proj_create_projected_crs
    - proj_create_conversion_transverse_mercator_south_oriented
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTMSO(double dfCenterLat, double dfCenterLong,\n
      \                                   double dfScale, double dfFalseEasting,\n
      \                                   double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6319,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6323
      start: 6314
    functionDepth: 0
    functionLinenumber: 6314
    functionLinenumberEnd: 6323
    functionName: OSRSetTMSO
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTMSO(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                 double dfCenterLong, double dfScale, double dfFalseEasting,\n
      \                 double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6335,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6337,1
    - Dst: proj_create_conversion_two_point_equidistant
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6338,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfLat1
    - dfLong1
    - dfLat2
    - dfLong2
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6341
      start: 6329
    functionDepth: 5
    functionLinenumber: 6329
    functionLinenumberEnd: 6341
    functionName: OGRSpatialReference::SetTPED
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_two_point_equidistant
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTPED(double dfLat1, double dfLong1,\n
      \                                   double dfLat2, double dfLong2,\n                                    double
      dfFalseEasting,\n                                    double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6352,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfLat1
    - dfLong1
    - dfLat2
    - dfLong2
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6356
      start: 6347
    functionDepth: 0
    functionLinenumber: 6347
    functionLinenumberEnd: 6356
    functionName: OSRSetTPED
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTPED(OGRSpatialReferenceH hSRS, double dfLat1, double
      dfLong1,\n                  double dfLat2, double dfLong2, double dfFalseEasting,\n
      \                 double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6367,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6369,1
    - Dst: proj_create_conversion_tunisia_mapping_grid
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6370,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6373
      start: 6362
    functionDepth: 5
    functionLinenumber: 6362
    functionLinenumberEnd: 6373
    functionName: OGRSpatialReference::SetTMG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_tunisia_mapping_grid
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTMG(double dfCenterLat, double dfCenterLong,\n
      \                                  double dfFalseEasting,\n                                   double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6384,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6388
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6388
    functionName: OSRSetTMG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTMG(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                double dfCenterLong, double dfFalseEasting,\n                 double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6400,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6404,1
    - Dst: proj_create_conversion_albers_equal_area
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6405,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6408
      start: 6394
    functionDepth: 5
    functionLinenumber: 6394
    functionLinenumberEnd: 6408
    functionName: OGRSpatialReference::SetACEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_albers_equal_area
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetACEA(double dfStdP1, double dfStdP2,\n
      \                                   double dfCenterLat, double dfCenterLong,\n
      \                                   double dfFalseEasting,\n                                    double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6419,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6423
      start: 6414
    functionDepth: 0
    functionLinenumber: 6414
    functionLinenumberEnd: 6423
    functionName: OSRSetACEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetACEA(OGRSpatialReferenceH hSRS, double dfStdP1, double
      dfStdP2,\n                  double dfCenterLat, double dfCenterLong,\n                  double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6433,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6435,1
    - Dst: proj_create_conversion_azimuthal_equidistant
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6436,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6439
      start: 6429
    functionDepth: 5
    functionLinenumber: 6429
    functionLinenumberEnd: 6439
    functionName: OGRSpatialReference::SetAE
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_azimuthal_equidistant
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetAE(double dfCenterLat, double dfCenterLong,\n
      \                                 double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6450,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6454
      start: 6445
    functionDepth: 0
    functionLinenumber: 6445
    functionLinenumberEnd: 6454
    functionName: OSRSetAE
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetAE(OGRSpatialReferenceH hSRS, double dfCenterLat,\n                double
      dfCenterLong, double dfFalseEasting,\n                double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6465,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6467,1
    - Dst: proj_create_conversion_bonne
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6467,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfStdP1
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6470
      start: 6460
    functionDepth: 5
    functionLinenumber: 6460
    functionLinenumberEnd: 6470
    functionName: OGRSpatialReference::SetBonne
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_bonne
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetBonne(double dfStdP1, double dfCentralMeridian,\n
      \                                    double dfFalseEasting,\n                                     double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6481,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfStdP1
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6485
      start: 6476
    functionDepth: 0
    functionLinenumber: 6476
    functionLinenumberEnd: 6485
    functionName: OSRSetBonne
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetBonne(OGRSpatialReferenceH hSRS, double dfStdP1,\n                   double
      dfCentralMeridian, double dfFalseEasting,\n                   double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6496,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6498,1
    - Dst: proj_create_conversion_lambert_cylindrical_equal_area
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6499,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfStdP1
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6502
      start: 6491
    functionDepth: 5
    functionLinenumber: 6491
    functionLinenumberEnd: 6502
    functionName: OGRSpatialReference::SetCEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_lambert_cylindrical_equal_area
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetCEA(double dfStdP1, double dfCentralMeridian,\n
      \                                  double dfFalseEasting,\n                                   double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6513,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfStdP1
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6517
      start: 6508
    functionDepth: 0
    functionLinenumber: 6508
    functionLinenumberEnd: 6517
    functionName: OSRSetCEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetCEA(OGRSpatialReferenceH hSRS, double dfStdP1,\n                 double
      dfCentralMeridian, double dfFalseEasting,\n                 double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6527,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6529,1
    - Dst: proj_create_conversion_cassini_soldner
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6529,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6532
      start: 6523
    functionDepth: 5
    functionLinenumber: 6523
    functionLinenumberEnd: 6532
    functionName: OGRSpatialReference::SetCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_cassini_soldner
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetCS(double dfCenterLat, double dfCenterLong,\n
      \                                 double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6543,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6547
      start: 6538
    functionDepth: 0
    functionLinenumber: 6538
    functionLinenumberEnd: 6547
    functionName: OSRSetCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetCS(OGRSpatialReferenceH hSRS, double dfCenterLat,\n                double
      dfCenterLong, double dfFalseEasting,\n                double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6558,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6561,1
    - Dst: proj_create_conversion_equidistant_conic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6562,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6565
      start: 6553
    functionDepth: 5
    functionLinenumber: 6553
    functionLinenumberEnd: 6565
    functionName: OGRSpatialReference::SetEC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_equidistant_conic
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEC(double dfStdP1, double dfStdP2,\n
      \                                 double dfCenterLat, double dfCenterLong,\n
      \                                 double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6576,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6580
      start: 6571
    functionDepth: 0
    functionLinenumber: 6571
    functionLinenumberEnd: 6580
    functionName: OSRSetEC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEC(OGRSpatialReferenceH hSRS, double dfStdP1, double
      dfStdP2,\n                double dfCenterLat, double dfCenterLong, double dfFalseEasting,\n
      \               double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6592,1
    - Dst: proj_create_conversion_eckert_i
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6597,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6598,1
    - Dst: proj_create_conversion_eckert_ii
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6603,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6604,1
    - Dst: proj_create_conversion_eckert_iii
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6609,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6610,1
    - Dst: proj_create_conversion_eckert_iv
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6615,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6616,1
    - Dst: proj_create_conversion_eckert_v
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6621,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6622,1
    - Dst: proj_create_conversion_eckert_vi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6627,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6628,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6633,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - nVariation
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6639
      start: 6586
    functionDepth: 5
    functionLinenumber: 6586
    functionLinenumberEnd: 6639
    functionName: OGRSpatialReference::SetEckert
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_eckert_vi
    - proj_create_conversion_eckert_v
    - proj_create_conversion_eckert_i
    - proj_create_conversion_eckert_iv
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_eckert_iii
    - CPLError
    - proj_create_conversion_eckert_ii
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEckert(int nVariation,  // 1-6.\n                                      double
      dfCentralMeridian,\n                                      double dfFalseEasting,\n
      \                                     double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6650,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - nVariation
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6654
      start: 6645
    functionDepth: 0
    functionLinenumber: 6645
    functionLinenumberEnd: 6654
    functionName: OSRSetEckert
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEckert(OGRSpatialReferenceH hSRS, int nVariation,\n                    double
      dfCentralMeridian, double dfFalseEasting,\n                    double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetEckert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6668
      start: 6662
    functionDepth: 6
    functionLinenumber: 6662
    functionLinenumberEnd: 6668
    functionName: OGRSpatialReference::SetEckertIV
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetEckert
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEckertIV(double dfCentralMeridian,\n
      \                                       double dfFalseEasting,\n                                        double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6678,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6682
      start: 6674
    functionDepth: 0
    functionLinenumber: 6674
    functionLinenumberEnd: 6682
    functionName: OSRSetEckertIV
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEckertIV(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \                     double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetEckert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6696
      start: 6690
    functionDepth: 6
    functionLinenumber: 6690
    functionLinenumberEnd: 6696
    functionName: OGRSpatialReference::SetEckertVI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetEckert
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEckertVI(double dfCentralMeridian,\n
      \                                       double dfFalseEasting,\n                                        double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6706,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6710
      start: 6702
    functionDepth: 0
    functionLinenumber: 6702
    functionLinenumberEnd: 6710
    functionName: OSRSetEckertVI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEckertVI(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \                     double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6722,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6726,1
    - Dst: proj_create_conversion_equidistant_cylindrical
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6727,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6728,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6733,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6734,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6735,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6736,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6740
      start: 6716
    functionDepth: 5
    functionLinenumber: 6716
    functionLinenumberEnd: 6740
    functionName: OGRSpatialReference::SetEquirectangular
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_equidistant_cylindrical
    - replaceConversionAndUnref
    - getPROJContext
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetProjection
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEquirectangular(double dfCenterLat,\n
      \                                              double dfCenterLong,\n                                               double
      dfFalseEasting,\n                                               double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6751,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6755
      start: 6746
    functionDepth: 0
    functionLinenumber: 6746
    functionLinenumberEnd: 6755
    functionName: OSRSetEquirectangular
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEquirectangular(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                            double dfCenterLong, double dfFalseEasting,\n                             double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6769,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6773,1
    - Dst: proj_create_conversion_equidistant_cylindrical
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6774,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6775,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6780,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6781,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6782,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6783,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6784,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfStdParallel1
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6788
      start: 6762
    functionDepth: 5
    functionLinenumber: 6762
    functionLinenumberEnd: 6788
    functionName: OGRSpatialReference::SetEquirectangular2
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_equidistant_cylindrical
    - replaceConversionAndUnref
    - getPROJContext
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetProjection
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetEquirectangular2(double dfCenterLat,\n
      \                                               double dfCenterLong,\n                                                double
      dfStdParallel1,\n                                                double dfFalseEasting,\n
      \                                               double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6799,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfStdParallel1
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6804
      start: 6794
    functionDepth: 0
    functionLinenumber: 6794
    functionLinenumberEnd: 6804
    functionName: OSRSetEquirectangular2
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetEquirectangular2(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                             double dfCenterLong, double dfStdParallel1,\n
      \                             double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6814,1
    - Dst: proj_create_conversion_gall
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6814,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6817
      start: 6810
    functionDepth: 5
    functionLinenumber: 6810
    functionLinenumberEnd: 6817
    functionName: OGRSpatialReference::SetGS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_create_conversion_gall
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGS(double dfCentralMeridian,\n                                  double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6827,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6831
      start: 6823
    functionDepth: 0
    functionLinenumber: 6823
    functionLinenumberEnd: 6831
    functionName: OSRSetGS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGS(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \               double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6841,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6843,1
    - Dst: proj_create_conversion_goode_homolosine
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6843,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6846
      start: 6837
    functionDepth: 5
    functionLinenumber: 6837
    functionLinenumberEnd: 6846
    functionName: OGRSpatialReference::SetGH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_goode_homolosine
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGH(double dfCentralMeridian,\n                                  double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6856,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6860
      start: 6852
    functionDepth: 0
    functionLinenumber: 6852
    functionLinenumberEnd: 6860
    functionName: OSRSetGH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGH(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \               double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6869,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6871,1
    - Dst: proj_create_conversion_interrupted_goode_homolosine
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6872,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6874
      start: 6866
    functionDepth: 5
    functionLinenumber: 6866
    functionLinenumberEnd: 6874
    functionName: OGRSpatialReference::SetIGH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_interrupted_goode_homolosine
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetIGH()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6883,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 6886
      start: 6880
    functionDepth: 0
    functionLinenumber: 6880
    functionLinenumberEnd: 6886
    functionName: OSRSetIGH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetIGH(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6898,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6900,1
    - Dst: proj_create_conversion_geostationary_satellite_sweep_y
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6901,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCentralMeridian
    - dfSatelliteHeight
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6904
      start: 6892
    functionDepth: 5
    functionLinenumber: 6892
    functionLinenumberEnd: 6904
    functionName: OGRSpatialReference::SetGEOS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_geostationary_satellite_sweep_y
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGEOS(double dfCentralMeridian,\n                                    double
      dfSatelliteHeight,\n                                    double dfFalseEasting,\n
      \                                   double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6915,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfSatelliteHeight
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6919
      start: 6910
    functionDepth: 0
    functionLinenumber: 6910
    functionLinenumberEnd: 6919
    functionName: OSRSetGEOS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGEOS(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \                 double dfSatelliteHeight, double dfFalseEasting,\n                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6932,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6934,1
    - Dst: proj_create_conversion_gauss_schreiber_transverse_mercator
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6935,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6938
      start: 6925
    functionDepth: 5
    functionLinenumber: 6925
    functionLinenumberEnd: 6938
    functionName: OGRSpatialReference::SetGaussSchreiberTMercator
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_gauss_schreiber_transverse_mercator
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGaussSchreiberTMercator(double dfCenterLat,\n
      \                                                      double dfCenterLong,\n
      \                                                      double dfScale,\n                                                       double
      dfFalseEasting,\n                                                       double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6950,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6954
      start: 6944
    functionDepth: 0
    functionLinenumber: 6944
    functionLinenumberEnd: 6954
    functionName: OSRSetGaussSchreiberTMercator
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGaussSchreiberTMercator(OGRSpatialReferenceH hSRS,\n
      \                                    double dfCenterLat, double dfCenterLong,\n
      \                                    double dfScale, double dfFalseEasting,\n
      \                                    double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6965,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6967,1
    - Dst: proj_create_conversion_gnomonic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6967,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6970
      start: 6960
    functionDepth: 5
    functionLinenumber: 6960
    functionLinenumberEnd: 6970
    functionName: OGRSpatialReference::SetGnomonic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_gnomonic
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetGnomonic(double dfCenterLat, double
      dfCenterLong,\n                                        double dfFalseEasting,\n
      \                                       double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6981,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:6983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6985
      start: 6976
    functionDepth: 0
    functionLinenumber: 6976
    functionLinenumberEnd: 6985
    functionName: OSRSetGnomonic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetGnomonic(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                     double dfCenterLong, double dfFalseEasting,\n                      double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7018,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7020,1
    - Dst: proj_create_conversion_hotine_oblique_mercator_variant_b
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7021,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfRectToSkew
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7025
      start: 7012
    functionDepth: 5
    functionLinenumber: 7012
    functionLinenumberEnd: 7025
    functionName: OGRSpatialReference::SetHOMAC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_hotine_oblique_mercator_variant_b
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetHOMAC(double dfCenterLat, double dfCenterLong,\n
      \                                    double dfAzimuth, double dfRectToSkew,\n
      \                                    double dfScale, double dfFalseEasting,\n
      \                                    double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7042,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfRectToSkew
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7047
      start: 7036
    functionDepth: 0
    functionLinenumber: 7036
    functionLinenumberEnd: 7047
    functionName: OSRSetHOMAC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetHOMAC(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                  double dfCenterLong, double dfAzimuth, double dfRectToSkew,\n
      \                  double dfScale, double dfFalseEasting,\n                   double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7079,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7081,1
    - Dst: proj_create_conversion_hotine_oblique_mercator_variant_a
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7082,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfRectToSkew
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7086
      start: 7073
    functionDepth: 5
    functionLinenumber: 7073
    functionLinenumberEnd: 7086
    functionName: OGRSpatialReference::SetHOM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_hotine_oblique_mercator_variant_a
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetHOM(double dfCenterLat, double dfCenterLong,\n
      \                                  double dfAzimuth, double dfRectToSkew,\n
      \                                  double dfScale, double dfFalseEasting,\n
      \                                  double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7101,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfRectToSkew
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7106
      start: 7096
    functionDepth: 0
    functionLinenumber: 7096
    functionLinenumberEnd: 7106
    functionName: OSRSetHOM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetHOM(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                double dfCenterLong, double dfAzimuth, double dfRectToSkew,\n
      \                double dfScale, double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7137,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7139,1
    - Dst: proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7140,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - dfCenterLat
    - dfLat1
    - dfLong1
    - dfLat2
    - dfLong2
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7144
      start: 7130
    functionDepth: 5
    functionLinenumber: 7130
    functionLinenumberEnd: 7144
    functionName: OGRSpatialReference::SetHOM2PNO
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetHOM2PNO(double dfCenterLat, double
      dfLat1,\n                                       double dfLong1, double dfLat2,\n
      \                                      double dfLong2, double dfScale,\n                                       double
      dfFalseEasting,\n                                       double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7161,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - hSRS
    - dfCenterLat
    - dfLat1
    - dfLong1
    - dfLat2
    - dfLong2
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7166
      start: 7155
    functionDepth: 0
    functionLinenumber: 7155
    functionLinenumberEnd: 7166
    functionName: OSRSetHOM2PNO
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetHOM2PNO(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                    double dfLat1, double dfLong1, double dfLat2,\n                     double
      dfLong2, double dfScale, double dfFalseEasting,\n                     double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7192,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7194,1
    - Dst: proj_create_conversion_laborde_oblique_mercator
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7195,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7198
      start: 7186
    functionDepth: 5
    functionLinenumber: 7186
    functionLinenumberEnd: 7198
    functionName: OGRSpatialReference::SetLOM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_laborde_oblique_mercator
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLOM(double dfCenterLat, double dfCenterLong,\n
      \                                  double dfAzimuth, double dfScale,\n                                   double
      dfFalseEasting,\n                                   double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7210,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7212,1
    - Dst: proj_create_conversion_international_map_world_polyconic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7213,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfLat1
    - dfLat2
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7216
      start: 7204
    functionDepth: 5
    functionLinenumber: 7204
    functionLinenumberEnd: 7216
    functionName: OGRSpatialReference::SetIWMPolyconic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - proj_create_conversion_international_map_world_polyconic
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetIWMPolyconic(double dfLat1, double
      dfLat2,\n                                            double dfCenterLong,\n
      \                                           double dfFalseEasting,\n                                            double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7227,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfLat1
    - dfLat2
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7231
      start: 7222
    functionDepth: 0
    functionLinenumber: 7222
    functionLinenumberEnd: 7231
    functionName: OSRSetIWMPolyconic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetIWMPolyconic(OGRSpatialReferenceH hSRS, double dfLat1,\n
      \                         double dfLat2, double dfCenterLong,\n                          double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7249,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7251,1
    - Dst: proj_create_conversion_krovak_north_oriented
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7252,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfPseudoStdParallel1
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7256
      start: 7242
    functionDepth: 5
    functionLinenumber: 7242
    functionLinenumberEnd: 7256
    functionName: OGRSpatialReference::SetKrovak
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_krovak_north_oriented
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetKrovak(double dfCenterLat, double dfCenterLong,\n
      \                                     double dfAzimuth,\n                                      double
      dfPseudoStdParallel1,\n                                      double dfScale,
      double dfFalseEasting,\n                                      double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7268,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfAzimuth
    - dfPseudoStdParallel1
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7273
      start: 7262
    functionDepth: 0
    functionLinenumber: 7262
    functionLinenumberEnd: 7273
    functionName: OSRSetKrovak
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetKrovak(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                   double dfCenterLong, double dfAzimuth,\n                    double
      dfPseudoStdParallel1, double dfScale,\n                    double dfFalseEasting,
      double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7284,1
    - Dst: proj_create_conversion_lambert_azimuthal_equal_area
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7286,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7287,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7294,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7296,1
    - Dst: proj_create_cartesian_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7298,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7299,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7300,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7302,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7305,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7305,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7307,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7307,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7307,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7308,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7309,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7310,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7312,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7317
      start: 7279
    functionDepth: 5
    functionLinenumber: 7279
    functionLinenumberEnd: 7317
    functionName: OGRSpatialReference::SetLAEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_destroy
    - proj_create_conversion_lambert_azimuthal_equal_area
    - demoteFromBoundCRS
    - setPjCRS
    - proj_create_cartesian_2D_cs
    - getPROJContext
    - CPLString::c_str
    - refreshProjObj
    - getGeodBaseCRS
    - getProjCRSName
    - std::fabs
    - proj_create_projected_crs
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLAEA(double dfCenterLat, double dfCenterLong,\n
      \                                   double dfFalseEasting,\n                                    double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7328,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7332
      start: 7323
    functionDepth: 0
    functionLinenumber: 7323
    functionLinenumberEnd: 7332
    functionName: OSRSetLAEA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLAEA(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                 double dfCenterLong, double dfFalseEasting,\n                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7344,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7346,1
    - Dst: proj_create_conversion_lambert_conic_conformal_2sp
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7347,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7350
      start: 7338
    functionDepth: 5
    functionLinenumber: 7338
    functionLinenumberEnd: 7350
    functionName: OGRSpatialReference::SetLCC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_lambert_conic_conformal_2sp
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLCC(double dfStdP1, double dfStdP2,\n
      \                                  double dfCenterLat, double dfCenterLong,\n
      \                                  double dfFalseEasting,\n                                   double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7361,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7365
      start: 7356
    functionDepth: 0
    functionLinenumber: 7356
    functionLinenumberEnd: 7365
    functionName: OSRSetLCC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLCC(OGRSpatialReferenceH hSRS, double dfStdP1, double
      dfStdP2,\n                 double dfCenterLat, double dfCenterLong, double dfFalseEasting,\n
      \                double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7376,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7378,1
    - Dst: proj_create_conversion_lambert_conic_conformal_1sp
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7379,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7382
      start: 7371
    functionDepth: 5
    functionLinenumber: 7371
    functionLinenumberEnd: 7382
    functionName: OGRSpatialReference::SetLCC1SP
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_lambert_conic_conformal_1sp
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLCC1SP(double dfCenterLat, double dfCenterLong,\n
      \                                     double dfScale, double dfFalseEasting,\n
      \                                     double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7393,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7397
      start: 7388
    functionDepth: 0
    functionLinenumber: 7388
    functionLinenumberEnd: 7397
    functionName: OSRSetLCC1SP
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLCC1SP(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                   double dfCenterLong, double dfScale, double dfFalseEasting,\n
      \                   double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7409,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7411,1
    - Dst: proj_create_conversion_lambert_conic_conformal_2sp_belgium
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7412,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7415
      start: 7403
    functionDepth: 5
    functionLinenumber: 7403
    functionLinenumberEnd: 7415
    functionName: OGRSpatialReference::SetLCCB
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_lambert_conic_conformal_2sp_belgium
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetLCCB(double dfStdP1, double dfStdP2,\n
      \                                   double dfCenterLat, double dfCenterLong,\n
      \                                   double dfFalseEasting,\n                                    double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7426,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfStdP1
    - dfStdP2
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7430
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7430
    functionName: OSRSetLCCB
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetLCCB(OGRSpatialReferenceH hSRS, double dfStdP1, double
      dfStdP2,\n                  double dfCenterLat, double dfCenterLong,\n                  double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7440,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7444,1
    - Dst: proj_create_conversion_miller_cylindrical
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7445,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7448
      start: 7436
    functionDepth: 5
    functionLinenumber: 7436
    functionLinenumberEnd: 7448
    functionName: OGRSpatialReference::SetMC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_miller_cylindrical
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetMC(double dfCenterLat, double dfCenterLong,\n
      \                                 double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7459,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7463
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7463
    functionName: OSRSetMC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetMC(OGRSpatialReferenceH hSRS, double dfCenterLat,\n                double
      dfCenterLong, double dfFalseEasting,\n                double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7474,1
    - Dst: OGRSpatialReference::SetMercator2SP
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7480,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7483,1
    - Dst: proj_create_conversion_mercator_variant_a
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7484,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7489
      start: 7469
    functionDepth: 5
    functionLinenumber: 7469
    functionLinenumberEnd: 7489
    functionName: OGRSpatialReference::SetMercator
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::SetMercator2SP
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_mercator_variant_a
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetMercator(double dfCenterLat, double
      dfCenterLong,\n                                        double dfScale, double
      dfFalseEasting,\n                                        double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7500,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7504
      start: 7495
    functionDepth: 0
    functionLinenumber: 7495
    functionLinenumberEnd: 7504
    functionName: OSRSetMercator
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetMercator(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                     double dfCenterLong, double dfScale,\n                      double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7518,1
    - Dst: proj_create_conversion_mercator_variant_b
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7519,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7520,1
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7524,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7526,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7528,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7529,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7530,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7531,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - dfStdP1
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7535
      start: 7510
    functionDepth: 5
    functionLinenumber: 7510
    functionLinenumberEnd: 7535
    functionName: OGRSpatialReference::SetMercator2SP
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - OGRSpatialReference::SetNormProjParm
    - proj_create_conversion_mercator_variant_b
    - OGRSpatialReference::SetProjection
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetMercator2SP(double dfStdP1, double
      dfCenterLat,\n                                           double dfCenterLong,\n
      \                                          double dfFalseEasting,\n                                           double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7546,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfStdP1
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7550
      start: 7541
    functionDepth: 0
    functionLinenumber: 7541
    functionLinenumberEnd: 7550
    functionName: OSRSetMercator2SP
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetMercator2SP(OGRSpatialReferenceH hSRS, double dfStdP1,\n
      \                        double dfCenterLat, double dfCenterLong,\n                         double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7561,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7563,1
    - Dst: proj_create_conversion_mollweide
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7563,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7566
      start: 7556
    functionDepth: 5
    functionLinenumber: 7556
    functionLinenumberEnd: 7566
    functionName: OGRSpatialReference::SetMollweide
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_mollweide
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetMollweide(double dfCentralMeridian,\n
      \                                        double dfFalseEasting,\n                                         double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7576,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7580
      start: 7572
    functionDepth: 0
    functionLinenumber: 7572
    functionLinenumberEnd: 7580
    functionName: OSRSetMollweide
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetMollweide(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \                      double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7591,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7593,1
    - Dst: proj_create_conversion_new_zealand_mapping_grid
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7594,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7597
      start: 7586
    functionDepth: 5
    functionLinenumber: 7586
    functionLinenumberEnd: 7597
    functionName: OGRSpatialReference::SetNZMG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_new_zealand_mapping_grid
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetNZMG(double dfCenterLat, double dfCenterLong,\n
      \                                   double dfFalseEasting,\n                                    double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7608,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7612
      start: 7603
    functionDepth: 0
    functionLinenumber: 7603
    functionLinenumberEnd: 7612
    functionName: OSRSetNZMG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetNZMG(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                 double dfCenterLong, double dfFalseEasting,\n                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7623,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7625,1
    - Dst: proj_create_conversion_oblique_stereographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7626,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfOriginLat
    - dfCMeridian
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7629
      start: 7618
    functionDepth: 5
    functionLinenumber: 7618
    functionLinenumberEnd: 7629
    functionName: OGRSpatialReference::SetOS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_oblique_stereographic
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetOS(double dfOriginLat, double dfCMeridian,\n
      \                                 double dfScale, double dfFalseEasting,\n                                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7640,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfOriginLat
    - dfCMeridian
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7644
      start: 7635
    functionDepth: 0
    functionLinenumber: 7635
    functionLinenumberEnd: 7644
    functionName: OSRSetOS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetOS(OGRSpatialReferenceH hSRS, double dfOriginLat,\n                double
      dfCMeridian, double dfScale, double dfFalseEasting,\n                double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7656,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7658,1
    - Dst: proj_create_conversion_orthographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7658,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7661
      start: 7650
    functionDepth: 5
    functionLinenumber: 7650
    functionLinenumberEnd: 7661
    functionName: OGRSpatialReference::SetOrthographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_orthographic
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetOrthographic(double dfCenterLat,\n
      \                                           double dfCenterLong,\n                                            double
      dfFalseEasting,\n                                            double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7672,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7676
      start: 7667
    functionDepth: 0
    functionLinenumber: 7667
    functionLinenumberEnd: 7676
    functionName: OSRSetOrthographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetOrthographic(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                         double dfCenterLong, double dfFalseEasting,\n                          double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7688,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7692,1
    - Dst: proj_create_conversion_american_polyconic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7693,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7696
      start: 7682
    functionDepth: 5
    functionLinenumber: 7682
    functionLinenumberEnd: 7696
    functionName: OGRSpatialReference::SetPolyconic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_american_polyconic
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetPolyconic(double dfCenterLat,\n                                         double
      dfCenterLong,\n                                         double dfFalseEasting,\n
      \                                        double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7707,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7711
      start: 7702
    functionDepth: 0
    functionLinenumber: 7702
    functionLinenumberEnd: 7711
    functionName: OSRSetPolyconic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetPolyconic(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                      double dfCenterLong, double dfFalseEasting,\n                       double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7731,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7734,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7734,1
    - Dst: proj_create_conversion_polar_stereographic_variant_b
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7736,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7737,1
    - Dst: proj_create_conversion_polar_stereographic_variant_a
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7742,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7743,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7751,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7753,1
    - Dst: proj_create_cartesian_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7755,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7756,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7759,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7759,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7761,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7761,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7761,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7762,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7763,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7764,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7766,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7771
      start: 7726
    functionDepth: 5
    functionLinenumber: 7726
    functionLinenumberEnd: 7771
    functionName: OGRSpatialReference::SetPS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_polar_stereographic_variant_a
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - setPjCRS
    - proj_create_cartesian_2D_cs
    - proj_create_conversion_polar_stereographic_variant_b
    - std::abs
    - getPROJContext
    - CPLString::c_str
    - refreshProjObj
    - getGeodBaseCRS
    - getProjCRSName
    - proj_create_projected_crs
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetPS(double dfCenterLat, double dfCenterLong,\n
      \                                 double dfScale, double dfFalseEasting,\n                                  double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7782,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7786
      start: 7777
    functionDepth: 0
    functionLinenumber: 7777
    functionLinenumberEnd: 7786
    functionName: OSRSetPS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetPS(OGRSpatialReferenceH hSRS, double dfCenterLat,\n                double
      dfCenterLong, double dfScale, double dfFalseEasting,\n                double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7797,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7799,1
    - Dst: proj_create_conversion_robinson
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7799,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7802
      start: 7792
    functionDepth: 5
    functionLinenumber: 7792
    functionLinenumberEnd: 7802
    functionName: OGRSpatialReference::SetRobinson
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_robinson
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetRobinson(double dfCenterLong,\n                                        double
      dfFalseEasting,\n                                        double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7812,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7816
      start: 7808
    functionDepth: 0
    functionLinenumber: 7808
    functionLinenumberEnd: 7816
    functionName: OSRSetRobinson
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetRobinson(OGRSpatialReferenceH hSRS, double dfCenterLong,\n
      \                     double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7827,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7829,1
    - Dst: proj_create_conversion_sinusoidal
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7829,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7832
      start: 7822
    functionDepth: 5
    functionLinenumber: 7822
    functionLinenumberEnd: 7832
    functionName: OGRSpatialReference::SetSinusoidal
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_sinusoidal
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetSinusoidal(double dfCenterLong,\n                                          double
      dfFalseEasting,\n                                          double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7842,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCenterLong
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7846
      start: 7838
    functionDepth: 0
    functionLinenumber: 7838
    functionLinenumberEnd: 7846
    functionName: OSRSetSinusoidal
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetSinusoidal(OGRSpatialReferenceH hSRS, double dfCenterLong,\n
      \                       double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7858,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7860,1
    - Dst: proj_create_conversion_stereographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7860,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dfOriginLat
    - dfCMeridian
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7863
      start: 7852
    functionDepth: 5
    functionLinenumber: 7852
    functionLinenumberEnd: 7863
    functionName: OGRSpatialReference::SetStereographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_stereographic
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetStereographic(double dfOriginLat,\n
      \                                            double dfCMeridian, double dfScale,\n
      \                                            double dfFalseEasting,\n                                             double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7874,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - dfOriginLat
    - dfCMeridian
    - dfScale
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7878
      start: 7869
    functionDepth: 0
    functionLinenumber: 7869
    functionLinenumberEnd: 7878
    functionName: OSRSetStereographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetStereographic(OGRSpatialReferenceH hSRS, double dfOriginLat,\n
      \                          double dfCMeridian, double dfScale,\n                           double
      dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7896,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7898,1
    - Dst: proj_create_conversion_hotine_oblique_mercator_variant_b
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7899,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7900,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7904,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7905,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7906,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7907,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - dfLatitudeOfOrigin
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7912
      start: 7890
    functionDepth: 5
    functionLinenumber: 7890
    functionLinenumberEnd: 7912
    functionName: OGRSpatialReference::SetSOC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_hotine_oblique_mercator_variant_b
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetProjection
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetSOC(double dfLatitudeOfOrigin,\n                                   double
      dfCentralMeridian,\n                                   double dfFalseEasting,\n
      \                                  double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7923,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfLatitudeOfOrigin
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7927
      start: 7918
    functionDepth: 0
    functionLinenumber: 7918
    functionLinenumberEnd: 7927
    functionName: OSRSetSOC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetSOC(OGRSpatialReferenceH hSRS, double dfLatitudeOfOrigin,\n
      \                double dfCentralMeridian, double dfFalseEasting,\n                 double
      dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7937,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7939,1
    - Dst: proj_create_conversion_van_der_grinten
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7939,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfCMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7942
      start: 7933
    functionDepth: 5
    functionLinenumber: 7933
    functionLinenumberEnd: 7942
    functionName: OGRSpatialReference::SetVDG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_van_der_grinten
    - replaceConversionAndUnref
    - getPROJContext
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetVDG(double dfCMeridian, double dfFalseEasting,\n
      \                                  double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7952,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - dfCentralMeridian
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7956
      start: 7948
    functionDepth: 0
    functionLinenumber: 7948
    functionLinenumberEnd: 7956
    functionName: OSRSetVDG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetVDG(OGRSpatialReferenceH hSRS, double dfCentralMeridian,\n
      \                double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7983,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7987,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7991,1
    - Dst: proj_create_conversion_utm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7992,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:7992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nZone
    - bNorth
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7993
      start: 7980
    functionDepth: 5
    functionLinenumber: 7980
    functionLinenumberEnd: 7993
    functionName: OGRSpatialReference::SetUTM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_utm
    - replaceConversionAndUnref
    - getPROJContext
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetUTM(int nZone, int bNorth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8007,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - nZone
    - bNorth
    argTypes:
    - OGRSpatialReferenceH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 8010
      start: 8004
    functionDepth: 0
    functionLinenumber: 8004
    functionLinenumberEnd: 8010
    functionName: OSRSetUTM
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRSetUTM(OGRSpatialReferenceH hSRS, int nZone, int bNorth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8036,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8038,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8038,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8040,1
    - Dst: OGRSpatialReference*::DemoteTo2D
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8041,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8050,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8053,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8056,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8059,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8059,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8064,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8075,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8076,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8076,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8079,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - pbNorth
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 8080
      start: 8033
    functionDepth: 3
    functionLinenumber: 8033
    functionLinenumberEnd: 8080
    functionName: OGRSpatialReference::GetUTMZone
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::GetAxesCount
    - static_cast<int>
    - OGRSpatialReference::GetProjParm
    - EQUAL
    - std::abs
    - OGRSpatialReference::Clone
    - OGRSpatialReference::GetNormProjParm
    - fabs
    - std::isnan
    - OGRSpatialReference*::DemoteTo2D
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::GetUTMZone(int *pbNorth) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8094,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pbNorth
    argTypes:
    - OGRSpatialReferenceH
    - int*
    constantsTouched: []
    func_position:
      end: 8097
      start: 8091
    functionDepth: 0
    functionLinenumber: 8091
    functionLinenumberEnd: 8097
    functionName: OSRGetUTMZone
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRGetUTMZone(OGRSpatialReferenceH hSRS, int *pbNorth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8108,1
    - Dst: proj_create_conversion_wagner_i
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8113,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8113,1
    - Dst: proj_create_conversion_wagner_ii
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8119,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8119,1
    - Dst: proj_create_conversion_wagner_iii
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8125,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8126,1
    - Dst: proj_create_conversion_wagner_iv
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8131,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8131,1
    - Dst: proj_create_conversion_wagner_v
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8137,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8137,1
    - Dst: proj_create_conversion_wagner_vi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8143,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8143,1
    - Dst: proj_create_conversion_wagner_vii
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8149,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8150,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8155,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - nVariation
    - dfCenterLat
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8161
      start: 8103
    functionDepth: 5
    functionLinenumber: 8103
    functionLinenumberEnd: 8161
    functionName: OGRSpatialReference::SetWagner
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_create_conversion_wagner_iii
    - proj_create_conversion_wagner_iv
    - proj_create_conversion_wagner_vi
    - proj_create_conversion_wagner_v
    - replaceConversionAndUnref
    - proj_create_conversion_wagner_ii
    - getPROJContext
    - proj_create_conversion_wagner_vii
    - CPLError
    - proj_create_conversion_wagner_i
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetWagner(int nVariation,  // 1--7.\n
      \                                     double dfCenterLat, double dfFalseEasting,\n
      \                                     double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8172,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - nVariation
    - dfCenterLat
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8176
      start: 8167
    functionDepth: 0
    functionLinenumber: 8167
    functionLinenumberEnd: 8176
    functionName: OSRSetWagner
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetWagner(OGRSpatialReferenceH hSRS, int nVariation,\n                    double
      dfCenterLat, double dfFalseEasting,\n                    double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8184,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8186,1
    - Dst: proj_create_conversion_quadrilateralized_spherical_cube
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8187,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfCenterLat
    - dfCenterLong
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8190
      start: 8182
    functionDepth: 5
    functionLinenumber: 8182
    functionLinenumberEnd: 8190
    functionName: OGRSpatialReference::SetQSC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_quadrilateralized_spherical_cube
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::SetQSC(double dfCenterLat, double dfCenterLong)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8200,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - dfCenterLat
    - dfCenterLong
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8203
      start: 8196
    functionDepth: 0
    functionLinenumber: 8196
    functionLinenumberEnd: 8203
    functionName: OSRSetQSC
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetQSC(OGRSpatialReferenceH hSRS, double dfCenterLat,\n
      \                double dfCenterLong)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8213,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8215,1
    - Dst: proj_create_conversion_spherical_cross_track_height
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8216,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfPegLat
    - dfPegLong
    - dfPegHeading
    - dfPegHgt
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8219
      start: 8209
    functionDepth: 5
    functionLinenumber: 8209
    functionLinenumberEnd: 8219
    functionName: OGRSpatialReference::SetSCH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - getPROJContext
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - proj_create_conversion_spherical_cross_track_height
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetSCH(double dfPegLat, double dfPegLong,\n
      \                                  double dfPegHeading, double dfPegHgt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8229,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSRS
    - dfPegLat
    - dfPegLong
    - dfPegHeading
    - dfPegHgt
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8232
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8232
    functionName: OSRSetSCH
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetSCH(OGRSpatialReferenceH hSRS, double dfPegLat, double
      dfPegLong,\n                 double dfPegHeading, double dfPegHgt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8242,1
    - Dst: replaceConversionAndUnref
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8244,1
    - Dst: proj_create_conversion_vertical_perspective
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8245,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfTopoOriginLat
    - dfTopoOriginLon
    - dfTopoOriginHeight
    - dfViewPointHeight
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8249
      start: 8238
    functionDepth: 5
    functionLinenumber: 8238
    functionLinenumberEnd: 8249
    functionName: OGRSpatialReference::SetVerticalPerspective
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - replaceConversionAndUnref
    - getPROJContext
    - proj_create_conversion_vertical_perspective
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetVerticalPerspective(\n    double dfTopoOriginLat,
      double dfTopoOriginLon, double dfTopoOriginHeight,\n    double dfViewPointHeight,
      double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8262,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - hSRS
    - dfTopoOriginLat
    - dfTopoOriginLon
    - dfTopoOriginHeight
    - dfViewPointHeight
    - dfFalseEasting
    - dfFalseNorthing
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8267
      start: 8255
    functionDepth: 0
    functionLinenumber: 8255
    functionLinenumberEnd: 8267
    functionName: OSRSetVerticalPerspective
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetVerticalPerspective(OGRSpatialReferenceH hSRS,\n                                 double
      dfTopoOriginLat, double dfTopoOriginLon,\n                                 double
      dfTopoOriginHeight,\n                                 double dfViewPointHeight,\n
      \                                double dfFalseEasting, double dfFalseNorthing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8277,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8279,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8284,1
    - Dst: proj_create_conversion_pole_rotation_grib_convention
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8285,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8287,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8288,1
    - Dst: proj_create_derived_geographic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8288,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8290,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pszCRSName
    - dfSouthPoleLat
    - dfSouthPoleLon
    - dfAxisRotation
    argTypes:
    - char*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8293
      start: 8273
    functionDepth: 5
    functionLinenumber: 8273
    functionLinenumberEnd: 8293
    functionName: OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationGRIBConvention
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - proj_create_conversion_pole_rotation_grib_convention
    - setPjCRS
    - proj_create_derived_geographic_crs
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationGRIBConvention(\n
      \   const char *pszCRSName, double dfSouthPoleLat, double dfSouthPoleLon,\n
      \   double dfAxisRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8303,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8307,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8312,1
    - Dst: proj_create_conversion_pole_rotation_netcdf_cf_convention
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8313,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8316,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8317,1
    - Dst: proj_create_derived_geographic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8317,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8319,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8320,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8324,1
    - Dst: OGRSpatialReference::SetExtension
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8325,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8327,1
    - Dst: OGRSpatialReference::GetSemiMajor
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8332,1
    - Dst: OGRSpatialReference::GetSemiMinor
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pszCRSName
    - dfGridNorthPoleLat
    - dfGridNorthPoleLon
    - dfNorthPoleGridLon
    argTypes:
    - char*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 8336
      start: 8299
    functionDepth: 5
    functionLinenumber: 8299
    functionLinenumberEnd: 8336
    functionName: OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationNetCDFCFConvention
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::GetSemiMinor
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - OGRSpatialReference::SetExtension
    - setPjCRS
    - CPLSPrintf
    - proj_create_derived_geographic_crs
    - getPROJContext
    - proj_create_conversion_pole_rotation_netcdf_cf_convention
    - refreshProjObj
    - OGRSpatialReference::GetSemiMajor
    - OGRSpatialReference::SetProjection
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetDerivedGeogCRSWithPoleRotationNetCDFCFConvention(\n
      \   const char *pszCRSName, double dfGridNorthPoleLat,\n    double dfGridNorthPoleLon,
      double dfNorthPoleGridLon)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8361,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8363,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8364,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8371,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8372,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8373,1
    - Dst: proj_alter_id
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8373,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8373,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8374,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8375,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8379,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8380,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8383,1
    - Dst: proj_alter_id
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8385,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8385,1
    - Dst: getGeodBaseCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8385,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8386,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8389,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8389,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8391,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8392,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8392,1
    - Dst: getProjCRSCoordSys
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8393,1
    - Dst: proj_alter_id
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8401,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8401,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8403,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8407,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8408,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8410,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8411,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8414,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8419,1
    - Dst: OGR_SRSNode*::DestroyChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8430,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8437,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8439,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8440,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8440,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8441,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8441,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - pszTargetKey
    - pszAuthority
    - nCode
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 8446
      start: 8357
    functionDepth: 5
    functionLinenumber: 8357
    functionLinenumberEnd: 8446
    functionName: OGRSpatialReference::SetAuthority
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 6
    functionsReached:
    - proj_alter_id
    - OGR_SRSNode*::AddChild
    - demoteFromBoundCRS
    - getProjCRSCoordSys
    - OGR_SRSNode*::DestroyChild
    - getPROJContext
    - nullifyTargetKeyIfPossible
    - OGRSpatialReference::GetAttrNode
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - CPLString::c_str
    - getProjCRSName
    - proj_create_projected_crs
    - proj_destroy
    - CPLString::Printf
    - snprintf
    - refreshProjObj
    - undoDemoteFromBoundCRS
    - EQUAL
    - getGeodBaseCRS
    - OGR_SRSNode::OGR_SRSNode
    - proj_crs_get_coordoperation
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetAuthority(const char *pszTargetKey,\n
      \                                        const char *pszAuthority, int nCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8461,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszTargetKey
    - pszAuthority
    - nCode
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 8464
      start: 8457
    functionDepth: 0
    functionLinenumber: 8457
    functionLinenumberEnd: 8464
    functionName: OSRSetAuthority
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetAuthority(OGRSpatialReferenceH hSRS, const char *pszTargetKey,\n
      \                      const char *pszAuthority, int nCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8493,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8495,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8497,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8504,1
    - Dst: proj_get_id_code
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8505,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8508,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8509,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8513,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8531,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8534,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8535,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8540,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8541,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8545,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8548,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8549,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8554,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8555,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8563,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8571,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8574,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8574,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8579,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8582,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 1
    argNames:
    - pszTargetKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 8583
      start: 8489
    functionDepth: 5
    functionLinenumber: 8489
    functionLinenumberEnd: 8583
    functionName: OGRSpatialReference::GetAuthorityCode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 5
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - CPLSPrintf
    - proj_get_id_code
    - getPROJContext
    - EQUAL
    - refreshProjObj
    - proj_crs_get_sub_crs
    - OGR_SRSNode*::FindChild
    - nullifyTargetKeyIfPossible
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: char
    signature: 'char *

      OGRSpatialReference::GetAuthorityCode(const char *pszTargetKey) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8598,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszTargetKey
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 8601
      start: 8594
    functionDepth: 0
    functionLinenumber: 8594
    functionLinenumberEnd: 8601
    functionName: OSRGetAuthorityCode
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: "char *OSRGetAuthorityCode(OGRSpatialReferenceH hSRS,\n                                const
      char *pszTargetKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8629,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8631,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8633,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8640,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8641,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8644,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8645,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8649,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8667,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8670,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8671,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8676,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8677,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8681,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8684,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8685,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8690,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8691,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8699,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8707,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8710,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8710,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8715,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 1
    argNames:
    - pszTargetKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 8719
      start: 8625
    functionDepth: 5
    functionLinenumber: 8625
    functionLinenumberEnd: 8719
    functionName: OGRSpatialReference::GetAuthorityName
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - CPLSPrintf
    - EQUAL
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    - proj_get_id_auth_name
    - nullifyTargetKeyIfPossible
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - proj_crs_get_coordinate_system
    - OGR_SRSNode*::FindChild
    linkageType: ''
    returnType: char
    signature: 'char *

      OGRSpatialReference::GetAuthorityName(const char *pszTargetKey) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8734,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszTargetKey
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 8737
      start: 8730
    functionDepth: 0
    functionLinenumber: 8730
    functionLinenumberEnd: 8737
    functionName: OSRGetAuthorityName
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: "char *OSRGetAuthorityName(OGRSpatialReferenceH hSRS,\n                                const
      char *pszTargetKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8759,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8764,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8765,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8768,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8768,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8769,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8769,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8773,1
    - Dst: proj_get_id_code
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8774,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8775,1
    - Dst: proj_get_id_code
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8776,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8779,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8779,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8784,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8785,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8787
      start: 8756
    functionDepth: 5
    functionLinenumber: 8756
    functionLinenumberEnd: 8787
    functionName: OGRSpatialReference::GetOGCURN
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - CPLStrdup
    - proj_destroy
    - CPLSPrintf
    - proj_get_id_code
    - getPROJContext
    - proj_crs_get_sub_crs
    - proj_get_id_auth_name
    linkageType: ''
    returnType: char
    signature: char *OGRSpatialReference::GetOGCURN() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8810,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8812,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8813,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8816,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8819,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8819,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8822,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8829,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8837,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8838,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8840,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8841,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8842,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8846,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8847,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8851
      start: 8807
    functionDepth: 5
    functionLinenumber: 8807
    functionLinenumberEnd: 8851
    functionName: OGRSpatialReference::StripVertical
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - proj_crs_create_bound_crs
    - demoteFromBoundCRS
    - setPjCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::StripVertical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8865,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 8868
      start: 8862
    functionDepth: 0
    functionLinenumber: 8862
    functionLinenumberEnd: 8868
    functionName: OSRStripVertical
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRStripVertical(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8888,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8888,1
    - Dst: OGRSpatialReference::StripTOWGS84IfKnownDatum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8890,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8886
    functionDepth: 1
    functionLinenumber: 8886
    functionLinenumberEnd: 8899
    functionName: OGRSpatialReference::StripTOWGS84IfKnownDatumAndAllowed
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - OGRSpatialReference::StripTOWGS84IfKnownDatum
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: bool OGRSpatialReference::StripTOWGS84IfKnownDatumAndAllowed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8915,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8917,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8922,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8923,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8924,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8926,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8934,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8938,1
    - Dst: proj_crs_get_datum_ensemble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8943,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8948,1
    - Dst: proj_get_id_code
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8953,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8956,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8957,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8962,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8964,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8965,1
    - Dst: proj_create_from_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8970,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8975,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8979,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8982,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8985,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:8988,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8990
      start: 8912
    functionDepth: 5
    functionLinenumber: 8912
    functionLinenumberEnd: 8990
    functionName: OGRSpatialReference::StripTOWGS84IfKnownDatum
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - proj_get_type
    - proj_destroy
    - proj_list_get_count
    - proj_crs_get_datum
    - setPjCRS
    - proj_list_destroy
    - proj_get_id_code
    - getPROJContext
    - EQUAL
    - refreshProjObj
    - proj_create_from_name
    - proj_crs_get_datum_ensemble
    linkageType: ''
    returnType: bool
    signature: bool OGRSpatialReference::StripTOWGS84IfKnownDatum()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9007,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9009,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9010,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9014
      start: 9004
    functionDepth: 0
    functionLinenumber: 9004
    functionLinenumberEnd: 9014
    functionName: OGRSpatialReference::IsCompound
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - demoteFromBoundCRS
    - undoDemoteFromBoundCRS
    - refreshProjObj
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsCompound() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9028,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9031
      start: 9025
    functionDepth: 0
    functionLinenumber: 9025
    functionLinenumberEnd: 9031
    functionName: OSRIsCompound
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsCompound(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9050,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9052,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9053,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9058,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9058,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9061,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9065,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9065,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9068,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9069,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9072,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9077
      start: 9047
    functionDepth: 5
    functionLinenumber: 9047
    functionLinenumberEnd: 9077
    functionName: OGRSpatialReference::IsProjected
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 15
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - demoteFromBoundCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsProjected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9090,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9093
      start: 9087
    functionDepth: 0
    functionLinenumber: 9087
    functionLinenumberEnd: 9093
    functionName: OSRIsProjected
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsProjected(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9113,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9115,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9116,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9120
      start: 9110
    functionDepth: 0
    functionLinenumber: 9110
    functionLinenumberEnd: 9120
    functionName: OGRSpatialReference::IsGeocentric
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - demoteFromBoundCRS
    - undoDemoteFromBoundCRS
    - refreshProjObj
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsGeocentric() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9135,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9138
      start: 9132
    functionDepth: 0
    functionLinenumber: 9132
    functionLinenumberEnd: 9138
    functionName: OSRIsGeocentric
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsGeocentric(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9150,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9154
      start: 9148
    functionDepth: 0
    functionLinenumber: 9148
    functionLinenumberEnd: 9154
    functionName: OGRSpatialReference::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - refreshProjObj
    linkageType: ''
    returnType: bool
    signature: bool OGRSpatialReference::IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9173,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9175,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9176,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9182,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9182,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9185,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9190,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9190,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9193,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9196,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9199,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9204
      start: 9170
    functionDepth: 5
    functionLinenumber: 9170
    functionLinenumberEnd: 9204
    functionName: OGRSpatialReference::IsGeographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 10
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - demoteFromBoundCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsGeographic() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9217,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9220
      start: 9214
    functionDepth: 0
    functionLinenumber: 9214
    functionLinenumberEnd: 9220
    functionName: OSRIsGeographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsGeographic(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9238,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9240,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9241,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9248
      start: 9235
    functionDepth: 0
    functionLinenumber: 9235
    functionLinenumberEnd: 9248
    functionName: OGRSpatialReference::IsDerivedGeographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - demoteFromBoundCRS
    - undoDemoteFromBoundCRS
    - refreshProjObj
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsDerivedGeographic() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9262,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9265
      start: 9259
    functionDepth: 0
    functionLinenumber: 9259
    functionLinenumberEnd: 9265
    functionName: OSRIsDerivedGeographic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsDerivedGeographic(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9282,1
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9283,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9284,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9285,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9279
    functionDepth: 0
    functionLinenumber: 9279
    functionLinenumberEnd: 9293
    functionName: OGRSpatialReference::IsDerivedProjected
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - PROJ_AT_LEAST_VERSION
    - demoteFromBoundCRS
    - refreshProjObj
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsDerivedProjected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9308,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9311
      start: 9305
    functionDepth: 0
    functionLinenumber: 9305
    functionLinenumberEnd: 9311
    functionName: OSRIsDerivedProjected
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsDerivedProjected(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9329,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9332
      start: 9326
    functionDepth: 0
    functionLinenumber: 9326
    functionLinenumberEnd: 9332
    functionName: OGRSpatialReference::IsLocal
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 8
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - refreshProjObj
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsLocal() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9345,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9348
      start: 9342
    functionDepth: 0
    functionLinenumber: 9342
    functionLinenumberEnd: 9348
    functionName: OSRIsLocal
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsLocal(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9369,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9370,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9371,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9376,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9376,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9379,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9383,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9383,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9386,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9387,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9390,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9395
      start: 9366
    functionDepth: 5
    functionLinenumber: 9366
    functionLinenumberEnd: 9395
    functionName: OGRSpatialReference::IsVertical
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - demoteFromBoundCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsVertical() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9410,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9413
      start: 9407
    functionDepth: 0
    functionLinenumber: 9407
    functionLinenumberEnd: 9413
    functionName: OSRIsVertical
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsVertical(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9437,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9439,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9440,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9441,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9445,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9449,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9451,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9453,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9456,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9460,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9470,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9471,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9476,1
    - Dst: proj_crs_get_datum_ensemble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9483,1
    - Dst: proj_datum_ensemble_get_member
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9486,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9489,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9492,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9494,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9498,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9499,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9501
      start: 9434
    functionDepth: 5
    functionLinenumber: 9434
    functionLinenumberEnd: 9501
    functionName: OGRSpatialReference::IsDynamic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - demoteFromBoundCRS
    - proj_crs_get_datum
    - proj_clone
    - EQUAL
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    - proj_datum_ensemble_get_member
    - proj_crs_get_datum_ensemble
    linkageType: ''
    returnType: bool
    signature: bool OGRSpatialReference::IsDynamic() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9519,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9522
      start: 9516
    functionDepth: 0
    functionLinenumber: 9516
    functionLinenumberEnd: 9522
    functionName: OSRIsDynamic
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsDynamic(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9547,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9548,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9549,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9550,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9552,1
    - Dst: proj_crs_has_point_motion_operation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9552,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9542
    functionDepth: 5
    functionLinenumber: 9542
    functionLinenumberEnd: 9558
    functionName: OGRSpatialReference::HasPointMotionOperation
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - demoteFromBoundCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_has_point_motion_operation
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRSpatialReference::HasPointMotionOperation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9578,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9581
      start: 9575
    functionDepth: 0
    functionLinenumber: 9575
    functionLinenumberEnd: 9581
    functionName: OSRHasPointMotionOperation
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRHasPointMotionOperation(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9596,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9597,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9604,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9604,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9607,1
    - Dst: proj_get_target_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9611,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9611,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9612,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9612,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9614,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9614,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9616,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9618,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9619,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9628,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9630,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9630,1
    - Dst: proj_crs_get_datum_ensemble
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9635,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9635,1
    - Dst: proj_create_ellipsoidal_2D_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9641,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9642,1
    - Dst: proj_create_geographic_crs_from_datum
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9644,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9645,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9646,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9647,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9648,1
    - Dst: OGRSpatialReference*::d::setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9653,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9660
      start: 9593
    functionDepth: 5
    functionLinenumber: 9593
    functionLinenumberEnd: 9660
    functionName: OGRSpatialReference::CloneGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - proj_create_ellipsoidal_2D_cs
    - TAKE_OPTIONAL_LOCK
    - proj_crs_get_datum_ensemble
    - OGRSpatialReference::OGRSpatialReference
    - proj_create_geographic_crs_from_datum
    - OGRSpatialReference*::SetAxisMappingStrategy
    - proj_destroy
    - proj_get_type
    - proj_crs_create_bound_crs
    - proj_crs_get_datum
    - getPROJContext
    - OGRSpatialReference*::d::setPjCRS
    - refreshProjObj
    - proj_crs_get_coordoperation
    - proj_get_target_crs
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSpatialReference::CloneGeogCS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9674,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9676,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSource
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9677
      start: 9671
    functionDepth: 0
    functionLinenumber: 9671
    functionLinenumberEnd: 9677
    functionName: CPL_STDCALL::OSRCloneGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH CPL_STDCALL OSRCloneGeogCS(OGRSpatialReferenceH
      hSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsSameGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 9697
      start: 9693
    functionDepth: 1
    functionLinenumber: 9693
    functionLinenumberEnd: 9697
    functionName: OGRSpatialReference::IsSameGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::IsSameGeogCS
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsSameGeogCS(const OGRSpatialReference *poOther)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9714,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9716,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9718,1
    - Dst: OGRSpatialReference*::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9719,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9730,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9730,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9732,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9732,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9735,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9736,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9743,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - poOther
    - papszOptions
    argTypes:
    - OGRSpatialReference*
    - char**
    constantsTouched: []
    func_position:
      end: 9746
      start: 9710
    functionDepth: 5
    functionLinenumber: 9710
    functionLinenumberEnd: 9746
    functionName: OGRSpatialReference::IsSameGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - getPROJContext
    - CPL_IGNORE_RET_VAL
    - refreshProjObj
    - OGRSpatialReference*::d::refreshProjObj
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: int
    signature: "int OGRSpatialReference::IsSameGeogCS(const OGRSpatialReference *poOther,\n
      \                                     const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9760,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9761,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9763,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS1
    - hSRS2
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9764
      start: 9757
    functionDepth: 0
    functionLinenumber: 9757
    functionLinenumberEnd: 9764
    functionName: OSRIsSameGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsSameGeogCS(OGRSpatialReferenceH hSRS1, OGRSpatialReferenceH
      hSRS2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9783,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9792,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9798,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9802,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9806,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9806,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 9810
      start: 9780
    functionDepth: 3
    functionLinenumber: 9780
    functionLinenumberEnd: 9810
    functionName: OGRSpatialReference::IsSameVertCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference*::GetAttrValue
    - EQUAL
    - std::abs
    - OGRSpatialReference::GetAttrValue
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsSameVertCS(const OGRSpatialReference *poOther)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9824,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9825,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9827,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS1
    - hSRS2
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9828
      start: 9821
    functionDepth: 0
    functionLinenumber: 9821
    functionLinenumberEnd: 9828
    functionName: OSRIsSameVertCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsSameVertCS(OGRSpatialReferenceH hSRS1, OGRSpatialReferenceH
      hSRS2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOtherSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 9846
      start: 9842
    functionDepth: 0
    functionLinenumber: 9842
    functionLinenumberEnd: 9846
    functionName: OGRSpatialReference::IsSame
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - OGRSpatialReference::IsSame
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsSame(const OGRSpatialReference *poOtherSRS)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9870,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9872,1
    - Dst: OGRSpatialReference*::d::refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9873,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9876,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9876,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9883,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9883,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9895,1
    - Dst: OGRSpatialReference*::d::demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9901,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9909,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9911,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9913,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9915,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9921,1
    - Dst: OGRSpatialReference*::d::undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9923,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - poOtherSRS
    - papszOptions
    argTypes:
    - OGRSpatialReference*
    - char**
    constantsTouched: []
    func_position:
      end: 9926
      start: 9866
    functionDepth: 1
    functionLinenumber: 9866
    functionLinenumberEnd: 9926
    functionName: OGRSpatialReference::IsSame
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - CPLTestBool
    - undoDemoteFromBoundCRS
    - OGRSpatialReference*::d::demoteFromBoundCRS
    - demoteFromBoundCRS
    - CSLFetchNameValueDef
    - EQUAL
    - refreshProjObj
    - CPLError
    - OGRSpatialReference*::d::undoDemoteFromBoundCRS
    - OGRSpatialReference*::d::refreshProjObj
    linkageType: ''
    returnType: int
    signature: "int OGRSpatialReference::IsSame(const OGRSpatialReference *poOtherSRS,\n
      \                               const char *const *papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9940,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9941,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9943,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS1
    - hSRS2
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 9944
      start: 9937
    functionDepth: 0
    functionLinenumber: 9937
    functionLinenumberEnd: 9944
    functionName: OSRIsSame
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRIsSame(OGRSpatialReferenceH hSRS1, OGRSpatialReferenceH hSRS2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9958,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9959,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9961,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSRS1
    - hSRS2
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 9962
      start: 9955
    functionDepth: 0
    functionLinenumber: 9955
    functionLinenumberEnd: 9962
    functionName: OSRIsSameEx
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OSRIsSameEx(OGRSpatialReferenceH hSRS1, OGRSpatialReferenceH hSRS2,\n
      \               const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:9996,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10000,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10004,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10008,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10017,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10018,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10023,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10023,1
    - Dst: proj_convert_conversion_to_other_method
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10024,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10025,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10026,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10030,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10030,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10031,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10031,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10035,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10036,1
    - Dst: proj_get_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10036,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10038,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10041,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10045,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10046,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10050,1
    - Dst: OGRSpatialReference*::d::setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10055,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10058,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10059,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10062,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - pszTargetProjection
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 10064
      start: 9987
    functionDepth: 5
    functionLinenumber: 9987
    functionLinenumberEnd: 10064
    functionName: OGRSpatialReference::convertToOtherProjection
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::OGRSpatialReference
    - undoDemoteFromBoundCRS
    - proj_destroy
    - proj_crs_create_bound_crs
    - demoteFromBoundCRS
    - EQUAL
    - getPROJContext
    - proj_convert_conversion_to_other_method
    - OGRSpatialReference*::d::setPjCRS
    - refreshProjObj
    - proj_crs_get_coordoperation
    - proj_create_projected_crs
    - proj_crs_get_coordinate_system
    - proj_get_name
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: OGRSpatialReference
    signature: "OGRSpatialReference *OGRSpatialReference::convertToOtherProjection(\n
      \   const char *pszTargetProjection,\n    CPL_UNUSED const char *const *papszOptions)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10095,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10096,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - pszTargetProjection
    - papszOptions
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 10098
      start: 10090
    functionDepth: 0
    functionLinenumber: 10090
    functionLinenumberEnd: 10098
    functionName: OSRConvertToOtherProjection
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: "OGRSpatialReferenceH OSRConvertToOtherProjection(OGRSpatialReferenceH
      hSRS,\n                            const char *pszTargetProjection,\n                            const
      char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10138,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10140,1
    - Dst: OGRSpatialReference*::FindMatches
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - hSRS
    - papszOptions
    - pnEntries
    - ppanMatchConfidence
    argTypes:
    - OGRSpatialReferenceH
    - char**
    - int*
    - int**
    constantsTouched: []
    func_position:
      end: 10142
      start: 10130
    functionDepth: 0
    functionLinenumber: 10130
    functionLinenumberEnd: 10142
    functionName: OSRFindMatches
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    - OGRSpatialReference*::FindMatches
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: "OGRSpatialReferenceH *OSRFindMatches(OGRSpatialReferenceH hSRS,\n
      \                                    char **papszOptions, int *pnEntries,\n
      \                                    int **ppanMatchConfidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSRRelease
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10160,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pahSRS
    argTypes:
    - OGRSpatialReferenceH*
    constantsTouched: []
    func_position:
      end: 10164
      start: 10154
    functionDepth: 1
    functionLinenumber: 10154
    functionLinenumberEnd: 10164
    functionName: OSRFreeSRSArray
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OSRRelease
    linkageType: ''
    returnType: void
    signature: void OSRFreeSRSArray(OGRSpatialReferenceH *pahSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10198,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10200,1
    - Dst: OGRSpatialReference::FindMatches
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10211,1
    - Dst: OGRSpatialReference::GetTOWGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10215,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10217,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10220,1
    - Dst: std::unique_ptr<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10223,1
    - Dst: auto::CloneGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10223,1
    - Dst: std::vector<double>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10236,1
    - Dst: auto::GetAuthorityName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10237,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10238,1
    - Dst: auto::GetAuthorityCode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10239,1
    - Dst: auto::GetAuthorityName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10240,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10242,1
    - Dst: auto::GetAuthorityCode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10243,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10246,1
    - Dst: auto::importFromEPSG
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10248,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10248,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10251,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10269,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10283,1
    - Dst: OSRFreeSRSArray
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10284,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10285,1
    - Dst: OSRFreeSRSArray
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10289,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10290,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 3
    argNames:
    - nMinimumMatchConfidence
    - pszPreferredAuthority
    - papszOptions
    argTypes:
    - int
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 10292
      start: 10193
    functionDepth: 2
    functionLinenumber: 10193
    functionLinenumberEnd: 10292
    functionName: OGRSpatialReference::FindBestMatch
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::GetTOWGS84
    - std::unique_ptr<OGRSpatialReference>
    - FromHandle
    - auto::GetAuthorityCode
    - atoi
    - auto::importFromEPSG
    - OGRSpatialReference::FindMatches
    - auto::GetAuthorityName
    - EQUAL
    - OSRFreeSRSArray
    - CPL_IGNORE_RET_VAL
    - std::vector::clear
    - auto::CloneGeogCS
    - CPLFree
    - std::vector<double>
    linkageType: ''
    returnType: OGRSpatialReference
    signature: "OGRSpatialReference *\nOGRSpatialReference::FindBestMatch(int nMinimumMatchConfidence,\n
      \                                  const char *pszPreferredAuthority,\n                                   CSLConstList
      papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10326,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10328,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10337,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10337,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10340,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10347,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10355,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10363,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10371,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10379,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10387,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10395,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10402,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10402,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10408,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10410,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10411,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10418,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10423,1
    - Dst: proj_create_transformation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10430,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10431,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10438,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10439,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10442,1
    - Dst: proj_crs_create_bound_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10446,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10447,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10448,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10449,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 80
    argCount: 7
    argNames:
    - dfDX
    - dfDY
    - dfDZ
    - dfEX
    - dfEY
    - dfEZ
    - dfPPM
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 10457
      start: 10321
    functionDepth: 5
    functionLinenumber: 10321
    functionLinenumberEnd: 10457
    functionName: OGRSpatialReference::SetTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - proj_get_type
    - XSTRINGIFY
    - proj_destroy
    - proj_crs_create_bound_crs
    - CPLString::Printf
    - setPjCRS
    - proj_create_transformation
    - getPROJContext
    - CPLString::c_str
    - proj_create_from_database
    - refreshProjObj
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetTOWGS84(double dfDX, double dfDY, double
      dfDZ,\n                                       double dfEX, double dfEY, double
      dfEZ,\n                                       double dfPPM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10473,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - hSRS
    - dfDX
    - dfDY
    - dfDZ
    - dfEX
    - dfEY
    - dfEZ
    - dfPPM
    argTypes:
    - OGRSpatialReferenceH
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 10477
      start: 10468
    functionDepth: 0
    functionLinenumber: 10468
    functionLinenumberEnd: 10477
    functionName: OSRSetTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetTOWGS84(OGRSpatialReferenceH hSRS, double dfDX, double
      dfDY,\n                     double dfDZ, double dfEX, double dfEY, double dfEZ,\n
      \                    double dfPPM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10499,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10501,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10505,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10507,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10507,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - padfCoeff
    - nCoeffCount
    argTypes:
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 10513
      start: 10496
    functionDepth: 5
    functionLinenumber: 10496
    functionLinenumberEnd: 10513
    functionName: OGRSpatialReference::GetTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_crs_get_coordoperation
    - proj_destroy
    - getPROJContext
    - refreshProjObj
    - memset
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::GetTOWGS84(double *padfCoeff, int nCoeffCount)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10528,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSRS
    - padfCoeff
    - nCoeffCount
    argTypes:
    - OGRSpatialReferenceH
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 10531
      start: 10524
    functionDepth: 0
    functionLinenumber: 10524
    functionLinenumberEnd: 10531
    functionName: OSRGetTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRGetTOWGS84(OGRSpatialReferenceH hSRS, double *padfCoeff,\n
      \                    int nCoeffCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10546,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10547,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10548,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10549,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10550,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - pszParameterName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 10555
      start: 10543
    functionDepth: 0
    functionLinenumber: 10543
    functionLinenumberEnd: 10555
    functionName: OGRSpatialReference::IsAngularParameter
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsAngularParameter(const char *pszParameterName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10571,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszParameterName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 10576
      start: 10568
    functionDepth: 0
    functionLinenumber: 10568
    functionLinenumberEnd: 10576
    functionName: OGRSpatialReference::IsLongitudeParameter
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsLongitudeParameter(const char *pszParameterName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10592,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszParameterName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 10597
      start: 10589
    functionDepth: 0
    functionLinenumber: 10589
    functionLinenumberEnd: 10597
    functionName: OGRSpatialReference::IsLinearParameter
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::IsLinearParameter(const char *pszParameterName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10610,1
    - Dst: OGRSpatialReference::GetPrimeMeridian
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10620,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10621,1
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10622,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10622,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10625
      start: 10607
    functionDepth: 6
    functionLinenumber: 10607
    functionLinenumberEnd: 10625
    functionName: OGRSpatialReference::GetNormInfo
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::GetPrimeMeridian
    - OGRSpatialReference::GetAngularUnits
    - fabs
    - OGRSpatialReference::GetLinearUnits
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::GetNormInfo() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10649,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10655,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10655,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10665,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10667,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10667,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10670,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10670,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - pszTargetKey
    - pszName
    - pszDefault
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 10676
      start: 10644
    functionDepth: 2
    functionLinenumber: 10644
    functionLinenumberEnd: 10676
    functionName: OGRSpatialReference::GetExtension
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - OGRSpatialReference::GetRoot
    - EQUAL
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - OGR_SRSNode*::GetValue
    linkageType: ''
    returnType: char
    signature: "char *OGRSpatialReference::GetExtension(const char *pszTargetKey,\n
      \                                             const char *pszName,\n                                              const
      char *pszDefault) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10699,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10707,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10709,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10719,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10721,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10721,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10724,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10724,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10726,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10735,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10736,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10736,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10737,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10737,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pszTargetKey
    - pszName
    - pszValue
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 10742
      start: 10694
    functionDepth: 2
    functionLinenumber: 10694
    functionLinenumberEnd: 10742
    functionName: OGRSpatialReference::SetExtension
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::GetChildCount
    - OGR_SRSNode*::AddChild
    - OGRSpatialReference::GetRoot
    - EQUAL
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference::GetAttrNode
    - OGR_SRSNode*::GetValue
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetExtension(const char *pszTargetKey,\n
      \                                        const char *pszName,\n                                         const
      char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCTDumpStatistics
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10764,1
    - Dst: CSVDeaccess
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10765,1
    - Dst: CleanupSRSWGS84Mutex
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10766,1
    - Dst: OSRCTCleanCache
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10767,1
    - Dst: OSRCleanupTLSContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10769
      start: 10761
    functionDepth: 4
    functionLinenumber: 10761
    functionLinenumberEnd: 10769
    functionName: OSRCleanup
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CSVDeaccess
    - OSRCTCleanCache
    - OGRCTDumpStatistics
    - CleanupSRSWGS84Mutex
    - OSRCleanupTLSContext
    linkageType: ''
    returnType: void
    signature: void OSRCleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10782,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10785,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10790,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10791,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10796,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10799,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10801,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10804,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10808,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10811,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10812,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10814,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10819,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10822,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10823,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10826,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10780
    functionDepth: 5
    functionLinenumber: 10780
    functionLinenumberEnd: 10828
    functionName: OGRSpatialReference::GetAxesCount
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - proj_get_source_crs
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - proj_cs_get_axis_count
    - demoteFromBoundCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_get_sub_crs
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::GetAxesCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10845,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 10848
      start: 10842
    functionDepth: 0
    functionLinenumber: 10842
    functionLinenumberEnd: 10848
    functionName: OSRGetAxesCount
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSRGetAxesCount(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10881,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10888,1
    - Dst: nullifyTargetKeyIfPossible
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10894,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10897,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10901,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10906,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10909,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10911,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10914,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10918,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10919,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10922,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10924,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10925,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10933,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10936,1
    - Dst: proj_get_source_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10938,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10941,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10946,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10947,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10953,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10961,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10977,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10979,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10981,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10983,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10985,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10988,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10989,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10990,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10992,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:10994,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11003,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11005,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11018,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11020,1
    - Dst: OGR_SRSNode*::GetValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11020,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11034,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11044,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11046,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11048,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11050,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11052,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11054,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11056,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11060,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11065,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 112
    argCount: 4
    argNames:
    - pszTargetKey
    - iAxis
    - peOrientation
    - pdfConvUnit
    argTypes:
    - char*
    - int
    - OGRAxisOrientation*
    - double*
    constantsTouched: []
    func_position:
      end: 11066
      start: 10876
    functionDepth: 5
    functionLinenumber: 10876
    functionLinenumberEnd: 11066
    functionName: OGRSpatialReference::GetAxis
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode*::GetChildCount
    - OGRSpatialReference::GetRoot
    - proj_cs_get_axis_count
    - demoteFromBoundCRS
    - CPLDebug
    - getPROJContext
    - nullifyTargetKeyIfPossible
    - OGRSpatialReference::GetAttrNode
    - TAKE_OPTIONAL_LOCK
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_get_source_crs
    - c_str
    - proj_get_type
    - proj_destroy
    - refreshProjObj
    - OGR_SRSNode*::GetValue
    - undoDemoteFromBoundCRS
    - EQUAL
    - proj_crs_get_sub_crs
    - OGR_SRSNode*::GetChild
    linkageType: ''
    returnType: char
    signature: "char *OGRSpatialReference::GetAxis(const char *pszTargetKey, int iAxis,\n
      \                                        OGRAxisOrientation *peOrientation,\n
      \                                        double *pdfConvUnit) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11081,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSRS
    - pszTargetKey
    - iAxis
    - peOrientation
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - int
    - OGRAxisOrientation*
    constantsTouched: []
    func_position:
      end: 11084
      start: 11077
    functionDepth: 0
    functionLinenumber: 11077
    functionLinenumberEnd: 11084
    functionName: OSRGetAxis
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: "char *OSRGetAxis(OGRSpatialReferenceH hSRS, const char *pszTargetKey,\n
      \                      int iAxis, OGRAxisOrientation *peOrientation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - eOrientation
    argTypes:
    - OGRAxisOrientation
    constantsTouched: []
    func_position:
      end: 11117
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11117
    functionName: OSRAxisEnumToName
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSRAxisEnumToName(OGRAxisOrientation eOrientation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11147,1
    - Dst: OGRSpatialReference::GetRoot
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11155,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11157,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11165,1
    - Dst: OGR_SRSNode*::DestroyChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11166,1
    - Dst: OGR_SRSNode*::FindChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11166,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11171,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11173,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11173,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11174,1
    - Dst: OSRAxisEnumToName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11174,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11174,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11176,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11178,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11180,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11180,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11181,1
    - Dst: OSRAxisEnumToName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11181,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11181,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - pszTargetKey
    - pszXAxisName
    - eXAxisOrientation
    - pszYAxisName
    - eYAxisOrientation
    argTypes:
    - char*
    - char*
    - OGRAxisOrientation
    - char*
    - OGRAxisOrientation
    constantsTouched: []
    func_position:
      end: 11186
      start: 11140
    functionDepth: 2
    functionLinenumber: 11140
    functionLinenumberEnd: 11186
    functionName: OGRSpatialReference::SetAxes
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGR_SRSNode*::AddChild
    - OSRAxisEnumToName
    - OGRSpatialReference::GetRoot
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode*::DestroyChild
    - OGR_SRSNode*::FindChild
    - OGRSpatialReference::GetAttrNode
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetAxes(const char *pszTargetKey,\n                                    const
      char *pszXAxisName,\n                                    OGRAxisOrientation
      eXAxisOrientation,\n                                    const char *pszYAxisName,\n
      \                                   OGRAxisOrientation eYAxisOrientation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11202,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - pszTargetKey
    - pszXAxisName
    - eXAxisOrientation
    - pszYAxisName
    - eYAxisOrientation
    argTypes:
    - OGRSpatialReferenceH
    - char*
    - char*
    - OGRAxisOrientation
    - char*
    - OGRAxisOrientation
    constantsTouched: []
    func_position:
      end: 11207
      start: 11196
    functionDepth: 0
    functionLinenumber: 11196
    functionLinenumberEnd: 11207
    functionName: OSRSetAxes
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetAxes(OGRSpatialReferenceH hSRS, const char *pszTargetKey,\n
      \                 const char *pszXAxisName,\n                  OGRAxisOrientation
      eXAxisOrientation,\n                  const char *pszYAxisName,\n                  OGRAxisOrientation
      eYAxisOrientation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11221,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS
    - ppszReturn
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 11226
      start: 11218
    functionDepth: 0
    functionLinenumber: 11218
    functionLinenumberEnd: 11226
    functionName: OSRExportToMICoordSys
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRExportToMICoordSys(OGRSpatialReferenceH hSRS, char **ppszReturn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABSpatialRef2CoordSys
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11250,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ppszResult
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 11255
      start: 11247
    functionDepth: 4
    functionLinenumber: 11247
    functionLinenumberEnd: 11255
    functionName: OGRSpatialReference::exportToMICoordSys
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - MITABSpatialRef2CoordSys
    - strlen
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::exportToMICoordSys(char **ppszResult) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11271,1
    - Dst: ToPointer
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszCoordSys
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 11274
      start: 11267
    functionDepth: 0
    functionLinenumber: 11267
    functionLinenumberEnd: 11274
    functionName: OSRImportFromMICoordSys
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - ToPointer
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRImportFromMICoordSys(OGRSpatialReferenceH hSRS,\n                               const
      char *pszCoordSys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABCoordSys2SpatialRef
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszCoordSys
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11306
      start: 11294
    functionDepth: 3
    functionLinenumber: 11294
    functionLinenumberEnd: 11306
    functionName: OGRSpatialReference::importFromMICoordSys
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - MITABCoordSys2SpatialRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromMICoordSys(const char *pszCoordSys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - dfSemiMajor
    - dfSemiMinor
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 11334
      start: 11322
    functionDepth: 1
    functionLinenumber: 11322
    functionLinenumberEnd: 11334
    functionName: OSRCalcInvFlattening
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - fabs
    linkageType: ''
    returnType: double
    signature: double OSRCalcInvFlattening(double dfSemiMajor, double dfSemiMinor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dfSemiMajor
    - dfInvFlattening
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 11363
      start: 11350
    functionDepth: 1
    functionLinenumber: 11350
    functionLinenumberEnd: 11363
    functionName: OSRCalcSemiMinorFromInvFlattening
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - fabs
    linkageType: ''
    returnType: double
    signature: "double OSRCalcSemiMinorFromInvFlattening(double dfSemiMajor,\n                                         double
      dfInvFlattening)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11387,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11390,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11394
      start: 11385
    functionDepth: 1
    functionLinenumber: 11385
    functionLinenumberEnd: 11394
    functionName: OGRSpatialReference::GetWGS84SRS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLMutexHolderD
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSpatialReference::GetWGS84SRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11404,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11409
      start: 11400
    functionDepth: 1
    functionLinenumber: 11400
    functionLinenumberEnd: 11409
    functionName: CleanupSRSWGS84Mutex
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - Release
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void CleanupSRSWGS84Mutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11422,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszProj4
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 11425
      start: 11419
    functionDepth: 0
    functionLinenumber: 11419
    functionLinenumberEnd: 11425
    functionName: OSRImportFromProj4
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRImportFromProj4(OGRSpatialReferenceH hSRS, const char *pszProj4)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11455,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11457,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11459,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11466,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11469,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11474,1
    - Dst: getenv
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11475,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11477,1
    - Dst: proj_context_use_proj4_init_rules
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11481,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11481,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11482,1
    - Dst: proj_create
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11482,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11482,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11482,1
    - Dst: proj_context_use_proj4_init_rules
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11483,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pszProj4
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11485
      start: 11452
    functionDepth: 5
    functionLinenumber: 11452
    functionLinenumberEnd: 11485
    functionName: OGRSpatialReference::importFromProj4
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - getenv
    - CPLString::find
    - proj_create
    - getPROJContext
    - proj_context_use_proj4_init_rules
    - CPLString::c_str
    - OGRSpatialReference::Clear
    - strlen
    - CPLErrorOnce
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromProj4(const char *pszProj4)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11506,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSRS
    - ppszReturn
    argTypes:
    - OGRSpatialReferenceH
    - char**
    constantsTouched: []
    func_position:
      end: 11511
      start: 11502
    functionDepth: 0
    functionLinenumber: 11502
    functionLinenumberEnd: 11511
    functionName: CPL_STDCALL::OSRExportToProj4
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr CPL_STDCALL OSRExportToProj4(OGRSpatialReferenceH hSRS,\n                                    char
      **ppszReturn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11562,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11565,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11574,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11578,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11586,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11597,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11599,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11600,1
    - Dst: GDAL_proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11602,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11603,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11604,1
    - Dst: proj_as_proj_string
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11607,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11607,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11614,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11615,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11618,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11619,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - ppszProj4
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 11624
      start: 11554
    functionDepth: 5
    functionLinenumber: 11554
    functionLinenumberEnd: 11624
    functionName: OGRSpatialReference::exportToProj4
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - CPLStrdup
    - proj_destroy
    - GDAL_proj_crs_create_bound_crs_to_WGS84
    - getPROJContext
    - CPLErrorOnce
    - strstr
    - refreshProjObj
    - CPLGetConfigOption
    - proj_as_proj_string
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::exportToProj4(char **ppszProj4) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11650,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11652,1
    - Dst: setMorphToESRI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11656
      start: 11647
    functionDepth: 0
    functionLinenumber: 11647
    functionLinenumberEnd: 11656
    functionName: OGRSpatialReference::morphToESRI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - setMorphToESRI
    - TAKE_OPTIONAL_LOCK
    - refreshProjObj
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::morphToESRI()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11671,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 11674
      start: 11668
    functionDepth: 0
    functionLinenumber: 11668
    functionLinenumberEnd: 11674
    functionName: OSRMorphToESRI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRMorphToESRI(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11702,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11704,1
    - Dst: setMorphToESRI
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11708
      start: 11699
    functionDepth: 0
    functionLinenumber: 11699
    functionLinenumberEnd: 11708
    functionName: OGRSpatialReference::morphFromESRI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - setMorphToESRI
    - TAKE_OPTIONAL_LOCK
    - refreshProjObj
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::morphFromESRI()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11723,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 11726
      start: 11720
    functionDepth: 0
    functionLinenumber: 11720
    functionLinenumberEnd: 11726
    functionName: OSRMorphFromESRI
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRMorphFromESRI(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11763,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11765,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11772,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11777,1
    - Dst: proj_identify
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11779,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11786,1
    - Dst: static_cast<OGRSpatialReferenceH *>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11787,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11788,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11792,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11792,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11799,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11800,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11801,1
    - Dst: OGRSpatialReference*::d::setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11802,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11803,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11806,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11807,1
    - Dst: GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11808,1
    - Dst: OGRSpatialReference::GetAxis
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11814,1
    - Dst: OGRSpatialReference::GetAxis
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11815,1
    - Dst: OGRSpatialReference*::GetAxis
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11816,1
    - Dst: OGRSpatialReference*::GetAxis
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11817,1
    - Dst: proj_normalize_for_visualization
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11822,1
    - Dst: proj_is_equivalent_to
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11825,1
    - Dst: OGRSpatialReference*::SetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11830,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11832,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11845,1
    - Dst: std::stable_sort
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11847,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11847,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11847,1
    - Dst: static_cast<OGRSpatialReferenceH *>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11852,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11853,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11860,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11865,1
    - Dst: proj_int_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11866,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 3
    argNames:
    - papszOptions
    - pnEntries
    - ppanMatchConfidence
    argTypes:
    - char**
    - int*
    - int**
    constantsTouched: []
    func_position:
      end: 11869
      start: 11759
    functionDepth: 6
    functionLinenumber: 11759
    functionLinenumberEnd: 11869
    functionName: OGRSpatialReference::FindMatches
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - proj_list_get
    - proj_is_equivalent_to
    - getPROJContext
    - std::vector::push_back
    - static_cast<OGRSpatialReferenceH *>
    - OGRSpatialReference*::GetAxesCount
    - proj_identify
    - TAKE_OPTIONAL_LOCK
    - proj_normalize_for_visualization
    - std::vector::end
    - OGRSpatialReference*::SetDataAxisToSRSAxisMapping
    - std::vector::begin
    - ToHandle
    - OGRSpatialReference::GetAxis
    - CPLMalloc
    - static_cast<int>
    - proj_destroy
    - OGRSpatialReference*::GetAxis
    - proj_list_destroy
    - CPLAssert
    - OGRSpatialReference*::d::setPjCRS
    - CPL_IGNORE_RET_VAL
    - refreshProjObj
    - proj_int_list_destroy
    - CPLCalloc
    - CPLFree
    - static_cast<int *>
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::GetAxesCount
    - GetDataAxisToSRSAxisMapping
    - std::stable_sort
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: "OGRSpatialReferenceH *\nOGRSpatialReference::FindMatches(char **papszOptions,
      int *pnEntries,\n                                 int **ppanMatchConfidence)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11905,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11907,1
    - Dst: OSRGetProjTLSCache
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11915,1
    - Dst: auto::GetPJForEPSGCode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11919,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11922,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11928,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11933,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11933,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11934,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11950,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11951,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11951,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11952,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11956,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11957,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11958,1
    - Dst: proj_create_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11959,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11959,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11969,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11970,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11975,1
    - Dst: proj_is_deprecated
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11982,1
    - Dst: proj_get_non_deprecated
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11984,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11984,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11987,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11991,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:11991,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12000,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12010,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12015,1
    - Dst: proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12020,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12020,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12024,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12029,1
    - Dst: auto::CachePJForEPSGCode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12033,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - nCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 12038
      start: 11902
    functionDepth: 5
    functionLinenumber: 11902
    functionLinenumberEnd: 12038
    functionName: OGRSpatialReference::importFromEPSGA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - proj_list_get
    - getPROJContext
    - CPLError
    - std::string::c_str
    - TAKE_OPTIONAL_LOCK
    - CPLErrorReset
    - CPLGetLastErrorMsg
    - setPjCRS
    - OSRGetProjTLSCache
    - CPLString::c_str
    - proj_is_deprecated
    - proj_crs_create_bound_crs_to_WGS84
    - proj_destroy
    - proj_list_get_count
    - CPLString::Printf
    - auto::GetPJForEPSGCode
    - proj_list_destroy
    - CPLGetLastErrorNo
    - OGRSpatialReference::Clear
    - proj_get_non_deprecated
    - auto::CachePJForEPSGCode
    - CPLGetLastErrorType
    - proj_create_from_database
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromEPSGA(int nCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12061,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12063,1
    - Dst: GDAL_proj_crs_create_bound_crs_to_WGS84
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12066,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12067,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12074
      start: 12059
    functionDepth: 5
    functionLinenumber: 12059
    functionLinenumberEnd: 12074
    functionName: OGRSpatialReference::AddGuessedTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - getPROJContext
    - GDAL_proj_crs_create_bound_crs_to_WGS84
    - refreshProjObj
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::AddGuessedTOWGS84()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12092,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 12095
      start: 12089
    functionDepth: 0
    functionLinenumber: 12089
    functionLinenumberEnd: 12095
    functionName: OSRAddGuessedTOWGS84
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRAddGuessedTOWGS84(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12111,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - nCode
    argTypes:
    - OGRSpatialReferenceH
    - int
    constantsTouched: []
    func_position:
      end: 12114
      start: 12108
    functionDepth: 0
    functionLinenumber: 12108
    functionLinenumberEnd: 12114
    functionName: CPL_STDCALL::OSRImportFromEPSGA
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPL_STDCALL OSRImportFromEPSGA(OGRSpatialReferenceH hSRS, int
      nCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::importFromEPSGA
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 12144
      start: 12140
    functionDepth: 6
    functionLinenumber: 12140
    functionLinenumberEnd: 12144
    functionName: OGRSpatialReference::importFromEPSG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 13
    functionsReached:
    - OGRSpatialReference::importFromEPSGA
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::importFromEPSG(int nCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12160,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - nCode
    argTypes:
    - OGRSpatialReferenceH
    - int
    constantsTouched: []
    func_position:
      end: 12163
      start: 12157
    functionDepth: 0
    functionLinenumber: 12157
    functionLinenumberEnd: 12163
    functionName: CPL_STDCALL::OSRImportFromEPSG
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPL_STDCALL OSRImportFromEPSG(OGRSpatialReferenceH hSRS, int
      nCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12194,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12196,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12199,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12205,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12205,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12209,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12209,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12213,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12213,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12217,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12223,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12226,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12232,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12232,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12236,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12240,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12246,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12252
      start: 12191
    functionDepth: 6
    functionLinenumber: 12191
    functionLinenumberEnd: 12252
    functionName: OGRSpatialReference::EPSGTreatsAsLatLong
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_destroy
    - demoteFromBoundCRS
    - EQUAL
    - getPROJContext
    - proj_crs_get_sub_crs
    - proj_crs_get_coordinate_system
    - proj_cs_get_axis_info
    - OGRSpatialReference::IsGeographic
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::EPSGTreatsAsLatLong() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12268,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 12271
      start: 12265
    functionDepth: 0
    functionLinenumber: 12265
    functionLinenumberEnd: 12271
    functionName: OSREPSGTreatsAsLatLong
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSREPSGTreatsAsLatLong(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12305,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12307,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12310,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12312,1
    - Dst: proj_crs_get_sub_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12315,1
    - Dst: proj_get_type
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12316,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12318,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12319,1
    - Dst: proj_clone
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12325,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12329,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12330,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12331,1
    - Dst: isNorthEastAxisOrder
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12335,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12340
      start: 12302
    functionDepth: 6
    functionLinenumber: 12302
    functionLinenumberEnd: 12340
    functionName: OGRSpatialReference::EPSGTreatsAsNorthingEasting
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - proj_get_type
    - proj_destroy
    - demoteFromBoundCRS
    - proj_clone
    - isNorthEastAxisOrder
    - getPROJContext
    - proj_crs_get_sub_crs
    - proj_crs_get_coordinate_system
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::EPSGTreatsAsNorthingEasting() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12359,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 12362
      start: 12356
    functionDepth: 0
    functionLinenumber: 12356
    functionLinenumberEnd: 12362
    functionName: OSREPSGTreatsAsNorthingEasting
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OSREPSGTreatsAsNorthingEasting(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12379,1
    - Dst: proj_create_from_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12390,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12391,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12394,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12396,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12396,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12399,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12400,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12401,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12405,1
    - Dst: proj_create_from_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12416,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12416,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12421,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12424,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12424,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12430,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12430,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12433,1
    - Dst: proj_coordoperation_get_method_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12437,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12438,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12440,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12442,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12446,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12447,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12452,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12452,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12455,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12456,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12461,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12461,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12466,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12467,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12468,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12468,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12471,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12472,1
    - Dst: proj_coordoperation_get_param
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12480,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12480,1
    - Dst: proj_coordoperation_get_param
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12488,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12488,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12492,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12493,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12495,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12496,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12497,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12498,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12502,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12503,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12505,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 65
    argCount: 5
    argNames:
    - prjName
    - centralMeridian
    - latOfOrigin
    - unitsName
    - crsName
    argTypes:
    - char*
    - double
    - double
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12509
      start: 12373
    functionDepth: 5
    functionLinenumber: 12373
    functionLinenumberEnd: 12509
    functionName: OGRSpatialReference::ImportFromESRIWisconsinWKT
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - TAKE_OPTIONAL_LOCK
    - proj_destroy
    - proj_list_get_count
    - setPjCRS
    - proj_list_get
    - proj_list_destroy
    - proj_coordoperation_get_method_info
    - EQUAL
    - getPROJContext
    - proj_coordoperation_get_param
    - OGRSpatialReference::Clear
    - proj_create_from_name
    - proj_crs_get_coordoperation
    - std::fabs
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::ImportFromESRIWisconsinWKT(const char
      *prjName,\n                                                       double centralMeridian,\n
      \                                                      double latOfOrigin,\n
      \                                                      const char *unitsName,\n
      \                                                      const char *crsName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12535
      start: 12530
    functionDepth: 0
    functionLinenumber: 12530
    functionLinenumberEnd: 12535
    functionName: OGRSpatialReference::GetAxisMappingStrategy
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    linkageType: ''
    returnType: OSRAxisMappingStrategy
    signature: OSRAxisMappingStrategy OGRSpatialReference::GetAxisMappingStrategy()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12548,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 12551
      start: 12546
    functionDepth: 0
    functionLinenumber: 12546
    functionLinenumberEnd: 12551
    functionName: OSRGetAxisMappingStrategy
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OSRAxisMappingStrategy
    signature: OSRAxisMappingStrategy OSRGetAxisMappingStrategy(OGRSpatialReferenceH
      hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12572,1
    - Dst: refreshAxisMapping
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - OSRAxisMappingStrategy
    constantsTouched: []
    func_position:
      end: 12576
      start: 12569
    functionDepth: 0
    functionLinenumber: 12569
    functionLinenumberEnd: 12576
    functionName: OGRSpatialReference::SetAxisMappingStrategy
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 4
    functionsReached:
    - refreshAxisMapping
    - TAKE_OPTIONAL_LOCK
    linkageType: ''
    returnType: void
    signature: "void OGRSpatialReference::SetAxisMappingStrategy(\n    OSRAxisMappingStrategy
      strategy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12590,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - strategy
    argTypes:
    - OGRSpatialReferenceH
    - OSRAxisMappingStrategy
    constantsTouched: []
    func_position:
      end: 12593
      start: 12587
    functionDepth: 0
    functionLinenumber: 12587
    functionLinenumberEnd: 12593
    functionName: OSRSetAxisMappingStrategy
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OSRSetAxisMappingStrategy(OGRSpatialReferenceH hSRS,\n                               OSRAxisMappingStrategy
      strategy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12614
      start: 12609
    functionDepth: 0
    functionLinenumber: 12609
    functionLinenumberEnd: 12614
    functionName: '&OGRSpatialReference::GetDataAxisToSRSAxisMapping() const'
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> &OGRSpatialReference::GetDataAxisToSRSAxisMapping()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12629,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12630,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12633,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12634,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12634,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hSRS
    - pnCount
    argTypes:
    - OGRSpatialReferenceH
    - int*
    constantsTouched: []
    func_position:
      end: 12636
      start: 12626
    functionDepth: 0
    functionLinenumber: 12626
    functionLinenumberEnd: 12636
    functionName: OSRGetDataAxisToSRSAxisMapping
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::data
    - FromHandle
    - VALIDATE_POINTER1
    - auto::size
    linkageType: ''
    returnType: int
    signature: "int *OSRGetDataAxisToSRSAxisMapping(OGRSpatialReferenceH hSRS,\n                                          int
      *pnCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12680,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 12687
      start: 12677
    functionDepth: 0
    functionLinenumber: 12677
    functionLinenumberEnd: 12687
    functionName: OGRSpatialReference::SetDataAxisToSRSAxisMapping
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 1
    functionsReached:
    - std::vector<int>::size
    - TAKE_OPTIONAL_LOCK
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSpatialReference::SetDataAxisToSRSAxisMapping(\n    const
      std::vector<int> &mapping)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12705,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12706,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12714,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - hSRS
    - nMappingSize
    - panMapping
    argTypes:
    - OGRSpatialReferenceH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 12717
      start: 12702
    functionDepth: 0
    functionLinenumber: 12702
    functionLinenumberEnd: 12717
    functionName: OSRSetDataAxisToSRSAxisMapping
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OSRSetDataAxisToSRSAxisMapping(OGRSpatialReferenceH hSRS,\n
      \                                     int nMappingSize, const int *panMapping)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12751,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12753,1
    - Dst: demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12758,1
    - Dst: undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12764,1
    - Dst: m_osAreaName::c_str
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12767,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pdfWestLongitudeDeg
    - pdfSouthLatitudeDeg
    - pdfEastLongitudeDeg
    - pdfNorthLatitudeDeg
    - ppszAreaName
    argTypes:
    - double*
    - double*
    - double*
    - double*
    - char**
    constantsTouched: []
    func_position:
      end: 12769
      start: 12745
    functionDepth: 1
    functionLinenumber: 12745
    functionLinenumberEnd: 12769
    functionName: OGRSpatialReference::GetAreaOfUse
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - undoDemoteFromBoundCRS
    - demoteFromBoundCRS
    - refreshProjObj
    - m_osAreaName::c_str
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: "bool OGRSpatialReference::GetAreaOfUse(double *pdfWestLongitudeDeg,\n
      \                                      double *pdfSouthLatitudeDeg,\n                                       double
      *pdfEastLongitudeDeg,\n                                       double *pdfNorthLatitudeDeg,\n
      \                                      const char **ppszAreaName) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12785,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hSRS
    - pdfWestLongitudeDeg
    - pdfSouthLatitudeDeg
    - pdfEastLongitudeDeg
    - pdfNorthLatitudeDeg
    - ppszAreaName
    argTypes:
    - OGRSpatialReferenceH
    - double*
    - double*
    - double*
    - double*
    - char**
    constantsTouched: []
    func_position:
      end: 12790
      start: 12781
    functionDepth: 0
    functionLinenumber: 12781
    functionLinenumberEnd: 12790
    functionName: OSRGetAreaOfUse
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OSRGetAreaOfUse(OGRSpatialReferenceH hSRS, double *pdfWestLongitudeDeg,\n
      \                   double *pdfSouthLatitudeDeg, double *pdfEastLongitudeDeg,\n
      \                   double *pdfNorthLatitudeDeg, const char **ppszAreaName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_get_crs_info_list_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12817,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12818,1
    - Dst: OSRCRSInfo::OSRCRSInfo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12825,1
    - Dst: OSRCRSInfo::OSRCRSInfo
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12828,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12830,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12833,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12835,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12867,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12871,1
    - Dst: proj_crs_info_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12875,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12877
      start: 12811
    functionDepth: 4
    functionLinenumber: 12811
    functionLinenumberEnd: 12877
    functionName: OSRGetCRSInfoListFromDatabase
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OSRGetProjTLSContext
    - proj_crs_info_list_destroy
    - proj_get_crs_info_list_from_database
    - OSRCRSInfo::OSRCRSInfo
    linkageType: ''
    returnType: OSRCRSInfo
    signature: "OSRCRSInfo **\nOSRGetCRSInfoListFromDatabase(const char *pszAuthName,\n
      \                             CPL_UNUSED const OSRCRSListParameters *params,\n
      \                             int *pnOutResultCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12894,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12895,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12896,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12897,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - list
    argTypes:
    - OSRCRSInfo**
    constantsTouched: []
    func_position:
      end: 12903
      start: 12888
    functionDepth: 0
    functionLinenumber: 12888
    functionLinenumberEnd: 12903
    functionName: OSRDestroyCRSInfoList
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OSRDestroyCRSInfoList(OSRCRSInfo **list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_get_authorities_from_database
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12922,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12922,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12932,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12935
      start: 12919
    functionDepth: 4
    functionLinenumber: 12919
    functionLinenumberEnd: 12935
    functionName: OSRGetAuthorityListFromDatabase
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - OSRGetProjTLSContext
    - proj_get_authorities_from_database
    - proj_string_list_destroy
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char **OSRGetAuthorityListFromDatabase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12948,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12950,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12955,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12957,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12958,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12961,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12964,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12967,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12969,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12970,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12973,1
    - Dst: proj_cs_get_axis_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12974,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12976,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12977,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12978,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12990,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12993,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12994,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12995,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrspatialreference.cpp:12996,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13000,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13001,1
    - Dst: proj_create_cs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13002,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13005,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13006,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13007,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13008,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13012,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13015,1
    - Dst: proj_create_projected_crs
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13016,1
    - Dst: getProjCRSName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13016,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13018,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13019,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13020,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13021,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13022
      start: 12946
    functionDepth: 6
    functionLinenumber: 12946
    functionLinenumberEnd: 13022
    functionName: OGRSpatialReference::UpdateCoordinateSystemFromGeogCRS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - OGRSpatialReference::GetAxesCount
    - CPLFree
    - proj_create_projected_crs
    - CPLStrdup
    - proj_destroy
    - proj_cs_get_axis_count
    - proj_create_cs
    - setPjCRS
    - getPROJContext
    - refreshProjObj
    - getProjCRSName
    - proj_crs_get_coordoperation
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_crs_get_geodetic_crs
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::UpdateCoordinateSystemFromGeogCRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13042,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13044,1
    - Dst: proj_crs_promote_to_3D
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13048,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13048,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 13053
      start: 13040
    functionDepth: 5
    functionLinenumber: 13040
    functionLinenumberEnd: 13053
    functionName: OGRSpatialReference::PromoteTo3D
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - proj_crs_promote_to_3D
    - getPROJContext
    - refreshProjObj
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::PromoteTo3D(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13067,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 13070
      start: 13065
    functionDepth: 0
    functionLinenumber: 13065
    functionLinenumberEnd: 13070
    functionName: OSRPromoteTo3D
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRPromoteTo3D(OGRSpatialReferenceH hSRS, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13085,1
    - Dst: refreshProjObj
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13087,1
    - Dst: proj_crs_demote_to_2D
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13091,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13091,1
    - Dst: setPjCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 13096
      start: 13083
    functionDepth: 5
    functionLinenumber: 13083
    functionLinenumberEnd: 13096
    functionName: OGRSpatialReference::DemoteTo2D
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - TAKE_OPTIONAL_LOCK
    - setPjCRS
    - getPROJContext
    - refreshProjObj
    - proj_crs_demote_to_2D
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSpatialReference::DemoteTo2D(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13110,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - pszName
    argTypes:
    - OGRSpatialReferenceH
    - char*
    constantsTouched: []
    func_position:
      end: 13113
      start: 13108
    functionDepth: 0
    functionLinenumber: 13108
    functionLinenumberEnd: 13113
    functionName: OSRDemoteTo2D
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OSRDemoteTo2D(OGRSpatialReferenceH hSRS, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OPTIONAL_LOCK
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13128,1
    - Dst: std::unique_ptr<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13133,1
    - Dst: OGRSpatialReference::CloneGeogCS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13133,1
    - Dst: auto::d::demoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13138,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13139,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13139,1
    - Dst: auto::d::undoDemoteFromBoundCRS
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13141,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13145,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13149,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13155,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13164,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13165,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13165,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13175,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13181,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13182,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13183,1
    - Dst: proj_create_from_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13192,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13193,1
    - Dst: proj_list_get_count
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13196,1
    - Dst: proj_list_get
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13199,1
    - Dst: getPROJContext
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13199,1
    - Dst: proj_get_id_auth_name
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13202,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13204,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13207,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13208,1
    - Dst: proj_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13211,1
    - Dst: proj_list_destroy
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13214,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13234,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13234,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13237,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13237,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13242,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13242,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13245,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13245,1
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13252,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13253,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13254,1
    - Dst: OGRSpatialReference::GetPrimeMeridian
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13255,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13264
      start: 13125
    functionDepth: 6
    functionLinenumber: 13125
    functionLinenumberEnd: 13264
    functionName: OGRSpatialReference::GetEPSGGeogCS
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRSpatialReference>
    - atoi
    - proj_list_get
    - OGRSpatialReference::GetAuthorityName
    - OGRSpatialReference::CopyGeogCSFrom
    - getPROJContext
    - OGRSpatialReference::IsEmpty
    - proj_create_from_name
    - TAKE_OPTIONAL_LOCK
    - auto::d::demoteFromBoundCRS
    - OGRSpatialReference::GetAttrValue
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_destroy
    - proj_list_get_count
    - proj_list_destroy
    - strstr
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::GetPrimeMeridian
    - auto::d::undoDemoteFromBoundCRS
    - EQUAL
    - OGRSpatialReference::GetAuthorityCode
    - proj_get_id_auth_name
    - OGRSpatialReference::CloneGeogCS
    linkageType: ''
    returnType: int
    signature: int OGRSpatialReference::GetEPSGGeogCS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfCoordinateEpoch
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 13291
      start: 13288
    functionDepth: 0
    functionLinenumber: 13288
    functionLinenumberEnd: 13291
    functionName: OGRSpatialReference::SetCoordinateEpoch
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSpatialReference::SetCoordinateEpoch(double dfCoordinateEpoch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13305,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hSRS
    - dfCoordinateEpoch
    argTypes:
    - OGRSpatialReferenceH
    - double
    constantsTouched: []
    func_position:
      end: 13309
      start: 13303
    functionDepth: 0
    functionLinenumber: 13303
    functionLinenumberEnd: 13309
    functionName: OSRSetCoordinateEpoch
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OSRSetCoordinateEpoch(OGRSpatialReferenceH hSRS, double dfCoordinateEpoch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13337
      start: 13334
    functionDepth: 0
    functionLinenumber: 13334
    functionLinenumberEnd: 13337
    functionName: OGRSpatialReference::GetCoordinateEpoch
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double OGRSpatialReference::GetCoordinateEpoch() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13351,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrspatialreference.cpp:13353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSRS
    argTypes:
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 13354
      start: 13349
    functionDepth: 0
    functionLinenumber: 13349
    functionLinenumberEnd: 13354
    functionName: OSRGetCoordinateEpoch
    functionSourceFile: /src/gdal/ogr/ogrspatialreference.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: double
    signature: double OSRGetCoordinateEpoch(OGRSpatialReferenceH hSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: OGRMultiLineString::OGRMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiLineString::OGRMultiLineString(const OGRMultiLineString
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiCurve::operator=
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiLineString
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: '&

      OGRMultiLineString::operator=(const OGRMultiLineString &other)'
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiCurve::operator=
    linkageType: ''
    returnType: OGRMultiLineString
    signature: 'OGRMultiLineString &

      OGRMultiLineString::operator=(const OGRMultiLineString &other)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:68,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:71,1
    - Dst: WkbSize
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: OGRMultiLineString::clone
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached:
    - auto::WkbSize
    - OGRMultiLineString::OGRMultiLineString
    - WkbSize
    linkageType: ''
    returnType: OGRMultiLineString
    signature: OGRMultiLineString *OGRMultiLineString::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: OGRMultiLineString::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMultiLineString::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: OGRMultiLineString::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMultiLineString::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: OGRMultiLineString::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiLineString::isCompatibleSubType(OGRwkbGeometryType
      eGeomType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:128,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:136,1
    - Dst: cpl::down_cast<OGRLineString *>
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:138,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:148,1
    - Dst: OGRGeometryCollection::importFromWkbInternal
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: OGRMultiLineString::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRLineString *>
    - static_cast<size_t>
    - empty
    - memcmp
    - OGRGeometryCollection::importFromWkbInternal
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiLineString::importFromWkb(const unsigned char *pabyData,\n
      \                                        size_t nSize,\n                                         OGRwkbVariant
      eWkbVariant,\n                                         size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exportToWktInternal
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: OGRMultiLineString::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached:
    - exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMultiLineString::exportToWkt(const OGRWktOptions &opts,\n
      \                                           OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: OGRMultiLineString::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiLineString::hasCurveGeometry(int /* bLookForNonLinear
      */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:193,1
    - Dst: TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrmultilinestring.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMLS
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: OGRMultiLineString::CastToMultiCurve
    functionSourceFile: /src/gdal/ogr/ogrmultilinestring.cpp
    functionUses: 1
    functionsReached:
    - TransferMembersAndDestroy
    - OGRMultiCurve::OGRMultiCurve
    linkageType: ''
    returnType: OGRMultiCurve
    signature: OGRMultiCurve *OGRMultiLineString::CastToMultiCurve(OGRMultiLineString
      *poMLS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: OGRMultiPolygon::OGRMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMultiPolygon::OGRMultiPolygon(const OGRMultiPolygon &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiSurface::operator=
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRMultiPolygon
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: '&OGRMultiPolygon::operator=(const OGRMultiPolygon &other)'
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiSurface::operator=
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon &OGRMultiPolygon::operator=(const OGRMultiPolygon &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:65,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:68,1
    - Dst: WkbSize
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: OGRMultiPolygon::clone
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - auto::WkbSize
    - OGRMultiPolygon::OGRMultiPolygon
    - WkbSize
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon *OGRMultiPolygon::clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: OGRMultiPolygon::getGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMultiPolygon::getGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGRMultiPolygon::getGeometryName
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMultiPolygon::getGeometryName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: OGRMultiPolygon::isCompatibleSubType
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiPolygon::isCompatibleSubType(OGRwkbGeometryType
      eGeomType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:124,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:132,1
    - Dst: cpl::down_cast<OGRPolygon *>
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:135,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:144,1
    - Dst: OGRGeometryCollection::importFromWkbInternal
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - pabyData
    - nSize
    - eWkbVariant
    - nBytesConsumedOut
    argTypes:
    - unsigned char*
    - size_t
    - OGRwkbVariant
    - size_t
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: OGRMultiPolygon::importFromWkb
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - empty
    - memcmp
    - OGRGeometryCollection::importFromWkbInternal
    - cpl::down_cast<OGRPolygon *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiPolygon::importFromWkb(const unsigned char *pabyData,\n
      \                                     size_t nSize, OGRwkbVariant eWkbVariant,\n
      \                                     size_t &nBytesConsumedOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exportToWktInternal
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - OGRWktOptions
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: OGRMultiPolygon::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - exportToWktInternal
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMultiPolygon::exportToWkt(const OGRWktOptions &opts,\n
      \                                        OGRErr *err) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: OGRMultiPolygon::hasCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRBoolean
    signature: OGRBoolean OGRMultiPolygon::hasCurveGeometry(int /* bLookForNonLinear
      */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:187,1
    - Dst: TransferMembersAndDestroy
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMP
    argTypes:
    - OGRMultiPolygon*
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: OGRMultiPolygon::CastToMultiSurface
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 2
    functionsReached:
    - TransferMembersAndDestroy
    - OGRMultiSurface::OGRMultiSurface
    linkageType: ''
    returnType: OGRMultiSurface
    signature: OGRMultiSurface *OGRMultiPolygon::CastToMultiSurface(OGRMultiPolygon
      *poMP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:203,1
    - Dst: OGRMultiPolygon::_addGeometryDirectlyWithExpectedSubGeometryType
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - poNewGeom
    - eSubGeometryType
    argTypes:
    - OGRGeometry*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: OGRMultiPolygon::_addGeometryWithExpectedSubGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon::_addGeometryDirectlyWithExpectedSubGeometryType
    - OGRGeometry*::clone
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiPolygon::_addGeometryWithExpectedSubGeometryType(\n
      \   const OGRGeometry *poNewGeom, OGRwkbGeometryType eSubGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:228,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:228,1
    - Dst: HomogenizeDimensionalityWith
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:231,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:233,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrmultipolygon.cpp:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - poNewGeom
    - eSubGeometryType
    argTypes:
    - OGRGeometry*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: OGRMultiPolygon::_addGeometryDirectlyWithExpectedSubGeometryType
    functionSourceFile: /src/gdal/ogr/ogrmultipolygon.cpp
    functionUses: 1
    functionsReached:
    - VSI_REALLOC_VERBOSE
    - HomogenizeDimensionalityWith
    - static_cast<OGRGeometry **>
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMultiPolygon::_addGeometryDirectlyWithExpectedSubGeometryType(\n
      \   OGRGeometry *poNewGeom, OGRwkbGeometryType eSubGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srsnode.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszValueIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: OGR_SRSNode::OGR_SRSNode
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 10
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::OGR_SRSNode(const char *pszValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srsnode.cpp:52,1
    - Dst: OGR_SRSNode::ClearChildren
      Src: /src/gdal/ogr/ogr_srsnode.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: OGR_SRSNode::~OGR_SRSNode()
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode::ClearChildren
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::~OGR_SRSNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: OGR_SRSNode::Listener::~Listener()
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::Listener::~Listener()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listener
    argTypes:
    - std::shared_ptr<Listener>
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: OGR_SRSNode::RegisterListener
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::RegisterListener(const std::shared_ptr<Listener>
      &listener)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/gdal/ogr/ogr_srsnode.cpp:78,1
    - Dst: auto::notifyChange
      Src: /src/gdal/ogr/ogr_srsnode.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: OGR_SRSNode::notifyChange
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - lock
    - auto::notifyChange
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::notifyChange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srsnode.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: OGR_SRSNode::ClearChildren
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::ClearChildren()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iChild
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: OGR_SRSNode::GetChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGR_SRSNode::GetChild(int iChild)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iChild
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: OGR_SRSNode::GetChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGR_SRSNode::GetChild(int iChild) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:192,1
    - Dst: OGR_SRSNode::GetNode
      Src: /src/gdal/ogr/ogr_srsnode.cpp:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 208
    functionName: OGR_SRSNode::GetNode
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - OGR_SRSNode::GetNode
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGR_SRSNode::GetNode(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGR_SRSNode *>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: OGR_SRSNode::GetNode
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - const_cast<OGR_SRSNode *>
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGR_SRSNode::GetNode(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::InsertChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poNew
    argTypes:
    - OGR_SRSNode*
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: OGR_SRSNode::AddChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode::InsertChild
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::AddChild(OGR_SRSNode *poNew)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGR_SRSNode **>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:277,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogr_srsnode.cpp:278,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogr_srsnode.cpp:280,1
    - Dst: OGR_SRSNode::notifyChange
      Src: /src/gdal/ogr/ogr_srsnode.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - poNew
    - iChild
    argTypes:
    - OGR_SRSNode*
    - int
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: OGR_SRSNode::InsertChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - static_cast<OGR_SRSNode **>
    - OGR_SRSNode::notifyChange
    - memmove
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::InsertChild(OGR_SRSNode *poNew, int iChild)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::notifyChange
      Src: /src/gdal/ogr/ogr_srsnode.cpp:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - iChild
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: OGR_SRSNode::DestroyChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode::notifyChange
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::DestroyChild(int iChild)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszValueIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: OGR_SRSNode::FindChild
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGR_SRSNode::FindChild(const char *pszValueIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogr_srsnode.cpp:374,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogr_srsnode.cpp:375,1
    - Dst: OGR_SRSNode::notifyChange
      Src: /src/gdal/ogr/ogr_srsnode.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszNewValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: OGR_SRSNode::SetValue
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - OGR_SRSNode::notifyChange
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::SetValue(const char *pszNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srsnode.cpp:392,1
    - Dst: OGR_SRSNode*::AddChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:396,1
    - Dst: OGR_SRSNode::Clone
      Src: /src/gdal/ogr/ogr_srsnode.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: OGR_SRSNode::Clone
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - OGR_SRSNode*::AddChild
    - OGR_SRSNode::Clone
    - OGR_SRSNode::OGR_SRSNode
    linkageType: ''
    returnType: OGR_SRSNode
    signature: OGR_SRSNode *OGR_SRSNode::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetChildCount
      Src: /src/gdal/ogr/ogr_srsnode.cpp:413,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:418,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogr_srsnode.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:423,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogr_srsnode.cpp:423,1
    - Dst: OGR_SRSNode::GetChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogr_srsnode.cpp:427,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogr_srsnode.cpp:427,1
    - Dst: OGR_SRSNode::GetChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:428,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 447
    functionName: OGR_SRSNode::NeedsQuoting
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetChildCount
    - OGR_SRSNode::GetChild
    - GetValue
    linkageType: ''
    returnType: int
    signature: int OGR_SRSNode::NeedsQuoting() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::exportToWkt
      Src: /src/gdal/ogr/ogr_srsnode.cpp:477,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srsnode.cpp:478,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:484,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr_srsnode.cpp:484,1
    - Dst: OGR_SRSNode::NeedsQuoting
      Src: /src/gdal/ogr/ogr_srsnode.cpp:492,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:494,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:495,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:496,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:499,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:505,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:509,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:511,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:513,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srsnode.cpp:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ppszResult
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 519
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 519
    functionName: OGR_SRSNode::exportToWkt
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 2
    functionsReached:
    - CSLDestroy
    - strcat
    - strlen
    - OGR_SRSNode::exportToWkt
    - static_cast<char *>
    - CPLMalloc
    - OGR_SRSNode::NeedsQuoting
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_SRSNode::exportToWkt(char **ppszResult) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::exportToPrettyWkt
      Src: /src/gdal/ogr/ogr_srsnode.cpp:551,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srsnode.cpp:552,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:558,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogr_srsnode.cpp:558,1
    - Dst: OGR_SRSNode::NeedsQuoting
      Src: /src/gdal/ogr/ogr_srsnode.cpp:566,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:568,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:569,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:570,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:574,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:581,1
    - Dst: GetChildCount
      Src: /src/gdal/ogr/ogr_srsnode.cpp:585,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:587,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:589,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:591,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:593,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srsnode.cpp:598,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogr_srsnode.cpp:599,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogr_srsnode.cpp:601,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogr_srsnode.cpp:604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - ppszResult
    - nDepth
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 607
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 607
    functionName: OGR_SRSNode::exportToPrettyWkt
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 2
    functionsReached:
    - OGR_SRSNode::exportToPrettyWkt
    - CSLDestroy
    - strcat
    - strlen
    - static_cast<char *>
    - GetChildCount
    - CPLMalloc
    - OGR_SRSNode::NeedsQuoting
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_SRSNode::exportToPrettyWkt(char **ppszResult, int nDepth)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::importFromWkt
      Src: /src/gdal/ogr/ogr_srsnode.cpp:634,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: OGR_SRSNode::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 2
    functionsReached:
    - OGR_SRSNode::importFromWkt
    - const_cast<const char **>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_SRSNode::importFromWkt(char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::importFromWkt
      Src: /src/gdal/ogr/ogr_srsnode.cpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppszInput
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: OGR_SRSNode::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 3
    functionsReached:
    - OGR_SRSNode::importFromWkt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_SRSNode::importFromWkt(const char **ppszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::ClearChildren
      Src: /src/gdal/ogr/ogr_srsnode.cpp:682,1
    - Dst: OGR_SRSNode::SetValue
      Src: /src/gdal/ogr/ogr_srsnode.cpp:723,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogr_srsnode.cpp:735,1
    - Dst: OGR_SRSNode*::importFromWkt
      Src: /src/gdal/ogr/ogr_srsnode.cpp:740,1
    - Dst: OGR_SRSNode::AddChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:747,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogr_srsnode.cpp:750,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogr_srsnode.cpp:750,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 3
    argNames:
    - ppszInput
    - nRecLevel
    - pnNodes
    argTypes:
    - char**
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 763
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 763
    functionName: OGR_SRSNode::importFromWkt
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 3
    functionsReached:
    - OGR_SRSNode*::importFromWkt
    - static_cast<unsigned char>
    - isspace
    - OGR_SRSNode::ClearChildren
    - OGR_SRSNode::AddChild
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode::SetValue
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_SRSNode::importFromWkt(const char **ppszInput, int nRecLevel,\n
      \                                 int *pnNodes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetChildCount
      Src: /src/gdal/ogr/ogr_srsnode.cpp:782,1
    - Dst: OGR_SRSNode::GetChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:784,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 822
    functionName: OGR_SRSNode::MakeValueSafe
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 0
    functionsReached:
    - GetChildCount
    - OGR_SRSNode::GetChild
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::MakeValueSafe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_SRSNode::FindChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:843,1
    - Dst: OGR_SRSNode::DestroyChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:844,1
    - Dst: OGR_SRSNode::FindChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:844,1
    - Dst: GetChildCount
      Src: /src/gdal/ogr/ogr_srsnode.cpp:849,1
    - Dst: OGR_SRSNode::GetChild
      Src: /src/gdal/ogr/ogr_srsnode.cpp:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 851
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 851
    functionName: OGR_SRSNode::StripNodes
    functionSourceFile: /src/gdal/ogr/ogr_srsnode.cpp
    functionUses: 1
    functionsReached:
    - GetChildCount
    - OGR_SRSNode::GetChild
    - OGR_SRSNode::FindChild
    - OGR_SRSNode::DestroyChild
    linkageType: ''
    returnType: void
    signature: void OGR_SRSNode::StripNodes(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h:29,1
    - Dst: OGRAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: OGRAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h
    functionUses: 1
    functionsReached:
    - OGRAttrIndex
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRAttrIndex
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h:58,1
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h:59,1
    - Dst: OGRLayerAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: OGRLayerAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogr_attrind.h
    functionUses: 1
    functionsReached:
    - OGRLayerAttrIndex
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRLayerAttrIndex
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeatureIterator
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:74,1
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:87,1
    - Dst: OGRLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:183,1
    - Dst: reinterpret_cast<OGRLayerH>
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:379,1
    - Dst: reinterpret_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:387,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 454
    functionName: GDALMajorObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 0
    functionsReached:
    - FeatureIterator
    - reinterpret_cast<OGRLayer *>
    - reinterpret_cast<OGRLayerH>
    - CPL_DISALLOW_COPY_ASSIGN
    - OGRLayer
    - std::move
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL GDALMajorObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 53
    functionsReached:
    - OGRLayer*::begin
    linkageType: ''
    returnType: OGRLayer::FeatureIterator
    signature: OGRLayer::FeatureIterator begin(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::end
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 76
    functionsReached:
    - OGRLayer*::end
    linkageType: ''
    returnType: OGRLayer::FeatureIterator
    signature: OGRLayer::FeatureIterator end(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: ~OGRGetNextFeatureThroughRaw()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OGRGetNextFeatureThroughRaw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BaseLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:504,1
    - Dst: auto::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:507,1
    - Dst: auto::FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:512,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:512,1
    - Dst: auto::m_poAttrQuery::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 521
    functionName: OGRGetNextFeatureThroughRaw::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 0
    functionsReached:
    - static_cast<BaseLayer *>
    - auto::GetNextRawFeature
    - auto::FilterGeometry
    - auto::m_poAttrQuery::Evaluate
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:561,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:566,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 571
    functionName: OGRDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 1
    functionsReached:
    - OGR_DEPRECATED
    - OGRDataSource
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriver
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:599,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:602,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:605,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:608,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:612,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 616
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 616
    functionName: OGRSFDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 1
    functionsReached:
    - OGR_DEPRECATED
    - OGRSFDriver
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRSFDriver
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriverRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:638,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:651,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:660,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:663,1
    - Dst: OGR_DEPRECATED
      Src: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 671
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 671
    functionName: OGRSFDriverRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
    functionUses: 1
    functionsReached:
    - OGRSFDriverRegistrar
    - OGR_DEPRECATED
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRSFDriverRegistrar
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:26,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:28,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:28,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:29,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:33,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:34,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:35,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - poDS
    - pszName
    - poSRS
    - eGType
    argTypes:
    - GDALDataset*
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: OGRJSONFGStreamedLayer::OGRJSONFGStreamedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRSpatialReference*::Release
    - Reference
    - SetDescription
    - GetName
    - Seal
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGStreamedLayer::OGRJSONFGStreamedLayer(GDALDataset *poDS,\n
      \                                              const char *pszName,\n                                               OGRSpatialReference
      *poSRS,\n                                               OGRwkbGeometryType eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: OGRJSONFGStreamedLayer::~OGRJSONFGStreamedLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGStreamedLayer::~OGRJSONFGStreamedLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:56,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poFile
    argTypes:
    - VSIVirtualHandleUniquePtr
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: OGRJSONFGStreamedLayer::SetFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - Seek
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGStreamedLayer::SetFile(VSIVirtualHandleUniquePtr &&poFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:67,1
    - Dst: SetRequestedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:68,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poStreamingParser
    argTypes:
    - std::unique_ptr<OGRJSONFGStreamingParser>
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: OGRJSONFGStreamedLayer::SetStreamingParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - SetRequestedLayer
    - std::move
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGStreamedLayer::SetStreamingParser(\n    std::unique_ptr<OGRJSONFGStreamingParser>
      &&poStreamingParser)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:77,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:78,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:79,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:80,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: OGRJSONFGStreamedLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - Clone
    - CPLAssert
    - clear
    - Seek
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGStreamedLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:90,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:93,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:93,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:94,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:94,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:99,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:99,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:103,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:111,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:111,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:112,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:112,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:117,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - poFeat
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: OGRJSONFGStreamedLayer::EnsureUniqueFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - size
    - end
    - OGRFeature*::GetFID
    - insert
    - find
    - CPLError
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRJSONFGStreamedLayer::EnsureUniqueFID(OGRFeature *poFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:128,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:129,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:131,1
    - Dst: OGRJSONFGStreamedLayer::EnsureUniqueFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:134,1
    - Dst: auto::first::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:134,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:138,1
    - Dst: Parse
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:143,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:144,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:144,1
    - Dst: ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:146,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:151,1
    - Dst: OGRJSONFGStreamedLayer::EnsureUniqueFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:154,1
    - Dst: auto::first::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:154,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 161
    functionName: OGRJSONFGStreamedLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONFGStreamedLayer::EnsureUniqueFID
    - reinterpret_cast<const char *>
    - auto::first::release
    - ExceptionOccurred
    - CPLAssert
    - GetNextFeature
    - Parse
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRJSONFGStreamedLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: OGRJSONFGStreamedLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRJSONFGStreamedLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: OGRJSONFGStreamedLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRJSONFGStreamedLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:28,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:29,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:31,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:32,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:35,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:36,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:37,1
    - Dst: OGRJSONFGMustSwapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:38,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:40,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:40,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:42,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:43,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:44,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:45,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:47,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:47,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:49,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:50,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:52,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:52,1
    - Dst: SetRFC7946Settings
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:53,1
    - Dst: SetIDOptions
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:54,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:56,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:57,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:58,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:59,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:61,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:61,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:63,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:64,1
    - Dst: GetOutputFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:66,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:67,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:69,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:70,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:71,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:73,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:74,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:75,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - pszName
    - poSRS
    - poCTToWGS84
    - osCoordRefSys
    - eGType
    - papszOptions
    - poDS
    argTypes:
    - char*
    - OGRSpatialReference*
    - std::unique_ptr<OGRCoordinateTransformation>
    - std::string
    - OGRwkbGeometryType
    - CSLConstList
    - OGRJSONFGDataset*
    constantsTouched: []
    func_position:
      end: 77
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 77
    functionName: OGRJSONFGWriteLayer::OGRJSONFGWriteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GetGeomFieldDefn
    - Reference
    - IsSingleOutputLayer
    - std::string::c_str
    - std::string::empty
    - SetGeomType
    - find
    - std::move
    - OGRJSONFGMustSwapXY
    - SetIDOptions
    - GetName
    - json_object_to_json_string_ext
    - CPLTestBool
    - VSIFPrintfL
    - GetOutputFile
    - OGRFeatureDefn::OGRFeatureDefn
    - json_object_new_string
    - SetRFC7946Settings
    - SetDescription
    - OGRSpatialReference*::Clone
    - CSLFetchNameValueDef
    - json_object_put
    - auto::Release
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGWriteLayer::OGRJSONFGWriteLayer(\n    const char *pszName,
      const OGRSpatialReference *poSRS,\n    std::unique_ptr<OGRCoordinateTransformation>
      &&poCTToWGS84,\n    const std::string &osCoordRefSys, OGRwkbGeometryType eGType,\n
      \   CSLConstList papszOptions, OGRJSONFGDataset *poDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: OGRJSONFGWriteLayer::~OGRJSONFGWriteLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGWriteLayer::~OGRJSONFGWriteLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SyncToDiskInternal
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: OGRJSONFGWriteLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - SyncToDiskInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRJSONFGWriteLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:106,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:112,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:122,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:124,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:126,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:126,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:129,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:133,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:133,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - psRawValue
    - eType
    argTypes:
    - OGRField*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 143
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 143
    functionName: GetValueAsDateOrDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLSPrintf
    - CPLYMDHMSToUnixTime
    - CPLUnixTimeToYMDHMS
    - std::round
    - memset
    - std::fabs
    linkageType: ''
    returnType: char
    signature: "char *GetValueAsDateOrDateTime(const OGRField *psRawValue,\n                                            OGRFieldType
      eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:153,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:153,1
    - Dst: OGRGeometry*::toPolyhedralSurface
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:155,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:156,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:157,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:158,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:159,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:160,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:161,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:162,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:165,1
    - Dst: OGRGeoJSONWritePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeometry
    - oOptions
    argTypes:
    - OGRGeometry*
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 174
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 174
    functionName: OGRJSONFGWriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_new_array
    - json_object_new_string
    - json_object_array_add
    - OGRGeoJSONWritePolygon
    - json_object_object_add
    - wkbFlatten
    - OGRGeometry*::toPolyhedralSurface
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nOGRJSONFGWriteGeometry(const OGRGeometry *poGeometry,\n
      \                      const OGRGeoJSONWriteOptions &oOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:182,1
    - Dst: BeforeCreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:183,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:185,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:187,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:190,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:192,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:192,1
    - Dst: OGRGeoJSONWriteId
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:197,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:200,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:202,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:203,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:203,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:204,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:207,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:208,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:208,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:209,1
    - Dst: OGRGeoJSONWriteAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:216,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:225,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:226,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:228,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:229,1
    - Dst: json_object_object_del
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:232,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:232,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:233,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:234,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:236,1
    - Dst: GetValueAsDateOrDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:236,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:237,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:247,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:249,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:252,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:253,1
    - Dst: json_object_object_del
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:256,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:257,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:258,1
    - Dst: GetValueAsDateOrDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:258,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:259,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:267,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:269,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:272,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:273,1
    - Dst: json_object_object_del
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:276,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:277,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:278,1
    - Dst: GetValueAsDateOrDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:278,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:279,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:286,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:287,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:288,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:289,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:291,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:292,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:294,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:298,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:303,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:306,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:307,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:311,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:311,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:313,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:317,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:317,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:318,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:319,1
    - Dst: OGRJSONFGWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:321,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:321,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:326,1
    - Dst: OGRJSONFGWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:328,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:333,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:335,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:336,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:343,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:343,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:344,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:344,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:346,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:348,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:348,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:353,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:358,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:364,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:364,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:365,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:366,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:368,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:368,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:373,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:375,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:380,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:382,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:383,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:390,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 395
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 395
    functionName: OGRJSONFGWriteLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - std::unique_ptr<OGRGeometry>
    - GetDescription
    - auto::GetType
    - auto::get
    - OGRGeoJSONWriteAttributes
    - GetFieldDefn
    - IsSingleOutputLayer
    - json_object_object_add
    - GetFieldIndex
    - json_object_object_del
    - OGRGeometry*::clone
    - OGRFeature*::GetRawFieldRef
    - wkbFlatten
    - OGRGeoJSONWriteId
    - BeforeCreateFeature
    - OGRJSonParse
    - OGRGeometry*::getGeometryType
    - json_object_to_json_string_ext
    - GetValueAsDateOrDateTime
    - c_str
    - VSIFPrintfL
    - json_object_new_array
    - GetOutputFile
    - OGRFeature*::GetFID
    - OGRJSONFGWriteGeometry
    - OGRGeoJSONWriteGeometry
    - json_object_new_string
    - get
    - json_object_array_add
    - CPL_IGNORE_RET_VAL
    - auto::GetNameRef
    - OGRFeature*::GetGeometryRef
    - json_object_new_object
    - empty
    - json_object_put
    - auto::transform
    - OGRFeature*::SetFID
    - auto::swapXY
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRJSONFGWriteLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndexCaseSensitive
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:404,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:404,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:406,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:407,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 415
    functionName: OGRJSONFGWriteLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - GetFieldIndexCaseSensitive
    - AddFieldDefn
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRJSONFGWriteLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                       int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:425,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: OGRJSONFGWriteLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRJSONFGWriteLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: OGRJSONFGWriteLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgwritelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRJSONFGWriteLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:28,1
    - Dst: OGRJSONFGDataset::FinishWriting
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:31,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: OGRJSONFGDataset::~OGRJSONFGDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONFGDataset::FinishWriting
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGDataset::~OGRJSONFGDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:45,1
    - Dst: OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:47,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:48,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:49,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:55,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:56,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:58,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:67,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:69,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:72,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:87,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:94,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:99,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:100,1
    - Dst: auto::ConvertToOtherSRS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:101,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:102,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:107,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:113,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:119,1
    - Dst: Flush
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 122
    functionName: OGRJSONFGDataset::FinishWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 1
    functionsReached:
    - Tell
    - size
    - GetLayerDefn
    - VSIFPrintfL
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - front
    - auto::ConvertToOtherSRS
    - OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature
    - Flush
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGDataset::FinishWriting()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFpOutputIsSeekable
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:130,1
    - Dst: OGRJSONFGDataset::FinishWriting
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: OGRJSONFGDataset::SyncToDiskInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONFGDataset::FinishWriting
    - GetFpOutputIsSeekable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRJSONFGDataset::SyncToDiskInternal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:147,1
    - Dst: OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:151,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: OGRJSONFGDataset::BeforeCreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - Seek
    - OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature
    - VSIFPrintfL
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGDataset::BeforeCreateFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:165,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:167,1
    - Dst: OGRJSONFGDataset::ReadFromService
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:175,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:188,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:192,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:198,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:201,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:202,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:206,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:212,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:212,1
    - Dst: VSIVirtualHandleUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:213,1
    - Dst: VSIVirtualHandleUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:220,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:222,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:223,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:238,1
    - Dst: SetGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:240,1
    - Dst: SetGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:241,1
    - Dst: std::make_unique<OGRJSONFGReader>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:247,1
    - Dst: SetReaderOptions
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:248,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:248,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:256,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:257,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:257,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:262,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:262,1
    - Dst: auto::AnalyzeWithStreamingParser
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:273,1
    - Dst: VSIVirtualHandleUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:274,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:277,1
    - Dst: cpl::down_cast<OGRJSONFGStreamedLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:279,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:280,1
    - Dst: auto::SetFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:281,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:281,1
    - Dst: std::make_unique<OGRJSONFGStreamingParser>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:282,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:283,1
    - Dst: auto::SetStreamingParser
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:284,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:284,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:287,1
    - Dst: cpl::down_cast<OGRJSONFGStreamedLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:289,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:290,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:292,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:296,1
    - Dst: auto::SetFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:300,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:300,1
    - Dst: std::make_unique<OGRJSONFGStreamingParser>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:302,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:303,1
    - Dst: auto::SetStreamingParser
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:304,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:304,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:306,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:314,1
    - Dst: VSIVirtualHandleUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:315,1
    - Dst: OGRJSONFGDataset::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:316,1
    - Dst: SetReaderOptions
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:322,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:324,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 94
    argCount: 2
    argNames:
    - poOpenInfo
    - nSrcType
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 327
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 327
    functionName: OGRJSONFGDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIVirtualHandleUniquePtr::reset
    - std::make_unique<OGRJSONFGReader>
    - auto::get
    - VSIVirtualHandleUniquePtr::get
    - SetGeometryElement
    - auto::AnalyzeWithStreamingParser
    - CPLError
    - std::string::empty
    - CPLStrdup
    - static_cast<unsigned char>
    - isspace
    - auto::SetStreamingParser
    - SetReaderOptions
    - auto::SetFile
    - std::move
    - strlen
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - get
    - VSIVirtualHandleUniquePtr::release
    - VSIFOpenL
    - CPLAssert
    - OGRJSONFGDataset::ReadFromFile
    - SetDescription
    - CPLFree
    - size
    - empty
    - CPLGetBasenameSafe
    - std::make_unique<OGRJSONFGStreamingParser>
    - EQUAL
    - VSIVirtualHandleUniquePtr
    - OGRJSONFGDataset::ReadFromService
    - cpl::down_cast<OGRJSONFGStreamedLayer *>
    linkageType: ''
    returnType: bool
    signature: "bool OGRJSONFGDataset::Open(GDALOpenInfo *poOpenInfo,\n                            GeoJSONSourceType
      nSrcType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:335,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:335,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: OGRJSONFGDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRJSONFGDataset::GetLayer(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:347,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:347,1
    - Dst: static_cast<OGRJSONFGMemLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:348,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - std::unique_ptr<OGRJSONFGMemLayer>
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: OGRJSONFGDataset::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - back
    - std::move
    - emplace_back
    - static_cast<OGRJSONFGMemLayer *>
    linkageType: ''
    returnType: OGRJSONFGMemLayer
    signature: 'OGRJSONFGMemLayer *

      OGRJSONFGDataset::AddLayer(std::unique_ptr<OGRJSONFGMemLayer> &&poLayer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:358,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:358,1
    - Dst: static_cast<OGRJSONFGStreamedLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:359,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - std::unique_ptr<OGRJSONFGStreamedLayer>
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: OGRJSONFGDataset::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - back
    - std::move
    - emplace_back
    - static_cast<OGRJSONFGStreamedLayer *>
    linkageType: ''
    returnType: OGRJSONFGStreamedLayer
    signature: 'OGRJSONFGStreamedLayer *

      OGRJSONFGDataset::AddLayer(std::unique_ptr<OGRJSONFGStreamedLayer> &&poLayer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:370,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:375,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:376,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:385,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:386,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:392,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:396,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:397,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - poOpenInfo
    - pszUnprefixed
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 402
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 402
    functionName: OGRJSONFGDataset::ReadFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char *>
    - VSIFCloseL
    - VSIFSeekL
    - EQUAL
    - CPLAssert
    - VSIIngestFile
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: "bool OGRJSONFGDataset::ReadFromFile(GDALOpenInfo *poOpenInfo,\n                                    const
      char *pszUnprefixed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:411,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:412,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:414,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:422,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:425,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:427,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:431,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:442,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:448,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:456,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:458,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:473,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:478,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:486,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:488,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:490,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - poOpenInfo
    - pszSource
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 498
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 498
    functionName: OGRJSONFGDataset::ReadFromService
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - CPLGetLastErrorNo
    - EQUAL
    - CPLAssert
    - strlen
    - CPLHTTPDestroyResult
    - CPLError
    - SetDescription
    - JSONFGIsObject
    - OGRGeoJSONDriverStoreContent
    linkageType: ''
    returnType: bool
    signature: "bool OGRJSONFGDataset::ReadFromService(GDALOpenInfo *poOpenInfo,\n
      \                                      const char *pszSource)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:506,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:508,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:508,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:510,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:511,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:512,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:514,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:521,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:523,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:534,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:536,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:540,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:542,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 546
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 546
    functionName: OGRJSONFGDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - VSIFPrintfL
    - VSIStatL
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - CPLAssert
    - strcmp
    - VSIGetLastErrorMsg
    - CPLError
    - SetDescription
    - STARTS_WITH
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGDataset::Create(const char *pszName, CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 2
    functionsReached:
    - VSIFPrintfL
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGDataset::EmitStartFeaturesIfNeededAndReturnIfFirstFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:574,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:582,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:589,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:591,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:601,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:617,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:618,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:619,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:620,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:622,1
    - Dst: GetCURIE
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:623,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:624,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:625,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:630,1
    - Dst: GetCURIE
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:631,1
    - Dst: GetCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:641,1
    - Dst: auto::IsCompound
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:643,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:652,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:653,1
    - Dst: GetCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:653,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:656,1
    - Dst: GetCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:657,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:664,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:665,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:669,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:673,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:677,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:677,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:679,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:680,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:681,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:682,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:683,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:692,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:705,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:707,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:709,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:711,1
    - Dst: auto::GetAxesCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:713,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:715,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:721,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:723,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:727,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:728,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:729,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:730,1
    - Dst: std::pow
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:739,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:739,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:741,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:743,1
    - Dst: auto::GetAxesCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:745,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:747,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:753,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:755,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:757,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:758,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:759,1
    - Dst: auto::ConvertToOtherSRS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:761,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:766,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:768,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:769,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:771,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:773,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:777,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:783,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:785,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:786,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:788,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:790,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:799,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:801,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:802,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:804,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:806,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:810,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:816,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:818,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:819,1
    - Dst: IsSingleOutputLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:821,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:823,1
    - Dst: std::make_unique<OGRJSONFGWriteLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:830,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:831,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:832,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:833,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:833,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:835,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:840,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:842,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:844,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:851,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:853,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:855,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 119
    argCount: 3
    argNames:
    - pszNameIn
    - poSrcGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 859
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 859
    functionName: OGRJSONFGDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - GetCURIE
    - auto::GetName
    - OGRSpatialReference::SetAxisMappingStrategy
    - GetCoordRefSys
    - IsSingleOutputLayer
    - json_object_object_add
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - auto::SetCoordinatePrecision
    - CSLFetchNameValue
    - CPLStringList::List
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - auto::GetLayerDefn
    - OGR_GT_HasZ
    - std::move
    - std::unique_ptr::reset
    - emplace_back
    - json_object_to_json_string_ext
    - CPLAtof
    - std::pow
    - VSIFPrintfL
    - auto::ConvertToOtherSRS
    - json_object_new_array
    - OGRGeomFieldDefn*::GetType
    - json_object_new_string
    - CPLSPrintf
    - json_object_array_add
    - strstr
    - CPLStringList::SetNameValue
    - OGRCreateCoordinateTransformation
    - auto::GetCoordinatePrecision
    - auto::GetAxesCount
    - json_object_new_double
    - std::make_unique<OGRJSONFGWriteLayer>
    - json_object_new_object
    - OGRSpatialReference::OGRSpatialReference
    - back
    - empty
    - json_object_put
    - auto::IsCompound
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRJSONFGDataset::ICreateLayer(const char *pszNameIn,\n
      \                              const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n
      \                              CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:867,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:869,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 874
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 874
    functionName: OGRJSONFGDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - empty
    linkageType: ''
    returnType: int
    signature: int OGRJSONFGDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:882,1
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: OGRJSONFGMustSwapXY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGMustSwapXY(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: OGRJSONFGReader::~OGRJSONFGReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGReader::~OGRJSONFGReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:42,1
    - Dst: OGRJSONFGReader::GenerateLayerDefns
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:48,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:51,1
    - Dst: OGRJSONFGReader::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:55,1
    - Dst: OGRJSONFGMemLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:58,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:58,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:66,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:68,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:70,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:74,1
    - Dst: OGRJSONFGReader::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:77,1
    - Dst: OGRJSONFGMemLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:80,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - poDS
    - pszText
    - osDefaultLayerName
    argTypes:
    - OGRJSONFGDataset*
    - char*
    - std::string
    constantsTouched: []
    func_position:
      end: 90
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 90
    functionName: OGRJSONFGReader::Load
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - OGRJSONFGReader::ReadFeature
    - OGRJSONFGMemLayer*::AddFeature
    - json_object_get_type
    - OGRGeoJSONGetType
    - OGRGeoJSONFindMemberByName
    - OGRJSONFGReader::GenerateLayerDefns
    - std::move
    - OGRJSonParse
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRJSONFGReader::Load(OGRJSONFGDataset *poDS, const char *pszText,\n
      \                          const std::string &osDefaultLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:99,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:103,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:109,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:114,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:116,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:117,1
    - Dst: std::make_unique<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:118,1
    - Dst: auto::importFromCRSURL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:119,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:119,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:125,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:126,1
    - Dst: std::make_unique<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:129,1
    - Dst: auto::importFromCRSURL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:138,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:153,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:156,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:160,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:162,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:169,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:174,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:177,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:182,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:187,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:193,1
    - Dst: auto::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:199,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:199,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:206,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:208,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:212,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:213,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:217,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:218,1
    - Dst: std::make_unique<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:222,1
    - Dst: auto::SetCompoundCS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:231,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:231,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:231,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:231,1
    - Dst: auto::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:236,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:241,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 1
    argNames:
    - poCoordRefSys
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 244
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 244
    functionName: OGRJSONFGReadCoordRefSys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_get_double
    - json_object_array_get_idx
    - json_object_array_length
    - auto::SetCompoundCS
    - json_object_get_type
    - std::string::append
    - CPL_json_object_object_get
    - OGRJSONFGReadCoordRefSys
    - auto::get
    - strcmp
    - strlen
    - auto::SetCoordinateEpoch
    - CPLError
    - auto::importFromCRSURL
    - STARTS_WITH
    - std::string::c_str
    - std::make_unique<OGRSpatialReference>
    linkageType: ''
    returnType: std::unique_ptr<OGRSpatialReference>
    signature: std::unique_ptr<OGRSpatialReference> OGRJSONFGReadCoordRefSys(json_object
      *poCoordRefSys, bool bCanRecurse = true)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:261,1
    - Dst: OGRJSONFGStreamingParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:266,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:266,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:266,1
    - Dst: OGRJSONFGStreamingParser::ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:268,1
    - Dst: OGRJSONFGStreamingParser::IsTypeKnown
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:272,1
    - Dst: OGRJSONFGStreamingParser::IsFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:272,1
    - Dst: OGRJSONFGStreamingParser::IsTypeKnown
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:280,1
    - Dst: OGRJSONFGStreamingParser::IsFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:280,1
    - Dst: VSILFILE*::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:282,1
    - Dst: VSILFILE*::Tell
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:283,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:285,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:285,1
    - Dst: OGRJSONFGStreamingParser::StealRootObject
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:295,1
    - Dst: OGRJSONFGReader::FinalizeGenerateLayerDefns
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - poDS
    - fp
    - osDefaultLayerName
    - bCanTryWithNonStreamingParserOut
    argTypes:
    - OGRJSONFGDataset*
    - VSILFILE*
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 298
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 298
    functionName: OGRJSONFGReader::AnalyzeWithStreamingParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONFGStreamingParser::IsTypeKnown
    - VSILFILE*::Seek
    - reinterpret_cast<const char *>
    - VSILFILE*::Tell
    - OGRJSONFGReader::FinalizeGenerateLayerDefns
    - OGRJSONFGStreamingParser::StealRootObject
    - OGRJSONFGStreamingParser::IsFeatureCollection
    - OGRJSONFGStreamingParser::ExceptionOccurred
    - OGRJSONFGStreamingParser::Parse
    - CPLGetUsablePhysicalRAM
    - static_cast<vsi_l_offset>
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: "bool OGRJSONFGReader::AnalyzeWithStreamingParser(\n    OGRJSONFGDataset
      *poDS, VSILFILE *fp, const std::string &osDefaultLayerName,\n    bool &bCanTryWithNonStreamingParserOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:306,1
    - Dst: OGRJSONFGReader::GenerateLayerDefnFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:309,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:315,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:317,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:319,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:323,1
    - Dst: OGRJSONFGReader::GenerateLayerDefnFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:340,1
    - Dst: OGRJSONFGReader::FinalizeGenerateLayerDefns
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 346
    functionName: OGRJSONFGReader::GenerateLayerDefns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - CPLError
    - json_object_get_type
    - OGRJSONFGReader::FinalizeGenerateLayerDefns
    - OGRGeoJSONFindMemberByName
    - OGRJSONFGReader::GenerateLayerDefnFromFeature
    - OGRGeoJSONGetType
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGReader::GenerateLayerDefns()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:354,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:355,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:358,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:359,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:360,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:362,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:363,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:364,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:372,1
    - Dst: json_object_object_get_ex
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:382,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:385,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:388,1
    - Dst: OGRJSONFGMustSwapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:389,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:389,1
    - Dst: OGRJSONFGReader::FinalizeBuildContext
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:403,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:405,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - bStreamedLayer
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 409
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 409
    functionName: OGRJSONFGReader::FinalizeGenerateLayerDefns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 2
    functionsReached:
    - end
    - erase
    - OGRJSONFGReader::FinalizeBuildContext
    - json_object_object_get_ex
    - std::unique_ptr::SetAxisMappingStrategy
    - find
    - json_object_get_type
    - OGRJSONFGReadCoordRefSys
    - std::move
    - json_object_get_string
    - CPLError
    - OGRJSONFGMustSwapXY
    - std::unique_ptr::get
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGReader::FinalizeGenerateLayerDefns(bool bStreamedLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetWGS84SRS
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:423,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:424,1
    - Dst: LayerDefnBuildContext::poCRSAtFeatureLevel::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:429,1
    - Dst: OGRJSONFGMustSwapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:430,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:442,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:445,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:445,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:452,1
    - Dst: LayerDefnBuildContext::poCTWGS84ToLayerCRS::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:454,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:455,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:455,1
    - Dst: std::make_unique<OGRJSONFGStreamedLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:466,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:468,1
    - Dst: std::make_unique<OGRJSONFGMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:472,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:474,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:481,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:482,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:484,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:488,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:490,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:491,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:493,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:495,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:496,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:497,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:500,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:502,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:503,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:505,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:507,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:508,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:509,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:515,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:515,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:520,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:520,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:523,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:527,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:527,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:529,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:531,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:536,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:540,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:553,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:558,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:563,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:568,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:574,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:578,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:583,1
    - Dst: AddTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:587,1
    - Dst: LayerDefnBuildContext::dag::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:591,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:592,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:592,1
    - Dst: LayerDefnBuildContext::apoFieldDefn::size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:592,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:595,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:595,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:603,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:604,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:605,1
    - Dst: std::unique_ptr::SetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:609,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:610,1
    - Dst: std::unique_ptr::SetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:614,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:615,1
    - Dst: OGRLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:622,1
    - Dst: std::unique_ptr::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:626,1
    - Dst: AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:628,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:628,1
    - Dst: AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:632,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:632,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 6
    argNames:
    - oBuildContext
    - pszLayerName
    - bStreamedLayer
    - bInvalidCRS
    - bSwapPlacesXYTopLevel
    - poSRSTopLevel
    argTypes:
    - LayerDefnBuildContext
    - char*
    - bool
    - bool
    - bool
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 634
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 634
    functionName: OGRJSONFGReader::FinalizeBuildContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 1
    functionsReached:
    - AddLayer
    - std::set::insert
    - std::unique_ptr::SetFIDColumn
    - auto::SetCoordinatePrecision
    - AddTimeField
    - STARTS_WITH
    - auto::size
    - CPL_json_object_object_get
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::GetGeomFieldDefn
    - std::make_unique<OGRJSONFGStreamedLayer>
    - GetNameRef
    - std::move
    - OGRLayer*::GetLayerDefn
    - json_object_get_double
    - OGRJSONFGMustSwapXY
    - LayerDefnBuildContext::dag::getTopologicalOrdering
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - c_str
    - OGRFeatureDefn*::GetFieldCount
    - std::unique_ptr::SetAxisMappingStrategy
    - get
    - LayerDefnBuildContext::poCRSAtFeatureLevel::get
    - json_object_get_type
    - std::unique_ptr::SetFeatureCount
    - LayerDefnBuildContext::poCTWGS84ToLayerCRS::reset
    - std::set::find
    - CPLAssert
    - OGRSpatialReference*::IsSame
    - OGRFieldDefn*::GetType
    - OGRCreateCoordinateTransformation
    - auto::GetCoordinatePrecision
    - std::unique_ptr::get
    - OGRFeatureDefn*::GetFieldDefn
    - std::string
    - LayerDefnBuildContext::apoFieldDefn::size
    - OGRLayer*::SetMetadataItem
    - OGRSpatialReference::GetWGS84SRS
    - std::make_unique<OGRJSONFGMemLayer>
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGReader::FinalizeBuildContext(LayerDefnBuildContext &oBuildContext,\n
      \                                          const char *pszLayerName,\n                                           bool
      bStreamedLayer,\n                                           bool bInvalidCRS,\n
      \                                          bool bSwapPlacesXYTopLevel,\n                                           OGRSpatialReference
      *poSRSTopLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:643,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:645,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: OGRJSONFGReader::GetLayerNameForFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - json_object_get_type
    - CPL_json_object_object_get
    linkageType: ''
    returnType: char
    signature: char *OGRJSONFGReader::GetLayerNameForFeature(json_object *poObj) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONGetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:658,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:662,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:667,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:671,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:673,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:674,1
    - Dst: OGRGeoJSONGetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 694
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 694
    functionName: OGRJSONFGGetOGRGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONGetOGRGeometryType
    - strcmp
    - json_object_get_type
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRJSONFGGetOGRGeometryType(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:703,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:708,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:710,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:712,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:714,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:722,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:727,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:728,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:729,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:732,1
    - Dst: OGRGeoJSONReadPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:735,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:738,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:742,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:746,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:748,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:749,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:751,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:756,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:758,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:762,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:762,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:765,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:767,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:768,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:769,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:769,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:769,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:770,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:770,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:770,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:773,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:775,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:776,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:777,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:779,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:780,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:781,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:781,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:781,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:782,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:782,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:782,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:783,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:783,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:783,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:784,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:784,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:784,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:785,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:785,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:785,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:786,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:787,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:791,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:793,1
    - Dst: auto::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:794,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:798,1
    - Dst: auto::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:804,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:809,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:812,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:813,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:814,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:816,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:816,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:816,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:818,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:819,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:822,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:824,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:825,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:826,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:826,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:826,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:827,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:827,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:827,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:828,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:828,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:828,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:829,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:829,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:829,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:830,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:830,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:830,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:831,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:832,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:836,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:837,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:838,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:840,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:840,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:840,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:842,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:843,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:861,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 94
    argCount: 2
    argNames:
    - poObj
    - bWarn
    argTypes:
    - json_object*
    - bool
    constantsTouched: []
    func_position:
      end: 866
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 866
    functionName: OGRJSONFGCreateNonGeoJSONGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>
    - OGRGeoJSONReadGeometry
    - auto::get
    - strcmp
    - auto::addRingDirectly
    - CPLError
    - OGRPolygon::OGRPolygon
    - CPL_json_object_object_get
    - std::make_unique<OGRLineString>
    - auto::set3D
    - std::make_unique<OGRPolyhedralSurface>
    - json_object_array_get_idx
    - json_object_array_length
    - OGRLinearRing::OGRLinearRing
    - auto::addGeometryDirectly
    - json_object_get_type
    - auto::getNumInteriorRings
    - auto::getNumPoints
    - auto::getX
    - OGRGeoJSONReadPolygon
    - auto::addPoint
    - auto::getGeometryType
    - std::make_unique<OGRMultiPolygon>
    - auto::getY
    - auto::getExteriorRing
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: std::unique_ptr<OGRGeometry> OGRJSONFGCreateNonGeoJSONGeometry(json_object
      *poObj, bool bWarn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:874,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:877,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:883,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:884,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:887,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:888,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:898,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:899,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:901,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:904,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:908,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:912,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:914,1
    - Dst: LayerDefnBuildContext*::poCRSAtFeatureLevel::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:917,1
    - Dst: LayerDefnBuildContext*::osCoordRefSysAtFeatureLevel::clear
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:923,1
    - Dst: LayerDefnBuildContext*::poCRSAtFeatureLevel::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:924,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:937,1
    - Dst: OGRJSONFGGetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:939,1
    - Dst: OGRGeoJSONUpdateLayerGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:943,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:952,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:954,1
    - Dst: OGRGeoJSONGetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:956,1
    - Dst: OGRGeoJSONUpdateLayerGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:957,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:967,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:970,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:971,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:975,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:977,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:981,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:982,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:983,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:985,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:986,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:989,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:991,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:995,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:996,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:999,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1001,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1010,1
    - Dst: OGRGeoJSONGenerateFeatureDefnDealWithID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1015,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1022,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1031,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1032,1
    - Dst: LayerDefnBuildContext*::dag::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1040,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1041,1
    - Dst: LayerDefnBuildContext*::dag::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1044,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 81
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 1052
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 1052
    functionName: OGRJSONFGReader::GenerateLayerDefnFromFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 1
    functionsReached:
    - LayerDefnBuildContext*::poCRSAtFeatureLevel::reset
    - OGRGeoJSONReaderAddOrUpdateField
    - OGRGeoJSONGetOGRGeometryType
    - strcmp
    - LayerDefnBuildContext*::dag::addNode
    - CPLError
    - std::vector::clear
    - CPL_json_object_object_get
    - LayerDefnBuildContext*::dag::addEdge
    - end
    - json_object_to_json_string
    - LayerDefnBuildContext*::poCRSAtFeatureLevel::SetAxisMappingStrategy
    - OGRGeoJSONGenerateFeatureDefnDealWithID
    - GetNameRef
    - find
    - std::move
    - json_object_array_get_idx
    - json_object_array_length
    - OGRJSONFGGetOGRGeometryType
    - json_object_get_type
    - LayerDefnBuildContext*::osCoordRefSysAtFeatureLevel::clear
    - OGRGeoJSONUpdateLayerGeomType
    - OGRJSONFGReadCoordRefSys
    - strchr
    - OGRGeoJSONGetType
    linkageType: ''
    returnType: bool
    signature: bool OGRJSONFGReader::GenerateLayerDefnFromFeature(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1064,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1067,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1068,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1068,1
    - Dst: static_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1072,1
    - Dst: static_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1073,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1080,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1081,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1087,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1089,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1102,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1106,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1107,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1118,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1121,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1121,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1121,1
    - Dst: auto::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1130,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1132,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1132,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1139,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1142,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1143,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1145,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1146,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1150,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1152,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1154,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1155,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1159,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1160,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1161,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1163,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1164,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1167,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1168,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1172,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1173,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1176,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1177,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1190,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1192,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1197,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1201,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1206,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1208,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1209,1
    - Dst: OGRJSONFGCreateNonGeoJSONGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1212,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1216,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1216,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1221,1
    - Dst: OGRJSONFGReadCoordRefSys
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1228,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1231,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1238,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1241,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1242,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1243,1
    - Dst: std::unique_ptr::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1247,1
    - Dst: std::unique_ptr::transform
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1248,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1248,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1251,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1252,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1253,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1259,1
    - Dst: std::unique_ptr::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1261,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1262,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1262,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1268,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1269,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1270,1
    - Dst: std::unique_ptr::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1272,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1273,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1273,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1279,1
    - Dst: std::unique_ptr::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1281,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1282,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1282,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1289,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1292,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1293,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1298,1
    - Dst: auto::poCTWGS84ToLayerCRS::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1299,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1302,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1303,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1304,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1304,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1309,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1310,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1311,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp:1311,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 114
    argCount: 4
    argNames:
    - poObj
    - pszRequestedLayer
    - pOutMemLayer
    - pOutStreamedLayer
    argTypes:
    - json_object*
    - char*
    - OGRJSONFGMemLayer**
    - OGRJSONFGStreamedLayer**
    constantsTouched: []
    func_position:
      end: 1318
      start: 1058
    functionDepth: 5
    functionLinenumber: 1058
    functionLinenumberEnd: 1318
    functionName: OGRJSONFGReader::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_get_int64
    - std::unique_ptr<OGRGeometry>
    - OGRGeoJSONReadGeometry
    - auto::assignSpatialReference
    - auto::SetField
    - std::unique_ptr::transform
    - CPLDebug
    - auto::get
    - strcmp
    - CPL_json_object_object_get
    - static_cast<GIntBig>
    - end
    - std::unique_ptr::release
    - find
    - OGRJSONFGCreateNonGeoJSONGeometry
    - std::unique_ptr<OGRCoordinateTransformation>
    - auto::poCTWGS84ToLayerCRS::get
    - OGRLayer*::GetLayerDefn
    - static_cast<OGRLayer *>
    - std::unique_ptr::reset
    - OGRLayer*::GetSpatialRef
    - std::make_unique<OGRFeature>
    - json_object_array_get_idx
    - json_object_array_length
    - std::unique_ptr::swapXY
    - auto::IsFieldSet
    - json_object_get_type
    - CPLAssert
    - json_object_get_string
    - OGRCreateCoordinateTransformation
    - auto::IsSame
    - OGRGeoJSONReaderSetField
    - auto::SetAxisMappingStrategy
    - auto::SetGeometryDirectly
    - auto::SetFID
    - auto::release
    - OGRJSONFGReadCoordRefSys
    - std::unique_ptr::assignSpatialReference
    - auto::transform
    - auto::Release
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: "std::unique_ptr<OGRFeature> OGRJSONFGReader::ReadFeature(json_object
      *poObj, const char *pszRequestedLayer,\n                             OGRJSONFGMemLayer
      **pOutMemLayer,\n                             OGRJSONFGStreamedLayer **pOutStreamedLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSONFGDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:25,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:30,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: OGRJSONFGDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp
    functionUses: 0
    functionsReached:
    - JSONFGDriverGetSourceType
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: int OGRJSONFGDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSONFGDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:46,1
    - Dst: std::make_unique<OGRJSONFGDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:49,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:50,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: OGRJSONFGDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - std::make_unique<OGRJSONFGDataset>
    - JSONFGDriverGetSourceType
    - auto::release
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRJSONFGDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRJSONFGDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:64,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:65,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: OGRJSONFGDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Create
    - std::make_unique<OGRJSONFGDataset>
    - auto::release
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRJSONFGDriverCreate(const char *pszName, int /* nBands
      */,\n                                          int /* nXSize */, int /* nYSize
      */,\n                                          GDALDataType /* eDT */,\n                                          char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:78,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:81,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:91,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:93,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:106,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:113,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:138,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:142,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:143,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:144,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:145,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 152
    functionName: RegisterOGRJSONFG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRJSONFG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: SetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFIDColumn(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: SetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFIDColumn(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCount
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: SetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFeatureCount(GIntBig nCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: OGRJSONFGDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h:248,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: GetOutputFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFile() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: IsSingleOutputLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSingleOutputLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: GetFpOutputIsSeekable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetFpOutputIsSeekable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    functionName: OGRJSONFGReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - GeometryElement
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: SetGeometryElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGeometryElement(GeometryElement elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: LayerDefnBuildContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LayerDefnBuildContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: LayerDefnBuildContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LayerDefnBuildContext(LayerDefnBuildContext &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: '&operator=(LayerDefnBuildContext &&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LayerDefnBuildContext
    signature: LayerDefnBuildContext &operator=(LayerDefnBuildContext &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszRequestedLayer
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: OGRJSONFGStreamingParser::SetRequestedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogr_jsonfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRequestedLayer(const char *pszRequestedLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: OGRJSONFGStreamingParserGetMaxObjectSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t OGRJSONFGStreamingParserGetMaxObjectSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSONFGStreamingParserGetMaxObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - oReader
    - bFirstPass
    argTypes:
    - OGRJSONFGReader
    - bool
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: OGRJSONFGStreamingParser::OGRJSONFGStreamingParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONFGStreamingParserGetMaxObjectSize
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGStreamingParser::OGRJSONFGStreamingParser(OGRJSONFGReader
      &oReader,\n                                                   bool bFirstPass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: OGRJSONFGStreamingParser::~OGRJSONFGStreamingParser()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGStreamingParser::~OGRJSONFGStreamingParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRJSONFGStreamingParser>
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:52,1
    - Dst: IsFirstPass
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: OGRJSONFGStreamingParser::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - IsFirstPass
    - std::make_unique<OGRJSONFGStreamingParser>
    linkageType: ''
    returnType: std::unique_ptr<OGRJSONFGStreamingParser>
    signature: std::unique_ptr<OGRJSONFGStreamingParser> OGRJSONFGStreamingParser::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:64,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:66,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:73,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: OGRJSONFGStreamingParser::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::move
    - std::pair
    - clear
    linkageType: ''
    returnType: std::pair<std::unique_ptr<OGRFeature>, OGRLayer *>
    signature: std::pair<std::unique_ptr<OGRFeature>, OGRLayer *> OGRJSONFGStreamingParser::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateLayerDefnFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:86,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:91,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:91,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:95,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:96,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:97,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poObj
    - bFirstPass
    argTypes:
    - json_object*
    - bool
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: OGRJSONFGStreamingParser::GotFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GenerateLayerDefnFromFeature
    - std::pair
    - CPLAssert
    - std::move
    - ReadFeature
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGStreamingParser::GotFeature(json_object *poObj, bool
      bFirstPass,\n                                          const std::string & /*osJson*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:108,1
    - Dst: EmitException
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: OGRJSONFGStreamingParser::TooComplex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - EmitException
    - ExceptionOccurred
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGStreamingParser::TooComplex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAdvertizeUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:24,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - poDS
    - pszName
    - poSRS
    - eGType
    argTypes:
    - GDALDataset*
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: OGRJSONFGMemLayer::OGRJSONFGMemLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp
    functionUses: 0
    functionsReached:
    - SetAdvertizeUTF8
    - SetUpdatable
    linkageType: ''
    returnType: void
    signature: "void OGRJSONFGMemLayer::OGRJSONFGMemLayer(GDALDataset *poDS, const
      char *pszName,\n                                     OGRSpatialReference *poSRS,\n
      \                                    OGRwkbGeometryType eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: OGRJSONFGMemLayer::~OGRJSONFGMemLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGMemLayer::~OGRJSONFGMemLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:40,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:46,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:48,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:57,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:61,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:70,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:71,1
    - Dst: std::unique_ptr<OGRFeature>::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:78,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:80,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:81,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:84,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:85,1
    - Dst: OGRAPISpy_L_SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:85,1
    - Dst: std::unique_ptr<OGRFeature>::get
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:85,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:86,1
    - Dst: SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - std::unique_ptr<OGRFeature>
    constantsTouched: []
    func_position:
      end: 88
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 88
    functionName: OGRJSONFGMemLayer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRFeature>::SetFID
    - SetUpdatable
    - OGRAPISpy_L_SetFeature
    - std::unique_ptr<OGRFeature>::get
    - SetUpdated
    - CPL_INT64_FITS_ON_INT32
    - SetMetadataItem
    - CPL_IGNORE_RET_VAL
    - CPLError
    - GetFeature
    - std::unique_ptr<OGRFeature>::GetFID
    - GetFeatureCount
    linkageType: ''
    returnType: void
    signature: void OGRJSONFGMemLayer::AddFeature(std::unique_ptr<OGRFeature> poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:97,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:100,1
    - Dst: OGRMemLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: OGRJSONFGMemLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jsonfg/ogrjsonfgmemlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRMemLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRJSONFGMemLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszNameIn
    - eType
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: OGRAmigoCloudGeomFieldDefn::OGRAmigoCloudGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudGeomFieldDefn(const char *pszNameIn, OGRwkbGeometryType
      eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:57,1
    - Dst: CPLHashSetHashStr
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:57,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - amigo_id
    - index
    argTypes:
    - std::string
    - GIntBig
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: OGRAmigoCloudFID::OGRAmigoCloudFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - std::abs
    - CPLHashSetHashStr
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudFID(const std::string &amigo_id, GIntBig index)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: OGRAmigoCloudFID::OGRAmigoCloudFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - fid
    argTypes:
    - OGRAmigoCloudFID
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: OGRAmigoCloudFID::OGRAmigoCloudFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudFID(const OGRAmigoCloudFID &fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - fid
    argTypes:
    - OGRAmigoCloudFID
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '&operator=(const OGRAmigoCloudFID &fid)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRAmigoCloudFID
    signature: OGRAmigoCloudFID &operator=(const OGRAmigoCloudFID &fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    linkageType: ''
    returnType: class OGRAmigoCloudLayer
    signature: class OGRAmigoCloudLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: OGRAmigoCloudTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: OGRAmigoCloudTableLayer::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetTableName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: OGRAmigoCloudTableLayer::GetDatasetId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetDatasetId()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OGRAmigoCloudTableLayer::GetDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetDeferredCreation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OGRAmigoCloudTableLayer::CancelDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CancelDeferredCreation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: OGRAmigoCloudDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: OGRAmigoCloudDataSource::IsReadWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsReadWrite() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: OGRAmigoCloudDataSource::GetProjectId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetProjectId()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: '&GetCurrentSchema()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetCurrentSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: OGRAmigoCloudDataSource::IsAuthenticatedConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int IsAuthenticatedConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: OGRAmigoCloudDataSource::HasOGRMetadataFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasOGRMetadataFunction()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: OGRAmigoCloudDataSource::SetOGRMetadataFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOGRMetadataFunction(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: OGRAmigoCloudDataSource::OGRAmigoCloudDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudDataSource::OGRAmigoCloudDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:40,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:45,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:46,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:47,1
    - Dst: OGRAmigoCloudDataSource::GetUserAgentOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:47,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:48,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:48,1
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:48,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:49,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: OGRAmigoCloudDataSource::~OGRAmigoCloudDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudDataSource::GetUserAgentOption
    - CPLFree
    - CPLHTTPFetch
    - OGRAmigoCloudDataSource::GetAPIURL
    - CSLAddString
    - CSLDestroy
    - CPLSPrintf
    - CPLHTTPDestroyResult
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudDataSource::~OGRAmigoCloudDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:59,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: OGRAmigoCloudDataSource::GetUserAgentOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALVersionInfo
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string OGRAmigoCloudDataSource::GetUserAgentOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:70,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:72,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:74,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: OGRAmigoCloudDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: OGRAmigoCloudDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRAmigoCloudDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: OGRAmigoCloudDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRAmigoCloudDataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:124,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:127,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pszFilename
    - pszOptionName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: OGRAMIGOCLOUDGetOptionValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - CPLString::size
    - CPLString::resize
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRAMIGOCLOUDGetOptionValue(const char *pszFilename,\n                                      const
      char *pszOptionName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:134,1
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:134,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:135,1
    - Dst: OGRAmigoCloudDataSource::GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:135,1
    - Dst: OGRAmigoCloudDataSource::RunGET
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:136,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:139,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:144,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:148,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:150,1
    - Dst: CPLprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:152,1
    - Dst: OGRAmigoCloudDataSource::GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:153,1
    - Dst: CPLprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:154,1
    - Dst: CPLprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:155,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:156,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:159,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:165,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:168,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:171,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:174,1
    - Dst: CPLprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:180,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:180,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 189
    functionName: OGRAmigoCloudDataSource::ListDatasets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRAmigoCloudDataSource::RunGET
    - json_object_array_get_idx
    - json_object_array_length
    - OGRAmigoCloudDataSource::GetAPIURL
    - CPLprintf
    - json_object_get_type
    - json_object_get_string
    - json_object_put
    - OGRAmigoCloudDataSource::GetProjectId
    - std::stringstream::str
    - std::string
    - CPLError
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool OGRAmigoCloudDataSource::ListDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:200,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:202,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:208,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:213,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:214,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:216,1
    - Dst: OGRAMIGOCLOUDGetOptionValue
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:219,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:223,1
    - Dst: OGRAmigoCloudDataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:228,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:231,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:234,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:236,1
    - Dst: OGRAmigoCloudDataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:240,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:242,1
    - Dst: OGRAMIGOCLOUDGetOptionValue
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:245,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:246,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:252,1
    - Dst: OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:256,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:258,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:262,1
    - Dst: OGRAmigoCloudDataSource::TruncateDataset
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:264,1
    - Dst: GetTableName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:264,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:272,1
    - Dst: OGRAmigoCloudDataSource::ListDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:273,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    - bUpdateIn
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 277
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 277
    functionName: OGRAmigoCloudDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - OGRAmigoCloudDataSource::ReleaseResultSet
    - CPLError
    - OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer
    - CPLGetConfigOption
    - CPLString::empty
    - CPL_TO_BOOL
    - CPLStrdup
    - CPLRealloc
    - strlen
    - OGRAmigoCloudDataSource::ExecuteSQLInternal
    - CPLFetchBool
    - OGRAmigoCloudDataSource::ListDatasets
    - OGRAmigoCloudDataSource::TruncateDataset
    - OGRAMIGOCLOUDGetOptionValue
    - OGRFeature*::GetFieldCount
    - empty
    - CSLFetchNameValueDef
    - CSLDestroy
    - GetTableName
    - std::string
    linkageType: ''
    returnType: int
    signature: "int OGRAmigoCloudDataSource::Open(const char *pszFilename,\n                                  char
      **papszOpenOptionsIn, int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:290,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: OGRAmigoCloudDataSource::GetAPIURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRAmigoCloudDataSource::GetAPIURL() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:311,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:318,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:320,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:321,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:324,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:327,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:327,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 348
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 348
    functionName: OGRAmigoCloudDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - atoi
    - OGRSpatialReference::GetAuthorityName
    - EQUAL
    - OGRSpatialReference::AutoIdentifyEPSG
    - strlen
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudDataSource::FetchSRSId(OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:361,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:366,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:368,1
    - Dst: OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:372,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:378,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:379,1
    - Dst: OGRAmigoCloudTableLayer*::SetDeferredCreation
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:381,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:383,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - pszNameIn
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 389
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 389
    functionName: OGRAmigoCloudDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRAmigoCloudTableLayer*::SetDeferredCreation
    - OGRGeomFieldDefn*::GetType
    - OGRSpatialReference*::Release
    - CPLRealloc
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - CPLError
    - OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRAmigoCloudDataSource::ICreateLayer(const char *pszNameIn,\n
      \                                     const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:406,1
    - Dst: GetDatasetId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:416,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:418,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:418,1
    - Dst: CancelDeferredCreation
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:421,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:423,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:427,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:433,1
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:433,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:434,1
    - Dst: OGRAmigoCloudDataSource::GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:434,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:435,1
    - Dst: OGRAmigoCloudDataSource::RunDELETE
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:436,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 443
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 443
    functionName: OGRAmigoCloudDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::empty
    - OGRAmigoCloudDataSource::GetAPIURL
    - OGRAmigoCloudDataSource::RunDELETE
    - CPLDebug
    - GetDatasetId
    - CPLString::c_str
    - OGRAmigoCloudDataSource::GetProjectId
    - std::stringstream::str
    - std::string
    - CPLError
    - memmove
    - CancelDeferredCreation
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:453,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: OGRAmigoCloudDataSource::AddHTTPOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char **OGRAmigoCloudDataSource::AddHTTPOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:469,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:471,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:482,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:483,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:484,1
    - Dst: OGRAmigoCloudDataSource::GetUserAgentOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:484,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:486,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:486,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:487,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:492,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:494,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:495,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:497,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:502,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:507,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:512,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:518,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:520,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:524,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:528,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:530,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:532,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:533,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:535,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:537,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:539,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:541,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:542,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:546,1
    - Dst: OGRAmigoCloudDataSource::waitForJobToFinish
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:552,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:558,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - pszURL
    - pszPostData
    - pszHeaders
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 564
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 564
    functionName: OGRAmigoCloudDataSource::RunPOST
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - strncmp
    - CPLDebug
    - CPLError
    - CPL_json_object_object_get
    - CPLString::c_str
    - OGRJSonParse
    - json_object_array_get_idx
    - OGRAmigoCloudDataSource::GetUserAgentOption
    - json_object_array_length
    - CPLHTTPFetch
    - json_object_get_type
    - json_object_get_string
    - CPLString::find
    - empty
    - CSLDestroy
    - json_object_put
    - OGRAmigoCloudDataSource::waitForJobToFinish
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRAmigoCloudDataSource::RunPOST(const char *pszURL,\n
      \                                             const char *pszPostData,\n                                              const
      char *pszHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:569,1
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:569,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:569,1
    - Dst: OGRAmigoCloudDataSource::RunGET
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:574,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:577,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:586,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:590,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:596,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:597,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - jobId
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 606
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 606
    functionName: OGRAmigoCloudDataSource::waitForJobToFinish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRAmigoCloudDataSource::RunGET
    - CPLSleep
    - OGRAmigoCloudDataSource::GetAPIURL
    - json_object_get_string
    - std::stringstream::str
    - std::string
    - CPLError
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool OGRAmigoCloudDataSource::waitForJobToFinish(const char *jobId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudDataSource::SubmitChangeset
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:613,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tableName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: OGRAmigoCloudDataSource::TruncateDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRAmigoCloudDataSource::SubmitChangeset
    - std::stringstream::str
    linkageType: ''
    returnType: bool
    signature: bool OGRAmigoCloudDataSource::TruncateDataset(const CPLString &tableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:620,1
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:620,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:621,1
    - Dst: OGRAmigoCloudDataSource::GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:621,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:624,1
    - Dst: OGRAmigoCloudDataSource::RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:625,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:625,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:625,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 628
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 628
    functionName: OGRAmigoCloudDataSource::SubmitChangeset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRAMIGOCLOUDJsonEncode
    - OGRAmigoCloudDataSource::RunPOST
    - OGRAmigoCloudDataSource::GetAPIURL
    - json_object_put
    - OGRAmigoCloudDataSource::GetProjectId
    - std::stringstream::str
    - std::string
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudDataSource::SubmitChangeset(const CPLString &json)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:641,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:643,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:652,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:653,1
    - Dst: OGRAmigoCloudDataSource::GetUserAgentOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:653,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:655,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:655,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:656,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:661,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:663,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:665,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:672,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:677,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 682
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 682
    functionName: OGRAmigoCloudDataSource::RunDELETE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRAmigoCloudDataSource::GetUserAgentOption
    - empty
    - CPLError
    - CPLHTTPFetch
    - CSLAddString
    - CSLDestroy
    - strncmp
    - CPLDebug
    - CPLString::c_str
    - CPLHTTPDestroyResult
    - CPLString::find
    linkageType: ''
    returnType: bool
    signature: bool OGRAmigoCloudDataSource::RunDELETE(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:695,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:697,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:704,1
    - Dst: OGRAmigoCloudDataSource::GetUserAgentOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:704,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:706,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:706,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:707,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:714,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:716,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:723,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:728,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:733,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:737,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:741,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:743,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:747,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:751,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:753,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:755,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:756,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:758,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:762,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:764,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:765,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:772,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 778
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 778
    functionName: OGRAmigoCloudDataSource::RunGET
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRAmigoCloudDataSource::GetUserAgentOption
    - json_object_array_get_idx
    - json_object_array_length
    - empty
    - CPLError
    - CPLHTTPFetch
    - json_object_get_string
    - CSLAddString
    - CSLDestroy
    - strncmp
    - CPLDebug
    - json_object_get_type
    - json_object_put
    - CPLString::c_str
    - CPLHTTPDestroyResult
    - CPLString::find
    - OGRJSonParse
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRAmigoCloudDataSource::RunGET(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudDataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:787,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:788,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:790,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:791,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:792,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:793,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:794,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:795,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:798,1
    - Dst: OGRAmigoCloudDataSource::RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:800,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:800,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:800,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:807,1
    - Dst: OGRAmigoCloudDataSource::RunGET
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:808,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - pszUnescapedSQL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 810
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 810
    functionName: OGRAmigoCloudDataSource::RunSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudDataSource::RunGET
    - OGRAMIGOCLOUDJsonEncode
    - std::string::find
    - OGRAmigoCloudDataSource::RunPOST
    - OGRAmigoCloudDataSource::GetAPIURL
    - CPLString::c_str
    - CPLString
    - std::stringstream::str
    - CPLFree
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRAmigoCloudDataSource::RunSQL(const char *pszUnescapedSQL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:823,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:824,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:825,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:830,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:832,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 838
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 838
    functionName: OGRAMIGOCLOUDGetSingleRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - json_object_get_type
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRAMIGOCLOUDGetSingleRow(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:852,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:853,1
    - Dst: OGRAmigoCloudDataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 857
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 857
    functionName: OGRAmigoCloudDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 0
    functionsReached:
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - OGRAmigoCloudDataSource::ExecuteSQLInternal
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRAmigoCloudDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                             OGRGeometry *poSpatialFilter,\n
      \                                             const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:868,1
    - Dst: FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:869,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:877,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:877,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:878,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:878,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:879,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:879,1
    - Dst: OGRAmigoCloudDataSource::RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:881,1
    - Dst: OGRAmigoCloudResultLayer::OGRAmigoCloudResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:886,1
    - Dst: OGRAmigoCloudResultLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:889,1
    - Dst: OGRAmigoCloudResultLayer*::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp:891,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - bRunDeferredActions
    argTypes:
    - char*
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 898
      start: 859
    functionDepth: 4
    functionLinenumber: 859
    functionLinenumberEnd: 898
    functionName: OGRAmigoCloudDataSource::ExecuteSQLInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRAmigoCloudResultLayer*::SetSpatialFilter
    - RunDeferredCreationIfNecessary
    - strlen
    - FlushDeferredInsert
    - OGRAmigoCloudResultLayer::OGRAmigoCloudResultLayer
    - EQUALN
    - OGRAmigoCloudDataSource::RunSQL
    - OGRAmigoCloudResultLayer*::IsOK
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRAmigoCloudDataSource::ExecuteSQLInternal(\n    const
      char *pszSQLCommand, OGRGeometry *poSpatialFilter, const char *,\n    bool bRunDeferredActions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 908
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 908
    functionName: OGRAmigoCloudDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:23,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRAmigoCloudDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp
    functionUses: 0
    functionsReached:
    - EQUALN
    - strlen
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:34,1
    - Dst: OGRAmigoCloudDataSource::OGRAmigoCloudDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:37,1
    - Dst: OGRAmigoCloudDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: OGRAmigoCloudDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudDataSource::OGRAmigoCloudDataSource
    - OGRAmigoCloudDriverIdentify
    - OGRAmigoCloudDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRAmigoCloudDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudDataSource::OGRAmigoCloudDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:61,1
    - Dst: OGRAmigoCloudDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: OGRAmigoCloudDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudDataSource::OGRAmigoCloudDataSource
    - OGRAmigoCloudDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRAmigoCloudDriverCreate(const char *pszName,\n                                              CPL_UNUSED
      int nBands,\n                                              CPL_UNUSED int nXSize,\n
      \                                             CPL_UNUSED int nYSize,\n                                              CPL_UNUSED
      GDALDataType eDT,\n                                              CPL_UNUSED
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:78,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:81,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:92,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:101,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:118,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 126
    functionName: RegisterOGRAmigoCloud
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigoclouddriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRAmigoCloud()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:34,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: OGRAMIGOCLOUDEscapeIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAMIGOCLOUDEscapeIdentifier(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:46,1
    - Dst: std::string::cend
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:46,1
    - Dst: std::setw
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:74,1
    - Dst: std::setfill
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:74,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 84
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 84
    functionName: OGRAMIGOCLOUDJsonEncode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 2
    functionsReached:
    - std::string::cend
    - std::setw
    - std::string::cbegin
    - std::setfill
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string OGRAMIGOCLOUDJsonEncode(const std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:92,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:95,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:96,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:99,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poDSIn
    - pszName
    argTypes:
    - OGRAmigoCloudDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 2
    functionsReached:
    - SetDescription
    - CPLGetConfigOption
    - CPLString
    - atoi
    linkageType: ''
    returnType: void
    signature: "void OGRAmigoCloudTableLayer::OGRAmigoCloudTableLayer(\n    OGRAmigoCloudDataSource
      *poDSIn, const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:111,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: OGRAmigoCloudTableLayer::~OGRAmigoCloudTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudTableLayer::~OGRAmigoCloudTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:127,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:128,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:129,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:132,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:135,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:136,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:137,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:138,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:139,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:141,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:144,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:146,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:147,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:161,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:161,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:164,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:172,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:176,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:179,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:181,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:183,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:187,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:188,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:190,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:192,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:196,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:197,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:199,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:202,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - json_object *poObjIn
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 207
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 207
    functionName: OGRAmigoCloudTableLayer::GetLayerDefnInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAMIGOCLOUDEscapeIdentifier
    - GetGeomFieldDefn
    - GetFieldDefn
    - GetGeomFieldCount
    - CPL_json_object_object_get
    - json_object_array_get_idx
    - EstablishLayerDefn
    - json_object_array_length
    - c_str
    - CPLString::Printf
    - json_object_get_type
    - GetFieldCount
    - json_object_get_string
    - empty
    - json_object_put
    - Printf
    - EQUAL
    - RunSQL
    - clear
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: 'OGRFeatureDefn *

      OGRAmigoCloudTableLayer::GetLayerDefnInternal(CPL_UNUSED json_object *poObjIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:215,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:219,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:221,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:221,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:222,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:222,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:222,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:227,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:227,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:230,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:231,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:234,1
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:234,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:236,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:238,1
    - Dst: OGRAmigoCloudLayer::FetchNewFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - iNextIn
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 242
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 242
    functionName: OGRAmigoCloudTableLayer::FetchNewFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudLayer::FetchNewFeatures
    - GetFeaturesToFetch
    - c_str
    - empty
    - CPLString::Printf
    - CPLSPrintf
    - CPLString::ifind
    - RunSQL
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRAmigoCloudTableLayer::FetchNewFeatures(GIntBig iNextIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:250,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:252,1
    - Dst: OGRAmigoCloudLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: OGRAmigoCloudTableLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudLayer::GetNextRawFeature
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudTableLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:263,1
    - Dst: OGRAmigoCloudTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:274,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 279
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 279
    functionName: OGRAmigoCloudTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRAmigoCloudTableLayer::BuildWhere
    - ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudTableLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:291,1
    - Dst: OGRAmigoCloudTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:293,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: OGRAmigoCloudTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - InstallFilter
    - OGRAmigoCloudTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRAmigoCloudTableLayer::ISetSpatialFilter(int iGeomField,\n
      \                                                 const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:307,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:311,1
    - Dst: GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:311,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:312,1
    - Dst: GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:312,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:321,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:325,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:331,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:331,1
    - Dst: RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:335,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:335,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:335,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:337,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 341
    functionName: OGRAmigoCloudTableLayer::FlushDeferredInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 2
    functionsReached:
    - size
    - OGRAMIGOCLOUDJsonEncode
    - c_str
    - empty
    - GetAPIURL
    - json_object_put
    - GetProjectId
    - std::stringstream::str
    - std::string
    - RunPOST
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudTableLayer::FlushDeferredInsert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:350,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:352,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:354,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:367,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:368,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:369,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:369,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:370,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:371,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:373,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:373,1
    - Dst: OGRPGCommonLayerGetPGDefault
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:376,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:379,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:382,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 388
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 388
    functionName: OGRAmigoCloudTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRFieldDefn::GetNameRef
    - OGRFieldDefn::GetDefault
    - OGRPGCommonLayerGetType
    - CPLString::Printf
    - OGRAMIGOCLOUDEscapeIdentifier
    - OGRPGCommonLayerGetPGDefault
    - json_object_put
    - OGRFieldDefn::IsDefaultDriverSpecific
    - IsReadWrite
    - AddFieldDefn
    - RunSQL
    - CPLError
    - OGRFieldDefn::IsNullable
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRAmigoCloudTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                           CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:399,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:403,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:405,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:407,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:419,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:421,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:425,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:426,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:429,1
    - Dst: cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:434,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:435,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:440,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:440,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:441,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:441,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:443,1
    - Dst: OGRMultiPolygon*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:444,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:445,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:450,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:452,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:460,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:462,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:463,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:467,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:470,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:476,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:476,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:478,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:480,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:484,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:484,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:488,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:488,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:498,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:509,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:509,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 512
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 512
    functionName: OGRAmigoCloudTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAMIGOCLOUDJsonEncode
    - GetGeomFieldDefn
    - OGRFeature*::GetFieldAsString
    - OGRAMIGOCLOUDEscapeIdentifier
    - GetFieldDefn
    - CPLError
    - OGRFeature*::IsFieldNull
    - GetGeomFieldCount
    - std::string::c_str
    - std::string::empty
    - OGRGeometryToHexEWKB
    - GetGeomType
    - std::move
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - GetLayerDefn
    - OGRFeature*::GetGeomFieldRef
    - GetFieldCount
    - OGRMultiPolygon::OGRMultiPolygon
    - IsReadWrite
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - CPLFree
    - cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
    - OGRMultiPolygon*::addGeometry
    - OGRFeature*::IsFieldSet
    - push_back
    - std::stringstream::str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:523,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:525,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:527,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:529,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:531,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:538,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:543,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:543,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:544,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:549,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:550,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:552,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:554,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:562,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:563,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:566,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:572,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:578,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:578,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:582,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:585,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:588,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:592,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:599,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:600,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:603,1
    - Dst: cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:611,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:612,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:620,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:627,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:628,1
    - Dst: OGRAmigoCloudFID::osAmigoId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:629,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:632,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:635,1
    - Dst: GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:635,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:636,1
    - Dst: GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:636,1
    - Dst: RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:639,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:639,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:639,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:644,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:646,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:656,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 660
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 660
    functionName: OGRAmigoCloudTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAMIGOCLOUDJsonEncode
    - GetAPIURL
    - OGRAMIGOCLOUDEscapeIdentifier
    - OGRFeature*::GetFieldAsString
    - GetGeomFieldDefn
    - OGRFeature*::IsFieldNull
    - GetFieldDefn
    - CPLError
    - GetGeomFieldCount
    - CPL_json_object_object_get
    - end
    - OGRFeature*::GetFieldAsInteger
    - find
    - GetLayerDefn
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRFeature*::GetGeomFieldRef
    - json_object_get_type
    - GetFieldCount
    - CPLSPrintf
    - IsReadWrite
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - CPLFree
    - OGRAmigoCloudFID::osAmigoId::c_str
    - cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
    - OGRFeature*::IsFieldSet
    - json_object_put
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    - GetProjectId
    - std::stringstream::str
    - std::string
    - RunPOST
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:671,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:673,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:675,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:679,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:684,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:687,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:688,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:693,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:694,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:695,1
    - Dst: OGRAmigoCloudFID::osAmigoId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:696,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:699,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:702,1
    - Dst: GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:702,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:703,1
    - Dst: GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:703,1
    - Dst: RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:706,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:706,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:706,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 714
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 714
    functionName: OGRAmigoCloudTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - end
    - OGRAMIGOCLOUDJsonEncode
    - empty
    - GetAPIURL
    - CPLString::Printf
    - find
    - OGRAMIGOCLOUDEscapeIdentifier
    - json_object_put
    - RunPOST
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    - IsReadWrite
    - GetProjectId
    - std::stringstream::str
    - std::string
    - CPLError
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRAmigoCloudFID::osAmigoId::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:724,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:726,1
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:726,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:727,1
    - Dst: OGRAMIGOCLOUDJsonEncode
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszGeomCol
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: OGRAmigoCloudTableLayer::GetSRS_SQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - OGRAMIGOCLOUDJsonEncode
    - GetCurrentSchema
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAmigoCloudTableLayer::GetSRS_SQL(const char *pszGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:746,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:750,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:753,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:759,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:761,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:763,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:765,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:767,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:768,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:772,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:774,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:779,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 788
    functionName: OGRAmigoCloudTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 2
    functionsReached:
    - getEnvelope
    - empty
    - GetGeomFieldDefn
    - OGRAMIGOCLOUDEscapeIdentifier
    - strchr
    - Printf
    - CPLsnprintf
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:797,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:799,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:801,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:803,1
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:804,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:806,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:807,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:813,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:815,1
    - Dst: OGRAmigoCloudFID::osAmigoId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:815,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:817,1
    - Dst: OGRAMIGOCLOUDGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:818,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:822,1
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:823,1
    - Dst: BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:826,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:827,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 832
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 832
    functionName: OGRAmigoCloudTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeature
    - GetLayerDefn
    - end
    - empty
    - OGRAMIGOCLOUDGetSingleRow
    - BuildFeature
    - find
    - OGRAMIGOCLOUDEscapeIdentifier
    - CPLSPrintf
    - json_object_put
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    - RunSQL
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRAmigoCloudFID::osAmigoId::c_str
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:841,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:843,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:845,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:848,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:849,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:850,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:856,1
    - Dst: OGRAMIGOCLOUDGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:857,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:861,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:862,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:865,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:866,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:868,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:869,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:872,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:874,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 877
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 877
    functionName: OGRAmigoCloudTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - GetLayerDefn
    - empty
    - OGRAMIGOCLOUDGetSingleRow
    - OGRAMIGOCLOUDEscapeIdentifier
    - CPL_json_object_object_get
    - json_object_get_type
    - CPLSPrintf
    - json_object_put
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    - RunSQL
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRAmigoCloudTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:891,1
    - Dst: OGRAmigoCloudTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:893,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:896,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:899,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:901,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:901,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:902,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:904,1
    - Dst: OGRAMIGOCLOUDGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:905,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:909,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:911,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:917,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:921,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:924,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:927,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:931,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:938,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:940,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:942,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:944,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:955,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:956,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:957,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:958,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:960,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:962,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:968,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:970,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 971
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 971
    functionName: OGRAmigoCloudTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRAMIGOCLOUDGetSingleRow
    - CPLString::Printf
    - GetGeomFieldDefn
    - OGRAMIGOCLOUDEscapeIdentifier
    - OGRGeomFieldDefn*::GetNameRef
    - json_object_get_type
    - json_object_put
    - strchr
    - strncpy
    - CSLDestroy
    - OGRAmigoCloudTableLayer::FlushDeferredInsert
    - RunSQL
    - CPLError
    - CSLCount
    - OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    - OGRLayer::IGetExtent
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRAmigoCloudTableLayer::IGetExtent(int iGeomField,\n                                           OGREnvelope
      *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:980,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:982,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:984,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:986,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:987,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:990,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:990,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:992,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:994,1
    - Dst: OGRAmigoCloudLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:997,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 998
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 998
    functionName: OGRAmigoCloudTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - empty
    - EQUAL
    - IsReadWrite
    - OGRAmigoCloudLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1010,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1011,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1012,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1013,1
    - Dst: std::make_unique<OGRAmigoCloudGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1020,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1022,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1025,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1026,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1028,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1028,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1031,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - eGType
    - poSRS
    - bGeomNullable
    argTypes:
    - OGRwkbGeometryType
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 1033
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1033
    functionName: OGRAmigoCloudTableLayer::SetDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - AddGeomFieldDefn
    - SetGeomType
    - OGRAMIGOCLOUDEscapeIdentifier
    - OGRFeatureDefn::OGRFeatureDefn
    - Printf
    - CPLAssert
    - Reference
    - auto::SetNullable
    - std::move
    - std::make_unique<OGRAmigoCloudGeomFieldDefn>
    - auto::SetSpatialRef
    - FetchSRSId
    linkageType: ''
    returnType: void
    signature: "void OGRAmigoCloudTableLayer::SetDeferredCreation(OGRwkbGeometryType
      eGType,\n                                                  OGRSpatialReference
      *poSRS,\n                                                  int bGeomNullable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1042,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1044,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1046,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1048,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1050,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1052,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1054,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1056,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1058,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1060,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1062,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1064,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1066,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1068,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1072,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1074,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1075,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1075,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - oField
    argTypes:
    - OGRFieldDefn
    constantsTouched: []
    func_position:
      end: 1080
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1080
    functionName: OGRAmigoCloudTableLayer::GetAmigoCloudType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - CPLError
    - OGRFieldDefn::GetFieldTypeName
    - strcpy
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAmigoCloudTableLayer::GetAmigoCloudType(const OGRFieldDefn
      &oField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1085,1
    - Dst: GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1085,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1086,1
    - Dst: GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1086,1
    - Dst: RunGET
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1088,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1088,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1096,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1099,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1103,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1110
    functionName: OGRAmigoCloudTableLayer::IsDatasetExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLSleep
    - GetAPIURL
    - std::string
    - json_object_put
    - GetProjectId
    - RunGET
    - std::stringstream::str
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool OGRAmigoCloudTableLayer::IsDatasetExists()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1125,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1128,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1129,1
    - Dst: cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1133,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1134,1
    - Dst: OGRAmigoCloudGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1136,1
    - Dst: OGRAmigoCloudGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1140,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1150,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1152,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1153,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1153,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1158,1
    - Dst: OGRAmigoCloudTableLayer::GetAmigoCloudType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1160,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1162,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1167,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1168,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1170,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1181,1
    - Dst: GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1181,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1182,1
    - Dst: GetProjectId
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1182,1
    - Dst: RunPOST
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1185,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1185,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1185,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1188,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1190,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1193,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1196,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1200,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1200,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1201,1
    - Dst: OGRAmigoCloudTableLayer::IsDatasetExists
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1203,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp:1207,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1213
    functionName: OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudtablelayer.cpp
    functionUses: 8
    functionsReached:
    - GetAPIURL
    - GetGeomFieldDefn
    - OGRAmigoCloudGeomFieldDefn*::GetNameRef
    - strcmp
    - CPLString
    - GetFieldDefn
    - CPL_json_object_object_get
    - wkbHasZ
    - json_object_to_json_string
    - OGRFieldDefn*::GetDefault
    - GetGeomType
    - OGRToOGCGeomType
    - OGRAmigoCloudTableLayer::GetAmigoCloudType
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::GetNameRef
    - json_object_get_type
    - GetFieldCount
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - OGRAmigoCloudTableLayer::IsDatasetExists
    - OGRAmigoCloudGeomFieldDefn*::IsNullable
    - cpl::down_cast<OGRAmigoCloudGeomFieldDefn *>
    - json_object_put
    - GetProjectId
    - std::stringstream::str
    - std::string
    - RunPOST
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRAmigoCloudTableLayer::RunDeferredCreationIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: OGRAmigoCloudGeomFieldDefn::~OGRAmigoCloudGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudGeomFieldDefn::~OGRAmigoCloudGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRAmigoCloudDataSource*
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: OGRAmigoCloudLayer::OGRAmigoCloudLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudLayer::OGRAmigoCloudLayer(OGRAmigoCloudDataSource
      *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:38,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: OGRAmigoCloudLayer::~OGRAmigoCloudLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudLayer::~OGRAmigoCloudLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: OGRAmigoCloudLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefnInternal
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: OGRAmigoCloudLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefnInternal
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRAmigoCloudLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:77,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:79,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:81,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:84,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:86,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:88,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:91,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:95,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:97,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:98,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:102,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:104,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:106,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:106,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:108,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:109,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:111,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:111,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:113,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:115,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:115,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:119,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:122,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:123,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:124,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:126,1
    - Dst: OGRGeometryFromHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:128,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:129,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:131,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:132,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:133,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - poRowObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 138
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 138
    functionName: OGRAmigoCloudLayer::BuildFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - GetGeomFieldDefn
    - GetFieldDefn
    - GetGeomFieldCount
    - OGRFeature*::SetGeomFieldDirectly
    - CPL_json_object_object_get
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeometryFromHexEWKB
    - json_object_get_double
    - json_object_get_type
    - GetFieldCount
    - json_object_get_string
    - OGRFeature::OGRFeature
    - empty
    - OGRFeature*::SetField
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudLayer::BuildFeature(json_object *poRowObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:147,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:148,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:151,1
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:151,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:153,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iNextIn
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: OGRAmigoCloudLayer::FetchNewFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::ifind
    - GetFeaturesToFetch
    - CPLSPrintf
    - RunSQL
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRAmigoCloudLayer::FetchNewFeatures(GIntBig iNextIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:169,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:175,1
    - Dst: OGRAmigoCloudLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:177,1
    - Dst: OGRAmigoCloudLayer::FetchNewFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:180,1
    - Dst: GetLayerDefnInternal
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:189,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:192,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:195,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:196,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:198,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:204,1
    - Dst: static_cast<decltype(nFetchedObjects)>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:207,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:208,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:212,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:214,1
    - Dst: OGRAmigoCloudLayer::BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:218,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:221,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:221,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:222,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 228
    functionName: OGRAmigoCloudLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRAmigoCloudLayer::FetchNewFeatures
    - GetFeaturesToFetch
    - json_object_array_length
    - static_cast<decltype(nFetchedObjects)>
    - empty
    - json_object_array_get_idx
    - end
    - OGRFeature*::GetFID
    - find
    - json_object_get_type
    - GetLayerDefnInternal
    - json_object_put
    - OGRAmigoCloudLayer::GetLayerDefn
    - OGRAmigoCloudLayer::BuildFeature
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:238,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:243,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:243,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 6
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: OGRAmigoCloudLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudLayer::GetNextRawFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:260,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: OGRAmigoCloudLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:274,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:275,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:276,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:292,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:292,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:296,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:303,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:305,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:308,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:312,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:316,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:318,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:332,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:336,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:338,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:342,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:344,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:344,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:345,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:345,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:347,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:348,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:350,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:350,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:351,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:352,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:352,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:354,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:357,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:357,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:359,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:362,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:362,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:364,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:367,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:367,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:369,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:372,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:372,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:374,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:377,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:377,1
    - Dst: std::make_unique<OGRAmigoCloudGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:380,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:381,1
    - Dst: OGRAmigoCloudLayer::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:383,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:383,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:386,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:387,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:389,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:389,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:391,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:391,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:393,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:394,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:395,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:399,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:401,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:402,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:403,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:409,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 2
    argNames:
    - pszLayerName
    - poObjIn
    argTypes:
    - char*
    - json_object*
    constantsTouched: []
    func_position:
      end: 410
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 410
    functionName: OGRAmigoCloudLayer::EstablishLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudLayer::GetSRS
    - CPLDebug
    - OGRSpatialReference*::Release
    - Reference
    - std::make_unique<OGRAmigoCloudGeomFieldDefn>
    - std::string::c_str
    - CPL_json_object_object_get
    - std::string::empty
    - SetGeomType
    - std::move
    - AddFieldDefn
    - json_object_array_get_idx
    - c_str
    - json_object_array_length
    - CPLString::Printf
    - OGRFeatureDefn::OGRFeatureDefn
    - json_object_get_type
    - OGRFieldDefn::SetSubType
    - auto::SetSpatialRef
    - json_object_get_string
    - AddGeomFieldDefn
    - json_object_put
    - EQUAL
    - RunSQL
    linkageType: ''
    returnType: void
    signature: "void OGRAmigoCloudLayer::EstablishLayerDefn(const char *pszLayerName,\n
      \                                           json_object *poObjIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:419,1
    - Dst: GetSRS_SQL
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:419,1
    - Dst: OGRAMIGOCLOUDGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:420,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:424,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:428,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:429,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:431,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:434,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:437,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:440,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:441,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:442,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pszGeomCol
    - pnSRID
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 451
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 451
    functionName: OGRAmigoCloudLayer::GetSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 1
    functionsReached:
    - GetSRS_SQL
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRAMIGOCLOUDGetSingleRow
    - json_object_get_type
    - OGRSpatialReference*::importFromWkt
    - json_object_put
    - json_object_get_int
    - RunSQL
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRSpatialReference
    signature: "OGRSpatialReference *OGRAmigoCloudLayer::GetSRS(const char *pszGeomCol,\n
      \                                               int *pnSRID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: OGRAmigoCloudLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRAmigoCloudLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poDSIn
    - pszRawQueryIn
    argTypes:
    - OGRAmigoCloudDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: OGRAmigoCloudResultLayer::OGRAmigoCloudResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 1
    functionsReached:
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRAmigoCloudResultLayer::OGRAmigoCloudResultLayer(\n    OGRAmigoCloudDataSource
      *poDSIn, const char *pszRawQueryIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: OGRAmigoCloudResultLayer::~OGRAmigoCloudResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAmigoCloudResultLayer::~OGRAmigoCloudResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poObjIn
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: OGRAmigoCloudResultLayer::GetLayerDefnInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 0
    functionsReached:
    - EstablishLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: 'OGRFeatureDefn *

      OGRAmigoCloudResultLayer::GetLayerDefnInternal(json_object *poObjIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: OGRAmigoCloudResultLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAmigoCloudResultLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:75,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:76,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: OGRAmigoCloudResultLayer::IsOK
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 0
    functionsReached:
    - GetNextFeature
    - CPLErrorReset
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int OGRAmigoCloudResultLayer::IsOK()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:105,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:105,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:109,1
    - Dst: OGRAMIGOCLOUDEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:111,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszGeomCol
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 115
    functionName: OGRAmigoCloudResultLayer::GetSRS_SQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/amigocloud/ogramigocloudresultlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - CPLString::Printf
    - c_str
    - OGRAMIGOCLOUDEscapeIdentifier
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRAmigoCloudResultLayer::GetSRS_SQL(const char *pszGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:30,1
    - Dst: OGRPDSDataSource::OGRPDSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:34,1
    - Dst: OGRPDSDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: OGRPDSDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPDSDataSource::OGRPDSDataSource
    - OGRPDSDataSource*::Open
    - strstr
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPDSDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:52,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:55,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:57,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:63,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: RegisterOGRPDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:34,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:39,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:39,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:40,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:41,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:43,1
    - Dst: OGRPDS::OGRPDSLayer::ReadStructure
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:45,1
    - Dst: OGRPDS::OGRPDSLayer::ReadStructure
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:49,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:52,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:54,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:55,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:82,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:83,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:85,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:87,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:92,1
    - Dst: OGRPDS::OGRPDSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 10
    argNames:
    - osTableIDIn
    - pszLayerName
    - fp
    - osLabelFilename
    - osStructureFilename
    - nRecordsIn
    - nStartBytesIn
    - nRecordSizeIn
    - pabyRecordIn
    - bIsASCII
    argTypes:
    - std::string
    - char*
    - VSILFILE*
    - std::string
    - std::string
    - int
    - int
    - int
    - GByte*
    - bool
    constantsTouched: []
    func_position:
      end: 96
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 96
    functionName: OGRPDS::OGRPDSLayer::OGRPDSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRPDS::OGRPDSLayer::ResetReading
    - SetGeomType
    - VSIFSeekL
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - CSLDestroy
    - Reference
    - snprintf
    - AddFieldDefn
    - VSIFReadL
    - OGRPDS::OGRPDSLayer::ReadStructure
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRPDSLayer::OGRPDSLayer(const std::string &osTableIDIn,\n                         const
      char *pszLayerName, VSILFILE *fp,\n                         const std::string
      &osLabelFilename,\n                         const std::string &osStructureFilename,
      int nRecordsIn,\n                         int nStartBytesIn, int nRecordSizeIn,\n
      \                        GByte *pabyRecordIn, bool bIsASCII)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:105,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:106,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:107,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: OGRPDSLayer::~OGRPDSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - CPLFree
    - VSIFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRPDSLayer::~OGRPDSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:119,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:119,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:137,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:139,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:140,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:149,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:151,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:151,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:152,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:152,1
    - Dst: static_cast<FieldDesc *>
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:154,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:154,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:156,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:157,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:169,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:170,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:178,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:183,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:188,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:209,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:220,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:241,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:243,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:247,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:252,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:255,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:256,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:261,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:263,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:264,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:266,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:267,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:269,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:271,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:279,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:281,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:292,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:294,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:301,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:303,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:307,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:308,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:309,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:310,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:314,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:316,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:317,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:317,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:321,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:324,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:329,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:331,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:334,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:336,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:340,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:345,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:345,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:345,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:349,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:351,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:356,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:362,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:363,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:368,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:391,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:397,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:404,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:409,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:413,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:417,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:425,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:429,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:434,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:436,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 200
    argCount: 1
    argNames:
    - osStructureFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 437
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 437
    functionName: OGRPDS::OGRPDSLayer::ReadStructure
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - v
    - CPLError
    - std::string::c_str
    - CPLString::empty
    - CPLErrorReset
    - OGRPDSDataSource::CleanString
    - CPLRealloc
    - CPLPopErrorHandler
    - AddFieldDefn
    - CSLTokenizeString2
    - CPLMalloc
    - c_str
    - OGRFieldDefn::SetSubType
    - VSIFOpenL
    - static_cast<FieldDesc *>
    - CPLFree
    - CPLSM
    - CPLReadLine2L
    - VSIFCloseL
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CSLDestroy
    - EQUAL
    - CPLString::compare
    - VSIFree
    - CPLPushErrorHandler
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: void
    signature: void OGRPDSLayer::ReadStructure(const std::string &osStructureFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: OGRPDS::OGRPDSLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRPDSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:462,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:481,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:485,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:485,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:505,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:507,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:511,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:524,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:528,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:533,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:538,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:540,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:541,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:553,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:557,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:560,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:562,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:567,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:569,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:570,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:593,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:597,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:611,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:615,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:618,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:620,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:625,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:627,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:628,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:640,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:644,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:647,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:649,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:654,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:656,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:657,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:674,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:677,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:680,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:681,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:686,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:687,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:688,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:704,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:707,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:710,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:711,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:716,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:717,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:718,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:730,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:732,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:736,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:737,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:738,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:737,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:740,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 143
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 743
    functionName: OGRPDS::OGRPDSLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetGeometryDirectly
    - CPL_MSBPTR16
    - CPL_MSBPTR64
    - OGRFeature*::GetFieldAsDouble
    - CSLDestroy
    - OGRPoint::OGRPoint
    - CPL_MSBPTR32
    - CPLString
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - memcpy
    - CPLFree
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPDSLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:752,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:756,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 764
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 764
    functionName: OGRPDS::OGRPDSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPDSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPDS::OGRPDSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:772,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: OGRPDS::OGRPDSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRPDS::OGRPDSLayer::TestCapability
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPDSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:788,1
    - Dst: OGRPDS::OGRPDSLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 790
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 790
    functionName: OGRPDS::OGRPDSLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - OGRPDS::OGRPDSLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPDSLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPDS::OGRPDSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:798,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:799,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 807
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 807
    functionName: OGRPDS::OGRPDSLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdslayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - OGRLayer::SetNextByIndex
    - OGRPDS::OGRPDSLayer::TestCapability
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPDSLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: OGRPDSDataSource::OGRPDSDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPDSDataSource::OGRPDSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: OGRPDSDataSource::~OGRPDSDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPDSDataSource::~OGRPDSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: OGRPDSDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPDSDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:71,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:74,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:75,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pszPath
    - iSubscript
    - pszDefault
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: OGRPDSDataSource::GetKeywordSub
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - c_str
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: "char *OGRPDSDataSource::GetKeywordSub(const char *pszPath, int iSubscript,\n
      \                                           const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:92,1
    - Dst: CPLString::at
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:93,1
    - Dst: CPLString::at
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:93,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:93,1
    - Dst: CPLString::at
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:94,1
    - Dst: CPLString::at
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:94,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:94,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:99,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - osInput
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: OGRPDSDataSource::CleanString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLString::size
    - CPLFree
    - CPLString::at
    - strlen
    linkageType: ''
    returnType: void
    signature: void OGRPDSDataSource::CleanString(CPLString &osInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - os1
    - os2
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: MakeAttr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString MakeAttr(CPLString os1, CPLString os2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:129,1
    - Dst: OGRPDSDataSource::GetKeywordSub
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:132,1
    - Dst: OGRPDSDataSource::GetKeywordSub
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:133,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:134,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:134,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:138,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:143,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:143,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:145,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:146,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:149,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:150,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:152,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:156,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:157,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:160,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:160,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:163,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:164,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:168,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:172,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:182,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:183,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:185,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:191,1
    - Dst: MakeAttr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:191,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:192,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:194,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:194,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:197,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:199,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:201,1
    - Dst: MakeAttr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:201,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:203,1
    - Dst: MakeAttr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:203,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:205,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:205,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:207,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:212,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:213,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:214,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:216,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:224,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:225,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:230,1
    - Dst: MakeAttr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:230,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:231,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:233,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:234,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:236,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:239,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:242,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:247,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:248,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:252,1
    - Dst: OGRPDSLayer::OGRPDSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:249,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - pszFilename
    - nRecordSize
    - osTableID
    argTypes:
    - char*
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 256
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 256
    functionName: OGRPDSDataSource::LoadTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLError
    - CPLString::empty
    - GetKeyword
    - OGRPDSDataSource::CleanString
    - CPLString::c_str
    - CPLRealloc
    - CPLFormCIFilenameSafe
    - GetLayerByName
    - OGRPDSDataSource::GetKeywordSub
    - OGRPDSLayer::OGRPDSLayer
    - CPLSPrintf
    - VSIFOpenL
    - strstr
    - CPLGetPathSafe
    - VSIFCloseL
    - static_cast<OGRLayer **>
    - CPLString::compare
    - MakeAttr
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: "bool OGRPDSDataSource::LoadTable(const char *pszFilename, int nRecordSize,\n
      \                                CPLString osTableID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:269,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:283,1
    - Dst: Ingest
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:287,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:287,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:289,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:293,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:294,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:295,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:296,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:298,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:298,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:302,1
    - Dst: OGRPDSDataSource::CleanString
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:306,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:307,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:309,1
    - Dst: GetKeyword
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:314,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:315,1
    - Dst: OGRPDSDataSource::LoadTable
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:317,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:321,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:329,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:331,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:332,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:339,1
    - Dst: OGRPDSDataSource::LoadTable
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:341,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:346,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp:349,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 353
    functionName: OGRPDSDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogrpdsdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetKeyword
    - CPLErrorReset
    - static_cast<int>
    - VSIFCloseL
    - CSLDestroy
    - OGRPDSDataSource::CleanString
    - Ingest
    - VSIFOpenL
    - CPLString::compare
    - CPLPopErrorHandler
    - OGRPDSDataSource::LoadTable
    - CPLPushErrorHandler
    - strstr
    - CPLError
    - CPLString::empty
    linkageType: ''
    returnType: int
    signature: int OGRPDSDataSource::Open(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: OGRPDS::OGRPDSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogr_pds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: OGRPDSDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pds/ogr_pds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:29,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:33,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:34,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:44,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:45,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:46,1
    - Dst: std::isspace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:51,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: OGRWFSDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - static_cast<unsigned char>
    - std::isspace
    - strstr
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRWFSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:69,1
    - Dst: OGRWFSDataSource::OGRWFSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:72,1
    - Dst: OGRWFSDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: OGRWFSDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource*::Open
    - OGRWFSDriverIdentify
    - OGRWFSDataSource::OGRWFSDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRWFSDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:91,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:94,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:96,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:97,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:98,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:129,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:130,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 136
    functionName: RegisterOGRWFS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRWFS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:32,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:32,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:33,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:34,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:42,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - poDSIn
    - poSRSIn
    - bAxisOrderAlreadyInvertedIn
    - pszBaseURLIn
    - pszNameIn
    - pszNSIn
    - pszNSValIn
    argTypes:
    - OGRWFSDataSource*
    - OGRSpatialReference*
    - int
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: OGRWFSLayer::OGRWFSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - VSIMemGenerateHiddenFilename
    - SetDescription
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRWFSLayer::OGRWFSLayer(OGRWFSDataSource *poDSIn, OGRSpatialReference
      *poSRSIn,\n                         int bAxisOrderAlreadyInvertedIn,\n                         const
      char *pszBaseURLIn, const char *pszNameIn,\n                         const char
      *pszNSIn, const char *pszNSValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::OGRWFSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:55,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:58,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:59,1
    - Dst: OGRWFSLayer*::poFeatureDefn::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:60,1
    - Dst: OGRWFSLayer*::poFeatureDefn::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:62,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:64,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:67,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:67,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:69,1
    - Dst: OGRWFSLayer*::m_osTmpDir::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:69,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:70,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: OGRWFSLayer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - OGRWFSLayer::OGRWFSLayer
    - CPLStrdup
    - CPLSPrintf
    - OGRWFSLayer::GetLayerDefn
    - OGRWFSLayer*::poFeatureDefn::Reference
    - Reference
    - CPL_IGNORE_RET_VAL
    - OGRWFSLayer*::poFeatureDefn::GetGeomType
    - OGRWFSLayer*::m_osTmpDir::c_str
    linkageType: ''
    returnType: OGRWFSLayer
    signature: OGRWFSLayer *OGRWFSLayer::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:83,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:86,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:89,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:93,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:94,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:95,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:97,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:101,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:101,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: OGRWFSLayer::~OGRWFSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::CommitTransaction
    - c_str
    - VSIRmdirRecursive
    - Release
    - CPLFree
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRWFSLayer::~OGRWFSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:120,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:124,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:125,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:126,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:129,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:132,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:135,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:136,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:138,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:139,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:140,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:141,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:142,1
    - Dst: auto::TransformBounds
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:145,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:152,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 159
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 159
    functionName: OGRWFSLayer::SetActiveSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - IsSame
    - auto::TransformBounds
    - OGRWFSLayer::ResetReading
    - GetGeomFieldDefn
    - OGRSpatialReference::SetAxisMappingStrategy
    - std::unique_ptr<OGRCoordinateTransformation>
    - OGREnvelope
    - SetAxisMappingStrategy
    - SetSpatialFilter
    - auto::SetSpatialRef
    - OGRCreateCoordinateTransformation
    - IsInit
    - OGRSpatialReference::SetWellKnownGeogCS
    - Release
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWFSLayer::SetActiveSRS(int /*iGeomField*/,\n                                 const
      OGRSpatialReference *poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:168,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:169,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:169,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:170,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:171,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:171,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:172,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:173,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:174,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:175,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:176,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:178,1
    - Dst: GetNeedNAMESPACE
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:181,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:191,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - bWithNS
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 195
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 195
    functionName: OGRWFSLayer::GetDescribeFeatureTypeURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - GetNeedNAMESPACE
    - CPLURLAddKVP
    - WFS_EscapeURL
    - GetVersion
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRWFSLayer::GetDescribeFeatureTypeURL(CPL_UNUSED int bWithNS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::GetDescribeFeatureTypeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:203,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:205,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:205,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:207,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:213,1
    - Dst: IsOldDeegree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:216,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:218,1
    - Dst: OGRWFSLayer::DescribeFeatureType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:219,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:221,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:223,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:230,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:232,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:235,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:237,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:240,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:241,1
    - Dst: OGRWFSLayer::ParseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:246,1
    - Dst: SaveLayerSchema
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:248,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 252
    functionName: OGRWFSLayer::DescribeFeatureType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - CPLHTTPDestroyResult
    - CPLError
    - OGRWFSLayer::ParseSchema
    - CPLDestroyXMLNode
    - HTTPFetch
    - CPLDebug
    - CPLParseXMLString
    - CPLString::c_str
    - OGRWFSLayer::DescribeFeatureType
    - strstr
    - WFSFindNode
    - OGRWFSLayer::GetDescribeFeatureTypeURL
    - IsOldDeegree
    - SaveLayerSchema
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWFSLayer::DescribeFeatureType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:260,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:264,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:264,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:265,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:273,1
    - Dst: OGRWFSLayer::BuildLayerDefnFromFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:277,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:282,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:284,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - psSchema
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 296
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 296
    functionName: OGRWFSLayer::ParseSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - std::vector::end
    - std::vector::size
    - OGRWFSLayer::BuildLayerDefnFromFeatureClass
    - VSIUnlink
    - std::vector::begin
    - CPLSPrintf
    - CPLSerializeXMLTreeToFile
    - CPLGetXMLValue
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWFSLayer::ParseSchema(const CPLXMLNode *psSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:307,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:308,1
    - Dst: GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:309,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:311,1
    - Dst: GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:312,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:314,1
    - Dst: ExposeGMLId
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:320,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:323,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:324,1
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:327,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:330,1
    - Dst: GML_GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:333,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:333,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:335,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:336,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:337,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:337,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:338,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:338,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:339,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:340,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:340,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:341,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:342,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:342,1
    - Dst: IsEmptyAsNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:343,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:344,1
    - Dst: GMLPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:344,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:346,1
    - Dst: GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:349,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:356,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:358,1
    - Dst: GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:359,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:360,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - poClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 366
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 366
    functionName: OGRWFSLayer::BuildLayerDefnFromFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetName
    - OGRFieldDefn::SetNullable
    - GetPropertyCount
    - GetProperty
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - GMLPropertyDefn*::GetType
    - OGRFieldDefn::GetNameRef
    - STARTS_WITH_CI
    - OGRFeatureDefn*::GetGeomFieldCount
    - ExposeGMLId
    - GMLPropertyDefn*::IsNullable
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::SetSubType
    - GML_GetOGRFieldType
    - OGRFieldDefn::SetName
    - GetGeometryPropertyCount
    - GMLPropertyDefn*::GetWidth
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - GMLPropertyDefn*::GetPrecision
    - IsEmptyAsNull
    - GetGeometryProperty
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: 'OGRFeatureDefn *

      OGRWFSLayer::BuildLayerDefnFromFeatureClass(GMLFeatureClass *poClass)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:376,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:377,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:377,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:378,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:379,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:379,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:380,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:380,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:382,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:382,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:383,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:385,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:385,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:385,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:387,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:388,1
    - Dst: IsPagingAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:390,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:392,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:402,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:403,1
    - Dst: GetBaseStartIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:404,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:411,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:412,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:412,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:413,1
    - Dst: GetNeedNAMESPACE
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:415,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:425,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:425,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:433,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:436,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:438,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:441,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:441,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:451,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:451,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:456,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:456,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:460,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:461,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:472,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:480,1
    - Dst: RequiresEnvelopeSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:487,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:498,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:505,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:523,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:528,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:536,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:536,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:539,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:539,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:551,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:551,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:555,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:555,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:559,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:559,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:563,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:563,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:568,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:570,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:573,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:580,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:580,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:586,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:586,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:590,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:595,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:596,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:598,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:598,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:603,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:609,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:612,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:615,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:617,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:623,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:629,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:631,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:632,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 144
    argCount: 2
    argNames:
    - nRequestMaxFeatures
    - bRequestHits
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 637
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 637
    functionName: OGRWFSLayer::MakeGetFeatureURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - atoi
    - RequiresEnvelopeSpatialFilter
    - GetFieldDefn
    - CPLString::empty
    - IsGeometryIgnored
    - IsPagingAllowed
    - c_str
    - CPLString::clear
    - GetVersion
    - CPLSPrintf
    - GetFieldCount
    - CPLURLAddKVP
    - size
    - GetPageSize
    - GetNeedNAMESPACE
    - empty
    - EQUAL
    - GetBaseStartIndex
    - clone
    - WFS_EscapeURL
    - CPLURLGetValue
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRWFSLayer::MakeGetFeatureURL(int nRequestMaxFeatures,\n
      \                                        int bRequestHits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:648,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - papszHeaders
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: OGRWFSFetchContentDispositionFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - strlen
    linkageType: ''
    returnType: char
    signature: char *OGRWFSFetchContentDispositionFilename(char **papszHeaders)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:665,1
    - Dst: PropertyIsNotEqualToSupported
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:665,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:666,1
    - Dst: SetPropertyIsNotEqualToUnSupported
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:670,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:677,1
    - Dst: DoesGmlObjectIdNeedGMLPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:677,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:678,1
    - Dst: SetGmlObjectIdNeedsGMLPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:681,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:687,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:688,1
    - Dst: OGRWFSLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:696,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - pszServerAnswer
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 702
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 702
    functionName: OGRWFSLayer::MustRetryIfNonCompliantServer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::SetAttributeFilter
    - empty
    - SetGmlObjectIdNeedsGMLPrefix
    - strstr
    - PropertyIsNotEqualToSupported
    - DoesGmlObjectIdNeedGMLPrefix
    - SetPropertyIsNotEqualToUnSupported
    linkageType: ''
    returnType: bool
    signature: bool OGRWFSLayer::MustRetryIfNonCompliantServer(const char *pszServerAnswer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::MakeGetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:711,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:712,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:712,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:716,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:722,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:726,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:729,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:730,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:738,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:738,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:741,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:742,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:742,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:755,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:755,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:758,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:759,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:760,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:761,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:761,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:766,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:767,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:767,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:768,1
    - Dst: IsEmptyAsNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:769,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:770,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:773,1
    - Dst: InvertAxisOrderIfLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:775,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:777,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:780,1
    - Dst: GetConsiderEPSGAsURN
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:781,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:783,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:785,1
    - Dst: ExposeGMLId
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:786,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:790,1
    - Dst: ReadNumberMatched
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:795,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:797,1
    - Dst: GDALDriver*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:799,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:806,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:807,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:808,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:809,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:815,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:833,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:836,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:838,1
    - Dst: OGRWFSLayer::MustRetryIfNonCompliantServer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:843,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:844,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:846,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:847,1
    - Dst: IsOldDeegree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:849,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:854,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:863,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:873,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:873,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:880,1
    - Dst: CPLHTTPParseMultipartMime
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:881,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:884,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:884,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:885,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:885,1
    - Dst: OGRWFSFetchContentDispositionFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:889,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:895,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:898,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:901,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:903,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:906,1
    - Dst: OGRWFSFetchContentDispositionFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:912,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:924,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:925,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:929,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:930,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:934,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:935,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:939,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:940,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:944,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:945,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:949,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:953,1
    - Dst: OGRWFSLayer::MustRetryIfNonCompliantServer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:959,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:961,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:962,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:965,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:966,1
    - Dst: IsOldDeegree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:968,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:970,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:974,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:976,1
    - Dst: ReadNumberMatched
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:981,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1002,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1002,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1011,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1017,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1018,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1037,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1042,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1046,1
    - Dst: InvertAxisOrderIfLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1047,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1050,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1052,1
    - Dst: GetConsiderEPSGAsURN
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1053,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1056,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1059,1
    - Dst: ExposeGMLId
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1059,1
    - Dst: GDALIdentifyDriver
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1063,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1064,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1067,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1076,1
    - Dst: GDALIdentifyDriver
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1077,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1078,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1081,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1087,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1093,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1095,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1099,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1105,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1108,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 201
    argCount: 1
    argNames:
    - nRequestMaxFeatures
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1113
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 1113
    functionName: OGRWFSLayer::FetchGetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSLayer::MakeGetFeatureURL
    - HTTPFetch
    - CPLDebug
    - CPLString::ifind
    - CPLHTTPParseMultipartMime
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - CPLStringList::CPLStringList
    - CPLString::empty
    - CPLStringList::List
    - CPLGetExtensionSafe
    - GDALClose
    - GDALIdentifyDriver
    - CPLAtoGIntBig
    - VSIMkdir
    - CPLString::c_str
    - FindSubStringInsensitive
    - strlen
    - IsOldDeegree
    - VSIRmdirRecursive
    - InvertAxisOrderIfLatLong
    - CPLTestBool
    - c_str
    - FromHandle
    - ExposeGMLId
    - OGRWFSFetchContentDispositionFilename
    - VSIUnlink
    - CPLSPrintf
    - VSIFOpenL
    - strstr
    - CPLStringList::SetNameValue
    - VSIFReadL
    - OGRWFSLayer::MustRetryIfNonCompliantServer
    - GDALDriver*::Open
    - VSIFileFromMemBuffer
    - CPLFormFilenameSafe
    - GDALGetDriverByName
    - GDALOpenEx
    - VSIStatL
    - VSIFCloseL
    - OGRWFSLayer::FetchGetFeature
    - IsEmptyAsNull
    - CSLDestroy
    - EQUAL
    - GetConsiderEPSGAsURN
    - GDALDataset*::GetLayer
    - CPLHTTPDestroyResult
    - ReadNumberMatched
    - memcpy
    - VSI_MALLOC_VERBOSE
    - CPLURLGetValue
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRWFSLayer::FetchGetFeature(int nRequestMaxFeatures)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1124,1
    - Dst: LoadMultipleLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1126,1
    - Dst: OGRWFSLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1126,1
    - Dst: OGRWFSLayer::BuildLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1133
    functionName: OGRWFSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - LoadMultipleLayerDefn
    - OGRWFSLayer::BuildLayerDefn
    - GetLayerCount
    - OGRWFSLayer::GetName
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWFSLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1143,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1144,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1145,1
    - Dst: OGRWFSLayer::DescribeFeatureType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1150,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1153,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1158,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1163,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1169,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1170,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1172,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1172,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1173,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1174,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1175,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1176,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1178,1
    - Dst: CPLStringList::FindString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1180,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1181,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1182,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1182,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1188,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1191,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1192,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1194,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - poSrcFDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1204
      start: 1139
    functionDepth: 4
    functionLinenumber: 1139
    functionLinenumberEnd: 1204
    functionName: OGRWFSLayer::BuildLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - Reference
    - GDALClose
    - OGRFeatureDefn*::GetGeomFieldDefn
    - SetGeomType
    - OGRFeatureDefn*::GetGeomType
    - OGRWFSLayer::DescribeFeatureType
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - CSLTokenizeString2
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLStringList::empty
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRWFSLayer::FetchGetFeature
    - GDALDataset*::GetLayer
    - CPLStringList::FindString
    - CPLURLGetValue
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWFSLayer::BuildLayerDefn(OGRFeatureDefn *poSrcFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1223,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1231
    functionName: OGRWFSLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 2
    functionsReached:
    - OGRWFSLayer::ResetReading
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRWFSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1240,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1242
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1242
    functionName: OGRWFSLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::ResetReading
    - OGRLayer::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1250,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1257,1
    - Dst: OGRWFSLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1266,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1270,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1273,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1278,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1279,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1284,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1287,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1289,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1290,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1290,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1291,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1292,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1292,1
    - Dst: OGRWFSLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1304,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1321,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1323,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1331,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1332,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1338,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1341,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1342,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1342,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1345,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1346,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1355,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1355,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1356,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1359,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1360,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1362,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1362,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1363,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1363,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1365,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1374,1
    - Dst: GetDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1374,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1376,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1380,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1248
    functionDepth: 4
    functionLinenumber: 1248
    functionLinenumberEnd: 1384
    functionName: OGRWFSLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - GetDriverName
    - OGRGeometry*::swapXY
    - OGRGeometry*::assignSpatialReference
    - strcmp
    - GetFieldDefn
    - OGRFeature*::SetFrom
    - GetLayer
    - GDALClose
    - OGRFeature*::SetStyleString
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::GetStyleString
    - OGRWFSLayer::GetLayerDefn
    - OGRFeature*::SetGeometryDirectly
    - OGRFieldDefn*::GetNameRef
    - OGRFeature*::GetFID
    - Evaluate
    - FilterGeometry
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - OGRFeature::OGRFeature
    - OGRFeature*::GetGeometryRef
    - empty
    - OGRWFSLayer::ResetReading
    - OGRWFSLayer::FetchGetFeature
    - OGRWFSLayer::GetNextFeature
    - OGRFeature*::StealGeometry
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWFSLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1407,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1408,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1412,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1419,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1422
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1422
    functionName: OGRWFSLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - OGRWFSLayer::ResetReading
    - OGRLayer::ISetSpatialFilter
    - OGRGeometry*::getEnvelope
    - OGREnvelope::Contains
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::ISetSpatialFilter(int iGeomField, const OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1435,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1436,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1443,1
    - Dst: Compile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1445,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1445,1
    - Dst: WFSGetCustomFuncRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1446,1
    - Dst: HasMinOperators
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1455,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1457,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1458,1
    - Dst: swq_expr_node*::ReplaceInByOrRecurse
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1459,1
    - Dst: WFS_TurnSQLFilterToOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1468,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1469,1
    - Dst: PropertyIsNotEqualToSupported
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1470,1
    - Dst: UseFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1471,1
    - Dst: DoesGmlObjectIdNeedGMLPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1472,1
    - Dst: HasNullCheck
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1473,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1479,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1481,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1483,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1487,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1498
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1498
    functionName: OGRWFSLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::SetAttributeFilter
    - CPLDebug
    - CPLStrdup
    - OGRWFSLayer::GetLayerDefn
    - GetSWQExpr
    - WFSGetCustomFuncRegistrar
    - UseFeatureId
    - CPLFree
    - DoesGmlObjectIdNeedGMLPrefix
    - HasNullCheck
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - HasMinOperators
    - Compile
    - OGRFeatureQuery::OGRFeatureQuery
    - swq_expr_node*::ReplaceInByOrRecurse
    - empty
    - OGRWFSLayer::ResetReading
    - WFS_TurnSQLFilterToOGCFilter
    - PropertyIsNotEqualToSupported
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1507,1
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1514,1
    - Dst: IsPagingAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1515,1
    - Dst: OGRWFSLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1516,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1516,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1519,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1521,1
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1524,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1527,1
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1528,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1530,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1531,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1533,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1534,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1534,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1535,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1537,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1539,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1539,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1541,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 24
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1547
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1547
    functionName: OGRWFSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - IsInit
    - GetPageSize
    - SupportTransactions
    - OGRWFSLayer::TestCapability
    - UpdateMode
    - EQUAL
    - OGRWFSLayer::GetFeatureCount
    - OGRWFSLayer::GetLayerDefn
    - GetFieldIndex
    - IsPagingAllowed
    linkageType: ''
    returnType: int
    signature: int OGRWFSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::MakeGetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1556,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1558,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1559,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1560,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1560,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1562,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1572,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1575,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1576,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1578,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1585,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1588,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1589,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1590,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1597,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1597,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1600,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1600,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1602,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1605,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1606,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1607,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1609,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1612,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1614,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1615,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1617,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1618,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1626,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1627,1
    - Dst: IsOldDeegree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1629,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1631,1
    - Dst: OGRWFSLayer::ExecuteGetFeatureResultTypeHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1632,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1634,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1636,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1637,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1641,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1644,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1646,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1647,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1651,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1652,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1655,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1657,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1658,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1659,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1666,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1669,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1670,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1671,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1672,1
    - Dst: DisableSupportHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1674,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1678,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1683,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1684,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1684,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1685,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1687,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1690,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1697,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1698,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1699,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1553
    functionDepth: 3
    functionLinenumber: 1553
    functionLinenumberEnd: 1702
    functionName: OGRWFSLayer::ExecuteGetFeatureResultTypeHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - OGRWFSLayer::MakeGetFeatureURL
    - HTTPFetch
    - OGRWFSLayer::ExecuteGetFeatureResultTypeHits
    - CPLDebug
    - CPLError
    - CPLGetXMLValue
    - CPLString::empty
    - CPLAtoGIntBig
    - CPLString::c_str
    - CSLCount
    - IsOldDeegree
    - CPLMalloc
    - DisableSupportHits
    - CPLDestroyXMLNode
    - VSIUnlink
    - GetVersion
    - CPLParseXMLString
    - VSIFOpenL
    - CPLURLAddKVP
    - CPLStripXMLNamespace
    - strstr
    - VSIFReadL
    - VSIFileFromMemBuffer
    - CPLFree
    - VSIStatL
    - VSIFCloseL
    - CPLGetXMLNode
    - CSLDestroy
    - CPLHTTPDestroyResult
    - VSIMemGenerateHiddenFilename
    - WFS_EscapeURL
    - CPLURLGetValue
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRWFSLayer::ExecuteGetFeatureResultTypeHits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::MakeGetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1712,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1713,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1714,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1715,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1716,1
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1718
    functionName: OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::MakeGetFeatureURL
    - OGRWFSLayer::GetLayerDefn
    - IsInit
    - CPLString::ifind
    linkageType: ''
    returnType: int
    signature: int OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1729,1
    - Dst: OGRWFSLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1730,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1732,1
    - Dst: GetFeatureSupportHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1733,1
    - Dst: OGRWFSLayer::ExecuteGetFeatureResultTypeHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1735,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1745,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1747,1
    - Dst: OGRWFSLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1748,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1750,1
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1755,1
    - Dst: OGRWFSLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1756,1
    - Dst: OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1761,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1764,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1764,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1768,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1771
      start: 1724
    functionDepth: 4
    functionLinenumber: 1724
    functionLinenumberEnd: 1771
    functionName: OGRWFSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 2
    functionsReached:
    - OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether
    - GetExtent
    - empty
    - OGRWFSLayer::ResetReading
    - OGRLayer::GetFeatureCount
    - OGRWFSLayer::GetNextFeature
    - OGRWFSLayer::TestCapability
    - OGRWFSLayer::GetFeatureCount
    - CPL_IGNORE_RET_VAL
    - OGRWFSLayer::ExecuteGetFeatureResultTypeHits
    - GetFeatureSupportHits
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRWFSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfMinXIn
    - dfMinYIn
    - dfMaxXIn
    - dfMaxYIn
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1784
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1784
    functionName: OGRWFSLayer::SetExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRWFSLayer::SetExtents(double dfMinXIn, double dfMinYIn, double
      dfMaxXIn,\n                             double dfMaxYIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfMinXIn
    - dfMinYIn
    - dfMaxXIn
    - dfMaxYIn
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1797
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1797
    functionName: OGRWFSLayer::SetWGS84Extents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRWFSLayer::SetWGS84Extents(double dfMinXIn, double dfMinYIn,\n
      \                                 double dfMaxXIn, double dfMaxYIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1806,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1818,1
    - Dst: OGRWFSLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1819,1
    - Dst: OGRWFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1821,1
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1824,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1825,1
    - Dst: OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1829,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1835,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1851
      start: 1803
    functionDepth: 4
    functionLinenumber: 1803
    functionLinenumberEnd: 1851
    functionName: OGRWFSLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::CanRunGetFeatureCountAndGetExtentTogether
    - GetExtent
    - OGRWFSLayer::ResetReading
    - OGRWFSLayer::GetNextFeature
    - OGRWFSLayer::TestCapability
    - IsInit
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWFSLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1865
    functionName: OGRWFSLayer::GetShortName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRWFSLayer::GetShortName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1879,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1886,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1871
    functionDepth: 1
    functionLinenumber: 1871
    functionLinenumberEnd: 1899
    functionName: OGRWFSLayer::GetPostHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - GetVersion
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRWFSLayer::GetPostHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1907,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1909,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1910,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1913,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1914,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1922,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1928,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1930,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1934,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1936,1
    - Dst: OGRWFSLayer::GetPostHeader
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1947,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1956,1
    - Dst: GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1958,1
    - Dst: GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1959,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1962,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1963,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1965,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1966,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1968,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1968,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1969,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1969,1
    - Dst: OGR_G_ExportToGMLEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1973,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1974,1
    - Dst: OGR_G_ExportToGML
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1977,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1985,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1988,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1992,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1994,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:1996,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2001,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2001,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2003,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2005,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2007,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2008,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2008,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2009,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2011,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2011,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2012,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2013,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2013,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2019,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2022,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2043,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2043,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2046,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2046,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2048,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2052,1
    - Dst: GetPostTransactionURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2052,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2053,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2060,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2062,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2065,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2067,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2071,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2073,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2076,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2078,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2082,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2084,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2087,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2094,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2096,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2097,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2107,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2109,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2110,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2117,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2119,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2120,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2129,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2132,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2134,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2135,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2144,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2145,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2146,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2150,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2155,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2157,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2157,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2158,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2161,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2161,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2163,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2164,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2169,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 155
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2172
      start: 1905
    functionDepth: 5
    functionLinenumber: 1905
    functionLinenumberEnd: 2172
    functionName: OGRWFSLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::getSpatialReference
    - atoi
    - OGR_G_ExportToGML
    - OGRFeature*::GetFieldAsInteger64
    - HTTPFetch
    - strncmp
    - OGRWFSLayer::TestCapability
    - CPLDebug
    - strcmp
    - OGRFeature*::IsFieldNull
    - CPLError
    - GetFieldIndex
    - GetPostTransactionURL
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - CPLAtoGIntBig
    - OGREnvelope
    - CPLString::c_str
    - OGRWFSLayer::GetPostHeader
    - strlen
    - OGR_G_ExportToGMLEx
    - OGRFieldDefn*::GetNameRef
    - CPLDestroyXMLNode
    - OGRFeature*::GetFID
    - GetVersion
    - UpdateMode
    - CPLSPrintf
    - CPLParseXMLString
    - OGRFieldDefn*::GetType
    - CPLStripXMLNamespace
    - strstr
    - OGRFeature*::GetFieldCount
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - GetGeometryPropertyCount
    - OGRFeature*::GetFieldDefnRef
    - SupportTransactions
    - empty
    - OGRFeature*::IsFieldSet
    - CPLGetXMLNode
    - CSLDestroy
    - CSLAddNameValue
    - OGRFeature*::SetField
    - CPLHTTPDestroyResult
    - OGRFeature*::SetFID
    - GetGeometryProperty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2180,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2182,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2183,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2187,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2195,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2199,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2201,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2208,1
    - Dst: OGRWFSLayer::GetPostHeader
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2216,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2224,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2225,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2233,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2234,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2236,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2236,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2237,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2237,1
    - Dst: OGR_G_ExportToGMLEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2241,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2242,1
    - Dst: OGR_G_ExportToGML
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2245,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2249,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2254,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2256,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2260,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2262,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2265,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2266,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2266,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2267,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2269,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2269,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2270,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2271,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2271,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2277,1
    - Dst: UseFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2284,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2286,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2286,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2290,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2296,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2296,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2299,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2299,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2301,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2305,1
    - Dst: GetPostTransactionURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2305,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2306,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2313,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2318,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2320,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2324,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2329,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2331,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2335,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2337,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2340,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2346,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2348,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2349,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2357,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2359,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2360,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2365,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2366,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2371,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 120
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2374
      start: 2178
    functionDepth: 5
    functionLinenumber: 2178
    functionLinenumberEnd: 2374
    functionName: OGRWFSLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::getSpatialReference
    - atoi
    - OGR_G_ExportToGML
    - OGRFeature*::GetFieldAsInteger64
    - HTTPFetch
    - OGRFeature*::GetFieldAsString
    - OGRWFSLayer::TestCapability
    - CPLDebug
    - strcmp
    - CPLError
    - GetFieldIndex
    - GetPostTransactionURL
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGREnvelope
    - CPLString::c_str
    - OGRWFSLayer::GetPostHeader
    - OGR_G_ExportToGMLEx
    - OGRFieldDefn*::GetNameRef
    - CPLDestroyXMLNode
    - GetVersion
    - UpdateMode
    - CPLSPrintf
    - CPLParseXMLString
    - OGRFieldDefn*::GetType
    - CPLStripXMLNamespace
    - UseFeatureId
    - strstr
    - OGRFeature*::GetFieldCount
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::GetFieldDefnRef
    - SupportTransactions
    - empty
    - CPLGetXMLNode
    - CSLDestroy
    - CSLAddNameValue
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2382,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2383,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2389,1
    - Dst: OGRWFSLayer::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2389,1
    - Dst: OGRWFSLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2391,1
    - Dst: OGRWFSLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2392,1
    - Dst: OGRWFSLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2395,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2401
      start: 2380
    functionDepth: 2
    functionLinenumber: 2380
    functionLinenumberEnd: 2401
    functionName: OGRWFSLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::SetAttributeFilter
    - OGRWFSLayer::GetNextFeature
    - CPLSPrintf
    - OGRWFSLayer::GetLayerDefn
    - OGRWFSLayer::GetShortName
    - GetFieldIndex
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWFSLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2409,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2411,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2412,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2416,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2424,1
    - Dst: OGRWFSLayer::GetPostHeader
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2430,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2443,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2443,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2446,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2446,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2448,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2452,1
    - Dst: GetPostTransactionURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2452,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2453,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2460,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2462,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2465,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2467,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2471,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2473,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2476,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2478,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2482,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2484,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2493,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2495,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2496,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2504,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2506,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2507,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2512,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2513,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2518,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - osOGCFilter
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2521
      start: 2407
    functionDepth: 3
    functionLinenumber: 2407
    functionLinenumberEnd: 2521
    functionName: OGRWFSLayer::DeleteFromFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - HTTPFetch
    - OGRWFSLayer::TestCapability
    - CPLDebug
    - CPLError
    - GetFieldIndex
    - GetPostTransactionURL
    - OGREnvelope
    - CPLString::c_str
    - OGRWFSLayer::GetPostHeader
    - CPLDestroyXMLNode
    - UpdateMode
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - strstr
    - SupportTransactions
    - CPLGetXMLNode
    - CSLDestroy
    - CSLAddNameValue
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::DeleteFromFilter(const std::string &osOGCFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2529,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2532,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2535,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2536,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2544,1
    - Dst: OGRWFSLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2551,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2559,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2567,1
    - Dst: OGRWFSLayer::DeleteFromFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2582
      start: 2527
    functionDepth: 4
    functionLinenumber: 2527
    functionLinenumberEnd: 2582
    functionName: OGRWFSLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::DeleteFromFilter
    - SupportTransactions
    - OGRWFSLayer::GetFeature
    - OGRWFSLayer::TestCapability
    - UpdateMode
    - CPLError
    - GetFieldIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2590,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2592,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2593,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2596,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2605,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2588
    functionDepth: 3
    functionLinenumber: 2588
    functionLinenumberEnd: 2616
    functionName: OGRWFSLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - SupportTransactions
    - OGRWFSLayer::TestCapability
    - UpdateMode
    - CPLError
    - resize
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2624,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2626,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2627,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2630,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2631,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2639,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2644,1
    - Dst: OGRWFSLayer::GetPostHeader
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2646,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2657,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2657,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2661,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2661,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2663,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2667,1
    - Dst: GetPostTransactionURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2667,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2668,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2675,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2680,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2682,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2686,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2691,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2693,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2697,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2699,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2702,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2709,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2711,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2712,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2720,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2722,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2723,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2735,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2739,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2740,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2748,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2750,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2751,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2764,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2765,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2766,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2769,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2774,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2776,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2779,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2780,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2785,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2786,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2622
    functionDepth: 3
    functionLinenumber: 2622
    functionLinenumberEnd: 2794
    functionName: OGRWFSLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 1
    functionsReached:
    - HTTPFetch
    - OGRWFSLayer::TestCapability
    - CPLDebug
    - CPLError
    - GetPostTransactionURL
    - CPLString::c_str
    - OGRWFSLayer::GetPostHeader
    - resize
    - CPLDestroyXMLNode
    - UpdateMode
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - strstr
    - size
    - SupportTransactions
    - empty
    - CPLGetXMLNode
    - CSLDestroy
    - CSLAddNameValue
    - push_back
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2802,1
    - Dst: SupportTransactions
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2804,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2805,1
    - Dst: UpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2809,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2800
    functionDepth: 3
    functionLinenumber: 2800
    functionLinenumberEnd: 2827
    functionName: OGRWFSLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - SupportTransactions
    - OGRWFSLayer::TestCapability
    - UpdateMode
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2835,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp:2838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszRequiredOutputFormatIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2844
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2844
    functionName: OGRWFSLayer::SetRequiredOutputFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRWFSLayer::SetRequiredOutputFormat(const char *pszRequiredOutputFormatIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aoSortColumnsIn
    argTypes:
    - std::vector<OGRWFSSortDesc>
    constantsTouched: []
    func_position:
      end: 2853
      start: 2850
    functionDepth: 0
    functionLinenumber: 2850
    functionLinenumberEnd: 2853
    functionName: OGRWFSLayer::SetOrderBy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWFSLayer::SetOrderBy(const std::vector<OGRWFSSortDesc> &aoSortColumnsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osColumnIn
    - bAscIn
    argTypes:
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: OGRWFSSortDesc::OGRWFSSortDesc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void OGRWFSSortDesc(const CPLString &osColumnIn, int bAscIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRWFSLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: OGRWFSLayer::HasLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: '&GetLastInsertedFIDList()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: std::vector<CPLString> &GetLastInsertedFIDList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OGRWFSLayer::GetRequiredOutputFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetRequiredOutputFormat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: OGRWFSLayer::HasGotApproximateLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached:
    - OGRWFSLayer::GetLayerDefn
    linkageType: ''
    returnType: bool
    signature: bool HasGotApproximateLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: OGRWFSLayer::GetNamespacePrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetNamespacePrefix()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OGRWFSLayer::GetNamespaceName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetNamespaceName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h:216,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - aosSupportedCRSList
    - apoSupportedCRSList
    argTypes:
    - std::vector<std::string>
    - OGRLayer::GetSupportedSRSListRetType
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: OGRWFSLayer::SetSupportedSRSList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void SetSupportedSRSList(\n        std::vector<std::string> &&aosSupportedCRSList,\n
      \       OGRLayer::GetSupportedSRSListRetType &&apoSupportedCRSList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: "&\n    GetSupportedSRSList(int /*iGeomField*/) override"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer::GetSupportedSRSListRetType
    signature: "OGRLayer::GetSupportedSRSListRetType &\n    GetSupportedSRSList(int
      /*iGeomField*/) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: '&GetTmpDir() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetTmpDir() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: OGRWFSDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: OGRWFSDataSource::UpdateMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool UpdateMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: OGRWFSDataSource::SupportTransactions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SupportTransactions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: OGRWFSDataSource::DisableSupportHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DisableSupportHits()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: OGRWFSDataSource::GetFeatureSupportHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetFeatureSupportHits() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: OGRWFSDataSource::GetVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: OGRWFSDataSource::GetNeedNAMESPACE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetNeedNAMESPACE() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: OGRWFSDataSource::HasMinOperators
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasMinOperators() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: OGRWFSDataSource::HasNullCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasNullCheck() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: OGRWFSDataSource::UseFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool UseFeatureId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: OGRWFSDataSource::RequiresEnvelopeSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequiresEnvelopeSpatialFilter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: OGRWFSDataSource::SetGmlObjectIdNeedsGMLPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGmlObjectIdNeedsGMLPrefix()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: OGRWFSDataSource::DoesGmlObjectIdNeedGMLPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DoesGmlObjectIdNeedGMLPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: OGRWFSDataSource::SetPropertyIsNotEqualToUnSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPropertyIsNotEqualToUnSupported()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: OGRWFSDataSource::PropertyIsNotEqualToSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PropertyIsNotEqualToSupported() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: OGRWFSDataSource::IsPagingAllowed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPagingAllowed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: OGRWFSDataSource::GetPageSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPageSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: OGRWFSDataSource::GetBaseStartIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBaseStartIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: OGRWFSDataSource::GetKeepLayerNamePrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetKeepLayerNamePrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: '&GetBaseURL()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetBaseURL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: OGRWFSDataSource::IsEmptyAsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEmptyAsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: OGRWFSDataSource::InvertAxisOrderIfLatLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool InvertAxisOrderIfLatLong() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: '&GetConsiderEPSGAsURN() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetConsiderEPSGAsURN() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: OGRWFSDataSource::ExposeGMLId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogr_wfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ExposeGMLId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:30,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:34,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:34,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:42,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:42,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:47,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:51,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:55,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:57,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:57,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:58,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:59,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:61,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:69,1
    - Dst: OGRWFSLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:81,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:86,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:87,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:95,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:98,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:101,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:104,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:107,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:108,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:111,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:114,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:117,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:123,1
    - Dst: OGRWFSLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:127,1
    - Dst: OGRWFSLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:131,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:136,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:137,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:139,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:156,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:164,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:165,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:168,1
    - Dst: GetTmpDir
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:168,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:169,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:170,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:171,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:174,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:184,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:184,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:185,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:189,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:189,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:190,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:191,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 98
    argCount: 3
    argNames:
    - poDSIn
    - psSelectInfo
    - osGlobalFilterIn
    argTypes:
    - OGRWFSDataSource*
    - swq_select*
    - CPLString
    constantsTouched: []
    func_position:
      end: 193
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 193
    functionName: OGRWFSJoinLayer::OGRWFSJoinLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - CPLSerializeXMLTreeToFile
    - Reference
    - CPLCloneXMLTree
    - SetGeomType
    - CPLAddXMLChild
    - GetTmpDir
    - CPLPopErrorHandler
    - AddFieldDefn
    - GetLayerByName
    - GetName
    - OGRWFSLayer*::GetLayerDefn
    - c_str
    - CPLDestroyXMLNode
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::SetSubType
    - CPLSPrintf
    - swq_select*::result_columns
    - CPLAssert
    - OGRFieldDefn::SetName
    - SetDescription
    - size
    - OGRGeomFieldDefn::SetName
    - empty
    - AddGeomFieldDefn
    - CPLParseXMLFile
    - CPLCreateXMLNode
    - OGRFieldDefn::SetType
    - push_back
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: void
    signature: "void OGRWFSJoinLayer::OGRWFSJoinLayer(OGRWFSDataSource *poDSIn,\n
      \                                const swq_select *psSelectInfo,\n                                 const
      CPLString &osGlobalFilterIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:202,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:204,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:206,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: OGRWFSJoinLayer::~OGRWFSJoinLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIRmdirRecursive
    - c_str
    - Release
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRWFSJoinLayer::~OGRWFSJoinLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:223,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:226,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:228,1
    - Dst: OGRWFSRemoveReferenceToTableAlias
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - poNode
    - psSelectInfo
    argTypes:
    - swq_expr_node*
    - swq_select*
    constantsTouched: []
    func_position:
      end: 240
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 240
    functionName: OGRWFSRemoveReferenceToTableAlias
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - OGRWFSRemoveReferenceToTableAlias
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRWFSRemoveReferenceToTableAlias(swq_expr_node *poNode,\n                                              const
      swq_select *psSelectInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:259,1
    - Dst: OGRWFSRemoveReferenceToTableAlias
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:269,1
    - Dst: WFS_TurnSQLFilterToOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:272,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:278,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:280,1
    - Dst: OGRWFSRemoveReferenceToTableAlias
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:287,1
    - Dst: WFS_TurnSQLFilterToOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:290,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:298,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:305,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:305,1
    - Dst: OGRWFSJoinLayer::OGRWFSJoinLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:308,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - poDS
    - psSelectInfo
    argTypes:
    - OGRWFSDataSource*
    - swq_select*
    constantsTouched: []
    func_position:
      end: 310
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 310
    functionName: OGRWFSJoinLayer::Build
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSJoinLayer::OGRWFSJoinLayer
    - CPLDebug
    - swq_select*::result_columns
    - CPLString::c_str
    - OGRWFSRemoveReferenceToTableAlias
    - WFS_TurnSQLFilterToOGCFilter
    - CPLError
    - CPLString::empty
    linkageType: ''
    returnType: OGRWFSJoinLayer
    signature: "OGRWFSJoinLayer *OGRWFSJoinLayer::Build(OGRWFSDataSource *poDS,\n
      \                                       const swq_select *psSelectInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:325,1
    - Dst: OGRWFSJoinLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:332,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: OGRWFSJoinLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSJoinLayer::ResetReading
    - clear
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRWFSJoinLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:342,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:343,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:344,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:344,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:345,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:346,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:346,1
    - Dst: IsPagingAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:349,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:350,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:352,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:354,1
    - Dst: GetBaseStartIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:354,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:355,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:363,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:363,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:370,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:377,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:378,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:390,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:390,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:394,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:396,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:398,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - bRequestHits
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 402
    functionName: OGRWFSJoinLayer::MakeGetFeatureURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetPageSize
    - empty
    - std::map::end
    - std::map::begin
    - GetBaseURL
    - GetVersion
    - CPLSPrintf
    - CPLURLAddKVP
    - GetBaseStartIndex
    - IsPagingAllowed
    - WFS_EscapeURL
    - CPLURLGetValue
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRWFSJoinLayer::MakeGetFeatureURL(int bRequestHits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSJoinLayer::MakeGetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:411,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:412,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:412,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:418,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:418,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:420,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:420,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:421,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:422,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:426,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:427,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:427,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:429,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:434,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:434,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:435,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:448,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:451,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:453,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:458,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:459,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:461,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:469,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:475,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:475,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:480,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:483,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:485,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:492,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:497,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:498,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:501,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:503,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:503,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:507,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:509,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:513,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:519,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:525,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 526
    functionName: OGRWFSJoinLayer::FetchGetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSJoinLayer::MakeGetFeatureURL
    - auto::GetLayer
    - HTTPFetch
    - CPLDebug
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - VSIMkdir
    - CPLString::c_str
    - OGRAPISpyOpen
    - c_str
    - CPLTestBool
    - VSIUnlink
    - CPLSPrintf
    - VSIFOpenL
    - strstr
    - VSIFReadL
    - VSIFileFromMemBuffer
    - GDALGetDriverByName
    - std::unique_ptr<GDALDataset>
    - GDALOpenEx
    - auto::release
    - VSIStatL
    - VSIFCloseL
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRWFSJoinLayer::FetchGetFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:544,1
    - Dst: OGRWFSJoinLayer::FetchGetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:553,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:556,1
    - Dst: OGRWFSJoinLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:557,1
    - Dst: OGRWFSJoinLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:563,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:568,1
    - Dst: CPLMD5Init
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:572,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:574,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:577,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:579,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:581,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:583,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:584,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:587,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:588,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:590,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:591,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:593,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:594,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:596,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:597,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:599,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:600,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:606,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:610,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:611,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:616,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:621,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:621,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:626,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:632,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:635,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:636,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:641,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:644,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:645,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:646,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:650,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:655,1
    - Dst: CPLMD5Final
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:661,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:661,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:662,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:662,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:664,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:664,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 532
    functionDepth: 5
    functionLinenumber: 532
    functionLinenumberEnd: 673
    functionName: OGRWFSJoinLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - GetGeomFieldDefn
    - CPLMD5Update
    - OGRWFSJoinLayer::GetNextFeature
    - GetFieldDefn
    - GetLayer
    - OGRFeature*::SetGeomFieldDirectly
    - GDALClose
    - end
    - CPLMD5Init
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::GetFieldAsDouble
    - find
    - insert
    - CPLString::c_str
    - std::move
    - strlen
    - OGRGeometry*::exportToWkb
    - OGRFeature::OGRFeature
    - OGRWFSJoinLayer::ResetReading
    - OGRWFSJoinLayer::FetchGetFeature
    - CPLFree
    - size
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::StealGeometry
    - CPLMD5Final
    - OGRFeature*::SetField
    - VSI_MALLOC_VERBOSE
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWFSJoinLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSJoinLayer::MakeGetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:682,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:683,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:683,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:685,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:694,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:695,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:697,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:699,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:700,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:707,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:709,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:710,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:714,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:715,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:718,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:720,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:721,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:722,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:730,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:731,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:732,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:733,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:737,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:739,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:740,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 744
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 744
    functionName: OGRWFSJoinLayer::ExecuteGetFeatureResultTypeHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSJoinLayer::MakeGetFeatureURL
    - CPLGetXMLNode
    - HTTPFetch
    - CPLDestroyXMLNode
    - CPLAtoGIntBig
    - CPLDebug
    - CPLParseXMLString
    - CPLString::c_str
    - CPLStripXMLNamespace
    - strstr
    - CPLHTTPDestroyResult
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRWFSJoinLayer::ExecuteGetFeatureResultTypeHits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSJoinLayer::ExecuteGetFeatureResultTypeHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:754,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 761
      start: 750
    functionDepth: 3
    functionLinenumber: 750
    functionLinenumberEnd: 761
    functionName: OGRWFSJoinLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRWFSJoinLayer::ExecuteGetFeatureResultTypeHits
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRWFSJoinLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 770
    functionName: OGRWFSJoinLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWFSJoinLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: OGRWFSJoinLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRWFSJoinLayer::TestCapability(const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: OGRWFSJoinLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSJoinLayer::ISetSpatialFilter(int, const OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    functionName: OGRWFSJoinLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWFSJoinLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:59,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - psXML
    - pszRootName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 84
    functionName: WFSFindNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *WFSFindNode(const CPLXMLNode *psXML, const char *pszRootName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poDSIn
    - poLayerIn
    argTypes:
    - GDALDataset*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: OGRWFSWrappedResultLayer::OGRWFSWrappedResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWFSWrappedResultLayer(GDALDataset *poDSIn, OGRLayer *poLayerIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: OGRWFSWrappedResultLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: OGRWFSWrappedResultLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: OGRWFSWrappedResultLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::SetNextByIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr SetNextByIndex(GIntBig nIndex) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: OGRWFSWrappedResultLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetFeature(GIntBig nFID) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: OGRWFSWrappedResultLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: OGRWFSWrappedResultLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFeatureCount(int bForce = TRUE) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSWrappedResultLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: OGRWFSWrappedResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSWrappedResultLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *pszCap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: OGRWFSWrappedResultLayer::~OGRWFSWrappedResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWFSWrappedResultLayer::~OGRWFSWrappedResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:159,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:159,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:162,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:163,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:175,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:180,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 187
    functionName: OGRWFSDataSource::OGRWFSDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - atoi
    linkageType: ''
    returnType: void
    signature: void OGRWFSDataSource::OGRWFSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:200,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:200,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:203,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:208,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:210,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:211,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:215,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: OGRWFSDataSource::~OGRWFSDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CPLDestroyXMLNode
    - GetDescription
    - VSIUnlink
    - CSLDestroy
    - CPLSerializeXMLTreeToFile
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRWFSDataSource::~OGRWFSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: OGRWFSDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRWFSDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:241,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:243,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:247,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:250,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:250,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:251,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:252,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:254,1
    - Dst: OGRWFSDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:257,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:260,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:265,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:267,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:270,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:272,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:272,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:273,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:274,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 286
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 286
    functionName: OGRWFSDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetLayerDefn
    - c_str
    - empty
    - VSIFCloseL
    - MEMDataset::Create
    - EQUAL
    - OGRAPISpyOpen
    - CreateLayer
    - CreateField
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - CPL_IGNORE_RET_VAL
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - OGRWFSDataSource::GetLayer
    - CreateFeature
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRWFSDataSource::GetLayerByName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:294,1
    - Dst: GDALDataset::GetMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: OGRWFSDataSource::GetMetadataDomainList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    - GDALDataset::GetMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **OGRWFSDataSource::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:304,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:306,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: OGRWFSDataSource::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALDataset::GetMetadata
    - c_str
    linkageType: ''
    returnType: char
    signature: char **OGRWFSDataSource::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:326,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:326,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:329,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:337,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:337,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:343,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:350,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 356
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 356
    functionName: OGRWFSDataSource::GetLayerIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - strcmp
    - EQUAL
    - OGRWFSLayer*::GetName
    linkageType: ''
    returnType: int
    signature: int OGRWFSDataSource::GetLayerIndex(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszStr
    - pszSubStr
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: FindSubStringInsensitive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *FindSubStringInsensitive(const char *pszStr, const char *pszSubStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:377,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:380,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:388,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:389,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:389,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:397,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:405,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:406,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:406,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:414,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:422,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:428,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:430,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 440
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 440
    functionName: DetectIfGetFeatureSupportHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    - CPLGetXMLNode
    - strcmp
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: bool DetectIfGetFeatureSupportHits(const CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 471
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 471
    functionName: OGRWFSDataSource::DetectRequiresEnvelopeSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    linkageType: ''
    returnType: bool
    signature: "bool OGRWFSDataSource::DetectRequiresEnvelopeSpatialFilter(\n    const
      CPLXMLNode *psRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:479,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: OGRWFSDataSource::GetPostTransactionURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - resize
    - empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRWFSDataSource::GetPostTransactionURL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:498,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:502,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:518,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:528,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:529,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:529,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:537,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:542,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:544,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:556,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:557,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:557,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:565,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:573,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:581,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 590
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 590
    functionName: OGRWFSDataSource::DetectTransactionSupport
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - CSLAddString
    - CPLDebug
    - strcmp
    - CPLGetXMLValue
    linkageType: ''
    returnType: bool
    signature: bool OGRWFSDataSource::DetectTransactionSupport(const CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:603,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:607,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:617,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:618,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:618,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:621,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:621,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:632,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:640,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:641,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:641,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:657,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:658,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:658,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:680,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:685,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 50
    argCount: 2
    argNames:
    - psGetCapabilitiesResponse
    - psConfigurationRoot
    argTypes:
    - CPLXMLNode*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 689
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 689
    functionName: OGRWFSDataSource::DetectSupportPagingWFS2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - atoi
    - CPLGetXMLNode
    - CPLDebug
    - EQUAL
    - strcmp
    - CPLGetXMLValue
    linkageType: ''
    returnType: bool
    signature: "bool OGRWFSDataSource::DetectSupportPagingWFS2(\n    const CPLXMLNode
      *psGetCapabilitiesResponse,\n    const CPLXMLNode *psConfigurationRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:698,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:708,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:709,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:709,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:712,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:712,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 728
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 728
    functionName: OGRWFSDataSource::DetectSupportStandardJoinsWFS2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - CPLDebug
    - EQUAL
    - strcmp
    - CPLGetXMLValue
    linkageType: ''
    returnType: bool
    signature: bool OGRWFSDataSource::DetectSupportStandardJoinsWFS2(const CPLXMLNode
      *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:740,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:742,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:742,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:747,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - psNode
    - pszVal
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 754
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 754
    functionName: FindComparisonOperator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    - strcmp
    - STARTS_WITH
    linkageType: ''
    returnType: bool
    signature: bool FindComparisonOperator(const CPLXMLNode *psNode, const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:763,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:765,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:768,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:776,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:777,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:778,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:781,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:789,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:793,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:795,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:796,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:800,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:802,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:803,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:804,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:809,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:814,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:819,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:820,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 823
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 823
    functionName: OGRWFSDataSource::LoadFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - VSIFCloseL
    - VSIFSeekL
    - VSI_ISDIR
    - CPLParseXMLString
    - VSIFOpenL
    - VSIFTellL
    - strstr
    - VSIFReadL
    - VSIStatExL
    - CPLFree
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *OGRWFSDataSource::LoadFromFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:834,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:835,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:836,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:837,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:838,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:839,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:840,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:841,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:842,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:843,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:844,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:846,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:846,1
    - Dst: OGRWFSDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:848,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:854,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:856,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:858,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:860,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pszBaseURL
    - osTypeName
    argTypes:
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 867
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 867
    functionName: OGRWFSDataSource::SendGetCapabilities
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::HTTPFetch
    - CPLDebug
    - CPLString::c_str
    - CPLURLAddKVP
    - strstr
    - CPLHTTPDestroyResult
    - CPLError
    - CPLString::empty
    - CPLURLGetValue
    linkageType: ''
    returnType: CPLHTTPResult
    signature: "CPLHTTPResult *OGRWFSDataSource::SendGetCapabilities(const char *pszBaseURL,\n
      \                                                    CPLString &osTypeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:877,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:881,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:882,1
    - Dst: OGRWFSDataSource::LoadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:884,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:889,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:895,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:896,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:897,1
    - Dst: FindSubStringInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:898,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:903,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:907,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:908,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:913,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:914,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:915,1
    - Dst: OGRWFSDataSource::SendGetCapabilities
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:920,1
    - Dst: WFS_DecodeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:921,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:927,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:932,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:940,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:942,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:947,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:949,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:950,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:956,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:963,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:965,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:969,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:972,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:973,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:987,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:989,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:992,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:994,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:997,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:999,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1002,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1004,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1009,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1011,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1013,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1014,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1015,1
    - Dst: WFS_DecodeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1016,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1019,1
    - Dst: OGRWFSDataSource::SendGetCapabilities
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1023,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1026,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1031,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1034,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1036,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1037,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1041,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1043,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1046,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1048,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1049,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1053,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1053,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1058,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1059,1
    - Dst: OGRWFSDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1062,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1072,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1074,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1077,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1081,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1081,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1083,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1084,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1086,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1087,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1088,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1089,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1091,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1092,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1093,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1097,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1101,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1103,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1104,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1111,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1115,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1122,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1124,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1125,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1139,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1142,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1143,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1144,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1144,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1152,1
    - Dst: DetectIfGetFeatureSupportHits
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1156,1
    - Dst: OGRWFSDataSource::DetectRequiresEnvelopeSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1158,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1161,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1163,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1166,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1168,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1169,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1170,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1171,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1173,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1175,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1176,1
    - Dst: OGRWFSDataSource::DetectSupportPagingWFS2
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1180,1
    - Dst: OGRWFSDataSource::DetectSupportStandardJoinsWFS2
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1181,1
    - Dst: OGRWFSDataSource::DetectTransactionSupport
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1188,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1191,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1192,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1196,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1201,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1202,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1203,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1204,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1205,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1206,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1211,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1214,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1216,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1217,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1219,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1221,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1227,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1228,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1232,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1234,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1235,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1240,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1242,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1245,1
    - Dst: FindComparisonOperator
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1246,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1247,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1256,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1259,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1261,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1262,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1272,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1281,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1281,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1284,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1289,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1295,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1297,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1303,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1326,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1331,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1333,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1337,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1340,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                            OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1349,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1351,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1352,1
    - Dst: "OGRSpatialReference::\n                                    SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1354,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1358,1
    - Dst: OGRLayer::GetSupportedSRSListRetType::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1359,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1359,1
    - Dst: "std::unique_ptr<\n                                    OGRSpatialReference,\n
        \                                   OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1374,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1377,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1378,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1379,1
    - Dst: "OGRSpatialReference::\n                                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1381,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1385,1
    - Dst: OGRLayer::GetSupportedSRSListRetType::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1386,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1387,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1391,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1399,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1408,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1412,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1418,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1418,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1419,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1422,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1424,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1424,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1435,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1444,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1445,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1447,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1453,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1455,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1456,1
    - Dst: "OGRSpatialReference::\n                                SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1458,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1462,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1463,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1467,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1482,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1496,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1499,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1500,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1501,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1502,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1504,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1507,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1522,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1523,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1524,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1525,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1531,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1536,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1538,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1543,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1545,1
    - Dst: OGRWFSLayer::OGRWFSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1550,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1552,1
    - Dst: OGRWFSLayer*::SetRequiredOutputFormat
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1553,1
    - Dst: OGRWFSLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1556,1
    - Dst: OGRWFSLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1558,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1559,1
    - Dst: OGRWFSLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1569,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1570,1
    - Dst: OGRWFSLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1576,1
    - Dst: OGRSpatialReference*::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1585,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1596,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1599,1
    - Dst: OGRWFSLayer*::SetWGS84Extents
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1602,1
    - Dst: OGRWFSLayer*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1604,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1609,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1610,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1611,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1613,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1615,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1616,1
    - Dst: OGRWFSLayer*::SetWGS84Extents
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1620,1
    - Dst: auto::TransformBounds
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1622,1
    - Dst: OGRWFSLayer*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1625,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1628,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1629,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1632,1
    - Dst: OGRWFSLayer*::SetSupportedSRSList
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1634,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1634,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1635,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1637,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1647,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1648,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1648,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1652,1
    - Dst: OGRWFSLayer*::ParseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1656,1
    - Dst: OGRWFSLayer*::BuildLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1658,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1669,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1672,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1673,1
    CyclomaticComplexity: 148
    EdgeCount: 148
    ICount: 387
    argCount: 3
    argNames:
    - pszFilename
    - bUpdateIn
    - papszOpenOptionsIn
    argTypes:
    - char*
    - int
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1676
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 1676
    functionName: OGRWFSDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRWFSDataSource::DetectTransactionSupport
    - std::vector::size
    - CPLDebug
    - CPLGetXMLValue
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLAddXMLChild
    - OGRWFSDataSource::DetectRequiresEnvelopeSpatialFilter
    - std::unique_ptr<OGRCoordinateTransformation>
    - OGRSpatialReference::Clone
    - OGRWFSDataSource::DetectSupportStandardJoinsWFS2
    - CSLCount
    - OGRWFSLayer*::ParseSchema
    - OGRWFSDataSource::DetectSupportPagingWFS2
    - OGRSpatialReference::SetFromUserInput
    - CPLFetchBool
    - DetectIfGetFeatureSupportHits
    - CPLParseXMLString
    - OGRWFSDataSource::Open
    - CPLStripXMLNamespace
    - "OGRSpatialReference::\n                                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - "OGRSpatialReference::\n                                SET_FROM_USER_INPUT_LIMITATIONS_get"
    - OGRWFSDataSource::LoadFromFile
    - CPLGetXMLNode
    - CSLDestroy
    - CSLFindString
    - OGRSpatialReference::SetWellKnownGeogCS
    - CSLSetNameValue
    - WFS_DecodeURL
    - OGRLayer::GetSupportedSRSListRetType::emplace_back
    - std::set::end
    - OGRWFSLayer*::SetSupportedSRSList
    - std::set::insert
    - CSLFetchNameValue
    - CPLErrorReset
    - OGRWFSLayer*::SetRequiredOutputFormat
    - FindSubStringInsensitive
    - CPLRealloc
    - std::move
    - SetMetadataItem
    - std::vector::empty
    - auto::SetFromUserInput
    - CPLAtof
    - OGRWFSLayer*::BuildLayerDefn
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - FindComparisonOperator
    - "std::unique_ptr<OGRSpatialReference,\n                                            OGRSpatialReferenceReleaser>"
    - CSLFetchNameValueDef
    - EQUAL
    - atoi
    - auto::TransformBounds
    - std::vector::emplace_back
    - strcmp
    - std::vector::push_back
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - CPLString::empty
    - CPLCloneXMLTree
    - OGRWFSLayer*::SetWGS84Extents
    - OGRWFSLayer::OGRWFSLayer
    - CPLString::c_str
    - CPLPopErrorHandler
    - OGRWFSDataSource::SendGetCapabilities
    - strlen
    - WFSFindNode
    - c_str
    - CPLDestroyXMLNode
    - CPLSPrintf
    - std::set::find
    - OGRWFSLayer*::SetMetadataItem
    - CPLURLAddKVP
    - strstr
    - GML_IsSRSLatLongOrder
    - OGRCreateCoordinateTransformation
    - const_cast<CPLXMLNode *>
    - empty
    - CPLPushErrorHandler
    - OGRWFSLayer*::SetExtents
    - OGRSpatialReference::SetAxisMappingStrategy
    - CSLTokenizeStringComplex
    - "std::unique_ptr<\n                                    OGRSpatialReference,\n
      \                                   OGRSpatialReferenceReleaser>"
    - CPLError
    - STARTS_WITH
    - CPLEscapeString
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRSpatialReference*::exportToProj4
    - "OGRSpatialReference::\n                                    SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLHTTPDestroyResult
    - CPLURLGetValue
    linkageType: ''
    returnType: int
    signature: "int OGRWFSDataSource::Open(const char *pszFilename, int bUpdateIn,\n
      \                          CSLConstList papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1691,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1692,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1696,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1698,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1700,1
    - Dst: dynamic_cast<OGRWFSLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1703,1
    - Dst: OGRWFSDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1703,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1719,1
    - Dst: HasLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1723,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1728,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1728,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1729,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1730,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1730,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1730,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1731,1
    - Dst: GetRequiredOutputFormat
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1733,1
    - Dst: GetRequiredOutputFormat
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1735,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1736,1
    - Dst: GetRequiredOutputFormat
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1737,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1739,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1740,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1742,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1747,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1764,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1765,1
    - Dst: OGRWFSDataSource::GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1765,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1766,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1767,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1767,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1768,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1769,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1770,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1771,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1773,1
    - Dst: OGRWFSDataSource::GetNeedNAMESPACE
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1776,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1785,1
    - Dst: WFS_EscapeURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1785,1
    - Dst: OGRWFSDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1788,1
    - Dst: OGRWFSDataSource::GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1797,1
    - Dst: OGRWFSDataSource::GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1812,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1829,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1829,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1831,1
    - Dst: OGRWFSDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1834,1
    - Dst: OGRWFSDataSource::GetPostTransactionURL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1834,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1835,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1844,1
    - Dst: OGRWFSDataSource::IsOldDeegree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1847,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1853,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1856,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1861,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1864,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1866,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1870,1
    - Dst: WFSFindNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1872,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1875,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1876,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1881,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1882,1
    - Dst: GMLParseXSD
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1887,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1890,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1893,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1895,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1904,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1904,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1908,1
    - Dst: OGRWFSDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1909,1
    - Dst: OGRWFSDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1912,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1912,1
    - Dst: OGRWFSLayer*::HasLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1916,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1920,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1921,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1930,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1934,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1936,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1938,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1939,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1940,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1940,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1946,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1947,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1951,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1955,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1957,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1962,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1964,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1966,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1967,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1968,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1968,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1969,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1970,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1970,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1972,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1972,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1978,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1980,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1981,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1982,1
    - Dst: OGRWFSLayer*::GetShortName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1983,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1990,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1991,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1995,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1996,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:1996,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2001,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2002,1
    - Dst: OGRWFSLayer*::ParseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2015,1
    - Dst: OGRWFSLayer*::BuildLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2018,1
    - Dst: OGRWFSDataSource::SaveLayerSchema
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2019,1
    - Dst: OGRWFSLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2019,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2024,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2028,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2031,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2040,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2045,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2047,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 175
    argCount: 3
    argNames:
    - pszLayerName
    - pszNS
    - pszNSVal
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2048
      start: 1685
    functionDepth: 5
    functionLinenumber: 1685
    functionLinenumberEnd: 2048
    functionName: OGRWFSDataSource::LoadMultipleLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSLayer*::HasLayerDefn
    - OGRWFSDataSource::GetPostTransactionURL
    - strncmp
    - CPLDebug
    - OGRWFSDataSource::GetLayerByName
    - strcmp
    - CPLSerializeXMLTreeToFile
    - OGRWFSLayer*::GetShortName
    - CPLError
    - CPLGetXMLValue
    - std::string::c_str
    - std::string::empty
    - end
    - HasLayerDefn
    - CPLCloneXMLTree
    - std::vector::end
    - OGRWFSLayer*::GetName
    - OGRWFSDataSource::SaveLayerSchema
    - std::string::find
    - insert
    - find
    - OGRWFSDataSource::HTTPFetch
    - std::vector::begin
    - GMLParseXSD
    - CPLString::c_str
    - WFSFindNode
    - OGRWFSLayer*::ParseSchema
    - GetRequiredOutputFormat
    - std::vector::empty
    - GetName
    - CPLRemoveXMLChild
    - CPLDestroyXMLNode
    - OGRWFSDataSource::GetVersion
    - OGRWFSLayer*::BuildLayerDefn
    - VSIUnlink
    - std::string::clear
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - std::string::resize
    - CPLURLAddKVP
    - strstr
    - GMLFeatureClass*::GetName
    - dynamic_cast<OGRWFSLayer *>
    - std::string::size
    - CPLGetXMLNode
    - OGRWFSDataSource::GetNeedNAMESPACE
    - CSLDestroy
    - strchr
    - CSLAddNameValue
    - OGRWFSDataSource::IsOldDeegree
    - CPLHTTPDestroyResult
    - VSIMemGenerateHiddenFilename
    - WFS_EscapeURL
    linkageType: ''
    returnType: void
    signature: "void OGRWFSDataSource::LoadMultipleLayerDefn(const char *pszLayerName,\n
      \                                            char *pszNS, char *pszNSVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2061,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2062,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2063,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2063,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pszLayerName
    - psSchema
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2066
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2066
    functionName: OGRWFSDataSource::SaveLayerSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLCreateXMLNode
    - CPLCloneXMLTree
    - CPLSetXMLValue
    - CPLAddXMLChild
    linkageType: ''
    returnType: void
    signature: "void OGRWFSDataSource::SaveLayerSchema(const char *pszLayerName,\n
      \                                      const CPLXMLNode *psSchema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszErrorString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2082
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2082
    functionName: OGRWFSDataSource::IsOldDeegree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool OGRWFSDataSource::IsOldDeegree(const char *pszErrorString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2108,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2115
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2115
    functionName: WFS_EscapeURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 5
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: CPLString
    signature: CPLString WFS_EscapeURL(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2124,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2126,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2129,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - osSrc
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2140
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2140
    functionName: WFS_DecodeURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - CPLString::substr
    - CPLString::length
    linkageType: ''
    returnType: CPLString
    signature: CPLString WFS_DecodeURL(const CPLString &osSrc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2152,1
    - Dst: CSLMerge
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2154,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2155,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2156,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2169,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2173,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2176,1
    - Dst: OGRWFSDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2177,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2180,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2189,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - pszURL
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2195
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2195
    functionName: OGRWFSDataSource::HTTPFetch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 3
    functionsReached:
    - CPLHTTPFetch
    - OGRWFSDataSource::HTTPFetch
    - CSLDestroy
    - CPLDebug
    - CSLAddNameValue
    - CSLMerge
    - strstr
    - CPLHTTPDestroyResult
    - CPLError
    linkageType: ''
    returnType: CPLHTTPResult
    signature: "CPLHTTPResult *OGRWFSDataSource::HTTPFetch(const char *pszURL,\n                                           char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2207,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2207,1
    - Dst: WFSGetCustomFuncRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2211,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2216,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2218,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2227,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2234,1
    - Dst: OGRWFSDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2235,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2238,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2239,1
    - Dst: std::unique_ptr<MEMDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2243,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2244,1
    - Dst: auto::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2246,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2248,1
    - Dst: OGRWFSLayer*::GetLastInsertedFIDList
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2251,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2252,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2253,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2257,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2257,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2258,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2259,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2259,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2265,1
    - Dst: OGRWFSWrappedResultLayer::OGRWFSWrappedResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2265,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2273,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2280,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2285,1
    - Dst: OGRWFSDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2289,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2290,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2298,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2307,1
    - Dst: OGRFeatureQuery::Compile
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2308,1
    - Dst: OGRWFSLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2308,1
    - Dst: OGRFeatureQuery::GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2317,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2318,1
    - Dst: swq_expr_node*::ReplaceInByOrRecurse
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2319,1
    - Dst: WFS_TurnSQLFilterToOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2320,1
    - Dst: OGRWFSLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2321,1
    - Dst: OGRWFSDataSource::HasNullCheck
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2324,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2329,1
    - Dst: OGRWFSLayer*::DeleteFromFilter
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2334,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2342,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2344,1
    - Dst: swq_select*::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2345,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2351,1
    - Dst: OGRWFSDataSource::GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2351,1
    - Dst: OGRWFSDataSource::GetLayerIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2354,1
    - Dst: OGRWFSLayer*::HasGotApproximateLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2366,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2374,1
    - Dst: OGRWFSLayer*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2380,1
    - Dst: OGRWFSLayer*::SetOrderBy
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2382,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2386,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2398,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2403,1
    - Dst: BuildParseInfo
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2423,1
    - Dst: DestroyParseInfo
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2430,1
    - Dst: OGRWFSJoinLayer::Build
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2435,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2446,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 109
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 2450
      start: 2201
    functionDepth: 5
    functionLinenumber: 2201
    functionLinenumberEnd: 2450
    functionName: OGRWFSDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::CreateLayer
    - OGRFeatureQuery::GetSWQExpr
    - swq_select::swq_select
    - std::vector::emplace_back
    - CPLDebug
    - IsGenericSQLDialect
    - OGRWFSDataSource::GetLayerByName
    - strcmp
    - OGRWFSJoinLayer::Build
    - CPLError
    - OGRWFSLayer*::DeleteFromFilter
    - CPLString::resize
    - CPLString::empty
    - std::unique_ptr<MEMDataset>
    - std::vector::end
    - static_cast<unsigned char>
    - isspace
    - OGRWFSDataSource::HasNullCheck
    - std::vector::begin
    - OGRWFSLayer*::HasGotApproximateLayerDefn
    - CPLString::c_str
    - OGRFeatureQuery::Compile
    - OGRLayer*::GetLayerDefn
    - OGRWFSDataSource::GetLayerIndex
    - OGRLayer*::CreateFeature
    - OGRWFSLayer*::GetLayerDefn
    - STARTS_WITH_CI
    - WFSGetCustomFuncRegistrar
    - OGRWFSDataSource::GetVersion
    - OGRLayer*::CreateField
    - BuildParseInfo
    - MEMDataset::Create
    - OGRWFSWrappedResultLayer::OGRWFSWrappedResultLayer
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - CPLFree
    - swq_select*::preparse
    - DestroyParseInfo
    - swq_expr_node*::ReplaceInByOrRecurse
    - OGRWFSLayer*::GetLastInsertedFIDList
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - OGRFeatureQuery::OGRFeatureQuery
    - auto::release
    - OGRWFSLayer*::SetOrderBy
    - GDALDataset::ExecuteSQL
    - OGRWFSLayer*::Clone
    - WFS_TurnSQLFilterToOGCFilter
    - OGRFeature*::SetField
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRWFSDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2461,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2462,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp:2473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 2476
      start: 2456
    functionDepth: 1
    functionLinenumber: 2456
    functionLinenumberEnd: 2476
    functionName: OGRWFSDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - end
    - find
    - erase
    linkageType: ''
    returnType: void
    signature: void OGRWFSDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: OGRIdrisiLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogr_idrisi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: OGRIdrisiDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogr_idrisi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:27,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:34,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:35,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:36,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:39,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:39,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:40,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:41,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:42,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:45,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:47,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:48,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:50,1
    - Dst: OGRIdrisiLayer::Detect_AVL_ADC
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:54,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:57,1
    - Dst: OGRIdrisiLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - pszFilename
    - pszLayerName
    - fpIn
    - eGeomTypeIn
    - pszWTKString
    argTypes:
    - char*
    - char*
    - VSILFILE*
    - OGRwkbGeometryType
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 63
    functionName: OGRIdrisiLayer::OGRIdrisiLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - importFromWkt
    - SetGeomType
    - VSIFCloseL
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - VSIFSeekL
    - CPL_LSBPTR32
    - OGRIdrisiLayer::ResetReading
    - SetAxisMappingStrategy
    - Reference
    - AddFieldDefn
    - VSIFReadL
    - OGRIdrisiLayer::Detect_AVL_ADC
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRIdrisiLayer::OGRIdrisiLayer(const char *pszFilename,\n                               const
      char *pszLayerName, VSILFILE *fpIn,\n                               OGRwkbGeometryType
      eGeomTypeIn,\n                               const char *pszWTKString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:73,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:75,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:77,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: OGRIdrisiLayer::~OGRIdrisiLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRIdrisiLayer::~OGRIdrisiLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:92,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:93,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:93,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:96,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:97,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:103,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:106,1
    - Dst: CSLLoad2
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:107,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:107,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:108,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:109,1
    - Dst: CSLSetNameValueSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:115,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:118,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:120,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:125,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:127,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:128,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:133,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:135,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:137,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:142,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:144,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:146,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:153,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:154,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:154,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:157,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:158,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:158,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:162,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:172,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:181,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:181,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:190,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:194,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:196,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:199,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:201,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:206,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:209,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:215,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 218
    functionName: OGRIdrisiLayer::Detect_AVL_ADC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - strncmp
    - CPLDebug
    - CSLLoad2
    - STARTS_WITH
    - std::string::c_str
    - CPLErrorReset
    - CPLString::c_str
    - CPLPopErrorHandler
    - strlen
    - AddFieldDefn
    - VSIFOpenL
    - snprintf
    - CSLSetNameValueSeparator
    - VSIFCloseL
    - CPLResetExtensionSafe
    - CSLDestroy
    - EQUAL
    - CPLPushErrorHandler
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: bool
    signature: bool OGRIdrisiLayer::Detect_AVL_ADC(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:229,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: OGRIdrisiLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRIdrisiLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:241,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: OGRIdrisiLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRIdrisiLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:266,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:267,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:268,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:272,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:273,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:274,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:284,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:286,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:287,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:288,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:289,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:290,1
    - Dst: OGRIdrisiLayer::ReadAVLLine
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:291,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:302,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:303,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:304,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:305,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:306,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:311,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:312,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:313,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:314,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:315,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:318,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:323,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:338,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:342,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:343,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:350,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:350,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:353,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:361,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:362,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:366,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:367,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:369,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:372,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:373,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:374,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:375,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:376,1
    - Dst: OGRIdrisiLayer::ReadAVLLine
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:377,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:388,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:389,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:390,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:391,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:392,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:397,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:398,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:399,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:400,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:401,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:404,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:405,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:410,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:411,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:425,1
    - Dst: static_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:433,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:434,1
    - Dst: static_cast<unsigned int *>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:443,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:444,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:445,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:448,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:449,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:456,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:463,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:466,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:470,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:473,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:479,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:485,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:485,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:489,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:490,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:499,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:500,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:504,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:505,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:506,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:509,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:510,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:513,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:514,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:515,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:516,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:517,1
    - Dst: OGRIdrisiLayer::ReadAVLLine
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:518,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 148
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 522
    functionName: OGRIdrisiLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRLinearRing*::setPoints
    - static_cast<unsigned int>
    - OGRPolygon*::assignSpatialReference
    - OGRPoint::OGRPoint
    - static_cast<OGRRawPoint *>
    - CPLMalloc
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - CPL_LSBPTR64
    - OGRLinearRing::OGRLinearRing
    - VSIFSeekL
    - OGRIdrisiLayer::ReadAVLLine
    - VSIFReadL
    - OGRLineString*::assignSpatialReference
    - OGRFeature::OGRFeature
    - OGRLineString*::setPoints
    - OGRPoint*::assignSpatialReference
    - static_cast<unsigned int *>
    - VSI_MALLOC2_VERBOSE
    - VSIFree
    - OGRFeature*::SetField
    - CPL_LSBPTR32
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIdrisiLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:538,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:538,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:541,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:543,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:545,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 550
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 550
    functionName: OGRIdrisiLayer::ReadAVLLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFID
    - CSLDestroy
    - GetFieldCount
    - OGRFeature*::SetField
    - CSLCount
    linkageType: ''
    returnType: void
    signature: void OGRIdrisiLayer::ReadAVLLine(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dfMinXIn
    - dfMinYIn
    - dfMaxXIn
    - dfMaxYIn
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: OGRIdrisiLayer::SetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRIdrisiLayer::SetExtent(double dfMinXIn, double dfMinYIn,\n
      \                              double dfMaxXIn, double dfMaxYIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 581
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 581
    functionName: OGRIdrisiLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRIdrisiLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                 bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 594
    functionName: OGRIdrisiLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisilayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRIdrisiLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: OGRIdrisiDataSource::OGRIdrisiDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIdrisiDataSource::OGRIdrisiDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: OGRIdrisiDataSource::~OGRIdrisiDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRIdrisiDataSource::~OGRIdrisiDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: OGRIdrisiDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRIdrisiDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:56,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:63,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:64,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:67,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:68,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:74,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:77,1
    - Dst: CSLLoad2
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:78,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:79,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:80,1
    - Dst: CSLSetNameValueSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:88,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:92,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:94,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:95,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:104,1
    - Dst: IdrisiGeoReference2Wkt
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:105,1
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:107,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:109,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:115,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:117,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:118,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:119,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:131,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:132,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:133,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:134,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:135,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:145,1
    - Dst: OGRIdrisiLayer::OGRIdrisiLayer
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:145,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:147,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:147,1
    - Dst: OGRIdrisiLayer*::SetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:153,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:153,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:153,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:153,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:154,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:157,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp:159,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 162
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 162
    functionName: OGRIdrisiDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - OGRIdrisiLayer::OGRIdrisiLayer
    - OGRSpatialReference::IsEmpty
    - CSLLoad2
    - CPLError
    - std::string::c_str
    - CPLErrorReset
    - CPLPopErrorHandler
    - CPLMalloc
    - CPLAtof
    - static_cast<int>
    - OGRIdrisiLayer*::SetExtent
    - IdrisiGeoReference2Wkt
    - VSIFOpenL
    - VSIFReadL
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - CSLSetNameValueSeparator
    - VSIFCloseL
    - CPLResetExtensionSafe
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - static_cast<OGRLayer **>
    - CPLPushErrorHandler
    linkageType: ''
    returnType: int
    signature: int OGRIdrisiDataSource::Open(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:33,1
    - Dst: std::make_unique<OGRIdrisiDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:36,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:38,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: OGRIdrisiOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - GDALOpenInfo*::IsExtensionEqualToCI
    - std::make_unique<OGRIdrisiDataSource>
    - auto::release
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRIdrisiOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:53,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:56,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:57,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:60,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:61,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: RegisterOGRIdrisi
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRIdrisi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:26,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:28,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:30,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:34,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:40,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:41,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:42,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:47,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:48,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:49,1
    - Dst: fclose
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:51,1
    - Dst: fopen
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:53,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:55,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:57,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:61,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:69,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:70,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:71,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:72,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:73,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:75,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:78,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:79,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:82,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:83,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:90,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:91,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:92,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:93,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:94,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:96,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:99,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:100,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:103,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:104,1
    - Dst: fclose
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:106,1
    - Dst: fopen
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:108,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:110,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:112,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:116,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:124,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:125,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:126,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:127,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:128,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:130,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:132,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:135,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:138,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:142,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:143,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:146,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:147,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:150,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:151,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:154,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:155,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:158,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:159,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:163,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:164,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:167,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:168,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:171,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:172,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:175,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:176,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:179,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:180,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:187,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:188,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:189,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:190,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:191,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:193,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:195,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:198,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:202,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:203,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:206,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:207,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:210,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:211,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:214,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:215,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:218,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:219,1
    - Dst: fclose
      Src: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 178
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 224
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 224
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idrisi/generate_test_files.c
    functionUses: 9
    functionsReached:
    - fwrite
    - fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:99,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:109,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:112,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:114,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:117,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:119,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:122,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:124,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:127,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:131,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:133,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:142,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:144,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - pszFname
    - pszAccess
    - eFileByteOrder
    - psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCByteOrder
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 165
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 165
    functionName: AVCRawBinOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - VSIFOpenL
    - CPLError
    - CPLCalloc
    - CPLFree
    linkageType: ''
    returnType: AVCRawBinFile
    signature: "AVCRawBinFile *AVCRawBinOpen(const char *pszFname, const char *pszAccess,\n
      \                            AVCByteOrder eFileByteOrder,\n                             AVCDBCSInfo
      *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:178,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:179,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: AVCRawBinClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void AVCRawBinClose(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - nFileDataSize
    argTypes:
    - AVCRawBinFile*
    - int
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: AVCRawBinSetFileDataSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AVCRawBinSetFileDataSize(AVCRawBinFile *psFile, int nFileDataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:208,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:209,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - nSize
    argTypes:
    - AVCRawBinFile*
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: AVCRawBinIsFileGreaterThan
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    linkageType: ''
    returnType: int
    signature: int AVCRawBinIsFileGreaterThan(AVCRawBinFile *psFile, vsi_l_offset
      nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:232,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:242,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:255,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:260,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:277,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:293,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - psFile
    - nBytesToRead
    - pBuf
    argTypes:
    - AVCRawBinFile*
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 309
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 309
    functionName: AVCRawBinReadBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    - memcpy
    - VSIFReadL
    linkageType: ''
    returnType: void
    signature: void AVCRawBinReadBytes(AVCRawBinFile *psFile, int nBytesToRead, GByte
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:323,1
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:324,1
    - Dst: AVCE00ConvertFromArcDBCS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:329,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - psFile
    - nBytesToRead
    - pBuf
    argTypes:
    - AVCRawBinFile*
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 335
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 335
    functionName: AVCRawBinReadString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - memset
    - AVCE00ConvertFromArcDBCS
    - memcpy
    - AVCRawBinReadBytes
    linkageType: ''
    returnType: void
    signature: void AVCRawBinReadString(AVCRawBinFile *psFile, int nBytesToRead, GByte
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:350,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:354,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:362,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:367,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:393,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - psFile
    - nOffset
    - nFrom
    argTypes:
    - AVCRawBinFile*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: AVCRawBinFSeek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - CPLAssert
    - VSIFSeekL
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void AVCRawBinFSeek(AVCRawBinFile *psFile, int nOffset, int nFrom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:443,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:447,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 451
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 451
    functionName: AVCRawBinEOF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinFSeek
    - VSIFEofL
    - AVCRawBinReadBytes
    linkageType: ''
    returnType: GBool
    signature: GBool AVCRawBinEOF(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:465,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:465,1
    - Dst: CPL_SWAP16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: AVCRawBinReadInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPL_SWAP16
    - AVCRawBinReadBytes
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: GInt16
    signature: GInt16 AVCRawBinReadInt16(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:479,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:479,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: AVCRawBinReadInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPL_SWAP32
    - AVCRawBinReadBytes
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: GInt32
    signature: GInt32 AVCRawBinReadInt32(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:493,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:493,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: AVCRawBinReadFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPL_SWAP32PTR
    - AVCRawBinReadBytes
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: float
    signature: float AVCRawBinReadFloat(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:507,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:507,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 515
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 515
    functionName: AVCRawBinReadDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPL_SWAPDOUBLE
    - AVCRawBinReadBytes
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: double
    signature: double AVCRawBinReadDouble(AVCRawBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:535,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:541,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - psFile
    - nBytesToWrite
    - pBuf
    argTypes:
    - AVCRawBinFile*
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 550
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 550
    functionName: AVCRawBinWriteBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VSIFWriteL
    linkageType: ''
    returnType: void
    signature: "void AVCRawBinWriteBytes(AVCRawBinFile *psFile, int nBytesToWrite,\n
      \                        const GByte *pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAP16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:567,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:570,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psFile
    - n16Value
    argTypes:
    - AVCRawBinFile*
    - GInt16
    constantsTouched: []
    func_position:
      end: 571
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 571
    functionName: AVCRawBinWriteInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - CPL_SWAP16
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: void
    signature: void AVCRawBinWriteInt16(AVCRawBinFile *psFile, GInt16 n16Value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:577,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:580,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psFile
    - n32Value
    argTypes:
    - AVCRawBinFile*
    - GInt32
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: AVCRawBinWriteInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - CPL_SWAP32
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: void
    signature: void AVCRawBinWriteInt32(AVCRawBinFile *psFile, GInt32 n32Value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:587,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:590,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psFile
    - fValue
    argTypes:
    - AVCRawBinFile*
    - float
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: AVCRawBinWriteFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - reinterpret_cast<GByte *>
    - CPL_SWAP32PTR
    linkageType: ''
    returnType: void
    signature: void AVCRawBinWriteFloat(AVCRawBinFile *psFile, float fValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:597,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:600,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psFile
    - dValue
    argTypes:
    - AVCRawBinFile*
    - double
    constantsTouched: []
    func_position:
      end: 601
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 601
    functionName: AVCRawBinWriteDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - CPL_SWAPDOUBLE
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: void
    signature: void AVCRawBinWriteDouble(AVCRawBinFile *psFile, double dValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:622,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - nBytesToWrite
    argTypes:
    - AVCRawBinFile*
    - int
    constantsTouched: []
    func_position:
      end: 625
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 625
    functionName: AVCRawBinWriteZeros
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - MIN
    linkageType: ''
    returnType: void
    signature: void AVCRawBinWriteZeros(AVCRawBinFile *psFile, int nBytesToWrite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00Convert2ArcDBCS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:647,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:649,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:650,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:654,1
    - Dst: AVCRawBinWriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:660,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - psFile
    - nFieldSize
    - pszString
    argTypes:
    - AVCRawBinFile*
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 662
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 662
    functionName: AVCRawBinWritePaddedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_rawbin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteBytes
    - MIN
    - strlen
    - AVCE00Convert2ArcDBCS
    linkageType: ''
    returnType: void
    signature: "void AVCRawBinWritePaddedString(AVCRawBinFile *psFile, int nFieldSize,\n
      \                               const GByte *pszString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:144,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:149,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:151,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:155,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:156,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:166,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:168,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:172,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:178,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:189,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:198,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:207,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:226,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:229,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:236,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:239,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:243,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:243,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:245,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:245,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:257,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:273,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:279,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:283,1
    - Dst: _IsStringAlnum
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:286,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:292,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:293,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:294,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:312,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:318,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:332,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:339,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:339,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:345,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:346,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:348,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:349,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:351,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:352,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:359,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:362,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:363,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:364,1
    - Dst: AVCE00ParseInfoAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:373,1
    - Dst: AVCAllocDBCSInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:379,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:384,1
    - Dst: AVCE00WriteClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:386,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 97
    argCount: 3
    argNames:
    - pszCoverPath
    - eNewCoverType
    - nPrecision
    argTypes:
    - char*
    - AVCCoverType
    - int
    constantsTouched: []
    func_position:
      end: 391
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 391
    functionName: AVCE00WriteOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLErrorReset
    - CPLStrdup
    - VSI_ISDIR
    - VSIMkdir
    - strlen
    - CPLMalloc
    - AVCAllocDBCSInfo
    - _IsStringAlnum
    - CPLSPrintf
    - CPLGetLastErrorNo
    - AVCE00WriteClose
    - VSIFOpenL
    - snprintf
    - AVCE00ParseInfoAlloc
    - CPLCalloc
    - CPLFree
    - VSIStatL
    - VSIFCloseL
    - CSLDestroy
    - EQUAL
    - VSIReadDir
    linkageType: ''
    returnType: AVCE00WritePtr
    signature: "AVCE00WritePtr AVCE00WriteOpen(const char *pszCoverPath,\n                               AVCCoverType
      eNewCoverType, int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:401,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:406,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:407,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:408,1
    - Dst: AVCBinWriteClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:411,1
    - Dst: AVCE00ParseInfoFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:414,1
    - Dst: AVCFreeDBCSInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:416,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00WritePtr
    constantsTouched: []
    func_position:
      end: 419
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 419
    functionName: AVCE00WriteClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 1
    functionsReached:
    - CPLErrorReset
    - AVCFreeDBCSInfo
    - AVCE00ParseInfoFree
    - CPLFree
    - AVCBinWriteClose
    linkageType: ''
    returnType: void
    signature: void AVCE00WriteClose(AVCE00WritePtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: _IsStringAlnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: GBool
    signature: GBool _IsStringAlnum(const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:460,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:464,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:467,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:467,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:474,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:475,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:481,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:482,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:485,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:497,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:499,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:500,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:505,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:509,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:515,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:517,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:527,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - psTableDef
    - pszNewCoverName
    argTypes:
    - AVCTableDef*
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 529
    functionName: _AVCE00WriteRenameTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - CPLToupper
    - EQUAL
    - strchr
    - CPLAssert
    - snprintf
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: "void _AVCE00WriteRenameTable(AVCTableDef *psTableDef,\n                                    const
      char *pszNewCoverName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:553,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:563,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:566,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:569,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:572,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:576,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:578,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:581,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:584,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:595,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:597,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:598,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:601,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:607,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:607,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:608,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:611,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:614,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:615,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:618,1
    - Dst: _AVCE00WriteRenameTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:629,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:632,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:642,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:643,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:649,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:649,1
    - Dst: AVCBinWriteCreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:656,1
    - Dst: AVCBinWriteCreate
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:662,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 4
    argNames:
    - psInfo
    - eType
    - pszLine
    - psTableDef
    argTypes:
    - AVCE00WritePtr
    - AVCFileType
    - char*
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 673
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 673
    functionName: _AVCE00WriteCreateCoverFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<unsigned char>
    - CPLTolower
    - strchr
    - strcat
    - CPLAssert
    - snprintf
    - strlen
    - AVCBinWriteCreateTable
    - AVCBinWriteCreate
    - strcpy
    - _AVCE00WriteRenameTable
    linkageType: ''
    returnType: int
    signature: "int _AVCE00WriteCreateCoverFile(AVCE00WritePtr psInfo, AVCFileType
      eType,\n                                       const char *pszLine,\n                                       AVCTableDef
      *psTableDef)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCBinWriteObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:692,1
    - Dst: AVCE00WritePtr::hParseInfo::aosPrj::List
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:692,1
    - Dst: AVCBinWriteClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00WritePtr
    constantsTouched: []
    func_position:
      end: 698
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 698
    functionName: _AVCE00WriteCloseCoverFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - AVCE00WritePtr::hParseInfo::aosPrj::List
    - AVCBinWriteObject
    - AVCBinWriteClose
    linkageType: ''
    returnType: void
    signature: void _AVCE00WriteCloseCoverFile(AVCE00WritePtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:723,1
    - Dst: AVCE00ParseSuperSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:729,1
    - Dst: AVCE00ParseSuperSectionHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:746,1
    - Dst: AVCE00ParseSectionHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:754,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:778,1
    - Dst: _AVCE00WriteCreateCoverFile
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:789,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:807,1
    - Dst: _AVCE00WriteCreateCoverFile
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:810,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:825,1
    - Dst: _AVCE00WriteCloseCoverFile
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:827,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:828,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:836,1
    - Dst: AVCBinWriteObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:839,1
    - Dst: _AVCE00WriteCloseCoverFile
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:852,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:853,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:857,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00WritePtr
    - char*
    constantsTouched: []
    func_position:
      end: 861
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 861
    functionName: AVCE00WriteNextLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - AVCE00ParseSectionEnd
    - AVCE00ParseSuperSectionEnd
    - AVCE00ParseSectionHeader
    - _AVCE00WriteCloseCoverFile
    - CPLGetLastErrorNo
    - _AVCE00WriteCreateCoverFile
    - AVCE00ParseNextLine
    - AVCE00ParseSuperSectionHeader
    - AVCBinWriteObject
    linkageType: ''
    returnType: int
    signature: int AVCE00WriteNextLine(AVCE00WritePtr psInfo, const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:886,1
    - Dst: AVCE00ReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:895,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:899,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:905,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:906,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:907,1
    - Dst: AVCE00ReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:910,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:918,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:918,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:920,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:921,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:923,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:931,1
    - Dst: AVCBinReadListTables
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:941,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:948,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:949,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:952,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:953,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:953,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:955,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:962,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:963,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:963,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:965,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:972,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:973,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:983,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:986,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:992,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:993,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp:994,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 1
    argNames:
    - pszCoverToDelete
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 997
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 997
    functionName: AVCE00DeleteCoverage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - AVCE00ReadOpen
    - CPLErrorReset
    - AVCE00ReadClose
    - CPLStrdup
    - static_cast<unsigned char>
    - CPLTolower
    - CSLDestroy
    - CPLSPrintf
    - EQUAL
    - AVCBinReadListTables
    - VSIRmdir
    - CPLError
    - VSIReadDir
    - CPLFree
    - unlink
    linkageType: ''
    returnType: int
    signature: int AVCE00DeleteCoverage(const char *pszCoverToDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: OGRAVCDataSource::OGRAVCDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAVCDataSource::OGRAVCDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp:31,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: OGRAVCDataSource::~OGRAVCDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRAVCDataSource::~OGRAVCDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: OGRAVCDataSource::DSGetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRAVCDataSource::DSGetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: OGRAVCDataSource::GetCoverageName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRAVCDataSource::GetCoverageName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRAVCBinDataSource::OGRAVCBinDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAVCBinDataSource::OGRAVCBinDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:36,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: OGRAVCBinDataSource::~OGRAVCBinDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - AVCE00ReadClose
    linkageType: ''
    returnType: void
    signature: void OGRAVCBinDataSource::~OGRAVCBinDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:58,1
    - Dst: AVCE00ReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:60,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:64,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:65,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:71,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:82,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:89,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:90,1
    - Dst: importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:91,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:93,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:101,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:115,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:116,1
    - Dst: OGRAVCBinLayer::OGRAVCBinLayer
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp:132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - pszNewName
    - bTestOpen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 141
    functionName: OGRAVCBinDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadOpen
    - importFromESRI
    - CPLErrorReset
    - OGRSpatialReference::OGRSpatialReference
    - CPLStrdup
    - AVCBinReadClose
    - static_cast<OGRLayer **>
    - SetAxisMappingStrategy
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - CPLError
    - OGRAVCBinLayer::OGRAVCBinLayer
    - AVCBinReadOpen
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: int OGRAVCBinDataSource::Open(const char *pszNewName, int bTestOpen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: OGRAVCBinDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRAVCBinDataSource::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: OGRAVCBinDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRAVCBinDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:127,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:139,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:148,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:154,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:155,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:155,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:155,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:174,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:175,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:182,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:183,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:193,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:194,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:196,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:198,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:200,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:205,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:207,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:209,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:214,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:216,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:218,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:223,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:225,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:227,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:234,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:235,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:238,1
    - Dst: AVCBinWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:244,1
    - Dst: AVCBinWriteClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:247,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 51
    argCount: 6
    argNames:
    - pszPath
    - pszName
    - eCoverType
    - eType
    - nPrecision
    - psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCCoverType
    - AVCFileType
    - int
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 252
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 252
    functionName: AVCBinWriteCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 1
    functionsReached:
    - AVCBinWriteHeader
    - STARTS_WITH_CI
    - CPLStrdup
    - snprintf
    - CPLMalloc
    - strlen
    - AVCRawBinOpen
    - CPLError
    - AVC_COVER_BYTE_ORDER
    - CPLCalloc
    - memcpy
    - CPLFree
    - AVCBinWriteClose
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *AVCBinWriteCreate(const char *pszPath, const char *pszName,\n
      \                             AVCCoverType eCoverType, AVCFileType eType,\n
      \                             int nPrecision, AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:279,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:280,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:282,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:285,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:286,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:287,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:288,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:289,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:293,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - psFile
    - psHeader
    - eCoverType
    argTypes:
    - AVCRawBinFile*
    - AVCBinHeader*
    - AVCCoverType
    constantsTouched: []
    func_position:
      end: 299
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 299
    functionName: _AVCBinWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt16
    - AVCRawBinWriteInt32
    - AVCRawBinWriteZeros
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteHeader(AVCRawBinFile *psFile, AVCBinHeader *psHeader,\n
      \                             AVCCoverType eCoverType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:316,1
    - Dst: _AVCBinWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:379,1
    - Dst: _AVCBinWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 391
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 391
    functionName: AVCBinWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - memset
    - _AVCBinWriteHeader
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteHeader(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteCloseTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:404,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:435,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:438,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:439,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:440,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:442,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:443,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:444,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:449,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:450,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:451,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:455,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:475,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:478,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:479,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:480,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:482,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:483,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:484,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:489,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:490,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:491,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:494,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:498,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:500,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 501
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 501
    functionName: AVCBinWriteClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 3
    functionsReached:
    - _AVCBinWriteCloseTable
    - AVCRawBinWriteInt32
    - VSIFSeekL
    - AVCRawBinClose
    - CPL_IGNORE_RET_VAL_INT
    - CPLFree
    - AVCRawBinWriteZeros
    linkageType: ''
    returnType: void
    signature: void AVCBinWriteClose(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:519,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:520,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - psFile
    - nPosition
    - nSize
    argTypes:
    - AVCRawBinFile*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: _AVCBinWriteIndexEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteIndexEntry(AVCRawBinFile *psFile, int nPosition,\n
      \                                 int nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCBinWriteArc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:548,1
    - Dst: AVCBinWritePal
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:552,1
    - Dst: AVCBinWriteCnt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:555,1
    - Dst: AVCBinWriteLab
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:558,1
    - Dst: AVCBinWriteTol
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:561,1
    - Dst: AVCBinWritePrj
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:564,1
    - Dst: AVCBinWriteTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:568,1
    - Dst: AVCBinWriteRxp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:571,1
    - Dst: AVCBinWriteTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:577,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - psFile
    - psObj
    argTypes:
    - AVCBinFile*
    - void*
    constantsTouched: []
    func_position:
      end: 583
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 583
    functionName: AVCBinWriteObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - AVCBinWriteTableRec
    - AVCBinWriteRxp
    - AVCBinWritePal
    - AVCBinWriteCnt
    - AVCBinWriteArc
    - AVCBinWriteLab
    - AVCBinWriteTxt
    - CPLError
    - AVCBinWritePrj
    - AVCBinWriteTol
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteObject(AVCBinFile *psFile, void *psObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:610,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:611,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:621,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:622,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:623,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:624,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:625,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:626,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:627,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:633,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:634,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:641,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:642,1
    - Dst: _AVCBinWriteIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:651,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - psFile
    - psArc
    - nPrecision
    - psIndexFile
    argTypes:
    - AVCRawBinFile*
    - AVCArc*
    - int
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 658
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 658
    functionName: _AVCBinWriteArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteFloat
    - _AVCBinWriteIndexEntry
    - AVCRawBinWriteDouble
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteArc(AVCRawBinFile *psFile, AVCArc *psArc, int nPrecision,\n
      \                          AVCRawBinFile *psIndexFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteArc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psArc
    argTypes:
    - AVCBinFile*
    - AVCArc*
    constantsTouched: []
    func_position:
      end: 681
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 681
    functionName: AVCBinWriteArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteArc
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteArc(AVCBinFile *psFile, AVCArc *psArc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:708,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:709,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:720,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:724,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:725,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:726,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:727,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:731,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:732,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:733,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:734,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:737,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:741,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:742,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:743,1
    - Dst: _AVCBinWriteIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:751,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - psFile
    - psPal
    - nPrecision
    - psIndexFile
    argTypes:
    - AVCRawBinFile*
    - AVCPal*
    - int
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 758
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 758
    functionName: _AVCBinWritePal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteFloat
    - _AVCBinWriteIndexEntry
    - AVCRawBinWriteDouble
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWritePal(AVCRawBinFile *psFile, AVCPal *psPal, int nPrecision,\n
      \                          AVCRawBinFile *psIndexFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWritePal
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psPal
    argTypes:
    - AVCBinFile*
    - AVCPal*
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: AVCBinWritePal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWritePal
    linkageType: ''
    returnType: int
    signature: int AVCBinWritePal(AVCBinFile *psFile, AVCPal *psPal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:804,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:805,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:816,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:820,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:821,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:825,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:826,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:829,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:833,1
    - Dst: _AVCBinWriteIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:841,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - psFile
    - psCnt
    - nPrecision
    - psIndexFile
    argTypes:
    - AVCRawBinFile*
    - AVCCnt*
    - int
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 848
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 848
    functionName: _AVCBinWriteCnt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteFloat
    - _AVCBinWriteIndexEntry
    - AVCRawBinWriteDouble
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteCnt(AVCRawBinFile *psFile, AVCCnt *psCnt, int nPrecision,\n
      \                          AVCRawBinFile *psIndexFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteCnt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psCnt
    argTypes:
    - AVCBinFile*
    - AVCCnt*
    constantsTouched: []
    func_position:
      end: 871
      start: 864
    functionDepth: 5
    functionLinenumber: 864
    functionLinenumberEnd: 871
    functionName: AVCBinWriteCnt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteCnt
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteCnt(AVCBinFile *psFile, AVCCnt *psCnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:893,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:894,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:897,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:901,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:902,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:903,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:904,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:905,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:906,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:910,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:911,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:912,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:913,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:914,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:915,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - psFile
    - psLab
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCLab*
    - int
    constantsTouched: []
    func_position:
      end: 922
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 922
    functionName: _AVCBinWriteLab
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteFloat
    - AVCRawBinWriteInt32
    - AVCRawBinWriteDouble
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: int _AVCBinWriteLab(AVCRawBinFile *psFile, AVCLab *psLab, int nPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteLab
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psLab
    argTypes:
    - AVCBinFile*
    - AVCLab*
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 4
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: AVCBinWriteLab
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteLab
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteLab(AVCBinFile *psFile, AVCLab *psLab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:966,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:967,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:970,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:974,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:978,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - psFile
    - psTol
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCTol*
    - int
    constantsTouched: []
    func_position:
      end: 985
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 985
    functionName: _AVCBinWriteTol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteFloat
    - AVCRawBinWriteInt32
    - AVCRawBinWriteDouble
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: int _AVCBinWriteTol(AVCRawBinFile *psFile, AVCTol *psTol, int nPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteTol
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psTol
    argTypes:
    - AVCBinFile*
    - AVCTol*
    constantsTouched: []
    func_position:
      end: 1007
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1007
    functionName: AVCBinWriteTol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteTol
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteTol(AVCBinFile *psFile, AVCTol *psTol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSave
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1037,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - psFile
    - papszPrj
    argTypes:
    - AVCBinFile*
    - char**
    constantsTouched: []
    func_position:
      end: 1043
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1043
    functionName: AVCBinWritePrj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 1
    functionsReached:
    - CSLSave
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: int AVCBinWritePrj(AVCBinFile *psFile, char **papszPrj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1070,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1071,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1080,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1084,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1084,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1090,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1092,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1093,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1094,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1095,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1096,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1097,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1098,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1099,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1103,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1107,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1112,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1113,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1114,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1118,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1119,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1120,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1124,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1130,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1131,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1138,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1139,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1143,1
    - Dst: _AVCBinWriteIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1150,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 4
    argNames:
    - psFile
    - psTxt
    - nPrecision
    - psIndexFile
    argTypes:
    - AVCRawBinFile*
    - AVCTxt*
    - int
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1157
    functionName: _AVCBinWriteTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt16
    - AVCRawBinWritePaddedString
    - ABS
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteZeros
    - AVCRawBinWriteFloat
    - strlen
    - _AVCBinWriteIndexEntry
    - AVCRawBinWriteDouble
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteTxt(AVCRawBinFile *psFile, AVCTxt *psTxt, int nPrecision,\n
      \                          AVCRawBinFile *psIndexFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1181,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1185,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1186,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1198,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1204,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1205,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1214,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1215,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1217,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1221,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1222,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1225,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1227,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1228,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1229,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1230,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1233,1
    - Dst: _AVCBinWriteIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1242,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - psFile
    - psTxt
    - nPrecision
    - psIndexFile
    argTypes:
    - AVCRawBinFile*
    - AVCTxt*
    - CPL_UNUSED
    - AVCRawBinFile*
    constantsTouched: []
    func_position:
      end: 1249
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1249
    functionName: _AVCBinWritePCCoverageTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWritePaddedString
    - ABS
    - MIN
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - CPLAssert
    - AVCRawBinWriteFloat
    - strlen
    - _AVCBinWriteIndexEntry
    - AVCRawBinWriteZeros
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWritePCCoverageTxt(AVCRawBinFile *psFile, AVCTxt *psTxt,\n
      \                                    CPL_UNUSED int nPrecision,\n                                     AVCRawBinFile
      *psIndexFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWritePCCoverageTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1274,1
    - Dst: _AVCBinWriteTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - psFile
    - psTxt
    argTypes:
    - AVCBinFile*
    - AVCTxt*
    constantsTouched: []
    func_position:
      end: 1283
      start: 1265
    functionDepth: 5
    functionLinenumber: 1265
    functionLinenumberEnd: 1283
    functionName: AVCBinWriteTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteTxt
    - _AVCBinWritePCCoverageTxt
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteTxt(AVCBinFile *psFile, AVCTxt *psTxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1306,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1307,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1310,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - psFile
    - psRxp
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCRxp*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1316
      start: 1303
    functionDepth: 3
    functionLinenumber: 1303
    functionLinenumberEnd: 1316
    functionName: _AVCBinWriteRxp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteRxp(AVCRawBinFile *psFile, AVCRxp *psRxp,\n                           CPL_UNUSED
      int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteRxp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psFile
    - psRxp
    argTypes:
    - AVCBinFile*
    - AVCRxp*
    constantsTouched: []
    func_position:
      end: 1338
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1338
    functionName: AVCBinWriteRxp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteRxp
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteRxp(AVCBinFile *psFile, AVCRxp *psRxp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1362,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1363,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1366,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1368,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1371,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1374,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1375,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1376,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1378,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1380,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1382,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1384,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1385,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1386,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - psFile
    - psTableDef
    argTypes:
    - AVCRawBinFile*
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1358
    functionDepth: 3
    functionLinenumber: 1358
    functionLinenumberEnd: 1392
    functionName: _AVCBinWriteArcDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt16
    - AVCRawBinWritePaddedString
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteZeros
    linkageType: ''
    returnType: int
    signature: int _AVCBinWriteArcDir(AVCRawBinFile *psFile, AVCTableDef *psTableDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1412,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1413,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1416,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1417,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1418,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1419,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1420,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1421,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1422,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1423,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1424,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1425,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1426,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1427,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1428,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1430,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1432,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1434,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1436,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - psFile
    - psField
    argTypes:
    - AVCRawBinFile*
    - AVCFieldInfo*
    constantsTouched: []
    func_position:
      end: 1442
      start: 1408
    functionDepth: 3
    functionLinenumber: 1408
    functionLinenumberEnd: 1442
    functionName: _AVCBinWriteArcNit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt16
    - AVCRawBinWritePaddedString
    - AVCRawBinWriteZeros
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: int
    signature: int _AVCBinWriteArcNit(AVCRawBinFile *psFile, AVCFieldInfo *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1491,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1494,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1494,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1496,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1499,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1500,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1501,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1506,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1510,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1511,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1517,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1518,1
    - Dst: _AVCBinReadNextArcDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1536,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1538,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1539,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1540,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1556,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1557,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1568,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1569,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1572,1
    - Dst: _AVCBinWriteArcDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1574,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1576,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - pszArcDirFile
    - psTableDef
    - psDBCSInfo
    argTypes:
    - char*
    - AVCTableDef*
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 1579
      start: 1463
    functionDepth: 4
    functionLinenumber: 1463
    functionLinenumberEnd: 1579
    functionName: _AVCBinWriteCreateArcDirEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - VSIFEofL
    - VSIStatL
    - VSIFCloseL
    - atoi
    - _AVCBinReadNextArcDir
    - VSIFSeekL
    - VSIFOpenL
    - _AVCBinWriteArcDir
    - AVCRawBinClose
    - VSIFErrorL
    - AVC_COVER_BYTE_ORDER
    - VSIFReadL
    - AVCRawBinOpen
    - strlen
    - EQUALN
    - CPL_IGNORE_RET_VAL_INT
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteCreateArcDirEntry(const char *pszArcDirFile,\n                                         AVCTableDef
      *psTableDef,\n                                         AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteCreateDBFTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1671,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1679,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1680,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1685,1
    - Dst: _AVCDupTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1692,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1699,1
    - Dst: _AVCBinWriteCreateArcDirEntry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1702,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1709,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1710,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1711,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1715,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1720,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1722,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1722,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1730,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1731,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1732,1
    - Dst: _AVCBinWriteArcNit
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1738,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1741,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1747,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1753,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1754,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1767,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1768,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1777,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1777,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1786,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1786,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1793,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1793,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1800,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1803,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1803,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1806,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1812,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1819,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1828,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1829,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1832,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1833,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1834,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1838,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1840,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1841,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1842,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1846,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1848,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1865,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1866,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1867,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1874,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1875,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1876,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1877,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1881,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 98
    argCount: 6
    argNames:
    - pszInfoPath
    - pszCoverName
    - psSrcTableDef
    - eCoverType
    - nPrecision
    - psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCTableDef*
    - AVCCoverType
    - int
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 1884
      start: 1648
    functionDepth: 5
    functionLinenumber: 1648
    functionLinenumberEnd: 1884
    functionName: AVCBinWriteCreateTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 1
    functionsReached:
    - CPLTolower
    - CPL_IGNORE_RET_VAL_INT
    - CPLError
    - _AVCDestroyTableDef
    - CPLStrdup
    - _AVCDupTableDef
    - static_cast<unsigned char>
    - AVC_COVER_BYTE_ORDER
    - strlen
    - CPLMalloc
    - AVCAdjustCaseSensitiveFilename
    - VSIFPrintfL
    - _AVCBinWriteArcNit
    - _AVCBinWriteCreateDBFTable
    - AVCRawBinClose
    - CPLAssert
    - VSIFOpenL
    - snprintf
    - AVCRawBinOpen
    - CPLCalloc
    - CPLFree
    - _AVCBinWriteCreateArcDirEntry
    - VSIFCloseL
    - EQUAL
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *AVCBinWriteCreateTable(const char *pszInfoPath,\n                                   const
      char *pszCoverName,\n                                   AVCTableDef *psSrcTableDef,\n
      \                                  AVCCoverType eCoverType, int nPrecision,\n
      \                                  AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1924,1
    - Dst: _AVCDupTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1931,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1944,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1944,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1945,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1948,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1949,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1950,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1952,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1959,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1961,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1965,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1965,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1968,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1973,1
    - Dst: DBFCreate
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1974,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1978,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1980,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1981,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1982,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:1998,1
    - Dst: DBFAddField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2011,1
    - Dst: DBFAddField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2019,1
    - Dst: DBFAddField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2027,1
    - Dst: DBFAddField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2035,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2042,1
    - Dst: _AVCBinWriteCloseTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2045,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 6
    argNames:
    - pszPath
    - pszCoverName
    - psSrcTableDef
    - eCoverType
    - nPrecision
    - AVCDBCSInfo *psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCTableDef*
    - AVCCoverType
    - int
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2051
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 2051
    functionName: _AVCBinWriteCreateDBFTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 1
    functionsReached:
    - AVCAdjustCaseSensitiveFilename
    - DBFCreate
    - DBFAddField
    - CPLError
    - _AVCDupTableDef
    - static_cast<unsigned char>
    - _AVCBinWriteCloseTable
    - CPLTolower
    - strncpy
    - strcat
    - strlen
    - strcpy
    - EQUALN
    - CPLCalloc
    - CPLFree
    - _AVCDestroyTableDef
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *_AVCBinWriteCreateDBFTable(const char *pszPath,\n                                       const
      char *pszCoverName,\n                                       AVCTableDef *psSrcTableDef,\n
      \                                      AVCCoverType eCoverType, int nPrecision,\n
      \                                      CPL_UNUSED AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2075,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2084,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2091,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2093,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 2096
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2096
    functionName: _AVCBinWriteCloseTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - AVCRawBinClose
    - DBFClose
    - CPLFree
    - _AVCDestroyTableDef
    linkageType: ''
    returnType: void
    signature: void _AVCBinWriteCloseTable(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2123,1
    - Dst: AVCRawBinWritePaddedString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2134,1
    - Dst: AVCRawBinWriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2142,1
    - Dst: AVCRawBinWriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2149,1
    - Dst: AVCRawBinWriteFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2156,1
    - Dst: AVCRawBinWriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2170,1
    - Dst: AVCRawBinWriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2186,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2188,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 6
    argNames:
    - psFile
    - nFields
    - pasDef
    - pasFields
    - nRecordSize
    - pszFname
    argTypes:
    - AVCRawBinFile*
    - int
    - AVCFieldInfo*
    - AVCField*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2192
      start: 2112
    functionDepth: 3
    functionLinenumber: 2112
    functionLinenumberEnd: 2192
    functionName: _AVCBinWriteTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinWriteInt16
    - AVCRawBinWritePaddedString
    - AVCRawBinWriteInt32
    - CPLGetLastErrorNo
    - AVCRawBinWriteZeros
    - AVCRawBinWriteFloat
    - CPLError
    - AVCRawBinWriteDouble
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteTableRec(AVCRawBinFile *psFile, int nFields,\n                                AVCFieldInfo
      *pasDef, AVCField *pasFields,\n                                int nRecordSize,
      const char *pszFname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2221,1
    - Dst: DBFWriteStringAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2231,1
    - Dst: DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2239,1
    - Dst: DBFWriteIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2247,1
    - Dst: DBFWriteIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2255,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2267,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2271,1
    - Dst: DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2278,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2285,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2293,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 6
    argNames:
    - hDBFFile
    - nFields
    - pasDef
    - pasFields
    - nCurDBFRecord
    - pszFname
    argTypes:
    - DBFHandle
    - int
    - AVCFieldInfo*
    - AVCField*
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 2301
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2301
    functionName: _AVCBinWriteDBFTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 0
    functionsReached:
    - AVCPrintRealValue
    - DBFWriteStringAttribute
    - DBFWriteIntegerAttribute
    - CPLGetLastErrorNo
    - DBFWriteAttributeDirectly
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int _AVCBinWriteDBFTableRec(DBFHandle hDBFFile, int nFields,\n                                   AVCFieldInfo
      *pasDef, AVCField *pasFields,\n                                   int *nCurDBFRecord,
      const char *pszFname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinWriteDBFTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2324,1
    - Dst: _AVCBinWriteTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp:2329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - psFile
    - pasFields
    argTypes:
    - AVCBinFile*
    - AVCField*
    constantsTouched: []
    func_position:
      end: 2333
      start: 2317
    functionDepth: 4
    functionLinenumber: 2317
    functionLinenumberEnd: 2333
    functionName: AVCBinWriteTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_binwr.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinWriteTableRec
    - _AVCBinWriteDBFTableRec
    linkageType: ''
    returnType: int
    signature: int AVCBinWriteTableRec(AVCBinFile *psFile, AVCField *pasFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupFeatureDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:34,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:40,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:40,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:42,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:42,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:45,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:45,1
    - Dst: GetInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:48,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:50,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:50,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - poDSIn
    - psSectionIn
    argTypes:
    - OGRAVCDataSource*
    - AVCE00Section*
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: OGRAVCE00Layer::OGRAVCE00Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - GetCoverageName
    - SetupFeatureDefinition
    - GetInfo
    - sprintf
    - GetFieldIndex
    linkageType: ''
    returnType: void
    signature: "void OGRAVCE00Layer::OGRAVCE00Layer(OGRAVCDataSource *poDSIn,\n                               AVCE00Section
      *psSectionIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:71,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:77,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: OGRAVCE00Layer::~OGRAVCE00Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadCloseE00
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRAVCE00Layer::~OGRAVCE00Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:97,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: OGRAVCE00Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadGotoSectionE00
    linkageType: ''
    returnType: void
    signature: void OGRAVCE00Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadOpenE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:125,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:129,1
    - Dst: AVCE00ReadNextObjectE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:145,1
    - Dst: MatchesSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:147,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:160,1
    - Dst: AVCE00ReadNextObjectE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:167,1
    - Dst: TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:180,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:191,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:193,1
    - Dst: OGRAVCE00Layer::FormPolygonGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:202,1
    - Dst: static_cast<AVCPal *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:202,1
    - Dst: OGRAVCE00Layer::AppendTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:208,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 211
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 211
    functionName: OGRAVCE00Layer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - TranslateFeature
    - AVCE00ReadOpenE00
    - AVCE00ReadGotoSectionE00
    - OGRAVCE00Layer::FormPolygonGeometry
    - static_cast<AVCPal *>
    - OGRAVCE00Layer::AppendTableFields
    - AVCE00ReadNextObjectE00
    - MatchesSpatialFilter
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAVCE00Layer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCE00Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:224,1
    - Dst: OGRAVCE00Layer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:226,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:229,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:232,1
    - Dst: OGRAVCE00Layer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:233,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:237,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:238,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:238,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:240,1
    - Dst: OGRAVCE00Layer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 248
    functionName: OGRAVCE00Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - Evaluate
    - FilterGeometry
    - OGRFeature::DestroyFeature
    - OGRAVCE00Layer::ResetReading
    - OGRAVCE00Layer::GetFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAVCE00Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:258,1
    - Dst: OGRAVCLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: OGRAVCE00Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRAVCLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRAVCE00Layer::TestCapability( const char * pszCap )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:280,1
    - Dst: static_cast<OGRAVCE00Layer *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:283,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:283,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:297,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:315,1
    - Dst: OGRAVCE00Layer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:316,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:316,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:321,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:324,1
    - Dst: auto::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:324,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:328,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:328,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:329,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:332,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:332,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:333,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - poFeature
    - psPAL
    argTypes:
    - OGRFeature*
    - AVCPal*
    constantsTouched: []
    func_position:
      end: 337
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 337
    functionName: OGRAVCE00Layer::FormPolygonGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRFeature>
    - OGRGeometryCollection::addGeometryDirectly
    - FromHandle
    - GetLayerCount
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRBuildPolygonFromEdges
    - OGRGeometry*::assignSpatialReference
    - GetSpatialRef
    - static_cast<OGRAVCE00Layer *>
    - ToHandle
    - std::abs
    - auto::GetGeometryRef
    - auto::StealGeometry
    - GetLayer
    - OGRFeature*::SetGeometryDirectly
    - OGRAVCE00Layer::GetFeature
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCE00Layer::FormPolygonGeometry(OGRFeature *poFeature, AVCPal
      *psPAL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:378,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:379,1
    - Dst: AVCE00ReadOpenE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:391,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:396,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:398,1
    - Dst: AVCE00ReadNextObjectE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:403,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:406,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:407,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:408,1
    - Dst: static_cast<OGRAVCE00DataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:413,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:417,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:426,1
    - Dst: AppendTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:431,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - psTblSectionIn
    argTypes:
    - AVCE00Section*
    constantsTouched: []
    func_position:
      end: 439
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 439
    functionName: OGRAVCE00Layer::CheckSetupTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadCloseE00
    - CPLStrdup
    - static_cast<OGRAVCE00DataSource *>
    - AppendTableDefinition
    - AVCE00ReadGotoSectionE00
    - AVCE00ReadOpenE00
    - GetFieldCount
    - strlen
    - GetFieldIndex
    - AVCE00ReadNextObjectE00
    - EQUALN
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCE00Layer::CheckSetupTable(AVCE00Section *psTblSectionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadOpenE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:456,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:461,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:463,1
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:485,1
    - Dst: AVCE00ReadNextObjectE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:493,1
    - Dst: TranslateTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:505,1
    - Dst: static_cast<AVCField *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 508
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 508
    functionName: OGRAVCE00Layer::AppendTableFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 1
    functionsReached:
    - AVCE00ReadCloseE00
    - TranslateTableFields
    - AVCE00ReadOpenE00
    - AVCE00ReadGotoSectionE00
    - static_cast<AVCField *>
    - AVCE00ReadNextObjectE00
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCE00Layer::AppendTableFields(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:513,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 529
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 529
    functionName: OGRAVCE00Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00layer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRAVCE00Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: OGRAVCE00DataSource::OGRAVCE00DataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAVCE00DataSource::OGRAVCE00DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:37,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: OGRAVCE00DataSource::~OGRAVCE00DataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadCloseE00
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRAVCE00DataSource::~OGRAVCE00DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:61,1
    - Dst: AVCE00ReadOpenE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:63,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:65,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:66,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:66,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:73,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:74,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:81,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:91,1
    - Dst: static_cast<OGRAVCE00Layer **>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:96,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:97,1
    - Dst: OGRAVCE00Layer::OGRAVCE00Layer
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:112,1
    - Dst: OGRAVCE00DataSource::CheckAddTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:119,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:125,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:126,1
    - Dst: AVCE00ReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:128,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:137,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:138,1
    - Dst: importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:141,1
    - Dst: AVCE00ReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:146,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - pszNewName
    - bTestOpen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 157
    functionName: OGRAVCE00DataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadOpen
    - static_cast<OGRAVCE00Layer **>
    - CPLErrorReset
    - OGRSpatialReference::OGRSpatialReference
    - CPLStrdup
    - importFromESRI
    - AVCE00ReadClose
    - CPLGetLastErrorMsg
    - OGRAVCE00DataSource::CheckAddTable
    - AVCE00ReadOpenE00
    - CPLGetLastErrorNo
    - SetAxisMappingStrategy
    - CPLPopErrorHandler
    - OGRAVCE00Layer::OGRAVCE00Layer
    - strstr
    - CPLPushErrorHandler
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: int OGRAVCE00DataSource::Open(const char *pszNewName, int bTestOpen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckSetupTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - psTblSection
    argTypes:
    - AVCE00Section*
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: OGRAVCE00DataSource::CheckAddTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 1
    functionsReached:
    - CheckSetupTable
    linkageType: ''
    returnType: int
    signature: int OGRAVCE00DataSource::CheckAddTable(AVCE00Section *psTblSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: OGRAVCE00DataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRAVCE00DataSource::TestCapability(const char * /* pszCap */)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: OGRAVCE00DataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRAVCE00DataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadGotoSectionE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:208,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:215,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:216,1
    - Dst: importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:217,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 231
    functionName: OGRAVCE00DataSource::DSGetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00datasource.cpp
    functionUses: 0
    functionsReached:
    - importFromESRI
    - OGRSpatialReference::OGRSpatialReference
    - AVCE00ReadGotoSectionE00
    - SetAxisMappingStrategy
    - CPLError
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRAVCE00DataSource::DSGetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:43,1
    - Dst: AVCGetDBCSCodePage
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: AVCAllocDBCSInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - AVCGetDBCSCodePage
    - CPLCalloc
    linkageType: ''
    returnType: AVCDBCSInfo
    signature: AVCDBCSInfo *AVCAllocDBCSInfo(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:62,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: AVCFreeDBCSInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void AVCFreeDBCSInfo(AVCDBCSInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getmbcp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: AVCGetDBCSCodePage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - _getmbcp
    linkageType: ''
    returnType: int
    signature: int AVCGetDBCSCodePage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCDetectJapaneseEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - psDBCSInfo
    - pszLine
    argTypes:
    - AVCDBCSInfo*
    - GByte*
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: AVCE00DetectEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 0
    functionsReached:
    - _AVCDetectJapaneseEncoding
    linkageType: ''
    returnType: GBool
    signature: GBool AVCE00DetectEncoding(AVCDBCSInfo *psDBCSInfo, const GByte *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:155,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:169,1
    - Dst: _AVCJapanese2ArcDBCS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:179,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:184,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - psDBCSInfo
    - pszLine
    - nMaxOutputLen
    argTypes:
    - AVCDBCSInfo*
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 189
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 189
    functionName: AVCE00Convert2ArcDBCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - IS_ASCII
    - CPLAssert
    - CPLRealloc
    - _AVCJapanese2ArcDBCS
    linkageType: ''
    returnType: GByte
    signature: "GByte *AVCE00Convert2ArcDBCS(AVCDBCSInfo *psDBCSInfo,\n                                   const
      GByte *pszLine, int nMaxOutputLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:220,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:234,1
    - Dst: _AVCArcDBCS2JapaneseShiftJIS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:243,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - psDBCSInfo
    - pszLine
    - nMaxOutputLen
    argTypes:
    - AVCDBCSInfo*
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 253
    functionName: AVCE00ConvertFromArcDBCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - IS_ASCII
    - _AVCArcDBCS2JapaneseShiftJIS
    - CPLRealloc
    linkageType: ''
    returnType: GByte
    signature: "GByte *AVCE00ConvertFromArcDBCS(AVCDBCSInfo *psDBCSInfo,\n                                      const
      GByte *pszLine, int nMaxOutputLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:291,1
    - Dst: IS_JAP_SHIFTJIS_1
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:293,1
    - Dst: IS_JAP_KANA
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:298,1
    - Dst: IS_JAP_EUC_1
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:304,1
    - Dst: IS_JAP_SHIFTJIS_2
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:313,1
    - Dst: IS_JAP_EUC_2
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:318,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 326
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 326
    functionName: _AVCDetectJapaneseEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - IS_ASCII
    - IS_JAP_EUC_2
    - IS_JAP_SHIFTJIS_1
    - IS_JAP_KANA
    - IS_JAP_EUC_1
    - IS_JAP_SHIFTJIS_2
    linkageType: ''
    returnType: int
    signature: int _AVCDetectJapaneseEncoding(const GByte *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCDetectJapaneseEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:348,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:353,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:357,1
    - Dst: IS_ASCII
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:364,1
    - Dst: IS_JAP_KANA
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:378,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - psDBCSInfo
    - pszLine
    - nMaxOutputLen
    argTypes:
    - AVCDBCSInfo*
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 431
    functionName: _AVCJapanese2ArcDBCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - IS_ASCII
    - printf
    - _AVCDetectJapaneseEncoding
    - IS_JAP_KANA
    linkageType: ''
    returnType: GByte
    signature: "GByte *_AVCJapanese2ArcDBCS(AVCDBCSInfo *psDBCSInfo,\n                                         const
      GByte *pszLine,\n                                         int nMaxOutputLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp:453,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - psDBCSInfo
    - pszLine
    - nMaxOutputLen
    argTypes:
    - AVCDBCSInfo*
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 497
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 497
    functionName: _AVCArcDBCS2JapaneseShiftJIS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_mbyte.cpp
    functionUses: 1
    functionsReached:
    - IS_ASCII
    linkageType: ''
    returnType: GByte
    signature: "GByte *_AVCArcDBCS2JapaneseShiftJIS(AVCDBCSInfo *psDBCSInfo,\n                                                 const
      GByte *pszLine,\n                                                 int nMaxOutputLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:21,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:27,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:28,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:31,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:32,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: OGRAVCE00DriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH_CI
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRAVCE00DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCE00DriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:45,1
    - Dst: OGRAVCE00DataSource::OGRAVCE00DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:50,1
    - Dst: OGRAVCE00DataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:52,1
    - Dst: OGRAVCE00DataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: OGRAVCE00DriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp
    functionUses: 0
    functionsReached:
    - OGRAVCE00DriverIdentify
    - OGRAVCE00DataSource::OGRAVCE00DataSource
    - OGRAVCE00DataSource*::Open
    - OGRAVCE00DataSource*::GetLayerCount
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRAVCE00DriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:69,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:72,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:81,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: RegisterOGRAVCE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravce00driver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRAVCE00()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinReadOpenDBFTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:247,1
    - Dst: _AVCBinReadOpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:249,1
    - Dst: _AVCBinReadOpenPrj
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:259,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:265,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:271,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:271,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:271,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:272,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:272,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:272,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:275,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:277,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:285,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:286,1
    - Dst: AVCBinReadRewind
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:293,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:295,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:296,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:297,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:308,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:312,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:316,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:320,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:324,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:328,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:336,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:339,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:340,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:341,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 5
    argNames:
    - pszPath
    - pszName
    - eCoverType
    - eFileType
    - psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCCoverType
    - AVCFileType
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 346
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 346
    functionName: AVCBinReadOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - _AVCBinReadOpenDBFTable
    - AVCAdjustCaseSensitiveFilename
    - _AVCBinReadOpenPrj
    - _AVCBinReadOpenTable
    - AVCRawBinClose
    - AVCBinReadRewind
    - snprintf
    - strlen
    - AVC_COVER_BYTE_ORDER
    - AVCRawBinOpen
    - CPLError
    - CPLMalloc
    - CPLFree
    - CPLCalloc
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *AVCBinReadOpen(const char *pszPath, const char *pszName,\n
      \                          AVCCoverType eCoverType, AVCFileType eFileType,\n
      \                          AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:356,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:359,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:363,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:366,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:371,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:372,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:377,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:378,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:383,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:384,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:388,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:392,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:396,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:402,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:403,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:405,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:409,1
    - Dst: _AVCDestroyTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:413,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:414,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:418,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:422,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 423
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 423
    functionName: AVCBinReadClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - DBFClose
    - CSLDestroy
    - AVCRawBinClose
    - CPLError
    - _AVCDestroyTableFields
    - CPLFree
    - _AVCDestroyTableDef
    linkageType: ''
    returnType: void
    signature: void AVCBinReadClose(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:449,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:451,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:453,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:455,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:458,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:459,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:462,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:463,1
    - Dst: AVCBinHeader*::nLength
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:464,1
    - Dst: AVCRawBinSetFileDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:475,1
    - Dst: AVCRawBinSetFileDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:477,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - psFile
    - psHeader
    - eCoverType
    argTypes:
    - AVCRawBinFile*
    - AVCBinHeader*
    - AVCCoverType
    constantsTouched: []
    func_position:
      end: 484
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 484
    functionName: _AVCBinReadHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCBinHeader*::nLength
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinReadInt32
    - AVCRawBinSetFileDataSize
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadHeader(AVCRawBinFile *psFile, AVCBinHeader *psHeader,\n
      \                            AVCCoverType eCoverType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:512,1
    - Dst: _AVCBinReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:519,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:544,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:581,1
    - Dst: _AVCBinReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:589,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:599,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 605
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 605
    functionName: AVCBinReadRewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - AVCRawBinFSeek
    - AVCRawBinReadInt32
    - _AVCBinReadHeader
    linkageType: ''
    returnType: int
    signature: int AVCBinReadRewind(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:632,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:635,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:636,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:643,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:646,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:674,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:691,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:693,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:698,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:699,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:702,1
    - Dst: nObjectOffset < INT_MIN / 2 || nObjectOffset >
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:703,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:713,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:716,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:722,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:723,1
    - Dst: AVCBinReadNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:729,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 50
    argCount: 2
    argNames:
    - psFile
    - iObjIndex
    argTypes:
    - AVCBinFile*
    - int
    constantsTouched: []
    func_position:
      end: 730
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 730
    functionName: AVCBinReadObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - STARTS_WITH_CI
    - static_cast<int>
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - nObjectOffset < INT_MIN / 2 || nObjectOffset >
    - AVCRawBinReadInt32
    - strlen
    - AVCRawBinOpen
    - AVCBinReadNextObject
    linkageType: ''
    returnType: void
    signature: void *AVCBinReadObject(AVCBinFile *psFile, int iObjIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCBinReadNextArc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:753,1
    - Dst: AVCBinReadNextPal
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:757,1
    - Dst: AVCBinReadNextCnt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:760,1
    - Dst: AVCBinReadNextLab
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:763,1
    - Dst: AVCBinReadNextTol
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:766,1
    - Dst: AVCBinReadNextTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:770,1
    - Dst: AVCBinReadNextRxp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:773,1
    - Dst: AVCBinReadNextTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:776,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:779,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 784
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 784
    functionName: AVCBinReadNextObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - AVCBinReadNextTableRec
    - AVCBinReadNextCnt
    - AVCBinReadNextRxp
    - AVCBinReadNextPal
    - AVCBinReadNextTol
    - AVCBinReadNextLab
    - CPLError
    - AVCBinReadNextTxt
    - AVCBinReadNextArc
    linkageType: ''
    returnType: void
    signature: void *AVCBinReadNextObject(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:800,1
    - Dst: _AVCBinReadNextTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:801,1
    - Dst: _AVCBinReadNextDBFTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:812,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 822
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 822
    functionName: AVCBinReadNextTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextTableRec
    - _AVCBinReadNextDBFTableRec
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCField
    signature: AVCField *AVCBinReadNextTableRec(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:848,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:849,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:852,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:857,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:858,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:859,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:860,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:861,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:862,1
    - Dst: AVCRawBinIsFileGreaterThan
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:866,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:868,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:881,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:894,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:895,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:904,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:905,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:917,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - psFile
    - psArc
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCArc*
    - int
    constantsTouched: []
    func_position:
      end: 920
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 920
    functionName: _AVCBinReadNextArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinIsFileGreaterThan
    - AVCRawBinReadInt32
    - cpl::fits_on<int>
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextArc(AVCRawBinFile *psFile, AVCArc *psArc,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:933,1
    - Dst: _AVCBinReadNextArc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 941
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 941
    functionName: AVCBinReadNextArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextArc
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCArc
    signature: AVCArc *AVCBinReadNextArc(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:967,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:968,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:974,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:979,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:980,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:981,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:982,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:986,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:987,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:988,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:989,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:992,1
    - Dst: AVCRawBinIsFileGreaterThan
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:996,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1006,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1017,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1018,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1019,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1030,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - psFile
    - psPal
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCPal*
    - int
    constantsTouched: []
    func_position:
      end: 1033
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 1033
    functionName: _AVCBinReadNextPal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinIsFileGreaterThan
    - AVCRawBinReadInt32
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextPal(AVCRawBinFile *psFile, AVCPal *psPal,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1047,1
    - Dst: _AVCBinReadNextPal
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1044
    functionDepth: 4
    functionLinenumber: 1044
    functionLinenumberEnd: 1055
    functionName: AVCBinReadNextPal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextPal
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCPal
    signature: AVCPal *AVCBinReadNextPal(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1077,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1078,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1084,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1089,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1090,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1094,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1095,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1098,1
    - Dst: AVCRawBinIsFileGreaterThan
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1102,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1112,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1123,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1134,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - psFile
    - psCnt
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCCnt*
    - int
    constantsTouched: []
    func_position:
      end: 1137
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1137
    functionName: _AVCBinReadNextCnt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinIsFileGreaterThan
    - AVCRawBinReadInt32
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextCnt(AVCRawBinFile *psFile, AVCCnt *psCnt,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1150,1
    - Dst: _AVCBinReadNextCnt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1158
    functionName: AVCBinReadNextCnt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextCnt
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCCnt
    signature: AVCCnt *AVCBinReadNextCnt(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1178,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1179,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1181,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1186,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1187,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1188,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1189,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1190,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1191,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1195,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1196,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1197,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1198,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1199,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - psFile
    - psLab
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCLab*
    - int
    constantsTouched: []
    func_position:
      end: 1204
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1204
    functionName: _AVCBinReadNextLab
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinReadInt32
    - AVCRawBinEOF
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextLab(AVCRawBinFile *psFile, AVCLab *psLab,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1217,1
    - Dst: _AVCBinReadNextLab
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1225
      start: 1215
    functionDepth: 4
    functionLinenumber: 1215
    functionLinenumberEnd: 1225
    functionName: AVCBinReadNextLab
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextLab
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCLab
    signature: AVCLab *AVCBinReadNextLab(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1245,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1246,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1248,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1253,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - psFile
    - psTol
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCTol*
    - int
    constantsTouched: []
    func_position:
      end: 1261
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1261
    functionName: _AVCBinReadNextTol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinReadInt32
    - AVCRawBinEOF
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextTol(AVCRawBinFile *psFile, AVCTol *psTol,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1274,1
    - Dst: _AVCBinReadNextTol
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1282
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1282
    functionName: AVCBinReadNextTol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextTol
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCTol
    signature: AVCTol *AVCBinReadNextTol(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1307,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1307,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1307,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1308,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1308,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1308,1
    - Dst: CSLLoad2
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1311,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1313,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - pszPath
    - pszName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1334
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1334
    functionName: _AVCBinReadOpenPrj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - CSLLoad2
    - snprintf
    - strlen
    - CPLMalloc
    - CPLFree
    - CPLCalloc
    linkageType: ''
    returnType: AVCBinFile
    signature: AVCBinFile *_AVCBinReadOpenPrj(const char *pszPath, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1356
    functionName: AVCBinReadNextPrj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **AVCBinReadNextPrj(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1379,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1379,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1381,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1382,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1385,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1390,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1391,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1393,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1394,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1395,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1396,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1397,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1400,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1404,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1408,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1413,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1414,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1415,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1419,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1420,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1421,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1426,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1428,1
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1435,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1443,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1444,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1446,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1446,1
    - Dst: AVCRawBinIsFileGreaterThan
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1448,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1450,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1457,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1464,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1465,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1474,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1475,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1492,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 3
    argNames:
    - psFile
    - psTxt
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCTxt*
    - int
    constantsTouched: []
    func_position:
      end: 1495
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1495
    functionName: _AVCBinReadNextTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - ABS
    - AVCRawBinReadString
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinIsFileGreaterThan
    - CPLRealloc
    - AVCRawBinReadInt32
    - strlen
    - cpl::fits_on<int>
    - AVCRawBinReadInt16
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextTxt(AVCRawBinFile *psFile, AVCTxt *psTxt,\n                              int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1515,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1515,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1517,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1518,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1521,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1527,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1529,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1531,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1544,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1546,1
    - Dst: AVCRawBinIsFileGreaterThan
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1550,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1552,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1559,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1566,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1567,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1573,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1574,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1587,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1589,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1593,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1597,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1599,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1600,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1601,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1621,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1624,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1626,1
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1630,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - psFile
    - psTxt
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCTxt*
    - int
    constantsTouched: []
    func_position:
      end: 1645
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1645
    functionName: _AVCBinReadNextPCCoverageTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - ABS
    - MIN
    - AVCRawBinReadString
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinIsFileGreaterThan
    - CPLRealloc
    - AVCRawBinReadInt32
    - strlen
    - cpl::fits_on<int>
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextPCCoverageTxt(AVCRawBinFile *psFile, AVCTxt *psTxt,\n
      \                                       int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1661,1
    - Dst: _AVCBinReadNextPCCoverageTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1678,1
    - Dst: _AVCBinReadNextTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1686,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1696
      start: 1656
    functionDepth: 4
    functionLinenumber: 1656
    functionLinenumberEnd: 1696
    functionName: AVCBinReadNextTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextPCCoverageTxt
    - AVCRawBinEOF
    - _AVCBinReadNextTxt
    linkageType: ''
    returnType: AVCTxt
    signature: AVCTxt *AVCBinReadNextTxt(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1716,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1717,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - psFile
    - psRxp
    - nPrecision
    argTypes:
    - AVCRawBinFile*
    - AVCRxp*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1722
      start: 1712
    functionDepth: 3
    functionLinenumber: 1712
    functionLinenumberEnd: 1722
    functionName: _AVCBinReadNextRxp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinReadInt32
    - AVCRawBinEOF
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextRxp(AVCRawBinFile *psFile, AVCRxp *psRxp,\n                              CPL_UNUSED
      int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1735,1
    - Dst: _AVCBinReadNextRxp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - psFile
    argTypes:
    - AVCBinFile*
    constantsTouched: []
    func_position:
      end: 1743
      start: 1733
    functionDepth: 4
    functionLinenumber: 1733
    functionLinenumberEnd: 1743
    functionName: AVCBinReadNextRxp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 2
    functionsReached:
    - _AVCBinReadNextRxp
    - AVCRawBinEOF
    linkageType: ''
    returnType: AVCRxp
    signature: AVCRxp *AVCBinReadNextRxp(AVCBinFile *psFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1771,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1774,1
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1779,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1784,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1785,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1787,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1789,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1790,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1792,1
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1794,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - psFile
    - psArcDir
    argTypes:
    - AVCRawBinFile*
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 1800
      start: 1765
    functionDepth: 3
    functionLinenumber: 1765
    functionLinenumberEnd: 1800
    functionName: _AVCBinReadNextArcDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - AVCRawBinReadString
    - AVCRawBinReadBytes
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinReadInt32
    - AVCRawBinReadInt16
    linkageType: ''
    returnType: int
    signature: int _AVCBinReadNextArcDir(AVCRawBinFile *psFile, AVCTableDef *psArcDir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1817,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1820,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1823,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1826,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1827,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1828,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1829,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1830,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1831,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1832,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1833,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1834,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1835,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1836,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1837,1
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1839,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1843,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1845,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - psFile
    - psField
    argTypes:
    - AVCRawBinFile*
    - AVCFieldInfo*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1815
    functionDepth: 3
    functionLinenumber: 1815
    functionLinenumberEnd: 1850
    functionName: _AVCBinReadNextArcNit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCRawBinEOF
    - AVCRawBinReadInt16
    - AVCRawBinReadString
    - AVCRawBinFSeek
    linkageType: ''
    returnType: int
    signature: int _AVCBinReadNextArcNit(AVCRawBinFile *psFile, AVCFieldInfo *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1879,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1879,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1880,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1885,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1890,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1894,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1896,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1904,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1906,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1908,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1913,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - pszInfoPath
    - pszBasename
    - pszDatOrNit
    - eCoverType
    - pszRetFname
    - nRetFnameLen
    argTypes:
    - char*
    - char*
    - char*
    - AVCCoverType
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1916
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1916
    functionName: _AVCBinReadGetInfoFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - AVCAdjustCaseSensitiveFilename
    - VSIStatL
    - snprintf
    - strlen
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: GBool
    signature: "GBool _AVCBinReadGetInfoFilename(const char *pszInfoPath,\n                                        const
      char *pszBasename,\n                                        const char *pszDatOrNit,\n
      \                                       AVCCoverType eCoverType,\n                                        char
      *pszRetFname, size_t nRetFnameLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCBinReadGetInfoFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1932,1
    - Dst: _AVCBinReadGetInfoFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - pszInfoPath
    - pszBasename
    - eCoverType
    argTypes:
    - char*
    - char*
    - AVCCoverType
    constantsTouched: []
    func_position:
      end: 1936
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1936
    functionName: _AVCBinReadInfoFileExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 0
    functionsReached:
    - _AVCBinReadGetInfoFilename
    linkageType: ''
    returnType: GBool
    signature: "GBool _AVCBinReadInfoFileExists(const char *pszInfoPath,\n                                       const
      char *pszBasename,\n                                       AVCCoverType eCoverType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1985,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1986,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1993,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1993,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1995,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1995,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1997,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1997,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:1999,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2001,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2001,1
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2006,1
    - Dst: _AVCBinReadNextArcDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2007,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2012,1
    - Dst: _AVCBinReadInfoFileExists
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2013,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2016,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2020,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2023,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2026,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1957
    functionDepth: 4
    functionLinenumber: 1957
    functionLinenumberEnd: 2029
    functionName: AVCBinReadListTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - AVCAdjustCaseSensitiveFilename
    - CPLFree
    - _AVCBinReadNextArcDir
    - CSLAddString
    - AVCRawBinEOF
    - AVCRawBinClose
    - snprintf
    - strlen
    - AVC_COVER_BYTE_ORDER
    - AVCRawBinOpen
    - EQUALN
    - CPLMalloc
    - _AVCBinReadInfoFileExists
    linkageType: ''
    returnType: char
    signature: "char **AVCBinReadListTables(const char *pszInfoPath, const char *pszCoverName,\n
      \                           char ***ppapszArcDatFiles, AVCCoverType eCoverType,\n
      \                           AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2060,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2066,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2067,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2073,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2075,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2077,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2079,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2079,1
    - Dst: _AVCBinReadNextArcDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2085,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2088,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2089,1
    - Dst: _AVCBinReadInfoFileExists
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2090,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2096,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2103,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2111,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2121,1
    - Dst: _AVCBinReadGetInfoFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2127,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2129,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2131,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2131,1
    - Dst: AVCRawBinReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2138,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2141,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2142,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2153,1
    - Dst: _AVCBinReadGetInfoFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2163,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2165,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2166,1
    - Dst: _AVCBinReadGetInfoFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2172,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2174,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2176,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2176,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2183,1
    - Dst: _AVCBinReadNextArcNit
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2197,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2201,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2202,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2204,1
    - Dst: AVCRawBinClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2219,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2223,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2225,1
    - Dst: AVCFileExists
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2235,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2239,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2241,1
    - Dst: AVCRawBinOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2243,1
    - Dst: AVC_COVER_BYTE_ORDER
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2250,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2252,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2266,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2281,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2288,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2303,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2313,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 104
    argCount: 4
    argNames:
    - pszInfoPath
    - pszTableName
    - eCoverType
    - psDBCSInfo
    argTypes:
    - char*
    - char*
    - AVCCoverType
    - AVCDBCSInfo*
    constantsTouched: []
    func_position:
      end: 2318
      start: 2046
    functionDepth: 4
    functionLinenumber: 2046
    functionLinenumberEnd: 2318
    functionName: _AVCBinReadOpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - AVCFileExists
    - CPLError
    - EQUALN
    - _AVCBinReadNextArcDir
    - isspace
    - AVC_COVER_BYTE_ORDER
    - strlen
    - CPLMalloc
    - AVCAdjustCaseSensitiveFilename
    - AVCRawBinReadBytes
    - AVCRawBinClose
    - _AVCBinReadGetInfoFilename
    - snprintf
    - AVCRawBinOpen
    - CPLCalloc
    - CPLFree
    - _AVCBinReadInfoFileExists
    - _AVCBinReadNextArcNit
    - VSIStatL
    - EQUAL
    - memset
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *_AVCBinReadOpenTable(const char *pszInfoPath,\n                                 const
      char *pszTableName,\n                                 AVCCoverType eCoverType,\n
      \                                AVCDBCSInfo *psDBCSInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCRawBinEOF
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2346,1
    - Dst: AVCRawBinReadString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2357,1
    - Dst: AVCRawBinReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2365,1
    - Dst: AVCRawBinReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2372,1
    - Dst: AVCRawBinReadFloat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2379,1
    - Dst: AVCRawBinReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2393,1
    - Dst: AVCRawBinFSeek
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2408,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 5
    argNames:
    - psFile
    - nFields
    - pasDef
    - pasFields
    - nRecordSize
    argTypes:
    - AVCRawBinFile*
    - int
    - AVCFieldInfo*
    - AVCField*
    - int
    constantsTouched: []
    func_position:
      end: 2411
      start: 2335
    functionDepth: 3
    functionLinenumber: 2335
    functionLinenumberEnd: 2411
    functionName: _AVCBinReadNextTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - AVCRawBinReadString
    - AVCRawBinReadDouble
    - AVCRawBinReadFloat
    - AVCRawBinFSeek
    - AVCRawBinEOF
    - AVCRawBinReadInt32
    - CPLError
    - AVCRawBinReadInt16
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextTableRec(AVCRawBinFile *psFile, int nFields,\n
      \                                  AVCFieldInfo *pasDef, AVCField *pasFields,\n
      \                                  int nRecordSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2446,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2448,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2456,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2462,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2483,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2486,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2489,1
    - Dst: DBFGetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2494,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2497,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2503,1
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2518,1
    - Dst: _AVCBinReadRepairDBFFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2552,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2615,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 2
    argNames:
    - pszDBFFilename
    - pszArcInfoTableName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2630
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2630
    functionName: _AVCBinReadOpenDBFTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - DBFOpen
    - CPLStrdup
    - DBFGetRecordCount
    - snprintf
    - DBFGetFieldCount
    - strcpy
    - DBFGetFieldInfo
    - CPLError
    - _AVCBinReadRepairDBFFieldName
    - CPLCalloc
    linkageType: ''
    returnType: AVCBinFile
    signature: "AVCBinFile *_AVCBinReadOpenDBFTable(const char *pszDBFFilename,\n
      \                                   const char *pszArcInfoTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFGetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2665,1
    - Dst: DBFReadStringAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2682,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2683,1
    - Dst: DBFReadIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2692,1
    - Dst: DBFReadIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2700,1
    - Dst: DBFReadDoubleAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2708,1
    - Dst: DBFReadDoubleAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2723,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 5
    argNames:
    - hDBFFile
    - piRecordIndex
    - nFields
    - pasDef
    - pasFields
    argTypes:
    - DBFHandle
    - int*
    - int
    - AVCFieldInfo*
    - AVCField*
    constantsTouched: []
    func_position:
      end: 2731
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2731
    functionName: _AVCBinReadNextDBFTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - DBFReadDoubleAttribute
    - DBFReadIntegerAttribute
    - strncpy
    - DBFGetRecordCount
    - CPLError
    - DBFReadStringAttribute
    linkageType: ''
    returnType: int
    signature: "int _AVCBinReadNextDBFTableRec(DBFHandle hDBFFile, int *piRecordIndex,\n
      \                                     int nFields, AVCFieldInfo *pasDef,\n                                      AVCField
      *pasFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2745,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2754,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp:2756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2758
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2758
    functionName: _AVCBinReadRepairDBFFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_bin.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - strrchr
    linkageType: ''
    returnType: void
    signature: void _AVCBinReadRepairDBFFieldName(char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: AVCE00ParseInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AVCE00ParseInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:92,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - nCoverPrecision
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: AVCE00GenInfoAlloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - CPLCalloc
    - CPLMalloc
    linkageType: ''
    returnType: AVCE00GenInfo
    signature: AVCE00GenInfo *AVCE00GenInfoAlloc(int nCoverPrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:114,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00GenInfo*
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: AVCE00GenInfoFree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void AVCE00GenInfoFree(AVCE00GenInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00GenInfo*
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: AVCE00GenReset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AVCE00GenReset(AVCE00GenInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00GenReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:144,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:156,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:189,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:194,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:196,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - psInfo
    - eType
    - pszClassName
    argTypes:
    - AVCE00GenInfo*
    - AVCFileType
    - char*
    constantsTouched: []
    func_position:
      end: 200
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 200
    functionName: AVCE00GenStartSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - CPLToupper
    - AVCE00GenReset
    - snprintf
    - CPLError
    linkageType: ''
    returnType: char
    signature: "char *AVCE00GenStartSection(AVCE00GenInfo *psInfo, AVCFileType eType,\n
      \                                 const char *pszClassName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00GenReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:222,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:229,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:236,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:240,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:245,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:249,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:253,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:264,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 3
    argNames:
    - psInfo
    - eType
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCFileType
    - GBool
    constantsTouched: []
    func_position:
      end: 279
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 279
    functionName: AVCE00GenEndSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - snprintf
    - AVCE00GenReset
    linkageType: ''
    returnType: char
    signature: "char *AVCE00GenEndSection(AVCE00GenInfo *psInfo, AVCFileType eType,\n
      \                               GBool bCont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00GenArc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:302,1
    - Dst: AVCE00GenPal
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:306,1
    - Dst: AVCE00GenCnt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:309,1
    - Dst: AVCE00GenLab
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:312,1
    - Dst: AVCE00GenTol
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:315,1
    - Dst: AVCE00GenTxt
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:318,1
    - Dst: AVCE00GenTx6
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:321,1
    - Dst: AVCE00GenPrj
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:324,1
    - Dst: AVCE00GenRxp
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:330,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - psInfo
    - eType
    - psObj
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCFileType
    - void*
    - GBool
    constantsTouched: []
    func_position:
      end: 335
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 335
    functionName: AVCE00GenObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - AVCE00GenRxp
    - AVCE00GenCnt
    - AVCE00GenArc
    - AVCE00GenPal
    - AVCE00GenTol
    - AVCE00GenTx6
    - AVCE00GenLab
    - CPLError
    - AVCE00GenPrj
    - AVCE00GenTxt
    linkageType: ''
    returnType: char
    signature: "char *AVCE00GenObject(AVCE00GenInfo *psInfo, AVCFileType eType,\n
      \                           void *psObj, GBool bCont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:368,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:384,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:387,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:396,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:399,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:408,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - psInfo
    - psArc
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCArc*
    - GBool
    constantsTouched: []
    func_position:
      end: 426
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 426
    functionName: AVCE00GenArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenArc(AVCE00GenInfo *psInfo, AVCArc *psArc, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:455,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:457,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:459,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:470,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:472,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:482,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:484,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:499,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:515,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - psInfo
    - psPal
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCPal*
    - GBool
    constantsTouched: []
    func_position:
      end: 538
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 538
    functionName: AVCE00GenPal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenPal(AVCE00GenInfo *psInfo, AVCPal *psPal, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:568,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:570,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:572,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:582,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:587,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:587,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - psInfo
    - psCnt
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCCnt*
    - GBool
    constantsTouched: []
    func_position:
      end: 602
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 602
    functionName: AVCE00GenCnt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - strlen
    - snprintf
    - MIN
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenCnt(AVCE00GenInfo *psInfo, AVCCnt *psCnt, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:635,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:638,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:640,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:652,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:654,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:656,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:658,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:666,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:668,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:676,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - psInfo
    - psLab
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCLab*
    - GBool
    constantsTouched: []
    func_position:
      end: 692
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 692
    functionName: AVCE00GenLab
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenLab(AVCE00GenInfo *psInfo, AVCLab *psLab, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:721,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - psInfo
    - psTol
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCTol*
    - GBool
    constantsTouched: []
    func_position:
      end: 727
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 727
    functionName: AVCE00GenTol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenTol(AVCE00GenInfo *psInfo, AVCTol *psTol, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:754,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:771,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - psInfo
    - papszPrj
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - char**
    - GBool
    constantsTouched: []
    func_position:
      end: 793
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 793
    functionName: AVCE00GenPrj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - CSLCount
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenPrj(AVCE00GenInfo *psInfo, char **papszPrj, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:834,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:860,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:887,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:901,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:916,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:917,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - psInfo
    - psTxt
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCTxt*
    - GBool
    constantsTouched: []
    func_position:
      end: 932
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 932
    functionName: AVCE00GenTxt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - AVCPrintRealValue
    - strlen
    - snprintf
    - ABS
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenTxt(AVCE00GenInfo *psInfo, AVCTxt *psTxt, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:965,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:970,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:985,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:992,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:999,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1006,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1012,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1014,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1027,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1037,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1039,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1041,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1053,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1056,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1073,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1074,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 3
    argNames:
    - psInfo
    - psTxt
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCTxt*
    - GBool
    constantsTouched: []
    func_position:
      end: 1089
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 1089
    functionName: AVCE00GenTx6
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - ABS
    - AVCPrintRealValue
    - assert
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenTx6(AVCE00GenInfo *psInfo, AVCTxt *psTxt, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - psInfo
    - psRxp
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCRxp*
    - GBool
    constantsTouched: []
    func_position:
      end: 1122
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1122
    functionName: AVCE00GenRxp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *AVCE00GenRxp(AVCE00GenInfo *psInfo, AVCRxp *psRxp, GBool bCont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1171,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - psInfo
    - psDef
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - AVCTableDef*
    - GBool
    constantsTouched: []
    func_position:
      end: 1240
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1240
    functionName: AVCE00GenTableHdr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *AVCE00GenTableHdr(AVCE00GenInfo *psInfo, AVCTableDef *psDef,\n
      \                             GBool bCont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _AVCE00ComputeRecSize
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1268,1
    - Dst: _AVCE00ComputeRecSize
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1270,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1283,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1304,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1318,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1321,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1332,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1335,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1340,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1346,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1357,1
    - Dst: AVCPrintRealValue
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp:1379,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 5
    argNames:
    - psInfo
    - numFields
    - pasDef
    - pasFields
    - bCont
    argTypes:
    - AVCE00GenInfo*
    - int
    - AVCFieldInfo*
    - AVCField*
    - GBool
    constantsTouched: []
    func_position:
      end: 1399
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1399
    functionName: AVCE00GenTableRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00gen.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - _AVCE00ComputeRecSize
    - AVCPrintRealValue
    - CPLRealloc
    - snprintf
    - CPLError
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *AVCE00GenTableRec(AVCE00GenInfo *psInfo, int numFields,\n                              AVCFieldInfo
      *pasDef, AVCField *pasFields,\n                              GBool bCont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:96,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 3
    argNames:
    - numFields
    - pasDef
    - bMapType40ToDouble
    argTypes:
    - int
    - AVCFieldInfo*
    - GBool
    constantsTouched: []
    func_position:
      end: 105
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 105
    functionName: _AVCE00ComputeRecSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int _AVCE00ComputeRecSize(int numFields, AVCFieldInfo *pasDef,\n                          GBool
      bMapType40ToDouble)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:124,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - psTableDef
    - pasFields
    argTypes:
    - AVCTableDef*
    - AVCField*
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: _AVCDestroyTableFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void _AVCDestroyTableFields(AVCTableDef *psTableDef, AVCField *pasFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:141,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psTableDef
    argTypes:
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: _AVCDestroyTableDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 4
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void _AVCDestroyTableDef(AVCTableDef *psTableDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:158,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:160,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:163,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - psSrcDef
    argTypes:
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: _AVCDupTableDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 2
    functionsReached:
    - CPLMalloc
    - memcpy
    linkageType: ''
    returnType: AVCTableDef
    signature: AVCTableDef *_AVCDupTableDef(AVCTableDef *psSrcDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:186,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:186,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:186,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:187,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:187,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:187,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:190,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:192,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:195,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pszPath
    - pszName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: AVCFileExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 1
    functionsReached:
    - AVCAdjustCaseSensitiveFilename
    - VSIFCloseL
    - VSIFOpenL
    - snprintf
    - strlen
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: GBool
    signature: GBool AVCFileExists(const char *pszPath, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:228,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:233,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:234,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:254,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:256,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:257,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:270,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:272,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:273,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:281,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:304,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:308,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:322,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:347,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:352,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:353,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:355,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:361,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:364,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:373,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:379,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:380,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 71
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 383
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 383
    functionName: AVCAdjustCaseSensitiveFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 7
    functionsReached:
    - CPLStrdup
    - VSIStatL
    - CSLDestroy
    - strncpy
    - EQUAL
    - CPLAssert
    - strlen
    - strcpy
    - CPLFree
    - memmove
    linkageType: ''
    returnType: char
    signature: char *AVCAdjustCaseSensitiveFilename(char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:411,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:413,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:423,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:424,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:441,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:446,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:451,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:456,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:465,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:474,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp:474,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 5
    argNames:
    - pszBuf
    - nBufLen
    - nPrecision
    - eType
    - dValue
    argTypes:
    - char*
    - size_t
    - int
    - AVCFileType
    - double
    constantsTouched: []
    func_position:
      end: 477
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 477
    functionName: AVCPrintRealValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_misc.cpp
    functionUses: 9
    functionsReached:
    - CPLAssert
    - CPLsnprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int AVCPrintRealValue(char *pszBuf, size_t nBufLen, int nPrecision,\n
      \                     AVCFileType eType, double dValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:96,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:97,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pszStr
    - numChars
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: AVCE00Str2Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: int AVCE00Str2Int(const char *pszStr, int numChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ParseInfo::AVCE00ParseInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:129,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: AVCE00ParseInfoAlloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - AVCE00ParseInfo::AVCE00ParseInfo
    - CPLMalloc
    linkageType: ''
    returnType: AVCE00ParseInfo
    signature: AVCE00ParseInfo *AVCE00ParseInfoAlloc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:159,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:160,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:165,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:166,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:171,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:172,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:177,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:182,1
    - Dst: AVCE00ParseInfo*::aosPrj::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:187,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:191,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:192,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:193,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:198,1
    - Dst: _AVCDestroyTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:203,1
    - Dst: _AVCDestroyTableDef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:211,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ParseInfo*
    constantsTouched: []
    func_position:
      end: 216
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 216
    functionName: _AVCE00ParseDestroyCurObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ParseInfo*::aosPrj::Clear
    - CPLError
    - _AVCDestroyTableFields
    - CPLFree
    - _AVCDestroyTableDef
    linkageType: ''
    returnType: void
    signature: void _AVCE00ParseDestroyCurObject(AVCE00ParseInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:229,1
    - Dst: _AVCE00ParseDestroyCurObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ParseInfo*
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: AVCE00ParseInfoFree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - _AVCE00ParseDestroyCurObject
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void AVCE00ParseInfoFree(AVCE00ParseInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ParseInfo*
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: AVCE00ParseReset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AVCE00ParseReset(AVCE00ParseInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:280,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:282,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:283,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:285,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:287,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:301,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:303,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:307,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 314
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 314
    functionName: AVCE00ParseSuperSectionHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - STARTS_WITH_CI
    - atoi
    linkageType: ''
    returnType: AVCFileType
    signature: "AVCFileType AVCE00ParseSuperSectionHeader(AVCE00ParseInfo *psInfo,\n
      \                                         const char *pszLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:329,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: AVCE00ParseSuperSectionEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: GBool
    signature: GBool AVCE00ParseSuperSectionEnd(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:370,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:372,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:374,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:376,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:378,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:380,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:382,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:393,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:399,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:420,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:428,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:428,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:429,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:430,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:432,1
    - Dst: _AVCE00ParseDestroyCurObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:453,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:457,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:461,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:465,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:469,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:473,1
    - Dst: AVCE00ParseInfo*::aosPrj::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:477,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:481,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:485,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:495,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:511,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:512,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 518
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 518
    functionName: AVCE00ParseSectionHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - _AVCE00ParseDestroyCurObject
    - STARTS_WITH_CI
    - CPLStrdup
    - atoi
    - isspace
    - strlen
    - AVCE00ParseInfo*::aosPrj::Clear
    - CPLError
    - CPLCalloc
    - CPLFree
    linkageType: ''
    returnType: AVCFileType
    signature: "AVCFileType AVCE00ParseSectionHeader(AVCE00ParseInfo *psInfo,\n                                     const
      char *pszLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:541,1
    - Dst: _AVCE00ParseDestroyCurObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:547,1
    - Dst: AVCE00ParseReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:548,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:551,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 3
    argNames:
    - psInfo
    - pszLine
    - bResetParseInfo
    argTypes:
    - AVCE00ParseInfo*
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 561
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 561
    functionName: AVCE00ParseSectionEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - _AVCE00ParseDestroyCurObject
    - STARTS_WITH_CI
    - CPLFree
    - AVCE00ParseReset
    linkageType: ''
    returnType: GBool
    signature: "GBool AVCE00ParseSectionEnd(AVCE00ParseInfo *psInfo, const char *pszLine,\n
      \                           GBool bResetParseInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:590,1
    - Dst: AVCE00ParseNextArcLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:594,1
    - Dst: AVCE00ParseNextPalLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:598,1
    - Dst: AVCE00ParseNextCntLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:601,1
    - Dst: AVCE00ParseNextLabLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:604,1
    - Dst: AVCE00ParseNextTolLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:607,1
    - Dst: AVCE00ParseNextPrjLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:610,1
    - Dst: AVCE00ParseNextTxtLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:613,1
    - Dst: AVCE00ParseNextTx6Line
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:616,1
    - Dst: AVCE00ParseNextRxpLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:619,1
    - Dst: AVCE00ParseNextTableDefLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:623,1
    - Dst: AVCE00ParseNextTableRecLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:625,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 633
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 633
    functionName: AVCE00ParseNextLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - AVCE00ParseNextTolLine
    - AVCE00ParseNextPrjLine
    - AVCE00ParseNextPalLine
    - AVCE00ParseNextCntLine
    - AVCE00ParseNextTxtLine
    - CPLAssert
    - AVCE00ParseNextTableRecLine
    - CPLError
    - AVCE00ParseNextTableDefLine
    - AVCE00ParseNextArcLine
    - AVCE00ParseNextRxpLine
    - AVCE00ParseNextLabLine
    - AVCE00ParseNextTx6Line
    linkageType: ''
    returnType: void
    signature: void *AVCE00ParseNextLine(AVCE00ParseInfo *psInfo, const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:656,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:660,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:670,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:676,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:677,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:678,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:679,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:680,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:681,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:682,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:685,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:693,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:712,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:713,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:716,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:717,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:726,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:727,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:731,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 750
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 750
    functionName: AVCE00ParseNextArcLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - CPLAssert
    - CPLRealloc
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCArc
    signature: AVCArc *AVCE00ParseNextArcLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:773,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:789,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:801,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:804,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:820,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:831,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:832,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:833,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:834,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:838,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:839,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:849,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:850,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:861,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:863,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:865,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:870,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:872,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:874,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:879,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 898
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 898
    functionName: AVCE00ParseNextPalLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - CPLAssert
    - CPLRealloc
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCPal
    signature: AVCPal *AVCE00ParseNextPalLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:921,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:935,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:947,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:950,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:961,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:966,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:967,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:971,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:972,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:991,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:997,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1016
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 1016
    functionName: AVCE00ParseNextCntLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - CPLAssert
    - CPLRealloc
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCCnt
    signature: AVCCnt *AVCE00ParseNextCntLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1039,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1043,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1053,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1059,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1060,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1064,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1065,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1069,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1070,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1083,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1084,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1085,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1086,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1092,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1093,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1099,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1124
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1124
    functionName: AVCE00ParseNextLabLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - CPLAssert
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCLab
    signature: AVCLab *AVCE00ParseNextLabLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1147,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1151,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1159,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1160,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1185
    functionName: AVCE00ParseNextTolLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - CPLAssert
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCTol
    signature: AVCTol *AVCE00ParseNextTolLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1211,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1221,1
    - Dst: aosPrj::List
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1227,1
    - Dst: aosPrj::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1235,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1237,1
    - Dst: aosPrj::empty
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1243,1
    - Dst: aosPrj::List
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1248,1
    - Dst: aosPrj::size
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1248,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1249,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1250,1
    - Dst: aosPrj::List
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1250,1
    - Dst: aosPrj::size
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1250,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1252,1
    - Dst: aosPrj::List
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1252,1
    - Dst: aosPrj::size
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1258
    functionName: AVCE00ParseNextPrjLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - CPLAssert
    - aosPrj::AddString
    - CPLRealloc
    - strlen
    - aosPrj::empty
    - static_cast<char *>
    - memcpy
    - aosPrj::List
    - aosPrj::size
    linkageType: ''
    returnType: char
    signature: char **AVCE00ParseNextPrjLine(AVCE00ParseInfo *psInfo, const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1282,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1303,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1327,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1336,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1347,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1352,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1356,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1365,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1368,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1368,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1370,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1377,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1418,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1425,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1434,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1441,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1444,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1448,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1451,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1455,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1467,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1485,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1486,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1490,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1498,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 104
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1517
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1517
    functionName: AVCE00ParseNextTxtLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - static_cast<size_t>
    - ABS
    - MIN
    - AVCE00Str2Int
    - CPLAssert
    - CPLRealloc
    - strlen
    - CPLError
    - memset
    - memcpy
    linkageType: ''
    returnType: AVCTxt
    signature: AVCTxt *AVCE00ParseNextTxtLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1541,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1545,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1554,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1568,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1569,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1570,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1574,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1579,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1583,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1588,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1589,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1593,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1602,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1606,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1606,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1608,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1615,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1646,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1647,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1657,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1666,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1669,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1670,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1674,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1675,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1681,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1682,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1689,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1691,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1693,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1697,1
    - Dst: ABS
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1698,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1715,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1716,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1720,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1721,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1728,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1747
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1747
    functionName: AVCE00ParseNextTx6Line
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - static_cast<size_t>
    - ABS
    - MIN
    - AVCE00Str2Int
    - CPLAssert
    - CPLRealloc
    - strlen
    - CPLError
    - memset
    - memcpy
    linkageType: ''
    returnType: AVCTxt
    signature: AVCTxt *AVCE00ParseNextTx6Line(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1770,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1774,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1782,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1806
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1806
    functionName: AVCE00ParseNextRxpLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLAssert
    - AVCE00Str2Int
    - strlen
    linkageType: ''
    returnType: AVCRxp
    signature: AVCRxp *AVCE00ParseNextRxpLine(AVCE00ParseInfo *psInfo, const char
      *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1834,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1848,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1859,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1862,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1864,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1867,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1868,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1869,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1872,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1883,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1891,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1908,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1924,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1927,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1928,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1930,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1932,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1933,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1934,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1935,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1936,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1937,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1938,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1939,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1940,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1941,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1942,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1947,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:1960,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 79
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1992
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1992
    functionName: AVCE00ParseNextTableDefLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - AVCE00Str2Int
    - strncpy
    - CPLAssert
    - strlen
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: AVCTableDef
    signature: "AVCTableDef *AVCE00ParseNextTableDefLine(AVCE00ParseInfo *psInfo,\n
      \                                        const char *pszLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2017,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2027,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2038,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2050,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2050,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2053,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2064,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2066,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2066,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2071,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2072,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2073,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2078,1
    - Dst: AVCE00Str2Int
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2083,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2092,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2094,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2103,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2113,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2121,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ParseInfo*
    constantsTouched: []
    func_position:
      end: 2124
      start: 2003
    functionDepth: 1
    functionLinenumber: 2003
    functionLinenumberEnd: 2124
    functionName: _AVCE00ParseTableRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - AVCE00Str2Int
    - strncpy
    - CPLSPrintf
    - strchr
    - CPLAssert
    - snprintf
    - strlen
    - CPLError
    linkageType: ''
    returnType: AVCField
    signature: AVCField *_AVCE00ParseTableRecord(AVCE00ParseInfo *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2149,1
    - Dst: _AVCE00ComputeRecSize
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2173,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2184,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2192,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2200,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2220,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2241,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2243,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2243,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2244,1
    - Dst: _AVCE00ParseTableRecord
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2255,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp:2259,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - psInfo
    - pszLine
    argTypes:
    - AVCE00ParseInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 2278
      start: 2142
    functionDepth: 2
    functionLinenumber: 2142
    functionLinenumberEnd: 2278
    functionName: AVCE00ParseNextTableRecLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00parse.cpp
    functionUses: 1
    functionsReached:
    - _AVCE00ComputeRecSize
    - MIN
    - _AVCE00ParseTableRecord
    - strncpy
    - CPLRealloc
    - CPLAssert
    - strlen
    - CPLError
    - memset
    - CPLCalloc
    linkageType: ''
    returnType: AVCField
    signature: "AVCField *AVCE00ParseNextTableRecLine(AVCE00ParseInfo *psInfo,\n                                      const
      char *pszLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:157,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:163,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:166,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:174,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:185,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:191,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:194,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:198,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:198,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:200,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:211,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:213,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:231,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:242,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:247,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:252,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:253,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:260,1
    - Dst: _AVCE00ReadFindCoverType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:266,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:270,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:271,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:272,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:273,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:274,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:284,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:293,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:299,1
    - Dst: AVCAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:302,1
    - Dst: AVCFileExists
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:314,1
    - Dst: AVCFileExists
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:316,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:322,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:323,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:324,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:325,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:326,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:333,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:335,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:336,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:337,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:338,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:339,1
    - Dst: _AVCE00ReadBuildSqueleton
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:347,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:350,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:352,1
    - Dst: AVCE00GenInfoAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:362,1
    - Dst: AVCAllocDBCSInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:367,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:372,1
    - Dst: AVCE00ReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:374,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 1
    argNames:
    - pszCoverPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 379
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 379
    functionName: AVCE00ReadOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 3
    functionsReached:
    - AVCFileExists
    - CPLError
    - _AVCE00ReadBuildSqueleton
    - AVCE00GenInfoAlloc
    - CPLErrorReset
    - CPLStrdup
    - VSI_ISDIR
    - strlen
    - CPLMalloc
    - AVCAllocDBCSInfo
    - _AVCE00ReadFindCoverType
    - AVCAdjustCaseSensitiveFilename
    - AVCE00ReadClose
    - CPLSPrintf
    - CPLGetLastErrorNo
    - snprintf
    - CPLCalloc
    - CPLFree
    - VSIStatL
    - CSLDestroy
    - VSIReadDir
    linkageType: ''
    returnType: AVCE00ReadPtr
    signature: AVCE00ReadPtr AVCE00ReadOpen(const char *pszCoverPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:400,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:406,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:407,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:408,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:410,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:415,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:421,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:422,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:424,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:427,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:430,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:435,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:438,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:444,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:445,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:446,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:448,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:452,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:454,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:462,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:464,1
    - Dst: AVCE00ParseInfoAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:468,1
    - Dst: _AVCE00ReadScanE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:473,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:474,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:476,1
    - Dst: AVCE00ReadRewindE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:480,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:481,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:485,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:494,1
    - Dst: AVCE00ReadCloseE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:496,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - pszE00FileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 501
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 501
    functionName: AVCE00ReadOpenE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 4
    functionsReached:
    - CPLError
    - CPLErrorReset
    - AVCE00ReadRewindE00
    - CPLStrdup
    - VSI_ISDIR
    - strlen
    - STARTS_WITH_CI
    - VSIRewindL
    - CPLGetLastErrorNo
    - VSIFOpenL
    - VSIFReadL
    - strrchr
    - AVCE00ParseInfoAlloc
    - CPLCalloc
    - AVCE00ReadCloseE00
    - _AVCE00ReadScanE00
    - VSIStatL
    - VSIFCloseL
    - memset
    linkageType: ''
    returnType: AVCE00ReadE00Ptr
    signature: AVCE00ReadE00Ptr AVCE00ReadOpenE00(const char *pszE00FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:517,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:518,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:521,1
    - Dst: AVCE00GenInfoFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:524,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:532,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:534,1
    - Dst: AVCFreeDBCSInfo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:537,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ReadPtr
    constantsTouched: []
    func_position:
      end: 540
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 540
    functionName: AVCE00ReadClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 4
    functionsReached:
    - CPLErrorReset
    - AVCFreeDBCSInfo
    - AVCBinReadClose
    - AVCE00GenInfoFree
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void AVCE00ReadClose(AVCE00ReadPtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:553,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:554,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:558,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:567,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:568,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:570,1
    - Dst: AVCE00ParseInfoFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:574,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - psRead
    argTypes:
    - AVCE00ReadE00Ptr
    constantsTouched: []
    func_position:
      end: 578
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 578
    functionName: AVCE00ReadCloseE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 5
    functionsReached:
    - CPLFree
    - AVCE00ParseInfoFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void AVCE00ReadCloseE00(AVCE00ReadE00Ptr psRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pasArray
    - pnumItems
    - numToAdd
    argTypes:
    - AVCE00Section**
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 610
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 610
    functionName: _AVCIncreaseSectionsArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: int
    signature: "int _AVCIncreaseSectionsArray(AVCE00Section **pasArray, int *pnumItems,\n
      \                                    int numToAdd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:637,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:646,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:647,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:648,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:649,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:650,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:651,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:655,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:656,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:658,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:662,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 30
    argCount: 1
    argNames:
    - papszCoverDir
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 712
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 712
    functionName: _AVCE00ReadFindCoverType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - strlen
    linkageType: ''
    returnType: AVCCoverType
    signature: AVCCoverType _AVCE00ReadFindCoverType(char **papszCoverDir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:730,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:738,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:741,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:743,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:749,1
    - Dst: _AVCIncreaseSectionsArray
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:755,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:759,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:759,1
    - Dst: _AVCIncreaseSectionsArray
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:768,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:773,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:778,1
    - Dst: _AVCIncreaseSectionsArray
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:787,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:790,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - psInfo
    - eFileType
    - pszSectionName
    - nCoverPrecision
    - pszFileExtension
    - papszCoverDir
    argTypes:
    - AVCE00ReadPtr
    - AVCFileType
    - char*
    - int
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 794
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 794
    functionName: _AVCE00ReadAddJabberwockySection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - AVCBinReadClose
    - CPLSPrintf
    - EQUAL
    - strlen
    - AVCBinReadOpen
    - _AVCIncreaseSectionsArray
    linkageType: ''
    returnType: int
    signature: "int _AVCE00ReadAddJabberwockySection(\n    AVCE00ReadPtr psInfo, AVCFileType
      eFileType, const char *pszSectionName,\n    int nCoverPrecision, const char
      *pszFileExtension, char **papszCoverDir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:812,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:825,1
    - Dst: AVCE00ParseSuperSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:833,1
    - Dst: AVCE00ParseSuperSectionHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:850,1
    - Dst: AVCE00ParseSectionHeader
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:856,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:869,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:887,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:905,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:908,1
    - Dst: AVCE00ParseNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:915,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:925,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - psRead
    - pszLine
    argTypes:
    - AVCE00ReadE00Ptr
    - char*
    constantsTouched: []
    func_position:
      end: 930
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 930
    functionName: _AVCE00ReadNextLineE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - AVCE00ParseSectionEnd
    - AVCE00ParseSuperSectionEnd
    - AVCE00ParseSectionHeader
    - CPLGetLastErrorNo
    - AVCE00ParseNextLine
    - AVCE00ParseSuperSectionHeader
    linkageType: ''
    returnType: void
    signature: "void *_AVCE00ReadNextLineE00(AVCE00ReadE00Ptr psRead,\n                                    const
      char *pszLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:968,1
    - Dst: getcwd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:974,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:977,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:981,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:984,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:989,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:990,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:991,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:991,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:994,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:994,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1021,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1023,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1028,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1033,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1035,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1045,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1047,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1052,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1057,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1059,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1069,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1071,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1076,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1081,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1083,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1093,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1095,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1100,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1105,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1107,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1117,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1119,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1124,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1129,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1131,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1138,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1140,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1145,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1150,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1152,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1162,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1164,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1169,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1174,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1176,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1186,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1189,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1209,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1213,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1227,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1233,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1235,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1243,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1246,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1254,1
    - Dst: _AVCE00ReadAddJabberwockySection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1257,1
    - Dst: AVCBinReadListTables
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1272,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1288,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1291,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1296,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1296,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1299,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1300,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1305,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1311,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1318,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1322,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1328,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1330,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1331,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1339,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 151
    argCount: 2
    argNames:
    - psInfo
    - papszCoverDir
    argTypes:
    - AVCE00ReadPtr
    - char**
    constantsTouched: []
    func_position:
      end: 1342
      start: 944
    functionDepth: 5
    functionLinenumber: 944
    functionLinenumberEnd: 1342
    functionName: _AVCE00ReadBuildSqueleton
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 1
    functionsReached:
    - CSLAddString
    - getcwd
    - AVCBinReadListTables
    - CPLStrdup
    - AVCBinReadClose
    - CPLToupper
    - static_cast<unsigned char>
    - CPLString::c_str
    - strlen
    - CSLCount
    - CPLSPrintf
    - strcat
    - CPLString::pop_back
    - _AVCE00ReadAddJabberwockySection
    - CSLDestroy
    - EQUAL
    - isalpha
    - CSLFindString
    - AVCBinReadOpen
    linkageType: ''
    returnType: int
    signature: int _AVCE00ReadBuildSqueleton(AVCE00ReadPtr psInfo, char **papszCoverDir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1359,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1360,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1371,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1380,1
    - Dst: _AVCE00ReadNextLineE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1443,1
    - Dst: _AVCIncreaseSectionsArray
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1445,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1451,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1453,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 1
    argNames:
    - psRead
    argTypes:
    - AVCE00ReadE00Ptr
    constantsTouched: []
    func_position:
      end: 1465
      start: 1349
    functionDepth: 4
    functionLinenumber: 1349
    functionLinenumberEnd: 1465
    functionName: _AVCE00ReadScanE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - CPLReadLine2L
    - CPLStrdup
    - _AVCE00ReadNextLineE00
    - CPLGetLastErrorNo
    - strchr
    - EQUAL
    - CPLError
    - _AVCIncreaseSectionsArray
    linkageType: ''
    returnType: void
    signature: void _AVCE00ReadScanE00(AVCE00ReadE00Ptr psRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1482,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1497,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1498,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1500,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1502,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1511,1
    - Dst: AVCE00GenTableHdr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1525,1
    - Dst: AVCE00GenTableHdr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1534,1
    - Dst: AVCE00GenReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1545,1
    - Dst: AVCE00GenTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1556,1
    - Dst: AVCBinReadNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1566,1
    - Dst: AVCE00GenTableRec
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1568,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1581,1
    - Dst: AVCE00ReadNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1596,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1602,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ReadPtr
    constantsTouched: []
    func_position:
      end: 1608
      start: 1475
    functionDepth: 3
    functionLinenumber: 1475
    functionLinenumberEnd: 1608
    functionName: _AVCE00ReadNextTableLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - AVCBinReadClose
    - AVCE00GenTableHdr
    - CPLSPrintf
    - AVCE00GenReset
    - CPLGetLastErrorNo
    - CPLAssert
    - AVCE00ReadNextLine
    - AVCBinReadOpen
    - CPLFree
    - AVCBinReadNextObject
    - AVCE00GenTableRec
    linkageType: ''
    returnType: char
    signature: char *_AVCE00ReadNextTableLine(AVCE00ReadPtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1631,1
    - Dst: _AVCE00ReadNextTableLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1647,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1680,1
    - Dst: AVCE00GenStartSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1692,1
    - Dst: AVCE00GenReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1700,1
    - Dst: AVCE00GenObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1714,1
    - Dst: AVCBinReadNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1733,1
    - Dst: AVCE00GenObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1736,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1765,1
    - Dst: AVCE00GenEndSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1769,1
    - Dst: AVCE00GenStartSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1782,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1798,1
    - Dst: AVCE00GenPrj
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1809,1
    - Dst: AVCE00GenPrj
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1817,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1828,1
    - Dst: AVCE00GenEndSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1832,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1838,1
    - Dst: AVCE00GenEndSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1852,1
    - Dst: AVCE00ReadNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1869,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 72
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ReadPtr
    constantsTouched: []
    func_position:
      end: 1874
      start: 1626
    functionDepth: 4
    functionLinenumber: 1626
    functionLinenumberEnd: 1874
    functionName: AVCE00ReadNextLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 2
    functionsReached:
    - CPLErrorReset
    - AVCE00GenEndSection
    - AVCE00GenStartSection
    - AVCBinReadClose
    - AVCE00GenPrj
    - _AVCE00ReadNextTableLine
    - AVCE00GenReset
    - AVCBinReadNextObject
    - CPLAssert
    - AVCE00ReadNextLine
    - AVCBinReadOpen
    - AVCE00GenObject
    linkageType: ''
    returnType: char
    signature: char *AVCE00ReadNextLine(AVCE00ReadPtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - psInfo
    - numSect
    argTypes:
    - AVCE00ReadPtr
    - int*
    constantsTouched: []
    func_position:
      end: 1901
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1901
    functionName: AVCE00ReadSectionsList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    linkageType: ''
    returnType: AVCE00Section
    signature: AVCE00Section *AVCE00ReadSectionsList(AVCE00ReadPtr psInfo, int *numSect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1929,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1949,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - psInfo
    - psSect
    - bContinue
    argTypes:
    - AVCE00ReadPtr
    - AVCE00Section*
    - GBool
    constantsTouched: []
    func_position:
      end: 1969
      start: 1923
    functionDepth: 3
    functionLinenumber: 1923
    functionLinenumberEnd: 1969
    functionName: AVCE00ReadGotoSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLErrorReset
    - CPLError
    - AVCBinReadClose
    linkageType: ''
    returnType: int
    signature: "int AVCE00ReadGotoSection(AVCE00ReadPtr psInfo, AVCE00Section *psSect,\n
      \                         GBool bContinue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1981,1
    - Dst: AVCE00ReadGotoSection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AVCE00ReadPtr
    constantsTouched: []
    func_position:
      end: 1984
      start: 1979
    functionDepth: 4
    functionLinenumber: 1979
    functionLinenumberEnd: 1984
    functionName: AVCE00ReadRewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - AVCE00ReadGotoSection
    linkageType: ''
    returnType: int
    signature: int AVCE00ReadRewind(AVCE00ReadPtr psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:1996,1
    - Dst: AVCE00ParseSectionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2005,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - psRead
    argTypes:
    - AVCE00ReadE00Ptr
    constantsTouched: []
    func_position:
      end: 2008
      start: 1994
    functionDepth: 3
    functionLinenumber: 1994
    functionLinenumberEnd: 2008
    functionName: AVCE00ReadRewindE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - CPLErrorReset
    - AVCE00ParseSectionEnd
    linkageType: ''
    returnType: int
    signature: int AVCE00ReadRewindE00(AVCE00ReadE00Ptr psRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCE00ReadRewindE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2032,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2036,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2040,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2041,1
    - Dst: _AVCE00ReadNextLineE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2046,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - psRead
    - nOffset
    - nWhence
    argTypes:
    - AVCE00ReadE00Ptr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2050
      start: 2021
    functionDepth: 4
    functionLinenumber: 2021
    functionLinenumberEnd: 2050
    functionName: _AVCE00ReadSeekE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - AVCE00ReadRewindE00
    - CPLReadLine2L
    - _AVCE00ReadNextLineE00
    - CPLGetLastErrorNo
    - CPLAssert
    linkageType: ''
    returnType: int
    signature: int _AVCE00ReadSeekE00(AVCE00ReadE00Ptr psRead, int nOffset, int nWhence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2072,1
    - Dst: _AVCE00ReadNextLineE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2076,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2080,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - psRead
    argTypes:
    - AVCE00ReadE00Ptr
    constantsTouched: []
    func_position:
      end: 2082
      start: 2065
    functionDepth: 4
    functionLinenumber: 2065
    functionLinenumberEnd: 2082
    functionName: AVCE00ReadNextObjectE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 3
    functionsReached:
    - CPLReadLine2L
    - _AVCE00ReadNextLineE00
    - CPLGetLastErrorNo
    linkageType: ''
    returnType: void
    signature: void *AVCE00ReadNextObjectE00(AVCE00ReadE00Ptr psRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - psRead
    - numSect
    argTypes:
    - AVCE00ReadE00Ptr
    - int*
    constantsTouched: []
    func_position:
      end: 2105
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2105
    functionName: AVCE00ReadSectionsListE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    linkageType: ''
    returnType: AVCE00Section
    signature: AVCE00Section *AVCE00ReadSectionsListE00(AVCE00ReadE00Ptr psRead, int
      *numSect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2148,1
    - Dst: _AVCE00ReadSeekE00
      Src: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp:2156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - psRead
    - psSect
    - bContinue
    argTypes:
    - AVCE00ReadE00Ptr
    - AVCE00Section*
    - GBool
    constantsTouched: []
    func_position:
      end: 2161
      start: 2122
    functionDepth: 5
    functionLinenumber: 2122
    functionLinenumberEnd: 2161
    functionName: AVCE00ReadGotoSectionE00
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/avc_e00read.cpp
    functionUses: 5
    functionsReached:
    - EQUAL
    - CPLErrorReset
    - CPLError
    - _AVCE00ReadSeekE00
    linkageType: ''
    returnType: int
    signature: "int AVCE00ReadGotoSectionE00(AVCE00ReadE00Ptr psRead, AVCE00Section
      *psSect,\n                             GBool bContinue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:34,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:34,1
    - Dst: OGRAVCBinDataSource::OGRAVCBinDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:46,1
    - Dst: OGRAVCBinDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:48,1
    - Dst: OGRAVCBinDataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 55
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 55
    functionName: OGRAVCBinDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp
    functionUses: 0
    functionsReached:
    - OGRAVCBinDataSource*::Open
    - OGRAVCBinDataSource*::GetLayerCount
    - OGRAVCBinDataSource::OGRAVCBinDataSource
    - EQUAL
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRAVCBinDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:64,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:67,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:71,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:75,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: RegisterOGRAVCBin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRAVCBin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupFeatureDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:31,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:35,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:36,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:38,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:39,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:41,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:42,1
    - Dst: static_cast<OGRAVCBinDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:46,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:48,1
    - Dst: GetCoverageName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:49,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:54,1
    - Dst: OGRAVCBinLayer::CheckSetupTable
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - poDSIn
    - psSectionIn
    argTypes:
    - OGRAVCBinDataSource*
    - AVCE00Section*
    constantsTouched: []
    func_position:
      end: 59
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 59
    functionName: OGRAVCBinLayer::OGRAVCBinLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 1
    functionsReached:
    - GetCoverageName
    - SetupFeatureDefinition
    - OGRAVCBinLayer::CheckSetupTable
    - snprintf
    - GetFieldIndex
    - static_cast<OGRAVCBinDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGRAVCBinLayer::OGRAVCBinLayer(OGRAVCBinDataSource *poDSIn,\n
      \                              AVCE00Section *psSectionIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCBinLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: OGRAVCBinLayer::~OGRAVCBinLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAVCBinLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRAVCBinLayer::~OGRAVCBinLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:80,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: OGRAVCBinLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 1
    functionsReached:
    - AVCBinReadClose
    linkageType: ''
    returnType: void
    signature: void OGRAVCBinLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:102,1
    - Dst: static_cast<OGRAVCBinDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:111,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:113,1
    - Dst: AVCBinReadNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:129,1
    - Dst: MatchesSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:130,1
    - Dst: AVCBinReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:138,1
    - Dst: TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:147,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:158,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:160,1
    - Dst: OGRAVCBinLayer::FormPolygonGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:168,1
    - Dst: OGRAVCBinLayer::AppendTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 176
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 176
    functionName: OGRAVCBinLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 0
    functionsReached:
    - AVCBinReadObject
    - CPL_INT64_FITS_ON_INT32
    - AVCBinReadOpen
    - OGRAVCBinLayer::FormPolygonGeometry
    - OGRAVCBinLayer::AppendTableFields
    - MatchesSpatialFilter
    - TranslateFeature
    - static_cast<OGRAVCBinDataSource *>
    - AVCBinReadNextObject
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAVCBinLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCBinLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:189,1
    - Dst: OGRAVCBinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:191,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:194,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:197,1
    - Dst: OGRAVCBinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:198,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:202,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:203,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:203,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:205,1
    - Dst: OGRAVCBinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:206,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 213
    functionName: OGRAVCBinLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAVCBinLayer::GetFeature
    - OGRFeature*::GetFID
    - Evaluate
    - FilterGeometry
    - OGRAVCBinLayer::ResetReading
    - OGRFeature::DestroyFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAVCBinLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:222,1
    - Dst: OGRAVCLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: OGRAVCBinLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRAVCLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRAVCBinLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:244,1
    - Dst: static_cast<OGRAVCBinLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:247,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:247,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:261,1
    - Dst: OGRAVCBinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:280,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:280,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:285,1
    - Dst: OGRGeometryCollection::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:288,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:288,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:289,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:293,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:293,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:297,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:297,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - poFeature
    - psPAL
    argTypes:
    - OGRFeature*
    - AVCPal*
    constantsTouched: []
    func_position:
      end: 302
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 302
    functionName: OGRAVCBinLayer::FormPolygonGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - FromHandle
    - OGRAVCBinLayer::GetFeature
    - OGRGeometryCollection::OGRGeometryCollection
    - GetLayerCount
    - OGRBuildPolygonFromEdges
    - GetSpatialRef
    - static_cast<OGRAVCBinLayer *>
    - std::abs
    - OGRGeometryCollection::addGeometry
    - GetLayer
    - OGRFeature::DestroyFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCBinLayer::FormPolygonGeometry(OGRFeature *poFeature, AVCPal
      *psPAL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRAVCBinDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:321,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:326,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:327,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:342,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:354,1
    - Dst: AppendTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:356,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 366
    functionName: OGRAVCBinLayer::CheckSetupTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 1
    functionsReached:
    - AVCBinReadClose
    - AVCBinReadOpen
    - AppendTableDefinition
    - GetFieldCount
    - EQUAL
    - CPLString
    - static_cast<OGRAVCBinDataSource *>
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCBinLayer::CheckSetupTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRAVCBinDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:375,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:386,1
    - Dst: TranslateTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 415
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 415
    functionName: OGRAVCBinLayer::AppendTableFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravcbinlayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRAVCBinDataSource *>
    - TranslateTableFields
    - AVCBinReadOpen
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCBinLayer::AppendTableFields(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCLayer
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 57
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached:
    - OGRAVCLayer
    linkageType: ''
    returnType: class OGRAVCLayer
    signature: class OGRAVCLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAVCDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached:
    - OGRAVCDataSource
    linkageType: ''
    returnType: class OGRAVCDataSource
    signature: class OGRAVCDataSource CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: OGRAVCBinDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: OGRAVCBinDataSource::GetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AVCE00ReadPtr
    signature: AVCE00ReadPtr GetInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: OGRAVCE00DataSource::GetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AVCE00ReadE00Ptr
    signature: AVCE00ReadE00Ptr GetInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OGRAVCE00DataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogr_avc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - eSectionTypeIn
    - poDSIn
    argTypes:
    - AVCFileType
    - OGRAVCDataSource*
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OGRAVCLayer::OGRAVCLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAVCLayer::OGRAVCLayer(AVCFileType eSectionTypeIn, OGRAVCDataSource
      *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:38,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:39,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:39,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: OGRAVCLayer::~OGRAVCLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetName
    - CPLDebug
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRAVCLayer::~OGRAVCLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: OGRAVCLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRAVCLayer::TestCapability(const char * /* pszCap */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:67,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:68,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:69,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:77,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:78,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:79,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:80,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:81,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:90,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:91,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:92,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:95,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:103,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:104,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:105,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:108,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:116,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:117,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:118,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:121,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:124,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:133,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:134,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:135,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:138,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:141,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:144,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:147,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:158,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:160,1
    - Dst: DSGetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:161,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 166
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 166
    functionName: OGRAVCLayer::SetupFeatureDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    - DSGetSpatialRef
    linkageType: ''
    returnType: int
    signature: int OGRAVCLayer::SetupFeatureDefinition(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<AVCArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:191,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:198,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:198,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:199,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:206,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:208,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:210,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:213,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:213,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:214,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:221,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:222,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:223,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:224,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:225,1
    - Dst: static_cast<AVCPal *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:238,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:245,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:245,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:246,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:258,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:259,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:278,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:278,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:279,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:286,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:287,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:287,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:288,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:295,1
    - Dst: static_cast<AVCLab *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:307,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:314,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:314,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:315,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:323,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:324,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:324,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:325,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:332,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:333,1
    - Dst: static_cast<AVCTxt *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:346,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:353,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:353,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:354,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:363,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:365,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:365,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:366,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:374,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:375,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:375,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:376,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 1
    argNames:
    - pAVCFeature
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 385
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 385
    functionName: OGRAVCLayer::TranslateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - CPLFree
    - reinterpret_cast<char *>
    - OGRLineString*::setPoint
    - GetSpatialRef
    - OGRPoint*::assignSpatialReference
    - OGRLineString*::setNumPoints
    - static_cast<AVCPal *>
    - OGRPoint::OGRPoint
    - static_cast<AVCLab *>
    - OGRFeature*::SetField
    - OGRLineString*::assignSpatialReference
    - static_cast<AVCTxt *>
    - static_cast<AVCArc *>
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRAVCLayer::TranslateFeature(void *pAVCFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<AVCArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:408,1
    - Dst: static_cast<AVCCnt *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:460,1
    - Dst: static_cast<AVCTxt *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:497,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 39
    argCount: 1
    argNames:
    - pFeature
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 514
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 514
    functionName: OGRAVCLayer::MatchesSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<AVCArc *>
    - static_cast<AVCCnt *>
    - static_cast<AVCTxt *>
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCLayer::MatchesSpatialFilter(void *pFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:532,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:533,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:534,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:545,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:549,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:553,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:558,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:560,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:563,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - psTableDef
    argTypes:
    - AVCTableDef*
    constantsTouched: []
    func_position:
      end: 566
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 566
    functionName: OGRAVCLayer::AppendTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - strstr
    - AddFieldDefn
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool OGRAVCLayer::AppendTableDefinition(AVCTableDef *psTableDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:603,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:603,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:608,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:612,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:616,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:620,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp:624,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 4
    argNames:
    - poFeature
    - nFieldBase
    - psTableDef
    - pasFields
    argTypes:
    - OGRFeature*
    - int
    - AVCTableDef*
    - AVCField*
    constantsTouched: []
    func_position:
      end: 630
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 630
    functionName: OGRAVCLayer::TranslateTableFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/avc/ogravclayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - reinterpret_cast<char *>
    - OGRFeature*::SetField
    linkageType: ''
    returnType: bool
    signature: "bool OGRAVCLayer::TranslateTableFields(OGRFeature *poFeature, int
      nFieldBase,\n                                       AVCTableDef *psTableDef,\n
      \                                      AVCField *pasFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: OGROAPIFDataset::OGROAPIFDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROAPIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:123,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: OGROAPIFDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OGROAPIFLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCount
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OGROAPIFLayer::SetTotalItemCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetTotalItemCount(GIntBig nCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:244,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:246,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:247,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pszGotContentType
    - pszExpectedContentType
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: CheckContentType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - CPLStringList::size
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool CheckContentType(const char *pszGotContentType,\n                             const
      char *pszExpectedContentType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:274,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:274,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: OGROAPIFDataset::~OGROAPIFDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLHTTPFetch
    - CSLDestroy
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: void
    signature: void OGROAPIFDataset::~OGROAPIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:293,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:295,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:296,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:296,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:297,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:305,1
    - Dst: CleanURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:305,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:306,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:308,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:309,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:310,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:314,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:317,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:317,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:318,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:322,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:322,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:323,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:323,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:324,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:324,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:329,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:330,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:330,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:331,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:333,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:336,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:336,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:340,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:341,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:341,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:344,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:345,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:348,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:348,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:351,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:351,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 29
    argCount: 2
    argNames:
    - osURL
    - osRequestURL
    argTypes:
    - CPLString
    - std::string
    constantsTouched: []
    func_position:
      end: 356
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 356
    functionName: OGROAPIFDataset::ResolveURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - c_str
    - CPLGetPathSafe
    - CPLString::substr
    - find
    - std::string::rfind
    - CleanURL
    - std::string::resize
    - CPLString::size
    - CPLString::c_str
    - strlen
    - substr
    - CPLString::find
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - std::string::pop_back
    - std::string::back
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGROAPIFDataset::ResolveURL(const CPLString &osURL,\n                                      const
      std::string &osRequestURL) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:368,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:370,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:370,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:372,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:374,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:375,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:385,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:386,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:386,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:389,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:392,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:392,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:396,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:396,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:398,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:399,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:400,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:402,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:413,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:414,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:426,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:426,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:428,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:428,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:429,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:443,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:445,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:446,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:451,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:453,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:462,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:463,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:464,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:471,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:473,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:474,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:490,1
    - Dst: CheckContentType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:502,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:505,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:511,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:513,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:519,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:522,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:523,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 76
    argCount: 5
    argNames:
    - osURL
    - pszAccept
    - osResult
    - osContentType
    - paosHeaders
    argTypes:
    - CPLString
    - char*
    - CPLString
    - CPLString
    - CPLStringList*
    constantsTouched: []
    func_position:
      end: 525
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 525
    functionName: OGROAPIFDataset::Download
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - std::string::append
    - CPLDebug
    - CPLString
    - CPLStrnlen
    - CPLError
    - std::string::c_str
    - reinterpret_cast<char *>
    - CPLString::c_str
    - c_str
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - CPLSPrintf
    - VSIIngestFile
    - strstr
    - CPLString::find
    - CPLFree
    - empty
    - VSIStatL
    - CheckContentType
    - CSLDestroy
    - CSLDuplicate
    - CPLHTTPDestroyResult
    - CSLSetNameValue
    linkageType: ''
    returnType: bool
    signature: "bool OGROAPIFDataset::Download(const CPLString &osURL, const char
      *pszAccept,\n                               CPLString &osResult, CPLString &osContentType,\n
      \                              CPLStringList *paosHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFDataset::Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:537,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - osURL
    - oDoc
    - pszAccept
    - paosHeaders
    argTypes:
    - CPLString
    - CPLJSONDocument
    - char*
    - CPLStringList*
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: OGROAPIFDataset::DownloadJSon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROAPIFDataset::Download
    - CPLJSONDocument::LoadMemory
    linkageType: ''
    returnType: bool
    signature: "bool OGROAPIFDataset::DownloadJSon(const CPLString &osURL,\n                                   CPLJSONDocument
      &oDoc, const char *pszAccept,\n                                   CPLStringList
      *paosHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:552,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - osURLOut
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 555
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 555
    functionName: '&OGROAPIFDataset::GetLandingPageDoc(std::string &osURLOut)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPL_IGNORE_RET_VAL
    - DownloadJSon
    linkageType: ''
    returnType: CPLJSONDocument
    signature: CPLJSONDocument &OGROAPIFDataset::GetLandingPageDoc(std::string &osURLOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLandingPageDoc
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:570,1
    - Dst: auto::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:571,1
    - Dst: auto::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:573,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:574,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:577,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:580,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:581,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:585,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:586,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:587,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:590,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:590,1
    - Dst: ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:596,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:596,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:609,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:611,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:622,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:625,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:625,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:630,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:632,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:632,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:634,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:635,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:642,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - osURLOut
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 648
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 648
    functionName: '&OGROAPIFDataset::GetAPIDoc(std::string &osURLOut)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetString
    - CPLGetConfigOption
    - CPLString::empty
    - auto::c_str
    - CPLJSONObject::GetType
    - CPLErrorReset
    - CPLString::c_str
    - CPLPopErrorHandler
    - auto::Size
    - auto::GetRoot
    - DownloadJSon
    - CPLString::clear
    - CPL_IGNORE_RET_VAL
    - auto::IsValid
    - ResolveURL
    - EQUAL
    - CPLPushErrorHandler
    - CPLJSONObject::IsValid
    - GetLandingPageDoc
    linkageType: ''
    returnType: CPLJSONDocument
    signature: CPLJSONDocument &OGROAPIFDataset::GetAPIDoc(std::string &osURLOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:657,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:661,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:665,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:667,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:668,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:669,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:670,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:672,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:675,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:676,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:677,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:679,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:680,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:683,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:684,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:686,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:689,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:693,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:698,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:702,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:705,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:711,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:712,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:712,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:714,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:715,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:715,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:722,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:723,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:723,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:725,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:726,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:726,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:731,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:735,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:736,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:737,1
    - Dst: "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:738,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:742,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:749,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:756,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:758,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:762,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:762,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:764,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:768,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:768,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:770,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:774,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:774,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:776,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:778,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:784,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:787,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:787,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:788,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:793,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:796,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:796,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:804,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:807,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:809,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:813,1
    - Dst: std::make_unique<OGROAPIFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:814,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:815,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:817,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:818,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:818,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:819,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:820,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:820,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:821,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:822,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:822,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:823,1
    - Dst: ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:825,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:826,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:828,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:830,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:831,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:833,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:835,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:836,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:842,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:843,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:844,1
    - Dst: auto::SetItemAssets
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:846,1
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:850,1
    - Dst: auto::SetTotalItemCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:852,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:854,1
    - Dst: auto::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:856,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:858,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:858,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 89
    argCount: 2
    argNames:
    - oCollection
    - oGlobalCRSList
    argTypes:
    - CPLJSONObject
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 860
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 860
    functionName: OGROAPIFDataset::LoadJSONCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::SetTotalItemCount
    - std::set::insert
    - CPLJSONObject::GetString
    - auto::GetType
    - CPLDebug
    - std::vector::push_back
    - CPLError
    - auto::SetItemAssets
    - std::string::c_str
    - CPLJSONObject::Format
    - CPLString::empty
    - CPLJSONObject::GetType
    - std::string::empty
    - std::string::find
    - CPLJSONArray::IsValid
    - CPLString::c_str
    - std::move
    - OGRSpatialReference::IsSame
    - strlen
    - auto::Size
    - emplace_back
    - OGRSpatialReference::SetFromUserInput
    - IsEmpty
    - c_str
    - ToArray
    - ToString
    - auto::SetMetadata
    - std::set::find
    - CPLJSONObject::GetArray
    - GetType
    - auto::IsValid
    - auto::SetMetadataItem
    - OGRSpatialReference::OGRSpatialReference
    - "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLJSONObject::GetObj
    - CPLJSONObject::GetLong
    - std::make_unique<OGROAPIFLayer>
    - std::string::substr
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool OGROAPIFDataset::LoadJSONCollection(const CPLJSONObject &oCollection,\n
      \                                        const CPLJSONArray &oGlobalCRSList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:871,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:873,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:874,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:878,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:879,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:880,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:882,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:886,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:888,1
    - Dst: OGROAPIFDataset::LoadJSONCollection
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:890,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:893,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:897,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:898,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:902,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:905,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:906,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:910,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:910,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:912,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:914,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:922,1
    - Dst: OGROAPIFDataset::ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:925,1
    - Dst: OGROAPIFDataset::Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:927,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:935,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - osResultIn
    - osCollectionsURL
    argTypes:
    - CPLString
    - std::string
    constantsTouched: []
    func_position:
      end: 936
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 936
    functionName: OGROAPIFDataset::LoadJSONCollections
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetArray
    - CPLJSONObject::GetString
    - CPLJSONDocument::GetRoot
    - CPLError
    - CPLString::empty
    - CPLJSONObject::GetType
    - CPLJSONArray::IsValid
    - auto::Size
    - CPLJSONDocument::LoadMemory
    - OGROAPIFDataset::LoadJSONCollection
    - CPLString::clear
    - OGROAPIFDataset::Download
    - CPLJSONArray::Size
    - auto::IsValid
    - empty
    - EQUAL
    - CPLJSONObject::IsValid
    - OGROAPIFDataset::ResolveURL
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: "bool OGROAPIFDataset::LoadJSONCollections(const CPLString &osResultIn,\n
      \                                         const std::string &osCollectionsURL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAPIDoc
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:946,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:947,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:952,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:955,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:957,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:960,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:960,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:961,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:963,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:966,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:971,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:972,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:975,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:976,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:977,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:982,1
    - Dst: OGROAPIFDataset::ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:983,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:986,1
    - Dst: auto::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:990,1
    - Dst: auto::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:991,1
    - Dst: OGROAPIFDataset::Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:996,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:999,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1001,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1008,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1009,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1011,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1012,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1015,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1016,1
    - Dst: auto::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1018,1
    - Dst: auto::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1021,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1028,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1030,1
    - Dst: auto::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1030,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1031,1
    - Dst: auto::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1034,1
    - Dst: auto::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1037,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1043,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1044,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1060,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1060,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1063,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1069,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - itemsUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1074
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 1074
    functionName: OGROAPIFDataset::DeterminePageSizeFromAPI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetArray
    - auto::GetInteger
    - GetString
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - auto::c_str
    - auto::find
    - CPLJSONDocument::LoadMemory
    - GetAPIDoc
    - min
    - OGROAPIFDataset::Download
    - auto::IsValid
    - auto::substr
    - auto::GetObj
    - std::string::substr
    - length
    - max
    - OGROAPIFDataset::ResolveURL
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void OGROAPIFDataset::DeterminePageSizeFromAPI(const std::string &itemsUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1083,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1083,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1083,1
    - Dst: std::string::front
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1084,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1086,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - osPart1
    - osPart2
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 1089
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1089
    functionName: ConcatenateURLParts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::front
    - std::string::substr
    - std::string::back
    linkageType: ''
    returnType: std::string
    signature: "std::string ConcatenateURLParts(const std::string &osPart1,\n                                       const
      std::string &osPart2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1099,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1101,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1102,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1102,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1103,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1104,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1104,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1105,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1108,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1108,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1112,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1115,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1116,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1119,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1122,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1124,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1133,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1134,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1135,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1136,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1137,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1139,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1142,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1142,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1155,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1166,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1168,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1170,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1171,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1175,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1181,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1182,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1186,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1191,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1194,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1195,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1196,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1206,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1206,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1214,1
    - Dst: OGROAPIFDataset::Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1216,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1221,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1222,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1226,1
    - Dst: OGROAPIFDataset::LoadJSONCollection
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1227,1
    - Dst: CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1227,1
    - Dst: ConcatenateURLParts
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1231,1
    - Dst: OGROAPIFDataset::Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1232,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1237,1
    - Dst: OGROAPIFDataset::LoadJSONCollections
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1239,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1243
      start: 1095
    functionDepth: 4
    functionLinenumber: 1095
    functionLinenumberEnd: 1243
    functionName: OGROAPIFDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::GetRoot
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - std::string::empty
    - ConcatenateURLParts
    - OGROAPIFDataset::LoadJSONCollections
    - find
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - strlen
    - resize
    - CPLJSONArray
    - SetFromUserInput
    - CPLJSONDocument::LoadMemory
    - STARTS_WITH_CI
    - CPLTestBool
    - OGROAPIFDataset::LoadJSONCollection
    - assign
    - OGROAPIFDataset::Download
    - substr
    - CPLString::find
    - CSLFetchNameValueDef
    - strchr
    - EQUAL
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: bool OGROAPIFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1251,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1254
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1254
    functionName: OGROAPIFDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - get
    - OGROAPIFDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGROAPIFDataset::GetLayer(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1263,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1264,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1265,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1266,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1267,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1269
    functionName: OGROAPIFDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: int OGROAPIFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1277,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1280
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1280
    functionName: HasGISFriendlyAxisOrder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    linkageType: ''
    returnType: bool
    signature: bool HasGISFriendlyAxisOrder(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1295,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1296,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1297,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1298,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1300,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1301,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1302,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1302,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1303,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1304,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1305,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1307,1
    - Dst: HasGISFriendlyAxisOrder
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1307,1
    - Dst: OGRSpatialReference*::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1310,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1311,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1313,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1315,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1315,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1317,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1320,1
    - Dst: ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1322,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1325,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1325,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1330,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1330,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1332,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1333,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1335,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1335,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1337,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1337,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1339,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1340,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1340,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1341,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1345,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1351,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1352,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1356,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1357,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1365,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1366,1
    - Dst: ConcatenateURLParts
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1374,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1379,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1381,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1384,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1385,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1389,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1390,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1392,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1392,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1409,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1409,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1411,1
    - Dst: ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1413,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1416,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1416,1
    - Dst: ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1420,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1424,1
    - Dst: ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1427,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1431,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 77
    argCount: 8
    argNames:
    - poDS
    - osName
    - oBBOX
    - osBBOXCrs
    - oCRSList
    - osActiveCRS
    - dfCoordinateEpoch
    - oLinks
    argTypes:
    - OGROAPIFDataset*
    - CPLString
    - CPLJSONArray
    - std::string
    - std::vector<std::string>
    - std::string
    - double
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 1432
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1432
    functionName: OGROAPIFLayer::OGROAPIFLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - CPLJSONObject::GetString
    - OGRSpatialReference*::Release
    - Reference
    - std::string::c_str
    - auto::c_str
    - std::string::empty
    - CPLJSONArray::CPLJSONArray
    - CPLJSONObject::GetType
    - OGRSpatialReference*::SetAxisMappingStrategy
    - ConcatenateURLParts
    - CPLJSONArray::IsValid
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::move
    - swap
    - CPLJSONObject::IsValid
    - SetFromUserInput
    - IsGeographic
    - ToArray
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLJSONArray::Size
    - GetType
    - SetDescription
    - OGRSpatialReference*::SetCoordinateEpoch
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - OGROAPIFLayer::ResetReading
    - ResolveURL
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - OGRSpatialReference*::SetFromUserInput
    - fabs
    - HasGISFriendlyAxisOrder
    - ToDouble
    linkageType: ''
    returnType: void
    signature: "void OGROAPIFLayer::OGROAPIFLayer(OGROAPIFDataset *poDS, const CPLString
      &osName,\n                             const CPLJSONArray &oBBOX,\n                             const
      std::string &osBBOXCrs,\n                             std::vector<std::string>
      &&oCRSList,\n                             const std::string &osActiveCRS,\n
      \                            double dfCoordinateEpoch,\n                             const
      CPLJSONArray &oLinks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: OGROAPIFLayer::~OGROAPIFLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::~OGROAPIFLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1450,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1450,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                         OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1454,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1456,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1457,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1458,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1459,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1462,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1467
    functionName: '&

      OGROAPIFLayer::GetSupportedSRSList(int /*iGeomField*/)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - "std::unique_ptr<OGRSpatialReference,\n                                         OGRSpatialReferenceReleaser>"
    - std::move
    - emplace_back
    - auto::SetFromUserInput
    linkageType: ''
    returnType: OGRLayer::GetSupportedSRSListRetType
    signature: 'OGRLayer::GetSupportedSRSListRetType &

      OGROAPIFLayer::GetSupportedSRSList(int /*iGeomField*/)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1482,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1483,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1484,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1485,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1487,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1490,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1493,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1494,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1495,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1496,1
    - Dst: HasGISFriendlyAxisOrder
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1497,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1498,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1500,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1501,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1507
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1507
    functionName: OGROAPIFLayer::SetActiveSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::SetFromUserInput
    - c_str
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGROAPIFLayer::ResetReading
    - GetGeomFieldDefn
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - OGRSpatialReference*::IsGeographic
    - OGRSpatialReference*::Release
    - OGREnvelope
    - SetSpatialFilter
    - OGRSpatialReference::IsSame
    - auto::SetSpatialRef
    - HasGISFriendlyAxisOrder
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROAPIFLayer::SetActiveSRS(int /*iGeomField*/,\n                                   const
      OGRSpatialReference *poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1516,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1519,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1520,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1522,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1523,1
    - Dst: auto::TransformBounds
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1513
    functionDepth: 2
    functionLinenumber: 1513
    functionLinenumberEnd: 1535
    functionName: OGROAPIFLayer::ComputeExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetSpatialRef
    - auto::TransformBounds
    - GetGeomFieldDefn
    - std::unique_ptr<OGRCoordinateTransformation>
    - OGRSpatialReference*::IsSame
    - OGRCreateCoordinateTransformation
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::ComputeExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1543,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1546,1
    - Dst: OGROAPIFLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - oItemAssets
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1548
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1548
    functionName: OGROAPIFLayer::SetItemAssets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROAPIFLayer::GetName
    - emplace_back
    - CPLJSONObject::GetChildren
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::SetItemAssets(const CPLJSONObject &oItemAssets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1557,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1558,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1560,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1560,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1562,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1562,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1564,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - oRoot
    - oObj
    argTypes:
    - CPLJSONObject
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1567
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1567
    functionName: ResolveRefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::Deinit
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::GetString
    - auto::empty
    - CPLJSONObject::GetObj
    - STARTS_WITH
    - auto::c_str
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject ResolveRefs(const CPLJSONObject &oRoot,\n                                 const
      CPLJSONObject &oObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResolveRefs
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1577,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1578,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1580,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1583,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1584,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1585,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1587,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1589,1
    - Dst: BuildExampleRecursively
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1590,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1591,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1593,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1596,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1596,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1601,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1603,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1606,1
    - Dst: BuildExampleRecursively
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1607,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1609,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1609,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1613,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1613,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1621,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1622,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1623,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1625,1
    - Dst: BuildExampleRecursively
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1626,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1628,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1631,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1636,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1637,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1638,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1639,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1641,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1642,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1647,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1648,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1649,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1654,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1655,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1656,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1661,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1662,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1663,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1668,1
    - Dst: CPLJSONObject::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1669,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1670,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - oRes
    - oRoot
    - oObjIn
    argTypes:
    - CPLJSONObject
    - CPLJSONObject
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1675
      start: 1573
    functionDepth: 2
    functionLinenumber: 1573
    functionLinenumberEnd: 1675
    functionName: BuildExampleRecursively
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - auto::GetArray
    - CPLJSONObject::GetType
    - ResolveRefs
    - CPLJSONArray::CPLJSONArray
    - std::move
    - CPLJSONObject::SetNull
    - auto::Size
    - GetName
    - auto::GetChildren
    - CPLJSONArray::Add
    - auto::GetString
    - CPLJSONObject::CPLJSONObject
    - BuildExampleRecursively
    - auto::empty
    - auto::IsValid
    - auto::GetObj
    - CPLJSONObject::GetChildren
    - CPLJSONObject::Set
    - CPLJSONObject::GetObj
    - CPLJSONObject::Add
    linkageType: ''
    returnType: bool
    signature: "bool BuildExampleRecursively(CPLJSONObject &oRes,\n                                    const
      CPLJSONObject &oRoot,\n                                    const CPLJSONObject
      &oObjIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1683,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1684,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1686,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1687,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1690,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1691,1
    - Dst: BuildExampleRecursively
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - osJSONSchema
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1694
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1694
    functionName: GetObjectExampleFromSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::Deinit
    - CPLJSONObject::CPLJSONObject
    - BuildExampleRecursively
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject GetObjectExampleFromSchema(const std::string &osJSONSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1702,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1714,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1716,1
    - Dst: auto::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1718,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1721,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1722,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1722,1
    - Dst: auto::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1723,1
    - Dst: auto::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1736,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1737,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1737,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1738,1
    - Dst: auto::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1745,1
    - Dst: GML_GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1748,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1748,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1753,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1754,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1755,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1755,1
    - Dst: Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1766,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1769,1
    - Dst: GetObjectExampleFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1773,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1776,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1777,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1779,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1780,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1781,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1783,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1784,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1789,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1792,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1796,1
    - Dst: ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1820,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1821,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1823,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1826,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1832,1
    - Dst: OGROAPIFLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1833,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1834,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1835,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1835,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1700
    functionDepth: 4
    functionLinenumber: 1700
    functionLinenumberEnd: 1841
    functionName: OGROAPIFLayer::GetSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetGeometryProperty
    - OGR_GT_GetLinear
    - std::vector::size
    - auto::GetName
    - auto::GetType
    - CPLDebug
    - std::make_unique<OGRFieldDefn>
    - STARTS_WITH
    - auto::SetSubType
    - SetGeomType
    - CPLString::c_str
    - std::move
    - OGROAPIFLayer::GetName
    - auto::Size
    - emplace_back
    - auto::GetChildren
    - GetObjectExampleFromSchema
    - ToArray
    - Download
    - ToString
    - static_cast<OGRwkbGeometryType>
    - GML_GetOGRFieldType
    - auto::GetGeometryPropertyCount
    - GetType
    - auto::IsValid
    - empty
    - auto::GetObj
    - auto::GetProperty
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::GetSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1852
    functionName: OGROAPIFLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROAPIFLayer::EstablishFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGROAPIFLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1860,1
    - Dst: OGROAPIFLayer::GetSchema
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1863,1
    - Dst: DeterminePageSizeFromAPI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1868,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1872,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1873,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1877,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1882,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1882,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1884,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1887,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1888,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1889,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1890,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1892,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1893,1
    - Dst: std::unique_ptr::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1895,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1898,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1899,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1901,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1901,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1903,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1905,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1907,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1907,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1912,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1913,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1913,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1915,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1915,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1919,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1919,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1923,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1925,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1926,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1926,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1928,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1935,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1938,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1941,1
    - Dst: auto::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1942,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1948,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1949,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1949,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1951,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1858
    functionDepth: 2
    functionLinenumber: 1858
    functionLinenumberEnd: 1962
    functionName: OGROAPIFLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - auto::GetArray
    - GetObj
    - CPLJSONDocument::GetRoot
    - strcmp
    - auto::GetLong
    - GetFieldIndex
    - CPLJSONDocument::Save
    - SetGeomType
    - OGRFeatureDefn*::GetGeomType
    - GetGeomType
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - auto::Size
    - OGRFeatureDefn*::GetFieldCount
    - c_str
    - FromHandle
    - VSIUnlink
    - DownloadJSon
    - get
    - CPLSPrintf
    - min
    - CPLAssert
    - DeterminePageSizeFromAPI
    - CPLURLAddKVP
    - std::unique_ptr::GetLayer
    - auto::IsValid
    - auto::GetNameRef
    - OGROAPIFLayer::GetSchema
    - std::unique_ptr::get
    - OGRFeatureDefn*::GetFieldDefn
    - GDALOpenEx
    - empty
    - VSIMemGenerateHiddenFilename
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1970,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1974,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1982,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1983,1
    - Dst: OGROAPIFLayer::AddFilters
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1985,1
    - Dst: CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:1987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 1989
    functionName: OGROAPIFLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 2
    functionsReached:
    - empty
    - CPLSPrintf
    - OGROAPIFLayer::AddFilters
    - CPLURLAddKVP
    - reset
    - CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2007,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2008,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2009,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2010,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2018,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2019,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2021,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2022,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2024,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2027,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2027,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2031,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2033,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2033,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2035,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2037,1
    - Dst: m_osDateTime::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2043,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2045,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2053
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2053
    functionName: OGROAPIFLayer::AddFilters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - CPLSPrintf
    - min
    - max
    - CPLURLAddKVP
    - swap
    - CPLString::find
    - m_osDateTime::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGROAPIFLayer::AddFilters(const CPLString &osURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2062,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2069,1
    - Dst: CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2072,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2075,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2076,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2077,1
    - Dst: CPLStringList::FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2085,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2086,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2088,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2096,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2108,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2112,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2112,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2118,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2121,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2124,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2130,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2131,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2134,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2136,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2141,1
    - Dst: Save
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2142,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2144,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2144,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2145,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2147,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2148,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2152,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2155,1
    - Dst: OGROAPIFLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2163,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2163,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2165,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2166,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2170,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2173,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2178,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2178,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2181,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2185,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2188,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2190,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2194,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2197,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2203,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2205,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2207,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2208,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2209,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2210,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2220,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2229,1
    - Dst: ResolveURL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2231,1
    - Dst: OGROAPIFLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2237,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2242,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2247,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2248,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2251,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2252,1
    - Dst: OGROAPIFLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2253,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2254,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2257,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2262,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2262,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2264,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2264,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2265,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2271,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2276,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2277,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2277,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2281,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2281,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2285,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2059
    functionDepth: 3
    functionLinenumber: 2059
    functionLinenumberEnd: 2290
    functionName: OGROAPIFLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetFID
    - auto::assignSpatialReference
    - CPLJSONObject::GetString
    - auto::GetType
    - CPLDebug
    - OGROAPIFLayer::EstablishFeatureDefn
    - OGRFeature*::SetFrom
    - GetLayer
    - std::string::c_str
    - CPLStringList::CPLStringList
    - std::string::empty
    - CPLJSONObject::GetType
    - CPLJSONArray::IsValid
    - std::move
    - CPLJSONObject::IsValid
    - CPLStringList::size
    - resize
    - auto::swapXY
    - auto::ToString
    - OGROAPIFLayer::GetNextFeature
    - c_str
    - STARTS_WITH_CI
    - FromHandle
    - GetSpatialRef
    - OGRFeature*::GetFID
    - VSIUnlink
    - DownloadJSon
    - get
    - auto::empty
    - CPLJSONArray::Size
    - strstr
    - auto::IsValid
    - OGRFeature::OGRFeature
    - OGRFeature*::GetGeometryRef
    - std::unique_ptr<GDALDataset>
    - OGROAPIFLayer::GetFeatureCount
    - GDALOpenEx
    - empty
    - ResolveURL
    - EQUAL
    - GetRoot
    - OGRFeature*::SetField
    - reset
    - VSIMemGenerateHiddenFilename
    - CPLJSONDocument
    - Save
    - CPLStringList::FetchNameValueDef
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROAPIFLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2299,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2301,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2303,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2304,1
    - Dst: OGROAPIFLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2305,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2306,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2309
      start: 2296
    functionDepth: 4
    functionLinenumber: 2296
    functionLinenumberEnd: 2309
    functionName: OGROAPIFLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROAPIFLayer::ResetReading
    - OGROAPIFLayer::GetNextRawFeature
    - Printf
    - OGROAPIFLayer::EstablishFeatureDefn
    - OGRLayer::GetFeature
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROAPIFLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2319,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2324,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2324,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2315
    functionDepth: 4
    functionLinenumber: 2315
    functionLinenumberEnd: 2335
    functionName: OGROAPIFLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - FilterGeometry
    - OGROAPIFLayer::GetNextRawFeature
    - Evaluate
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROAPIFLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAPIDoc
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2344,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2345,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2349,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2351,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2353,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2356,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2357,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2357,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2359,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2359,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2368,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2369,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2371,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2372,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2374,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2382
    functionName: OGROAPIFLayer::SupportsResultTypeHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLString::substr
    - ToString
    - GetAPIDoc
    - CPLJSONArray::IsValid
    - CPLJSONObject::GetString
    - CPLJSONDocument::GetRoot
    - CPLJSONArray::Size
    - CPLJSONObject::GetArray
    - CPLString::find
    - CPLString::empty
    linkageType: ''
    returnType: bool
    signature: bool OGROAPIFLayer::SupportsResultTypeHits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_osDateTime::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2392,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2398,1
    - Dst: OGROAPIFLayer::SupportsResultTypeHits
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2405,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2408,1
    - Dst: OGROAPIFLayer::AddFilters
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2409,1
    - Dst: Download
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2419,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2422,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2426,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2427,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2428,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2430,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2431,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2437,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2438,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2440,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2448
      start: 2388
    functionDepth: 2
    functionLinenumber: 2388
    functionLinenumberEnd: 2448
    functionName: OGROAPIFLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - OGROAPIFLayer::GetLayerDefn
    - Download
    - OGRLayer::GetFeatureCount
    - CPLAtoGIntBig
    - DownloadJSon
    - OGROAPIFLayer::AddFilters
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - CPLURLAddKVP
    - CPLJSONDocument::GetRoot
    - CPL_IGNORE_RET_VAL
    - CPLJSONDocument::CPLJSONDocument
    - CPLGetXMLValue
    - OGROAPIFLayer::SupportsResultTypeHits
    - m_osDateTime::empty
    - CPLString::empty
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROAPIFLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2457,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2459,1
    - Dst: OGROAPIFLayer::ComputeExtent
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2460,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - iGeomField
    - psEnvelope
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 2465
      start: 2454
    functionDepth: 3
    functionLinenumber: 2454
    functionLinenumberEnd: 2465
    functionName: OGROAPIFLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    - OGRLayer::IGetExtent
    - OGROAPIFLayer::ComputeExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROAPIFLayer::IGetExtent(int iGeomField, OGREnvelope *psEnvelope,\n
      \                                bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2473,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2477
      start: 2471
    functionDepth: 1
    functionLinenumber: 2471
    functionLinenumberEnd: 2477
    functionName: OGROAPIFLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGROAPIFLayer::ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROAPIFLayer::ISetSpatialFilter(int, const OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - pszValue
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2493
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2493
    functionName: OGRWF3ParseDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: "int OGRWF3ParseDateTime(const char *pszValue, int &nYear, int &nMonth,\n
      \                              int &nDay, int &nHour, int &nMinute,\n                               int
      &nSecond)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2504,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2507,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2509,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - nDateComponents
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2515
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2515
    functionName: SerializeDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - CPLSPrintf
    linkageType: ''
    returnType: CPLString
    signature: "CPLString SerializeDateTime(int nDateComponents, int nYear, int nMonth,\n
      \                                  int nDay, int nHour, int nMinute,\n                                   int
      nSecond)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2547,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2549,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2550,1
    - Dst: SerializeDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2563,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2567,1
    - Dst: SerializeDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2578,1
    - Dst: OGROAPIFLayer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2588,1
    - Dst: OGROAPIFLayer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2589,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2590,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2590,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2594,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2606,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2611,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2611,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2617,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2617,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2618,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2623,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2632,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2640,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2645,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2646,1
    - Dst: OGRWF3ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2648,1
    - Dst: SerializeDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2652,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2667,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2672,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2673,1
    - Dst: OGRWF3ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2674,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2691,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 56
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 2692
      start: 2521
    functionDepth: 2
    functionLinenumber: 2521
    functionLinenumberEnd: 2692
    functionName: OGROAPIFLayer::BuildFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - end
    - OGROAPIFLayer::GetLayerDefn
    - OGRFieldDefn*::GetNameRef
    - OGRWF3ParseDateTime
    - find
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - strcmp
    - CPLString
    - OGROAPIFLayer::BuildFilter
    - CPLFree
    - CPLString::empty
    - SerializeDateTime
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGROAPIFLayer::BuildFilter(const swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2708,1
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2709,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2710,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2710,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2714,1
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2725,1
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2726,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2727,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2727,1
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2736,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2737,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2748,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2751,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2751,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2766,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2768,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2768,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2774,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2774,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2775,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2777,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2805,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2811,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2820,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2826,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2834,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2835,1
    - Dst: OGRWF3ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2836,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2853,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 84
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 2854
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2854
    functionName: OGROAPIFLayer::BuildFilterCQLText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - end
    - OGROAPIFLayer::GetLayerDefn
    - OGRFieldDefn*::GetNameRef
    - OGRWF3ParseDateTime
    - find
    - CPLSPrintf
    - OGROAPIFLayer::BuildFilterCQLText
    - strcmp
    - CPLAssert
    - OGRFieldDefn*::GetType
    - CPLString
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGROAPIFLayer::BuildFilterCQLText(const swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2870,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2871,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2872,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2872,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2876,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2887,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2888,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2889,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2889,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2898,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2899,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2908,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2909,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2928,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2929,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2929,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2932,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2961,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2965,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2966,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2967,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2967,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2980,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2982,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2982,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2983,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2986,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2986,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:2998,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3007,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3011,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3034,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 95
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3035
      start: 2860
    functionDepth: 1
    functionLinenumber: 2860
    functionLinenumberEnd: 3035
    functionName: OGROAPIFLayer::BuildFilterJSONFilterExpr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 1
    functionsReached:
    - end
    - OGROAPIFLayer::GetLayerDefn
    - OGRFieldDefn*::GetNameRef
    - find
    - CPLSPrintf
    - strcmp
    - OGROAPIFLayer::BuildFilterJSONFilterExpr
    - CPLAssert
    - CPLString
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGROAPIFLayer::BuildFilterJSONFilterExpr(const swq_expr_node
      *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAPIDoc
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3047,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3048,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3051,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3053,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3054,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3056,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3060,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3063,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3064,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3064,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3066,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3066,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3068,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3070,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3073,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3074,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3076,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3079,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3081,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3084,1
    - Dst: OGROAPIFLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3088,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3088,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3090,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3096,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3096,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3101,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3103,1
    - Dst: DownloadJSon
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3104,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3106,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3107,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3109,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3110,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3112,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 3041
    functionDepth: 1
    functionLinenumber: 3041
    functionLinenumberEnd: 3118
    functionName: OGROAPIFLayer::GetQueryableAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - GetString
    - CPLJSONObject::GetString
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLGetConfigOption
    - CPLString::empty
    - auto::c_str
    - CPLString::substr
    - insert
    - CPLJSONArray::IsValid
    - auto::Size
    - CPLTestBool
    - ToString
    - GetAPIDoc
    - DownloadJSon
    - auto::empty
    - CPLJSONArray::Size
    - CPLString::find
    - empty
    - OGROAPIFLayer::GetLayerDefn
    - CPLJSONObject::GetObj
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void OGROAPIFLayer::GetQueryableAttributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3131,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3133,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3135,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3137,1
    - Dst: OGROAPIFLayer::GetQueryableAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3140,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3143,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3143,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3145,1
    - Dst: OGROAPIFLayer::BuildFilterCQLText
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3149,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3150,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3157,1
    - Dst: OGROAPIFLayer::BuildFilterJSONFilterExpr
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3162,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3163,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3170,1
    - Dst: OGROAPIFLayer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3175,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3177,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3179,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3183,1
    - Dst: OGROAPIFLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3192
      start: 3124
    functionDepth: 3
    functionLinenumber: 3124
    functionLinenumberEnd: 3192
    functionName: OGROAPIFLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - CPLFree
    - empty
    - OGRLayer::SetAttributeFilter
    - OGROAPIFLayer::ResetReading
    - CPLDebug
    - static_cast<swq_expr_node *>
    - OGROAPIFLayer::BuildFilterJSONFilterExpr
    - OGROAPIFLayer::EstablishFeatureDefn
    - GetSWQExpr
    - OGROAPIFLayer::BuildFilter
    - OGROAPIFLayer::GetQueryableAttributes
    - OGROAPIFLayer::BuildFilterCQLText
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROAPIFLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3205,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3207,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3215
      start: 3198
    functionDepth: 0
    functionLinenumber: 3198
    functionLinenumberEnd: 3215
    functionName: OGROAPIFLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - IsInit
    linkageType: ''
    returnType: int
    signature: int OGROAPIFLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROAPIFDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3224,1
    - Dst: std::make_unique<OGROAPIFDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3226,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3227,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 3230
      start: 3221
    functionDepth: 1
    functionLinenumber: 3221
    functionLinenumberEnd: 3230
    functionName: OGROAPIFDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - std::make_unique<OGROAPIFDataset>
    - auto::release
    - OGROAPIFDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROAPIFDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3239,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3242,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3244,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3245,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3246,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3247,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3249,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3250,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3252,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp:3288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3236
    functionDepth: 1
    functionLinenumber: 3236
    functionLinenumberEnd: 3289
    functionName: RegisterOGROAPIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oapif/ogroapifdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGROAPIF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:43,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:58,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:65,1
    - Dst: WFS_ExprDumpGmlObjectIdFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:77,1
    - Dst: WFS_ExprDumpGmlObjectIdFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:80,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 5
    argNames:
    - osFilter
    - poExpr
    - bUseFeatureId
    - bGmlObjectIdNeedsGMLPrefix
    - nVersion
    argTypes:
    - CPLString
    - swq_expr_node*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 86
    functionName: WFS_ExprDumpGmlObjectIdFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 1
    functionsReached:
    - WFS_ExprDumpGmlObjectIdFilter
    - strcmp
    - CPLFree
    - CPLSPrintf
    linkageType: ''
    returnType: bool
    signature: "bool WFS_ExprDumpGmlObjectIdFilter(CPLString &osFilter,\n                                          const
      swq_expr_node *poExpr,\n                                          int bUseFeatureId,\n
      \                                         int bGmlObjectIdNeedsGMLPrefix,\n
      \                                         int nVersion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:97,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:99,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:104,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:109,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - osFilter
    - poExpr
    argTypes:
    - CPLString
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 120
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 120
    functionName: WFS_ExprDumpRawLitteral
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLSPrintf
    - OGRParseDate
    linkageType: ''
    returnType: bool
    signature: "bool WFS_ExprDumpRawLitteral(CPLString &osFilter,\n                                    const
      swq_expr_node *poExpr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:134,1
    - Dst: OGRSpatialReference::importFromEPSGA
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:143,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:143,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:146,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:148,1
    - Dst: ExprDumpFilterOptions*::poSRS::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:155,1
    - Dst: ExprDumpFilterOptions*::poSRS::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:155,1
    - Dst: ExprDumpFilterOptions*::poSRS::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:156,1
    - Dst: OGRSpatialReference::importFromEPSGA
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:157,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:157,1
    - Dst: ExprDumpFilterOptions*::poSRS::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:158,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:160,1
    - Dst: ExprDumpFilterOptions*::poSRS::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:161,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - poExpr
    - iSubArgIndex
    - psOptions
    - oSRS
    argTypes:
    - swq_expr_node*
    - int
    - ExprDumpFilterOptions*
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 165
      start: 126
    functionDepth: 6
    functionLinenumber: 126
    functionLinenumberEnd: 165
    functionName: WFS_ExprGetSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - static_cast<int>
    - atoi
    - CPLSPrintf
    - EQUAL
    - ExprDumpFilterOptions*::poSRS::GetAuthorityCode
    - OGRSpatialReference::importFromEPSGA
    - ExprDumpFilterOptions*::poSRS::GetAuthorityName
    linkageType: ''
    returnType: char
    signature: "char *WFS_ExprGetSRSName(const swq_expr_node *poExpr,\n                                      int
      iSubArgIndex,\n                                      ExprDumpFilterOptions *psOptions,\n
      \                                     OGRSpatialReference &oSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:187,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:189,1
    - Dst: ExprDumpFilterOptions*::poFDefn::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:202,1
    - Dst: ExprDumpFilterOptions*::poFDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:206,1
    - Dst: ExprDumpFilterOptions*::poFDefn::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:208,1
    - Dst: ExprDumpFilterOptions*::poFDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:212,1
    - Dst: ExprDumpFilterOptions*::poDS::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:218,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:221,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:223,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:227,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:227,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:228,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:230,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:233,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:234,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:235,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:246,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:251,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:260,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:262,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:265,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:268,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:270,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:280,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:281,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:283,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:293,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:294,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:297,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:312,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:317,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:320,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:350,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:351,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:352,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:358,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:359,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:362,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:375,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:408,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:411,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:419,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:430,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:433,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:444,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:446,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:456,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:457,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:458,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:463,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:467,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:472,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:476,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:485,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:487,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:491,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:493,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:496,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:498,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:500,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:503,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:505,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:508,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:509,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:513,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:544,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:546,1
    - Dst: ExprDumpFilterOptions*::poFDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:561,1
    - Dst: ExprDumpFilterOptions*::poDS::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:567,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:571,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:576,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:591,1
    - Dst: WFS_ExprDumpRawLitteral
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:592,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:594,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 239
    argCount: 4
    argNames:
    - osFilter
    - poExpr
    - bExpectBinary
    - psOptions
    argTypes:
    - CPLString
    - swq_expr_node*
    - int
    - ExprDumpFilterOptions*
    constantsTouched: []
    func_position:
      end: 604
      start: 171
    functionDepth: 7
    functionLinenumber: 171
    functionLinenumberEnd: 604
    functionName: WFS_ExprDumpAsOGCFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - CPLDebug
    - OGRFeatureDefn*::GetFieldIndex
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - OGRSpatialReference::SetAxisMappingStrategy
    - ExprDumpFilterOptions*::poFDefn::GetFieldDefn
    - ExprDumpFilterOptions*::poFDefn::GetFieldIndex
    - OGRFeatureDefn*::GetGeomFieldDefn
    - ExprDumpFilterOptions*::poFDefn::GetGeomFieldIndex
    - OGRLayer*::GetLayerDefn
    - STARTS_WITH_CI
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRLayer*::GetName
    - CPLSPrintf
    - ExprDumpFilterOptions*::poFDefn::GetGeomFieldDefn
    - CPLFree
    - ExprDumpFilterOptions*::poDS::GetLayerByName
    - OGRFeatureDefn*::GetFieldDefn
    - WFS_ExprDumpAsOGCFilter
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - EQUAL
    - WFS_ExprDumpRawLitteral
    - OGRGeometryFactory::createFromWkt
    - CSLSetNameValue
    linkageType: ''
    returnType: bool
    signature: "bool WFS_ExprDumpAsOGCFilter(CPLString &osFilter,\n                                    const
      swq_expr_node *poExpr,\n                                    int bExpectBinary,\n
      \                                   ExprDumpFilterOptions *psOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WFS_ExprDumpGmlObjectIdFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:620,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:626,1
    - Dst: WFS_ExprDumpAsOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 9
    argNames:
    - poExpr
    - poDS
    - poFDefn
    - nVersion
    - bPropertyIsNotEqualToSupported
    - bUseFeatureId
    - bGmlObjectIdNeedsGMLPrefix
    - pszNSPrefix
    - pbOutNeedsNullCheck
    argTypes:
    - swq_expr_node*
    - GDALDataset*
    - OGRFeatureDefn*
    - int
    - int
    - int
    - int
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 642
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 642
    functionName: WFS_TurnSQLFilterToOGCFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 3
    functionsReached:
    - WFS_ExprDumpGmlObjectIdFilter
    - WFS_ExprDumpAsOGCFilter
    - CPL_TO_BOOL
    linkageType: ''
    returnType: CPLString
    signature: "CPLString WFS_TurnSQLFilterToOGCFilter(const swq_expr_node *poExpr,
      GDALDataset *poDS,\n                             OGRFeatureDefn *poFDefn, int
      nVersion,\n                             int bPropertyIsNotEqualToSupported,\n
      \                            int bUseFeatureId, int bGmlObjectIdNeedsGMLPrefix,\n
      \                            const char *pszNSPrefix, int *pbOutNeedsNullCheck)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - op
    - bAllowMismatchTypeOnFieldComparison
    argTypes:
    - swq_expr_node*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 668
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 668
    functionName: OGRWFSSpatialBooleanPredicateChecker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type OGRWFSSpatialBooleanPredicateChecker(\n    swq_expr_node
      *op, CPL_UNUSED int bAllowMismatchTypeOnFieldComparison)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:678,1
    - Dst: OGRSpatialReference::importFromEPSGA
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:679,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:679,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:682,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:690,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:691,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:694,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - op
    - iSubArgIndex
    argTypes:
    - swq_expr_node*
    - int
    constantsTouched: []
    func_position:
      end: 708
      start: 674
    functionDepth: 6
    functionLinenumber: 674
    functionLinenumberEnd: 708
    functionName: OGRWFSCheckSRIDArg
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - static_cast<int>
    - OGRSpatialReference::importFromEPSGA
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRWFSCheckSRIDArg(swq_expr_node *op, int iSubArgIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:720,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:730,1
    - Dst: OGRWFSCheckSRIDArg
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - op
    - bAllowMismatchTypeOnFieldComparison
    argTypes:
    - swq_expr_node*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 742
      start: 714
    functionDepth: 7
    functionLinenumber: 714
    functionLinenumberEnd: 742
    functionName: OGRWFSMakeEnvelopeChecker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRWFSCheckSRIDArg
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type OGRWFSMakeEnvelopeChecker(swq_expr_node *op,\n                          CPL_UNUSED
      int bAllowMismatchTypeOnFieldComparison)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:760,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:766,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:769,1
    - Dst: OGRWFSCheckSRIDArg
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - op
    - bAllowMismatchTypeOnFieldComparison
    argTypes:
    - swq_expr_node*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 780
      start: 748
    functionDepth: 7
    functionLinenumber: 748
    functionLinenumberEnd: 780
    functionName: OGRWFSGeomFromTextChecker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRWFSCheckSRIDArg
    - OGRGeometryFactory::createFromWkt
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type OGRWFSGeomFromTextChecker(swq_expr_node *op,\n                          CPL_UNUSED
      int bAllowMismatchTypeOnFieldComparison)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:792,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:800,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - op
    - bAllowMismatchTypeOnFieldComparison
    argTypes:
    - swq_expr_node*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 816
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 816
    functionName: OGRWFSDWithinBeyondChecker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: swq_field_type
    signature: "swq_field_type OGRWFSDWithinBeyondChecker(swq_expr_node *op,\n                           CPL_UNUSED
      int bAllowMismatchTypeOnFieldComparison)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 827
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 827
    functionName: OGRWFSCustomFuncRegistrar::OGRWFSCustomFuncRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWFSCustomFuncRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWFSCustomFuncRegistrar::OGRWFSCustomFuncRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: WFSGetCustomFuncRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 2
    functionsReached:
    - OGRWFSCustomFuncRegistrar::OGRWFSCustomFuncRegistrar
    linkageType: ''
    returnType: swq_custom_func_registrar
    signature: swq_custom_func_registrar *WFSGetCustomFuncRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 880
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 880
    functionName: OGRWFSCustomFuncRegistrar::GetOperator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/ogrwfsfilter.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: swq_operation
    signature: swq_operation *OGRWFSCustomFuncRegistrar::GetOperator(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFullValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: StripNS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *StripNS(const char *pszFullValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:59,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:66,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:67,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:71,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:77,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:83,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:88,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:92,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:97,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:101,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:111,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:116,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:120,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:126,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:132,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:144,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - psTypeNode
    - pGMLType
    - pnWidth
    - pnPrecision
    argTypes:
    - CPLXMLNode*
    - GMLPropertyType*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 151
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 151
    functionName: GetSimpleTypeProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - atoi
    linkageType: ''
    returnType: bool
    signature: "bool GetSimpleTypeProperties(CPLXMLNode *psTypeNode,\n                                    GMLPropertyType
      *pGMLType, int *pnWidth,\n                                    int *pnPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:167,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:167,1
    - Dst: GetSimpleTypeProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - psSchemaNode
    - pszStrippedNSType
    - pGMLType
    - pnWidth
    - pnPrecision
    argTypes:
    - CPLXMLNode*
    - char*
    - GMLPropertyType*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: LookForSimpleType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLGetXMLValue
    - GetSimpleTypeProperties
    linkageType: ''
    returnType: bool
    signature: "bool LookForSimpleType(CPLXMLNode *psSchemaNode,\n                              const
      char *pszStrippedNSType,\n                              GMLPropertyType *pGMLType,
      int *pnWidth,\n                              int *pnPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - psNode
    - pszExpectedValue
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: GetSingleChildElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *GetSingleChildElement(CPLXMLNode *psNode,\n                                         const
      char *pszExpectedValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:219,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:220,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: CheckMinMaxOccursCardinality
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int CheckMinMaxOccursCardinality(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - eType
    argTypes:
    - GMLPropertyType
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: GetListTypeFromSingleType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLPropertyType
    signature: GMLPropertyType GetListTypeFromSingleType(GMLPropertyType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:297,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:297,1
    - Dst: GMLParseFeatureType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - psSchemaNode
    - pszName
    - pszType
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 306
    functionName: GMLParseFeatureType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLGetXMLValue
    - GMLParseFeatureType
    linkageType: ''
    returnType: GMLFeatureClass
    signature: "GMLFeatureClass *GMLParseFeatureType(CPLXMLNode *psSchemaNode,\n                                            const
      char *pszName,\n                                            const char *pszType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:317,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:328,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:341,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:356,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:365,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:371,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:375,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:395,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:395,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:403,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:426,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:430,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:434,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:436,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:439,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:441,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:446,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:448,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:451,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:453,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:457,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:462,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:463,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:474,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:477,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:480,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:483,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:494,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:495,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:497,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:499,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:519,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:528,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:530,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:530,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:540,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:549,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:558,1
    - Dst: GMLGeometryPropertyDefn*::SetSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:561,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:563,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:582,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:589,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:590,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:592,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:596,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:603,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:605,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:609,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:613,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:620,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:622,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:624,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:627,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:631,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:641,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:643,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:647,1
    - Dst: LookForSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:658,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:672,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:675,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:677,1
    - Dst: GetListTypeFromSingleType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:678,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:680,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:681,1
    - Dst: GMLPropertyDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:682,1
    - Dst: GMLPropertyDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:683,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:686,1
    - Dst: GMLPropertyDefn*::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:692,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:695,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:704,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:710,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:715,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:716,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:718,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:722,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:723,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:732,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:737,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:745,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:749,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:769,1
    - Dst: GetSingleChildElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:786,1
    - Dst: GetSingleChildElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:788,1
    - Dst: GetSingleChildElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:790,1
    - Dst: CheckMinMaxOccursCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:793,1
    - Dst: CheckMinMaxOccursCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:795,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:796,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:796,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:799,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:803,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:821,1
    - Dst: GetSimpleTypeProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:826,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:828,1
    - Dst: GetListTypeFromSingleType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:829,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:831,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:832,1
    - Dst: GMLPropertyDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:833,1
    - Dst: GMLPropertyDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:834,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:836,1
    - Dst: GMLPropertyDefn*::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:842,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:845,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:853,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:855,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:856,1
    - Dst: GMLFeatureClass*::SetSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:862,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 228
    argCount: 3
    argNames:
    - psSchemaNode
    - pszName
    - psComplexType
    argTypes:
    - CPLXMLNode*
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 865
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 865
    functionName: GMLParseFeatureType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 1
    functionsReached:
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - strncmp
    - CPLDebug
    - GetSingleChildElement
    - strcmp
    - CPLGetXMLValue
    - STARTS_WITH
    - GMLPropertyDefn*::SetPrecision
    - GMLPropertyDefn::GMLPropertyDefn
    - std::string::find
    - LookForSimpleType
    - GMLFeatureClass*::AddProperty
    - GMLPropertyDefn*::SetDocumentation
    - GMLPropertyDefn*::SetNullable
    - strlen
    - GMLPropertyDefn*::SetWidth
    - GMLPropertyDefn*::SetType
    - GMLFeatureClass*::GetGeometryPropertyCount
    - CheckMinMaxOccursCardinality
    - std::string::clear
    - CPLSPrintf
    - static_cast<OGRwkbGeometryType>
    - GMLGeometryPropertyDefn*::SetSRSName
    - std::string::resize
    - GetSimpleTypeProperties
    - strstr
    - GetListTypeFromSingleType
    - GMLFeatureClass::GMLFeatureClass
    - GMLFeatureClass*::AddGeometryProperty
    - std::isfinite
    - CPLGetXMLNode
    - EQUAL
    - GMLFeatureClass*::SetSchemaLocked
    - GMLFeatureClass*::GetGeometryProperty
    linkageType: ''
    returnType: GMLFeatureClass
    signature: "GMLFeatureClass *GMLParseFeatureType(CPLXMLNode *psSchemaNode,\n                                            const
      char *pszName,\n                                            CPLXMLNode *psComplexType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 884
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 884
    functionName: ExcludeBaseGMLSchemas
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    linkageType: ''
    returnType: bool
    signature: bool ExcludeBaseGMLSchemas(const std::string &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:892,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:893,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:896,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:901,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:902,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:904,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 912
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 912
    functionName: GMLParseXMLFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - CPLParseXMLFile
    - CPLParseXMLString
    - CPLHTTPDestroyResult
    - STARTS_WITH
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLParseXMLFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 930
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 930
    functionName: CPLGetFirstChildNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *CPLGetFirstChildNode(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 942
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 942
    functionName: CPLGetLastNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *CPLGetLastNode(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:964,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:967,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:969,1
    - Dst: ExcludeBaseGMLSchemas
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:970,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:973,1
    - Dst: std::set::count
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:974,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:976,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:978,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:978,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:979,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:979,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:980,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:980,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:982,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:983,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:984,1
    - Dst: GMLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:988,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:988,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:991,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:993,1
    - Dst: CPLGetFirstChildNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:998,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1002,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1009,1
    - Dst: CPLGetLastNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1010,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1018,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1031,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 3
    argNames:
    - pszMainSchemaLocation
    - psSchemaNode
    - bUseSchemaImports
    argTypes:
    - char*
    - CPLXMLNode*
    - bool
    constantsTouched: []
    func_position:
      end: 1033
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 1033
    functionName: CPLXMLSchemaResolveInclude
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - CPLGetLastNode
    - GMLParseXMLFile
    - CPLSerializeXMLTreeToFile
    - CPLGetXMLValue
    - STARTS_WITH
    - std::string::c_str
    - std::string::empty
    - CPLCloneXMLTree
    - CPLIsFilenameRelative
    - std::set::count
    - CPLDestroyXMLNode
    - CPLStripXMLNamespace
    - ExcludeBaseGMLSchemas
    - CPLGetFirstChildNode
    - CPLFormFilenameSafe
    - CPLGetPathSafe
    - CPLGetXMLNode
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void CPLXMLSchemaResolveInclude(const char *pszMainSchemaLocation,\n
      \                                      CPLXMLNode *psSchemaNode,\n                                       bool
      bUseSchemaImports)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1052,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1063,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1064,1
    - Dst: StripNS
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1064,1
    - Dst: StripNS
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1070
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1070
    functionName: GetUniqueConstraints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - std::set::insert
    - std::pair
    - StripNS
    linkageType: ''
    returnType: std::set<std::pair<std::string, std::string>>
    signature: std::set<std::pair<std::string, std::string>> GetUniqueConstraints(const
      CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1089,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1097,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1102,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1105,1
    - Dst: CPLXMLSchemaResolveInclude
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1112,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1132,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1155,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1157,1
    - Dst: GetUniqueConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1165,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1178,1
    - Dst: GMLParseFeatureType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1182,1
    - Dst: std::vector<GMLFeatureClass *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1184,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1190,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1191,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1192,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1206,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1207,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1207,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1208,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1208,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1209,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1209,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1209,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1210,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1214,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1214,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1215,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1215,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1216,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1216,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1217,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1217,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1224,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1224,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1225,1
    - Dst: GMLParseFeatureType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1229,1
    - Dst: std::vector<GMLFeatureClass *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1231,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1236,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1243,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1246,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1246,1
    - Dst: auto::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1249,1
    - Dst: std::vector<GMLFeatureClass *>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp:1256,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 59
    argCount: 4
    argNames:
    - pszFile
    - bUseSchemaImports
    - aosClasses
    - bFullyUnderstood
    argTypes:
    - char*
    - bool
    - std::vector<GMLFeatureClass *>
    - bool
    constantsTouched: []
    func_position:
      end: 1257
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1257
    functionName: GMLParseXSD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/parsexsd.cpp
    functionUses: 1
    functionsReached:
    - CPLXMLSchemaResolveInclude
    - std::vector<GMLFeatureClass *>::empty
    - strncmp
    - GMLParseXMLFile
    - strcmp
    - EQUALN
    - STARTS_WITH
    - auto::SetUnique
    - GMLFeatureClass*::GetProperty
    - strlen
    - second::c_str
    - CPLDestroyXMLNode
    - CPLStripXMLNamespace
    - strstr
    - GMLFeatureClass*::GetName
    - GetUniqueConstraints
    - CPLGetXMLNode
    - EQUAL
    - GMLParseFeatureType
    - std::vector<GMLFeatureClass *>::push_back
    linkageType: ''
    returnType: bool
    signature: "bool GMLParseXSD(const char *pszFile, bool bUseSchemaImports,\n                 std::vector<GMLFeatureClass
      *> &aosClasses,\n                 bool &bFullyUnderstood)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:27,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:28,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszName
    - pszSrcElement
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: GMLPropertyDefn::GMLPropertyDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 1
    functionsReached:
    - strlen
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLPropertyDefn::GMLPropertyDefn(const char *pszName, const char
      *pszSrcElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:40,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:41,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: GMLPropertyDefn::~GMLPropertyDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLPropertyDefn::~GMLPropertyDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:52,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:55,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszSrcElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: GMLPropertyDefn::SetSrcElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - strlen
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLPropertyDefn::SetSrcElement(const char *pszSrcElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:71,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszCondition
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: GMLPropertyDefn::SetCondition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLPropertyDefn::SetCondition(const char *pszCondition)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:126,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:132,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:133,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:139,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:140,1
    - Dst: SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:166,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:176,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:177,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:191,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:192,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 60
    argCount: 2
    argNames:
    - psGMLProperty
    - bSetWidth
    argTypes:
    - GMLProperty*
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 196
    functionName: GMLPropertyDefn::AnalysePropertyValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPL_INT64_FITS_ON_INT32
    - CPLAtoGIntBig
    - strcmp
    - SetWidth
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void GMLPropertyDefn::AnalysePropertyValue(const GMLProperty *psGMLProperty,\n
      \                                          bool bSetWidth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:208,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - pszName
    - pszSrcElement
    - nType
    - nAttributeIndex
    - bNullable
    - oCoordPrec
    argTypes:
    - char*
    - char*
    - OGRwkbGeometryType
    - int
    - bool
    - OGRGeomCoordinatePrecision
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void GMLGeometryPropertyDefn::GMLGeometryPropertyDefn(\n    const
      char *pszName, const char *pszSrcElement, OGRwkbGeometryType nType,\n    int
      nAttributeIndex, bool bNullable,\n    const OGRGeomCoordinatePrecision &oCoordPrec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:221,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: GMLGeometryPropertyDefn::~GMLGeometryPropertyDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLGeometryPropertyDefn::~GMLGeometryPropertyDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:235,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - osSRSName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 247
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 247
    functionName: GMLGeometryPropertyDefn::MergeSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void GMLGeometryPropertyDefn::MergeSRSName(const std::string &osSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:75,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:89,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 190
    functionName: GMLPropertyDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLStrdup
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL GMLPropertyDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:207,1
    - Dst: GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:210,1
    - Dst: OGRGeomCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 264
    functionName: GMLGeometryPropertyDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h
    functionUses: 2
    functionsReached:
    - GMLGeometryPropertyDefn
    - CPL_DISALLOW_COPY_ASSIGN
    - OGRGeomCoordinatePrecision
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL GMLGeometryPropertyDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:302,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:329,1
    - Dst: GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 405
    functionName: GMLFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h
    functionUses: 1
    functionsReached:
    - GetProperty
    - GetPropertyIndex
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL GMLFeatureClass
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 475
    functionName: GMLFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.h
    functionUses: 0
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL GMLFeature
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:37,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:38,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: GMLFeatureClass::GMLFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 1
    functionsReached:
    - strlen
    - static_cast<int>
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::GMLFeatureClass(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:55,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:60,1
    - Dst: GMLFeatureClass::ClearGeometryProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:62,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: GMLFeatureClass::~GMLFeatureClass()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - GMLFeatureClass::ClearGeometryProperties
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::~GMLFeatureClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:74,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:76,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: GMLFeatureClass::StealProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - clear
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::StealProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: GMLFeatureClass::StealGeometryProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::StealGeometryProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:97,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: GMLFeatureClass::SetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::SetName(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: GMLFeatureClass::GetProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLPropertyDefn
    signature: GMLPropertyDefn *GMLFeatureClass::GetProperty(int iIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:121,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:121,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: GMLFeatureClass::GetPropertyIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - CPLString
    linkageType: ''
    returnType: int
    signature: int GMLFeatureClass::GetPropertyIndex(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:137,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:137,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszElement
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: GMLFeatureClass::GetPropertyIndexBySrcElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - CPLString
    linkageType: ''
    returnType: int
    signature: "int GMLFeatureClass::GetPropertyIndexBySrcElement(const char *pszElement,\n
      \                                                 int nLen) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLFeatureClass::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:151,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:151,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:153,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:156,1
    - Dst: static_cast<GMLPropertyDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:161,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:162,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:170,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:185,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:185,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:186,1
    - Dst: GMLPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:186,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:187,1
    - Dst: GMLPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - poDefn
    - iPos
    argTypes:
    - GMLPropertyDefn*
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 193
    functionName: GMLFeatureClass::AddProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - GMLPropertyDefn*::GetName
    - end
    - GMLPropertyDefn*::GetSrcElement
    - static_cast<GMLPropertyDefn **>
    - find
    - CPLRealloc
    - CPLString
    - CPLError
    - GMLFeatureClass::GetProperty
    - memmove
    linkageType: ''
    returnType: int
    signature: int GMLFeatureClass::AddProperty(GMLPropertyDefn *poDefn, int iPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: GMLFeatureClass::GetGeometryProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLGeometryPropertyDefn
    signature: GMLGeometryPropertyDefn *GMLFeatureClass::GetGeometryProperty(int iIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:216,1
    - Dst: GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: GMLFeatureClass::GetGeometryPropertyIndexBySrcElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - GetSrcElement
    linkageType: ''
    returnType: int
    signature: "int GMLFeatureClass::GetGeometryPropertyIndexBySrcElement(\n    const
      char *pszElement) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLFeatureClass::GetGeometryPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:229,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:231,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:234,1
    - Dst: static_cast<GMLGeometryPropertyDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:239,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - poDefn
    argTypes:
    - GMLGeometryPropertyDefn*
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: GMLFeatureClass::AddGeometryProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GMLGeometryPropertyDefn **>
    - GMLGeometryPropertyDefn*::GetSrcElement
    - GMLFeatureClass::GetGeometryPropertyIndexBySrcElement
    - CPLRealloc
    - CPLError
    linkageType: ''
    returnType: int
    signature: int GMLFeatureClass::AddGeometryProperty(GMLGeometryPropertyDefn *poDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: GMLFeatureClass::ClearGeometryProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::ClearGeometryProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:268,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: GMLFeatureClass::HasFeatureProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - GetType
    linkageType: ''
    returnType: bool
    signature: bool GMLFeatureClass::HasFeatureProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:282,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:283,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:284,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszElementName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: GMLFeatureClass::SetElementName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - static_cast<int>
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::SetElementName(const char *pszElementName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: GMLFeatureClass::GetElementName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GMLFeatureClass::GetElementName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: GMLFeatureClass::GetElementNameLen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GMLFeatureClass::GetElementNameLen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: GMLFeatureClass::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GMLFeatureClass::GetFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNewCount
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: GMLFeatureClass::SetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::SetFeatureCount(GIntBig nNewCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: GMLFeatureClass::GetExtraInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GMLFeatureClass::GetExtraInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:348,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszExtraInfo
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: GMLFeatureClass::SetExtraInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::SetExtraInfo(const char *pszExtraInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dfXMin
    - dfXMax
    - dfYMin
    - dfYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: GMLFeatureClass::SetExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLFeatureClass::SetExtents(double dfXMin, double dfXMax, double
      dfYMin,\n                                 double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pdfXMin
    - pdfXMax
    - pdfYMin
    - pdfYMax
    argTypes:
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: GMLFeatureClass::GetExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool GMLFeatureClass::GetExtents(double *pdfXMin, double *pdfXMax,\n
      \                                double *pdfYMin, double *pdfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:398,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszSRSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: GMLFeatureClass::SetSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::SetSRSName(const char *pszSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:415,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:420,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pszSRSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 427
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 427
    functionName: GMLFeatureClass::MergeSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeatureClass::MergeSRSName(const char *pszSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:440,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:446,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:448,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:454,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:455,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:455,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:456,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:456,1
    - Dst: GMLFeatureClass::SetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:458,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:458,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:485,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:494,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:500,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:503,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:508,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:512,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:516,1
    - Dst: GMLFeatureClass::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:518,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:525,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:531,1
    - Dst: GMLFeatureClass::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:533,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:541,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:545,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:551,1
    - Dst: GMLFeatureClass::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:553,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:561,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:565,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:571,1
    - Dst: GMLFeatureClass::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:573,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:589,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:596,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:599,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:605,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:609,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:622,1
    - Dst: GMLFeatureClass::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:624,1
    - Dst: GMLFeatureClass::SetSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:628,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:628,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:631,1
    - Dst: GMLFeatureClass::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:636,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:636,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:639,1
    - Dst: GMLFeatureClass::SetExtraInfo
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:641,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:643,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:644,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:645,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:646,1
    - Dst: GMLFeatureClass::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:648,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:648,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:649,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:649,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:650,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:650,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:651,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:651,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:659,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:674,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:682,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:681,1
    - Dst: GMLPropertyDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:684,1
    - Dst: GMLPropertyDefn*::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:686,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:688,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:690,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:692,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:694,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:695,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:697,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:699,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:701,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:703,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:705,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:707,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:711,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:712,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:713,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:718,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:720,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:722,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:724,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:728,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:730,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:730,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:730,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:732,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:734,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:736,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:740,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:742,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:742,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:742,1
    - Dst: GMLPropertyDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:743,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:744,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:744,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:748,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:749,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:755,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:756,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:758,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:760,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:762,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:764,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:766,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:768,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:770,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:772,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:774,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:778,1
    - Dst: GMLPropertyDefn*::SetCondition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:785,1
    - Dst: GMLPropertyDefn*::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:787,1
    - Dst: GMLFeatureClass::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:789,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 196
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 795
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 795
    functionName: GMLFeatureClass::InitializeFromXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - GMLFeatureClass::SetExtraInfo
    - atoi
    - strcmp
    - GMLFeatureClass::SetExtents
    - CPLError
    - CPLGetXMLValue
    - OGRFromOGCGeomType
    - GMLFeatureClass::SetElementName
    - GMLPropertyDefn*::SetPrecision
    - CPLStrdup
    - GMLPropertyDefn::GMLPropertyDefn
    - CPLAtoGIntBig
    - GMLPropertyDefn*::SetDocumentation
    - GMLFeatureClass::SetSRSName
    - GMLFeatureClass::AddGeometryProperty
    - GMLPropertyDefn*::SetNullable
    - strlen
    - GMLFeatureClass::AddProperty
    - CPLAtof
    - GMLPropertyDefn*::SetWidth
    - static_cast<int>
    - GMLPropertyDefn*::SetType
    - static_cast<OGRwkbGeometryType>
    - GMLPropertyDefn*::SetCondition
    - CPLFree
    - CPLGetXMLNode
    - EQUAL
    - GMLPropertyDefn*::SetUnique
    - GMLFeatureClass::SetFeatureCount
    linkageType: ''
    returnType: bool
    signature: bool GMLFeatureClass::InitializeFromXML(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:806,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:808,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:808,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:809,1
    - Dst: GMLFeatureClass::GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:809,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:818,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:819,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:819,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:820,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:821,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:822,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:823,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:823,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:824,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:825,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:827,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:832,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:832,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:835,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:837,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:839,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:840,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:848,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:848,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:849,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:850,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:852,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:853,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:853,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:854,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:855,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:857,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:862,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:862,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:865,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:867,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:867,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:869,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:870,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:875,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:881,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:888,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:894,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:895,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:898,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:899,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:899,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:900,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:904,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:905,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:907,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:908,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:910,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:911,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:913,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:914,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:918,1
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:928,1
    - Dst: GMLFeatureClass::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:930,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:932,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:935,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:938,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:938,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:939,1
    - Dst: GMLPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:940,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:941,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1034,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1036,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1038,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1041,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1042,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1043,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1045,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1045,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1048,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1048,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1049,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1051,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1051,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1054,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1054,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1055,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1057,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1058,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1059,1
    - Dst: GMLPropertyDefn*::GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1061,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1063,1
    - Dst: GMLPropertyDefn*::GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp:1064,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 1069
    functionName: GMLFeatureClass::SerializeToXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - GMLPropertyDefn*::GetName
    - GetPropertyCount
    - GMLFeatureClass::GetProperty
    - wkbHasZ
    - CPLCreateXMLElementAndValue
    - GMLGeometryPropertyDefn*::GetSrcElement
    - GMLPropertyDefn*::GetType
    - CPLString::c_str
    - strlen
    - GMLFeatureClass::GetElementName
    - GetName
    - GMLPropertyDefn*::GetDocumentation
    - GMLGeometryPropertyDefn*::GetName
    - static_cast<OGRwkbGeometryType>
    - snprintf
    - CPL_IGNORE_RET_VAL
    - GMLPropertyDefn*::GetSrcElement
    - GMLPropertyDefn*::GetWidth
    - CPLCreateXMLNode
    - GMLPropertyDefn*::GetPrecision
    - EQUAL
    - CPLsnprintf
    - fabs
    - GMLGeometryPropertyDefn*::GetType
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLFeatureClass::SerializeToXML()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - eType
    - eSubType
    argTypes:
    - GMLPropertyType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 1126
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1126
    functionName: GML_GetOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType GML_GetOGRFieldType(GMLPropertyType eType,\n                                 OGRFieldSubType
      &eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - eType
    - eSubType
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 1168
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1168
    functionName: GML_FromOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLPropertyType
    signature: "GMLPropertyType GML_FromOGRFieldType(OGRFieldType eType,\n                                     OGRFieldSubType
      eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:46,1
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:48,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:49,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:50,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:51,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:53,1
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:56,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:57,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - papsGeometry
    - osWork
    - bConsiderEPSGAsURN
    argTypes:
    - CPLXMLNode**
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: GML_ExtractSrsNameFromGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 0
    functionsReached:
    - std::string::assign
    - std::string::reserve
    - std::string::append
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: char
    signature: "char *\nGML_ExtractSrsNameFromGeometry(const CPLXMLNode *const *papsGeometry,\n
      \                              std::string &osWork, bool bConsiderEPSGAsURN)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:79,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:80,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:86,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:87,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:91,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:93,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:94,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:96,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:99,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - pszSRSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 74
    functionDepth: 7
    functionLinenumber: 74
    functionLinenumberEnd: 105
    functionName: GML_IsSRSLatLongOrder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - strstr
    - EQUALN
    - STARTS_WITH
    linkageType: ''
    returnType: bool
    signature: bool GML_IsSRSLatLongOrder(const char *pszSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:124,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:127,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:136,1
    - Dst: SRSCache
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:150,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:157,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:158,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:166,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:166,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:167,1
    - Dst: SRSDesc::poSRS::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:168,1
    - Dst: SRSDesc::poSRS::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:169,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:170,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:171,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:177,1
    - Dst: SRSCache::SRSCache
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 188
    functionName: GML_BuildOGRGeometryFromList_CreateCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 0
    functionsReached:
    - SRSCache::SRSCache
    - end
    - c_str
    - OGRSpatialReference::OGRSpatialReference
    - find
    - SRSDesc::poSRS::SetAxisMappingStrategy
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::move
    - SRSDesc::poSRS::SetFromUserInput
    - GML_IsSRSLatLongOrder
    - SRSCache
    - Release
    linkageType: ''
    returnType: "class SRSDesc\n{\n  public:\n    std::string osSRSName{};\n    bool
      bAxisInvert = false;\n    OGRSpatialReference *poSRS = nullptr;\n\n    SRSDesc()
      = default;\n\n    SRSDesc &operator=(SRSDesc &&other)\n    {\n        osSRSName
      = std::move(other.osSRSName);\n        bAxisInvert = other.bAxisInvert;\n        if
      (poSRS)\n            poSRS->Release();\n        poSRS = other.poSRS;\n        other.poSRS
      = nullptr;\n        return *this;\n    }\n\n    ~SRSDesc()\n    {\n        if
      (poSRS)\n            poSRS->Release();\n    }\n\n    CPL_DISALLOW_COPY_ASSIGN(SRSDesc)\n};\n\nclass
      SRSCache\n{\n    std::map<std::string, SRSDesc> oMap{};\n    SRSDesc *poLastDesc
      = nullptr;\n\n    CPL_DISALLOW_COPY_ASSIGN(SRSCache)\n\n  public:\n    SRSCache()
      = default;\n\n    const SRSDesc &Get(const std::string &osSRSName)\n    {\n
      \       if (poLastDesc && osSRSName == poLastDesc->osSRSName)\n            return
      *poLastDesc;\n\n        std::map<std::string, SRSDesc>::iterator oIter = oMap.find(osSRSName);\n
      \       if (oIter != oMap.end())\n        {\n            poLastDesc = &(oIter->second);\n
      \           return *poLastDesc;\n        }\n\n        SRSDesc oDesc;\n        oDesc.osSRSName
      = osSRSName;\n        oDesc.bAxisInvert = GML_IsSRSLatLongOrder(osSRSName.c_str());\n
      \       oDesc.poSRS = new OGRSpatialReference();\n        oDesc.poSRS->SetAxisMappingStrategy(OAMS_TRADITIONAL_GIS_ORDER);\n
      \       if (oDesc.poSRS->SetFromUserInput(\n                osSRSName.c_str(),\n
      \               OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get())
      !=\n            OGRERR_NONE)\n        {\n            delete oDesc.poSRS;\n            oDesc.poSRS
      = nullptr;\n        }\n        oMap[osSRSName] = std::move(oDesc);\n        poLastDesc
      = &(oMap[osSRSName]);\n        return *poLastDesc;\n    }\n};\n\n}"
    signature: "class SRSDesc\n{\n  public:\n    std::string osSRSName{};\n    bool
      bAxisInvert = false;\n    OGRSpatialReference *poSRS = nullptr;\n\n    SRSDesc()
      = default;\n\n    SRSDesc &operator=(SRSDesc &&other)\n    {\n        osSRSName
      = std::move(other.osSRSName);\n        bAxisInvert = other.bAxisInvert;\n        if
      (poSRS)\n            poSRS->Release();\n        poSRS = other.poSRS;\n        other.poSRS
      = nullptr;\n        return *this;\n    }\n\n    ~SRSDesc()\n    {\n        if
      (poSRS)\n            poSRS->Release();\n    }\n\n    CPL_DISALLOW_COPY_ASSIGN(SRSDesc)\n};\n\nclass
      SRSCache\n{\n    std::map<std::string, SRSDesc> oMap{};\n    SRSDesc *poLastDesc
      = nullptr;\n\n    CPL_DISALLOW_COPY_ASSIGN(SRSCache)\n\n  public:\n    SRSCache()
      = default;\n\n    const SRSDesc &Get(const std::string &osSRSName)\n    {\n
      \       if (poLastDesc && osSRSName == poLastDesc->osSRSName)\n            return
      *poLastDesc;\n\n        std::map<std::string, SRSDesc>::iterator oIter = oMap.find(osSRSName);\n
      \       if (oIter != oMap.end())\n        {\n            poLastDesc = &(oIter->second);\n
      \           return *poLastDesc;\n        }\n\n        SRSDesc oDesc;\n        oDesc.osSRSName
      = osSRSName;\n        oDesc.bAxisInvert = GML_IsSRSLatLongOrder(osSRSName.c_str());\n
      \       oDesc.poSRS = new OGRSpatialReference();\n        oDesc.poSRS->SetAxisMappingStrategy(OAMS_TRADITIONAL_GIS_ORDER);\n
      \       if (oDesc.poSRS->SetFromUserInput(\n                osSRSName.c_str(),\n
      \               OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get())
      !=\n            OGRERR_NONE)\n        {\n            delete oDesc.poSRS;\n            oDesc.poSRS
      = nullptr;\n        }\n        oMap[osSRSName] = std::move(oDesc);\n        poLastDesc
      = &(oMap[osSRSName]);\n        return *poLastDesc;\n    }\n};\n\n} *GML_BuildOGRGeometryFromList_CreateCache()"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SRSCache *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hCacheSRS
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: GML_BuildOGRGeometryFromList_DestroyCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SRSCache *>
    linkageType: ''
    returnType: void
    signature: void GML_BuildOGRGeometryFromList_DestroyCache(void *hCacheSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:222,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:223,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:226,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:240,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:240,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:241,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:241,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:244,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:245,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:246,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:250,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:250,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:252,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:252,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:255,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:256,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:259,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:259,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:261,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:261,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:264,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:265,1
    - Dst: OGRMultiPolygon*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:267,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:272,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:272,1
    - Dst: GML_BuildOGRGeometryFromList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:277,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:285,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:286,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:292,1
    - Dst: static_cast<SRSCache *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:310,1
    - Dst: SRSCache*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:311,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:312,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:317,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:322,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 9
    argNames:
    - papsGeometry
    - bTryToMakeMultipolygons
    - bInvertAxisOrderIfLatLong
    - pszDefaultSRSName
    - bConsiderEPSGAsURN
    - eSwapCoordinates
    - nPseudoBoolGetSecondaryGeometryOption
    - hCacheSRS
    - bFaceHoleNegative
    argTypes:
    - CPLXMLNode**
    - bool
    - bool
    - char*
    - bool
    - GMLSwapCoordinatesEnum
    - int
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 326
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 326
    functionName: GML_BuildOGRGeometryFromList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRMultiPolygon*::addGeometry
    - OGRGeometry*::toMultiPolygon
    - OGRGeometryCollection::OGRGeometryCollection
    - static_cast<SRSCache *>
    - SRSCache*::Get
    - OGRGeometry*::swapXY
    - CPLDebug
    - GML_BuildOGRGeometryFromList
    - OGRMultiPolygon::OGRMultiPolygon
    - GML2OGRGeometry_XMLNode
    - wkbFlatten
    - CPLFree
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *GML_BuildOGRGeometryFromList(\n    const CPLXMLNode *const
      *papsGeometry, bool bTryToMakeMultipolygons,\n    bool bInvertAxisOrderIfLatLong,
      const char *pszDefaultSRSName,\n    bool bConsiderEPSGAsURN, GMLSwapCoordinatesEnum
      eSwapCoordinates,\n    int nPseudoBoolGetSecondaryGeometryOption, void *hCacheSRS,\n
      \   bool bFaceHoleNegative)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:337,1
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:339,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:340,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:352,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:353,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:357,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:357,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:362,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:362,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:367,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - poSRS
    - eSRSNameFormat
    - pbCoordSwap
    argTypes:
    - OGRSpatialReference*
    - OGRGMLSRSNameFormat
    - bool*
    constantsTouched: []
    func_position:
      end: 368
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 368
    functionName: GML_GetSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - CPLStrdup
    - CPLSPrintf
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    linkageType: ''
    returnType: char
    signature: "char *GML_GetSRSName(const OGRSpatialReference *poSRS,\n                     OGRGMLSRSNameFormat
      eSRSNameFormat, bool *pbCoordSwap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:377,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:379,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszSRSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 386
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 386
    functionName: GML_IsLegitSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlutils.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: bool
    signature: bool GML_IsLegitSRSName(const char *pszSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: GMLFeature::GMLFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLFeature::GMLFeature(GMLFeatureClass *poClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:44,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:57,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:63,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:68,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:69,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:73,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: GMLFeature::~GMLFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLFeature::~GMLFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:85,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszFID
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: GMLFeature::SetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLFeature::SetFID(const char *pszFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:99,1
    - Dst: static_cast<GMLProperty *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:103,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:103,1
    - Dst: static_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:132,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:133,1
    - Dst: static_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:141,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - iIndex
    - pszValue
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 148
    functionName: GMLFeature::SetPropertyDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GMLProperty *>
    - static_cast<char **>
    - CPLRealloc
    - CPLAssert
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void GMLFeature::SetPropertyDirectly(int iIndex, char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:156,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:156,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:159,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:163,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:164,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:164,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:170,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:171,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:173,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:180,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - fp
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: GMLFeature::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - printf
    - GetProperty
    - CPLFree
    - GetName
    linkageType: ''
    returnType: void
    signature: void GMLFeature::Dump(CPL_UNUSED FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psGeom
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: GMLFeature::SetGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    linkageType: ''
    returnType: void
    signature: void GMLFeature::SetGeometryDirectly(CPLXMLNode *psGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:207,1
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:213,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:213,1
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:221,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:222,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - nIdx
    - psGeom
    argTypes:
    - int
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: GMLFeature::SetGeometryDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 1
    functionsReached:
    - static_cast<CPLXMLNode **>
    - CPLDestroyXMLNode
    - GMLFeature::SetGeometryDirectly
    - CPLRealloc
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void GMLFeature::SetGeometryDirectly(int nIdx, CPLXMLNode *psGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: GMLFeature::GetGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLFeature::GetGeometryRef(int nIdx) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:256,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:257,1
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:265,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - psGeom
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 271
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 271
    functionName: GMLFeature::AddGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - CPLMalloc
    - static_cast<CPLXMLNode **>
    linkageType: ''
    returnType: void
    signature: void GMLFeature::AddGeometry(CPLXMLNode *psGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psGeom
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: GMLFeature::SetBoundedByGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlutils/gmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    linkageType: ''
    returnType: void
    signature: void GMLFeature::SetBoundedByGeometry(CPLXMLNode *psGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osColumnIn
    - bAscIn
    argTypes:
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: OGRESSortDesc::OGRESSortDesc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRESSortDesc(const CPLString &osColumnIn, bool bAscIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: OGRElasticLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 1
    functionsReached:
    - OGRElasticLayer::GetName
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: '&GetIndexName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetIndexName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: '&GetMappingName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetMappingName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: OGRElasticLayer::SetIgnoreSourceID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIgnoreSourceID(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: OGRElasticLayer::SetManualMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetManualMapping()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: OGRElasticLayer::SetDotAsNestedField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDotAsNestedField(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m_osFIDIn
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: OGRElasticLayer::SetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFID(const CPLString &m_osFIDIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNextFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: OGRElasticLayer::SetNextFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetNextFID(GIntBig nNextFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<OGRESSortDesc>
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: OGRElasticLayer::SetOrderBy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOrderBy(const std::vector<OGRESSortDesc> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: OGRElasticLayer::SetFeatureDefnFinalized
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFeatureDefnFinalized()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: OGRElasticAggregationLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: OGRElasticDataSource::GetURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetURL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: OGRElasticDataSource::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: '&GetFID() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogr_elastic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetFID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:28,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:29,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:30,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:31,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:31,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:33,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:34,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:35,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:36,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:37,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:40,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRElasticDataSource*
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: OGRElasticAggregationLayer::OGRElasticAggregationLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - SetGeomType
    - OGRSpatialReference*::Dereference
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - OGRSpatialReference*::SetFromUserInput
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRElasticAggregationLayer::OGRElasticAggregationLayer(\n    OGRElasticDataSource
      *poDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: OGRElasticAggregationLayer::~OGRElasticAggregationLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRElasticAggregationLayer::~OGRElasticAggregationLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:63,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:64,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:66,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:67,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:70,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:75,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:76,1
    - Dst: OGRElasticDataSource*::FetchMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:80,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:80,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:81,1
    - Dst: SetFeatureDefnFinalized
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:83,1
    - Dst: GetGeomFieldProperties
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:90,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:93,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:107,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:116,1
    - Dst: std::make_unique<OGRElasticAggregationLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:122,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:123,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:124,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:128,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:129,1
    - Dst: auto::m_oFieldDef::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:143,1
    - Dst: auto::m_oFieldDef::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:144,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:151,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:151,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:153,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:155,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:161,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:161,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:163,1
    - Dst: auto::m_poFeatureDefn::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:165,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:168,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:169,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:170,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:170,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:171,1
    - Dst: auto::m_oAggregatedFieldsRequest::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:172,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:173,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:173,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:183,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:183,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:185,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:187,1
    - Dst: auto::m_poFeatureDefn::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:191,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:195,1
    - Dst: auto::m_poFeatureDefn::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:198,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:200,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:201,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:202,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:202,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:203,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:203,1
    - Dst: auto::m_oAggregatedFieldsRequest::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:206,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:207,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 2
    argNames:
    - poDS
    - pszAggregation
    argTypes:
    - OGRElasticDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 216
    functionName: OGRElasticAggregationLayer::Build
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - strcmp
    - CPLError
    - std::string::c_str
    - auto::ToArray
    - std::string::empty
    - auto::m_oFieldDef::IsValid
    - OGRElasticDataSource*::FetchMapping
    - std::move
    - OGRFieldDefn::GetNameRef
    - CPLJSONDocument::LoadMemory
    - auto::m_oFieldDef::GetType
    - auto::GetString
    - ToString
    - auto::m_poFeatureDefn::GetFieldIndex
    - CPLJSONObject::CPLJSONObject
    - auto::m_poFeatureDefn::AddFieldDefn
    - auto::empty
    - CPLSPrintf
    - std::make_unique<OGRElasticAggregationLayer>
    - GetType
    - auto::m_oAggregatedFieldsRequest::Add
    - auto::IsValid
    - GetGeomFieldProperties
    - SetFeatureDefnFinalized
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::unique_ptr<OGRElasticAggregationLayer>
    signature: "std::unique_ptr<OGRElasticAggregationLayer> OGRElasticAggregationLayer::Build(OGRElasticDataSource
      *poDS,\n                                  const char *pszAggregation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: OGRElasticAggregationLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRElasticAggregationLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:235,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: OGRElasticAggregationLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::ISetSpatialFilter
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRElasticAggregationLayer::ISetSpatialFilter(int iGeomField,\n
      \                                                    const OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:256,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:257,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:258,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:260,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:267,1
    - Dst: OGRElasticLayer::ClampEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:269,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:280,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:281,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:283,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:284,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:286,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:287,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:288,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:290,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:291,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:293,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:294,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:296,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:297,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:298,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:299,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:301,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:302,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:303,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:304,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:308,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:311,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:312,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:315,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:316,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:317,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:321,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:338,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:340,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:342,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:343,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:345,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:346,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:348,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:349,1
    - Dst: auto::Set
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:351,1
    - Dst: GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:354,1
    - Dst: auto::Add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:356,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:356,1
    - Dst: auto::Format
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 360
    functionName: OGRElasticAggregationLayer::BuildRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::Format
    - CPLJSONObject
    - getEnvelope
    - GetChildren
    - CPLJSONDocument::GetRoot
    - OGRElasticLayer::ClampEnvelope
    - CPLJSONDocument::CPLJSONDocument
    - GetName
    - auto::Set
    - auto::Add
    linkageType: ''
    returnType: std::string
    signature: std::string OGRElasticAggregationLayer::BuildRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:371,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:373,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:374,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:374,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:374,1
    - Dst: OGRElasticAggregationLayer::BuildRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:376,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:379,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:383,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:385,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:388,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:389,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:391,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:392,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:395,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:396,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:398,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:398,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:402,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:404,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:406,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:407,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:408,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:411,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:414,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:417,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:419,1
    - Dst: IsNumericJsonType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:421,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:421,1
    - Dst: IsNumericJsonType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:422,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:422,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:425,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:426,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:425,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:427,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:428,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:430,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:434,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:435,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:441,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:442,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:444,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:446,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:450,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:452,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:454,1
    - Dst: IsNumericJsonType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:457,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:458,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:463,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:465,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:467,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:468,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:473,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:475,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:485,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:486,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:488,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:490,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:496,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:498,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:500,1
    - Dst: IsNumericJsonType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:503,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:504,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:509,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:511,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:513,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:514,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:519,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:521,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:531,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:535,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 536
    functionName: OGRElasticAggregationLayer::IssueAggregationRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - GetGeomFieldDefn
    - auto::GetType
    - RunRequest
    - strcmp
    - CPL_json_object_object_get
    - static_cast<GIntBig>
    - auto::ToArray
    - IsValid
    - OGRPoint::OGRPoint
    - json_object_get_double
    - OGRFeature*::SetGeometryDirectly
    - emplace_back
    - json_object_array_get_idx
    - c_str
    - GetURL
    - json_object_array_length
    - ToString
    - json_object_get_type
    - CPLSPrintf
    - GetType
    - auto::IsValid
    - json_object_get_string
    - OGRFeature::OGRFeature
    - json_ex_get_object_by_path
    - OGRElasticAggregationLayer::BuildRequest
    - OGRPoint*::assignSpatialReference
    - json_object_put
    - OGRFeature*::SetField
    - std::string
    - IsNumericJsonType
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRElasticAggregationLayer::IssueAggregationRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticAggregationLayer::IssueAggregationRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:547,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:549,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:549,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: OGRElasticAggregationLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - Clone
    - OGRElasticAggregationLayer::IssueAggregationRequest
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRElasticAggregationLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticAggregationLayer::IssueAggregationRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:570,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:572,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:572,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 575
    functionName: OGRElasticAggregationLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRLayer::GetFeatureCount
    - static_cast<int>
    - OGRElasticAggregationLayer::IssueAggregationRequest
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRElasticAggregationLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: OGRElasticAggregationLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRElasticAggregationLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: OGRElasticAggregationLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticaggregationlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRElasticAggregationLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticsearchDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:24,1
    - Dst: OGRElasticDataSource::OGRElasticDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:27,1
    - Dst: OGRElasticDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: OGRElasticsearchDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticDataSource*::Open
    - OGRElasticDataSource::OGRElasticDataSource
    - OGRElasticsearchDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRElasticsearchDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::OGRElasticDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:45,1
    - Dst: OGRElasticDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: OGRElasticsearchDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticDataSource*::Create
    - OGRElasticDataSource::OGRElasticDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRElasticsearchDriverCreate(const char *pszName, CPL_UNUSED
      int nXSize,\n                             CPL_UNUSED int nYSize, CPL_UNUSED
      int nBands,\n                             CPL_UNUSED GDALDataType eDT, char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:62,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:65,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:68,1
    - Dst: OGRElasticsearchDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:69,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: RegisterOGRElastic
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRElasticsearchDriverSetCommonMetadata
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRElastic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftime
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:46,1
    - Dst: static_cast<time_t>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct CPLTimeVal*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: CPLGettimeofday
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 3
    functionsReached:
    - static_cast<time_t>
    - _ftime
    linkageType: ''
    returnType: void
    signature: void CPLGettimeofday(struct CPLTimeVal *tp, void * /* timezonep*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: GetTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGettimeofday
    linkageType: ''
    returnType: double
    signature: double GetTimestamp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:80,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:82,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:84,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:87,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:89,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:90,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:91,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:100,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:104,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:107,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:107,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:113,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:119,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:125,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:139,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:140,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:143,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:143,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:147,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:148,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:154,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:156,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:156,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:159,1
    - Dst: OGRElasticLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:159,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:160,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:161,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:163,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:163,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:165,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:167,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:167,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:168,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:168,1
    - Dst: OGRElasticLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - pszLayerName
    - pszIndexName
    - pszMappingName
    - poDS
    - papszOptions
    - pszESSearch
    argTypes:
    - char*
    - char*
    - char*
    - OGRElasticDataSource*
    - CSLConstList
    - char*
    constantsTouched: []
    func_position:
      end: 172
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 172
    functionName: OGRElasticLayer::OGRElasticLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - Reference
    - CPLGetConfigOption
    - SetGeomType
    - CPLAtoGIntBig
    - CSLTokenizeString2
    - CPLAtof
    - OGRElasticLayer::ResetReading
    - CPLTestBool
    - static_cast<int>
    - CPLFetchBool
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - SetDescription
    - OGRElasticLayer::AddFieldDefn
    - OGRElasticLayer::GetName
    - empty
    - CSLFetchNameValueDef
    - EQUAL
    - std::vector<CPLString>
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::OGRElasticLayer(const char *pszLayerName,\n
      \                                const char *pszIndexName,\n                                 const
      char *pszMappingName,\n                                 OGRElasticDataSource
      *poDS,\n                                 CSLConstList papszOptions,\n                                 const
      char *pszESSearch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer*::CopyMembersTo
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:186,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:187,1
    - Dst: auto::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:191,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:196,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:196,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:197,1
    - Dst: auto::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:210,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:210,1
    - Dst: auto::DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:215,1
    - Dst: auto::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:218,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:219,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:222,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:224,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:226,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:226,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:226,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:227,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:228,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:228,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:228,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pszLayerName
    - poReferenceLayer
    argTypes:
    - char*
    - OGRElasticLayer*
    constantsTouched: []
    func_position:
      end: 230
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 230
    functionName: OGRElasticLayer::OGRElasticLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - insert
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - auto::AddFieldDefn
    - GetFieldCount
    - auto::DeleteGeomFieldDefn
    - auto::AddGeomFieldDefn
    - CPLAssert
    - begin
    - std::vector<CPLString>
    - Reference
    - GetGeomFieldCount
    - GetFieldDefn
    - OGRElasticLayer*::CopyMembersTo
    - Release
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::OGRElasticLayer(const char *pszLayerName,\n
      \                                OGRElasticLayer *poReferenceLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:238,1
    - Dst: OGRElasticLayer*::m_poFeatureDefn::Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:240,1
    - Dst: const_cast<OGRElasticLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:242,1
    - Dst: OGRElasticLayer*::m_poFeatureDefn::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:243,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:255,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:256,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - poNew
    argTypes:
    - OGRElasticLayer*
    constantsTouched: []
    func_position:
      end: 266
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 266
    functionName: OGRElasticLayer::CopyMembersTo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer::FinalizeFeatureDefn
    - OGRElasticLayer*::m_poFeatureDefn::Release
    - const_cast<OGRElasticLayer *>
    - CSLDuplicate
    - OGRElasticLayer*::m_poFeatureDefn::Reference
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::CopyMembersTo(OGRElasticLayer *poNew)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:275,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:275,1
    - Dst: OGRElasticLayer::CopyMembersTo
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: OGRElasticLayer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer::GetName
    - OGRElasticLayer::CopyMembersTo
    - OGRElasticLayer::OGRElasticLayer
    linkageType: ''
    returnType: OGRElasticLayer
    signature: OGRElasticLayer *OGRElasticLayer::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:287,1
    - Dst: OGRElasticLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:289,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:291,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:292,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:294,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:297,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:299,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:300,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:301,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 303
    functionName: OGRElasticLayer::~OGRElasticLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRElasticLayer::ResetReading
    - CSLDestroy
    - OGRElasticLayer::SyncToDisk
    - json_object_put
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::~OGRElasticLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:314,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:316,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:317,1
    - Dst: std::vector<CPLString>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:318,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:319,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:320,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pszName
    - eType
    - aosPath
    - eSubType
    argTypes:
    - char*
    - OGRFieldType
    - std::vector<CPLString>
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 322
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 322
    functionName: OGRElasticLayer::AddFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 2
    functionsReached:
    - std::vector<CPLString>::empty
    - OGRFieldDefn::SetWidth
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - push_back
    - OGRElasticLayer::BuildPathFromArray
    - OGRElasticLayer::AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::AddFieldDefn(const char *pszName, OGRFieldType
      eType,\n                                   const std::vector<CPLString> &aosPath,\n
      \                                  OGRFieldSubType eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:334,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:335,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:336,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:337,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:339,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:340,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:341,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:342,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:343,1
    - Dst: OGRElasticLayer::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:345,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - pszName
    - eType
    - aosPath
    - bIsGeoPoint
    argTypes:
    - char*
    - OGRwkbGeometryType
    - std::vector<CPLString>
    - int
    constantsTouched: []
    func_position:
      end: 348
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 348
    functionName: OGRElasticLayer::AddGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference*::Dereference
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRElasticLayer::AddGeomFieldDefn
    - OGRSpatialReference*::SetFromUserInput
    - GetGeomFieldCount
    - push_back
    - OGRElasticLayer::BuildPathFromArray
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::AddGeomFieldDefn(const char *pszName,\n                                       OGRwkbGeometryType
      eType,\n                                       const std::vector<CPLString>
      &aosPath,\n                                       int bIsGeoPoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iGeomField
    - aosPath
    - bIsGeoPoint
    argTypes:
    - int
    - std::vector<CPLString>
    - bool
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: OGRElasticLayer::GetGeomFieldProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::GetGeomFieldProperties(int iGeomField,\n                                             std::vector<CPLString>
      &aosPath,\n                                             bool &bIsGeoPoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:371,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:373,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:382,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:384,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:387,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:388,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:389,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:389,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:399,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:402,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:403,1
    - Dst: OGRElasticLayer::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:405,1
    - Dst: std::vector<CPLString>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:411,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:412,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:415,1
    - Dst: OGRElasticLayer::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:417,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:424,1
    - Dst: OGRElasticLayer::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:434,1
    - Dst: std::vector<CPLString>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:440,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:440,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:440,1
    - Dst: OGRElasticLayer::CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:446,1
    - Dst: std::vector<CPLString>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:450,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:452,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:453,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:455,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:456,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:457,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:460,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:462,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:464,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:466,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:468,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:470,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:473,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:473,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:475,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:482,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:483,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:485,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:487,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:489,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:491,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:495,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:495,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:496,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:498,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 68
    argCount: 3
    argNames:
    - poSchema
    - pszPrefix
    - aosPath
    argTypes:
    - json_object*
    - char*
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 508
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 508
    functionName: OGRElasticLayer::InitFeatureDefnFromMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector<CPLString>::empty
    - GetGeomFieldDefn
    - strcmp
    - OGRElasticLayer::AddGeomFieldDefn
    - GetFieldDefn
    - std::vector::push_back
    - OGRFromOGCGeomType
    - GetGeomFieldCount
    - CPL_json_object_object_get
    - GetFID
    - OGRElasticLayer::CreateFieldFromSchema
    - GetGeomFieldIndex
    - OGR_GetFieldTypeName
    - json_object_get_type
    - GetFieldCount
    - OGRElasticLayer::InitFeatureDefnFromMapping
    - json_object_get_string
    - json_ex_get_object_by_path
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::InitFeatureDefnFromMapping(\n    json_object
      *poSchema, const char *pszPrefix,\n    const std::vector<CPLString> &aosPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:520,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:521,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:534,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:536,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:539,1
    - Dst: OGRElasticLayer::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:540,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:541,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:542,1
    - Dst: std::vector<CPLString>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:544,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:553,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:558,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:562,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:564,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:567,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:571,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:572,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:574,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:575,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:581,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:583,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:587,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:590,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:594,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:597,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:600,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:601,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:603,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:604,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:606,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:607,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:610,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:612,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:615,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:617,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:620,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:623,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:624,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:629,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:631,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 70
    argCount: 4
    argNames:
    - pszName
    - pszPrefix
    - aosPath
    - poObj
    argTypes:
    - char*
    - char*
    - std::vector<CPLString>
    - json_object*
    constantsTouched: []
    func_position:
      end: 640
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 640
    functionName: OGRElasticLayer::CreateFieldFromSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector<CPLString>::empty
    - CSLAddString
    - json_object_get_type
    - EQUAL
    - OGRElasticLayer::AddGeomFieldDefn
    - GetGeomFieldIndex
    - json_object_get_string
    - GetFieldIndex
    - std::vector<CPLString>::push_back
    - OGRElasticLayer::AddFieldDefn
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::CreateFieldFromSchema(const char *pszName,\n
      \                                           const char *pszPrefix,\n                                            std::vector<CPLString>
      aosPath,\n                                            json_object *poObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:655,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:673,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:676,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:677,1
    - Dst: OGRElasticLayer::BuildMappingURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:682,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:683,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:689,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:692,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:693,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:693,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:698,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:704,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:713,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:715,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:717,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:720,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:724,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:729,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:731,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:736,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:738,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:743,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:746,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:748,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:753,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:755,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:757,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:761,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:761,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:762,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:764,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:764,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:768,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:768,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:769,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:771,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:771,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:774,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:778,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:782,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:784,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:787,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:792,1
    - Dst: OGRElasticLayer::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:797,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:799,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:802,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:813,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:815,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:818,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:818,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:826,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:827,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:833,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:836,1
    - Dst: OGRElasticLayer::AddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:837,1
    - Dst: OGRElasticLayer::AddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:845,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:857,1
    - Dst: OGRElasticLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:866,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:871,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:871,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 112
    argCount: 1
    argNames:
    - bReadFeatures
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 873
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 873
    functionName: OGRElasticLayer::FinalizeFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - std::set::insert
    - RunRequest
    - strcmp
    - std::vector::push_back
    - CPL_json_object_object_get
    - GetFID
    - std::pair<CPLString, CPLString>
    - json_object_object_foreachC
    - CPLString::c_str
    - json_object_array_get_idx
    - OGRElasticLayer::ResetReading
    - c_str
    - GetURL
    - json_object_array_length
    - json_object_get_type
    - CPLSPrintf
    - std::set::find
    - OGRElasticLayer::AddOrUpdateField
    - OGRElasticLayer::InitFeatureDefnFromMapping
    - json_object_get_string
    - json_ex_get_object_by_path
    - OGRElasticLayer::AddFieldDefn
    - empty
    - OGRElasticLayer::BuildMappingURL
    - json_object_put
    - EQUAL
    - std::vector<CPLString>
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::FinalizeFeatureDefn(bool bReadFeatures)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aosPath
    argTypes:
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: OGRElasticLayer::BuildPathFromArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 2
    functionsReached:
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRElasticLayer::BuildPathFromArray(const std::vector<CPLString>
      &aosPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:897,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:899,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 902
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 902
    functionName: GetOGRGeomTypeFromES
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRFromOGCGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetOGRGeomTypeFromES(const char *pszType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:913,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:919,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:921,1
    - Dst: GetOGRGeomTypeFromES
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:922,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:923,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:924,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:931,1
    - Dst: OGRElasticLayer::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:932,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:937,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:938,1
    - Dst: OGRGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:939,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:944,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:946,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:958,1
    - Dst: OGRElasticLayer::AddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:961,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:973,1
    - Dst: GeoJSONPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:977,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:982,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:985,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:985,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:986,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:994,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:994,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:996,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:996,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1001,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1001,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1003,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1003,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1008,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1008,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1017,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1018,1
    - Dst: OGRUpdateFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1022,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 5
    argNames:
    - pszAttrName
    - pszKey
    - poObj
    - chNestedAttributeSeparator
    - aosPath
    argTypes:
    - char*
    - char*
    - json_object*
    - char
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 1024
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 1024
    functionName: OGRElasticLayer::AddOrUpdateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 2
    functionsReached:
    - GetFieldDefn
    - sscanf
    - GeoJSONPropertyToFieldType
    - GetGeomFieldDefn
    - json_object_get_type
    - GetOGRGeomTypeFromES
    - OGRGeomFieldDefn*::GetType
    - CPLSPrintf
    - OGRElasticLayer::AddOrUpdateField
    - OGRElasticLayer::AddGeomFieldDefn
    - OGRFieldDefn*::GetType
    - OGRElasticLayer::AddFieldDefn
    - GetGeomFieldIndex
    - json_object_get_string
    - std::vector<CPLString>::push_back
    - OGRUpdateFieldType
    - OGRGeomFieldDefn*::SetType
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::AddOrUpdateField(const char *pszAttrName,\n
      \                                      const char *pszKey, json_object *poObj,\n
      \                                      char chNestedAttributeSeparator,\n                                       std::vector<CPLString>
      &aosPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::WriteMapIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1032,1
    - Dst: OGRElasticLayer::PushIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1039
    functionName: OGRElasticLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRElasticLayer::WriteMapIfNecessary
    - OGRElasticLayer::PushIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: OGRElasticLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer::FinalizeFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRElasticLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1059,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1061
    functionName: OGRElasticLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer::GetLayerDefn
    - c_str
    linkageType: ''
    returnType: char
    signature: char *OGRElasticLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1069,1
    - Dst: HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1073,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1074,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1074,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1074,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1078,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1079,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1083,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1085,1
    - Dst: GetTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1097
    functionName: OGRElasticLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 3
    functionsReached:
    - size
    - GetURL
    - c_str
    - empty
    - HTTPFetch
    - CSLDestroy
    - GetTimestamp
    - CPLString
    - CPLHTTPDestroyResult
    - resize
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1106,1
    - Dst: OGRElasticLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1110,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1115,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1115,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1103
    functionDepth: 5
    functionLinenumber: 1103
    functionLinenumberEnd: 1121
    functionName: OGRElasticLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer::FinalizeFeatureDefn
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    - OGRElasticLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRElasticLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1129,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1130,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1135,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1136,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1141,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1142,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1143,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1144,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1146,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1150
    functionName: OGRElasticLayer::BuildSort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - json_object_new_object
    - json_object_new_array
    - json_object_new_string
    - json_object_array_add
    - CSLFindString
    - json_object_object_add
    - OGRElasticLayer::BuildPathFromArray
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRElasticLayer::BuildSort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1160,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1166,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1168,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1169,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1173,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1175,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1178,1
    - Dst: OGRElasticLayer::BuildSort
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1180,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1182,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1182,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - bCountOnly
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1187
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1187
    functionName: OGRElasticLayer::BuildQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_to_json_string
    - empty
    - OGRElasticLayer::BuildSort
    - CPLSPrintf
    - json_object_put
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRElasticLayer::BuildQuery(bool bCountOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1197,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1199,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1208,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1215,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1224,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1226,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1232,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1234,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1235,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1238,1
    - Dst: OGRElasticLayer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1241,1
    - Dst: OGRElasticLayer::BuildMappingURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1242,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1244,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1246,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1246,1
    - Dst: OGRElasticLayer::BuildMappingURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1248,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1250,1
    - Dst: OGRElasticLayer::BuildSort
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1251,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1252,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1253,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1254,1
    - Dst: OGRElasticLayer::BuildMappingURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1258,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1260,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1266,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1271,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1272,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1272,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1277,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1283,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1285,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1293,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1294,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1297,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1300,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1301,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1304,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1307,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1312,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1317,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1318,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1322,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1324,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1330,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1331,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1332,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1334,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1336,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1340,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1342,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1343,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1343,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1346,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1348,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1350,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1351,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1351,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1353,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1355,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1356,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1356,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1360,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1360,1
    - Dst: OGRElasticLayer::BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1362,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1362,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1363,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1364,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1365,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1368,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1369,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1378
    functionName: OGRElasticLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - RunRequest
    - CPLString
    - OGRElasticLayer::BuildQuery
    - CPL_json_object_object_get
    - json_object_to_json_string
    - GetTimestamp
    - resize
    - json_object_array_get_idx
    - GetURL
    - c_str
    - json_object_array_length
    - OGRFeature*::GetFID
    - OGRElasticLayer::BuildSort
    - json_object_get_type
    - CPLSPrintf
    - json_object_get_string
    - OGRFeature::OGRFeature
    - OGRElasticLayer::BuildFeature
    - size
    - empty
    - OGRElasticLayer::BuildMappingURL
    - json_object_put
    - OGRFeature*::SetField
    - push_back
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRElasticLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1405,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1405,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1408,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1409,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1409,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1410,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - geohash
    - lat
    - lon
    argTypes:
    - char*
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 1425
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1425
    functionName: decode_geohash_bbox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<char>
    - static_cast<unsigned char>
    - CPLTolower
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: "void decode_geohash_bbox(const char *geohash, double lat[2],\n                                double
      lon[2])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1441,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1441,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1441,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1443,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1446,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1446,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1451,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1456,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1457,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1459,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1462,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1465,1
    - Dst: json_object_get_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1466,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1469,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1470,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1473,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1474,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1478,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1482,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1485,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1485,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1486,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1489,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1490,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1493,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1497,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1500,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1500,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1501,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1504,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1505,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1508,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1512,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1515,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1515,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1516,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1519,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1520,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1523,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1527,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1530,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1531,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1531,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1532,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1534,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1535,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1538,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1545,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1549,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1549,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1551,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1552,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1556,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1557,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1563,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1564,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1566,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1571,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1573,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1575,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1576,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1579,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1580,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1579,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1586,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1588,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1591,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1592,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1591,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1599,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1601,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1602,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1601,1
    - Dst: decode_geohash_bbox
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1608,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1609,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1613,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1616,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1619,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1621,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1623,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1626,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1626,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1627,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1628,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1629,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1630,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1631,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1660,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1665,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1667,1
    - Dst: auto::GetSemiMajor
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1668,1
    - Dst: OGR_GreatCircle_ExtendPosition
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1673,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1676,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1678,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1679,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1684,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1685,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1685,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1686,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1688,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1691,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1693,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1695,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1696,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1697,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1698,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1708,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1709,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1710,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1711,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1712,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1713,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1714,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1715,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1721,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1724,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1727,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1728,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1733,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1734,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1737,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1739,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1740,1
    - Dst: OGRElasticLayer::BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1742,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1744,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1747,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1748,1
    - Dst: OGRElasticLayer::BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1750,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 149
    argCount: 3
    argNames:
    - poFeature
    - poSource
    - osPath
    argTypes:
    - OGRFeature*
    - json_object*
    - CPLString
    constantsTouched: []
    func_position:
      end: 1754
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1754
    functionName: OGRElasticLayer::BuildFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 2
    functionsReached:
    - json_object_get_int64
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - OGR_GreatCircle_ExtendPosition
    - OGRGeoJSONReadGeometry
    - GetGeomFieldDefn
    - strcmp
    - GetFieldDefn
    - std::vector::push_back
    - CPLError
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::addRingDirectly
    - CPLString::empty
    - OGRFeature*::SetGeomFieldDirectly
    - CPL_json_object_object_get
    - end
    - CPLStrdup
    - decode_geohash_bbox
    - find
    - OGRPoint::OGRPoint
    - CSLCount
    - json_object_get_double
    - json_object_array_get_idx
    - CPLAtof
    - auto::IsGeographic
    - json_object_array_length
    - static_cast<int>
    - OGRLinearRing::OGRLinearRing
    - json_object_get_type
    - auto::GetSemiMajor
    - json_object_get_string
    - OGRElasticLayer::BuildFeature
    - CPLFree
    - empty
    - CSLDestroy
    - EQUAL
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - json_object_get_int
    - OGRLinearRing*::addPoint
    - json_object_get_boolean
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: "void OGRElasticLayer::BuildFeature(OGRFeature *poFeature, json_object
      *poSource,\n                                   CPLString osPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1762,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1763,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1764,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - json_object*
    - CPLString
    constantsTouched: []
    func_position:
      end: 1767
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1767
    functionName: AppendGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_object_add
    - json_object_new_object
    linkageType: ''
    returnType: json_object
    signature: json_object *AppendGroup(json_object *parent, const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1775,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1776,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1776,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1778
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1778
    functionName: AddPropertyMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_object_add
    - CPLString::c_str
    - json_object_new_object
    - json_object_new_string
    linkageType: ''
    returnType: json_object
    signature: json_object *AddPropertyMap(const CPLString &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1790,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1792,1
    - Dst: std::map<std::vector<CPLString>, json_object *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1794,1
    - Dst: std::map<std::vector<CPLString>, json_object *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1795,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1797,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1798,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1799,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - poContainer
    - aosPath
    - oMap
    argTypes:
    - json_object*
    - std::vector<CPLString>
    - std::map<std::vector<CPLString>, json_object *>
    constantsTouched: []
    func_position:
      end: 1810
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1810
    functionName: GetContainerForMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_object_add
    - std::map<std::vector<CPLString>, json_object *>::find
    - std::map<std::vector<CPLString>, json_object *>::end
    - std::vector::push_back
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nGetContainerForMapping(json_object *poContainer,\n
      \                      const std::vector<CPLString> &aosPath,\n                       std::map<std::vector<CPLString>,
      json_object *> &oMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1818,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1823,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1826,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1827,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1833,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1837,1
    - Dst: AddPropertyMap
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1839,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1843,1
    - Dst: GetContainerForMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1844,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1848,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1850,1
    - Dst: GetContainerForMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1852,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1859,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1864,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1896,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1897,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1899,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1900,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1901,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1902,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1910,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1911,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1913,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1914,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1916,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1916,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1917,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1918,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1920,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1921,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1922,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1923,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1926,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1927,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1929,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1930,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1931,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1932,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1934,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1935,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1936,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1937,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1939,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1940,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1941,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1944,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1945,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1949,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1950,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1951,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1952,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1954,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1957,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1960,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1964,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1965,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1968,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1968,1
    - Dst: GetContainerForMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1972,1
    - Dst: AddPropertyMap
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1977,1
    - Dst: AppendGroup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1981,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1982,1
    - Dst: AddPropertyMap
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1984,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1986,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1990,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1993,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1995,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1996,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1997,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1998,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:1999,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2001,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2001,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2006,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2007,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2008,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2009,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2010,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2011,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2013,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2013,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2020,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2022,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2023,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2024,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2024,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2026,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2029,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2030,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2033,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2036,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2037,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2039,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2039,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2040,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2040,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2041,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2044,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2046,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2047,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2052,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2055,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2056,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2058,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2059,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2060,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2060,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2064,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2067,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2070,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2071,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2072,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2073,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2075,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 1816
    functionDepth: 2
    functionLinenumber: 1816
    functionLinenumberEnd: 2082
    functionName: OGRElasticLayer::BuildMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - GetGeomFieldDefn
    - AddPropertyMap
    - GetFieldDefn
    - std::vector::push_back
    - json_object_object_add
    - GetFieldIndex
    - GetGeomFieldCount
    - CPLError
    - AppendGroup
    - OGRGeomFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetSubType
    - OGRToOGCGeomType
    - CSLCount
    - OGR_GetFieldTypeName
    - c_str
    - OGRFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetType
    - json_object_new_string
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - std::vector::resize
    - GetContainerForMapping
    - json_object_new_object
    - empty
    - std::vector::back
    - EQUAL
    - json_object_put
    - CSLFindString
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRElasticLayer::BuildMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2094,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2094,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2120,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2121,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2123,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2123,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2127,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2128,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2129,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2130,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2131,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2132,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2133,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2134,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2135,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2141,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2142,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2143,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2144,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2146,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2147,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2148,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2149,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2149,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2151,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2152,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2152,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2160,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2161,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2162,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2165,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2166,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2167,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2170,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2170,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2170,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2171,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2171,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2171,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2173,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2174,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2175,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2176,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2177,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2178,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2179,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2180,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2188,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2189,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2190,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2193,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2194,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2195,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2196,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2197,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2198,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2199,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2200,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2207,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2208,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2209,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2212,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2213,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2216,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2217,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2218,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2219,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2220,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2221,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2222,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2223,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2231,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2232,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2233,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2236,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2237,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2240,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2241,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2242,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2245,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2245,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2245,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2246,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2246,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2246,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2248,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2249,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2250,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2251,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2252,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2253,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2254,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2255,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2264,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2265,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2266,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2269,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2270,1
    - Dst: BuildGeoJSONGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2271,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 99
    argCount: 2
    argNames:
    - geometry
    - poGeom
    argTypes:
    - json_object*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2279
      start: 2088
    functionDepth: 2
    functionLinenumber: 2088
    functionLinenumberEnd: 2279
    functionName: BuildGeoJSONGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getY
    - OGRGeometry*::toMultiPoint
    - getY
    - OGRLineString*::getNumPoints
    - json_object_object_add
    - OGRLineString*::getY
    - BuildGeoJSONGeometry
    - OGRLineString*::getX
    - OGRGeometry*::toMultiPolygon
    - json_object_new_double_with_precision
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - OGRPoint*::getX
    - json_object_new_array
    - OGRGeometry*::toGeometryCollection
    - json_object_new_string
    - json_object_array_add
    - getX
    - OGRGeometry*::toLineString
    - json_object_new_object
    - OGRGeometry*::toPolygon
    - fabs
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: void
    signature: "void BuildGeoJSONGeometry(json_object *geometry,\n                                 const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2293,1
    - Dst: OGRElasticLayer::BuildMap
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2298,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2301,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2304,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2304,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2304,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2305,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2312,1
    - Dst: OGRElasticLayer::BuildMappingURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2315,1
    - Dst: UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2316,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2316,1
    - Dst: OGRElasticLayer::BuildMap
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2285
    functionDepth: 3
    functionLinenumber: 2285
    functionLinenumberEnd: 2323
    functionName: OGRElasticLayer::WriteMapIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - empty
    - VSIFCloseL
    - OGRElasticLayer::BuildMappingURL
    - OGRElasticLayer::BuildMap
    - VSIFOpenL
    - CPLString::c_str
    - UploadFile
    - VSIFWriteL
    - CPLString::length
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::WriteMapIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2335,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2337,1
    - Dst: std::map<std::vector<CPLString>, json_object *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2339,1
    - Dst: std::map<std::vector<CPLString>, json_object *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2340,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2342,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - poContainer
    - aosPath
    - oMap
    argTypes:
    - json_object*
    - std::vector<CPLString>
    - std::map<std::vector<CPLString>, json_object *>
    constantsTouched: []
    func_position:
      end: 2353
      start: 2329
    functionDepth: 1
    functionLinenumber: 2329
    functionLinenumberEnd: 2353
    functionName: GetContainerForFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_object_add
    - std::map<std::vector<CPLString>, json_object *>::find
    - std::map<std::vector<CPLString>, json_object *>::end
    - std::vector::push_back
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nGetContainerForFeature(json_object *poContainer,\n
      \                      const std::vector<CPLString> &aosPath,\n                       std::map<std::vector<CPLString>,
      json_object *> &oMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2361,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2361,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2361,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2365,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bMappingApi
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2367
      start: 2358
    functionDepth: 1
    functionLinenumber: 2358
    functionLinenumberEnd: 2367
    functionName: OGRElasticLayer::BuildMappingURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - GetURL
    - CPLSPrintf
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRElasticLayer::BuildMappingURL(bool bMappingApi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2379,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2381,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2385,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2387,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2387,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2389,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2389,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2390,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2390,1
    - Dst: OGRFeature*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2395,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2397,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2398,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2401,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2404,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2408,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2417,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2418,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2421,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2421,1
    - Dst: GetContainerForFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2425,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2430,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2432,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2434,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2436,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2438,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2443,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2444,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2446,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2447,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2448,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2453,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2461,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2462,1
    - Dst: BuildGeoJSONGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2464,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2469,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2470,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2471,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2472,1
    - Dst: OGRFeature*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2480,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2481,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2483,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2484,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2488,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2489,1
    - Dst: GetContainerForFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2490,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2497,1
    - Dst: GetContainerForFeature
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2503,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2506,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2508,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2512,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2515,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2517,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2519,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2520,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2522,1
    - Dst: json_object_new_int
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2524,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2525,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2528,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2530,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2531,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2534,1
    - Dst: json_object_new_double_with_significant_figures
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2536,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2537,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2544,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2546,1
    - Dst: json_object_new_int
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2547,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2548,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2556,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2557,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2559,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2560,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2561,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2570,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2572,1
    - Dst: json_object_new_double_with_significant_figures
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2574,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2576,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2583,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2585,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2586,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2587,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2594,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2596,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2597,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2598,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2610,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2614,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2616,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2616,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2625,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2627,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2627,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2637,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2638,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2644,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2645,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 116
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2649
      start: 2373
    functionDepth: 3
    functionLinenumber: 2373
    functionLinenumberEnd: 2649
    functionName: OGRElasticLayer::BuildJSonFromFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - json_object_new_boolean
    - std::vector::size
    - OGRFeature*::GetFieldAsString
    - GetContainerForFeature
    - OGRFeature*::IsFieldNull
    - json_object_object_add
    - std::vector::push_back
    - GetFieldDefn
    - OGRFeature*::GetGeomFieldCount
    - BuildGeoJSONGeometry
    - json_object_to_json_string
    - json_object_new_double_with_significant_figures
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - json_object_new_int64
    - OGRGeometry*::transform
    - json_object_new_double_with_precision
    - c_str
    - json_object_new_array
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - json_object_new_string
    - CPLSPrintf
    - json_object_array_add
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - OGRGeometry*::getEnvelope
    - std::vector::resize
    - OGRGeometry*::IsEmpty
    - json_object_new_object
    - empty
    - OGRFeature*::IsFieldSet
    - OGRGeometry*::exportToWkt
    - std::vector::back
    - json_object_put
    - CPLErrorOnce
    - json_object_new_int
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRElasticLayer::BuildJSonFromFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2657,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2659,1
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2664,1
    - Dst: OGRElasticLayer::WriteMapIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2666,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2669,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2672,1
    - Dst: OGRElasticLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2675,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2676,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2682,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2683,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2689,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2689,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2692,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2692,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2694,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2698,1
    - Dst: OGRElasticLayer::PushIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2700,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2711,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2712,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2719,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2721,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2723,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2724,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2727,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2731
      start: 2655
    functionDepth: 5
    functionLinenumber: 2655
    functionLinenumberEnd: 2731
    functionName: OGRElasticLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRElasticLayer::PushIndex
    - OGRElasticLayer::WriteMapIfNecessary
    - OGRFeature*::GetFieldAsString
    - RunRequest
    - CPLError
    - CPL_json_object_object_get
    - c_str
    - GetAccess
    - OGRFeature*::GetFID
    - json_object_get_type
    - CPLSPrintf
    - json_object_get_string
    - OGRElasticLayer::GetFeatureCount
    - OGRElasticLayer::FinalizeFeatureDefn
    - empty
    - length
    - json_object_put
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2739,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2741,1
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2746,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2748,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2750,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2753,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2753,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2755,1
    - Dst: OGRElasticLayer::WriteMapIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2759,1
    - Dst: OGRElasticLayer::PushIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2761,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2767,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2767,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2767,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2769,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2769,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2770,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2770,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2771,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2777,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2780
      start: 2737
    functionDepth: 5
    functionLinenumber: 2737
    functionLinenumberEnd: 2780
    functionName: OGRElasticLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRElasticLayer::FinalizeFeatureDefn
    - OGRElasticLayer::PushIndex
    - GetAccess
    - empty
    - GetURL
    - c_str
    - OGRFeature*::GetFID
    - OGRElasticLayer::WriteMapIfNecessary
    - OGRFeature*::GetFieldAsString
    - CPLSPrintf
    - RunRequest
    - json_object_put
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2788,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2790,1
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2795,1
    - Dst: OGRElasticLayer::WriteMapIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2797,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2800,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2803,1
    - Dst: OGRElasticLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2806,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2807,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2813,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2826,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2827,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2831,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2831,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2837,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2837,1
    - Dst: OGRElasticLayer::PushIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2839,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2851,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2855,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2859,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2859,1
    - Dst: UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2861,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2868
      start: 2786
    functionDepth: 5
    functionLinenumber: 2786
    functionLinenumberEnd: 2868
    functionName: OGRElasticLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRElasticLayer::GetFeatureCount
    - OGRElasticLayer::FinalizeFeatureDefn
    - c_str
    - empty
    - GetAccess
    - static_cast<size_t>
    - OGRElasticLayer::PushIndex
    - OGRElasticLayer::WriteMapIfNecessary
    - OGRFeature*::GetFID
    - OGRFeature*::GetFieldAsString
    - CPLSPrintf
    - length
    - CPLString::c_str
    - UploadFile
    - CPLError
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2876,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2874
    functionDepth: 0
    functionLinenumber: 2874
    functionLinenumberEnd: 2886
    functionName: OGRElasticLayer::PushIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 4
    functionsReached:
    - empty
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRElasticLayer::PushIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2895,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2897,1
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2902,1
    - Dst: OGRElasticLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2903,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2905,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2905,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2907,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2907,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2908,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2908,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2910,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2913,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2920,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2927,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2928,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2931,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2931,1
    - Dst: OGRElasticLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2933,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2933,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2933,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2934,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 2939
      start: 2892
    functionDepth: 5
    functionLinenumber: 2892
    functionLinenumberEnd: 2939
    functionName: OGRElasticLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - OGRElasticLayer::ResetReading
    - OGRElasticLayer::FinalizeFeatureDefn
    - GetAccess
    - OGRFieldDefn*::GetNameRef
    - CSLDestroy
    - EQUAL
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - CPLError
    - GetFieldIndex
    - OGRElasticLayer::AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRElasticLayer::CreateField(const OGRFieldDefn *poFieldDefn,\n
      \                                   int /*bApproxOK*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2951,1
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2956,1
    - Dst: OGRElasticLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2957,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2959,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2959,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2961,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2964,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2969,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2972,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2973,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2974,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2977,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2977,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2978,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2986,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2987,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2990,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2990,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2994,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:2996,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3000,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3001,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3004,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3006,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3007,1
    - Dst: OGRElasticLayer::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3009,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3012,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3014,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3015,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3016,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3017,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3017,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3019,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3019,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3023,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3031,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3034,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3037,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 1
    argNames:
    - poFieldIn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 3042
      start: 2945
    functionDepth: 5
    functionLinenumber: 2945
    functionLinenumberEnd: 3042
    functionName: OGRElasticLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetAxisMappingStrategy
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRElasticLayer::AddGeomFieldDefn
    - std::vector::push_back
    - CPLError
    - GetGeomFieldCount
    - OGRGeomFieldDefn*::GetNameRef
    - auto::Clone
    - OGRSpatialReference::IsSame
    - GetGeomFieldIndex
    - OGRSpatialReference::SetFromUserInput
    - OGRElasticLayer::ResetReading
    - GetAccess
    - OGRGeomFieldDefn*::GetType
    - OGRGeomFieldDefn::GetNameRef
    - OGRCreateCoordinateTransformation
    - auto::SetAxisMappingStrategy
    - OGRElasticLayer::FinalizeFeatureDefn
    - OGRGeomFieldDefn::SetName
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - push_back
    - OGRGeomFieldDefn::GetSpatialRef
    - OGRElasticLayer::BuildPathFromArray
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRElasticLayer::CreateGeomField(const OGRGeomFieldDefn *poFieldIn,\n
      \                                       int /*bApproxOK*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3050,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3053,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3056,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3057,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3057,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3058,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3059,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3059,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3063
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3063
    functionName: OGRElasticLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int OGRElasticLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3071,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 3075
      start: 3069
    functionDepth: 0
    functionLinenumber: 3069
    functionLinenumberEnd: 3075
    functionName: OGRElasticLayer::AddTimeoutTerminateAfterToURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::AddTimeoutTerminateAfterToURL(CPLString &osURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3086,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3092,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3092,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3094,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3097,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3103,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3105,1
    - Dst: OGRElasticLayer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3107,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3108,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3108,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3110,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3110,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3111,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3120,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3122,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3122,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3124,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3124,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3126,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3130,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3130,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3132,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3132,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3133,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3140,1
    - Dst: OGRElasticLayer::AddTimeoutTerminateAfterToURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3143,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3145,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3145,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3145,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3147,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3151,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3152,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3155,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3161,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3163,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3165,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3166,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3169,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3174,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3177
      start: 3081
    functionDepth: 3
    functionLinenumber: 3081
    functionLinenumberEnd: 3177
    functionName: OGRElasticLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 2
    functionsReached:
    - json_object_get_int64
    - GetURL
    - c_str
    - empty
    - OGRLayer::GetFeatureCount
    - OGRElasticLayer::AddTimeoutTerminateAfterToURL
    - json_object_get_type
    - CPLSPrintf
    - RunRequest
    - json_object_put
    - CPLString::c_str
    - CPLDebug
    - OGRElasticLayer::BuildQuery
    - substr
    - json_ex_get_object_by_path
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRElasticLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3187,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3190,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3192,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3201,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3203,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3207,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3209,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3210,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3213,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3214,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3216,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3217,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - nFieldIdx
    - poValNode
    argTypes:
    - int
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3230
      start: 3183
    functionDepth: 1
    functionLinenumber: 3183
    functionLinenumberEnd: 3230
    functionName: OGRElasticLayer::GetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - json_object_new_string
    - CPLSPrintf
    - json_object_new_int64
    - GetFieldDefn
    - CPLError
    - json_object_new_double
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRElasticLayer::GetValue(int nFieldIdx, swq_expr_node
      *poValNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3247
      start: 3236
    functionDepth: 0
    functionLinenumber: 3236
    functionLinenumberEnd: 3247
    functionName: OGRESGetFieldIndexFromSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRESGetFieldIndexFromSQL(const swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3258,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3264,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3266,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3269,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3270,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3271,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3272,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3273,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3274,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3275,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3286,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3288,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3291,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3292,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3293,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3294,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3295,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3296,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3297,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3302,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3303,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3314,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3316,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3317,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3321,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3322,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3323,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3329,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3332,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3333,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3334,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3335,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3347,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3348,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3350,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3351,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3354,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3355,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3356,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3357,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3358,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3359,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3360,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3366,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3370,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3371,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3372,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3373,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3384,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3385,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3387,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3392,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3395,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3396,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3397,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3398,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3399,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3403,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3411,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3415,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3424,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3432,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3434,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3438,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3439,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3452,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3453,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3455,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3460,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3461,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3462,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3463,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3466,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3473,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3481,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3482,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3484,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3489,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3492,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3496,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3497,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3498,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3499,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3502,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3503,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3504,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3509,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3510,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3523,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3526,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3527,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3528,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3529,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3533,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3536,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3539,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3552,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3555,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3566,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3575,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3576,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3577,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3578,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3582,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3585,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3588,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3593,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3594,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3595,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3596,1
    - Dst: OGRElasticLayer::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3600,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3603,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3606,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3607,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3608,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3610,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3615,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3616,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3620,1
    - Dst: OGRESGetFieldIndexFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3633,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3634,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3646,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3652,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3652,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3654,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3661,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3692,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3693,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3694,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3695,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3696,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3705,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 219
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3709
      start: 3253
    functionDepth: 2
    functionLinenumber: 3253
    functionLinenumberEnd: 3709
    functionName: OGRElasticLayer::TranslateSQLToFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_object
    - json_object_new_array
    - OGRElasticLayer::TranslateSQLToFilter
    - json_object_new_string
    - GetFieldCount
    - CPLDebug
    - json_object_put
    - OGRESGetFieldIndexFromSQL
    - json_object_array_add
    - strchr
    - CPL_IGNORE_RET_VAL
    - OGRElasticLayer::GetValue
    - CSLFindString
    - json_object_object_add
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRElasticLayer::TranslateSQLToFilter(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3720,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3722,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3727,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3733,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3734,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3736,1
    - Dst: reinterpret_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3740,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3740,1
    - Dst: OGRElasticLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3745
      start: 3715
    functionDepth: 3
    functionLinenumber: 3715
    functionLinenumberEnd: 3745
    functionName: OGRElasticLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - OGRLayer::SetAttributeFilter
    - reinterpret_cast<swq_expr_node *>
    - OGRElasticLayer::TranslateSQLToFilter
    - json_object_put
    - GetSWQExpr
    - CPLError
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - sEnvelope
    argTypes:
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 3772
      start: 3751
    functionDepth: 0
    functionLinenumber: 3751
    functionLinenumberEnd: 3772
    functionName: OGRElasticLayer::ClampEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRElasticLayer::ClampEnvelope(OGREnvelope &sEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3782,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3786,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3788,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3794,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3796,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3803,1
    - Dst: OGRElasticLayer::ClampEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3804,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3812,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3816,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3817,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3820,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3822,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3823,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3823,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3825,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3826,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3827,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3829,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3830,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3832,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3834,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3835,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3836,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3838,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3839,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3841,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3845,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3846,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3848,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3850,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3851,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3851,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3853,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3854,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3856,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3857,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3859,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3860,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3862,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3863,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3864,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3865,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3866,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3867,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3869,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3870,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3872,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3873,1
    - Dst: json_object_new_double_with_precision
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3875,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3880
      start: 3778
    functionDepth: 5
    functionLinenumber: 3778
    functionLinenumberEnd: 3880
    functionName: OGRElasticLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - OGRElasticLayer::FinalizeFeatureDefn
    - empty
    - json_object_new_array
    - json_object_object_add
    - json_object_new_string
    - json_object_put
    - OGRElasticLayer::ClampEnvelope
    - CPLString::c_str
    - json_object_array_add
    - json_object_new_double_with_precision
    - CPLError
    - InstallFilter
    - OGRElasticLayer::BuildPathFromArray
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRElasticLayer::ISetSpatialFilter(int iGeomField,\n                                          const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticLayer::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3889,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3898,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3903,1
    - Dst: OGRElasticLayer::BuildPathFromArray
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3906,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3908,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3908,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3908,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3910,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3910,1
    - Dst: OGRElasticLayer::AddTimeoutTerminateAfterToURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3912,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3914,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3916,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3916,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3916,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3917,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3922,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3925,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3928,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3932,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3937,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3938,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3940,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3941,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3942,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3944,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3946,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3953,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp:3971,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 3974
      start: 3886
    functionDepth: 5
    functionLinenumber: 3886
    functionLinenumberEnd: 3974
    functionName: OGRElasticLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached:
    - GetURL
    - OGRElasticLayer::FinalizeFeatureDefn
    - c_str
    - CPLErrorReset
    - OGRElasticLayer::AddTimeoutTerminateAfterToURL
    - CPLSPrintf
    - RunRequest
    - CPLDebug
    - CPLString::c_str
    - json_object_put
    - CPLPopErrorHandler
    - strstr
    - CPLPushErrorHandler
    - CPLError
    - OGRLayer::IGetExtent
    - OGRElasticLayer::BuildPathFromArray
    - json_ex_get_object_by_path
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRElasticLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3980
    functionDepth: 0
    functionLinenumber: 3980
    functionLinenumberEnd: 3983
    functionName: OGRElasticLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRElasticLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRElasticsearchDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRElasticsearchDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:166,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 168
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 168
    functionName: OGRElasticsearchDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRElasticsearchDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:177,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:181,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:183,1
    - Dst: OGRElasticsearchDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:186,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: DeclareDeferredOGRElasticPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRElasticsearchDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRElasticPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: OGRElasticDataSource::OGRElasticDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRElasticDataSource::OGRElasticDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:45,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:47,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: OGRElasticDataSource::~OGRElasticDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRElasticDataSource::~OGRElasticDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:57,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:57,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:58,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: OGRElasticDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int OGRElasticDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:82,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:86,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:106,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:108,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:109,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:110,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:115,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - pszQueriedIndexName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 120
    functionName: OGRElasticDataSource::GetIndexList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticDataSource::HTTPFetch
    - strchr
    - CPLHTTPDestroyResult
    - std::vector::push_back
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRElasticDataSource::GetIndexList(const char
      *pszQueriedIndexName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:132,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:132,1
    - Dst: OGRElasticDataSource::GetIndexList
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:136,1
    - Dst: OGRElasticDataSource::FetchMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:139,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:139,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:142,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: OGRElasticDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - static_cast<int>
    - OGRElasticDataSource::GetIndexList
    - OGRElasticDataSource::FetchMapping
    linkageType: ''
    returnType: int
    signature: int OGRElasticDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:153,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:153,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:156,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:157,1
    - Dst: OGRElasticDataSource::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:158,1
    - Dst: std::vector<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:158,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:162,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:164,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:165,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:166,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:177,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:180,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:184,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:185,1
    - Dst: OGRElasticLayer*::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:188,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:189,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:190,1
    - Dst: std::vector<std::unique_ptr<OGRElasticLayer>>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:191,1
    - Dst: std::unique_ptr<OGRElasticLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:192,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:196,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:198,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:200,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:200,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:202,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:203,1
    - Dst: OGRElasticLayer*::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:206,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:207,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:209,1
    - Dst: std::vector<std::unique_ptr<OGRElasticLayer>>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:211,1
    - Dst: std::unique_ptr<OGRElasticLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:212,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:219,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:220,1
    - Dst: OGRElasticLayer*::InitFeatureDefnFromMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:222,1
    - Dst: std::vector<CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:223,1
    - Dst: std::vector<std::unique_ptr<OGRElasticLayer>>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:224,1
    - Dst: std::unique_ptr<OGRElasticLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:224,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:228,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - pszIndexName
    - oSetLayers
    - apoLayers
    argTypes:
    - char*
    - std::set<CPLString>
    - std::vector<std::unique_ptr<OGRElasticLayer>>
    constantsTouched: []
    func_position:
      end: 230
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 230
    functionName: OGRElasticDataSource::FetchMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::set<CPLString>::insert
    - std::set<CPLString>::find
    - std::vector<std::unique_ptr<OGRElasticLayer>>::push_back
    - OGRElasticLayer::OGRElasticLayer
    - std::vector::size
    - OGRElasticDataSource::RunRequest
    - std::vector<int>
    - json_object_get_type
    - json_object_put
    - OGRElasticLayer*::InitFeatureDefnFromMapping
    - CPLString
    - std::vector<CPLString>
    - std::vector::push_back
    - std::set<CPLString>::end
    - std::unique_ptr<OGRElasticLayer>
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void OGRElasticDataSource::FetchMapping(\n    const char *pszIndexName,
      std::set<CPLString> &oSetLayers,\n    std::vector<std::unique_ptr<OGRElasticLayer>>
      &apoLayers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::FetchMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszIndexName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: OGRElasticDataSource::FetchMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRElasticDataSource::FetchMapping
    linkageType: ''
    returnType: void
    signature: void OGRElasticDataSource::FetchMapping(const char *pszIndexName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:249,1
    - Dst: OGRElasticDataSource::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:249,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:251,1
    - Dst: OGRElasticDataSource::FetchMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:257,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:259,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:262,1
    - Dst: OGRElasticDataSource::FetchMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:263,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:267,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:267,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:269,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:276,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:288,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:290,1
    - Dst: OGRElasticDataSource::GetIndexList
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:291,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:292,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:292,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:293,1
    - Dst: dynamic_cast<OGRElasticLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:303,1
    - Dst: OGRElasticDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:303,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:303,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:307,1
    - Dst: std::make_unique<OGRElasticLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:308,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:309,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 310
    functionName: OGRElasticDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<OGRElasticLayer *>
    - OGRElasticDataSource::FetchMapping
    - CPLString::resize
    - std::string::c_str
    - GDALDataset::GetLayerByName
    - std::string::find
    - find
    - OGRElasticDataSource::GetIndexList
    - c_str
    - get
    - auto::empty
    - std::string::resize
    - GetIndexName
    - size
    - back
    - OGRElasticDataSource::GetName
    - EQUAL
    - std::make_unique<OGRElasticLayer>
    - push_back
    - OGRElasticDataSource::GetLayerByName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRElasticDataSource::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:324,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: OGRElasticDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRElasticDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:338,1
    - Dst: OGRElasticDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:343,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:344,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:344,1
    - Dst: OGRElasticDataSource::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:351,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:352,1
    - Dst: GetMappingName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:353,1
    - Dst: OGRElasticDataSource::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:357,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:357,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:357,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:357,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:361,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:365,1
    - Dst: json_object_object_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:368,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:377,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:381,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:381,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:385,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:385,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:387,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:388,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:388,1
    - Dst: OGRElasticDataSource::Delete
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:390,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:390,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:390,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 393
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 393
    functionName: OGRElasticDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - erase
    - static_cast<int>
    - OGRElasticDataSource::GetName
    - OGRElasticDataSource::GetURL
    - OGRElasticDataSource::RunRequest
    - CPLSPrintf
    - json_object_put
    - CPLDebug
    - CPLString::c_str
    - json_object_object_length
    - begin
    - OGRElasticDataSource::GetLayerCount
    - CPLError
    - GetIndexName
    - OGRElasticDataSource::Delete
    - GetMappingName
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRElasticDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:406,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:411,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:413,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:421,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:428,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:428,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:429,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:429,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:432,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:433,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:434,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:445,1
    - Dst: OGRElasticDataSource::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:446,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:447,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:447,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:447,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:448,1
    - Dst: CPLErrorSetState
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:451,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:457,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:463,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:466,1
    - Dst: json_object_object_length
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:469,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:479,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:484,1
    - Dst: OGRElasticDataSource::Delete
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:486,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:486,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:486,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:486,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:489,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:495,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:499,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:504,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:509,1
    - Dst: OGRElasticDataSource::Delete
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:512,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:512,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:512,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:512,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:519,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:520,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:524,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:525,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:535,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:535,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:535,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:544,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:546,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:550,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:551,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:554,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:555,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:557,1
    - Dst: OGRElasticDataSource::UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:561,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:561,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:571,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:573,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:577,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:578,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:581,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:582,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:584,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:589,1
    - Dst: OGRElasticDataSource::GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:589,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:589,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:591,1
    - Dst: OGRElasticDataSource::UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:592,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:592,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:599,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:599,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:599,1
    - Dst: OGRElasticLayer*::FinalizeFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:601,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:610,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:611,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:612,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:613,1
    - Dst: OGRElasticLayer*::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:615,1
    - Dst: OGRElasticLayer*::SetManualMapping
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:618,1
    - Dst: OGRElasticLayer*::SetIgnoreSourceID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:620,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:621,1
    - Dst: OGRElasticLayer*::SetDotAsNestedField
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:622,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:623,1
    - Dst: OGRElasticLayer*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:624,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:624,1
    - Dst: OGRElasticLayer*::SetNextFID
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:625,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:627,1
    - Dst: OGRElasticLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:627,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:628,1
    - Dst: std::unique_ptr<OGRElasticLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:628,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 631
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 631
    functionName: OGRElasticDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticLayer*::SetFID
    - OGRElasticLayer*::SetIgnoreSourceID
    - OGRElasticLayer*::SetManualMapping
    - CPLDebug
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - strcmp
    - CPLError
    - std::unique_ptr<OGRElasticLayer>
    - OGRElasticDataSource::Delete
    - CPL_json_object_object_get
    - OGRSpatialReference*::SetAxisMappingStrategy
    - reinterpret_cast<char *>
    - CPLGetLastErrorMsg
    - insert
    - OGRElasticDataSource::GetURL
    - CPLString::c_str
    - CPLString::size
    - CPLPopErrorHandler
    - auto::Clone
    - OGRElasticLayer*::FinalizeFeatureDefn
    - OGRElasticLayer*::SetNextFID
    - CPLFetchBool
    - OGRElasticLayer*::CreateGeomField
    - OGRGeomFieldDefn*::GetType
    - CPLSPrintf
    - CPLGetLastErrorNo
    - VSIFOpenL
    - json_object_object_length
    - CPL_IGNORE_RET_VAL
    - VSIIngestFile
    - OGRElasticLayer*::SetDotAsNestedField
    - OGRElasticLayer*::GetName
    - OGRElasticDataSource::UploadFile
    - VSIFCloseL
    - OGRElasticLayer::OGRElasticLayer
    - CSLFetchNameValueDef
    - OGRElasticDataSource::RunRequest
    - json_object_put
    - strchr
    - VSIFree
    - OGRGeomFieldDefn*::GetSpatialRef
    - CPLGetLastErrorType
    - CPLPushErrorHandler
    - push_back
    - CPLErrorSetState
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRElasticDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                  const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:641,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:642,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:642,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:643,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:664,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:664,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pszURL
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 668
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 668
    functionName: OGRElasticDataSource::HTTPFetch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - CPLHTTPFetch
    - CPLStringList::SetNameValue
    - std::string::c_str
    linkageType: ''
    returnType: CPLHTTPResult
    signature: "CPLHTTPResult *OGRElasticDataSource::HTTPFetch(const char *pszURL,\n
      \                                              CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:683,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:685,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:689,1
    - Dst: OGRElasticDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:690,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:691,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:692,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:702,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:702,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:710,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:710,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:714,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:714,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:722,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:724,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:728,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:730,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:732,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:738,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:740,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:744,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:748,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - pszURL
    - pszPostContent
    - anSilentedHTTPErrors
    argTypes:
    - char*
    - char*
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 755
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 755
    functionName: OGRElasticDataSource::RunRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 3
    functionsReached:
    - OGRElasticDataSource::HTTPFetch
    - CSLDestroy
    - json_object_get_type
    - CPLSPrintf
    - CPLDebug
    - json_object_put
    - CSLAddNameValue
    - CPLString::c_str
    - CPLPopErrorHandler
    - strstr
    - CPLPushErrorHandler
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    - CSLSetNameValue
    - OGRJSonParse
    linkageType: ''
    returnType: json_object
    signature: "json_object *\nOGRElasticDataSource::RunRequest(const char *pszURL,
      const char *pszPostContent,\n                                 const std::vector<int>
      &anSilentedHTTPErrors)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:763,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:767,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:770,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:772,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:776,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:777,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:780,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:786,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 794
    functionName: OGRElasticDataSource::CheckVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - json_object_get_type
    - OGRElasticDataSource::RunRequest
    - CPLDebug
    - json_object_put
    - CPLError
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool OGRElasticDataSource::CheckVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticAggregationLayer::Build
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszAggregation
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: OGRElasticDataSource::OpenAggregation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRElasticAggregationLayer::Build
    linkageType: ''
    returnType: bool
    signature: bool OGRElasticDataSource::OpenAggregation(const char *pszAggregation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:815,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:816,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:817,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:828,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:829,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:829,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:831,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:832,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:835,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:836,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:839,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:842,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:851,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:852,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:860,1
    - Dst: OGRElasticDataSource::CheckVersion
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:864,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:873,1
    - Dst: OGRElasticDataSource::OpenAggregation
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:886,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 889
      start: 812
    functionDepth: 4
    functionLinenumber: 812
    functionLinenumberEnd: 889
    functionName: OGRElasticDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - empty
    - CPLStrdup
    - atoi
    - CPLFetchBool
    - CPLError
    - CSLFetchNameValueDef
    - OGRElasticDataSource::OpenAggregation
    - CSLTokenizeString2
    - CPLStringList::size
    - CPLFree
    - OGRElasticDataSource::CheckVersion
    linkageType: ''
    returnType: bool
    signature: bool OGRElasticDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:898,1
    - Dst: OGRElasticDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:899,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:900,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - url
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 905
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 905
    functionName: OGRElasticDataSource::Delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 2
    functionsReached:
    - CSLDestroy
    - CSLAddNameValue
    - OGRElasticDataSource::HTTPFetch
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: void
    signature: void OGRElasticDataSource::Delete(const CPLString &url)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:917,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:920,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:920,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:922,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:924,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:927,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:933,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:933,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:935,1
    - Dst: OGRElasticDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:939,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:940,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:945,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:946,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:950,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:954,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - url
    - data
    - osVerb
    argTypes:
    - CPLString
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 957
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 957
    functionName: OGRElasticDataSource::UploadFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRElasticDataSource::HTTPFetch
    - CSLDestroy
    - CSLAddNameValue
    - CPLString::c_str
    - strstr
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    - CPLString::empty
    linkageType: ''
    returnType: bool
    signature: "bool OGRElasticDataSource::UploadFile(const CPLString &url,\n                                      const
      CPLString &data,\n                                      const CPLString &osVerb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:967,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:969,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:970,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:974,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:974,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:976,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:976,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:981,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:985,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:986,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:991,1
    - Dst: OGRElasticDataSource::CheckVersion
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 996
      start: 963
    functionDepth: 4
    functionLinenumber: 963
    functionLinenumberEnd: 996
    functionName: OGRElasticDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - STARTS_WITH_CI
    - CPLTestBool
    - empty
    - CPLStrdup
    - VSIFCloseL
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - VSIIngestFile
    - CPLGetConfigOption
    - OGRElasticDataSource::CheckVersion
    linkageType: ''
    returnType: int
    signature: "int OGRElasticDataSource::Create(const char *pszFilename,\n                                 CPL_UNUSED
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1004,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1005,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1005,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1007,1
    - Dst: OGRElasticDataSource::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1007,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1010,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1010,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1012,1
    - Dst: OGRElasticDataSource::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1016
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1016
    functionName: OGRElasticDataSource::GetLayerIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRElasticDataSource::GetName
    - EQUAL
    - strcmp
    - OGRElasticDataSource::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int OGRElasticDataSource::GetLayerIndex(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRElasticDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1026,1
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1029,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1035,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1042,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1042,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1045,1
    - Dst: OGRElasticDataSource::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1045,1
    - Dst: OGRElasticDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1047,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1054,1
    - Dst: OGRElasticLayer::OGRElasticLayer
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1056,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1063,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1065,1
    - Dst: swq_select*::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1066,1
    - Dst: OGRElasticDataSource::GetLayerIndex
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1075,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1080,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1095,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1097,1
    - Dst: OGRElasticLayer*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1102,1
    - Dst: OGRElasticLayer*::SetOrderBy
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1104,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1108,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1117,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1118,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1120,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1122,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1123,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1125,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1137,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1138
    functionName: OGRElasticDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - swq_select::swq_select
    - std::vector::emplace_back
    - CPLDebug
    - CPL_TO_BOOL
    - OGRElasticDataSource::DeleteLayer
    - OGRElasticLayer*::SetOrderBy
    - OGRElasticDataSource::GetLayerIndex
    - OGRElasticDataSource::GetLayerCount
    - OGRElasticLayer*::Clone
    - STARTS_WITH_CI
    - static_cast<int>
    - release
    - get
    - CPLFree
    - swq_select*::preparse
    - size
    - OGRElasticDataSource::GetName
    - OGRElasticLayer::OGRElasticLayer
    - SyncToDisk
    - EQUAL
    - GDALDataset::ExecuteSQL
    - reset
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRElasticDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                          OGRGeometry *poSpatialFilter,\n                                           const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1150,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1151,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp:1158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 1164
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1164
    functionName: OGRElasticDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/elastic/ogrelasticdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - erase
    linkageType: ''
    returnType: void
    signature: void OGRElasticDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 13
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: OGRSelafinDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSelafinDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSelafinDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:59,1
    - Dst: OGRSelafinDataSource::OGRSelafinDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:62,1
    - Dst: OGRSelafinDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: OGRSelafinDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSelafinDataSource*::Open
    - OGRSelafinDriverIdentify
    - OGRSelafinDataSource::OGRSelafinDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSelafinDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:83,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:85,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:87,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:97,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:99,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:100,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:108,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:118,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:121,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:123,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:128,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:133,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:138,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:141,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:144,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:148,1
    - Dst: Selafin::write_string
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:150,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:153,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:157,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:161,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:165,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:167,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:169,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:171,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:173,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:175,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:178,1
    - Dst: OGRSelafinDataSource::OGRSelafinDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:183,1
    - Dst: OGRSelafinDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:184,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 82
    argCount: 6
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 190
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 190
    functionName: OGRSelafinDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - atoi
    - VSIFCloseL
    - OGRSelafinDataSource::OGRSelafinDataSource
    - Selafin::write_floatarray
    - OGRSelafinDataSource*::Open
    - strncpy
    - Selafin::write_intarray
    - VSIFOpenL
    - strcmp
    - Selafin::write_string
    - CPLError
    - memset
    - CSLFetchNameValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRSelafinDriverCreate(const char *pszName, CPL_UNUSED
      int nXSize,\n                       CPL_UNUSED int nYSize, CPL_UNUSED int nBands,\n
      \                      CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLUnlinkTree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: OGRSelafinDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp
    functionUses: 0
    functionsReached:
    - CPLUnlinkTree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSelafinDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:210,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:213,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:215,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:216,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:217,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:218,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:219,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:220,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:221,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:222,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:224,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:225,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:228,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:240,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:247,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 255
    functionName: RegisterOGRSelafin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRSelafin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:27,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:28,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:29,1
    - Dst: VSILFILE*::Eof
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:31,1
    - Dst: VSILFILE*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:31,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:36,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:38,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fpDest
    - fpSource
    argTypes:
    - VSILFILE*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: MoveOverwrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - VSIRewindL
    - VSILFILE*::Error
    - VSIFTruncateL
    - VSILFILE*::Eof
    - VSIFFlushL
    - VSIFWriteL
    linkageType: ''
    returnType: void
    signature: void MoveOverwrite(VSILFILE *fpDest, VSILFILE *fpSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:52,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:55,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:55,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:59,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:61,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:61,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:62,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:64,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:66,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:69,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:70,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - poDS
    - pszLayerNameP
    - bUpdateP
    - poSpatialRefP
    - poHeaderP
    - nStepNumberP
    - eTypeP
    argTypes:
    - GDALDataset*
    - char*
    - int
    - OGRSpatialReference*
    - Selafin::Header*
    - int
    - SelafinTypeDef
    constantsTouched: []
    func_position:
      end: 77
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 77
    functionName: OGRSelafinLayer::OGRSelafinLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - SetGeomType
    - CPLGetBasenameSafe
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLDebug
    - SetAxisMappingStrategy
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetName
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRSelafinLayer::OGRSelafinLayer(GDALDataset *poDS, const char
      *pszLayerNameP,\n                                 int bUpdateP,\n                                 const
      OGRSpatialReference *poSpatialRefP,\n                                 Selafin::Header
      *poHeaderP, int nStepNumberP,\n                                 SelafinTypeDef
      eTypeP)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:85,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:85,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:87,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: OGRSelafinLayer::~OGRSelafinLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - GetName
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRSelafinLayer::~OGRSelafinLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSelafinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:102,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:106,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:106,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: OGRSelafinLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSelafinLayer::GetFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSelafinLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: OGRSelafinLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSelafinLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: OGRSelafinLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:140,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:142,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:146,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:148,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 173
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 173
    functionName: OGRSelafinLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRSelafinLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:180,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:187,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:188,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:188,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:190,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:193,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:194,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:197,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:198,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:212,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:213,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:214,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:215,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:222,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:226,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:227,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:230,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:234,1
    - Dst: OGRPolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:235,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:236,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:240,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:242,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 245
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 245
    functionName: OGRSelafinLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - getPosition
    - OGRPolygon::OGRPolygon
    - OGRLinearRing::OGRLinearRing
    - VSIFSeekL
    - CPLDebug
    - OGRPoint::OGRPoint
    - OGRFeature*::SetField
    - OGRLinearRing*::addPoint
    - OGRPolygon*::closeRings
    - OGRPolygon*::addRingDirectly
    - Selafin::read_float
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSelafinLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSelafinLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:262,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:264,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:264,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: OGRSelafinLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSelafinLayer::GetFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSelafinLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: OGRSelafinLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - getBoundingBox
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSelafinLayer::IGetExtent(int /* iGeomField*/, OGREnvelope
      *psExtent,\n                                   bool /* bForce*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:295,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:302,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:304,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:309,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:310,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:311,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:312,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:313,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:316,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:325,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:326,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:328,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:331,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:341,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:342,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:344,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:350,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:351,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:354,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:366,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:368,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:373,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:376,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:382,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:385,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:386,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:386,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:387,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:387,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:388,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:388,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:389,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:403,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:404,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:405,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:415,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:416,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:419,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:423,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:434,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:435,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:438,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:444,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:445,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 447
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 447
    functionName: OGRSelafinLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRFeature*::GetFID
    - Selafin::write_float
    - VSIFSeekL
    - CPLDebug
    - OGRLinearRing*::getY
    - OGRGeometry*::toPoint
    - OGRGeometry*::toPolygon
    - OGRLinearRing*::getX
    - VSIFTellL
    - VSIFFlushL
    - OGRFeature*::GetGeometryRef
    - CPLError
    - UpdateFileSize
    - getPosition
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:454,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:457,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:457,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:465,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:470,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:471,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:472,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:473,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:473,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:475,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:475,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:475,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:490,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:492,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:500,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:501,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:502,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:503,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:503,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:504,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:504,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:505,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:505,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:515,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:529,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:538,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:540,1
    - Dst: getBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:560,1
    - Dst: getClosestPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:569,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:570,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:570,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:577,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:577,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:578,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:584,1
    - Dst: setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:593,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:594,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:600,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:601,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:604,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:606,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:606,1
    - Dst: Selafin::write_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:609,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:611,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:612,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:612,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:619,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:620,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:621,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:622,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:623,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:624,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:626,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:627,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:627,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:633,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:636,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:637,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:637,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:640,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:644,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:645,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:645,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:650,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:653,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:656,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:657,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:658,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:658,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:661,1
    - Dst: MoveOverwrite
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:668,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:669,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:669,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:670,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 107
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 672
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 672
    functionName: OGRSelafinLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - addPoint
    - OGRPoint*::getY
    - Selafin::read_floatarray
    - CPLDebug
    - OGRLinearRing*::getY
    - OGRLinearRing*::getX
    - CPLError
    - Selafin::write_integer
    - UpdateFileSize
    - std::string::c_str
    - Selafin::read_integer
    - Selafin::write_float
    - OGRFeature*::GetFieldAsDouble
    - CPLRealloc
    - getBoundingBox
    - OGRGeometry*::getGeometryType
    - CPLGenerateTempFilenameSafe
    - OGRLinearRing*::getNumPoints
    - OGRPoint*::getX
    - setUpdated
    - MoveOverwrite
    - OGRFeature*::GetFID
    - VSIFSeekL
    - VSIUnlink
    - Selafin::write_floatarray
    - VSIFOpenL
    - getPosition
    - getClosestPoint
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - VSIStrerror
    - Selafin::write_header
    - VSIFCloseL
    - OGRGeometry*::toPolygon
    - VSIFree
    - OGRGeometry*::toPoint
    - Selafin::read_float
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:680,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:680,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:681,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:681,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:683,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:683,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:687,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:687,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:689,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:690,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:690,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:692,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:695,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:702,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:706,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:706,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:709,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:709,1
    - Dst: setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:713,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:714,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:717,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:718,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:718,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:721,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:726,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:727,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:727,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:730,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:732,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:732,1
    - Dst: Selafin::write_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:735,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:737,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:738,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:738,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:745,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:746,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:747,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:748,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:749,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:750,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:752,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:753,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:753,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:759,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:762,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:763,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:763,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:766,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:769,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:770,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:771,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:771,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:774,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:777,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:780,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:783,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:784,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:785,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:785,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:788,1
    - Dst: MoveOverwrite
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:790,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:791,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:791,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:792,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 794
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 794
    functionName: OGRSelafinLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetFieldTypeName
    - Selafin::read_floatarray
    - strncpy
    - CPLDebug
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - GetFieldIndex
    - Selafin::write_integer
    - std::string::c_str
    - UpdateFileSize
    - Selafin::read_integer
    - Selafin::write_float
    - CPLRealloc
    - AddFieldDefn
    - GetGeomFieldIndex
    - CPLGenerateTempFilenameSafe
    - setUpdated
    - MoveOverwrite
    - OGRFieldDefn*::GetNameRef
    - VSIFSeekL
    - VSIUnlink
    - Selafin::write_floatarray
    - CPLSPrintf
    - VSIFOpenL
    - OGRFieldDefn*::GetType
    - getPosition
    - VSIStrerror
    - CPLFree
    - VSIFCloseL
    - VSI_MALLOC2_VERBOSE
    - Selafin::write_header
    - Selafin::read_float
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSelafinLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                   CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:801,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:802,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:802,1
    - Dst: setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:806,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:807,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:810,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:812,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:817,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:818,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:818,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:821,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:823,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:823,1
    - Dst: Selafin::write_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:826,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:828,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:829,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:829,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:836,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:837,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:838,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:839,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:840,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:841,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:843,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:844,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:844,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:850,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:853,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:854,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:854,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:859,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:862,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:863,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:864,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:864,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:868,1
    - Dst: MoveOverwrite
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:871,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:872,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:872,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:873,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 875
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 875
    functionName: OGRSelafinLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - Selafin::read_floatarray
    - CPLDebug
    - Selafin::write_integer
    - CPLError
    - UpdateFileSize
    - std::string::c_str
    - Selafin::read_integer
    - DeleteFieldDefn
    - Selafin::write_float
    - CPLRealloc
    - CPLGenerateTempFilenameSafe
    - setUpdated
    - MoveOverwrite
    - VSIFSeekL
    - VSIUnlink
    - Selafin::write_floatarray
    - VSIFOpenL
    - getPosition
    - CPLFree
    - VSIStrerror
    - VSIFCloseL
    - Selafin::write_header
    - Selafin::read_float
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:882,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:883,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:883,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:890,1
    - Dst: ReorderFieldDefns
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:892,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:895,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:896,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:899,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:901,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:901,1
    - Dst: Selafin::write_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:904,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:906,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:907,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:907,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:915,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:916,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:917,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:918,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:919,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:920,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:922,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:923,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:923,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:928,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:928,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:930,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:933,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:934,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:934,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:937,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:940,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:941,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:942,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:942,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:945,1
    - Dst: MoveOverwrite
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:948,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:949,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:949,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:950,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 952
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 952
    functionName: OGRSelafinLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - Selafin::read_floatarray
    - CPLDebug
    - Selafin::write_integer
    - CPLError
    - UpdateFileSize
    - std::string::c_str
    - Selafin::read_integer
    - Selafin::write_float
    - CPLGenerateTempFilenameSafe
    - MoveOverwrite
    - VSIFSeekL
    - VSIUnlink
    - Selafin::write_floatarray
    - VSIFOpenL
    - getPosition
    - CPLFree
    - VSIStrerror
    - ReorderFieldDefns
    - VSIFCloseL
    - Selafin::write_header
    - Selafin::read_float
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:960,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:961,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:962,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:962,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:965,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:967,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:971,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:971,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:976,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:978,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:979,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:979,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:982,1
    - Dst: Selafin::write_string
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:984,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:987,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - iField
    - poNewFieldDefn
    argTypes:
    - int
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 990
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 990
    functionName: OGRSelafinLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetFieldTypeName
    - OGRFieldDefn*::GetNameRef
    - VSIFSeekL
    - strncpy
    - CPLDebug
    - VSI_MALLOC2_VERBOSE
    - UpdateFileSize
    - OGRFieldDefn*::GetType
    - VSIFFlushL
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - Selafin::write_string
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSelafinLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                      int /* nFlagsIn */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:997,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:998,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:998,1
    - Dst: removePoint
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1002,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1013,1
    - Dst: setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1016,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1020,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1021,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1024,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1026,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1026,1
    - Dst: Selafin::write_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1029,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1031,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1032,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1032,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1039,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1040,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1041,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1042,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1043,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1044,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1046,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1047,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1047,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1053,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1056,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1057,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1057,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1065,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1068,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1069,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1070,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1070,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1073,1
    - Dst: MoveOverwrite
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1080,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1081,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1081,1
    - Dst: UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp:1082,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1085
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1085
    functionName: OGRSelafinLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafinlayer.cpp
    functionUses: 0
    functionsReached:
    - Selafin::read_floatarray
    - CPLDebug
    - Selafin::write_integer
    - CPLError
    - UpdateFileSize
    - std::string::c_str
    - Selafin::read_integer
    - Selafin::write_float
    - CPLRealloc
    - CPLGenerateTempFilenameSafe
    - setUpdated
    - MoveOverwrite
    - VSIFSeekL
    - VSIUnlink
    - Selafin::write_floatarray
    - VSIFOpenL
    - getPosition
    - VSIStrerror
    - CPLFree
    - removePoint
    - VSIFCloseL
    - Selafin::write_header
    - Selafin::read_float
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hFeature
    - poBounds
    argTypes:
    - void*
    - CPLRectObj*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: Selafin::GetBoundsFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetBoundsFunc(const void *hFeature, CPLRectObj *poBounds)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pElt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Selafin::DumpFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DumpFeatures(void *pElt, void * /* pUserData */)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Selafin::Header::Header
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Header::Header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:67,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:68,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:72,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:73,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:75,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:76,1
    - Dst: CPLQuadTreeForeach
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:79,1
    - Dst: CPLQuadTreeDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:80,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:82,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:84,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: Header::~Header()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLQuadTreeDestroy
    - CPLQuadTreeForeach
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void Header::~Header()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: Selafin::Header::setUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Header::setUpdated()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - nStep
    - nFeature
    - nAttribute
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: Selafin::Header::getPosition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Header::getPosition(int nStep, int nFeature, int nAttribute) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRectObj::CPLRectObj
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: Selafin::Header::getBoundingBox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLRectObj::CPLRectObj
    linkageType: ''
    returnType: CPLRectObj
    signature: CPLRectObj *Header::getBoundingBox() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: Selafin::Header::updateBoundingBox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Header::updateBoundingBox()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLQuadTreeForeach
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:147,1
    - Dst: CPLQuadTreeDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:148,1
    - Dst: Selafin::Header::getBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:154,1
    - Dst: CPLQuadTreeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:155,1
    - Dst: CPLQuadTreeSetBucketCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:157,1
    - Dst: Point::Point
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:160,1
    - Dst: CPLQuadTreeInsert
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:163,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - dfx
    - dfy
    - dfMax
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 196
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 196
    functionName: Selafin::Header::getClosestPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLQuadTreeDestroy
    - CPLQuadTreeForeach
    - CPLQuadTreeInsert
    - Selafin::Header::getBoundingBox
    - CPLQuadTreeSetBucketCapacity
    - Point::Point
    - CPLQuadTreeCreate
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int Header::getClosestPoint(const double &dfx, const double &dfy,\n
      \                           const double &dfMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:204,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:207,1
    - Dst: Selafin::Header::setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - dfx
    - dfy
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: Selafin::Header::addPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - Selafin::Header::setUpdated
    linkageType: ''
    returnType: void
    signature: void Header::addPoint(const double &dfx, const double &dfy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:232,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:236,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:258,1
    - Dst: Selafin::Header::setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:303,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: Selafin::Header::removePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - Selafin::Header::setUpdated
    linkageType: ''
    returnType: void
    signature: void Header::removePoint(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:312,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nRecordsP
    - nFieldsP
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: Selafin::TimeStep::TimeStep
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - VSI_MALLOC2_VERBOSE
    linkageType: ''
    returnType: void
    signature: void TimeStep::TimeStep(int nRecordsP, int nFieldsP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:321,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: TimeStep::~TimeStep()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TimeStep::~TimeStep()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: TimeStepList::~TimeStepList()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TimeStepList::~TimeStepList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:349,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:354,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fp
    - nData
    - bDiscard
    argTypes:
    - VSILFILE*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 358
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 358
    functionName: Selafin::read_integer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 5
    functionsReached:
    - CPLError
    - memcpy
    - CPL_MSBPTR32
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int read_integer(VSILFILE *fp, int &nData, bool bDiscard)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:363,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:364,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:365,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - nData
    argTypes:
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: Selafin::write_integer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 5
    functionsReached:
    - VSIFWriteL
    - memcpy
    - CPL_MSBPTR32
    - CPLError
    linkageType: ''
    returnType: int
    signature: int write_integer(VSILFILE *fp, int nData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:377,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:379,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:381,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:388,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:394,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:401,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:402,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:409,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - fp
    - pszData
    - nFileSize
    - bDiscard
    argTypes:
    - VSILFILE*
    - char*
    - vsi_l_offset
    - bool
    constantsTouched: []
    func_position:
      end: 416
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 416
    functionName: Selafin::read_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - VSIFSeekL
    - VSIFree
    - VSIFReadL
    - CPLError
    - Selafin::read_integer
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: "int read_string(VSILFILE *fp, char *&pszData, vsi_l_offset nFileSize,\n
      \               bool bDiscard)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:421,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:422,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:422,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:426,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:429,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fp
    - pszData
    - nLength
    argTypes:
    - VSILFILE*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: Selafin::write_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - CPLError
    - VSIFWriteL
    - strlen
    - Selafin::write_integer
    linkageType: ''
    returnType: int
    signature: int write_string(VSILFILE *fp, char *pszData, size_t nLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:438,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:442,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:449,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:459,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:464,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:466,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:468,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:471,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:473,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - fp
    - panData
    - nFileSize
    - bDiscard
    argTypes:
    - VSILFILE*
    - int*
    - vsi_l_offset
    - bool
    constantsTouched: []
    func_position:
      end: 480
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 480
    functionName: Selafin::read_intarray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - VSIFSeekL
    - VSI_MALLOC2_VERBOSE
    - CPLError
    - CPLFree
    - Selafin::read_integer
    linkageType: ''
    returnType: int
    signature: "int read_intarray(VSILFILE *fp, int *&panData, vsi_l_offset nFileSize,\n
      \                 bool bDiscard)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:484,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:484,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:488,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:490,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:494,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fp
    - panData
    - nLength
    argTypes:
    - VSILFILE*
    - int*
    - size_t
    constantsTouched: []
    func_position:
      end: 497
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 497
    functionName: Selafin::write_intarray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 1
    functionsReached:
    - Selafin::write_integer
    - static_cast<int>
    - CPLError
    linkageType: ''
    returnType: int
    signature: int write_intarray(VSILFILE *fp, int *panData, size_t nLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:504,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fp
    - dfData
    - bDiscard
    argTypes:
    - VSILFILE*
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 513
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 513
    functionName: Selafin::read_float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 6
    functionsReached:
    - CPLError
    - CPL_MSBPTR32
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int read_float(VSILFILE *fp, double &dfData, bool bDiscard)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:518,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:519,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - dfData
    argTypes:
    - VSILFILE*
    - double
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: Selafin::write_float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 6
    functionsReached:
    - VSIFWriteL
    - CPL_MSBPTR32
    - CPLError
    linkageType: ''
    returnType: int
    signature: int write_float(VSILFILE *fp, double dfData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:531,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:532,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:534,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:541,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:552,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:557,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:559,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:561,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:564,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - fp
    - papadfData
    - nFileSize
    - bDiscard
    argTypes:
    - VSILFILE*
    - double**
    - vsi_l_offset
    - bool
    constantsTouched: []
    func_position:
      end: 573
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 573
    functionName: Selafin::read_floatarray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 5
    functionsReached:
    - static_cast<unsigned>
    - VSIFSeekL
    - VSI_MALLOC2_VERBOSE
    - CPLError
    - Selafin::read_float
    - CPLFree
    - Selafin::read_integer
    linkageType: ''
    returnType: int
    signature: "int read_floatarray(VSILFILE *fp, double **papadfData, vsi_l_offset
      nFileSize,\n                    bool bDiscard)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:577,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:577,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:583,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:587,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fp
    - papadfData
    - nLength
    argTypes:
    - VSILFILE*
    - double*
    - size_t
    constantsTouched: []
    func_position:
      end: 590
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 590
    functionName: Selafin::write_floatarray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 6
    functionsReached:
    - Selafin::write_integer
    - Selafin::write_float
    - static_cast<int>
    - CPLError
    linkageType: ''
    returnType: int
    signature: int write_floatarray(VSILFILE *fp, double *papadfData, size_t nLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:594,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:595,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: Selafin::Header::UpdateFileSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    - VSIRewindL
    linkageType: ''
    returnType: void
    signature: void Header::UpdateFileSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Header::Header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:602,1
    - Dst: Header*::UpdateFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:604,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:605,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:616,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:620,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:625,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:633,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:641,1
    - Dst: Selafin::read_string
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:651,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:669,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:673,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:687,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:691,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:695,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:698,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:702,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:712,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:715,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:718,1
    - Dst: Selafin::read_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:735,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:744,1
    - Dst: Header*::updateBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:759,1
    - Dst: Header*::setUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:761,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:763,1
    - Dst: Header*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:770,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:775,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 2
    argNames:
    - fp
    - pszFilename
    argTypes:
    - VSILFILE*
    - char*
    constantsTouched: []
    func_position:
      end: 777
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 777
    functionName: Selafin::read_header
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - static_cast<vsi_l_offset>
    - Header*::updateBoundingBox
    - Header*::getPosition
    - CPLStrdup
    - static_cast<unsigned>
    - Selafin::read_string
    - Selafin::read_floatarray
    - Header*::setUpdated
    - static_cast<int>
    - VSI_MALLOC2_VERBOSE
    - Selafin::read_intarray
    - Header*::UpdateFileSize
    - CPLFree
    - Header::Header
    linkageType: ''
    returnType: Header
    signature: Header *read_header(VSILFILE *fp, const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:781,1
    - Dst: Selafin::write_string
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:782,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:787,1
    - Dst: Selafin::write_string
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:790,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:799,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:802,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:808,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:810,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:811,1
    - Dst: Selafin::write_intarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:814,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:824,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:826,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:830,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - fp
    - poHeader
    argTypes:
    - VSILFILE*
    - Header*
    constantsTouched: []
    func_position:
      end: 832
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 832
    functionName: Selafin::write_header
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 5
    functionsReached:
    - static_cast<size_t>
    - Selafin::write_floatarray
    - VSIRewindL
    - Selafin::write_intarray
    - Selafin::write_string
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int write_header(VSILFILE *fp, Header *poHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeStep::TimeStep
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:837,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:839,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:844,1
    - Dst: Selafin::read_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:849,1
    - Dst: Selafin::read_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fp
    - poHeader
    - poStep
    argTypes:
    - VSILFILE*
    - Header*
    - TimeStep*
    constantsTouched: []
    func_position:
      end: 864
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 864
    functionName: Selafin::read_step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - TimeStep::TimeStep
    - Selafin::read_float
    - Selafin::read_integer
    - Selafin::read_floatarray
    linkageType: ''
    returnType: int
    signature: int read_step(VSILFILE *fp, const Header *poHeader, TimeStep *&poStep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:868,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:870,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:872,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:876,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - fp
    - poHeader
    - poStep
    argTypes:
    - VSILFILE*
    - Header*
    - TimeStep*
    constantsTouched: []
    func_position:
      end: 880
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 880
    functionName: Selafin::write_step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - Selafin::write_integer
    - Selafin::write_float
    - Selafin::write_floatarray
    linkageType: ''
    returnType: int
    signature: int write_step(VSILFILE *fp, const Header *poHeader, const TimeStep
      *poStep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeStepList::TimeStepList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:888,1
    - Dst: Selafin::read_step
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fp
    - poHeader
    - poSteps
    argTypes:
    - VSILFILE*
    - Header*
    - TimeStepList*
    constantsTouched: []
    func_position:
      end: 901
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 901
    functionName: Selafin::read_steps
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - TimeStepList::TimeStepList
    - Selafin::read_step
    linkageType: ''
    returnType: int
    signature: int read_steps(VSILFILE *fp, const Header *poHeader, TimeStepList *&poSteps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Selafin::write_step
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - poHeader
    - poSteps
    argTypes:
    - VSILFILE*
    - Header*
    - TimeStepList*
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 4
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: Selafin::write_steps
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.cpp
    functionUses: 0
    functionsReached:
    - Selafin::write_step
    linkageType: ''
    returnType: int
    signature: "int write_steps(VSILFILE *fp, const Header *poHeader,\n                const
      TimeStepList *poSteps)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:27,1
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Range::~Range()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - Range::deleteList
    linkageType: ''
    returnType: void
    signature: void Range::~Range()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poList
    argTypes:
    - Range::List*
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: Range::deleteList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range::deleteList(Range::List *poList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:46,1
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:47,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:52,1
    - Dst: strtol
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:77,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:80,1
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:82,1
    - Dst: strtol
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:94,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:97,1
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:99,1
    - Dst: Range::List::List
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:110,1
    - Dst: Range::List::List
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:114,1
    - Dst: Range::List::List
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:130,1
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:131,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 134
    functionName: Range::setRange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - strtol
    - Range::List::List
    - Range::deleteList
    linkageType: ''
    returnType: void
    signature: void Range::setRange(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - eType
    - nValue
    argTypes:
    - SelafinTypeDef
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: Range::contains
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Range::contains(SelafinTypeDef eType, int nValue) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range::sortList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:187,1
    - Dst: Range::sortList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - poList
    - poEnd
    argTypes:
    - Range::List*
    - Range::List*
    constantsTouched: []
    func_position:
      end: 192
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 192
    functionName: Range::sortList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 1
    functionsReached:
    - Range::sortList
    linkageType: ''
    returnType: void
    signature: void Range::sortList(Range::List *&poList, Range::List *poEnd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range::deleteList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:201,1
    - Dst: Range::List::List
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:228,1
    - Dst: Range::List::List
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:234,1
    - Dst: Range::sortList
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:239,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - nMaxValueP
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 259
    functionName: Range::setMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - Range::sortList
    - Range::List::List
    - Range::deleteList
    linkageType: ''
    returnType: void
    signature: void Range::setMaxValue(int nMaxValueP)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: Range::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Range::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: OGRSelafinDataSource::OGRSelafinDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSelafinDataSource::OGRSelafinDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:293,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:294,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: OGRSelafinDataSource::~OGRSelafinDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRSelafinDataSource::~OGRSelafinDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:308,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: OGRSelafinDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRSelafinDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: OGRSelafinDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRSelafinDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setRange
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:347,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:349,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:352,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:355,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:360,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:364,1
    - Dst: OGRSelafinDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:365,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:368,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:368,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:371,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:373,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:376,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:377,1
    - Dst: OGRSelafinDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:378,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:383,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:393,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:395,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:396,1
    - Dst: OGRSelafinDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:401,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:403,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:403,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:408,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 3
    argNames:
    - pszFilename
    - bUpdateIn
    - bCreate
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 416
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 416
    functionName: OGRSelafinDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - VSIStatL
    - setRange
    - VSI_ISREG
    - CSLDestroy
    - OGRSelafinDataSource::OpenTable
    - VSI_ISDIR
    - CPLDebug
    - EQUAL
    - CPLString::c_str
    - CSLCount
    - STARTS_WITH
    - VSIStatExL
    - CPLFormFilenameSafe
    - CPL_TO_BOOL
    linkageType: ''
    returnType: int
    signature: "int OGRSelafinDataSource::Open(const char *pszFilename, int bUpdateIn,\n
      \                              int bCreate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:424,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:425,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:431,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:435,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:440,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:441,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:444,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:445,1
    - Dst: VSICreateBufferedReaderHandle
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:446,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:451,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:454,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:457,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:458,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:462,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:472,1
    - Dst: Selafin::read_header
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:479,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:485,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:486,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:489,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:501,1
    - Dst: setMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:507,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:515,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:518,1
    - Dst: contains
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:525,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:529,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:529,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:533,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:538,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:542,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:544,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:545,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:551,1
    - Dst: mktime
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:552,1
    - Dst: strftime
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:553,1
    - Dst: OGRSelafinLayer::OGRSelafinLayer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:560,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 569
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 569
    functionName: OGRSelafinDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - CPLError
    - strftime
    - OGRSelafinLayer::OGRSelafinLayer
    - setMaxValue
    - SetAxisMappingStrategy
    - CPLRealloc
    - Selafin::read_header
    - static_cast<int>
    - VSIFSeekL
    - snprintf
    - strstr
    - VSIFReadL
    - contains
    - getPosition
    - OGRSpatialReference::OGRSpatialReference
    - VSIFCloseL
    - CPLGetBasenameSafe
    - VSIFOpenExL
    - mktime
    - EQUAL
    - memset
    - VSIGetLastErrorMsg
    - max
    - Selafin::read_float
    - VSICreateBufferedReaderHandle
    - importFromEPSG
    linkageType: ''
    returnType: int
    signature: int OGRSelafinDataSource::OpenTable(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:581,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:583,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:585,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:600,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:603,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:603,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:612,1
    - Dst: strtol
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:616,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:619,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:632,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:634,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:635,1
    - Dst: Selafin::write_integer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:636,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:638,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:646,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:652,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:655,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:657,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:661,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:662,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:667,1
    - Dst: OGRSelafinLayer::OGRSelafinLayer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:671,1
    - Dst: OGRSelafinLayer::OGRSelafinLayer
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:675,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 678
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 678
    functionName: OGRSelafinDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSelafinLayer::OGRSelafinLayer
    - strtol
    - OGRGeometryTypeToName
    - Selafin::write_float
    - OGRGeomFieldDefn*::GetType
    - VSIFSeekL
    - Selafin::write_integer
    - CPLDebug
    - VSI_MALLOC2_VERBOSE
    - Selafin::write_floatarray
    - CPLRealloc
    - VSIFFlushL
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRSelafinDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                  const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:696,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:709,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:709,1
    - Dst: Selafin::read_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:711,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:712,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:712,1
    - Dst: Selafin::write_float
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:714,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:716,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:723,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:723,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:733,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:733,1
    - Dst: Selafin::write_floatarray
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:743,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:745,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:748,1
    - Dst: GetStepNumber
      Src: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp:757,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 767
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 767
    functionName: OGRSelafinDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogrselafindatasource.cpp
    functionUses: 0
    functionsReached:
    - GetStepNumber
    - CPLFree
    - Selafin::write_float
    - VSIFSeekL
    - Selafin::write_floatarray
    - CPLError
    - Selafin::read_float
    - getPosition
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSelafinDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Range::List
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - eTypeP
    - nMinP
    - nMaxP
    - poNextP
    argTypes:
    - SelafinTypeDef
    - int
    - int
    - List*
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Range::List
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List(SelafinTypeDef eTypeP, int nMinP, int nMaxP, List *poNextP)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Range::Range
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: OGRSelafinLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: OGRSelafinLayer::GetStepNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetStepNumber()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OGRSelafinLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: OGRSelafinLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: OGRSelafinDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRSelafinDataSource::SetDefaultSelafinName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/ogr_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDefaultSelafinName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poStepP
    - poNextP
    argTypes:
    - TimeStep*
    - TimeStepList*
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: Selafin::TimeStepList::TimeStepList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/selafin/io_selafin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TimeStepList(TimeStep *poStepP, TimeStepList *poNextP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:33,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:34,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:44,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:45,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:50,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:51,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:53,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 54
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 54
    functionName: OGRDGNV8DriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - GDALGetDriverByName
    - GDALOpenInfo*::IsExtensionEqualToCI
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OGRDGNV8DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:63,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:64,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:65,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:66,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:71,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 127
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 127
    functionName: OGRDGNV8DriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8DriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:136,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:140,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:142,1
    - Dst: OGRDGNV8DriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:145,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: DeclareDeferredOGRDGNV8Plugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8drivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - OGRDGNV8DriverSetCommonMetadata
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRDGNV8Plugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:24,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:25,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:31,1
    - Dst: OdDbDimensionPtr::dimensionText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:36,1
    - Dst: OdDbDimensionPtr::textPosition
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:38,1
    - Dst: OdDbEntityPtr::isA
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:43,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:44,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:47,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:49,1
    - Dst: OdDbRotatedDimensionPtr::xLine1Point
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:51,1
    - Dst: OdDbRotatedDimensionPtr::xLine2Point
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:52,1
    - Dst: OdDbRotatedDimensionPtr::dimLinePoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:53,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:56,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:58,1
    - Dst: OdDbAlignedDimensionPtr::xLine1Point
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:60,1
    - Dst: OdDbAlignedDimensionPtr::xLine2Point
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:61,1
    - Dst: OdDbAlignedDimensionPtr::dimLinePoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:62,1
    - Dst: VECTOR_LEN
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:175,1
    - Dst: VECTOR_LEN
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:180,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:188,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:189,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:192,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:193,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:194,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:197,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:198,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:199,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:202,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:203,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:204,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:208,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:209,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:211,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:213,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:214,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:216,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:220,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:221,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:223,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:225,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:226,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:228,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:230,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:232,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:237,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:246,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:247,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:254,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:270,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:272,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:272,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:275,1
    - Dst: OGRDWGLayer::FormatDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:277,1
    - Dst: POINT_DIST
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:278,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:285,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:285,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:289,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:290,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:293,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:298,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:299,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:302,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:307,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:317,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:319,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 101
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 322
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 322
    functionName: OGRDWGLayer::TranslateDIMENSION
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OdDbDimensionPtr::dimensionText
    - atoi
    - push
    - OGRFeature*::GetFieldAsString
    - VECTOR_LEN
    - CPLString
    - OdDbAlignedDimensionPtr::xLine1Point
    - OdDbRotatedDimensionPtr::xLine2Point
    - CPLString::empty
    - OGRLineString::setPoint
    - OGRMultiLineString*::addGeometry
    - OGRFeature*::SetStyleString
    - OGRPoint::OGRPoint
    - CPLString::c_str
    - OdRxClass*::name
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OdDbAlignedDimensionPtr::dimLinePoint
    - OdDbEntityPtr::isA
    - OGRFeature*::SetGeometryDirectly
    - OdDbAlignedDimensionPtr::xLine2Point
    - CPLString::Printf
    - OdDbRotatedDimensionPtr::dimLinePoint
    - snprintf
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - POINT_DIST
    - OdDbRotatedDimensionPtr::xLine1Point
    - count
    - OGRFeature*::Clone
    - OGRDWGLayer::FormatDimension
    - EQUAL
    - strchr
    - CPLsnprintf
    - OdDbDimensionPtr::textPosition
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateDIMENSION(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:342,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - osText
    - dfValue
    argTypes:
    - CPLString
    - double
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: OGRDWGLayer::FormatDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_dimension.cpp
    functionUses: 1
    functionsReached:
    - CPLsnprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::FormatDimension(CPLString &osText, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:45,1
    - Dst: OdError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oResult
    argTypes:
    - OdResult
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: OGRTEIGHAErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OdError
    linkageType: ''
    returnType: void
    signature: void OGRTEIGHAErrorHandler(OdResult oResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:70,1
    - Dst: ODRX_INIT_STATIC_MODULE_MAP
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:76,1
    - Dst: OGRODAServicesWrapper::OGRODAServicesWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:85,1
    - Dst: odInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:87,1
    - Dst: oDWGServices::disableOutput
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:88,1
    - Dst: oDWGServices::findFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:94,1
    - Dst: OD_T
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:94,1
    - Dst: OdString::isEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:95,1
    - Dst: OGRTEIGHADeinitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:96,1
    - Dst: odrxInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:98,1
    - Dst: oDGNServices::disableProgressMeterOutput
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:99,1
    - Dst: ::odrxDynamicLinker
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:101,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:107,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:109,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 117
    functionName: OGRTEIGHAInitialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 0
    functionsReached:
    - ODRX_INIT_STATIC_MODULE_MAP
    - ::odrxDynamicLinker
    - CPLError
    - CPLMutexHolderD
    - oDWGServices::findFile
    - OGRODAServicesWrapper::OGRODAServicesWrapper
    - odInitialize
    - OGRTEIGHADeinitialize
    - oDWGServices::disableOutput
    - OD_T
    - odrxInitialize
    - what
    - oDGNServices::disableProgressMeterOutput
    - OdString::isEmpty
    linkageType: ''
    returnType: bool
    signature: bool OGRTEIGHAInitialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: OGRDWGGetServices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRDWGServices
    signature: OGRDWGServices *OGRDWGGetServices()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: OGRDGNV8GetServices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRDGNV8Services
    signature: OGRDGNV8Services *OGRDGNV8GetServices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odUninitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:145,1
    - Dst: odrxUninitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:146,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: OGRTEIGHADeinitialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 1
    functionsReached:
    - odrxUninitialize
    - CPLDestroyMutex
    - odUninitialize
    linkageType: ''
    returnType: void
    signature: void OGRTEIGHADeinitialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOGRDWG
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:166,1
    - Dst: RegisterOGRDGNV8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: RegisterOGRDWG_DGNV8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrteigha.cpp
    functionUses: 0
    functionsReached:
    - RegisterOGRDGNV8
    - RegisterOGRDWG
    linkageType: ''
    returnType: void
    signature: void RegisterOGRDWG_DGNV8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:21,1
    - Dst: OGRDWGBlocksLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:25,1
    - Dst: AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRDWGDataSource*
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: OGRDWGBlocksLayer::OGRDWGBlocksLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGBlocksLayer::ResetReading
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - AddStandardFields
    linkageType: ''
    returnType: void
    signature: void OGRDWGBlocksLayer::OGRDWGBlocksLayer(OGRDWGDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:39,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:40,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: OGRDWGBlocksLayer::~OGRDWGBlocksLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - GetName
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRDWGBlocksLayer::~OGRDWGBlocksLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBlockMap
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: OGRDWGBlocksLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 1
    functionsReached:
    - GetBlockMap
    linkageType: ''
    returnType: void
    signature: void OGRDWGBlocksLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBlockMap
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:71,1
    - Dst: GetBlockMap
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:90,1
    - Dst: DWGBlockDefinition*::apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:100,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:102,1
    - Dst: OGRFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:103,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:112,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:113,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:120,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:122,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: OGRDWGBlocksLayer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached:
    - GetBlockMap
    - OGRFeature*::SetGeometry
    - first::c_str
    - OGRFeature*::SetField
    - OGRFeature*::SetFrom
    - OGRFeature::OGRFeature
    - DWGBlockDefinition*::apoFeatures::size
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGBlocksLayer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGBlocksLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:138,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:144,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:144,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: OGRDWGBlocksLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGBlocksLayer::GetNextUnfilteredFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGBlocksLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: OGRDWGBlocksLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDWGBlocksLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: OGRDWGBlocksLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgblockslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDWGBlocksLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRDWGDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRDWGDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: OGRDWGDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRDWGDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:57,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:61,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:63,1
    - Dst: OGRDWGDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:66,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: DeclareDeferredOGRDWGPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRDWGPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:24,1
    - Dst: OGRTEIGHADeinitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: OGRDWGDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRTEIGHADeinitialize
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRDWGDriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:34,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:40,1
    - Dst: OGRTEIGHAInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:43,1
    - Dst: OGRDWGDataSource::OGRDWGDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:46,1
    - Dst: OGRDWGDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:48,1
    - Dst: OGRDWGGetServices
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 55
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 55
    functionName: OGRDWGDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - OGRDWGDriverIdentify
    - OGRDWGDataSource*::Open
    - OGRDWGDataSource::OGRDWGDataSource
    - OGRTEIGHAInitialize
    - OGRDWGGetServices
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDWGDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:64,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:67,1
    - Dst: OGRDWGDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:68,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: RegisterOGRDWG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp
    functionUses: 1
    functionsReached:
    - OGRDWGDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRDWG()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: OGRDGNV8Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dgnv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRDGNV8DataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dgnv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: OGRDGNV8DataSource::GetDb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dgnv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OdDgDatabasePtr
    signature: OdDgDatabasePtr GetDb() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: OGRDGNV8DataSource::GetUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dgnv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUpdate() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: OGRDGNV8DataSource::SetModified
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dgnv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetModified()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: DWGBlockDefinition::DWGBlockDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DWGBlockDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: OGRDWGBlocksLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRDWGLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: OGRDWGDataSource::GetDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OdDbDatabasePtr
    signature: OdDbDatabasePtr GetDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h:193,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRDWGDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OGRDWGDataSource::InlineBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int InlineBlocks()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OGRDWGDataSource::Attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: OGRDWGDataSource::AllAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AllAttributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: OGRDWGDataSource::ClosedLineAsPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClosedLineAsPolygon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: '&GetBlockMap()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, DWGBlockDefinition>
    signature: std::map<CPLString, DWGBlockDefinition> &GetBlockMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: '&GetAttributes()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<CPLString>
    signature: std::set<CPLString> &GetAttributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: OGRDWGDataSource::GetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogr_dwg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetEncoding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:29,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:30,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:30,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:31,1
    - Dst: AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:33,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:35,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:38,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:41,1
    - Dst: GetAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:44,1
    - Dst: GetAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:47,1
    - Dst: GetAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:48,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:51,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:60,1
    - Dst: OdDbBlockTablePtr::newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:61,1
    - Dst: OdDbSymbolTableIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:63,1
    - Dst: OdDbSymbolTableIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:63,1
    - Dst: OdDbSymbolTableIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:63,1
    - Dst: OdDbSymbolTableIteratorPtr::getRecordId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:65,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:67,1
    - Dst: getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:67,1
    - Dst: OGRDWGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRDWGDataSource*
    constantsTouched: []
    func_position:
      end: 74
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 74
    functionName: OGRDWGLayer::OGRDWGLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OdDbSymbolTableIteratorPtr::getRecordId
    - GetAttributes
    - getName
    - OdDbSymbolTableIteratorPtr::start
    - GetDB
    - OGRFeatureDefn::OGRFeatureDefn
    - OdDbSymbolTableIteratorPtr::done
    - EQUAL
    - Reference
    - OdDbSymbolTableIteratorPtr::step
    - AddFieldDefn
    - AddStandardFields
    - InlineBlocks
    - OdDbBlockTablePtr::newIterator
    - SetDescription
    - OGRDWGLayer::ResetReading
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::OGRDWGLayer(OGRDWGDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGLayer::ClearPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:83,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:86,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:87,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: OGRDWGLayer::~OGRDWGLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - GetName
    - CPLDebug
    - OGRDWGLayer::ClearPendingFeatures
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::~OGRDWGLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACTextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:101,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oString
    - bIsMText
    argTypes:
    - OdString
    - bool
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGRDWGLayer::TextUnescape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - ACTextUnescape
    - GetEncoding
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDWGLayer::TextUnescape(OdString oString, bool bIsMText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poNewBlock
    argTypes:
    - OdDbBlockTableRecordPtr
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: OGRDWGLayer::SetBlockTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::SetBlockTable(OdDbBlockTableRecordPtr poNewBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:127,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:129,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: OGRDWGLayer::ClearPendingFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 1
    functionsReached:
    - pop
    - empty
    - front
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::ClearPendingFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGLayer::ClearPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:142,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:144,1
    - Dst: newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: OGRDWGLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 2
    functionsReached:
    - isNull
    - newIterator
    - OGRDWGLayer::ClearPendingFeatures
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:159,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:159,1
    - Dst: OdDbEntityPtr::layer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:159,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:160,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:160,1
    - Dst: OdDbEntityPtr::layer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:160,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:163,1
    - Dst: OdDbEntityPtr::lineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:163,1
    - Dst: OdDbEntityPtr::getDbHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:166,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:167,1
    - Dst: OdDbHandle::ascii
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:167,1
    - Dst: OdDbEntityPtr::colorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:169,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:171,1
    - Dst: OdDbEntityPtr::colorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:171,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:172,1
    - Dst: OdDbEntityPtr::isA
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:179,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:183,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:187,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:187,1
    - Dst: OdRxClass*::myParent
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:190,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:193,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:193,1
    - Dst: OdDbEntityPtr::xData
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:198,1
    - Dst: OdResBuf*::next
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:202,1
    - Dst: OdDxfCode::_getType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:206,1
    - Dst: OdResBuf*::restype
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:206,1
    - Dst: OdResBuf*::getString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:211,1
    - Dst: OdResBuf*::getBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:215,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:222,1
    - Dst: OdResBuf*::getInt8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:222,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:226,1
    - Dst: OdResBuf*::getInt16
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:226,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:230,1
    - Dst: OdResBuf*::getInt32
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:230,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:235,1
    - Dst: OdResBuf*::getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:235,1
    - Dst: OdResBuf*::getPoint3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:240,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:241,1
    - Dst: OdResBuf*::getBinaryChunk
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:247,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:251,1
    - Dst: OdResBuf*::getHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:261,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:268,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:273,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 2
    argNames:
    - poFeature
    - poEntity
    argTypes:
    - OGRFeature*
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 293
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 293
    functionName: OGRDWGLayer::TranslateGenericProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 1
    functionsReached:
    - OdDbEntityPtr::xData
    - OdRxClass*::myParent
    - OdResBuf*::restype
    - CPLString::empty
    - OdResBuf*::getInt8
    - OdResBuf*::getPoint3d
    - OdDbEntityPtr::layer
    - OGRDWGLayer::TextUnescape
    - CPLString::c_str
    - OdResBuf*::getDouble
    - OdRxClass*::name
    - OdDbEntityPtr::colorIndex
    - OdDbEntityPtr::getDbHandle
    - OdResBuf*::getBinaryChunk
    - OdDbEntityPtr::isA
    - OdResBuf*::getInt32
    - OdResBuf*::getString
    - CPLString::Printf
    - CPLFree
    - OdResBuf*::getBool
    - OdResBuf*::getInt16
    - EQUAL
    - OdResBuf*::next
    - OdDbEntityPtr::lineWeight
    - OGRFeature*::SetField
    - OdDbHandle::ascii
    - OdDxfCode::_getType
    - OdResBuf*::getHandle
    linkageType: ''
    returnType: void
    signature: "void OGRDWGLayer::TranslateGenericProperties(OGRFeature *poFeature,\n
      \                                            OdDbEntityPtr poEntity)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:302,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:314,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:315,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:322,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:333,1
    - Dst: LookupLayerProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:338,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:340,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:355,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:365,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:369,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:381,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 382
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 382
    functionName: OGRDWGLayer::PrepareLineStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - atoi
    - LookupLayerProperty
    - OGRFeature*::SetStyleString
    - CPLString::Printf
    - OGRFeature*::GetFieldAsString
    - CPLsnprintf
    - CPLString
    - count
    linkageType: ''
    returnType: void
    signature: void OGRDWGLayer::PrepareLineStyle(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:391,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:392,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:394,1
    - Dst: OdDbMTextPtr::location
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:399,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:401,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:402,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:407,1
    - Dst: OdDbMTextPtr::contents
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:407,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:409,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:409,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:410,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:412,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:418,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:423,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:438,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:439,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:444,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:447,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:461,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:461,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:465,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:466,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:469,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:474,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:475,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:478,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:486,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:492,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:499,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 502
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 502
    functionName: OGRDWGLayer::TranslateMTEXT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - atoi
    - OGRFeature*::GetFieldAsString
    - CPLString
    - CPLString::empty
    - OdDbMTextPtr::contents
    - OGRFeature*::SetStyleString
    - OGRDWGLayer::TextUnescape
    - OGRPoint::OGRPoint
    - CPLString::size
    - CPLString::c_str
    - OGRFeature*::SetGeometryDirectly
    - CPLString::back
    - CPLString::Printf
    - CPLString::pop_back
    - OGRFeature::OGRFeature
    - count
    - OdDbMTextPtr::location
    - strchr
    - CPLsnprintf
    - OGRFeature*::SetField
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateMTEXT(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:511,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:512,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:514,1
    - Dst: OdDbTextPtr::position
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:519,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:521,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:522,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:527,1
    - Dst: OdDbTextPtr::textString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:527,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:529,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:529,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:530,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:532,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:538,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:543,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:556,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:565,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:566,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:573,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:589,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:589,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:593,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:594,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:597,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:602,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:603,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:606,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:611,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:621,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 624
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 624
    functionName: OGRDWGLayer::TranslateTEXT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - atoi
    - OGRFeature*::GetFieldAsString
    - CPLString
    - CPLString::empty
    - OGRFeature*::SetStyleString
    - OGRDWGLayer::TextUnescape
    - OGRPoint::OGRPoint
    - CPLString::size
    - CPLString::c_str
    - OGRFeature*::SetGeometryDirectly
    - OdDbTextPtr::position
    - CPLString::back
    - CPLString::Printf
    - CPLString::pop_back
    - snprintf
    - OGRFeature::OGRFeature
    - count
    - OdDbTextPtr::textString
    - strchr
    - CPLsnprintf
    - OGRFeature*::SetField
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateTEXT(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:633,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:634,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:636,1
    - Dst: OdDbPointPtr::position
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:638,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:640,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: OGRDWGLayer::TranslatePOINT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OdDbPointPtr::position
    - gdal::VectorX::cast
    - OGRFeature*::SetGeometryDirectly
    - OGRPoint::OGRPoint
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslatePOINT(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:652,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:653,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:655,1
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:660,1
    - Dst: OdDbPolylinePtr::numVerts
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:662,1
    - Dst: OdDbPolylinePtr::getPointAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:665,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:667,1
    - Dst: OdDbPolylinePtr::getBulgeAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:667,1
    - Dst: DXFSmoothPolyline::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:670,1
    - Dst: OdDbPolylinePtr::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:676,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:677,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:681,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:681,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 686
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 686
    functionName: OGRDWGLayer::TranslateLWPOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OdDbPolylinePtr::getBulgeAt
    - DXFSmoothPolyline::Close
    - OGRFeature*::SetGeometryDirectly
    - DXFSmoothPolyline::AddPoint
    - DXFSmoothPolyline::Tessellate
    - OdDbPolylinePtr::numVerts
    - DXFSmoothPolyline::DXFSmoothPolyline
    - OdDbPolylinePtr::isClosed
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - DXFSmoothPolyline::IsEmpty
    - OGRDWGLayer::TranslateGenericProperties
    - OdDbPolylinePtr::getPointAt
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateLWPOLYLINE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:695,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:696,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:698,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:703,1
    - Dst: OdDb2dPolylinePtr::vertexIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:704,1
    - Dst: OdDbObjectIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:706,1
    - Dst: OdDbObjectIteratorPtr::entity
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:708,1
    - Dst: OdDb2dPolylinePtr::vertexPosition
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:709,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:710,1
    - Dst: OdDbObjectIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:711,1
    - Dst: OdDb2dPolylinePtr::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:714,1
    - Dst: OGRLineString*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:714,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:716,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:716,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:716,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:716,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:719,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 724
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 724
    functionName: OGRDWGLayer::Translate2DPOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGLayer::PrepareLineStyle
    - gdal::VectorX::cast
    - OGRLineString*::getX
    - OGRLineString*::addPoint
    - OGRFeature*::SetGeometryDirectly
    - OGRLineString*::IsEmpty
    - OdDbObjectIteratorPtr::done
    - OdDbObjectIteratorPtr::entity
    - OdDb2dPolylinePtr::isClosed
    - OdDbObjectIteratorPtr::step
    - OdDb2dPolylinePtr::vertexPosition
    - OGRLineString*::getZ
    - OdDb2dPolylinePtr::vertexIterator
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRDWGLayer::TranslateGenericProperties
    - OGRLineString*::getY
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::Translate2DPOLYLINE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:733,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:734,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:736,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:741,1
    - Dst: OdDb3dPolylinePtr::vertexIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:742,1
    - Dst: OdDbObjectIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:744,1
    - Dst: OdDbObjectIteratorPtr::entity
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:746,1
    - Dst: OdDb3dPolylineVertexPtr::position
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:747,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:748,1
    - Dst: OdDbObjectIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:749,1
    - Dst: OdDb3dPolylinePtr::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:752,1
    - Dst: OGRLineString*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:752,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:754,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:754,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:754,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:754,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:757,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 762
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 762
    functionName: OGRDWGLayer::Translate3DPOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OdDb3dPolylinePtr::vertexIterator
    - gdal::VectorX::cast
    - OGRLineString*::getX
    - OGRLineString*::addPoint
    - OGRFeature*::SetGeometryDirectly
    - OGRLineString*::IsEmpty
    - OdDbObjectIteratorPtr::done
    - OdDbObjectIteratorPtr::entity
    - OdDb3dPolylineVertexPtr::position
    - OdDbObjectIteratorPtr::step
    - OdDb3dPolylinePtr::isClosed
    - OGRLineString*::getZ
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRDWGLayer::TranslateGenericProperties
    - OGRLineString*::getY
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::Translate3DPOLYLINE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:771,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:772,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:774,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:779,1
    - Dst: OdDbLinePtr::getStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:782,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:783,1
    - Dst: OdDbLinePtr::getEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:785,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:786,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:788,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 793
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 793
    functionName: OGRDWGLayer::TranslateLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OdDbLinePtr::getEndPoint
    - gdal::VectorX::cast
    - OGRLineString*::addPoint
    - OGRFeature*::SetGeometryDirectly
    - OdDbLinePtr::getStartPoint
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateLINE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:802,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:803,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:805,1
    - Dst: OdDbCirclePtr::center
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:810,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:816,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:820,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 824
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 824
    functionName: OGRDWGLayer::TranslateCIRCLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OGRFeature*::SetGeometryDirectly
    - OdDbCirclePtr::center
    - OGRGeometryFactory::approximateArcAngles
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateCIRCLE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:842,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:843,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - dfTrueAngle
    - dfRatio
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 856
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 856
    functionName: OGRDWGLayer::AngleCorrect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - sin
    - cos
    - atan2
    linkageType: ''
    returnType: double
    signature: double OGRDWGLayer::AngleCorrect(double dfTrueAngle, double dfRatio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:865,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:866,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:868,1
    - Dst: OdDbEllipsePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:878,1
    - Dst: OGRDWGLayer::AngleCorrect
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:891,1
    - Dst: OGRDWGLayer::AngleCorrect
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:892,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:905,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:910,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:915,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:919,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 924
      start: 862
    functionDepth: 4
    functionLinenumber: 862
    functionLinenumberEnd: 924
    functionName: OGRDWGLayer::TranslateELLIPSE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OGRFeature*::SetGeometryDirectly
    - sqrt
    - OdDbEllipsePtr::get
    - OGRGeometryFactory::approximateArcAngles
    - OGRDWGLayer::AngleCorrect
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    - atan2
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateELLIPSE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:933,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:934,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:936,1
    - Dst: OdDbArcPtr::center
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:944,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:952,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:956,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 961
      start: 930
    functionDepth: 4
    functionLinenumber: 930
    functionLinenumberEnd: 961
    functionName: OGRDWGLayer::TranslateARC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OGRFeature*::SetGeometryDirectly
    - OdDbArcPtr::center
    - OGRGeometryFactory::approximateArcAngles
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateARC(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:973,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:974,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:978,1
    - Dst: OdDbSplinePtr::degree
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:980,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:987,1
    - Dst: OdDbSplinePtr::getControlPointAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:993,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:995,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:996,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:997,1
    - Dst: OdDbSplinePtr::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1003,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1007,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1008,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1009,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1018,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1020,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1026,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1028,1
    - Dst: OdDbSplinePtr::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1030,1
    - Dst: rbsplinu
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1031,1
    - Dst: rbspline
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1034,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1040,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1042,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1044,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1046,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1048,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 1051
      start: 970
    functionDepth: 4
    functionLinenumber: 970
    functionLinenumberEnd: 1051
    functionName: OGRDWGLayer::TranslateSPLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OGRLineString*::setPoint
    - OGRFeature*::SetGeometryDirectly
    - rbsplinu
    - OGRLineString*::setNumPoints
    - OdDbSplinePtr::getControlPointAt
    - OdDbSplinePtr::isClosed
    - push_back
    - std::vector::push_back
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRDWGLayer::TranslateGenericProperties
    - rbspline
    - OdDbSplinePtr::degree
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateSPLINE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1064
    functionName: GeometryInsertTransformer::GeometryInsertTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeometryInsertTransformer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: GeometryInsertTransformer::GetSourceCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSourceCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: GeometryInsertTransformer::GetTargetCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetTargetCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryInsertTransformer::GeometryInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: GeometryInsertTransformer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - GeometryInsertTransformer::GeometryInsertTransformer
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *Clone() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: GeometryInsertTransformer::GetInverse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *GetInverse() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1106,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1106,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1107,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - nCount
    - x
    - y
    argTypes:
    - size_t
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1121
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1121
    functionName: GeometryInsertTransformer::Transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - sin
    - cos
    linkageType: ''
    returnType: int
    signature: "int Transform(size_t nCount, double *x, double *y, double *z = nullptr,\n
      \                 double * /*t*/ = nullptr, int *pabSuccess = nullptr) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1130,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1131,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1133,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1138,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1140,1
    - Dst: OdDbFacePtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1147,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1148,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1150,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1151,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1152,1
    - Dst: OGRDWGLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 1155
      start: 1128
    functionDepth: 4
    functionLinenumber: 1128
    functionLinenumberEnd: 1155
    functionName: OGRDWGLayer::Translate3DFACE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OGRFeature*::SetGeometryDirectly
    - OGRPolygon::OGRPolygon
    - OGRLinearRing::OGRLinearRing
    - OdDbFacePtr::getVertexAt
    - OGRLinearRing*::addPoint
    - OGRPolygon*::addRingDirectly
    - OGRDWGLayer::PrepareLineStyle
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::Translate3DFACE(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1164,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1165,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1167,1
    - Dst: GeometryInsertTransformer::GeometryInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1172,1
    - Dst: OdDbBlockReferencePtr::position
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1175,1
    - Dst: OdDbBlockReferencePtr::scaleFactors
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1176,1
    - Dst: OdDbBlockReferencePtr::rotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1186,1
    - Dst: OdDbBlockReferencePtr::blockTableRecord
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1188,1
    - Dst: OdDbBlockTableRecordPtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1189,1
    - Dst: OdDbBlockTableRecordPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1190,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1196,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1198,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1198,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1202,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1204,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1205,1
    - Dst: OdDbBlockReferencePtr::attributeIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1207,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1210,1
    - Dst: OdDbObjectIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1211,1
    - Dst: OdDbObjectIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1211,1
    - Dst: OdDbObjectIteratorPtr::entity
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1214,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1216,1
    - Dst: OdDbAttributePtr::textString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1216,1
    - Dst: AllAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1219,1
    - Dst: OdDbAttributePtr::isInvisible
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1220,1
    - Dst: OdDbAttributePtr::visibility
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1221,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1223,1
    - Dst: Attributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1226,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1227,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1229,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1233,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1233,1
    - Dst: LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1241,1
    - Dst: DWGBlockDefinition*::poGeometry::clone
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1254,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1256,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1258,1
    - Dst: DWGBlockDefinition*::apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1271,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1273,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1276,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1277,1
    - Dst: ACAdjustText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1279,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1282,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1285,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1287,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1289,1
    - Dst: OdDbBlockReferencePtr::attributeIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1296,1
    - Dst: OdDbObjectIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1297,1
    - Dst: OdDbObjectIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1297,1
    - Dst: OdDbObjectIteratorPtr::entity
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1299,1
    - Dst: OdDbAttributePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1300,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1302,1
    - Dst: OGRDWGLayer::TranslateTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1304,1
    - Dst: Attributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1306,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1307,1
    - Dst: OGRDWGLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1309,1
    - Dst: OdDbAttributePtr::textString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1309,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1310,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1312,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1315,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 1333
      start: 1161
    functionDepth: 5
    functionLinenumber: 1161
    functionLinenumberEnd: 1333
    functionName: OGRDWGLayer::TranslateINSERT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OdDbBlockReferencePtr::blockTableRecord
    - gdal::VectorX::cast
    - OdDbAttributePtr::isInvisible
    - OdDbBlockReferencePtr::rotation
    - push
    - OGRFeature*::GetFieldAsString
    - OdDbBlockTableRecordPtr::get
    - DWGBlockDefinition*::poGeometry::clone
    - InlineBlocks
    - GetFieldIndex
    - OdDbObjectIteratorPtr::entity
    - OdDbBlockTableRecordPtr::getName
    - OdDbAttributePtr::textString
    - OdDbBlockReferencePtr::position
    - OdDbAttributePtr::isNull
    - OGRDWGLayer::TextUnescape
    - Clone
    - OGRPoint::OGRPoint
    - OdDbBlockReferencePtr::scaleFactors
    - OGRGeometry*::transform
    - OGRFeature*::SetGeometryDirectly
    - OGRDWGLayer::TranslateTEXT
    - CPLJSONObject::ToString
    - OdDbObjectIteratorPtr::done
    - OGRFeature::OGRFeature
    - LookupBlock
    - OGRFeature*::GetGeometryRef
    - CPLJSONObject
    - OdDbBlockReferencePtr::attributeIterator
    - OdDbAttributePtr::visibility
    - CPLJSONObject::Add
    - OdDbObjectIteratorPtr::step
    - AllAttributes
    - OGRFeature*::SetField
    - ACAdjustText
    - GeometryInsertTransformer::GeometryInsertTransformer
    - Attributes
    - OGRDWGLayer::TranslateGenericProperties
    - DWGBlockDefinition*::apoFeatures::size
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateINSERT(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1347,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1349,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1350,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1352,1
    - Dst: done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1359,1
    - Dst: objectId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1362,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1363,1
    - Dst: OdDbObjectId::openObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1363,1
    - Dst: OdDbEntityPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1365,1
    - Dst: OdDbEntityPtr::isA
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1373,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1374,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1384,1
    - Dst: OGRDWGLayer::TranslatePOINT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1386,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1388,1
    - Dst: OGRDWGLayer::TranslateLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1390,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1392,1
    - Dst: OGRDWGLayer::TranslateLWPOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1394,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1396,1
    - Dst: OGRDWGLayer::Translate2DPOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1398,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1400,1
    - Dst: OGRDWGLayer::Translate3DPOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1404,1
    - Dst: OGRDWGLayer::TranslateELLIPSE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1408,1
    - Dst: OGRDWGLayer::TranslateARC
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1410,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1412,1
    - Dst: OGRDWGLayer::TranslateMTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1414,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1417,1
    - Dst: OGRDWGLayer::TranslateTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1422,1
    - Dst: OGRDWGLayer::TranslateDIMENSION
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1426,1
    - Dst: OGRDWGLayer::TranslateCIRCLE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1430,1
    - Dst: OGRDWGLayer::TranslateSPLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1434,1
    - Dst: OGRDWGLayer::TranslateHATCH
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1436,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1438,1
    - Dst: OGRDWGLayer::Translate3DFACE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1440,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1442,1
    - Dst: OGRDWGLayer::TranslateINSERT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1444,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1445,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1447,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1448,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1453,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1455,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1456,1
    - Dst: step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1461,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1469,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1339
    functionDepth: 6
    functionLinenumber: 1339
    functionLinenumberEnd: 1474
    functionName: OGRDWGLayer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDWGLayer::TranslateLWPOLYLINE
    - OGRDWGLayer::TranslateSPLINE
    - gdal::VectorX::cast
    - OGRDWGLayer::TranslateHATCH
    - OGRDWGLayer::TranslateCIRCLE
    - CPLDebug
    - OGRDWGLayer::TranslateMTEXT
    - OGRDWGLayer::TranslatePOINT
    - OGRDWGLayer::TranslateDIMENSION
    - OGRDWGLayer::TranslateLINE
    - OGRDWGLayer::TranslateELLIPSE
    - done
    - insert
    - OdDbObjectId::openObject
    - OdRxClass*::name
    - OGRDWGLayer::TranslateTEXT
    - OdDbEntityPtr::isA
    - OGRDWGLayer::TranslateINSERT
    - OGRDWGLayer::TranslateARC
    - objectId
    - count
    - OGRDWGLayer::Translate3DFACE
    - OGRDWGLayer::Translate3DPOLYLINE
    - empty
    - front
    - step
    - OGRDWGLayer::Translate2DPOLYLINE
    - OdDbEntityPtr::isNull
    - EQUAL
    - pop
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDWGLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1485,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1491,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1491,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1480
    functionDepth: 7
    functionLinenumber: 1480
    functionLinenumberEnd: 1499
    functionName: OGRDWGLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRDWGLayer::GetNextUnfilteredFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp:1510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1514
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1514
    functionName: OGRDWGLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDWGLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1523
    functionName: OGRDWGLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDWGLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OdRxObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poServices
    argTypes:
    - OGRDGNV8Services*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRDGNV8DataSource::OGRDGNV8DataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const OdRxObject *>
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8DataSource::OGRDGNV8DataSource(OGRDGNV8Services *poServices)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:35,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:40,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: OGRDGNV8DataSource::~OGRDGNV8DataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLFree
    - OGRDGNV8DataSource::FlushCache
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8DataSource::~OGRDGNV8DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:50,1
    - Dst: m_pModel::fitToView
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:56,1
    - Dst: writeFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:63,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:68,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:69,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:69,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:74,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:75,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: OGRDGNV8DataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 1
    functionsReached:
    - m_pModel::fitToView
    - isNull
    - writeFile
    - OGRDGNV8DataSource::ToUTF8
    - description
    - CPLError
    - what
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRDGNV8DataSource::FlushCache(bool /* bAtClosing */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:92,1
    - Dst: readFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:97,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:101,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:102,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:107,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:113,1
    - Dst: getModelTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:117,1
    - Dst: OdDgModelTablePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:118,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:120,1
    - Dst: OdDgModelTablePtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:125,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:126,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:126,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:126,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:128,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:128,1
    - Dst: OdDgModelPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:130,1
    - Dst: OGRDGNV8Layer::OGRDGNV8Layer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:132,1
    - Dst: static_cast<OGRDGNV8Layer **>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:133,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - pszFilename
    - bUpdate
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 142
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 142
    functionName: OGRDGNV8DataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - OdDgModelTablePtr::isNull
    - getModelTable
    - OdDgElementIteratorPtr::step
    - gdal::VectorX::cast
    - OdDgModelPtr::isNull
    - OdDgModelTablePtr::createIterator
    - OdDgElementIteratorPtr::done
    - readFile
    - OdDgElementIteratorPtr::isNull
    - OGRDGNV8DataSource::ToUTF8
    - OdDgElementIteratorPtr::item
    - description
    - CPLRealloc
    - CPLError
    - SetDescription
    - static_cast<OGRDGNV8Layer **>
    - what
    - OGRDGNV8Layer::OGRDGNV8Layer
    linkageType: ''
    returnType: int
    signature: int OGRDGNV8DataSource::Open(const char *pszFilename, bool bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:153,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: OGRDGNV8DataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDGNV8DataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: OGRDGNV8DataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRDGNV8DataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:180,1
    - Dst: T::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:182,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:183,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:183,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:183,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:185,1
    - Dst: OdDgElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:186,1
    - Dst: OdDgElementPtr::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - container
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: EraseSubElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - T::createIterator
    - OdDgElementIteratorPtr::step
    - OdDgElementPtr::erase
    - OdDgElementIteratorPtr::done
    - OdDgElementIteratorPtr::isNull
    - OdDgElementIteratorPtr::item
    - OdDgElementPtr::isNull
    - T::isNull
    linkageType: ''
    returnType: void
    signature: void EraseSubElements(T container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EraseSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:201,1
    - Dst: getLevelTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:201,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:204,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:204,1
    - Dst: getColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:207,1
    - Dst: OdDgColorTablePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:208,1
    - Dst: OdDgColorTable::defaultPalette
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:210,1
    - Dst: OdArray::insert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:212,1
    - Dst: OdArray::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:212,1
    - Dst: OdDgColorTablePtr::setPalette
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:213,1
    - Dst: getModelTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:217,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:219,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:219,1
    - Dst: OdDgModelTablePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:222,1
    - Dst: OdDgModelTablePtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:224,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:225,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:225,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:225,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:228,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:228,1
    - Dst: OdDgModelPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:229,1
    - Dst: OdDgModelPtr::createGraphicsElementsIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:232,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:233,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:233,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:233,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:236,1
    - Dst: OdDgElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:237,1
    - Dst: OdDgElementPtr::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:239,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:243,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:243,1
    - Dst: OdDgModelPtr::createControlElementsIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:247,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:248,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:248,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:249,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:252,1
    - Dst: OdDgElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:253,1
    - Dst: OdDgElementPtr::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:255,1
    - Dst: EraseSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:266,1
    - Dst: OdDgModel::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:269,1
    - Dst: OdDgModelTablePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:270,1
    - Dst: setActiveModelId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:272,1
    - Dst: OdDgModelPtr::elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:272,1
    - Dst: setDefaultModelId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:273,1
    - Dst: OdDgModelPtr::elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:273,1
    - Dst: EraseSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:276,1
    - Dst: getNamedViewTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:276,1
    - Dst: getViewGroupTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:277,1
    - Dst: EraseSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:278,1
    - Dst: OdDgModelPtr::createViewGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:281,1
    - Dst: OdDgViewGroupTablePtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:283,1
    - Dst: setActiveViewGroupId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:284,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:284,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:288,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:288,1
    - Dst: writeFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:290,1
    - Dst: readFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:291,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:292,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 294
    functionName: OGRDGNV8DataSource::InitWithSeed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - getModelTable
    - gdal::VectorX::cast
    - OdDgModelPtr::isNull
    - OdDgModelPtr::elementId
    - GetDescription
    - OdDgElementIteratorPtr::done
    - getColorTable
    - getViewGroupTable
    - readFile
    - CPLString
    - setActiveModelId
    - OdDgModelTablePtr::isNull
    - getLevelTable
    - OdDgModel::createObject
    - OdArray::begin
    - writeFile
    - OdDgColorTablePtr::isNull
    - OdDgColorTable::defaultPalette
    - OdDgModelPtr::createGraphicsElementsIterator
    - setDefaultModelId
    - OdDgElementPtr::isNull
    - getNamedViewTable
    - OdDgColorTablePtr::setPalette
    - CPLTestBool
    - OdDgElementIteratorPtr::step
    - OdDgModelPtr::createViewGroup
    - OdDgModelTablePtr::createIterator
    - VSIUnlink
    - EraseSubElements
    - setActiveViewGroupId
    - OdArray::insert
    - OdDgModelPtr::createControlElementsIterator
    - OdDgViewGroupTablePtr::createIterator
    - OdDgElementPtr::erase
    - CSLFetchNameValueDef
    - OdDgElementIteratorPtr::isNull
    - OdDgElementIteratorPtr::item
    - OdDgModelTablePtr::add
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8DataSource::InitWithSeed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:303,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - osDGNMD
    - pszKey
    - str
    argTypes:
    - CPLStringList
    - char*
    - OdString
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: FillMD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::empty
    - CPLStringList::SetNameValue
    linkageType: ''
    returnType: void
    signature: void FillMD(CPLStringList &osDGNMD, const char *pszKey, OdString str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:313,1
    - Dst: GDALDataset::GetMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: OGRDGNV8DataSource::GetMetadataDomainList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    - GDALDataset::GetMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **OGRDGNV8DataSource::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:323,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:325,1
    - Dst: oddgGetSummaryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:326,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:327,1
    - Dst: OdDgSummaryInformationPtr::getApplicationName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:327,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:328,1
    - Dst: OdDgSummaryInformationPtr::getTitle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:328,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:329,1
    - Dst: OdDgSummaryInformationPtr::getSubject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:329,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:330,1
    - Dst: OdDgSummaryInformationPtr::getAuthor
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:330,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:331,1
    - Dst: OdDgSummaryInformationPtr::getKeywords
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:331,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:332,1
    - Dst: OdDgSummaryInformationPtr::getTemplate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:332,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:333,1
    - Dst: OdDgSummaryInformationPtr::getComments
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:333,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:334,1
    - Dst: OdDgSummaryInformationPtr::getLastSavedBy
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:334,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:335,1
    - Dst: OdDgSummaryInformationPtr::getRevisionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:335,1
    - Dst: oddgGetDocumentSummaryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:337,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:338,1
    - Dst: OdDgDocumentSummaryInformationPtr::getCategory
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:338,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:339,1
    - Dst: OdDgDocumentSummaryInformationPtr::getManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:339,1
    - Dst: FillMD
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:340,1
    - Dst: OdDgDocumentSummaryInformationPtr::getCompany
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:340,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:341,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 344
    functionName: OGRDGNV8DataSource::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetMetadata
    - OdDgDocumentSummaryInformationPtr::getCategory
    - OdDgSummaryInformationPtr::getTitle
    - List
    - OdDgSummaryInformationPtr::getRevisionNumber
    - OdDgSummaryInformationPtr::getAuthor
    - oddgGetSummaryInformation
    - Clear
    - OdDgSummaryInformationPtr::getLastSavedBy
    - OdDgSummaryInformationPtr::getSubject
    - FillMD
    - OdDgDocumentSummaryInformationPtr::getManager
    - OdDgDocumentSummaryInformationPtr::getCompany
    - OdDgSummaryInformationPtr::getComments
    - OdDgSummaryInformationPtr::getApplicationName
    - OdDgSummaryInformationPtr::getTemplate
    - OdDgSummaryInformationPtr::getKeywords
    - EQUAL
    - oddgGetDocumentSummaryInformation
    linkageType: ''
    returnType: char
    signature: char **OGRDGNV8DataSource::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:353,1
    - Dst: OGRDGNV8DataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: OGRDGNV8DataSource::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource::GetMetadata
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: "char *OGRDGNV8DataSource::GetMetadataItem(const char *pszName,\n                                                const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:370,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:371,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:373,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:376,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:379,1
    - Dst: readFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:386,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:386,1
    - Dst: createDatabase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:388,1
    - Dst: OGRDGNV8DataSource::InitWithSeed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:392,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:397,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:398,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:398,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:403,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:404,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:409,1
    - Dst: oddgGetSummaryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:413,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:415,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:416,1
    - Dst: OdDgSummaryInformationPtr::getApplicationName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:416,1
    - Dst: OdDgSummaryInformationPtr::setApplicationName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:421,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:421,1
    - Dst: OdDgSummaryInformationPtr::setTitle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:425,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:425,1
    - Dst: OdDgSummaryInformationPtr::setSubject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:429,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:429,1
    - Dst: OdDgSummaryInformationPtr::setAuthor
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:433,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:433,1
    - Dst: OdDgSummaryInformationPtr::setKeywords
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:437,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:437,1
    - Dst: OdDgSummaryInformationPtr::setTemplate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:441,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:441,1
    - Dst: OdDgSummaryInformationPtr::setComments
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:445,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:445,1
    - Dst: OdDgSummaryInformationPtr::setLastSavedBy
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:450,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:450,1
    - Dst: OdDgSummaryInformationPtr::setRevisionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:455,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:455,1
    - Dst: oddgGetDocumentSummaryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:458,1
    - Dst: OdDgDocumentSummaryInformationPtr::setCategory
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:462,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:462,1
    - Dst: OdDgDocumentSummaryInformationPtr::setManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:466,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:466,1
    - Dst: OdDgDocumentSummaryInformationPtr::setCompany
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:470,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:470,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - pszFilename
    - papszOptionsIn
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 473
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 473
    functionName: OGRDGNV8DataSource::PreCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - OdDgDocumentSummaryInformationPtr::setCategory
    - readFile
    - OdDgSummaryInformationPtr::setSubject
    - GDALVersionInfo
    - CPLError
    - oddgGetSummaryInformation
    - OdDgDocumentSummaryInformationPtr::setManager
    - OdDgSummaryInformationPtr::setTitle
    - OGRDGNV8DataSource::ToUTF8
    - OdDgDocumentSummaryInformationPtr::setCompany
    - OdDgSummaryInformationPtr::setKeywords
    - createDatabase
    - OGRDGNV8DataSource::InitWithSeed
    - VSIFOpenL
    - SetDescription
    - what
    - OdDgSummaryInformationPtr::getApplicationName
    - VSIFCloseL
    - OdDgSummaryInformationPtr::setApplicationName
    - OdDgSummaryInformationPtr::setLastSavedBy
    - OdDgSummaryInformationPtr::setTemplate
    - OdDgSummaryInformationPtr::setRevisionNumber
    - CSLDuplicate
    - OGRDGNV8DataSource::FromUTF8
    - description
    - OdDgSummaryInformationPtr::setComments
    - oddgGetDocumentSummaryInformation
    - OdDgSummaryInformationPtr::setAuthor
    linkageType: ''
    returnType: bool
    signature: "bool OGRDGNV8DataSource::PreCreate(const char *pszFilename,\n                                   char
      **papszOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_STATIC_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:481,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - OdString
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: OGRDGNV8DataSource::ToUTF8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 3
    functionsReached:
    - CPLFree
    - CPL_STATIC_ASSERT
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDGNV8DataSource::ToUTF8(const OdString &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_STATIC_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:496,1
    - Dst: reinterpret_cast<OdChar *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:497,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:498,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:498,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: OGRDGNV8DataSource::FromUTF8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRecodeToWChar
    - reinterpret_cast<OdChar *>
    - CPLString::c_str
    - CPL_STATIC_ASSERT
    - CPLFree
    linkageType: ''
    returnType: OdString
    signature: OdString OGRDGNV8DataSource::FromUTF8(const CPLString &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:516,1
    - Dst: getModelTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:524,1
    - Dst: OdDgModelTablePtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:527,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:528,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:528,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:531,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:531,1
    - Dst: OdDgModelPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:532,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:534,1
    - Dst: OdDgModelPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:534,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:534,1
    - Dst: OdDgModelPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:543,1
    - Dst: getActiveModelId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:544,1
    - Dst: OdDgModelPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:545,1
    - Dst: OdDgModel::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:547,1
    - Dst: OdDgModelTablePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:548,1
    - Dst: OdDgModelPtr::setModelIs3dFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:554,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:554,1
    - Dst: OdDgModelPtr::setWorkingUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:557,1
    - Dst: OdDgModelPtr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:559,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:559,1
    - Dst: OdDgModelPtr::setDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:564,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:564,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:568,1
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:569,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:569,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:574,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:575,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:580,1
    - Dst: OGRDGNV8Layer::OGRDGNV8Layer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:586,1
    - Dst: static_cast<OGRDGNV8Layer **>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:587,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp:588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - pszLayerName
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 591
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 591
    functionName: OGRDGNV8DataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8datasource.cpp
    functionUses: 0
    functionsReached:
    - getModelTable
    - gdal::VectorX::cast
    - OdDgModelPtr::isNull
    - OdDgElementIteratorPtr::done
    - CPLString
    - CPLError
    - OdDgModelPtr::setModelIs3dFlag
    - OdDgModel::createObject
    - OGRDGNV8DataSource::ToUTF8
    - CPLRealloc
    - getActiveModelId
    - OdDgElementIteratorPtr::step
    - OdDgModelTablePtr::createIterator
    - OdDgModelPtr::setDescription
    - static_cast<OGRDGNV8Layer **>
    - what
    - OdDgModelPtr::getName
    - OdDgElementIteratorPtr::item
    - EQUAL
    - OGRDGNV8DataSource::FromUTF8
    - OdDgModelTablePtr::add
    - description
    - OdDgModelPtr::setName
    - OdDgModelPtr::setWorkingUnit
    - OGRDGNV8Layer::OGRDGNV8Layer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRDGNV8DataSource::ICreateLayer(const char *pszLayerName,\n
      \                                const OGRGeomFieldDefn * /*poGeomFieldDefn*/,\n
      \                                CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odrxInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:35,1
    - Dst: disableProgressMeterOutput
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:36,1
    - Dst: ::odrxDynamicLinker
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:37,1
    - Dst: createDatabase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:39,1
    - Dst: OdDgDatabasePtr::getActiveModelId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:41,1
    - Dst: OdDgModelPtr::setWorkingUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:42,1
    - Dst: OdDgModelPtr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:43,1
    - Dst: OdDgModelPtr::setDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:44,1
    - Dst: OdDgModelPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:48,1
    - Dst: OdDgFontTableRecord::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:50,1
    - Dst: OdDgFontTableRecordPtr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:51,1
    - Dst: OdDgFontTableRecordPtr::setType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:52,1
    - Dst: OdDgFontTablePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:54,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:59,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:60,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:65,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:66,1
    - Dst: OdDgLine3dPtr::setLevelEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:68,1
    - Dst: OdDgLine3dPtr::setGraphicsGroupEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:69,1
    - Dst: OdDgLine3dPtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:70,1
    - Dst: OdDgLine3dPtr::setLineStyleEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:71,1
    - Dst: OdDgLine3dPtr::setLineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:72,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:77,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:78,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:82,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:83,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:87,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:88,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:93,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:97,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:101,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:102,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:106,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:109,1
    - Dst: OdDgText2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:113,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:114,1
    - Dst: OdDgText2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:118,1
    - Dst: OdDgText2dPtr::setText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:119,1
    - Dst: OdDgText2dPtr::setRotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:120,1
    - Dst: OdDgText2dPtr::setHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:121,1
    - Dst: OdDgText2dPtr::setLengthMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:122,1
    - Dst: OdDgColorTable::getColorIndexByRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:123,1
    - Dst: OdDgText2dPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:124,1
    - Dst: ODRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:124,1
    - Dst: OdDgText2dPtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:125,1
    - Dst: OdDgFontTablePtr::getAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:127,1
    - Dst: OdDgElementId::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:128,1
    - Dst: OdDgElementId::openObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:130,1
    - Dst: OdDgFontTableRecordPtr::getNumber
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:131,1
    - Dst: OdDgText2dPtr::setFontEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:132,1
    - Dst: OdDgText3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:137,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:138,1
    - Dst: OdDgText3dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:143,1
    - Dst: OdDgText3dPtr::setText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:144,1
    - Dst: OdDgText3dPtr::setHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:145,1
    - Dst: OdDgText3dPtr::setLengthMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:146,1
    - Dst: OdDgTextNode2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:150,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:151,1
    - Dst: OdDgText2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:153,1
    - Dst: OdDgTextNode2dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:154,1
    - Dst: OdDgText2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:158,1
    - Dst: OdDgText2dPtr::setText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:159,1
    - Dst: OdDgText2dPtr::setHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:160,1
    - Dst: OdDgText2dPtr::setLengthMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:161,1
    - Dst: OdDgTextNode3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:165,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:166,1
    - Dst: OdDgText3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:168,1
    - Dst: OdDgTextNode3dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:169,1
    - Dst: OdDgText3dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:174,1
    - Dst: OdDgText3dPtr::setText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:175,1
    - Dst: OdDgText3dPtr::setHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:176,1
    - Dst: OdDgText3dPtr::setLengthMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:177,1
    - Dst: OdDgLineString3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:181,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:182,1
    - Dst: OdDgLineString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:187,1
    - Dst: OdDgLineString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:191,1
    - Dst: OdDgLineString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:195,1
    - Dst: OdDgLineString2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:199,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:200,1
    - Dst: OdDgLineString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:204,1
    - Dst: OdDgLineString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:207,1
    - Dst: OdDgLineString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:210,1
    - Dst: OdDgPointString2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:214,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:215,1
    - Dst: OdDgPointString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:219,1
    - Dst: OdGeMatrix2d::rotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:219,1
    - Dst: OdDgPointString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:222,1
    - Dst: OdGeMatrix2d::rotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:222,1
    - Dst: OdDgPointString3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:226,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:227,1
    - Dst: OdDgPointString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:232,1
    - Dst: OdGeQuaternion
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:232,1
    - Dst: OdDgPointString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:235,1
    - Dst: OdGeQuaternion
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:235,1
    - Dst: OdDgMultiline::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:239,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:240,1
    - Dst: OdDgMultilinePoint::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:246,1
    - Dst: OdDgMultilinePtr::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:247,1
    - Dst: OdDgEllipse2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:252,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:253,1
    - Dst: OdDgEllipse2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:254,1
    - Dst: OdDgEllipse2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:255,1
    - Dst: OdDgEllipse2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:259,1
    - Dst: OdDgEllipse2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:264,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:265,1
    - Dst: OdDgEllipse2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:266,1
    - Dst: OdDgEllipse2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:267,1
    - Dst: OdDgEllipse2dPtr::setRotationAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:268,1
    - Dst: OdDgEllipse2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:272,1
    - Dst: OdDgEllipse3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:277,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:278,1
    - Dst: OdDgEllipse3dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:279,1
    - Dst: OdDgEllipse3dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:280,1
    - Dst: OdDgEllipse3dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:285,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:290,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:291,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:292,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:293,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:297,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:298,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:299,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:304,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:305,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:306,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:307,1
    - Dst: OdDgArc2dPtr::setRotationAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:308,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:312,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:313,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:314,1
    - Dst: OdDgArc3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:319,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:320,1
    - Dst: OdDgArc3dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:321,1
    - Dst: OdDgArc3dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:322,1
    - Dst: OdDgArc3dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:327,1
    - Dst: OdDgArc3dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:328,1
    - Dst: OdDgArc3dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:329,1
    - Dst: OdDgCurve2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:333,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:334,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:338,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:341,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:344,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:347,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:351,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:354,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:357,1
    - Dst: OdDgCurve2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:360,1
    - Dst: OdDgCurve3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:364,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:365,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:370,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:373,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:376,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:379,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:383,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:386,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:389,1
    - Dst: OdDgCurve3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:392,1
    - Dst: OdDgBSplineCurve3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:396,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:397,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:403,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:404,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:405,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:406,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:407,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:408,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:409,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:410,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:411,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:412,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:413,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:413,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:414,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:414,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:415,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:415,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:416,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:416,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:417,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:417,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:418,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:419,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:420,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:421,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:422,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:423,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:424,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:425,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:426,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:427,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:428,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:429,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:430,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:431,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:432,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:433,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:434,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:435,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:436,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:437,1
    - Dst: OdGePoint3dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:438,1
    - Dst: OdGeVector3d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:439,1
    - Dst: OdDgBSplineCurve3dPtr::setNurbsData
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:444,1
    - Dst: OdDgBSplineCurve2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:448,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:449,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:455,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:455,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:456,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:456,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:457,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:457,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:458,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:458,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:459,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:459,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:460,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:460,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:461,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:461,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:462,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:462,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:463,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:463,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:464,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:464,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:465,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:465,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:466,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:466,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:467,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:467,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:468,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:468,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:469,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:469,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:470,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:470,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:471,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:471,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:472,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:472,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:473,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:473,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:474,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:474,1
    - Dst: OdGePoint2dArray::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:475,1
    - Dst: OdGeVector2d
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:475,1
    - Dst: OdDgBSplineCurve2dPtr::setNurbsData
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:480,1
    - Dst: OdDgComplexString::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:485,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:486,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:488,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:489,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:493,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:496,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:498,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:499,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:502,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:505,1
    - Dst: OdDgComplexString::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:510,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:511,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:513,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:514,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:519,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:522,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:524,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:525,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:528,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:531,1
    - Dst: OdDgComplexString::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:536,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:537,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:539,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:540,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:544,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:547,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:549,1
    - Dst: OdDgComplexStringPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:550,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:551,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:552,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:555,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:556,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:557,1
    - Dst: OdDgShape2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:562,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:563,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:567,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:570,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:573,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:576,1
    - Dst: OdDgFillColorLinkage::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:579,1
    - Dst: OdDgColorTable::getColorIndexByRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:580,1
    - Dst: OdDgShape2dPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:581,1
    - Dst: ODRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:581,1
    - Dst: OdDgFillColorLinkagePtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:582,1
    - Dst: OdDgShape2dPtr::addLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:583,1
    - Dst: OdDgFillColorLinkagePtr::getPrimaryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:583,1
    - Dst: OdDgFillColorLinkagePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:583,1
    - Dst: OdDgShape3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:588,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:589,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:594,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:597,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:600,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:603,1
    - Dst: OdDgCellHeader2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:608,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:609,1
    - Dst: OdDgShape2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:611,1
    - Dst: OdDgCellHeader2dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:612,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:616,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:619,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:622,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:625,1
    - Dst: OdDgShape2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:627,1
    - Dst: OdDgShape2dPtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:628,1
    - Dst: OdDgCellHeader2dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:629,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:632,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:635,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:638,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:641,1
    - Dst: OdDgCellHeader3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:646,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:647,1
    - Dst: OdDgShape3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:649,1
    - Dst: OdDgCellHeader3dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:650,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:655,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:658,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:661,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:664,1
    - Dst: OdDgShape3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:666,1
    - Dst: OdDgShape3dPtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:667,1
    - Dst: OdDgCellHeader3dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:668,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:671,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:674,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:677,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:680,1
    - Dst: OdDgComplexShape::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:685,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:686,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:688,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:689,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:693,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:696,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:698,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:699,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:702,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:705,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:707,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:708,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:711,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:714,1
    - Dst: OdDgComplexShape::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:719,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:720,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:722,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:723,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:727,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:730,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:732,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:733,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:734,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:735,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:738,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:739,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:740,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:742,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:743,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:746,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:749,1
    - Dst: OdDgComplexShape::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:755,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:756,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:758,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:759,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:763,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:766,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:768,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:769,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:772,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:775,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:777,1
    - Dst: OdDgComplexShapePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:778,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:781,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:784,1
    - Dst: OdDgDatabasePtr::getSharedCellDefinitionTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:791,1
    - Dst: OdDgSharedCellDefinition::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:793,1
    - Dst: OdDgSharedCellDefinitionPtr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:794,1
    - Dst: OdDgSharedCellDefinitionTablePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:795,1
    - Dst: OdDgEllipse3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:798,1
    - Dst: OdDgEllipse3dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:799,1
    - Dst: OdDgEllipse3dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:800,1
    - Dst: OdDgSharedCellDefinitionPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:801,1
    - Dst: OdDgSharedCellReference::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:805,1
    - Dst: OdDgSharedCellReferencePtr::setDefinitionName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:806,1
    - Dst: OdDgSharedCellReferencePtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:811,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:812,1
    - Dst: OdDgTagElement::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:817,1
    - Dst: OdDgModelPtr::addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:818,1
    - Dst: OdDgModelPtr::fitToView
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:821,1
    - Dst: OdDgDatabasePtr::writeFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:822,1
    - Dst: ::odrxUninitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 531
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 828
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/createdgnv8testfile.cpp
    functionUses: 9
    functionsReached:
    - OdDgArc3d::createObject
    - OdDgDatabasePtr::getSharedCellDefinitionTable
    - OdDgText3dPtr::setOrigin
    - OdDgSharedCellReferencePtr::setOrigin
    - OdDgTextNode2dPtr::add
    - OdDgComplexStringPtr::add
    - OdDgArc3dPtr::setSecondaryAxis
    - OdDgColorTable::getColorIndexByRGB
    - OdDgLine3dPtr::setColorIndex
    - OdDgArc2dPtr::setOrigin
    - OdDgFillColorLinkagePtr::getPrimaryId
    - OdDgArc3dPtr::setStartAngle
    - OdDgLine3d::createObject
    - OdDgShape3dPtr::setHbitFlag
    - OdGeVector3d
    - OdDgFontTableRecordPtr::setName
    - OdDgFillColorLinkagePtr::setColorIndex
    - OdDgModelPtr::setDescription
    - OdDgLineString2d::createObject
    - OdDgText3d::createObject
    - OdDgDatabasePtr::getActiveModelId
    - OdDgArc2dPtr::setSecondaryAxis
    - OdDgPointString2d::createObject
    - OdDgLine3dPtr::setLineWeight
    - OdDgModelPtr::setWorkingUnit
    - OdDgText2dPtr::setRotation
    - disableProgressMeterOutput
    - OdDgPointString3dPtr::addVertex
    - OdDgFontTableRecord::createObject
    - OdDgFontTablePtr::add
    - OdDgEllipse3dPtr::setPrimaryAxis
    - OdDgCellHeader2dPtr::add
    - OdDgEllipse2dPtr::setRotationAngle
    - OdDgLine2d::createObject
    - OdDgText2d::createObject
    - OdDgTextNode3d::createObject
    - OdDgLine3dPtr::setLevelEntryId
    - OdDgArc2dPtr::setRotationAngle
    - OdDgCellHeader3dPtr::add
    - OdDgLine3dPtr::setEndPoint
    - OdDgArc3dPtr::setPrimaryAxis
    - OdDgFontTablePtr::getAt
    - OdDgText2dPtr::setHeightMultiplier
    - createDatabase
    - OdDgShape2d::createObject
    - OdDgLine2dPtr::setStartPoint
    - OdDgFillColorLinkagePtr::get
    - OdDgShape3d::createObject
    - OdGeMatrix2d::rotation
    - OdDgSharedCellDefinitionTablePtr::add
    - OdDgComplexString::createObject
    - OdDgFillColorLinkage::createObject
    - OdDgLine3dPtr::setStartPoint
    - OdDgPointString3d::createObject
    - OdDgBSplineCurve2dPtr::setNurbsData
    - OdDgArc2dPtr::setSweepAngle
    - ::odrxDynamicLinker
    - OdDgCellHeader3d::createObject
    - OdDgText3dPtr::setHeightMultiplier
    - OdDgEllipse3dPtr::setSecondaryAxis
    - OdDgLineString3dPtr::addVertex
    - odrxInitialize
    - OdDgTextNode3dPtr::add
    - OdDgSharedCellDefinitionPtr::add
    - OdDgText2dPtr::setLengthMultiplier
    - OdDgArc2dPtr::setStartAngle
    - OdGePoint3dArray::push_back
    - OdDgCurve2d::createObject
    - OdDgSharedCellDefinitionPtr::setName
    - OdDgTextNode2d::createObject
    - OdDgEllipse2dPtr::setSecondaryAxis
    - OdDgShape2dPtr::addVertex
    - OdDgText2dPtr::setOrigin
    - OdDgArc2dPtr::setPrimaryAxis
    - OdDgComplexShape::createObject
    - OdDgArc2d::createObject
    - ODRGB
    - OdDgElementId::isNull
    - OdDgShape2dPtr::database
    - OdDgArc3dPtr::setOrigin
    - OdDgTagElement::createObject
    - OdDgFontTableRecordPtr::getNumber
    - OdDgText3dPtr::setLengthMultiplier
    - OdDgCurve2dPtr::addVertex
    - OdDgEllipse2d::createObject
    - OdDgEllipse2dPtr::setOrigin
    - OdDgCellHeader2d::createObject
    - OdDgModelPtr::addElement
    - OdDgLine3dPtr::setGraphicsGroupEntryId
    - OdDgShape2dPtr::addLinkage
    - OdDgFontTableRecordPtr::setType
    - OdDgText2dPtr::setFontEntryId
    - OdDgElementId::openObject
    - OdDgCurve3d::createObject
    - OdDgModelPtr::setName
    - OdDgShape2dPtr::setHbitFlag
    - OdDgLineString2dPtr::addVertex
    - OdDgArc3dPtr::setSweepAngle
    - OdDgEllipse3d::createObject
    - OdDgText3dPtr::setText
    - OdDgBSplineCurve2d::createObject
    - OdDgSharedCellDefinition::createObject
    - OdDgSharedCellReference::createObject
    - OdDgModelPtr::database
    - OdDgBSplineCurve3dPtr::setNurbsData
    - OdDgMultiline::createObject
    - OdDgCurve3dPtr::addVertex
    - OdDgMultilinePoint::setPoint
    - OdDgLineString3d::createObject
    - OdDgModelPtr::fitToView
    - OdGeVector2d
    - OdDgLine2dPtr::setEndPoint
    - OdDgBSplineCurve3d::createObject
    - OdDgText2dPtr::database
    - OdDgEllipse2dPtr::setPrimaryAxis
    - ::odrxUninitialize
    - OdDgMultilinePtr::addPoint
    - OdDgSharedCellReferencePtr::setDefinitionName
    - OdDgShape3dPtr::addVertex
    - OdDgText2dPtr::setText
    - OdDgEllipse3dPtr::setOrigin
    - OdDgDatabasePtr::writeFile
    - OdDgComplexShapePtr::add
    - OdDgPointString2dPtr::addVertex
    - OdDgText2dPtr::setColorIndex
    - OdGePoint2dArray::push_back
    - OdGeQuaternion
    - OdDgLine3dPtr::setLineStyleEntryId
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OdRxObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRDWGDataSource::OGRDWGDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<const OdRxObject *>
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::OGRDWGDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:38,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:40,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: OGRDWGDataSource::~OGRDWGDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::~OGRDWGDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: OGRDWGDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRDWGDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:71,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:71,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:72,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:72,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:74,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:74,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:76,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:76,1
    - Dst: readFile
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:84,1
    - Dst: OdString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:84,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:88,1
    - Dst: getErrorDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:89,1
    - Dst: code
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:89,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:93,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:98,1
    - Dst: OGRDWGDataSource::ReadHeaderSection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:105,1
    - Dst: OGRDWGDataSource::ReadLineTypeDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:106,1
    - Dst: OGRDWGDataSource::ReadLayerDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:107,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:113,1
    - Dst: OGRDWGBlocksLayer::OGRDWGBlocksLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:113,1
    - Dst: OGRDWGDataSource::ReadAttDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:121,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:123,1
    - Dst: OGRDWGLayer::OGRDWGLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:123,1
    - Dst: OGRDWGDataSource::ReadBlocksSection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - poServicesIn
    - pszFilename
    argTypes:
    - OGRDWGServices*
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 128
    functionName: OGRDWGDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGRDWGDataSource::ReadLineTypeDefinitions
    - code
    - isNull
    - OGRDWGLayer::OGRDWGLayer
    - OGRDWGDataSource::ReadBlocksSection
    - readFile
    - OGRDWGBlocksLayer::OGRDWGBlocksLayer
    - OGRDWGDataSource::ReadAttDefinitions
    - push_back
    - getErrorDescription
    - CPLError
    - OdString::c_str
    - OGRDWGDataSource::ReadHeaderSection
    - CPLGetConfigOption
    - OGRDWGDataSource::ReadLayerDefinitions
    linkageType: ''
    returnType: int
    signature: "int OGRDWGDataSource::Open(OGRDWGServices *poServicesIn,\n                           const
      char *pszFilename, int /*bHeaderOnly*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getBlockTableId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:137,1
    - Dst: OdDbBlockTablePtr::newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:138,1
    - Dst: OdDbSymbolTableIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:141,1
    - Dst: OdDbSymbolTableIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:141,1
    - Dst: OdDbSymbolTableIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:141,1
    - Dst: OdDbSymbolTableIteratorPtr::getRecordId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:143,1
    - Dst: newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:144,1
    - Dst: OdDbObjectIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:152,1
    - Dst: OdDbObjectIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:152,1
    - Dst: OdDbObjectIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:152,1
    - Dst: OdDbObjectIteratorPtr::objectId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:154,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:155,1
    - Dst: OdDbObjectId::openObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:155,1
    - Dst: OdDbEntityPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:156,1
    - Dst: OdDbEntityPtr::isA
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:164,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:165,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:167,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:170,1
    - Dst: OdDbAttributeDefinitionPtr::isInvisible
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:171,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:174,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:175,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 183
    functionName: OGRDWGDataSource::ReadAttDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - gdal::VectorX::cast
    - OdDbSymbolTableIteratorPtr::start
    - OdDbAttributeDefinitionPtr::isInvisible
    - insert
    - OdDbObjectId::openObject
    - OdRxClass*::name
    - OdDbEntityPtr::isA
    - OdDbSymbolTableIteratorPtr::getRecordId
    - OdDbObjectIteratorPtr::done
    - OdDbSymbolTableIteratorPtr::step
    - getBlockTableId
    - CPLString::CPLString
    - count
    - OdDbObjectIteratorPtr::start
    - OdDbEntityPtr::isNull
    - OdDbSymbolTableIteratorPtr::done
    - OdDbObjectIteratorPtr::step
    - EQUAL
    - newIterator
    - OdDbObjectIteratorPtr::objectId
    - OdDbBlockTablePtr::newIterator
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::ReadAttDefinitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLayerTableId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:192,1
    - Dst: OdDbLayerTablePtr::newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:193,1
    - Dst: OdDbSymbolTableIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:195,1
    - Dst: OdDbSymbolTableIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:195,1
    - Dst: OdDbSymbolTableIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:195,1
    - Dst: OdDbSymbolTableIteratorPtr::getRecordId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:198,1
    - Dst: ACTextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:202,1
    - Dst: OdDbLayerTableRecordPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:202,1
    - Dst: OGRDWGDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:202,1
    - Dst: OdDbLayerTableRecordPtr::linetypeObjectId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:207,1
    - Dst: ACTextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:208,1
    - Dst: OdDbLinetypeTableRecordPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:209,1
    - Dst: OGRDWGDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:209,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:211,1
    - Dst: OdDbLayerTableRecordPtr::colorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:211,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:214,1
    - Dst: OdDbLayerTableRecordPtr::lineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:214,1
    - Dst: OdDbLayerTableRecordPtr::isFrozen
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:217,1
    - Dst: OdDbLayerTableRecordPtr::isHidden
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:217,1
    - Dst: OdDbLayerTableRecordPtr::isOff
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:217,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:225,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 226
    functionName: OGRDWGDataSource::ReadLayerDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OdDbSymbolTableIteratorPtr::start
    - CPLDebug
    - getLayerTableId
    - ACTextUnescape
    - OdDbLayerTableRecordPtr::getName
    - OGRDWGDataSource::GetEncoding
    - OdDbLayerTableRecordPtr::isHidden
    - OdDbLayerTableRecordPtr::colorIndex
    - OdDbSymbolTableIteratorPtr::getRecordId
    - OdDbLayerTableRecordPtr::linetypeObjectId
    - CPLString::Printf
    - OdDbLayerTableRecordPtr::lineWeight
    - OdDbLayerTableRecordPtr::isOff
    - OdDbSymbolTableIteratorPtr::step
    - OdDbLinetypeTableRecordPtr::getName
    - OdDbLayerTablePtr::newIterator
    - size
    - OdDbSymbolTableIteratorPtr::done
    - OdDbLayerTableRecordPtr::isFrozen
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::ReadLayerDefinitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pszLayer
    - pszProperty
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: OGRDWGDataSource::LookupLayerProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *OGRDWGDataSource::LookupLayerProperty(const char *pszLayer,\n
      \                                                 const char *pszProperty)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLinetypeTableId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:256,1
    - Dst: OdDbLinetypeTablePtr::newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:257,1
    - Dst: OdDbSymbolTableIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:259,1
    - Dst: OdDbSymbolTableIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:259,1
    - Dst: OdDbSymbolTableIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:259,1
    - Dst: OdDbSymbolTableIteratorPtr::getRecordId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:264,1
    - Dst: ACTextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:266,1
    - Dst: OdDbLinetypeTableRecordPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:266,1
    - Dst: OGRDWGDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:266,1
    - Dst: OdDbLinetypeTableRecordPtr::numDashes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:268,1
    - Dst: OdDbLinetypeTableRecordPtr::numDashes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:270,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:276,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:276,1
    - Dst: OdDbLinetypeTableRecordPtr::dashLengthAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:276,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:283,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:283,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 287
    functionName: OGRDWGDataSource::ReadLineTypeDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OdDbSymbolTableIteratorPtr::getRecordId
    - ACTextUnescape
    - OdDbSymbolTableIteratorPtr::start
    - OdDbLinetypeTablePtr::newIterator
    - getLinetypeTableId
    - OdDbLinetypeTableRecordPtr::numDashes
    - CPLString::Printf
    - OdDbLinetypeTableRecordPtr::dashLengthAt
    - CPLDebug
    - OdDbSymbolTableIteratorPtr::done
    - OGRDWGDataSource::GetEncoding
    - CPLString::c_str
    - OdDbSymbolTableIteratorPtr::step
    - fabs
    - OdDbLinetypeTableRecordPtr::getName
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::ReadLineTypeDefinitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: OGRDWGDataSource::LookupLineType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: char
    signature: char *OGRDWGDataSource::LookupLineType(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:313,1
    - Dst: getLUPREC
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:313,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:316,1
    - Dst: dimtxt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:316,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:319,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:319,1
    - Dst: OGRDWGDataSource::GetVariable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:325,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:330,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:341,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:342,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:345,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:346,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 347
    functionName: OGRDWGDataSource::ReadHeaderSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - STARTS_WITH_CI
    - c_str
    - CPLString::Printf
    - dimtxt
    - CPLDebug
    - OGRDWGDataSource::GetVariable
    - CPLString::c_str
    - CPLGetConfigOption
    - getLUPREC
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::ReadHeaderSection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: OGRDWGDataSource::GetVariable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 1
    functionsReached:
    - count
    linkageType: ''
    returnType: char
    signature: "char *OGRDWGDataSource::GetVariable(const char *pszName,\n                                          const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:373,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:376,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:379,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:382,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:385,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:388,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:393,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:396,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - poFeatureDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 399
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 399
    functionName: OGRDWGDataSource::AddStandardFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFieldDefn::SetSubType
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::AddStandardFields(OGRFeatureDefn *poFeatureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:34,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:35,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:36,1
    - Dst: OGRDWGLayer::TranslateGenericProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:38,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:40,1
    - Dst: OdDbHatchPtr::patternName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:40,1
    - Dst: OdDbHatchPtr::numLoops
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:45,1
    - Dst: DWGCollectBoundaryLoop
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:47,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:55,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:58,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:65,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:69,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:70,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:77,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:88,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - poEntity
    argTypes:
    - OdDbEntityPtr
    constantsTouched: []
    func_position:
      end: 96
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 96
    functionName: OGRDWGLayer::TranslateHATCH
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp
    functionUses: 1
    functionsReached:
    - OdDbHatchPtr::patternName
    - gdal::VectorX::cast
    - OdDbHatchPtr::numLoops
    - OGRFeature*::SetGeometryDirectly
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRBuildPolygonFromEdges
    - atoi
    - CPLString::Printf
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::SetStyleString
    - OGRFeature*::SetField
    - DWGCollectBoundaryLoop
    - OGRFeature::OGRFeature
    - OGRDWGLayer::TranslateGenericProperties
    - count
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDWGLayer::TranslateHATCH(OdDbEntityPtr poEntity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDbHatchPtr::loopTypeAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:111,1
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:113,1
    - Dst: OdDbHatchPtr::getLoopAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:117,1
    - Dst: OdGePoint2dArray::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:119,1
    - Dst: OdGeDoubleArray::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:121,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:122,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:125,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:129,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:131,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:132,1
    - Dst: OdDbHatchPtr::getLoopAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:141,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:145,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:147,1
    - Dst: evalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:148,1
    - Dst: evalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:149,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:151,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:152,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:153,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:155,1
    - Dst: static_cast<OdGeCircArc2d *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:157,1
    - Dst: OdGeCircArc2d*::center
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:158,1
    - Dst: OdGeCircArc2d*::isClockWise
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:162,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:173,1
    - Dst: OdGeCircArc2d*::radius
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:174,1
    - Dst: OdGeCircArc2d*::radius
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:175,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:178,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:180,1
    - Dst: static_cast<OdGeEllipArc2d *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:182,1
    - Dst: OdGeEllipArc2d*::center
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:183,1
    - Dst: OdGeEllipArc2d*::majorAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:185,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:189,1
    - Dst: OdGeEllipArc2d*::startAng
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:191,1
    - Dst: OdGeEllipArc2d*::endAng
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:192,1
    - Dst: OdGeEllipArc2d*::isClockWise
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:194,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:205,1
    - Dst: OdGeEllipArc2d*::majorRadius
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:206,1
    - Dst: OdGeEllipArc2d*::minorRadius
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:207,1
    - Dst: OGRDWGLayer::AngleCorrect
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:208,1
    - Dst: OGRDWGLayer::AngleCorrect
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:209,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:211,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:214,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - poHatch
    - iLoop
    - poGC
    argTypes:
    - OdDbHatchPtr
    - int
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 221
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 221
    functionName: DWGCollectBoundaryLoop
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_hatch.cpp
    functionUses: 1
    functionsReached:
    - OdGeEllipArc2d*::startAng
    - OdGeEllipArc2d*::minorRadius
    - DXFSmoothPolyline::Close
    - CPLDebug
    - OdGeEllipArc2d*::majorAxis
    - type
    - evalPoint
    - static_cast<OdGeEllipArc2d *>
    - OdGeEllipArc2d*::center
    - OGRGeometryCollection*::addGeometryDirectly
    - OdGeCircArc2d*::center
    - OdGePoint2dArray::size
    - DXFSmoothPolyline::AddPoint
    - DXFSmoothPolyline::Tessellate
    - OdGeCircArc2d*::radius
    - OGRLineString::OGRLineString
    - OdDbHatchPtr::loopTypeAt
    - atan2
    - OdGeEllipArc2d*::isClockWise
    - OdGeEllipArc2d*::majorRadius
    - static_cast<OdGeCircArc2d *>
    - DXFSmoothPolyline::DXFSmoothPolyline
    - OGRDWGLayer::AngleCorrect
    - OdDbHatchPtr::getLoopAt
    - OdGeEllipArc2d*::endAng
    - OGRLineString*::addPoint
    - OGRGeometryFactory::approximateArcAngles
    - OdGeDoubleArray::size
    - OdGeCircArc2d*::isClockWise
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr DWGCollectBoundaryLoop(OdDbHatchPtr poHatch, int iLoop,\n                                     OGRGeometryCollection
      *poGC)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:24,1
    - Dst: OGRTEIGHADeinitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: OGRDGNV8DriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp
    functionUses: 0
    functionsReached:
    - OGRTEIGHADeinitialize
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8DriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:35,1
    - Dst: OGRTEIGHAInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:38,1
    - Dst: OGRDGNV8GetServices
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:41,1
    - Dst: OGRDGNV8DataSource::OGRDGNV8DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:41,1
    - Dst: OGRDGNV8DataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: OGRDGNV8DriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource*::Open
    - OGRDGNV8DataSource::OGRDGNV8DataSource
    - OGRDGNV8GetServices
    - OGRTEIGHAInitialize
    - OGRDGNV8DriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDGNV8DriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTEIGHAInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:60,1
    - Dst: OGRDGNV8GetServices
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:63,1
    - Dst: OGRDGNV8DataSource::OGRDGNV8DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:63,1
    - Dst: OGRDGNV8DataSource*::PreCreate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: OGRDGNV8DriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource*::PreCreate
    - OGRDGNV8GetServices
    - OGRTEIGHAInitialize
    - OGRDGNV8DataSource::OGRDGNV8DataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRDGNV8DriverCreate(const char *pszName, int /* nBands
      */,\n                                         int /* nXSize */, int /* nYSize
      */,\n                                         GDALDataType /* eDT */,\n                                         char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:80,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:83,1
    - Dst: OGRDGNV8DriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:84,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: RegisterOGRDGNV8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8driver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - OGRDGNV8DriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRDGNV8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRDWGLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:27,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:27,1
    - Dst: OGRDWGDataSource::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:36,1
    - Dst: OdDbBlockTablePtr::newIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:37,1
    - Dst: OdDbSymbolTableIteratorPtr::start
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:39,1
    - Dst: OdDbSymbolTableIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:39,1
    - Dst: OdDbSymbolTableIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:39,1
    - Dst: OdDbSymbolTableIteratorPtr::getRecordId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:41,1
    - Dst: getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:44,1
    - Dst: OGRDWGLayer*::SetBlockTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:50,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:57,1
    - Dst: OGRDWGLayer*::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:60,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:63,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:64,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:64,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:67,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:71,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:71,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:76,1
    - Dst: OGRDWGDataSource::SimplifyBlockGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:79,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:81,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:85,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:86,1
    - Dst: OGRDWGLayer*::SetBlockTable
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 89
    functionName: OGRDWGDataSource::ReadBlocksSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp
    functionUses: 1
    functionsReached:
    - OGRDWGLayer*::GetNextUnfilteredFeature
    - OdDbSymbolTableIteratorPtr::start
    - cpl::down_cast<OGRDWGLayer *>
    - CPLDebug
    - std::vector::push_back
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryCollection*::getNumGeometries
    - OGRFeature*::GetStyleString
    - GetLayerByName
    - std::vector::empty
    - OGRDWGLayer*::SetBlockTable
    - OdDbSymbolTableIteratorPtr::getRecordId
    - getName
    - OGRDWGDataSource::GetDB
    - OdDbSymbolTableIteratorPtr::step
    - strstr
    - size
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRFeature*::StealGeometry
    - OdDbSymbolTableIteratorPtr::done
    - EQUAL
    - OGRDWGDataSource::SimplifyBlockGeometry
    - OdDbBlockTablePtr::newIterator
    linkageType: ''
    returnType: void
    signature: void OGRDWGDataSource::ReadBlocksSection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:103,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:105,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poCollection
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 118
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 118
    functionName: OGRDWGDataSource::SimplifyBlockGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection*::removeGeometry
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRDWGDataSource::SimplifyBlockGeometry(OGRGeometryCollection *poCollection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: OGRDWGDataSource::LookupBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: DWGBlockDefinition
    signature: DWGBlockDefinition *OGRDWGDataSource::LookupBlock(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:151,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:153,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: DWGBlockDefinition::~DWGBlockDefinition()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdwg_blockmap.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    linkageType: ''
    returnType: void
    signature: void DWGBlockDefinition::~DWGBlockDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - OdString
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ToUTF8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 5
    functionsReached:
    - OGRDGNV8DataSource::ToUTF8
    linkageType: ''
    returnType: CPLString
    signature: CPLString ToUTF8(const OdString &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: EscapeDoubleQuote
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: CPLString
    signature: CPLString EscapeDoubleQuote(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OdDgElementIterator *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:73,1
    - Dst: OdDgModelPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:77,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:78,1
    - Dst: OdDgModelPtr::getEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:78,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:80,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:80,1
    - Dst: OdDgModelPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:80,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:81,1
    - Dst: OdDgModelPtr::getModelIs3dFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:81,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:86,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:87,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:87,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:88,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:95,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:96,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:97,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:98,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:99,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:104,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:105,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:106,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:107,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:108,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:113,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:114,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:115,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:116,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:117,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:122,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:123,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:124,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:125,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:126,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:131,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:132,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:133,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:134,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:135,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:140,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:141,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:142,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:143,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:144,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:149,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:150,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:151,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:152,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:153,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:158,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:159,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:160,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:161,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:162,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:163,1
    - Dst: OGRDGNV8Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - poDS
    - pModel
    argTypes:
    - OGRDGNV8DataSource*
    - OdDgModelPtr
    constantsTouched: []
    func_position:
      end: 166
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 166
    functionName: OGRDGNV8Layer::OGRDGNV8Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 2
    functionsReached:
    - OdDgModelPtr::getEntryId
    - ToUTF8
    - static_cast<OdDgElementIterator *>
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - OdDgModelPtr::getName
    - CPLDebug
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetSubType
    - Reference
    - OGRFieldDefn::SetName
    - AddFieldDefn
    - SetDescription
    - OGRDGNV8Layer::ResetReading
    - GetName
    - OdDgModelPtr::getModelIs3dFlag
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8Layer::OGRDGNV8Layer(OGRDGNV8DataSource *poDS, OdDgModelPtr
      pModel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8Layer::CleanPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:175,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: OGRDGNV8Layer::~OGRDGNV8Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8Layer::CleanPendingFeatures
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8Layer::~OGRDGNV8Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:186,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: OGRDGNV8Layer::CleanPendingFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8Layer::CleanPendingFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:202,1
    - Dst: createGraphicsElementsIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:204,1
    - Dst: OGRDGNV8Layer::CleanPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: OGRDGNV8Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached:
    - OGRDGNV8Layer::CleanPendingFeatures
    - get
    - createGraphicsElementsIterator
    linkageType: ''
    returnType: void
    signature: void OGRDGNV8Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:223,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:223,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:226,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:226,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:229,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:230,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:231,1
    - Dst: OGRDGNV8Layer::ProcessElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:235,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:236,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:236,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:236,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - iterator
    - level
    argTypes:
    - OdDgElementIteratorPtr
    - int
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: OGRDGNV8Layer::CollectSubElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OdDgElementIteratorPtr::step
    - std::vector::end
    - OdDgElementIteratorPtr::done
    - fprintf
    - std::vector::begin
    - OdDgElementIteratorPtr::item
    - CPLString::c_str
    - OdDgGraphicsElementPtr::isNull
    - OGRDGNV8Layer::ProcessElement
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<tPairFeatureHoleFlag>
    signature: std::vector<tPairFeatureHoleFlag> OGRDGNV8Layer::CollectSubElements(OdDgElementIteratorPtr
      iterator, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - value
    argTypes:
    - OdDg::TextJustification
    constantsTouched: []
    func_position:
      end: 288
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 288
    functionName: GetAnchorPosition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetAnchorPosition(OdDg::TextJustification value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 325
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 325
    functionName: GetAnchorPositionFromOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OdDg::TextJustification
    signature: OdDg::TextJustification GetAnchorPositionFromOGR(int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:333,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:334,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dfA
    - dfB
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: AlmostEqual
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool AlmostEqual(double dfA, double dfB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgText2dPtr::getRotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - OdDgText2dPtr
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: getRotation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached:
    - OdDgText2dPtr::getRotation
    linkageType: ''
    returnType: double
    signature: double getRotation(OdDgText2dPtr text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgText2dPtr::getOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:356,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:357,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poFeature
    - text
    argTypes:
    - OGRFeature*
    - OdDgText2dPtr
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: setGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OdDgText2dPtr::getOrigin
    - OGRPoint::OGRPoint
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: void
    signature: void setGeom(OGRFeature *poFeature, OdDgText2dPtr text)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: getRotation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getRotation(OdDgText3dPtr /*text*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgText3dPtr::getOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:370,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:371,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poFeature
    - text
    argTypes:
    - OGRFeature*
    - OdDgText3dPtr
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: setGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OdDgText3dPtr::getOrigin
    - OGRPoint::OGRPoint
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: void
    signature: void setGeom(OGRFeature *poFeature, OdDgText3dPtr text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TextPtr::getText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:383,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:384,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:384,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:387,1
    - Dst: EscapeDoubleQuote
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:387,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:387,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:389,1
    - Dst: TextPtr::getHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:389,1
    - Dst: TextPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:392,1
    - Dst: OdDgFontTablePtr::getFont
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:393,1
    - Dst: TextPtr::getFontEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:393,1
    - Dst: OdDgFontTableRecordPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:394,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:396,1
    - Dst: EscapeDoubleQuote
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:397,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:397,1
    - Dst: OdDgFontTableRecordPtr::getName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:397,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:401,1
    - Dst: TextPtr::getFontEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:401,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:406,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:411,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:412,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:412,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:415,1
    - Dst: setGeom
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - poFeature
    - osColor
    - text
    argTypes:
    - OGRFeature*
    - CPLString
    - TextPtr
    constantsTouched: []
    func_position:
      end: 417
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 417
    functionName: ProcessText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - setGeom
    - OdDgFontTableRecordPtr::isNull
    - OdDgFontTableRecordPtr::getName
    - ToUTF8
    - static_cast<int>
    - TextPtr::getFontEntryId
    - EscapeDoubleQuote
    - CPLString::Printf
    - floor
    - TextPtr::getHeightMultiplier
    - OGRFeature*::SetStyleString
    - CPLSPrintf
    - TextPtr::getText
    - OGRFeature*::SetField
    - OdDgFontTablePtr::getFont
    - TextPtr::database
    linkageType: ''
    returnType: void
    signature: "void ProcessText(OGRFeature *poFeature, const CPLString &osColor,\n
      \                       TextPtr text)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgGraphicsElementPtr::getLinkages
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:428,1
    - Dst: OdRxObjectPtrArray::length
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:429,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:432,1
    - Dst: OdDgFillColorLinkagePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:433,1
    - Dst: OdDgFillColorLinkagePtr::getColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:435,1
    - Dst: OdDgColorTable::isCorrectIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:436,1
    - Dst: OdDgGraphicsElementPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:436,1
    - Dst: OdDgColorTable::lookupRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:439,1
    - Dst: OdDgGraphicsElementPtr::database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:440,1
    - Dst: OdDgGraphicsElementPtr::getColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:444,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - element
    - osStyle
    argTypes:
    - OdDgGraphicsElementPtr
    - CPLString
    constantsTouched: []
    func_position:
      end: 457
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 457
    functionName: ConsiderBrush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - OdDgFillColorLinkagePtr::getColorIndex
    - OdDgColorTable::lookupRGB
    - OdDgGraphicsElementPtr::getColorIndex
    - OdDgGraphicsElementPtr::getLinkages
    - OdDgColorTable::isCorrectIndex
    - CPLString
    - OdDgGraphicsElementPtr::database
    - OdDgFillColorLinkagePtr::isNull
    - OdRxObjectPtrArray::length
    linkageType: ''
    returnType: CPLString
    signature: "CPLString ConsiderBrush(OdDgGraphicsElementPtr element,\n                               const
      CPLString &osStyle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poSC
    - i
    - point
    argTypes:
    - OGRSimpleCurve*
    - int
    - OdGePoint2d
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: setPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 30
    functionsReached:
    - OGRSimpleCurve*::setPoint
    linkageType: ''
    returnType: void
    signature: void setPoint(OGRSimpleCurve *poSC, int i, OdGePoint2d point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poSC
    - i
    - point
    argTypes:
    - OGRSimpleCurve*
    - int
    - OdGePoint3d
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: setPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 31
    functionsReached:
    - OGRSimpleCurve*::setPoint
    linkageType: ''
    returnType: void
    signature: void setPoint(OGRSimpleCurve *poSC, int i, OdGePoint3d point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:511,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:512,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:513,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:514,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:517,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:520,1
    - Dst: OdSmartPtr::getPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:520,1
    - Dst: OdSmartPtr::getSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:520,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:522,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:525,1
    - Dst: OdSmartPtr::getPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:525,1
    - Dst: OdSmartPtr::getSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:525,1
    - Dst: CurveElementPtr::getStartParam
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:529,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:530,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:531,1
    - Dst: CurveElementPtr::getEndParam
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:532,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:533,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:534,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:538,1
    - Dst: ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:540,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:541,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:546,1
    - Dst: OdSmartPtr::numControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:549,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:550,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:552,1
    - Dst: OdSmartPtr::getVerticesCount
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:555,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:556,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:560,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:561,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:573,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:575,1
    - Dst: OdSmartPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:578,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:580,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:580,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:584,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:584,1
    - Dst: OdSmartPtr::getSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:584,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:589,1
    - Dst: CurveElementPtr::getPointAtParam
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:595,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:596,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:597,1
    - Dst: OGRSimpleCurve::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:598,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:605,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:606,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:607,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:611,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:612,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:613,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:618,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:620,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 3
    argNames:
    - poFeature
    - osPen
    - curveElement
    argTypes:
    - OGRFeature*
    - CPLString
    - CurveElementPtr
    constantsTouched: []
    func_position:
      end: 621
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 621
    functionName: ProcessCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - AlmostEqual
    - OdSmartPtr::isNull
    - OGRSimpleCurve::setPoint
    - OGRCircularString::OGRCircularString
    - OdSmartPtr::getSweepAngle
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRFeature*::SetStyleString
    - ConsiderBrush
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - static_cast<int>
    - OGRLinearRing::OGRLinearRing
    - OGRCurvePolygon*::addRingDirectly
    - OdSmartPtr::getSecondaryAxis
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OdSmartPtr::numControlPoints
    - OdSmartPtr::getPrimaryAxis
    - CPLString::find
    - CurveElementPtr::getStartParam
    - OGRSimpleCurve*::setNumPoints
    - OGRCurvePolygon::OGRCurvePolygon
    - max
    - CurveElementPtr::getEndParam
    - CurveElementPtr::getPointAtParam
    - OdSmartPtr::getVerticesCount
    linkageType: ''
    returnType: void
    signature: "void ProcessCurve(OGRFeature *poFeature, const CPLString &osPen,\n
      \                        CurveElementPtr curveElement)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:633,1
    - Dst: std::vector<tPairFeatureHoleFlag>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:636,1
    - Dst: first::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:638,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:641,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:641,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:649,1
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:650,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:652,1
    - Dst: OGRCurve*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:653,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:657,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:657,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:658,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:659,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:659,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:660,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:661,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:661,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:661,1
    - Dst: OGRCurve*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:672,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:690,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:690,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:690,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:691,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:691,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:691,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:692,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:692,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:692,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 3
    argNames:
    - oVectorSubElts
    - bHasCurves
    - bIsClosed
    argTypes:
    - std::vector<tPairFeatureHoleFlag>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 695
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 695
    functionName: IsContiguous
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toCurve
    - getX
    - OGRPoint::getY
    - OGRCurve*::EndPoint
    - AlmostEqual
    - OGRPoint::getX
    - OGRCurve*::StartPoint
    - first::GetGeometryRef
    - getY
    - getZ
    - OGRPoint::OGRPoint
    - OGRPoint::getZ
    - OGRCurve*::getNumPoints
    - wkbFlatten
    - std::vector<tPairFeatureHoleFlag>::size
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: "bool IsContiguous(const std::vector<tPairFeatureHoleFlag> &oVectorSubElts,\n
      \            bool &bHasCurves, bool &bIsClosed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:712,1
    - Dst: OdDgGraphicsElementPtr::isA
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:714,1
    - Dst: OdRxClass*::name
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:715,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:717,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:717,1
    - Dst: static_cast<OdUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:718,1
    - Dst: OdDgGraphicsElementPtr::elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:718,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:720,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:720,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:721,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:722,1
    - Dst: static_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:723,1
    - Dst: OdDgGraphicsElementPtr::elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:723,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:724,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:724,1
    - Dst: OdDgGraphicsElementPtr::getElementType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:725,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:728,1
    - Dst: OdDgGraphicsElementPtr::getElementType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:728,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:730,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:731,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:732,1
    - Dst: OdDgGraphicsElementPtr::getGraphicsGroupEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:732,1
    - Dst: OdDgGraphicsElementPtr::getColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:733,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:737,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:737,1
    - Dst: OdDgGraphicsElementPtr::getColor
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:739,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:740,1
    - Dst: ODGETRED
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:740,1
    - Dst: ODGETGREEN
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:741,1
    - Dst: ODGETBLUE
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:741,1
    - Dst: OdDgGraphicsElementPtr::getLineStyleEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:743,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:747,1
    - Dst: OdDgGraphicsElementPtr::getLineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:750,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:755,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:756,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:759,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:760,1
    - Dst: OdDgGraphicsElementPtr::getLinkages
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:763,1
    - Dst: OdRxObjectPtrArray::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:764,1
    - Dst: OdRxObjectPtrArray::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:766,1
    - Dst: OdDgAttributeLinkagePtr::getPrimaryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:769,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:770,1
    - Dst: OdDgAttributeLinkagePtr::getData
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:773,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:775,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:775,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:776,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:778,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:778,1
    - Dst: CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:778,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:779,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:779,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:781,1
    - Dst: OdBinaryData::asArrayPtr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:782,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:784,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:785,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:802,1
    - Dst: OdDgDBLinkagePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:803,1
    - Dst: OdDgDBLinkagePtr::getDBType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:807,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:810,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:813,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:816,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:819,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:822,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:825,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:828,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:831,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:834,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:837,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:840,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:844,1
    - Dst: OdDgDBLinkagePtr::getTableEntityId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:845,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:846,1
    - Dst: OdDgDBLinkagePtr::getMSLink
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:846,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:847,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:853,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:853,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:854,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:855,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:856,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:856,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:857,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:857,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:858,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:859,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:861,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:867,1
    - Dst: OdDgStringLinkagePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:868,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:870,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:871,1
    - Dst: OdDgStringLinkagePtr::getString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:871,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:872,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:878,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:881,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:882,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:884,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:885,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:891,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:891,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:921,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:925,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:926,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:930,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:932,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:933,1
    - Dst: OdDgCellHeader2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:933,1
    - Dst: OdDgCellHeader2dPtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:934,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:938,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:939,1
    - Dst: OdDgCellHeader3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:939,1
    - Dst: OdDgCellHeader3dPtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:940,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:942,1
    - Dst: OGRDGNV8Layer::CollectSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:944,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:949,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:952,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:953,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:960,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:960,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:962,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:985,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:987,1
    - Dst: OGRCurvePolygon*::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:988,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:989,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:990,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:993,1
    - Dst: OGRCurvePolygon*::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:996,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:997,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1001,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1002,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1003,1
    - Dst: ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1003,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1012,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1014,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1015,1
    - Dst: OdDgText2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1015,1
    - Dst: ProcessText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1016,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1018,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1020,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1021,1
    - Dst: OdDgText3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1021,1
    - Dst: ProcessText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1022,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1024,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1025,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1028,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1030,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1031,1
    - Dst: OdDgTextNode2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1031,1
    - Dst: OdDgTextNode2dPtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1032,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1036,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1037,1
    - Dst: OdDgTextNode3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1037,1
    - Dst: OdDgTextNode3dPtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1038,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1040,1
    - Dst: OGRDGNV8Layer::CollectSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1042,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1047,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1049,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1050,1
    - Dst: OdDgLine2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1050,1
    - Dst: OdDgLine2dPtr::getStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1051,1
    - Dst: OdDgLine2dPtr::getEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1052,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1055,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1056,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1060,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1061,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1062,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1063,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1064,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1065,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1068,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1070,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1071,1
    - Dst: OdDgLine3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1071,1
    - Dst: OdDgLine3dPtr::getStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1072,1
    - Dst: OdDgLine3dPtr::getEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1073,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1076,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1077,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1081,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1082,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1083,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1084,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1085,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1086,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1089,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1091,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1092,1
    - Dst: OdDgLineString2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1092,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1095,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1096,1
    - Dst: OdDgLineString2dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1099,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1100,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1102,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1103,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1105,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1107,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1108,1
    - Dst: OdDgLineString3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1108,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1111,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1112,1
    - Dst: OdDgLineString3dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1115,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1116,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1118,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1121,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1123,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1124,1
    - Dst: OdDgPointString2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1124,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1129,1
    - Dst: OdDgPointString2dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1132,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1133,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1133,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1135,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1137,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1139,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1140,1
    - Dst: OdDgPointString3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1140,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1145,1
    - Dst: OdDgPointString3dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1148,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1149,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1149,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1153,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1157,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1158,1
    - Dst: OdDgMultilinePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1158,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1161,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1162,1
    - Dst: OdDgMultilinePtr::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1167,1
    - Dst: OdDgMultilinePoint::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1168,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1169,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1171,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1177,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1179,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1180,1
    - Dst: OdDgCurveElement2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1180,1
    - Dst: ProcessCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1187,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1189,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1190,1
    - Dst: OdDgCurveElement3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1190,1
    - Dst: ProcessCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1194,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1196,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1197,1
    - Dst: OdDgShape2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1197,1
    - Dst: OdDgShape2dPtr::getHoleFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1198,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1201,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1202,1
    - Dst: OdDgShape2dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1205,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1206,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1208,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1209,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1210,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1211,1
    - Dst: ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1211,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1213,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1215,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1216,1
    - Dst: OdDgShape3dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1216,1
    - Dst: OdDgShape3dPtr::getHoleFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1217,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1220,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1221,1
    - Dst: OdDgShape3dPtr::getVertexAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1224,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1225,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1227,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1228,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1229,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1230,1
    - Dst: ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1230,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1232,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1234,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1235,1
    - Dst: OdDgComplexStringPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1235,1
    - Dst: OdDgComplexStringPtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1237,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1238,1
    - Dst: OGRDGNV8Layer::CollectSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1241,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1251,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1254,1
    - Dst: first::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1257,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1261,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1261,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1265,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1265,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1272,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1278,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1280,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1283,1
    - Dst: first::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1286,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1290,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1290,1
    - Dst: OGRMultiCurve*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1294,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1300,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1305,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1307,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1308,1
    - Dst: OdDgComplexCurvePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1308,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1310,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1311,1
    - Dst: OdDgComplexShapePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1311,1
    - Dst: OdDgComplexShapePtr::getHoleFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1312,1
    - Dst: OdDgComplexCurvePtr::createIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1314,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1315,1
    - Dst: OGRDGNV8Layer::CollectSubElements
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1318,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1334,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1335,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1339,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1340,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1344,1
    - Dst: first::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1347,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1351,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1351,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1354,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1354,1
    - Dst: OGRLinearRing*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1359,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1360,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1361,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1367,1
    - Dst: OGRCompoundCurve*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1367,1
    - Dst: OGRLinearRing*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1368,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1370,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1374,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1375,1
    - Dst: first::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1378,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1382,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1382,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1385,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1386,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1390,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1402,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1402,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1403,1
    - Dst: OGRGeometry*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1405,1
    - Dst: OGRGeometryCollection::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1405,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1406,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1408,1
    - Dst: ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1408,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1411,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1413,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1414,1
    - Dst: OdDgSharedCellReferencePtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1414,1
    - Dst: OdDgSharedCellReferencePtr::getOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1415,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1416,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1416,1
    - Dst: OdDgSharedCellReferencePtr::getDefinitionName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1416,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1417,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1417,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1421,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1422,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1424,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1425,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1428,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1433,1
    - Dst: tPairFeatureHoleFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1433,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 393
    argCount: 2
    argNames:
    - element
    - level
    argTypes:
    - OdDgGraphicsElementPtr
    - int
    constantsTouched: []
    func_position:
      end: 1436
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 1436
    functionName: OGRDGNV8Layer::ProcessElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached:
    - OdDgLine2dPtr::getStartPoint
    - first::StealGeometry
    - OdDgSharedCellReferencePtr::isNull
    - OGRBuildPolygonFromEdges
    - std::vector::size
    - OdDgComplexShapePtr::isNull
    - CPLDebug
    - OdDgCellHeader3dPtr::createIterator
    - OdDgGraphicsElementPtr::elementId
    - OdDgLine3dPtr::getStartPoint
    - OGRGeometryCollection::addGeometryDirectly
    - static_cast<const char *>
    - insert
    - OdDgCellHeader2dPtr::isNull
    - OdDgLineString3dPtr::isNull
    - ODGETBLUE
    - OGRLineString::OGRLineString
    - CPLJSONArray::Add
    - OGRGeometry*::getGeometryType
    - OGRLinearRing*::setNumPoints
    - ToUTF8
    - OdDgLine2dPtr::isNull
    - OdDgLine3dPtr::isNull
    - CPLJSONObject::CPLJSONObject
    - OdDgLineString3dPtr::getVertexAt
    - OdDgDBLinkagePtr::getMSLink
    - first::GetGeometryRef
    - OGRCurvePolygon*::addRingDirectly
    - OGRLinearRing*::addSubLineString
    - ODGETGREEN
    - OdDgShape3dPtr::getVertexAt
    - OdDgText3dPtr::isNull
    - OdDgComplexCurvePtr::isNull
    - OGRCompoundCurve*::toCurve
    - CPLJSONObject::Add
    - ProcessCurve
    - OdDgShape2dPtr::getVertexAt
    - OGRLinearRing*::toCurve
    - OdDgGraphicsElementPtr::getLinkages
    - OdDgStringLinkagePtr::getString
    - ODGETRED
    - std::vector::clear
    - OdDgStringLinkagePtr::isNull
    - OGRPolygon::OGRPolygon
    - OdDgPointString3dPtr::getVertexAt
    - static_cast<GIntBig>
    - OdDgCellHeader3dPtr::isNull
    - OdDgCurveElement3dPtr::isNull
    - OdDgShape3dPtr::isNull
    - OGRFeature*::SetStyleString
    - OdDgLineString2dPtr::isNull
    - CPLJSONArray::IsValid
    - find
    - fprintf
    - OGRDGNV8Layer::CollectSubElements
    - OdDgMultilinePtr::getPoint
    - OdDgComplexStringPtr::isNull
    - OdDgComplexCurvePtr::createIterator
    - OdDgAttributeLinkagePtr::getData
    - OdRxClass*::name
    - OGRCurvePolygon*::addRing
    - ConsiderBrush
    - wkbFlatten
    - CPLJSONArray
    - CPLJSONObject::ToString
    - static_cast<int>
    - FromHandle
    - OGRGeometryCollection::getCoordinateDimension
    - OGRFeature*::GetFID
    - CPLAssert
    - OdDgComplexShapePtr::getHoleFlag
    - OdDgDBLinkagePtr::isNull
    - OGRGeometry*::toCurve
    - OdDgTextNode3dPtr::isNull
    - OdDgTextNode3dPtr::createIterator
    - EQUAL
    - OdDgLineString2dPtr::getVertexAt
    - OGRGeometryFactory::forceToLineString
    - OdDgPointString2dPtr::isNull
    - std::string::assign
    - OdDgGraphicsElementPtr::getLineStyleEntryId
    - OdDgComplexStringPtr::createIterator
    - OdDgShape2dPtr::isNull
    - OdRxObjectPtrArray::size
    - std::vector::push_back
    - OGRMultiCurve*::addGeometry
    - OdDgPointString2dPtr::getVertexAt
    - ToHandle
    - CPLString::c_str
    - static_cast<OdUInt64>
    - OGRFeature*::SetGeometryDirectly
    - ProcessText
    - OGRLinearRing*::getNumPoints
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - CPLSPrintf
    - OGRGeometry*::setCoordinateDimension
    - OGRGeometry*::toLineString
    - OGRFeature*::GetGeometryRef
    - CPLJSONObject
    - OdDgGraphicsElementPtr::getColorIndex
    - OGRCurvePolygon::OGRCurvePolygon
    - OdDgDBLinkagePtr::getTableEntityId
    - OdDgSharedCellReferencePtr::getOrigin
    - OdBinaryData::asArrayPtr
    - OGRFeature*::SetFID
    - gdal::VectorX::cast
    - OGRLinearRing*::setPoint
    - OGRMultiPoint::OGRMultiPoint
    - OdDgShape3dPtr::getHoleFlag
    - OdDgGraphicsElementPtr::getColor
    - OdDgAttributeLinkagePtr::getPrimaryId
    - OGRMultiPoint*::addGeometryDirectly
    - OdDgMultilinePtr::isNull
    - OGRPolygon*::addRingDirectly
    - OdDgCurveElement2dPtr::isNull
    - OdDgGraphicsElementPtr::isA
    - CPLJSONArray::CPLJSONArray
    - end
    - OdDgLine3dPtr::getEndPoint
    - OdDgTextNode2dPtr::createIterator
    - OdDgTextNode2dPtr::isNull
    - OdDgShape2dPtr::getHoleFlag
    - OGRPoint::OGRPoint
    - OGRMultiLineString::OGRMultiLineString
    - OdDgText2dPtr::isNull
    - OdDgLine2dPtr::getEndPoint
    - OGRCompoundCurve*::addCurve
    - OdDgGraphicsElementPtr::getLineWeight
    - OdDgMultilinePoint::getPoint
    - OdDgCellHeader2dPtr::createIterator
    - CPLJSONObject::GetArray
    - OGRCompoundCurve::OGRCompoundCurve
    - OGRFeature::OGRFeature
    - OdDgSharedCellReferencePtr::getDefinitionName
    - OdDgGraphicsElementPtr::getElementType
    - OdDgPointString3dPtr::isNull
    - OGRMultiCurve::OGRMultiCurve
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometry*::toCurvePolygon
    - OdDgElementIteratorPtr::isNull
    - OdDgDBLinkagePtr::getDBType
    - OGRFeature*::SetField
    - OdDgGraphicsElementPtr::getGraphicsGroupEntryId
    - tPairFeatureHoleFlag
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: std::vector<tPairFeatureHoleFlag>
    signature: std::vector<tPairFeatureHoleFlag> OGRDGNV8Layer::ProcessElement(OdDgGraphicsElementPtr
      element, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1447,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1456,1
    - Dst: done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1461,1
    - Dst: item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1463,1
    - Dst: step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1464,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1465,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1466,1
    - Dst: OGRDGNV8Layer::ProcessElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1442
    functionDepth: 5
    functionLinenumber: 1442
    functionLinenumberEnd: 1475
    functionName: OGRDGNV8Layer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - size
    - gdal::VectorX::cast
    - item
    - step
    - done
    - isNull
    - OdDgGraphicsElementPtr::isNull
    - OGRDGNV8Layer::ProcessElement
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNV8Layer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8Layer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1486,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1489,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1495,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1496,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1496,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1481
    functionDepth: 6
    functionLinenumber: 1481
    functionLinenumberEnd: 1502
    functionName: OGRDGNV8Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8Layer::GetNextUnfilteredFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNV8Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgGraphicsElementPtr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1512,1
    - Dst: database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1514,1
    - Dst: OdDgElementId::openObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1515,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1516,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1517,1
    - Dst: OdDgGraphicsElementPtr::ownerId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1517,1
    - Dst: elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1517,1
    - Dst: OdDgGraphicsElementPtr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - nFID
    - openMode
    argTypes:
    - GIntBig
    - OdDg::OpenMode
    constantsTouched: []
    func_position:
      end: 1520
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1520
    functionName: OGRDGNV8Layer::GetFeatureInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - gdal::VectorX::cast
    - database
    - elementId
    - OdDgGraphicsElementPtr
    - OdDgElementId::openObject
    - OdDgGraphicsElementPtr::isNull
    - OdDgGraphicsElementPtr::ownerId
    linkageType: ''
    returnType: OdDgGraphicsElementPtr
    signature: OdDgGraphicsElementPtr OGRDGNV8Layer::GetFeatureInternal(GIntBig nFID,
      OdDg::OpenMode openMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8Layer::GetFeatureInternal
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1528,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1529,1
    - Dst: OGRDGNV8Layer::ProcessElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1531,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1533,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1535,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1542
      start: 1526
    functionDepth: 5
    functionLinenumber: 1526
    functionLinenumberEnd: 1542
    functionName: OGRDGNV8Layer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - OGRDGNV8Layer::ProcessElement
    - OdDgGraphicsElementPtr::isNull
    - OGRDGNV8Layer::GetFeatureInternal
    - std::vector::empty
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNV8Layer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1550,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1552,1
    - Dst: OGRDGNV8Layer::GetFeatureInternal
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1557,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1558,1
    - Dst: OdDgGraphicsElementPtr::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1562,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1566,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1567,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1567,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1572,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1573,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1578,1
    - Dst: SetModified
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1583
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1583
    functionName: OGRDGNV8Layer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - GetUpdate
    - ToUTF8
    - OdDgGraphicsElementPtr::erase
    - SetModified
    - description
    - CPLError
    - OdDgGraphicsElementPtr::isNull
    - OGRDGNV8Layer::GetFeatureInternal
    - what
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDGNV8Layer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getStorageUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1593,1
    - Dst: createGraphicsElementsIterator
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1595,1
    - Dst: OdDgElementIteratorPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1599,1
    - Dst: OdDgElementIteratorPtr::done
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1599,1
    - Dst: OdDgElementIteratorPtr::item
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1601,1
    - Dst: OdDgElementIteratorPtr::step
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1602,1
    - Dst: gdal::VectorX::cast
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1603,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1604,1
    - Dst: OdDgGraphicsElementPEPtr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1607,1
    - Dst: OdRxObjectPtr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1607,1
    - Dst: OdDgGraphicsElementPEPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1608,1
    - Dst: OdDgGraphicsElementPEPtr::getRange
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1611,1
    - Dst: OdGeExtents3d::minPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1613,1
    - Dst: OdGeExtents3d::maxPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1614,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1625,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1627,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1629,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1631,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1638,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1639
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1639
    functionName: OGRDGNV8Layer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OdGeExtents3d::minPoint
    - gdal::VectorX::cast
    - OdDgElementIteratorPtr::step
    - OdDgElementIteratorPtr::done
    - OdDgElementIteratorPtr::isNull
    - OdDgElementIteratorPtr::item
    - OdRxObjectPtr
    - min
    - max
    - OdDgGraphicsElementPEPtr::getRange
    - getStorageUnit
    - OdGeExtents3d::maxPoint
    - OdDgGraphicsElementPtr::isNull
    - OGRLayer::IGetExtent
    - OdDgGraphicsElementPEPtr
    - createGraphicsElementsIterator
    - OdDgGraphicsElementPEPtr::isNull
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDGNV8Layer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1648,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1650,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1653,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1654,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1655,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1659
    functionName: OGRDGNV8Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetUpdate
    linkageType: ''
    returnType: int
    signature: int OGRDGNV8Layer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1672,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1679,1
    - Dst: OGRDGNV8Layer::CreateGraphicsElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1688,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1688,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1689,1
    - Dst: addElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1691,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1692,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1692,1
    - Dst: static_cast<OdUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1693,1
    - Dst: OdDgGraphicsElementPtr::elementId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1697,1
    - Dst: ToUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1698,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1698,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1703,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1709,1
    - Dst: SetModified
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1715
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1715
    functionName: OGRDGNV8Layer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - what
    - ToUTF8
    - OdDgGraphicsElementPtr::elementId
    - OGRDGNV8Layer::CreateGraphicsElement
    - SetModified
    - description
    - addElement
    - CPLError
    - OdDgGraphicsElementPtr::isNull
    - GetUpdate
    - static_cast<OdUInt64>
    - OGRFeature*::SetFID
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDGNV8Layer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1724,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1725,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1726,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1728,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - poFeature
    - eClassId
    argTypes:
    - OGRFeature*
    - OGRSTClassId
    constantsTouched: []
    func_position:
      end: 1739
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1739
    functionName: GetTool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleMgr::GetPartCount
    - OGRStyleMgr::InitFromFeature
    - OGRStyleTool*::GetType
    - OGRStyleMgr::OGRStyleMgr
    - OGRStyleMgr::GetPart
    linkageType: ''
    returnType: OGRStyleTool
    signature: OGRStyleTool *GetTool(OGRFeature *poFeature, OGRSTClassId eClassId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1752,1
    - Dst: GetTool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1752,1
    - Dst: OdDgText2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1754,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1756,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1757,1
    - Dst: OdDgText2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1758,1
    - Dst: OGRStyleLabel*::TextString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1765,1
    - Dst: OGRStyleLabel*::TextString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1766,1
    - Dst: OdDgText2dPtr::setRotation
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1769,1
    - Dst: OGRStyleLabel*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1771,1
    - Dst: database
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1781,1
    - Dst: OdDgFontTablePtr::getAt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1783,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1783,1
    - Dst: OdDgElementId::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1784,1
    - Dst: OdDgElementId::openObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1787,1
    - Dst: OdDgFontTableRecordPtr::getNumber
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1788,1
    - Dst: OdDgText2dPtr::setFontEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1789,1
    - Dst: OdDgText2dPtr::setJustification
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1795,1
    - Dst: GetAnchorPositionFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1795,1
    - Dst: OdDgText2dPtr::setHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1798,1
    - Dst: OdDgText2dPtr::setLengthMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1799,1
    - Dst: OdDgText2dPtr::getHeightMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1799,1
    - Dst: OdDgText2dPtr::setText
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1800,1
    - Dst: OGRDGNV8DataSource::FromUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1800,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - poFeature
    - poPoint
    argTypes:
    - OGRFeature*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 1805
      start: 1745
    functionDepth: 3
    functionLinenumber: 1745
    functionLinenumberEnd: 1805
    functionName: OGRDGNV8Layer::TranslateLabel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - GetTool
    - OdDgText2dPtr::setLengthMultiplier
    - OGRPoint*::getY
    - OdDgText2dPtr::getHeightMultiplier
    - static_cast<OGRStyleLabel *>
    - OGRStyleLabel*::SetUnit
    - OdDgText2dPtr::setJustification
    - OdDgText2dPtr::setOrigin
    - OdDgText2d::createObject
    - OdDgElementId::isNull
    - OdDgFontTablePtr::getAt
    - OdDgText2dPtr::setHeightMultiplier
    - database
    - OGRPoint*::getX
    - OdDgFontTableRecordPtr::getNumber
    - OGRStyleLabel*::TextString
    - GetAnchorPositionFromOGR
    - OdDgText2dPtr::setText
    - OdDgText2dPtr::setFontEntryId
    - OGRDGNV8DataSource::FromUTF8
    - OdDgElementId::openObject
    - OdDgText2dPtr::setRotation
    linkageType: ''
    returnType: OdDgGraphicsElementPtr
    signature: "OdDgGraphicsElementPtr OGRDGNV8Layer::TranslateLabel(OGRFeature *poFeature,\n
      \                                                    OGRPoint *poPoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgColorTable::getColorIndexByRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1819,1
    - Dst: GetDb
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1820,1
    - Dst: ODRGB
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1820,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszColor
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1827
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1827
    functionName: OGRDGNV8Layer::GetColorFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - GetDb
    - OdDgColorTable::getColorIndexByRGB
    - static_cast<int>
    - ODRGB
    linkageType: ''
    returnType: int
    signature: int OGRDGNV8Layer::GetColorFromString(const char *pszColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1837,1
    - Dst: static_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1840,1
    - Dst: GetTool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1840,1
    - Dst: OdDgFillColorLinkage::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1851,1
    - Dst: OdDgFillColorLinkagePtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1852,1
    - Dst: OdDgGraphicsElementPtr::addLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1853,1
    - Dst: OdDgFillColorLinkagePtr::getPrimaryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1853,1
    - Dst: OdDgFillColorLinkagePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - poFeature
    - element
    argTypes:
    - OGRFeature*
    - OdDgGraphicsElementPtr
    constantsTouched: []
    func_position:
      end: 1861
      start: 1833
    functionDepth: 3
    functionLinenumber: 1833
    functionLinenumberEnd: 1861
    functionName: OGRDGNV8Layer::AttachFillLinkage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRStyleBrush *>
    - GetTool
    - OdDgFillColorLinkagePtr::get
    - OdDgFillColorLinkagePtr::setColorIndex
    - strstr
    - OdDgFillColorLinkage::createObject
    - OdDgFillColorLinkagePtr::getPrimaryId
    - OdDgGraphicsElementPtr::addLinkage
    linkageType: ''
    returnType: void
    signature: "void OGRDGNV8Layer::AttachFillLinkage(OGRFeature *poFeature,\n                                      OdDgGraphicsElementPtr
      element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OdDgGraphicsElementPtr::setLevelEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1875,1
    - Dst: OdDgGraphicsElementPtr::setGraphicsGroupEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1876,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1879,1
    - Dst: OdDgGraphicsElementPtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1882,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1887,1
    - Dst: static_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1890,1
    - Dst: GetTool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1890,1
    - Dst: OdDgGraphicsElementPtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1900,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1906,1
    - Dst: static_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1909,1
    - Dst: GetTool
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1909,1
    - Dst: OdDgGraphicsElementPtr::setColorIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1919,1
    - Dst: OdDgGraphicsElementPtr::setLineStyleEntryId
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1928,1
    - Dst: OdDgGraphicsElementPtr::setLineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1929,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - poFeature
    - element
    argTypes:
    - OGRFeature*
    - OdDgGraphicsElementPtr
    constantsTouched: []
    func_position:
      end: 1930
      start: 1867
    functionDepth: 3
    functionLinenumber: 1867
    functionLinenumberEnd: 1930
    functionName: OGRDGNV8Layer::AttachCommonAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OdDgGraphicsElementPtr::setColorIndex
    - static_cast<OGRStylePen *>
    - GetTool
    - OdDgGraphicsElementPtr::setLineWeight
    - OdDgGraphicsElementPtr::setLineStyleEntryId
    - strstr
    - OdDgGraphicsElementPtr::setGraphicsGroupEntryId
    - OdDgGraphicsElementPtr::setLevelEntryId
    - static_cast<OGRStyleLabel *>
    linkageType: ''
    returnType: void
    signature: "void OGRDGNV8Layer::AttachCommonAttributes(OGRFeature *poFeature,\n
      \                                          OdDgGraphicsElementPtr element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1940,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1944,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1945,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1945,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1945,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1946,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1946,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1946,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1949,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1950,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1951,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1955,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1956,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1957,1
    - Dst: OGRDGNV8Layer::AttachCommonAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1958,1
    - Dst: OdDgComplexCurvePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - poFeature
    - poCS
    - complexCurve
    argTypes:
    - OGRFeature*
    - OGRCircularString*
    - OdDgComplexCurvePtr
    constantsTouched: []
    func_position:
      end: 1962
      start: 1936
    functionDepth: 4
    functionLinenumber: 1936
    functionLinenumberEnd: 1962
    functionName: OGRDGNV8Layer::AddToComplexCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OdDgArc2dPtr::setSweepAngle
    - OGRCircularString*::getNumPoints
    - OdDgComplexCurvePtr::add
    - OdDgArc2dPtr::setStartAngle
    - OGRCircularString*::getY
    - OdDgArc2dPtr::setSecondaryAxis
    - OGRCircularString*::getX
    - OdDgArc2dPtr::setPrimaryAxis
    - OdDgArc2d::createObject
    - OGRDGNV8Layer::AttachCommonAttributes
    - OdDgArc2dPtr::setOrigin
    - OGRGeometryFactory::GetCurveParameters
    linkageType: ''
    returnType: void
    signature: "void OGRDGNV8Layer::AddToComplexCurve(OGRFeature *poFeature,\n                                      OGRCircularString
      *poCS,\n                                      OdDgComplexCurvePtr complexCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1972,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1974,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1975,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1975,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1976,1
    - Dst: OdDgComplexCurvePtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1978,1
    - Dst: OGRDGNV8Layer::CreateGraphicsElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1978,1
    - Dst: OGRCurve*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1982,1
    - Dst: OGRDGNV8Layer::AddToComplexCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1983,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - poFeature
    - poCC
    - complexCurve
    argTypes:
    - OGRFeature*
    - OGRCompoundCurve*
    - OdDgComplexCurvePtr
    constantsTouched: []
    func_position:
      end: 1990
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 1990
    functionName: OGRDGNV8Layer::AddToComplexCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 1
    functionsReached:
    - OdDgComplexCurvePtr::add
    - OGRCompoundCurve*::getCurve
    - OGR_GT_HasZ
    - OGRDGNV8Layer::AddToComplexCurve
    - OGRDGNV8Layer::CreateGraphicsElement
    - OGRCurve*::toCircularString
    - CPLAssert
    - OGRCompoundCurve*::getNumCurves
    - wkbFlatten
    - OGRCurve*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void OGRDGNV8Layer::AddToComplexCurve(OGRFeature *poFeature,\n                                      OGRCompoundCurve
      *poCC,\n                                      OdDgComplexCurvePtr complexCurve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1999,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:1999,1
    - Dst: OdDgShape3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2001,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2002,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2004,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2006,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2007,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2008,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2009,1
    - Dst: OdDgShape3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2010,1
    - Dst: OdDgShape3dPtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2012,1
    - Dst: OdDgShape2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2017,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2018,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2020,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2022,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2023,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2024,1
    - Dst: OdDgShape2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2025,1
    - Dst: OdDgShape2dPtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - poLS
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 2030
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2030
    functionName: CreateShapeFromLS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - OdDgShape3d::createObject
    - OdDgShape2d::createObject
    - OGRPoint::getY
    - OGRLineString*::getGeometryType
    - OGRPoint::getX
    - OGR_GT_HasZ
    - OdDgShape2dPtr::addVertex
    - OGRLineString*::getPoint
    - OGRPoint::OGRPoint
    - OGRLineString*::getNumPoints
    - OGRPoint::getZ
    - OdDgShape3dPtr::addVertex
    - OdDgShape2dPtr::setHbitFlag
    - OdDgShape3dPtr::setHbitFlag
    linkageType: ''
    returnType: OdDgGraphicsElementPtr
    signature: "OdDgGraphicsElementPtr CreateShapeFromLS(OGRLineString *poLS,\n                                                bool
      bHbit = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2041,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2041,1
    - Dst: OGRCurve*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2044,1
    - Dst: CreateShapeFromLS
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2045,1
    - Dst: OdDgComplexShape::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2049,1
    - Dst: OdDgComplexShapePtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2050,1
    - Dst: OGRCurve*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2051,1
    - Dst: OGRDGNV8Layer::AddToComplexCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2052,1
    - Dst: OdDgComplexShape::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2057,1
    - Dst: OdDgComplexShapePtr::setHbitFlag
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2058,1
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2059,1
    - Dst: OGRDGNV8Layer::AddToComplexCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2060,1
    - Dst: OGRDGNV8Layer::AttachFillLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - poFeature
    - poCurve
    - bIsHole
    argTypes:
    - OGRFeature*
    - OGRCurve*
    - bool
    constantsTouched: []
    func_position:
      end: 2068
      start: 2036
    functionDepth: 5
    functionLinenumber: 2036
    functionLinenumberEnd: 2068
    functionName: OGRDGNV8Layer::CreateShape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached:
    - CreateShapeFromLS
    - OdDgComplexShapePtr::setHbitFlag
    - OGRCurve*::toLineString
    - OGRDGNV8Layer::AddToComplexCurve
    - OGRCurve*::toCircularString
    - OdDgComplexShape::createObject
    - wkbFlatten
    - OGRCurve*::getGeometryType
    - OGRCurve*::toCompoundCurve
    - OGRDGNV8Layer::AttachFillLinkage
    linkageType: ''
    returnType: OdDgGraphicsElementPtr
    signature: "OdDgGraphicsElementPtr OGRDGNV8Layer::CreateShape(OGRFeature *poFeature,\n
      \                                                 OGRCurve *poCurve,\n                                                  bool
      bIsHole)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2077,1
    - Dst: OGRCircularString*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2077,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2085,1
    - Dst: OGRCircularString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2089,1
    - Dst: OGRCircularString*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2089,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2103,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2104,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2104,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2104,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2104,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2105,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2105,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2107,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2108,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2108,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2108,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2108,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2109,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2109,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2111,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2111,1
    - Dst: AlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - poCS
    - cx
    - cy
    - R
    argTypes:
    - OGRCircularString*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2122
      start: 2074
    functionDepth: 2
    functionLinenumber: 2074
    functionLinenumberEnd: 2122
    functionName: IsFullCircle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 3
    functionsReached:
    - OGRCircularString*::getNumPoints
    - sqrt
    - OGRCircularString*::getY
    - AlmostEqual
    - OGRCircularString*::getX
    - OGRCircularString*::get_IsClosed
    - OGRGeometryFactory::GetCurveParameters
    linkageType: ''
    returnType: bool
    signature: "bool IsFullCircle(OGRCircularString *poCS, double &cx, double &cy,\n
      \                        double &R)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2136,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2137,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2145,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2150,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2152,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2154,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2157,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2158,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2159,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2160,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2161,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2165,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2168,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2169,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2170,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2171,1
    - Dst: OGRDGNV8Layer::TranslateLabel
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2176,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2181,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2182,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2185,1
    - Dst: OdDgLine3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2187,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2189,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2191,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2192,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2193,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2194,1
    - Dst: OdDgLine3dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2195,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2196,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2197,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2198,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2199,1
    - Dst: OdDgLine3dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2200,1
    - Dst: OdDgLine2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2204,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2206,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2208,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2209,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2210,1
    - Dst: OdDgLine2dPtr::setStartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2211,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2212,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2213,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2214,1
    - Dst: OdDgLine2dPtr::setEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2215,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2220,1
    - Dst: OdDgLineString3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2222,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2224,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2226,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2228,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2229,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2230,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2231,1
    - Dst: OdDgLineString3dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2232,1
    - Dst: OdDgLineString2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2237,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2239,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2241,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2243,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2244,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2245,1
    - Dst: OdDgLineString2dPtr::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2246,1
    - Dst: OGRGeometry*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2253,1
    - Dst: IsFullCircle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2255,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2255,1
    - Dst: OdDgEllipse2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2257,1
    - Dst: OdDgEllipse2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2259,1
    - Dst: OdDgEllipse2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2260,1
    - Dst: OdDgEllipse2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2264,1
    - Dst: OGRCircularString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2266,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2266,1
    - Dst: OGRGeometryFactory::GetCurveParameters
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2269,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2270,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2270,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2270,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2270,1
    - Dst: OGRCircularString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2271,1
    - Dst: OGRCircularString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2271,1
    - Dst: OdDgArc2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2274,1
    - Dst: OdDgArc2dPtr::setPrimaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2276,1
    - Dst: OdDgArc2dPtr::setSecondaryAxis
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2277,1
    - Dst: OdDgArc2dPtr::setOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2281,1
    - Dst: OdDgArc2dPtr::setStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2282,1
    - Dst: OdDgArc2dPtr::setSweepAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2283,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2286,1
    - Dst: OdDgComplexString::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2289,1
    - Dst: OGRDGNV8Layer::AddToComplexCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2291,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2294,1
    - Dst: OGRGeometryFactory::forceToLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2297,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2297,1
    - Dst: OGRDGNV8Layer::CreateGraphicsElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2298,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2305,1
    - Dst: OdDgComplexString::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2306,1
    - Dst: OGRDGNV8Layer::AddToComplexCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2308,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2312,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2313,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2314,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2316,1
    - Dst: OdDgShape3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2318,1
    - Dst: OdDgShape2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2322,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2325,1
    - Dst: OGRDGNV8Layer::CreateShape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2327,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2327,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2331,1
    - Dst: OdDgCellHeader3d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2333,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2335,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2339,1
    - Dst: OGRCurvePolygon*::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2340,1
    - Dst: OGRDGNV8Layer::CreateShape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2343,1
    - Dst: OGRDGNV8Layer::AttachCommonAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2344,1
    - Dst: OdDgCellHeader3dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2345,1
    - Dst: OdDgCellHeader2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2350,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2352,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2356,1
    - Dst: OGRCurvePolygon*::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2357,1
    - Dst: OGRDGNV8Layer::CreateShape
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2360,1
    - Dst: OGRDGNV8Layer::AttachCommonAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2361,1
    - Dst: OdDgCellHeader2dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2362,1
    - Dst: OGRDGNV8Layer::AttachFillLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2365,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2368,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2370,1
    - Dst: OdDgCellHeader2d::createObject
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2371,1
    - Dst: OdDgCellHeader2dPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2373,1
    - Dst: OdDgCellHeader2dPtr::add
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2377,1
    - Dst: OGRDGNV8Layer::CreateGraphicsElement
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2377,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2383,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2385,1
    - Dst: OdDgGraphicsElementPtr::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2388,1
    - Dst: OGRDGNV8Layer::AttachCommonAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp:2389,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 141
    argCount: 2
    argNames:
    - poFeature
    - poGeom
    argTypes:
    - OGRFeature*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2392
      start: 2132
    functionDepth: 6
    functionLinenumber: 2132
    functionLinenumberEnd: 2392
    functionName: OGRDGNV8Layer::CreateGraphicsElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 3
    functionsReached:
    - OdDgArc2dPtr::setStartAngle
    - OGRPoint*::getY
    - OGRGeometry*::toCompoundCurve
    - OGRLineString*::getPoint
    - OGRDGNV8Layer::CreateShape
    - OGRLineString*::getNumPoints
    - OdDgEllipse2dPtr::setSecondaryAxis
    - OGRCurvePolygon*::getInteriorRingCurve
    - OGRCircularString*::getX
    - IsFullCircle
    - CPLError
    - OGRGeometry*::clone
    - OGRDGNV8Layer::AttachFillLinkage
    - OGRCircularString*::getNumPoints
    - OdDgCellHeader2dPtr::add
    - OGRPoint::getY
    - OGRDGNV8Layer::AddToComplexCurve
    - OGR_GT_HasZ
    - OdDgLine2d::createObject
    - OGRCurvePolygon*::getExteriorRingCurve
    - OdDgCellHeader2dPtr::isNull
    - OGRPoint::OGRPoint
    - OdDgArc2dPtr::setPrimaryAxis
    - OdDgLineString3d::createObject
    - OdDgArc2d::createObject
    - OdDgArc2dPtr::setOrigin
    - OdDgLine3dPtr::setEndPoint
    - OdDgCellHeader3dPtr::add
    - OGRGeometryFactory::GetCurveParameters
    - wkbFlatten
    - OdDgLine3d::createObject
    - OdDgLine2dPtr::setEndPoint
    - OdDgGraphicsElementPtr::isNull
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::getGeometryType
    - OGRCurvePolygon*::getNumInteriorRings
    - OdDgShape3d::createObject
    - OdDgShape2d::createObject
    - OdDgLine2dPtr::setStartPoint
    - OGRPoint*::getX
    - OdDgEllipse2dPtr::setPrimaryAxis
    - OGRGeometry*::toGeometryCollection
    - OGRPoint::getX
    - OdDgComplexString::createObject
    - strstr
    - OdDgEllipse2d::createObject
    - OdDgEllipse2dPtr::setOrigin
    - OdDgLine3dPtr::setStartPoint
    - OdDgCellHeader2d::createObject
    - OGRGeometry*::toLineString
    - OGRPoint*::getZ
    - OdDgLineString2d::createObject
    - OdDgArc2dPtr::setSweepAngle
    - OGRGeometryTypeToName
    - OGRCircularString*::getY
    - OdDgArc2dPtr::setSecondaryAxis
    - OGRDGNV8Layer::CreateGraphicsElement
    - OGRGeometry*::toCurvePolygon
    - OdDgLineString3dPtr::addVertex
    - OGRGeometry*::toCircularString
    - OdDgCellHeader3d::createObject
    - OGRPoint::getZ
    - OGRGeometryFactory::forceToLineString
    - OGRDGNV8Layer::AttachCommonAttributes
    - OGRGeometry*::toPoint
    - OdDgLineString2dPtr::addVertex
    - OGRDGNV8Layer::TranslateLabel
    linkageType: ''
    returnType: OdDgGraphicsElementPtr
    signature: OdDgGraphicsElementPtr OGRDGNV8Layer::CreateGraphicsElement(OGRFeature
      *poFeature, OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2401
    functionName: OGRDGNV8Layer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDGNV8Layer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:24,1
    - Dst: CPLODBCStatement*::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:24,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:36,1
    - Dst: OGRPGeoDataSource*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:40,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:40,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:43,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:45,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - poDSIn
    - poStmtIn
    argTypes:
    - OGRPGeoDataSource*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: OGRPGeoSelectLayer::OGRPGeoSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - OGRLayer*::GetSpatialRef
    - Reference
    - strlen
    - BuildFeatureDefn
    - CPLODBCStatement*::GetCommand
    - OGRPGeoDataSource*::GetLayerByName
    linkageType: ''
    returnType: void
    signature: "void OGRPGeoSelectLayer::OGRPGeoSelectLayer(OGRPGeoDataSource *poDSIn,\n
      \                                      CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:59,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: OGRPGeoSelectLayer::~OGRPGeoSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoSelectLayer::ClearStatement
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGeoSelectLayer::~OGRPGeoSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: OGRPGeoSelectLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoSelectLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoSelectLayer::ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: OGRPGeoSelectLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoSelectLayer::ResetStatement
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRPGeoSelectLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:97,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:101,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:102,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:102,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:103,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: OGRPGeoSelectLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - OGRPGeoSelectLayer::ClearStatement
    - CPLDebug
    - ExecuteSQL
    - Append
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGeoSelectLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:123,1
    - Dst: OGRPGeoLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: OGRPGeoSelectLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoSelectLayer::ClearStatement
    - OGRPGeoLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRPGeoSelectLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: OGRPGeoSelectLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoSelectLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: OGRPGeoSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRPGeoSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: OGRPGeoSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeoselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPGeoSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nODBCStatementFlags
    argTypes:
    - OGRPGeoDataSource*
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: OGRPGeoTableLayer::OGRPGeoTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPGeoTableLayer::OGRPGeoTableLayer(OGRPGeoDataSource *poDSIn,\n
      \                                    int nODBCStatementFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:40,1
    - Dst: OGRPGeoTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: OGRPGeoTableLayer::~OGRPGeoTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoTableLayer::ClearStatement
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGeoTableLayer::~OGRPGeoTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:55,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:57,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:59,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:63,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:65,1
    - Dst: LookupSRID
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:74,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:112,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:121,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:123,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:125,1
    - Dst: CPLODBCStatement::GetPrimaryKeys
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:132,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:132,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:134,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:134,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:136,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:138,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:140,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:144,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:148,1
    - Dst: CPLODBCStatement::GetColumns
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:158,1
    - Dst: CPLODBCSession*::GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:159,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:163,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:169,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:176,1
    - Dst: HasGdbItemsTable
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:180,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:183,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:185,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:186,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:187,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:189,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:192,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:192,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:193,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:199,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:199,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:200,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:202,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:203,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:207,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:213,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:214,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:216,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:221,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:229,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:229,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 10
    argNames:
    - pszTableName
    - pszGeomCol
    - nShapeType
    - dfExtentLeft
    - dfExtentRight
    - dfExtentBottom
    - dfExtentTop
    - nSRID
    - bHasZ
    - bHasM
    argTypes:
    - char*
    - char*
    - int
    - double
    - double
    - double
    - double
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 237
    functionName: OGRPGeoTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - wkbSetZ
    - CPLDebug
    - CPLString
    - CPLODBCStatement::GetPrimaryKeys
    - CPLXMLTreeCloser::get
    - CPLError
    - CPLGetXMLValue
    - GetFieldDefn
    - CPLString::empty
    - CPLStrdup
    - SetGeomType
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - CPLODBCSession*::GetLastError
    - CPLString::c_str
    - HasGdbItemsTable
    - CPLODBCStatement::ExecuteSQL
    - wkbSetM
    - LookupSRID
    - GetSession
    - GetFieldCount
    - CPLParseXMLString
    - CPL_IGNORE_RET_VAL
    - strstr
    - BuildFeatureDefn
    - SetDescription
    - CPLFree
    - CPLODBCStatement::GetColumns
    - CPLGetXMLNode
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRPGeoTableLayer::Initialize(const char *pszTableName,\n                                     const
      char *pszGeomCol, int nShapeType,\n                                     double
      dfExtentLeft, double dfExtentRight,\n                                     double
      dfExtentBottom, double dfExtentTop,\n                                     int
      nSRID, int bHasZ, int bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: OGRPGeoTableLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoTableLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoTableLayer::ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: OGRPGeoTableLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoTableLayer::ResetStatement
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRPGeoTableLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:273,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:277,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:277,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:278,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:279,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:279,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:281,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: OGRPGeoTableLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - OGRPGeoTableLayer::ClearStatement
    - Appendf
    - ExecuteSQL
    - Append
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGeoTableLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:300,1
    - Dst: OGRPGeoLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: OGRPGeoTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoTableLayer::ClearStatement
    - OGRPGeoLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRPGeoTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:312,1
    - Dst: OGRPGeoTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:314,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:318,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:318,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:319,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:320,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:320,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:321,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:323,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 331
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 331
    functionName: OGRPGeoTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - GetNextRawFeature
    - OGRPGeoTableLayer::ClearStatement
    - Appendf
    - ExecuteSQL
    - Append
    - GetName
    - OGRPGeoLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:340,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:341,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:345,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:348,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:349,1
    - Dst: OGRPGeoTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 354
    functionName: OGRPGeoTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRPGeoTableLayer::ClearStatement
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGeoTableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:366,1
    - Dst: CountStarWorking
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:367,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:369,1
    - Dst: OGRPGeoLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: OGRPGeoTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CountStarWorking
    - OGRPGeoLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRPGeoTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CountStarWorking
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:388,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:389,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:391,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:392,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:393,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:393,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:396,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:398,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:398,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:400,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:402,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:402,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:403,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:406,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 407
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 407
    functionName: OGRPGeoTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - CPLODBCStatement::GetColData
    - GetSession
    - CPLODBCStatement::Append
    - CPLAtoGIntBig
    - CPLODBCStatement::Fetch
    - CPLODBCStatement::Appendf
    - CountStarWorking
    - CPLODBCStatement::GetCommand
    - CPLError
    - GetName
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPGeoTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: OGRPGeoTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGeoTableLayer::IGetExtent(int /* iGeomField */,\n                                     OGREnvelope
      *psExtent, bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached:
    - OGRPGeoLayer
    linkageType: ''
    returnType: class OGRPGeoLayer
    signature: class OGRPGeoLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: '&GetXMLDefinition()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetXMLDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: '&GetXMLDocumentation()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetXMLDocumentation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: OGRPGeoDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: OGRPGeoDataSource::GetSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLODBCSession
    signature: CPLODBCSession *GetSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: OGRPGeoDataSource::HasGdbItemsTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasGdbItemsTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:24,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: OGRPGeoDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRPGeoDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:42,1
    - Dst: CPLODBCDriverInstaller::InstallMdbToolsDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:47,1
    - Dst: OGRPGeoDataSource::OGRPGeoDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:51,1
    - Dst: OGRPGeoDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: OGRPGeoDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoDataSource::OGRPGeoDataSource
    - OGRPGeoDataSource*::Open
    - CPLODBCDriverInstaller::InstallMdbToolsDriver
    - OGRPGeoDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPGeoDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:69,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:72,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:77,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:91,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 106
    functionName: RegisterOGRPGeo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPGeo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: OGRPGeoLayer::OGRPGeoLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoLayer::OGRPGeoLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:44,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:45,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:45,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:60,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:61,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:62,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: OGRPGeoLayer::~OGRPGeoLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRPGeoLayer::~OGRPGeoLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:82,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:83,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:83,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:86,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:87,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:89,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:93,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:95,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:96,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:96,1
    - Dst: CPLODBCStatement*::GetColSize
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:96,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:99,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:99,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:103,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:103,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:105,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:105,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:109,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:109,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:111,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:111,1
    - Dst: CPLODBCStatement*::GetColType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:115,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:119,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:125,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:129,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:130,1
    - Dst: CPLODBCStatement*::GetColPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:130,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:136,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:137,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:141,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:145,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:150,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:157,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:158,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:162,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:164,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - pszLayerName
    - poStmtIn
    argTypes:
    - char*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 167
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 167
    functionName: OGRPGeoLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - Reference
    - CPLODBCStatement*::GetColName
    - CPLStrdup
    - SetGeomType
    - CPLODBCStatement*::GetColPrecision
    - static_cast<short>
    - CPLODBCStatement*::GetColSize
    - AddFieldDefn
    - CPLMalloc
    - GetName
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - SetDescription
    - CPLODBCStatement*::GetColType
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - EQUAL
    - max
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRPGeoLayer::BuildFeatureDefn(const char *pszLayerName,\n
      \                                     CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OGRPGeoLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGeoLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:189,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:194,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:194,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: OGRPGeoLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRPGeoLayer::GetNextRawFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:211,1
    - Dst: Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:217,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:228,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:230,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:231,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:232,1
    - Dst: GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:232,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:232,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:234,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:242,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:245,1
    - Dst: Flags
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:249,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:256,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:258,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:262,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:270,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:271,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:272,1
    - Dst: GetColDataLength
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:272,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:275,1
    - Dst: GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:285,1
    - Dst: OGRCreateFromShapeBin
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:291,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:294,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:297,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:308,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:308,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:310,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:311,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:311,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:313,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 319
    functionName: OGRPGeoLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - GetColDataLength
    - atoi
    - CPLDebug
    - GetFieldDefn
    - std::isnan
    - GetColData
    - wkbFlatten
    - OGRFeature*::SetGeometryDirectly
    - OGRGeometry*::getGeometryType
    - GetColId
    - OGRFeature*::GetFID
    - GetFieldCount
    - OGRGeometryFactory::forceTo
    - Fetch
    - OGR_GT_GetCollection
    - OGRFeature::OGRFeature
    - OGRCreateFromShapeBin
    - Flags
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::SetField
    - GetStatement
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: OGRPGeoLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: OGRPGeoLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGeoLayer::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:357,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:359,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:361,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:363,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:364,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:364,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:368,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:370,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:371,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:383,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:390,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:391,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - nSRID
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 402
    functionName: OGRPGeoLayer::LookupSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRSpatialReference::OGRSpatialReference
    - importFromWkt
    - GetSession
    - CPLODBCStatement::Fetch
    - CPLDebug
    - CPLODBCStatement::Appendf
    - SetAxisMappingStrategy
    - CPLODBCStatement::GetCommand
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRPGeoLayer::LookupSRID(int nSRID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: OGRPGeoLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPGeoLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 428
    functionName: OGRPGeoLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRPGeoLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: OGRPGeoDataSource::OGRPGeoDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoDataSource::OGRPGeoDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: OGRPGeoDataSource::~OGRPGeoDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGeoDataSource::~OGRPGeoDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: CheckDSNStringTemplate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckDSNStringTemplate(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:89,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:98,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:101,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:101,1
    - Dst: EstablishSession
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:102,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:104,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:107,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:107,1
    - Dst: CheckDSNStringTemplate
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:118,1
    - Dst: ConnectToMsAccess
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:122,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:135,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:139,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:141,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:144,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:148,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:153,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:153,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:154,1
    - Dst: CPLODBCStatement::GetTables
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:165,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:167,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:169,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:169,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:170,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:171,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:178,1
    - Dst: OGRPGeoDataSource::IsPrivateLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:179,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:181,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:188,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:188,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:191,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:194,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:197,1
    - Dst: OGRPGeoTableLayer::OGRPGeoTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:202,1
    - Dst: OGRPGeoTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:204,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:206,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:207,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:208,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:209,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:210,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:211,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:212,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:213,1
    - Dst: std::unordered_set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:221,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:221,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:224,1
    - Dst: std::unordered_set::find
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:230,1
    - Dst: std::unordered_set::end
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:231,1
    - Dst: OGRPGeoTableLayer::OGRPGeoTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:238,1
    - Dst: OGRPGeoTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:240,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:240,1
    - Dst: static_cast<OGRPGeoLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:256,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:257,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:266,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:267,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:269,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:272,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:272,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:273,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:274,1
    - Dst: ParseXMLFieldDomainDef
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:276,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:278,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:279,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:282,1
    - Dst: ParseXMLRelationshipDef
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:286,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:289,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:291,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 299
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 299
    functionName: OGRPGeoDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoDataSource::IsPrivateLayerName
    - std::unordered_set::insert
    - atoi
    - ConnectToMsAccess
    - std::vector::size
    - CSLAddString
    - auto::GetName
    - std::unordered_set::end
    - CPLDebug
    - std::vector::emplace_back
    - CheckDSNStringTemplate
    - GetLastError
    - CPLString
    - CPLError
    - OGRPGeoTableLayer::OGRPGeoTableLayer
    - EstablishSession
    - std::string::c_str
    - CPLString::empty
    - static_cast<OGRPGeoLayer **>
    - insert
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - CPLString::c_str
    - CPLRealloc
    - std::move
    - std::unordered_set::find
    - CPLODBCStatement::ExecuteSQL
    - CPLAtof
    - STARTS_WITH_CI
    - ParseXMLFieldDomainDef
    - CPLAssert
    - strstr
    - CPLCalloc
    - std::vector::resize
    - ParseXMLRelationshipDef
    - OGRPGeoTableLayer*::Initialize
    - CSLDestroy
    - EQUAL
    - CPLODBCStatement::GetTables
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: int
    signature: int OGRPGeoDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: OGRPGeoDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGeoDataSource::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: OGRPGeoDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPGeoDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:332,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:337,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:338,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:338,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:343,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:343,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:344,1
    - Dst: OGRPGeoTableLayer::OGRPGeoTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:348,1
    - Dst: std::unique_ptr::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:350,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:362,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:362,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: OGRPGeoDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - end
    - back
    - find
    - get
    - EQUAL
    - std::unique_ptr::Initialize
    - std::move
    - CPLString
    - OGRPGeoTableLayer::OGRPGeoTableLayer
    - GetName
    - emplace_back
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPGeoDataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:374,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:377,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:378,1
    - Dst: CPLString::endsWith
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:380,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:382,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 388
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 388
    functionName: OGRPGeoDataSource::IsPrivateLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLString::endsWith
    - CPLString::size
    - CPLString
    - CPLString::substr
    linkageType: ''
    returnType: bool
    signature: bool OGRPGeoDataSource::IsPrivateLayerName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:399,1
    - Dst: OGRPGeoDataSource::IsPrivateLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: OGRPGeoDataSource::IsLayerPrivate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGeoDataSource::IsPrivateLayerName
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool OGRPGeoDataSource::IsLayerPrivate(int iLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: OGRPGeoSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: OGRPGeoSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: OGRPGeoSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:442,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:443,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:445,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:445,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:446,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszLayerName
    - pszValIn
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: OGRPGeoSingleFeatureLayer::OGRPGeoSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRPGeoSingleFeatureLayer::OGRPGeoSingleFeatureLayer(const char
      *pszLayerName,\n                                                     const char
      *pszValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: OGRPGeoSingleFeatureLayer::~OGRPGeoSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRPGeoSingleFeatureLayer::~OGRPGeoSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:471,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:473,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 476
    functionName: OGRPGeoSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGeoSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:491,1
    - Dst: cpl::down_cast<OGRPGeoTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:493,1
    - Dst: OGRPGeoDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:494,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:494,1
    - Dst: OGRPGeoTableLayer*::GetXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:498,1
    - Dst: OGRPGeoSingleFeatureLayer::OGRPGeoSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:497,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:508,1
    - Dst: cpl::down_cast<OGRPGeoTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:510,1
    - Dst: OGRPGeoDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:511,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:511,1
    - Dst: OGRPGeoTableLayer*::GetXMLDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:515,1
    - Dst: OGRPGeoSingleFeatureLayer::OGRPGeoSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:514,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:525,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:526,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:533,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:535,1
    - Dst: CPLODBCStatement*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:538,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:538,1
    - Dst: CPLODBCStatement*::GetColCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:546,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:549,1
    - Dst: OGRPGeoSelectLayer::OGRPGeoSelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:557,1
    - Dst: OGRPGeoSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 563
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 563
    functionName: OGRPGeoDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - OGRPGeoTableLayer*::GetXMLDefinition
    - STARTS_WITH_CI
    - OGRPGeoSingleFeatureLayer::OGRPGeoSingleFeatureLayer
    - cpl::down_cast<OGRPGeoTableLayer *>
    - CPLErrorReset
    - OGRPGeoSelectLayer::OGRPGeoSelectLayer
    - OGRPGeoSelectLayer*::SetSpatialFilter
    - CPLODBCStatement*::ExecuteSQL
    - OGRPGeoDataSource::GetLayerByName
    - IsGenericSQLDialect
    - OGRPGeoTableLayer*::GetXMLDocumentation
    - GDALDataset::ExecuteSQL
    - strlen
    - GetLastError
    - CPLError
    - CPLODBCStatement*::GetColCount
    - CPLODBCStatement*::Append
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRPGeoDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                       OGRGeometry *poSpatialFilter,\n                                        const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:574,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:574,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:575,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:576,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - CSLConstList papszOptions
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 581
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 581
    functionName: OGRPGeoDataSource::GetRelationshipNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - std::vector::emplace_back
    - begin
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> OGRPGeoDataSource::GetRelationshipNames(\n
      \   CPL_UNUSED CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:591,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:592,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 596
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 596
    functionName: OGRPGeoDataSource::GetRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::get
    linkageType: ''
    returnType: GDALRelationship
    signature: 'GDALRelationship *

      OGRPGeoDataSource::GetRelationship(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 606
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 606
    functionName: OGRPGeoDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGeoDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:630,1
    - Dst: fileno
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:630,1
    - Dst: dup2
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:633,1
    - Dst: fileno
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:633,1
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:635,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:642,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:643,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:643,1
    - Dst: dup2
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:651,1
    - Dst: fileno
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:651,1
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 658
    functionName: OGRPGeoDataSource::CountStarWorking
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - close
    - dup2
    - fileno
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - dup
    linkageType: ''
    returnType: bool
    signature: bool OGRPGeoDataSource::CountStarWorking() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:38,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:54,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:54,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:55,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:59,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:60,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:61,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:68,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:71,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:73,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:80,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:84,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:85,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:86,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:107,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:123,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:128,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:129,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:129,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:139,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:148,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:161,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:175,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:182,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:193,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 90
    argCount: 3
    argNames:
    - pszRawInput
    - pszEncoding
    - bIsMText
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 211
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 211
    functionName: ACTextUnescape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 3
    functionsReached:
    - sscanf
    - STARTS_WITH_CI
    - static_cast<char>
    - static_cast<unsigned char>
    - CPLToupper
    - CPLString::assign
    - strchr
    - CPLString::c_str
    - CPLStrnlen
    - CPLFree
    - CPLString::Recode
    linkageType: ''
    returnType: CPLString
    signature: "CPLString ACTextUnescape(const char *pszRawInput, const char *pszEncoding,\n
      \                        bool bIsMText)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 480
    functionName: ACGetColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ACGetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: ACGetKnownDimStyleCodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *ACGetKnownDimStyleCodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - iDimStyleCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 537
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 537
    functionName: ACGetDimStylePropertyName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ACGetDimStylePropertyName(const int iDimStyleCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - iDimStyleCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 581
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 581
    functionName: ACGetDimStylePropertyDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ACGetDimStylePropertyDefault(const int iDimStyleCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:597,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:600,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:602,1
    - Dst: CPLString::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:606,1
    - Dst: CPLString::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:607,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:607,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:623,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:625,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:626,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:640,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:642,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:653,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:655,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:657,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:671,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:674,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:680,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:681,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:682,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:683,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:685,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:686,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:687,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:688,1
    - Dst: CSLSetNameValueSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:692,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:704,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp:706,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 4
    argNames:
    - dfAngle
    - dfScaleX
    - dfScaleY
    - poFeature
    argTypes:
    - double
    - double
    - double
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 707
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 707
    functionName: ACAdjustText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_autocad_services.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - cos
    - CSLSetNameValueSeparator
    - OGRFeature*::SetStyleString
    - OGRFeature*::GetStyleString
    - CSLDestroy
    - CPLString::erase
    - CPLString::size
    - CPLsnprintf
    - sin
    - STARTS_WITH
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: "void ACAdjustText(const double dfAngle, const double dfScaleX,\n                  const
      double dfScaleY, OGRFeature *const poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - n
    - c
    - x
    argTypes:
    - int
    - int
    - double[]
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: knotu
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void knotu(int n, int c, double x[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - n
    - c
    - x
    argTypes:
    - int
    - int
    - double[]
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: knot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void knot(int n, int c, double x[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - c
    - t
    - npts
    - x
    - N
    argTypes:
    - int
    - double
    - int
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 201
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 201
    functionName: basis
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basis(int c, double t, int npts, double x[], double N[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:217,1
    - Dst: basis
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - c
    - t
    - npts
    - x
    - h
    - r
    argTypes:
    - int
    - double
    - int
    - double[]
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 242
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 242
    functionName: rbasis
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 0
    functionsReached:
    - basis
    - std::vector::resize
    linkageType: ''
    returnType: void
    signature: "void rbasis(int c, double t, int npts, double x[], double h[],\n                   double
      r[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:286,1
    - Dst: knot
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:291,1
    - Dst: rbasis
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - npts
    - k
    - p1
    - b
    - h
    - bCalculateKnots
    - knots
    - p
    argTypes:
    - int
    - int
    - int
    - double[]
    - double[]
    - bool
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 327
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 327
    functionName: rbspline2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 0
    functionsReached:
    - rbasis
    - knot
    - std::vector::resize
    linkageType: ''
    returnType: void
    signature: "void rbspline2(int npts, int k, int p1, double b[], double h[],\n
      \              bool bCalculateKnots, double knots[], double p[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rbspline2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - npts
    - k
    - p1
    - b
    - h
    - p
    argTypes:
    - int
    - int
    - int
    - double[]
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: rbspline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 1
    functionsReached:
    - rbspline2
    linkageType: ''
    returnType: void
    signature: void rbspline(int npts, int k, int p1, double b[], double h[], double
      p[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:419,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:420,1
    - Dst: knotu
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:436,1
    - Dst: rbasis
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - npts
    - k
    - p1
    - b
    - h
    - p
    argTypes:
    - int
    - int
    - int
    - double[]
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 472
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 472
    functionName: rbsplinu
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
    functionUses: 1
    functionsReached:
    - rbasis
    - std::vector::resize
    - knotu
    linkageType: ''
    returnType: void
    signature: void rbsplinu(int npts, int k, int p1, double b[], double h[], double
      p[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: OGRDXFWriterDS::OGRDXFWriterDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterDS::OGRDXFWriterDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:55,1
    - Dst: IsMarkedSuppressOnClose
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:57,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:59,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:60,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:61,1
    - Dst: OGRDXFWriterDS::TransferUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:65,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:74,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:75,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:78,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:80,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:80,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:81,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:89,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:90,1
    - Dst: OGRDXFWriterDS::TransferUpdateTrailer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:99,1
    - Dst: OGRDXFWriterDS::FixupHANDSEED
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:107,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:115,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:125,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:128,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:128,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:130,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 131
    functionName: OGRDXFWriterDS::~OGRDXFWriterDS()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    - OGRDXFWriterDS::FixupHANDSEED
    - c_str
    - IsMarkedSuppressOnClose
    - VSIFCloseL
    - VSIUnlink
    - CSLDestroy
    - OGRDXFWriterDS::TransferUpdateTrailer
    - CPLDebug
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    - OGRDXFWriterDS::TransferUpdateHeader
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterDS::~OGRDXFWriterDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: OGRDXFWriterDS::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterDS::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: OGRDXFWriterDS::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRDXFWriterDS::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: OGRDXFWriterDS::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterDS::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:184,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:185,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:204,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:205,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:205,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:207,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:208,1
    - Dst: OGRDXFGetHEADER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:208,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:209,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:209,1
    - Dst: OGRDXFGetHEADER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:213,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:225,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:226,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:247,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:249,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:249,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:250,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:251,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:252,1
    - Dst: OGRDXFGetTRAILER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:252,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:253,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:253,1
    - Dst: OGRDXFGetTRAILER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:253,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:270,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:271,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:271,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:274,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:274,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:275,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:276,1
    - Dst: OGRDXFWriterDS::ScanForEntities
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:281,1
    - Dst: OGRDXFWriterDS::ScanForEntities
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:282,1
    - Dst: OGRDXFWriterDS::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:288,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:298,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:300,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:313,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 319
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 319
    functionName: OGRDXFWriterDS::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - CPLError
    - CSLFetchNameValue
    - OGRDXFWriterDS::ScanForEntities
    - OGRDXFGetTRAILER
    - OGRDXFGetHEADER
    - strlen
    - OGRDXFWriterDS::Open
    - c_str
    - static_cast<int>
    - const_cast<GByte *>
    - VSIFOpenL
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - reinterpret_cast<const GByte *>
    - VSIGetLastErrorMsg
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterDS::Open(const char *pszFilename, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:332,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:336,1
    - Dst: OGRDXFBlocksWriterLayer::OGRDXFBlocksWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:338,1
    - Dst: OGRDXFWriterLayer::OGRDXFWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - pszName
    - poGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 353
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 353
    functionName: OGRDXFWriterDS::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFBlocksWriterLayer::OGRDXFBlocksWriterLayer
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRDXFWriterLayer::OGRDXFWriterLayer
    - CPLError
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRDXFWriterDS::ICreateLayer(const char *pszName,\n                                       const
      OGRGeomFieldDefn *poGeomFieldDefn,\n                                       CSLConstList
      /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:364,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:366,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - nCode
    - pszLine
    argTypes:
    - VSILFILE*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 374
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 374
    functionName: WriteValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - VSIFWriteL
    - snprintf
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool WriteValue(VSILFILE *fp, int nCode, const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:385,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:387,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - nCode
    - dfValue
    argTypes:
    - VSILFILE*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 395
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 395
    functionName: WriteValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLsnprintf
    - VSIFWriteL
    linkageType: ''
    returnType: bool
    signature: bool WriteValue(VSILFILE *fp, int nCode, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReadPointer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:404,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:408,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:409,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:410,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:411,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:431,1
    - Dst: OGRDXFWriterDS::WriteNewLayerDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:437,1
    - Dst: OGRDXFWriterDS::WriteNewBlockRecords
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:445,1
    - Dst: OGRDXFWriterDS::WriteNewLineTypeRecords
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:453,1
    - Dst: OGRDXFWriterDS::WriteNewTextStyleRecords
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:461,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:470,1
    - Dst: OGRDXFWriterDS::WriteNewBlockDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:473,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:479,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:481,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:484,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:487,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:489,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:489,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:493,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:497,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:499,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:502,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:505,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:508,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:520,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:522,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:525,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:528,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:531,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:543,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:546,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:548,1
    - Dst: IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:552,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:557,1
    - Dst: IsAlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:558,1
    - Dst: IsAlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:562,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:562,1
    - Dst: IsAlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:566,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:567,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:573,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:599,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:607,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:611,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:617,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:617,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:626,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:629,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:631,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:648,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:656,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:659,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:663,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:663,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:672,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:680,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:682,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:686,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:693,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:695,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:696,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:705,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:706,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:710,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:711,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:713,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:718,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:720,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:721,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:726,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 163
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 731
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 731
    functionName: OGRDXFWriterDS::TransferUpdateHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFWriterDS::WriteNewBlockRecords
    - IsAlmostEqual
    - UnreadValue
    - VSIFTellL
    - OGRDXFWriterDS::WriteNewTextStyleRecords
    - CPLError
    - std::fabs
    - ReadValue
    - strlen
    - ResetReadPointer
    - resize
    - CPLAtof
    - OGRDXFWriterDS::WriteNewBlockDefinitions
    - c_str
    - CPLSPrintf
    - memmove
    - OGRDXFWriterDS::WriteNewLineTypeRecords
    - WriteValue
    - std::isfinite
    - empty
    - IsProjected
    - OGRDXFWriterDS::WriteNewLayerDefinitions
    - EQUAL
    - push_back
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::TransferUpdateHeader(VSILFILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:742,1
    - Dst: OGRDXFReader::OGRDXFReader
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:747,1
    - Dst: OGRDXFReader::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:748,1
    - Dst: OGRDXFReader::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:756,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:758,1
    - Dst: OGRDXFReader::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:760,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:761,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:768,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:770,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:778,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:779,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:780,1
    - Dst: OGRDXFReader::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:786,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:788,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:795,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 798
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 798
    functionName: OGRDXFWriterDS::TransferUpdateTrailer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - WriteValue
    - c_str
    - OGRDXFReader::ReadValue
    - VSIFCloseL
    - OGRDXFReader::Initialize
    - EQUAL
    - VSIFOpenL
    - OGRDXFReader::OGRDXFReader
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::TransferUpdateTrailer(VSILFILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:816,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:816,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:819,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:819,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:833,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:834,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:846,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:847,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:847,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:847,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:849,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 853
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 853
    functionName: OGRDXFWriterDS::FixupHANDSEED
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - end
    - c_str
    - CPLString::Printf
    - VSIFSeekL
    - strncpy
    - CPLString::c_str
    - CPLString::size
    - begin
    - VSIFWriteL
    - VSIFReadL
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::FixupHANDSEED(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:868,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:872,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:875,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:881,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:889,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:898,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 904
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 904
    functionName: OGRDXFWriterDS::WriteNewLayerDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - size
    - WriteValue
    - EQUAL
    - OGRDXFWriterDS::WriteEntityID
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::WriteNewLayerDefinitions(VSILFILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNewLineTypeMap
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:917,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:922,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:924,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:925,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:926,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:927,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:928,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:929,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:930,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:931,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:931,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:931,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:935,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:936,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:940,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 946
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 946
    functionName: OGRDXFWriterDS::WriteNewLineTypeRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - WriteValue
    - static_cast<int>
    - GetNewLineTypeMap
    - second::size
    - fabs
    - OGRDXFWriterDS::WriteEntityID
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::WriteNewLineTypeRecords(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNewTextStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:958,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:963,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:965,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:966,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:967,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:968,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:969,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:970,1
    - Dst: second::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:972,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:973,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:975,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:977,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:978,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:979,1
    - Dst: second::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:981,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:982,1
    - Dst: second::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:985,1
    - Dst: second::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:987,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:989,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 994
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 994
    functionName: OGRDXFWriterDS::WriteNewTextStyleRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - WriteValue
    - GetNewTextStyleMap
    - second::count
    - CPLString
    - OGRDXFWriterDS::WriteEntityID
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::WriteNewTextStyleRecords(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: apoBlocks::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1009,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1018,1
    - Dst: LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1020,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1028,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1028,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1031,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1031,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1038,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1040,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1041,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1042,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1043,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1043,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1048
    functionName: OGRDXFWriterDS::WriteNewBlockRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - WriteValue
    - LookupBlock
    - OGRFeature*::GetFieldAsString
    - std::set::insert
    - std::set::find
    - std::move
    - OGRDXFWriterDS::WriteEntityID
    - apoBlocks::size
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::WriteNewBlockRecords(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFWriterLayer::OGRDXFWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1058,1
    - Dst: ResetFP
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1059,1
    - Dst: apoBlocks::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1065,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1074,1
    - Dst: LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1076,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1084,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1085,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1087,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1089,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1090,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1091,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1091,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1093,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1093,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1095,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1096,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1097,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1097,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1098,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1101,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1102,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1103,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1105,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1105,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1106,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1113,1
    - Dst: apoBlocks::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1121,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1122,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1122,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1128,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1138,1
    - Dst: OGRDXFWriterDS::WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1139,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1140,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1141,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1141,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1143,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1143,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1145,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1054
    functionDepth: 3
    functionLinenumber: 1054
    functionLinenumberEnd: 1150
    functionName: OGRDXFWriterDS::WriteNewBlockDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - WriteValue
    - ResetFP
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldAsString
    - EQUAL
    - strlen
    - OGRDXFWriterLayer::OGRDXFWriterLayer
    - OGRDXFWriterDS::WriteEntityID
    - apoBlocks::size
    - CreateFeature
    - LookupBlock
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::WriteNewBlockDefinitions(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1167,1
    - Dst: OGRDXFReader::OGRDXFReader
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1172,1
    - Dst: OGRDXFReader::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1173,1
    - Dst: OGRDXFReader::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1184,1
    - Dst: OGRDXFWriterDS::CheckEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1188,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1189,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1190,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1192,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1195,1
    - Dst: OGRDXFReader::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1197,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1198,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1200,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1205,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - pszFilename
    - pszTarget
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1206
    functionName: OGRDXFWriterDS::ScanForEntities
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFReader::ReadValue
    - VSIFCloseL
    - OGRDXFReader::Initialize
    - OGRDXFWriterDS::CheckEntityID
    - insert
    - CPLDebug
    - EQUAL
    - VSIFOpenL
    - OGRDXFReader::OGRDXFReader
    - CPLString::c_str
    - std::move
    linkageType: ''
    returnType: void
    signature: "void OGRDXFWriterDS::ScanForEntities(const char *pszFilename,\n                                     const
      char *pszTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1219,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszEntityID
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: OGRDXFWriterDS::CheckEntityID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFWriterDS::CheckEntityID(const char *pszEntityID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1237,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1237,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1240,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1240,1
    - Dst: OGRDXFWriterDS::CheckEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1241,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1243,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1244,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1246,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1253,1
    - Dst: OGRDXFWriterDS::CheckEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1254,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1256,1
    - Dst: WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - fpIn
    - nAssignedFID
    - nPreferredFID
    argTypes:
    - VSILFILE*
    - unsigned int
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1262
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1262
    functionName: OGRDXFWriterDS::WriteEntityID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 5
    functionsReached:
    - static_cast<GIntBig>
    - simple_max
    - WriteValue
    - static_cast<unsigned int>
    - CPLString::Printf
    - OGRDXFWriterDS::CheckEntityID
    - insert
    linkageType: ''
    returnType: bool
    signature: "bool OGRDXFWriterDS::WriteEntityID(VSILFILE *fpIn, unsigned int &nAssignedFID,\n
      \                                  GIntBig nPreferredFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1271
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1271
    functionName: OGRDXFWriterDS::UpdateExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterds.cpp
    functionUses: 0
    functionsReached:
    - Merge
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterDS::UpdateExtent(OGREnvelope *psEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:21,1
    - Dst: OGRDXFBlocksLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:25,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:28,1
    - Dst: ShouldIncludeRawCodeValues
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:30,1
    - Dst: In3DExtensibleMode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:32,1
    - Dst: OGRDXFDataSource::AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRDXFDataSource*
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: OGRDXFBlocksLayer::OGRDXFBlocksLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFDataSource::AddStandardFields
    - ShouldIncludeRawCodeValues
    - OGRFeatureDefn::OGRFeatureDefn
    - In3DExtensibleMode
    - Reference
    - InlineBlocks
    - OGRDXFBlocksLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRDXFBlocksLayer::OGRDXFBlocksLayer(OGRDXFDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:46,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:47,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:51,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:53,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:55,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: OGRDXFBlocksLayer::~OGRDXFBlocksLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    - CPLDebug
    - pop
    - Release
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRDXFBlocksLayer::~OGRDXFBlocksLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:68,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:70,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:71,1
    - Dst: GetBlockMap
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: OGRDXFBlocksLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 1
    functionsReached:
    - GetBlockMap
    - pop
    - empty
    - front
    linkageType: ''
    returnType: void
    signature: void OGRDXFBlocksLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:89,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:91,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:92,1
    - Dst: OGRDXFFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:94,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:95,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:95,1
    - Dst: OGRDXFFeature*::GetAttributeTag
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:96,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:98,1
    - Dst: OGRDXFFeature*::GetAttributeTag
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:98,1
    - Dst: GetBlockMap
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:108,1
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:110,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:114,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:115,1
    - Dst: OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:115,1
    - Dst: ShouldMergeBlockGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:117,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:124,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:131,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:132,1
    - Dst: OGRDXFFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:136,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:137,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:137,1
    - Dst: OGRDXFFeature*::GetAttributeTag
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:138,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:140,1
    - Dst: OGRDXFFeature*::GetAttributeTag
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 149
    functionName: OGRDXFBlocksLayer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFInsertTransformer
    - OGRDXFFeature*::GetAttributeTag
    - c_str
    - ShouldMergeBlockGeometries
    - empty
    - front
    - GetBlockMap
    - OGRDXFFeature*::SetField
    - CPLGetErrorCounter
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFFeature::OGRDXFFeature
    - pop
    - OGRDXFFeature*::SetFID
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFBlocksLayer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFBlocksLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:160,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:166,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:166,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: OGRDXFBlocksLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFBlocksLayer::GetNextUnfilteredFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDXFBlocksLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: OGRDXFBlocksLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFBlocksLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:24,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:26,1
    - Dst: OGRDXFDataSource::AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: OGRDXFBlocksWriterLayer::OGRDXFBlocksWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFDataSource::AddStandardFields
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    linkageType: ''
    returnType: void
    signature: void OGRDXFBlocksWriterLayer::OGRDXFBlocksWriterLayer(OGRDXFWriterDS
      * /* poDS */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:38,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: OGRDXFBlocksWriterLayer::~OGRDXFBlocksWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRDXFBlocksWriterLayer::~OGRDXFBlocksWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: OGRDXFBlocksWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFBlocksWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:65,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:65,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:68,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: OGRDXFBlocksWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetFieldIndex
    - OGRFieldDefn*::GetNameRef
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDXFBlocksWriterLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                           int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:86,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: OGRDXFBlocksWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - push_back
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFBlocksWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:98,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszBlockName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: OGRDXFBlocksWriterLayer::FindBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfblockswriterlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - strcmp
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDXFBlocksWriterLayer::FindBlock(const char *pszBlockName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: PointDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double PointDist(double x1, double y1, double x2, double y2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: PointDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: "double PointDist(double x1, double y1, double z1, double x2,\n                               double
      y2, double z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:52,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:54,1
    - Dst: PopulateDefaultDimStyleProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:77,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:79,1
    - Dst: LookupDimStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:86,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:93,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:97,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:105,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:109,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:117,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:121,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:126,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:130,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:134,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:138,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:144,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:148,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:152,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:160,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:174,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:182,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:188,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:191,1
    - Dst: OGRDXFLayer::InsertArrowhead
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:218,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:240,1
    - Dst: InterpolateSpline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:243,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:256,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:258,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:259,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:259,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:271,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:271,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:275,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:277,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 280
    functionName: OGRDXFLayer::TranslateLEADER
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - UnreadValue
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - OGRDXFLayer::InsertArrowhead
    - ReadValue
    - InterpolateSpline
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFLayer::PrepareLineStyle
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - CPLAtof
    - DXFTriple
    - OGRDXFFeature::OGRDXFFeature
    - PopulateDefaultDimStyleProperties
    - LookupDimStyle
    - OGRDXFFeature*::SetGeometryDirectly
    - EQUAL
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateLEADER()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - dfX
    - dfY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: DXFMLEADERVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - DXFTriple
    linkageType: ''
    returnType: void
    signature: void DXFMLEADERVertex(double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:321,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:346,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:391,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:411,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:422,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:432,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:436,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:440,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:458,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:462,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:472,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:476,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:480,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:484,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:488,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:499,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:503,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:507,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:511,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:515,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:525,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:525,1
    - Dst: DXFMLEADERLeader
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:526,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:534,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:538,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:542,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:546,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:550,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:554,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:558,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:562,1
    - Dst: DXFMLEADERLeader::aoDoglegBreaks::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:563,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:563,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:564,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:565,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:569,1
    - Dst: DXFMLEADERLeader::aaoLeaderLines::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:579,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:580,1
    - Dst: std::vector<DXFMLEADERVertex>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:581,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:585,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:589,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:590,1
    - Dst: DXFMLEADERVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:591,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:595,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:596,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:598,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:601,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:608,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:612,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:616,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:620,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:622,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:624,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:628,1
    - Dst: aoBreaks::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:629,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:630,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:631,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:632,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:641,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:646,1
    - Dst: GetBlockNameByRecordHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:653,1
    - Dst: OGRDXFFeature*::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:659,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:662,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:668,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:671,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:672,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:698,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:701,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:704,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:707,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:709,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:714,1
    - Dst: OGRDXFLayer::InsertArrowhead
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:718,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:721,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:725,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:729,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:738,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:741,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:742,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:744,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:751,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:757,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:759,1
    - Dst: InterpolateSpline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:762,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:765,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:771,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:772,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:777,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:779,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:780,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:782,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:785,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:786,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:790,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:792,1
    - Dst: LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:803,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:810,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:811,1
    - Dst: OGRDXFFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:812,1
    - Dst: DXFBlockDefinition*::apoFeatures::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:815,1
    - Dst: DXFBlockDefinition*::apoFeatures::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:816,1
    - Dst: std::map::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:821,1
    - Dst: OGRDXFFeature*::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:826,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:830,1
    - Dst: OGRDXFLayer::InsertBlockReference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:832,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:835,1
    - Dst: OGRDXFFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:836,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:841,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:842,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:850,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:851,1
    - Dst: char::char
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:851,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:852,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:852,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:852,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:853,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:856,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:858,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:861,1
    - Dst: OGRDXFFeatureQueue::OGRDXFFeatureQueue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:866,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:869,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:870,1
    - Dst: ShouldMergeBlockGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:872,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:884,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:886,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:888,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:888,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:889,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:894,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:895,1
    - Dst: std::map<OGRDXFFeature *, CPLString>::iterator::first::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:897,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:899,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:903,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:910,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:918,1
    - Dst: CPLString::replace
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:920,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:923,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:930,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:936,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:936,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:937,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:937,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:939,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:940,1
    - Dst: OGRDXFLayer::PrepareFeatureStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:943,1
    - Dst: ACAdjustText
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:945,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:949,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:949,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:952,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:954,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:957,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:968,1
    - Dst: OGRDXFFeature*::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:974,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:976,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:977,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:977,1
    - Dst: GetTextStyleNameByHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:983,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:986,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:989,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:994,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:994,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:998,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:998,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1004,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1004,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1009,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1010,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1015,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1016,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1021,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1023,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1024,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1025,1
    - Dst: OGRDXFFeature*::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1030,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1034,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1036,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 337
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 1040
    functionName: OGRDXFLayer::TranslateMLEADER
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - std::map::end
    - std::vector::size
    - UnreadValue
    - CPLString::replace
    - OGRDXFFeature*::SetField
    - std::vector<DXFMLEADERVertex>
    - aoBreaks::push_back
    - OGRLineString::OGRLineString
    - DXFTriple
    - OGRDXFFeature*::GetFieldAsString
    - CPLGetErrorCounter
    - OGRDXFFeatureQueue::front
    - OGRDXFFeature::OGRDXFFeature
    - OGRMultiLineString*::addGeometryDirectly
    - LookupTextStyleProperty
    - ShouldMergeBlockGeometries
    - OGRDXFFeature*::GetFieldIndex
    - OGRDXFLayer::PrepareFeatureStyle
    - std::map::empty
    - InterpolateSpline
    - OGRDXFLayer::TextUnescape
    - std::make_pair
    - DXFMLEADERLeader::aaoLeaderLines::emplace_back
    - CPLStrlcpy
    - DXFBlockDefinition*::apoFeatures::end
    - std::vector::begin
    - std::move
    - OGRDXFFeature*::GetGeometryRef
    - GetBlockNameByRecordHandle
    - CPLAtof
    - OGRDXFFeature*::SetStyleString
    - std::map::begin
    - DXFBlockDefinition*::apoFeatures::begin
    - CPLString::Printf
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFLayer::InsertBlockReference
    - size
    - OGRLineString*::addPoint
    - OGRDXFFeature*::GetColor
    - std::vector::back
    - EQUAL
    - atoi
    - push
    - std::vector::emplace_back
    - OGRDXFLayer::InsertArrowhead
    - CPLString
    - std::vector::push_back
    - InlineBlocks
    - DXFMLEADERLeader
    - CPLString::empty
    - std::map::count
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFLayer::PrepareLineStyle
    - GetTextStyleNameByHandle
    - OGRDXFFeatureQueue::empty
    - CPLString::c_str
    - CPLString::length
    - OGRLineString*::setNumPoints
    - char::char
    - LookupBlock
    - empty
    - ACAdjustText
    - OGRDXFFeatureQueue::pop
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - DXF_LAYER_READER_ERROR
    - CPLError
    - STARTS_WITH
    - std::map<OGRDXFFeature *, CPLString>::iterator::first::CloneDXFFeature
    - ReadValue
    - std::vector::end
    - OGRPoint::OGRPoint
    - CPLString::size
    - OGRMultiLineString::OGRMultiLineString
    - OGRDXFFeature*::CloneDXFFeature
    - DXFMLEADERLeader::aoDoglegBreaks::push_back
    - OGRDXFFeatureQueue::OGRDXFFeatureQueue
    - DXFMLEADERVertex
    - OGRDXFFeature*::SetGeometryDirectly
    - CPLsnprintf
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateMLEADER()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1064,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1065,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1066,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1067,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1067,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1068,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1068,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1068,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1068,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1069,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1070,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1071,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1071,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1072,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1074,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1075,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - poArrowheadFeature
    - oPoint1
    - oPoint2
    - dfArrowheadScale
    argTypes:
    - OGRDXFFeature*
    - OGRPoint
    - OGRPoint
    - double
    constantsTouched: []
    func_position:
      end: 1078
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1078
    functionName: GenerateDefaultArrowhead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getY
    - OGRLinearRing*::setPoint
    - OGRLinearRing::OGRLinearRing
    - OGRPoint::getX
    - OGRDXFFeature*::SetGeometryDirectly
    - OGRPoint::getZ
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: void
    signature: "void GenerateDefaultArrowhead(OGRDXFFeature *const poArrowheadFeature,\n
      \                                    const OGRPoint &oPoint1,\n                                     const
      OGRPoint &oPoint2,\n                                     const double dfArrowheadScale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1095,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1096,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1096,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1097,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1097,1
    - Dst: OGRDXFFeature*::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1110,1
    - Dst: GetBlockNameByRecordHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1116,1
    - Dst: OGRDXFFeatureQueue::OGRDXFFeatureQueue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1118,1
    - Dst: GenerateDefaultArrowhead
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1124,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1127,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1133,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1134,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1135,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1136,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1138,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1138,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1138,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1139,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1139,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1147,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1148,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1148,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1165,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1167,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1169,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1169,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1170,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1180,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1183,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1183,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1184,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1184,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1186,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1186,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1187,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1187,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1190,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - poFeature
    - osBlockHandle
    - poLine
    - dfArrowheadSize
    - bReverse
    argTypes:
    - OGRDXFFeature*
    - CPLString
    - OGRLineString*
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 1192
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1192
    functionName: OGRDXFLayer::InsertArrowhead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 2
    functionsReached:
    - push
    - OGRPoint::setX
    - OGRPoint::setY
    - getY
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - OGRPoint::getY
    - OGRDXFFeatureQueue::empty
    - OGRPoint::OGRPoint
    - std::move
    - GetBlockNameByRecordHandle
    - atan2
    - OGRDXFFeature*::CloneDXFFeature
    - GenerateDefaultArrowhead
    - OGRPoint::getX
    - CPLGetErrorCounter
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFFeatureQueue::front
    - getX
    - OGRDXFFeatureQueue::OGRDXFFeatureQueue
    - OGRDXFLayer::PrepareBrushStyle
    - OGRPoint::getZ
    - OGRDXFFeatureQueue::pop
    - std::find
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::InsertArrowhead(OGRDXFFeature *const poFeature,\n
      \                                 const CPLString &osBlockHandle,\n                                  OGRLineString
      *const poLine,\n                                  const double dfArrowheadSize,\n
      \                                 const bool bReverse /* = false */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1212,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1213,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - row
    - t
    argTypes:
    - GDALMatrix
    - int
    - DXFTriple
    constantsTouched: []
    func_position:
      end: 1215
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1215
    functionName: setRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - m
    linkageType: ''
    returnType: void
    signature: void setRow(GDALMatrix &m, int row, DXFTriple const &t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1251,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1258,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1259,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1259,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1259,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1263,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1263,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1265,1
    - Dst: std::vector<DXFTriple>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1271,1
    - Dst: setRow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1282,1
    - Dst: setRow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1284,1
    - Dst: setRow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1285,1
    - Dst: setRow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1289,1
    - Dst: setRow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1293,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1297,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1300,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1301,1
    - Dst: basis
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1309,1
    - Dst: const_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1310,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1312,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1316,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1317,1
    - Dst: N
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1320,1
    - Dst: GDALLinearSystemSolve
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1324,1
    - Dst: P
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1329,1
    - Dst: P
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1330,1
    - Dst: P
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 6
    argNames:
    - adfParameters
    - adfKnots
    - aoDataPoints
    - nDegree
    - oStartTangent
    - oEndTangent
    argTypes:
    - std::vector<double>
    - std::vector<double>
    - std::vector<DXFTriple>
    - int
    - DXFTriple
    - DXFTriple
    constantsTouched: []
    func_position:
      end: 1335
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1335
    functionName: GetBSplineControlPoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 0
    functionsReached:
    - N
    - GDALLinearSystemSolve
    - std::vector<DXFTriple>
    - static_cast<int>
    - atoi
    - std::vector<double>::size
    - setRow
    - CPLAssert
    - basis
    - const_cast<double *>
    - CPLError
    - P
    - CPLGetConfigOption
    linkageType: ''
    returnType: std::vector<DXFTriple>
    signature: "std::vector<DXFTriple> GetBSplineControlPoints(const std::vector<double>
      &adfParameters,\n                        const std::vector<double> &adfKnots,\n
      \                       const std::vector<DXFTriple> &aoDataPoints,\n                        const
      int nDegree, DXFTriple oStartTangent,\n                        DXFTriple oEndTangent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1360,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1363,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1364,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1367,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1370,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1371,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1371,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1371,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1371,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1372,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1374,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1374,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1380,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1396,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1412,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1430,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1431,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1431,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1431,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1432,1
    - Dst: std::fill
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1433,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1433,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1433,1
    - Dst: GetBSplineControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1437,1
    - Dst: rbspline2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1449,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1450,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1455,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1458,1
    - Dst: OGRLineString*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp:1462,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - poLine
    - oEndTangentDirection
    argTypes:
    - OGRLineString*
    - DXFTriple
    constantsTouched: []
    func_position:
      end: 1463
      start: 1351
    functionDepth: 3
    functionLinenumber: 1351
    functionLinenumberEnd: 1463
    functionName: InterpolateSpline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp
    functionUses: 2
    functionsReached:
    - rbspline2
    - std::vector::size
    - OGRLineString*::getPoint
    - std::vector::push_back
    - OGRPoint::getY
    - std::vector::end
    - GetBSplineControlPoints
    - std::vector::begin
    - OGRPoint::OGRPoint
    - OGRLineString*::empty
    - std::move
    - OGRLineString*::flattenTo2D
    - reinterpret_cast<double *>
    - DXFTriple
    - static_cast<int>
    - OGRPoint::getX
    - std::copy
    - std::fill
    - OGRLineString*::addPoint
    - OGRPoint::getZ
    - OGRPoint::Equals
    linkageType: ''
    returnType: void
    signature: "void InterpolateSpline(OGRLineString *const poLine,\n                              const
      DXFTriple &oEndTangentDirection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: OGRDXFGetHEADER
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/embedded_resources.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRDXFGetHEADER()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: OGRDXFGetTRAILER
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/embedded_resources.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRDXFGetTRAILER()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bulge
    - length
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: GetRadius
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetRadius(double bulge, double length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:32,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:32,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - DXFSmoothPolylineVertex
    - DXFSmoothPolylineVertex
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: GetLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    - pow
    linkageType: ''
    returnType: double
    signature: "double GetLength(const DXFSmoothPolylineVertex &start,\n                        const
      DXFSmoothPolylineVertex &end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - DXFSmoothPolylineVertex
    - DXFSmoothPolylineVertex
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: GetAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 0
    functionsReached:
    - atan2
    linkageType: ''
    returnType: double
    signature: "double GetAngle(const DXFSmoothPolylineVertex &start,\n                       const
      DXFSmoothPolylineVertex &end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - angle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: GetOGRangle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetOGRangle(double angle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:52,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:52,1
    - Dst: DXFSmoothPolyline::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:58,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:61,1
    - Dst: OGRPoint*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:63,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:71,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:72,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:77,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:79,1
    - Dst: DXFSmoothPolyline::EmitLine
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:95,1
    - Dst: DXFSmoothPolyline::EmitArc
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:100,1
    - Dst: OGRLineString*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:112,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:117,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - bAsPolygon
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 124
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 124
    functionName: DXFSmoothPolyline::Tessellate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 2
    functionsReached:
    - DXFSmoothPolyline::EmitLine
    - end
    - DXFSmoothPolyline::size
    - empty
    - OGRLinearRing::OGRLinearRing
    - DXFSmoothPolyline::EmitArc
    - assert
    - OGRPoint::OGRPoint
    - begin
    - OGRLineString*::flattenTo2D
    - OGRPoint*::flattenTo2D
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *DXFSmoothPolyline::Tessellate(bool bAsPolygon) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:135,1
    - Dst: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:157,1
    - Dst: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:165,1
    - Dst: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:169,1
    - Dst: DXFSmoothPolylineVertex::normalize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:172,1
    - Dst: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:174,1
    - Dst: GetAngle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:199,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:223,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:225,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:226,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:234,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:236,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:237,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:237,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:240,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:240,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 7
    argNames:
    - start
    - end
    - radius
    - len
    - bulge
    - poLS
    - dfZ
    argTypes:
    - DXFSmoothPolylineVertex
    - DXFSmoothPolylineVertex
    - double
    - double
    - double
    - OGRLineString*
    - double
    constantsTouched: []
    func_position:
      end: 246
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 246
    functionName: DXFSmoothPolyline::EmitArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRLineString>
    - auto::getNumPoints
    - auto::setPoint
    - OGRLineString*::addSubLineString
    - assert
    - OGRGeometryFactory::approximateArcAngles
    - DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
    - auto::get
    - GetAngle
    - fabs
    - DXFSmoothPolylineVertex::normalize
    linkageType: ''
    returnType: void
    signature: "void DXFSmoothPolyline::EmitArc(const DXFSmoothPolylineVertex &start,\n
      \                               const DXFSmoothPolylineVertex &end,\n                                double
      radius, double len, double bulge,\n                                OGRLineString
      *poLS, double dfZ) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:256,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:260,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - end
    - poLS
    argTypes:
    - DXFSmoothPolylineVertex
    - DXFSmoothPolylineVertex
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: DXFSmoothPolyline::EmitLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 1
    functionsReached:
    - assert
    - OGRLineString*::addPoint
    linkageType: ''
    returnType: void
    signature: "void DXFSmoothPolyline::EmitLine(const DXFSmoothPolylineVertex &start,\n
      \                                const DXFSmoothPolylineVertex &end,\n                                 OGRLineString
      *poLS) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:273,1
    - Dst: DXFSmoothPolyline::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:275,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 286
    functionName: DXFSmoothPolyline::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.cpp
    functionUses: 2
    functionsReached:
    - assert
    - DXFSmoothPolyline::size
    - push_back
    linkageType: ''
    returnType: void
    signature: void DXFSmoothPolyline::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeatureQueue::push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: OGRDXFFeatureQueue::push
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFFeatureQueue::push
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeatureQueue::push(OGRDXFFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:41,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:41,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: OGRDXFFeatureQueue::pop
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 3
    functionsReached:
    - OGRDXFFeatureQueue::empty
    - CPLAssert
    - OGRDXFFeatureQueue::pop
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeatureQueue::pop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:50,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:52,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:55,1
    - Dst: ShouldIncludeRawCodeValues
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:57,1
    - Dst: In3DExtensibleMode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:59,1
    - Dst: OGRDXFDataSource::AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:61,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:63,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRDXFDataSource*
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: OGRDXFLayer::OGRDXFLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFDataSource::AddStandardFields
    - ShouldIncludeRawCodeValues
    - OGRFeatureDefn::OGRFeatureDefn
    - SetDescription
    - In3DExtensibleMode
    - Reference
    - InlineBlocks
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRDXFLayer::OGRDXFLayer(OGRDXFDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFLayer::ClearPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:73,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:76,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:77,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: OGRDXFLayer::~OGRDXFLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - Release
    - OGRDXFLayer::ClearPendingFeatures
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRDXFLayer::~OGRDXFLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:91,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:93,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: OGRDXFLayer::ClearPendingFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - pop
    - empty
    - front
    linkageType: ''
    returnType: void
    signature: void OGRDXFLayer::ClearPendingFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFLayer::ClearPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:107,1
    - Dst: RestartEntities
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: OGRDXFLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - RestartEntities
    - OGRDXFLayer::ClearPendingFeatures
    linkageType: ''
    returnType: void
    signature: void OGRDXFLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:127,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:127,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:132,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:133,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:136,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:136,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:147,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:159,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:160,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:165,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:170,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:171,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:183,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:183,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:196,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:201,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:205,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:209,1
    - Dst: ShouldIncludeRawCodeValues
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:213,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:218,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:220,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:222,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:223,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:226,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:228,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 3
    argNames:
    - poFeature
    - nCode
    - pszValue
    argTypes:
    - OGRDXFFeature*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 232
    functionName: OGRDXFLayer::TranslateGenericProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 2
    functionsReached:
    - ReadValue
    - CPLAtof
    - OGRDXFFeature*::GetFieldAsString
    - atoi
    - ShouldIncludeRawCodeValues
    - CSLAddString
    - CSLDestroy
    - UnreadValue
    - OGRDXFFeature*::SetField
    - CPLString::c_str
    - CPLAssert
    - CSLDuplicate
    - CPLString
    - CPLString::empty
    - OGRDXFLayer::TextRecode
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::TranslateGenericProperty(OGRDXFFeature *poFeature,
      int nCode,\n                                           char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:251,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:253,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:255,1
    - Dst: OGRDXFFeature*::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:259,1
    - Dst: CPLString::replace
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:270,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:273,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - poFeature
    - poBlockFeature
    argTypes:
    - OGRDXFFeature*
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 281
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 281
    functionName: OGRDXFLayer::PrepareFeatureStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::replace
    - STARTS_WITH_CI
    - OGRDXFFeature*::SetStyleString
    - OGRDXFLayer::PrepareLineStyle
    - OGRDXFFeature*::GetColor
    - OGRDXFLayer::PrepareBrushStyle
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::PrepareFeatureStyle(\n    OGRDXFFeature *const poFeature,\n
      \   OGRDXFFeature *const poBlockFeature /* = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature*::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:293,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poFeature
    - poBlockFeature
    argTypes:
    - OGRDXFFeature*
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: OGRDXFLayer::PrepareBrushStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 2
    functionsReached:
    - OGRDXFFeature*::SetStyleString
    - OGRDXFFeature*::GetColor
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::PrepareBrushStyle(\n    OGRDXFFeature *const poFeature,\n
      \   OGRDXFFeature *const poBlockFeature /* = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:308,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:316,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:320,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:322,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:340,1
    - Dst: LookupLayerProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:342,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:354,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:356,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:361,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:365,1
    - Dst: LookupLayerProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:367,1
    - Dst: LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:370,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:374,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:376,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:379,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:380,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:384,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:384,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:387,1
    - Dst: CPLString::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:388,1
    - Dst: CPLString::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:388,1
    - Dst: OGRDXFFeature*::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:395,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:400,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:401,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:413,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - poFeature
    - poBlockFeature
    argTypes:
    - OGRDXFFeature*
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 414
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 414
    functionName: OGRDXFLayer::PrepareLineStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 3
    functionsReached:
    - CPLAtof
    - CPLString::end
    - OGRDXFFeature*::GetFieldAsString
    - std::vector::end
    - LookupLayerProperty
    - OGRDXFFeature*::SetStyleString
    - std::vector::begin
    - OGRDXFFeature*::SetField
    - OGRDXFFeature*::GetColor
    - EQUAL
    - LookupLineType
    - CPLString::erase
    - CPLsnprintf
    - CPLString
    - fabs
    - OGRDXFFeature*::oStyleProperties::count
    - CPLString::length
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::PrepareLineStyle(\n    OGRDXFFeature *const poFeature,\n
      \   OGRDXFFeature *const poBlockFeature /* = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:423,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: OGRDXFLayer::TextRecode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString
    - GetEncoding
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDXFLayer::TextRecode(const char *pszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShouldTranslateEscapes
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:436,1
    - Dst: ACTextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:437,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:437,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszInput
    - bIsMText
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: OGRDXFLayer::TextUnescape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - ShouldTranslateEscapes
    - OGRDXFLayer::TextRecode
    - ACTextUnescape
    - GetEncoding
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDXFLayer::TextUnescape(const char *pszInput, bool bIsMText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:451,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:464,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:469,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:473,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:477,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:482,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:486,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:490,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:494,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:495,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:500,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:504,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:508,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:512,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:512,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:518,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:523,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:527,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:529,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:535,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:540,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:540,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:541,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:543,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:549,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:553,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:560,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:570,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:573,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:578,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:578,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:582,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:582,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:594,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:595,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:600,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:601,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:606,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:608,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:609,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:610,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:618,1
    - Dst: auto::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:623,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:627,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:629,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 630
    functionName: OGRDXFLayer::TranslateMTEXT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - auto::SetField
    - UnreadValue
    - auto::get
    - CPLString
    - DXF_LAYER_READER_ERROR
    - CPLString::empty
    - ReadValue
    - auto::GetColor
    - OGRDXFLayer::TextUnescape
    - OGRDXFLayer::TranslateGenericProperty
    - OGRPoint::OGRPoint
    - CPLString::size
    - std::move
    - atan2
    - CPLAtof
    - CPLString::back
    - auto::SetStyleString
    - CPLString::Printf
    - std::make_unique<OGRDXFFeature>
    - CPLString::pop_back
    - OGRDXFLayer::TextRecode
    - auto::SetGeometryDirectly
    - LookupTextStyleProperty
    - auto::release
    - strchr
    - EQUAL
    - CPLsnprintf
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateMTEXT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:644,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:665,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:670,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:674,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:678,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:682,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:687,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:692,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:696,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:700,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:704,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:708,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:713,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:718,1
    - Dst: OGRDXFLayer::TextRecode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:722,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:742,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:746,1
    - Dst: auto::osAttributeTag::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:747,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:752,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:752,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:758,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:763,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:767,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:769,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:770,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:771,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:806,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:812,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:816,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:823,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:833,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:836,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:841,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:841,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:845,1
    - Dst: LookupTextStyleProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:845,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:856,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:860,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:861,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:866,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:867,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:872,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:873,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:878,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:880,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:885,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:887,1
    - Dst: auto::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:892,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:896,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:898,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 143
    argCount: 1
    argNames:
    - bIsAttribOrAttdef
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 899
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 899
    functionName: OGRDXFLayer::TranslateTEXT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - auto::SetField
    - UnreadValue
    - auto::get
    - CPLString
    - DXF_LAYER_READER_ERROR
    - auto::osAttributeTag::Clear
    - ReadValue
    - auto::GetColor
    - OGRDXFLayer::TextUnescape
    - OGRDXFLayer::TranslateGenericProperty
    - OGRPoint::OGRPoint
    - CPLString::size
    - std::move
    - CPLAtof
    - auto::ApplyOCSTransformer
    - auto::SetStyleString
    - CPLString::Printf
    - std::make_unique<OGRDXFFeature>
    - OGRDXFLayer::TextRecode
    - auto::SetGeometryDirectly
    - LookupTextStyleProperty
    - auto::release
    - strchr
    - EQUAL
    - CPLsnprintf
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateTEXT(const bool bIsAttribOrAttdef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:910,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:916,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:921,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:925,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:929,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:934,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:934,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:940,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:945,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:949,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:951,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:953,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:956,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:956,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:958,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 905
    functionDepth: 4
    functionLinenumber: 905
    functionLinenumberEnd: 959
    functionName: OGRDXFLayer::TranslatePOINT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - auto::SetGeometryDirectly
    - auto::release
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - OGRPoint::OGRPoint
    - std::make_unique<OGRDXFFeature>
    - DXF_LAYER_READER_ERROR
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslatePOINT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:970,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:982,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:987,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:991,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:995,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:999,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1003,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1008,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1013,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1013,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1019,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1024,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1029,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1032,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1033,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1037,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1038,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1041,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1041,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1043,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1043,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1045,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 1046
    functionName: OGRDXFLayer::TranslateLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - auto::SetGeometryDirectly
    - auto::release
    - auto::addPoint
    - OGRDXFLayer::TranslateGenericProperty
    - std::make_unique<OGRLineString>
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - std::make_unique<OGRDXFFeature>
    - DXF_LAYER_READER_ERROR
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateLINE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1062,1
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1072,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1074,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1079,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1083,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1092,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1093,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1097,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1101,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1107,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1112,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1119,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1124,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1129,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1133,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1133,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1139,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1144,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1147,1
    - Dst: DXFSmoothPolyline::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1149,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1159,1
    - Dst: DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1163,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1163,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1165,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1165,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1166,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1166,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1167,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1167,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1169,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1169,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1171,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1051
    functionDepth: 4
    functionLinenumber: 1051
    functionLinenumberEnd: 1172
    functionName: OGRDXFLayer::TranslateLWPOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - DXFSmoothPolyline::Close
    - atoi
    - std::unique_ptr<OGRGeometry>
    - UnreadValue
    - auto::get
    - DXF_LAYER_READER_ERROR
    - CPLError
    - InlineBlocks
    - ReadValue
    - OGRDXFLayer::TranslateGenericProperty
    - DXFSmoothPolyline::AddPoint
    - OGRDXFLayer::PrepareLineStyle
    - DXFSmoothPolyline::Tessellate
    - DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
    - CPLAtof
    - auto::ApplyOCSTransformer
    - DXFSmoothPolyline::DXFSmoothPolyline
    - std::make_unique<OGRDXFFeature>
    - auto::SetGeometryDirectly
    - auto::release
    - DXFSmoothPolyline::setCoordinateDimension
    - DXFSmoothPolyline::IsEmpty
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateLWPOLYLINE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1180,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1181,1
    - Dst: abs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1183
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1183
    functionName: SafeAbs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - abs
    - simple_min
    linkageType: ''
    returnType: int
    signature: int SafeAbs(int x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1197,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1202,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1207,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1211,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1211,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1217,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1223,1
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1235,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1241,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1243,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1248,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1250,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1255,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1263,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1268,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1272,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1276,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1277,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1281,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1285,1
    - Dst: SafeAbs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1291,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1291,1
    - Dst: SafeAbs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1295,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1295,1
    - Dst: SafeAbs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1299,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1299,1
    - Dst: SafeAbs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1303,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1303,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1316,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1320,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1320,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1335,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1338,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1339,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1343,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1347,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1351,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1355,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1359,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1363,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1367,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1374,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1376,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1377,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1377,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1379,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1385,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1391,1
    - Dst: DXFSmoothPolyline::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1395,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1400,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1402,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1402,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1403,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1403,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1404,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1412,1
    - Dst: DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1416,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1416,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1417,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1420,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1421,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1423,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1423,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1425,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1191
    functionDepth: 4
    functionLinenumber: 1191
    functionLinenumberEnd: 1426
    functionName: OGRDXFLayer::TranslatePOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - DXFSmoothPolyline::Close
    - atoi
    - std::vector::size
    - auto::get
    - CPLDebug
    - std::vector::emplace_back
    - DXF_LAYER_READER_ERROR
    - CPLError
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - InlineBlocks
    - ReadValue
    - auto::setPoint
    - OGRDXFLayer::TranslateGenericProperty
    - DXFSmoothPolyline::AddPoint
    - OGRDXFLayer::PrepareLineStyle
    - DXFSmoothPolyline::Tessellate
    - DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
    - auto::set3D
    - std::make_unique<OGRLinearRing>
    - std::make_unique<OGRPolyhedralSurface>
    - CPLAtof
    - auto::ApplyOCSTransformer
    - auto::addGeometryDirectly
    - DXFSmoothPolyline::DXFSmoothPolyline
    - std::make_unique<OGRDXFFeature>
    - what
    - auto::SetGeometryDirectly
    - auto::release
    - SafeAbs
    - EQUAL
    - auto::getNumGeometries
    - DXFSmoothPolyline::setCoordinateDimension
    - OGRDXFLayer::PrepareBrushStyle
    - DXFSmoothPolyline::IsEmpty
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslatePOLYLINE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1438,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1444,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1450,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1454,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1458,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1462,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1464,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1470,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1470,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1476,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1481,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1488,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1503,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1505,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1507,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1510,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1512,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1514,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1517,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1519,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1521,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1530,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1538,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1547,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1555,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1557,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1558,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1566,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1579,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1580,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1582,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1583,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1589,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1590,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1595,1
    - Dst: EXPECT_CODE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1601,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1615,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1619,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1619,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1626,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1626,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1628,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1628,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1630,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1432
    functionDepth: 4
    functionLinenumber: 1432
    functionLinenumberEnd: 1631
    functionName: OGRDXFLayer::TranslateMLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - addPoint
    - atoi
    - UnreadValue
    - CPLDebug
    - auto::get
    - DXF_LAYER_READER_ERROR
    - ReadValue
    - EXPECT_CODE
    - OGRDXFLayer::TranslateGenericProperty
    - std::make_unique<OGRLineString>
    - OGRDXFLayer::PrepareLineStyle
    - DXFTriple
    - auto::addGeometryDirectly
    - release
    - std::make_unique<OGRDXFFeature>
    - std::make_unique<OGRMultiLineString>
    - CPLAssert
    - auto::SetGeometryDirectly
    - auto::release
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateMLINE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1642,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1653,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1658,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1662,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1666,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1671,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1675,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1679,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1679,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1685,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1690,1
    - Dst: std::unique_ptr<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1695,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1696,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1698,1
    - Dst: OGRPolyhedralSurface::OGRPolyhedralSurface
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1707,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1710,1
    - Dst: OGRLinearRing*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1711,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1711,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1713,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1714,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1715,1
    - Dst: OGRLinearRing*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1718,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1720,1
    - Dst: OGRLinearRing*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1722,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1724,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1725,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1726,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1729,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1730,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1734,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1735,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1739,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1740,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1743,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1745,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1746,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1746,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1747,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1749,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1753,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1754,1
    - Dst: OGRLinearRing*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1758,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1759,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1762,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1764,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1765,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1765,1
    - Dst: OGRPolyhedralSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1766,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1769,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1770,1
    - Dst: auto::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1775,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1777,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1777,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1778,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1778,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1781,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1781,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1783,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1637
    functionDepth: 4
    functionLinenumber: 1637
    functionLinenumberEnd: 1784
    functionName: OGRDXFLayer::TranslateCIRCLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getPoint
    - UnreadValue
    - auto::get
    - auto::flattenTo2D
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - DXF_LAYER_READER_ERROR
    - OGRPolygon*::addRingDirectly
    - InlineBlocks
    - OGRPolygon::OGRPolygon
    - OGRPolyhedralSurface::OGRPolyhedralSurface
    - ReadValue
    - std::unique_ptr<OGRLineString>
    - OGRDXFLayer::TranslateGenericProperty
    - OGRLinearRing*::transform
    - OGRDXFLayer::PrepareLineStyle
    - OGRPoint::OGRPoint
    - std::make_unique<OGRLinearRing>
    - CPLAtof
    - auto::ApplyOCSTransformer
    - OGRLinearRing::OGRLinearRing
    - std::make_unique<OGRDXFFeature>
    - OGRLinearRing*::addSubLineString
    - OGRPolyhedralSurface*::addGeometryDirectly
    - auto::SetGeometryDirectly
    - auto::closeRings
    - auto::release
    - auto::addPoint
    - OGRGeometryFactory::approximateArcAngles
    - OGRLinearRing*::clone
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateCIRCLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1795,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1811,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1816,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1820,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1824,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1829,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1833,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1837,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1841,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1846,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1851,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1855,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1855,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1861,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1866,1
    - Dst: auto::oOCS::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1872,1
    - Dst: OGRDXFOCSTransformer::InverseTransform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1883,1
    - Dst: OGRDXFOCSTransformer::InverseTransform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1888,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1908,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1912,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1913,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1916,1
    - Dst: auto::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1919,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1922,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1922,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1923,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1923,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1930,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1930,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1932,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1933
    functionName: OGRDXFLayer::TranslateELLIPSE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - OGRDXFOCSTransformer::InverseTransform
    - fabs
    - auto::ApplyOCSTransformer
    - auto::SetGeometryDirectly
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - OGRDXFLayer::TranslateGenericProperty
    - auto::oOCS::ToArray
    - OGRGeometryFactory::approximateArcAngles
    - UnreadValue
    - auto::get
    - OGRDXFLayer::PrepareLineStyle
    - auto::flattenTo2D
    - std::make_unique<OGRDXFFeature>
    - DXF_LAYER_READER_ERROR
    - InlineBlocks
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateELLIPSE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1944,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1956,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1961,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1965,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1969,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1974,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1979,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1984,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1988,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1988,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1994,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:1999,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2007,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2009,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2010,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2012,1
    - Dst: auto::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2014,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2016,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2016,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2017,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2017,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2024,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2024,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2026,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1939
    functionDepth: 4
    functionLinenumber: 1939
    functionLinenumberEnd: 2027
    functionName: OGRDXFLayer::TranslateARC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - fabs
    - auto::ApplyOCSTransformer
    - auto::SetGeometryDirectly
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - OGRDXFLayer::TranslateGenericProperty
    - OGRGeometryFactory::approximateArcAngles
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - auto::flattenTo2D
    - std::make_unique<OGRDXFFeature>
    - DXF_LAYER_READER_ERROR
    - InlineBlocks
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateARC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2041,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2055,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2063,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2066,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2066,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2070,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2070,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2075,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2075,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2088,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2093,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2093,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2100,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2104,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2110,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2114,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2120,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2130,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2132,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2132,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2136,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2136,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2145,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2150,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2154,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2157,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2159,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2161,1
    - Dst: OGRDXFLayer::InsertSplineWithChecks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2170,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2175,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2179,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2179,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2181,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2181,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2183,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2036
    functionDepth: 4
    functionLinenumber: 2036
    functionLinenumberEnd: 2184
    functionName: OGRDXFLayer::TranslateSPLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - OGRDXFLayer::InsertSplineWithChecks
    - auto::SetGeometryDirectly
    - static_cast<int>
    - CPLError
    - atoi
    - auto::release
    - OGRDXFLayer::TranslateGenericProperty
    - std::vector::size
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - EQUAL
    - std::make_unique<OGRDXFFeature>
    - DXF_LAYER_READER_ERROR
    - std::vector::push_back
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateSPLINE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2212,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2212,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2232,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2234,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2234,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2240,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2240,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2253,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2255,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2255,1
    - Dst: rbspline2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2271,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2277,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2279,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2283,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2290,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 7
    argNames:
    - nDegree
    - adfControlPoints
    - bHasZ
    - nControlPoints
    - adfKnots
    - nKnots
    - adfWeights
    argTypes:
    - int
    - std::vector<double>
    - bool
    - int
    - std::vector<double>
    - int
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 2295
      start: 2193
    functionDepth: 3
    functionLinenumber: 2193
    functionLinenumberEnd: 2295
    functionName: OGRDXFLayer::InsertSplineWithChecks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - rbspline2
    - auto::setPoint
    - std::vector<double>::size
    - std::make_unique<OGRLineString>
    - std::vector<double>::push_back
    - auto::setNumPoints
    linkageType: ''
    returnType: std::unique_ptr<OGRLineString>
    signature: "std::unique_ptr<OGRLineString> OGRDXFLayer::InsertSplineWithChecks(\n
      \   const int nDegree, std::vector<double> &adfControlPoints, bool bHasZ,\n
      \   int nControlPoints, std::vector<double> &adfKnots, int nKnots,\n    std::vector<double>
      &adfWeights)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2306,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2323,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2328,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2332,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2336,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2340,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2344,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2348,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2352,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2356,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2360,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2364,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2368,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2372,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2376,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2376,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2382,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2387,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2392,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2393,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2394,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2395,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2396,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2398,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2399,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2400,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2402,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2403,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2403,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2405,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2405,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2407,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2301
    functionDepth: 4
    functionLinenumber: 2301
    functionLinenumberEnd: 2408
    functionName: OGRDXFLayer::Translate3DFACE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - auto::ApplyOCSTransformer
    - auto::closeRings
    - auto::SetGeometryDirectly
    - auto::release
    - OGRLinearRing::OGRLinearRing
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - std::make_unique<OGRDXFFeature>
    - OGRLinearRing*::addPoint
    - DXF_LAYER_READER_ERROR
    - auto::addRingDirectly
    - std::make_unique<OGRPolygon>
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::Translate3DFACE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2419,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2419,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2419,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2419,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2420,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oP1
    - oP2
    argTypes:
    - OGRPoint
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 2421
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2421
    functionName: PointXAxisComparer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getY
    - OGRPoint::getX
    linkageType: ''
    returnType: bool
    signature: bool PointXAxisComparer(const OGRPoint &oP1, const OGRPoint &oP2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2431,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2431,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2431,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2431,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2432,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - oP1
    - oP2
    argTypes:
    - OGRPoint
    - OGRPoint
    constantsTouched: []
    func_position:
      end: 2433
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2433
    functionName: PointXYZEqualityComparer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::getY
    - OGRPoint::getX
    - OGRPoint::getZ
    linkageType: ''
    returnType: bool
    signature: bool PointXYZEqualityComparer(const OGRPoint &oP1, const OGRPoint &oP2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2444,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2458,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2463,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2467,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2471,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2475,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2479,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2483,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2487,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2491,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2495,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2499,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2503,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2507,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2511,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2511,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2517,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2521,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2529,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2530,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2532,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2533,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2534,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2536,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2537,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2538,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2540,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2541,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2542,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2544,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2546,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2552,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2561,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2561,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2563,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2563,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2567,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2568,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2569,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2570,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2570,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2572,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2572,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2578,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2580,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2582,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2584,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2586,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2587,1
    - Dst: OGRLinearRing*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2590,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2592,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2593,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2594,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2594,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2596,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2596,1
    - Dst: auto::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2599,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2599,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2600,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2600,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2602,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2439
    functionDepth: 4
    functionLinenumber: 2439
    functionLinenumberEnd: 2603
    functionName: OGRDXFLayer::TranslateSOLID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::setPoint
    - UnreadValue
    - auto::get
    - auto::addRingDirectly
    - DXF_LAYER_READER_ERROR
    - ReadValue
    - setY
    - auto::setPoint
    - OGRDXFLayer::TranslateGenericProperty
    - std::make_unique<OGRLineString>
    - OGRDXFLayer::PrepareLineStyle
    - std::unique_ptr::release
    - std::sort
    - setZ
    - std::unique_ptr::reset
    - CPLAtof
    - auto::ApplyOCSTransformer
    - OGRLinearRing::OGRLinearRing
    - std::make_unique<OGRDXFFeature>
    - OGRLinearRing*::flattenTo2D
    - std::make_unique<OGRPolygon>
    - std::unique_ptr::get
    - auto::SetGeometryDirectly
    - auto::release
    - OGRDXFLayer::PrepareBrushStyle
    - setX
    - clone
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateSOLID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2617,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2619,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2621,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2621,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2626,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2630,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2640,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2643,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2647,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2647,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2648,1
    - Dst: std::make_unique<OGRDXFAffineTransform>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2652,1
    - Dst: auto::poASMTransform::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2654,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2654,1
    - Dst: fopen_s
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2658,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2659,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2664,1
    - Dst: fwrite
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2665,1
    - Dst: ferror
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2666,1
    - Dst: fputs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2668,1
    - Dst: fclose
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2670,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2674,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2674,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2612
    functionDepth: 4
    functionLinenumber: 2612
    functionLinenumberEnd: 2677
    functionName: OGRDXFLayer::TranslateASMEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - fwrite
    - auto::SetField
    - UnreadValue
    - auto::get
    - CPLString
    - DXF_LAYER_READER_ERROR
    - CPLError
    - GetFieldIndex
    - ReadValue
    - OGRDXFLayer::TranslateGenericProperty
    - fprintf
    - fopen_s
    - fputs
    - static_cast<int>
    - fclose
    - std::make_unique<OGRDXFFeature>
    - ferror
    - auto::release
    - OGRDXFLayer::PrepareBrushStyle
    - std::make_unique<OGRDXFAffineTransform>
    - auto::poASMTransform::SetField
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateASMEntity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2690,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2692,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2693,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2703,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2703,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2705,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2707,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2707,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2718,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2720,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2721,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2723,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2724,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2725,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2733,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2735,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2736,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2737,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2737,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2745,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2750,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2751,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - poCollection
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 2756
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2756
    functionName: OGRDXFLayer::SimplifyBlockGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRMultiPoint::OGRMultiPoint
    - Equals
    - std::vector::size
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryFactory::organizePolygons
    - OGRGeometryCollection*::removeGeometry
    - std::vector::push_back
    - wkbFlatten
    - std::vector::empty
    - OGRMultiLineString::OGRMultiLineString
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      OGRDXFLayer::SimplifyBlockGeometry(OGRGeometryCollection *poCollection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2771,1
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2779,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2781,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2784,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2788,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2798,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2802,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2803,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2814,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2818,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2835,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2839,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2847,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2855,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2859,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2860,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2867,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2867,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2873,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2878,1
    - Dst: DXFSmoothPolyline::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2880,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2888,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2890,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2892,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2895,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2895,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2897,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2766
    functionDepth: 4
    functionLinenumber: 2766
    functionLinenumberEnd: 2898
    functionName: OGRDXFLayer::TranslateWIPEOUT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - ReadValue
    - CPLAtof
    - auto::SetGeometryDirectly
    - DXFSmoothPolyline::Close
    - auto::release
    - atoi
    - OGRDXFLayer::TranslateGenericProperty
    - DXFSmoothPolyline::AddPoint
    - OGRDXFLayer::PrepareLineStyle
    - UnreadValue
    - auto::get
    - DXFSmoothPolyline::Tessellate
    - DXFSmoothPolyline::DXFSmoothPolyline
    - std::make_unique<OGRDXFFeature>
    - DXFSmoothPolyline::setCoordinateDimension
    - DXF_LAYER_READER_ERROR
    - CPLError
    - DXFSmoothPolyline::IsEmpty
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateWIPEOUT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2918,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2920,1
    - Dst: OGRDXFFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2925,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2927,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2928,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2929,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2930,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2931,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2937,1
    - Dst: OGRDXFFeature*::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2940,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - osBlockName
    - oTransformer
    - poFeature
    argTypes:
    - CPLString
    - OGRDXFInsertTransformer
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 2944
      start: 2908
    functionDepth: 3
    functionLinenumber: 2908
    functionLinenumberEnd: 2944
    functionName: OGRDXFLayer::InsertBlockReference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 1
    functionsReached:
    - DXFTriple
    - OGRDXFFeature*::ApplyOCSTransformer
    - OGRDXFFeature*::SetGeometryDirectly
    - OGRDXFFeature*::SetField
    - OGRDXFFeature*::GetFieldIndex
    - OGRPoint::OGRPoint
    linkageType: ''
    returnType: OGRDXFFeature
    signature: "OGRDXFFeature *\nOGRDXFLayer::InsertBlockReference(const CPLString
      &osBlockName,\n                                  const OGRDXFInsertTransformer
      &oTransformer,\n                                  OGRDXFFeature *const poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushBlockInsertion
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2975,1
    - Dst: OGRDXFFeature*::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2988,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2990,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2991,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2992,1
    - Dst: LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:2997,1
    - Dst: PopBlockInsertion
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3002,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3003,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3016,1
    - Dst: OGRDXFFeatureQueue::OGRDXFFeatureQueue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3018,1
    - Dst: DXFBlockDefinition*::apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3020,1
    - Dst: CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3024,1
    - Dst: OGRDXFFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3028,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3029,1
    - Dst: OGRDXFFeature*::IsBlockReference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3033,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3037,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3050,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3055,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3057,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3064,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3073,1
    - Dst: OGRDXFFeatureQueue::push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3085,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3085,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3088,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3097,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3098,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3107,1
    - Dst: OGRDXFInsertTransformer::GetRotateScaleTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3112,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3113,1
    - Dst: OGRDXFFeature*::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3116,1
    - Dst: OGRDXFInsertTransformer::GetOffsetTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3119,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3120,1
    - Dst: OGRDXFInsertTransformer::GetRotateScaleTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3127,1
    - Dst: OGRDXFFeature*::poASMTransform::ComposeWith
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3128,1
    - Dst: OGRDXFFeature*::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3131,1
    - Dst: OGRDXFFeature*::poASMTransform::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3132,1
    - Dst: OGRDXFInsertTransformer::GetOffsetTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3135,1
    - Dst: OGRDXFFeature*::poASMTransform::ComposeWith
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3136,1
    - Dst: OGRDXFFeature*::poASMTransform::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3138,1
    - Dst: OGRDXFFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3145,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3146,1
    - Dst: OGRDXFFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3146,1
    - Dst: OGRDXFFeature*::IsBlockReference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3147,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3148,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3150,1
    - Dst: OGRDXFFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3163,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3164,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3164,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3166,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3167,1
    - Dst: OGRDXFLayer::PrepareFeatureStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3172,1
    - Dst: ACAdjustText
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3178,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3178,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3180,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3182,1
    - Dst: OGRDXFFeatureQueue::push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3185,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3192,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3198,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3199,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3204,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3206,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3207,1
    - Dst: PopBlockInsertion
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3211,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3220,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3226,1
    - Dst: OGRDXFLayer::SimplifyBlockGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3227,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3229,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 106
    argCount: 7
    argNames:
    - nInitialErrorCounter
    - osBlockName
    - oTransformer
    - poFeature
    - apoExtraFeatures
    - bInlineRecursively
    - bMergeGeometry
    argTypes:
    - GUInt32
    - CPLString
    - OGRDXFInsertTransformer
    - OGRDXFFeature*
    - OGRDXFFeatureQueue
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3236
      start: 2966
    functionDepth: 4
    functionLinenumber: 2966
    functionLinenumberEnd: 3236
    functionName: OGRDXFLayer::InsertBlockInline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 4
    functionsReached:
    - OGRDXFFeature*::StealGeometry
    - PushBlockInsertion
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - OGRDXFFeature*::GetFieldAsInteger
    - OGRPoint::getY
    - OGRDXFInsertTransformer::GetOffsetTransformer
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryCollection*::getNumGeometries
    - OGRDXFLayer::PrepareLineStyle
    - OGRDXFFeature*::SetField
    - OGRDXFFeature*::poASMTransform::get
    - OGRDXFFeatureQueue::empty
    - std::move
    - OGRGeometry*::transform
    - OGRDXFFeature*::GetGeometryRef
    - CloneDXFFeature
    - OGRDXFFeature*::GetFieldAsString
    - std::invalid_argument
    - OGRDXFFeature*::poASMTransform::ComposeWith
    - release
    - OGRPoint::getX
    - CPLGetErrorCounter
    - OGRDXFLayer::SimplifyBlockGeometry
    - OGRDXFFeatureQueue::push
    - PopBlockInsertion
    - OGRDXFFeature*::IsBlockReference
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFFeatureQueue::front
    - strstr
    - OGRDXFFeatureQueue::OGRDXFFeatureQueue
    - LookupBlock
    - DXFBlockDefinition*::apoFeatures::size
    - OGRDXFFeature*::ApplyOCSTransformer
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRDXFInsertTransformer::GetRotateScaleTransformer
    - OGRDXFFeature*::GetStyleString
    - OGRDXFFeature*::SetGeometryDirectly
    - EQUAL
    - OGRDXFLayer::PrepareFeatureStyle
    - OGRPoint::getZ
    - OGRDXFFeature*::poASMTransform::SetField
    - OGRDXFFeatureQueue::pop
    - ACAdjustText
    linkageType: ''
    returnType: OGRDXFFeature
    signature: "OGRDXFFeature *OGRDXFLayer::InsertBlockInline(\n    GUInt32 nInitialErrorCounter,
      const CPLString &osBlockName,\n    OGRDXFInsertTransformer oTransformer, OGRDXFFeature
      *const poFeature,\n    OGRDXFFeatureQueue &apoExtraFeatures, const bool bInlineRecursively,\n
      \   const bool bMergeGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poTemplateFeature::reset
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3248,1
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3248,1
    - Dst: OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3249,1
    - Dst: m_osBlockName::clear
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3250,1
    - Dst: m_apoAttribs::clear
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3259,1
    - Dst: m_aosAttribs::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3260,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3265,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3270,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3274,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3278,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3282,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3286,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3290,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3294,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3298,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3305,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3309,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3313,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3316,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3324,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3327,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3339,1
    - Dst: m_poTemplateFeature::get
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3340,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3366,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3368,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3370,1
    - Dst: std::unique_ptr<OGRDXFFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3377,1
    - Dst: OGRDXFLayer::TranslateTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3377,1
    - Dst: m_apoAttribs::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3381,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3382,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3385,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3390,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3399,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3400,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3406,1
    - Dst: m_aosAttribs::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3408,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3242
    functionDepth: 5
    functionLinenumber: 3242
    functionLinenumberEnd: 3413
    functionName: OGRDXFLayer::TranslateINSERT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - m_aosAttribs::Clear
    - atoi
    - m_poTemplateFeature::reset
    - UnreadValue
    - OGRDXFLayer::TranslateTEXT
    - DXF_LAYER_READER_ERROR
    - InlineBlocks
    - GetFieldIndex
    - ReadValue
    - OGRDXFLayer::TranslateGenericProperty
    - m_apoAttribs::clear
    - std::move
    - GetFieldAsString
    - OGRDXFInsertTransformer
    - CPLAtof
    - m_poTemplateFeature::get
    - m_apoAttribs::emplace_back
    - m_osBlockName::clear
    - m_aosAttribs::AddString
    - OGRDXFFeature::OGRDXFFeature
    - EQUAL
    - std::unique_ptr<OGRDXFFeature>
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFLayer::TranslateINSERT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poTemplateFeature::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3422,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3441,1
    - Dst: OGRDXFLayer::InsertBlockReference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3443,1
    - Dst: m_aosAttribs::List
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3446,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3448,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3450,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3452,1
    - Dst: OGRDXFFeatureQueue::OGRDXFFeatureQueue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3457,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3460,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3461,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3462,1
    - Dst: ShouldMergeBlockGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3468,1
    - Dst: m_osBlockName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3469,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3475,1
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3477,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3479,1
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3479,1
    - Dst: OGRDXFFeatureQueue::pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3480,1
    - Dst: m_apoAttribs::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3484,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3486,1
    - Dst: CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3492,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3494,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3496,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3505
      start: 3419
    functionDepth: 5
    functionLinenumber: 3419
    functionLinenumberEnd: 3505
    functionName: OGRDXFLayer::GenerateINSERTFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - push
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - CPLError
    - m_osBlockName::c_str
    - InlineBlocks
    - m_aosAttribs::List
    - OGRDXFFeature*::SetField
    - OGRDXFFeatureQueue::empty
    - std::move
    - OGRDXFFeature*::GetGeometryRef
    - CloneDXFFeature
    - CPLGetErrorCounter
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFFeatureQueue::front
    - OGRDXFLayer::InsertBlockReference
    - m_apoAttribs::empty
    - OGRDXFFeatureQueue::OGRDXFFeatureQueue
    - m_poTemplateFeature::CloneDXFFeature
    - ShouldMergeBlockGeometries
    - OGRDXFFeatureQueue::pop
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFLayer::GenerateINSERTFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3522,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3524,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3525,1
    - Dst: OGRDXFFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3527,1
    - Dst: OGRDXFLayer::GenerateINSERTFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3549,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3564,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3573,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3580,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3583,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3592,1
    - Dst: OGRDXFLayer::TranslatePOINT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3594,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3596,1
    - Dst: OGRDXFLayer::TranslateMTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3598,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3600,1
    - Dst: OGRDXFLayer::TranslateTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3602,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3604,1
    - Dst: OGRDXFLayer::TranslateTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3606,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3608,1
    - Dst: OGRDXFLayer::TranslateLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3610,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3612,1
    - Dst: OGRDXFLayer::TranslatePOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3614,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3616,1
    - Dst: OGRDXFLayer::TranslateLWPOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3618,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3620,1
    - Dst: OGRDXFLayer::TranslateMLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3622,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3624,1
    - Dst: OGRDXFLayer::TranslateCIRCLE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3626,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3628,1
    - Dst: OGRDXFLayer::TranslateELLIPSE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3630,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3632,1
    - Dst: OGRDXFLayer::TranslateARC
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3636,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3636,1
    - Dst: OGRDXFLayer::TranslateSPLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3640,1
    - Dst: OGRDXFLayer::Translate3DFACE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3644,1
    - Dst: OGRDXFLayer::TranslateINSERT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3646,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3649,1
    - Dst: OGRDXFLayer::TranslateDIMENSION
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3651,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3653,1
    - Dst: OGRDXFLayer::TranslateHATCH
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3655,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3657,1
    - Dst: OGRDXFLayer::TranslateSOLID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3661,1
    - Dst: OGRDXFLayer::TranslateLEADER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3663,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3665,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3665,1
    - Dst: OGRDXFLayer::TranslateMLEADER
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3667,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3669,1
    - Dst: OGRDXFLayer::TranslateWIPEOUT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3671,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3674,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3674,1
    - Dst: In3DExtensibleMode
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3676,1
    - Dst: OGRDXFLayer::TranslateASMEntity
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3678,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3680,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3682,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3683,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3689,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3691,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3692,1
    - Dst: OGRDXFFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3701,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3511
    functionDepth: 6
    functionLinenumber: 3511
    functionLinenumberEnd: 3705
    functionName: OGRDXFLayer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFLayer::Translate3DFACE
    - OGRDXFLayer::TranslatePOINT
    - UnreadValue
    - CPLDebug
    - OGRDXFLayer::TranslateTEXT
    - DXF_LAYER_READER_ERROR
    - OGRDXFLayer::TranslateMTEXT
    - ReadValue
    - OGRDXFLayer::TranslateMLINE
    - OGRDXFLayer::TranslateLWPOLYLINE
    - OGRDXFLayer::TranslateMLEADER
    - insert
    - OGRDXFLayer::TranslateWIPEOUT
    - OGRDXFLayer::TranslatePOLYLINE
    - OGRDXFLayer::TranslateSOLID
    - OGRDXFLayer::GenerateINSERTFeatures
    - OGRDXFLayer::TranslateLINE
    - OGRDXFLayer::TranslateHATCH
    - OGRDXFLayer::TranslateELLIPSE
    - OGRDXFLayer::TranslateCIRCLE
    - OGRDXFFeature*::SetFID
    - OGRDXFLayer::TranslateASMEntity
    - count
    - empty
    - front
    - OGRDXFLayer::TranslateINSERT
    - OGRDXFLayer::TranslateDIMENSION
    - EQUAL
    - In3DExtensibleMode
    - OGRDXFLayer::TranslateSPLINE
    - OGRDXFLayer::TranslateARC
    - OGRDXFLayer::TranslateLEADER
    - pop
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3716,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3722,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3722,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3723,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3711
    functionDepth: 7
    functionLinenumber: 3711
    functionLinenumberEnd: 3730
    functionName: OGRDXFLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFLayer::GetNextUnfilteredFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDXFLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3739,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp:3741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3744
      start: 3736
    functionDepth: 0
    functionLinenumber: 3736
    functionLinenumberEnd: 3744
    functionName: OGRDXFLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3750
    functionDepth: 0
    functionLinenumber: 3750
    functionLinenumberEnd: 3753
    functionName: OGRDXFLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDXFLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: OGRDXFDataSource::OGRDXFDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFDataSource::OGRDXFDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:42,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:44,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:45,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: OGRDXFDataSource::~OGRDXFDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRDXFDataSource::~OGRDXFDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: OGRDXFDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: OGRDXFDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRDXFDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:91,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:95,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:96,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:97,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:98,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:98,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:100,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:102,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:102,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:104,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:106,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:106,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:108,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:110,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:110,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:112,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:114,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:114,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:116,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:118,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:119,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:120,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:123,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:123,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:129,1
    - Dst: Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:133,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:141,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:146,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:149,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:154,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:156,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:158,1
    - Dst: OGRDXFDataSource::ReadTablesSection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:160,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:162,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:164,1
    - Dst: OGRDXFDataSource::ReadHeaderSection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:175,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:177,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:179,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:188,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:190,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:197,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:199,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:206,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:209,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:211,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:222,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:224,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:226,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:231,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:233,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:235,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:240,1
    - Dst: OGRDXFDataSource::ReadTablesSection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:242,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:244,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:246,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:256,1
    - Dst: OGRDXFBlocksLayer::OGRDXFBlocksLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:256,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:262,1
    - Dst: OGRDXFLayer::OGRDXFLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:262,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:269,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:271,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:278,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:280,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:287,1
    - Dst: OGRDXFDataSource::ReadBlocksSection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:289,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:291,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:293,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:305,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:307,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:314,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:316,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:322,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 115
    argCount: 3
    argNames:
    - pszFilename
    - bHeaderOnly
    - papszOptionsIn
    argTypes:
    - char*
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 325
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 325
    functionName: OGRDXFDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRDXFDataSource::ReadValue
    - CPLTestBool
    - OGRDXFBlocksLayer::OGRDXFBlocksLayer
    - Initialize
    - ResetReading
    - OGRDXFDataSource::ReadBlocksSection
    - CSLFetchNameValueDef
    - OGRDXFDataSource::ReadTablesSection
    - EQUAL
    - VSIFOpenL
    - DXF_READER_ERROR
    - push_back
    - SetDescription
    - CPLGetConfigOption
    - OGRDXFLayer::OGRDXFLayer
    - OGRDXFDataSource::ReadHeaderSection
    linkageType: ''
    returnType: int
    signature: "int OGRDXFDataSource::Open(const char *pszFilename, bool bHeaderOnly,\n
      \                          CSLConstList papszOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:337,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:338,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:341,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:344,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:347,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:356,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:357,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:359,1
    - Dst: OGRDXFDataSource::ReadLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:361,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:364,1
    - Dst: OGRDXFDataSource::ReadLineTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:366,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:369,1
    - Dst: OGRDXFDataSource::ReadTextStyleDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:371,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:374,1
    - Dst: OGRDXFDataSource::ReadDimStyleDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:376,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:383,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:387,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:387,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 389
    functionName: OGRDXFDataSource::ReadTablesSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGRDXFDataSource::ReadLayerDefinition
    - CPLDebug
    - EQUAL
    - DXF_READER_ERROR
    - OGRDXFDataSource::ReadDimStyleDefinition
    - OGRDXFDataSource::ReadTextStyleDefinition
    - OGRDXFDataSource::ReadLineTypeDefinition
    - OGRDXFDataSource::ReadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadTablesSection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:405,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:411,1
    - Dst: OGRDXFDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:411,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:417,1
    - Dst: OGRDXFDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:417,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:424,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:436,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:451,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:455,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:456,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:459,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 461
    functionName: OGRDXFDataSource::ReadLayerDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFDataSource::GetEncoding
    - atoi
    - DXF_READER_ERROR
    - CPLString
    - std::map::empty
    - std::move
    - OGRDXFDataSource::ReadValue
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadLayerDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pszLayer
    - pszProperty
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: OGRDXFDataSource::LookupLayerProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *OGRDXFDataSource::LookupLayerProperty(const char *pszLayer,\n
      \                                                 const char *pszProperty)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:497,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:503,1
    - Dst: OGRDXFDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:503,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:507,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:511,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:512,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:514,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:519,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:530,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:536,1
    - Dst: std::vector::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:538,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:538,1
    - Dst: std::vector::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:539,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:542,1
    - Dst: std::vector::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:546,1
    - Dst: std::rotate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:548,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:548,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:548,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:549,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:552,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:556,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 558
    functionName: OGRDXFDataSource::ReadLineTypeDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - OGRDXFDataSource::GetEncoding
    - std::vector::front
    - std::vector::end
    - std::vector::size
    - std::vector::begin
    - std::vector::back
    - DXF_READER_ERROR
    - CPLString
    - std::move
    - std::vector::push_back
    - std::rotate
    - OGRDXFDataSource::ReadValue
    - std::vector::pop_back
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadLineTypeDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:567,1
    - Dst: std::vector<double>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: OGRDXFDataSource::LookupLineType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector<double>
    - count
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> OGRDXFDataSource::LookupLineType(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:587,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:596,1
    - Dst: OGRDXFDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:597,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:603,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:616,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:642,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:647,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:650,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 653
    functionName: OGRDXFDataSource::ReadTextStyleDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFDataSource::GetEncoding
    - atoi
    - EQUAL
    - DXF_READER_ERROR
    - CPLString
    - std::move
    - OGRDXFDataSource::ReadValue
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadTextStyleDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:666,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszTextStyle
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 669
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 669
    functionName: OGRDXFDataSource::TextStyleExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - count
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::TextStyleExists(const char *pszTextStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:684,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:686,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pszTextStyle
    - pszProperty
    - pszDefault
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: OGRDXFDataSource::LookupTextStyleProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - count
    linkageType: ''
    returnType: char
    signature: "char *OGRDXFDataSource::LookupTextStyleProperty(const char *pszTextStyle,\n
      \                                                     const char *pszProperty,\n
      \                                                     const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszID
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: OGRDXFDataSource::GetTextStyleNameByHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDXFDataSource::GetTextStyleNameByHandle(const char *pszID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACGetDimStylePropertyDefault
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oDimStyleProperties
    argTypes:
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 730
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 730
    functionName: OGRDXFDataSource::PopulateDefaultDimStyleProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - ACGetDimStylePropertyDefault
    linkageType: ''
    returnType: void
    signature: "void OGRDXFDataSource::PopulateDefaultDimStyleProperties(\n    std::map<CPLString,
      CPLString> &oDimStyleProperties)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::PopulateDefaultDimStyleProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:744,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:746,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:752,1
    - Dst: OGRDXFDataSource::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:752,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:764,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:768,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:769,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 774
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 774
    functionName: OGRDXFDataSource::ReadDimStyleDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFDataSource::GetEncoding
    - DXF_READER_ERROR
    - CPLString
    - OGRDXFDataSource::PopulateDefaultDimStyleProperties
    - std::map::empty
    - std::move
    - OGRDXFDataSource::ReadValue
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadDimStyleDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:789,1
    - Dst: OGRDXFDataSource::PopulateDefaultDimStyleProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pszDimStyle
    - oDimStyleProperties
    argTypes:
    - char*
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 799
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 799
    functionName: OGRDXFDataSource::LookupDimStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFDataSource::PopulateDefaultDimStyleProperties
    - count
    linkageType: ''
    returnType: bool
    signature: "bool OGRDXFDataSource::LookupDimStyle(\n    const char *pszDimStyle,\n
      \   std::map<CPLString, CPLString> &oDimStyleProperties)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:811,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:812,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:819,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:821,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:826,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:826,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:831,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:835,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:838,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:841,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:847,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:849,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:850,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:857,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:859,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:864,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:864,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:869,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:874,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:874,1
    - Dst: OGRDXFDataSource::GetVariable
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:880,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:885,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:901,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:902,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:902,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 904
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 904
    functionName: OGRDXFDataSource::ReadHeaderSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - STARTS_WITH_CI
    - c_str
    - OGRDXFDataSource::GetVariable
    - OGRPGTableLayer::SetMetadataItem
    - CPLDebug
    - EQUAL
    - CPLString::c_str
    - DXF_READER_ERROR
    - OGRDXFDataSource::ReadValue
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadHeaderSection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 920
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 920
    functionName: OGRDXFDataSource::GetVariable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - count
    linkageType: ''
    returnType: char
    signature: "char *OGRDXFDataSource::GetVariable(const char *pszName,\n                                          const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:930,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:933,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:934,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:937,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:942,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:946,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:949,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:952,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:957,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:960,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:966,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:969,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:972,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:975,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:978,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:981,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:988,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - poFeatureDefn
    - nFieldModes
    argTypes:
    - OGRFeatureDefn*
    - int
    constantsTouched: []
    func_position:
      end: 994
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 994
    functionName: OGRDXFDataSource::AddStandardFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 3
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFieldDefn::SetSubType
    linkageType: ''
    returnType: void
    signature: "void OGRDXFDataSource::AddStandardFields(OGRFeatureDefn *poFeatureDefn,\n
      \                                        const int nFieldModes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1010,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1012,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1013,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1029,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1032,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1034,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1039,1
    - Dst: OGRDXFDataSource::ResetReadPointer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1049,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1058,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1060,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1067,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1069,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1077,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1087,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1094,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1098,1
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1101,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1105,1
    - Dst: std::copy_n
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1113,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1114,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1118,1
    - Dst: OGRDXFDataSource::ResetReadPointer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1123,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1127,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1129,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp:1130,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 65
    argCount: 2
    argNames:
    - pszEntityHandle
    - pabyBuffer
    argTypes:
    - char*
    - GByte**
    constantsTouched: []
    func_position:
      end: 1133
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1133
    functionName: OGRDXFDataSource::GetEntryFromAcDsDataSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::copy_n
    - CPLHexToBinary
    - CPLString::clear
    - EQUAL
    - begin
    - CPLError
    - resize
    - OGRDXFDataSource::ReadValue
    - CPLFree
    - OGRDXFDataSource::ResetReadPointer
    - data
    - count
    linkageType: ''
    returnType: size_t
    signature: "size_t OGRDXFDataSource::GetEntryFromAcDsDataSection(const char *pszEntityHandle,\n
      \                                             const GByte **pabyBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:32,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:32,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:34,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:35,1
    - Dst: OGRDXFDataSource::AddStandardFields
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - fpIn
    argTypes:
    - OGRDXFWriterDS*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: OGRDXFWriterLayer::OGRDXFWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRDXFDataSource::AddStandardFields
    - CPLTestBool
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterLayer::OGRDXFWriterLayer(OGRDXFWriterDS *poDSIn, VSILFILE
      *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: OGRDXFWriterLayer::~OGRDXFWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterLayer::~OGRDXFWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fpNew
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: OGRDXFWriterLayer::ResetFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFWriterLayer::ResetFP(VSILFILE *fpNew)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:70,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: OGRDXFWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:88,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:88,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:90,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:90,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:92,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:96,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: OGRDXFWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - EQUAL
    - AddFieldDefn
    - CPLError
    - GetFieldIndex
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDXFWriterLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                     int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:113,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:115,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:118,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:122,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:122,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:122,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nCode
    - pszValue
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: OGRDXFWriterLayer::WriteValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - CPLString::c_str
    - CPLString::size
    - VSIFWriteL
    - strlen
    - CPLString::append
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterLayer::WriteValue(int nCode, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:135,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:137,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:137,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:137,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nCode
    - nValue
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: OGRDXFWriterLayer::WriteValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::size
    - CPLString::c_str
    - CPLString::Printf
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterLayer::WriteValue(int nCode, int nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:150,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nCode
    - dfValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: OGRDXFWriterLayer::WriteValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLsnprintf
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterLayer::WriteValue(int nCode, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteEntityID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:173,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:173,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:174,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:176,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:183,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:185,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:195,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:197,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:201,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:202,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:203,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:207,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:208,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:211,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 218
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 218
    functionName: OGRDXFWriterLayer::WriteCore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - CPL_ARRAYSIZE
    - OGRFeature*::GetFID
    - CSLAddString
    - CPLString::replaceAll
    - CSLFindString
    - strlen
    - WriteEntityID
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::WriteCore(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:227,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:228,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:229,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:230,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:230,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:234,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:235,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:237,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:239,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:240,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:242,1
    - Dst: cpl::down_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:244,1
    - Dst: OGRStyleSymbol*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:247,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:248,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:248,1
    - Dst: OGRStyleSymbol*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:248,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:261,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:262,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:263,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:270,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:272,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:272,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:273,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:273,1
    - Dst: OGRPoint*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:276,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:278,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:278,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:292,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:293,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:294,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:304,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:316,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:317,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 322
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 322
    functionName: OGRDXFWriterLayer::WriteINSERT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - OGRStyleMgr::GetPartCount
    - cpl::down_cast<OGRStyleSymbol *>
    - OGRPoint*::getX
    - OGRStyleMgr::InitFromFeature
    - OGRPoint*::getY
    - OGRPoint*::getZ
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::GetStyleString
    - OGRStyleTool*::GetType
    - OGRStyleMgr::OGRStyleMgr
    - OGRStyleMgr::GetPart
    - OGRDXFWriterLayer::WriteCore
    - OGRStyleSymbol*::Color
    - OGRDXFWriterLayer::ColorStringToDXFColor
    - OGRPoint*::getGeometryType
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::WriteINSERT(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:331,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:332,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:333,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:337,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:338,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:340,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:342,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:343,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:345,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:347,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:350,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:351,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:351,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:351,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:355,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:357,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:357,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:358,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:358,1
    - Dst: OGRPoint*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:361,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:363,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 368
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 368
    functionName: OGRDXFWriterLayer::WritePOINT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - OGRStyleMgr::GetPartCount
    - OGRStylePen*::Color
    - OGRStyleMgr::InitFromFeature
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRPoint*::getZ
    - OGRFeature*::GetStyleString
    - OGRStyleTool*::GetType
    - OGRStyleMgr::OGRStyleMgr
    - OGRStyleMgr::GetPart
    - OGRDXFWriterLayer::WriteCore
    - cpl::down_cast<OGRStylePen *>
    - OGRDXFWriterLayer::ColorStringToDXFColor
    - OGRPoint*::getGeometryType
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::WritePOINT(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:383,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:405,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:410,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 422
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 422
    functionName: OGRDXFWriterLayer::TextEscape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLRecodeToWChar
    - CPLString::Printf
    - CPLFree
    - static_cast<char>
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDXFWriterLayer::TextEscape(const char *pszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleLabel*::Bold
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:441,1
    - Dst: OGRStyleLabel*::Italic
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:445,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poLabelTool
    argTypes:
    - OGRStyleLabel*
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: OGRDXFWriterLayer::PrepareTextStyleDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleLabel*::Bold
    - CPLString
    - OGRStyleLabel*::Italic
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> OGRDXFWriterLayer::PrepareTextStyleDefinition(OGRStyleLabel
      *poLabelTool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:465,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:466,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:467,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:473,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:475,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:477,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:479,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:480,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:489,1
    - Dst: cpl::down_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:491,1
    - Dst: OGRStyleLabel*::ForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:499,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:500,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:500,1
    - Dst: OGRStyleLabel*::ForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:500,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:510,1
    - Dst: OGRStyleTool*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:518,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:522,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:537,1
    - Dst: OGRStyleLabel*::SpacingX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:545,1
    - Dst: OGRStyleLabel*::SpacingY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:546,1
    - Dst: OGRDXFWriterLayer::TextEscape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:557,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:558,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:560,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:560,1
    - Dst: CPLString::erase
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:561,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:563,1
    - Dst: OGRDXFWriterLayer::PrepareTextStyleDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:572,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:589,1
    - Dst: oHeaderDS::TextStyleExists
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:590,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:592,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:595,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:603,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:605,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:605,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:606,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:606,1
    - Dst: OGRPoint*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:609,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:611,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:611,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 616
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 616
    functionName: OGRDXFWriterLayer::WriteTEXT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - OGRPoint*::getY
    - OGRStyleMgr::OGRStyleMgr
    - OGRStyleLabel*::SpacingY
    - OGRStyleMgr::GetPartCount
    - CPLString::substr
    - OGRFeature*::GetStyleString
    - OGRDXFWriterLayer::TextEscape
    - CPLString::size
    - OGRStyleLabel*::ForeColor
    - OGRStyleLabel*::SpacingX
    - CPLString::erase
    - std::move
    - cpl::down_cast<OGRStyleLabel *>
    - OGRStyleTool*::SetUnit
    - OGRPoint*::getX
    - OGRStyleMgr::InitFromFeature
    - CPLString::Printf
    - OGRDXFWriterLayer::WriteCore
    - oHeaderDS::TextStyleExists
    - OGRPoint*::getZ
    - OGRFeature*::GetGeometryRef
    - OGRStyleTool*::GetType
    - OGRStyleMgr::GetPart
    - OGRDXFWriterLayer::PrepareTextStyleDefinition
    - OGRDXFWriterLayer::ColorStringToDXFColor
    - OGRPoint*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::WriteTEXT(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:631,1
    - Dst: std::vector<double>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:632,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:648,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:652,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:660,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:660,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:662,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:662,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - poPen
    argTypes:
    - OGRStylePen*
    constantsTouched: []
    func_position:
      end: 668
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 668
    functionName: OGRDXFWriterLayer::PrepareLineTypeDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLString::assign
    - CSLDestroy
    - strchr
    - strlen
    - std::vector::push_back
    - std::vector<double>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> OGRDXFWriterLayer::PrepareLineTypeDefinition(OGRStylePen
      *poPen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:678,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:678,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:685,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - adfA
    - adfB
    argTypes:
    - std::vector<double>
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 690
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 690
    functionName: IsLineTypeProportional
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector<double>::size
    - fabs
    linkageType: ''
    returnType: double
    signature: "double IsLineTypeProportional(const std::vector<double> &adfA,\n                                     const
      std::vector<double> &adfB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:705,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:707,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:712,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:712,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:713,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:713,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:715,1
    - Dst: OGRDXFWriterLayer::WritePOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:719,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:730,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:730,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:731,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:731,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:733,1
    - Dst: OGRDXFWriterLayer::WritePOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:737,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:748,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:748,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:751,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:758,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:761,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:763,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:771,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:772,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:775,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:776,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:777,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:778,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:781,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:782,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:782,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:783,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:785,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:787,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:787,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:789,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:795,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:797,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:799,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:801,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:802,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:809,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:811,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:814,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:815,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:815,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:815,1
    - Dst: OGRStylePen*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:818,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:822,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:822,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:828,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:833,1
    - Dst: oHeaderDS::LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:836,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:838,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:838,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:841,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:844,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:848,1
    - Dst: OGRDXFWriterLayer::PrepareLineTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:850,1
    - Dst: static_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:851,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:853,1
    - Dst: IsLineTypeProportional
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:856,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:859,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:861,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:868,1
    - Dst: OGRDXFWriterLayer::PrepareLineTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:871,1
    - Dst: static_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:871,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:873,1
    - Dst: oHeaderDS::GetLineTypeTable
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:876,1
    - Dst: IsLineTypeProportional
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:879,1
    - Dst: IsLineTypeProportional
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:892,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:907,1
    - Dst: oHeaderDS::LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:908,1
    - Dst: oHeaderDS::LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:912,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:913,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:915,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:918,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:920,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:922,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:931,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:934,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:934,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:938,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:942,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:943,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:944,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:945,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:947,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:947,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:948,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:948,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:953,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:953,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:955,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:961,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:962,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:973,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:974,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:976,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:976,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:977,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:979,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:980,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:982,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:984,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:985,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:986,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:986,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:987,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:987,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:990,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:992,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:992,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:997,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:998,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 151
    argCount: 2
    argNames:
    - poFeature
    - poGeom
    argTypes:
    - OGRFeature*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1002
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 1002
    functionName: OGRDXFWriterLayer::WritePOLYLINE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - OGRFeature*::GetFieldAsString
    - OGRLineString*::getNumPoints
    - OGRStyleMgr::OGRStyleMgr
    - fabs
    - OGRLineString*::getZ
    - IsLineTypeProportional
    - oHeaderDS::LookupLineType
    - CPLString::empty
    - OGRLineString*::getY
    - OGRStyleMgr::GetPartCount
    - OGRLineString*::getX
    - oHeaderDS::GetLineTypeTable
    - OGRFeature*::GetStyleString
    - OGRDXFWriterLayer::PrepareLineTypeDefinition
    - std::move
    - cpl::down_cast<OGRStylePen *>
    - wkbFlatten
    - OGRGeometry*::getGeometryName
    - std::vector::empty
    - OGRDXFWriterLayer::WritePOLYLINE
    - OGRGeometry*::getGeometryType
    - OGRStylePen*::Color
    - OGRStyleMgr::InitFromFeature
    - OGRGeometry*::toGeometryCollection
    - floor
    - OGRLineString*::getGeometryType
    - CPLString::Printf
    - OGRDXFWriterLayer::WriteCore
    - OGRGeometry*::toLineString
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::IsEmpty
    - count
    - OGRStyleTool*::GetType
    - EQUAL
    - OGRGeometry*::toPolygon
    - OGRStyleMgr::GetPart
    - static_cast<OGRStylePen *>
    - OGRStylePen*::SetUnit
    - OGRDXFWriterLayer::ColorStringToDXFColor
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDXFWriterLayer::WritePOLYLINE(OGRFeature *poFeature,\n                                        const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1016,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1018,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1023,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1023,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1026,1
    - Dst: OGRDXFWriterLayer::WriteHATCH
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1028,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1039,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1039,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1040,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1040,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1048,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1049,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1050,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1054,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1055,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1056,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1058,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1060,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1061,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1062,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1064,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1065,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1066,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1072,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1074,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1076,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1078,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1079,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1082,1
    - Dst: cpl::down_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1084,1
    - Dst: OGRStyleBrush*::ForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1087,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1088,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1088,1
    - Dst: OGRStyleBrush*::ForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1088,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1097,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1102,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1103,1
    - Dst: OGRDXFWriterLayer::ColorStringToDXFColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1103,1
    - Dst: OGRStylePen*::Color
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1103,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1108,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1108,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1114,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1116,1
    - Dst: oHeaderDS::LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1117,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1118,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1121,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1123,1
    - Dst: OGRDXFWriterLayer::PrepareLineTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1125,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1132,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1132,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1146,1
    - Dst: oHeaderDS::LookupLineType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1147,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1152,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1155,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1164,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1166,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1166,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1170,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1171,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1172,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1173,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1173,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1175,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1177,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1177,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1178,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1178,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1181,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1184,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1185,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1186,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1194,1
    - Dst: OGRDXFWriterLayer::WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1195,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1196,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1197,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1197,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1198,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1200,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1201,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1203,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1205,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1206,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1207,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1207,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1208,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1208,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1211,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1213,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1213,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1218,1
    - Dst: OGRDXFWriterLayer::WriteValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1219,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 104
    argCount: 2
    argNames:
    - poFeature
    - poGeom
    argTypes:
    - OGRFeature*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1223
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1223
    functionName: OGRDXFWriterLayer::WriteHATCH
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFWriterLayer::WriteValue
    - OGRFeature*::GetFieldAsString
    - getY
    - OGRPolygon*::getNumInteriorRings
    - OGRStyleMgr::OGRStyleMgr
    - oHeaderDS::LookupLineType
    - CPLString::empty
    - OGRStyleMgr::GetPartCount
    - end
    - OGRGeometry*::toMultiPolygon
    - OGRFeature*::GetStyleString
    - OGRDXFWriterLayer::WriteHATCH
    - OGRDXFWriterLayer::PrepareLineTypeDefinition
    - cpl::down_cast<OGRStyleBrush *>
    - wkbFlatten
    - OGRGeometry*::getGeometryName
    - OGRGeometry*::getGeometryType
    - OGRStylePen*::Color
    - OGRStyleMgr::InitFromFeature
    - getNumPoints
    - getGeometryType
    - floor
    - CPLString::Printf
    - getZ
    - begin
    - OGRStyleBrush*::ForeColor
    - OGRDXFWriterLayer::WriteCore
    - getX
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::IsEmpty
    - count
    - OGRStyleTool*::GetType
    - EQUAL
    - OGRGeometry*::toPolygon
    - OGRStyleMgr::GetPart
    - OGRDXFWriterLayer::ColorStringToDXFColor
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::WriteHATCH(OGRFeature *poFeature, OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1232,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1237,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1240,1
    - Dst: UpdateExtent
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1241,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1243,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1243,1
    - Dst: oHeaderDS::LookupBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1252,1
    - Dst: poBlocksLayer::FindBlock
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1255,1
    - Dst: OGRDXFWriterLayer::WriteINSERT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1260,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1262,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1263,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1263,1
    - Dst: OGRDXFWriterLayer::WriteTEXT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1264,1
    - Dst: OGRDXFWriterLayer::WritePOINT
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1266,1
    - Dst: OGRDXFWriterLayer::WritePOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1269,1
    - Dst: OGRDXFWriterLayer::WriteHATCH
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1275,1
    - Dst: OGRDXFWriterLayer::WritePOLYLINE
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1277,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1284,1
    - Dst: OGRFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1287,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1289,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1303,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp:1305,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1308
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1308
    functionName: OGRDXFWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRDXFWriterLayer::WriteINSERT
    - oHeaderDS::LookupBlock
    - OGRFeature*::SetGeometry
    - OGRFeature*::GetStyleString
    - OGRDXFWriterLayer::WriteHATCH
    - wkbFlatten
    - OGRFeature*::SetGeometryDirectly
    - OGRDXFWriterLayer::WritePOLYLINE
    - CreateFeature
    - OGRGeometry*::getGeometryType
    - STARTS_WITH_CI
    - poBlocksLayer::FindBlock
    - OGRDXFWriterLayer::WriteTEXT
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::IsEmpty
    - OGRGeometryTypeToName
    - UpdateExtent
    - OGRFeature*::StealGeometry
    - OGRDXFWriterLayer::WritePOINT
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDXFWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pszRGB
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1356
    functionName: OGRDXFWriterLayer::ColorStringToDXFColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRDXFWriterLayer::ColorStringToDXFColor(const char *pszRGB)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: OGRDXFWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfwriterlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDXFWriterLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: OGRDXFReader::OGRDXFReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFReader::OGRDXFReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: OGRDXFReader::~OGRDXFReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFReader::~OGRDXFReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fpIn
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: OGRDXFReader::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFReader::Initialize(VSILFILE *fpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - iNewOffset
    - nNewLineNumber
    argTypes:
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: OGRDXFReader::ResetReadPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: "void OGRDXFReader::ResetReadPointer(unsigned int iNewOffset,\n                                    int
      nNewLineNumber /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:80,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:81,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:83,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:91,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:91,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:94,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: OGRDXFReader::LoadDiskChunk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - static_cast<int>
    - memmove
    - VSIFReadL
    linkageType: ''
    returnType: void
    signature: void OGRDXFReader::LoadDiskChunk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFReader::LoadDiskChunk
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:111,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:166,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:171,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:172,1
    - Dst: CPLString::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:173,1
    - Dst: OGRDXFReader::LoadDiskChunk
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:176,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:193,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:195,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:195,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:200,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:200,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:202,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:208,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:209,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:211,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:212,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:215,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:220,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:244,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 58
    argCount: 2
    argNames:
    - pszValueBuf
    - nValueBufSize
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 248
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 248
    functionName: OGRDXFReader::ReadValueRaw
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFReader::LoadDiskChunk
    - static_cast<int>
    - std::copy
    - strncpy
    - CPLDebug
    - CPLString::c_str
    - CPLAssert
    - strlen
    - CPLError
    - CPLString::begin
    - CPLString::resize
    - CPLString::empty
    - CPLString::length
    linkageType: ''
    returnType: int
    signature: int OGRDXFReader::ReadValueRaw(char *pszValueBuf, int nValueBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFReader::ReadValueRaw
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pszValueBuf
    - nValueBufSize
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 264
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 264
    functionName: OGRDXFReader::ReadValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 2
    functionsReached:
    - OGRDXFReader::ReadValueRaw
    linkageType: ''
    returnType: int
    signature: int OGRDXFReader::ReadValue(char *pszValueBuf, int nValueBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:278,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:282,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: OGRDXFReader::UnreadValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRDXFReader::UnreadValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DXFSmoothPolylineVertex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXFSmoothPolylineVertex::set
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dfX
    - dfY
    - dfZ
    - dfBulge
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: DXFSmoothPolylineVertex::DXFSmoothPolylineVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 1
    functionsReached:
    - DXFSmoothPolylineVertex::set
    linkageType: ''
    returnType: void
    signature: void DXFSmoothPolylineVertex(double dfX, double dfY, double dfZ, double
      dfBulge)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfX
    - dfY
    - dfZ
    - dfBulge
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: DXFSmoothPolylineVertex::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(double dfX, double dfY, double dfZ, double dfBulge)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: DXFSmoothPolylineVertex::scale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scale(double s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: DXFSmoothPolylineVertex::length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: DXFSmoothPolylineVertex::normalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void normalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - DXFSmoothPolylineVertex
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: DXFSmoothPolylineVertex::shares_2D_pos
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shares_2D_pos(const DXFSmoothPolylineVertex &v) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: DXFSmoothPolyline::DXFSmoothPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DXFSmoothPolyline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXFSmoothPolyline::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: DXFSmoothPolyline::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 3
    functionsReached:
    - DXFSmoothPolyline::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: DXFSmoothPolyline::SetSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: void SetSize(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:115,1
    - Dst: DXFSmoothPolylineVertex
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dfX
    - dfY
    - dfZ
    - dfBulge
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: DXFSmoothPolyline::AddPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 5
    functionsReached:
    - DXFSmoothPolylineVertex
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddPoint(double dfX, double dfY, double dfZ, double dfBulge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: DXFSmoothPolyline::IsEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 4
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: DXFSmoothPolyline::setCoordinateDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setCoordinateDimension(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bVal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_polyline_smooth.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseMaxGapWhenTessellatingArcs(bool bVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:25,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:54,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:56,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:56,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 58
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 58
    functionName: OGRDXFDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH_CI
    - static_cast<int>
    - strlen
    linkageType: ''
    returnType: int
    signature: int OGRDXFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:67,1
    - Dst: OGRDXFDataSource::OGRDXFDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:70,1
    - Dst: OGRDXFDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: OGRDXFDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFDriverIdentify
    - OGRDXFDataSource::OGRDXFDataSource
    - OGRDXFDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDXFDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFWriterDS::OGRDXFWriterDS
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:91,1
    - Dst: OGRDXFWriterDS*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: OGRDXFDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFWriterDS::OGRDXFWriterDS
    - OGRDXFWriterDS*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRDXFDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:109,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:112,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:118,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:120,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:123,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:185,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:188,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:189,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:190,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:191,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:192,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 199
    functionName: RegisterOGRDXF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRDXF()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poFeatureDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: OGRDXFFeature::OGRDXFFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeature::OGRDXFFeature(OGRFeatureDefn *poFeatureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: OGRDXFFeature::~OGRDXFFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeature::~OGRDXFFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:37,1
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:37,1
    - Dst: CopySelfTo
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:41,1
    - Dst: std::unique_ptr<OGRDXFAffineTransform>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:58,1
    - Dst: OGRDXFAffineTransform::OGRDXFAffineTransform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:59,1
    - Dst: OGRDXFFeature*::apoAttribFeatures::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:65,1
    - Dst: OGRDXFFeature::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 70
    functionName: OGRDXFFeature::CloneDXFFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRDXFAffineTransform>
    - CopySelfTo
    - GetDefnRef
    - OGRDXFFeature::OGRDXFFeature
    - OGRDXFAffineTransform::OGRDXFAffineTransform
    - OGRDXFFeature*::apoAttribFeatures::emplace_back
    - OGRDXFFeature::CloneDXFFeature
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFFeature::CloneDXFFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:85,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:93,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:95,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:102,1
    - Dst: OGRGeometry*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: OGRDXFFeature::ApplyOCSTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 0
    functionsReached:
    - ToArray
    - OGRGeometry*::flattenTo2D
    - OGRGeometry*::transform
    - OGRGeometry*::set3D
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeature::ApplyOCSTransformer(OGRGeometry *const poGeometry)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:118,1
    - Dst: OGRDXFOCSTransformer::ComposeOnto
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - OGRDXFAffineTransform*
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: OGRDXFFeature::ApplyOCSTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 0
    functionsReached:
    - ToArray
    - OGRDXFOCSTransformer::ComposeOnto
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeature::ApplyOCSTransformer(OGRDXFAffineTransform *const
      poCT) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:139,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:147,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:149,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:159,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:165,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:175,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:175,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:192,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:194,1
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:197,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:199,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:234,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:237,1
    - Dst: OGRDXFFeature*::oStyleProperties::count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:245,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:248,1
    - Dst: OGRDXFFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:268,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:275,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:290,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:314,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp:320,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 2
    argNames:
    - poDS
    - poBlockFeature
    argTypes:
    - OGRDXFDataSource*
    - OGRDXFFeature*
    constantsTouched: []
    func_position:
      end: 329
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 329
    functionName: OGRDXFFeature::GetColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFFeature*::GetFieldAsString
    - atoi
    - CPLString::Printf
    - EQUAL
    - GetFieldAsString
    - OGRDXFFeature*::oStyleProperties::count
    - count
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRDXFFeature::GetColor(OGRDXFDataSource *const poDS,\n
      \                       OGRDXFFeature *const poBlockFeature /* = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: OGRDXFInsertTransformer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached:
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *OGRDXFInsertTransformer::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Det2x2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Det2x2(double a, double b, double c, double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - vResult
    argTypes:
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: CrossProduct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CrossProduct(const double *a, const double *b, double *vResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - adfV
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: Scale2Unit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scale2Unit(double *adfV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Scale2Unit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:63,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:64,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:66,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:66,1
    - Dst: CrossProduct
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:67,1
    - Dst: CrossProduct
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:69,1
    - Dst: Scale2Unit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:71,1
    - Dst: CrossProduct
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:72,1
    - Dst: Scale2Unit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:73,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:98,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:99,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:100,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:102,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:103,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:104,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:106,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:107,1
    - Dst: Det2x2
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - adfNIn
    - bInverse
    argTypes:
    - double[]
    - bool
    constantsTouched: []
    func_position:
      end: 111
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 111
    functionName: OGRDXFOCSTransformer::OGRDXFOCSTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached:
    - CrossProduct
    - std::abs
    - Scale2Unit
    - memcpy
    - Det2x2
    linkageType: ''
    returnType: void
    signature: "void OGRDXFOCSTransformer::OGRDXFOCSTransformer(double adfNIn[3],\n
      \                                          bool bInverse /* = false */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - nCount
    - adfX
    - adfY
    - adfZ
    - pabSuccess
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: OGRDXFOCSTransformer::Transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGRDXFOCSTransformer::Transform(size_t nCount, double *adfX, double
      *adfY,\n                                    double *adfZ, double * /* adfT */,\n
      \                                   int *pabSuccess /* = nullptr */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - nCount
    - adfX
    - adfY
    - adfZ
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: OGRDXFOCSTransformer::InverseTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGRDXFOCSTransformer::InverseTransform(size_t nCount, double *adfX,\n
      \                                          double *adfY, double *adfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - oCT
    argTypes:
    - OGRDXFAffineTransform
    constantsTouched: []
    func_position:
      end: 202
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 202
    functionName: OGRDXFOCSTransformer::ComposeOnto
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_ocstransformer.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGRDXFOCSTransformer::ComposeOnto(OGRDXFAffineTransform &oCT)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: PointDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double PointDist(double x1, double y1, double x2, double y2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:44,1
    - Dst: PopulateDefaultDimStyleProperties
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:65,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:67,1
    - Dst: LookupDimStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:79,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:83,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:87,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:95,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:99,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:107,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:111,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:119,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:139,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:153,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:161,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:167,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:172,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:178,1
    - Dst: OGRDXFLayer::InsertBlockInline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:184,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:185,1
    - Dst: OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:185,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:311,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:312,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:315,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:316,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:317,1
    - Dst: OGRDXFLayer::InsertArrowhead
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:320,1
    - Dst: OGRDXFLayer::InsertArrowhead
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:321,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:324,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:326,1
    - Dst: OGRLineString::get_Length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:328,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:330,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:334,1
    - Dst: OGRLineString::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:336,1
    - Dst: OGRLineString::get_Length
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:338,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:340,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:343,1
    - Dst: OGRDXFLayer::PrepareLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:345,1
    - Dst: OGRDXFFeature*::CloneDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:363,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:365,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:365,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:367,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:374,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:374,1
    - Dst: OGRDXFLayer::FormatDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:380,1
    - Dst: PointDist
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:381,1
    - Dst: CPLString::replace
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:383,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:384,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:384,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:390,1
    - Dst: OGRDXFLayer::TextUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:391,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:391,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:411,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:412,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:417,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:418,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:421,1
    - Dst: OGRDXFFeature*::GetColor
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:423,1
    - Dst: OGRDXFFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:427,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:429,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 432
    functionName: OGRDXFLayer::TranslateDIMENSION
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp
    functionUses: 1
    functionsReached:
    - push
    - UnreadValue
    - OGRDXFLayer::InsertArrowhead
    - CPLString
    - DXF_LAYER_READER_ERROR
    - CPLString::empty
    - ReadValue
    - OGRLineString::setPoint
    - CPLString::replace
    - OGRMultiLineString*::addGeometry
    - OGRDXFLayer::TextUnescape
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFLayer::PrepareLineStyle
    - OGRDXFFeature*::SetField
    - OGRPoint::OGRPoint
    - CPLString::c_str
    - std::move
    - OGRDXFLayer::FormatDimension
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - CPLString::length
    - CPLAtof
    - OGRDXFInsertTransformer
    - OGRDXFFeature*::CloneDXFFeature
    - PointDist
    - CPLString::Printf
    - OGRDXFFeature*::SetStyleString
    - CPLGetErrorCounter
    - OGRDXFLayer::InsertBlockInline
    - OGRDXFFeature::OGRDXFFeature
    - PopulateDefaultDimStyleProperties
    - OGRLineString::get_Length
    - LookupDimStyle
    - OGRDXFFeature*::SetGeometryDirectly
    - OGRDXFFeature*::GetColor
    - EQUAL
    - CPLsnprintf
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateDIMENSION()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:455,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - osText
    - dfValue
    - nPrecision
    argTypes:
    - CPLString
    - double
    - int
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: OGRDXFLayer::FormatDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_dimension.cpp
    functionUses: 1
    functionsReached:
    - CPLsnprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void OGRDXFLayer::FormatDimension(CPLString &osText, const double
      dfValue,\n                                  int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: DXFBlockDefinition::DXFBlockDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DXFBlockDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: OGRDXFFeatureQueue::OGRDXFFeatureQueue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFFeatureQueue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeatureQueue::front
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OGRDXFFeatureQueue::front
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 5
    functionsReached:
    - OGRDXFFeatureQueue::front
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *front() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeatureQueue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: OGRDXFFeatureQueue::empty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 6
    functionsReached:
    - OGRDXFFeatureQueue::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeatureQueue::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: OGRDXFFeatureQueue::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 1
    functionsReached:
    - OGRDXFFeatureQueue::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: OGRDXFBlocksLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: OGRDXFInsertTransformer::OGRDXFInsertTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFInsertTransformer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: OGRDXFInsertTransformer::GetOffsetTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 1
    functionsReached:
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    linkageType: ''
    returnType: OGRDXFInsertTransformer
    signature: OGRDXFInsertTransformer GetOffsetTransformer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: OGRDXFInsertTransformer::GetRotateScaleTransformer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 1
    functionsReached:
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    linkageType: ''
    returnType: OGRDXFInsertTransformer
    signature: OGRDXFInsertTransformer GetRotateScaleTransformer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: OGRDXFInsertTransformer::GetSourceCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSourceCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: OGRDXFInsertTransformer::GetTargetCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetTargetCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - nCount
    - x
    - y
    - z
    - pabSuccess
    argTypes:
    - size_t
    - double*
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: OGRDXFInsertTransformer::Transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int Transform(size_t nCount, double *x, double *y, double *z,\n                  double
      * /* t */, int *pabSuccess) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: OGRDXFInsertTransformer::GetInverse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *GetInverse() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: OGRDXFAffineTransform::OGRDXFAffineTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDXFAffineTransform()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:221,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:222,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:223,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:224,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:227,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:228,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:229,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:230,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:233,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:234,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:235,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:236,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:239,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:240,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:242,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:243,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - oCT
    argTypes:
    - OGRDXFInsertTransformer
    constantsTouched: []
    func_position:
      end: 248
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 248
    functionName: OGRDXFAffineTransform::ComposeWith
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - sin
    - cos
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ComposeWith(const OGRDXFInsertTransformer &oCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poFeature
    - pszFieldName
    argTypes:
    - OGRFeature*
    - char*
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: OGRDXFAffineTransform::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: void SetField(OGRFeature *poFeature, const char *pszFieldName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: OGRDXFOCSTransformer::GetSourceCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSourceCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: OGRDXFOCSTransformer::GetTargetCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetTargetCS() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFOCSTransformer::OGRDXFOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: OGRDXFOCSTransformer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - OGRDXFOCSTransformer::OGRDXFOCSTransformer
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *Clone() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: OGRDXFOCSTransformer::GetInverse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: OGRCoordinateTransformation *GetInverse() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: DXFTriple
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DXFTriple()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: DXFTriple
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DXFTriple(double x, double y, double z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - adfOut
    argTypes:
    - double[]
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: ToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ToArray(double adfOut[3]) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: '&operator*=(const double dfValue)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DXFTriple
    signature: DXFTriple &operator*=(const double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: '&operator/=(const double dfValue)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DXFTriple
    signature: DXFTriple &operator/=(const double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - DXFTriple
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: operator==(const DXFTriple &oOther) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const DXFTriple &oOther) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: OGRDXFFeature::GetOCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DXFTriple
    signature: DXFTriple GetOCS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: OGRDXFFeature::IsBlockReference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBlockReference() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: OGRDXFFeature::GetBlockName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetBlockName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: OGRDXFFeature::GetBlockAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetBlockAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: OGRDXFFeature::GetBlockScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DXFTriple
    signature: DXFTriple GetBlockScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: OGRDXFFeature::GetInsertOCSCoords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DXFTriple
    signature: DXFTriple GetInsertOCSCoords() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: OGRDXFFeature::GetAttributeTag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetAttributeTag() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: '&GetAttribFeatures() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<OGRDXFFeature>>
    signature: std::vector<std::unique_ptr<OGRDXFFeature>> &GetAttribFeatures() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oTriple
    argTypes:
    - DXFTriple
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: OGRDXFFeature::SetInsertOCSCoords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetInsertOCSCoords(const DXFTriple &oTriple)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: OGRDXFLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:681,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: OGRDXFDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: OGRDXFDataSource::InlineBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool InlineBlocks() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: OGRDXFDataSource::ShouldMergeBlockGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShouldMergeBlockGeometries() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: OGRDXFDataSource::ShouldTranslateEscapes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShouldTranslateEscapes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: OGRDXFDataSource::ShouldIncludeRawCodeValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShouldIncludeRawCodeValues() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: OGRDXFDataSource::In3DExtensibleMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool In3DExtensibleMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: OGRDXFDataSource::ClosedLineAsPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClosedLineAsPolygon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: OGRDXFDataSource::HatchTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double HatchTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: '&GetBlockMap()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, DXFBlockDefinition>
    signature: std::map<CPLString, DXFBlockDefinition> &GetBlockMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: OGRDXFDataSource::PopBlockInsertion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void PopBlockInsertion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: '&GetLineTypeTable() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, std::vector<double>>
    signature: std::map<CPLString, std::vector<double>> &GetLineTypeTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: OGRDXFDataSource::GetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetEncoding()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 785
    functionName: OGRDXFDataSource::GetLineNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLineNumber()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszValueBuffer
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: OGRDXFDataSource::ReadValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 9
    functionsReached:
    - OGRDXFDataSource::ReadValue
    linkageType: ''
    returnType: int
    signature: int ReadValue(char *pszValueBuffer, int nValueBufferSize = 81)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ResetReadPointer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 795
    functionName: OGRDXFDataSource::RestartEntities
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached:
    - OGRDXFDataSource::ResetReadPointer
    linkageType: ''
    returnType: void
    signature: void RestartEntities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 800
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 800
    functionName: OGRDXFDataSource::UnreadValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 6
    functionsReached:
    - OGRDXFDataSource::UnreadValue
    linkageType: ''
    returnType: void
    signature: void UnreadValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFDataSource::ResetReadPointer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iNewOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: OGRDXFDataSource::ResetReadPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 3
    functionsReached:
    - OGRDXFDataSource::ResetReadPointer
    linkageType: ''
    returnType: void
    signature: void ResetReadPointer(int iNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 849
    functionName: OGRDXFWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: OGRDXFWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 859
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 859
    functionName: OGRDXFWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: '&GetNewLineTypeMap()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, std::vector<double>>
    signature: std::map<CPLString, std::vector<double>> &GetNewLineTypeMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 878
    functionName: '&GetNewTextStyleMap()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, std::map<CPLString, CPLString>>
    signature: std::map<CPLString, std::map<CPLString, CPLString>> &GetNewTextStyleMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: OGRDXFBlocksWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: OGRDXFBlocksWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: OGRDXFBlocksWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRDXFLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:34,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:34,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:41,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:45,1
    - Dst: OGRDXFInsertTransformer::OGRDXFInsertTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:52,1
    - Dst: OGRDXFDataSource::ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:54,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:68,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:72,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:76,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:90,1
    - Dst: OGRDXFDataSource::UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:93,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:95,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:95,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:98,1
    - Dst: OGRDXFDataSource::PushBlockInsertion
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:104,1
    - Dst: OGRDXFLayer*::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:116,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:121,1
    - Dst: OGRDXFFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:126,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:128,1
    - Dst: OGRDXFFeature*::IsBlockReference
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:132,1
    - Dst: OGRDXFFeature*::GetInsertOCSCoords
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:134,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:136,1
    - Dst: OGRDXFFeature*::SetInsertOCSCoords
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:137,1
    - Dst: DXFTriple
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:138,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:138,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:138,1
    - Dst: OGRPoint::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:138,1
    - Dst: apoFeatures::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:141,1
    - Dst: OGRDXFDataSource::PopBlockInsertion
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:145,1
    - Dst: DXF_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:150,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:154,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:155,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 161
    functionName: OGRDXFDataSource::ReadBlocksSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp
    functionUses: 1
    functionsReached:
    - OGRDXFLayer*::GetNextUnfilteredFeature
    - OGRDXFDataSource::PushBlockInsertion
    - CPLDebug
    - OGRDXFInsertTransformer::OGRDXFInsertTransformer
    - CPLError
    - end
    - OGRPoint::getY
    - find
    - CPLString::c_str
    - OGRGeometry*::transform
    - GetLayerByName
    - OGRDXFFeature*::GetGeometryRef
    - apoFeatures::push_back
    - static_cast<OGRDXFLayer *>
    - CPLAtof
    - DXFTriple
    - OGRPoint::getX
    - OGRDXFFeature*::IsBlockReference
    - OGRDXFDataSource::ReadValue
    - OGRDXFDataSource::UnreadValue
    - size
    - OGRDXFDataSource::PopBlockInsertion
    - EQUAL
    - DXF_READER_ERROR
    - OGRDXFFeature*::GetInsertOCSCoords
    - OGRPoint::getZ
    - OGRDXFFeature*::SetInsertOCSCoords
    - OGRPoint::transform
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::ReadBlocksSection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: OGRDXFDataSource::LookupBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: DXFBlockDefinition
    signature: DXFBlockDefinition *OGRDXFDataSource::LookupBlock(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszID
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: OGRDXFDataSource::GetBlockNameByRecordHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRDXFDataSource::GetBlockNameByRecordHandle(const char *pszID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:214,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:215,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:215,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:215,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:218,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - osBlockName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 226
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 226
    functionName: OGRDXFDataSource::PushBlockInsertion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp
    functionUses: 1
    functionsReached:
    - size
    - end
    - begin
    - std::find
    - push_back
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRDXFDataSource::PushBlockInsertion(const CPLString &osBlockName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:236,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:238,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: DXFBlockDefinition::~DXFBlockDefinition()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_blockmap.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    linkageType: ''
    returnType: void
    signature: void DXFBlockDefinition::~DXFBlockDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDXFFeature::OGRDXFFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:37,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:42,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:44,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:50,1
    - Dst: OGRDXFFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:59,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:59,1
    - Dst: OGRDXFLayer::CollectBoundaryPath
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:69,1
    - Dst: OGRDXFLayer::TranslateGenericProperty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:76,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:82,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:88,1
    - Dst: OGRGeometryCollection::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:99,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:100,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:110,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:115,1
    - Dst: OGRGeometryCollection::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:116,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:117,1
    - Dst: OGRGeometryCollection::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:117,1
    - Dst: OGRDXFFeature*::ApplyOCSTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:121,1
    - Dst: OGRDXFFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:122,1
    - Dst: OGRDXFLayer::PrepareBrushStyle
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:124,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 127
    functionName: OGRDXFLayer::TranslateHATCH
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection::getNumGeometries
    - OGRBuildPolygonFromEdges
    - UnreadValue
    - DXF_LAYER_READER_ERROR
    - ReadValue
    - OGRMultiLineString*::addGeometry
    - OGRDXFLayer::TranslateGenericProperty
    - OGRDXFFeature*::SetField
    - CPLString::c_str
    - OGRMultiLineString::OGRMultiLineString
    - CPLAtof
    - OGRGeometryCollection::getGeometryRef
    - OGRGeometryCollection::getEnvelope
    - OGRDXFFeature::OGRDXFFeature
    - OGRDXFLayer::CollectBoundaryPath
    - OGRDXFFeature*::ApplyOCSTransformer
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRDXFFeature*::SetGeometryDirectly
    - max
    - OGRDXFLayer::PrepareBrushStyle
    linkageType: ''
    returnType: OGRDXFFeature
    signature: OGRDXFFeature *OGRDXFLayer::TranslateHATCH()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:145,1
    - Dst: OGRDXFLayer::CollectPolylinePath
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:155,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:164,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:167,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:188,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:191,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:206,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:207,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:213,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:214,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:220,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:221,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:227,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:228,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:232,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:234,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:235,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:237,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:248,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:249,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:255,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:256,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:262,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:263,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:269,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:270,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:276,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:277,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:283,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:284,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:286,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:298,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:300,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:302,1
    - Dst: OGRGeometry*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:306,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:308,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:325,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:326,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:332,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:333,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:339,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:340,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:346,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:347,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:353,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:354,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:360,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:361,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:367,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:368,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:374,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:375,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:377,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:400,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:401,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:401,1
    - Dst: std::signbit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:402,1
    - Dst: atan
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:404,1
    - Dst: tan
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:404,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:406,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:407,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:407,1
    - Dst: std::signbit
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:408,1
    - Dst: atan
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:410,1
    - Dst: tan
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:410,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:413,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:415,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:418,1
    - Dst: OGRGeometry*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:422,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:424,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:441,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:442,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:447,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:449,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:454,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:455,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:461,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:462,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:468,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:474,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:474,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:486,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:486,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:488,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:491,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:491,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:496,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:499,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:502,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:502,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:503,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:513,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:515,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:517,1
    - Dst: OGRDXFLayer::InsertSplineWithChecks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:520,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:526,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:530,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:530,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:535,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:543,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:550,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:555,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:563,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 180
    argCount: 2
    argNames:
    - poGC
    - dfElevation
    argTypes:
    - OGRGeometryCollection*
    - double
    constantsTouched: []
    func_position:
      end: 569
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 569
    functionName: OGRDXFLayer::CollectBoundaryPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - UnreadValue
    - CPLDebug
    - round
    - DXF_LAYER_READER_ERROR
    - std::vector::push_back
    - InlineBlocks
    - ReadValue
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometry*::flattenTo2D
    - fmod
    - OGRLineString::OGRLineString
    - CPLAtof
    - tan
    - std::signbit
    - OGRDXFLayer::InsertSplineWithChecks
    - OGRLineString*::addPoint
    - auto::release
    - OGRDXFLayer::CollectPolylinePath
    - OGRGeometryFactory::approximateArcAngles
    - atan
    - fabs
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDXFLayer::CollectBoundaryPath(OGRGeometryCollection *poGC,\n
      \                                       const double dfElevation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DXFSmoothPolyline::DXFSmoothPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:581,1
    - Dst: DXFSmoothPolyline::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:592,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:597,1
    - Dst: DXFSmoothPolyline::size
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:599,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:605,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:609,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:609,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:613,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:613,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:619,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:623,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:630,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:634,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:638,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:646,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:649,1
    - Dst: DXF_LAYER_READER_ERROR
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:662,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:667,1
    - Dst: DXFSmoothPolyline::AddPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:670,1
    - Dst: DXFSmoothPolyline::Close
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:673,1
    - Dst: DXFSmoothPolyline::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:675,1
    - Dst: DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:683,1
    - Dst: InlineBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:683,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:684,1
    - Dst: DXFSmoothPolyline::Tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:684,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:690,1
    - Dst: UnreadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:695,1
    - Dst: ReadValue
      Src: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp:703,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 2
    argNames:
    - poGC
    - dfElevation
    argTypes:
    - OGRGeometryCollection*
    - double
    constantsTouched: []
    func_position:
      end: 708
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 708
    functionName: OGRDXFLayer::CollectPolylinePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp
    functionUses: 1
    functionsReached:
    - ReadValue
    - CPLAtof
    - DXFSmoothPolyline::Close
    - OGRGeometryCollection*::addGeometryDirectly
    - DXFSmoothPolyline::size
    - atoi
    - DXFSmoothPolyline::AddPoint
    - UnreadValue
    - DXFSmoothPolyline::Tessellate
    - DXFSmoothPolyline::SetUseMaxGapWhenTessellatingArcs
    - DXFSmoothPolyline::DXFSmoothPolyline
    - DXFSmoothPolyline::setCoordinateDimension
    - DXF_LAYER_READER_ERROR
    - InlineBlocks
    - DXFSmoothPolyline::IsEmpty
    - CPL_TO_BOOL
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDXFLayer::CollectPolylinePath(OGRGeometryCollection *poGC,\n
      \                                       const double dfElevation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OGRDGNLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogr_dgn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: OGRDGNDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogr_dgn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: '&GetEncoding() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogr_dgn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pnSize
    argTypes:
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: DGNGetSeed2D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *DGNGetSeed2D(unsigned int *pnSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pnSize
    argTypes:
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: DGNGetSeed3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *DGNGetSeed3D(unsigned int *pnSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:28,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:38,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:38,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:44,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:48,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:52,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:55,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:60,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:60,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:61,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:68,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:69,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:70,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:71,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:72,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:77,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:78,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:79,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:80,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:81,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:86,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:87,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:88,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:89,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:90,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:95,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:96,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:97,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:98,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:99,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:104,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:105,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:106,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:107,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:108,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:113,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:114,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:115,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:116,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:117,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:122,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:123,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:124,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:125,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:126,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:131,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:132,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:133,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:134,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:135,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:140,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:141,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:142,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:143,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:144,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:149,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:150,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:151,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:152,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:153,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:154,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 67
    argCount: 4
    argNames:
    - poDS
    - pszName
    - hDGNIn
    - bUpdateIn
    argTypes:
    - OGRDGNDataSource*
    - char*
    - DGNHandle
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 167
    functionName: OGRDGNLayer::OGRDGNLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<char *>
    - CPLStrdup
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - EQUAL
    - Reference
    - OGRFieldDefn::SetName
    - AddFieldDefn
    - CPLError
    - SetDescription
    - OGRFeature::OGRFeature
    - CPLGetConfigOption
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRDGNLayer::OGRDGNLayer(OGRDGNDataSource *poDS, const char *pszName,\n
      \                        DGNHandle hDGNIn, int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:178,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:179,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:179,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:184,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: OGRDGNLayer::~OGRDGNLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRDGNLayer::~OGRDGNLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:196,1
    - Dst: DGNSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:201,1
    - Dst: DGNSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:207,1
    - Dst: OGRDGNLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 212
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 212
    functionName: OGRDGNLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRDGNLayer::ResetReading
    - DGNSetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDGNLayer::ISetSpatialFilter(int, const OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNRewind
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: OGRDGNLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 1
    functionsReached:
    - DGNRewind
    linkageType: ''
    returnType: void
    signature: void OGRDGNLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGotoElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:232,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:238,1
    - Dst: OGRDGNLayer::ElementToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:239,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:240,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 252
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 252
    functionName: OGRDGNLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNLayer::ElementToFeature
    - DGNFreeElement
    - OGRFeature*::GetFID
    - DGNGotoElement
    - DGNReadElement
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGetShapeFillInfo
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:270,1
    - Dst: DGNLookupColor
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:271,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:274,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:282,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:282,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - psElement
    - pszPen
    - poFeature
    argTypes:
    - DGNElemCore*
    - char*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 286
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 286
    functionName: OGRDGNLayer::ConsiderBrush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetStyleString
    - CPLString::Printf
    - CPLString::c_str
    - DGNLookupColor
    - DGNGetShapeFillInfo
    linkageType: ''
    returnType: void
    signature: "void OGRDGNLayer::ConsiderBrush(DGNElemCore *psElement, const char
      *pszPen,\n                                OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:295,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:297,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:298,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:299,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:300,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:301,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:302,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:303,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:318,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:335,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:335,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:336,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:338,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:338,1
    - Dst: CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:338,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:339,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:339,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:341,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:344,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:345,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:347,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:348,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:349,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:354,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:355,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:360,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:361,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:366,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:366,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:367,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:368,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:369,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:369,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:370,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:370,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:371,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:371,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:374,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:379,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:380,1
    - Dst: DGNGetLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:401,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:411,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:411,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:415,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:417,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:420,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:422,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:425,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:440,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:443,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:448,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:448,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:450,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:450,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:453,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:454,1
    - Dst: DGNLookupColor
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:467,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:470,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:473,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:484,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:486,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:488,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:490,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:492,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:494,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:496,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:498,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:500,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:502,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:503,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:503,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:503,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:507,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:507,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:507,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:510,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:517,1
    - Dst: reinterpret_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:519,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:521,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:524,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:529,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:530,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:532,1
    - Dst: OGRDGNLayer::ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:534,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:538,1
    - Dst: reinterpret_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:540,1
    - Dst: static_cast<DGNPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:542,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:543,1
    - Dst: DGNStrokeCurve
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:545,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:547,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:550,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:554,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:555,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:557,1
    - Dst: reinterpret_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:562,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:566,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:567,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:570,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:575,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:578,1
    - Dst: reinterpret_cast<DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:584,1
    - Dst: DGNStrokeArc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:591,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:593,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:594,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:597,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:601,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:602,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:608,1
    - Dst: reinterpret_cast<DGNElemText *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:609,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:611,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:612,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:613,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:615,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:617,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:619,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:621,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:622,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:633,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:633,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:636,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:637,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:637,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:638,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:642,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:643,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:643,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:644,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:645,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:646,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:647,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:647,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:648,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:651,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:651,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:652,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:771,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:771,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:772,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:777,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:777,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:778,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:784,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:784,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:785,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:788,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:788,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:788,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:791,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:792,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:794,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:794,1
    - Dst: reinterpret_cast<DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:801,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:802,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:810,1
    - Dst: OGRDGNLayer::ElementToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:816,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:817,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:821,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:823,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:824,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:824,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:825,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:836,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:837,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:837,1
    - Dst: OGRMultiLineString::clone
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:840,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:843,1
    - Dst: OGRDGNLayer::ConsiderBrush
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:845,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:856,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:857,1
    - Dst: DGNGetDimension
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:858,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 215
    argCount: 2
    argNames:
    - psElement
    - nRecLevel
    argTypes:
    - DGNElemCore*
    - int
    constantsTouched: []
    func_position:
      end: 861
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 861
    functionName: OGRDGNLayer::ElementToFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRPoint*::setX
    - OGRBuildPolygonFromEdges
    - OGRMultiLineString::addGeometry
    - OGRPoint*::setY
    - CPLString
    - static_cast<DGNPoint *>
    - OGRPolygon*::addRingDirectly
    - DGNGetLinkage
    - OGRPolygon::OGRPolygon
    - std::string::c_str
    - auto::c_str
    - CPLJSONArray::CPLJSONArray
    - OGRDGNLayer::ElementToFeature
    - OGRMultiLineString::clone
    - OGRLineString*::setPoint
    - OGRFeature*::SetStyleString
    - CPLJSONArray::IsValid
    - reinterpret_cast<DGNElemArc *>
    - ToHandle
    - std::abs
    - OGRPoint::OGRPoint
    - strlen
    - DGNLookupColor
    - OGRPoint*::setZ
    - CPLMalloc
    - OGRLineString::OGRLineString
    - CPLJSONArray
    - OGRFeature*::SetGeometryDirectly
    - OGRMultiLineString::OGRMultiLineString
    - CPLJSONArray::Add
    - GetEncoding
    - CPLJSONObject::ToString
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - static_cast<int>
    - OGRLinearRing*::setNumPoints
    - FromHandle
    - OGRLinearRing::OGRLinearRing
    - DGNGetDimension
    - CPLJSONObject::CPLJSONObject
    - std::to_string
    - OGRLineString*::setNumPoints
    - CPLSPrintf
    - auto::empty
    - strcat
    - CPLJSONObject::GetArray
    - snprintf
    - DGNReadElement
    - OGRFeature::OGRFeature
    - OGRDGNLayer::ConsiderBrush
    - CPLFree
    - reinterpret_cast<DGNElemText *>
    - OGRFeature*::GetGeometryRef
    - CPLJSONObject
    - DGNFreeElement
    - EQUAL
    - CPLsnprintf
    - DGNStrokeCurve
    - OGRFeature*::SetField
    - DGNStrokeArc
    - CPLJSONObject::Add
    - reinterpret_cast<DGNElemMultiPoint *>
    - reinterpret_cast<DGNElemComplexHeader *>
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNLayer::ElementToFeature(DGNElemCore *psElement, int
      nRecLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGetElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:870,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:873,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:877,1
    - Dst: OGRDGNLayer::ElementToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:881,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:882,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:887,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:893,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:894,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:894,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 867
    functionDepth: 5
    functionLinenumber: 867
    functionLinenumberEnd: 901
    functionName: OGRDGNLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNLayer::ElementToFeature
    - DGNFreeElement
    - Evaluate
    - FilterGeometry
    - DGNReadElement
    - DGNGetElementIndex
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRDGNLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:910,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:913,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:918,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:921,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:924,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:927,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:930,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:931,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 934
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 934
    functionName: OGRDGNLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetEncoding
    linkageType: ''
    returnType: int
    signature: int OGRDGNLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:948,1
    - Dst: DGNGetElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:954,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 987
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 987
    functionName: OGRDGNLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - DGNGetElementIndex
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRDGNLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1007
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1007
    functionName: OGRDGNLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - DGNGetExtents
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDGNLayer::IGetExtent(int /* iGeomField */, OGREnvelope *psExtent,\n
      \                              bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DGNElemCore **>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1030,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1031,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1046,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1047,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1048,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1053,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1055,1
    - Dst: DGNCreateComplexHeaderFromGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1075
    functionName: OGRDGNLayer::LineStringToElementGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - DGNCreateComplexHeaderFromGroup
    - getY
    - getZ
    - DGNCreateMultiPointElem
    - static_cast<DGNElemCore **>
    - getX
    - CPLCalloc
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore **OGRDGNLayer::LineStringToElementGroup(const OGRLineString
      *poLS,\n                                                    int nGroupType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1086,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1089,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1090,1
    - Dst: reinterpret_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1091,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1091,1
    - Dst: OGRStyleLabel*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1092,1
    - Dst: OGRStyleLabel*::TextString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1106,1
    - Dst: OGRStyleLabel*::TextString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1107,1
    - Dst: OGRStyleLabel*::Angle
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1108,1
    - Dst: OGRStyleLabel*::Size
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1110,1
    - Dst: OGRStyleLabel*::GetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1111,1
    - Dst: OGRStyleLabel*::Size
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1112,1
    - Dst: OGRStyleLabel*::GetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1114,1
    - Dst: OGRStyleLabel*::Size
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1115,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1184,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1190,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1191,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1193,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1193,1
    - Dst: static_cast<DGNElemCore **>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1201,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1201,1
    - Dst: DGNCreateTextElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1203,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1203,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1205,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1205,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1205,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1211
    functionName: OGRDGNLayer::TranslateLabel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleLabel*::Angle
    - OGRPoint*::getY
    - atoi
    - reinterpret_cast<OGRStyleLabel *>
    - OGRStyleMgr::OGRStyleMgr
    - CPLString
    - std::string::c_str
    - DGNCreateTextElem
    - auto::c_str
    - OGRStyleLabel*::GetType
    - OGRStyleLabel*::Size
    - GetEncoding
    - OGRPoint*::getX
    - OGRStyleMgr::InitFromFeature
    - OGRStyleLabel*::TextString
    - auto::empty
    - GetGeometryRef
    - CPLCalloc
    - OGRPoint*::getZ
    - static_cast<DGNElemCore **>
    - OGRStyleMgr::GetPart
    - OGRStyleLabel*::GetUnit
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore **OGRDGNLayer::TranslateLabel(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1224,1
    - Dst: OGRDGNLayer::CreateFeatureWithGeom
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1229,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1230
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1230
    functionName: OGRDGNLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRDGNLayer::CreateFeatureWithGeom
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRDGNLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1245,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1247,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1259,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1259,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1261,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1264,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1265,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1269,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1270,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1271,1
    - Dst: static_cast<DGNElemCore **>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1275,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1275,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1277,1
    - Dst: OGRDGNLayer::TranslateLabel
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1281,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1284,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1284,1
    - Dst: OGRDGNLayer::LineStringToElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1287,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1287,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1289,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1289,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1291,1
    - Dst: OGRDGNLayer::LineStringToElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1294,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1294,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1300,1
    - Dst: std::list::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1305,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1307,1
    - Dst: OGRDGNLayer::LineStringToElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1312,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1313,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1315,1
    - Dst: std::list::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1320,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1323,1
    - Dst: std::list::size
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1324,1
    - Dst: std::list::begin
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1326,1
    - Dst: std::list::end
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1327,1
    - Dst: DGNCreateCellHeaderFromGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1336,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1337,1
    - Dst: std::list::size
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1337,1
    - Dst: DGNAddShapeFillInfo
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1339,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1346,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1346,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1347,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1347,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1348,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1348,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1349,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1349,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1351,1
    - Dst: OGRDGNLayer::CreateFeatureWithGeom
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1362,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1364,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1364,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1379,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1379,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1380,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1380,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1381,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1381,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1382,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1382,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1383,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1385,1
    - Dst: DGNAddMSLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1387,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1393,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1396,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1398,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp:1401,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - poFeature
    - poGeom
    argTypes:
    - OGRFeature*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1404
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1404
    functionName: OGRDGNLayer::CreateFeatureWithGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRPoint*::getY
    - OGRDGNLayer::LineStringToElementGroup
    - CPLDebug
    - std::list::push_back
    - DGNUpdateElemCoreExtended
    - CPLError
    - std::list::begin
    - strlen
    - std::list::size
    - wkbFlatten
    - DGNUpdateElemCore
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - static_cast<int>
    - DGNAddMSLink
    - OGRGeometry*::toGeometryCollection
    - OGRDGNLayer::CreateFeatureWithGeom
    - OGRPolygon*::getInteriorRing
    - min
    - DGNWriteElement
    - strstr
    - CPLCalloc
    - CPLFree
    - OGRGeometry*::toLineString
    - OGRPoint*::getZ
    - OGRGeometry*::IsEmpty
    - std::list::end
    - OGRGeometryTypeToName
    - DGNFreeElement
    - OGRDGNLayer::TranslateLabel
    - DGNCreateMultiPointElem
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - static_cast<DGNElemCore **>
    - DGNCreateCellHeaderFromGroup
    - max
    - OGRGeometry*::toPoint
    - OGRFeature*::SetFID
    - DGNAddShapeFillInfo
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRDGNLayer::CreateFeatureWithGeom(OGRFeature *poFeature,\n
      \                                         const OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1413
    functionName: OGRDGNLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDGNLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dfPrimary
    - dfSecondary
    - dfAxisRotation
    - dfAngle
    - pdfX
    - pdfY
    argTypes:
    - double
    - double
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: ComputePointOnArc2D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ComputePointOnArc2D(double dfPrimary, double dfSecondary,\n                                double
      dfAxisRotation, double dfAngle,\n                                double *pdfX,
      double *pdfY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:64,1
    - Dst: ComputePointOnArc2D
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - DGNHandle
    - psArc
    - nPoints
    - pasPoints
    argTypes:
    - CPL_UNUSED
    - DGNElemArc*
    - int
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 83
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 83
    functionName: DGNStrokeArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - ComputePointOnArc2D
    linkageType: ''
    returnType: int
    signature: "int DGNStrokeArc(CPL_UNUSED DGNHandle hFile, DGNElemArc *psArc, int
      nPoints,\n                 DGNPoint *pasPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:136,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:161,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:162,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:168,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:169,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:170,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:171,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:174,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:175,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:181,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:182,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:183,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:184,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:279,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:280,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:281,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 4
    argNames:
    - DGNHandle
    - psCurve
    - nPoints
    - pasPoints
    argTypes:
    - CPL_UNUSED
    - DGNElemMultiPoint*
    - int
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 284
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 284
    functionName: DGNStrokeCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp
    functionUses: 1
    functionsReached:
    - std::abs
    - sqrt
    - CPLFree
    - fabs
    linkageType: ''
    returnType: int
    signature: "int DGNStrokeCurve(CPL_UNUSED DGNHandle hFile, DGNElemMultiPoint *psCurve,\n
      \                  int nPoints, DGNPoint *pasPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:297,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:299,1
    - Dst: ComputePointOnArc2D
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:309,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 315
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 315
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnstroke.cpp
    functionUses: 9
    functionsReached:
    - ComputePointOnArc2D
    - printf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - hDGN
    - color_index
    - red
    - green
    - blue
    argTypes:
    - DGNHandle
    - int
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 126
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 126
    functionName: DGNLookupColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DGNLookupColor(DGNHandle hDGN, int color_index, int *red, int
      *green,\n                   int *blue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - hDGN
    - psElem
    - pnColor
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int*
    constantsTouched: []
    func_position:
      end: 165
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 165
    functionName: DGNGetShapeFillInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DGNGetShapeFillInfo(DGNHandle hDGN, DGNElemCore *psElem, int *pnColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - hDGN
    - psElem
    argTypes:
    - DGNHandle
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: DGNGetAssocID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DGNGetAssocID(DGNHandle hDGN, DGNElemCore *psElem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - sRad50
    - str
    argTypes:
    - unsigned short
    - char*
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: DGNRad50ToAscii
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DGNRad50ToAscii(unsigned short sRad50, char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - str
    - pRad50
    argTypes:
    - char*
    - unsigned short*
    constantsTouched: []
    func_position:
      end: 280
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 280
    functionName: DGNAsciiToRad50
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void DGNAsciiToRad50(const char *str, unsigned short *pRad50)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - psDGN
    - psLine
    - szLineStyle
    argTypes:
    - CPL_UNUSED*
    - DGNElemMultiPoint*
    - char[]
    constantsTouched: []
    func_position:
      end: 321
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 321
    functionName: DGNGetLineStyleName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int DGNGetLineStyleName(CPL_UNUSED DGNInfo *psDGN, DGNElemMultiPoint
      *psLine,\n                        char szLineStyle[65])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:344,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:345,1
    - Dst: DGNTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:346,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:350,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:353,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:355,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:357,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:360,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:366,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:368,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:370,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:372,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:374,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:376,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:378,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:380,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:382,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:386,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:388,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:390,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:392,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:394,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:396,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:398,1
    - Dst: reinterpret_cast<const DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:406,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:409,1
    - Dst: reinterpret_cast<const DGNElemCellHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:417,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:419,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:425,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:430,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:434,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:437,1
    - Dst: reinterpret_cast<const DGNElemCellLibrary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:447,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:449,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:455,1
    - Dst: reinterpret_cast<const DGNElemSharedCellDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:463,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:465,1
    - Dst: reinterpret_cast<const DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:471,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:474,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:477,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:481,1
    - Dst: reinterpret_cast<const DGNElemText *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:489,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:491,1
    - Dst: reinterpret_cast<const DGNElemTextNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:503,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:505,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:507,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:513,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:515,1
    - Dst: reinterpret_cast<const DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:522,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:524,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:529,1
    - Dst: reinterpret_cast<const DGNElemColorTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:537,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:539,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:542,1
    - Dst: reinterpret_cast<const DGNElemTCB *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:550,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:552,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:553,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:555,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:557,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:564,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:571,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:575,1
    - Dst: reinterpret_cast<const DGNElemTagSet *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:587,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:589,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:596,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:599,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:602,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:605,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:607,1
    - Dst: reinterpret_cast<const DGNElemTagValue *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:614,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:616,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:620,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:622,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:624,1
    - Dst: reinterpret_cast<const DGNElemCone *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:630,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:632,1
    - Dst: reinterpret_cast<const DGNElemBSplineSurfaceHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:647,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:650,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:653,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:658,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:662,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:666,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:670,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:673,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:674,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:678,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:683,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:687,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:690,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:691,1
    - Dst: reinterpret_cast<const DGNElemBSplineCurveHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:700,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:702,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:711,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:715,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:719,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:723,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:726,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:727,1
    - Dst: reinterpret_cast<const DGNElemBSplineSurfaceBoundary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:735,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:738,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:742,1
    - Dst: reinterpret_cast<const DGNElemKnotWeight *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:751,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:756,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:767,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:782,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:784,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:790,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:793,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:797,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:800,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:801,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 225
    argCount: 3
    argNames:
    - hDGN
    - psElement
    - fp
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - FILE*
    constantsTouched: []
    func_position:
      end: 804
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 804
    functionName: DGNDumpElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const DGNElemTagValue *>
    - reinterpret_cast<const DGNElemText *>
    - CPLError
    - reinterpret_cast<const DGNElemBSplineSurfaceHeader *>
    - reinterpret_cast<const DGNElemBSplineSurfaceBoundary *>
    - reinterpret_cast<const DGNElemColorTable *>
    - fprintf
    - reinterpret_cast<const DGNElemBSplineCurveHeader *>
    - reinterpret_cast<const DGNElemSharedCellDefn *>
    - reinterpret_cast<const DGNElemMultiPoint *>
    - reinterpret_cast<const DGNElemCellHeader *>
    - reinterpret_cast<const DGNElemKnotWeight *>
    - reinterpret_cast<const DGNElemTagSet *>
    - DGNTypeToName
    - reinterpret_cast<const DGNElemArc *>
    - reinterpret_cast<const DGNElemCellLibrary *>
    - reinterpret_cast<const DGNElemTextNode *>
    - reinterpret_cast<const DGNElemCone *>
    - reinterpret_cast<const DGNElemTCB *>
    - reinterpret_cast<const DGNElemComplexHeader *>
    linkageType: ''
    returnType: void
    signature: void DGNDumpElement(DGNHandle hDGN, const DGNElemCore *psElement, FILE
      *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 1
    argNames:
    - nType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 922
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 922
    functionName: DGNTypeToName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *DGNTypeToName(int nType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - DGNHandle
    - psElement
    - nOffset
    argTypes:
    - CPL_UNUSED
    - DGNElemCore*
    - int
    constantsTouched: []
    func_position:
      end: 960
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 960
    functionName: DGNGetAttrLinkSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DGNGetAttrLinkSize(CPL_UNUSED DGNHandle hDGN, const DGNElemCore
      *psElement,\n                       int nOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGetAttrLinkSize
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:1005,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:1012,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:1017,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 7
    argNames:
    - hDGN
    - psElement
    - iIndex
    - pnLinkageType
    - pnEntityNum
    - pnMSLink
    - pnLength
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1067
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1067
    functionName: DGNGetLinkage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - DGNGetAttrLinkSize
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *DGNGetLinkage(DGNHandle hDGN, const DGNElemCore *psElement,\n
      \                            int iIndex, int *pnLinkageType, int *pnEntityNum,\n
      \                            int *pnMSLink, int *pnLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:1080,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dfRotation
    - panQuaternion
    argTypes:
    - double
    - int*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1084
    functionName: DGNRotationToQuaternion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached:
    - sin
    - cos
    linkageType: ''
    returnType: void
    signature: void DGNRotationToQuaternion(double dfRotation, int *panQuaternion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - quat
    - mat
    argTypes:
    - int*
    - float*
    constantsTouched: []
    func_position:
      end: 1113
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1113
    functionName: DGNQuaternionToMatrix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DGNQuaternionToMatrix(int *quat, float *mat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - quat
    - v1
    - v2
    argTypes:
    - CPL_UNUSED*
    - CPL_UNUSED*
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1205
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1205
    functionName: DGNTransformPointWithQuaternionVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DGNTransformPointWithQuaternionVertex(CPL_UNUSED int *quat,\n
      \                                          CPL_UNUSED DGNPoint *v1,\n                                           CPL_UNUSED
      DGNPoint *v2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: OGRDGNDataSource::OGRDGNDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDGNDataSource::OGRDGNDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:37,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:38,1
    - Dst: DGNClose
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: OGRDGNDataSource::~OGRDGNDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - DGNClose
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRDGNDataSource::~OGRDGNDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:52,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:54,1
    - Dst: DGNOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:60,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:63,1
    - Dst: OGRDGNLayer::OGRDGNLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:72,1
    - Dst: static_cast<OGRDGNLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:77,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: OGRDGNDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValueDef
    - OGRDGNLayer::OGRDGNLayer
    - CPLAssert
    - static_cast<OGRDGNLayer **>
    - CPLRealloc
    - CPLError
    - DGNOpen
    linkageType: ''
    returnType: bool
    signature: bool OGRDGNDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:91,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: OGRDGNDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRDGNDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: OGRDGNDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRDGNDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:123,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: OGRDGNDataSource::PreCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: void
    signature: void OGRDGNDataSource::PreCreate(CSLConstList papszOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:143,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:150,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:152,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:168,1
    - Dst: CSLInsertStrings
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:182,1
    - Dst: CPLFindFile
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:201,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:224,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:225,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:226,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:226,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:226,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:227,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:236,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:242,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:244,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:254,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:261,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:265,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:268,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:272,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:275,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:282,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:284,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:285,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:286,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:288,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:290,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:291,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:297,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:301,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:302,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:302,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:306,1
    - Dst: DGNCreate
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:312,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:312,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:316,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:317,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:317,1
    - Dst: OGRDGNLayer::OGRDGNLayer
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:326,1
    - Dst: static_cast<OGRDGNLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:331,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp:332,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 89
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszExtraOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 336
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 336
    functionName: OGRDGNDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GetDescription
    - CPLError
    - std::string::c_str
    - CSLFetchNameValue
    - CPLFindFile
    - std::string::empty
    - OGRDGNLayer::OGRDGNLayer
    - CPLRealloc
    - CSLCount
    - auto::IsGeographic
    - CPLAtof
    - static_cast<int>
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - VSIUnlink
    - const_cast<GByte *>
    - DGNCreate
    - static_cast<OGRDGNLayer **>
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - CSLInsertStrings
    - CSLDestroy
    - OGRGeomFieldDefn*::GetSpatialRef
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRDGNDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      papszExtraOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:26,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:28,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:29,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:30,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:31,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Usage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp
    functionUses: 0
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:55,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:59,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:61,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:62,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:63,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:64,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:67,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:69,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:69,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:69,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:73,1
    - Dst: Usage
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:78,1
    - Dst: Usage
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:84,1
    - Dst: DGNOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:86,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:88,1
    - Dst: DGNSetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:91,1
    - Dst: DGNSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:93,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:98,1
    - Dst: DGNDumpElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:100,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:102,1
    - Dst: DGNDumpRawElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:105,1
    - Dst: DGNGetElementExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:111,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:112,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:117,1
    - Dst: DGNGetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:124,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:125,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:126,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:127,1
    - Dst: DGNGetElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:130,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:132,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:145,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:146,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:147,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:153,1
    - Dst: DGNTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:153,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:158,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:159,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:160,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:167,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:173,1
    - Dst: DGNTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:173,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:178,1
    - Dst: DGNClose
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:182,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 185
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 185
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp
    functionUses: 9
    functionsReached:
    - Usage
    - atoi
    - DGNSetOptions
    - strcmp
    - printf
    - DGNOpen
    - DGNSetSpatialFilter
    - DGNGetElementIndex
    - DGNDumpRawElement
    - CPLAtof
    - DGNGetExtents
    - min
    - CPLAssert
    - DGNReadElement
    - DGNTypeToName
    - DGNFreeElement
    - exit
    - max
    - DGNClose
    - DGNGetElementExtents
    - DGNDumpElement
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:199,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:204,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:210,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:211,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - psCore
    - fpOut
    argTypes:
    - DGNElemCore*
    - FILE*
    constantsTouched: []
    func_position:
      end: 225
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 225
    functionName: DGNDumpRawElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgndump.cpp
    functionUses: 1
    functionsReached:
    - strncpy
    - snprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void DGNDumpRawElement(DGNHandle /* hDGN */, DGNElemCore *psCore,\n
      \                             FILE *fpOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: DGN_INT16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - static_cast<short>
    linkageType: ''
    returnType: short int
    signature: short int DGN_INT16(const GByte *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNBuildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:53,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - hDGN
    - element_id
    argTypes:
    - DGNHandle
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: DGNGotoElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - DGNBuildIndex
    linkageType: ''
    returnType: int
    signature: int DGNGotoElement(DGNHandle hDGN, int element_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:79,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - psDGN
    - pnType
    - pnLevel
    argTypes:
    - DGNInfo*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 116
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 116
    functionName: DGNLoadRawElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int DGNLoadRawElement(DGNInfo *psDGN, int *pnType, int *pnLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:155,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:156,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:158,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:160,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:161,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 9
    argNames:
    - psDGN
    - nType
    - pabyRawData
    - pnXMin
    - pnYMin
    - pnZMin
    - pnXMax
    - pnYMax
    - pnZMax
    argTypes:
    - DGNInfo*
    - int
    - unsigned char*
    - GUInt32*
    - GUInt32*
    - GUInt32*
    - GUInt32*
    - GUInt32*
    - GUInt32*
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: DGNGetRawExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - DGN_INT32
    linkageType: ''
    returnType: bool
    signature: "bool DGNGetRawExtents(DGNInfo *psDGN, int nType,\n                             unsigned
      char *pabyRawData, GUInt32 *pnXMin,\n                             GUInt32 *pnYMin,
      GUInt32 *pnZMin, GUInt32 *pnXMax,\n                             GUInt32 *pnYMax,
      GUInt32 *pnZMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNGetRawExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:215,1
    - Dst: DGNGetRawExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:219,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:224,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:245,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - hDGN
    - psElement
    - psMin
    - psMax
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - DGNPoint*
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 249
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 249
    functionName: DGNGetElementExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - DGNTransformPoint
    - DGNGetRawExtents
    linkageType: ''
    returnType: int
    signature: "int DGNGetElementExtents(DGNHandle hDGN, DGNElemCore *psElement,\n
      \                        DGNPoint *psMin, DGNPoint *psMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DGNElemCellHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:270,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:271,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:272,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:274,1
    - Dst: DGNRad50ToAscii
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:278,1
    - Dst: DGNRad50ToAscii
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:280,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:291,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:292,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:293,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:294,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:297,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:299,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:301,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:303,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:305,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:306,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:316,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:317,1
    - Dst: acos
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:321,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:321,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:331,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:332,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:333,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:334,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:335,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:336,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:339,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:341,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:343,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:345,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:347,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:349,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:351,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:353,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:355,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:357,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:358,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:359,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:362,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:363,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:364,1
    - Dst: static_cast<DGNElemCellLibrary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:370,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:371,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:372,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:374,1
    - Dst: DGNRad50ToAscii
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:376,1
    - Dst: DGNRad50ToAscii
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:378,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:394,1
    - Dst: DGNRad50ToAscii
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:400,1
    - Dst: static_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:409,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:410,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:411,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:413,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:437,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:438,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:439,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:440,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:444,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:445,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:446,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:447,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:448,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:449,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:466,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:467,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:481,1
    - Dst: static_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:485,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:485,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:490,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:499,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:500,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:503,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:533,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:535,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:538,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:549,1
    - Dst: static_cast<DGNElemTextNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:557,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:558,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:559,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:561,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:572,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:574,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:578,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:580,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:581,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:587,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:588,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:589,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:591,1
    - Dst: DGNParseColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:598,1
    - Dst: static_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:602,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:603,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:605,1
    - Dst: static_cast<DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:612,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:612,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:613,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:615,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:617,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:618,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:621,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:622,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:627,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:630,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:631,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:633,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:634,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:640,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:641,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:643,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:644,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:646,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:647,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:649,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:650,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:651,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:652,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:655,1
    - Dst: static_cast<DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:667,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:667,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:668,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:670,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:672,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:677,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:680,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:687,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:688,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:691,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:692,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:697,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:700,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:701,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:703,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:704,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:711,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:712,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:714,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:715,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:717,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:718,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:720,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:721,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:722,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:723,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:726,1
    - Dst: static_cast<DGNElemText *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:740,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:741,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:742,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:744,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:749,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:751,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:755,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:758,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:759,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:766,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:767,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:768,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:772,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:783,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:784,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:801,1
    - Dst: DGNParseTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:808,1
    - Dst: static_cast<DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:814,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:815,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:816,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:818,1
    - Dst: static_cast<DGNElemTagValue *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:827,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:828,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:829,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:831,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:834,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:835,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:842,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:846,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:847,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:851,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:852,1
    - Dst: DGNParseTagSet
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:860,1
    - Dst: static_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:866,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:867,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:869,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:877,1
    - Dst: static_cast<DGNElemCone *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:883,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:883,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:884,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:886,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:889,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:890,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:891,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:892,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:894,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:895,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:896,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:897,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:898,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:899,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:900,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:901,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:903,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:904,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:905,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:906,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:907,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:908,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:909,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:910,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:914,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:915,1
    - Dst: static_cast<DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:922,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:923,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:924,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:926,1
    - Dst: static_cast<DGNElemBSplineSurfaceHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:938,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:939,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:940,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:942,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:946,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:946,1
    - Dst: static_cast<DGNElemBSplineCurveHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:976,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:977,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:978,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:980,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:984,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:984,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1000,1
    - Dst: static_cast<DGNElemBSplineSurfaceBoundary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1005,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1006,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1009,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1011,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1038,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1040,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1052,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1067,1
    - Dst: static_cast<DGNElemKnotWeight *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1071,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1071,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1075,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1077,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1082,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1083,1
    - Dst: static_cast<DGNElemSharedCellDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1091,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1092,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1093,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1095,1
    - Dst: static_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1103,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1103,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1105,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1120,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1120,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1122,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1131,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1131,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 505
    argCount: 3
    argNames:
    - psDGN
    - nType
    - nLevel
    argTypes:
    - DGNInfo*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1135
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 1135
    functionName: DGNProcessElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - DGNParseTagSet
    - static_cast<DGNElemTagValue *>
    - VSIFTellL
    - DGNParseTCB
    - CPLError
    - DGN_INT32
    - static_cast<DGNElemCore *>
    - static_cast<DGNElemComplexHeader *>
    - CPLStrdup
    - static_cast<long>
    - static_cast<DGNElemBSplineSurfaceHeader *>
    - static_cast<short>
    - static_cast<unsigned char *>
    - static_cast<DGNElemCone *>
    - static_cast<DGNElemText *>
    - CPLMalloc
    - static_cast<DGNElemCellLibrary *>
    - static_cast<DGNElemArc *>
    - CPL_LSBPTR16
    - VSI_CALLOC_VERBOSE
    - static_cast<float>
    - DGNParseCore
    - static_cast<int>
    - DGNParseColorTable
    - DGNRad50ToAscii
    - static_cast<DGNElemSharedCellDefn *>
    - DGNTransformPoint
    - static_cast<DGNElemBSplineCurveHeader *>
    - static_cast<DGNElemKnotWeight *>
    - CPLCalloc
    - static_cast<DGNElemMultiPoint *>
    - static_cast<DGNElemCellHeader *>
    - acos
    - sqrt
    - DGNFreeElement
    - DGN2IEEEDouble
    - static_cast<DGNElemTextNode *>
    - reinterpret_cast<DGNElemCore *>
    - memset
    - memcpy
    - CPL_LSBPTR32
    - static_cast<DGNElemBSplineSurfaceBoundary *>
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore *DGNProcessElement(DGNInfo *psDGN, int nType, int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadRawElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1175,1
    - Dst: DGNSpatialFilterToUOR
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1181,1
    - Dst: DGNGetRawExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1187,1
    - Dst: DGNProcessElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1225,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - hDGN
    argTypes:
    - DGNHandle
    constantsTouched: []
    func_position:
      end: 1228
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1228
    functionName: DGNReadElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 4
    functionsReached:
    - DGNProcessElement
    - DGNLoadRawElement
    - DGNGetRawExtents
    - DGNSpatialFilterToUOR
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore *DGNReadElement(DGNHandle hDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - nElemType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1268
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1268
    functionName: DGNElemTypeHasDispHdr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DGNElemTypeHasDispHdr(int nElemType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNElemTypeHasDispHdr
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1284,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1309,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1309,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - psDGN
    - psElement
    argTypes:
    - DGNInfo*
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 1324
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1324
    functionName: DGNParseCore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - DGNElemTypeHasDispHdr
    - static_cast<unsigned char *>
    - CPLError
    - CPLMalloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int DGNParseCore(DGNInfo *psDGN, DGNElemCore *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DGNElemColorTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1333,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1334,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1335,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1338,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1342,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1343,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - psDGN
    argTypes:
    - DGNInfo*
    constantsTouched: []
    func_position:
      end: 1354
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1354
    functionName: DGNParseColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - DGNParseCore
    - static_cast<DGNElemColorTable *>
    - reinterpret_cast<DGNElemCore *>
    - CPLCalloc
    - memcpy
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore *DGNParseColorTable(DGNInfo *psDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DGNElemTagSet *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1364,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1364,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1365,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1368,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1375,1
    - Dst: static_cast<DGNTagDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1391,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1392,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1402,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1405,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1407,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1410,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1413,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1428,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1430,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1432,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1437,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1438,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1446,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1447,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1461,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1462,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1466,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1468,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1473,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1475,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - psDGN
    argTypes:
    - DGNInfo*
    constantsTouched: []
    func_position:
      end: 1482
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1482
    functionName: DGNParseTagSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - CPLStrdup
    - DGNParseCore
    - DGNFreeElement
    - static_cast<DGNElemTagSet *>
    - static_cast<DGNTagDef *>
    - DGN2IEEEDouble
    - reinterpret_cast<DGNElemCore *>
    - strlen
    - CPLError
    - CPLCalloc
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore *DGNParseTagSet(DGNInfo *psDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DGNElemTCB *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1492,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1492,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1493,1
    - Dst: DGNParseCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1495,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1503,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1503,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1510,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1510,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1518,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1519,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1522,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1523,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1524,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1557,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1559,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1560,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1561,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1563,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1565,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1566,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1567,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1573,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1575,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1577,1
    - Dst: DGN2IEEEDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1578,1
    - Dst: static_cast<unsigned long>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1581,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1581,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 1
    argNames:
    - psDGN
    argTypes:
    - DGNInfo*
    constantsTouched: []
    func_position:
      end: 1585
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1585
    functionName: DGNParseTCB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - DGN_INT32
    - static_cast<unsigned long>
    - static_cast<long>
    - DGNParseCore
    - static_cast<DGNElemTCB *>
    - DGN2IEEEDouble
    - reinterpret_cast<DGNElemCore *>
    - DGNTransformPoint
    - CPLCalloc
    - memcpy
    linkageType: ''
    returnType: DGNElemCore
    signature: DGNElemCore *DGNParseTCB(DGNInfo *psDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1604,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1607,1
    - Dst: reinterpret_cast<DGNElemTagSet *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1611,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1612,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1616,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1617,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1620,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1622,1
    - Dst: reinterpret_cast<DGNElemTagValue *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1627,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1629,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1632,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - DGNHandle
    - psElement
    argTypes:
    - CPL_UNUSED
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 1633
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1633
    functionName: DGNFreeElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 7
    functionsReached:
    - CPLFree
    - VSIFree
    - reinterpret_cast<DGNElemTagValue *>
    - reinterpret_cast<DGNElemTagSet *>
    linkageType: ''
    returnType: void
    signature: void DGNFreeElement(CPL_UNUSED DGNHandle hDGN, DGNElemCore *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hDGN
    argTypes:
    - DGNHandle
    constantsTouched: []
    func_position:
      end: 1658
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1658
    functionName: DGNRewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 1
    functionsReached:
    - VSIRewindL
    linkageType: ''
    returnType: void
    signature: void DGNRewind(DGNHandle hDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - psDGN
    - psPoint
    argTypes:
    - DGNInfo*
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 1670
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1670
    functionName: DGNTransformPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DGNTransformPoint(DGNInfo *psDGN, DGNPoint *psPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1683,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1683,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1684,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1684,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1685,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - psDGN
    - psPoint
    argTypes:
    - DGNInfo*
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 1686
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1686
    functionName: DGNInverseTransformPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: void
    signature: void DGNInverseTransformPoint(DGNInfo *psDGN, DGNPoint *psPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1703,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1704,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1704,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - psDGN
    - psPoint
    - pabyTarget
    argTypes:
    - DGNInfo*
    - DGNPoint*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1720
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1720
    functionName: DGNInverseTransformPointToInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - min
    - static_cast<GInt32>
    - max
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void DGNInverseTransformPointToInt(DGNInfo *psDGN, DGNPoint *psPoint,\n
      \                                  unsigned char *pabyTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1749,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hDGN
    argTypes:
    - DGNHandle
    constantsTouched: []
    func_position:
      end: 1757
      start: 1736
    functionDepth: 3
    functionLinenumber: 1736
    functionLinenumberEnd: 1757
    functionName: DGNLoadTCB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - DGNFreeElement
    - DGNReadElement
    linkageType: ''
    returnType: int
    signature: int DGNLoadTCB(DGNHandle hDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNBuildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hDGN
    - pnElementCount
    argTypes:
    - DGNHandle
    - int*
    constantsTouched: []
    func_position:
      end: 1798
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1798
    functionName: DGNGetElementIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 3
    functionsReached:
    - DGNBuildIndex
    linkageType: ''
    returnType: DGNElementInfo
    signature: DGNElementInfo *DGNGetElementIndex(DGNHandle hDGN, int *pnElementCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNBuildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1826,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1834,1
    - Dst: DGNTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - hDGN
    - padfExtents
    argTypes:
    - DGNHandle
    - double*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1850
    functionName: DGNGetExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 2
    functionsReached:
    - DGNBuildIndex
    - DGNTransformPoint
    linkageType: ''
    returnType: int
    signature: int DGNGetExtents(DGNHandle hDGN, double *padfExtents)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNRewind
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1868,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1872,1
    - Dst: DGNLoadRawElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1873,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1879,1
    - Dst: DGNParseColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1902,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1903,1
    - Dst: DGNParseTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1929,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1930,1
    - Dst: DGNGetRawExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1940,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1945,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1953,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1954,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1955,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1956,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1957,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1958,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1974,1
    - Dst: DGNRewind
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp:1977,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 1
    argNames:
    - psDGN
    argTypes:
    - DGNInfo*
    constantsTouched: []
    func_position:
      end: 1980
      start: 1856
    functionDepth: 3
    functionLinenumber: 1856
    functionLinenumberEnd: 1980
    functionName: DGNBuildIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnread.cpp
    functionUses: 3
    functionsReached:
    - DGNLoadRawElement
    - DGNFreeElement
    - DGNParseColorTable
    - DGNRewind
    - DGNGetRawExtents
    - min
    - CPLRealloc
    - max
    - VSIFTellL
    - DGNParseTCB
    - printf
    linkageType: ''
    returnType: void
    signature: void DGNBuildIndex(DGNInfo *psDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNCreate
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:25,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:31,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:32,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:48,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:49,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:50,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:51,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:63,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:64,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:65,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:66,1
    - Dst: DGNCreateArcElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:71,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:74,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:75,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:76,1
    - Dst: DGNCreateArcElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:81,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:84,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:85,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:86,1
    - Dst: DGNCreateTextElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:92,1
    - Dst: DGNAddMSLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:95,1
    - Dst: DGNAddMSLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:96,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:97,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:98,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:99,1
    - Dst: DGNCreateTextElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:102,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:105,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:106,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:107,1
    - Dst: DGNCreateTextElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:110,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:113,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:114,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:115,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:128,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:129,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:130,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:139,1
    - Dst: DGNCreateComplexHeaderFromGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:141,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:144,1
    - Dst: DGNAddShapeFillInfo
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:145,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:147,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:148,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:149,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:151,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:152,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:153,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:166,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:167,1
    - Dst: DGNCreateMultiPointElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:177,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:178,1
    - Dst: DGNCreateCellHeaderFromGroup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:183,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:186,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:187,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:188,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:190,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:191,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:192,1
    - Dst: DGNClose
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwritetest.cpp
    functionUses: 9
    functionsReached:
    - DGNAddMSLink
    - DGNCreateComplexHeaderFromGroup
    - DGNFreeElement
    - DGNCreateArcElem
    - exit
    - DGNCreate
    - DGNCreateMultiPointElem
    - DGNWriteElement
    - DGNCreateCellHeaderFromGroup
    - DGNClose
    - printf
    - DGNUpdateElemCore
    - DGNCreateTextElem
    - DGNAddShapeFillInfo
    linkageType: ''
    returnType: int
    signature: int main(int /* argc */, char ** /* argv */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:64,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:71,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:88,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:91,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:92,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:94,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:102,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:103,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:106,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - hDGN
    - psElement
    - nNewSize
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 136
    functionName: DGNResizeElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - CPLRealloc
    - VSIFTellL
    - VSIFWriteL
    - VSIFReadL
    - CPLError
    linkageType: ''
    returnType: int
    signature: int DGNResizeElement(DGNHandle hDGN, DGNElemCore *psElement, int nNewSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNBuildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:181,1
    - Dst: DGNGotoElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:184,1
    - Dst: DGNLoadRawElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:188,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:192,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:192,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:200,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:222,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:223,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:226,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:243,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:244,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - hDGN
    - psElement
    argTypes:
    - DGNHandle
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 248
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 248
    functionName: DGNWriteElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNLoadRawElement
    - DGNBuildIndex
    - static_cast<int>
    - DGNGotoElement
    - VSIFSeekL
    - CPLRealloc
    - VSIFTellL
    - VSIFWriteL
    - CPLError
    linkageType: ''
    returnType: int
    signature: int DGNWriteElement(DGNHandle hDGN, DGNElemCore *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:301,1
    - Dst: DGNOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:309,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:312,1
    - Dst: DGNSetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:316,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:318,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:320,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:325,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:325,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:327,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:331,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:332,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:334,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:335,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:339,1
    - Dst: DGN_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:340,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:349,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:350,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:351,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:353,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:354,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:355,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:361,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:362,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:366,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:368,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:373,1
    - Dst: DGNOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:375,1
    - Dst: DGNReadElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:383,1
    - Dst: DGNCloneElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:390,1
    - Dst: DGNWriteElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:391,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:392,1
    - Dst: DGNFreeElement
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:395,1
    - Dst: DGNClose
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 10
    argNames:
    - pszNewFilename
    - pszSeedFile
    - nCreationFlags
    - dfOriginX
    - dfOriginY
    - dfOriginZ
    - nSubUnitsPerMasterUnit
    - nUORPerSubUnit
    - pszMasterUnits
    - pszSubUnits
    argTypes:
    - char*
    - char*
    - int
    - double
    - double
    - double
    - int
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 401
      start: 288
    functionDepth: 5
    functionLinenumber: 288
    functionLinenumberEnd: 401
    functionName: DGNCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNSetOptions
    - IEEE2DGNDouble
    - CPLError
    - DGNOpen
    - DGN_INT32
    - CPLMalloc
    - VSIFOpenL
    - CPLAssert
    - DGNWriteElement
    - DGNReadElement
    - static_cast<GByte *>
    - CPLFree
    - VSIFCloseL
    - DGN_WRITE_INT32
    - DGNFreeElement
    - DGNClose
    - VSIFWriteL
    - DGNCloneElement
    - memcpy
    linkageType: ''
    returnType: DGNHandle
    signature: "DGNHandle DGNCreate(const char *pszNewFilename, const char *pszSeedFile,\n
      \                   int nCreationFlags, double dfOriginX, double dfOriginY,\n
      \                   double dfOriginZ, int nSubUnitsPerMasterUnit,\n                    int
      nUORPerSubUnit, const char *pszMasterUnits,\n                    const char
      *pszSubUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:431,1
    - Dst: static_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:438,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:438,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:439,1
    - Dst: reinterpret_cast<const DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:444,1
    - Dst: static_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:450,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:450,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:451,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:453,1
    - Dst: static_cast<DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:458,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:458,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:459,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:461,1
    - Dst: reinterpret_cast<const DGNElemText *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:466,1
    - Dst: static_cast<DGNElemText *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:469,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:469,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:470,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:472,1
    - Dst: static_cast<DGNElemTextNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:477,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:477,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:478,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:480,1
    - Dst: static_cast<DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:484,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:485,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:486,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:488,1
    - Dst: static_cast<DGNElemColorTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:492,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:493,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:494,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:496,1
    - Dst: static_cast<DGNElemTCB *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:501,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:501,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:502,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:504,1
    - Dst: static_cast<DGNElemCellHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:508,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:509,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:510,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:512,1
    - Dst: static_cast<DGNElemCellLibrary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:516,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:518,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:520,1
    - Dst: static_cast<DGNElemTagValue *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:525,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:525,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:526,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:529,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:531,1
    - Dst: static_cast<DGNElemTagSet *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:536,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:536,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:537,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:539,1
    - Dst: static_cast<DGNTagDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:541,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:542,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:543,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:547,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:548,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:551,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:555,1
    - Dst: static_cast<DGNElemCone *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:560,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:560,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:561,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:563,1
    - Dst: static_cast<DGNElemBSplineSurfaceHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:568,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:569,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:570,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:572,1
    - Dst: static_cast<DGNElemBSplineCurveHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:577,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:578,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:579,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:581,1
    - Dst: reinterpret_cast<const DGNElemBSplineSurfaceBoundary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:586,1
    - Dst: static_cast<DGNElemBSplineSurfaceBoundary *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:593,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:593,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:594,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:596,1
    - Dst: static_cast<DGNElemKnotWeight *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:612,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:612,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:613,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:615,1
    - Dst: static_cast<DGNElemSharedCellDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:619,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:620,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:621,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:623,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:627,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:637,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:637,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:638,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:644,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:644,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:645,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 99
    argCount: 3
    argNames:
    - DGNHandle
    - hDGNDst
    - psSrcElement
    argTypes:
    - CPL_UNUSED
    - DGNHandle
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 656
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 656
    functionName: DGNCloneElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 1
    functionsReached:
    - DGNLoadTCB
    - static_cast<DGNTagDef *>
    - static_cast<DGNElemTagValue *>
    - reinterpret_cast<const DGNElemText *>
    - reinterpret_cast<const DGNElemBSplineSurfaceBoundary *>
    - static_cast<DGNElemCore *>
    - static_cast<DGNElemComplexHeader *>
    - CPLStrdup
    - static_cast<DGNElemBSplineSurfaceHeader *>
    - static_cast<DGNElemTagSet *>
    - static_cast<unsigned char *>
    - static_cast<DGNElemColorTable *>
    - static_cast<DGNElemCone *>
    - static_cast<DGNElemText *>
    - CPLMalloc
    - reinterpret_cast<const DGNElemMultiPoint *>
    - static_cast<DGNElemCellLibrary *>
    - static_cast<DGNElemArc *>
    - static_cast<DGNElemSharedCellDefn *>
    - CPLAssert
    - static_cast<DGNElemBSplineCurveHeader *>
    - static_cast<DGNElemKnotWeight *>
    - static_cast<DGNElemCellHeader *>
    - static_cast<DGNElemMultiPoint *>
    - static_cast<DGNElemTCB *>
    - static_cast<DGNElemTextNode *>
    - reinterpret_cast<DGNElemCore *>
    - memcpy
    - static_cast<DGNElemBSplineSurfaceBoundary *>
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCloneElement(CPL_UNUSED DGNHandle hDGNSrc, DGNHandle
      hDGNDst,\n                             const DGNElemCore *psSrcElement)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - hDGN
    - psElement
    - nLevel
    - nGraphicGroup
    - nColor
    - nWeight
    - nStyle
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 692
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 692
    functionName: DGNUpdateElemCore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNUpdateElemCoreExtended
    linkageType: ''
    returnType: int
    signature: "int DGNUpdateElemCore(DGNHandle hDGN, DGNElemCore *psElement, int
      nLevel,\n                      int nGraphicGroup, int nColor, int nWeight, int
      nStyle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:720,1
    - Dst: DGNElemTypeHasDispHdr
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:752,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - DGNHandle
    - psElement
    argTypes:
    - CPL_UNUSED
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 763
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 763
    functionName: DGNUpdateElemCoreExtended
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNElemTypeHasDispHdr
    - CPLAssert
    linkageType: ''
    returnType: int
    signature: int DGNUpdateElemCoreExtended(CPL_UNUSED DGNHandle hDGN, DGNElemCore
      *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - DGNHandle
    - psElement
    argTypes:
    - CPL_UNUSED
    - DGNElemCore*
    constantsTouched: []
    func_position:
      end: 776
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 776
    functionName: DGNInitializeElemCore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void DGNInitializeElemCore(CPL_UNUSED DGNHandle hDGN,\n                                  DGNElemCore
      *psElement)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:788,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:790,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - psInfo
    - psElement
    - psMin
    - psMax
    argTypes:
    - DGNInfo*
    - DGNElemCore*
    - DGNPoint*
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 801
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 801
    functionName: DGNWriteBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - DGNInverseTransformPointToInt
    linkageType: ''
    returnType: void
    signature: "void DGNWriteBounds(DGNInfo *psInfo, DGNElemCore *psElement,\n                           DGNPoint
      *psMin, DGNPoint *psMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:833,1
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:837,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:844,1
    - Dst: DGNTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:847,1
    - Dst: static_cast<DGNElemMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:854,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:854,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:858,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:867,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:874,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:879,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:879,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:881,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:883,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:889,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:893,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:893,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:899,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:907,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:913,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:914,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:915,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:916,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:917,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:918,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:921,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:923,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - hDGN
    - nType
    - nPointCount
    - pasVertices
    argTypes:
    - DGNHandle
    - int
    - int
    - DGNPoint*
    constantsTouched: []
    func_position:
      end: 924
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 924
    functionName: DGNCreateMultiPointElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 3
    functionsReached:
    - DGNLoadTCB
    - DGNInitializeElemCore
    - memcpy
    - DGNWriteBounds
    - min
    - static_cast<unsigned char *>
    - CPLAssert
    - max
    - DGNUpdateElemCoreExtended
    - reinterpret_cast<DGNElemCore *>
    - DGNTypeToName
    - CPLError
    - CPLCalloc
    - static_cast<DGNElemMultiPoint *>
    - DGNInverseTransformPointToInt
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateMultiPointElem(DGNHandle hDGN, int nType, int
      nPointCount,\n                                     DGNPoint *pasVertices)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNCreateArcElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - hDGN
    - nType
    - dfOriginX
    - dfOriginY
    - dfPrimaryAxis
    - dfSecondaryAxis
    - dfRotation
    - dfStartAngle
    - dfSweepAngle
    argTypes:
    - DGNHandle
    - int
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 939
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 939
    functionName: DGNCreateArcElem2D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNCreateArcElem
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateArcElem2D(DGNHandle hDGN, int nType, double
      dfOriginX,\n                                double dfOriginY, double dfPrimaryAxis,\n
      \                               double dfSecondaryAxis, double dfRotation,\n
      \                               double dfStartAngle, double dfSweepAngle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:977,1
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:980,1
    - Dst: static_cast<DGNElemArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:986,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:986,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:989,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1001,1
    - Dst: DGNRotationToQuaternion
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1008,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1012,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1027,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1027,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1031,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1036,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1036,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1047,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1051,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1052,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1055,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1056,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1061,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1062,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1063,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1064,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1067,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1068,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1069,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1070,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1071,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1072,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1073,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1079,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1082,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1083,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1084,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1085,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1086,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1101,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1105,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1106,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1109,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1110,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1115,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1116,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1117,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1118,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1121,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1122,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1123,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1124,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1125,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1126,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1127,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1133,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1136,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1137,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1138,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1139,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1140,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1150,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1152,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1153,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1154,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1155,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1156,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1157,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1159,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 98
    argCount: 11
    argNames:
    - hDGN
    - nType
    - dfOriginX
    - dfOriginY
    - dfOriginZ
    - dfPrimaryAxis
    - dfSecondaryAxis
    - dfStartAngle
    - dfSweepAngle
    - dfRotation
    - panQuaternion
    argTypes:
    - DGNHandle
    - int
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - int*
    constantsTouched: []
    func_position:
      end: 1162
      start: 970
    functionDepth: 4
    functionLinenumber: 970
    functionLinenumberEnd: 1162
    functionName: DGNCreateArcElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNLoadTCB
    - static_cast<DGNElemArc *>
    - DGNInitializeElemCore
    - static_cast<int>
    - DGNRotationToQuaternion
    - DGN_WRITE_INT32
    - DGNWriteBounds
    - std::abs
    - static_cast<unsigned char *>
    - CPLAssert
    - max
    - DGNUpdateElemCoreExtended
    - IEEE2DGNDouble
    - reinterpret_cast<DGNElemCore *>
    - memset
    - CPLCalloc
    - memcpy
    - DGNInverseTransformPoint
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateArcElem(DGNHandle hDGN, int nType, double dfOriginX,\n
      \                             double dfOriginY, double dfOriginZ,\n                              double
      dfPrimaryAxis, double dfSecondaryAxis,\n                              double
      dfStartAngle, double dfSweepAngle,\n                              double dfRotation,
      int *panQuaternion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1200,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1205,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1208,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1222,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1225,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1229,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1239,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1246,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1247,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1248,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1249,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1252,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1253,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1254,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1255,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1256,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1257,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1258,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1262,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1263,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1266,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1267,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1268,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1269,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1270,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1271,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1272,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1276,1
    - Dst: IEEE2DGNDouble
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1277,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1282,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1300,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 10
    argNames:
    - hDGN
    - dfCenter_1X
    - dfCenter_1Y
    - dfCenter_1Z
    - dfRadius_1
    - dfCenter_2X
    - dfCenter_2Y
    - dfCenter_2Z
    - dfRadius_2
    - panQuaternion
    argTypes:
    - DGNHandle
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - int*
    constantsTouched: []
    func_position:
      end: 1303
      start: 1192
    functionDepth: 4
    functionLinenumber: 1192
    functionLinenumberEnd: 1303
    functionName: DGNCreateConeElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNLoadTCB
    - DGNInitializeElemCore
    - static_cast<int>
    - DGN_WRITE_INT32
    - DGNWriteBounds
    - DGNUpdateElemCoreExtended
    - IEEE2DGNDouble
    - reinterpret_cast<DGNElemCore *>
    - memset
    - CPLCalloc
    - memcpy
    - DGNInverseTransformPoint
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateConeElem(DGNHandle hDGN, double dfCenter_1X,\n
      \                              double dfCenter_1Y, double dfCenter_1Z,\n                               double
      dfRadius_1, double dfCenter_2X,\n                               double dfCenter_2Y,
      double dfCenter_2Z,\n                               double dfRadius_2, int *panQuaternion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1342,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1348,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1348,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1351,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1366,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1372,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1372,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1374,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1374,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1377,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1383,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1384,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1387,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1394,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1396,1
    - Dst: DGNRotationToQuaternion
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1406,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1408,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1410,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1411,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1412,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1413,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1415,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1420,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1422,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1422,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1429,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1433,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1443,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1444,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1448,1
    - Dst: atan
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1448,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1449,1
    - Dst: atan
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1449,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1453,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1454,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1459,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1460,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1460,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1461,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1462,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1462,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1463,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1464,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1464,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1465,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1466,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1466,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1468,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1471,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1475,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 11
    argNames:
    - hDGN
    - pszText
    - nFontId
    - nJustification
    - dfLengthMult
    - dfHeightMult
    - dfRotation
    - panQuaternion
    - dfOriginX
    - dfOriginY
    - dfOriginZ
    argTypes:
    - DGNHandle
    - char*
    - int
    - int
    - double
    - double
    - double
    - int*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1478
      start: 1333
    functionDepth: 4
    functionLinenumber: 1333
    functionLinenumberEnd: 1478
    functionName: DGNCreateTextElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNLoadTCB
    - cos
    - DGNInitializeElemCore
    - static_cast<int>
    - DGNRotationToQuaternion
    - DGN_WRITE_INT32
    - DGNWriteBounds
    - min
    - max
    - DGNUpdateElemCoreExtended
    - strlen
    - atan
    - reinterpret_cast<DGNElemCore *>
    - strcpy
    - sin
    - CPLCalloc
    - memcpy
    - DGNInverseTransformPointToInt
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateTextElem(DGNHandle hDGN, const char *pszText,
      int nFontId,\n                               int nJustification, double dfLengthMult,\n
      \                              double dfHeightMult, double dfRotation,\n                               int
      *panQuaternion, double dfOriginX,\n                               double dfOriginY,
      double dfOriginZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1514,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1526,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1532,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1537,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1538,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1543,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - hDGN
    - nScreenFlag
    - abyColorInfo
    argTypes:
    - DGNHandle
    - int
    - GByte[][]
    constantsTouched: []
    func_position:
      end: 1546
      start: 1506
    functionDepth: 2
    functionLinenumber: 1506
    functionLinenumberEnd: 1546
    functionName: DGNCreateColorTableElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNInitializeElemCore
    - DGNUpdateElemCoreExtended
    - reinterpret_cast<DGNElemCore *>
    - CPLCalloc
    - memcpy
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateColorTableElem(DGNHandle hDGN, int nScreenFlag,\n
      \                                    GByte abyColorInfo[256][3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1578,1
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1581,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1587,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1590,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1607,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1617,1
    - Dst: DGNAddRawAttrLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1623,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - hDGN
    - nType
    - nTotLength
    - nNumElems
    argTypes:
    - DGNHandle
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1626
      start: 1573
    functionDepth: 4
    functionLinenumber: 1573
    functionLinenumberEnd: 1626
    functionName: DGNCreateComplexHeaderElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNAddRawAttrLink
    - DGNLoadTCB
    - DGNInitializeElemCore
    - CPLAssert
    - DGNUpdateElemCoreExtended
    - reinterpret_cast<DGNElemCore *>
    - CPLCalloc
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateComplexHeaderElem(DGNHandle hDGN, int nType,\n
      \                                       int nTotLength, int nNumElems)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1658,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1684,1
    - Dst: DGNGetElementExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1691,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1699,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1700,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1701,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1702,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1703,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1704,1
    - Dst: DGNCreateComplexHeaderElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1712,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1713,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - hDGN
    - nType
    - nNumElems
    - papsElems
    argTypes:
    - DGNHandle
    - int
    - int
    - DGNElemCore**
    constantsTouched: []
    func_position:
      end: 1719
      start: 1653
    functionDepth: 5
    functionLinenumber: 1653
    functionLinenumberEnd: 1719
    functionName: DGNCreateComplexHeaderFromGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNLoadTCB
    - DGNCreateComplexHeaderElem
    - DGNWriteBounds
    - min
    - max
    - CPLError
    - DGNUpdateElemCore
    - DGNGetElementExtents
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateComplexHeaderFromGroup(DGNHandle hDGN, int nType,\n
      \                                            int nNumElems,\n                                             DGNElemCore
      **papsElems)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1750,1
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1752,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1758,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1761,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1779,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1791,1
    - Dst: DGNAddRawAttrLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1798,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 6
    argNames:
    - hDGN
    - nType
    - nSurfType
    - nBoundElems
    - nTotLength
    - nNumElems
    argTypes:
    - DGNHandle
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1801
      start: 1746
    functionDepth: 4
    functionLinenumber: 1746
    functionLinenumberEnd: 1801
    functionName: DGNCreateSolidHeaderElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNAddRawAttrLink
    - DGNLoadTCB
    - DGNInitializeElemCore
    - CPLAssert
    - DGNUpdateElemCoreExtended
    - reinterpret_cast<DGNElemCore *>
    - CPLCalloc
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateSolidHeaderElem(DGNHandle hDGN, int nType, int
      nSurfType,\n                                      int nBoundElems, int nTotLength,\n
      \                                     int nNumElems)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1834,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1860,1
    - Dst: DGNGetElementExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1866,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1874,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1875,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1876,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1877,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1878,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1879,1
    - Dst: DGNCreateSolidHeaderElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1886,1
    - Dst: DGNUpdateElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1888,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 6
    argNames:
    - hDGN
    - nType
    - nSurfType
    - nBoundElems
    - nNumElems
    - papsElems
    argTypes:
    - DGNHandle
    - int
    - int
    - int
    - int
    - DGNElemCore**
    constantsTouched: []
    func_position:
      end: 1894
      start: 1828
    functionDepth: 5
    functionLinenumber: 1828
    functionLinenumberEnd: 1894
    functionName: DGNCreateSolidHeaderFromGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNLoadTCB
    - DGNWriteBounds
    - min
    - max
    - DGNCreateSolidHeaderElem
    - CPLError
    - DGNUpdateElemCore
    - DGNGetElementExtents
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateSolidHeaderFromGroup(DGNHandle hDGN, int nType,\n
      \                                          int nSurfType, int nBoundElems,\n
      \                                          int nNumElems,\n                                           DGNElemCore
      **papsElems)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1940,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1946,1
    - Dst: DGNInitializeElemCore
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1949,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1965,1
    - Dst: DGNAsciiToRad50
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1970,1
    - Dst: reinterpret_cast<unsigned short *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1971,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1972,1
    - Dst: DGNAsciiToRad50
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1973,1
    - Dst: reinterpret_cast<unsigned short *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1973,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1979,1
    - Dst: DGNPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1983,1
    - Dst: DGNPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1984,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1986,1
    - Dst: DGNPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1990,1
    - Dst: DGNPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1991,1
    - Dst: DGNInverseTransformPointToInt
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:1993,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2011,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2012,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2013,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2014,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2037,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2038,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2039,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2040,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2041,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2042,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2043,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2044,1
    - Dst: DGN_WRITE_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2045,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2051,1
    - Dst: reinterpret_cast<DGNElemCore *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 11
    argNames:
    - hDGN
    - nTotLength
    - pszName
    - nClass
    - panLevels
    - psRangeLow
    - psRangeHigh
    - psOrigin
    - dfXScale
    - dfYScale
    - dfRotation
    argTypes:
    - DGNHandle
    - int
    - char*
    - short
    - short*
    - DGNPoint*
    - DGNPoint*
    - DGNPoint*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2054
      start: 1900
    functionDepth: 4
    functionLinenumber: 1900
    functionLinenumberEnd: 2054
    functionName: DGNCreateCellHeaderElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 0
    functionsReached:
    - DGNLoadTCB
    - DGNInitializeElemCore
    - DGN_WRITE_INT32
    - DGNPointToInt
    - reinterpret_cast<unsigned short *>
    - DGNUpdateElemCoreExtended
    - strlen
    - DGNAsciiToRad50
    - reinterpret_cast<DGNElemCore *>
    - CPLCalloc
    - memcpy
    - DGNInverseTransformPointToInt
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *\nDGNCreateCellHeaderElem(DGNHandle hDGN, int nTotLength,
      const char *pszName,\n                        short nClass, short *panLevels,
      DGNPoint *psRangeLow,\n                        DGNPoint *psRangeHigh, DGNPoint
      *psOrigin,\n                        double dfXScale, double dfYScale, double
      dfRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2073,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2074,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2074,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - psDGN
    - psPoint
    - pabyTarget
    argTypes:
    - DGNInfo*
    - DGNPoint*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 2090
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2090
    functionName: DGNPointToInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 1
    functionsReached:
    - min
    - static_cast<GInt32>
    - max
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void DGNPointToInt(DGNInfo *psDGN, DGNPoint *psPoint,\n                          unsigned
      char *pabyTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNLoadTCB
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2137,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2141,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2165,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2165,1
    - Dst: DGNGetElementExtents
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2170,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2178,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2179,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2180,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2181,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2182,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2183,1
    - Dst: reinterpret_cast<short *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2214,1
    - Dst: DGNCreateCellHeaderElem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2216,1
    - Dst: DGNWriteBounds
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 10
    argNames:
    - hDGN
    - pszName
    - nClass
    - panLevels
    - nNumElems
    - papsElems
    - psOrigin
    - dfXScale
    - dfYScale
    - dfRotation
    argTypes:
    - DGNHandle
    - char*
    - short
    - short*
    - int
    - DGNElemCore**
    - DGNPoint*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2222
      start: 2127
    functionDepth: 5
    functionLinenumber: 2127
    functionLinenumberEnd: 2222
    functionName: DGNCreateCellHeaderFromGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNLoadTCB
    - DGNCreateCellHeaderElem
    - DGNWriteBounds
    - min
    - max
    - reinterpret_cast<short *>
    - CPLError
    - DGNGetElementExtents
    linkageType: ''
    returnType: DGNElemCore
    signature: "DGNElemCore *DGNCreateCellHeaderFromGroup(DGNHandle hDGN, const char
      *pszName,\n                                          short nClass, short *panLevels,\n
      \                                         int nNumElems,\n                                          DGNElemCore
      **papsElems,\n                                          DGNPoint *psOrigin,
      double dfXScale,\n                                          double dfYScale,
      double dfRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNAddRawAttrLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 5
    argNames:
    - hDGN
    - psElement
    - nLinkageType
    - nEntityNum
    - nMSLink
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2288
      start: 2247
    functionDepth: 1
    functionLinenumber: 2247
    functionLinenumberEnd: 2288
    functionName: DGNAddMSLink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNAddRawAttrLink
    linkageType: ''
    returnType: int
    signature: "int DGNAddMSLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkageType,\n
      \                int nEntityNum, int nMSLink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2326,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2342,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2345,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2353,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2355,1
    - Dst: reinterpret_cast<DGNElemComplexHeader *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2366,1
    - Dst: DGNUpdateElemCoreExtended
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2378,1
    - Dst: DGNGetLinkage
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - hDGN
    - psElement
    - nLinkSize
    - pabyRawLinkData
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 2392
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2392
    functionName: DGNAddRawAttrLink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 3
    functionsReached:
    - CPLRealloc
    - DGNUpdateElemCoreExtended
    - CPLError
    - DGNGetLinkage
    - memcpy
    - reinterpret_cast<DGNElemComplexHeader *>
    linkageType: ''
    returnType: int
    signature: "int DGNAddRawAttrLink(DGNHandle hDGN, DGNElemCore *psElement, int
      nLinkSize,\n                      unsigned char *pabyRawLinkData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNAddRawAttrLink
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp:2423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hDGN
    - psElement
    - nColor
    argTypes:
    - DGNHandle
    - DGNElemCore*
    - int
    constantsTouched: []
    func_position:
      end: 2424
      start: 2413
    functionDepth: 3
    functionLinenumber: 2413
    functionLinenumberEnd: 2424
    functionName: DGNAddShapeFillInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnwrite.cpp
    functionUses: 2
    functionsReached:
    - DGNAddRawAttrLink
    linkageType: ''
    returnType: int
    signature: int DGNAddShapeFillInfo(DGNHandle hDGN, DGNElemCore *psElement, int
      nColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNTestOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:24,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:36,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:38,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:39,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:40,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:42,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 49
    functionName: OGRDGNDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - GDALGetDriverByName
    - memcmp
    - DGNTestOpen
    - CPLError
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRDGNDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:58,1
    - Dst: OGRDGNDataSource::OGRDGNDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:61,1
    - Dst: OGRDGNDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:63,1
    - Dst: OGRDGNDataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: OGRDGNDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNDataSource::OGRDGNDataSource
    - OGRDGNDriverIdentify
    - OGRDGNDataSource*::GetLayerCount
    - OGRDGNDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRDGNDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNDataSource::OGRDGNDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:81,1
    - Dst: OGRDGNDataSource*::PreCreate
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: OGRDGNDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNDataSource*::PreCreate
    - OGRDGNDataSource::OGRDGNDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRDGNDriverCreate(const char *, int /* nBands */,\n
      \                                      int /* nXSize */, int /* nYSize */,\n
      \                                      GDALDataType /* eDT */,\n                                       char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:93,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:96,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:98,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:99,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:101,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:103,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:107,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:158,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:160,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 167
    functionName: RegisterOGRDGN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRDGN()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - pabyHeader
    - nByteCount
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: DGNTestOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DGNTestOpen(GByte *pabyHeader, int nByteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:80,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:83,1
    - Dst: DGNTestOpen
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:94,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:96,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:98,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:102,1
    - Dst: static_cast<DGNInfo *>
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:107,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - pszFilename
    - bUpdate
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 134
    functionName: DGNOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 3
    functionsReached:
    - static_cast<DGNInfo *>
    - VSIFCloseL
    - VSIRewindL
    - VSIFOpenL
    - DGNTestOpen
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: DGNHandle
    signature: DGNHandle DGNOpen(const char *pszFilename, int bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hDGN
    - nOptions
    argTypes:
    - DGNHandle
    - int
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: DGNSetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DGNSetOptions(DGNHandle hDGN, int nOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNSpatialFilterToUOR
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - hDGN
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - DGNHandle
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 212
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 212
    functionName: DGNSetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 2
    functionsReached:
    - DGNSpatialFilterToUOR
    linkageType: ''
    returnType: void
    signature: "void DGNSetSpatialFilter(DGNHandle hDGN, double dfXMin, double dfYMin,\n
      \                        double dfXMax, double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:229,1
    - Dst: DGNInverseTransformPoint
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - psDGN
    argTypes:
    - DGNInfo*
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: DGNSpatialFilterToUOR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 2
    functionsReached:
    - DGNInverseTransformPoint
    linkageType: ''
    returnType: void
    signature: void DGNSpatialFilterToUOR(DGNInfo *psDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:255,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:256,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hDGN
    argTypes:
    - DGNHandle
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: DGNClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 4
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void DGNClose(DGNHandle hDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hDGN
    argTypes:
    - DGNHandle
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: DGNGetDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/dgn/dgnopen.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DGNGetDimension(DGNHandle hDGN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: OGREDIGEODriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:41,1
    - Dst: OGREDIGEODataSource::OGREDIGEODataSource
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:44,1
    - Dst: OGREDIGEODataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: OGREDIGEODriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp
    functionUses: 0
    functionsReached:
    - OGREDIGEODataSource*::Open
    - OGREDIGEODataSource::OGREDIGEODataSource
    - OGREDIGEODriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGREDIGEODriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:62,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:65,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:71,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:77,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:78,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: RegisterOGREDIGEO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGREDIGEO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:25,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:25,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:31,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:31,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:32,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: OGREDIGEODataSource::OGREDIGEODataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - CPLAtof
    linkageType: ''
    returnType: void
    signature: void OGREDIGEODataSource::OGREDIGEODataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:49,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:52,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: OGREDIGEODataSource::~OGREDIGEODataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - Release
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGREDIGEODataSource::~OGREDIGEODataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::ReadEDIGEO
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: OGREDIGEODataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREDIGEODataSource::ReadEDIGEO
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGREDIGEODataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::ReadEDIGEO
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: OGREDIGEODataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREDIGEODataSource::ReadEDIGEO
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:89,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:91,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:96,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:98,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:100,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:105,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:107,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:109,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:111,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:113,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:115,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:116,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:118,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:120,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:123,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:125,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:128,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:130,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:133,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:135,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:139,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:139,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:140,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:140,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:141,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:141,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:142,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:142,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:143,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:143,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:144,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:144,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:145,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:146,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:146,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 149
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 149
    functionName: OGREDIGEODataSource::ReadTHF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - empty
    - CPLReadLine2L
    - CPLDebug
    - strlen
    - push_back
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadTHF(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:159,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:160,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:160,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:160,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:160,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:161,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:164,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:166,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:166,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:166,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:167,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:167,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:168,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:171,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pszType
    - osExt
    argTypes:
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: OGREDIGEODataSource::OpenFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetPathSafe
    - GetDescription
    - CPLDebug
    - VSIFOpenL
    - CPLString::c_str
    - CPLString
    - CPLFormCIFilenameSafe
    linkageType: ''
    returnType: VSILFILE
    signature: "VSILFILE *OGREDIGEODataSource::OpenFile(const char *pszType,\n                                        const
      CPLString &osExt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:183,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:188,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:190,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:193,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:196,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:196,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:201,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:203,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:205,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:210,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:211,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:213,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:213,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:217,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:222,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:227,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:232,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:238,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:244,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 254
    functionName: OGREDIGEODataSource::ReadGEO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - importFromProj4
    - c_str
    - OGRSpatialReference::OGRSpatialReference
    - CPLReadLine2L
    - empty
    - VSIFCloseL
    - OGREDIGEODataSource::OpenFile
    - CPLDebug
    - CPLString::c_str
    - SetAxisMappingStrategy
    - strlen
    - STARTS_WITH
    - SetFromUserInput
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadGEO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:262,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:269,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:271,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:274,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:278,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:284,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:286,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:286,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:291,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:291,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:294,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:295,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:296,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:297,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:299,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 303
    functionName: OGREDIGEODataSource::ReadGEN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLReadLine2L
    - VSIFCloseL
    - CSLDestroy
    - OGREDIGEODataSource::OpenFile
    - strlen
    - CSLCount
    - STARTS_WITH
    - CPLString::empty
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadGEN()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:311,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:322,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:325,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:329,1
    - Dst: OGREDIGEOAttributeDef::OGREDIGEOAttributeDef
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:341,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:344,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:351,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:358,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:360,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:362,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:366,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 369
    functionName: OGREDIGEODataSource::ReadDIC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLine2L
    - VSIFCloseL
    - OGREDIGEODataSource::OpenFile
    - std::move
    - strlen
    - STARTS_WITH
    - OGREDIGEOAttributeDef::OGREDIGEOAttributeDef
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadDIC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:377,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:387,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:390,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:394,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:398,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:398,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:400,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:401,1
    - Dst: OGREDIGEOObjectDescriptor::OGREDIGEOObjectDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:405,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:414,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:414,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:419,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:419,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:421,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:422,1
    - Dst: OGREDIGEOAttributeDescriptor::OGREDIGEOAttributeDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:426,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:433,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:440,1
    - Dst: strListType::resize
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:446,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:449,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:451,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:455,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:459,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:461,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:463,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:467,1
    - Dst: strListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:470,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:472,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:474,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:475,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:478,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 481
    functionName: OGREDIGEODataSource::ReadSCD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREDIGEOAttributeDescriptor::OGREDIGEOAttributeDescriptor
    - end
    - c_str
    - OGREDIGEOObjectDescriptor::OGREDIGEOObjectDescriptor
    - CPLReadLine2L
    - atoi
    - VSIFCloseL
    - find
    - CSLDestroy
    - OGREDIGEODataSource::OpenFile
    - CPLDebug
    - strListType::resize
    - std::move
    - strlen
    - push_back
    - CSLCount
    - STARTS_WITH
    - strListType::push_back
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadSCD()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:489,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:500,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:503,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:507,1
    - Dst: intintType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:511,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:520,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:522,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:523,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:524,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:525,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:528,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 531
    functionName: OGREDIGEODataSource::ReadQAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLine2L
    - atoi
    - VSIFCloseL
    - intintType
    - OGREDIGEODataSource::OpenFile
    - strlen
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadQAL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:549,1
    - Dst: OGREDIGEOObjectDescriptor::osKND::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:549,1
    - Dst: OGREDIGEOLayer::OGREDIGEOLayer
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:556,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:558,1
    - Dst: OGREDIGEOObjectDescriptor::aosAttrRID::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:560,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:563,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:564,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:575,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:580,1
    - Dst: OGREDIGEOLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:580,1
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:582,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:584,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:585,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:586,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:587,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:588,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:590,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:591,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:593,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:594,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:596,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:597,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:599,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:600,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:602,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:603,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:605,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:607,1
    - Dst: OGREDIGEOLayer*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:608,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:614,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - objDesc
    argTypes:
    - OGREDIGEOObjectDescriptor
    constantsTouched: []
    func_position:
      end: 619
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 619
    functionName: OGREDIGEODataSource::CreateLayerFromObjectDesc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - OGREDIGEOObjectDescriptor::osKND::c_str
    - empty
    - OGREDIGEOObjectDescriptor::aosAttrRID::size
    - find
    - CPLDebug
    - OGRFeatureDefn*::GetFieldIndex
    - strcmp
    - CPLRealloc
    - OGREDIGEOLayer*::GetLayerDefn
    - OGREDIGEOLayer::OGREDIGEOLayer
    - OGREDIGEOLayer*::AddFieldDefn
    - OGREDIGEOLayer*::GetName
    linkageType: ''
    returnType: int
    signature: "int OGREDIGEODataSource::CreateLayerFromObjectDesc(\n    const OGREDIGEOObjectDescriptor
      &objDesc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:627,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:644,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:648,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:652,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:656,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:657,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:658,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:668,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:668,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:669,1
    - Dst: strListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:674,1
    - Dst: strListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:680,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:687,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:688,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:694,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:695,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:701,1
    - Dst: strstrType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:702,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:716,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:717,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:717,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:718,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:718,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:719,1
    - Dst: OGREDIGEOFEADesc::OGREDIGEOFEADesc
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:724,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:728,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:732,1
    - Dst: xyPairListType::resize
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:743,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:749,1
    - Dst: strListType::resize
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:750,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:755,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:757,1
    - Dst: xyPairListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:764,1
    - Dst: xyPairType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:764,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:767,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:770,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:772,1
    - Dst: strListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:781,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:784,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:786,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:789,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:793,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:796,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:799,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:801,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:804,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:806,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:809,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:811,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:815,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:820,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:821,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:822,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:836,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:840,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:840,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:842,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:843,1
    - Dst: strstrType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:843,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:848,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:851,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:853,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:856,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:857,1
    - Dst: strstrType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:857,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:861,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:863,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:866,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:868,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:873,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:877,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 159
    argCount: 1
    argNames:
    - pszVECName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 880
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 880
    functionName: OGREDIGEODataSource::ReadVEC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - strcmp
    - strListType::resize
    - std::vector::push_back
    - STARTS_WITH
    - CPLString::empty
    - xyPairType
    - end
    - xyPairListType::push_back
    - find
    - OGREDIGEODataSource::OpenFile
    - CPLString::c_str
    - std::move
    - strlen
    - CPLIsUTF8
    - CSLCount
    - strListType::push_back
    - c_str
    - strstrType
    - CPLFree
    - xyPairListType::resize
    - std::vector::resize
    - CPLReadLine2L
    - xyPairListType::size
    - VSIFCloseL
    - OGREDIGEOFEADesc::OGREDIGEOFEADesc
    - std::pair
    - strListType::size
    - CSLDestroy
    - push_back
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::ReadVEC(const char *pszVECName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:889,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:890,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:892,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:892,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:898,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:899,1
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:903,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:903,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:904,1
    - Dst: std::map<CPLString, OGREDIGEOFEADesc>::iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:904,1
    - Dst: OGREDIGEOFEADesc::aosAttIdVal::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:905,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:911,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:911,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:913,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:914,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:917,1
    - Dst: OGREDIGEOLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:917,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:918,1
    - Dst: OGREDIGEOFEADesc::osQUP_RID::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:918,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:921,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:922,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:926,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:928,1
    - Dst: OGREDIGEOLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:933,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:939,1
    - Dst: OGREDIGEOFEADesc::osSCP::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:939,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - osFEA
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 942
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 942
    functionName: OGREDIGEODataSource::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - OGREDIGEOFEADesc::osQUP_RID::empty
    - OGREDIGEOFEADesc::osSCP::c_str
    - empty
    - OGREDIGEOFEADesc::aosAttIdVal::size
    - find
    - OGREDIGEOLayer*::AddFeature
    - CPLDebug
    - std::map<CPLString, OGREDIGEOFEADesc>::iterator::first::c_str
    - CPLString::c_str
    - strcmp
    - OGREDIGEOLayer*::GetName
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - OGREDIGEOLayer*::GetLayerDefn
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGREDIGEODataSource::CreateFeature(const CPLString &osFEA)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:954,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:954,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:955,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:959,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:960,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:964,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:965,1
    - Dst: OGREDIGEOFEADesc::aosAttIdVal::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:968,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:979,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:986,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:991,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:999,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1008,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1010,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1012,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1014,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1015,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1016,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1017,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1019,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - osFEA
    - poFeature
    argTypes:
    - CPLString
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1029
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 1029
    functionName: OGREDIGEODataSource::SetStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetDefnRef
    - end
    - OGREDIGEOFEADesc::aosAttIdVal::size
    - OGRFeature*::SetStyleString
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetFieldAsString
    - find
    - insert
    - strcmp
    - CPLString
    - OGRFeature*::SetField
    - atan2
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::SetStyle(const CPLString &osFEA, OGRFeature
      *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1037,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1042,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1043,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1045,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1045,1
    - Dst: OGREDIGEODataSource::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1049,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1053,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1055,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1056,1
    - Dst: OGREDIGEODataSource::SetStyle
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1058,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1035
    functionDepth: 4
    functionLinenumber: 1035
    functionLinenumberEnd: 1064
    functionName: OGREDIGEODataSource::BuildPoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - OGRFeature*::SetGeometryDirectly
    - OGRPoint*::assignSpatialReference
    - OGREDIGEODataSource::SetStyle
    - find
    - CPLDebug
    - CPLString::c_str
    - OGRPoint::OGRPoint
    - OGREDIGEODataSource::CreateFeature
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::BuildPoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1074,1
    - Dst: OGREDIGEODataSource::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1078,1
    - Dst: strListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1083,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1086,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1087,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1091,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1092,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1092,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1093,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1095,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1102,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1103,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1106,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1112,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1113,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1117,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1070
    functionDepth: 4
    functionLinenumber: 1070
    functionLinenumberEnd: 1124
    functionName: OGREDIGEODataSource::BuildLineStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - c_str
    - OGRGeometry*::assignSpatialReference
    - xyPairListType::size
    - OGRFeature*::SetGeometryDirectly
    - find
    - OGRLineString*::setNumPoints
    - strListType::size
    - CPLDebug
    - OGRMultiLineString::OGRMultiLineString
    - OGRLineString::OGRLineString
    - OGREDIGEODataSource::CreateFeature
    - OGRLineString*::setPoint
    - OGRMultiLineString*::addGeometryDirectly
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::BuildLineStrings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1135,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1138,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1139,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1141,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1141,1
    - Dst: strListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1153,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1156,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1157,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1158,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1160,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1161,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1164,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1173,1
    - Dst: xyPairListType::back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1178,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1181,1
    - Dst: xyPairListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1182,1
    - Dst: xyPairListType::back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1191,1
    - Dst: xyPairListType::back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1202,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1213,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1214,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1214,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1223,1
    - Dst: xyPairListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1224,1
    - Dst: xyPairListType::back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1225,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1229,1
    - Dst: xyPairListType::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1230,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1231,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1239,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1239,1
    - Dst: OGREDIGEODataSource::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1246,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1250,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1253,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1254,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1254,1
    - Dst: xyPairListType::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1255,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1256,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1257,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1258,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1259,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1260,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1264,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1265,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1270,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1271,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 2
    argNames:
    - osFEA
    - aosPFE
    argTypes:
    - CPLString
    - strListType
    constantsTouched: []
    func_position:
      end: 1275
      start: 1130
    functionDepth: 4
    functionLinenumber: 1130
    functionLinenumberEnd: 1275
    functionName: OGREDIGEODataSource::BuildPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRGeometry*::assignSpatialReference
    - std::vector::size
    - xyPairListType::back
    - CPLDebug
    - std::vector::push_back
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - end
    - xyPairListType::push_back
    - find
    - CPLString::c_str
    - std::move
    - std::vector::empty
    - OGRFeature*::SetGeometryDirectly
    - c_str
    - OGRLinearRing*::setNumPoints
    - OGRLinearRing::OGRLinearRing
    - OGRGeometryFactory::organizePolygons
    - OGREDIGEODataSource::CreateFeature
    - xyPairListType::size
    - strListType::size
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: int
    signature: "int OGREDIGEODataSource::BuildPolygon(const CPLString &osFEA,\n                                      const
      strListType &aosPFE)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1283,1
    - Dst: OGREDIGEODataSource::BuildPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1281
    functionDepth: 5
    functionLinenumber: 1281
    functionLinenumberEnd: 1291
    functionName: OGREDIGEODataSource::BuildPolygons
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGREDIGEODataSource::BuildPolygon
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::BuildPolygons()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1302,1
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1317,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1343,1
    - Dst: OGREDIGEOLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1343,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1345,1
    - Dst: OGREDIGEOLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1345,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1352
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1352
    functionName: OGREDIGEOSortForQGIS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREDIGEOLayer*::GetName
    - strcmp
    - OGREDIGEOLayer*::GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int OGREDIGEOSortForQGIS(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1361,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1368,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1370,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1386
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1386
    functionName: OGREDIGEODataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    - strcmp
    - CPLReadLine2L
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int OGREDIGEODataSource::Open(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1402,1
    - Dst: OGREDIGEODataSource::ReadTHF
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1403,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1405,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1409,1
    - Dst: OGREDIGEODataSource::ReadGEO
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1415,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1421,1
    - Dst: OGREDIGEODataSource::ReadGEN
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1422,1
    - Dst: OGREDIGEODataSource::ReadDIC
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1427,1
    - Dst: OGREDIGEODataSource::ReadSCD
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1433,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1439,1
    - Dst: OGREDIGEODataSource::ReadQAL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1440,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1445,1
    - Dst: OGREDIGEODataSource::CreateLayerFromObjectDesc
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1447,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1453,1
    - Dst: OGREDIGEODataSource::ReadVEC
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1455,1
    - Dst: OGREDIGEODataSource::BuildPoints
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1457,1
    - Dst: OGREDIGEODataSource::BuildLineStrings
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1458,1
    - Dst: OGREDIGEODataSource::BuildPolygons
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1459,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1461,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1462,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1463,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1464,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1465,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1466,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1467,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1468,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1471,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1472,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1473,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1474,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1481,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1485,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1497,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1497,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1498,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1504,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1505,1
    - Dst: OGREDIGEODataSource::CreateLabelLayers
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1506,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1392
    functionDepth: 6
    functionLinenumber: 1392
    functionLinenumberEnd: 1509
    functionName: OGREDIGEODataSource::ReadEDIGEO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 2
    functionsReached:
    - OGREDIGEODataSource::ReadGEO
    - OGREDIGEODataSource::ReadVEC
    - OGREDIGEODataSource::ReadDIC
    - OGREDIGEODataSource::BuildPolygons
    - OGREDIGEODataSource::ReadQAL
    - CPLGetConfigOption
    - CPLTestBool
    - OGREDIGEODataSource::ReadSCD
    - VSIFSeekL
    - OGREDIGEODataSource::ReadGEN
    - OGREDIGEODataSource::BuildLineStrings
    - OGREDIGEODataSource::ReadTHF
    - memmove
    - size
    - empty
    - qsort
    - VSIFCloseL
    - OGREDIGEODataSource::CreateLayerFromObjectDesc
    - OGREDIGEODataSource::CreateLabelLayers
    - OGREDIGEODataSource::BuildPoints
    - GetFeatureCount
    - clear
    linkageType: ''
    returnType: void
    signature: void OGREDIGEODataSource::ReadEDIGEO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1517,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1524,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1525,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1533,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1536,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1541,1
    - Dst: OGREDIGEOLayer::OGREDIGEOLayer
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1540,1
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1543,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1544,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1545,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1546,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1549,1
    - Dst: OGREDIGEOLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1560,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1560,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1561,1
    - Dst: OGREDIGEOLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1562,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp:1567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1568
    functionName: OGREDIGEODataSource::CreateLabelLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeodatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::AddFieldDefn
    - OGRLayer*::ResetReading
    - OGRFeature*::SetFrom
    - std::map::end
    - OGRLayer*::GetNextFeature
    - OGREDIGEOLayer*::AddFeature
    - std::map::find
    - CPLString::c_str
    - CPLRealloc
    - OGRLayer*::GetLayerDefn
    - OGREDIGEOLayer::OGREDIGEOLayer
    - GetLayerByName
    - OGRFeature::OGRFeature
    - OGREDIGEOLayer*::GetLayerDefn
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGREDIGEODataSource::CreateLabelLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:26,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:30,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:32,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:33,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:34,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:35,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:36,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - poDSIn
    - pszName
    - eType
    - poSRSIn
    argTypes:
    - OGREDIGEODataSource*
    - char*
    - OGRwkbGeometryType
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: OGREDIGEOLayer::OGREDIGEOLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 2
    functionsReached:
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - GetGeomFieldCount
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGREDIGEOLayer::OGREDIGEOLayer(OGREDIGEODataSource *poDSIn, const
      char *pszName,\n                               OGRwkbGeometryType eType,\n                               OGRSpatialReference
      *poSRSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:46,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:49,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: OGREDIGEOLayer::~OGREDIGEOLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Release
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOLayer::~OGREDIGEOLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: OGREDIGEOLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:71,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: OGREDIGEOLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Clone
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGREDIGEOLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:87,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: OGREDIGEOLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Clone
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGREDIGEOLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:103,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:106,1
    - Dst: HasUTF8ContentOnly
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: OGREDIGEOLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - HasUTF8ContentOnly
    linkageType: ''
    returnType: int
    signature: int OGREDIGEOLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:119,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: OGREDIGEOLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGREDIGEOLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:130,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:130,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: OGREDIGEOLayer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - push_back
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOLayer::AddFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:141,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osRID
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: OGREDIGEOLayer::GetAttributeIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGREDIGEOLayer::GetAttributeIndex(const CPLString &osRID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:155,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:156,1
    - Dst: OGREDIGEOLayer::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - osName
    - eType
    - osRID
    argTypes:
    - CPLString
    - OGRFieldType
    - CPLString
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: OGREDIGEOLayer::AddFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogredigeolayer.cpp
    functionUses: 1
    functionsReached:
    - GetFieldCount
    - OGREDIGEOLayer::AddFieldDefn
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void OGREDIGEOLayer::AddFieldDefn(const CPLString &osName, OGRFieldType
      eType,\n                                  const CPLString &osRID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: OGREDIGEOLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: OGREDIGEOAttributeDef::OGREDIGEOAttributeDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOAttributeDef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: OGREDIGEOObjectDescriptor::OGREDIGEOObjectDescriptor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOObjectDescriptor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: OGREDIGEOAttributeDescriptor::OGREDIGEOAttributeDescriptor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOAttributeDescriptor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: OGREDIGEOFEADesc::OGREDIGEOFEADesc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREDIGEOFEADesc()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OGREDIGEODataSource::HasUTF8ContentOnly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/edigeo/ogr_edigeo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasUTF8ContentOnly()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: MVTTileLayerValue::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueType
    signature: ValueType getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: MVTTileLayerValue::isNumeric
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isNumeric() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: MVTTileLayerValue::isString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: MVTTileLayerValue::getFloatValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float getFloatValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: MVTTileLayerValue::getDoubleValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double getDoubleValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: MVTTileLayerValue::getIntValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt64
    signature: GInt64 getIntValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: MVTTileLayerValue::getUIntValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GUInt64
    signature: GUInt64 getUIntValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: MVTTileLayerValue::getBoolValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getBoolValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:153,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: MVTTileLayerValue::getNumericValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double getNumericValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:166,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: MVTTileLayerValue::getStringValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - memcpy
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string getStringValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fValue
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: MVTTileLayerValue::setFloatValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setFloatValue(float fValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: MVTTileLayerValue::setDoubleValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setDoubleValue(double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GInt64
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: MVTTileLayerValue::setIntValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setIntValue(GInt64 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GUInt64
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: MVTTileLayerValue::setUIntValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setUIntValue(GUInt64 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GInt64
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: MVTTileLayerValue::setSIntValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setSIntValue(GInt64 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bVal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: MVTTileLayerValue::setBoolValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void setBoolValue(bool bVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:221,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: MVTTileLayerValue::setValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 1
    functionsReached:
    - static_cast<GInt64>
    - MVTTileLayerValue::setValue
    linkageType: ''
    returnType: void
    signature: void setValue(int nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::setSIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:227,1
    - Dst: MVTTileLayerValue::setUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GInt64
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: MVTTileLayerValue::setValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 1
    functionsReached:
    - MVTTileLayerValue::setSIntValue
    - MVTTileLayerValue::setUIntValue
    linkageType: ''
    returnType: void
    signature: void setValue(GInt64 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: MVTTileLayerFeature::hasId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hasId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: MVTTileLayerFeature::getId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GUInt64
    signature: GUInt64 getId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: '&getTags() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GUInt32>
    signature: std::vector<GUInt32> &getTags() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: MVTTileLayerFeature::hasType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hasType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: MVTTileLayerFeature::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeomType
    signature: GeomType getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:296,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: MVTTileLayerFeature::getGeometryCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<GUInt32>
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 getGeometryCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: '&getGeometry() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GUInt32>
    signature: std::vector<GUInt32> &getGeometry() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nId
    argTypes:
    - GUInt64
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: MVTTileLayerFeature::setId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setId(GUInt64 nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:313,1
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nTag
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: MVTTileLayerFeature::addTag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    - push_back
    linkageType: ''
    returnType: void
    signature: void addTag(GUInt32 nTag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eType
    argTypes:
    - GeomType
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: MVTTileLayerFeature::setType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setType(GeomType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:326,1
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nNewSize
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: MVTTileLayerFeature::resizeGeometryArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    - resize
    linkageType: ''
    returnType: void
    signature: void resizeGeometryArray(GUInt32 nNewSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:332,1
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nGeometry
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: MVTTileLayerFeature::addGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    - push_back
    linkageType: ''
    returnType: void
    signature: void addGeometry(GUInt32 nGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nIdx
    - nVal
    argTypes:
    - GUInt32
    - GUInt32
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: MVTTileLayerFeature::setGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setGeometry(GUInt32 nIdx, GUInt32 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - anGeometry
    argTypes:
    - std::vector<GUInt32>
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: MVTTileLayerFeature::setGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setGeometry(const std::vector<GUInt32> &anGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: MVTTileLayer::getVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 getVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: '&getName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &getName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: '&getFeatures() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::shared_ptr<MVTTileLayerFeature>>
    signature: std::vector<std::shared_ptr<MVTTileLayerFeature>> &getFeatures() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: '&getKeys() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> &getKeys() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: '&getValues() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<MVTTileLayerValue>
    signature: std::vector<MVTTileLayerValue> &getValues() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: MVTTileLayer::getExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 getExtent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nVersion
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: MVTTileLayer::setVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayer::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setVersion(GUInt32 nVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: MVTTileLayer::setName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayer::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setName(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:424,1
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:425,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:426,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - osKey
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: MVTTileLayer::addKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - size
    - MVTTileLayer::invalidateCachedSize
    - static_cast<GUInt32>
    - push_back
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 addKey(const std::string &osKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:431,1
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:432,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:433,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oValue
    argTypes:
    - MVTTileLayerValue
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: MVTTileLayer::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - size
    - MVTTileLayer::invalidateCachedSize
    - static_cast<GUInt32>
    - push_back
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 addValue(const MVTTileLayerValue &oValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nExtent
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 441
    functionName: MVTTileLayer::setExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached:
    - MVTTileLayer::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void setExtent(GUInt32 nExtent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: '&getLayers() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::shared_ptr<MVTTileLayer>>
    signature: std::vector<std::shared_ptr<MVTTileLayer>> &getLayers() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:473,1
    - Dst: MVTTile::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: MVTTile::clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 1
    functionsReached:
    - MVTTile::clear
    - MVTTile::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: MVTTile::invalidateCachedSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalidateCachedSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - poSRS
    - dfTopX
    - dfTopY
    - dfTileDim0
    argTypes:
    - OGRSpatialReference*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: InitWebMercatorTilingScheme
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::SetFromUserInput
    linkageType: ''
    returnType: void
    signature: "void InitWebMercatorTilingScheme(OGRSpatialReference *poSRS,\n                                        double
      &dfTopX, double &dfTopY,\n                                        double &dfTileDim0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCmdCountCombined
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: GetCmdId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetCmdId(unsigned int nCmdCountCombined)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCmdCountCombined
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: GetCmdCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetCmdCount(unsigned int nCmdCountCombined)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:303,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: OGRMVTDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: OGRMVTDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: OGRMVTDataset::GetSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: OGRMVTDataset::GetTileDim0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetTileDim0() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: OGRMVTDataset::GetTopXOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetTopXOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: OGRMVTDataset::GetTopYOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetTopYOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: OGRMVTDataset::GetTileMatrixWidth0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetTileMatrixWidth0() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: OGRMVTDataset::GetTileMatrixHeight0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetTileMatrixHeight0() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: OGRMVTLayerBase::~OGRMVTLayerBase()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMVTLayerBase::~OGRMVTLayerBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTInitFields
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oFields
    - oAttributesFromTileStats
    argTypes:
    - CPLJSONObject
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: OGRMVTLayerBase::InitFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTInitFields
    linkageType: ''
    returnType: void
    signature: "void OGRMVTLayerBase::InitFields(const CPLJSONObject &oFields,\n                                 const
      CPLJSONArray &oAttributesFromTileStats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:372,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: OGRMVTLayerBase::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMVTLayerBase::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:391,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:392,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:392,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:393,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:394,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:398,1
    - Dst: GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:398,1
    - Dst: OGRMVTLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:401,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:403,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:404,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:405,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:406,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:407,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:408,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:409,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:410,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:411,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:418,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 7
    argNames:
    - poDS
    - pszLayerName
    - pabyData
    - nLayerSize
    - oFields
    - oAttributesFromTileStats
    - eGeomType
    argTypes:
    - OGRMVTDataset*
    - char*
    - GByte*
    - int
    - CPLJSONObject
    - CPLJSONArray
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 420
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 420
    functionName: OGRMVTLayer::OGRMVTLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - addRingDirectly
    - SetGeomType
    - OGRMVTLayer::GetXY
    - OGRLinearRing::OGRLinearRing
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRMVTLayer::Init
    - GetSRS
    - Reference
    - OGRLinearRing*::addPoint
    - SetDescription
    - CPLGetConfigOption
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRMVTLayer::OGRMVTLayer(OGRMVTDataset *poDS, const char *pszLayerName,\n
      \                        const GByte *pabyData, int nLayerSize,\n                         const
      CPLJSONObject &oFields,\n                         const CPLJSONArray &oAttributesFromTileStats,\n
      \                        OGRwkbGeometryType eGeomType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: OGRMVTLayer::~OGRMVTLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMVTLayer::~OGRMVTLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:457,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:458,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:461,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:462,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:463,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:465,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:468,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:470,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:471,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:474,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:479,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:481,1
    - Dst: ReadFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:486,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:487,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:489,1
    - Dst: ReadFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:494,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:495,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:497,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:500,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:507,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:510,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:512,1
    - Dst: READ_VARUINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:515,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:521,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:523,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:524,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:526,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:529,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:536,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:539,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:541,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:544,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:548,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:549,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:554,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:557,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:558,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:562,1
    - Dst: InitFields
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:566,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:575,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:576,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:585,1
    - Dst: OGRMVTLayer::QuickScanFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:589,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:602,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:608,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:608,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 99
    argCount: 2
    argNames:
    - oFields
    - oAttributesFromTileStats
    argTypes:
    - CPLJSONObject
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 610
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 610
    functionName: OGRMVTLayer::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - READ_VARUINT64
    - InitFields
    - CPLError
    - READ_SIZE
    - static_cast<GIntBig>
    - SKIP_UNKNOWN_FIELD
    - OGRMVTLayer::QuickScanFeature
    - READ_TEXT
    - READ_VARINT64
    - static_cast<int>
    - READ_FIELD_KEY
    - CPLFree
    - ReadFloat64
    - READ_VARSINT64
    - what
    - MAKE_KEY
    - max
    - READ_VARUINT32
    - ReadFloat32
    - push_back
    linkageType: ''
    returnType: void
    signature: "void OGRMVTLayer::Init(const CPLJSONObject &oFields,\n                       const
      CPLJSONArray &oAttributesFromTileStats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:621,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:622,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:624,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:626,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:627,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:629,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:630,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:633,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:634,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:635,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:637,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:640,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:642,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:645,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 3
    argNames:
    - poFieldDefn
    - eSrcType
    - eSrcSubType
    argTypes:
    - OGRFieldDefn*
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 647
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 647
    functionName: MergeFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::SetSubType
    - OGRFieldDefn*::SetType
    linkageType: ''
    returnType: void
    signature: "void MergeFieldDefn(OGRFieldDefn *poFieldDefn, OGRFieldType eSrcType,\n
      \                          OGRFieldSubType eSrcSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:664,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:665,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:667,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:669,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:672,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:678,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:679,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:680,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:682,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:687,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:689,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:700,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:701,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:703,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:705,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:710,1
    - Dst: MergeFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:714,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:718,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:723,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:731,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:733,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:734,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:752,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:753,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:754,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:755,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:757,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:760,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:777,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:778,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:779,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:780,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:782,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:785,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:788,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:792,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:793,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:798,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:799,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:801,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:804,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:806,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:810,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:818,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:825,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:825,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 95
    argCount: 5
    argNames:
    - pabyData
    - pabyDataFeatureEnd
    - bScanFields
    - bScanGeometries
    - bGeomTypeSet
    argTypes:
    - GByte*
    - GByte*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 828
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 828
    functionName: OGRMVTLayer::QuickScanFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - size
    - SKIP_UNKNOWN_FIELD
    - OGR_GT_GetCollection
    - GetCmdId
    - SetGeomType
    - SKIP_VARINT
    - MAKE_KEY
    - OGRFieldDefn::SetSubType
    - GetGeomType
    - GetCmdCount
    - READ_VARUINT32
    - AddFieldDefn
    - GetFieldDefn
    - CPLError
    - READ_SIZE
    - what
    - MergeFieldDefn
    linkageType: ''
    returnType: bool
    signature: "bool OGRMVTLayer::QuickScanFeature(const GByte *pabyData,\n                                   const
      GByte *pabyDataFeatureEnd,\n                                   bool bScanFields,
      bool bScanGeometries,\n                                   bool &bGeomTypeSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 842
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 842
    functionName: OGRMVTLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMVTLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 852
    functionName: OGRMVTLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMVTLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - nX
    - nY
    - dfX
    - dfY
    argTypes:
    - int
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 870
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 870
    functionName: OGRMVTLayer::GetXY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void OGRMVTLayer::GetXY(int nX, int nY, double &dfX, double &dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:886,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:886,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 888
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 888
    functionName: AddWithOverflowAccepted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW AddWithOverflowAccepted(int a,
      int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:910,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:912,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:913,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:917,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:918,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:921,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:922,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:923,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:925,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:926,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:934,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:938,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:943,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:944,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:947,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:948,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:951,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:952,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:961,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:970,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:985,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:988,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:989,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:990,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:991,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:994,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:999,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1000,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1002,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1003,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1007,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1009,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1010,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1012,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1015,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1016,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1019,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1020,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1021,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1022,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1027,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1029,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1030,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1051,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1054,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1055,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1056,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1057,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1060,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1061,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1062,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1063,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1065,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1068,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1069,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1072,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1073,1
    - Dst: OGRMVTLayer::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1074,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1075,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1079,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1080,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1083,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1084,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1088,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1099,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1101,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1107,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1108,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1111,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1112,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1113,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1119,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1121,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1122,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1136,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1136,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 152
    argCount: 2
    argNames:
    - nGeomType
    - pabyDataGeometryEnd
    argTypes:
    - unsigned int
    - GByte*
    constantsTouched: []
    func_position:
      end: 1149
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 1149
    functionName: OGRMVTLayer::ParseGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - GetCmdId
    - OGRMultiPoint*::addGeometryDirectly
    - CPLDebug
    - OGRLinearRing*::isClockwise
    - GetCmdCount
    - AddWithOverflowAccepted
    - OGRPolygon*::addRingDirectly
    - CPLError
    - OGRPolygon::OGRPolygon
    - READ_VARSINT32
    - OGRMVTLayer::GetXY
    - GetGeomType
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRLinearRing::OGRLinearRing
    - SKIP_VARINT
    - OGRMultiPolygon::OGRMultiPolygon
    - what
    - OGRMultiLineString*::addGeometryDirectly
    - OGRLineString*::addPoint
    - READ_VARUINT32
    - OGRLinearRing*::addPoint
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRMVTLayer::ParseGeometry(unsigned int nGeomType,\n
      \                                       const GByte *pabyDataGeometryEnd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1157,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1157,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1158,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1168,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1187,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1187,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1193,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1194,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1197,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1200,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1204,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1213,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1213,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1217,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1220,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1222,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1226
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1226
    functionName: OGRMVTLayer::SanitizeClippedGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - getGeometryType
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryFactory::createGeometry
    - OGRGeometry*::toGeometryCollection
    - GetGeomType
    - OGRGeometryCollection*::addGeometry
    - OGR_GT_GetCollection
    - clone
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRMVTLayer::SanitizeClippedGeometry(OGRGeometry *&poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1253,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1254,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1256,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1261,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1268,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1272,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1273,1
    - Dst: READ_VARUINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1276,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1277,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1277,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1279,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1281,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1284,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1287,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1293,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1294,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1295,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1296,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1305,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1312,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1319,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1325,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1333,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1337,1
    - Dst: OGRMVTLayer::ParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1341,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1345,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1348,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1362,1
    - Dst: OGRMVTLayer::SanitizeClippedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1365,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1366,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1373,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1374,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1375,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1390,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1390,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1391,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1399,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1420,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1420,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1424
    functionName: OGRMVTLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - READ_VARUINT64
    - OGRGeometryFactory::haveGEOS
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::Intersection
    - OGRMVTLayer::SanitizeClippedGeometry
    - CPLError
    - READ_SIZE
    - static_cast<GIntBig>
    - SKIP_UNKNOWN_FIELD
    - OGRMVTLayer::ParseGeometry
    - OGRFeature*::SetGeometryDirectly
    - GetSpatialRef
    - OGRFeature::OGRFeature
    - what
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - size
    - MAKE_KEY
    - READ_VARUINT32
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMVTLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1433
    functionName: OGRMVTLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMVTLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1441,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1442,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1444,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1444,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1445,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1447,1
    - Dst: CPLStringList::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - aosInput
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 1451
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1451
    functionName: StripDummyEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::AddString
    - CPLString
    - CPLStringList::Sort
    - CPLStringList::CPLStringList
    - CPLStringList::Count
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList StripDummyEntries(const CPLStringList &aosInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1463,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1464,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1464,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1465,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1466,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1468,1
    - Dst: OGRMVTDataset*::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1468,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1473,1
    - Dst: InitFields
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1477,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1480,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1480,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1481,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1481,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1482,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1482,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1483,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1484,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1485,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1490,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1491,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1493,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1494,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1497,1
    - Dst: OGRMVTDirectoryLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1499,1
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1506,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1511,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1511,1
    - Dst: OGRMVTDirectoryLayer::OpenTileIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1514,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1520,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1520,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1522,1
    - Dst: OGRMVTDirectoryLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1527,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1533,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 8
    argNames:
    - poDS
    - pszLayerName
    - pszDirectoryName
    - oFields
    - oAttributesFromTileStats
    - bJsonField
    - eGeomType
    - psExtent
    argTypes:
    - OGRMVTDataset*
    - char*
    - char*
    - CPLJSONObject
    - CPLJSONArray
    - bool
    - OGRwkbGeometryType
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1535
      start: 1457
    functionDepth: 4
    functionLinenumber: 1457
    functionLinenumberEnd: 1535
    functionName: OGRMVTDirectoryLayer::OGRMVTDirectoryLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - InitFields
    - atoi
    - CPLGetFilename
    - GetGeomFieldDefn
    - CPLDebug
    - Reference
    - STARTS_WITH
    - CPLGetConfigOption
    - OGRMVTDirectoryLayer::OpenTileIfNeeded
    - SetGeomType
    - Clear
    - OGRAPISpy_L_SetSpatialFilter
    - OGRMVTDataset*::GetSRS
    - OGRMVTDirectoryLayer::ResetReading
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - GetLayerByName
    - SetMetadataItem
    - GetName
    - CPLTestBool
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - Count
    - SetDescription
    - StripDummyEntries
    - CPLJSONObject::GetChildren
    - VSIReadDirEx
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: void
    signature: "void OGRMVTDirectoryLayer::OGRMVTDirectoryLayer(\n    OGRMVTDataset
      *poDS, const char *pszLayerName, const char *pszDirectoryName,\n    const CPLJSONObject
      &oFields, const CPLJSONArray &oAttributesFromTileStats,\n    bool bJsonField,
      OGRwkbGeometryType eGeomType, const OGREnvelope *psExtent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1544
    functionName: OGRMVTDirectoryLayer::~OGRMVTDirectoryLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMVTDirectoryLayer::~OGRMVTDirectoryLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1557
    functionName: OGRMVTDirectoryLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMVTDirectoryLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - nVal
    - nMin
    - nMax
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1566
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1566
    functionName: IsBetween
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBetween(int nVal, int nMin, int nMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1576,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1579,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1580,1
    - Dst: IsBetween
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1581,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1581,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1594,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1595,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1599,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1600,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1602,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1607,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1608,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1610,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1611,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1614,1
    - Dst: OGRMVTDirectoryLayer::OpenTileIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1617,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1572
    functionDepth: 2
    functionLinenumber: 1572
    functionLinenumberEnd: 1623
    functionName: OGRMVTDirectoryLayer::ReadNewSubDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTDirectoryLayer::OpenTileIfNeeded
    - empty
    - atoi
    - Clear
    - StripDummyEntries
    - CPLSPrintf
    - CPLDebug
    - VSIReadDirEx
    - Count
    - IsBetween
    - CPLFormFilenameSafe
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: void OGRMVTDirectoryLayer::ReadNewSubDir()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1633,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1635,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1638,1
    - Dst: m_osTileExtension::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1639,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1641,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1642,1
    - Dst: m_osMetadataMemFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1644,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1645,1
    - Dst: OGRMVTDataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1648,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1649,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1629
    functionDepth: 1
    functionLinenumber: 1629
    functionLinenumberEnd: 1658
    functionName: OGRMVTDirectoryLayer::OpenTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLSetNameValue
    - static_cast<GIntBig>
    - c_str
    - OGRMVTDataset::Open
    - m_osMetadataMemFilename::c_str
    - CSLDestroy
    - CPLSPrintf
    - Count
    - m_osTileExtension::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void OGRMVTDirectoryLayer::OpenTile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDirectoryLayer::ReadNewSubDir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1669,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1673,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1673,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1678,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1679,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1680,1
    - Dst: IsBetween
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1682,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1682,1
    - Dst: Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1696,1
    - Dst: OGRMVTDirectoryLayer::ReadNewSubDir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1699,1
    - Dst: OGRMVTDirectoryLayer::OpenTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1703,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1664
    functionDepth: 3
    functionLinenumber: 1664
    functionLinenumberEnd: 1706
    functionName: OGRMVTDirectoryLayer::OpenTileIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 2
    functionsReached:
    - OGRMVTDirectoryLayer::ReadNewSubDir
    - atoi
    - CPLGetBasenameSafe
    - Count
    - IsBetween
    - GetLayerByName
    - OGRMVTDirectoryLayer::OpenTile
    - GetName
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: void OGRMVTDirectoryLayer::OpenTileIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDirectoryLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1717,1
    - Dst: OGRMVTDirectoryLayer::OpenTileIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1720,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1724,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1724,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1725,1
    - Dst: OGRMVTDirectoryLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1729,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1733
      start: 1712
    functionDepth: 4
    functionLinenumber: 1712
    functionLinenumberEnd: 1733
    functionName: OGRMVTDirectoryLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTDirectoryLayer::OpenTileIfNeeded
    - OGRLayer::GetFeatureCount
    - OGRLayer*::GetFeatureCount
    - OGRMVTDirectoryLayer::ResetReading
    - GetLayerByName
    - GetName
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMVTDirectoryLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1742,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1747,1
    - Dst: OGREnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1749,1
    - Dst: OGREnvelope::Intersect
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1750,1
    - Dst: OGREnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1755,1
    - Dst: GetTileDim0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1755,1
    - Dst: GetTileDim0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1756,1
    - Dst: GetTileDim0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1758,1
    - Dst: GetTileMatrixWidth0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1758,1
    - Dst: GetTileDim0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1760,1
    - Dst: GetTileMatrixHeight0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1760,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1763,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1764,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1764,1
    - Dst: GetTopXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1765,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1766,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1767,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1767,1
    - Dst: GetTopYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1768,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1769,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1770,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1771,1
    - Dst: GetTopXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1771,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1772,1
    - Dst: std::min<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1772,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1773,1
    - Dst: GetTileMatrixWidth0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1774,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1776,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1777,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1778,1
    - Dst: GetTopYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1778,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1779,1
    - Dst: std::min<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1779,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1780,1
    - Dst: GetTileMatrixHeight0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1781,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1788,1
    - Dst: std::min<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1789,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1789,1
    - Dst: GetTileMatrixWidth0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1790,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1792,1
    - Dst: std::min<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1793,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1793,1
    - Dst: GetTileMatrixHeight0
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1794,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1799
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1799
    functionName: OGRMVTDirectoryLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGREnvelope::Intersect
    - floor
    - GetTileDim0
    - OGRLayer::ISetSpatialFilter
    - std::min<int64_t>
    - GetTileMatrixHeight0
    - OGREnvelope::IsInit
    - min
    - GetTopXOrigin
    - max
    - GetTileMatrixWidth0
    - ceil
    - IsInit
    - static_cast<int64_t>
    - GetTopYOrigin
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMVTDirectoryLayer::ISetSpatialFilter(int iGeomField,\n                                               const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1807,1
    - Dst: OGRMVTLayerBase::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1812
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1812
    functionName: OGRMVTDirectoryLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRMVTLayerBase::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRMVTDirectoryLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1821,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1827
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1827
    functionName: OGRMVTDirectoryLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMVTDirectoryLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                        bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTCreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1836,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSrcFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1838
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1838
    functionName: OGRMVTDirectoryLayer::CreateFeatureFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - GetSpatialRef
    - OGRMVTCreateFeatureFrom
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMVTDirectoryLayer::CreateFeatureFrom(OGRFeature *poSrcFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDirectoryLayer::OpenTileIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1848,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1852,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1852,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1853,1
    - Dst: OGRMVTDirectoryLayer::CreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1856,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1857,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1844
    functionDepth: 4
    functionLinenumber: 1844
    functionLinenumberEnd: 1868
    functionName: OGRMVTDirectoryLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTDirectoryLayer::OpenTileIfNeeded
    - OGRFeature*::GetFID
    - OGRLayer*::GetNextFeature
    - OGRMVTDirectoryLayer::CreateFeatureFrom
    - GetLayerByName
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMVTDirectoryLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1879,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1881,1
    - Dst: m_osTileExtension::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1881,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1882,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1883,1
    - Dst: m_osMetadataMemFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1885,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1886,1
    - Dst: OGRMVTDataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1889,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1890,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1894,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1894,1
    - Dst: OGRLayer*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1897,1
    - Dst: OGRMVTDirectoryLayer::CreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1900,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1908
      start: 1874
    functionDepth: 2
    functionLinenumber: 1874
    functionLinenumberEnd: 1908
    functionName: OGRMVTDirectoryLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer*::GetFeature
    - c_str
    - OGRMVTDataset::Open
    - m_osMetadataMemFilename::c_str
    - CPLFormFilenameSafe
    - CSLDestroy
    - CPLSPrintf
    - GDALDataset*::GetLayerByName
    - OGRMVTDirectoryLayer::CreateFeatureFrom
    - m_osTileExtension::c_str
    - CSLSetNameValue
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMVTDirectoryLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1917
    functionName: OGRMVTDirectoryLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMVTDirectoryLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1924,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1926,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1928,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1928,1
    - Dst: InitWebMercatorTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pabyData
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 1933
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1933
    functionName: OGRMVTDataset::OGRMVTDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - CPLTestBool
    - InitWebMercatorTilingScheme
    - SetAxisMappingStrategy
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRMVTDataset::OGRMVTDataset(GByte *pabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1941,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1942,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1943,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1946
    functionName: OGRMVTDataset::~OGRMVTDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - VSIFree
    - empty
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMVTDataset::~OGRMVTDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1955,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1958
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 1958
    functionName: OGRMVTDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - OGRMVTDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMVTDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1967,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1970,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1972,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1972,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1981,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1981,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1985,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1986,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1994,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1995,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1996,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:1997,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2005,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2007,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2007,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2008,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2009,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2016,1
    - Dst: CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2017,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2017,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2018,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2019,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2021,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2024,1
    - Dst: CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2025,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2025,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2025,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2026,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2028,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2030,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2031,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2036,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2036,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2037,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2038,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2038,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2056,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2063,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2063,1
    - Dst: OGRMVTDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2065,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2070,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2084,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2085,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2087,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2091,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2094,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2107,1
    - Dst: GET_FIELDNUMBER
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2108,1
    - Dst: GET_WIRETYPE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2109,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2114,1
    - Dst: READ_TEXT_WITH_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2118,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2120,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2122,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2123,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2126,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2133,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2138,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2141,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2149,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2149,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2154,1
    - Dst: GET_FIELDNUMBER
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2155,1
    - Dst: GET_WIRETYPE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2156,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2161,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2166,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2169,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2178,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2184,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2189,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2195,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2195,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2202,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2203,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2207,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2216,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2221,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2226,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2233,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2239,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2239,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2247,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2249,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2250,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2253,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2259,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2269,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2271,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2273,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2275,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2279,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2280,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2281,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2283,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2285,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2289,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2292,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2303,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2305,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2307,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2309,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2313,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2314,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2315,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2317,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2319,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2323,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2326,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2329,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2331,1
    - Dst: GetCmdCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2333,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2335,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2346,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2356,1
    - Dst: READ_TEXT_WITH_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2361,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2362,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2364,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2365,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2368,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2375,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2379,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2383,1
    - Dst: GET_FIELDNUMBER
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2388,1
    - Dst: GET_WIRETYPE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2389,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2391,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2396,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2399,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2402,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2411,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2415,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2418,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2425,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 239
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2434
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 2434
    functionName: OGRMVTDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - GET_FIELDNUMBER
    - CPLGetFilename
    - reinterpret_cast<GByte *>
    - GetCmdId
    - CPLDebug
    - GetCmdCount
    - CPLString
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - OGRMVTDriverIdentify
    - SKIP_UNKNOWN_FIELD
    - static_cast<unsigned>
    - CPLIsUTF8
    - READ_TEXT_WITH_SIZE
    - STARTS_WITH_CI
    - c_str
    - static_cast<int>
    - READ_FIELD_KEY
    - SKIP_VARINT
    - CPLStringList::empty
    - min
    - CPLStringList
    - CPLFormFilenameSafe
    - CPLFree
    - CPLGetPathSafe
    - VSIStatL
    - StripDummyEntries
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - MAKE_KEY
    - GET_WIRETYPE
    - VSIReadDirEx
    - EQUAL
    - READ_VARUINT32
    - CPLStringList::Count
    - CPLGetValueType
    linkageType: ''
    returnType: int
    signature: int OGRMVTDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 2447
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2447
    functionName: LongLatToSphericalMercator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LongLatToSphericalMercator(double *x, double *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2463,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2466,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2468,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2470,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2471,1
    - Dst: CPLJSONDocument::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2473,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2477,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2482,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2484,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2486,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2488,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2491,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2491,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2491,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2492,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2494,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2494,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2495,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2496,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2497,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2499,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2500,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2501,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2501,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2504,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2505,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2506,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2506,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2510,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2514,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2515,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2517,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2518,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2518,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2520,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2522,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2526,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2527,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2527,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2532,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2534,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2537,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2539,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2541,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2544,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 12
    argNames:
    - osMetadataFile
    - osMetadataContent
    - oVectorLayers
    - oTileStatLayers
    - oBounds
    - poSRS
    - dfTopX
    - dfTopY
    - dfTileDim0
    - nTileMatrixWidth0
    - nTileMatrixHeight0
    - osMetadataMemFilename
    argTypes:
    - CPLString
    - CPLString
    - CPLJSONArray
    - CPLJSONArray
    - CPLJSONObject
    - OGRSpatialReference*
    - double
    - double
    - double
    - int
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 2545
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2545
    functionName: LoadMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - CPLJSONDocument::LoadMemory
    - CPLJSONDocument::Load
    - CPLJSONDocument::Save
    - CPLJSONArray::IsValid
    - CPLJSONObject::ToDouble
    - CPLJSONDocument::GetRoot
    - max
    - OGRSpatialReference*::SetFromUserInput
    - CPLJSONObject::ToInteger
    - CPLJSONArray::Deinit
    - CPLJSONObject::IsValid
    - CPLJSONDocument::LoadUrl
    - CPLJSONDocument::CPLJSONDocument
    - STARTS_WITH
    - CPLString::empty
    linkageType: ''
    returnType: bool
    signature: "bool LoadMetadata(const CPLString &osMetadataFile,\n                         const
      CPLString &osMetadataContent,\n                         CPLJSONArray &oVectorLayers,\n
      \                        CPLJSONArray &oTileStatLayers, CPLJSONObject &oBounds,\n
      \                        OGRSpatialReference *poSRS, double &dfTopX,\n                         double
      &dfTopY, double &dfTileDim0,\n                         int &nTileMatrixWidth0,
      int &nTileMatrixHeight0,\n                         const CPLString &osMetadataMemFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2554,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2555,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2557,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2559,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2560,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2564,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2565,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2566,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2568,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2571,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - poTargetSRS
    - dfX0
    - dfY0
    - dfX1
    - dfY1
    argTypes:
    - OGRSpatialReference*
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2576
      start: 2551
    functionDepth: 2
    functionLinenumber: 2551
    functionLinenumberEnd: 2576
    functionName: ConvertFromWGS84
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - OGRCoordinateTransformation*::Transform
    - LongLatToSphericalMercator
    - OGRSpatialReference::SetAxisMappingStrategy
    - OGRSpatialReference*::IsSame
    - OGRCreateCoordinateTransformation
    linkageType: ''
    returnType: void
    signature: "void ConvertFromWGS84(OGRSpatialReference *poTargetSRS, double &dfX0,\n
      \                            double &dfY0, double &dfX1, double &dfY1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2585,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2586,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2594,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2594,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2603,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2611,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2612,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2617,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2618,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2620,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2623,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2628,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2629,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2637,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2638,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2639,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2640,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2648,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2649,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2654,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2656,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2661,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2663,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2663,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2664,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2665,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2680,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2683,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2684,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2691,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2696,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2701,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2703,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2705,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2708,1
    - Dst: StripDummyEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2709,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2712,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2717,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2718,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2724,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2728,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2728,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2730,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2733,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2735,1
    - Dst: OGRMVTDataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2737,1
    - Dst: OGRMVTDataset::OGRMVTDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2743,1
    - Dst: OGRMVTDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2745,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2747,1
    - Dst: auto::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2751,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2753,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2755,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2757,1
    - Dst: OGR_GT_GetCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2759,1
    - Dst: OGRMVTDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2767,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2767,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2771,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2772,1
    - Dst: OGRMVTDataset*::m_apoLayers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2773,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2774,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2776,1
    - Dst: CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2778,1
    - Dst: OGRMVTDirectoryLayer::OGRMVTDirectoryLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2775,1
    - Dst: OGRMVTDataset*::m_apoLayers::back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2780,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2781,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2782,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2786,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2787,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2789,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2795,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2799,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2804,1
    - Dst: MergeFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2808,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2809,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2810,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2811,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2823,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2839,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2840,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2841,1
    - Dst: OGRMVTDataset::OGRMVTDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2843,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2846,1
    - Dst: LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2847,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2859,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2859,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2862,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2862,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2863,1
    - Dst: ConvertFromWGS84
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2869,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2877,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2878,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2881,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2882,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2885,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2886,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2887,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2888,1
    - Dst: ConvertFromWGS84
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2889,1
    - Dst: OGRMVTDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2894,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2896,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2897,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2898,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2899,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2901,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2902,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2902,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2905,1
    - Dst: OGRMVTFindGeomTypeFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2907,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2908,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2911,1
    - Dst: OGRMVTFindAttributesFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2913,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2914,1
    - Dst: OGRMVTDataset*::m_apoLayers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2916,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2917,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2918,1
    - Dst: OGRMVTDirectoryLayer::OGRMVTDirectoryLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2917,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 151
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2925
      start: 2582
    functionDepth: 5
    functionLinenumber: 2582
    functionLinenumberEnd: 2925
    functionName: OGRMVTDataset::OpenDirectory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - LoadMetadata
    - OGRMVTDirectoryLayer::OGRMVTDirectoryLayer
    - auto::GetLayer
    - GetObj
    - ConvertFromWGS84
    - OGRLayer*::GetGeomType
    - STARTS_WITH
    - CPLStringList::CPLStringList
    - CPLString::empty
    - CPLJSONObject::GetType
    - CPLJSONArray::CPLJSONArray
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - CPLJSONArray::IsValid
    - OGRFeatureDefn*::GetGeomType
    - CPLString::c_str
    - CPLPopErrorHandler
    - OGRFieldDefn*::GetSubType
    - std::move
    - OGRLayer*::GetLayerDefn
    - CPLJSONObject::IsValid
    - CSLTokenizeString2
    - OGRMVTDataset*::m_apoLayers::push_back
    - CPLJSONArray
    - MergeFieldDefn
    - OGRMVTFindGeomTypeFromTileStat
    - CPLJSONObject::ToString
    - OGRFeatureDefn*::GetFieldCount
    - c_str
    - auto::GetLayerCount
    - reinterpret_cast<const char *>
    - OGRLayer*::GetName
    - CPLHTTPFetch
    - CPLFetchBool
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::Deinit
    - OGRMVTDataset*::m_apoLayers::back
    - CPLString::clear
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - CPLJSONArray::Size
    - OGRMVTDataset*::GetLayerByName
    - CPLJSONObject::ToArray
    - OGR_GT_GetCollection
    - CPLFormFilenameSafe
    - std::unique_ptr<OGRLayer>
    - OGRFeatureDefn*::GetFieldDefn
    - CPLGetPathSafe
    - OGRMVTDataset::OGRMVTDataset
    - VSIStatL
    - StripDummyEntries
    - OGRMVTDataset::Open
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - OGRMVTDataset*::SetDescription
    - CSLDestroy
    - OGRMVTFindAttributesFromTileStat
    - CPLPushErrorHandler
    - CPLHTTPDestroyResult
    - VSIMemGenerateHiddenFilename
    - VSIReadDir
    - ToDouble
    - CSLSetNameValue
    - CPLStringList::Count
    - CPLGetValueType
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMVTDataset::OpenDirectory(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2934
      start: 2931
    functionDepth: 0
    functionLinenumber: 2931
    functionLinenumberEnd: 2934
    functionName: OGRMVTDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 4
    functionsReached:
    - OGRMVTDataset::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMVTDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2939,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2944,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2946,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2947,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2948,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2950,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2950,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2956,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2957,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2957,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2958,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2958,1
    - Dst: OGRMVTDataset::OpenDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2962,1
    - Dst: GDALDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2964,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2971,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2972,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2973,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2974,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2974,1
    - Dst: OGRMVTDataset::OpenDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2978,1
    - Dst: GDALDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2980,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2984,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2985,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2991,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2993,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2996,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:2999,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3000,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3000,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3007,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3008,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3008,1
    - Dst: OGRMVTDataset::OpenDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3011,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3020,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3020,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3026,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3027,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3032,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3033,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3033,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3034,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3035,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3035,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3038,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3041,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3044,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3046,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3047,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3048,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3050,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3051,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3052,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3052,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3055,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3057,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3057,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3060,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3060,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3062,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3066,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3067,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3068,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3070,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3071,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3072,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3084,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3085,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3087,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3092,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3098,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3103,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3111,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3116,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3123,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3124,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3127,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3130,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3131,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3131,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3134,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3137,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3138,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3140,1
    - Dst: OGRMVTDataset::OGRMVTDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3148,1
    - Dst: OGRMVTDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3149,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3151,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3153,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3154,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3155,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3163,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3163,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3164,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3165,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3167,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3168,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3169,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3173,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3174,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3176,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3177,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3179,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3181,1
    - Dst: LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3182,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3182,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3186,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3201,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3202,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3203,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3204,1
    - Dst: OGRMVTDataset*::m_poSRS::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3205,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3208,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3209,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3210,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3216,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3218,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3232,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3233,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3236,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3241,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3242,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3245,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3247,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3248,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3249,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3251,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3254,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3255,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3256,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3259,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3262,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3270,1
    - Dst: OGRMVTFindGeomTypeFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3272,1
    - Dst: OGRMVTFindAttributesFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3276,1
    - Dst: OGRMVTDataset*::m_apoLayers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3279,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3280,1
    - Dst: OGRMVTLayer::OGRMVTLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3280,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3283,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3288,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3303,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3303,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 178
    argCount: 2
    argNames:
    - poOpenInfo
    - bRecurseAllowed
    argTypes:
    - GDALOpenInfo*
    - bool
    constantsTouched: []
    func_position:
      end: 3307
      start: 2936
    functionDepth: 6
    functionLinenumber: 2936
    functionLinenumberEnd: 3307
    functionName: OGRMVTDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 4
    functionsReached:
    - CPLGetFilename
    - LoadMetadata
    - GetObj
    - GDALDataset*::SetDescription
    - OGRMVTDataset::OpenDirectory
    - VSIFTellL
    - CPLString
    - CPLError
    - STARTS_WITH
    - CPLString::resize
    - READ_SIZE
    - CPLString::empty
    - OGRMVTDriverIdentify
    - CSLFetchNameValue
    - CPLJSONObject::GetType
    - sscanf
    - CPLJSONArray::CPLJSONArray
    - SKIP_UNKNOWN_FIELD
    - CPLString::substr
    - CPLJSONArray::IsValid
    - VSI_ISDIR
    - READ_TEXT
    - CPLPopErrorHandler
    - strlen
    - CPLJSONArray::Deinit
    - CPLJSONObject::IsValid
    - OGRMVTLayer::OGRMVTLayer
    - OGRMVTDataset*::m_apoLayers::push_back
    - OGRMVTDataset*::m_poSRS::Release
    - OGRMVTFindGeomTypeFromTileStat
    - CPLAtof
    - CPLJSONObject::ToString
    - STARTS_WITH_CI
    - c_str
    - READ_FIELD_KEY
    - CPLHTTPFetch
    - CPLFetchBool
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::Deinit
    - VSIFSeekL
    - CPLString::clear
    - CPLSPrintf
    - VSIFOpenL
    - CPLJSONArray::Size
    - VSIFReadL
    - static_cast<GByte *>
    - CPLString::find
    - CPLFormFilenameSafe
    - CPLFree
    - static_cast<int64_t>
    - std::unique_ptr<OGRLayer>
    - what
    - static_cast<size_t>
    - CPLGetPathSafe
    - OGRMVTDataset::OGRMVTDataset
    - VSIStatL
    - VSIFCloseL
    - CPLGetBasenameSafe
    - MAKE_KEY
    - OGRMVTDataset*::SetDescription
    - strchr
    - READ_VARINT32
    - OGRMVTFindAttributesFromTileStat
    - CPLPushErrorHandler
    - CPLHTTPDestroyResult
    - VSI_MALLOC_VERBOSE
    - CPLGetValueType
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMVTDataset::Open(GDALOpenInfo *poOpenInfo, bool bRecurseAllowed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3475
      start: 3472
    functionDepth: 0
    functionLinenumber: 3472
    functionLinenumberEnd: 3475
    functionName: OGRMVTWriterDataset::GetSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3499
    functionDepth: 0
    functionLinenumber: 3499
    functionLinenumberEnd: 3501
    functionName: OGRMVTWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3506
      start: 3503
    functionDepth: 0
    functionLinenumber: 3503
    functionLinenumberEnd: 3506
    functionName: OGRMVTWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3508
    functionDepth: 0
    functionLinenumber: 3508
    functionLinenumberEnd: 3511
    functionName: OGRMVTWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3517
    functionDepth: 0
    functionLinenumber: 3517
    functionLinenumberEnd: 3520
    functionName: OGRMVTWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3532,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3533,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3533,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3534,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3536,1
    - Dst: OGRMVTWriterDataset*::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3536,1
    - Dst: OGRMVTWriterDataset*::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3538,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3540,1
    - Dst: OGRMVTWriterDataset*::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - poDS
    - pszLayerName
    - poSRSIn
    argTypes:
    - OGRMVTWriterDataset*
    - char*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3550
      start: 3527
    functionDepth: 2
    functionLinenumber: 3527
    functionLinenumberEnd: 3550
    functionName: OGRMVTWriterLayer::OGRMVTWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRMVTWriterDataset*::GetSRS
    - Reference
    - OGRCreateCoordinateTransformation
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRMVTWriterLayer::OGRMVTWriterLayer(OGRMVTWriterDataset *poDS,\n
      \                                    const char *pszLayerName,\n                                     OGRSpatialReference
      *poSRSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3560
    functionName: OGRMVTWriterLayer::~OGRMVTWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMVTWriterLayer::~OGRMVTWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3572
      start: 3566
    functionDepth: 0
    functionLinenumber: 3566
    functionLinenumberEnd: 3572
    functionName: OGRMVTWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMVTWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 3582
      start: 3578
    functionDepth: 0
    functionLinenumber: 3578
    functionLinenumberEnd: 3582
    functionName: OGRMVTWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMVTWriterLayer::CreateField(const OGRFieldDefn *poFieldDefn,
      int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3590,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3591,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3595,1
    - Dst: WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 3599
      start: 3588
    functionDepth: 1
    functionLinenumber: 3588
    functionLinenumberEnd: 3599
    functionName: OGRMVTWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsEmpty
    - OGRGeometry*::transform
    - WriteFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMVTWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3608,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3609,1
    - Dst: InitWebMercatorTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3605
    functionDepth: 1
    functionLinenumber: 3605
    functionLinenumberEnd: 3612
    functionName: OGRMVTWriterDataset::OGRMVTWriterDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    - OGRSpatialReference::OGRSpatialReference
    - InitWebMercatorTilingScheme
    linkageType: ''
    returnType: void
    signature: void OGRMVTWriterDataset::OGRMVTWriterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTWriterDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3620,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3624,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3625,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3626,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3618
    functionDepth: 1
    functionLinenumber: 3618
    functionLinenumberEnd: 3630
    functionName: OGRMVTWriterDataset::~OGRMVTWriterDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTWriterDataset::Close
    - sqlite3_vfs_unregister
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMVTWriterDataset::~OGRMVTWriterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3641,1
    - Dst: OGRMVTWriterDataset::CreateOutput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3643,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3648,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3652,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3656,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3658,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3659,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3659,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3661,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3664,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3636
    functionDepth: 1
    functionLinenumber: 3636
    functionLinenumberEnd: 3668
    functionName: OGRMVTWriterDataset::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - GDALDataset::Close
    - empty
    - OGRMVTWriterDataset::CreateOutput
    - GetDescription
    - VSIUnlink
    - sqlite3_close
    - sqlite3_finalize
    - CPLGetConfigOption
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRMVTWriterDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3681,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3682,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3686,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3687,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3688,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - dfX
    - dfY
    - nX
    - nY
    - dfTopX
    - dfTopY
    - dfTileDim
    argTypes:
    - double
    - double
    - int
    - int
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3691
      start: 3674
    functionDepth: 0
    functionLinenumber: 3674
    functionLinenumberEnd: 3691
    functionName: OGRMVTWriterDataset::ConvertToTileCoords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::round
    linkageType: ''
    returnType: void
    signature: "void OGRMVTWriterDataset::ConvertToTileCoords(double dfX, double dfY,
      int &nX,\n                                              int &nY, double dfTopX,\n
      \                                             double dfTopY,\n                                              double
      dfTileDim) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nCmdId
    - nCmdCount
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3700
      start: 3697
    functionDepth: 0
    functionLinenumber: 3697
    functionLinenumberEnd: 3700
    functionName: GetCmdCountCombined
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetCmdCountCombined(unsigned int nCmdId, unsigned int nCmdCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature*::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3712,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3718,1
    - Dst: OGRMVTWriterDataset::ConvertToTileCoords
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3729,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3739,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3740,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3743,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3743,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3744,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3744,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3746,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3749,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3750,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3753,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3753,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3754,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3754,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3756,1
    - Dst: MVTTileLayerFeature*::resizeGeometryArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3774,1
    - Dst: MVTTileLayerFeature*::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3774,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3783,1
    - Dst: MVTTileLayerFeature*::setGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3785,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3786,1
    - Dst: MVTTileLayerFeature*::resizeGeometryArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3791,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 11
    argNames:
    - poGPBFeature
    - poLS
    - poOutLS
    - bWriteLastPoint
    - bReverseOrder
    - nMinLineTo
    - dfTopX
    - dfTopY
    - dfTileDim
    - nLastX
    - nLastY
    argTypes:
    - MVTTileLayerFeature*
    - OGRLineString*
    - OGRLineString*
    - bool
    - bool
    - GUInt32
    - double
    - double
    - double
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3796
      start: 3706
    functionDepth: 2
    functionLinenumber: 3706
    functionLinenumberEnd: 3796
    functionName: OGRMVTWriterDataset::EncodeLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - EncodeSInt
    - MVTTileLayerFeature*::resizeGeometryArray
    - GetCmdCountCombined
    - MVTTileLayerFeature*::addGeometry
    - MVTTileLayerFeature*::getGeometryCount
    - OGRLineString*::setNumPoints
    - MVTTileLayerFeature*::setGeometry
    - OGRMVTWriterDataset::ConvertToTileCoords
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: bool
    signature: "bool OGRMVTWriterDataset::EncodeLineString(\n    MVTTileLayerFeature
      *poGPBFeature, const OGRLineString *poLS,\n    OGRLineString *poOutLS, bool
      bWriteLastPoint, bool bReverseOrder,\n    GUInt32 nMinLineTo, double dfTopX,
      double dfTopY, double dfTileDim,\n    int &nLastX, int &nLastY) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::Buffer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3807,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3808,1
    - Dst: std::unique_ptr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3808,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3814,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3814,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3816,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3817,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3819,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3819,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3821,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3826,1
    - Dst: MVTTileLayerFeature*::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3829,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3834,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3835,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3854,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3855,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3858,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3858,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3859,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3859,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3860,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3863,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3864,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3867,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3867,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3868,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3868,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3869,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3877,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3878,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3879,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3879,1
    - Dst: OGRPolygon::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3883,1
    - Dst: MVTTileLayerFeature*::setGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3888,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3890,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3891,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3891,1
    - Dst: MVTTileLayerFeature*::resizeGeometryArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3896,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - poGPBFeature
    - oInPoly
    - nLastX
    - nLastY
    argTypes:
    - MVTTileLayerFeature*
    - OGRPolygon
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3900
      start: 3803
    functionDepth: 2
    functionLinenumber: 3803
    functionLinenumberEnd: 3900
    functionName: OGRMVTWriterDataset::EncodeRepairedOuterRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::OGRPolygon
    - auto::setPoint
    - OGRMultiPolygon*::getGeometryRef
    - OGRPolygon::IsValid
    - MVTTileLayerFeature*::addGeometry
    - wkbFlatten
    - std::make_unique<OGRLinearRing>
    - MVTTileLayerFeature*::resizeGeometryArray
    - std::unique_ptr::getGeometryType
    - OGRPolygon::Buffer
    - MVTTileLayerFeature*::setGeometry
    - GetCmdCountCombined
    - auto::setNumPoints
    - std::unique_ptr::get
    - EncodeSInt
    - OGRPolygon::addRingDirectly
    - auto::release
    - MVTTileLayerFeature*::getGeometryCount
    - std::unique_ptr::IsEmpty
    - OGRPolygon*::getExteriorRing
    linkageType: ''
    returnType: bool
    signature: "bool OGRMVTWriterDataset::EncodeRepairedOuterRing(\n    MVTTileLayerFeature
      *poGPBFeature, OGRPolygon &oInPoly, int &nLastX,\n    int &nLastY) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3915,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3916,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3918,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3919,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3920,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3921,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3921,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3921,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3922,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3922,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3922,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3941,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3943,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3943,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3943,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3957,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3957,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3961,1
    - Dst: OGRPolygon*::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3963,1
    - Dst: OGRLinearRing*::get_Area
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3965,1
    - Dst: OGRLinearRing*::get_Area
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3967,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3969,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:3969,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 27
    argCount: 9
    argNames:
    - poGPBFeature
    - poPoly
    - poOutPoly
    - dfTopX
    - dfTopY
    - dfTileDim
    - nLastX
    - nLastY
    - dfArea
    argTypes:
    - MVTTileLayerFeature*
    - OGRPolygon*
    - OGRPolygon*
    - double
    - double
    - double
    - int
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3973
      start: 3907
    functionDepth: 1
    functionLinenumber: 3907
    functionLinenumberEnd: 3973
    functionName: OGRMVTWriterDataset::EncodePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - OGRLinearRing*::get_Area
    - MVTTileLayerFeature*::addGeometry
    - OGRPolygon*::getInteriorRing
    - OGRLinearRing*::getY
    - auto::get
    - OGRPolygon*::getNumInteriorRings
    - OGRPolygon*::getExteriorRing
    - OGRLinearRing*::getX
    - GetCmdCountCombined
    - OGRPolygon*::addRing
    - std::make_unique<OGRLinearRing>
    - std::unique_ptr::get
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: bool
    signature: "bool OGRMVTWriterDataset::EncodePolygon(MVTTileLayerFeature *poGPBFeature,\n
      \                                       const OGRPolygon *poPoly,\n                                        OGRPolygon
      *poOutPoly, double dfTopX,\n                                        double dfTopY,
      double dfTileDim,\n                                        int &nLastX, int
      &nLastY,\n                                        double &dfArea) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4007,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4008,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4009,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4010,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4011,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4012,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4013,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4014,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4017,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4019,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4020,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4028,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4028,1
    - Dst: std::shared_ptr<MVTTileLayerFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4030,1
    - Dst: MVTTileLayerFeature::MVTTileLayerFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4030,1
    - Dst: std::shared_ptr::addFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4031,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4033,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4033,1
    - Dst: std::shared_ptr::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4035,1
    - Dst: std::shared_ptr::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4037,1
    - Dst: std::shared_ptr::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4039,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4042,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4047,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4047,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4059,1
    - Dst: OGRGeometry*::SimplifyPreserveTopology
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4060,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4061,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4063,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4064,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4064,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4080,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4080,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4082,1
    - Dst: OGRMVTWriterDataset::EncodePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4084,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4084,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4088,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4088,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4091,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4093,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4093,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4095,1
    - Dst: OGRMVTWriterDataset::EncodePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4098,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4098,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4102,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4102,1
    - Dst: toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4106,1
    - Dst: OGRMVTWriterDataset::EncodePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4111,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4111,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4124,1
    - Dst: OGRMVTWriterDataset::ConvertToTileCoords
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4129,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4130,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4130,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4131,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4131,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4132,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4132,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4138,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4140,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4141,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4146,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4146,1
    - Dst: toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4148,1
    - Dst: OGRMVTWriterDataset::ConvertToTileCoords
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4152,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4154,1
    - Dst: std::pair<int, int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4154,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4155,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4157,1
    - Dst: std::pair<int, int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4157,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4161,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4161,1
    - Dst: std::shared_ptr::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4162,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4162,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4168,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4168,1
    - Dst: std::shared_ptr::setGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4170,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4171,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4182,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4185,1
    - Dst: OGRMVTWriterDataset::EncodeLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4187,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4187,1
    - Dst: OGRLineString::get_Length
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4190,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4196,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4201,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4201,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4203,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4204,1
    - Dst: OGRLineString::get_Length
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4210,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4220,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4223,1
    - Dst: std::shared_ptr::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4224,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4225,1
    - Dst: OGRMVTWriterDataset::EncodePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4226,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4226,1
    - Dst: OGRPolygon::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4232,1
    - Dst: OGRPolygon::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4238,1
    - Dst: std::shared_ptr::resizeGeometryArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4241,1
    - Dst: EmitValidPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4242,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4242,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4250,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4253,1
    - Dst: std::shared_ptr::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4254,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4255,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4258,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4258,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4260,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4262,1
    - Dst: OGRMVTWriterDataset::EncodePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4263,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4264,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4264,1
    - Dst: OGRMultiPolygon::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4267,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4267,1
    - Dst: OGRMultiPolygon::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4273,1
    - Dst: OGRMultiPolygon::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4279,1
    - Dst: std::shared_ptr::resizeGeometryArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4282,1
    - Dst: EmitValidPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4283,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4283,1
    - Dst: std::shared_ptr::addKey
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4293,1
    - Dst: std::shared_ptr::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4294,1
    - Dst: std::shared_ptr::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4295,1
    - Dst: std::shared_ptr::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4296,1
    - Dst: std::shared_ptr::setId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4300,1
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4305,1
    - Dst: std::shared_ptr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4306,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4307,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4309,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4311,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4312,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4313,1
    - Dst: CPLString::data
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4313,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4313,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4314,1
    - Dst: std::shared_ptr::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4319,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4325,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4325,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4326,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4331,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4332,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4333,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4334,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4334,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4336,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4337,1
    - Dst: CPLString::data
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4337,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4338,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4338,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4339,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4340,1
    - Dst: std::shared_ptr::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4340,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4341,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4343,1
    - Dst: InsertIntoDb
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4351,1
    - Dst: InsertIntoDb
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4355,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 158
    argCount: 9
    argNames:
    - nZ
    - nTileX
    - nTileY
    - osTargetName
    - bIsMaxZoomForLayer
    - poFeatureContent
    - nSerial
    - poGeom
    - sEnvelope
    argTypes:
    - int
    - int
    - int
    - CPLString
    - bool
    - OGRMVTFeatureContent*
    - GIntBig
    - OGRGeometry*
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 4364
      start: 3979
    functionDepth: 3
    functionLinenumber: 3979
    functionLinenumberEnd: 4364
    functionName: OGRMVTWriterDataset::PreGenerateForTileReal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - std::set::size
    - std::unique_ptr<OGRGeometry>
    - std::shared_ptr::setId
    - OGRMVTWriterDataset::EncodePolygon
    - OGRPolygon::MakeValid
    - sqlite3_reset
    - MVTTileLayerFeature::MVTTileLayerFeature
    - OGRLineString::OGRLineString
    - OGRGeometry*::getGeometryType
    - std::shared_ptr::write
    - std::shared_ptr::addTag
    - OGRMultiPolygon::IsValid
    - std::pair<int, int>
    - std::shared_ptr::resizeGeometryArray
    - OGRMVTWriterDataset::ConvertToTileCoords
    - EncodeSInt
    - CPLString::assign
    - OGRMultiPolygon::MakeValid
    - VSIFWriteL
    - OGRLinearRing*::addPoint
    - std::set::end
    - std::shared_ptr::getType
    - toMultiPolygon
    - std::set::insert
    - OGRMultiPolygon::addGeometryDirectly
    - OGRPolygon::OGRPolygon
    - OGRPolygon::IsValid
    - MVTTile::addLayer
    - std::shared_ptr::addGeometry
    - wkbFlatten
    - sqlite3_bind_text
    - static_cast<int>
    - toLineString
    - static_cast<char *>
    - CPLFree
    - std::make_unique<OGRPolygon>
    - OGRGeometry*::IsEmpty
    - EmitValidPolygon
    - std::shared_ptr::setName
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    - std::shared_ptr::get
    - std::shared_ptr::setGeometry
    - OGRGeometry*::Intersection
    - MVTTile::MVTTile
    - std::shared_ptr<MVTTileLayerFeature>
    - InsertIntoDb
    - OGRMVTWriterDataset::EncodeLineString
    - CPLString::c_str
    - std::unique_ptr::reset
    - sqlite3_bind_double
    - std::unique_ptr::getGeometryType
    - getGeometryType
    - OGRLinearRing::OGRLinearRing
    - OGRGeometry*::toGeometryCollection
    - std::shared_ptr::addFeature
    - toPoint
    - std::shared_ptr::getGeometryCount
    - CPLSPrintf
    - std::set::find
    - std::shared_ptr::setType
    - OGRMultiPolygon::OGRMultiPolygon
    - MVTTile::write
    - GetCmdCountCombined
    - OGRGeometry*::toLineString
    - OGRLineString::get_Length
    - VSIFCloseL
    - sqlite3_bind_blob
    - sqlite3_bind_int
    - auto::get
    - std::shared_ptr::addValue
    - CPLError
    - toGeometryCollection
    - MVTTileLayer::MVTTileLayer
    - toPolygon
    - CPLString::size
    - sqlite3_bind_int64
    - CPLString::data
    - std::shared_ptr::addKey
    - OGRGeometry*::SimplifyPreserveTopology
    - static_cast<GUInt32>
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - std::unique_ptr::get
    - std::shared_ptr<MVTTileLayer>
    - OGRPolygon::addRingDirectly
    - auto::release
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMVTWriterDataset::PreGenerateForTileReal(\n    int nZ, int
      nTileX, int nTileY, const CPLString &osTargetName,\n    bool bIsMaxZoomForLayer,
      const OGRMVTFeatureContent *poFeatureContent,\n    GIntBig nSerial, const OGRGeometry
      *poGeom,\n    const OGREnvelope &sEnvelope) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MVTWriterTask *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4391,1
    - Dst: MVTWriterTask*::poDS::PreGenerateForTileReal
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4392,1
    - Dst: MVTWriterTask*::poFeatureContent::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4394,1
    - Dst: MVTWriterTask*::poGeom::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParam
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4402
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4402
    functionName: OGRMVTWriterDataset::WriterTaskFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - MVTWriterTask*::poDS::PreGenerateForTileReal
    - static_cast<MVTWriterTask *>
    - MVTWriterTask*::poFeatureContent::get
    - MVTWriterTask*::poGeom::get
    linkageType: ''
    returnType: void
    signature: void OGRMVTWriterDataset::WriterTaskFunc(void *pParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTWriterDataset::PreGenerateForTileReal
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4417,1
    - Dst: std::shared_ptr<OGRMVTFeatureContent>::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4419,1
    - Dst: std::shared_ptr<OGRGeometry>::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4419,1
    - Dst: MVTWriterTask::MVTWriterTask
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4423,1
    - Dst: SubmitJob
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4434,1
    - Dst: WaitCompletion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 9
    argNames:
    - nZ
    - nTileX
    - nTileY
    - osTargetName
    - bIsMaxZoomForLayer
    - poFeatureContent
    - nSerial
    - poGeom
    - sEnvelope
    argTypes:
    - int
    - int
    - int
    - CPLString
    - bool
    - std::shared_ptr<OGRMVTFeatureContent>
    - GIntBig
    - std::shared_ptr<OGRGeometry>
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 4441
      start: 4408
    functionDepth: 4
    functionLinenumber: 4408
    functionLinenumberEnd: 4441
    functionName: OGRMVTWriterDataset::PreGenerateForTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - WaitCompletion
    - std::shared_ptr<OGRGeometry>::get
    - MVTWriterTask::MVTWriterTask
    - std::shared_ptr<OGRMVTFeatureContent>::get
    - SubmitJob
    - OGRMVTWriterDataset::PreGenerateForTileReal
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMVTWriterDataset::PreGenerateForTile(\n    int nZ, int nTileX,
      int nTileY, const CPLString &osTargetName,\n    bool bIsMaxZoomForLayer,\n    const
      std::shared_ptr<OGRMVTFeatureContent> &poFeatureContent,\n    GIntBig nSerial,
      const std::shared_ptr<OGRGeometry> &poGeom,\n    const OGREnvelope &sEnvelope)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTLayerProperties*::m_oMapFieldNameToIdx::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4451,1
    - Dst: MVTLayerProperties*::m_oMapFieldNameToIdx::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4453,1
    - Dst: MVTLayerProperties*::m_oSetFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4455,1
    - Dst: MVTLayerProperties*::m_oSetFields::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4457,1
    - Dst: MVTLayerProperties*::m_oMapFieldNameToIdx::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4458,1
    - Dst: MVTTileLayerValue::isNumeric
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4463,1
    - Dst: MVTTileLayerValue::getNumericValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4465,1
    - Dst: MVTTileLayerValue::getNumericValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4466,1
    - Dst: MVTTileLayerValue::isNumeric
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4470,1
    - Dst: MVTTileLayerValue::isString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4471,1
    - Dst: MVTLayerProperties*::m_aoFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4475,1
    - Dst: MVTLayerProperties*::m_aoFields::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4476,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4476,1
    - Dst: MVTLayerProperties*::m_aoFields::back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4477,1
    - Dst: MVTTileLayerValue::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4488,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4490,1
    - Dst: MVTTileLayerValue::setBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4491,1
    - Dst: MVTTileLayerValue::getBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4491,1
    - Dst: MVTFieldProperties*::m_oSetAllValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4492,1
    - Dst: MVTFieldProperties*::m_oSetValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4493,1
    - Dst: MVTTileLayerValue::isNumeric
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4495,1
    - Dst: MVTTileLayerValue::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4500,1
    - Dst: MVTTileLayerValue::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4501,1
    - Dst: MVTTileLayerValue::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4502,1
    - Dst: MVTTileLayerValue::getUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4503,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4507,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4509,1
    - Dst: MVTFieldProperties*::m_oSetAllValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4510,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4512,1
    - Dst: MVTTileLayerValue::setDoubleValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4513,1
    - Dst: MVTFieldProperties*::m_oSetAllValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4514,1
    - Dst: MVTFieldProperties*::m_oSetValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4515,1
    - Dst: MVTFieldProperties*::m_oSetValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4517,1
    - Dst: MVTTileLayerValue::isString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4521,1
    - Dst: MVTFieldProperties*::m_oSetAllValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4522,1
    - Dst: MVTTileLayerValue::getStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4524,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4525,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4526,1
    - Dst: MVTFieldProperties*::m_oSetAllValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4527,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4528,1
    - Dst: MVTFieldProperties*::m_oSetValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4529,1
    - Dst: MVTFieldProperties*::m_oSetValues::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4531,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - poLayerProperties
    - osKey
    - oValue
    argTypes:
    - MVTLayerProperties*
    - std::string
    - MVTTileLayerValue
    constantsTouched: []
    func_position:
      end: 4535
      start: 4447
    functionDepth: 2
    functionLinenumber: 4447
    functionLinenumberEnd: 4535
    functionName: OGRMVTWriterDataset::UpdateLayerProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - MVTFieldProperties*::m_oSetAllValues::size
    - MVTTileLayerValue::MVTTileLayerValue
    - MVTLayerProperties*::m_aoFields::size
    - MVTTileLayerValue::setDoubleValue
    - auto::size
    - MVTTileLayerValue::setBoolValue
    - MVTTileLayerValue::getStringValue
    - MVTTileLayerValue::getBoolValue
    - MVTFieldProperties*::m_oSetAllValues::insert
    - MVTLayerProperties*::m_oSetFields::insert
    - MVTTileLayerValue::getUIntValue
    - MVTTileLayerValue::isString
    - MVTLayerProperties*::m_oMapFieldNameToIdx::find
    - std::move
    - MVTLayerProperties*::m_aoFields::push_back
    - MVTTileLayerValue::isNumeric
    - MVTFieldProperties*::m_oSetValues::size
    - min
    - MVTTileLayerValue::getType
    - MVTLayerProperties*::m_oMapFieldNameToIdx::end
    - MVTLayerProperties*::m_oMapFieldNameToIdx::size
    - MVTLayerProperties*::m_oSetFields::size
    - max
    - MVTTileLayerValue::setStringValue
    - MVTLayerProperties*::m_aoFields::back
    - MVTTileLayerValue::getNumericValue
    - MVTFieldProperties*::m_oSetValues::insert
    linkageType: ''
    returnType: void
    signature: "void OGRMVTWriterDataset::UpdateLayerProperties(\n    MVTLayerProperties
      *poLayerProperties, const std::string &osKey,\n    const MVTTileLayerValue &oValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4543,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4546,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4548,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4551,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4551,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4551,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4552,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4556,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4557,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4557,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4558,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - oTileBuffer
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 4562
      start: 4541
    functionDepth: 1
    functionLinenumber: 4541
    functionLinenumberEnd: 4562
    functionName: GZIPCompress
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - VSIGetMemFileBuffer
    - static_cast<size_t>
    - std::string::assign
    - reinterpret_cast<char *>
    - std::string::data
    - VSIFCloseL
    - std::string::size
    - VSIUnlink
    - VSIFOpenL
    - VSIFWriteL
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: void
    signature: void GZIPCompress(std::string &oTileBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GUInt32>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4588,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4591,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4595,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4597,1
    - Dst: std::vector<GUInt32>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4602,1
    - Dst: DecodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4605,1
    - Dst: DecodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4606,1
    - Dst: std::unique_ptr<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4618,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4619,1
    - Dst: std::unique_ptr<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4620,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4621,1
    - Dst: std::unique_ptr::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4630,1
    - Dst: std::unique_ptr::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4631,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4634,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4634,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4635,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4635,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4641,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4642,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4648,1
    - Dst: std::vector<GUInt32>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4654,1
    - Dst: DecodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4657,1
    - Dst: DecodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4658,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4670,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4671,1
    - Dst: std::unique_ptr::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4672,1
    - Dst: std::unique_ptr::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4673,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4676,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4676,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4677,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4677,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4693,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4693,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4694,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4694,1
    - Dst: GetCmdCountCombined
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4698,1
    - Dst: GetCmdId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4699,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4705,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4710,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4723,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4724,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4725,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4730,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4739,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4740,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4749,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4756,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4757,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4757,1
    - Dst: std::unique_ptr<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4758,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4759,1
    - Dst: OGRPolygon::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4763,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4769,1
    - Dst: std::unique_ptr::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4772,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4778,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4779,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4779,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4780,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4780,1
    - Dst: OGRPolygon::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4784,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4793,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4800,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4808,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 124
    argCount: 4
    argNames:
    - eGeomType
    - anSrcGeometry
    - nSrcExtent
    - nDstExtent
    argTypes:
    - MVTTileLayerFeature::GeomType
    - std::vector<GUInt32>
    - GUInt32
    - GUInt32
    constantsTouched: []
    func_position:
      end: 4815
      start: 4568
    functionDepth: 1
    functionLinenumber: 4568
    functionLinenumberEnd: 4815
    functionName: GetReducedPrecisionGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - GetCmdId
    - std::unique_ptr::setNumPoints
    - std::vector::size
    - std::vector::push_back
    - OGRPolygon::OGRPolygon
    - std::unique_ptr<OGRLinearRing>
    - OGRPolygon::IsValid
    - std::unique_ptr::release
    - std::vector<GUInt32>::size
    - OGRLinearRing::OGRLinearRing
    - OGRPolygon::addRing
    - std::unique_ptr::isClockwise
    - CPLAssert
    - GetCmdCountCombined
    - std::unique_ptr::closeRings
    - std::unique_ptr::get
    - std::unique_ptr::getNumPoints
    - std::vector::resize
    - std::unique_ptr::addPoint
    - EncodeSInt
    - OGRPolygon::addRingDirectly
    - DecodeSInt
    linkageType: ''
    returnType: std::vector<GUInt32>
    signature: "std::vector<GUInt32> GetReducedPrecisionGeometry(MVTTileLayerFeature::GeomType
      eGeomType,\n                            const std::vector<GUInt32> &anSrcGeometry,\n
      \                           GUInt32 nSrcExtent, GUInt32 nDstExtent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4832,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4834,1
    - Dst: MVTTileLayer::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4836,1
    - Dst: MVTTileLayer::getFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4839,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4840,1
    - Dst: MVTTileLayerFeature::MVTTileLayerFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4844,1
    - Dst: auto::hasId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4846,1
    - Dst: std::shared_ptr::setId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4847,1
    - Dst: auto::getId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4847,1
    - Dst: std::shared_ptr::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4848,1
    - Dst: auto::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4848,1
    - Dst: auto::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4851,1
    - Dst: MVTTileLayer::getKeys
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4857,1
    - Dst: MVTTileLayer::getValues
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4858,1
    - Dst: auto::getTags
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4859,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4860,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4864,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4865,1
    - Dst: auto::getUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4870,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4872,1
    - Dst: std::shared_ptr::setGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4879,1
    - Dst: GetReducedPrecisionGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4879,1
    - Dst: auto::getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4880,1
    - Dst: auto::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4880,1
    - Dst: std::shared_ptr::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4882,1
    - Dst: std::shared_ptr::setGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4889,1
    - Dst: auto::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4889,1
    - Dst: MVTTileLayer::getKeys
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4893,1
    - Dst: std::map<CPLString, GUInt32>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4896,1
    - Dst: std::map<CPLString, GUInt32>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4897,1
    - Dst: std::shared_ptr<MVTTileLayer>::addKey
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4899,1
    - Dst: MVTTileLayer::getValues
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4903,1
    - Dst: std::map<MVTTileLayerValue, GUInt32>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4906,1
    - Dst: std::map<MVTTileLayerValue, GUInt32>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4907,1
    - Dst: std::shared_ptr<MVTTileLayer>::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4910,1
    - Dst: auto::getTags
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4914,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4915,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4919,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4920,1
    - Dst: OGRMVTWriterDataset::UpdateLayerProperties
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4927,1
    - Dst: std::shared_ptr::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4931,1
    - Dst: std::shared_ptr::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4932,1
    - Dst: std::shared_ptr<MVTTileLayer>::addFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4937,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4944,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4947,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 8
    argNames:
    - pabyBlob
    - nBlobSize
    - poTargetLayer
    - oMapKeyToIdx
    - oMapValueToIdx
    - poLayerProperties
    - nExtent
    - nFeaturesInTile
    argTypes:
    - void*
    - int
    - std::shared_ptr<MVTTileLayer>
    - std::map<CPLString, GUInt32>
    - std::map<MVTTileLayerValue, GUInt32>
    - MVTLayerProperties*
    - GUInt32
    - unsigned
    constantsTouched: []
    func_position:
      end: 4948
      start: 4821
    functionDepth: 3
    functionLinenumber: 4821
    functionLinenumberEnd: 4948
    functionName: OGRMVTWriterDataset::EncodeFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<MVTTileLayer>::addKey
    - std::shared_ptr::setId
    - std::map<MVTTileLayerValue, GUInt32>::end
    - std::map<CPLString, GUInt32>::end
    - CPLError
    - printf
    - auto::size
    - GetReducedPrecisionGeometry
    - MVTTileLayer::MVTTileLayer
    - auto::getId
    - auto::getGeometry
    - MVTTileLayer::read
    - MVTTileLayer::getFeatures
    - auto::hasId
    - auto::getUIntValue
    - OGRMVTWriterDataset::UpdateLayerProperties
    - std::move
    - MVTTileLayerFeature::MVTTileLayerFeature
    - auto::getType
    - MVTTileLayer::getKeys
    - std::shared_ptr<MVTTileLayer>::addFeature
    - std::shared_ptr::addTag
    - std::shared_ptr<MVTTileLayer>::addValue
    - auto::getTags
    - std::shared_ptr::setType
    - static_cast<GByte *>
    - MVTTileLayer::getValues
    - CPLFree
    - std::map<CPLString, GUInt32>::find
    - std::shared_ptr::getGeometry
    - std::map<MVTTileLayerValue, GUInt32>::find
    - std::shared_ptr::setGeometry
    linkageType: ''
    returnType: void
    signature: "void OGRMVTWriterDataset::EncodeFeature(\n    const void *pabyBlob,
      int nBlobSize,\n    std::shared_ptr<MVTTileLayer> &poTargetLayer,\n    std::map<CPLString,
      GUInt32> &oMapKeyToIdx,\n    std::map<MVTTileLayerValue, GUInt32> &oMapValueToIdx,\n
      \   MVTLayerProperties *poLayerProperties, GUInt32 nExtent,\n    unsigned &nFeaturesInTile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4959,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4961,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4962,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4963,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4967,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4967,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4970,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4974,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4975,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4976,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4977,1
    - Dst: std::map<CPLString, MVTLayerProperties>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4979,1
    - Dst: std::map<CPLString, MVTLayerProperties>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4981,1
    - Dst: std::set<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4983,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4985,1
    - Dst: std::map<CPLString, MVTLayerProperties>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4986,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:4991,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5003,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5005,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5008,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5009,1
    - Dst: std::shared_ptr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5010,1
    - Dst: std::shared_ptr::setVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5011,1
    - Dst: std::shared_ptr::setExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5012,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5018,1
    - Dst: OGRMVTWriterDataset::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5023,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5033,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5036,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5039,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5041,1
    - Dst: GZIPCompress
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5044,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5066,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5076,1
    - Dst: OGRMVTWriterDataset::RecodeTileLowerResolution
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5077,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5079,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5080,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5083,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5084,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5084,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5091,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5092,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5092,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5097,1
    - Dst: MVTTile::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5102,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5112,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5113,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5114,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5116,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5130,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5140,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5141,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5144,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5144,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5147,1
    - Dst: std::shared_ptr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5148,1
    - Dst: std::shared_ptr::setVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5149,1
    - Dst: std::shared_ptr::setExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5150,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5151,1
    - Dst: OGRMVTWriterDataset::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5164,1
    - Dst: MVTTile::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5170,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5177,1
    - Dst: GZIPCompress
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5179,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5183,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5184,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5184,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5187,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 8
    argNames:
    - nZ
    - nX
    - nY
    - hStmtLayer
    - hStmtRows
    - oMapLayerProps
    - oSetLayers
    - nTempTilesRead
    argTypes:
    - int
    - int
    - int
    - sqlite3_stmt*
    - sqlite3_stmt*
    - std::map<CPLString, MVTLayerProperties>
    - std::set<CPLString>
    - GIntBig
    constantsTouched: []
    func_position:
      end: 5191
      start: 4954
    functionDepth: 4
    functionLinenumber: 4954
    functionLinenumberEnd: 5191
    functionName: OGRMVTWriterDataset::EncodeTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - std::map::end
    - MVTTile::MVTTile
    - std::shared_ptr::setExtent
    - std::set<CPLString>::size
    - CPLDebug
    - std::map<CPLString, MVTLayerProperties>::size
    - OGRMVTWriterDataset::EncodeFeature
    - CPLError
    - sqlite3_finalize
    - static_cast<GIntBig>
    - std::set<CPLString>::insert
    - sqlite3_reset
    - MVTTileLayer::MVTTileLayer
    - static_cast<unsigned>
    - std::shared_ptr::setVersion
    - MVTTile::addLayer
    - std::move
    - std::map<CPLString, MVTLayerProperties>::end
    - sqlite3_bind_text
    - MVTTile::clear
    - MVTTile::getSize
    - min
    - std::map::find
    - CPL_IGNORE_RET_VAL
    - MVTTile::write
    - std::shared_ptr<MVTTileLayer>
    - GZIPCompress
    - std::map<CPLString, MVTLayerProperties>::find
    - std::shared_ptr::setName
    - std::string::size
    - OGRMVTWriterDataset::RecodeTileLowerResolution
    - max
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_free
    - std::string
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMVTWriterDataset::EncodeTile(\n    int nZ, int nX,
      int nY, sqlite3_stmt *hStmtLayer, sqlite3_stmt *hStmtRows,\n    std::map<CPLString,
      MVTLayerProperties> &oMapLayerProps,\n    std::set<CPLString> &oSetLayers, GIntBig
      &nTempTilesRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5201,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5203,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5204,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5205,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5209,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5213,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5214,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5215,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5216,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5218,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5219,1
    - Dst: std::shared_ptr::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5220,1
    - Dst: std::shared_ptr::setVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5221,1
    - Dst: std::shared_ptr::setExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5222,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5228,1
    - Dst: OGRMVTWriterDataset::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5233,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5236,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5239,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5241,1
    - Dst: GZIPCompress
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - nZ
    - nX
    - nY
    - nExtent
    - hStmtLayer
    - hStmtRows
    argTypes:
    - int
    - int
    - int
    - int
    - sqlite3_stmt*
    - sqlite3_stmt*
    constantsTouched: []
    func_position:
      end: 5246
      start: 5197
    functionDepth: 4
    functionLinenumber: 5197
    functionLinenumberEnd: 5246
    functionName: OGRMVTWriterDataset::RecodeTileLowerResolution
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_bind_text
    - sqlite3_reset
    - MVTTileLayer::MVTTileLayer
    - MVTTile::MVTTile
    - std::shared_ptr::setName
    - GZIPCompress
    - std::shared_ptr::setVersion
    - std::shared_ptr::setExtent
    - MVTTile::addLayer
    - sqlite3_bind_int
    - sqlite3_step
    - OGRMVTWriterDataset::EncodeFeature
    - MVTTile::write
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRMVTWriterDataset::RecodeTileLowerResolution(\n    int
      nZ, int nX, int nY, int nExtent, sqlite3_stmt *hStmtLayer,\n    sqlite3_stmt
      *hStmtRows)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WaitCompletion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5255,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5260,1
    - Dst: OGRMVTWriterDataset::GenerateMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5262,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5265,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5268,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5273,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5278,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5285,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5286,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5290,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5297,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5298,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5299,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5306,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5306,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5313,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5314,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5315,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5316,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5326,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5336,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5342,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5343,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5344,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5345,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5345,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5346,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5346,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5350,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5354,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5355,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5355,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5356,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5357,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5357,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5360,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5360,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5366,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5366,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5370,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5370,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5370,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5371,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5372,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5372,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5377,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5388,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5393,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5394,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5395,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5397,1
    - Dst: OGRMVTWriterDataset::GenerateMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5399,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5399,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5252
    functionDepth: 1
    functionLinenumber: 5252
    functionLinenumberEnd: 5402
    functionName: OGRMVTWriterDataset::CreateOutput
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - WaitCompletion
    - sqlite3_prepare_v2
    - std::set::size
    - std::string::data
    - GetDescription
    - CPLDebug
    - sqlite3_finalize
    - CPLError
    - std::string::c_str
    - std::string::empty
    - sqlite3_reset
    - VSIMkdir
    - IsInit
    - c_str
    - static_cast<int>
    - CPLSPrintf
    - OGRMVTWriterDataset::GenerateMetadata
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - CPLFormFilenameSafe
    - VSIFCloseL
    - sqlite3_bind_blob
    - std::string::size
    - sqlite3_step
    - sqlite3_bind_int
    linkageType: ''
    returnType: bool
    signature: bool OGRMVTWriterDataset::CreateOutput()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 5415
      start: 5408
    functionDepth: 0
    functionLinenumber: 5408
    functionLinenumberEnd: 5415
    functionName: SphericalMercatorToLongLat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphericalMercatorToLongLat(double *x, double *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5430,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5431,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5434,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5435,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - pszKey
    - value
    - pszValueFormat
    - hDBMBTILES
    - oRoot
    argTypes:
    - char*
    - T
    - char*
    - sqlite3*
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 5443
      start: 5422
    functionDepth: 1
    functionLinenumber: 5422
    functionLinenumberEnd: 5443
    functionName: WriteMetadataItemT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - SQLCommand
    - CPLSPrintf
    - sqlite3_mprintf
    - sqlite3_free
    - CPLJSONObject::Add
    linkageType: ''
    returnType: bool
    signature: "bool WriteMetadataItemT(const char *pszKey, T value,\n                               const
      char *pszValueFormat, sqlite3 *hDBMBTILES,\n                               CPLJSONObject
      &oRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteMetadataItemT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszKey
    - pszValue
    - hDBMBTILES
    - oRoot
    argTypes:
    - char*
    - char*
    - sqlite3*
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 5453
      start: 5449
    functionDepth: 2
    functionLinenumber: 5449
    functionLinenumberEnd: 5453
    functionName: WriteMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - WriteMetadataItemT
    linkageType: ''
    returnType: bool
    signature: "bool WriteMetadataItem(const char *pszKey, const char *pszValue,\n
      \                             sqlite3 *hDBMBTILES, CPLJSONObject &oRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteMetadataItemT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszKey
    - nValue
    - hDBMBTILES
    - oRoot
    argTypes:
    - char*
    - int
    - sqlite3*
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 5463
      start: 5459
    functionDepth: 2
    functionLinenumber: 5459
    functionLinenumberEnd: 5463
    functionName: WriteMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - WriteMetadataItemT
    linkageType: ''
    returnType: bool
    signature: "bool WriteMetadataItem(const char *pszKey, int nValue,\n                              sqlite3
      *hDBMBTILES, CPLJSONObject &oRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteMetadataItemT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszKey
    - dfValue
    - hDBMBTILES
    - oRoot
    argTypes:
    - char*
    - double
    - sqlite3*
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 5473
      start: 5469
    functionDepth: 2
    functionLinenumber: 5469
    functionLinenumberEnd: 5473
    functionName: WriteMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - WriteMetadataItemT
    linkageType: ''
    returnType: bool
    signature: "bool WriteMetadataItem(const char *pszKey, double dfValue,\n                              sqlite3
      *hDBMBTILES, CPLJSONObject &oRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5482,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5483,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5485,1
    - Dst: InitWebMercatorTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5489,1
    - Dst: SphericalMercatorToLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5496,1
    - Dst: SphericalMercatorToLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5497,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5498,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5499,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5503,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5504,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5505,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5507,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5511,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5513,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5515,1
    - Dst: OGRPoint::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5517,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5519,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5519,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5519,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5519,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5520,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5520,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5520,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5522,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5522,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5522,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5522,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5523,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5523,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5523,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5525,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5525,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5525,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5525,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5526,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5526,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5526,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5528,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5528,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5528,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5528,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5529,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5529,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5529,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5536,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5537,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5541,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5542,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5543,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5544,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5545,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5546,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5546,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5548,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5548,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5550,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5551,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5554,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5564,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5565,1
    - Dst: exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5571,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5572,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5573,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5575,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5577,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5579,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5581,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5583,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5587,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5588,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5590,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5591,1
    - Dst: std::map<CPLString, MVTLayerProperties>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5595,1
    - Dst: std::map<CPLString, MVTLayerProperties>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5596,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5597,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5598,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5600,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5602,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5603,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5604,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5606,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5607,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5609,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5610,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5611,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5612,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5614,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5615,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5617,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5619,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5619,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5624,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5624,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5628,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5628,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5632,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5636,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5637,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5638,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5638,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5639,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5640,1
    - Dst: std::set::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5641,1
    - Dst: std::map<CPLString, MVTLayerProperties>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5644,1
    - Dst: std::map<CPLString, MVTLayerProperties>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5645,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5646,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5647,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5649,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5651,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5654,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5654,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5654,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5655,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5656,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5665,1
    - Dst: static_cast<MVTTileLayerFeature::GeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5669,1
    - Dst: auto::m_oCountGeomType::find
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5671,1
    - Dst: auto::m_oCountGeomType::end
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5672,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5682,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5684,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5686,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5688,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5689,1
    - Dst: auto::m_oSetFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5689,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5690,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5691,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5694,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5695,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5697,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5697,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5698,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5699,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5700,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5700,1
    - Dst: m_oSetAllValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5701,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5702,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5711,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5712,1
    - Dst: getType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5715,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5718,1
    - Dst: getBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5718,1
    - Dst: isNumeric
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5720,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5724,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5724,1
    - Dst: getNumericValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5725,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5729,1
    - Dst: getNumericValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5729,1
    - Dst: isString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5732,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5734,1
    - Dst: getStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5734,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5742,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5743,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5744,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5745,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5749,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5750,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5755,1
    - Dst: WriteMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5759,1
    - Dst: CPLJSONDocument::SaveAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5759,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5767,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5768,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5768,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 2
    argNames:
    - nLayers
    - oMap
    argTypes:
    - size_t
    - std::map<CPLString, MVTLayerProperties>
    constantsTouched: []
    func_position:
      end: 5769
      start: 5479
    functionDepth: 3
    functionLinenumber: 5479
    functionLinenumberEnd: 5769
    functionName: OGRMVTWriterDataset::GenerateMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - getType
    - GetDescription
    - std::set::insert
    - auto::m_oCountGeomType::end
    - OGRSpatialReference::SetAxisMappingStrategy
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - std::set::clear
    - m_oSetAllValues::size
    - static_cast<GInt64>
    - CPLJSONArray::CPLJSONArray
    - OGRPoint::getY
    - CPLJSONDocument::Save
    - getStringValue
    - std::map<CPLString, MVTLayerProperties>::end
    - getBoolValue
    - CPLJSONArray::Add
    - OGRSpatialReference::SetFromUserInput
    - GetLayerDefn
    - static_cast<int>
    - SphericalMercatorToLongLat
    - auto::GetFieldDefn
    - CPLJSONObject::CPLJSONObject
    - OGRPoint::getX
    - CPLSPrintf
    - min
    - std::set::find
    - std::string::resize
    - isNumeric
    - OGRCreateCoordinateTransformation
    - auto::GetNameRef
    - static_cast<MVTTileLayerFeature::GeomType>
    - CPLFree
    - isString
    - auto::m_oSetFields::size
    - CPLFormFilenameSafe
    - OGRSpatialReference::OGRSpatialReference
    - getNumericValue
    - empty
    - InitWebMercatorTilingScheme
    - std::map<CPLString, MVTLayerProperties>::find
    - std::string::size
    - CPLJSONObject::Add
    - WriteMetadataItem
    - auto::GetFieldCount
    - CPLJSONDocument::SaveAsString
    - auto::GetSubType
    - max
    - exportToWkt
    - CPLJSONDocument::CPLJSONDocument
    - auto::m_oCountGeomType::find
    - OGRPoint::transform
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool OGRMVTWriterDataset::GenerateMetadata(\n    size_t nLayers, const
      std::map<CPLString, MVTLayerProperties> &oMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5779,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5784,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5784,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5787,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5788,1
    - Dst: OGRMVTWriterDataset::WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5790,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5791,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5800,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5802,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5804,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5807,1
    - Dst: std::shared_ptr<OGRMVTFeatureContent>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5812,1
    - Dst: OGRMVTFeatureContent::OGRMVTFeatureContent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5812,1
    - Dst: std::shared_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5813,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5813,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5815,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5817,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5818,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5820,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5822,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5823,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5824,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5827,1
    - Dst: MVTTileLayerValue::setBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5829,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5829,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5834,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5834,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5839,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5839,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5845,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5850,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5858,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5860,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5864,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5865,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5865,1
    - Dst: auto::oValues::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5868,1
    - Dst: std::pair<std::string, MVTTileLayerValue>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5869,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5870,1
    - Dst: OGRMVTWriterDataset::PreGenerateForTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5902,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 4
    argNames:
    - poLayer
    - poFeature
    - nSerial
    - poGeom
    argTypes:
    - OGRMVTWriterLayer*
    - OGRFeature*
    - GIntBig
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5915
      start: 5775
    functionDepth: 5
    functionLinenumber: 5775
    functionLinenumberEnd: 5915
    functionName: OGRMVTWriterDataset::WriteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - MVTTileLayerValue::MVTTileLayerValue
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - MVTTileLayerValue::setBoolValue
    - OGRGeometry*::clone
    - OGRFeature*::GetDefnRef
    - std::shared_ptr<OGRGeometry>
    - MVTTileLayerValue::setValue
    - OGRFeature*::GetFieldAsInteger
    - OGRGeometryCollection*::getNumGeometries
    - OGRFeature*::GetFieldAsDouble
    - OGRFieldDefn*::GetSubType
    - OGRMVTWriterDataset::PreGenerateForTile
    - OGRMVTWriterDataset::WriteFeature
    - IsInit
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRMVTFeatureContent::OGRMVTFeatureContent
    - std::pair<std::string, MVTTileLayerValue>
    - OGRGeometry*::toGeometryCollection
    - OGRFeature*::GetFID
    - CPLString::Printf
    - auto::oValues::emplace_back
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - std::shared_ptr<OGRMVTFeatureContent>
    - OGRFeature*::GetFieldCount
    - CPLFree
    - OGRGeometry*::getEnvelope
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetGeometryRef
    - OGRGeometryCollection*::getGeometryRef
    - MVTTileLayerValue::setStringValue
    - std::string
    - Merge
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMVTWriterDataset::WriteFeature(OGRMVTWriterLayer *poLayer,\n
      \                                        OGRFeature *poFeature, GIntBig nSerial,\n
      \                                        OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5926
      start: 5921
    functionDepth: 0
    functionLinenumber: 5921
    functionLinenumberEnd: 5926
    functionName: OGRMVTWriterDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMVTWriterDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5936,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nMinZoom
    - nMaxZoom
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5950
      start: 5932
    functionDepth: 1
    functionLinenumber: 5932
    functionLinenumberEnd: 5950
    functionName: ValidateMinMaxZoom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ValidateMinMaxZoom(int nMinZoom, int nMaxZoom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5963,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5966,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5967,1
    - Dst: OGRMVTWriterLayer::OGRMVTWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5970,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5972,1
    - Dst: GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5989,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5991,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5993,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5994,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:5995,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6002,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6005,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6005,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6006,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6007,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6007,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6008,1
    - Dst: ValidateMinMaxZoom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6009,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6014,1
    - Dst: OGRMVTWriterLayer*::m_osTargetName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6015,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6017,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6018,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6020,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6022,1
    - Dst: std::unique_ptr<OGRMVTWriterLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6022,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6023,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 6024
      start: 5956
    functionDepth: 3
    functionLinenumber: 5956
    functionLinenumberEnd: 6024
    functionName: OGRMVTWriterDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLJSONObject::GetString
    - OGRSpatialReference*::Release
    - CPLString::empty
    - std::string::empty
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRMVTWriterLayer::OGRMVTWriterLayer
    - auto::Clone
    - std::move
    - std::unique_ptr<OGRMVTWriterLayer>
    - OGRMVTWriterLayer*::m_osTargetName::c_str
    - CPLSPrintf
    - ValidateMinMaxZoom
    - back
    - CSLFetchNameValueDef
    - OGRGeomFieldDefn*::GetSpatialRef
    - GetRoot
    - CPLJSONObject::IsValid
    - push_back
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMVTWriterDataset::ICreateLayer(const char *pszLayerName,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6036,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6058,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6063,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6068,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6070,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6074,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6076,1
    - Dst: OGRMVTWriterDataset::OGRMVTWriterDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6082,1
    - Dst: OGRSQLiteCreateVFS
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6083,1
    - Dst: sqlite3_vfs_register
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6084,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6086,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6087,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6090,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6090,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6092,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6093,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6095,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6105,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6105,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6107,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6116,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6116,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6118,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6124,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6128,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6128,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6141,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6141,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6153,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6153,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6154,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6155,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6155,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6156,1
    - Dst: ValidateMinMaxZoom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6157,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6168,1
    - Dst: OGRMVTWriterDataset*::m_oConf::Load
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6170,1
    - Dst: OGRMVTWriterDataset*::m_oConf::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6174,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6184,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6184,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6185,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6186,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6187,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6188,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6188,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6188,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6189,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6190,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6190,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6190,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6191,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6197,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6202,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6202,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6202,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6210,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6216,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6216,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6216,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6220,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6221,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6222,1
    - Dst: OGRMVTWriterDataset*::m_osDescription::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6223,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6225,1
    - Dst: OGRMVTWriterDataset*::m_osType::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6225,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6226,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6227,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6228,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6238,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6244,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6245,1
    - Dst: OGRMVTWriterDataset*::m_poSRS::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6247,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6248,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6249,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6250,1
    - Dst: CPLStringList::Count
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6251,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6253,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6253,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6254,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6265,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6277,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6283,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6288,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6306,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6308,1
    - Dst: OGRMVTWriterDataset*::m_oThreadPool::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6313,1
    - Dst: OGRMVTWriterDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6316,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6317,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6317,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 138
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 6320
      start: 6030
    functionDepth: 2
    functionLinenumber: 6030
    functionLinenumberEnd: 6320
    functionName: OGRMVTWriterDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteCreateVFS
    - sqlite3_prepare_v2
    - atoi
    - sqlite3_close
    - CPLString
    - OGRMVTWriterDataset::OGRMVTWriterDataset
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - OGRMVTWriterDataset*::m_oThreadPool::Setup
    - static_cast<unsigned>
    - OGRMVTWriterDataset*::m_osType::c_str
    - VSIMkdir
    - CPLString::c_str
    - SQLGetInteger64
    - strlen
    - sqlite3_open_v2
    - CSLTokenizeString2
    - OGRMVTWriterDataset*::SetDescription
    - CPLAtof
    - CPLTestBool
    - FromHandle
    - SQLCommand
    - CPLFetchBool
    - VSIUnlink
    - CPLSPrintf
    - CPL_IGNORE_RET_VAL
    - OGRMVTWriterDataset*::m_osDescription::c_str
    - ValidateMinMaxZoom
    - GDALGetDriverByName
    - VSIStatL
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - sqlite3_vfs_register
    - OGRMVTWriterDataset*::m_oConf::LoadMemory
    - OGRMVTWriterDataset*::m_oConf::Load
    - max
    - OGRMVTWriterDataset*::m_poSRS::SetFromUserInput
    - CPLStringList::Count
    - CPLGetValueType
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRMVTWriterDataset::Create(const char *pszFilename,
      int nXSize,\n                                         int nYSize, int nBandsIn,\n
      \                                        GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTWriterDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 6328
      start: 6322
    functionDepth: 3
    functionLinenumber: 6322
    functionLinenumberEnd: 6328
    functionName: OGRMVTWriterDatasetCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTWriterDataset::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRMVTWriterDatasetCreate(const char *pszFilename, int
      nXSize,\n                                       int nYSize, int nBandsIn,\n
      \                                      GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6339,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6342,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6344,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6345,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6346,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6347,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6348,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6349,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6350,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6352,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6385,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6386,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6387,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6388,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6390,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6392,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6394,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6396,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6427,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp:6429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6336
    functionDepth: 1
    functionLinenumber: 6336
    functionLinenumberEnd: 6430
    functionName: RegisterOGRMVT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMVT()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: MVTTileLayerValue::MVTTileLayerValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::MVTTileLayerValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - MVTTileLayerValue
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: MVTTileLayerValue::MVTTileLayerValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::MVTTileLayerValue(const MVTTileLayerValue &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: MVTTileLayerValue::~MVTTileLayerValue()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - MVTTileLayerValue::unset
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::~MVTTileLayerValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:55,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:60,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:60,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - oOther
    argTypes:
    - MVTTileLayerValue
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: '&MVTTileLayerValue::operator=(const MVTTileLayerValue &oOther)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char *>
    - CPLMalloc
    - unset
    - memcpy
    linkageType: ''
    returnType: MVTTileLayerValue
    signature: MVTTileLayerValue &MVTTileLayerValue::operator=(const MVTTileLayerValue
      &oOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:85,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:99,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - MVTTileLayerValue
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: MVTTileLayerValue::operator<(const MVTTileLayerValue &rhs) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - strcmp
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool MVTTileLayerValue::operator<(const MVTTileLayerValue &rhs) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: MVTTileLayerValue::unset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 7
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::unset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - achValue
    argTypes:
    - char[]
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: GetSizeMax8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetSizeMax8(const char achValue[8])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerValue::unset
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:134,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:140,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:140,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:147,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:147,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:148,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - osValue
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 151
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 151
    functionName: MVTTileLayerValue::setStringValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached:
    - static_cast<char *>
    - MVTTileLayerValue::unset
    - CPLMalloc
    - memcpy
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::setStringValue(const std::string &osValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:160,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:160,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:161,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:161,1
    - Dst: MVTTileLayerValue::setUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:163,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:163,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:165,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:165,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:167,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:167,1
    - Dst: MVTTileLayerValue::setSIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:169,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:169,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:171,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:172,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:173,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:174,1
    - Dst: MVTTileLayerValue::setFloatValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:176,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:176,1
    - Dst: MVTTileLayerValue::setDoubleValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: MVTTileLayerValue::setValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - static_cast<GUInt64>
    - simple_max
    - std::isfinite
    - static_cast<float>
    - MVTTileLayerValue::setUIntValue
    - MVTTileLayerValue::setSIntValue
    - MVTTileLayerValue::setDoubleValue
    - static_cast<GInt64>
    - MVTTileLayerValue::setFloatValue
    - simple_min
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::setValue(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:197,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:202,1
    - Dst: GetVarIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:209,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:211,1
    - Dst: GetVarSIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: MVTTileLayerValue::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - GetVarSIntSize
    - GetVarUIntSize
    - GetVarIntSize
    linkageType: ''
    returnType: size_t
    signature: size_t MVTTileLayerValue::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:234,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:235,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:236,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:237,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:245,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:246,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:247,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:249,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:255,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:256,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:257,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:261,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:262,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:263,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:267,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:267,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:268,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:272,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:273,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:274,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:278,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:279,1
    - Dst: WriteVarSInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:280,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:284,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:285,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:286,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:293,1
    - Dst: MVTTileLayerValue::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 295
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 295
    functionName: MVTTileLayerValue::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - WriteFloat32
    - MAKE_KEY
    - WriteFloat64
    - WriteVarSInt
    - CPLAssert
    - MVTTileLayerValue::getSize
    - WriteVarUInt
    - WriteVarUIntSingleByte
    - memcpy
    - WriteVarInt
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerValue::write(GByte **ppabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:311,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:313,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:316,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:319,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:321,1
    - Dst: MVTTileLayerValue::setFloatValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:323,1
    - Dst: ReadFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:323,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:325,1
    - Dst: MVTTileLayerValue::setDoubleValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:327,1
    - Dst: ReadFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:327,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:329,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:332,1
    - Dst: MVTTileLayerValue::setIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:333,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:335,1
    - Dst: READ_VARUINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:338,1
    - Dst: MVTTileLayerValue::setUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:339,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:341,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:344,1
    - Dst: MVTTileLayerValue::setSIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:345,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:347,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:350,1
    - Dst: MVTTileLayerValue::setBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:351,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 361
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 361
    functionName: MVTTileLayerValue::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - ReadFloat64
    - MVTTileLayerValue::setIntValue
    - READ_VARUINT64
    - READ_FIELD_KEY
    - MVTTileLayerValue::setUIntValue
    - MAKE_KEY
    - READ_TEXT
    - MVTTileLayerValue::setSIntValue
    - MVTTileLayerValue::setStringValue
    - MVTTileLayerValue::setDoubleValue
    - ReadFloat32
    - READ_VARUINT32
    - READ_VARINT64
    - MVTTileLayerValue::setBoolValue
    - CPLFree
    - MVTTileLayerValue::setFloatValue
    - READ_VARSINT64
    linkageType: ''
    returnType: bool
    signature: "bool MVTTileLayerValue::read(const GByte **ppabyData,\n                             const
      GByte *pabyDataLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: MVTTileLayerFeature::MVTTileLayerFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerFeature::MVTTileLayerFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:377,1
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poOwner
    argTypes:
    - MVTTileLayer*
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: MVTTileLayerFeature::setOwner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerFeature::setOwner(MVTTileLayer *poOwner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayerFeature::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: MVTTileLayerFeature::invalidateCachedSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 9
    functionsReached:
    - MVTTileLayerFeature::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerFeature::invalidateCachedSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - anVals
    argTypes:
    - std::vector<GUInt32>
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: GetPackedArraySize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - GetVarUIntSize
    linkageType: ''
    returnType: size_t
    signature: size_t GetPackedArraySize(const std::vector<GUInt32> &anVals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:419,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:420,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:424,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:429,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 437
    functionName: MVTTileLayerFeature::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - GetVarUIntSize
    - empty
    linkageType: ''
    returnType: size_t
    signature: size_t MVTTileLayerFeature::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:448,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:449,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ppabyData
    - nKey
    - anVals
    argTypes:
    - GByte**
    - int
    - std::vector<GUInt32>
    constantsTouched: []
    func_position:
      end: 455
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 455
    functionName: WriteUIntPackedArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - WriteVarUIntSingleByte
    - WriteVarUInt
    linkageType: ''
    returnType: void
    signature: "void WriteUIntPackedArray(GByte **ppabyData, int nKey,\n                                 const
      std::vector<GUInt32> &anVals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:467,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:467,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:468,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:470,1
    - Dst: WriteUIntPackedArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:472,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:472,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:477,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:477,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:478,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:478,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:480,1
    - Dst: WriteUIntPackedArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:482,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:482,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:486,1
    - Dst: MVTTileLayerFeature::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 488
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 488
    functionName: MVTTileLayerFeature::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - empty
    - MAKE_KEY
    - MVTTileLayerFeature::getSize
    - CPLAssert
    - WriteUIntPackedArray
    - WriteVarUInt
    - WriteVarUIntSingleByte
    linkageType: ''
    returnType: void
    signature: void MVTTileLayerFeature::write(GByte **ppabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:504,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:505,1
    - Dst: READ_VARUINT64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:508,1
    - Dst: MVTTileLayerFeature::setId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:509,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:511,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:514,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:519,1
    - Dst: MVTTileLayerFeature::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:520,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:524,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:527,1
    - Dst: MVTTileLayerFeature::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:529,1
    - Dst: static_cast<GeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:529,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:531,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:534,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:539,1
    - Dst: MVTTileLayerFeature::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:540,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 556
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 556
    functionName: MVTTileLayerFeature::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - READ_VARUINT64
    - static_cast<GeomType>
    - MVTTileLayerFeature::setType
    - SKIP_UNKNOWN_FIELD
    - READ_FIELD_KEY
    - MAKE_KEY
    - MVTTileLayerFeature::addTag
    - READ_VARUINT32
    - MVTTileLayerFeature::addGeometry
    - READ_SIZE
    - MVTTileLayerFeature::setId
    linkageType: ''
    returnType: bool
    signature: "bool MVTTileLayerFeature::read(const GByte **ppabyData,\n                               const
      GByte *pabyDataLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    functionName: MVTTileLayer::MVTTileLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MVTTileLayer::MVTTileLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:572,1
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poOwner
    argTypes:
    - MVTTile*
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: MVTTileLayer::setOwner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - MVTTileLayer::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void MVTTileLayer::setOwner(MVTTile *poOwner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 587
    functionName: MVTTileLayer::invalidateCachedSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 7
    functionsReached:
    - MVTTileLayer::invalidateCachedSize
    linkageType: ''
    returnType: void
    signature: void MVTTileLayer::invalidateCachedSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<MVTTileLayerFeature>::setOwner
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:595,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:596,1
    - Dst: MVTTileLayer::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:597,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - std::shared_ptr<MVTTileLayerFeature>
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: MVTTileLayer::addFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - size
    - MVTTileLayer::invalidateCachedSize
    - push_back
    - std::shared_ptr<MVTTileLayerFeature>::setOwner
    linkageType: ''
    returnType: size_t
    signature: size_t MVTTileLayer::addFeature(std::shared_ptr<MVTTileLayerFeature>
      poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTextSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:609,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:614,1
    - Dst: GetTextSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:618,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:623,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:627,1
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 632
    functionName: MVTTileLayer::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - GetVarUIntSize
    - GetTextSize
    linkageType: ''
    returnType: size_t
    signature: size_t MVTTileLayer::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:642,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:642,1
    - Dst: WriteText
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:643,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:647,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:647,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:648,1
    - Dst: MVTTileLayer::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:648,1
    - Dst: MVTTileLayer::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:649,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:654,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:654,1
    - Dst: WriteText
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:655,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:660,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:660,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:661,1
    - Dst: MVTTileLayer::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:661,1
    - Dst: MVTTileLayer::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:662,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:667,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:667,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:668,1
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:671,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:671,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:672,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:674,1
    - Dst: MVTTileLayer::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 676
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 676
    functionName: MVTTileLayer::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 1
    functionsReached:
    - WriteText
    - MVTTileLayer::getSize
    - MAKE_KEY
    - MVTTileLayer::write
    - CPLAssert
    - WriteVarUInt
    - WriteVarUIntSingleByte
    linkageType: ''
    returnType: void
    signature: void MVTTileLayer::write(GByte **ppabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pabyData
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: MVTTileLayer::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached:
    - MVTTileLayer::write
    linkageType: ''
    returnType: void
    signature: void MVTTileLayer::write(GByte *pabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:695,1
    - Dst: MVTTileLayer::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:696,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 698
    functionName: MVTTileLayer::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 3
    functionsReached:
    - std::string::resize
    - MVTTileLayer::write
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: std::string
    signature: std::string MVTTileLayer::write() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:713,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:714,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:717,1
    - Dst: MVTTileLayer::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:719,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:720,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:722,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:725,1
    - Dst: MVTTileLayerFeature::MVTTileLayerFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:728,1
    - Dst: MVTTileLayer::addFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:729,1
    - Dst: std::shared_ptr::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:730,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:734,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:737,1
    - Dst: MVTTileLayer::addKey
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:739,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:740,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:742,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:745,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:747,1
    - Dst: MVTTileLayerValue::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:748,1
    - Dst: MVTTileLayer::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:750,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:753,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:756,1
    - Dst: MVTTileLayer::setExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:757,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:759,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:762,1
    - Dst: MVTTileLayer::setVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:763,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:767,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 777
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 777
    functionName: MVTTileLayer::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 1
    functionsReached:
    - MVTTileLayer::addValue
    - SKIP_UNKNOWN_FIELD
    - MVTTileLayer::addKey
    - READ_FIELD_KEY
    - MVTTileLayerValue::MVTTileLayerValue
    - MVTTileLayerValue::read
    - MVTTileLayer::addFeature
    - MAKE_KEY
    - READ_TEXT
    - MVTTileLayer::setExtent
    - std::shared_ptr::read
    - READ_VARUINT32
    - MVTTileLayer::setVersion
    - MVTTileLayerFeature::MVTTileLayerFeature
    - READ_SIZE
    - CPLFree
    - MVTTileLayer::setName
    linkageType: ''
    returnType: bool
    signature: bool MVTTileLayer::read(const GByte **ppabyData, const GByte *pabyDataLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTileLayer::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - pabyEnd
    argTypes:
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: MVTTileLayer::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 2
    functionsReached:
    - MVTTileLayer::read
    linkageType: ''
    returnType: bool
    signature: bool MVTTileLayer::read(const GByte *pabyData, const GByte *pabyEnd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    functionName: MVTTile::MVTTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MVTTile::MVTTile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<MVTTileLayer>::setOwner
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:802,1
    - Dst: MVTTile::invalidateCachedSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:803,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - std::shared_ptr<MVTTileLayer>
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: MVTTile::addLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 3
    functionsReached:
    - std::shared_ptr<MVTTileLayer>::setOwner
    - MVTTile::invalidateCachedSize
    - push_back
    linkageType: ''
    returnType: void
    signature: void MVTTile::addLayer(std::shared_ptr<MVTTileLayer> poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 823
    functionName: MVTTile::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 1
    functionsReached:
    - GetVarUIntSize
    linkageType: ''
    returnType: size_t
    signature: size_t MVTTile::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUIntSingleByte
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:835,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:835,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:836,1
    - Dst: MVTTile::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:836,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:837,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:840,1
    - Dst: MVTTile::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: MVTTile::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 4
    functionsReached:
    - MVTTile::getSize
    - MAKE_KEY
    - CPLAssert
    - WriteVarUInt
    - MVTTile::write
    - WriteVarUIntSingleByte
    linkageType: ''
    returnType: void
    signature: void MVTTile::write(GByte **ppabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pabyData
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: MVTTile::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 5
    functionsReached:
    - MVTTile::write
    linkageType: ''
    returnType: void
    signature: void MVTTile::write(GByte *pabyData) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:863,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:864,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: MVTTile::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 6
    functionsReached:
    - std::string::resize
    - reinterpret_cast<GByte *>
    - MVTTile::write
    linkageType: ''
    returnType: std::string
    signature: std::string MVTTile::write() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:884,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:885,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:888,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:890,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:891,1
    - Dst: std::shared_ptr::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:892,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:898,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 908
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 908
    functionName: MVTTile::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - MVTTileLayer::MVTTileLayer
    - READ_FIELD_KEY
    - MAKE_KEY
    - std::shared_ptr::read
    - MVTTile::addLayer
    - READ_SIZE
    linkageType: ''
    returnType: bool
    signature: bool MVTTile::read(const GByte **ppabyData, const GByte *pabyDataLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::read
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - pabyEnd
    argTypes:
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: MVTTile::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile.cpp
    functionUses: 1
    functionsReached:
    - MVTTile::read
    linkageType: ''
    returnType: bool
    signature: bool MVTTile::read(const GByte *pabyData, const GByte *pabyEnd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:26,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:29,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:31,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:33,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:35,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:37,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:39,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:41,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:42,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:43,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:46,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:49,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:55,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:62,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:68,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:70,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:72,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:74,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:76,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:78,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:80,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:81,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:85,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:87,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - poFeatureDefn
    - oFields
    - oAttributesFromTileStats
    argTypes:
    - OGRFeatureDefn*
    - CPLJSONObject
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 92
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 92
    functionName: OGRMVTInitFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - ToString
    - GetObj
    - GetString
    - CPLJSONObject::GetChildren
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetSubType
    - CPLJSONArray::Size
    - GetType
    - CPLJSONObject::IsValid
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRMVTInitFields(OGRFeatureDefn *poFeatureDefn,\n                      const
      CPLJSONObject &oFields,\n                      const CPLJSONArray &oAttributesFromTileStats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:103,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:105,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:106,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:106,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:108,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:110,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:111,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:112,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - oTileStatLayers
    - pszLayerName
    argTypes:
    - CPLJSONArray
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: OGRMVTFindGeomTypeFromTileStat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp
    functionUses: 2
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - GetObj
    - CPLJSONArray::Size
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRMVTFindGeomTypeFromTileStat(const CPLJSONArray
      &oTileStatLayers,\n                               const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:146,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:148,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:149,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:149,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:151,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:154,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:155,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:156,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:158,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:164,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - oTileStatLayers
    - pszLayerName
    argTypes:
    - CPLJSONArray
    - char*
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: OGRMVTFindAttributesFromTileStat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp
    functionUses: 2
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - CPLJSONArray::CPLJSONArray
    - CPLJSONObject::ToArray
    - GetObj
    - CPLJSONArray::Size
    - CPLJSONArray::Deinit
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: CPLJSONArray
    signature: "CPLJSONArray OGRMVTFindAttributesFromTileStat(const CPLJSONArray &oTileStatLayers,\n
      \                                const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:177,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:180,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:182,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:184,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:187,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:188,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:190,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:190,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:192,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:193,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:195,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:197,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:197,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:198,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:203,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:203,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:204,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:207,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:209,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:209,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:210,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:214,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:214,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:215,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:221,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:222,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:226,1
    - Dst: OGRFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:229,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:232,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:233,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:234,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:235,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:235,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:236,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:241,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:242,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:242,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:243,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:244,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:244,1
    - Dst: OGRFeature*::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:246,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:247,1
    - Dst: OGRFeature*::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:248,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:253,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:255,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp:257,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - poSrcFeature
    - poTargetFeatureDefn
    - bJsonField
    - poSRS
    argTypes:
    - OGRFeature*
    - OGRFeatureDefn*
    - bool
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 259
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 259
    functionName: OGRMVTCreateFeatureFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvtutils.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - OGRFeature*::IsFieldNull
    - OGRFeature*::SetFrom
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::SetGeometry
    - OGRFeature*::SetNativeMediaType
    - OGRFieldDefn*::GetSubType
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::CPLJSONObject
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - OGRFeature*::SetNativeData
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::IsFieldSet
    - reinterpret_cast<const GByte *>
    - OGRFeature*::SetField
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRMVTCreateFeatureFrom(OGRFeature *poSrcFeature,\n                                    OGRFeatureDefn
      *poTargetFeatureDefn,\n                                    bool bJsonField,
      OGRSpatialReference *poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:28,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:30,1
    - Dst: MVTTile::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:30,1
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:34,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:35,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:36,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:36,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:37,1
    - Dst: MVTTile::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:37,1
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:45,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:46,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:47,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:47,1
    - Dst: MVTTileLayerFeature::MVTTileLayerFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:48,1
    - Dst: MVTTileLayer*::setVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:49,1
    - Dst: MVTTileLayer*::setName
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:50,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:50,1
    - Dst: MVTTileLayer*::setExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:51,1
    - Dst: MVTTileLayer*::addFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:52,1
    - Dst: std::shared_ptr<MVTTileLayerFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:52,1
    - Dst: MVTTileLayer*::addKey
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:53,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:53,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:55,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:56,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:56,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:57,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:60,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:61,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:61,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:62,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:65,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:66,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:66,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:67,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:70,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:71,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:71,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:72,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:75,1
    - Dst: MVTTileLayerValue::setStringValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:76,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:76,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:77,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:80,1
    - Dst: MVTTileLayerValue::setIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:81,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:82,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:85,1
    - Dst: MVTTileLayerValue::setUIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:86,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:87,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:90,1
    - Dst: MVTTileLayerValue::setSIntValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:91,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:92,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:95,1
    - Dst: MVTTileLayerValue::setFloatValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:96,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:97,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:100,1
    - Dst: MVTTileLayerValue::setDoubleValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:101,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:102,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:105,1
    - Dst: MVTTileLayerValue::setBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:106,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:107,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:111,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:112,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:113,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:116,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:117,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:118,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:121,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:122,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:123,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:126,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:127,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:128,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:131,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:132,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:133,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:136,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:137,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:138,1
    - Dst: MVTTileLayerValue::MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:141,1
    - Dst: MVTTileLayerValue::setValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:142,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:142,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:143,1
    - Dst: MVTTileLayerFeature*::setId
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:146,1
    - Dst: MVTTileLayerFeature*::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:147,1
    - Dst: MVTTileLayerFeature*::addTag
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:148,1
    - Dst: MVTTileLayerFeature*::setType
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:149,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:150,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:151,1
    - Dst: MVTTileLayerFeature*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:152,1
    - Dst: MVTTileLayer*::addFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:154,1
    - Dst: std::shared_ptr<MVTTileLayerFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:155,1
    - Dst: MVTTileLayerFeature::MVTTileLayerFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:155,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:157,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:157,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:157,1
    - Dst: MVTTileLayer::MVTTileLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:159,1
    - Dst: MVTTile::addLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:160,1
    - Dst: std::shared_ptr<MVTTileLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:160,1
    - Dst: MVTTileLayer*::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:161,1
    - Dst: MVTTileLayerValue
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:161,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:164,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:164,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:165,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:166,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:169,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:170,1
    - Dst: MVTTile::MVTTile
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:173,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:175,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:176,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:178,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:179,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:179,1
    - Dst: MVTTile::write
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:180,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:181,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:181,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:182,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 187
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mvt/mvt_tile_test.cpp
    functionUses: 9
    functionsReached:
    - MVTTileLayerFeature*::setType
    - cpl::infinity
    - MVTTileLayerValue::MVTTileLayerValue
    - MVTTile::MVTTile
    - std::shared_ptr<MVTTileLayerFeature>
    - memcmp
    - MVTTileLayerValue::setDoubleValue
    - MVTTileLayer*::addValue
    - MVTTileLayerValue::setBoolValue
    - MVTTileLayerValue::setFloatValue
    - MVTTileLayer::MVTTileLayer
    - MVTTileLayerValue::setValue
    - MVTTileLayerFeature*::addGeometry
    - MVTTile::addLayer
    - MVTTileLayer*::addFeature
    - MVTTileLayerFeature::MVTTileLayerFeature
    - CPLMalloc
    - MVTTileLayerValue
    - MVTTileLayerValue::setUIntValue
    - MVTTile::getSize
    - MVTTileLayer*::setVersion
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - MVTTileLayer*::addKey
    - static_cast<GByte *>
    - MVTTile::write
    - MVTTileLayerValue::setIntValue
    - CPLFree
    - std::shared_ptr<MVTTileLayer>
    - MVTTileLayer*::setExtent
    - MVTTileLayerFeature*::addTag
    - VSIFCloseL
    - MVTTileLayerValue::setSIntValue
    - MVTTileLayerFeature*::setId
    - MVTTileLayerValue::setStringValue
    - MVTTileLayer*::setName
    - VSIFWriteL
    - std::string
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:40,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:42,1
    - Dst: std::unique_ptr<FileGDBField>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:46,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:48,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:52,1
    - Dst: std::unique_ptr<FileGDBField>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:54,1
    - Dst: std::unique_ptr<FileGDBField>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:55,1
    - Dst: std::unique_ptr<FileGDBField>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:59,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:63,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:67,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:67,1
    - Dst: cpl::down_cast<const FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:69,1
    - Dst: std::unique_ptr<FileGDBField>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:69,1
    - Dst: std::unique_ptr<FileGDBField>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:73,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:77,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:81,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:81,1
    - Dst: std::unique_ptr<FileGDBField>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:89,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:91,1
    - Dst: std::unique_ptr<FileGDBField>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:95,1
    - Dst: std::unique_ptr<FileGDBField>::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:99,1
    - Dst: std::unique_ptr<FileGDBField>::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:107,1
    - Dst: BIT_ARRAY_SIZE_IN_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:125,1
    - Dst: std::unique_ptr<FileGDBField>::SetParent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:127,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:128,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:128,1
    - Dst: OpenFileGDB::FileGDBTable::RewriteTableToAddLastAddedField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:130,1
    - Dst: BIT_ARRAY_SIZE_IN_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:136,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:138,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - psField
    argTypes:
    - std::unique_ptr<FileGDBField>
    constantsTouched: []
    func_position:
      end: 144
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 144
    functionName: OpenFileGDB::FileGDBTable::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - size
    - cpl::down_cast<const FileGDBGeomField *>
    - static_cast<int>
    - OpenFileGDB::FileGDBTable::RewriteTableToAddLastAddedField
    - pop_back
    - BIT_ARRAY_SIZE_IN_BYTES
    - std::unique_ptr<FileGDBField>::GetName
    - OpenFileGDB::FileGDBTable::GetFieldIdx
    - std::unique_ptr<FileGDBField>::get
    - std::unique_ptr<FileGDBField>::SetParent
    - std::unique_ptr<FileGDBField>::IsNullable
    - std::move
    - std::unique_ptr<FileGDBField>::GetType
    - CPLError
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::CreateField(std::unique_ptr<FileGDBField> &&psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:153,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:164,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:165,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:170,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:171,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:172,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:174,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:175,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:175,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:176,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:177,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:178,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:178,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:179,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:179,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:180,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:182,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:184,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:184,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:185,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:187,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:189,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:189,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:191,1
    - Dst: WriteInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:193,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:193,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:195,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:197,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:198,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:198,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:200,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:202,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:202,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:204,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:205,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:207,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:207,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:208,1
    - Dst: auto::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:210,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:212,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:214,1
    - Dst: FileGDBOGRTimeToDoubleTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:215,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:215,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:217,1
    - Dst: auto::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:219,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:220,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:221,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:226,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:228,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:232,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:235,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:235,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:237,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:240,1
    - Dst: WholeFileRewriter::Begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:243,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:246,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:246,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:260,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:261,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:263,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:263,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:267,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:274,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:277,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:282,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:290,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:290,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:294,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:294,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:299,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:303,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:309,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:309,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:317,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:317,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:319,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:325,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:325,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:331,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:333,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:333,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:333,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:343,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:344,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:344,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:350,1
    - Dst: WholeFileRewriter::Commit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:352,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 353
    functionName: OpenFileGDB::FileGDBTable::RewriteTableToAddLastAddedField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 1
    functionsReached:
    - auto::IsNullable
    - std::vector::size
    - WriteInt64
    - WriteFloat64
    - auto::GetType
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - CPLGetConfigOption
    - std::vector::end
    - WholeFileRewriter::Commit
    - WriteVarUInt
    - auto::IsHighPrecision
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - resize
    - std::vector::empty
    - ReadUInt32
    - std::vector::insert
    - FileGDBOGRTimeToDoubleTime
    - auto::GetDefault
    - std::vector::data
    - CPLTestBool
    - static_cast<int>
    - static_cast<float>
    - WriteInt16
    - VSIFSeekL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - WholeFileRewriter::Begin
    - VSIFReadL
    - static_cast<int16_t>
    - what
    - std::vector::resize
    - data
    - size
    - back
    - std::string::size
    - WriteFloat32
    - reinterpret_cast<const GByte *>
    - WriteInt32
    - max
    - VSIFWriteL
    - WriteUInt32
    - FileGDBOGRDateToDoubleDate
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::RewriteTableToAddLastAddedField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:365,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:365,1
    - Dst: OpenFileGDB::WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:367,1
    - Dst: FileGDBField*::GetAlias
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:367,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:369,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:369,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:369,1
    - Dst: FileGDBField*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:371,1
    - Dst: FileGDBField*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:374,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:375,1
    - Dst: FileGDBField*::IsRequired
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:376,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:377,1
    - Dst: FileGDBField*::IsEditable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:378,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:379,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:381,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:385,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:391,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:392,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:393,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:394,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:396,1
    - Dst: OpenFileGDB::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:397,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:397,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:401,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:408,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:409,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:410,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:411,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:413,1
    - Dst: OpenFileGDB::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:414,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:418,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:425,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:426,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:427,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:428,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:430,1
    - Dst: OpenFileGDB::WriteFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:431,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:431,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:435,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:442,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:443,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:444,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:445,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:447,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:448,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:452,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:459,1
    - Dst: FileGDBField*::GetMaxWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:459,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:460,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:461,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:462,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:466,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:467,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:470,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:470,1
    - Dst: OpenFileGDB::WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:476,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:482,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:490,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:491,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:492,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:493,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:495,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:496,1
    - Dst: OpenFileGDB::FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:497,1
    - Dst: FileGDBField*::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:499,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:503,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:510,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:511,1
    - Dst: cpl::down_cast<const FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:518,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:519,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:520,1
    - Dst: OpenFileGDB::WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:521,1
    - Dst: auto*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:521,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:523,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:525,1
    - Dst: auto*::HasMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:527,1
    - Dst: auto*::HasZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:528,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:529,1
    - Dst: auto*::GetXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:529,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:530,1
    - Dst: auto*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:530,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:531,1
    - Dst: auto*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:531,1
    - Dst: auto*::HasMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:532,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:534,1
    - Dst: auto*::GetMOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:534,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:535,1
    - Dst: auto*::GetMScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:535,1
    - Dst: auto*::HasZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:537,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:539,1
    - Dst: auto*::GetZOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:539,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:540,1
    - Dst: auto*::GetZScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:540,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:542,1
    - Dst: auto*::GetXYTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:542,1
    - Dst: auto*::HasMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:543,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:545,1
    - Dst: auto*::GetMTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:545,1
    - Dst: auto*::HasZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:547,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:549,1
    - Dst: auto*::GetZTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:549,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:551,1
    - Dst: std::vector<GByte>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:551,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:552,1
    - Dst: auto*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:552,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:553,1
    - Dst: auto*::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:553,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:554,1
    - Dst: auto*::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:554,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:555,1
    - Dst: auto*::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:555,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:558,1
    - Dst: auto*::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:558,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:559,1
    - Dst: auto*::GetZMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:559,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:563,1
    - Dst: auto*::GetMMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:563,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:564,1
    - Dst: auto*::GetMMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:564,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:566,1
    - Dst: auto*::GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:569,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:570,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:570,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:571,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:573,1
    - Dst: std::vector<GByte>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:573,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:575,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:581,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:582,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:589,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:596,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:597,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:603,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:604,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:610,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:611,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:612,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:613,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:615,1
    - Dst: OpenFileGDB::WriteInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:616,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:620,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:627,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:628,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:629,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:630,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:632,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:633,1
    - Dst: OpenFileGDB::FileGDBOGRTimeToDoubleTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:633,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:637,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:644,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:645,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:646,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:647,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:649,1
    - Dst: OpenFileGDB::WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:651,1
    - Dst: OpenFileGDB::FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:652,1
    - Dst: OpenFileGDB::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:657,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:658,1
    - Dst: OpenFileGDB::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:663,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:668,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 194
    argCount: 7
    argNames:
    - abyBuffer
    - psField
    - bGeomTypeHasZ
    - bGeomTypeHasM
    - bStringsAreUTF8
    - nGeomFieldBBoxOffsetOut
    - nGeomFieldSpatialIndexGridResOffsetOut
    argTypes:
    - std::vector<GByte>
    - FileGDBField*
    - bool
    - bool
    - bool
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 673
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 673
    functionName: OpenFileGDB::WriteFieldDescriptor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - FileGDBField*::GetAlias
    - OpenFileGDB::WriteVarUInt
    - FileGDBField*::IsNullable
    - auto*::GetMTolerance
    - auto*::GetYOrigin
    - std::vector<GByte>::insert
    - OpenFileGDB::WriteUInt32
    - OpenFileGDB::FileGDBOGRTimeToDoubleTime
    - auto*::GetMOrigin
    - static_cast<uint32_t>
    - auto*::GetZOrigin
    - OpenFileGDB::WriteUInt8
    - auto::size
    - OpenFileGDB::WriteFloat32
    - auto*::GetYMin
    - FileGDBField*::GetDefault
    - auto*::GetXMin
    - cpl::down_cast<const FileGDBGeomField *>
    - std::vector<GByte>::size
    - OpenFileGDB::WriteInt64
    - auto*::GetXYScale
    - auto*::GetZScale
    - auto*::GetXOrigin
    - FileGDBField*::IsRequired
    - OpenFileGDB::WriteInt32
    - strlen
    - FileGDBField*::IsHighPrecision
    - OpenFileGDB::WriteFloat64
    - auto*::GetXYTolerance
    - auto*::GetZMax
    - static_cast<float>
    - OpenFileGDB::WriteUTF16String
    - auto*::GetMMax
    - FileGDBField*::GetType
    - auto*::GetMScale
    - auto*::GetSpatialIndexGridResolution
    - auto*::GetWKT
    - CPLAssert
    - std::vector<GByte>::end
    - FileGDBField*::GetName
    - FileGDBField*::IsEditable
    - auto*::HasMOriginScaleTolerance
    - auto*::GetMMin
    - OGR_RawField_IsNull
    - static_cast<int16_t>
    - auto*::GetZTolerance
    - auto*::GetZMin
    - auto*::HasZOriginScaleTolerance
    - static_cast<uint8_t>
    - auto*::GetYMax
    - auto*::GetXMax
    - OpenFileGDB::FileGDBOGRDateToDoubleDate
    - OpenFileGDB::WriteInt16
    - OGR_RawField_IsUnset
    - FileGDBField*::GetMaxWidth
    linkageType: ''
    returnType: void
    signature: "void WriteFieldDescriptor(std::vector<GByte> &abyBuffer, const FileGDBField
      *psField,\n                     bool bGeomTypeHasZ, bool bGeomTypeHasM,\n                     bool
      bStringsAreUTF8, uint32_t &nGeomFieldBBoxOffsetOut,\n                     uint32_t
      &nGeomFieldSpatialIndexGridResOffsetOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:686,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:688,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:697,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:699,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:699,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:699,1
    - Dst: WriteFieldDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:704,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:704,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:712,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:713,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:714,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:718,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:718,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:719,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:727,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:730,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:734,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:737,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:738,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:738,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:738,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:740,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:743,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:747,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:752,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:752,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:752,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:753,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:758,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:759,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:767,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:768,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:768,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:768,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - fpTable
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 772
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 772
    functionName: OpenFileGDB::FileGDBTable::WriteFieldDescriptors
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - size
    - WriteUInt16
    - std::vector::size
    - get
    - VSIFSeekL
    - static_cast<uint16_t>
    - VSIFTruncateL
    - WriteFieldDescriptor
    - static_cast<uint32_t>
    - CPL_IGNORE_RET_VAL
    - VSIFWriteL
    - VSIFTellL
    - std::vector::push_back
    - WriteUInt32
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WriteFieldDescriptors(VSILFILE *fpTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:783,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:790,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:809,1
    - Dst: OpenFileGDB::FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:812,1
    - Dst: OpenFileGDB::FileGDBTable::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:816,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:818,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:819,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:823,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:823,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:825,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:825,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:826,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:827,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:827,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:827,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:829,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:830,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:830,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:830,1
    - Dst: OpenFileGDB::FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:842,1
    - Dst: OpenFileGDB::FileGDBTable::GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:851,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:854,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:856,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:862,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:863,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:864,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:865,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:865,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:869,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:869,1
    - Dst: IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:884,1
    - Dst: BIT_ARRAY_SIZE_IN_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:888,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:891,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:891,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 896
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 896
    functionName: OpenFileGDB::FileGDBTable::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - IsNullable
    - VSIFTellL
    - static_cast<uint32_t>
    - OpenFileGDB::FileGDBTable::EncodeFeature
    - CPLError
    - OpenFileGDB::FileGDBTable::GetAllFieldValues
    - OpenFileGDB::FileGDBTable::GetIndexCount
    - std::vector::empty
    - std::vector::data
    - c_str
    - static_cast<int>
    - BIT_ARRAY_SIZE_IN_BYTES
    - VSIFSeekL
    - get
    - VSIUnlink
    - begin
    - GetIndexName
    - data
    - std::vector::resize
    - size
    - erase
    - CPLResetExtensionSafe
    - OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    - VSIFWriteL
    - WriteUInt32
    - OpenFileGDB::FileGDBTable::FreeAllFieldValues
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:910,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:910,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:917,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:922,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:924,1
    - Dst: IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:929,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:931,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:939,1
    - Dst: OpenFileGDB::FileGDBTable::GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:946,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:949,1
    - Dst: IsRequired
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:950,1
    - Dst: IsEditable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:951,1
    - Dst: SetParent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:952,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:957,1
    - Dst: auto::GetExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:957,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 7
    argNames:
    - iField
    - osName
    - osAlias
    - eType
    - bNullable
    - nMaxWidth
    - sDefault
    argTypes:
    - int
    - std::string
    - std::string
    - FileGDBFieldType
    - bool
    - int
    - OGRField
    constantsTouched: []
    func_position:
      end: 965
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 965
    functionName: OpenFileGDB::FileGDBTable::AlterField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - size
    - STARTS_WITH_CI
    - static_cast<int>
    - std::make_unique<FileGDBField>
    - auto::GetExpression
    - OpenFileGDB::FileGDBTable::GetFieldIdx
    - IsNullable
    - GetType
    - IsRequired
    - IsEditable
    - CPLError
    - OpenFileGDB::FileGDBTable::GetIndexCount
    - SetParent
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::AlterField(int iField, const std::string &osName,\n
      \                             const std::string &osAlias,\n                              FileGDBFieldType
      eType, bool bNullable,\n                              int nMaxWidth, const OGRField
      &sDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:981,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:981,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:982,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp:984,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - osName
    - osAlias
    - bNullable
    - osWKT
    argTypes:
    - std::string
    - std::string
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 1005
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1005
    functionName: OpenFileGDB::FileGDBTable::AlterGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write_fields.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::IsNullable
    - get
    - cpl::down_cast<FileGDBGeomField *>
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::AlterGeomField(const std::string &osName,\n                                  const
      std::string &osAlias, bool bNullable,\n                                  const
      std::string &osWKT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:40,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:41,1
    - Dst: OpenFileGDB::FileGDBTable::GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:44,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:48,1
    - Dst: GetExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:53,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:54,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:57,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:58,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:58,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:62,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:62,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:63,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:64,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 70
    functionName: OpenFileGDB::FileGDBTable::RemoveIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLString::toupper
    - CPLResetExtensionSafe
    - get
    - VSIUnlink
    - GetIndexName
    - OpenFileGDB::FileGDBTable::GetIndexCount
    - GetName
    - GetExpression
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::RemoveIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::RemoveIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:81,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:86,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:92,1
    - Dst: OpenFileGDB::FileGDBTable::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:95,1
    - Dst: GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:99,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:103,1
    - Dst: OpenFileGDB::FileGDBTable::CreateAttributeIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:108,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:108,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 113
    functionName: OpenFileGDB::FileGDBTable::RefreshIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBTable::RemoveIndices
    - OpenFileGDB::FileGDBTable::CreateSpatialIndex
    - get
    - GetType
    - GetFieldName
    - OpenFileGDB::FileGDBTable::CreateAttributeIndex
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::RefreshIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:125,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:129,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:136,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:138,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:147,1
    - Dst: OpenFileGDB::FileGDBTable::GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:155,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:155,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:155,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:157,1
    - Dst: OpenFileGDB::FileGDBIndex::GetFieldNameFromExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:168,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:175,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:177,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:192,1
    - Dst: std::make_unique<FileGDBIndex>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:199,1
    - Dst: OpenFileGDB::FileGDBTable::CreateAttributeIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:205,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:205,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:209,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:211,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:211,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 44
    argCount: 2
    argNames:
    - osIndexName
    - osExpression
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 214
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 214
    functionName: OpenFileGDB::FileGDBTable::CreateIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OpenFileGDB::FileGDBIndex::GetFieldNameFromExpression
    - static_cast<unsigned char>
    - std::string::size
    - GetIndexName
    - auto::get
    - EQUAL
    - GetType
    - std::move
    - push_back
    - CPLError
    - OpenFileGDB::FileGDBTable::GetIndexCount
    - std::string::c_str
    - std::make_unique<FileGDBIndex>
    - OpenFileGDB::FileGDBTable::CreateAttributeIndex
    - isalnum
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::CreateIndex(const std::string &osIndexName,\n                               const
      std::string &osExpression)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:224,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:224,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:224,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:228,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:230,1
    - Dst: GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:230,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:231,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:231,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:239,1
    - Dst: GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:241,1
    - Dst: WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:245,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:245,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:247,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:248,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:250,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:251,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:253,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:255,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:256,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:260,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:261,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:263,1
    - Dst: WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:264,1
    - Dst: GetExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:264,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:266,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:269,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:270,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:270,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:274,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:274,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:274,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:274,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 276
    functionName: OpenFileGDB::FileGDBTable::CreateGdbIndexesFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - static_cast<uint32_t>
    - CPLString
    - GetFieldName
    - CPLError
    - WriteUTF16String
    - GetName
    - std::vector::data
    - WriteUInt16
    - c_str
    - FileGDBField*::GetType
    - get
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - GetIndexName
    - size
    - VSIFCloseL
    - CPLResetExtensionSafe
    - VSIFWriteL
    - WriteUInt32
    - GetExpression
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::CreateGdbIndexesFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:285,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:291,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:291,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:298,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:301,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:312,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:314,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:314,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:317,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:317,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:319,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:319,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:322,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:322,1
    - Dst: std::unique_ptr<FileGDBOGRGeometryConverter>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:338,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:339,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:342,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:345,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:348,1
    - Dst: auto::GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:349,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:351,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:351,1
    - Dst: auto::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:353,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:364,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:366,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:366,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:369,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:369,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:371,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:371,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:374,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:374,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:388,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:396,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:399,1
    - Dst: OpenFileGDB::FileGDBTable::GetFeatureExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:402,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:405,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:407,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:411,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 421
    functionName: OpenFileGDB::FileGDBTable::ComputeOptimalSpatialIndexGridResolution
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - auto::GetAsGeometry
    - std::unique_ptr<OGRGeometry>
    - auto::GetXMax
    - auto::GetYMin
    - CPLDebug
    - std::unique_ptr<FileGDBOGRGeometryConverter>
    - cpl::down_cast<FileGDBGeomField *>
    - auto::GetYMax
    - wkbFlatten
    - auto::toMultiPoint
    - get
    - auto::GetXMin
    - OpenFileGDB::FileGDBTable::GetFieldValue
    - FileGDBOGRGeometryConverter::BuildConverter
    - size
    - OpenFileGDB::FileGDBTable::GetFeatureExtent
    - sqrt
    - OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    - auto::getGeometryType
    - max
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::ComputeOptimalSpatialIndexGridResolution()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:463,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:463,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:466,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:466,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:473,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:479,1
    - Dst: std::vector<ValueOIDPair>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:479,1
    - Dst: std::vector<ValueOIDPair>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:479,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:487,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:494,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:495,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:500,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:504,1
    - Dst: writeValueFunc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:509,1
    - Dst: std::vector<ValueOIDPair>::back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:509,1
    - Dst: writeValueFunc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:517,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:520,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:521,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:521,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:521,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:530,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:534,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:539,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:540,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:540,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:543,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:545,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:546,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:551,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:553,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:558,1
    - Dst: writeValueFunc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:563,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:568,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:569,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:569,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:569,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:580,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:584,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:589,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:592,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:596,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:598,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:603,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:608,1
    - Dst: writeValueFunc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:616,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:619,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:620,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:620,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:620,1
    - Dst: WriteIntermediatePages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:630,1
    - Dst: WriteLeafPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:634,1
    - Dst: std::vector<ValueOIDPair>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:638,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:640,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:640,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:644,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:645,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:645,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:645,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:646,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:650,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:650,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:653,1
    - Dst: writeValueFunc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:657,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:659,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:660,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:660,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:660,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:662,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:662,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:670,1
    - Dst: WriteRootPageNonLeaf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:673,1
    - Dst: WriteLeafPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:676,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:680,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:680,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:742,1
    - Dst: WriteRootPageNonLeaf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:745,1
    - Dst: WriteLastTwoLevelPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:749,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:765,1
    - Dst: WriteRootPageNonLeaf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:768,1
    - Dst: WriteIntermediatePages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:773,1
    - Dst: WriteLastTwoLevelPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:777,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:783,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:784,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:784,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:785,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:786,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:787,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:788,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:788,1
    - Dst: std::vector<ValueOIDPair>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:788,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:789,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:790,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:791,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:791,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:791,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 118
    argCount: 3
    argNames:
    - fp
    - asValues
    - nDepth
    argTypes:
    - VSILFILE*
    - std::vector<ValueOIDPair>
    - int
    constantsTouched: []
    func_position:
      end: 794
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 794
    functionName: OpenFileGDB::WriteIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 0
    functionsReached:
    - WriteLeafPages
    - WriteRootPageNonLeaf
    - std::vector::size
    - OpenFileGDB::WriteUInt32
    - static_cast<uint32_t>
    - CPLError
    - std::vector::clear
    - OpenFileGDB::WriteUInt8
    - std::sort
    - std::vector::reserve
    - std::vector::data
    - WriteLastTwoLevelPages
    - static_cast<int>
    - std::vector<ValueOIDPair>::size
    - static_cast<uint64_t>
    - CPLAssert
    - std::vector::resize
    - static_cast<size_t>
    - std::vector<ValueOIDPair>::back
    - static_cast<uint8_t>
    - WriteIntermediatePages
    - std::vector<ValueOIDPair>::empty
    - writeValueFunc
    - VSIFWriteL
    - std::vector<ValueOIDPair>::end
    - std::vector<ValueOIDPair>::begin
    linkageType: ''
    returnType: bool
    signature: "bool WriteIndex(\n    VSILFILE *fp, std::vector<ValueOIDPair> &asValues,\n
      \   void (*writeValueFunc)(std::vector<GByte> &abyPage,\n                           const
      typename ValueOIDPair::first_type &value,\n                           int maxStrSize),\n
      \   int &nDepth, int maxStrSize = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:802,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:803,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:810,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:816,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:816,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:817,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:825,1
    - Dst: OpenFileGDB::FileGDBTable::ComputeOptimalSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:831,1
    - Dst: std::unique_ptr<FileGDBOGRGeometryConverter>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:836,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:837,1
    - Dst: OpenFileGDB::FileGDBTable::GetMinMaxProjYForSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:847,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:853,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:853,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:858,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:859,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:870,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:870,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:885,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:898,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:898,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:899,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:899,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:907,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:908,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:912,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:912,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:912,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:916,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:932,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:932,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:939,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:939,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:939,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:943,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:959,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:959,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:997,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:997,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1003,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1003,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1038,1
    - Dst: AddLineStringToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1043,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1043,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1046,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1064,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1081,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1082,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1086,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1087,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1088,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1113,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1113,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1122,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1127,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1127,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1127,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1129,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1143,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1143,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1160,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1165,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1168,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1171,1
    - Dst: auto::GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1172,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1173,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1175,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1177,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1177,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1180,1
    - Dst: AddPointToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1181,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1181,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1181,1
    - Dst: auto::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1186,1
    - Dst: AddPointToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1188,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1188,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1188,1
    - Dst: AddLineStringToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1194,1
    - Dst: auto::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1194,1
    - Dst: auto::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1199,1
    - Dst: AddLineStringToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1201,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1207,1
    - Dst: auto::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1207,1
    - Dst: AddLineStringToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1209,1
    - Dst: auto::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1209,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1214,1
    - Dst: auto::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1214,1
    - Dst: auto::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1218,1
    - Dst: AddLineStringToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1220,1
    - Dst: AddPolygonToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1226,1
    - Dst: auto::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1226,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1230,1
    - Dst: auto::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1230,1
    - Dst: AddPolygonToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1232,1
    - Dst: auto::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1232,1
    - Dst: auto::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1236,1
    - Dst: AddPolygonToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1238,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1243,1
    - Dst: auto::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1243,1
    - Dst: auto::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1247,1
    - Dst: AddPolygonToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1249,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1254,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1254,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1254,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1261,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1272,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1272,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1277,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1277,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1278,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1278,1
    - Dst: WriteUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1288,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1288,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1292,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1298,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1299,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1299,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 209
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 1303
    functionName: OpenFileGDB::FileGDBTable::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 1
    functionsReached:
    - getEnvelope
    - auto::toLineString
    - auto::GetAsGeometry
    - std::unique_ptr<OGRGeometry>
    - WriteUInt64
    - std::vector::size
    - std::vector::emplace_back
    - CPLDebug
    - std::unique_ptr<FileGDBOGRGeometryConverter>
    - CPLError
    - std::vector::clear
    - std::vector::push_back
    - std::string::c_str
    - auto::toPoint
    - cpl::down_cast<FileGDBGeomField *>
    - std::vector::end
    - auto::toPolygon
    - auto::getLinearGeometry
    - std::vector::begin
    - std::abs
    - std::sort
    - auto::toMultiPolygon
    - swap
    - wkbFlatten
    - AddPolygonToIndex
    - CPLAtof
    - OpenFileGDB::FileGDBTable::ComputeOptimalSpatialIndexGridResolution
    - IsEmpty
    - getExteriorRing
    - static_cast<int>
    - AddPointToIndex
    - auto::toMultiPoint
    - OpenFileGDB::FileGDBTable::GetMinMaxProjYForSpatialIndex
    - floor
    - c_str
    - get
    - static_cast<uint64_t>
    - VSIUnlink
    - min
    - VSIFOpenL
    - OpenFileGDB::FileGDBTable::GetFieldValue
    - FileGDBOGRGeometryConverter::BuildConverter
    - getX
    - what
    - static_cast<int64_t>
    - size
    - auto::IsEmpty
    - auto::getX
    - empty
    - VSIFCloseL
    - ValueOIDPair
    - CPLResetExtensionSafe
    - OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    - AddLineStringToIndex
    - max
    - auto::getGeometryType
    - auto::getY
    - push_back
    - fabs
    - auto::toMultiLineString
    - auto::reset
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::CreateSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBIndex*::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1315,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1316,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1321,1
    - Dst: FileGDBIndex*::GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1321,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1321,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1322,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1322,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1331,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1339,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1342,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1345,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1345,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1346,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1354,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1354,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1356,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1365,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1371,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1372,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1380,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1380,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1382,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1391,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1394,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1397,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1398,1
    - Dst: WriteUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1406,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1406,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1408,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1417,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1420,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1423,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1423,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1424,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1431,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1433,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1446,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1449,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1452,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1453,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1461,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1463,1
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1476,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1479,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1482,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1498,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1502,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1503,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1505,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1506,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1508,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1510,1
    - Dst: ValueOIDPair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1510,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1521,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1522,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1524,1
    - Dst: WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1525,1
    - Dst: WriteIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1530,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1536,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1545,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1545,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1549,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1553,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1554,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1555,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp:1555,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 125
    argCount: 1
    argNames:
    - poIndex
    argTypes:
    - FileGDBIndex*
    constantsTouched: []
    func_position:
      end: 1559
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1559
    functionName: OpenFileGDB::FileGDBTable::CreateAttributeIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex_write.cpp
    functionUses: 2
    functionsReached:
    - WriteUInt64
    - WriteFloat64
    - static_cast<uint32_t>
    - std::vector::push_back
    - CPLError
    - std::string::c_str
    - FileGDBIndex*::GetIndexName
    - WriteIndex
    - std::vector::reserve
    - c_str
    - WriteUInt16
    - static_cast<float>
    - static_cast<uint64_t>
    - VSIUnlink
    - static_cast<uint16_t>
    - VSIFOpenL
    - GetType
    - OpenFileGDB::FileGDBTable::GetFieldValue
    - static_cast<int16_t>
    - CPLFree
    - what
    - CPLRecodeToWChar
    - size
    - static_cast<size_t>
    - VSIFCloseL
    - ValueOIDPair
    - CPLResetExtensionSafe
    - WriteFloat32
    - OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    - FileGDBIndex*::GetFieldName
    - WriteUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::CreateAttributeIndex(const FileGDBIndex *poIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:49,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:49,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:52,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:53,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:54,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:55,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:56,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:57,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:58,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:59,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:60,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:61,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:62,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:65,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:67,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:71,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:76,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:79,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:80,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:81,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:82,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:83,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:84,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:85,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:86,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:87,1
    - Dst: fetchRealVal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:88,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 11
    argNames:
    - osWKT
    - dfXOrigin
    - dfYOrigin
    - dfXYScale
    - dfZOrigin
    - dfZScale
    - dfMOrigin
    - dfMScale
    - dfXYTolerance
    - dfZTolerance
    - dfMTolerance
    argTypes:
    - std::string
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 95
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 95
    functionName: OGROpenFileGDBDataSource::GetExistingSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FETCH_FIELD_IDX
    - c_str
    - fetchRealVal
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::GetExistingSpatialRef(\n    const std::string
      &osWKT, double dfXOrigin, double dfYOrigin,\n    double dfXYScale, double dfZOrigin,
      double dfZScale, double dfMOrigin,\n    double dfMScale, double dfXYTolerance,
      double dfZTolerance,\n    double dfMTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:108,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:108,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:111,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:112,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:113,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:114,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:115,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:116,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:117,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:118,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:119,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:120,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:121,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:123,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:125,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:125,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:137,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 11
    argNames:
    - osWKT
    - dfXOrigin
    - dfYOrigin
    - dfXYScale
    - dfZOrigin
    - dfZScale
    - dfMOrigin
    - dfMScale
    - dfXYTolerance
    - dfZTolerance
    - dfMTolerance
    argTypes:
    - std::string
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 138
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 138
    functionName: OGROpenFileGDBDataSource::AddNewSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - const_cast<char *>
    - FileGDBTable::Open
    - FileGDBTable::Sync
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::AddNewSpatialRef(\n    const std::string
      &osWKT, double dfXOrigin, double dfYOrigin,\n    double dfXYScale, double dfZOrigin,
      double dfZScale, double dfMOrigin,\n    double dfMScale, double dfXYTolerance,
      double dfZTolerance,\n    double dfMTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:148,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:148,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:151,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:152,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:154,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:156,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:158,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - osLayerName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: OGROpenFileGDBDataSource::RegisterLayerInSystemCatalog
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - const_cast<char *>
    - FileGDBTable::Open
    - FileGDBTable::Sync
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterLayerInSystemCatalog(\n    const
      std::string &osLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:170,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:170,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:173,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:174,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:175,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:176,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:177,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:179,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:181,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:182,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:182,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:183,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:183,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:184,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:184,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:185,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:185,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:187,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - osOriginGUID
    - osDestGUID
    - osTypeGUID
    argTypes:
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: OGROpenFileGDBDataSource::RegisterInItemRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - const_cast<char *>
    - OFGDBGenerateUUID
    - FileGDBTable::Open
    - FileGDBTable::Sync
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterInItemRelationships(\n    const
      std::string &osOriginGUID, const std::string &osDestGUID,\n    const std::string
      &osTypeGUID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:202,1
    - Dst: OGROpenFileGDBDataSource::RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:205,1
    - Dst: OGROpenFileGDBDataSource::RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - osRelationshipGUID
    - osOriginGUID
    - osDestGUID
    argTypes:
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 213
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 213
    functionName: OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDataSource::RegisterInItemRelationships
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships(\n
      \   const std::string &osRelationshipGUID, const std::string &osOriginGUID,\n
      \   const std::string &osDestGUID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:223,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:223,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:230,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:231,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:233,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:236,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:240,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:243,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:247,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - osRelationshipGUID
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 256
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 256
    functionName: OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FileGDBTable::DeleteFeature
    - c_str
    - FETCH_FIELD_IDX_WITH_RET
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships(\n
      \   const std::string &osRelationshipGUID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:266,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:272,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:272,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:275,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:276,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:278,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:281,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:285,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:286,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:286,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:289,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:289,1
    - Dst: OGROpenFileGDBDataSource::RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - osDomainName
    - osLayerGUID
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 299
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 299
    functionName: OGROpenFileGDBDataSource::LinkDomainToTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDataSource::FindUUIDFromName
    - FileGDBTable::GetFieldValue
    - FETCH_FIELD_IDX
    - c_str
    - OGROpenFileGDBDataSource::RegisterInItemRelationships
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - EQUAL
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::LinkDomainToTable(\n    const std::string
      &osDomainName, const std::string &osLayerGUID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:309,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:313,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:313,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:316,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:317,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:319,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:322,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:327,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:327,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:330,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:330,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:332,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - osDomainName
    - osLayerGUID
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 338
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 338
    functionName: OGROpenFileGDBDataSource::UnlinkDomainToTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDataSource::FindUUIDFromName
    - FileGDBTable::GetFieldValue
    - FETCH_FIELD_IDX
    - c_str
    - FileGDBTable::DeleteFeature
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - EQUAL
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::string::c_str
    - FileGDBTable::Sync
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::UnlinkDomainToTable(\n    const std::string
      &osDomainName, const std::string &osLayerGUID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:348,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:348,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:351,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:352,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:354,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:357,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:360,1
    - Dst: FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:363,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:364,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:365,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:367,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:369,1
    - Dst: FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:376,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - osLayerName
    - pszXMLDefinition
    argTypes:
    - std::string
    - char*
    constantsTouched: []
    func_position:
      end: 380
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 380
    functionName: OGROpenFileGDBDataSource::UpdateXMLDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FETCH_FIELD_IDX
    - c_str
    - OGR_RawField_IsUnset
    - CPLStrdup
    - FileGDBTable::FreeAllFieldValues
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - CPLError
    - FileGDBTable::GetAllFieldValues
    - OGR_RawField_IsNull
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::UpdateXMLDefinition(\n    const std::string
      &osLayerName, const char *pszXMLDefinition)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:390,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:390,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:393,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:394,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:396,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:399,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:402,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - osName
    - osUUIDOut
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 415
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 415
    functionName: OGROpenFileGDBDataSource::FindUUIDFromName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 2
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FETCH_FIELD_IDX
    - c_str
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::FindUUIDFromName(const std::string
      &osName,\n                                                std::string &osUUIDOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:426,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:426,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:429,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:430,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:431,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:432,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:433,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:434,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:435,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:436,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:438,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:440,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:440,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:441,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:442,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:442,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:444,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:445,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:445,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:448,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:448,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:449,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:450,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:452,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - osFeatureDatasetGUID
    - osName
    - pszXMLDefinition
    argTypes:
    - std::string
    - std::string
    - char*
    constantsTouched: []
    func_position:
      end: 453
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 453
    functionName: OGROpenFileGDBDataSource::RegisterFeatureDatasetInItems
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - CPLString::toupper
    - const_cast<char *>
    - FileGDBTable::Open
    - CPLString::c_str
    - FileGDBTable::Sync
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterFeatureDatasetInItems(\n    const
      std::string &osFeatureDatasetGUID, const std::string &osName,\n    const char
      *pszXMLDefinition)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:465,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:465,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:468,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:469,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:470,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:471,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:472,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:473,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:474,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:475,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:476,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:477,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:478,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:479,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:481,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:483,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:483,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:484,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:485,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:485,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:487,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:488,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:488,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:489,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:489,1
    - Dst: FileGDBTable*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:491,1
    - Dst: FileGDBTable*::GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:492,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:495,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:495,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:496,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:497,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:499,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:501,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 6
    argNames:
    - osLayerGUID
    - osLayerName
    - osPath
    - poLyrTable
    - pszXMLDefinition
    - pszDocumentation
    argTypes:
    - std::string
    - std::string
    - std::string
    - FileGDBTable*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 502
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 502
    functionName: OGROpenFileGDBDataSource::RegisterFeatureClassInItems
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - CPLString::toupper
    - const_cast<char *>
    - auto::GetName
    - FileGDBTable::Open
    - CPLString::c_str
    - FileGDBTable*::GetGeometryType
    - FileGDBTable::Sync
    - FileGDBTable*::GetGeomField
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterFeatureClassInItems(\n    const
      std::string &osLayerGUID, const std::string &osLayerName,\n    const std::string
      &osPath, const FileGDBTable *poLyrTable,\n    const char *pszXMLDefinition,
      const char *pszDocumentation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:514,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:514,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:517,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:518,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:519,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:520,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:521,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:522,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:523,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:524,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:525,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:527,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:529,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:529,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:530,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:531,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:531,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:533,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:534,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:534,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:535,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:535,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:536,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:537,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:539,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:541,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - osLayerGUID
    - osLayerName
    - osPath
    - pszXMLDefinition
    - pszDocumentation
    argTypes:
    - std::string
    - std::string
    - std::string
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 542
    functionName: OGROpenFileGDBDataSource::RegisterASpatialTableInItems
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FETCH_FIELD_IDX
    - c_str
    - CPLString::toupper
    - const_cast<char *>
    - FileGDBTable::Open
    - CPLString::c_str
    - FileGDBTable::Sync
    - FileGDBTable::GetFieldCount
    - std::string::c_str
    - FileGDBTable::CreateFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::RegisterASpatialTableInItems(\n    const
      std::string &osLayerGUID, const std::string &osLayerName,\n    const std::string
      &osPath, const char *pszXMLDefinition,\n    const char *pszDocumentation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:552,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:552,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:554,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:554,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:556,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:556,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:557,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:561,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:561,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:562,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:566,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:566,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:567,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:575,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:588,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:590,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:594,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:594,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:595,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 599
    functionName: OGROpenFileGDBDataSource::CreateGDBSystemCatalog
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::Sync
    - c_str
    - const_cast<char *>
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - FileGDBTable::GetFieldCount
    - CPLFormFilenameSafe
    - FileGDBTable::CreateFeature
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBSystemCatalog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:608,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:609,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:611,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:611,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:612,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:612,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:613,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:617,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:617,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:618,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:622,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:622,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:623,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:631,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:686,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:687,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:688,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:689,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:693,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:693,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:694,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 697
    functionName: OGROpenFileGDBDataSource::CreateGDBDBTune
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::Sync
    - c_str
    - const_cast<char *>
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - std::string::c_str
    - CPLFormFilenameSafe
    - FileGDBTable::CreateFeature
    - FileGDBTable::GetFieldCount
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBDBTune()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:707,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:707,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:709,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:709,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:711,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:711,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:712,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:716,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:716,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:717,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:721,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:721,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:722,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:726,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:726,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:727,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:731,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:731,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:732,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:736,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:736,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:737,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:741,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:741,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:742,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:746,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:746,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:747,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:751,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:751,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:752,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:756,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:756,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:757,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:761,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:761,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:762,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:766,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:766,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:767,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:775,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:775,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:776,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:779,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 780
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 780
    functionName: OGROpenFileGDBDataSource::CreateGDBSpatialRefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - CPLFormFilenameSafe
    - emplace_back
    - FileGDBTable::Sync
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBSpatialRefs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<FileGDBGeomField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:793,1
    - Dst: FileGDBGeomField::FileGDBGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:794,1
    - Dst: auto::SetZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:796,1
    - Dst: auto::SetMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:797,1
    - Dst: OGROpenFileGDBDataSource::AddNewSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:799,1
    - Dst: auto::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:799,1
    - Dst: auto::GetXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:799,1
    - Dst: auto::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:800,1
    - Dst: auto::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:800,1
    - Dst: auto::GetZOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:801,1
    - Dst: auto::GetZScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:801,1
    - Dst: auto::GetMOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:802,1
    - Dst: auto::GetMScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:802,1
    - Dst: auto::GetXYTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:803,1
    - Dst: auto::GetZTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:804,1
    - Dst: auto::GetMTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:805,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:811,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:811,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:813,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:813,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:815,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:815,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:816,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:820,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:820,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:821,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:825,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:825,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:826,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:830,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:830,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:831,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:835,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:835,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:836,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:840,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:840,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:841,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:845,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:845,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:846,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:850,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:850,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:851,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:855,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:855,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:856,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:860,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:860,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:861,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:865,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:865,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:866,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:870,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:870,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:871,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:875,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:875,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:876,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:880,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:880,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:881,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:885,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:885,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:886,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:890,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:890,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:891,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:895,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:895,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:900,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:902,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:903,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:903,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:904,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:905,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:906,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:907,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:908,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:910,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:914,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:914,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:915,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:916,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:917,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:918,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:919,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:920,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:940,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:940,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:941,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:943,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:943,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 944
    functionName: OGROpenFileGDBDataSource::CreateGDBItems
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<FileGDBGeomField>
    - auto::GetMOrigin
    - OGROpenFileGDBDataSource::AddNewSpatialRef
    - std::string::c_str
    - FileGDBTable::Sync
    - FileGDBGeomField::FileGDBGeomField
    - auto::GetMTolerance
    - std::move
    - auto::GetXYScale
    - auto::SetMOriginScaleTolerance
    - FileGDBTable::CreateFeature
    - auto::GetYOrigin
    - emplace_back
    - c_str
    - auto::GetZTolerance
    - std::make_unique<FileGDBField>
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - OFGDBGenerateUUID
    - auto::GetXYTolerance
    - CPLFormFilenameSafe
    - auto::GetWKT
    - auto::GetZScale
    - const_cast<char *>
    - FileGDBTable::Create
    - auto::SetZOriginScaleTolerance
    - auto::GetMScale
    - auto::GetZOrigin
    - auto::GetXOrigin
    - std::string
    - FileGDBTable::GetFieldCount
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBItems()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:953,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:954,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:956,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:956,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:957,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:957,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:958,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:962,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:962,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:963,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:967,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:967,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:968,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:972,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:972,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:973,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:981,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1055,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1056,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1057,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1058,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1062,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1062,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1063,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1065,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 1066
    functionName: OGROpenFileGDBDataSource::CreateGDBItemTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::Sync
    - c_str
    - const_cast<char *>
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - std::string::c_str
    - CPLFormFilenameSafe
    - FileGDBTable::CreateFeature
    - FileGDBTable::GetFieldCount
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBItemTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1076,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1076,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1078,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1078,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1080,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1080,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1081,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1085,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1085,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1086,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1090,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1090,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1091,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1095,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1095,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1096,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1100,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1100,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1101,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1105,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1105,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1106,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1110,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1110,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1111,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1119,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1119,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1120,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1124
    functionName: OGROpenFileGDBDataSource::CreateGDBItemRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - CPLFormFilenameSafe
    - emplace_back
    - FileGDBTable::Sync
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBItemRelationships()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1133,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1134,1
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1136,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1136,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1137,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1137,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1138,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1142,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1142,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1143,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1147,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1147,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1148,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1152,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1152,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1153,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1157,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1157,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1158,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1162,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1162,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1163,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1167,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1167,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1168,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1172,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1172,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1173,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1252,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1256,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1257,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1258,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1259,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1260,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1261,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1263,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1267,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1267,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1268,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1270,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1271
    functionName: OGROpenFileGDBDataSource::CreateGDBItemRelationshipTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::Sync
    - c_str
    - const_cast<char *>
    - std::make_unique<FileGDBField>
    - FileGDBTable::Create
    - std::make_unique<OGROpenFileGDBLayer>
    - FileGDBTable::CreateField
    - std::string
    - std::string::c_str
    - CPLFormFilenameSafe
    - FileGDBTable::CreateFeature
    - FileGDBTable::GetFieldCount
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::CreateGDBItemRelationshipTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1280,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1280,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1282,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1289,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1291,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1297,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1302,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1302,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1310,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1311,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1311,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1315,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1316,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1322,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1323,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1323,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1328,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1328,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1328,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1329,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBSystemCatalog
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1332,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBDBTune
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1332,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBSpatialRefs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1333,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBItems
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1333,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBItemTypes
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1333,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1334,1
    - Dst: OGROpenFileGDBDataSource::CreateGDBItemRelationshipTypes
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1336
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1336
    functionName: OGROpenFileGDBDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDataSource::CreateGDBDBTune
    - std::vector::size
    - OGROpenFileGDBDataSource::CreateGDBItemRelationshipTypes
    - CPLError
    - std::string::c_str
    - CPLGetExtensionSafe
    - OGROpenFileGDBDataSource::CreateGDBItems
    - VSIMkdir
    - OGROpenFileGDBDataSource::CreateGDBItemRelationships
    - std::vector::data
    - OFGDBGenerateUUID
    - VSIFOpenL
    - OGROpenFileGDBDataSource::CreateGDBSystemCatalog
    - CPL_IGNORE_RET_VAL
    - OGROpenFileGDBDataSource::CreateGDBItemTypes
    - CPLFormFilenameSafe
    - VSIStatL
    - VSIFCloseL
    - EQUAL
    - VSIFWriteL
    - OGROpenFileGDBDataSource::CreateGDBSpatialRefs
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::Create(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1350,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1355,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1359,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1362,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1362,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1363,1
    - Dst: FileGDBTable::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1366,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1368,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1369,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1369,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1371,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1372,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1372,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1373,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1374,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1375,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1375,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1376,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1378,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1379,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1380,1
    - Dst: auto::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1384,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1386,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1386,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1388,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1388,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1390,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1391
      start: 1342
    functionDepth: 3
    functionLinenumber: 1342
    functionLinenumberEnd: 1391
    functionName: OGROpenFileGDBDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::Create
    - CPLError
    - FileGDBTable::Close
    - std::string::c_str
    - insert
    - OGR_GT_HasZ
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - std::move
    - wkbFlatten
    - emplace_back
    - c_str
    - OGRGeomFieldDefn*::GetType
    - std::make_unique<OGROpenFileGDBLayer>
    - CPLSPrintf
    - OGR_GT_HasM
    - CPLFormFilenameSafe
    - OGR_GT_SetModifier
    - back
    - empty
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - auto::BeginEmulatedTransaction
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGROpenFileGDBDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                      const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1402,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1402,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1405,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1408,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1413,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1413,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1416,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1418,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1421,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1424,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1425,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1425,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1427,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1437,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1437,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1440,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1441,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1443,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1446,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1449,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1450,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1450,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1452,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1458,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1465,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1468,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1468,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1471,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1473,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1475,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1478,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1482,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1485,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1489,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1492,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1499,1
    - Dst: auto::GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1499,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1501,1
    - Dst: auto::GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1501,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1506,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1506,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1507,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1509,1
    - Dst: auto::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1513,1
    - Dst: auto::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1514,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1515,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1516,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1521,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1521,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1527,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1527,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1529,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1530,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1530,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1534,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 72
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1537
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1537
    functionName: OGROpenFileGDBDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::DeleteFeature
    - auto::GetName
    - auto::Close
    - strcmp
    - auto::GetFilename
    - STARTS_WITH
    - std::string::c_str
    - std::string::empty
    - end
    - insert
    - find
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::move
    - FileGDBTable::GetFieldValue
    - c_str
    - static_cast<int>
    - FETCH_FIELD_IDX_WITH_RET
    - get
    - VSIUnlink
    - begin
    - CPLFormFilenameSafe
    - size
    - erase
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - CSLDestroy
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - auto::BeginEmulatedTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1555
    functionName: OGROpenFileGDBDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - SyncToDisk
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROpenFileGDBDataSource::FlushCache(bool /*bAtClosing*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1564,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1567,1
    - Dst: GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1572,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1578,1
    - Dst: BuildXMLFieldDomainDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1582,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1582,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1583,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1588,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1591,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1591,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1594,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1595,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1596,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1597,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1598,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1599,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1600,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1601,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1603,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1605,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1605,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1606,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1609,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1613,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1617,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1620,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1620,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1622,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1623,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1623,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1624,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1625,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1626,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1626,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1629,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1629,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1632,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 1635
      start: 1561
    functionDepth: 2
    functionLinenumber: 1561
    functionLinenumberEnd: 1635
    functionName: OGROpenFileGDBDataSource::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - CPLError
    - std::string::c_str
    - FileGDBTable::Sync
    - std::unique_ptr<OGRFieldDomain>::GetName
    - std::string::empty
    - FETCH_FIELD_IDX
    - FileGDBTable::Open
    - CPLString::c_str
    - std::move
    - FileGDBTable::CreateFeature
    - FileGDBTable::GetFieldCount
    - c_str
    - OFGDBGenerateUUID
    - CPLAssert
    - const_cast<char *>
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - BuildXMLFieldDomainDef
    - GetFieldDomain
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::AddFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1646,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1651,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1658,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1658,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1661,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1662,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1663,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1665,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1668,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1671,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1674,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1675,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1676,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1678,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1684,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1684,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1693,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1699,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1699,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1702,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1703,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1705,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1708,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1713,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1715,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1716,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1716,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1718,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1718,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1726,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1732,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1735
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1735
    functionName: OGROpenFileGDBDataSource::DeleteFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FileGDBTable::DeleteFeature
    - FETCH_FIELD_IDX
    - c_str
    - std::string::empty
    - erase
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - EQUAL
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - CPLError
    - std::string::c_str
    - FileGDBTable::Sync
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::DeleteFieldDomain(\n    const std::string
      &name, std::string & /*failureReason*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1747,1
    - Dst: GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1752,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1758,1
    - Dst: BuildXMLFieldDomainDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1762,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1762,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1763,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1769,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1769,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1772,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1773,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1774,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1777,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1780,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1783,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1787,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1788,1
    - Dst: FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1790,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1792,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1793,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1795,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1797,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1797,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1800,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1801,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1812,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1816,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1817,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1819,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1821,1
    - Dst: FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1825,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1833,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1842,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 60
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 1845
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1845
    functionName: OGROpenFileGDBDataSource::UpdateFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - CPLError
    - FileGDBTable::GetAllFieldValues
    - std::string::c_str
    - FileGDBTable::Sync
    - std::unique_ptr<OGRFieldDomain>::GetName
    - std::string::empty
    - FETCH_FIELD_IDX
    - CPLStrdup
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::move
    - FileGDBTable::GetFieldValue
    - c_str
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OGR_RawField_IsNull
    - CPLFree
    - FileGDBTable::FreeAllFieldValues
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - EQUAL
    - BuildXMLFieldDomainDef
    - OGR_RawField_IsUnset
    - GetFieldDomain
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::UpdateFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1856,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1856,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1857,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1858,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - CSLConstList papszOptions
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1863
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1863
    functionName: OGROpenFileGDBDataSource::GetRelationshipNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - std::vector::emplace_back
    - begin
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> OGROpenFileGDBDataSource::GetRelationshipNames(\n
      \   CPL_UNUSED CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1873,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1874,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1878
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1878
    functionName: OGROpenFileGDBDataSource::GetRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::get
    linkageType: ''
    returnType: GDALRelationship
    signature: 'GDALRelationship *

      OGROpenFileGDBDataSource::GetRelationship(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1888,1
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1891,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1894,1
    - Dst: OGROpenFileGDBDataSource::GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1899,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1905,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1911,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1913,1
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1914,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1914,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1921,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1924,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1927,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1927,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1928,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1936,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1939,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1942,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1942,1
    - Dst: auto::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1945,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1951,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1952,1
    - Dst: OGROpenFileGDBDataSource::ICreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1953,1
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1954,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1954,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1958,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1963,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1967,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1972,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1977,1
    - Dst: std::unique_ptr<GDALRelationship>::SetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1982,1
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1982,1
    - Dst: std::unique_ptr<GDALRelationship>::SetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1983,1
    - Dst: std::unique_ptr<GDALRelationship>::SetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1984,1
    - Dst: BuildXMLRelationshipDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1988,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1989,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1990,1
    - Dst: BuildXMLRelationshipItemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1996,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1996,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:1997,1
    - Dst: BuildXMLRelationshipDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2003,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2003,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2004,1
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2010,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2010,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2012,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2012,1
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2018,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2018,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2020,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2020,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2026,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2027,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2028,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2029,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2030,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2031,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2032,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2033,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2034,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2035,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2036,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2037,1
    - Dst: FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2039,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2041,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2041,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2042,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2043,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2043,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2045,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2046,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2046,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2048,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2048,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2049,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2065,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2066,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2066,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2068,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2068,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2069,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2069,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2072,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2072,1
    - Dst: OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2075,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2079,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 2
    argNames:
    - relationship
    - failureReason
    argTypes:
    - std::unique_ptr<GDALRelationship>
    - std::string
    constantsTouched: []
    func_position:
      end: 2082
      start: 1884
    functionDepth: 4
    functionLinenumber: 1884
    functionLinenumberEnd: 2082
    functionName: OGROpenFileGDBDataSource::AddRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - BuildXMLRelationshipItemInfo
    - CPLString::toupper
    - std::unique_ptr<GDALRelationship>::GetLeftTableName
    - CPLError
    - OGROpenFileGDBDataSource::GetLayerByName
    - std::string::c_str
    - FileGDBTable::Sync
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - std::string::empty
    - OGROpenFileGDBDataSource::FindUUIDFromName
    - FETCH_FIELD_IDX
    - std::unique_ptr<GDALRelationship>::SetLeftMappingTableFields
    - std::unique_ptr<GDALRelationship>::GetRightTableName
    - std::unique_ptr<GDALRelationship>::GetCardinality
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - CPLString::c_str
    - std::unique_ptr<GDALRelationship>::SetRightMappingTableFields
    - std::unique_ptr<GDALRelationship>::GetName
    - OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships
    - std::move
    - BuildXMLRelationshipDef
    - FileGDBTable::GetFieldCount
    - FileGDBTable::CreateFeature
    - OGROpenFileGDBDataSource::ICreateLayer
    - c_str
    - OGRLayer*::CreateField
    - OFGDBGenerateUUID
    - CPLStringList::SetNameValue
    - auto::GetFIDColumn
    - std::unique_ptr<GDALRelationship>::get
    - const_cast<char *>
    - OGROpenFileGDBDataSource::FlushCache
    - OGROpenFileGDBDataSource::GetRelationship
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - std::unique_ptr<GDALRelationship>::GetMappingTableName
    - std::unique_ptr<GDALRelationship>::SetMappingTableName
    - BuildXMLRelationshipDocumentation
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::AddRelationship(\n    std::unique_ptr<GDALRelationship>
      &&relationship,\n    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2093,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2098,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2105,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2105,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2108,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2109,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2110,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2112,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2115,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2120,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2125,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2126,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2126,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2131,1
    - Dst: FileGDBTable::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2135,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2135,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2145,1
    - Dst: OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2151,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2158,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - name
    - failureReason
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 2160
      start: 2088
    functionDepth: 2
    functionLinenumber: 2088
    functionLinenumberEnd: 2160
    functionName: OGROpenFileGDBDataSource::DeleteRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBTable::GetFieldValue
    - FileGDBTable::DeleteFeature
    - std::string::empty
    - c_str
    - erase
    - FETCH_FIELD_IDX_WITH_RET
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - EQUAL
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - strcmp
    - OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships
    - CPLError
    - std::string::c_str
    - FileGDBTable::Sync
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::DeleteRelationship(const std::string
      &name,\n                                                  std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2173,1
    - Dst: OGROpenFileGDBDataSource::GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2178,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2184,1
    - Dst: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2191,1
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2195,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2195,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2197,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2197,1
    - Dst: OGROpenFileGDBDataSource::FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2203,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2203,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2205,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2205,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2212,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2212,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2213,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2223,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2226,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2229,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2229,1
    - Dst: auto::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2232,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2235,1
    - Dst: BuildXMLRelationshipDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2242,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2243,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2244,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2249,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2250,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2251,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2252,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2253,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2258,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2261,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2264,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2267,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2268,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2270,1
    - Dst: FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2276,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2278,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2279,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2281,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2283,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2283,1
    - Dst: std::unique_ptr<GDALRelationship>::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2285,1
    - Dst: FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2303,1
    - Dst: FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2311,1
    - Dst: OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2322,1
    - Dst: OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2328,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2336,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 94
    argCount: 2
    argNames:
    - relationship
    - failureReason
    argTypes:
    - std::unique_ptr<GDALRelationship>
    - std::string
    constantsTouched: []
    func_position:
      end: 2339
      start: 2166
    functionDepth: 4
    functionLinenumber: 2166
    functionLinenumberEnd: 2339
    functionName: OGROpenFileGDBDataSource::UpdateRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALRelationship>::GetLeftTableName
    - CPLError
    - FileGDBTable::GetAllFieldValues
    - OGROpenFileGDBDataSource::GetLayerByName
    - std::string::c_str
    - FileGDBTable::Sync
    - OGROpenFileGDBDataSource::FindUUIDFromName
    - std::string::empty
    - CPLStrdup
    - std::unique_ptr<GDALRelationship>::GetRightTableName
    - std::unique_ptr<GDALRelationship>::GetCardinality
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - OGROpenFileGDBDataSource::RegisterRelationshipInItemRelationships
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::unique_ptr<GDALRelationship>::GetName
    - OGROpenFileGDBDataSource::RemoveRelationshipFromItemRelationships
    - std::move
    - BuildXMLRelationshipDef
    - FileGDBTable::GetFieldValue
    - c_str
    - FETCH_FIELD_IDX_WITH_RET
    - OGR_RawField_IsNull
    - CPLFree
    - auto::GetFIDColumn
    - std::unique_ptr<GDALRelationship>::get
    - FileGDBTable::FreeAllFieldValues
    - OGROpenFileGDBDataSource::GetRelationship
    - OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    - EQUAL
    - std::unique_ptr<GDALRelationship>::GetMappingTableName
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::UpdateRelationship(\n    std::unique_ptr<GDALRelationship>
      &&relationship,\n    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2349,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2359,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2364,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2365,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2367,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2369,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2375,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2378,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2380,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2387
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2387
    functionName: OGROpenFileGDBDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIStatL
    - VSIMkdir
    - CPLError
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBDataSource::StartTransaction(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2402,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2403,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2403,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2404,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2407,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2408,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2410,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2410,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2411,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2411,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2411,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2414,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2423
    functionName: OGROpenFileGDBDataSource::BackupSystemTablesForTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 8
    functionsReached:
    - c_str
    - CPLCopyFile
    - std::string::size
    - CPLGetBasenameSafe
    - CSLDestroy
    - std::string::compare
    - strlen
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::BackupSystemTablesForTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2433,1
    - Dst: CommitEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2438,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2440,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2440,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2444,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2448
    functionName: OGROpenFileGDBDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CommitEmulatedTransaction
    - CPLError
    - VSIRmdirRecursive
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2469,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2472,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2478,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2479,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2479,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2480,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2483,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2484,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2485,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2486,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2487,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2487,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2488,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2494,1
    - Dst: RollbackEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2499,1
    - Dst: RollbackEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2501,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2507,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2507,1
    - Dst: OGROpenFileGDBDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2508,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2514,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2517,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2518,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2519,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2519,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2522,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2527,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2527,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2529,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2535,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2540,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2543,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2548,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp:2549,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2552
    functionName: OGROpenFileGDBDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - std::string::size
    - CPLGetBasenameSafe
    - VSIUnlink
    - CSLDestroy
    - std::string::compare
    - OGROpenFileGDBDataSource::Close
    - strlen
    - GetFilename
    - CPLError
    - VSIRmdirRecursive
    - std::string::c_str
    - CPLFormFilenameSafe
    - RollbackEmulatedTransaction
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:27,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:27,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:28,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:32,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:32,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:36,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:36,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:42,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:42,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:49,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:49,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:56,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:56,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:64,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:64,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:71,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:71,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:78,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:78,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:84,1
    - Dst: GDBToOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:93,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:99,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:102,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:112,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:115,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:115,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:116,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:116,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:117,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:120,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:122,1
    - Dst: OGRCodedFieldDomain::OGRCodedFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:120,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:124,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:129,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:138,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:139,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:142,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:143,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:147,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:148,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:152,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:153,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:159,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:165,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:170,1
    - Dst: OGRRangeFieldDomain::OGRRangeFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:183,1
    - Dst: std::unique_ptr::SetMergePolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:187,1
    - Dst: std::unique_ptr::SetMergePolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:189,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:191,1
    - Dst: std::unique_ptr::SetMergePolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:193,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:198,1
    - Dst: std::unique_ptr::SetSplitPolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:202,1
    - Dst: std::unique_ptr::SetSplitPolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:206,1
    - Dst: std::unique_ptr::SetSplitPolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:208,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 110
    argCount: 1
    argNames:
    - domainDef
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 212
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 212
    functionName: ParseXMLFieldDomainDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h
    functionUses: 1
    functionsReached:
    - atoi
    - OGRParseXMLDateTime
    - OGR_RawField_SetUnset
    - std::vector::emplace_back
    - strcmp
    - OGRCodedFieldDomain::OGRCodedFieldDomain
    - CPLXMLTreeCloser::get
    - CPLGetXMLValue
    - CPLError
    - std::string::c_str
    - CPLStrdup
    - CPLAtoGIntBig
    - std::move
    - OGRRangeFieldDomain::OGRRangeFieldDomain
    - std::unique_ptr::SetSplitPolicy
    - std::unique_ptr::reset
    - std::unique_ptr::SetMergePolicy
    - CPLAtof
    - CPLParseXMLString
    - CPLGetXMLNode
    - GDBToOGRFieldType
    - EQUAL
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDomain>
    signature: std::unique_ptr<OGRFieldDomain> ParseXMLFieldDomainDef(const std::string
      &domainDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDomain*::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:226,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:244,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:251,1
    - Dst: OGRFieldDomain*::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:253,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:257,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:266,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:275,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:279,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:281,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:283,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:283,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:286,1
    - Dst: OGRFieldDomain*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:287,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:288,1
    - Dst: OGRFieldDomain*::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:290,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:291,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:294,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:297,1
    - Dst: OGRFieldDomain*::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:299,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:300,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:303,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:306,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:308,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:310,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:312,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:317,1
    - Dst: OGRFieldDomain*::GetMergePolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:320,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:323,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:327,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:331,1
    - Dst: OGRFieldDomain*::GetSplitPolicy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:336,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:339,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:343,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:347,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:352,1
    - Dst: OGRFieldDomain*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:353,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:354,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:358,1
    - Dst: OGRFieldDomain*::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:360,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:361,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:363,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:365,1
    - Dst: OGRFieldDomain*::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:367,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:368,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:370,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:372,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:374,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:376,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:378,1
    - Dst: OGRFieldDomain*::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:382,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:387,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:388,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:389,1
    - Dst: cpl::down_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:392,1
    - Dst: auto::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:394,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:398,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:399,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:400,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:401,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:406,1
    - Dst: AddFieldTypeAsXSIType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:407,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:408,1
    - Dst: cpl::down_cast<const OGRRangeFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:416,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:422,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:425,1
    - Dst: AddFieldTypeAsXSIType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:426,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:427,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:429,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:430,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:432,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:434,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:435,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:437,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:439,1
    - Dst: OGRFieldDomain*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:441,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:443,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:445,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:450,1
    - Dst: auto::GetMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:456,1
    - Dst: SerializeMinOrMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:457,1
    - Dst: auto::GetMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:460,1
    - Dst: SerializeMinOrMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:461,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:468,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h:475,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 136
    argCount: 3
    argNames:
    - poDomain
    - bForFileGDBSDK
    - failureReason
    argTypes:
    - OGRFieldDomain*
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 477
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 477
    functionName: BuildXMLFieldDomainDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h
    functionUses: 2
    functionsReached:
    - cpl::down_cast<const OGRRangeFieldDomain *>
    - SerializeMinOrMax
    - CPLXMLTreeCloser::get
    - auto::GetEnumeration
    - OGRFieldDomain*::GetDescription
    - cpl::down_cast<const OGRCodedFieldDomain *>
    - CPLCreateXMLElementAndValue
    - OGRFieldDomain*::GetFieldSubType
    - OGRFieldDomain*::GetDomainType
    - OGRFieldDomain*::GetName
    - c_str
    - static_cast<int>
    - CPLSPrintf
    - CPLAssert
    - auto::GetMin
    - CPLFree
    - CPLAddXMLAttributeAndValue
    - OGRFieldDomain*::GetMergePolicy
    - auto::GetMax
    - CPLCreateXMLNode
    - AddFieldTypeAsXSIType
    - OGRFieldDomain*::GetFieldType
    - std::string
    - OGR_RawField_IsUnset
    - OGRFieldDomain*::GetSplitPolicy
    linkageType: ''
    returnType: std::string
    signature: "std::string BuildXMLFieldDomainDef(const OGRFieldDomain *poDomain,\n
      \                                         bool bForFileGDBSDK,\n                                          std::string
      &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: OpenFileGDB::FileGDBField::FileGDBField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBField(const FileGDBField &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: '&operator=(const FileGDBField &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBField
    signature: FileGDBField &operator=(const FileGDBField &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poParent
    argTypes:
    - FileGDBTable*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: OpenFileGDB::FileGDBField::SetParent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetParent(FileGDBTable *poParent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '&GetName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: '&GetAlias() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetAlias() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: OpenFileGDB::FileGDBField::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBFieldType
    signature: FileGDBFieldType GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: OpenFileGDB::FileGDBField::IsNullable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNullable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: OpenFileGDB::FileGDBField::IsRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsRequired() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: OpenFileGDB::FileGDBField::IsEditable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEditable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: OpenFileGDB::FileGDBField::GetMaxWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: OpenFileGDB::FileGDBField::GetDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRField
    signature: OGRField *GetDefault() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: OpenFileGDB::FileGDBField::SetHighPrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHighPrecision()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: OpenFileGDB::FileGDBField::IsHighPrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsHighPrecision() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: '&GetWKT() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetWKT() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: OpenFileGDB::FileGDBGeomField::GetXMin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXMin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: OpenFileGDB::FileGDBGeomField::GetYMin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetYMin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: OpenFileGDB::FileGDBGeomField::GetZMin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetZMin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: OpenFileGDB::FileGDBGeomField::GetMMin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetMMin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: OpenFileGDB::FileGDBGeomField::GetXMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXMax() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: OpenFileGDB::FileGDBGeomField::GetYMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetYMax() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: OpenFileGDB::FileGDBGeomField::GetZMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetZMax() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: OpenFileGDB::FileGDBGeomField::GetMMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetMMax() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: OpenFileGDB::FileGDBGeomField::HasZOriginScaleTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasZOriginScaleTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: OpenFileGDB::FileGDBGeomField::HasMOriginScaleTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasMOriginScaleTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: OpenFileGDB::FileGDBGeomField::GetXOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: OpenFileGDB::FileGDBGeomField::GetYOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetYOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: OpenFileGDB::FileGDBGeomField::GetXYScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXYScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: OpenFileGDB::FileGDBGeomField::GetXYTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXYTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: OpenFileGDB::FileGDBGeomField::GetZOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetZOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: OpenFileGDB::FileGDBGeomField::GetZScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetZScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: OpenFileGDB::FileGDBGeomField::GetZTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetZTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: OpenFileGDB::FileGDBGeomField::GetMOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetMOrigin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: OpenFileGDB::FileGDBGeomField::GetMScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetMScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: OpenFileGDB::FileGDBGeomField::GetMTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetMTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: '&GetSpatialIndexGridResolution() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> &GetSpatialIndexGridResolution() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: OpenFileGDB::FileGDBRasterField::FileGDBRasterField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBRasterField(const FileGDBRasterField &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: '&operator=(const FileGDBRasterField &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBRasterField
    signature: FileGDBRasterField &operator=(const FileGDBRasterField &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poParentIn
    argTypes:
    - FileGDBTable*
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: OpenFileGDB::FileGDBRasterField::FileGDBRasterField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBRasterField(FileGDBTable *poParentIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: '&GetRasterColumnName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetRasterColumnName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: OpenFileGDB::FileGDBRasterField::GetRasterType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type GetRasterType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: OpenFileGDB::FileGDBIndex::FileGDBIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: '&GetIndexName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetIndexName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: '&GetExpression() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetExpression() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 545
    functionName: OpenFileGDB::FileGDBTable::WholeFileRewriter::WholeFileRewriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WholeFileRewriter(const WholeFileRewriter &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 546
    functionName: '&operator=(const WholeFileRewriter &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WholeFileRewriter
    signature: WholeFileRewriter &operator=(const WholeFileRewriter &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - oTable
    argTypes:
    - FileGDBTable
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: OpenFileGDB::FileGDBTable::WholeFileRewriter::WholeFileRewriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WholeFileRewriter(FileGDBTable &oTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 590
    functionName: OpenFileGDB::FileGDBTable::FileGDBTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBTable(const FileGDBTable &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: '&operator=(const FileGDBTable &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable &operator=(const FileGDBTable &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: OpenFileGDB::FileGDBTable::IsFileGDBV9
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFileGDBV9() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: '&GetFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: OpenFileGDB::FileGDBTable::GetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTableGeometryType
    signature: FileGDBTableGeometryType GetGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: OpenFileGDB::FileGDBTable::GetGeomTypeHasZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetGeomTypeHasZ() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: OpenFileGDB::FileGDBTable::GetGeomTypeHasM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetGeomTypeHasM() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: OpenFileGDB::FileGDBTable::GetValidRecordCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetValidRecordCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: OpenFileGDB::FileGDBTable::GetTotalRecordCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetTotalRecordCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:649,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: OpenFileGDB::FileGDBTable::GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: OpenFileGDB::FileGDBTable::GetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: FileGDBField
    signature: FileGDBField *GetField(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 660
    functionName: OpenFileGDB::FileGDBTable::GetGeomFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldIdx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:664,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 667
    functionName: OpenFileGDB::FileGDBTable::GetGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached:
    - get
    - cpl::down_cast<FileGDBGeomField *>
    linkageType: ''
    returnType: FileGDBGeomField
    signature: FileGDBGeomField *GetGeomField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: OpenFileGDB::FileGDBTable::GetObjectIdFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetObjectIdFieldIdx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: OpenFileGDB::FileGDBTable::GetIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: FileGDBIndex
    signature: FileGDBIndex *GetIndex(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: OpenFileGDB::FileGDBTable::CanUseIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanUseIndices() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: OpenFileGDB::FileGDBTable::HasDeletedFeaturesListed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasDeletedFeaturesListed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: OpenFileGDB::FileGDBTable::HasGotError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasGotError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 720
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 720
    functionName: OpenFileGDB::FileGDBTable::GetCurRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetCurRow() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: OpenFileGDB::FileGDBTable::IsCurRowDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsCurRowDeleted() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: '&GetSpatialIndexGridResolution() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> &GetSpatialIndexGridResolution() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 786
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 786
    functionName: ~FileGDBIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FileGDBIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: FileGDBGeomField::~FileGDBGeomField()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBGeomField::~FileGDBGeomField()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: FileGDBRasterField::~FileGDBRasterField()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBRasterField::~FileGDBRasterField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: OpenFileGDB::SanitizeScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - simple_min
    linkageType: ''
    returnType: double
    signature: double SanitizeScale(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFile
    - nLineNumber
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: OpenFileGDB::FileGDBTablePrintError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void FileGDBTablePrintError(const char *pszFile, int nLineNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: OpenFileGDB::FileGDBTable::FileGDBTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::FileGDBTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: FileGDBTable::~FileGDBTable()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::~FileGDBTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:113,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:116,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: OpenFileGDB::FileGDBTable::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBTable::Sync
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:130,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:132,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: OpenFileGDB::FileGDBTable::GetFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 2
    functionsReached:
    - size
    - static_cast<int>
    - GetName
    linkageType: ''
    returnType: int
    signature: int FileGDBTable::GetFieldIdx(const std::string &osName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:152,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:177,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:195,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nOutVal
    argTypes:
    - GByte*
    - GByte*
    - OutType
    constantsTouched: []
    func_position:
      end: 202
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 202
    functionName: OpenFileGDB::ReadVarUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - returnErrorIf
    - static_cast<int>
    - returnError
    linkageType: ''
    returnType: int
    signature: int ReadVarUInt(GByte *&pabyIter, GByte *pabyEnd, OutType &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::ReadVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nOutVal
    argTypes:
    - GByte*
    - GByte*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: OpenFileGDB::ReadVarUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::ReadVarUInt
    linkageType: ''
    returnType: int
    signature: int ReadVarUInt32(GByte *&pabyIter, GByte *pabyEnd, GUInt32 &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::ReadVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyIter
    - nOutVal
    argTypes:
    - GByte*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: OpenFileGDB::ReadVarUInt32NoCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::ReadVarUInt
    linkageType: ''
    returnType: void
    signature: void ReadVarUInt32NoCheck(GByte *&pabyIter, GUInt32 &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::ReadVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyIter
    - pabyEnd
    - nOutVal
    argTypes:
    - GByte*
    - GByte*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: OpenFileGDB::ReadVarUInt32Silent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::ReadVarUInt
    linkageType: ''
    returnType: int
    signature: "int ReadVarUInt32Silent(GByte *&pabyIter, GByte *pabyEnd,\n                               GUInt32
      &nOutVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::ReadVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyIter
    - nOutVal
    argTypes:
    - GByte*
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: OpenFileGDB::ReadVarUInt64NoCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::ReadVarUInt
    linkageType: ''
    returnType: void
    signature: void ReadVarUInt64NoCheck(GByte *&pabyIter, GUIntBig &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:260,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:262,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:265,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:266,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:276,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:276,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:278,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:292,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:293,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:297,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:301,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:301,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:307,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:307,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:314,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:314,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:327,1
    - Dst: cpl::down_cast<const FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:346,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:347,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:348,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:389,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:389,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:396,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:396,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:409,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:418,1
    - Dst: ReadVarUInt32Silent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:420,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:421,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:423,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:426,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:426,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:434,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:434,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:444,1
    - Dst: ReadVarUInt32Silent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:446,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:447,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:449,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:452,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:452,1
    - Dst: cpl::down_cast<const FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:462,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:463,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:464,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:469,1
    - Dst: ReadVarUInt32Silent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:471,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:472,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:474,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:478,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:478,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 175
    argCount: 3
    argNames:
    - nOffset
    - pnSize
    - pbDeletedRecord
    argTypes:
    - vsi_l_offset
    - GUInt32*
    - int*
    constantsTouched: []
    func_position:
      end: 521
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 521
    functionName: OpenFileGDB::FileGDBTable::IsLikelyFeatureAtOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - static_cast<GUInt32>
    - FileGDBRasterField*::GetRasterType
    - ReadVarUInt32Silent
    - reinterpret_cast<const char *>
    - VSIFSeekL
    - get
    - cpl::down_cast<const FileGDBRasterField *>
    - max
    - CPLAssert
    - CPLIsUTF8
    - VSIFReadL
    - CPLError
    - resize
    - what
    - data
    - GetUInt32
    linkageType: ''
    returnType: int
    signature: "int FileGDBTable::IsLikelyFeatureAtOffset(vsi_l_offset nOffset, GUInt32
      *pnSize,\n                                          int *pbDeletedRecord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:533,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:534,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:545,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:546,1
    - Dst: IS_VALID_LAYER_GEOM_TYPE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:552,1
    - Dst: OpenFileGDB::FileGDBTable::IsLikelyFeatureAtOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:570,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:583,1
    - Dst: MARK_DELETED
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:583,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:588,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:592,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:599,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:603,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:608,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 620
    functionName: OpenFileGDB::FileGDBTable::GuessFeatureLocations
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - size
    - MARK_DELETED
    - VSIFSeekL
    - IS_VALID_LAYER_GEOM_TYPE
    - VSIFTellL
    - VSIFReadL
    - push_back
    - CPLError
    - static_cast<int64_t>
    - OpenFileGDB::FileGDBTable::IsLikelyFeatureAtOffset
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::GuessFeatureLocations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:632,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:632,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:637,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:639,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:643,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:645,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:647,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:649,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:651,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:652,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:656,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:661,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:662,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:662,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:664,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:666,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:667,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:669,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:670,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:676,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:681,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:681,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:684,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:685,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:692,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:696,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:697,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:700,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:700,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:700,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:707,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:707,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:708,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 712
    functionName: OpenFileGDB::FileGDBTable::ReadTableXHeaderV3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - TEST_BIT
    - static_cast<vsi_l_offset>
    - c_str
    - static_cast<int>
    - static_cast<GUInt32>
    - GetInt32
    - VSIFSeekL
    - CPLDebug
    - VSIFReadL
    - CPLError
    - returnErrorIf
    - resize
    - what
    - data
    - GetUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::ReadTableXHeaderV3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:724,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:724,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:727,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:729,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:731,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:735,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:737,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:738,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:740,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:741,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:746,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:751,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:752,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:752,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:754,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:758,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:769,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:769,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:769,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:770,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:772,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:772,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:774,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:774,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:778,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:779,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:779,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:780,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:789,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:801,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 809
    functionName: OpenFileGDB::FileGDBTable::ReadTableXHeaderV4
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - GetUInt64
    - static_cast<vsi_l_offset>
    - std::vector::data
    - static_cast<int>
    - end
    - c_str
    - std::vector::size
    - insert
    - VSIFSeekL
    - memcmp
    - VSIFReadL
    - CPLError
    - returnErrorIf
    - what
    - GetUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::ReadTableXHeaderV4()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:819,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:826,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:828,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:831,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:832,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:832,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:838,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:858,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:866,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:867,1
    - Dst: GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:871,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:872,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:875,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:879,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:879,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:882,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:883,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:884,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:885,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:885,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:890,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:891,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:891,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:898,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:903,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:905,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:907,1
    - Dst: OpenFileGDB::FileGDBTable::ReadTableXHeaderV3
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:911,1
    - Dst: OpenFileGDB::FileGDBTable::ReadTableXHeaderV4
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:914,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:922,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:922,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:926,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:929,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:936,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:950,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:951,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:959,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:967,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:972,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:979,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:980,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:984,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:985,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:985,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:986,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:988,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:994,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1002,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1003,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1005,1
    - Dst: IS_VALID_LAYER_GEOM_TYPE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1008,1
    - Dst: static_cast<FileGDBTableGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1010,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1012,1
    - Dst: GetUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1020,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1023,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1029,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1033,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1033,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1034,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1036,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1036,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1036,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1038,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1041,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1046,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1051,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1055,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1060,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1067,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1068,1
    - Dst: static_cast<FileGDBFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1071,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1082,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1083,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1084,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1089,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1089,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1092,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1101,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1108,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1117,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1122,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1129,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1130,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1131,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1137,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1139,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1139,1
    - Dst: GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1144,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1150,1
    - Dst: GetFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1156,1
    - Dst: GetFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1160,1
    - Dst: FileGDBDoubleDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1166,1
    - Dst: FileGDBDoubleTimeToOGRTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1171,1
    - Dst: GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1175,1
    - Dst: FileGDBDateTimeWithOffsetToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1185,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1196,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1197,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1198,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1198,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1201,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1202,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1203,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1210,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1210,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1219,1
    - Dst: FileGDBGeomField::FileGDBGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1220,1
    - Dst: FileGDBRasterField::FileGDBRasterField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1224,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1228,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1229,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1232,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1232,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1233,1
    - Dst: std::unique_ptr<FileGDBGeomField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1234,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1236,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1244,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1248,1
    - Dst: "nRemaining <\n                              static_cast<GUInt32>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1248,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1251,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1256,1
    - Dst: GetUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1257,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1261,1
    - Dst: nRemaining < static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1261,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1262,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1274,1
    - Dst: "nRemaining <\n                              static_cast<GUInt32>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1274,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1290,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1291,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1292,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1293,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1297,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1298,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1303,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1304,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1307,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1311,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1313,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1322,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1328,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1340,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1348,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1350,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1350,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1351,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1352,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1353,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1354,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1357,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1358,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1362,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1364,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1367,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1369,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1372,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1374,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1377,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1379,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1381,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1385,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1386,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1387,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1392,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1393,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1394,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1397,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1402,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1405,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1406,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1408,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1408,1
    - Dst: READ_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1412,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1413,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1421,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1421,1
    - Dst: BIT_ARRAY_SIZE_IN_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1424,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1429,1
    - Dst: OpenFileGDB::FileGDBTable::GuessFeatureLocations
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1436,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 339
    argCount: 3
    argNames:
    - pszFilename
    - bUpdate
    - pszLayerName
    argTypes:
    - char*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 1439
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 1439
    functionName: OpenFileGDB::FileGDBTable::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - FileGDBDoubleTimeToOGRTime
    - std::unique_ptr<FileGDBGeomField>
    - ReadUTF16String
    - OGR_RawField_SetUnset
    - CPLDebug
    - nRemaining < static_cast<GUInt32>
    - OpenFileGDB::FileGDBTable::ReadTableXHeaderV3
    - VSIFTellL
    - static_cast<uint32_t>
    - CPLError
    - OpenFileGDB::FileGDBTable::ReadTableXHeaderV4
    - std::string::c_str
    - CPLGetConfigOption
    - simple_max
    - CPLStrdup
    - static_cast<FileGDBTableGeometryType>
    - FileGDBGeomField::FileGDBGeomField
    - OpenFileGDB::FileGDBTable::GuessFeatureLocations
    - fprintf
    - std::move
    - returnError
    - GetUInt16
    - resize
    - CPLMalloc
    - FileGDBDoubleDateToOGRDate
    - emplace_back
    - GetUInt32
    - GetUInt64
    - c_str
    - CPLTestBool
    - static_cast<GUInt32>
    - static_cast<int>
    - std::make_unique<FileGDBField>
    - BIT_ARRAY_SIZE_IN_BYTES
    - GetInt32
    - VSIFSeekL
    - CPLSPrintf
    - "nRemaining <\n                              static_cast<GUInt32>"
    - VSIFOpenL
    - CPLAssert
    - VSIFReadL
    - static_cast<char *>
    - READ_DOUBLE
    - FileGDBDateTimeWithOffsetToOGRDate
    - CPLFormFilenameSafe
    - VSIStrerror
    - what
    - data
    - size
    - back
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - static_cast<FileGDBFieldType>
    - ReadVarUInt32
    - GetInt64
    - FileGDBRasterField::FileGDBRasterField
    - IS_VALID_LAYER_GEOM_TYPE
    - push_back
    - GetFloat32
    - returnErrorIf
    - GetInt16
    - memcpy
    - GetFloat64
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::Open(const char *pszFilename, bool bUpdate,\n                        const
      char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pabyIter
    - pabyEnd
    argTypes:
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 1463
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1463
    functionName: OpenFileGDB::SkipVarUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - returnErrorIf
    linkageType: ''
    returnType: int
    signature: int SkipVarUInt(GByte *&pabyIter, GByte *pabyEnd, int nIter = 1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - pabyIter
    - nOutVal
    argTypes:
    - GByte*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1512
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1512
    functionName: OpenFileGDB::ReadVarIntAndAddNoCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW ReadVarIntAndAddNoCheck(GByte
      *&pabyIter, GIntBig &nOutVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1525,1
    - Dst: IS_DELETED
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1531,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1531,1
    - Dst: GET_OFFSET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1532,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1532,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1536,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1542,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1542,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1552,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1552,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1559,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1559,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1566,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1571,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1576,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1579,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1580,1
    - Dst: OpenFileGDB::FileGDBTable::ReadFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1582,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1588,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1591,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - iRow
    - pnOffsetInTableX
    argTypes:
    - int64_t
    - vsi_l_offset*
    constantsTouched: []
    func_position:
      end: 1595
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1595
    functionName: OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - GET_OFFSET
    - TEST_BIT
    - static_cast<size_t>
    - static_cast<vsi_l_offset>
    - c_str
    - empty
    - VSIFSeekL
    - CPLDebug
    - IS_DELETED
    - OpenFileGDB::FileGDBTable::ReadFeatureOffset
    - VSIFReadL
    - returnErrorIf
    - data
    linkageType: ''
    returnType: vsi_l_offset
    signature: "vsi_l_offset FileGDBTable::GetOffsetInTableForRow(int64_t iRow,\n
      \                                    vsi_l_offset *pnOffsetInTableX)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1604,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pabyBuffer
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 1607
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1607
    functionName: OpenFileGDB::FileGDBTable::ReadFeatureOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FileGDBTable::ReadFeatureOffset(const GByte *pabyBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1616,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1621,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1624,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1624,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1632,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1632,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1634,1
    - Dst: OpenFileGDB::FileGDBTable::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1640,1
    - Dst: OpenFileGDB::FileGDBTable::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1642,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - iRow
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 1648
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1648
    functionName: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 4
    functionsReached:
    - TEST_BIT
    - empty
    - returnErrorAndCleanupIf
    - OpenFileGDB::FileGDBTable::SelectRow
    - static_cast<int64_t>
    - data
    - OpenFileGDB::FileGDBTable::HasGotError
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBTable::GetAndSelectNextNonEmptyRow(int64_t iRow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1657,1
    - Dst: OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1662,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1669,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1671,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1671,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1674,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1678,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1678,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1685,1
    - Dst: "m_nRowBlobLength <\n                        static_cast<GUInt32>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1686,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1693,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1697,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1717,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1729,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1734,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1744,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1745,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1754,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1762,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1778,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1779,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1780,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1784,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1794,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1799,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1804,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1804,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1805,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1809,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1809,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1809,1
    - Dst: CPL_STATIC_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1814,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1823,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 1
    argNames:
    - iRow
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 1830
      start: 1654
    functionDepth: 2
    functionLinenumber: 1654
    functionLinenumberEnd: 1830
    functionName: OpenFileGDB::FileGDBTable::SelectRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - VSIFTellL
    - CPLError
    - CPLGetConfigOption
    - resize
    - GetUInt32
    - CPLTestBool
    - static_cast<int>
    - static_cast<GUInt32>
    - c_str
    - VSIFSeekL
    - "m_nRowBlobLength <\n                        static_cast<GUInt32>"
    - VSIFReadL
    - OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
    - returnErrorAndCleanupIf
    - what
    - CPL_STATIC_ASSERT
    - data
    - size
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::SelectRow(int64_t iRow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1841,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1843,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1843,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1845,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1847,1
    - Dst: std::floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1852,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1853,1
    - Dst: std::floor
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1854,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1857,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1857,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1859,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1860,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1861,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1862,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1863,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1867,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - dfVal
    - bHighPrecision
    - psField
    argTypes:
    - double
    - bool
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1874
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1874
    functionName: OpenFileGDB::FileGDBDoubleDateToOGRDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - simple_max
    - static_cast<GIntBig>
    - static_cast<float>
    - fmod
    - static_cast<GInt16>
    - static_cast<GByte>
    - CPLUnixTimeToYMDHMS
    - std::floor
    - CPLError
    - std::isnan
    - simple_min
    linkageType: ''
    returnType: int
    signature: "int FileGDBDoubleDateToOGRDate(double dfVal, bool bHighPrecision,\n
      \                              OGRField *psField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1883,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1885,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1893,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1895,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1895,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1896,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dfVal
    - psField
    argTypes:
    - double
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1901
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1901
    functionName: OpenFileGDB::FileGDBDoubleTimeToOGRTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<float>
    - fmod
    - static_cast<GByte>
    - CPLError
    - std::isnan
    linkageType: ''
    returnType: int
    signature: int FileGDBDoubleTimeToOGRTime(double dfVal, OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dfVal
    - nUTCOffset
    - psField
    argTypes:
    - double
    - int16_t
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1918
    functionName: OpenFileGDB::FileGDBDateTimeWithOffsetToOGRDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    linkageType: ''
    returnType: int
    signature: "int FileGDBDateTimeWithOffsetToOGRDate(double dfVal, int16_t nUTCOffset,\n
      \                                      OGRField *psField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1926,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1928,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1928,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1930,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1931,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1932,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1933,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1934,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1935,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1936,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1938,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1940,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1941,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1942,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1943,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1946,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1946,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1948,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1951,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1957
    functionName: OpenFileGDB::FileGDBTable::GetAllFieldValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGR_RawField_IsUnset
    - static_cast<int>
    - CPLStrdup
    - OpenFileGDB::FileGDBTable::GetFieldValue
    - GetType
    - CPLMalloc
    - static_cast<GByte *>
    - OGR_RawField_IsNull
    - memcpy
    linkageType: ''
    returnType: std::vector<OGRField>
    signature: std::vector<OGRField> FileGDBTable::GetAllFieldValues()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1965,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1965,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1967,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1968,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1969,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1970,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1971,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1972,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1974,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1977,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1978,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1979,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1980,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1982,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 1
    argNames:
    - asFields
    argTypes:
    - std::vector<OGRField>
    constantsTouched: []
    func_position:
      end: 1986
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1986
    functionName: OpenFileGDB::FileGDBTable::FreeAllFieldValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGR_RawField_IsUnset
    - static_cast<int>
    - GetType
    - OGR_RawField_IsNull
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::FreeAllFieldValues(std::vector<OGRField> &asFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1996,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1997,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1997,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1997,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:1998,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2000,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2005,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2012,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2028,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2032,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2043,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2046,1
    - Dst: cpl::down_cast<const FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2054,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2055,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2056,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2061,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2064,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2099,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2102,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2122,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2132,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2135,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2137,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2140,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2146,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2158,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2174,1
    - Dst: GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2178,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2192,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2196,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2210,1
    - Dst: GetFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2214,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2228,1
    - Dst: GetFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2232,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2247,1
    - Dst: FileGDBDoubleDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2259,1
    - Dst: IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2260,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2273,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2276,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2278,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2281,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2286,1
    - Dst: cpl::down_cast<const FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2303,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2304,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2305,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2311,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2314,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2324,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2327,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2329,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2332,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2335,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2340,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2349,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2367,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2374,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2396,1
    - Dst: GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2400,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2414,1
    - Dst: FileGDBDoubleTimeToOGRTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2426,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2440,1
    - Dst: FileGDBDateTimeWithOffsetToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2455,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2464,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2464,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2467,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2468,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 265
    argCount: 1
    argNames:
    - iCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2472
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2472
    functionName: OpenFileGDB::FileGDBTable::GetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 4
    functionsReached:
    - FileGDBDoubleTimeToOGRTime
    - ReadUTF16String
    - CPLDebug
    - static_cast<GByte>
    - reinterpret_cast<char *>
    - cpl::down_cast<const FileGDBRasterField *>
    - returnError
    - FileGDBDoubleDateToOGRDate
    - IsHighPrecision
    - static_cast<int>
    - static_cast<GUInt32>
    - FileGDBRasterField*::GetRasterType
    - get
    - GetInt32
    - const_cast<GByte *>
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - snprintf
    - FileGDBDateTimeWithOffsetToOGRDate
    - data
    - size
    - ReadVarUInt32
    - GetInt64
    - GetFloat32
    - returnErrorIf
    - GetInt16
    - GetFloat64
    linkageType: ''
    returnType: OGRField
    signature: OGRField *FileGDBTable::GetFieldValue(int iCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2482,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2482,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2486,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2487,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2487,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2488,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2488,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2489,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2489,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2493,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2493,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2495,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2500,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2501,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2502,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2502,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2504,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2505,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2505,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2506,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2506,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2508,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2511,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2512,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2512,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2516,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2516,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2517,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2523,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2529,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2530,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2531,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2531,1
    - Dst: std::make_unique<FileGDBIndex>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2534,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2537,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2538,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2538,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2543,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2547,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2548,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2548,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2549,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2554,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2554,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2556,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2557,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2559,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2559,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2560,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2560,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2562,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2567,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2567,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2570,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2572,1
    - Dst: GetUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2574,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2582,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2582,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2583,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2586,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2593,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2593,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2594,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2594,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2596,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2600,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2600,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2602,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2612,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2612,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2614,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2615,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2617,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2617,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2618,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2618,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2620,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2626,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2626,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2628,1
    - Dst: std::make_unique<FileGDBIndex>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2631,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2632,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2636,1
    - Dst: auto::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2638,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2642,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2644,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2650,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2652,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2656,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2661,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2661,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2666,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2666,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2667
    functionName: OpenFileGDB::FileGDBTable::GetIndexCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 4
    functionsReached:
    - auto::GetFieldName
    - auto::get
    - CPLDebug
    - VSIFTellL
    - VSIStatExL
    - std::string::c_str
    - auto::c_str
    - std::move
    - returnError
    - GetUInt16
    - GetName
    - GetUInt32
    - c_str
    - static_cast<int>
    - VSIFSeekL
    - VSIFOpenL
    - returnErrorAndCleanupIf
    - static_cast<GByte *>
    - CPLFormFilenameSafe
    - std::make_unique<FileGDBIndex>
    - size
    - static_cast<size_t>
    - CPLGetPathSafe
    - VSIFCloseL
    - CPLGetBasenameSafe
    - CPLResetExtensionSafe
    - OpenFileGDB::FileGDBTable::GetFieldCount
    - VSIFree
    - push_back
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: int FileGDBTable::GetIndexCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2677,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2678,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2678,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2679,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2679,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2682,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2673
    functionDepth: 1
    functionLinenumber: 2673
    functionLinenumberEnd: 2685
    functionName: OpenFileGDB::FileGDBTable::HasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - std::string::c_str
    - VSIStatExL
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::HasSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2697,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2699,1
    - Dst: OpenFileGDB::FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2699,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2704,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2710,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2711,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2717,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2723,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - psFilterEnvelope
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2737
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2737
    functionName: OpenFileGDB::FileGDBTable::InstallFilterEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - static_cast<double>
    - cpl::down_cast<FileGDBGeomField *>
    - OpenFileGDB::FileGDBTable::GetField
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::InstallFilterEnvelope(const OGREnvelope *psFilterEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2753,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2754,1
    - Dst: OpenFileGDB::FileGDBTable::GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2755,1
    - Dst: auto::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2758,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2759,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2760,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2761,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2761,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2763,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2772,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2778,1
    - Dst: std::unique_ptr<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2790,1
    - Dst: OGRSpatialReference::CloneGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2790,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2791,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2792,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2792,1
    - Dst: auto::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2798,1
    - Dst: auto::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2804,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - dfYMin
    - dfYMax
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2807
      start: 2750
    functionDepth: 6
    functionLinenumber: 2750
    functionLinenumberEnd: 2807
    functionName: OpenFileGDB::FileGDBTable::GetMinMaxProjYForSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromWkt
    - OGRSpatialReference::IsProjected
    - std::unique_ptr<OGRSpatialReference>
    - auto::empty
    - std::unique_ptr<OGRCoordinateTransformation>
    - EQUAL
    - auto::get
    - auto::Transform
    - OGRSpatialReference::CloneGeogCS
    - OGRCreateCoordinateTransformation
    - auto::GetWKT
    - auto::c_str
    - OpenFileGDB::FileGDBTable::GetGeomField
    linkageType: ''
    returnType: void
    signature: "void FileGDBTable::GetMinMaxProjYForSpatialIndex(double &dfYMin,\n
      \                                                double &dfYMax) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2822,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2824,1
    - Dst: OpenFileGDB::FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2824,1
    - Dst: ReadVarUInt32NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2826,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2840,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2841,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2842,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2843,1
    - Dst: ReadVarUInt32NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2893,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2896,1
    - Dst: SkipVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2896,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2900,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2901,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2902,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2903,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2904,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2911,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2914,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 66
    argCount: 2
    argNames:
    - psField
    - psOutFeatureEnvelope
    argTypes:
    - OGRField*
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2918
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2918
    functionName: OpenFileGDB::FileGDBTable::GetFeatureExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<FileGDBGeomField *>
    - OpenFileGDB::FileGDBTable::GetField
    - ReadVarUInt32NoCheck
    - ReadVarUInt64NoCheck
    - CPLAssert
    - CPLUnsanitizedAdd
    - SkipVarUInt
    - returnErrorIf
    linkageType: ''
    returnType: int
    signature: "int FileGDBTable::GetFeatureExtent(const OGRField *psField,\n                                   OGREnvelope
      *psOutFeatureEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadVarUInt32NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2932,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2946,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2952,1
    - Dst: ReadVarUInt32NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:2998,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3001,1
    - Dst: SkipVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3001,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3005,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3006,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3009,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3012,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3013,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3015,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3016,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 3017
      start: 2924
    functionDepth: 1
    functionLinenumber: 2924
    functionLinenumberEnd: 3017
    functionName: OpenFileGDB::FileGDBTable::DoesGeometryIntersectsFilterEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - ReadVarUInt32NoCheck
    - ReadVarUInt64NoCheck
    - CPLUnsanitizedAdd
    - SkipVarUInt
    - returnErrorIf
    linkageType: ''
    returnType: int
    signature: int FileGDBTable::DoesGeometryIntersectsFilterEnvelope(const OGRField
      *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3023
    functionDepth: 1
    functionLinenumber: 3023
    functionLinenumberEnd: 3028
    functionName: OpenFileGDB::GetUnsetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_SetUnset
    linkageType: ''
    returnType: OGRField
    signature: OGRField GetUnsetField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poParentIn
    argTypes:
    - FileGDBTable*
    constantsTouched: []
    func_position:
      end: 3039
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3039
    functionName: OpenFileGDB::FileGDBField::FileGDBField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_SetUnset
    linkageType: ''
    returnType: void
    signature: void FileGDBField::FileGDBField(FileGDBTable *poParentIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3055,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3056,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3057,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3060,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3061,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 8
    argNames:
    - osName
    - osAlias
    - eType
    - bNullable
    - bRequired
    - bEditable
    - nMaxWidth
    - sDefault
    argTypes:
    - std::string
    - std::string
    - FileGDBFieldType
    - bool
    - bool
    - bool
    - int
    - OGRField
    constantsTouched: []
    func_position:
      end: 3069
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3069
    functionName: OpenFileGDB::FileGDBField::FileGDBField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_IsNull
    - CPLAssert
    - CPLStrdup
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: void
    signature: "void FileGDBField::FileGDBField(const std::string &osName,\n                           const
      std::string &osAlias, FileGDBFieldType eType,\n                           bool
      bNullable, bool bRequired, bool bEditable,\n                           int nMaxWidth,
      const OGRField &sDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3077,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3078,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3075
    functionDepth: 1
    functionLinenumber: 3075
    functionLinenumberEnd: 3080
    functionName: FileGDBField::~FileGDBField()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OGR_RawField_IsNull
    - OGR_RawField_IsUnset
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void FileGDBField::~FileGDBField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3086
    functionDepth: 0
    functionLinenumber: 3086
    functionLinenumberEnd: 3090
    functionName: OpenFileGDB::FileGDBField::HasIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - GetIndexCount
    linkageType: ''
    returnType: int
    signature: int FileGDBField::HasIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetIndexCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3100
    functionName: OpenFileGDB::FileGDBField::GetIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - GetIndexCount
    linkageType: ''
    returnType: FileGDBIndex
    signature: FileGDBIndex *FileGDBField::GetIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3106
    functionDepth: 0
    functionLinenumber: 3106
    functionLinenumberEnd: 3117
    functionName: OpenFileGDB::getESRI_NAN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: double
    signature: double getESRI_NAN()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poParentIn
    argTypes:
    - FileGDBTable*
    constantsTouched: []
    func_position:
      end: 3128
      start: 3125
    functionDepth: 0
    functionLinenumber: 3125
    functionLinenumberEnd: 3128
    functionName: OpenFileGDB::FileGDBGeomField::FileGDBGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBGeomField::FileGDBGeomField(FileGDBTable *poParentIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - osName
    - osAlias
    - bNullable
    - osWKT
    - dfXOrigin
    - dfYOrigin
    - dfXYScale
    - dfXYTolerance
    - adfSpatialIndexGridResolution
    argTypes:
    - std::string
    - std::string
    - bool
    - std::string
    - double
    - double
    - double
    - double
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 3146
      start: 3134
    functionDepth: 0
    functionLinenumber: 3134
    functionLinenumberEnd: 3146
    functionName: OpenFileGDB::FileGDBGeomField::FileGDBGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FileGDBGeomField::FileGDBGeomField(\n    const std::string &osName,
      const std::string &osAlias, bool bNullable,\n    const std::string &osWKT, double
      dfXOrigin, double dfYOrigin,\n    double dfXYScale, double dfXYTolerance,\n
      \   const std::vector<double> &adfSpatialIndexGridResolution)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3159
      start: 3152
    functionDepth: 0
    functionLinenumber: 3152
    functionLinenumberEnd: 3159
    functionName: OpenFileGDB::FileGDBGeomField::SetXYMinMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FileGDBGeomField::SetXYMinMax(double dfXMin, double dfYMin, double
      dfXMax,\n                                   double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfZMin
    - dfZMax
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3169
      start: 3165
    functionDepth: 0
    functionLinenumber: 3165
    functionLinenumberEnd: 3169
    functionName: OpenFileGDB::FileGDBGeomField::SetZMinMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBGeomField::SetZMinMax(double dfZMin, double dfZMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfMMin
    - dfMMax
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3179
      start: 3175
    functionDepth: 0
    functionLinenumber: 3175
    functionLinenumberEnd: 3179
    functionName: OpenFileGDB::FileGDBGeomField::SetMMinMax
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBGeomField::SetMMinMax(double dfMMin, double dfMMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dfZOrigin
    - dfZScale
    - dfZTolerance
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3193
      start: 3185
    functionDepth: 0
    functionLinenumber: 3185
    functionLinenumberEnd: 3193
    functionName: OpenFileGDB::FileGDBGeomField::SetZOriginScaleTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FileGDBGeomField::SetZOriginScaleTolerance(double dfZOrigin,\n
      \                                               double dfZScale,\n                                                double
      dfZTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dfMOrigin
    - dfMScale
    - dfMTolerance
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3207
      start: 3199
    functionDepth: 0
    functionLinenumber: 3199
    functionLinenumberEnd: 3207
    functionName: OpenFileGDB::FileGDBGeomField::SetMOriginScaleTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FileGDBGeomField::SetMOriginScaleTolerance(double dfMOrigin,\n
      \                                               double dfMScale,\n                                                double
      dfMTolerance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3209
    functionDepth: 0
    functionLinenumber: 3209
    functionLinenumberEnd: 3209
    functionName: FileGDBOGRGeometryConverter::~FileGDBOGRGeometryConverter()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRGeometryConverter::~FileGDBOGRGeometryConverter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3242
    functionDepth: 0
    functionLinenumber: 3242
    functionLinenumberEnd: 3243
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::FileGDBOGRGeometryConverterImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRGeometryConverterImpl(const FileGDBOGRGeometryConverterImpl
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3244
    functionDepth: 0
    functionLinenumber: 3244
    functionLinenumberEnd: 3245
    functionName: "&\n    operator=(const FileGDBOGRGeometryConverterImpl &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBOGRGeometryConverterImpl
    signature: "FileGDBOGRGeometryConverterImpl &\n    operator=(const FileGDBOGRGeometryConverterImpl
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poGeomFieldIn
    argTypes:
    - FileGDBGeomField*
    constantsTouched: []
    func_position:
      end: 3267
      start: 3259
    functionDepth: 0
    functionLinenumber: 3259
    functionLinenumberEnd: 3267
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::FileGDBOGRGeometryConverterImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void FileGDBOGRGeometryConverterImpl::FileGDBOGRGeometryConverterImpl(\n
      \   const FileGDBGeomField *poGeomFieldIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3273
    functionDepth: 0
    functionLinenumber: 3273
    functionLinenumberEnd: 3276
    functionName: FileGDBOGRGeometryConverterImpl::~FileGDBOGRGeometryConverterImpl()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRGeometryConverterImpl::~FileGDBOGRGeometryConverterImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3287,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3287,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3294,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3294,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3296,1
    - Dst: SkipVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3296,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3297,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3297,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3298,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3298,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3299,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3299,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3302,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3302,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3303,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3303,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3310,1
    - Dst: SkipVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3310,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3313,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3314,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3315,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3323,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3323,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3324,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3324,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3328,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 7
    argNames:
    - pabyCur
    - pabyEnd
    - nPoints
    - nParts
    - nCurves
    - bHasCurveDesc
    - bIsMultiPatch
    argTypes:
    - GByte*
    - GByte*
    - GUInt32
    - GUInt32
    - GUInt32
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3332
      start: 3282
    functionDepth: 1
    functionLinenumber: 3282
    functionLinenumberEnd: 3332
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadPartDefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - VSI_REALLOC_VERBOSE
    - static_cast<GUInt32>
    - ReadVarUInt32
    - SkipVarUInt
    - returnErrorIf
    - static_cast<GUInt32 *>
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBOGRGeometryConverterImpl::ReadPartDefs(\n    GByte *&pabyCur,
      GByte *pabyEnd, GUInt32 &nPoints, GUInt32 &nParts,\n    GUInt32 &nCurves, bool
      bHasCurveDesc, bool bIsMultiPatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3341
    functionDepth: 0
    functionLinenumber: 3341
    functionLinenumberEnd: 3341
    functionName: OpenFileGDB::FileGDBOGRLineString::FileGDBOGRLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRLineString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3345
    functionDepth: 0
    functionLinenumber: 3345
    functionLinenumberEnd: 3348
    functionName: OpenFileGDB::FileGDBOGRLineString::GetPoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRRawPoint
    signature: OGRRawPoint *GetPoints() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3351
    functionName: FileGDBOGRLineString::~FileGDBOGRLineString()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRLineString::~FileGDBOGRLineString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3356
    functionDepth: 0
    functionLinenumber: 3356
    functionLinenumberEnd: 3356
    functionName: OpenFileGDB::FileGDBOGRLinearRing::FileGDBOGRLinearRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRLinearRing()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3360
    functionDepth: 0
    functionLinenumber: 3360
    functionLinenumberEnd: 3363
    functionName: OpenFileGDB::FileGDBOGRLinearRing::GetPoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRRawPoint
    signature: OGRRawPoint *GetPoints() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3366
    functionDepth: 0
    functionLinenumber: 3366
    functionLinenumberEnd: 3366
    functionName: FileGDBOGRLinearRing::~FileGDBOGRLinearRing()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOGRLinearRing::~FileGDBOGRLinearRing()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - paoPointsIn
    argTypes:
    - OGRRawPoint*
    constantsTouched: []
    func_position:
      end: 3376
      start: 3373
    functionDepth: 0
    functionLinenumber: 3373
    functionLinenumberEnd: 3376
    functionName: OpenFileGDB::XYLineStringSetter::XYLineStringSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XYLineStringSetter(OGRRawPoint *paoPointsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - i
    - dfX
    - dfY
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3382
      start: 3378
    functionDepth: 0
    functionLinenumber: 3378
    functionLinenumberEnd: 3382
    functionName: OpenFileGDB::XYLineStringSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMPointIn
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 3397
      start: 3394
    functionDepth: 0
    functionLinenumber: 3394
    functionLinenumberEnd: 3397
    functionName: OpenFileGDB::XYMultiPointSetter::XYMultiPointSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XYMultiPointSetter(OGRMultiPoint *poMPointIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3402,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - i
    - dfX
    - dfY
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3403
      start: 3399
    functionDepth: 0
    functionLinenumber: 3399
    functionLinenumberEnd: 3403
    functionName: OpenFileGDB::XYMultiPointSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::OGRPoint
    - addGeometryDirectly
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - padfXIn
    - padfYIn
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 3419
      start: 3416
    functionDepth: 0
    functionLinenumber: 3416
    functionLinenumberEnd: 3419
    functionName: OpenFileGDB::XYArraySetter::XYArraySetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XYArraySetter(double *padfXIn, double *padfYIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - i
    - dfX
    - dfY
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3425
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3425
    functionName: OpenFileGDB::XYArraySetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3445,1
    - Dst: ReadVarIntAndAddNoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3447,1
    - Dst: ReadVarIntAndAddNoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3448,1
    - Dst: XYSetter::set
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - setter
    - pabyCur
    - pabyEnd
    - nPoints
    - dx
    - dy
    argTypes:
    - XYSetter
    - GByte*
    - GByte*
    - GUInt32
    - GIntBig
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3460
      start: 3433
    functionDepth: 0
    functionLinenumber: 3433
    functionLinenumberEnd: 3460
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - returnErrorIf
    - ReadVarIntAndAddNoCheck
    - XYSetter::set
    linkageType: ''
    returnType: int
    signature: "int FileGDBOGRGeometryConverterImpl::ReadXYArray(XYSetter &setter,\n
      \                                                GByte *&pabyCur,\n                                                 GByte
      *pabyEnd,\n                                                 GUInt32 nPoints,
      GIntBig &dx,\n                                                 GIntBig &dy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poLSIn
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 3473
      start: 3471
    functionDepth: 0
    functionLinenumber: 3471
    functionLinenumberEnd: 3473
    functionName: OpenFileGDB::ZLineStringSetter::ZLineStringSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZLineStringSetter(OGRLineString *poLSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfZ
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3478
      start: 3475
    functionDepth: 1
    functionLinenumber: 3475
    functionLinenumberEnd: 3478
    functionName: OpenFileGDB::ZLineStringSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - setZ
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMPointIn
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 3492
      start: 3490
    functionDepth: 0
    functionLinenumber: 3490
    functionLinenumberEnd: 3492
    functionName: OpenFileGDB::ZMultiPointSetter::ZMultiPointSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZMultiPointSetter(OGRMultiPoint *poMPointIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfZ
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3497
      start: 3494
    functionDepth: 1
    functionLinenumber: 3494
    functionLinenumberEnd: 3497
    functionName: OpenFileGDB::ZMultiPointSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - getGeometryRef
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padfValuesIn
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 3511
      start: 3509
    functionDepth: 0
    functionLinenumber: 3509
    functionLinenumberEnd: 3511
    functionName: OpenFileGDB::FileGDBArraySetter::FileGDBArraySetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBArraySetter(double *padfValuesIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3516
      start: 3513
    functionDepth: 0
    functionLinenumber: 3513
    functionLinenumberEnd: 3516
    functionName: OpenFileGDB::FileGDBArraySetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3532,1
    - Dst: ReadVarIntAndAddNoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3533,1
    - Dst: ZSetter::set
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - setter
    - pabyCur
    - pabyEnd
    - nPoints
    - dz
    argTypes:
    - ZSetter
    - GByte*
    - GByte*
    - GUInt32
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3539
      start: 3524
    functionDepth: 0
    functionLinenumber: 3524
    functionLinenumberEnd: 3539
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - ZSetter::set
    - returnErrorIf
    - ReadVarIntAndAddNoCheck
    linkageType: ''
    returnType: int
    signature: "int FileGDBOGRGeometryConverterImpl::ReadZArray(ZSetter &setter,\n
      \                                               GByte *&pabyCur, GByte *pabyEnd,\n
      \                                               GUInt32 nPoints, GIntBig &dz)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poLSIn
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 3552
      start: 3550
    functionDepth: 0
    functionLinenumber: 3550
    functionLinenumberEnd: 3552
    functionName: OpenFileGDB::MLineStringSetter::MLineStringSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MLineStringSetter(OGRLineString *poLSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfM
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3557
      start: 3554
    functionDepth: 1
    functionLinenumber: 3554
    functionLinenumberEnd: 3557
    functionName: OpenFileGDB::MLineStringSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - setM
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfM)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMPointIn
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 3571
      start: 3569
    functionDepth: 0
    functionLinenumber: 3569
    functionLinenumberEnd: 3571
    functionName: OpenFileGDB::MMultiPointSetter::MMultiPointSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMultiPointSetter(OGRMultiPoint *poMPointIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - dfM
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3576
      start: 3573
    functionDepth: 1
    functionLinenumber: 3573
    functionLinenumberEnd: 3576
    functionName: OpenFileGDB::MMultiPointSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - getGeometryRef
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3592,1
    - Dst: ReadVarIntAndAddNoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3593,1
    - Dst: MSetter::set
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - setter
    - pabyCur
    - pabyEnd
    - nPoints
    - dm
    argTypes:
    - MSetter
    - GByte*
    - GByte*
    - GUInt32
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3599
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3599
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - returnErrorIf
    - ReadVarIntAndAddNoCheck
    - MSetter::set
    linkageType: ''
    returnType: int
    signature: "int FileGDBOGRGeometryConverterImpl::ReadMArray(MSetter &setter,\n
      \                                               GByte *&pabyCur, GByte *pabyEnd,\n
      \                                               GUInt32 nPoints, GIntBig &dm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pabyBufferIn
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 3612
      start: 3610
    functionDepth: 0
    functionLinenumber: 3610
    functionLinenumberEnd: 3612
    functionName: OpenFileGDB::XYBufferSetter::XYBufferSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XYBufferSetter(GByte *pabyBufferIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3616,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3617,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3618,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - i
    - dfX
    - dfY
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3620
      start: 3614
    functionDepth: 0
    functionLinenumber: 3614
    functionLinenumberEnd: 3620
    functionName: OpenFileGDB::XYBufferSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pabyBufferIn
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 3630
      start: 3628
    functionDepth: 0
    functionLinenumber: 3628
    functionLinenumberEnd: 3630
    functionName: OpenFileGDB::ZOrMBufferSetter::ZOrMBufferSetter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZOrMBufferSetter(GByte *pabyBufferIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3634,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - dfValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 3636
      start: 3632
    functionDepth: 0
    functionLinenumber: 3632
    functionLinenumberEnd: 3636
    functionName: OpenFileGDB::ZOrMBufferSetter::set
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: void
    signature: void set(int i, double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3649,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3650,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3653,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3660,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3665,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3665,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3668,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3669,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3677,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3679,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3680,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3681,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3682,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3683,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3684,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3688,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3690,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3696,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3699,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3700,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3706,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3710,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3713,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3714,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3731,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3732,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3734,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3739,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3740,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3747,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3751,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3754,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3755,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3761,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3762,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3767,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3767,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3768,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3769,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3770,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3774,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3774,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3775,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3776,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3777,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3789,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3790,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3792,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3796,1
    - Dst: OGRCreateFromShapeBin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3799,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3800,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 94
    argCount: 8
    argNames:
    - nBaseShapeType
    - nParts
    - nPoints
    - nCurves
    - bHasZ
    - bHasM
    - pabyCur
    - pabyEnd
    argTypes:
    - GUInt32
    - GUInt32
    - GUInt32
    - GUInt32
    - bool
    - bool
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 3802
      start: 3642
    functionDepth: 4
    functionLinenumber: 3642
    functionLinenumberEnd: 3802
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::CreateCurveGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
    - CPL_LSBPTR64
    - OGRCreateFromShapeBin
    - ReadVarUInt32
    - CPL_LSBPTR32
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
    - CPLAssert
    - VSIFree
    - returnError
    - returnErrorAndCleanupIf
    - static_cast<GByte *>
    - memset
    - memcpy
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
    - VSI_MALLOC_VERBOSE
    - CPL_LSBWORD32
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *FileGDBOGRGeometryConverterImpl::CreateCurveGeometry(\n
      \   GUInt32 nBaseShapeType, GUInt32 nParts, GUInt32 nPoints, GUInt32 nCurves,\n
      \   bool bHasZ, bool bHasM, GByte *&pabyCur, GByte *pabyEnd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadVarUInt32NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3818,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3838,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3839,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3849,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3857,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3864,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3862,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3868,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3871,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3874,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3878,1
    - Dst: ReadVarUInt64NoCheck
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3880,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3885,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3890,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3905,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3905,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3908,1
    - Dst: OGRMultiPoint*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3910,1
    - Dst: OGRMultiPoint*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3912,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3916,1
    - Dst: SkipVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3916,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3920,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3922,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3926,1
    - Dst: OGRMultiPoint*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3931,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3933,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3937,1
    - Dst: OGRMultiPoint*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3947,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3950,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3954,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3974,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadPartDefs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3975,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3980,1
    - Dst: OGRLineString*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3982,1
    - Dst: OGRLineString*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3984,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::CreateCurveGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:3991,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4004,1
    - Dst: OGRMultiLineString*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4006,1
    - Dst: OGRMultiLineString*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4008,1
    - Dst: FileGDBOGRLineString::FileGDBOGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4014,1
    - Dst: FileGDBOGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4015,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4017,1
    - Dst: FileGDBOGRLineString*::GetPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4019,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4020,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4027,1
    - Dst: cpl::down_cast<FileGDBOGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4036,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4037,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4040,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4047,1
    - Dst: cpl::down_cast<FileGDBOGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4058,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4059,1
    - Dst: OGRMultiLineString*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4068,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4073,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4080,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4104,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadPartDefs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4105,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4110,1
    - Dst: OGRPolygon*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4112,1
    - Dst: OGRPolygon*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4114,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::CreateCurveGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4121,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4130,1
    - Dst: FileGDBOGRLinearRing::FileGDBOGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4135,1
    - Dst: FileGDBOGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4137,1
    - Dst: FileGDBOGRLinearRing*::GetPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4139,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4140,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4153,1
    - Dst: setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4161,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4164,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4170,1
    - Dst: setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4189,1
    - Dst: setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4194,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4197,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4203,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4211,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4213,1
    - Dst: isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4218,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4237,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4240,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4241,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4245,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4246,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4257,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4260,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4262,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4270,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4272,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4274,1
    - Dst: addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4275,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4276,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4277,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4281,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4282,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4283,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4284,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4284,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4285,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4286,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4287,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4305,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadPartDefs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4305,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4310,1
    - Dst: OGRPolygon*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4312,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4327,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4328,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4329,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4330,1
    - Dst: ReadVarUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4335,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4337,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4338,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4339,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4340,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4342,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4347,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4350,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4351,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4352,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4353,1
    - Dst: OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4359,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4362,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4363,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4364,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4365,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4370,1
    - Dst: OGRCreateFromMultiPatch
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4378,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4379,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4380,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4382,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4383,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4384,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4392,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4393,1
    - Dst: FileGDBOGRGeometryConverterImpl::FileGDBOGRGeometryConverterImpl
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4409,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4435,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp:4438,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 329
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 4442
      start: 3808
    functionDepth: 5
    functionLinenumber: 3808
    functionLinenumberEnd: 4442
    functionName: OpenFileGDB::FileGDBOGRGeometryConverterImpl::GetAsGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRGeometry **>
    - OGRPolygon*::setCoordinateDimension
    - getEnvelope
    - OGRMultiPoint::OGRMultiPoint
    - FileGDBOGRLinearRing::FileGDBOGRLinearRing
    - assert
    - OGRMultiPoint*::setCoordinateDimension
    - OGRMultiLineString*::getGeometryRef
    - CPLDebug
    - strcmp
    - OGRLineString*::setMeasured
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadMArray
    - OGRLineString*::set3D
    - OGRPoint::getY
    - ReadVarUInt32NoCheck
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadPartDefs
    - isClockwise
    - ReadVarUInt64NoCheck
    - FileGDBOGRLinearRing*::GetPoints
    - OGRPoint::OGRPoint
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadZArray
    - returnError
    - SkipVarUInt
    - addGeometryDirectly
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::CreateCurveGeometry
    - setCoordinateDimension
    - static_cast<int>
    - OGRMultiPoint*::set3D
    - OGRLinearRing::OGRLinearRing
    - OGRPoint::getX
    - OGRPolygon*::set3D
    - OGRGeometryFactory::organizePolygons
    - FileGDBOGRLineString*::setNumPoints
    - CPLAssert
    - setMeasured
    - OGRMultiPolygon::OGRMultiPolygon
    - FileGDBOGRLineString*::GetPoints
    - OGRPolygon*::setMeasured
    - cpl::quiet_NaN
    - FileGDBOGRLinearRing*::setNumPoints
    - OGRMultiLineString*::set3D
    - cpl::down_cast<FileGDBOGRLineString *>
    - OGRMultiPoint*::setMeasured
    - OGRMultiLineString*::addGeometryDirectly
    - getPoint
    - addRingDirectly
    - FileGDBOGRGeometryConverterImpl::FileGDBOGRGeometryConverterImpl
    - ReadVarUInt32
    - OGRPoint*::setM
    - memset
    - VSIFree
    - OGRCreateFromMultiPatch
    - returnErrorIf
    - OpenFileGDB::FileGDBOGRGeometryConverterImpl::ReadXYArray
    - OGRMultiLineString*::setMeasured
    - FileGDBOGRLineString::FileGDBOGRLineString
    linkageType: ''
    returnType: OGRGeometry
    signature: 'OGRGeometry *

      FileGDBOGRGeometryConverterImpl::GetAsGeometry(const OGRField *psField)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: FileGDBIndex::~FileGDBIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBIndex::~FileGDBIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:49,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:49,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:50,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:51,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:51,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:52,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - osExpression
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: OpenFileGDB::FileGDBIndex::GetFieldNameFromExpression
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - std::string::size
    - strlen
    - std::string::substr
    - std::string::c_str
    - std::string::back
    linkageType: ''
    returnType: std::string
    signature: std::string FileGDBIndex::GetFieldNameFromExpression(const std::string
      &osExpression)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndex::GetFieldNameFromExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: OpenFileGDB::FileGDBIndex::GetFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndex::GetFieldNameFromExpression
    linkageType: ''
    returnType: std::string
    signature: std::string FileGDBIndex::GetFieldName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: OpenFileGDB::FileGDBTrivialIterator::FileGDBTrivialIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBTrivialIterator(const FileGDBTrivialIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '&operator=(const FileGDBTrivialIterator &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTrivialIterator
    signature: FileGDBTrivialIterator &operator=(const FileGDBTrivialIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ~FileGDBTrivialIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FileGDBTrivialIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTrivialIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: OpenFileGDB::FileGDBTrivialIterator::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBTrivialIterator::Reset
    linkageType: ''
    returnType: void
    signature: void Reset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetTotalRecordCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetRowCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTrivialIterator::GetNextRowSortedByValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetNextRowSortedByValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBTrivialIterator::GetNextRowSortedByValue
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetNextRowSortedByValue() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTrivialIterator::GetMinValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetMinValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBTrivialIterator::GetMinValue
    linkageType: ''
    returnType: OGRField
    signature: OGRField *GetMinValue(int &eOutType) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTrivialIterator::GetMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBTrivialIterator::GetMaxValue
    linkageType: ''
    returnType: OGRField
    signature: OGRField *GetMaxValue(int &eOutType) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTrivialIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dfMin
    - dfMax
    - dfSum
    - nCount
    argTypes:
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetMinMaxSumCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBTrivialIterator::GetMinMaxSumCount
    linkageType: ''
    returnType: bool
    signature: "bool GetMinMaxSumCount(double &dfMin, double &dfMax, double &dfSum,\n
      \                                  int &nCount) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: OpenFileGDB::FileGDBNotIterator::FileGDBNotIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBNotIterator(const FileGDBNotIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '&operator=(const FileGDBNotIterator &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBNotIterator
    signature: FileGDBNotIterator &operator=(const FileGDBNotIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: OpenFileGDB::FileGDBNotIterator::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: OpenFileGDB::FileGDBAndIterator::FileGDBAndIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBAndIterator(const FileGDBAndIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '&operator=(const FileGDBAndIterator &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBAndIterator
    signature: FileGDBAndIterator &operator=(const FileGDBAndIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBAndIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: OpenFileGDB::FileGDBAndIterator::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBAndIterator::GetTable
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: OpenFileGDB::FileGDBOrIterator::FileGDBOrIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOrIterator(const FileGDBOrIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: '&operator=(const FileGDBOrIterator &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBOrIterator
    signature: FileGDBOrIterator &operator=(const FileGDBOrIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBOrIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OpenFileGDB::FileGDBOrIterator::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBOrIterator::GetTable
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::FileGDBIndexIteratorBase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIteratorBase(const FileGDBIndexIteratorBase &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: "&\n    operator=(const FileGDBIndexIteratorBase &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBIndexIteratorBase
    signature: "FileGDBIndexIteratorBase &\n    operator=(const FileGDBIndexIteratorBase
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: OpenFileGDB::FileGDBIndexIterator::FileGDBIndexIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIterator(const FileGDBIndexIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: '&operator=(const FileGDBIndexIterator &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBIndexIterator
    signature: FileGDBIndexIterator &operator=(const FileGDBIndexIterator &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetNextRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: OpenFileGDB::FileGDBIndexIterator::GetNextRowSortedByValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndexIterator::GetNextRow
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetNextRowSortedByValue() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: OpenFileGDB::FileGDBIterator::GetMinValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - PrintError
    linkageType: ''
    returnType: OGRField
    signature: OGRField *FileGDBIterator::GetMinValue(int &eOutType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: OpenFileGDB::FileGDBIterator::GetMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - PrintError
    linkageType: ''
    returnType: OGRField
    signature: OGRField *FileGDBIterator::GetMaxValue(int &eOutType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: OpenFileGDB::FileGDBIterator::GetNextRowSortedByValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - PrintError
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBIterator::GetNextRowSortedByValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dfMin
    - dfMax
    - dfSum
    - nCount
    argTypes:
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 422
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 422
    functionName: OpenFileGDB::FileGDBIterator::GetMinMaxSumCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - PrintError
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBIterator::GetMinMaxSumCount(double &dfMin, double &dfMax,\n
      \                                       double &dfSum, int &nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - poParent
    - nFieldIdx
    - bAscending
    - op
    - eOGRFieldType
    - psValue
    argTypes:
    - FileGDBTable*
    - int
    - int
    - FileGDBSQLOp
    - OGRFieldType
    - OGRField*
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: OpenFileGDB::FileGDBIterator::Build
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndexIterator::Build
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *FileGDBIterator::Build(FileGDBTable *poParent, int
      nFieldIdx,\n                                        int bAscending, FileGDBSQLOp
      op,\n                                        OGRFieldType eOGRFieldType,\n                                        const
      OGRField *psValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:444,1
    - Dst: FileGDBIterator*::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:449,1
    - Dst: FileGDBTable*::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:449,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:451,1
    - Dst: FileGDBTable*::GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:451,1
    - Dst: FileGDBTable*::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:452,1
    - Dst: FileGDBTrivialIterator::FileGDBTrivialIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - poParent
    - nFieldIdx
    - bAscending
    argTypes:
    - FileGDBTable*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 457
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 457
    functionName: OpenFileGDB::FileGDBIterator::BuildIsNotNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBIterator*::GetRowCount
    - FileGDBTrivialIterator::FileGDBTrivialIterator
    - OpenFileGDB::FileGDBIterator::Build
    - FileGDBTable*::GetValidRecordCount
    - CPLAssert
    - FileGDBTable*::GetTotalRecordCount
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *FileGDBIterator::BuildIsNotNull(FileGDBTable *poParent,\n
      \                                                int nFieldIdx, int bAscending)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBNotIterator::FileGDBNotIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poIterBase
    argTypes:
    - FileGDBIterator*
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: OpenFileGDB::FileGDBIterator::BuildNot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBNotIterator::FileGDBNotIterator
    linkageType: ''
    returnType: FileGDBIterator
    signature: FileGDBIterator *FileGDBIterator::BuildNot(FileGDBIterator *poIterBase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBAndIterator::FileGDBAndIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poIter1
    - poIter2
    - bTakeOwnershipOfIterators
    argTypes:
    - FileGDBIterator*
    - FileGDBIterator*
    - bool
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: OpenFileGDB::FileGDBIterator::BuildAnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBAndIterator::FileGDBAndIterator
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *FileGDBIterator::BuildAnd(FileGDBIterator *poIter1,\n
      \                                          FileGDBIterator *poIter2,\n                                           bool
      bTakeOwnershipOfIterators)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBOrIterator::FileGDBOrIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poIter1
    - poIter2
    - bIteratorAreExclusive
    argTypes:
    - FileGDBIterator*
    - FileGDBIterator*
    - int
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: OpenFileGDB::FileGDBIterator::BuildOr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBOrIterator::FileGDBOrIterator
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *FileGDBIterator::BuildOr(FileGDBIterator *poIter1,\n
      \                                         FileGDBIterator *poIter2,\n                                          int
      bIteratorAreExclusive)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:496,1
    - Dst: GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:498,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: OpenFileGDB::FileGDBIterator::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetNextRowSortedByFID
    - Reset
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBIterator::GetRowCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBIterator*::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poParentIterIn
    argTypes:
    - FileGDBIterator*
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: OpenFileGDB::FileGDBTrivialIterator::FileGDBTrivialIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBIterator*::GetTable
    linkageType: ''
    returnType: void
    signature: void FileGDBTrivialIterator::FileGDBTrivialIterator(FileGDBIterator
      *poParentIterIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: OpenFileGDB::FileGDBTrivialIterator::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetTotalRecordCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBTrivialIterator::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBIterator*::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:530,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:533,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poIterBaseIn
    argTypes:
    - FileGDBIterator*
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: OpenFileGDB::FileGDBNotIterator::FileGDBNotIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBIterator*::GetTable
    - GetValidRecordCount
    - GetTotalRecordCount
    linkageType: ''
    returnType: void
    signature: void FileGDBNotIterator::FileGDBNotIterator(FileGDBIterator *poIterBaseIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: FileGDBNotIterator::~FileGDBNotIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBNotIterator::~FileGDBNotIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBNotIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: OpenFileGDB::FileGDBNotIterator::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBNotIterator::Reset
    linkageType: ''
    returnType: void
    signature: void FileGDBNotIterator::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBNotIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:564,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:566,1
    - Dst: GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:575,1
    - Dst: HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:577,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:582,1
    - Dst: OpenFileGDB::FileGDBNotIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:587,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:589,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 592
    functionName: OpenFileGDB::FileGDBNotIterator::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - GetOffsetInTableForRow
    - HasGotError
    - OpenFileGDB::FileGDBNotIterator::GetNextRowSortedByFID
    - GetTotalRecordCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBNotIterator::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:600,1
    - Dst: OpenFileGDB::FileGDBNotIterator::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: OpenFileGDB::FileGDBNotIterator::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - GetValidRecordCount
    - OpenFileGDB::FileGDBNotIterator::GetRowCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBNotIterator::GetRowCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:613,1
    - Dst: OpenFileGDB::FileGDBAndIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:613,1
    - Dst: OpenFileGDB::FileGDBAndIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poIter1In
    - poIter2In
    - bTakeOwnershipOfIterators
    argTypes:
    - FileGDBIterator*
    - FileGDBIterator*
    - bool
    constantsTouched: []
    func_position:
      end: 614
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 614
    functionName: OpenFileGDB::FileGDBAndIterator::FileGDBAndIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - OpenFileGDB::FileGDBAndIterator::GetTable
    linkageType: ''
    returnType: void
    signature: "void FileGDBAndIterator::FileGDBAndIterator(FileGDBIterator *poIter1In,\n
      \                                      FileGDBIterator *poIter2In,\n                                       bool
      bTakeOwnershipOfIterators)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: FileGDBAndIterator::~FileGDBAndIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBAndIterator::~FileGDBAndIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBAndIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:635,1
    - Dst: OpenFileGDB::FileGDBAndIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: OpenFileGDB::FileGDBAndIterator::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBAndIterator::Reset
    linkageType: ''
    returnType: void
    signature: void FileGDBAndIterator::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:649,1
    - Dst: OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:650,1
    - Dst: OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:661,1
    - Dst: OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:667,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 674
    functionName: OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBAndIterator::GetNextRowSortedByFID
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBAndIterator::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:686,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:686,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poIter1In
    - poIter2In
    - bIteratorAreExclusiveIn
    argTypes:
    - FileGDBIterator*
    - FileGDBIterator*
    - int
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: OpenFileGDB::FileGDBOrIterator::FileGDBOrIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - OpenFileGDB::FileGDBOrIterator::GetTable
    linkageType: ''
    returnType: void
    signature: "void FileGDBOrIterator::FileGDBOrIterator(FileGDBIterator *poIter1In,\n
      \                                    FileGDBIterator *poIter2In,\n                                     int
      bIteratorAreExclusiveIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: FileGDBOrIterator::~FileGDBOrIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBOrIterator::~FileGDBOrIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBOrIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:705,1
    - Dst: OpenFileGDB::FileGDBOrIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 710
    functionName: OpenFileGDB::FileGDBOrIterator::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBOrIterator::Reset
    linkageType: ''
    returnType: void
    signature: void FileGDBOrIterator::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:721,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:722,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:728,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:734,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:740,1
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:745,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:748,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 751
    functionName: OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - PrintError
    - OpenFileGDB::FileGDBOrIterator::GetNextRowSortedByFID
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBOrIterator::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBOrIterator::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:760,1
    - Dst: OpenFileGDB::FileGDBOrIterator::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:760,1
    - Dst: OpenFileGDB::FileGDBIterator::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 763
    functionName: OpenFileGDB::FileGDBOrIterator::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBOrIterator::GetRowCount
    - OpenFileGDB::FileGDBIterator::GetRowCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBOrIterator::GetRowCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:771,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:774,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:776,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:777,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:778,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:779,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:780,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:781,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - poParentIn
    - bAscendingIn
    argTypes:
    - FileGDBTable*
    - int
    constantsTouched: []
    func_position:
      end: 783
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 783
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::FileGDBIndexIteratorBase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - memset
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void FileGDBIndexIteratorBase::FileGDBIndexIteratorBase(FileGDBTable
      *poParentIn,\n                                                   int bAscendingIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 794
    functionName: FileGDBIndexIteratorBase::~FileGDBIndexIteratorBase()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIteratorBase::~FileGDBIndexIteratorBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:804,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:804,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:805,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:807,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:808,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:811,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:814,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:815,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:815,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:816,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:817,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:822,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:823,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:823,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:826,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:829,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:838,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:839,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:841,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:843,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:845,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:850,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:851,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:860,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:862,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:862,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:863,1
    - Dst: IsFileGDBV9
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:869,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:870,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:870,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:877,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:880,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:888,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:889,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:889,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:892,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:895,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:904,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:905,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:907,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:909,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:911,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 915
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 915
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::ReadTrailer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetUInt64
    - CPLDebugOnly
    - static_cast<GUInt32>
    - VSIFSeekL
    - VSIFOpenL
    - VSIFTellL
    - static_cast<uint32_t>
    - VSIFReadL
    - IsFileGDBV9
    - strstr
    - returnErrorIf
    - std::string::c_str
    - GetUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBIndexIteratorBase::ReadTrailer(const std::string &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:925,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:926,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:927,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:928,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:929,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:930,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - poParentIn
    - bAscendingIn
    argTypes:
    - FileGDBTable*
    - int
    constantsTouched: []
    func_position:
      end: 932
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 932
    functionName: OpenFileGDB::FileGDBIndexIterator::FileGDBIndexIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void FileGDBIndexIterator::FileGDBIndexIterator(FileGDBTable *poParentIn,\n
      \                                          int bAscendingIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: FileGDBIndexIterator::~FileGDBIndexIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIterator::~FileGDBIndexIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBIndexIterator::FileGDBIndexIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:954,1
    - Dst: FileGDBIndexIterator*::SetConstraint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - poParentIn
    - nFieldIdx
    - bAscendingIn
    - op
    - eOGRFieldType
    - psValue
    argTypes:
    - FileGDBTable*
    - int
    - int
    - FileGDBSQLOp
    - OGRFieldType
    - OGRField*
    constantsTouched: []
    func_position:
      end: 961
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 961
    functionName: OpenFileGDB::FileGDBIndexIterator::Build
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - FileGDBIndexIterator::FileGDBIndexIterator
    - FileGDBIndexIterator*::SetConstraint
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *FileGDBIndexIterator::Build(FileGDBTable *poParentIn,\n
      \                                            int nFieldIdx, int bAscendingIn,\n
      \                                            FileGDBSQLOp op,\n                                             OGRFieldType
      eOGRFieldType,\n                                             const OGRField
      *psValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - FileGDBSQLOp
    constantsTouched: []
    func_position:
      end: 987
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 987
    functionName: OpenFileGDB::FileGDBSQLOpToStr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *FileGDBSQLOpToStr(FileGDBSQLOp op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1002,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1004,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1008,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1011,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1013,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1016,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - eOGRFieldType
    - psValue
    argTypes:
    - OGRFieldType
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1023
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1023
    functionName: OpenFileGDB::FileGDBValueToStr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *FileGDBValueToStr(OGRFieldType eOGRFieldType,\n                                     const
      OGRField *psValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1031,1
    - Dst: FileGDBTable*::GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1032,1
    - Dst: GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1032,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1032,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1033,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1033,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1037,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1038,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1045,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1050,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1051,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1053,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1056,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1059,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1067,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1071,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1072,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1074,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1079,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - poTable
    argTypes:
    - FileGDBTable*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1081
    functionName: OpenFileGDB::FileGDBIndex::GetMaxWidthInBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIFCloseL
    - CPLResetExtensionSafe
    - VSIFSeekL
    - VSIFOpenL
    - VSIFTellL
    - VSIFReadL
    - FileGDBTable*::GetFilename
    - GetIndexName
    - std::string::c_str
    - GetUInt32
    linkageType: ''
    returnType: int
    signature: int FileGDBIndex::GetMaxWidthInBytes(const FileGDBTable *poTable) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1092,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1094,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1094,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1095,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1096,1
    - Dst: FileGDBField*::HasIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1096,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1098,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1101,1
    - Dst: FileGDBField*::GetIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1109,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1115,1
    - Dst: auto::GetExpression
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1115,1
    - Dst: CPLIsASCII
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1119,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1119,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1120,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1120,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1136,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1137,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1137,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1138,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1138,1
    - Dst: auto::GetIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1139,1
    - Dst: ReadTrailer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1142,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1142,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1144,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1145,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1145,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1150,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1153,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1158,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1161,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1166,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1169,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1174,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1177,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1183,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1184,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1185,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1189,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1190,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1192,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1196,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1196,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1205,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1214,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1217,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1223,1
    - Dst: FileGDBField*::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1227,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1235,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1238,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1239,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1241,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1243,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1244,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1250,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1253,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1260,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1263,1
    - Dst: FileGDBOGRTimeToDoubleTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1268,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1274,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1286,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::FindPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1286,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1291,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1293,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1294,1
    - Dst: FileGDBSQLOpToStr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1294,1
    - Dst: FileGDBValueToStr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1295,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1298,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 129
    argCount: 4
    argNames:
    - nFieldIdx
    - op
    - eOGRFieldType
    - psValue
    argTypes:
    - int
    - FileGDBSQLOp
    - OGRFieldType
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1301
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1301
    functionName: OpenFileGDB::FileGDBIndexIterator::SetConstraint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndexIterator::Reset
    - FileGDBField*::HasIndex
    - strncpy
    - CPLDebug
    - std::string::c_str
    - OpenFileGDB::FileGDBIndexIterator::FindPages
    - GetField
    - strlen
    - FileGDBField*::IsHighPrecision
    - auto::GetExpression
    - auto::GetIndexName
    - FileGDBSQLOpToStr
    - FileGDBOGRTimeToDoubleTime
    - STARTS_WITH_CI
    - FileGDBField*::GetType
    - GetFieldCount
    - CPLAssert
    - GetValidRecordCount
    - FileGDBField*::GetName
    - returnErrorAndCleanupIf
    - ReadTrailer
    - CPLFormFilenameSafe
    - CPLFree
    - FileGDBValueToStr
    - CPLRecodeToWChar
    - static_cast<GUInt64>
    - static_cast<size_t>
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - strchr
    - memset
    - CPLIsASCII
    - GetFilename
    - FileGDBField*::GetIndex
    - returnErrorIf
    - FileGDBOGRDateToDoubleDate
    linkageType: ''
    returnType: int
    signature: "int FileGDBIndexIterator::SetConstraint(int nFieldIdx, FileGDBSQLOp
      op,\n                                        OGRFieldType eOGRFieldType,\n                                        const
      OGRField *psValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - pasFirst
    - pasSecond
    - nStrLen
    - bCaseInsensitive
    argTypes:
    - GUInt16*
    - GUInt16*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1328
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1328
    functionName: OpenFileGDB::FileGDBUTF16StrCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int FileGDBUTF16StrCompare(const GUInt16 *pasFirst,\n                                  const
      GUInt16 *pasSecond, int nStrLen,\n                                  bool bCaseInsensitive)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1343,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1343,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1348,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1348,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1350,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1351,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1354,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1354,1
    - Dst: GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1382,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1384,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1387,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1394,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1396,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1399,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1408,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1411,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1420,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1423,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1432,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1435,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1446,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1463,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1468,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1473,1
    - Dst: FileGDBUTF16StrCompare
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1474,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1476,1
    - Dst: FileGDBUTF16StrCompare
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1478,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1490,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1490,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1492,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1494,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1499,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1516,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1520,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1534,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1539,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1550,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1562,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1570,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1581,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 2
    argNames:
    - iLevel
    - nPage
    argTypes:
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1587
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1587
    functionName: OpenFileGDB::FileGDBIndexIterator::FindPages
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - COMPARE
    - CPL_LSBPTR16
    - static_cast<int>
    - FileGDBUTF16StrCompare
    - VSIFSeekL
    - static_cast<uint64_t>
    - returnErrorIf
    - GetInt32
    - memcmp
    - CPLAssert
    - VSIFReadL
    - static_cast<vsi_l_offset>
    - GetInt16
    - memcpy
    - GetUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBIndexIterator::FindPages(int iLevel, uint64_t nPage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1596,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1597,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1598,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1604
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIteratorBase::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1615
    functionName: OpenFileGDB::FileGDBIndexIterator::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - OpenFileGDB::FileGDBIndexIteratorBase::Reset
    linkageType: ''
    returnType: void
    signature: void FileGDBIndexIterator::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1627,1
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1631,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1633,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1639,1
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1643,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1645,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - iLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1652
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1652
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::ReadPageNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetUInt64
    - OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
    - returnErrorIf
    - GetUInt32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FileGDBIndexIteratorBase::ReadPageNumber(int iLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1664,1
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::ReadPageNumber
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1667,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1668,1
    - Dst: FindPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - iLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1682
      start: 1658
    functionDepth: 2
    functionLinenumber: 1658
    functionLinenumberEnd: 1682
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 2
    functionsReached:
    - FindPages
    - returnErrorIf
    - OpenFileGDB::FileGDBIndexIteratorBase::ReadPageNumber
    - OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
    linkageType: ''
    returnType: bool
    signature: bool FileGDBIndexIteratorBase::LoadNextPage(int iLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1707,1
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::ReadPageNumber
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1711,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1712,1
    - Dst: getPtr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1716,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1719,1
    - Dst: cpl::NonCopyableVector*::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1719,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1724,1
    - Dst: getMaxSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1724,1
    - Dst: removeAndRecycleOldestEntry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1726,1
    - Dst: cpl::NonCopyableVector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1727,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1730,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1730,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1735,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1735,1
    - Dst: cpl::NonCopyableVector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1736,1
    - Dst: cpl::NonCopyableVector::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1736,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1738,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1738,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1741,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1742,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1744,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1747
    functionName: OpenFileGDB::FileGDBIndexIteratorBase::LoadNextFeaturePage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - getPtr
    - cpl::NonCopyableVector::clear
    - static_cast<vsi_l_offset>
    - insert
    - removeAndRecycleOldestEntry
    - std::move
    - cpl::NonCopyableVector::end
    - GetUInt32
    - cpl::NonCopyableVector::insert
    - static_cast<int>
    - OpenFileGDB::FileGDBIndexIteratorBase::ReadPageNumber
    - VSIFSeekL
    - getMaxSize
    - OpenFileGDB::FileGDBIndexIteratorBase::LoadNextPage
    - VSIFReadL
    - cpl::NonCopyableVector*::data
    - size
    - returnErrorIf
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool FileGDBIndexIteratorBase::LoadNextFeaturePage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadNextFeaturePage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1763,1
    - Dst: GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1783,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1785,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1792,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1794,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1803,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1812,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1836,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1841,1
    - Dst: FileGDBUTF16StrCompare
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1845,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1853,1
    - Dst: COMPARE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1865,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1870,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1876,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1916,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1925,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1927,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1933,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1934,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1935,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1937,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1947
    functionName: OpenFileGDB::FileGDBIndexIterator::GetNextRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - COMPARE
    - CPL_LSBPTR16
    - GetUInt64
    - static_cast<GUInt64>
    - FileGDBUTF16StrCompare
    - GetInt32
    - memcmp
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - returnErrorAndCleanupIf
    - GetInt16
    - memcpy
    - static_cast<int64_t>
    - LoadNextFeaturePage
    - GetTotalRecordCount
    - GetUInt32
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBIndexIterator::GetNextRow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1958,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1982,1
    - Dst: PrintError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1985,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1988
    functionName: OpenFileGDB::FileGDBIndexIterator::SortRows
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - OpenFileGDB::FileGDBIndexIterator::Reset
    - PrintError
    linkageType: ''
    returnType: int
    signature: int FileGDBIndexIterator::SortRows()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetNextRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:1997,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::SortRows
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2012
    functionName: OpenFileGDB::FileGDBIndexIterator::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndexIterator::GetNextRow
    - OpenFileGDB::FileGDBIndexIterator::SortRows
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBIndexIterator::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2035,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetNextRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2036,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2041
    functionName: OpenFileGDB::FileGDBIndexIterator::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIndexIterator::Reset
    - OpenFileGDB::FileGDBIndexIterator::GetNextRow
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBIndexIterator::GetRowCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2058,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2064,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2068,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2068,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2073,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2073,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2074,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2075,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2079,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2084,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2087,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2090,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2090,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2095,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2095,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2097,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2098,1
    - Dst: GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2107,1
    - Dst: GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2116,1
    - Dst: FileGDBDoubleDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2145,1
    - Dst: FileGDBDoubleDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2154,1
    - Dst: FileGDBDoubleTimeToOGRTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2163,1
    - Dst: GetUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2174,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2182,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2183,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2183,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2184,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2185,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2186,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2187,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2195,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 3
    argNames:
    - psField
    - eOutType
    - bIsMin
    argTypes:
    - OGRField*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2218
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2218
    functionName: OpenFileGDB::FileGDBIndexIterator::GetMinMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBDoubleTimeToOGRTime
    - static_cast<vsi_l_offset>
    - strlen
    - GetUInt16
    - FileGDBDoubleDateToOGRDate
    - GetUInt32
    - std::vector::data
    - GetUInt64
    - VSIFSeekL
    - GetInt32
    - CPLAssert
    - VSIFReadL
    - returnErrorAndCleanupIf
    - CPLFree
    - std::vector::resize
    - static_cast<size_t>
    - VSIFree
    - strcpy
    - returnErrorIf
    - GetInt16
    - memcpy
    linkageType: ''
    returnType: OGRField
    signature: "OGRField *FileGDBIndexIterator::GetMinMaxValue(OGRField *psField,\n
      \                                                    int &eOutType, int bIsMin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIterator::GetMinValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2227,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2232
      start: 2224
    functionDepth: 2
    functionLinenumber: 2224
    functionLinenumberEnd: 2232
    functionName: OpenFileGDB::FileGDBIndexIterator::GetMinValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIterator::GetMinValue
    - OpenFileGDB::FileGDBIndexIterator::GetMinMaxValue
    linkageType: ''
    returnType: OGRField
    signature: OGRField *FileGDBIndexIterator::GetMinValue(int &eOutType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIterator::GetMinValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2241,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - eOutType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2246
      start: 2238
    functionDepth: 2
    functionLinenumber: 2238
    functionLinenumberEnd: 2246
    functionName: OpenFileGDB::FileGDBIndexIterator::GetMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIterator::GetMinValue
    - OpenFileGDB::FileGDBIndexIterator::GetMinMaxValue
    linkageType: ''
    returnType: OGRField
    signature: OGRField *FileGDBIndexIterator::GetMaxValue(int &eOutType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::GetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2258
      start: 2255
    functionDepth: 1
    functionLinenumber: 2255
    functionLinenumberEnd: 2258
    functionName: OpenFileGDB::GetAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetInt16
    linkageType: ''
    returnType: double
    signature: double GetAsDouble(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::GetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2267
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2267
    functionName: OpenFileGDB::GetAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetInt32
    linkageType: ''
    returnType: double
    signature: double GetAsDouble(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2275,1
    - Dst: OpenFileGDB::GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2276
      start: 2273
    functionDepth: 1
    functionLinenumber: 2273
    functionLinenumberEnd: 2276
    functionName: OpenFileGDB::GetAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - OpenFileGDB::GetInt64
    linkageType: ''
    returnType: double
    signature: double GetAsDouble(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::GetFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2285
      start: 2282
    functionDepth: 1
    functionLinenumber: 2282
    functionLinenumberEnd: 2285
    functionName: OpenFileGDB::GetAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetFloat32
    linkageType: ''
    returnType: double
    signature: double GetAsDouble(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::GetFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2294
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2294
    functionName: OpenFileGDB::GetAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetFloat64
    linkageType: ''
    returnType: double
    signature: double GetAsDouble(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadNextFeaturePage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2309,1
    - Dst: OpenFileGDB::GetAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - dfMin
    - dfMax
    - dfSum
    - nCount
    argTypes:
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2328
      start: 2298
    functionDepth: 2
    functionLinenumber: 2298
    functionLinenumberEnd: 2328
    functionName: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetAsDouble
    - LoadNextFeaturePage
    linkageType: ''
    returnType: void
    signature: "void FileGDBIndexIterator::GetMinMaxSumCount(double &dfMin, double
      &dfMax,\n                                             double &dfSum, int &nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2338,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2339,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2347,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2353,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2358,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2363,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2368,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2377,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2381,1
    - Dst: OpenFileGDB::FileGDBIndexIterator::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2386,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - dfMin
    - dfMax
    - dfSum
    - nCount
    argTypes:
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2389
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2389
    functionName: OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - returnErrorIf
    - OpenFileGDB::FileGDBIndexIterator::Reset
    - OpenFileGDB::FileGDBIndexIterator::GetMinMaxSumCount
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBIndexIterator::GetMinMaxSumCount(double &dfMin, double
      &dfMax,\n                                             double &dfSum, int &nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2391
    functionName: FileGDBSpatialIndexIterator::~FileGDBSpatialIndexIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileGDBSpatialIndexIterator::~FileGDBSpatialIndexIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2424
    functionDepth: 0
    functionLinenumber: 2424
    functionLinenumberEnd: 2427
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileGDBTable
    signature: FileGDBTable *GetTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable*::GetMinMaxProjYForSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2446,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2447,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2448,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2449,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poParentIn
    - sFilterEnvelope
    argTypes:
    - FileGDBTable*
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 2451
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2451
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::FileGDBSpatialIndexIteratorImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    - FileGDBTable*::GetMinMaxProjYForSpatialIndex
    linkageType: ''
    returnType: void
    signature: "void FileGDBSpatialIndexIteratorImpl::FileGDBSpatialIndexIteratorImpl(\n
      \   FileGDBTable *poParentIn, const OGREnvelope &sFilterEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBSpatialIndexIteratorImpl::FileGDBSpatialIndexIteratorImpl
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2462,1
    - Dst: FileGDBSpatialIndexIteratorImpl*::Init
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poParent
    - sFilterEnvelope
    argTypes:
    - FileGDBTable*
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 2469
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2469
    functionName: OpenFileGDB::FileGDBSpatialIndexIterator::Build
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - FileGDBSpatialIndexIteratorImpl*::Init
    - FileGDBSpatialIndexIteratorImpl::FileGDBSpatialIndexIteratorImpl
    linkageType: ''
    returnType: FileGDBSpatialIndexIterator
    signature: "FileGDBSpatialIndexIterator *\nFileGDBSpatialIndexIterator::Build(FileGDBTable
      *poParent,\n                                   const OGREnvelope &sFilterEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2480,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sFilterEnvelope
    argTypes:
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 2482
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2482
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::SetEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBSpatialIndexIteratorImpl::SetEnvelope(\n    const OGREnvelope
      &sFilterEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2492,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2493,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2493,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2494,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2494,1
    - Dst: ReadTrailer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2496,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2496,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2499,1
    - Dst: GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2503,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2504,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2505,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2508,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2508,1
    - Dst: IsPositiveInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2509,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2509,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2510,1
    - Dst: FileGDBGeomField*::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2510,1
    - Dst: IsPositiveInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2511,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2511,1
    - Dst: FileGDBGeomField*::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2512,1
    - Dst: FileGDBGeomField*::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2512,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2519,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2521,1
    - Dst: LoadNextFeaturePage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2531,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2534,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2535,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2551,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2554,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2560,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2488
    functionDepth: 1
    functionLinenumber: 2488
    functionLinenumberEnd: 2561
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetSpatialIndexGridResolution
    - CPLDebug
    - FileGDBGeomField*::GetYMin
    - CPLError
    - std::string::c_str
    - std::isnan
    - FileGDBGeomField*::GetXMax
    - GetGeomField
    - IsPositiveInt
    - FileGDBGeomField*::GetYMax
    - FileGDBGeomField*::GetXMin
    - GetUInt32
    - static_cast<GUInt32>
    - auto::empty
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
    - ReadTrailer
    - CPLFormFilenameSafe
    - LoadNextFeaturePage
    - GetTotalRecordCount
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - GetFilename
    - returnErrorIf
    linkageType: ''
    returnType: bool
    signature: bool FileGDBSpatialIndexIteratorImpl::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coord
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2571
      start: 2567
    functionDepth: 0
    functionLinenumber: 2567
    functionLinenumberEnd: 2571
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - GetSpatialIndexGridResolution
    linkageType: ''
    returnType: double
    signature: double FileGDBSpatialIndexIteratorImpl::GetScaledCoord(double coord)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2580,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2581,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2582,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2583,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2583,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2583,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2584,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2586,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2587,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2588,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2589,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2589,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2589,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2590,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2599,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2600,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2612,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::FindPages
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2612,1
    - Dst: OpenFileGDB::FileGDBIndexIteratorBase::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2577
    functionDepth: 1
    functionLinenumber: 2577
    functionLinenumberEnd: 2619
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - static_cast<GUInt64>
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::FindPages
    - min
    - max
    - OpenFileGDB::FileGDBIndexIteratorBase::Reset
    - returnErrorIf
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool FileGDBSpatialIndexIteratorImpl::ReadNewXRange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2635,1
    - Dst: OpenFileGDB::GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2641,1
    - Dst: OpenFileGDB::GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2656,1
    - Dst: OpenFileGDB::GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - pBaseAddr
    - nVals
    - nMinVal
    - nMaxVal
    - minIdxOut
    - maxIdxOut
    argTypes:
    - GByte*
    - int
    - GInt64
    - GInt64
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2672
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2672
    functionName: OpenFileGDB::FindMinMaxIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::GetInt64
    linkageType: ''
    returnType: bool
    signature: "bool FindMinMaxIdx(const GByte *pBaseAddr, const int nVals,\n                          const
      GInt64 nMinVal, const GInt64 nMaxVal,\n                          int &minIdxOut,
      int &maxIdxOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPtr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2685,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2688,1
    - Dst: cpl::NonCopyableVector*::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2688,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2693,1
    - Dst: getMaxSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2693,1
    - Dst: removeAndRecycleOldestEntry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2695,1
    - Dst: cpl::NonCopyableVector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2696,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2699,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2699,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2704,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2704,1
    - Dst: cpl::NonCopyableVector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2706,1
    - Dst: cpl::NonCopyableVector::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2706,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2708,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2708,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2711,1
    - Dst: returnErrorIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2712,1
    - Dst: GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2715,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2725,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2733,1
    - Dst: FindMinMaxIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2738,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2739,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2745,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - iLevel
    - nPage
    argTypes:
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2752
      start: 2678
    functionDepth: 1
    functionLinenumber: 2678
    functionLinenumberEnd: 2752
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::FindPages
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 1
    functionsReached:
    - getPtr
    - cpl::NonCopyableVector::clear
    - static_cast<vsi_l_offset>
    - insert
    - removeAndRecycleOldestEntry
    - std::move
    - cpl::NonCopyableVector::end
    - GetUInt32
    - GetUInt64
    - cpl::NonCopyableVector::insert
    - static_cast<int>
    - VSIFSeekL
    - getMaxSize
    - VSIFReadL
    - FindMinMaxIdx
    - cpl::NonCopyableVector*::data
    - size
    - GetInt64
    - returnErrorIf
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool FileGDBSpatialIndexIteratorImpl::FindPages(int iLevel, uint64_t
      nPage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadNextFeaturePage
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2770,1
    - Dst: FindMinMaxIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2771,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2779,1
    - Dst: GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2785,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2786,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2786,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2790,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2790,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2791,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2792,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2793,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2794,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2794,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2795,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2796,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2797,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2798,1
    - Dst: GetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2812,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2814,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2815,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2819,1
    - Dst: GetUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2821,1
    - Dst: returnErrorAndCleanupIf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2824,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2826,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2826,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2828,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2758
    functionDepth: 2
    functionLinenumber: 2758
    functionLinenumberEnd: 2830
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetNextRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - GetSpatialIndexGridResolution
    - auto::size
    - GetUInt32
    - GetUInt64
    - static_cast<int>
    - min
    - CPLAssert
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
    - CPL_IGNORE_RET_VAL
    - returnErrorAndCleanupIf
    - FindMinMaxIdx
    - LoadNextFeaturePage
    - GetTotalRecordCount
    - static_cast<double>
    - static_cast<GUInt64>
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
    - GetInt64
    - max
    - static_cast<GInt32>
    linkageType: ''
    returnType: int
    signature: int FileGDBSpatialIndexIteratorImpl::GetNextRow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2840,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2841,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2847,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2848,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2848,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2848,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2849,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2850,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2851,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2851,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2851,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2852,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2836
    functionDepth: 2
    functionLinenumber: 2836
    functionLinenumberEnd: 2855
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - GetSpatialIndexGridResolution
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetScaledCoord
    - auto::empty
    - min
    - max
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ReadNewXRange
    - static_cast<GInt32>
    linkageType: ''
    returnType: bool
    signature: bool FileGDBSpatialIndexIteratorImpl::ResetInternal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2857
    functionDepth: 3
    functionLinenumber: 2857
    functionLinenumberEnd: 2860
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::ResetInternal
    linkageType: ''
    returnType: void
    signature: void FileGDBSpatialIndexIteratorImpl::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetNextRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2877,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2880,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2882,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2882,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2882,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2885,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp:2893,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2866
    functionDepth: 3
    functionLinenumber: 2866
    functionLinenumberEnd: 2905
    functionName: OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetNextRowSortedByFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - empty
    - std::sort
    - begin
    - OpenFileGDB::FileGDBSpatialIndexIteratorImpl::GetNextRow
    - push_back
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileGDBSpatialIndexIteratorImpl::GetNextRowSortedByFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:42,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: OpenFileGDB::GetInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - memcpy
    linkageType: ''
    returnType: GInt16
    signature: GInt16 GetInt16(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:54,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: OpenFileGDB::GetUInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR16
    - memcpy
    linkageType: ''
    returnType: GUInt16
    signature: GUInt16 GetUInt16(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:66,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: OpenFileGDB::GetInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetInt32(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:78,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: OpenFileGDB::GetUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 GetUInt32(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:90,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: OpenFileGDB::GetInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 2
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetInt64(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:102,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: OpenFileGDB::GetUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GetUInt64(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:114,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: OpenFileGDB::GetFloat32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: float
    signature: float GetFloat32(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:126,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pBaseAddr
    - iOffset
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: OpenFileGDB::GetFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: double
    signature: double GetFloat64(const GByte *pBaseAddr, int iOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - nVal
    argTypes:
    - VSILFILE*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: OpenFileGDB::ReadUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR32
    linkageType: ''
    returnType: bool
    signature: bool ReadUInt32(VSILFILE *fp, uint32_t &nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:148,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - nVal
    argTypes:
    - VSILFILE*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: OpenFileGDB::WriteUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 2
    functionsReached:
    - VSIFWriteL
    - CPL_LSBPTR32
    linkageType: ''
    returnType: bool
    signature: bool WriteUInt32(VSILFILE *fp, uint32_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:158,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - nVal
    argTypes:
    - VSILFILE*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: OpenFileGDB::WriteUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - VSIFWriteL
    - CPL_LSBPTR64
    linkageType: ''
    returnType: bool
    signature: bool WriteUInt64(VSILFILE *fp, uint64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:168,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - dfVal
    argTypes:
    - VSILFILE*
    - double
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: OpenFileGDB::WriteFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - VSIFWriteL
    - CPL_LSBPTR64
    linkageType: ''
    returnType: bool
    signature: bool WriteFloat64(VSILFILE *fp, double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:178,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:179,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:180,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint32_t
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: OpenFileGDB::WriteUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 2
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR32
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteUInt32(std::vector<GByte> &abyBuffer, uint32_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:190,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:191,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - abyBuffer
    - nVal
    - nPos
    argTypes:
    - std::vector<GByte>
    - uint32_t
    - size_t
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: OpenFileGDB::WriteUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 2
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: "void WriteUInt32(std::vector<GByte> &abyBuffer, uint32_t nVal,\n                        size_t
      nPos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:201,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:202,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:203,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - fVal
    argTypes:
    - std::vector<GByte>
    - float
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: OpenFileGDB::WriteFloat32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR32
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteFloat32(std::vector<GByte> &abyBuffer, float fVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:212,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:213,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:214,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - dfVal
    argTypes:
    - std::vector<GByte>
    - double
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: OpenFileGDB::WriteFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR64
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteFloat64(std::vector<GByte> &abyBuffer, double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:223,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:224,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:225,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - int32_t
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: OpenFileGDB::WriteInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR32
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteInt32(std::vector<GByte> &abyBuffer, int32_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:234,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:235,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:236,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - int64_t
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: OpenFileGDB::WriteInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR64
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteInt64(std::vector<GByte> &abyBuffer, int64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:245,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:246,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:247,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint16_t
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: OpenFileGDB::WriteUInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR16
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteUInt16(std::vector<GByte> &abyBuffer, uint16_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:256,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:257,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:258,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - int16_t
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: OpenFileGDB::WriteInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteInt16(std::vector<GByte> &abyBuffer, int16_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint8_t
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: OpenFileGDB::WriteUInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 2
    functionsReached:
    - std::vector<GByte>::push_back
    linkageType: ''
    returnType: void
    signature: void WriteUInt8(std::vector<GByte> &abyBuffer, uint8_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:276,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:277,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:278,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: OpenFileGDB::WriteUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPL_LSBPTR64
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void WriteUInt64(std::vector<GByte> &abyBuffer, uint64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:291,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:291,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:296,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: OpenFileGDB::WriteVarUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - OpenFileGDB::WriteUInt8
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void WriteVarUInt(std::vector<GByte> &abyBuffer, uint64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:311,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:312,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:317,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:318,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:323,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:323,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:332,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:332,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:337,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:337,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - abyBuffer
    - nVal
    argTypes:
    - std::vector<GByte>
    - int64_t
    constantsTouched: []
    func_position:
      end: 343
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 343
    functionName: OpenFileGDB::WriteVarInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - OpenFileGDB::WriteVarUInt
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - OpenFileGDB::WriteUInt8
    - simple_min
    linkageType: ''
    returnType: void
    signature: void WriteVarInt(std::vector<GByte> &abyBuffer, int64_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pabyIter
    - nCarCount
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: OpenFileGDB::ReadUTF16String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string ReadUTF16String(const GByte *pabyIter, int nCarCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:376,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:384,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:384,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:387,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:389,1
    - Dst: OpenFileGDB::WriteUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:392,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:392,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:399,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:406,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:406,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:409,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:411,1
    - Dst: OpenFileGDB::WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:414,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:414,1
    - Dst: OpenFileGDB::WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:421,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:421,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:431,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:432,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:435,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:435,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:436,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:436,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - abyBuffer
    - pszStr
    - eFormat
    argTypes:
    - std::vector<GByte>
    - char*
    - UTF16StringFormat
    constantsTouched: []
    func_position:
      end: 440
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 440
    functionName: OpenFileGDB::WriteUTF16String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - CPLRecodeToWChar
    - CPL_LSBPTR16
    - static_cast<size_t>
    - OpenFileGDB::WriteVarUInt
    - static_cast<uint8_t>
    - static_cast<uint16_t>
    - min
    - reinterpret_cast<const GByte *>
    - OpenFileGDB::WriteUInt16
    - OpenFileGDB::WriteUInt32
    - static_cast<uint32_t>
    - std::vector<GByte>::insert
    - std::vector<GByte>::end
    - CPLError
    - OpenFileGDB::WriteUInt8
    - CPLFree
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void WriteUTF16String(std::vector<GByte> &abyBuffer, const char *pszStr,\n
      \                            UTF16StringFormat eFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:457,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:458,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:459,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:474,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:477,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - psField
    - bConvertToGMT
    - bHighPrecision
    argTypes:
    - OGRField*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 481
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 481
    functionName: OpenFileGDB::FileGDBOGRDateToDoubleDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - CPLYMDHMSToUnixTime
    - static_cast<int>
    - fmod
    linkageType: ''
    returnType: double
    signature: "double FileGDBOGRDateToDoubleDate(const OGRField *psField,\n                                         bool
      bConvertToGMT,\n                                         bool bHighPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: OpenFileGDB::FileGDBOGRTimeToDoubleTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_priv.h
    functionUses: 1
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double FileGDBOGRTimeToDoubleTime(const OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:32,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:34,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:38,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:40,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:44,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:46,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:49,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:55,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:57,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:60,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:61,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:61,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:62,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h:66,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - psSpatialReference
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 68
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 68
    functionName: GDBGridSettingsToOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_read.h
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLSPrintf
    - EQUAL
    - std::move
    - CPLStringList::SetNameValue
    - CPLStringList::CPLStringList
    - CPLGetValueType
    linkageType: ''
    returnType: OGRGeomCoordinatePrecision
    signature: OGRGeomCoordinatePrecision GDBGridSettingsToOGR(const CPLXMLNode *psSpatialReference)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:32,1
    - Dst: auto::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:47,1
    - Dst: auto::GetTargetLinearUnits
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:51,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:68,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:94,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:94,1
    - Dst: auto::oFormatSpecificOptions::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:97,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:105,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:106,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:117,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:118,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:119,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:123,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:129,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:130,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h:138,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - poSrcGeomFieldDefn
    - aosLayerCreationOptions
    argTypes:
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 141
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 141
    functionName: GDBGridSettingsFromOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_coordprec_write.h
    functionUses: 0
    functionsReached:
    - auto::GetTargetLinearUnits
    - CPLAtof
    - CPL_ARRAYSIZE
    - auto::oFormatSpecificOptions::find
    - CPLSPrintf
    - auto::IsProjected
    - std::move
    - OGRGeomFieldDefn*::GetSpatialRef
    - strstr
    - CPLStringList::SetNameValue
    - CPLError
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: OGRGeomCoordinatePrecision
    signature: "OGRGeomCoordinatePrecision GDBGridSettingsFromOGR(const OGRGeomFieldDefn
      *poSrcGeomFieldDefn,\n                       CSLConstList aosLayerCreationOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_gdbtoogrfieldtype.h:110,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_gdbtoogrfieldtype.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - gdbType
    - pOut
    - pSubType
    argTypes:
    - std::string
    - OGRFieldType*
    - OGRFieldSubType*
    constantsTouched: []
    func_position:
      end: 115
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 115
    functionName: GDBToOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_gdbtoogrfieldtype.h
    functionUses: 1
    functionsReached:
    - CPLError
    - c_str
    linkageType: ''
    returnType: bool
    signature: "bool GDBToOGRFieldType(const std::string &gdbType, OGRFieldType *pOut,\n
      \                             OGRFieldSubType *pSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:25,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:27,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:27,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:27,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:33,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:33,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:34,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:36,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:36,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:37,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:39,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:39,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:40,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:42,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:42,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:43,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:45,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:45,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:46,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:48,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:48,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:49,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:51,1
    - Dst: std::unique_ptr<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:51,1
    - Dst: FileGDBField::FileGDBField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:52,1
    - Dst: std::unique_ptr<FileGDBGeomField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:55,1
    - Dst: FileGDBGeomField::FileGDBGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:55,1
    - Dst: auto::SetZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:58,1
    - Dst: auto::SetMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:59,1
    - Dst: FileGDBTable::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:61,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:61,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:64,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:70,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:80,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:80,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:82,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:84,1
    - Dst: OGRMultiPoint::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:85,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:85,1
    - Dst: OGRMultiPoint::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:86,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:86,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:87,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:89,1
    - Dst: OGRLineString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:90,1
    - Dst: OGRLineString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:91,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:92,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:94,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:95,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:96,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:97,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:98,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:101,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:102,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:103,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:104,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:105,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:106,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:107,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:108,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:109,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:113,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:114,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:115,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:116,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:117,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:118,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:119,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:120,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:121,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:122,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:123,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:124,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:125,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:126,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:127,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:131,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:132,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:133,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:134,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:135,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:136,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:137,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:138,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:139,1
    - Dst: OGRMultiPolygon::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:140,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:141,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:145,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:147,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:148,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:149,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:150,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:151,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:152,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:153,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:154,1
    - Dst: OGRMultiPolygon::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:155,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:158,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:159,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:160,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:161,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:162,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:163,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:164,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:165,1
    - Dst: OGRMultiPolygon::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:166,1
    - Dst: FileGDBTable::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 172
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/test_ofgdb_write.cpp
    functionUses: 12
    functionsReached:
    - std::unique_ptr<FileGDBGeomField>
    - OGRMultiPoint::OGRMultiPoint
    - reinterpret_cast<GByte *>
    - OGRMultiLineString::addGeometry
    - OGRMultiPolygon::addGeometryDirectly
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - FileGDBGeomField::FileGDBGeomField
    - OGRMultiPoint::addGeometryDirectly
    - std::unique_ptr<FileGDBField>
    - OGRPoint::OGRPoint
    - std::move
    - auto::SetMOriginScaleTolerance
    - OGRLineString::OGRLineString
    - FileGDBTable::CreateFeature
    - OGRMultiLineString::OGRMultiLineString
    - OGRLineString::addPoint
    - OGRLinearRing::OGRLinearRing
    - FileGDBTable::CreateField
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRPolygon::addRingDirectly
    - const_cast<char *>
    - FileGDBTable::Create
    - auto::SetZOriginScaleTolerance
    - FileGDBField::FileGDBField
    - OGRLinearRing*::addPoint
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:27,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:32,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:33,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:39,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:45,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:46,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:47,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:55,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:56,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:63,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:63,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:69,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:71,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:73,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:75,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:77,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:89,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:90,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:92,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:93,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:94,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:99,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:106,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:106,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:114,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:125,1
    - Dst: OGROpenFileGDBDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:132,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:133,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 43
    argCount: 2
    argNames:
    - poOpenInfo
    - pszFilename
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 142
    functionName: OGROpenFileGDBDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - VSIStatL
    - CPLGetFilename
    - ENDS_WITH
    - CPLStringList::size
    - CPLStringList::empty
    - EQUAL
    - OGROpenFileGDBDriverIdentify
    - strstr
    - STARTS_WITH
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: GDALIdentifyEnum
    signature: "GDALIdentifyEnum OGROpenFileGDBDriverIdentify(GDALOpenInfo *poOpenInfo,\n
      \                                             const char *&pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: OGROpenFileGDBDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp
    functionUses: 2
    functionsReached:
    - OGROpenFileGDBDriverIdentify
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:163,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:164,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:166,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:168,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:169,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:170,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:171,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:172,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:175,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:178,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:180,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:183,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:187,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:192,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:193,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:194,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:195,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:196,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:197,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:199,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:200,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:201,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:202,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:203,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:206,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:209,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:211,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:214,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:215,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:217,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:230,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:295,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:296,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:307,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:308,1
    - Dst: GDALDriver*::DeclareAlgorithm
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 311
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 311
    functionName: OGROpenFileGDBDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::DeclareAlgorithm
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:320,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:324,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:326,1
    - Dst: OGROpenFileGDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:329,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: DeclareDeferredOGROpenFileGDBPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdrivercore.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGROpenFileGDBPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:59,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nSize
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: OpenFileGDB::FindFreelistRangeSlot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - static_cast<int>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int FindFreelistRangeSlot(uint32_t nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:77,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:77,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:78,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:82,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:86,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:87,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:91,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:92,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:94,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:94,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:94,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:95,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:95,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:95,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:97,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:105,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:106,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:109,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:113,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:115,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:115,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:115,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:117,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:125,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:128,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:148,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:149,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:150,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:155,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:162,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:162,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:166,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:166,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:167,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:168,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:168,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:168,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:170,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:174,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:174,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:178,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:180,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:181,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:182,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:187,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:195,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:196,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:196,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:202,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:205,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:205,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:206,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:206,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:206,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:208,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:214,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:215,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:218,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:219,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:219,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:219,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:221,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:228,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 84
    argCount: 2
    argNames:
    - nOffset
    - nSize
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 229
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 229
    functionName: OpenFileGDB::FileGDBTable::AddEntryToFreelist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - assert
    - VSIFTellL
    - static_cast<uint32_t>
    - std::vector::clear
    - std::string::c_str
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - GetUInt32
    - std::vector::data
    - c_str
    - static_cast<int>
    - VSIFSeekL
    - static_cast<uint64_t>
    - VSIFOpenL
    - CPLAssert
    - VSIFReadL
    - std::vector::resize
    - VSIFCloseL
    - CPLResetExtensionSafe
    - VSIFWriteL
    - WriteUInt32
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::AddEntryToFreelist(uint64_t nOffset, uint32_t nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:242,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:242,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:243,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:243,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:249,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:250,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:254,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:258,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:260,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:260,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:260,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:262,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:270,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:273,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:273,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:273,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:274,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:281,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:285,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:285,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:287,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:287,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:287,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:289,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:324,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:327,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:362,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:363,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:364,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:367,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:372,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:372,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:373,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:373,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:373,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:375,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:391,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:397,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:398,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:407,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:407,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:409,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:411,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:415,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:415,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:420,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:425,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:425,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:426,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:426,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:426,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:426,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:436,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:439,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:439,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:440,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:440,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:440,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:440,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:443,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:448,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:449,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:449,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:451,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:451,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:451,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:452,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:457,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:465,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:466,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:471,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:480,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:480,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:491,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:492,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:493,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:493,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:493,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:499,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:501,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:507,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:507,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:515,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:519,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:519,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:522,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 136
    argCount: 1
    argNames:
    - nSize
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 524
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 524
    functionName: OpenFileGDB::FileGDBTable::GetOffsetOfFreeAreaFromFreeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPL_ARRAYSIZE
    - std::vector::size
    - assert
    - std::set::insert
    - CPLDebug
    - VSIFTellL
    - static_cast<uint32_t>
    - CPLError
    - std::string::c_str
    - cpl::contains
    - std::move
    - cpl::fits_on<int>
    - ReadUInt32
    - std::vector::data
    - GetUInt32
    - c_str
    - static_cast<int>
    - VSIFSeekL
    - static_cast<uint64_t>
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    - memmove
    - VSIFCloseL
    - CPLResetExtensionSafe
    - VSIFWriteL
    - memset
    - WriteUInt32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FileGDBTable::GetOffsetOfFreeAreaFromFreeList(uint32_t nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:533,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:533,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:534,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:534,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:539,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:544,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:545,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:549,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:551,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:551,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:551,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:553,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:554,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:558,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:560,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:562,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:573,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:575,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:577,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:581,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:581,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:582,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:582,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:582,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:584,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:586,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:590,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:592,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:592,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:594,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:596,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:600,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:600,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:617,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:619,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:622,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:626,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:626,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:627,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:627,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:627,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:629,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:631,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:635,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:642,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:646,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:654,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:655,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:655,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:660,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:664,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:672,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:674,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:676,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:679,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:680,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:684,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:684,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:687,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:691,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:693,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:697,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:699,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:702,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:703,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:706,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:709,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:709,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:717,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:720,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:726,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:728,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:730,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:730,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:731,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:732,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:736,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 738
    functionName: OpenFileGDB::FileGDBTable::CheckFreeListConsistency
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPL_ARRAYSIZE
    - std::set::size
    - std::vector::size
    - std::set::insert
    - assert
    - VSIFTellL
    - static_cast<uint32_t>
    - CPLError
    - std::string::c_str
    - cpl::contains
    - ReadUInt32
    - GetUInt32
    - std::vector::data
    - c_str
    - static_cast<int>
    - VSIFSeekL
    - static_cast<uint64_t>
    - VSIFOpenL
    - VSIFReadL
    - VSIFCloseL
    - CPLResetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::CheckFreeListConsistency()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:748,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:748,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 749
    functionName: OpenFileGDB::FileGDBTable::DeleteFreeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_freelist.cpp
    functionUses: 0
    functionsReached:
    - CPLResetExtensionSafe
    - VSIUnlink
    - c_str
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::DeleteFreeList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:27,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:27,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:28,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:34,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:34,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:37,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:48,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:57,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:66,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:71,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:75,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:79,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:85,1
    - Dst: GDALRelationship::GDALRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:90,1
    - Dst: std::unique_ptr::SetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:97,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:109,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:117,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:131,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:135,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:138,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:140,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:144,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:152,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:173,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:177,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:183,1
    - Dst: std::unique_ptr::SetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:191,1
    - Dst: std::unique_ptr::SetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:192,1
    - Dst: std::unique_ptr::SetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:193,1
    - Dst: std::unique_ptr::SetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:194,1
    - Dst: std::unique_ptr::SetForwardPathLabel
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:200,1
    - Dst: std::unique_ptr::SetBackwardPathLabel
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:211,1
    - Dst: std::unique_ptr::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:213,1
    - Dst: std::unique_ptr::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:217,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:223,1
    - Dst: std::unique_ptr::SetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:225,1
    - Dst: std::unique_ptr::SetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:229,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 102
    argCount: 1
    argNames:
    - domainDef
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 232
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 232
    functionName: ParseXMLRelationshipDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h
    functionUses: 1
    functionsReached:
    - std::unique_ptr::SetType
    - std::unique_ptr::SetBackwardPathLabel
    - std::unique_ptr::SetRightMappingTableFields
    - CPLGetXMLNode
    - std::vector::emplace_back
    - CPLParseXMLString
    - EQUAL
    - strcmp
    - std::unique_ptr::SetLeftTableFields
    - std::unique_ptr::SetLeftMappingTableFields
    - std::unique_ptr::SetForwardPathLabel
    - CPLXMLTreeCloser::get
    - std::unique_ptr::SetRightTableFields
    - CPLError
    - std::unique_ptr::SetRelatedTableType
    - std::string::c_str
    - std::unique_ptr::SetMappingTableName
    - GDALRelationship::GDALRelationship
    linkageType: ''
    returnType: std::unique_ptr<GDALRelationship>
    signature: std::unique_ptr<GDALRelationship> ParseXMLRelationshipDef(const std::string
      &domainDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:247,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:249,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:252,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:254,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:256,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:256,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:259,1
    - Dst: GDALRelationship*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:260,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:260,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:261,1
    - Dst: GDALRelationship*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:262,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:263,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:264,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:266,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:267,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:268,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:269,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:270,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:271,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:273,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:276,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:277,1
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:282,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:285,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:286,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:292,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:293,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:295,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:296,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:305,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:306,1
    - Dst: GDALRelationship*::GetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:308,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:310,1
    - Dst: GDALRelationship*::GetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:312,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:312,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:317,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:318,1
    - Dst: GDALRelationship*::GetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:320,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:322,1
    - Dst: GDALRelationship*::GetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:324,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:324,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:329,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:332,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:333,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:336,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:337,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:340,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:341,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:342,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:343,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:344,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:347,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:348,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:351,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:352,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:356,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:357,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:360,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:361,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:362,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:363,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:364,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:365,1
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:367,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:370,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:374,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:378,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:386,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:388,1
    - Dst: GDALRelationship*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:390,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:393,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:397,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:406,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:407,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:408,1
    - Dst: GDALRelationship*::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:409,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:412,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:413,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:415,1
    - Dst: GDALRelationship*::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:416,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:418,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:419,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:420,1
    - Dst: GDALRelationship*::GetForwardPathLabel
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:421,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:422,1
    - Dst: GDALRelationship*::GetBackwardPathLabel
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:423,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:425,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:428,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:429,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:432,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:434,1
    - Dst: GDALRelationship*::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:436,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:438,1
    - Dst: GDALRelationship*::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:440,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:440,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:442,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:444,1
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:447,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:450,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:452,1
    - Dst: GDALRelationship*::GetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:454,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:456,1
    - Dst: GDALRelationship*::GetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:458,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:458,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:460,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:462,1
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:466,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:469,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:471,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:473,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:475,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:477,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:477,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:479,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:481,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:487,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:488,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:491,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:493,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:495,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:497,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:499,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:499,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:501,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:503,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:506,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:508,1
    - Dst: GDALRelationship*::GetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:510,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:512,1
    - Dst: GDALRelationship*::GetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:514,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:514,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:516,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:518,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:524,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:525,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:528,1
    - Dst: GDALRelationship*::GetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:530,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:531,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:532,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:536,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 129
    argCount: 4
    argNames:
    - poRelationship
    - iDsid
    - osMappingTableOidName
    - failureReason
    argTypes:
    - GDALRelationship*
    - int
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 538
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 538
    functionName: BuildXMLRelationshipDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h
    functionUses: 2
    functionsReached:
    - CPLString
    - CPLXMLTreeCloser::get
    - std::string::c_str
    - CPLCreateXMLElementAndValue
    - GDALRelationship*::GetBackwardPathLabel
    - GDALRelationship*::GetRightTableName
    - GDALRelationship*::GetName
    - GDALRelationship*::GetCardinality
    - GDALRelationship*::GetLeftTableName
    - c_str
    - GDALRelationship*::GetLeftMappingTableFields
    - GDALRelationship*::GetForwardPathLabel
    - GDALRelationship*::GetRelatedTableType
    - CPLFree
    - CPLAddXMLAttributeAndValue
    - CPLCreateXMLNode
    - GDALRelationship*::GetRightTableFields
    - GDALRelationship*::GetRightMappingTableFields
    - GDALRelationship*::GetType
    - GDALRelationship*::GetLeftTableFields
    linkageType: ''
    returnType: std::string
    signature: "std::string BuildXMLRelationshipDef(const GDALRelationship *poRelationship,
      int iDsid,\n                        const std::string &osMappingTableOidName,\n
      \                       std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:549,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:550,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:552,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:554,1
    - Dst: GDALRelationship*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:555,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:556,1
    - Dst: GDALRelationship*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:557,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:557,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:558,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:559,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:560,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:561,1
    - Dst: GDALRelationship*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:562,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:563,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:564,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:567,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:568,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:569,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:570,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:571,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:572,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:574,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:575,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:578,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:579,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:581,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:582,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:583,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:584,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:585,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:587,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:588,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:589,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:590,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:591,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:592,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:593,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:594,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:595,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:596,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - poRelationship
    argTypes:
    - GDALRelationship*
    constantsTouched: []
    func_position:
      end: 602
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 602
    functionName: BuildXMLRelationshipItemInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h
    functionUses: 1
    functionsReached:
    - CPLCreateXMLElementAndValue
    - c_str
    - CPLCreateXMLNode
    - GDALRelationship*::GetName
    - CPLXMLTreeCloser::get
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: std::string
    signature: "std::string BuildXMLRelationshipItemInfo(const GDALRelationship *poRelationship,\n
      \                            std::string & /*failureReason*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:612,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:613,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:615,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:617,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:618,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:619,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:620,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:621,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:624,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:625,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 631
    functionName: BuildXMLRelationshipDocumentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_relationship.h
    functionUses: 1
    functionsReached:
    - CPLCreateXMLElementAndValue
    - CPLCreateXMLNode
    - CPLXMLTreeCloser::get
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: std::string
    signature: "std::string BuildXMLRelationshipDocumentation(const GDALRelationship
      * /*poRelationship*/,\n                                  std::string & /*failureReason*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:39,1
    - Dst: static_cast<time_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct CPLTimeVal*
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: CPLGettimeofday
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp
    functionUses: 4
    functionsReached:
    - static_cast<time_t>
    - _ftime
    linkageType: ''
    returnType: int
    signature: int CPLGettimeofday(struct CPLTimeVal *tp, void * /* timezonep*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:60,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:69,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:80,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:81,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:91,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:95,1
    - Dst: reproducibleRand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:102,1
    - Dst: dis
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:102,1
    - Dst: reproducibleRand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:107,1
    - Dst: dis
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:107,1
    - Dst: reproducibleRand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:112,1
    - Dst: dis
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:112,1
    - Dst: CPLGettimeofday
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:119,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:123,1
    - Dst: dis2
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:128,1
    - Dst: reproducibleRand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:131,1
    - Dst: dis
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:131,1
    - Dst: reproducibleRand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:136,1
    - Dst: dis
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:136,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - bInit
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 145
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 145
    functionName: std::string OFGDBGenerateUUID(bool bInit)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdb_generate_uuid.cpp
    functionUses: 0
    functionsReached:
    - reproducibleRand
    - static_cast<unsigned>
    - static_cast<uint64_t>
    - CPLGettimeofday
    - dis2
    - static_cast<uint32_t>
    - std::stringstream::str
    - std::string
    - memset
    - dis
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW std::string OFGDBGenerateUUID(bool
      bInit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:41,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:48,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:49,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:49,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:52,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:52,1
    - Dst: OGROpenFileGDBDriverOpen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:55,1
    - Dst: std::make_unique<OGROpenFileGDBDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:59,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:61,1
    - Dst: auto::GetSubdatasets
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:63,1
    - Dst: auto::GetSubdatasets
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:67,1
    - Dst: std::make_unique<OGROpenFileGDBDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:69,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:70,1
    - Dst: auto::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:72,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:76,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:79,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:83,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:87,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:88,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:89,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 95
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 95
    functionName: OGROpenFileGDBDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 1
    functionsReached:
    - CPLStringList::CPLStringList
    - c_str
    - auto::release
    - CPLGetFilename
    - auto::Open
    - GetGDALDriverManager
    - EQUAL
    - OGROpenFileGDBDriverIdentify
    - OGROpenFileGDBDriverOpen
    - CPLString
    - auto::GetSubdatasets
    - CPLStringList::SetNameValue
    - STARTS_WITH
    - std::make_unique<OGROpenFileGDBDataSource>
    - auto::SetDescription
    - auto::reset
    - CPLStringList::List
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROpenFileGDBDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:109,1
    - Dst: std::make_unique<OGROpenFileGDBDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:114,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:115,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - eType
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: OGROpenFileGDBDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::release
    - std::make_unique<OGROpenFileGDBDataSource>
    - auto::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGROpenFileGDBDriverCreate(const char *pszName, int nXSize,\n
      \                                              int nYSize, int nBands,\n                                               GDALDataType
      eType,\n                                               char ** /* papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:127,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:130,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:132,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:132,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:136,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:138,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:139,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: OGROpenFileGDBDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - CPLStringList::empty
    - strcmp
    - VSIRmdir
    - CPLError
    - CPLStringList::size
    - std::string::c_str
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROpenFileGDBDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddProgressArg
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:168,1
    - Dst: AddArg
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:172,1
    - Dst: _
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:172,1
    - Dst: SetAutoCompleteFunctionForFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: OpenFileGDBRepackAlgorithm::OpenFileGDBRepackAlgorithm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - AddArg
    - SetAutoCompleteFunctionForFilename
    - AddProgressArg
    - _
    linkageType: ''
    returnType: void
    signature: void OpenFileGDBRepackAlgorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGROpenFileGDBDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:189,1
    - Dst: GetDatasetRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:189,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:192,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:193,1
    - Dst: auto::GetLayers
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:198,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:206,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:209,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pfnProgress
    - pProgressData
    argTypes:
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 216
    functionName: OpenFileGDBRepackAlgorithm::RunImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - GDALDestroyScaledProgress
    - GetDatasetRef
    - dynamic_cast<OGROpenFileGDBDataSource *>
    - auto::GetLayers
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool OpenFileGDBRepackAlgorithm::RunImpl(GDALProgressFunc pfnProgress,\n
      \                                        void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:225,1
    - Dst: std::make_unique<OpenFileGDBRepackAlgorithm>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aosPath
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: OGROpenFileGDBInstantiateAlgorithm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OpenFileGDBRepackAlgorithm>
    - std::vector<std::string>::size
    linkageType: ''
    returnType: GDALAlgorithm
    signature: 'GDALAlgorithm *

      OGROpenFileGDBInstantiateAlgorithm(const std::vector<std::string> &aosPath)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:242,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:245,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:248,1
    - Dst: OGROpenFileGDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:249,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 257
    functionName: RegisterOGROpenFileGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGROpenFileGDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: '&GetFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: '&GetXMLDefinition()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetXMLDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: '&GetXMLDocumentation()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetXMLDocumentation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: OGROpenFileGDBLayer::GetAttrIndexUse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetAttrIndexUse()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OGROpenFileGDBLayer::GetSpatialIndexState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SPIState
    signature: SPIState GetSpatialIndexState() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: OGROpenFileGDBLayer::IsValidLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    linkageType: ''
    returnType: int
    signature: int IsValidLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: OGROpenFileGDBLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poLayer
    - pszNameIn
    - eGeomTypeIn
    argTypes:
    - OGROpenFileGDBLayer*
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: OGROpenFileGDBGeomFieldDefn::OGROpenFileGDBGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBGeomFieldDefn(OGROpenFileGDBLayer *poLayer,\n                                const
      char *pszNameIn,\n                                OGRwkbGeometryType eGeomTypeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: OGROpenFileGDBGeomFieldDefn::UnsetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnsetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: OGROpenFileGDBGeomFieldDefn::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - BuildLayerDefinition
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_osDefinition::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:350,1
    - Dst: BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: OGROpenFileGDBFeatureDefn::LazyGeomInit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - m_osDefinition::empty
    - BuildLayerDefinition
    linkageType: ''
    returnType: void
    signature: void LazyGeomInit() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poLayer
    - pszName
    - bHasBuiltFieldDefn
    argTypes:
    - OGROpenFileGDBLayer*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: OGROpenFileGDBFeatureDefn::OGROpenFileGDBFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBFeatureDefn(OGROpenFileGDBLayer *poLayer, const
      char *pszName,\n                              bool bHasBuiltFieldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:371,1
    - Dst: cpl::down_cast<OGROpenFileGDBGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:372,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: OGROpenFileGDBFeatureDefn::UnsetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - get
    - empty
    - cpl::down_cast<OGROpenFileGDBGeomFieldDefn *>
    linkageType: ''
    returnType: void
    signature: void UnsetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:383,1
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: OGROpenFileGDBFeatureDefn::GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - BuildLayerDefinition
    - OGRFeatureDefn::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int GetFieldCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBFeatureDefn::LazyGeomInit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:390,1
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: OGROpenFileGDBFeatureDefn::GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBFeatureDefn::LazyGeomInit
    - OGRFeatureDefn::GetGeomFieldCount
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBFeatureDefn::LazyGeomInit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:396,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: OGROpenFileGDBFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBFeatureDefn::LazyGeomInit
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *GetGeomFieldDefn(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBFeatureDefn::LazyGeomInit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:402,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: OGROpenFileGDBFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBFeatureDefn::LazyGeomInit
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: OGRGeomFieldDefn
    signature: OGRGeomFieldDefn *GetGeomFieldDefn(int i) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: '&GetLayers()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<OGROpenFileGDBLayer>>
    signature: std::vector<std::unique_ptr<OGROpenFileGDBLayer>> &GetLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:525,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: OGROpenFileGDBDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: OGROpenFileGDBDataSource::GetRootGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: std::shared_ptr<GDALGroup> GetRootGroup() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: '&GetSubdatasets() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList &GetSubdatasets() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: OGROpenFileGDBDataSource::IsInTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInTransaction() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: '&GetBackupDirName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetBackupDirName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: OGROpenFileGDBSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: OGROpenFileGDBSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: OGROpenFileGDBSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: GDALOpenFileGDBRasterAttributeTable::GDALOpenFileGDBRasterAttributeTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GDALOpenFileGDBRasterAttributeTable(\n        const GDALOpenFileGDBRasterAttributeTable
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 709
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 709
    functionName: "&\n    operator=(const GDALOpenFileGDBRasterAttributeTable &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALOpenFileGDBRasterAttributeTable
    signature: "GDALOpenFileGDBRasterAttributeTable &\n    operator=(const GDALOpenFileGDBRasterAttributeTable
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:716,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - osVATTableName
    - poVATLayer
    argTypes:
    - std::unique_ptr<OGROpenFileGDBDataSource>
    - std::string
    - std::unique_ptr<OGRLayer>
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: GDALOpenFileGDBRasterAttributeTable::GDALOpenFileGDBRasterAttributeTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void GDALOpenFileGDBRasterAttributeTable(\n        std::unique_ptr<OGROpenFileGDBDataSource>
      &&poDS,\n        const std::string &osVATTableName,\n        std::unique_ptr<OGRLayer>
      &&poVATLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: GDALOpenFileGDBRasterAttributeTable::GetColumnCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int GetColumnCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:730,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: GDALOpenFileGDBRasterAttributeTable::GetRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GetFeatureCount
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetRowCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterAttributeTable::GetColumnCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:735,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: GDALOpenFileGDBRasterAttributeTable::GetNameOfCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - GDALOpenFileGDBRasterAttributeTable::GetColumnCount
    linkageType: ''
    returnType: char
    signature: char *GetNameOfCol(int iCol) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - iCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 746
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 746
    functionName: GDALOpenFileGDBRasterAttributeTable::GetUsageOfCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: GDALRATFieldUsage
    signature: GDALRATFieldUsage GetUsageOfCol(int iCol) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:751,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - eUsage
    argTypes:
    - GDALRATFieldUsage
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: GDALOpenFileGDBRasterAttributeTable::GetColOfUsage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int GetColOfUsage(GDALRATFieldUsage eUsage) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterAttributeTable::GetColumnCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:759,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - iCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 771
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 771
    functionName: GDALOpenFileGDBRasterAttributeTable::GetTypeOfCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - GDALOpenFileGDBRasterAttributeTable::GetColumnCount
    linkageType: ''
    returnType: GDALRATFieldType
    signature: GDALRATFieldType GetTypeOfCol(int iCol) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:776,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:776,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:777,1
    - Dst: auto::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:779,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - iRow
    - iField
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 781
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 781
    functionName: GDALOpenFileGDBRasterAttributeTable::GetValueAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - c_str
    - std::unique_ptr<OGRFeature>
    - auto::GetFieldCount
    - auto::GetFieldAsString
    - GetFeature
    linkageType: ''
    returnType: char
    signature: char *GetValueAsString(int iRow, int iField) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:786,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:786,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:787,1
    - Dst: auto::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - iRow
    - iField
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: GDALOpenFileGDBRasterAttributeTable::GetValueAsInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - auto::GetFieldAsInteger
    - GetFeature
    - std::unique_ptr<OGRFeature>
    - auto::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int GetValueAsInt(int iRow, int iField) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:795,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:795,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:796,1
    - Dst: auto::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - iRow
    - iField
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 799
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 799
    functionName: GDALOpenFileGDBRasterAttributeTable::GetValueAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - auto::GetFieldAsDouble
    - GetFeature
    - std::unique_ptr<OGRFeature>
    - auto::GetFieldCount
    linkageType: ''
    returnType: double
    signature: double GetValueAsDouble(int iRow, int iField) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 805
    functionName: GDALOpenFileGDBRasterAttributeTable::SetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetValue(int, int, const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: GDALOpenFileGDBRasterAttributeTable::SetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetValue(int, int, int) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: GDALOpenFileGDBRasterAttributeTable::SetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetValue(int, int, double) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: GDALOpenFileGDBRasterAttributeTable::ChangesAreWrittenToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ChangesAreWrittenToFile() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: GDALOpenFileGDBRasterAttributeTable::SetTableType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetTableType(const GDALRATTableType) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: GDALOpenFileGDBRasterAttributeTable::GetTableType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRATTableType
    signature: GDALRATTableType GetTableType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 839
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 839
    functionName: GDALOpenFileGDBRasterAttributeTable::RemoveStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void RemoveStatistics() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:875,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: GDALOpenFileGDBRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetOverviewCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:880,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 882
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 882
    functionName: GDALOpenFileGDBRasterBand::GetOverview
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    - get
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetOverview(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand::GetMaskBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: GDALOpenFileGDBRasterBand::GetMaskBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GDALRasterBand::GetMaskBand
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetMaskBand() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand::GetMaskFlags
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 892
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 892
    functionName: GDALOpenFileGDBRasterBand::GetMaskFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached:
    - GDALRasterBand::GetMaskFlags
    linkageType: ''
    returnType: int
    signature: int GetMaskFlags() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: GDALOpenFileGDBRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetNoDataValue(int *pbHasNoData) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osParentName
    - pszName
    argTypes:
    - std::string
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: OGROpenFileGDBGroup::OGROpenFileGDBGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBGroup(const std::string &osParentName, const char
      *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osDefinition
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: OGROpenFileGDBGroup::SetDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDefinition(const std::string &osDefinition)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: '&GetDefinition() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetDefinition() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: OGROpenFileGDBDataSource::OGROpenFileGDBDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDataSource::OGROpenFileGDBDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: OGROpenFileGDBDataSource::~OGROpenFileGDBDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDataSource::~OGROpenFileGDBDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:108,1
    - Dst: OGROpenFileGDBDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:110,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:113,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:114,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:115,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: OGROpenFileGDBDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 2
    functionsReached:
    - GDALDataset::Close
    - OGROpenFileGDBDataSource::FlushCache
    - CSLDestroy
    - OGROpenFileGDBDataSource::RollbackTransaction
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROpenFileGDBDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:130,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:130,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: OGROpenFileGDBDataSource::FileExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIStatExL
    - CSLFindString
    - CPLGetFilename
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBDataSource::FileExists(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:148,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:156,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:158,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:160,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:160,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:174,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:187,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:189,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:189,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:190,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:192,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:193,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:196,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:196,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:197,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:201,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:201,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:202,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:207,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:216,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:216,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:217,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:217,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:217,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:219,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:235,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:238,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:239,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:241,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:245,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:252,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:257,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:264,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:268,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:272,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:273,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:273,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:274,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:274,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:277,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:280,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:284,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:285,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:286,1
    - Dst: auto::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:287,1
    - Dst: auto::IsValidLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:288,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:292,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:292,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:301,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:302,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:303,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:315,1
    - Dst: FileGDBTable::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:317,1
    - Dst: FileGDBTable::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:319,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:321,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:328,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:329,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:332,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:333,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:336,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:340,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:341,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:345,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:349,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:350,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:353,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:358,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:367,1
    - Dst: FileGDBTable::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:376,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:406,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:411,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:413,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:416,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:416,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:417,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:418,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:420,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:421,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:421,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:441,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:441,1
    - Dst: OGROpenFileGDBDataSource::IsPrivateLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:444,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:447,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:448,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:449,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:450,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:452,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:453,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:454,1
    - Dst: cpl::down_cast<OGROpenFileGDBGroup *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:458,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:459,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:458,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:461,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:468,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:470,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:471,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:480,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:484,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:495,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 164
    argCount: 2
    argNames:
    - poOpenInfo
    - bRetryFileGDBOut
    argTypes:
    - GDALOpenInfo*
    - bool
    constantsTouched: []
    func_position:
      end: 502
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 502
    functionName: OGROpenFileGDBDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFeatureCount
    - std::vector::size
    - FileGDBTable::SelectRow
    - strcmp
    - CPLError
    - std::vector::push_back
    - STARTS_WITH
    - std::string::c_str
    - FileGDBTable::Close
    - cpl::contains
    - CPLGetExtensionSafe
    - GDALDataset::GetLayerByName
    - sscanf
    - auto::GetLayerDefn
    - std::string::empty
    - Clear
    - VSI_ISDIR
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - std::move
    - strlen
    - CSLTokenizeString2
    - CPLStringList::size
    - auto::IsValidLayerDefn
    - emplace_back
    - FileGDBTable::GetFieldValue
    - c_str
    - static_cast<int>
    - cpl::down_cast<OGROpenFileGDBGroup *>
    - std::make_unique<OGROpenFileGDBLayer>
    - get
    - CPLSPrintf
    - first::c_str
    - OGROpenFileGDBDataSource::FileExists
    - OGROpenFileGDBDataSource::IsPrivateLayerName
    - SetDescription
    - CPLFormFilenameSafe
    - size
    - back
    - CPLGetPathSafe
    - empty
    - VSIStatL
    - FileGDBTable::HasGotError
    - CPLResetExtensionSafe
    - CSLDestroy
    - EQUAL
    - FileGDBTable::GetField
    - push_back
    - VSIReadDir
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::Open(const GDALOpenInfo *poOpenInfo,\n
      \                                   bool &bRetryFileGDBOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:514,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:516,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:520,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:522,1
    - Dst: CPLOPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:523,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:524,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:531,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:533,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:534,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:538,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:540,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:546,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:546,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:554,1
    - Dst: auto::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:561,1
    - Dst: auto::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:561,1
    - Dst: auto::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:581,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:586,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:586,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:587,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:591,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:594,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:597,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:597,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:602,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:602,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:605,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 8
    argNames:
    - osName
    - nInterestTable
    - nCandidateLayers
    - nLayersCDF
    - osDefinition
    - osDocumentation
    - eGeomType
    - osParentDefinition
    argTypes:
    - CPLString
    - int
    - int
    - int
    - CPLString
    - CPLString
    - OGRwkbGeometryType
    - std::string
    constantsTouched: []
    func_position:
      end: 609
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 609
    functionName: OGROpenFileGDBDataSource::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    - CPLDebug
    - auto::GetDriver
    - CPLError
    - std::string::c_str
    - auto::GetMetadataItem
    - end
    - find
    - GetGDALDriverManager
    - CPLString::c_str
    - emplace_back
    - std::make_unique<OGROpenFileGDBLayer>
    - OGROpenFileGDBDataSource::FileExists
    - CPLFormFilenameSafe
    - erase
    - GDALGetDriverByName
    - back
    - CPLResetExtensionSafe
    - auto::GetDescription
    - EQUAL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGROpenFileGDBDataSource::AddLayer(\n    const CPLString
      &osName, int nInterestTable, int &nCandidateLayers,\n    int &nLayersCDF, const
      CPLString &osDefinition,\n    const CPLString &osDocumentation, OGRwkbGeometryType
      eGeomType,\n    const std::string &osParentDefinition)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:615,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 617
    functionName: OGROpenFileGDBGroup::GetGroupNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGROpenFileGDBGroup::GetGroupNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: OGROpenFileGDBGroup::OpenGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: std::shared_ptr<GDALGroup> OGROpenFileGDBGroup::OpenGroup(const std::string
      &osName, CSLConstList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:635,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 637
    functionName: OGROpenFileGDBGroup::GetVectorLayerNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGROpenFileGDBGroup::GetVectorLayerNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: OGROpenFileGDBGroup::OpenVectorLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGROpenFileGDBGroup::OpenVectorLayer(const std::string &osName,\n
      \                                              CSLConstList) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:660,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:664,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:665,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:672,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:683,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:684,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:685,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:686,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:687,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:690,1
    - Dst: std::make_shared<OGROpenFileGDBGroup>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:695,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:695,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:701,1
    - Dst: FileGDBTable::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:703,1
    - Dst: FileGDBTable::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:705,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:711,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:720,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:730,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:739,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:741,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:746,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:754,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:754,1
    - Dst: std::make_shared<OGROpenFileGDBGroup>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:756,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:757,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:757,1
    - Dst: auto::SetDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:758,1
    - Dst: auto::m_apoSubGroups::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:760,1
    - Dst: CPLString::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:764,1
    - Dst: ParseXMLRelationshipDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:767,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:770,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:771,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:771,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:772,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:772,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:781,1
    - Dst: FileGDBTable::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:783,1
    - Dst: FileGDBTable::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:785,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:790,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:792,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:793,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:797,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:802,1
    - Dst: std::string::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:809,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:812,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:814,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:815,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:817,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:820,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:830,1
    - Dst: OGROpenFileGDBDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:833,1
    - Dst: std::shared_ptr::GetDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:836,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:836,1
    - Dst: std::shared_ptr::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:844,1
    - Dst: auto::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:848,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:854,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:855,1
    - Dst: ParseXMLFieldDomainDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:857,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:860,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:861,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:862,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:862,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:862,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:866,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:870,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:875,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:879,1
    - Dst: OGROpenFileGDBDataSource::OpenRaster
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:883,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:890,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:891,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:892,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:894,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:897,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:900,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:900,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:903,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:904,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:918,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:926,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:927,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:928,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:933,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:935,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:939,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:940,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:942,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:947,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:948,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:949,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:951,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:962,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 127
    argCount: 6
    argNames:
    - iGDBItems
    - nInterestTable
    - poOpenInfo
    - osRasterLayerName
    - oSetIgnoredRasterLayerTableNum
    - bRetryFileGDBOut
    argTypes:
    - int
    - int
    - GDALOpenInfo*
    - std::string
    - std::set<int>
    - bool
    constantsTouched: []
    func_position:
      end: 969
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 969
    functionName: OGROpenFileGDBDataSource::OpenFileGDBv10
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::map::end
    - auto::GetName
    - FileGDBTable::SelectRow
    - CPLDebug
    - std::set<int>::insert
    - std::shared_ptr::GetDefinition
    - auto::m_apoSubGroups::emplace_back
    - CPLError
    - CPLXMLTreeCloser::get
    - std::string::c_str
    - std::string::empty
    - end
    - insert
    - OGROpenFileGDBDataSource::AddLayer
    - find
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - std::make_shared<OGROpenFileGDBGroup>
    - std::move
    - auto::SetDefinition
    - OGROpenFileGDBDataSource::OpenRaster
    - FileGDBTable::GetFieldValue
    - c_str
    - ParseXMLFieldDomainDef
    - auto::m_apoLayers::emplace_back
    - CPLSPrintf
    - CPLParseXMLString
    - std::map::find
    - CPLString::tolower
    - strstr
    - CPLFormFilenameSafe
    - SetNameValue
    - ParseXMLRelationshipDef
    - GDALGetDriverByName
    - FileGDBTable::HasGotError
    - CPLGetXMLNode
    - std::pair
    - std::string::rfind
    - std::shared_ptr::m_apoLayers::emplace_back
    - FileGDBTable::GetField
    - std::string
    - std::string::substr
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::OpenFileGDBv10(\n    int iGDBItems,
      int nInterestTable, const GDALOpenInfo *poOpenInfo,\n    const std::string &osRasterLayerName,\n
      \   std::set<int> &oSetIgnoredRasterLayerTableNum, bool &bRetryFileGDBOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<FileGDBTable>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:980,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:982,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:985,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:986,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:987,1
    - Dst: auto::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:992,1
    - Dst: auto::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:993,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:995,1
    - Dst: auto::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1002,1
    - Dst: auto::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1004,1
    - Dst: auto::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1006,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1008,1
    - Dst: auto::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1012,1
    - Dst: auto::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1016,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1020,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1023,1
    - Dst: OGROpenFileGDBDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1024,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1025,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1031,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1031,1
    - Dst: auto::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1036,1
    - Dst: std::make_unique<FileGDBTable>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1038,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1041,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1042,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1043,1
    - Dst: auto::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1050,1
    - Dst: auto::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1051,1
    - Dst: auto::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1052,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1054,1
    - Dst: auto::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1060,1
    - Dst: auto::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1062,1
    - Dst: auto::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1064,1
    - Dst: auto::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1069,1
    - Dst: auto::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1095,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1100,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1100,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1101,1
    - Dst: auto::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1105,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1110,1
    - Dst: OGROpenFileGDBDataSource::OpenRaster
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1114,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1120,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1122,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1123,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1124,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1125,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1126,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1131,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1132,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1134,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1139,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1140,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1141,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1143,1
    - Dst: OGROpenFileGDBDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1151,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1152,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1157,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 95
    argCount: 6
    argNames:
    - iGDBFeatureClasses
    - iGDBObjectClasses
    - nInterestTable
    - poOpenInfo
    - osRasterLayerName
    - oSetIgnoredRasterLayerTableNum
    argTypes:
    - int
    - int
    - int
    - GDALOpenInfo*
    - std::string
    - std::set<int>
    constantsTouched: []
    func_position:
      end: 1162
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1162
    functionName: OGROpenFileGDBDataSource::OpenFileGDBv9
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFieldValue
    - std::vector::size
    - auto::Close
    - std::set<int>::insert
    - CPLDebug
    - strcmp
    - std::vector::push_back
    - CPLError
    - std::string::c_str
    - std::string::empty
    - end
    - auto::HasGotError
    - OGROpenFileGDBDataSource::AddLayer
    - find
    - std::move
    - OGROpenFileGDBDataSource::OpenRaster
    - c_str
    - static_cast<int>
    - std::make_unique<FileGDBTable>
    - auto::Open
    - CPLSPrintf
    - CPLFormFilenameSafe
    - auto::GetField
    - SetNameValue
    - empty
    - auto::SelectRow
    - std::string
    - auto::GetTotalRecordCount
    linkageType: ''
    returnType: int
    signature: "int OGROpenFileGDBDataSource::OpenFileGDBv9(\n    int iGDBFeatureClasses,
      int iGDBObjectClasses, int nInterestTable,\n    const GDALOpenInfo *poOpenInfo,
      const std::string &osRasterLayerName,\n    std::set<int> &oSetIgnoredRasterLayerTableNum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1171,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1177,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 11
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1190
    functionName: OGROpenFileGDBDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1198,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1198,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1201
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1201
    functionName: OGROpenFileGDBDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGROpenFileGDBDataSource::GetLayer(int iIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1211,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1212,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1215,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1216,1
    - Dst: OGROpenFileGDBDataSource::FileExists
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1217,1
    - Dst: std::make_unique<OGROpenFileGDBLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1224
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1224
    functionName: OGROpenFileGDBDataSource::BuildLayerFromName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - std::make_unique<OGROpenFileGDBLayer>
    - CPLSPrintf
    - OGROpenFileGDBDataSource::FileExists
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::unique_ptr<OGROpenFileGDBLayer>
    signature: std::unique_ptr<OGROpenFileGDBLayer> OGROpenFileGDBDataSource::BuildLayerFromName(const
      char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1235,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1235,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1241,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1241,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1242,1
    - Dst: OGROpenFileGDBDataSource::BuildLayerFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1245,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1248,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1248,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1252
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1252
    functionName: OGROpenFileGDBDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 2
    functionsReached:
    - back
    - get
    - OGROpenFileGDBDataSource::BuildLayerFromName
    - EQUAL
    - std::move
    - GetName
    - emplace_back
    linkageType: ''
    returnType: OGROpenFileGDBLayer
    signature: 'OGROpenFileGDBLayer *

      OGROpenFileGDBDataSource::GetLayerByName(const char *pszName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1260,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1264,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1264,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1266
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1266
    functionName: OGROpenFileGDBDataSource::IsPrivateLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLString::size
    - CPLString
    - CPLString::substr
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::IsPrivateLayerName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1274,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1274,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1277,1
    - Dst: OGROpenFileGDBDataSource::IsPrivateLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1279
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1279
    functionName: OGROpenFileGDBDataSource::IsLayerPrivate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - GetName
    - OGROpenFileGDBDataSource::IsPrivateLayerName
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBDataSource::IsLayerPrivate(int iLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1287,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1288,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1290
    functionName: OGROpenFileGDBDataSource::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALDataset::GetMetadata
    - List
    linkageType: ''
    returnType: char
    signature: char **OGROpenFileGDBDataSource::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1298,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1299,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1301,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1301,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1302,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszLayerName
    - pszValIn
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1305
    functionName: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer(\n
      \   const char *pszLayerName, const char *pszValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1314,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1316
    functionName: OGROpenFileGDBSingleFeatureLayer::~OGROpenFileGDBSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBSingleFeatureLayer::~OGROpenFileGDBSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1327,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1329,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1322
    functionDepth: 3
    functionLinenumber: 1322
    functionLinenumberEnd: 1332
    functionName: OGROpenFileGDBSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1363
    functionName: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1370
    functionName: OGROpenFileGDBSimpleSQLLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBSimpleSQLLayer::GetFIDColumn
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1376
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1376
    functionName: OGROpenFileGDBSimpleSQLLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr IGetExtent(int iGeomField, OGREnvelope *psExtent,\n                              bool
      bForce) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 1382
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1382
    functionName: OGROpenFileGDBSimpleSQLLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr IGetExtent3D(int iGeomField, OGREnvelope3D *psExtent,\n                                bool
      bForce) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1397,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1399,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1400,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1404,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1404,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1405,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1405,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1406,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1407,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1409,1
    - Dst: GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1410,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1411,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1412,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1416,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1419,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1420,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1421,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1426,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1427,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1429,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1430,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1434,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1434,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - poBaseLayerIn
    - poIterIn
    - nColumns
    - pasColDefs
    - nOffset
    - nLimit
    argTypes:
    - OGRLayer*
    - FileGDBIterator*
    - int
    - swq_col_def*
    - GIntBig
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1436
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1436
    functionName: OGROpenFileGDBSimpleSQLLayer::OGROpenFileGDBSimpleSQLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
    - GetGeometryColumn
    - SetGeomType
    - GetSpatialRef
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - GetGeomType
    - OGROpenFileGDBSimpleSQLLayer::ResetReading
    - strcmp
    - Reference
    - CPLAssert
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBSimpleSQLLayer::OGROpenFileGDBSimpleSQLLayer(\n
      \   OGRLayer *poBaseLayerIn, FileGDBIterator *poIterIn, int nColumns,\n    const
      swq_col_def *pasColDefs, GIntBig nOffset, GIntBig nLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1449
    functionName: OGROpenFileGDBSimpleSQLLayer::~OGROpenFileGDBSimpleSQLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBSimpleSQLLayer::~OGROpenFileGDBSimpleSQLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1460
    functionName: OGROpenFileGDBSimpleSQLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBSimpleSQLLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1468,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1472,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1476,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1477,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1478,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1482
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1482
    functionName: OGROpenFileGDBSimpleSQLLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBSimpleSQLLayer::GetLayerDefn
    - OGRFeature*::GetFID
    - OGRFeature*::SetFrom
    - OGRFeature::OGRFeature
    - OGRFeature*::SetFID
    - OGROpenFileGDBSimpleSQLLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBSimpleSQLLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBSimpleSQLLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1498,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1510,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1510,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1511,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1518
    functionName: OGROpenFileGDBSimpleSQLLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    - OGROpenFileGDBSimpleSQLLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBSimpleSQLLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1530,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1544
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1544
    functionName: OGROpenFileGDBSimpleSQLLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - GetRowCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROpenFileGDBSimpleSQLLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1553,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1557,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1561,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1571
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1571
    functionName: OGROpenFileGDBSimpleSQLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBSimpleSQLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1585,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1589,1
    - Dst: auto::GetXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1593,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1592,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1596,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1604,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1607,1
    - Dst: auto::GetXMLDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1611,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1610,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1614,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1622,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1625,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1625,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1630,1
    - Dst: auto::GetAttrIndexUse
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1630,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1628,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1641,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1643,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1644,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1649,1
    - Dst: auto::GetSpatialIndexState
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1649,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1647,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1660,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1665,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1662,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1672,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1676,1
    - Dst: auto::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1679,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1681,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1689,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1692,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1695,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1696,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1696,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1697,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1697,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1698,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1699,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1701,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1702,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1703,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1706,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1711,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1711,1
    - Dst: auto::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1714,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1717,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1722,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1731,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1735,1
    - Dst: auto::RecomputeExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1738,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1742,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1751,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1754,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1754,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1756,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1756,1
    - Dst: OGROpenFileGDBDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1758,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1762,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1770,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1774,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1779,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1779,1
    - Dst: auto::CheckFreeListConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1780,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1777,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1782,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1790,1
    - Dst: auto::Repack
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1795,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1798,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1801,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1804,1
    - Dst: OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1811,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1821,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1822,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1823,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1824,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1824,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1826,1
    - Dst: swq_select::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1827,1
    - Dst: reinterpret_cast<OGROpenFileGDBLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1841,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1842,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1848,1
    - Dst: OGROpenFileGDBLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1869,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1872,1
    - Dst: OGROpenFileGDBLayer*::GetMinMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1880,1
    - Dst: OGROpenFileGDBLayer*::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1892,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1905,1
    - Dst: FileGDBDoubleDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1908,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1933,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1935,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1935,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1936,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1937,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1952,1
    - Dst: OGRMemLayer*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1955,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1956,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1956,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1957,1
    - Dst: OGRMemLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1957,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1961,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1967,1
    - Dst: reinterpret_cast<OGROpenFileGDBLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1986,1
    - Dst: OGROpenFileGDBDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1987,1
    - Dst: OGROpenFileGDBLayer*::HasIndexForField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1989,1
    - Dst: OGROpenFileGDBIsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:1997,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2007,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2020,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2030,1
    - Dst: OGROpenFileGDBLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2032,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2036,1
    - Dst: OGROpenFileGDBLayer*::BuildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2049,1
    - Dst: FileGDBIterator*::GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2055,1
    - Dst: OGROpenFileGDBLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2056,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2064,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2068,1
    - Dst: swq_select::column_defs::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2069,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::OGROpenFileGDBSimpleSQLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2067,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2077,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 205
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 2078
      start: 1577
    functionDepth: 3
    functionLinenumber: 1577
    functionLinenumberEnd: 2078
    functionName: OGROpenFileGDBDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - swq_select::result_columns
    - swq_select::swq_select
    - OGROpenFileGDBLayer*::BuildIndex
    - CPLDebug
    - auto::CreateIndex
    - OGROpenFileGDBLayer*::GetFeatureCount
    - OGRMemLayer*::GetFeature
    - CPLString::ifind
    - strcmp
    - OGRMemLayer*::CreateField
    - OGRMemLayer*::SetFeature
    - CPLError
    - OGROpenFileGDBDataSource::GetLayerByName
    - std::string::c_str
    - STARTS_WITH
    - CPLGetConfigOption
    - FileGDBIterator*::GetRowCount
    - auto::CreateSpatialIndex
    - CPLString::substr
    - OGROpenFileGDBLayer*::GetMinMaxSumCount
    - std::string::find
    - swq_select::preparse
    - auto::GetXMLDefinition
    - OGRMemLayer::OGRMemLayer
    - strlen
    - GetName
    - FileGDBDoubleDateToOGRDate
    - std::string::back
    - auto::GetSpatialIndexState
    - OGRMemLayer*::CreateFeature
    - STARTS_WITH_CI
    - static_cast<int>
    - CPLTestBool
    - OGRFieldDefn::GetNameRef
    - reinterpret_cast<OGROpenFileGDBLayer *>
    - CPLSPrintf
    - OGROpenFileGDBSimpleSQLLayer::OGROpenFileGDBSimpleSQLLayer
    - OGRFieldDefn*::GetType
    - OGROpenFileGDBLayer*::GetMinMaxValue
    - CPL_IGNORE_RET_VAL
    - auto::GetAttrIndexUse
    - OGRFeature::OGRFeature
    - auto::GetXMLDocumentation
    - auto::RecomputeExtent
    - size
    - OGROpenFileGDBLayer*::HasIndexForField
    - OGRMemLayer*::GetLayerDefn
    - std::string::size
    - auto::Repack
    - swq_select::column_defs::data
    - OGROpenFileGDBLayer*::GetLayerDefn
    - OGROpenFileGDBDataSource::DeleteLayer
    - OGROpenFileGDBSingleFeatureLayer::OGROpenFileGDBSingleFeatureLayer
    - EQUAL
    - GDALDataset::ExecuteSQL
    - OGROpenFileGDBIsComparisonOp
    - auto::CheckFreeListConsistency
    - OGRFeature*::SetField
    - std::string::substr
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGROpenFileGDBDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                              OGRGeometry *poSpatialFilter,\n
      \                                              const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 2087
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2087
    functionName: OGROpenFileGDBDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2099,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2099,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2101,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2103,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2104,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2108,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2112,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2112,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2114,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2115,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2115,1
    - Dst: CPLStringList::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2118,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2121,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2093
    functionDepth: 1
    functionLinenumber: 2093
    functionLinenumberEnd: 2123
    functionName: OGROpenFileGDBDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - static_cast<int>
    - CPLString::empty
    - CPLFormFilenameSafe
    - strncmp
    - CSLDestroy
    - CPLSPrintf
    - strcmp
    - CPLString::size
    - CPLStringList::StealList
    - strlen
    - CPLStringList::push_back
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **OGROpenFileGDBDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2156,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2157,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2162,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2168,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2176,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2176,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2182,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2188,1
    - Dst: std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2196,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2197,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2198,1
    - Dst: ImportFromCode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2199,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2199,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2201,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                                 OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2211,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2213,1
    - Dst: ImportFromCode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2214,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2214,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                        OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2217,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2219,1
    - Dst: auto::SetCompoundCS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2220,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2221,1
    - Dst: std::unique_ptr::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2221,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2223,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2225,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2225,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2227,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2229,1
    - Dst: std::unique_ptr::IsCompound
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2232,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2235,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2242,1
    - Dst: std::unique_ptr::IsCompound
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2242,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2244,1
    - Dst: OGROpenFileGDBDataSource::BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2244,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2246,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2247
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2247
    functionName: OGROpenFileGDBDataSource::BuildSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - auto::GetName
    - CPLDebug
    - auto::get
    - std::unique_ptr::release
    - std::move
    - std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    - std::unique_ptr::reset
    - SetFromUserInput
    - ImportFromCode
    - std::unique_ptr::SetAxisMappingStrategy
    - std::unique_ptr::GetName
    - auto::SetCompoundCS
    - std::unique_ptr::IsCompound
    - OGROpenFileGDBDataSource::BuildSRS
    - CPLSPrintf
    - "std::unique_ptr<OGRSpatialReference,\n                                                 OGRSpatialReferenceReleaser>"
    - strstr
    - auto::SetAxisMappingStrategy
    - std::unique_ptr::get
    - OGRSpatialReference::OGRSpatialReference
    - "std::unique_ptr<OGRSpatialReference,\n                                        OGRSpatialReferenceReleaser>"
    - std::string
    - importFromEPSG
    linkageType: ''
    returnType: OGRSpatialReference
    signature: 'OGRSpatialReference *

      OGROpenFileGDBDataSource::BuildSRS(const CPLXMLNode *psInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryGet
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2256,1
    - Dst: std::shared_ptr::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2258,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2260,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2261,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2262,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2269,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2269,1
    - Dst: OGRSpatialReference*::FindBestMatch
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2271,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2274,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2276,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2278,1
    - Dst: std::shared_ptr<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2279,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2279,1
    - Dst: OGRSpatialReference*::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp:2283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pszWKT
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2287
      start: 2253
    functionDepth: 1
    functionLinenumber: 2253
    functionLinenumberEnd: 2287
    functionName: OGROpenFileGDBDataSource::BuildSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdbdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<OGRSpatialReference>
    - OGRSpatialReference*::FindBestMatch
    - OGRSpatialReference*::Clone
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference::OGRSpatialReference
    - CPLTestBool
    - OGRSpatialReference*::AutoIdentifyEPSG
    - insert
    - OGRSpatialReference*::importFromWkt
    - OGRSpatialReference*::Release
    - std::shared_ptr::Clone
    - tryGet
    - CPLGetConfigOption
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGROpenFileGDBDataSource::BuildSRS(const char
      *pszWKT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:61,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:71,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:71,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:73,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:80,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:83,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:84,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:84,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:89,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:90,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:93,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:94,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:94,1
    - Dst: OpenFileGDB::FileGDBTable::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:98,1
    - Dst: OpenFileGDB::FileGDBTable::WriteHeaderX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - pszFilename
    - nTablxOffsetSize
    - eTableGeomType
    - bGeomTypeHasZ
    - bGeomTypeHasM
    argTypes:
    - char*
    - int
    - FileGDBTableGeometryType
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 107
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 107
    functionName: OpenFileGDB::FileGDBTable::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLResetExtensionSafe
    - OpenFileGDB::FileGDBTable::WriteHeader
    - OpenFileGDB::FileGDBTable::WriteHeaderX
    - EQUAL
    - VSIFOpenL
    - CPLAssert
    - CPLError
    - std::string::c_str
    - VSIStrerror
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::Create(const char *pszFilename, int nTablxOffsetSize,\n
      \                         FileGDBTableGeometryType eTableGeomType,\n                          bool
      bGeomTypeHasZ, bool bGeomTypeHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: OpenFileGDB::FileGDBTable::SetTextUTF16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::SetTextUTF16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:142,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:162,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:162,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:163,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:168,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:172,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - fpTable
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 174
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 174
    functionName: OpenFileGDB::FileGDBTable::WriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - VSIFWriteL
    - strlen
    - static_cast<uint32_t>
    - VSIFTellL
    - CPLError
    - WriteUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WriteHeader(VSILFILE *fpTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:182,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:183,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:184,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:184,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:185,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:185,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - fpTableX
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: OpenFileGDB::FileGDBTable::WriteHeaderX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - VSIFSeekL
    - static_cast<uint32_t>
    - WriteUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WriteHeaderX(VSILFILE *fpTableX)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::CreateGdbIndexesFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:214,1
    - Dst: OpenFileGDB::FileGDBTable::RefreshIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:220,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFieldDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:224,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:228,1
    - Dst: cpl::down_cast<const FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:230,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:231,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:232,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:232,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:233,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:233,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:234,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:234,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:235,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:235,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:238,1
    - Dst: auto::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:238,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:239,1
    - Dst: auto::GetZMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:239,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:246,1
    - Dst: cpl::down_cast<const FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:249,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:250,1
    - Dst: auto::GetSpatialIndexGridResolution
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:252,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:254,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:260,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:262,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:262,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:264,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:265,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:266,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:268,1
    - Dst: WriteUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:269,1
    - Dst: WriteUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:270,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:272,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:273,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:273,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:279,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:281,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:281,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:283,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:283,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:292,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:293,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:296,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:298,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:298,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:308,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:309,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:310,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:312,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:312,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:328,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:329,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:334,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:337,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:343,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:343,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:344,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:345,1
    - Dst: OpenFileGDB::FileGDBTable::DeleteFreeList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:352,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:356,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:359,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 87
    argCount: 2
    argNames:
    - fpTable
    - fpTableX
    argTypes:
    - VSILFILE*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 362
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 362
    functionName: OpenFileGDB::FileGDBTable::Sync
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 1
    functionsReached:
    - TEST_BIT
    - WriteUInt64
    - auto::GetYMin
    - WriteFloat64
    - auto::GetXMax
    - static_cast<uint32_t>
    - VSIFTellL
    - auto::GetZMin
    - CPLError
    - static_cast<vsi_l_offset>
    - cpl::down_cast<const FileGDBGeomField *>
    - OpenFileGDB::FileGDBTable::CreateGdbIndexesFile
    - auto::GetYMax
    - resize
    - OpenFileGDB::FileGDBTable::DeleteFreeList
    - VSIFSeekL
    - get
    - OpenFileGDB::FileGDBTable::RefreshIndices
    - auto::GetXMin
    - CPLAssert
    - VSIFFlushL
    - OpenFileGDB::FileGDBTable::WriteFieldDescriptors
    - data
    - size
    - empty
    - auto::GetSpatialIndexGridResolution
    - auto::GetZMax
    - max
    - VSIFWriteL
    - WriteUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::Sync(VSILFILE *fpTable, VSILFILE *fpTableX)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:388,1
    - Dst: FileGDBGeomField*::GetXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:392,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:393,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:394,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:395,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:395,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:397,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:398,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:399,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:400,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:400,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:402,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:403,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:404,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:404,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:406,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:407,1
    - Dst: OpenFileGDB::WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:408,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - abyBuffer
    - poGeomField
    - poGeom
    argTypes:
    - std::vector<GByte>
    - FileGDBGeomField*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 411
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 411
    functionName: OpenFileGDB::EncodeEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBGeomField*::GetXOrigin
    - OpenFileGDB::WriteVarUInt
    - FileGDBGeomField*::GetXYScale
    - static_cast<uint64_t>
    - CHECK_CAN_BE_ENCODED_ON_VARUINT
    - FileGDBGeomField*::GetYOrigin
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: bool
    signature: "bool EncodeEnvelope(std::vector<GByte> &abyBuffer,\n                           const
      FileGDBGeomField *poGeomField,\n                           const OGRGeometry
      *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:420,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:422,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:423,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:428,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:428,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:428,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:429,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:431,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:432,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:432,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:434,1
    - Dst: EncodeEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:436,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:440,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:440,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:443,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:449,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:454,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:457,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:459,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:459,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:460,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:461,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:464,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:474,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:479,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:482,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:491,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:496,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:499,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:505,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:507,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:507,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:508,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:509,1
    - Dst: capacity
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:519,1
    - Dst: capacity
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:522,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:522,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:524,1
    - Dst: capacity
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:524,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:526,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:527,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:529,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:531,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:535,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:535,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:544,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:545,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:549,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:550,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:557,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:558,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:562,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:563,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:566,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:567,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:569,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:570,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:572,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:574,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:580,1
    - Dst: FileGDBGeomField*::GetXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:580,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:581,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:583,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:584,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:585,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:587,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:587,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:588,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:590,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:591,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:592,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:596,1
    - Dst: FileGDBGeomField*::GetZOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:596,1
    - Dst: FileGDBGeomField*::GetZScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:597,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:599,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:601,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:602,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:607,1
    - Dst: FileGDBGeomField*::GetMOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:607,1
    - Dst: FileGDBGeomField*::GetMScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:608,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARUINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:610,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:612,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:613,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:626,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:627,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:631,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:632,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:639,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:640,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:644,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:645,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:649,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:650,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:651,1
    - Dst: EncodeEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:655,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:669,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:672,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:674,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:674,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:675,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:676,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:679,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:696,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:699,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:715,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:718,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:733,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:734,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:735,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:736,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:737,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:738,1
    - Dst: dynamic_cast<const OGRCompoundCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:745,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:752,1
    - Dst: ReserveXYZMArrays
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:754,1
    - Dst: dynamic_cast<const OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:760,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:766,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:766,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:767,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:767,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:769,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:769,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:771,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:771,1
    - Dst: dynamic_cast<const OGRCircularString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:775,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:783,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:783,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:784,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:784,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:786,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:786,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:788,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:788,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:794,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:795,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:796,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:797,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:799,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:799,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:800,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:800,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:801,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:808,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:812,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:813,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:813,1
    - Dst: dynamic_cast<const OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:816,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:819,1
    - Dst: ReserveXYZMArrays
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:820,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:823,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:823,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:824,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:824,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:826,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:826,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:828,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:828,1
    - Dst: dynamic_cast<const OGRCircularString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:832,1
    - Dst: ReserveXYZMArrays
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:836,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:839,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:839,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:840,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:840,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:842,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:842,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:844,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:844,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:849,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:851,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:851,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:852,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:853,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:853,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:854,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:854,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:855,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:858,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:859,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:859,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:863,1
    - Dst: OGRGeometry*::toMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:869,1
    - Dst: ProcessCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:872,1
    - Dst: ProcessCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:877,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:877,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:882,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:891,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:892,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:896,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:897,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:904,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:905,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:909,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:909,1
    - Dst: WriteEndOfCurveOrSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:913,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:921,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:922,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:923,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:924,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:925,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:926,1
    - Dst: dynamic_cast<const OGRPolygon *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:934,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:941,1
    - Dst: ReserveXYZMArrays
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:943,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:948,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:959,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:959,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:960,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:960,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:962,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:962,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:964,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:964,1
    - Dst: dynamic_cast<const OGRCurvePolygon *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:969,1
    - Dst: dynamic_cast<const OGRCompoundCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:981,1
    - Dst: auto::getCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:989,1
    - Dst: dynamic_cast<const OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:993,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1003,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1003,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1004,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1004,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1006,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1006,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1008,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1008,1
    - Dst: "dynamic_cast<\n                                             const OGRCircularString
        *>"
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1011,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1024,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1024,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1025,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1025,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1027,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1027,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1029,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1029,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1039,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1041,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1042,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1043,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1045,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1046,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1047,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1048,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1049,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1056,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1060,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1061,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1061,1
    - Dst: dynamic_cast<const OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1065,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1069,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1074,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1074,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1075,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1075,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1077,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1077,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1079,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1079,1
    - Dst: dynamic_cast<const OGRCircularString *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1083,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1091,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1091,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1092,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1092,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1094,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1094,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1096,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1096,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1102,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1103,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1104,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1105,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1107,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1107,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1108,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1108,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1109,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1113,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1114,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1114,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1119,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1125,1
    - Dst: OGRGeometry*::toMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1131,1
    - Dst: ProcessSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1134,1
    - Dst: ProcessSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1139,1
    - Dst: OGRGeometry*::toSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1139,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1144,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1153,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1154,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1158,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1159,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1166,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1167,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1171,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1172,1
    - Dst: WriteEndOfCurveOrSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1176,1
    - Dst: OGRCreateMultiPatch
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1190,1
    - Dst: WriteUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1195,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1195,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1196,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1212,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1214,1
    - Dst: EncodeEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1216,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1223,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1229,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1240,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1243,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1245,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1246,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1247,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1248,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1251,1
    - Dst: CHECK_CAN_BE_ENCODED_ON_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1265,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1279,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 431
    argCount: 2
    argNames:
    - poGeomField
    - poGeom
    argTypes:
    - FileGDBGeomField*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1284
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 1284
    functionName: OpenFileGDB::FileGDBTable::EncodeGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsMeasured
    - FileGDBGeomField*::GetXYScale
    - OGRGeometry*::toMultiPoint
    - WriteFloat64
    - dynamic_cast<const OGRPolygon *>
    - static_cast<uint32_t>
    - reserve
    - CPLError
    - simple_max
    - ReserveXYZMArrays
    - EncodeEnvelope
    - end
    - FileGDBGeomField*::GetXOrigin
    - insert
    - OGRCreateMultiPatch
    - CHECK_CAN_BE_ENCODED_ON_VARUINT
    - dynamic_cast<const OGRCircularString *>
    - auto::getCurve
    - FileGDBGeomField*::GetZScale
    - dynamic_cast<const OGRCompoundCurve *>
    - OGRGeometry*::Is3D
    - WriteVarUInt
    - wkbFlatten
    - ProcessCurve
    - WriteVarInt
    - WriteEndOfCurveOrSurface
    - OGRGeometry*::getGeometryType
    - CHECK_CAN_BE_ENCODED_ON_VARINT
    - auto::getZ
    - OGRGeometry*::toMultiSurface
    - static_cast<int>
    - getNumPoints
    - static_cast<uint64_t>
    - FileGDBGeomField*::GetMOrigin
    - begin
    - CPLAssert
    - ProcessSurface
    - FileGDBGeomField*::GetZOrigin
    - auto::getM
    - FileGDBGeomField*::GetMScale
    - size
    - auto::IsEmpty
    - OGRGeometry*::toCurve
    - auto::getNumPoints
    - WriteUInt8
    - empty
    - auto::getX
    - static_cast<uint8_t>
    - dynamic_cast<const OGRCurvePolygon *>
    - OGRGeometry*::toSurface
    - capacity
    - auto::getNumGeometries
    - max
    - "dynamic_cast<\n                                             const OGRCircularString
      *>"
    - std::round
    - auto::getY
    - FileGDBGeomField*::GetYOrigin
    - push_back
    - OGRGeometry*::toPoint
    - OGRGeometry*::toMultiCurve
    - dynamic_cast<const OGRLineString *>
    - WriteUInt32
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::EncodeGeometry(const FileGDBGeomField *poGeomField,\n
      \                                 const OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1293,1
    - Dst: IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1294,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1295,1
    - Dst: BIT_ARRAY_SIZE_IN_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1295,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1298,1
    - Dst: std::vector<OGRField>::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1300,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1300,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1302,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1306,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1306,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1311,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1322,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1332,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1332,1
    - Dst: OpenFileGDB::FileGDBTable::EncodeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1333,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1335,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1338,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1340,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1340,1
    - Dst: auto::SetXYMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1342,1
    - Dst: auto::SetZMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1344,1
    - Dst: auto::SetXYMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1348,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1349,1
    - Dst: auto::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1349,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1350,1
    - Dst: auto::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1350,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1351,1
    - Dst: auto::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1351,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1352,1
    - Dst: auto::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1352,1
    - Dst: auto::SetZMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1353,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1354,1
    - Dst: auto::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1354,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1355,1
    - Dst: auto::GetZMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1355,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1359,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1359,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1362,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1366,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1366,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1367,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1367,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1367,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1368,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1370,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1378,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1379,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1383,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1392,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1396,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1402,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1403,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1409,1
    - Dst: WriteFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1415,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1416,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1422,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1429,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1431,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1432,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1435,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1436,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1438,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1442,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1442,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1443,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1445,1
    - Dst: WriteUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1452,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1461,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1462,1
    - Dst: auto::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1464,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1470,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1476,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1482,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1485,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1486,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1489,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1493,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1493,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1504,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1514,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1519,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1528,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1528,1
    - Dst: WriteInt64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1535,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1541,1
    - Dst: FileGDBOGRTimeToDoubleTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1542,1
    - Dst: WriteFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1548,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1548,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1554,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1555,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1560,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1566,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1573,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1573,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1575,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 161
    argCount: 3
    argNames:
    - asRawFields
    - poGeom
    - iSkipField
    argTypes:
    - std::vector<OGRField>
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 1580
      start: 1290
    functionDepth: 4
    functionLinenumber: 1290
    functionLinenumberEnd: 1580
    functionName: OpenFileGDB::FileGDBTable::EncodeFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 1
    functionsReached:
    - auto::IsNullable
    - auto::SetZMinMax
    - auto::GetYMin
    - auto::GetXMax
    - WriteFloat64
    - auto::GetType
    - auto::get
    - WriteInt64
    - IsNullable
    - auto::SetXYMinMax
    - auto::GetZMin
    - CPLError
    - WriteUTF16String
    - std::isnan
    - sscanf
    - end
    - cpl::down_cast<FileGDBGeomField *>
    - insert
    - auto::GetYMax
    - WriteVarUInt
    - strlen
    - auto::IsHighPrecision
    - resize
    - FileGDBOGRTimeToDoubleTime
    - static_cast<int>
    - static_cast<float>
    - BIT_ARRAY_SIZE_IN_BYTES
    - WriteInt16
    - OpenFileGDB::FileGDBTable::EncodeGeometry
    - min
    - auto::GetXMin
    - CPLAssert
    - begin
    - std::vector<OGRField>::size
    - OGR_RawField_IsNull
    - static_cast<int16_t>
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - size
    - reinterpret_cast<const uint8_t *>
    - static_cast<size_t>
    - static_cast<uint8_t>
    - auto::GetZMax
    - WriteFloat32
    - WriteInt32
    - max
    - push_back
    - OGR_RawField_IsUnset
    - FileGDBOGRDateToDoubleDate
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::EncodeFeature(const std::vector<OGRField> &asRawFields,\n
      \                                const OGRGeometry *poGeom, int iSkipField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1593,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1605,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1605,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1613,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1614,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1616,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1622,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1635,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1635,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1635,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1636,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1636,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1643,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1643,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1649,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1652,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1653,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1655,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1657,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1660,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1660,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1661,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1661,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1664,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1666,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1670,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1671,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1673,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1674,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1675,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1677,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1679,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1690,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1691,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1693,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1694,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1708,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1708,1
    - Dst: TEST_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1715,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1715,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1732,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1733,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1733,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1735,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1737,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1745,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 1
    argNames:
    - nObjectID
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1748
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1748
    functionName: OpenFileGDB::FileGDBTable::SeekIntoTableXForNewFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - TEST_BIT
    - static_cast<uint32_t>
    - VSIFTellL
    - CPLError
    - std::vector::clear
    - DIV_ROUND_UP
    - resize
    - std::vector::data
    - static_cast<int>
    - VSIFSeekL
    - static_cast<uint64_t>
    - CPLAssert
    - VSIFReadL
    - std::vector::resize
    - data
    - size
    - empty
    - max
    - VSIFWriteL
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::SeekIntoTableXForNewFeature(int nObjectID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1757,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nFeatureOffset
    - pabyBuffer
    argTypes:
    - uint64_t
    - GByte*
    constantsTouched: []
    func_position:
      end: 1759
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1759
    functionName: OpenFileGDB::FileGDBTable::WriteFeatureOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: void
    signature: "void FileGDBTable::WriteFeatureOffset(uint64_t nFeatureOffset,\n                                      GByte
      *pabyBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1767,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFeatureOffset
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1769
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1769
    functionName: OpenFileGDB::FileGDBTable::WriteFeatureOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 2
    functionsReached:
    - VSIFWriteL
    - CPL_LSBPTR64
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WriteFeatureOffset(uint64_t nFeatureOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::WriteFieldDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1781,1
    - Dst: OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1788,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1790,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1800,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1802,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1806,1
    - Dst: OpenFileGDB::FileGDBTable::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1811,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1816,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1816,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1827,1
    - Dst: OpenFileGDB::FileGDBTable::SeekIntoTableXForNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1834,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1839,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1843,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1845,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1845,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1845,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1847,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1848,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1848,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1848,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1849,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1854,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1860,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1860,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1865,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1872,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1872,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - asRawFields
    - poGeom
    - pnFID
    argTypes:
    - std::vector<OGRField>
    - OGRGeometry*
    - int*
    constantsTouched: []
    func_position:
      end: 1881
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1881
    functionName: OpenFileGDB::FileGDBTable::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - size
    - static_cast<int>
    - empty
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - VSIFSeekL
    - OpenFileGDB::FileGDBTable::EncodeFeature
    - max
    - static_cast<uint32_t>
    - VSIFWriteL
    - OpenFileGDB::FileGDBTable::WriteFieldDescriptors
    - OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
    - CPLError
    - OpenFileGDB::FileGDBTable::SeekIntoTableXForNewFeature
    - what
    - WriteUInt32
    - data
    - static_cast<int64_t>
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::CreateFeature(const std::vector<OGRField> &asRawFields,\n
      \                                const OGRGeometry *poGeom, int *pnFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::WriteFieldDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1894,1
    - Dst: OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1899,1
    - Dst: OpenFileGDB::FileGDBTable::EncodeFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1905,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1910,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1910,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1914,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1916,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1921,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1924,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1926,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1926,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1926,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1928,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1929,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1929,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1929,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1930,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1940,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1943,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1944,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1944,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1944,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1945,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1949,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1951,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1965,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1968,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1975,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1979,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1982,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1982,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1982,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1984,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1985,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1985,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1985,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1986,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1992,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1993,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1997,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:1997,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2003,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2010,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2013,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2016,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2018,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2021,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2022,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2022,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2022,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2023,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2027,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2028,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 3
    argNames:
    - nFID
    - asRawFields
    - poGeom
    argTypes:
    - int64_t
    - std::vector<OGRField>
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2035
      start: 1887
    functionDepth: 5
    functionLinenumber: 1887
    functionLinenumberEnd: 2035
    functionName: OpenFileGDB::FileGDBTable::UpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - static_cast<uint32_t>
    - OpenFileGDB::FileGDBTable::EncodeFeature
    - CPLError
    - OpenFileGDB::FileGDBTable::AddEntryToFreelist
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - resize
    - ReadUInt32
    - VSIFSeekL
    - CPL_IGNORE_RET_VAL
    - OpenFileGDB::FileGDBTable::WriteFieldDescriptors
    - OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
    - what
    - data
    - size
    - empty
    - max
    - VSIFWriteL
    - WriteUInt32
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool FileGDBTable::UpdateFeature(int64_t nFID,\n                                 const
      std::vector<OGRField> &asRawFields,\n                                 const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::WriteFieldDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2046,1
    - Dst: OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2051,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2056,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2057,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2061,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2063,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2065,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2069,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2070,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2073,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2077,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2080,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2081,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2082,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2082,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2082,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2086,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2087,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 2096
      start: 2041
    functionDepth: 2
    functionLinenumber: 2041
    functionLinenumberEnd: 2096
    functionName: OpenFileGDB::FileGDBTable::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - size
    - what
    - VSIFSeekL
    - CPLDebug
    - static_cast<uint32_t>
    - CPL_IGNORE_RET_VAL
    - OpenFileGDB::FileGDBTable::WriteFieldDescriptors
    - OpenFileGDB::FileGDBTable::GetOffsetInTableForRow
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - WriteUInt32
    - resize
    - OpenFileGDB::FileGDBTable::AddEntryToFreelist
    - VSIFWriteL
    - ReadUInt32
    - data
    - clear
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::DeleteFeature(int64_t nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2102
    functionDepth: 0
    functionLinenumber: 2102
    functionLinenumberEnd: 2106
    functionName: FileGDBTable::WholeFileRewriter::~WholeFileRewriter()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - Rollback
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::WholeFileRewriter::~WholeFileRewriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemoveIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2115,1
    - Dst: Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2117,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2123,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2123,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2131,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2132,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2132,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2133,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2133,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2135,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2135,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2138,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2140,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2142,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2147,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2147,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2152,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2152,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2153,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2155,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2155,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2156,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2160,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2160,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2160,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2162,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2162,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2163,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2163,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2164,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2165,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2170,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2170,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2172,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2174,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2174,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2177,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2177,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2178,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2178,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2179,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2179,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2180,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2181,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2182,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2192,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2192,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2195,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2195,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2200,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2200,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2206,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2206,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2209,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2211,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2211,1
    - Dst: WriteHeaderX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2215,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2217,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2219,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2221,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2221,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2222,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2222,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2223,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2224,1
    - Dst: WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2234,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2236,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2241,1
    - Dst: Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2245,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2247,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2251,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2254
    functionName: FileGDBTable::WholeFileRewriter::Begin()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - CPLCopyFile
    - WriteHeaderX
    - CPLError
    - CPLGetConfigOption
    - VSIFTruncateL
    - CPLTestBool
    - c_str
    - VSIUnlink
    - VSIFSeekL
    - VSIFOpenL
    - m_osFilename::c_str
    - CPLFormFilenameSafe
    - Sync
    - CPLGetPathSafe
    - VSIStatL
    - VSIFCloseL
    - RemoveIndices
    - CPLGetBasenameSafe
    - CPLResetExtensionSafe
    - WriteHeader
    - Rollback
    - clear
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WholeFileRewriter::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2264,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2266,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2272,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2273,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2273,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2274,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2274,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2275,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2275,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2279,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2280,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2296,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2297,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2303,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2303,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2304,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2307,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2307,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2308,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2308,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2309,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2313,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2313,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2313,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2316,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2319,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2319,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2321,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2322,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2332,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2332,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2335,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2336,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2336,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2337,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2341,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2341,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2343,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2344,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2344,1
    - Dst: Rollback
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2345,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2352,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2352,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2353,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2353,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2354,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2354,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2355,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2355,1
    - Dst: DeleteFreeList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2359,1
    - Dst: Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2260
    functionDepth: 1
    functionLinenumber: 2260
    functionLinenumberEnd: 2369
    functionName: FileGDBTable::WholeFileRewriter::Commit()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - DeleteFreeList
    - c_str
    - VSIFCloseL
    - VSIUnlink
    - VSIFOpenL
    - Rollback
    - m_osFilename::c_str
    - CPLError
    - VSIRename
    - Sync
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::WholeFileRewriter::Commit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2377,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2382,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2386,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2386,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2387,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2388,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2388,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2388,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2390,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2390,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2391,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2391,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2392,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2392,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2396,1
    - Dst: m_osFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2400,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2400,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2401,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2401,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2406,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2407,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2410,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2410,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2411,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2422
    functionName: FileGDBTable::WholeFileRewriter::Rollback()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - VSIFCloseL
    - VSIUnlink
    - CPLAssert
    - m_osFilename::c_str
    - CPLError
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::WholeFileRewriter::Rollback()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2430,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2439,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2440,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2441,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2442,1
    - Dst: GetUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2443,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2446,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2448,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2457,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2467,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2469,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2470,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2470,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2475,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2485,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2488,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2489,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2490,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2495,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2497,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2507,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2507,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2516,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2520,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2524,1
    - Dst: OpenFileGDB::FileGDBTable::DeleteFreeList
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2527,1
    - Dst: OpenFileGDB::FileGDBTable::Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2529,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2532,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2533,1
    - Dst: WholeFileRewriter::Begin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2538,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2549,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2551,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2553,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2553,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2558,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2566,1
    - Dst: ReadUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2569,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2574,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2582,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2582,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2586,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2586,1
    - Dst: OpenFileGDB::FileGDBTable::WriteFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2591,1
    - Dst: WriteUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2594,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2596,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2596,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2605,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2606,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2606,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2612,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2613,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2622,1
    - Dst: WholeFileRewriter::Commit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2624,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 88
    argCount: 2
    argNames:
    - pfnProgress
    - pProgressData
    argTypes:
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2625
      start: 2428
    functionDepth: 4
    functionLinenumber: 2428
    functionLinenumberEnd: 2625
    functionName: OpenFileGDB::FileGDBTable::Repack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - memcmp
    - CPLDebug
    - OpenFileGDB::FileGDBTable::Sync
    - CPLError
    - static_cast<vsi_l_offset>
    - WholeFileRewriter::Commit
    - VSIFTruncateL
    - pfnProgress
    - OpenFileGDB::FileGDBTable::WriteFeatureOffset
    - resize
    - ReadUInt32
    - OpenFileGDB::FileGDBTable::DeleteFreeList
    - std::vector::data
    - GetUInt32
    - c_str
    - VSIFSeekL
    - static_cast<uint64_t>
    - WholeFileRewriter::Begin
    - VSIFReadL
    - what
    - std::vector::resize
    - data
    - static_cast<double>
    - size
    - max
    - VSIFWriteL
    - WriteUInt32
    linkageType: ''
    returnType: bool
    signature: bool FileGDBTable::Repack(GDALProgressFunc pfnProgress, void *pProgressData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2641,1
    - Dst: OpenFileGDB::FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2644,1
    - Dst: OpenFileGDB::FileGDBTable::GetFeatureExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2645,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2647,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2653,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2653,1
    - Dst: OGREnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2654,1
    - Dst: auto::SetXYMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2656,1
    - Dst: auto::SetXYMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp:2661,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2631
    functionDepth: 2
    functionLinenumber: 2631
    functionLinenumberEnd: 2665
    functionName: OpenFileGDB::FileGDBTable::RecomputeExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable_write.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<FileGDBGeomField *>
    - OpenFileGDB::FileGDBTable::GetFeatureExtent
    - get
    - OGREnvelope::Merge
    - OpenFileGDB::FileGDBTable::GetAndSelectNextNonEmptyRow
    - OGREnvelope::IsInit
    - OpenFileGDB::FileGDBTable::GetFieldValue
    - auto::SetXYMinMax
    linkageType: ''
    returnType: void
    signature: void FileGDBTable::RecomputeExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:52,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:52,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - utf8string
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: StringToWString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - CPLRecodeToWChar
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring StringToWString(const std::string &utf8string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - utf16string
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: WStringToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string WStringToString(const std::wstring &utf16string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:84,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:86,1
    - Dst: std::wstring::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:91,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 102
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - std::wstring::size
    - std::wstring::empty
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring LaunderName(const std::wstring &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:119,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:119,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - className
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 130
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 130
    functionName: EscapeUnsupportedPrefixes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::find
    - StringToWString
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring EscapeUnsupportedPrefixes(const std::wstring &className)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:138,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:139,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: EscapeReservedKeywords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - StringToWString
    - CPLString
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring EscapeReservedKeywords(const std::wstring &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:163,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:164,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:167,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:171,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:176,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:177,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:180,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:182,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:183,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:185,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:187,1
    - Dst: FileGDBGeomField*::GetXOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:187,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:188,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:190,1
    - Dst: FileGDBGeomField*::GetYOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:190,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:191,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:193,1
    - Dst: FileGDBGeomField*::GetXYScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:193,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:194,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:196,1
    - Dst: FileGDBGeomField*::GetZOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:196,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:197,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:199,1
    - Dst: FileGDBGeomField*::GetZScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:199,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:202,1
    - Dst: FileGDBGeomField*::GetMOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:202,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:203,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:205,1
    - Dst: FileGDBGeomField*::GetMScale
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:205,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:206,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:208,1
    - Dst: FileGDBGeomField*::GetXYTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:208,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:209,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:211,1
    - Dst: FileGDBGeomField*::GetZTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:211,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:212,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:214,1
    - Dst: FileGDBGeomField*::GetMTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:214,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:215,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:218,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:218,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:224,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:225,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:227,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:229,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:229,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:232,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:238,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:239,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:244,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:245,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:247,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:249,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:249,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:252,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - psRoot
    - poGeomFieldDefn
    - poSRS
    argTypes:
    - CPLXMLNode*
    - FileGDBGeomField*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 258
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 258
    functionName: XMLSerializeGeomFieldBase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBGeomField*::GetXYScale
    - CPLGetConfigOption
    - FileGDBGeomField*::GetZTolerance
    - FileGDBGeomField*::GetXOrigin
    - CPLCreateXMLElementAndValue
    - FileGDBGeomField*::GetZScale
    - FileGDBGeomField*::GetMTolerance
    - CPLTestBool
    - CPLSPrintf
    - FileGDBGeomField*::GetMOrigin
    - FileGDBGeomField*::GetZOrigin
    - FileGDBGeomField*::GetMScale
    - CPLAddXMLAttributeAndValue
    - CPLCreateXMLNode
    - OGRSpatialReference*::IsCompound
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - FileGDBGeomField*::GetYOrigin
    - FileGDBGeomField*::GetXYTolerance
    - FileGDBGeomField*::GetWKT
    linkageType: ''
    returnType: void
    signature: "void XMLSerializeGeomFieldBase(CPLXMLNode *psRoot,\n                                      const
      FileGDBGeomField *poGeomFieldDefn,\n                                      const
      OGRSpatialReference *poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:269,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:270,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:270,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:271,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:271,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:274,1
    - Dst: CPLAddXMLSibling
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:275,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:275,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:277,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:279,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:281,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:283,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:285,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:286,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:287,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:288,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:292,1
    - Dst: m_osGDBItemsFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:292,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:294,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:296,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:296,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:299,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:300,1
    - Dst: XMLSerializeGeomFieldBase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:304,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:304,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:305,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:310,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:312,1
    - Dst: RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:314,1
    - Dst: RegisterFeatureDatasetInItems
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:321,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - pszFeatureDataset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 328
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 328
    functionName: OGROpenFileGDBLayer::CreateFeatureDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - m_osGDBItemsFilename::c_str
    - RegisterFeatureDatasetInItems
    - CPLCreateXMLElementAndValue
    - GetGeomField
    - RegisterInItemRelationships
    - CPLCreateXMLNode
    - GetSpatialRef
    - XMLSerializeGeomFieldBase
    - CPLSPrintf
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - OFGDBGenerateUUID
    - CPLXMLTreeCloser::get
    - CPLAddXMLSibling
    - std::string::c_str
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::CreateFeatureDataset(const char *pszFeatureDataset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:337,1
    - Dst: LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:339,1
    - Dst: EscapeReservedKeywords
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:340,1
    - Dst: EscapeUnsupportedPrefixes
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:341,1
    - Dst: std::wstring::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:348,1
    - Dst: std::wstring::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:349,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:353,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:353,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:357,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:357,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:359,1
    - Dst: std::wstring::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:359,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:364,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:364,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:368,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:368,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:370,1
    - Dst: std::wstring::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:370,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - osNameOri
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 377
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 377
    functionName: OGROpenFileGDBLayer::GetLaunderedLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - StringToWString
    - LaunderName
    - GetLayerByName
    - CPLSPrintf
    - EscapeUnsupportedPrefixes
    - std::wstring::resize
    - std::wstring::substr
    - EscapeReservedKeywords
    - std::wstring::size
    linkageType: ''
    returnType: std::string
    signature: std::string OGROpenFileGDBLayer::GetLaunderedLayerName(const std::string
      &osNameOri) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:386,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:386,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:389,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:389,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:399,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:400,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:404,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:405,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:407,1
    - Dst: OGR_GT_IsSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:411,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:412,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:418,1
    - Dst: OGROpenFileGDBLayer::GetLaunderedLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:427,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:429,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:429,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:440,1
    - Dst: m_osGDBItemsFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:440,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:443,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:444,1
    - Dst: FETCH_FIELD_IDX
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:445,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:447,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:450,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:453,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:454,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:456,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:463,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:468,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:471,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:482,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:482,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:485,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:487,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:490,1
    - Dst: BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:490,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:492,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:497,1
    - Dst: OGROpenFileGDBFeatureDefn::OGROpenFileGDBFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:497,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:498,1
    - Dst: OGROpenFileGDBLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:498,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:499,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:500,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:502,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:507,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:516,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:521,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:526,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:533,1
    - Dst: FileGDBTable::FileGDBTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:556,1
    - Dst: OGROpenFileGDBLayer::Create
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:557,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:557,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:560,1
    - Dst: SetTextUTF16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:564,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:568,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:568,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:572,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:572,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:573,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:573,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:577,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:582,1
    - Dst: std::make_unique<OGROpenFileGDBGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:584,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:586,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:588,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:589,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:589,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:597,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:599,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:604,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:605,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:606,1
    - Dst: std::unique_ptr::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:610,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:611,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:612,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:620,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:622,1
    - Dst: GDBGridSettingsFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:629,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:630,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:631,1
    - Dst: auto::oFormatSpecificOptions::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:633,1
    - Dst: GetExistingSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:653,1
    - Dst: AddNewSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:657,1
    - Dst: std::make_unique<FileGDBGeomField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:664,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:665,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:666,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:667,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:667,1
    - Dst: auto::SetZOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:670,1
    - Dst: auto::SetMOriginScaleTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:672,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:675,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:675,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:677,1
    - Dst: GetGeomFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:681,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:682,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:682,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:683,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:685,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:685,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:689,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:690,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:690,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:691,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:696,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:716,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:721,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:722,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:724,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:731,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:732,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:734,1
    - Dst: OGROpenFileGDBLayer::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:739,1
    - Dst: OGROpenFileGDBLayer::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:745,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:746,1
    - Dst: RegisterLayerInSystemCatalog
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:748,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:750,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:754,1
    - Dst: OGROpenFileGDBLayer::CreateFeatureDataset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:755,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:757,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:761,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 173
    argCount: 1
    argNames:
    - poSrcGeomFieldDefn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 764
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 764
    functionName: OGROpenFileGDBLayer::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::Create
    - OGR_GT_IsSurface
    - SetGeomType
    - auto::oFormatSpecificOptions::find
    - SetTextUTF16
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - AddFieldDefn
    - auto::SetMOriginScaleTolerance
    - RegisterLayerInSystemCatalog
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - SetDescription
    - FileGDBOGRGeometryConverter::BuildConverter
    - OGR_GT_IsCurve
    - Seal
    - OGROpenFileGDBLayer::CreateField
    - auto::SetNullable
    - auto::Release
    - std::string
    - std::make_unique<FileGDBGeomField>
    - GetGeomFieldDefn
    - List
    - auto::SetCoordinatePrecision
    - std::string::c_str
    - GetGeomField
    - FileGDBTable::GetTotalRecordCount
    - std::move
    - wkbFlatten
    - OGRFieldDefn::GetNameRef
    - OGROpenFileGDBLayer::GetLaunderedLayerName
    - CPLFree
    - AddGeomFieldDefn
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - reset
    - strcmp
    - Reference
    - OGROpenFileGDBLayer::GetName
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - OGROpenFileGDBLayer::CreateIndex
    - AddNewSpatialRef
    - std::unique_ptr::reset
    - GetExistingSpatialRef
    - FileGDBTable::GetFieldValue
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - c_str
    - CPLDestroyXMLNode
    - FileGDBTable::FileGDBTable
    - OFGDBGenerateUUID
    - empty
    - CPLSearchXMLNode
    - m_osGDBItemsFilename::c_str
    - auto::IsNullable
    - OGR_GT_GetLinear
    - std::unique_ptr::Clone
    - wkbSetZ
    - GetGeomFieldIdx
    - CPLError
    - OGROpenFileGDBLayer::CreateFeatureDataset
    - FETCH_FIELD_IDX
    - FetchNameValueDef
    - auto::exportToWkt
    - FileGDBTable::Open
    - auto::Clone
    - OGROpenFileGDBFeatureDefn::OGROpenFileGDBFeatureDefn
    - CPLTestBool
    - BuildSRS
    - std::make_unique<FileGDBField>
    - std::make_unique<OGROpenFileGDBGeomFieldDefn>
    - auto::SetSpatialRef
    - auto::GetNameRef
    - auto::IsSame
    - std::unique_ptr::get
    - OGRFieldDefn::SetDefault
    - GDBGridSettingsFromOGR
    - OGROpenFileGDBLayer::Close
    - auto::SetZOriginScaleTolerance
    - OGR_GT_IsSubClassOf
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::Create(const OGRGeomFieldDefn *poSrcGeomFieldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:775,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:776,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:778,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:779,1
    - Dst: FileGDBField*::GetAlias
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:780,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:782,1
    - Dst: FileGDBField*::GetAlias
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:783,1
    - Dst: FileGDBField*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:785,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:786,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:786,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:788,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:790,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:794,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:799,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:801,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:803,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:804,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:806,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:808,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:810,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:813,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:818,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:820,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:822,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:824,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:825,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:827,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:829,1
    - Dst: FileGDBOGRDateToDoubleDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:829,1
    - Dst: FileGDBField*::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:831,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:833,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:835,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:837,1
    - Dst: FileGDBOGRTimeToDoubleTime
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:837,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:839,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:848,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:850,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:852,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:854,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:858,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:862,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:864,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:865,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:867,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:867,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:872,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:874,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:877,1
    - Dst: FileGDBField*::GetMaxWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:896,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:942,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:945,1
    - Dst: FileGDBField*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:948,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:950,1
    - Dst: FileGDBField*::IsRequired
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:952,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:954,1
    - Dst: FileGDBField*::IsEditable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:956,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:958,1
    - Dst: FileGDBField*::IsHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:960,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:962,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:964,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:965,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:966,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:967,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:968,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:970,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:971,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 127
    argCount: 3
    argNames:
    - poFieldDefn
    - poGDBFieldDefn
    - bArcGISPro32OrLater
    argTypes:
    - OGRFieldDefn*
    - FileGDBField*
    - bool
    constantsTouched: []
    func_position:
      end: 974
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 974
    functionName: CreateXMLFieldDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - FileGDBField*::GetAlias
    - FileGDBField*::IsNullable
    - OGRFieldDefn*::GetDomainName
    - FileGDBField*::GetDefault
    - CPLCreateXMLElementAndValue
    - std::abs
    - FileGDBField*::IsRequired
    - FileGDBField*::IsHighPrecision
    - FileGDBOGRTimeToDoubleTime
    - static_cast<int>
    - FileGDBField*::GetType
    - CPLSPrintf
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - FileGDBField*::GetName
    - FileGDBField*::IsEditable
    - OGR_RawField_IsNull
    - CPLAddXMLAttributeAndValue
    - CPLCreateXMLNode
    - OGR_RawField_IsUnset
    - FileGDBField*::GetMaxWidth
    - FileGDBOGRDateToDoubleDate
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *CreateXMLFieldDefinition(const OGRFieldDefn *poFieldDefn,\n
      \                                           const FileGDBField *poGDBFieldDefn,\n
      \                                           bool bArcGISPro32OrLater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:986,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:991,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:993,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:994,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:998,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1003,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1005,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1014,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1017,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1020,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1022,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1023,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1027,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1029,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1029,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1031,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1033,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1038,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 5
    argNames:
    - poField
    - eType
    - sDefault
    - osDefaultVal
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - FileGDBFieldType
    - OGRField
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 1041
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1041
    functionName: GetDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 7
    functionsReached:
    - CPLAtof
    - atoi
    - OGRParseDate
    - CPLAtoGIntBig
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - CPLError
    - std::string::substr
    - std::string::c_str
    - CPLFree
    - std::string::pop_back
    - std::string::back
    linkageType: ''
    returnType: bool
    signature: "bool GetDefault(const OGRFieldDefn *poField, FileGDBFieldType eType,\n
      \                      OGRField &sDefault, std::string &osDefaultVal,\n                       bool
      bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1051,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1055,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1058,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - poField
    - bArcGISPro32OrLater
    argTypes:
    - OGRFieldDefn*
    - bool
    constantsTouched: []
    func_position:
      end: 1088
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1088
    functionName: GetGDBFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    linkageType: ''
    returnType: FileGDBFieldType
    signature: "FileGDBFieldType GetGDBFieldType(const OGRFieldDefn *poField,\n                                        bool
      bArcGISPro32OrLater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1096,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1098,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1100,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1102,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - psParent
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1108
    functionName: GetGPFieldInfoExsNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - CPLSearchXMLNode
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GetGPFieldInfoExsNode(CPLXMLNode *psParent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1117,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1117,1
    - Dst: EscapeReservedKeywords
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1118,1
    - Dst: std::wstring::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1122,1
    - Dst: std::wstring::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1123,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1127,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1127,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1131,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1131,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1133,1
    - Dst: std::wstring::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1133,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1137,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1137,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1141,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1141,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1143,1
    - Dst: std::wstring::substr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1143,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - osNameOri
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1149
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1149
    functionName: OGROpenFileGDBLayer::GetLaunderedFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - StringToWString
    - LaunderName
    - CPLSPrintf
    - std::wstring::resize
    - GetFieldIndex
    - std::wstring::substr
    - EscapeReservedKeywords
    - std::wstring::size
    linkageType: ''
    returnType: std::string
    signature: std::string OGROpenFileGDBLayer::GetLaunderedFieldName(const std::string
      &osNameOri) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1161,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1164,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1165,1
    - Dst: BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1166,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1175,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1177,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1181,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1185,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1189,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1193,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1197,1
    - Dst: OGROpenFileGDBLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1200,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1202,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1202,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1202,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1204,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1205,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1208,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1208,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1211,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1212,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1213,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1217,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1218,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1222,1
    - Dst: OGROpenFileGDBLayer::GetLaunderedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1223,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1227,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1229,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1230,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1233,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1235,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1235,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1237,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1237,1
    - Dst: GDBToOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1252,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1256,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1265,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1267,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1269,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1273,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1305,1
    - Dst: GetGDBFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1310,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1318,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1320,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1340,1
    - Dst: GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1346,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1347,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1350,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1351,1
    - Dst: FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1352,1
    - Dst: OGROpenFileGDBLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1352,1
    - Dst: LinkDomainToTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1354,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1354,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1356,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1356,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1368,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1375,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1377,1
    - Dst: OGROpenFileGDBLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1384,1
    - Dst: std::make_unique<FileGDBField>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1384,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1385,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1386,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1386,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1392,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1398,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1398,1
    - Dst: GetGPFieldInfoExsNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1401,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1401,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1404,1
    - Dst: CreateXMLFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1405,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1407,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1408,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1413,1
    - Dst: UpdateXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1415,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1415,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1416,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1422,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1426
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1426
    functionName: OGROpenFileGDBLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 2
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - GetDefault
    - OGRFieldDefn*::GetDomainName
    - CPLXMLTreeCloser::get
    - CPLError
    - GetFieldIndex
    - OGRFieldDefn*::GetWidth
    - std::string::c_str
    - OGROpenFileGDBLayer::GetName
    - OGROpenFileGDBLayer::GetFIDColumn
    - CPL_TO_BOOL
    - std::string::empty
    - BackupSystemTablesForTransaction
    - CPLAddXMLChild
    - FindUUIDFromName
    - GetField
    - GetGPFieldInfoExsNode
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - LinkDomainToTable
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - IsInTransaction
    - c_str
    - std::make_unique<FileGDBField>
    - OGRFieldDefn*::GetNameRef
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGRFieldDefn*::SetDomainName
    - GetFieldCount
    - CPLParseXMLString
    - OGRFieldDefn*::GetType
    - CPLAssert
    - CreateXMLFieldDefinition
    - whileUnsealing
    - CPLFree
    - UpdateXMLDefinition
    - OGRFieldDefn*::SetName
    - OGROpenFileGDBLayer::CreateField
    - empty
    - std::string
    - OGRFieldDefn*::SetWidth
    - CSLDestroy
    - GDBToOGRFieldType
    - EQUAL
    - GetGDBFieldType
    - OGROpenFileGDBLayer::GetLaunderedFieldName
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                       int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1439,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1442,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1443,1
    - Dst: BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1444,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1449,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1451,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1457,1
    - Dst: OGROpenFileGDBLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1458,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1467,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1468,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1470,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1472,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1472,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1478,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1478,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1479,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1479,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1481,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1490,1
    - Dst: OGROpenFileGDBLayer::GetLaunderedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1495,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1498,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1498,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1502,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1502,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1507,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1508,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1508,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1512,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1512,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1517,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1517,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1519,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1527,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1527,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1531,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1531,1
    - Dst: GetGDBFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1534,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1541,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1543,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1548,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1548,1
    - Dst: GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1554,1
    - Dst: AlterField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1559,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1560,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1561,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1561,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1562,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1562,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1567,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1568,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1568,1
    - Dst: OGRFieldDefn*::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1569,1
    - Dst: OGRFieldDefn::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1569,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1570,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1570,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1571,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1571,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1572,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1572,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1573,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1573,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1574,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1574,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1575,1
    - Dst: OGRFieldDefn::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1575,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1581,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1581,1
    - Dst: GetGPFieldInfoExsNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1584,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1584,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1592,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1593,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1597,1
    - Dst: CreateXMLFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1598,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1599,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1614,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1614,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1617,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1617,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1623,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1623,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1626,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1626,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1632,1
    - Dst: UpdateXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1634,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1634,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1635,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1641,1
    - Dst: OGRFieldDefn::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1644,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1645,1
    - Dst: FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1646,1
    - Dst: OGROpenFileGDBLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1646,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1648,1
    - Dst: LinkDomainToTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1650,1
    - Dst: OGRFieldDefn::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1650,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1653,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1653,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1659,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1661,1
    - Dst: UnlinkDomainToTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1670,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 127
    argCount: 3
    argNames:
    - iFieldToAlter
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1676
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1676
    functionName: OGROpenFileGDBLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - OGRFieldDefn::GetDefault
    - atoi
    - GetDefault
    - OGRFieldDefn::GetAlternativeNameRef
    - OGRFieldDefn*::GetDomainName
    - OGRFieldDefn*::SetSubType
    - strcmp
    - AlterField
    - CPLXMLTreeCloser::get
    - GetFieldDefn
    - OGRFieldDefn*::GetTemporaryUnsealer
    - CPLError
    - OGRFieldDefn*::GetWidth
    - std::string::c_str
    - CPLGetConfigOption
    - OGROpenFileGDBLayer::GetFIDColumn
    - CPL_TO_BOOL
    - CPLGetXMLValue
    - OGROpenFileGDBLayer::GetName
    - std::string::empty
    - BackupSystemTablesForTransaction
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::SetDefault
    - OGRFieldDefn*::GetSubType
    - GetField
    - FindUUIDFromName
    - OGRFieldDefn*::IsNullable
    - GetGPFieldInfoExsNode
    - OGRFieldDefn*::SetAlternativeName
    - OGRFieldDefn::SetAlternativeName
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - IsInTransaction
    - c_str
    - OGRFieldDefn*::SetNullable
    - LinkDomainToTable
    - OGRFieldDefn*::GetNameRef
    - CPLDestroyXMLNode
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGRFieldDefn*::SetDomainName
    - GetFieldCount
    - CPLParseXMLString
    - OGRFieldDefn*::GetType
    - OGRFieldDefn::SetName
    - OGRFieldDefn::GetWidth
    - CreateXMLFieldDefinition
    - UnlinkDomainToTable
    - OGROpenFileGDBLayer::GetLaunderedFieldName
    - CPLFree
    - UpdateXMLDefinition
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - OGRFieldDefn::GetDomainName
    - OGRFieldDefn*::GetAlternativeNameRef
    - OGRFieldDefn::SetDefault
    - empty
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn::GetSubType
    - GetGDBFieldType
    - CPLSearchXMLNode
    - std::string
    - CPLSetXMLValue
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::AlterFieldDefn(int iFieldToAlter,\n                                           OGRFieldDefn
      *poNewFieldDefn,\n                                           int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1689,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1692,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1693,1
    - Dst: BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1694,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1702,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1712,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1713,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1718,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1720,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1727,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1735,1
    - Dst: OGROpenFileGDBLayer::GetLaunderedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1737,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1740,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1743,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1743,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1747,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1747,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1755,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1757,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1766,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1767,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1774,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1776,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1780,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1789,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1790,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1791,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1795,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1801,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1805,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1807,1
    - Dst: AlterGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1810,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1810,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1811,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1812,1
    - Dst: OGRGeomFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1812,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1817,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1817,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1818,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1818,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1824,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1824,1
    - Dst: GetGPFieldInfoExsNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1827,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1827,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1834,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1835,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1837,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1841,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1843,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1843,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1850,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1850,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1853,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1853,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1857,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1857,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1859,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1860,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1863,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1866,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1867,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1871,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1874,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1875,1
    - Dst: XMLSerializeGeomFieldBase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1878,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1879,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1880,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1885,1
    - Dst: UpdateXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1887,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1887,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1888,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1894,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 98
    argCount: 3
    argNames:
    - iGeomFieldToAlter
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1898
      start: 1682
    functionDepth: 3
    functionLinenumber: 1682
    functionLinenumberEnd: 1898
    functionName: OGROpenFileGDBLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - OGRGeomFieldDefn*::IsNullable
    - XMLSerializeGeomFieldBase
    - GetGeomFieldDefn
    - auto::GetType
    - OGRGeomFieldDefn::SetSpatialRef
    - strcmp
    - CPLXMLTreeCloser::get
    - CPLError
    - CPLGetXMLValue
    - GetGeomFieldCount
    - std::string::c_str
    - CPL_TO_BOOL
    - GetGeomField
    - BackupSystemTablesForTransaction
    - CPLStrdup
    - OGRGeomFieldDefn*::GetNameRef
    - auto::Clone
    - GetGPFieldInfoExsNode
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - IsInTransaction
    - c_str
    - auto::GetSpatialRef
    - OGRGeomFieldDefn::IsNullable
    - CPLRemoveXMLChild
    - GetSpatialRef
    - auto::SetName
    - CPLDestroyXMLNode
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGRGeomFieldDefn*::GetType
    - CPLParseXMLString
    - OGRGeomFieldDefn::GetNameRef
    - auto::SetSpatialRef
    - auto::GetNameRef
    - auto::IsSame
    - CPLFree
    - UpdateXMLDefinition
    - OGRGeomFieldDefn::SetName
    - empty
    - AlterGeomField
    - std::string
    - CPLGetXMLNode
    - auto::GetTemporaryUnsealer
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - OGROpenFileGDBLayer::GetLaunderedFieldName
    - OGRGeomFieldDefn::GetSpatialRef
    - CPLSearchXMLNode
    - CPLSetXMLValue
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::AlterGeomFieldDefn(\n    int iGeomFieldToAlter,
      const OGRGeomFieldDefn *poNewGeomFieldDefn,\n    int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1909,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1912,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1913,1
    - Dst: BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1914,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1920,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1922,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1928,1
    - Dst: OGROpenFileGDBLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1929,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1933,1
    - Dst: GetGeomFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1938,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1943,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1945,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1945,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1947,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1974,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1974,1
    - Dst: GetGPFieldInfoExsNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1977,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1977,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1985,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1986,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:1994,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2003,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2003,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2006,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2013,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2013,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2016,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2023,1
    - Dst: UpdateXMLDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2025,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2025,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2026,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2032,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2035,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2038,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2040,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2049,1
    - Dst: FindUUIDFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2050,1
    - Dst: OGROpenFileGDBLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2050,1
    - Dst: UnlinkDomainToTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2052,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 1
    argNames:
    - iFieldToDelete
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2058
      start: 1904
    functionDepth: 2
    functionLinenumber: 1904
    functionLinenumberEnd: 2058
    functionName: OGROpenFileGDBLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldIdx
    - strcmp
    - CPLXMLTreeCloser::get
    - GetFieldDefn
    - CPLGetXMLValue
    - CPLError
    - OGROpenFileGDBLayer::GetName
    - OGROpenFileGDBLayer::GetFIDColumn
    - std::string::empty
    - BackupSystemTablesForTransaction
    - FindUUIDFromName
    - GetGPFieldInfoExsNode
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - IsInTransaction
    - c_str
    - CPLDestroyXMLNode
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - GetFieldCount
    - CPLParseXMLString
    - auto::GetNameRef
    - UnlinkDomainToTable
    - whileUnsealing
    - CPLFree
    - UpdateXMLDefinition
    - empty
    - CPLSearchXMLNode
    - std::string
    - auto::GetDomainName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::DeleteField(int iFieldToDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_Length
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poPoly
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 2070
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2070
    functionName: GetLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - get_Length
    linkageType: ''
    returnType: double
    signature: double GetLength(const OGRCurvePolygon *poPoly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const OGRCurvePolygon *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2077,1
    - Dst: GetLength
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poMS
    argTypes:
    - OGRMultiSurface*
    constantsTouched: []
    func_position:
      end: 2082
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2082
    functionName: GetLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - GetLength
    - dynamic_cast<const OGRCurvePolygon *>
    linkageType: ''
    returnType: double
    signature: double GetLength(const OGRMultiSurface *poMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2094,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2096,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2096,1
    - Dst: GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2099,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2120,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2153,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2168,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2176,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2189,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2190,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2190,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2203,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2203,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2206,1
    - Dst: OGRGeometry*::toMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2206,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2208,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2213,1
    - Dst: OGR_GT_IsCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2222,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2223,1
    - Dst: OGRGeometry*::toCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2223,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2224,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2225,1
    - Dst: OGRGeometry*::toMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2225,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2228,1
    - Dst: GetLength
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2228,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2228,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2231,1
    - Dst: GetLength
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2231,1
    - Dst: OGRGeometry*::toMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2231,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2233,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2238,1
    - Dst: std::vector<OGRField>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2242,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2242,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2243,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2244,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2248,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2253,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2255,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2257,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2257,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2258,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2262,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2263,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2266,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2270,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2274,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2277,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2281,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2284,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2288,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2296,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2299,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2303,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2304,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2305,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2312,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2316,1
    - Dst: FetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2317,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2328,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2340,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2343,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2346,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2350,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2356,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2357,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2358,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2360,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2362,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2362,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2365,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2369,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2369,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2370,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2374,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2375,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2376,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2381,1
    - Dst: OFGDBGenerateUUID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2381,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2382,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2389,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2395,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 180
    argCount: 4
    argNames:
    - poFeature
    - fields
    - poGeom
    - bUpdate
    argTypes:
    - OGRFeature*
    - std::vector<OGRField>
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 2402
      start: 2088
    functionDepth: 3
    functionLinenumber: 2088
    functionLinenumberEnd: 2402
    functionName: OGROpenFileGDBLayer::PrepareFileGDBFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::SetFieldNull
    - OGRFeature*::GetFieldAsString
    - auto::GetType
    - GetFieldDefn
    - CPLError
    - CPLGetConfigOption
    - std::vector<OGRField>::resize
    - FetchNameValueDef
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetRawFieldRef
    - FetchNameValue
    - GetField
    - wkbFlatten
    - emplace_back
    - OGRGeometry*::getGeometryType
    - CPLTestBool
    - OGRGeometry*::toMultiSurface
    - GetFieldCount
    - OFGDBGenerateUUID
    - CPLAssert
    - GetGeometryType
    - OGR_GT_IsCurve
    - OGRGeometry*::IsEmpty
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::toCurve
    - GetTotalRecordCount
    - back
    - GetLength
    - OGRGeometry*::toCurvePolygon
    - memset
    - OGRFeature*::SetField
    - OGR_GT_IsSubClassOf
    - OGRGeometry*::toMultiCurve
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBLayer::PrepareFileGDBFeature(OGRFeature *poFeature,\n
      \                                               std::vector<OGRField> &fields,\n
      \                                               const OGRGeometry *&poGeom,\n
      \                                               bool bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2412,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2416,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2422,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2424,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2425,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2431,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2432,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - poFeature
    - iFIDAsRegularColumnIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 2442
      start: 2408
    functionDepth: 3
    functionLinenumber: 2408
    functionLinenumberEnd: 2442
    functionName: CheckFIDAndFIDColumnConsistency
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetDefnRef
    - OGRFeature*::GetFieldAsInteger64
    - GDALIsValueInRange
    - OGRFeature*::GetFID
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool CheckFIDAndFIDColumnConsistency(const OGRFeature *poFeature,\n
      \                                           int iFIDAsRegularColumnIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2453,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2456,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2457,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2465,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2467,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2469,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2475,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2476,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2477,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2478,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2480,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2481,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2483,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2489,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2498,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2498,1
    - Dst: CheckFIDAndFIDColumnConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2503,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2510,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2513,1
    - Dst: OGRFeature*::FillUnsetWithDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2520,1
    - Dst: OGROpenFileGDBLayer::PrepareFileGDBFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2524,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2530,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2533,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2535
      start: 2448
    functionDepth: 4
    functionLinenumber: 2448
    functionLinenumberEnd: 2535
    functionName: OGROpenFileGDBLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - OGRFeature*::IsFieldSetAndNotNull
    - simple_max
    - IsInTransaction
    - static_cast<GIntBig>
    - OGRFeature*::SetFID
    - OGRFeature*::GetFieldAsInteger64
    - OGROpenFileGDBLayer::PrepareFileGDBFeature
    - OGRFeature*::GetFID
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - GetFieldDefn
    - CPLError
    - OGRFeature*::FillUnsetWithDefault
    - CheckFIDAndFIDColumnConsistency
    - CreateFeature
    - simple_min
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2546,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2549,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2550,1
    - Dst: CheckFIDAndFIDColumnConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2557,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2562,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2563,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2567,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2569,1
    - Dst: OGROpenFileGDBLayer::PrepareFileGDBFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2574,1
    - Dst: UpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2580,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2584
      start: 2541
    functionDepth: 4
    functionLinenumber: 2541
    functionLinenumberEnd: 2584
    functionName: OGROpenFileGDBLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - IsInTransaction
    - OGROpenFileGDBLayer::PrepareFileGDBFeature
    - UpdateFeature
    - SelectRow
    - OGRFeature*::GetFID
    - CPL_INT64_FITS_ON_INT32
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - CheckFIDAndFIDColumnConsistency
    - GetTotalRecordCount
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2596,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2599,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2600,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2605,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2609,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2611,1
    - Dst: OGROpenFileGDBLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2617,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2619
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2619
    functionName: OGROpenFileGDBLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - IsInTransaction
    - OGROpenFileGDBLayer::DeleteFeature
    - SelectRow
    - CPL_INT64_FITS_ON_INT32
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - GetTotalRecordCount
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2627,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2628,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2628,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2629,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2629,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2632,1
    - Dst: CPLAddXMLSibling
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2635,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2635,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2637,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2641,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2643,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2645,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2649,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2649,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2650,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2650,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2651,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2652,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2658,1
    - Dst: m_osGDBItemsFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2658,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2660,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2662,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2662,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2665,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2666,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2667,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2669,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2670,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2674,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2677,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2678,1
    - Dst: OGROpenFileGDBLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2678,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2680,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2681,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2684,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2686,1
    - Dst: auto*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2687,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2690,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2691,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2693,1
    - Dst: auto*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2694,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2695,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2697,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2698,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2699,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2700,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2701,1
    - Dst: auto*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2703,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2706,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2707,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2709,1
    - Dst: auto*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2710,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2711,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2713,1
    - Dst: auto*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2714,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2716,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2717,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2718,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2719,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2727,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2728,1
    - Dst: CreateXMLFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2728,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2735,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2739,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2745,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2748,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2753,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2754,1
    - Dst: GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2757,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2777,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2778,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2779,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2783,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2785,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2787,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2792,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2797,1
    - Dst: XMLSerializeGeomFieldBase
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2800,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2800,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2805,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 2806
    functionName: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 5
    functionsReached:
    - m_osGDBItemsFilename::c_str
    - auto*::GetName
    - XMLSerializeGeomFieldBase
    - auto::GetName
    - CPLXMLTreeCloser::get
    - GetFieldDefn
    - OGROpenFileGDBLayer::GetFIDColumn
    - CPLCreateXMLElementAndValue
    - GetGeomField
    - CPLAddXMLChild
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - GetField
    - c_str
    - GetSpatialRef
    - GetFieldCount
    - CPLSPrintf
    - GetGeometryType
    - CreateXMLFieldDefinition
    - CPLFree
    - CPLAddXMLAttributeAndValue
    - empty
    - auto*::IsNullable
    - CPLCreateXMLNode
    - auto*::GetType
    - CPLAddXMLSibling
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2816,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2816,1
    - Dst: RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2822,1
    - Dst: RegisterInItemRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2831,1
    - Dst: RegisterFeatureClassInItems
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2842,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2844,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2844,1
    - Dst: RegisterASpatialTableInItems
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2848,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2849,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2812
    functionDepth: 0
    functionLinenumber: 2812
    functionLinenumberEnd: 2852
    functionName: OGROpenFileGDBLayer::RegisterTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - RegisterFeatureClassInItems
    - empty
    - RegisterInItemRelationships
    - CPLAssert
    - RegisterASpatialTableInItems
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::RegisterTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::RegisterTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2863,1
    - Dst: Sync
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2867
    functionName: OGROpenFileGDBLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::RegisterTable
    - Sync
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2878,1
    - Dst: OGROpenFileGDBLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2882
    functionName: OGROpenFileGDBLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::CreateSpatialIndex
    - OGROpenFileGDBLayer::BuildLayerDefinition
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::CreateSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2894,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2897,1
    - Dst: EscapeReservedKeywords
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2898,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2900,1
    - Dst: OGROpenFileGDBLayer::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - osIdxName
    - osExpression
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 2906
      start: 2888
    functionDepth: 1
    functionLinenumber: 2888
    functionLinenumberEnd: 2906
    functionName: OGROpenFileGDBLayer::CreateIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 2
    functionsReached:
    - OGROpenFileGDBLayer::CreateIndex
    - StringToWString
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - CPLError
    - EscapeReservedKeywords
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBLayer::CreateIndex(const std::string &osIdxName,\n
      \                                     const std::string &osExpression)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2918,1
    - Dst: OGROpenFileGDBLayer::Repack
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pfnProgress
    - pProgressData
    argTypes:
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2922
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2922
    functionName: OGROpenFileGDBLayer::Repack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::Repack
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBLayer::Repack(GDALProgressFunc pfnProgress,\n                                 void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2933,1
    - Dst: OGROpenFileGDBLayer::RecomputeExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2928
    functionDepth: 1
    functionLinenumber: 2928
    functionLinenumberEnd: 2937
    functionName: OGROpenFileGDBLayer::RecomputeExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::RecomputeExtent
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::RecomputeExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2945,1
    - Dst: OGROpenFileGDBLayer::CheckFreeListConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2943
    functionDepth: 1
    functionLinenumber: 2943
    functionLinenumberEnd: 2949
    functionName: OGROpenFileGDBLayer::CheckFreeListConsistency
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::CheckFreeListConsistency
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::CheckFreeListConsistency()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2957,1
    - Dst: OGROpenFileGDBLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2960,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2965,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2965,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2967,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2967,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2972,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2975,1
    - Dst: GetBackupDirName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2976,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2978,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2978,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2979,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2979,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2979,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2986,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2990,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:2990,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2955
    functionDepth: 2
    functionLinenumber: 2955
    functionLinenumberEnd: 2993
    functionName: OGROpenFileGDBLayer::BeginEmulatedTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 7
    functionsReached:
    - OGROpenFileGDBLayer::SyncToDisk
    - c_str
    - CPLGetPathSafe
    - CPLCopyFile
    - CPLGetBasenameSafe
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - GetBackupDirName
    - CSLDestroy
    - Clone
    - reset
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::BeginEmulatedTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2999
    functionDepth: 0
    functionLinenumber: 2999
    functionLinenumberEnd: 3005
    functionName: OGROpenFileGDBLayer::CommitEmulatedTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::CommitEmulatedTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3016,1
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3020,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3020,1
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3022,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3026,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3031,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3032,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3035,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3037,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3041,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3041,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3043,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3043,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3051,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3054,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3055,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3056,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3056,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3059,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3069,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3073,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3074,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3075,1
    - Dst: GetBackupDirName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3076,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3077,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3077,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3078,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3084,1
    - Dst: FileGDBTable::FileGDBTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3089,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3090,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3090,1
    - Dst: GetGeomFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3094,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3097,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3112,1
    - Dst: CPLQuadTreeDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3132,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3135,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3144,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3144,1
    - Dst: GetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3145,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3011
    functionDepth: 2
    functionLinenumber: 3011
    functionLinenumberEnd: 3149
    functionName: OGROpenFileGDBLayer::RollbackEmulatedTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - CPLCopyFile
    - IsSame
    - Open
    - GetDescription
    - GetGeomFieldIdx
    - GetFieldDefn
    - std::string::c_str
    - GetGeomField
    - DeleteFieldDefn
    - GetBackupDirName
    - AddFieldDefn
    - CPLQuadTreeDestroy
    - c_str
    - FileGDBTable::FileGDBTable
    - get
    - VSIUnlink
    - GetTemporaryUnsealer
    - FileGDBOGRGeometryConverter::BuildConverter
    - CPLFormFilenameSafe
    - CPLFree
    - OGROpenFileGDBLayer::SyncToDisk
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - OGROpenFileGDBLayer::Close
    - CSLDestroy
    - reset
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::RollbackEmulatedTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3160,1
    - Dst: OGROpenFileGDBLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3163,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3166,1
    - Dst: OGROpenFileGDBLayer::BeginEmulatedTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3167,1
    - Dst: BackupSystemTablesForTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3176,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3178,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3182,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3184,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3192,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3193,1
    - Dst: rfind
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3195,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3198,1
    - Dst: OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3206,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3211,1
    - Dst: m_osGDBSystemCatalogFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3211,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3214,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3216,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3219,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3222,1
    - Dst: FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3225,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3227,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3228,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3228,1
    - Dst: FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3233,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3244,1
    - Dst: m_osGDBItemsFilename::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3244,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3247,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3248,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3249,1
    - Dst: FETCH_FIELD_IDX_WITH_RET
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3251,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3254,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3257,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3260,1
    - Dst: FileGDBTable::GetAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3265,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3266,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3266,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3268,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3269,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3271,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3273,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3273,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3275,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3276,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3278,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3281,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3282,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3282,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3284,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3285,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3287,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3290,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3290,1
    - Dst: FileGDBTable::FreeAllFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp:3295,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 79
    argCount: 1
    argNames:
    - pszDstTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3304
      start: 3155
    functionDepth: 3
    functionLinenumber: 3155
    functionLinenumberEnd: 3304
    functionName: OGROpenFileGDBLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer_write.cpp
    functionUses: 0
    functionsReached:
    - m_osGDBItemsFilename::c_str
    - CPLString::toupper
    - CPLError
    - FileGDBTable::GetAllFieldValues
    - std::string::c_str
    - BackupSystemTablesForTransaction
    - CPLStrdup
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - CPLString::c_str
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - rfind
    - GetLayerByName
    - resize
    - OGROpenFileGDBLayer::RefreshXMLDefinitionInMemory
    - FileGDBTable::GetFieldValue
    - OGROpenFileGDBLayer::BeginEmulatedTransaction
    - IsInTransaction
    - c_str
    - FETCH_FIELD_IDX_WITH_RET
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - SetDescription
    - OGR_RawField_IsNull
    - whileUnsealing
    - CPLFree
    - OGROpenFileGDBLayer::SyncToDisk
    - FileGDBTable::FreeAllFieldValues
    - m_osGDBSystemCatalogFilename::c_str
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::Rename(const char *pszDstTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:43,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:44,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:45,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:47,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:48,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:55,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:56,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:57,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:57,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:59,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:60,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:84,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:85,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:86,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:87,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:88,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:89,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:90,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:91,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:92,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:93,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:94,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:95,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:96,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:97,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:98,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:101,1
    - Dst: FileGDBTable::GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:106,1
    - Dst: FileGDBTable::GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:107,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:116,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:118,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:123,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:134,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:136,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:148,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:149,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:153,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:158,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:166,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:168,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:174,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:175,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:180,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:183,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:185,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:193,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:194,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:198,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:201,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:211,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:212,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:219,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:221,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:226,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:229,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:231,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:236,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:239,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:241,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:246,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:249,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:251,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:256,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:259,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:261,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:269,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:271,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:317,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:319,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:325,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:327,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:329,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:342,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:346,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:350,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:354,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:356,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:365,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:371,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:389,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:389,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:391,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:396,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:397,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:400,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:401,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:415,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:417,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:422,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:423,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:426,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:427,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:446,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:447,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:450,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:451,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:457,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:458,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:459,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:459,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:464,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:465,1
    - Dst: static_cast<FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:468,1
    - Dst: auto::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:469,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:470,1
    - Dst: OGROpenFileGDBDataSource::BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:472,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:472,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:488,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:490,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:492,1
    - Dst: FileGDBTable::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:499,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:499,1
    - Dst: FileGDBTable::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:503,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:505,1
    - Dst: FileGDBTable::GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:507,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:514,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:517,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:523,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:523,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:525,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:525,1
    - Dst: OGROpenFileGDBDataSource::BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:528,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:532,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:534,1
    - Dst: FileGDBTable::SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:539,1
    - Dst: FileGDBTable::HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:542,1
    - Dst: FileGDBTable::GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:548,1
    - Dst: OGROpenFileGDBDataSource::BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:553,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:557,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:563,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:573,1
    - Dst: OGROpenFileGDBDataSource::BuildLayerFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:574,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:577,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:578,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:581,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:582,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:583,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:584,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:585,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:586,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:587,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:589,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:590,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:597,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:599,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:606,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:606,1
    - Dst: OGROpenFileGDBDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:607,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:607,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:610,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:610,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:614,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:614,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:615,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:615,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:616,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:616,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:617,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:617,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:620,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:622,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:624,1
    - Dst: std::min<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:624,1
    - Dst: OGROpenFileGDBDataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:627,1
    - Dst: OGROpenFileGDBDataSource::GuessJPEGQuality
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:632,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:643,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:670,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:677,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:677,1
    - Dst: std::make_unique<GDALOpenFileGDBRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:686,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:690,1
    - Dst: std::make_unique<GDALOpenFileGDBRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:692,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:695,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:697,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:704,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:706,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:712,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:718,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:719,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:722,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:723,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:726,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:727,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:730,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:731,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:734,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:735,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:738,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:739,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:742,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:745,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:747,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:747,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:749,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:751,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:758,1
    - Dst: GDALOpenFileGDBRasterBand::GDALOpenFileGDBRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:762,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:769,1
    - Dst: auto::m_poMaskBandOwned::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:770,1
    - Dst: std::make_unique<GDALOpenFileGDBRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:784,1
    - Dst: auto::m_apoOverviewBands::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:792,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:792,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:795,1
    - Dst: cpl::down_cast<GDALOpenFileGDBRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:805,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:806,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:805,1
    - Dst: std::make_unique<GDALOpenFileGDBRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:813,1
    - Dst: auto::m_poMaskBandOwned::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:816,1
    - Dst: OGROpenFileGDBDataSource::ReadAuxTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:824,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:826,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:826,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:828,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:831,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:831,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:834,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:837,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:837,1
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 375
    argCount: 4
    argNames:
    - poOpenInfo
    - osLayerName
    - osDefinition
    - osDocumentation
    argTypes:
    - GDALOpenInfo*
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 842
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 842
    functionName: OGROpenFileGDBDataSource::OpenRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 2
    functionsReached:
    - GDALOpenFileGDBRasterBand::GDALOpenFileGDBRasterBand
    - auto::m_apoOverviewBands::emplace_back
    - auto::m_poMaskBandOwned::get
    - OGROpenFileGDBDataSource::BuildLayerFromName
    - GetRasterBand
    - auto::GetType
    - CPLDebug
    - FileGDBTable::SelectRow
    - std::make_unique<GDALOpenFileGDBRasterBand>
    - CPLXMLTreeCloser::get
    - CPLError
    - SetMetadata
    - std::fabs
    - std::string::c_str
    - auto::GetFieldIndex
    - auto::c_str
    - OGROpenFileGDBDataSource::ExecuteSQL
    - simple_max
    - std::string::empty
    - end
    - FileGDBTable::GetFilename
    - sscanf
    - GDALGetDataTypeName
    - find
    - static_cast<FileGDBRasterField *>
    - FileGDBTable::GetTotalRecordCount
    - FileGDBTable::Open
    - CPLString::c_str
    - FileGDBTable::GetAndSelectNextNonEmptyRow
    - std::move
    - strlen
    - SetMetadataItem
    - simple_min
    - FileGDBTable::GetFieldValue
    - GetLayerDefn
    - IsEmpty
    - c_str
    - static_cast<int>
    - static_cast<float>
    - CPLAtof
    - GDALDataTypeIsInteger
    - cpl::down_cast<GDALOpenFileGDBRasterBand *>
    - const_cast<char **>
    - CPLString::Printf
    - get
    - OGROpenFileGDBDataSource::BuildSRS
    - CPLSPrintf
    - auto::empty
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - OGROpenFileGDBDataSource::GuessJPEGQuality
    - CPLAssert
    - auto::GetNextFeature
    - OGROpenFileGDBDataSource::ReadAuxTable
    - CPLFormFilenameSafe
    - GDALCheckBandCount
    - auto::GetWKT
    - static_cast<int64_t>
    - size
    - static_cast<double>
    - std::isfinite
    - std::unique_ptr<OGRFeature>
    - std::unique_ptr::get
    - empty
    - SetBand
    - FileGDBTable::HasGotError
    - GDALCheckDatasetDimensions
    - EQUAL
    - std::round
    - FileGDBTable::GetField
    - auto::Release
    - std::string
    - CPLSearchXMLNode
    - std::min<unsigned>
    - OGROpenFileGDBDataSource::ReleaseResultSet
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGROpenFileGDBDataSource::OpenRaster(const GDALOpenInfo *poOpenInfo,\n
      \                                         const std::string &osLayerName,\n
      \                                         const std::string &osDefinition,\n
      \                                         const std::string &osDocumentation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:852,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:859,1
    - Dst: SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:860,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:860,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:862,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:862,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:866,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:867,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:871,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:879,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:880,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:881,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:894,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:895,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:895,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:896,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:897,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:900,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:901,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:901,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:909,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:913,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - nOverviewCount
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 918
      start: 848
    functionDepth: 4
    functionLinenumber: 848
    functionLinenumberEnd: 918
    functionName: OGROpenFileGDBDataSource::GuessJPEGQuality
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 1
    functionsReached:
    - SetAttributeFilter
    - static_cast<unsigned>
    - CPLString::c_str
    - OGRAPISpyOpen
    - auto::IsFieldSetAndNotNull
    - SetMetadataItem
    - CPLString::Printf
    - VSIUnlink
    - const_cast<GByte *>
    - CPLAssert
    - VSIFileFromMemBuffer
    - std::unique_ptr<GDALDataset>
    - std::unique_ptr<OGRFeature>
    - VSIFCloseL
    - auto::GetFieldAsBinary
    - VSIMemGenerateHiddenFilename
    - GetNextFeature
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDataSource::GuessJPEGQuality(int nOverviewCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:931,1
    - Dst: OGROpenFileGDBDataSource::BuildLayerFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:932,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:932,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:935,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:935,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:938,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:940,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:942,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:943,1
    - Dst: auto::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:946,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:947,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:947,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:950,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:954,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:964,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:965,1
    - Dst: ReadUTF16String
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:973,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:995,1
    - Dst: ReadString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1010,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1017,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1018,1
    - Dst: ReadString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1059,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1062,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1062,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1063,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 1
    argNames:
    - osLayerName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1066
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 1066
    functionName: OGROpenFileGDBDataSource::ReadAuxTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - auto::GetLayerDefn
    - std::unique_ptr<OGRFeature>
    - memcpy
    - OGROpenFileGDBDataSource::BuildLayerFromName
    - ReadUTF16String
    - GetRasterBand
    - CPLDebug
    - auto::SetAttributeFilter
    - auto::GetFieldAsBinary
    - memcmp
    - auto::GetFieldIndex
    - auto::GetNextFeature
    - std::string
    - ReadString
    - auto::IsFieldSetAndNotNull
    - std::string::c_str
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBDataSource::ReadAuxTable(const std::string &osLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1074,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    functionName: OGROpenFileGDBDataSource::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROpenFileGDBDataSource::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: OGROpenFileGDBDataSource::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGROpenFileGDBDataSource::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1102,1
    - Dst: OGROpenFileGDBDataSource*::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1102,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1103,1
    - Dst: OGROpenFileGDBDataSource*::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1103,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1108,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 8
    argNames:
    - poDSIn
    - nBandIn
    - eDT
    - nBitWidth
    - nBlockWidth
    - nBlockHeight
    - nOverviewLevel
    - bIsMask
    argTypes:
    - OGROpenFileGDBDataSource*
    - int
    - GDALDataType
    - int
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1111
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1111
    functionName: GDALOpenFileGDBRasterBand::GDALOpenFileGDBRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBDataSource*::GetRasterYSize
    - CPLSPrintf
    - max
    - OGROpenFileGDBDataSource*::GetRasterXSize
    - SetMetadataItem
    linkageType: ''
    returnType: void
    signature: "void GDALOpenFileGDBRasterBand::GDALOpenFileGDBRasterBand(\n    OGROpenFileGDBDataSource
      *poDSIn, int nBandIn, GDALDataType eDT,\n    int nBitWidth, int nBlockWidth,
      int nBlockHeight, int nOverviewLevel,\n    bool bIsMask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1121,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1123,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1129,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1131,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1133,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1137,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1140,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - pImage
    - pabyMask
    - nPixels
    - dfNoData
    argTypes:
    - void*
    - GByte*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 1145
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1145
    functionName: SetNoDataFromMask
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<double>
    - static_cast<T *>
    - static_cast<T>
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void SetNoDataFromMask(void *pImage, const GByte *pabyMask,\n                              size_t
      nPixels, double dfNoData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGROpenFileGDBDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1154,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1165,1
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1167,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1171,1
    - Dst: GetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1176,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1179,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1186,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1201,1
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1203,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1207,1
    - Dst: GetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1212,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1215,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1218,1
    - Dst: GetRasterDataType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1222,1
    - Dst: GetImageData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1230,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1238,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1243,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1247,1
    - Dst: GetMaskData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1253,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1260,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1263,1
    - Dst: auto::m_oMapGDALBandToGDBBandId::find
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1269,1
    - Dst: auto::m_oMapGDALBandToGDBBandId::end
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1270,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1272,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1289,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1294,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1299,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1304,1
    - Dst: auto::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1308,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1308,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1309,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1309,1
    - Dst: FillMissingBlock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1314,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1318,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1320,1
    - Dst: FillMissingBlock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1323,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1329,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1345,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1361,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1361,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1373,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1376,1
    - Dst: GetImageData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1381,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1389,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1393,1
    - Dst: ExpandSubByteData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1400,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1404,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1406,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1413,1
    - Dst: auto::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1417,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1421,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1421,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1427,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1428,1
    - Dst: CPLZLibInflate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1429,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1429,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1434,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1439,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1439,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1440,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1441,1
    - Dst: GetImageData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1445,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1453,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1453,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1457,1
    - Dst: ExpandSubByteData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1464,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1464,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1468,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1471,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1477,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1479,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1483,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1485,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1494,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1495,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1496,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1498,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1504,1
    - Dst: auto::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1508,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1512,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1512,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1517,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1518,1
    - Dst: CPLZLibInflate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1519,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1524,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1528,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1534,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1539,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1540,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1540,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1541,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1542,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1544,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1544,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1545,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1548,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1549,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1552,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1553,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1554,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1556,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1556,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1557,1
    - Dst: GetImageData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1562,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1568,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1572,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1572,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1578,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1593,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1601,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1606,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1608,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1617,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1618,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1619,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1621,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1627,1
    - Dst: auto::resize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1631,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1635,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1635,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1640,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1641,1
    - Dst: CPLZLibInflate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1642,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1651,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1657,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1662,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1663,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1663,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1664,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1665,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1666,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1666,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1667,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1670,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1671,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1675,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1676,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1677,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1679,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1679,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1680,1
    - Dst: GetImageData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1685,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1691,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1695,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1695,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1697,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1701,1
    - Dst: GetMaskData
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1712,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1723,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1730,1
    - Dst: auto::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1735,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1741,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1745,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1749,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1753,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1757,1
    - Dst: SetNoDataFromMask
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1761,1
    - Dst: static_cast<float *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1771,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1772,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1785,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1792,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1797,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1804,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1805,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1807,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1816,1
    - Dst: static_cast<int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1817,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1819,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1828,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1829,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1831,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1840,1
    - Dst: static_cast<int16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1841,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1843,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1852,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1853,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1855,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1864,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1865,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1867,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1876,1
    - Dst: static_cast<float *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1877,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1879,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1888,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1889,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1891,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1899,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1904,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1910,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 389
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1916
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1916
    functionName: GDALOpenFileGDBRasterBand::IReadBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - ExpandSubByteData
    - static_cast<uint32_t *>
    - assert
    - GDALSwapWordsEx
    - auto::SetAttributeFilter
    - auto::m_oMapGDALBandToGDBBandId::end
    - static_cast<int16_t *>
    - static_cast<GByte>
    - GetImageData
    - auto::GetRasterYSize
    - CPLError
    - GDALRasterBlock*::DropLock
    - auto::size
    - printf
    - TryGetLockedBlockRef
    - auto::resize
    - GetMaskData
    - GetLockedBlockRef
    - static_cast<unsigned>
    - auto::GetRasterBand
    - std::make_pair
    - static_cast<int8_t *>
    - static_cast<float *>
    - CPLString::c_str
    - OGRAPISpyOpen
    - static_cast<double *>
    - GDALRasterBlock*::GetDataRef
    - GDALCopyWords64
    - auto::IsFieldSetAndNotNull
    - auto::DropLock
    - static_cast<uint16_t *>
    - static_cast<float>
    - unsigned
    - SetNoDataFromMask
    - CPLString::Printf
    - VSIUnlink
    - cpl::down_cast<OGROpenFileGDBDataSource *>
    - auto::empty
    - CPL_LSBPTR32
    - const_cast<GByte *>
    - CPLAssert
    - FillMissingBlock
    - static_cast<int32_t *>
    - auto::GetNextFeature
    - static_cast<GByte *>
    - VSIFileFromMemBuffer
    - what
    - CPLZLibInflate
    - GDALGetDriverByName
    - std::unique_ptr<OGRFeature>
    - std::unique_ptr<GDALDataset>
    - auto::data
    - auto::GetRasterXSize
    - VSIFCloseL
    - auto::GetRasterCount
    - auto::GetFieldAsBinary
    - GetRasterDataType
    - VSIMemGenerateHiddenFilename
    - memset
    - memcpy
    - auto::m_oMapGDALBandToGDBBandId::find
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALOpenFileGDBRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                            void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1925,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1926,1
    - Dst: cpl::down_cast<OGROpenFileGDBDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1928,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1930,1
    - Dst: std::make_unique<OGROpenFileGDBDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1932,1
    - Dst: auto::m_osDirName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1933,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1935,1
    - Dst: auto::BuildLayerFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1937,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1937,1
    - Dst: std::make_unique<GDALOpenFileGDBRasterAttributeTable>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1940,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1941,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1941,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1922
    functionDepth: 1
    functionLinenumber: 1922
    functionLinenumberEnd: 1943
    functionName: GDALOpenFileGDBRasterBand::GetDefaultRAT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - auto::BuildLayerFromName
    - auto::Open
    - get
    - auto::m_osDirName::c_str
    - cpl::down_cast<OGROpenFileGDBDataSource *>
    - std::make_unique<GDALOpenFileGDBRasterAttributeTable>
    - std::move
    - std::string
    - GetRasterCount
    - std::make_unique<OGROpenFileGDBDataSource>
    - std::string::c_str
    linkageType: ''
    returnType: GDALRasterAttributeTable
    signature: GDALRasterAttributeTable *GDALOpenFileGDBRasterBand::GetDefaultRAT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGROpenFileGDBDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1951,1
    - Dst: m_osDirName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1952,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1954,1
    - Dst: auto::BuildLayerFromName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1956,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1956,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1960,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1960,1
    - Dst: GDALOpenFileGDBRasterAttributeTable::GDALOpenFileGDBRasterAttributeTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1961
    functionName: GDALOpenFileGDBRasterAttributeTable::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/gdalopenfilegdbrasterband.cpp
    functionUses: 0
    functionsReached:
    - m_osDirName::c_str
    - c_str
    - auto::BuildLayerFromName
    - auto::Open
    - std::move
    - GDALOpenFileGDBRasterAttributeTable::GDALOpenFileGDBRasterAttributeTable
    - std::make_unique<OGROpenFileGDBDataSource>
    linkageType: ''
    returnType: GDALRasterAttributeTable
    signature: GDALRasterAttributeTable *GDALOpenFileGDBRasterAttributeTable::Clone()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: OGROpenFileGDBGeomFieldDefn::~OGROpenFileGDBGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBGeomFieldDefn::~OGROpenFileGDBGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: OGROpenFileGDBFeatureDefn::~OGROpenFileGDBFeatureDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBFeatureDefn::~OGROpenFileGDBFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBFeatureDefn::OGROpenFileGDBFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:63,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:64,1
    - Dst: OGROpenFileGDBLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:64,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:65,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:66,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:70,1
    - Dst: OGROpenFileGDBLayer::BuildGeometryColumnGDBv10
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:72,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 8
    argNames:
    - poDS
    - pszGDBFilename
    - pszName
    - osDefinition
    - osDocumentation
    - bEditable
    - eGeomType
    - osParentDefinition
    argTypes:
    - OGROpenFileGDBDataSource*
    - char*
    - char*
    - std::string
    - std::string
    - bool
    - OGRwkbGeometryType
    - std::string
    constantsTouched: []
    func_position:
      end: 77
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 77
    functionName: OGROpenFileGDBLayer::OGROpenFileGDBLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - SetGeomType
    - OGROpenFileGDBLayer::BuildGeometryColumnGDBv10
    - Reference
    - OGROpenFileGDBLayer::GetName
    - OGROpenFileGDBFeatureDefn::OGROpenFileGDBFeatureDefn
    - SetDescription
    - Seal
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBLayer::OGROpenFileGDBLayer(\n    OGROpenFileGDBDataSource
      *poDS, const char *pszGDBFilename,\n    const char *pszName, const std::string
      &osDefinition,\n    const std::string &osDocumentation, bool bEditable,\n    OGRwkbGeometryType
      eGeomType, const std::string &osParentDefinition)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:91,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - poDS
    - pszGDBFilename
    - pszName
    - eType
    - papszOptions
    argTypes:
    - OGROpenFileGDBDataSource*
    - char*
    - char*
    - OGRwkbGeometryType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: OGROpenFileGDBLayer::OGROpenFileGDBLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: void
    signature: "void OGROpenFileGDBLayer::OGROpenFileGDBLayer(OGROpenFileGDBDataSource
      *poDS,\n                                         const char *pszGDBFilename,\n
      \                                        const char *pszName,\n                                         OGRwkbGeometryType
      eType,\n                                         CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:102,1
    - Dst: UnsetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:106,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:107,1
    - Dst: CPLQuadTreeDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:117,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: OGROpenFileGDBLayer::~OGROpenFileGDBLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::SyncToDisk
    - CPLQuadTreeDestroy
    - UnsetLayer
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::~OGROpenFileGDBLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: OGROpenFileGDBLayer::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:139,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:139,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:146,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:148,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:150,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:154,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:159,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:159,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:161,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:164,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:164,1
    - Dst: FileGDBOGRGeometryConverter::GetGeometryTypeFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:177,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:179,1
    - Dst: FileGDBTable::FileGDBTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:183,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:184,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:185,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:187,1
    - Dst: GetGeomFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:192,1
    - Dst: reinterpret_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:196,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:197,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:198,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:199,1
    - Dst: OGROpenFileGDBLayer::TryToDetectMultiPatchKind
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:201,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:207,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:209,1
    - Dst: std::make_unique<OGROpenFileGDBGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:211,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:215,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:223,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:224,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:224,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:227,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:227,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:228,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:235,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:238,1
    - Dst: GDBGridSettingsToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:239,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:243,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:246,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:246,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:249,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:251,1
    - Dst: BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:254,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:256,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:260,1
    - Dst: BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:264,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:279,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:284,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:284,1
    - Dst: OGRSpatialReference*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:285,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:287,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:294,1
    - Dst: auto::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:295,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:297,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:297,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:303,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 1
    argNames:
    - osParentDefinition
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 306
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 306
    functionName: OGROpenFileGDBLayer::BuildGeometryColumnGDBv10
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::TryToDetectMultiPatchKind
    - FileGDBOGRGeometryConverter::GetGeometryTypeFromESRI
    - Open
    - GetDescription
    - auto::GetName
    - GetGeomFieldIdx
    - wkbSetZ
    - CPLDebug
    - strcmp
    - auto::SetCoordinatePrecision
    - CPLGetXMLValue
    - GDBGridSettingsToOGR
    - std::string::c_str
    - std::string::empty
    - std::move
    - GetField
    - SetMetadataItem
    - wkbSetM
    - c_str
    - CPLTestBool
    - BuildSRS
    - CPLDestroyXMLNode
    - FileGDBTable::FileGDBTable
    - std::make_unique<OGROpenFileGDBGeomFieldDefn>
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - auto::Dereference
    - auto::SetSpatialRef
    - FileGDBOGRGeometryConverter::BuildConverter
    - auto::IsSame
    - AddGeomFieldDefn
    - CPLGetXMLNode
    - OGROpenFileGDBLayer::Close
    - reinterpret_cast<FileGDBGeomField *>
    - EQUAL
    - auto::SetNullable
    - CPLSearchXMLNode
    - reset
    - auto::Release
    - OGRSpatialReference*::GetName
    linkageType: ''
    returnType: int
    signature: "int OGROpenFileGDBLayer::BuildGeometryColumnGDBv10(\n    const std::string
      &osParentDefinition)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:316,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:317,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:319,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:325,1
    - Dst: GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:328,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:331,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:335,1
    - Dst: GetOffsetInTableForRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:337,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:338,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:342,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:344,1
    - Dst: GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:350,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 360
    functionName: OGROpenFileGDBLayer::TryToDetectMultiPatchKind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 1
    functionsReached:
    - SelectRow
    - CPLGetErrorCounter
    - GetOffsetInTableForRow
    - CPLAssert
    - GetFieldValue
    - GetAsGeometry
    - GetTotalRecordCount
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::TryToDetectMultiPatchKind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBTable::FileGDBTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:373,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:374,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:375,1
    - Dst: FileGDBTable::FileGDBTable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:382,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:383,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:384,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:391,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:394,1
    - Dst: OGROpenFileGDBLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:399,1
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:406,1
    - Dst: GetGeomFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:408,1
    - Dst: cpl::down_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:411,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:412,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:413,1
    - Dst: FileGDBOGRGeometryConverter::BuildConverter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:414,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:417,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:418,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:419,1
    - Dst: BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:422,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:422,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:425,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:427,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:432,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:432,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:433,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:435,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:440,1
    - Dst: HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:441,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:442,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:442,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:444,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:444,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:447,1
    - Dst: FileGDBGeomField*::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:448,1
    - Dst: FileGDBGeomField*::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:449,1
    - Dst: FileGDBGeomField*::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:450,1
    - Dst: CPLQuadTreeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:451,1
    - Dst: CPLQuadTreeSetMaxDepth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:452,1
    - Dst: CPLQuadTreeGetAdvisedMaxDepth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:454,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:455,1
    - Dst: std::min<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:455,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:456,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:465,1
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:466,1
    - Dst: reinterpret_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:469,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:470,1
    - Dst: GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:473,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:498,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:498,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:500,1
    - Dst: OGROpenFileGDBLayer::TryToDetectMultiPatchKind
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:508,1
    - Dst: GetGeomTypeHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:511,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:512,1
    - Dst: GetGeomTypeHasM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:514,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:515,1
    - Dst: std::make_unique<OGROpenFileGDBGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:519,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:521,1
    - Dst: FileGDBGeomField*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:521,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:523,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:523,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:525,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:528,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:529,1
    - Dst: BuildSRS
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:531,1
    - Dst: FileGDBGeomField*::GetWKT
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:531,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:535,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:536,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:539,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:549,1
    - Dst: CPLXMLTreeCloser::reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:551,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:551,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:551,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:554,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:554,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:556,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:556,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:558,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:558,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:561,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:562,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:564,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:565,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:570,1
    - Dst: GetObjectIdFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:574,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:577,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:581,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:612,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:618,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:619,1
    - Dst: cpl::down_cast<const FileGDBRasterField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:633,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:634,1
    - Dst: FileGDBRasterField*::GetRasterType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:637,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:661,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:662,1
    - Dst: FileGDBField*::GetAlias
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:662,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:663,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:670,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:670,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:673,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:675,1
    - Dst: FileGDBField*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:675,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:686,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:686,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:687,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:695,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:697,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:697,1
    - Dst: FileGDBField*::SetHighPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:699,1
    - Dst: FileGDBField*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:703,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:704,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:704,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:712,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:714,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:733,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:737,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:741,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:748,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:750,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:755,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:758,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:762,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:762,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:765,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:770,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:773,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:777,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:780,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:785,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:788,1
    - Dst: FileGDBField*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:794,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:796,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:796,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:802,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:803,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:807,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:807,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:811,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:816,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:819,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:820,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:822,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:830,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:833,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:834,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:836,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:837,1
    - Dst: FileGDBField*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:839,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:840,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:842,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:843,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:846,1
    - Dst: HasDeletedFeaturesListed
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:849,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:852,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 261
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 856
    functionName: OGROpenFileGDBLayer::BuildLayerDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 15
    functionsReached:
    - FileGDBField*::GetAlias
    - OGRFieldDefn::SetDomainName
    - CPLDebug
    - CPLGetXMLValue
    - OGRFeatureDefn::GetGeomFieldCount
    - FileGDBField*::GetDefault
    - HasDeletedFeaturesListed
    - CPLAtoGIntBig
    - FileGDBGeomField*::GetXMin
    - AddFieldDefn
    - GetObjectIdFieldIdx
    - wkbSetM
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - FileGDBOGRGeometryConverter::BuildConverter
    - OGRFieldDefn::SetWidth
    - CPLGetXMLNode
    - auto::SetNullable
    - auto::Release
    - fabs
    - Open
    - std::min<int64_t>
    - GetGeomFieldDefn
    - FileGDBGeomField*::IsNullable
    - CPLXMLTreeCloser::reset
    - FileGDBField*::SetHighPrecision
    - std::move
    - GetField
    - wkbFlatten
    - CPLAtof
    - static_cast<int>
    - FileGDBRasterField*::GetRasterType
    - CPLAssert
    - OGR_RawField_IsNull
    - CPLFree
    - AddGeomFieldDefn
    - EQUAL
    - reset
    - FileGDBGeomField*::GetWKT
    - OGROpenFileGDBLayer::TryToDetectMultiPatchKind
    - HasSpatialIndex
    - atoi
    - GetDescription
    - auto::GetName
    - CanUseIndices
    - FileGDBGeomField*::GetYMin
    - OGRFieldDefn::SetNullable
    - CPLGetConfigOption
    - cpl::down_cast<FileGDBGeomField *>
    - GetGeomTypeHasZ
    - FileGDBGeomField*::GetYMax
    - std::abs
    - OGRFieldDefn::SetAlternativeName
    - c_str
    - GetSpatialRef
    - FileGDBTable::FileGDBTable
    - FileGDBField*::GetType
    - CPLSPrintf
    - GetTemporaryUnsealer
    - empty
    - reinterpret_cast<FileGDBGeomField *>
    - CPLQuadTreeSetMaxDepth
    - CPLSearchXMLNode
    - OGRFieldDefn::GetType
    - FileGDBField*::IsNullable
    - GetGeomFieldIdx
    - wkbSetZ
    - CPLXMLTreeCloser::get
    - CPLError
    - FileGDBGeomField*::GetXMax
    - cpl::down_cast<const FileGDBRasterField *>
    - CPLQuadTreeCreate
    - CPLTestBool
    - BuildSRS
    - GetGeomTypeHasM
    - OGRSpatialReference*::Dereference
    - std::make_unique<OGROpenFileGDBGeomFieldDefn>
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - GetValidRecordCount
    - GetGeometryType
    - FileGDBField*::GetName
    - auto::SetSpatialRef
    - auto::IsSame
    - OGRFieldDefn::SetDefault
    - OGROpenFileGDBLayer::Close
    - CPLQuadTreeGetAdvisedMaxDepth
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBLayer::BuildLayerDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:865,1
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 871
    functionName: OGROpenFileGDBLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - empty
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGROpenFileGDBLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: OGROpenFileGDBLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGROpenFileGDBLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:888,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: OGROpenFileGDBLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 4
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - GetField
    linkageType: ''
    returnType: char
    signature: char *OGROpenFileGDBLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:910,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:912,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 915
    functionName: OGROpenFileGDBLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:924,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:927,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:932,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:940,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:944,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:952,1
    - Dst: HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:952,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:953,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:954,1
    - Dst: OpenFileGDB::FileGDBSpatialIndexIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:956,1
    - Dst: SetEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:961,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:974,1
    - Dst: CPLQuadTreeSearch
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:977,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:982,1
    - Dst: InstallFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:986,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:992,1
    - Dst: InstallFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:995,1
    - Dst: OGROpenFileGDBLayer::BuildCombinedIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:998,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1001
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 1001
    functionName: OGROpenFileGDBLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - CPLQuadTreeSearch
    - CPLTestBool
    - GetExtent
    - HasSpatialIndex
    - OpenFileGDB::FileGDBSpatialIndexIterator::Build
    - InstallFilterEnvelope
    - OGRLayer::ISetSpatialFilter
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::BuildCombinedIterator
    - CanUseIndices
    - CPLDebug
    - std::sort
    - CPLGetConfigOption
    - CPLFree
    - SetEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::ISetSpatialFilter(int iGeomField,\n                                              const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1011,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1017,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1019,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1021,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1023,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1043,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1057,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - poFieldDefn
    - poValue1
    - poValue2
    argTypes:
    - OGRFieldDefn*
    - swq_expr_node*
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1066
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1066
    functionName: CompValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetType
    - strcmp
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: "int CompValues(OGRFieldDefn *poFieldDefn, const swq_expr_node *poValue1,\n
      \                     const swq_expr_node *poValue2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1076
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1076
    functionName: OGROpenFileGDBIsComparisonOp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBIsComparisonOp(int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1121,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1124,1
    - Dst: OGROpenFileGDBIsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1135,1
    - Dst: OGROpenFileGDBIsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1138,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1146,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 19
    argCount: 3
    argNames:
    - poFeatureDefn
    - poNode1
    - poNode2
    argTypes:
    - OGRFeatureDefn*
    - swq_expr_node*
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1095
    functionDepth: 2
    functionLinenumber: 1095
    functionLinenumberEnd: 1154
    functionName: AreExprExclusive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGROpenFileGDBIsComparisonOp
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: "int AreExprExclusive(OGRFeatureDefn *poFeatureDefn,\n                            const
      swq_expr_node *poNode1,\n                            const swq_expr_node *poNode2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1164,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1169,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1172,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1178,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1200,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1203,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1205,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1208,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1209,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1210,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1211,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1212,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1213,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - poFieldDefn
    - poTargetValue
    - poSrcValue
    argTypes:
    - OGRFieldDefn*
    - OGRField*
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1228
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1228
    functionName: FillTargetValueFromSrcExpr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - sscanf
    - static_cast<int>
    - static_cast<GInt16>
    - OGRFieldDefn*::GetType
    - static_cast<GByte>
    linkageType: ''
    returnType: int
    signature: "int FillTargetValueFromSrcExpr(OGRFieldDefn *poFieldDefn,\n                                      OGRField
      *poTargetValue,\n                                      const swq_expr_node *poSrcValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1244
    functionName: GetColumnSubNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node *GetColumnSubNode(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1260
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1260
    functionName: GetConstantSubNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: swq_expr_node
    signature: swq_expr_node *GetConstantSubNode(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1280,1
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1288,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildAnd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1293,1
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1306,1
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1310,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildOr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1317,1
    - Dst: AreExprExclusive
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1319,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1319,1
    - Dst: OGROpenFileGDBIsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1326,1
    - Dst: GetColumnSubNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1330,1
    - Dst: GetConstantSubNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1331,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1333,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1336,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1341,1
    - Dst: FillTargetValueFromSrcExpr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1345,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1348,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1375,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1407,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1413,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1415,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1416,1
    - Dst: auto::HasIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1420,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1421,1
    - Dst: auto::GetIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1422,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1452,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1468,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1471,1
    - Dst: OpenFileGDB::FileGDBIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1478,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1480,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildNot
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1485,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1497,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1500,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1505,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildIsNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1507,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildNot
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1512,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1526,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1529,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1534,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildIsNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1536,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1549,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1558,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1563,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1568,1
    - Dst: FillTargetValueFromSrcExpr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1573,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1582,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1583,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1590,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1596,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1606,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1609,1
    - Dst: OpenFileGDB::FileGDBIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1618,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1620,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildOr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1630,1
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1644,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1650,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildNot
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1655,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1660,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 194
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1663
    functionName: OGROpenFileGDBLayer::BuildIteratorFromExprNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 1
    functionsReached:
    - OGROpenFileGDBLayer::BuildIteratorFromExprNode
    - auto::GetType
    - CPLDebug
    - auto::HasIndex
    - GetColumnSubNode
    - GetField
    - OGROpenFileGDBLayer::GetLayerDefn
    - auto::GetIndex
    - STARTS_WITH_CI
    - OpenFileGDB::FileGDBIterator::Build
    - FillTargetValueFromSrcExpr
    - AreExprExclusive
    - OpenFileGDB::FileGDBIterator::BuildNot
    - CPLAssert
    - OGRFieldDefn*::GetType
    - CPL_IGNORE_RET_VAL
    - OpenFileGDB::FileGDBIterator::BuildOr
    - CPLFree
    - CPLRecodeToWChar
    - static_cast<size_t>
    - OGROpenFileGDBIsComparisonOp
    - OpenFileGDB::FileGDBIterator::BuildAnd
    - OpenFileGDB::FileGDBIterator::BuildIsNotNull
    - GetConstantSubNode
    linkageType: ''
    returnType: FileGDBIterator
    signature: 'FileGDBIterator *

      OGROpenFileGDBLayer::BuildIteratorFromExprNode(swq_expr_node *poNode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1671,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1680,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1682,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1682,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1688,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1688,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1689,1
    - Dst: OGROpenFileGDBLayer::BuildIteratorFromExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1691,1
    - Dst: OGROpenFileGDBLayer::BuildCombinedIterator
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1699,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1702
      start: 1669
    functionDepth: 4
    functionLinenumber: 1669
    functionLinenumberEnd: 1702
    functionName: OGROpenFileGDBLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - CPLTestBool
    - OGRLayer::SetAttributeFilter
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::BuildIteratorFromExprNode
    - OGROpenFileGDBLayer::BuildCombinedIterator
    - static_cast<swq_expr_node *>
    - GetSWQExpr
    - CPLGetConfigOption
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileGDB::FileGDBIterator::BuildAnd
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1720
    functionName: OGROpenFileGDBLayer::BuildCombinedIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 2
    functionsReached:
    - OpenFileGDB::FileGDBIterator::BuildAnd
    linkageType: ''
    returnType: void
    signature: void OGROpenFileGDBLayer::BuildCombinedIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1731,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1738,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1745,1
    - Dst: GetFeatureExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1751,1
    - Dst: CPLQuadTreeInsertWithBounds
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1769,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1771,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1772,1
    - Dst: DoesGeometryIntersectsFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1780,1
    - Dst: GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1787,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1791,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1791,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1794,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1797,1
    - Dst: OGRMultiSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1798,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1803,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1806,1
    - Dst: OGRMultiCurve*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1807,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1811,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1812,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1815,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1816,1
    - Dst: GetObjectIdFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1820,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1823,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1824,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1826,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1828,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1831,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1837,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1838,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1840,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1843,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1848,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1851,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1859,1
    - Dst: HasDeletedFeaturesListed
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1861,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1863,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1863,1
    - Dst: IsCurRowDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1864,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1867,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1870,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1870,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1726
    functionDepth: 5
    functionLinenumber: 1726
    functionLinenumberEnd: 1873
    functionName: OGROpenFileGDBLayer::GetCurrentFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - DoesGeometryIntersectsFilterEnvelope
    - GetGeomFieldDefn
    - OGRMultiSurface::OGRMultiSurface
    - GetFieldDefn
    - reinterpret_cast<void *>
    - CPLQuadTreeInsertWithBounds
    - HasDeletedFeaturesListed
    - OGRGeometryFactory::forceToMultiLineString
    - OGRFieldDefn*::IsIgnored
    - GetFeatureExtent
    - GetField
    - GetFieldValue
    - OGRMultiCurve*::addGeometryDirectly
    - wkbFlatten
    - OGRFeature*::SetGeometryDirectly
    - GetObjectIdFieldIdx
    - OGRGeometry*::getGeometryType
    - reinterpret_cast<const char *>
    - OGRFeature*::GetFID
    - OGRMultiSurface*::addGeometryDirectly
    - GetFieldCount
    - OGRGeometryFactory::forceToMultiPolygon
    - OGRFieldDefn*::GetType
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - OGRMultiCurve::OGRMultiCurve
    - IsCurRowDeleted
    - OGRFeature*::SetField
    - GetAsGeometry
    - static_cast<uintptr_t>
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBLayer::GetCurrentFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1881,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1902,1
    - Dst: reinterpret_cast<GUIntptr_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1902,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1904,1
    - Dst: OGROpenFileGDBLayer::GetCurrentFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1906,1
    - Dst: HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1910,1
    - Dst: FileGDBIterator*::GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1921,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1924,1
    - Dst: OGROpenFileGDBLayer::GetCurrentFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1926,1
    - Dst: HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1930,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1941,1
    - Dst: GetAndSelectNextNonEmptyRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1946,1
    - Dst: OGROpenFileGDBLayer::GetCurrentFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1955,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1957,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1959,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1969,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1969,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1973,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1879
    functionDepth: 6
    functionLinenumber: 1879
    functionLinenumberEnd: 1980
    functionName: OGROpenFileGDBLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GUIntptr_t>
    - SelectRow
    - HasGotError
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - FilterGeometry
    - Evaluate
    - CPLDebug
    - FileGDBIterator*::GetNextRowSortedByFID
    - GetAndSelectNextNonEmptyRow
    - OGRFeature*::GetGeometryRef
    - static_cast<int64_t>
    - GetTotalRecordCount
    - OGROpenFileGDBLayer::GetCurrentFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1988,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1991,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:1993,1
    - Dst: OGROpenFileGDBLayer::GetCurrentFeature
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2011
      start: 1986
    functionDepth: 6
    functionLinenumber: 1986
    functionLinenumberEnd: 2011
    functionName: OGROpenFileGDBLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - SelectRow
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGROpenFileGDBLayer::GetCurrentFeature
    - GetTotalRecordCount
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROpenFileGDBLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2020,1
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2022,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2035,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2036,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2038,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2044,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2045
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2045
    functionName: OGROpenFileGDBLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGRLayer::SetNextByIndex
    - GetValidRecordCount
    - GetTotalRecordCount
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROpenFileGDBLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2054,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2057,1
    - Dst: reinterpret_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2059,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2060,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2061,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2061,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2063,1
    - Dst: FileGDBGeomField*::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2064,1
    - Dst: FileGDBGeomField*::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2065,1
    - Dst: FileGDBGeomField*::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2072
      start: 2051
    functionDepth: 3
    functionLinenumber: 2051
    functionLinenumberEnd: 2072
    functionName: OGROpenFileGDBLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - reinterpret_cast<FileGDBGeomField *>
    - FileGDBGeomField*::GetYMax
    - FileGDBGeomField*::GetYMin
    - GetValidRecordCount
    - FileGDBGeomField*::GetXMin
    - GetField
    - std::isnan
    - FileGDBGeomField*::GetXMax
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::IGetExtent(int /* iGeomField */,\n                                       OGREnvelope
      *psExtent, bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2081,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2085,1
    - Dst: reinterpret_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2087,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2088,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2089,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2089,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2091,1
    - Dst: FileGDBGeomField*::GetYMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2092,1
    - Dst: FileGDBGeomField*::GetXMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2093,1
    - Dst: FileGDBGeomField*::GetYMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2094,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2095,1
    - Dst: FileGDBGeomField*::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2095,1
    - Dst: FileGDBGeomField*::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2097,1
    - Dst: FileGDBGeomField*::GetZMax
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2098,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2102,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2104,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2106,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2107,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 2114
      start: 2078
    functionDepth: 3
    functionLinenumber: 2078
    functionLinenumberEnd: 2114
    functionName: OGROpenFileGDBLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGR_GT_HasZ
    - reinterpret_cast<FileGDBGeomField *>
    - FileGDBGeomField*::GetYMax
    - FileGDBGeomField*::GetYMin
    - GetValidRecordCount
    - FileGDBGeomField*::GetXMin
    - GetField
    - FileGDBGeomField*::GetZMax
    - FileGDBGeomField*::GetZMin
    - std::isnan
    - OGRLayer::IGetExtent3D
    - FileGDBGeomField*::GetXMax
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROpenFileGDBLayer::IGetExtent3D(int iGeomField,\n                                         OGREnvelope3D
      *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2122,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2129,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2141,1
    - Dst: GetNextRowSortedByFID
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2146,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2149,1
    - Dst: HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2151,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2158,1
    - Dst: DoesGeometryIntersectsFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2161,1
    - Dst: GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2165,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2166,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2184,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2189,1
    - Dst: SelectRow
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2191,1
    - Dst: HasGotError
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2193,1
    - Dst: GetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2209,1
    - Dst: GetFeatureExtent
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2215,1
    - Dst: CPLQuadTreeInsertWithBounds
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2223,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2225,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2225,1
    - Dst: DoesGeometryIntersectsFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2230,1
    - Dst: GetAsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2233,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2234,1
    - Dst: static_cast<void **>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2242,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2243,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2248,1
    - Dst: static_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2249,1
    - Dst: GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2269,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2272,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 83
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2273
      start: 2120
    functionDepth: 3
    functionLinenumber: 2120
    functionLinenumberEnd: 2273
    functionName: OGROpenFileGDBLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - DoesGeometryIntersectsFilterEnvelope
    - OGRLayer::GetFeatureCount
    - GetRowCount
    - reinterpret_cast<void *>
    - CPLQuadTreeInsertWithBounds
    - Reset
    - SelectRow
    - GetFeatureExtent
    - CPLRealloc
    - GetFieldValue
    - HasGotError
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - FilterGeometry
    - GetValidRecordCount
    - CPLFree
    - GetTotalRecordCount
    - GetNextRowSortedByFID
    - static_cast<void **>
    - GetAsGeometry
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROpenFileGDBLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2284,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2284,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2285,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2286,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2293,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2298,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2300,1
    - Dst: GetTotalRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2301,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2305,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2313,1
    - Dst: GetValidRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2316,1
    - Dst: reinterpret_cast<FileGDBGeomField *>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2319,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2320,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2321,1
    - Dst: FileGDBGeomField*::GetXMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2321,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2323,1
    - Dst: FileGDBGeomField*::GetZMin
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2323,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2335,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2344,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2347,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2350,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2353,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2356,1
    - Dst: HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2357,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 46
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2279
    functionDepth: 3
    functionLinenumber: 2279
    functionLinenumberEnd: 2361
    functionName: OGROpenFileGDBLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - HasSpatialIndex
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - OGR_GT_HasZ
    - reinterpret_cast<FileGDBGeomField *>
    - CanUseIndices
    - EQUAL
    - GetValidRecordCount
    - FileGDBGeomField*::GetXMin
    - GetField
    - FileGDBGeomField*::GetZMin
    - std::isnan
    - GetTotalRecordCount
    linkageType: ''
    returnType: int
    signature: int OGROpenFileGDBLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2369,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2371,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2376
      start: 2367
    functionDepth: 3
    functionLinenumber: 2367
    functionLinenumberEnd: 2376
    functionName: OGROpenFileGDBLayer::HasIndexForField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - CanUseIndices
    - GetField
    linkageType: ''
    returnType: bool
    signature: bool OGROpenFileGDBLayer::HasIndexForField(const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2386,1
    - Dst: OGROpenFileGDBLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2392,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2395,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildIsNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2398,1
    - Dst: FillTargetValueFromSrcExpr
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2402,1
    - Dst: OpenFileGDB::FileGDBIterator::Build
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2426,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - pszFieldName
    - bAscending
    - op
    - poValue
    argTypes:
    - char*
    - int
    - int
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 2432
      start: 2382
    functionDepth: 3
    functionLinenumber: 2382
    functionLinenumberEnd: 2432
    functionName: OGROpenFileGDBLayer::BuildIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - OpenFileGDB::FileGDBIterator::Build
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - FillTargetValueFromSrcExpr
    - OGRFieldDefn*::GetType
    - GetField
    - OpenFileGDB::FileGDBIterator::BuildIsNotNull
    - OGROpenFileGDBLayer::GetLayerDefn
    linkageType: ''
    returnType: FileGDBIterator
    signature: "FileGDBIterator *OGROpenFileGDBLayer::BuildIndex(const char *pszFieldName,\n
      \                                                int bAscending, int op,\n                                                 swq_expr_node
      *poValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2442,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2444,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2449,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildIsNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2453,1
    - Dst: GetMinValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2457,1
    - Dst: GetMaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2458,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - poFieldDefn
    - bIsMin
    - eOutType
    argTypes:
    - OGRFieldDefn*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2465
      start: 2438
    functionDepth: 3
    functionLinenumber: 2438
    functionLinenumberEnd: 2465
    functionName: OGROpenFileGDBLayer::GetMinMaxValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - GetMaxValue
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - CanUseIndices
    - OGRFieldDefn*::GetType
    - GetField
    - OpenFileGDB::FileGDBIterator::BuildIsNotNull
    - GetMinValue
    linkageType: ''
    returnType: OGRField
    signature: "OGRField *OGROpenFileGDBLayer::GetMinMaxValue(OGRFieldDefn *poFieldDefn,\n
      \                                                   int bIsMin, int &eOutType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROpenFileGDBLayer::BuildLayerDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2479,1
    - Dst: CanUseIndices
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2481,1
    - Dst: GetField
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2485,1
    - Dst: std::unique_ptr<FileGDBIterator>
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2487,1
    - Dst: OpenFileGDB::FileGDBIterator::BuildIsNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2488,1
    - Dst: auto::GetMinMaxSumCount
      Src: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp:2491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - poFieldDefn
    - dfMin
    - dfMax
    - dfSum
    - nCount
    argTypes:
    - OGRFieldDefn*
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2495
      start: 2471
    functionDepth: 3
    functionLinenumber: 2471
    functionLinenumberEnd: 2495
    functionName: OGROpenFileGDBLayer::GetMinMaxSumCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached:
    - auto::GetMinMaxSumCount
    - std::unique_ptr<FileGDBIterator>
    - OGROpenFileGDBLayer::BuildLayerDefinition
    - CanUseIndices
    - GetField
    - OpenFileGDB::FileGDBIterator::BuildIsNotNull
    linkageType: ''
    returnType: int
    signature: "int OGROpenFileGDBLayer::GetMinMaxSumCount(OGRFieldDefn *poFieldDefn,\n
      \                                          double &dfMin, double &dfMax,\n                                           double
      &dfSum, int &nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2504
    functionName: OGROpenFileGDBLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/openfilegdb/ogropenfilegdblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROpenFileGDBLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - Nodetype
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: Nodetype2String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Nodetype2String(Nodetype const &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - cIn
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: isNumberDigit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isNumberDigit(const char cIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Coordinate::Coordinate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:67,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:70,1
    - Dst: isNumberDigit
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:71,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:81,1
    - Dst: isNumberDigit
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:82,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - text
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 97
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 97
    functionName: ParseCoordinate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - Coordinate::Coordinate
    - isNumberDigit
    - CPLAtof
    linkageType: ''
    returnType: Coordinate
    signature: Coordinate *ParseCoordinate(std::string const &text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<KMLNode *>::vector<KMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:104,1
    - Dst: std::vector<std::string>::string>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:105,1
    - Dst: std::vector<Attribute *>::vector<Attribute *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: KMLNode::KMLNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Attribute *>::vector<Attribute *>
    - std::vector<KMLNode *>::vector<KMLNode *>
    - std::vector<std::string>::string>
    linkageType: ''
    returnType: void
    signature: void KMLNode::KMLNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:112,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:113,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:116,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:116,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:124,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: KMLNode::~KMLNode()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLAssert
    - begin
    linkageType: ''
    returnType: void
    signature: void KMLNode::~KMLNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:144,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:148,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:148,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:149,1
    - Dst: sName_::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:149,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:150,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:150,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:151,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:151,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:152,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:152,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:159,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:159,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:159,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:160,1
    - Dst: sName_::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:160,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:161,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:162,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:162,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:163,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:163,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:168,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:171,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:171,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:171,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:172,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:173,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:173,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:174,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:174,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:175,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:175,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:180,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:181,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:181,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:182,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:187,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:188,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:188,1
    - Dst: sName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:189,1
    - Dst: sValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:190,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:193,1
    - Dst: KMLNode::print
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - what
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 195
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 195
    functionName: KMLNode::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - size
    - c_str
    - static_cast<int>
    - KMLNode::print
    - CPLDebug
    - Nodetype2String
    - sName_::c_str
    - sValue::c_str
    - std::string::c_str
    - sName::c_str
    linkageType: ''
    returnType: void
    signature: void KMLNode::print(unsigned int what)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:204,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:210,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:212,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:214,1
    - Dst: KML*::isRest
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:216,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:218,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:220,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:226,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:240,1
    - Dst: KMLNode::classify
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:244,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:253,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:254,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:255,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:256,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:269,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:270,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:271,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:272,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 53
    argCount: 2
    argNames:
    - poKML
    - nRecLevel
    argTypes:
    - KML*
    - int
    constantsTouched: []
    func_position:
      end: 288
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 288
    functionName: KMLNode::classify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - size
    - KMLNode::classify
    - KML*::isRest
    - strchr
    - compare
    - CPLError
    linkageType: ''
    returnType: int
    signature: int KMLNode::classify(KML *poKML, int nRecLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KMLNode::countChildren
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:292,1
    - Dst: KMLNode::getChild
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:294,1
    - Dst: KML*::unregisterLayerIfMatchingThisNode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poKML
    argTypes:
    - KML*
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: KMLNode::unregisterLayerIfMatchingThisNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - KMLNode::countChildren
    - KML*::unregisterLayerIfMatchingThisNode
    - KMLNode::getChild
    linkageType: ''
    returnType: void
    signature: void KMLNode::unregisterLayerIfMatchingThisNode(KML *poKML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:301,1
    - Dst: KML*::isContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:304,1
    - Dst: KML*::isFeatureContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:305,1
    - Dst: KMLNode::unregisterLayerIfMatchingThisNode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:307,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:309,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:309,1
    - Dst: KMLNode::eliminateEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poKML
    argTypes:
    - KML*
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: KMLNode::eliminateEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - size
    - erase
    - KMLNode::eliminateEmpty
    - KML*::isContainer
    - KMLNode::unregisterLayerIfMatchingThisNode
    - begin
    - KML*::isFeatureContainer
    linkageType: ''
    returnType: void
    signature: void KMLNode::eliminateEmpty(KML *poKML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:321,1
    - Dst: KMLNode::hasOnlyEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 335
    functionName: KMLNode::hasOnlyEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - size
    - KMLNode::hasOnlyEmpty
    linkageType: ''
    returnType: bool
    signature: bool KMLNode::hasOnlyEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oNotet
    argTypes:
    - Nodetype
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: KMLNode::setType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLNode::setType(Nodetype oNotet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: KMLNode::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Nodetype
    signature: Nodetype KMLNode::getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: KMLNode::setName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLNode::setName(std::string const &sIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: '&KMLNode::getName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &KMLNode::getName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLev
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: KMLNode::setLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLNode::setLevel(std::size_t nLev)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: KMLNode::getLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t KMLNode::getLevel() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poAttr
    argTypes:
    - Attribute*
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: KMLNode::addAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void KMLNode::addAttribute(Attribute *poAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPar
    argTypes:
    - KMLNode*
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: KMLNode::setParent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLNode::setParent(KMLNode *poPar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: KMLNode::getParent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KMLNode
    signature: KMLNode *KMLNode::getParent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poChil
    argTypes:
    - KMLNode*
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: KMLNode::addChildren
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void KMLNode::addChildren(KMLNode *poChil)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: KMLNode::countChildren
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t KMLNode::countChildren() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: KMLNode::getChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: KMLNode
    signature: KMLNode *KMLNode::getChild(std::size_t index) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: KMLNode::addContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void KMLNode::addContent(std::string const &text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: KMLNode::appendContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - back
    linkageType: ''
    returnType: void
    signature: void KMLNode::appendContent(std::string const &text)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: KMLNode::getContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KMLNode::getContent(std::size_t index) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:414,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:416,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: KMLNode::deleteContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - size
    - erase
    - begin
    linkageType: ''
    returnType: void
    signature: void KMLNode::deleteContent(std::size_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: KMLNode::numContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t KMLNode::numContent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: KMLNode::setLayerNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLNode::setLayerNumber(int nNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: KMLNode::getLayerNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int KMLNode::getLayerNumber() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:437,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:441,1
    - Dst: pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: KMLNode::getNameElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - size
    - pvsContent_::size
    - sName_::compare
    linkageType: ''
    returnType: std::string
    signature: std::string KMLNode::getNameElement() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:456,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:459,1
    - Dst: pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 470
    functionName: KMLNode::getDescriptionElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - size
    - pvsContent_::size
    - sName_::compare
    linkageType: ''
    returnType: std::string
    signature: std::string KMLNode::getDescriptionElement() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:474,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: KMLNode::getNumFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t KMLNode::getNumFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:494,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:497,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:499,1
    - Dst: KMLNode*::pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:503,1
    - Dst: ParseCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:505,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:509,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:513,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:521,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:523,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:526,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:527,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:529,1
    - Dst: KMLNode*::pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:533,1
    - Dst: ParseCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:535,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:539,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:543,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:551,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:556,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:557,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:559,1
    - Dst: pvpoChildren_::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:561,1
    - Dst: KMLNode*::pvpoChildren_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:573,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:576,1
    - Dst: pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:581,1
    - Dst: ParseCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:584,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:590,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:593,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:597,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:610,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:617,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:620,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:624,1
    - Dst: pvpoChildren_::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:627,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:630,1
    - Dst: KMLNode*::pvpoChildren_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:635,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:637,1
    - Dst: pvsContent_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:641,1
    - Dst: ParseCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:645,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:651,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:655,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:666,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:668,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:669,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:670,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:671,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:674,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:676,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:678,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:680,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:681,1
    - Dst: KMLNode::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:683,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:685,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 108
    argCount: 1
    argNames:
    - eType
    argTypes:
    - Nodetype
    constantsTouched: []
    func_position:
      end: 690
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 690
    functionName: KMLNode::getGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - KMLNode*::pvsContent_::size
    - compare
    - OGRPolygon::OGRPolygon
    - KMLNode::getGeometry
    - KMLNode*::pvpoChildren_::size
    - pvpoChildren_::empty
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - ParseCoordinate
    - OGRLinearRing::OGRLinearRing
    - OGRGeometry*::toGeometryCollection
    - sName_::compare
    - OGRMultiPolygon::OGRMultiPolygon
    - pvsContent_::size
    - OGRGeometry*::toLineString
    - size
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometry*::toPolygon
    - OGRLinearRing*::addPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *KMLNode::getGeometry(Nodetype eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KMLNode::getNumFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:694,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:702,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:713,1
    - Dst: sName_::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:715,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:726,1
    - Dst: Feature::Feature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:733,1
    - Dst: KMLNode*::getNameElement
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:735,1
    - Dst: KMLNode*::getDescriptionElement
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:737,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:744,1
    - Dst: KMLNode*::pvpoChildren_::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:755,1
    - Dst: auto::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:758,1
    - Dst: Feature*::poGeom::reset
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:764,1
    - Dst: KMLNode*::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp:764,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - nNum
    - nLastAsked
    - nLastCount
    argTypes:
    - std::size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 777
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 777
    functionName: KMLNode::getFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp
    functionUses: 0
    functionsReached:
    - size
    - KMLNode::getNumFeatures
    - static_cast<int>
    - KMLNode*::getGeometry
    - KMLNode*::getDescriptionElement
    - auto::compare
    - Feature*::poGeom::reset
    - sName_::compare
    - Feature::Feature
    - KMLNode*::getNameElement
    - Nodetype2String
    - KMLNode*::pvpoChildren_::size
    linkageType: ''
    returnType: Feature
    signature: Feature *KMLNode::getFeature(std::size_t nNum, int &nLastAsked, int
      &nLastCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: KML::KML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KML::KML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:35,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: KML::~KML()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void KML::~KML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:44,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: KML::open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    - VSIFCloseL
    linkageType: ''
    returnType: bool
    signature: bool KML::open(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:70,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:71,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:72,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:73,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:85,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:86,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:86,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:86,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:87,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:88,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:88,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:90,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:93,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:94,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:94,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:95,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:95,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:102,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:103,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:107,1
    - Dst: getParent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 137
    functionName: KML::parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - XML_SetElementHandler
    - XML_Parse
    - CPLError
    - std::vector::size
    - XML_ErrorString
    - XML_ParserFree
    - XML_GetErrorCode
    - VSIRewindL
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - VSIFReadL
    - XML_GetCurrentColumnNumber
    - getParent
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool KML::parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:159,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:160,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:161,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:162,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:175,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:176,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:176,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:176,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:177,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:178,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:178,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:184,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:184,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:185,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:185,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:186,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:186,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:187,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:189,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:192,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:192,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:193,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:193,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:194,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:194,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:198,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:199,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:209,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 212
    functionName: KML::checkValidity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - XML_SetElementHandler
    - XML_Parse
    - CPLError
    - std::vector::size
    - XML_ErrorString
    - XML_ParserFree
    - XML_GetErrorCode
    - VSIRewindL
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - strstr
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - VSIFReadL
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void KML::checkValidity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KML *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:217,1
    - Dst: KML*::poCurrent_::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:232,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:235,1
    - Dst: KMLNode::KMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:239,1
    - Dst: KMLNode*::setName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:240,1
    - Dst: KMLNode*::setLevel
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:241,1
    - Dst: Attribute::Attribute
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:245,1
    - Dst: KMLNode*::addAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:248,1
    - Dst: KMLNode*::setParent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:254,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:272,1
    - Dst: KML*::poCurrent_::addContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:273,1
    - Dst: KML*::poCurrent_::appendContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:275,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:280,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:281,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 284
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 284
    functionName: XMLCALL::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - KML*::poCurrent_::getName
    - KML*::poCurrent_::addContent
    - KMLNode*::setName
    - XML_StopParser
    - Attribute::Attribute
    - KMLNode*::setLevel
    - KMLNode*::setParent
    - KMLNode*::addAttribute
    - KML*::poCurrent_::numContent
    - static_cast<KML *>
    - CPLError
    - KMLNode::KMLNode
    - what
    - KML*::poCurrent_::appendContent
    linkageType: ''
    returnType: void
    signature: "void XMLCALL KML::startElement(void *pUserData, const char *pszName,\n
      \                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KML *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:289,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:300,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:300,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:306,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:309,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:311,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:317,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:323,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:331,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:342,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 348
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 348
    functionName: XMLCALL::startElementValidate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - static_cast<KML *>
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: "void XMLCALL KML::startElementValidate(void *pUserData, const char
      *pszName,\n                                       const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KML *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:359,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: XMLCALL::dataHandlerValidate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<KML *>
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: "void XMLCALL KML::dataHandlerValidate(void *pUserData,\n                                      const
      char * /* pszData */,\n                                      int /* nLen */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KML *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:367,1
    - Dst: KML*::poCurrent_::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:378,1
    - Dst: KML*::poCurrent_::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:383,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:384,1
    - Dst: KML*::poCurrent_::getContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:386,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:388,1
    - Dst: KML*::poCurrent_::addContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:412,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:415,1
    - Dst: KML*::poCurrent_::deleteContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:416,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:418,1
    - Dst: KML*::poCurrent_::getContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:420,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:423,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:443,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:463,1
    - Dst: KML*::poCurrent_::deleteContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:468,1
    - Dst: KML*::poCurrent_::addContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:469,1
    - Dst: KML*::poCurrent_::getParent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:473,1
    - Dst: KML*::poCurrent_::getParent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:474,1
    - Dst: KML*::isHandled
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:478,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:480,1
    - Dst: KML*::poCurrent_::addChildren
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:490,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:498,1
    - Dst: KML*::poCurrent_::addContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:499,1
    - Dst: KML*::poCurrent_::appendContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:506,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:507,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:508,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 75
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 510
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 510
    functionName: XMLCALL::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - KML*::poCurrent_::getName
    - std::string::length
    - KML*::poCurrent_::addContent
    - std::string::empty
    - XML_StopParser
    - KML*::poCurrent_::deleteContent
    - CPLDebug
    - KML*::poCurrent_::addChildren
    - KML*::poCurrent_::numContent
    - KML*::poCurrent_::getContent
    - KML*::poCurrent_::getParent
    - static_cast<KML *>
    - CPLError
    - KML*::isHandled
    - what
    - KML*::poCurrent_::appendContent
    linkageType: ''
    returnType: void
    signature: void XMLCALL KML::endElement(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KML *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:524,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:526,1
    - Dst: KML*::poCurrent_::numContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:533,1
    - Dst: KML*::poCurrent_::addContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:534,1
    - Dst: KML*::poCurrent_::appendContent
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:540,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:541,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - pUserData
    - pszData
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 544
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 544
    functionName: XMLCALL::dataHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - KML*::poCurrent_::addContent
    - XML_StopParser
    - KML*::poCurrent_::numContent
    - static_cast<KML *>
    - CPLError
    - what
    - KML*::poCurrent_::appendContent
    linkageType: ''
    returnType: void
    signature: void XMLCALL KML::dataHandler(void *pUserData, const char *pszData,
      int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::checkValidity
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:548,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:551,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 554
    functionName: KML::isValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - KML::checkValidity
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: bool KML::isValid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: KML::getError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KML::getError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: classify
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: KML::classifyNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - classify
    linkageType: ''
    returnType: int
    signature: int KML::classifyNodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::eliminateEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: KML::eliminateEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::eliminateEmpty
    linkageType: ''
    returnType: void
    signature: void KML::eliminateEmpty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::print
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - nNum
    argTypes:
    - unsigned short
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: KML::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::print
    linkageType: ''
    returnType: void
    signature: void KML::print(unsigned short nNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::isLeaf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:582,1
    - Dst: KML::isFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:582,1
    - Dst: KML::isFeatureContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:582,1
    - Dst: KML::isContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:583,1
    - Dst: KML::isRest
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: KML::isHandled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - KML::isLeaf
    - KML::isFeature
    - KML::isRest
    - KML::isContainer
    - KML::isFeatureContainer
    linkageType: ''
    returnType: bool
    signature: bool KML::isHandled(std::string const &elem) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: KML::isLeaf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::isLeaf(std::string const & /* elem */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: KML::isFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::isFeature(std::string const & /* elem */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: KML::isFeatureContainer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::isFeatureContainer(std::string const & /* elem */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: KML::isContainer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::isContainer(std::string const & /* elem */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: KML::isRest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::isRest(std::string const & /* elem */) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: KML::findLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KML::findLayers(KMLNode * /* poNode */, int /* bKeepEmptyContainers
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::hasOnlyEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: KML::hasOnlyEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::hasOnlyEmpty
    linkageType: ''
    returnType: bool
    signature: bool KML::hasOnlyEmpty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: KML::getNumLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int KML::getNumLayers() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nNum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: KML::selectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KML::selectLayer(int nNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNameElement
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: KML::getCurrentName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - getNameElement
    linkageType: ''
    returnType: std::string
    signature: std::string KML::getCurrentName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: KML::getCurrentType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - getType
    linkageType: ''
    returnType: Nodetype
    signature: Nodetype KML::getCurrentType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::is25D
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 658
    functionName: KML::is25D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::is25D
    linkageType: ''
    returnType: int
    signature: int KML::is25D() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:665,1
    - Dst: KML::getNumFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: KML::getNumFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::getNumFeatures
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int KML::getNumFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KML::getFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nNum
    - nLastAsked
    - nLastCount
    argTypes:
    - std::size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 674
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 674
    functionName: KML::getFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 1
    functionsReached:
    - KML::getFeature
    linkageType: ''
    returnType: Feature
    signature: Feature *KML::getFeature(std::size_t nNum, int &nLastAsked, int &nLastCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - KMLNode*
    constantsTouched: []
    func_position:
      end: 692
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 692
    functionName: KML::unregisterLayerIfMatchingThisNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kml.cpp
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void KML::unregisterLayerIfMatchingThisNode(KMLNode *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: OGRKMLDataSource::OGRKMLDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRKMLDataSource::OGRKMLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:52,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:53,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:56,1
    - Dst: WriteSchema
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:63,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:64,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:65,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:65,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:69,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:71,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:74,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:75,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:76,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:77,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 89
    functionName: OGRKMLDataSource::~OGRKMLDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - WriteSchema
    - CSLDestroy
    - CPLString::c_str
    - GetName
    - CPLFree
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRKMLDataSource::~OGRKMLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:98,1
    - Dst: KMLVector::KMLVector
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:103,1
    - Dst: open
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:105,1
    - Dst: isValid
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:115,1
    - Dst: parse
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:125,1
    - Dst: classifyNodes
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:135,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:148,1
    - Dst: eliminateEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:150,1
    - Dst: findLayers
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:155,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:160,1
    - Dst: print
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:161,1
    - Dst: static_cast<OGRKMLLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:169,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:169,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:172,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:173,1
    - Dst: selectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:180,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:182,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:188,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:190,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:192,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:194,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:196,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:198,1
    - Dst: getCurrentType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:200,1
    - Dst: is25D
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:203,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:204,1
    - Dst: getCurrentName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:211,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:213,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:215,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:223,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:225,1
    - Dst: getCurrentName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:226,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:232,1
    - Dst: OGRKMLLayer::OGRKMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:232,1
    - Dst: OGRKMLLayer*::SetLayerNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:234,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:246,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - pszNewName
    - bTestOpen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 249
    functionName: OGRKMLDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - isValid
    - print
    - wkbSetZ
    - CPLDebug
    - OGRSpatialReference*::Release
    - OGRKMLLayer::OGRKMLLayer
    - OGRKMLLayer*::SetLayerNumber
    - CPLError
    - CPLGetConfigOption
    - getCurrentType
    - parse
    - CPLString::empty
    - static_cast<OGRKMLLayer **>
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLString::c_str
    - GetLayerByName
    - CPLMalloc
    - open
    - is25D
    - findLayers
    - CPLString::Printf
    - CPLSPrintf
    - eliminateEmpty
    - classifyNodes
    - CPLAssert
    - selectLayer
    - OGRSpatialReference::OGRSpatialReference
    - getCurrentName
    - KMLVector::KMLVector
    linkageType: ''
    returnType: int
    signature: int OGRKMLDataSource::Open(const char *pszNewName, int bTestOpen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:258,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:262,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:266,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:267,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:267,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:269,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:271,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:273,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:273,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:275,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:278,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:278,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:284,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:286,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:292,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:298,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:306,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:312,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:314,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:321,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:323,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:326,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 329
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 329
    functionName: OGRKMLDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - CPLStrdup
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - CPLDebug
    - EQUAL
    - CPLAssert
    - strcmp
    - VSIGetLastErrorMsg
    - strlen
    - CPLError
    - CPLFree
    - CSLFetchNameValue
    linkageType: ''
    returnType: int
    signature: int OGRKMLDataSource::Create(const char *pszName, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:340,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:347,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:350,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:355,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:357,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:362,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:366,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:367,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:370,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:371,1
    - Dst: SetClosedForWriting
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:371,1
    - Dst: CPLCleanXMLElementName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:379,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:380,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:382,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:387,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:389,1
    - Dst: OGRKMLLayer::OGRKMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:396,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:398,1
    - Dst: static_cast<OGRKMLLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:403,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 409
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 409
    functionName: OGRKMLDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - SetClosedForWriting
    - CPLCleanXMLElementName
    - VSIFPrintfL
    - GetLayerCount
    - GetDescription
    - OGRGeomFieldDefn*::GetType
    - OGRKMLLayer::OGRKMLLayer
    - CPLAssert
    - strcmp
    - CPLRealloc
    - OGRGeomFieldDefn*::GetSpatialRef
    - CPLError
    - CPLFree
    - GetName
    - static_cast<OGRKMLLayer **>
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRKMLDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      /* papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: OGRKMLDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRKMLDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: OGRKMLDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRKMLDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:444,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psGeomBounds
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: OGRKMLDataSource::GrowExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - Merge
    linkageType: ''
    returnType: void
    signature: void OGRKMLDataSource::GrowExtents(OGREnvelope *psGeomBounds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:46,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:47,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:48,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:53,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:54,1
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:55,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:57,1
    - Dst: OGRKMLDataSource*::IsFirstCTError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:58,1
    - Dst: OGRSpatialReference*::exportToPrettyWkt
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:64,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:66,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:76,1
    - Dst: OGRKMLDataSource*::IssuedFirstCTError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:77,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:82,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:82,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:83,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:84,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:85,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:86,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:89,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - pszName
    - poSRSIn
    - bWriterIn
    - eReqType
    - poDSIn
    argTypes:
    - char*
    - OGRSpatialReference*
    - bool
    - OGRwkbGeometryType
    - OGRKMLDataSource*
    constantsTouched: []
    func_position:
      end: 95
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 95
    functionName: OGRKMLLayer::OGRKMLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 2
    functionsReached:
    - IsSame
    - GetGeomFieldDefn
    - Reference
    - SetWellKnownGeogCS
    - CPLError
    - GetGeomFieldCount
    - CPLStrdup
    - SetGeomType
    - SetAxisMappingStrategy
    - AddFieldDefn
    - GetName
    - OGRFeatureDefn::OGRFeatureDefn
    - SetDescription
    - OGRCreateCoordinateTransformation
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::exportToPrettyWkt
    - OGRKMLDataSource*::IssuedFirstCTError
    - OGRKMLDataSource*::IsFirstCTError
    linkageType: ''
    returnType: void
    signature: "void OGRKMLLayer::OGRKMLLayer(const char *pszName,\n                         const
      OGRSpatialReference *poSRSIn, bool bWriterIn,\n                         OGRwkbGeometryType
      eReqType, OGRKMLDataSource *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:104,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:107,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: OGRKMLLayer::~OGRKMLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRKMLLayer::~OGRKMLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: OGRKMLLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRKMLLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: OGRKMLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRKMLLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:147,1
    - Dst: KML*::selectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:151,1
    - Dst: std::unique_ptr<Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:155,1
    - Dst: KML*::getFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:156,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:161,1
    - Dst: auto::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:165,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:165,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:169,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:169,1
    - Dst: auto::sName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:170,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:171,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:171,1
    - Dst: auto::sDescription::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:172,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:173,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:175,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:177,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:182,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:182,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:184,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:184,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 191
    functionName: OGRKMLLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - KML*::selectLayer
    - KML*::getFeature
    - auto::SetFID
    - auto::release
    - GetKMLFile
    - auto::SetGeometry
    - Evaluate
    - auto::SetField
    - FilterGeometry
    - std::unique_ptr<Feature>
    - auto::get
    - std::move
    - auto::GetGeometryRef
    - GetFieldIndex
    - auto::sDescription::c_str
    - auto::sName::c_str
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRKMLLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: OGRKMLLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRKMLLayer::GetFeatureCount(int /* bForce */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:207,1
    - Dst: GetKMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:209,1
    - Dst: KML*::selectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:213,1
    - Dst: KML*::getNumFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: OGRKMLLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - KML*::selectLayer
    - KML*::getNumFeatures
    - OGRLayer::GetFeatureCount
    - GetKMLFile
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRKMLLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRKMLLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:230,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:231,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:233,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:235,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:236,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:236,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:236,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:240,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:240,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:240,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:243,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:245,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:252,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:291,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:292,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:296,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:297,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 300
    functionName: OGRKMLLayer::WriteSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetNameField
    - OGRFeatureDefn*::GetFieldCount
    - OGRFieldDefn*::GetNameRef
    - GetDescriptionField
    - CPLSPrintf
    - EQUAL
    - OGRFieldDefn*::GetType
    - OGRKMLLayer::GetLayerDefn
    - CPLString::empty
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRKMLLayer::WriteSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:308,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:316,1
    - Dst: GetOutputFP
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:322,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:323,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:325,1
    - Dst: OGRKMLLayer::WriteSchema
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:327,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:328,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:329,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:329,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:332,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:337,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:339,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:341,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:342,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:345,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:347,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:349,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:352,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:352,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:352,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:360,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:361,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:366,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:368,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:370,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:372,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:373,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:373,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:373,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:381,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:383,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:389,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:390,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:390,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:396,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:398,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:400,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:402,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:404,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:405,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:407,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:414,1
    - Dst: OGRStylePen*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:420,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:448,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:449,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:450,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:460,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:465,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:471,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:473,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:475,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:478,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:478,1
    - Dst: GetNameField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:478,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:481,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:482,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:482,1
    - Dst: GetDescriptionField
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:482,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:487,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:498,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:500,1
    - Dst: OGRGetXML_UTF8_EscapedString
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:504,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:507,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:510,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:516,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:520,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:528,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:529,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:533,1
    - Dst: OGR_G_ExportToKML
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:536,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:536,1
    - Dst: GetAltitudeMode
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:537,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:544,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:547,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:549,1
    - Dst: GrowExtents
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:550,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:558,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 131
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 560
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 560
    functionName: OGRKMLLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRStyleMgr::OGRStyleMgr
    - GetFieldDefn
    - CPLError
    - CPLString::empty
    - GetNameField
    - OGRStyleMgr::GetPartCount
    - CPLStrdup
    - GetLayerCount
    - GrowExtents
    - OGRFeature*::GetStyleString
    - OGR_G_ExportToKML
    - ToHandle
    - CPLString::c_str
    - OGRGeometry*::transform
    - OGRKMLLayer::WriteSchema
    - cpl::down_cast<OGRStylePen *>
    - wkbFlatten
    - OGRGetXML_UTF8_EscapedString
    - VSIFPrintfL
    - OGRStyleMgr::InitFromFeature
    - GetOutputFP
    - OGRFeature*::GetFID
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - CPLAssert
    - CPLFree
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetGeometryRef
    - GetAltitudeMode
    - GetDescriptionField
    - OGRStyleTool*::GetType
    - EQUAL
    - OGRStyleMgr::GetPart
    - OGRStylePen*::SetUnit
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRKMLLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:572,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:586,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: OGRKMLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRKMLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 608
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 608
    functionName: OGRKMLLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRKMLLayer::CreateField(const OGRFieldDefn *poField,\n                                CPL_UNUSED
      int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: OGRKMLLayer::SetLayerNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRKMLLayer::SetLayerNumber(int nLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: OGRKMLLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRKMLLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:35,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:35,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:37,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: OGRKMLDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRKMLDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRKMLDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:51,1
    - Dst: OGRKMLDataSource::OGRKMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:55,1
    - Dst: OGRKMLDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:57,1
    - Dst: OGRKMLDataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:60,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 80
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: OGRKMLDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRKMLDataSource*::Open
    - OGRKMLDriverIdentify
    - OGRKMLDataSource::OGRKMLDataSource
    - CPLError
    - OGRKMLDataSource*::GetLayerCount
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRKMLDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:91,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:92,1
    - Dst: OGRKMLDataSource::OGRKMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:94,1
    - Dst: OGRKMLDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: OGRKMLDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRKMLDataSource*::Create
    - CPLAssert
    - OGRKMLDataSource::OGRKMLDataSource
    - CPLDebug
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRKMLDriverCreate(const char *pszName, int /* nBands
      */,\n                                       int /* nXSize */, int /* nYSize
      */,\n                                       GDALDataType /* eDT */,\n                                       char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:111,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:114,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:118,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:120,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:123,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:124,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:127,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:148,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:150,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:151,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:153,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:155,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 162
    functionName: RegisterOGRKML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRKML()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: KMLNode::is25D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlnode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is25D() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: SetClosedForWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetClosedForWriting()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: GetNameField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetNameField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: GetDescriptionField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetDescriptionField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: GetAltitudeMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetAltitudeMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: GetOutputFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: GetKMLFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KML
    signature: KML *GetKMLFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: IsFirstCTError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFirstCTError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: IssuedFirstCTError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/ogr_kml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuedFirstCTError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: KMLVector::~KMLVector()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KMLVector::~KMLVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:30,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:30,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:31,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: KMLVector::isLeaf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached:
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool KMLVector::isLeaf(std::string const &sIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:38,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:38,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: KMLVector::isContainer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached:
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool KMLVector::isContainer(std::string const &sIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:44,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:45,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:46,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:47,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: KMLVector::isFeatureContainer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached:
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool KMLVector::isFeatureContainer(std::string const &sIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:53,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:53,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: KMLVector::isFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached:
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool KMLVector::isFeature(std::string const &sIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:59,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:60,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sIn
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: KMLVector::isRest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 0
    functionsReached:
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool KMLVector::isRest(std::string const &sIn) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KMLVector::isFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:75,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:75,1
    - Dst: KMLVector::isFeatureContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:75,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:75,1
    - Dst: KMLVector::isRest
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:76,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:76,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:76,1
    - Dst: KMLVector::isContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:80,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:80,1
    - Dst: KMLNode*::countChildren
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:82,1
    - Dst: KMLVector::isContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:84,1
    - Dst: KMLNode*::getChild
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:84,1
    - Dst: KMLVector::findLayers
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:86,1
    - Dst: KMLNode*::getChild
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:86,1
    - Dst: KMLVector::isFeatureContainer
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:88,1
    - Dst: KMLNode*::getChild
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:88,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:94,1
    - Dst: KMLNode*::eliminateEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:97,1
    - Dst: KMLNode*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:104,1
    - Dst: KMLVector::isFeature
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:105,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:105,1
    - Dst: KMLNode*::setLayerNumber
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:110,1
    - Dst: static_cast<KMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:111,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:112,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:117,1
    - Dst: KMLNode*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:118,1
    - Dst: Nodetype2String
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:119,1
    - Dst: KMLNode*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:119,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:124,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:126,1
    - Dst: print
      Src: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp:127,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 2
    argNames:
    - poNode
    - bKeepEmptyContainers
    argTypes:
    - KMLNode*
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 129
    functionName: KMLVector::findLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp
    functionUses: 1
    functionsReached:
    - KMLVector::isFeature
    - KMLVector::isFeatureContainer
    - KMLVector::isContainer
    - KMLNode*::countChildren
    - KMLNode*::eliminateEmpty
    - print
    - KMLNode*::getChild
    - static_cast<KMLNode **>
    - CPLDebug
    - KMLNode*::getType
    - KMLNode*::getName
    - CPLRealloc
    - Nodetype2String
    - KMLVector::isRest
    - CPLGetConfigOption
    - KMLVector::findLayers
    - KMLNode*::setLayerNumber
    linkageType: ''
    returnType: void
    signature: void KMLVector::findLayers(KMLNode *poNode, int bKeepEmptyContainers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:29,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:30,1
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: OGRPLScenesDataV1FeatureDefn::GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::GetFieldCount
    - EstablishLayerDefn
    linkageType: ''
    returnType: int
    signature: int OGRPLScenesDataV1FeatureDefn::GetFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:41,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:44,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:44,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:49,1
    - Dst: OGRPLScenesDataV1FeatureDefn::OGRPLScenesDataV1FeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:53,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:55,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:56,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:57,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:58,1
    - Dst: OGRPLScenesDataV1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - poDS
    - pszName
    argTypes:
    - OGRPLScenesDataV1Dataset*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: OGRPLScenesDataV1Layer::OGRPLScenesDataV1Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - atoi
    - SetGeomType
    - GetGeomFieldDefn
    - OGRPLScenesDataV1FeatureDefn::OGRPLScenesDataV1FeatureDefn
    - SetAxisMappingStrategy
    - Reference
    - OGRPLScenesDataV1Layer::ResetReading
    - SetDescription
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void OGRPLScenesDataV1Layer::OGRPLScenesDataV1Layer(OGRPLScenesDataV1Dataset
      *poDS,\n                                               const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DropRefToLayer
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:68,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:69,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:70,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:72,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: OGRPLScenesDataV1Layer::~OGRPLScenesDataV1Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - DropRefToLayer
    - Release
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRPLScenesDataV1Layer::~OGRPLScenesDataV1Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRPLScenesDataV1Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRPLScenesDataV1Layer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - poFieldDefn
    - pszQueryableJSonName
    - pszPrefixedJSonName
    argTypes:
    - OGRFieldDefn*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: OGRPLScenesDataV1Layer::RegisterField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRPLScenesDataV1Layer::RegisterField(OGRFieldDefn *poFieldDefn,\n
      \                                          const char *pszQueryableJSonName,\n
      \                                          const char *pszPrefixedJSonName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:336,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:338,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: OGRPLScenesDataV1Layer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRWFSDataSource::GetMetadata
    - EstablishLayerDefn
    linkageType: ''
    returnType: char
    signature: char **OGRPLScenesDataV1Layer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:350,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:352,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: OGRPLScenesDataV1Layer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - EstablishLayerDefn
    linkageType: ''
    returnType: char
    signature: "char *OGRPLScenesDataV1Layer::GetMetadataItem(const char *pszName,\n
      \                                                   const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:364,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:369,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:376,1
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:376,1
    - Dst: GetFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:379,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:380,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:382,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:383,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:384,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:385,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:385,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:386,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:387,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:388,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:389,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:390,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:391,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:392,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:396,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:397,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:398,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:400,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:401,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:402,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:405,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:406,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:410,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:411,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:414,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:415,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:418,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:422,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:430,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:432,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:433,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:437,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:440,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:441,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:442,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:443,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:448,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:459,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:460,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:462,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:463,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:465,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 470
    functionName: OGRPLScenesDataV1Layer::GetNextPage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - RunRequest
    - json_object_object_add
    - CPLString::empty
    - CPL_json_object_object_get
    - find
    - json_object_get
    - GetName
    - json_object_to_json_string_ext
    - json_object_array_length
    - json_object_new_array
    - OGRGeoJSONWriteGeometry
    - json_object_new_string
    - json_object_get_type
    - json_object_array_add
    - json_object_get_string
    - json_object_new_object
    - empty
    - GetBaseURL
    - json_object_put
    - GetFilter
    linkageType: ''
    returnType: bool
    signature: bool OGRPLScenesDataV1Layer::GetNextPage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:486,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: OGRPLScenesDataV1Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 1
    functionsReached:
    - GetBaseURL
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void OGRPLScenesDataV1Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:502,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:507,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:510,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:513,1
    - Dst: OGRPLScenesDataV1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 518
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 518
    functionName: OGRPLScenesDataV1Layer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRPLScenesDataV1Layer::ResetReading
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPLScenesDataV1Layer::ISetSpatialFilter(int /*iGeomField*/,\n
      \                                                const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:528,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 7
    argNames:
    - pszValue
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: OGRPLScenesDataV1ParseDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: "bool OGRPLScenesDataV1ParseDateTime(const char *pszValue, int &nYear,\n
      \                                          int &nMonth, int &nDay, int &nHour,\n
      \                                          int &nMinute, int &nSecond)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:547,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:549,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: OGRPLScenesDataV1Layer::IsSimpleComparison
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool OGRPLScenesDataV1Layer::IsSimpleComparison(const swq_expr_node
      *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nOp
    argTypes:
    - swq_op
    constantsTouched: []
    func_position:
      end: 568
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 568
    functionName: GetOperatorText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: char
    signature: char *GetOperatorText(swq_op nOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:581,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:582,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:585,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:586,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:587,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:588,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:589,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:590,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:591,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:603,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:604,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:607,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:608,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:609,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:610,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:611,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:612,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:613,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:619,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:621,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:628,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:631,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:632,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:633,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:634,1
    - Dst: OGRPLScenesDataV1Layer::IsSimpleComparison
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:642,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:650,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:654,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:655,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:656,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:657,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:666,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:668,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:673,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:674,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:676,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:677,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:678,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:680,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:682,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:684,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:687,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:689,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:691,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:694,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:696,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:698,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:702,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:703,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:704,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:706,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:708,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:709,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:712,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:714,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:716,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:721,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:725,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:726,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:727,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:728,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:730,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:732,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:733,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:735,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:736,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:743,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:745,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:750,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:751,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:752,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:753,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:755,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:757,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:758,1
    - Dst: GetOperatorText
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:759,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:761,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:762,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:764,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:771,1
    - Dst: OGRPLScenesDataV1ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:774,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:778,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:779,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:780,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:781,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:783,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:785,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:786,1
    - Dst: GetOperatorText
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:787,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:788,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:788,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:791,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:798,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:800,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:803,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:805,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:806,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:807,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:808,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:810,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:812,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:813,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:819,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:823,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:824,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:829,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:832,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:833,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:834,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:835,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:837,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:839,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:840,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:846,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:850,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:852,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:862,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:865,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:866,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:867,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:868,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:869,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:870,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:872,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:879,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:881,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:882,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:883,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:884,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:885,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:891,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:895,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:897,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 137
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 904
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 904
    functionName: OGRPLScenesDataV1Layer::BuildFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 1
    functionsReached:
    - json_object_new_object
    - end
    - OGRPLScenesDataV1ParseDateTime
    - json_object_new_array
    - find
    - json_object_new_string
    - CPLSPrintf
    - json_object_put
    - OGRPLScenesDataV1Layer::IsSimpleComparison
    - json_object_array_add
    - json_object_new_int64
    - OGRPLScenesDataV1Layer::BuildFilter
    - GetFieldIndex
    - GetFieldDefn
    - json_object_object_add
    - GetOperatorText
    - json_object_new_double
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRPLScenesDataV1Layer::BuildFilter(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:915,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:918,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:923,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:925,1
    - Dst: OGRPLScenesDataV1Layer::BuildFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:927,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:930,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:935,1
    - Dst: OGRPLScenesDataV1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 944
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 944
    functionName: OGRPLScenesDataV1Layer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - OGRLayer::SetAttributeFilter
    - CPLDebug
    - json_object_put
    - OGRPLScenesDataV1Layer::ResetReading
    - OGRPLScenesDataV1Layer::BuildFilter
    - GetSWQExpr
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPLScenesDataV1Layer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLScenesDataV1Layer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:954,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 968
    functionName: OGRPLScenesDataV1Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRPLScenesDataV1Layer::GetNextRawFeature
    - Evaluate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPLScenesDataV1Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:976,1
    - Dst: OGRPLScenesDataV1Layer::GetNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:982,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:987,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:987,1
    - Dst: OGRPLScenesDataV1Layer::GetNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:991,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:995,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:998,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1004,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1005,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1008,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1010,1
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1012,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1015,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1017,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1018,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1021,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1022,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1026,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1027,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1030,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1031,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1034,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1034,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1039,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1041,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1044,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1045,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1048,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1055,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1056,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1059,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1059,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1062,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1063,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1071,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1073,1
    - Dst: OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1084,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1087,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1089,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1091,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1094,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1095,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1096,1
    - Dst: DoesFollowLinks
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1104,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1108,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1109,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1112,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1115,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1127,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1127,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1129,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1132,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1136,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1143,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1154,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1155,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1156,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1157,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1159,1
    - Dst: OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1164,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1166,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1168,1
    - Dst: OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1173,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1175,1
    - Dst: OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1180,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1186,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 1190
    functionName: OGRPLScenesDataV1Layer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - OGRGeoJSONReadGeometry
    - OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
    - RunRequest
    - strcmp
    - CPLString
    - CPLError
    - CPL_json_object_object_get
    - end
    - CPLStrdup
    - insert
    - find
    - CPLString::c_str
    - std::move
    - DoesFollowLinks
    - OGRFeature*::SetGeometryDirectly
    - EstablishLayerDefn
    - OGRGeometry*::getGeometryType
    - json_object_array_get_idx
    - json_object_array_length
    - static_cast<int>
    - OGRMultiPolygon*::addGeometryDirectly
    - json_object_get_type
    - OGRMultiPolygon::OGRMultiPolygon
    - json_object_get_string
    - OGRFeature::OGRFeature
    - CSLDestroy
    - json_object_put
    - OGRFeature*::SetField
    - OGRPLScenesDataV1Layer::GetNextPage
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPLScenesDataV1Layer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1201,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1203,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1206,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1209,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1210,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1210,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1214,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1214,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1218,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1218,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1222,1
    - Dst: json_object_get_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1222,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1226,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - poFeature
    - osPrefixedJSonFieldName
    - poVal
    argTypes:
    - OGRFeature*
    - CPLString
    - json_object*
    constantsTouched: []
    func_position:
      end: 1232
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1232
    functionName: OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - json_object_get_int64
    - end
    - json_object_to_json_string_ext
    - find
    - json_object_get_type
    - OGRFeature*::SetField
    - json_object_get_string
    - json_object_get_boolean
    - json_object_get_double
    linkageType: ''
    returnType: bool
    signature: "bool OGRPLScenesDataV1Layer::SetFieldFromPrefixedJSonFieldName(\n
      \   OGRFeature *poFeature, const CPLString &osPrefixedJSonFieldName,\n    json_object
      *poVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1240,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1248,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1249,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1250,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1250,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1250,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1251,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1252,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1253,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1254,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1255,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1256,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1257,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1258,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1259,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1264,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1265,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1266,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1267,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1268,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1269,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1270,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1271,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1272,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1273,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1279,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1280,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1281,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1282,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1283,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1284,1
    - Dst: OGRGeoJSONWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1287,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1288,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1292,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1293,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1296,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1297,1
    - Dst: RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1300,1
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1300,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1300,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1305,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1306,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1309,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1313,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1315,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1318,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1320,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1322,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1329,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1332,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1337,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1340
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1340
    functionName: OGRPLScenesDataV1Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRLayer::GetFeatureCount
    - RunRequest
    - json_object_object_add
    - CPL_json_object_object_get
    - json_object_get
    - GetName
    - json_object_array_get_idx
    - json_object_to_json_string_ext
    - c_str
    - json_object_array_length
    - json_object_new_array
    - OGRGeoJSONWriteGeometry
    - json_object_new_string
    - json_object_get_type
    - json_object_array_add
    - json_object_new_double
    - json_object_new_object
    - GetBaseURL
    - json_object_put
    - GetFilter
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPLScenesDataV1Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: OGRPLScenesDataV1Layer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPLScenesDataV1Layer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                          bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1375
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1375
    functionName: OGRPLScenesDataV1Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPLScenesDataV1Layer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: PLScenesGetConfJson
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *PLScenesGetConfJson(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRPLSCENESDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRPLSCENESDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 73
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 73
    functionName: OGRPLSCENESDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRPLSCENESDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:82,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:86,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:88,1
    - Dst: OGRPLSCENESDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:91,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: DeclareDeferredOGRPLSCENESPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - OGRPLSCENESDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRPLSCENESPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OGRPLScenesDataV1Dataset::DoesFollowLinks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DoesFollowLinks() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: '&GetFilter() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetFilter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: '&GetBaseURL() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetBaseURL() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poLayer
    - pszName
    argTypes:
    - OGRPLScenesDataV1Layer*
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: OGRPLScenesDataV1FeatureDefn::OGRPLScenesDataV1FeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPLScenesDataV1FeatureDefn(OGRPLScenesDataV1Layer *poLayer,\n
      \                                const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: ~OGRPLScenesDataV1FeatureDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OGRPLScenesDataV1FeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: OGRPLScenesDataV1FeatureDefn::DropRefToLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DropRefToLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:35,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:41,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:41,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: OGRPLScenesDataV1Dataset::~OGRPLScenesDataV1Dataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLHTTPFetch
    - CPLFree
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: void
    signature: void OGRPLScenesDataV1Dataset::~OGRPLScenesDataV1Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLScenesDataV1Dataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: OGRPLScenesDataV1Dataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPLScenesDataV1Dataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPLScenesDataV1Dataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLScenesDataV1Dataset::EstablishLayerList
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: OGRPLScenesDataV1Dataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPLScenesDataV1Dataset::EstablishLayerList
    linkageType: ''
    returnType: int
    signature: int OGRPLScenesDataV1Dataset::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:78,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:80,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:81,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:86,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:88,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:89,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:92,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:94,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:95,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:105,1
    - Dst: OGRPLScenesDataV1Layer::OGRPLScenesDataV1Layer
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:110,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:111,1
    - Dst: OGRPLScenesDataV1Layer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:112,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:112,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:113,1
    - Dst: OGRPLScenesDataV1Layer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:114,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:114,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - poItemType
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 119
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 119
    functionName: OGRPLScenesDataV1Dataset::ParseItemType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - OGRPLScenesDataV1Layer*::SetMetadataItem
    - json_object_get_type
    - CPLString::c_str
    - CPLRealloc
    - OGRPLScenesDataV1Layer::OGRPLScenesDataV1Layer
    - json_object_get_string
    - CPLString::empty
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPLScenesDataV1Dataset::ParseItemType(json_object *poItemType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:128,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:132,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:136,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:139,1
    - Dst: OGRPLScenesDataV1Dataset::ParseItemType
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:140,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:145,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:146,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:148,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:149,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - poObj
    - osNext
    argTypes:
    - json_object*
    - CPLString
    constantsTouched: []
    func_position:
      end: 156
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 156
    functionName: OGRPLScenesDataV1Dataset::ParseItemTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPLScenesDataV1Dataset::ParseItemType
    - json_object_array_length
    - json_object_get_type
    - CPL_json_object_object_get
    - json_object_get_string
    - CPLError
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: "bool OGRPLScenesDataV1Dataset::ParseItemTypes(json_object *poObj,\n
      \                                             CPLString &osNext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:167,1
    - Dst: OGRPLScenesDataV1Dataset::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:169,1
    - Dst: OGRPLScenesDataV1Dataset::ParseItemTypes
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:172,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:174,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 179
    functionName: OGRPLScenesDataV1Dataset::EstablishLayerList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPLScenesDataV1Dataset::ParseItemTypes
    - CPLString::empty
    - OGRPLScenesDataV1Dataset::RunRequest
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRPLScenesDataV1Dataset::EstablishLayerList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:190,1
    - Dst: OGRPLScenesDataV1Dataset::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:196,1
    - Dst: OGRPLScenesDataV1Dataset::ParseItemType
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:199,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: OGRPLScenesDataV1Dataset::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - OGRPLScenesDataV1Dataset::ParseItemType
    - OGRPLScenesDataV1Dataset::RunRequest
    - json_object_put
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPLScenesDataV1Dataset::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:214,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:214,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:215,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:217,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: OGRPLScenesDataV1Dataset::GetBaseHTTPOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CSLAddString
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char **OGRPLScenesDataV1Dataset::GetBaseHTTPOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:235,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:238,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:239,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:242,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:244,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:246,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:248,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:248,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:250,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:253,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:254,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:260,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:260,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:261,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:265,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:268,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:274,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:275,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:275,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:281,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:282,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:284,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:286,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:290,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:291,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:292,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:292,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:293,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:301,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:305,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:312,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:318,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:320,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:326,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:330,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:332,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:336,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:338,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:340,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:342,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 5
    argNames:
    - pszURL
    - bQuiet404Error
    - pszHTTPVerb
    - bExpectJSonReturn
    - pszPostContent
    argTypes:
    - char*
    - int
    - char*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 347
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 347
    functionName: OGRPLScenesDataV1Dataset::RunRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 2
    functionsReached:
    - CPLDebug
    - CPLError
    - STARTS_WITH
    - CPLString::empty
    - CPLStrdup
    - CPLString::c_str
    - CPLPopErrorHandler
    - VSIGetMemFileBuffer
    - OGRJSonParse
    - CPLString::back
    - CPLHTTPFetch
    - json_object_get_type
    - CPLSPrintf
    - CPLString::pop_back
    - strstr
    - CPLCalloc
    - CSLFetchNameValueDef
    - CSLDestroy
    - json_object_put
    - CPLPushErrorHandler
    - CPLHTTPDestroyResult
    - memcpy
    - CSLSetNameValue
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRPLScenesDataV1Dataset::RunRequest(const char *pszURL,\n
      \                                                 int bQuiet404Error,\n                                                  const
      char *pszHTTPVerb,\n                                                  bool bExpectJSonReturn,\n
      \                                                 const char *pszPostContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:355,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:357,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:357,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:359,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:362,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: OGRPLScenesDataV1Dataset::InsertAPIKeyInURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - strlen
    - CPLString::substr
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPLScenesDataV1Dataset::InsertAPIKeyInURL(CPLString osURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:394,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:394,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:399,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:402,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:415,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:435,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:437,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:440,1
    - Dst: OGRPLScenesDataV1Dataset::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:443,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:453,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:455,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:468,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:470,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:471,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:472,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:473,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:475,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:476,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:478,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:480,1
    - Dst: OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:483,1
    - Dst: GDALDataset*::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:484,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:485,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:494,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:495,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:500,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:505,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:507,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:512,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:513,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:516,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:519,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:521,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:522,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:527,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:530,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:532,1
    - Dst: json_ex_get_object_by_path
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:534,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:538,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:539,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:540,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:543,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:545,1
    - Dst: OGRPLScenesDataV1Dataset::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:546,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:548,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:550,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:557,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:560,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:561,1
    - Dst: OGRPLScenesDataV1Dataset::InsertAPIKeyInURL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:565,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:569,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:575,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:576,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:576,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:579,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:581,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:585,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:590,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:591,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:592,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:593,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:594,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:595,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:596,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:597,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:598,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:599,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:601,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:604,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:606,1
    - Dst: OGRPLScenesDataV1Dataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:608,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:612,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:615,1
    - Dst: GDALDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:617,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:617,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:620,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:621,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:621,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:622,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:625,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:627,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:632,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:632,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:634,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:635,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:636,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:637,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:638,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:639,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:640,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:641,1
    - Dst: GDALDataset*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:647,1
    - Dst: GDALDataset*::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:653,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:654,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:654,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:655,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:656,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:657,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:658,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:662,1
    - Dst: GDALDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:663,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:665,1
    - Dst: OGRPLScenesDataV1Dataset::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:676,1
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:678,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:679,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 156
    argCount: 3
    argNames:
    - poOpenInfo
    - osScene
    - papszOptions
    argTypes:
    - GDALOpenInfo*
    - CPLString
    - char**
    constantsTouched: []
    func_position:
      end: 684
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 684
    functionName: OGRPLScenesDataV1Dataset::OpenRasterScene
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRPLScenesDataV1Dataset::InsertAPIKeyInURL
    - CSLAddString
    - OGRLayer*::GetNextFeature
    - GDALDataset*::SetDescription
    - CPLDebug
    - strncmp
    - strcmp
    - OGRLayer*::SetAttributeFilter
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - CPL_json_object_object_get
    - CPLErrorReset
    - OGRPLScenesDataV1Dataset::RunRequest
    - CPLString::c_str
    - CPLPopErrorHandler
    - std::move
    - strlen
    - GDALDataset*::SetMetadata
    - GDALDataset*::SetMetadataItem
    - GDALDataset*::FlushCache
    - json_object_to_json_string_ext
    - CPLFetchBool
    - VSIUnlink
    - json_object_get_type
    - CPLSPrintf
    - time
    - strstr
    - CPL_IGNORE_RET_VAL
    - json_object_get_string
    - OGRPLScenesDataV1Dataset::GetLayerByName
    - OGRFeature*::GetFieldCount
    - CPLFree
    - json_ex_get_object_by_path
    - OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset
    - CPLSleep
    - GDALOpenEx
    - VSIStatL
    - CSLDestroy
    - json_object_put
    - EQUAL
    - CPLPushErrorHandler
    - std::string
    - VSIMemGenerateHiddenFilename
    - CPLGetLastErrorType
    - CSLSetNameValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRPLScenesDataV1Dataset::OpenRasterScene(GDALOpenInfo
      *poOpenInfo,\n                                                       CPLString
      osScene,\n                                                       char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:692,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:695,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:700,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:702,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:703,1
    - Dst: OGRPLScenesDataV1Dataset*::m_osAPIKey::empty
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:706,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:710,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:714,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:715,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:716,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:719,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:721,1
    - Dst: OGRPLScenesDataV1Dataset*::m_osFilter::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:722,1
    - Dst: OGRPLScenesDataV1Dataset*::OpenRasterScene
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:730,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:732,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:738,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:740,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:752,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:752,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:754,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:756,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:758,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:761,1
    - Dst: OGRPLScenesDataV1Dataset*::RunRequest
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:766,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:766,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:770,1
    - Dst: OGRPLScenesDataV1Dataset*::ParseItemTypes
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:784,1
    - Dst: OGRPLScenesDataV1Dataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:792,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:799,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp:801,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 810
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 810
    functionName: OGRPLScenesDataV1Dataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdatav1dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPLScenesDataV1Dataset::OGRPLScenesDataV1Dataset
    - CPLTestBool
    - c_str
    - CSLFetchNameValueDef
    - CSLDestroy
    - json_object_put
    - EQUAL
    - OGRPLScenesDataV1Dataset*::OpenRasterScene
    - OGRPLScenesDataV1Dataset*::m_osFilter::Trim
    - OGRPLScenesDataV1Dataset*::m_osAPIKey::empty
    - OGRPLScenesDataV1Dataset*::RunRequest
    - CPLError
    - OGRPLScenesDataV1Dataset*::ParseItemTypes
    - CPLGetConfigOption
    - CPLFree
    - OGRPLScenesDataV1Dataset*::GetLayerByName
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPLScenesDataV1Dataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPLSCENESDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:22,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:28,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:30,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:31,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:33,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:33,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:35,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:40,1
    - Dst: OGRPLScenesDataV1Dataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:42,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:46,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 50
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 50
    functionName: OGRPLScenesOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValueDef
    - CSLDestroy
    - EQUAL
    - CPLString::c_str
    - OGRPLScenesDataV1Dataset::Open
    - OGRPLSCENESDriverIdentify
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPLScenesOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:59,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:62,1
    - Dst: OGRPLSCENESDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:63,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: RegisterOGRPLSCENES
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPLSCENESDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPLSCENES()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:35,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: OGRGPXDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRGPXDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPXDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:46,1
    - Dst: OGRGPXDataSource::OGRGPXDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:49,1
    - Dst: OGRGPXDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: OGRGPXDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGPXDataSource::OGRGPXDataSource
    - OGRGPXDataSource*::Open
    - OGRGPXDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGPXDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPXDataSource::OGRGPXDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:69,1
    - Dst: OGRGPXDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: OGRGPXDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGPXDataSource::OGRGPXDataSource
    - OGRGPXDataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRGPXDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, CPL_UNUSED char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: OGRGPXDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGPXDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:100,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:103,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:106,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:108,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:113,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:132,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:170,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:181,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:182,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 190
    functionName: RegisterOGRGPX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGPX()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRGPXLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h:219,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: OGRGPXDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: OGRGPXDataSource::GetOutputFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gpxGeomType
    argTypes:
    - GPXGeometryType
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: OGRGPXDataSource::SetLastGPXGeomTypeWritten
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLastGPXGeomTypeWritten(GPXGeometryType gpxGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: OGRGPXDataSource::GetLastGPXGeomTypeWritten
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GPXGeometryType
    signature: GPXGeometryType GetLastGPXGeomTypeWritten() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: OGRGPXDataSource::GetUseExtensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUseExtensions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: '&GetExtensionsNS() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetExtensionsNS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: OGRGPXDataSource::GetVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogr_gpx.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:66,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:66,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:67,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:73,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:74,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:75,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:81,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:82,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:82,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:83,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:90,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:94,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:98,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:103,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:110,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:114,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:119,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:123,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:128,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:132,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:135,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:138,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:141,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:144,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:149,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:152,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:157,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:160,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:163,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:166,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:169,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:172,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:175,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:183,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:185,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:187,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:189,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:191,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:193,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:198,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:201,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:206,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:209,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:212,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:215,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:218,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:221,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:224,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:229,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:232,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:236,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:239,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:242,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:245,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:250,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:252,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:254,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:256,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:258,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:260,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:264,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:267,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:271,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:273,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:274,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:276,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:277,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:281,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:284,1
    - Dst: GetUseExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:289,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:290,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:290,1
    - Dst: OGRGPXLayer::LoadExtensionsSchema
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:292,1
    - Dst: OGRGPXLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:296,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 97
    argCount: 6
    argNames:
    - pszFilename
    - pszLayerName
    - gpxGeomTypeIn
    - poDSIn
    - bWriteModeIn
    - papszOpenOptions
    argTypes:
    - char*
    - char*
    - GPXGeometryType
    - OGRGPXDataSource*
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 297
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 297
    functionName: OGRGPXLayer::OGRGPXLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGPXLayer::LoadExtensionsSchema
    - atoi
    - GetGeomFieldDefn
    - strcmp
    - Reference
    - CPLError
    - GetGeomFieldCount
    - CPLGetConfigOption
    - SetGeomType
    - SetAxisMappingStrategy
    - AddFieldDefn
    - GetUseExtensions
    - GetName
    - CPLTestBool
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - VSIFOpenL
    - OGRGPXLayer::ResetReading
    - snprintf
    - SetDescription
    - OGRSpatialReference::OGRSpatialReference
    - CSLFetchNameValueDef
    - reset
    linkageType: ''
    returnType: void
    signature: "void OGRGPXLayer::OGRGPXLayer(const char *pszFilename, const char
      *pszLayerName,\n                         GPXGeometryType gpxGeomTypeIn,\n                         OGRGPXDataSource
      *poDSIn, bool bWriteModeIn,\n                         CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:308,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:310,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: OGRGPXLayer::~OGRGPXLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - XML_ParserFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::~OGRGPXLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: "void startElementCbk(void *pUserData, const char *pszName,\n                                    const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: void endElementCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: void dataHandlerCbk(void *pUserData, const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:346,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:349,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:351,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:352,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:353,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:354,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:360,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:361,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:363,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:364,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:365,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 376
    functionName: OGRGPXLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 1
    functionsReached:
    - Seek
    - XML_SetElementHandler
    - reset
    - XML_ParserFree
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: OGRGPX_GetOGRCompatibleTagName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRGPX_GetOGRCompatibleTagName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:400,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:404,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: OGRGPXLayer::AddStrToSubElementValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - XML_StopParser
    - append
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::AddStrToSubElementValue(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:418,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:419,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:420,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:424,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:434,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:437,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:439,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:442,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:446,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:450,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:450,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:454,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:463,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:464,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:470,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:471,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:472,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:475,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:482,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:485,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:486,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:488,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:490,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:495,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:500,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:504,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:510,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:511,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:513,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:520,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:525,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:528,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:537,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:540,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:542,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:546,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:552,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:556,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:561,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:570,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:573,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:575,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:579,1
    - Dst: addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:585,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:589,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:594,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:604,1
    - Dst: GetUseExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:606,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:615,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:618,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:624,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:627,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:630,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:631,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:640,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:653,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:661,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:661,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:664,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:668,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:668,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:684,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:688,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:691,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:694,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:697,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:700,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:703,1
    - Dst: OGRGPXLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:710,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:711,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:712,1
    - Dst: OGRGPXLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:715,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:716,1
    - Dst: OGRGPXLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:720,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 192
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 726
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 726
    functionName: OGRGPXLayer::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - addPoint
    - CPLDebug
    - strcmp
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - SetField
    - std::make_unique<OGRLineString>
    - OGRPoint::OGRPoint
    - GetUseExtensions
    - std::make_unique<OGRFeature>
    - CPLAtof
    - GetFieldCount
    - CPLSPrintf
    - std::make_unique<OGRMultiLineString>
    - snprintf
    - OGRGPXLayer::AddStrToSubElementValue
    - CPLFree
    - SetFID
    - reset
    - SetGeometryDirectly
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::startElementCbk(const char *pszName, const char **ppszAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:743,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:745,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:746,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:753,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:753,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:755,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:755,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:757,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:759,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:766,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:770,1
    - Dst: auto::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:771,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:776,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:776,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:780,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:783,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:785,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:785,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:786,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:787,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:791,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:791,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:793,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:793,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:795,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:797,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:801,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:801,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:805,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:808,1
    - Dst: addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:813,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:813,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:817,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:820,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:822,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:822,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:823,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:827,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:827,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:829,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:829,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:831,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:833,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:837,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:837,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:841,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:844,1
    - Dst: setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:851,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:853,1
    - Dst: setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:858,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:858,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:859,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:862,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:863,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:866,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:873,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:875,1
    - Dst: GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:878,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:882,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:882,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:885,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:889,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:891,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:896,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:897,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:900,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:903,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:904,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:908,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:910,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:912,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:913,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:916,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:917,1
    - Dst: OGRGPXLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:921,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:921,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 97
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 924
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 924
    functionName: OGRGPXLayer::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - clear
    - OGRParseXMLDateTime
    - auto::assignSpatialReference
    - getY
    - strcmp
    - setPoint
    - CPLError
    - addGeometry
    - auto::toPoint
    - SetField
    - std::move
    - setCoordinateDimension
    - c_str
    - release
    - Evaluate
    - FilterGeometry
    - get
    - CPLSPrintf
    - GetGeometryRef
    - OGRGPXLayer::AddStrToSubElementValue
    - getX
    - empty
    - auto::setCoordinateDimension
    - GetFieldDefnRef
    - push_back
    - reset
    - SetGeometryDirectly
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::endElementCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:938,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:940,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:947,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:956,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:960,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:962,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:966,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:968,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:971,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 975
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 975
    functionName: OGRGPXLayer::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - XML_StopParser
    - append
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::dataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:986,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:999,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1001,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1001,1
    - Dst: pop_front
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1002,1
    - Dst: Eof
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1006,1
    - Dst: Error
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1006,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1018,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1019,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1019,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1021,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1024,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1024,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1025,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1025,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1026,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1026,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1031,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1036,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1041,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1043,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1043,1
    - Dst: pop_front
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1044,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1049
    functionName: OGRGPXLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - Eof
    - empty
    - front
    - Error
    - XML_Parse
    - std::vector::size
    - XML_ErrorString
    - static_cast<int>
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - std::move
    - pop_front
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGPXLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1060,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1060,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1061,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pszExtensionsNS
    - pszName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1073
    functionName: OGRGPX_GetXMLCompatibleTagName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *OGRGPX_GetXMLCompatibleTagName(const char *pszExtensionsNS,\n
      \                                           const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1082,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1083,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1089,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1100,1
    - Dst: CPLForceToASCII
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1104,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1112
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1112
    functionName: OGRGPX_GetUTF8String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLStrdup
    - CPLForceToASCII
    - CPLDebug
    - CPLIsUTF8
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: char
    signature: char *OGRGPX_GetUTF8String(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1121,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1131,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1137,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1140,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1142,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pszTagName
    - pszContent
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1149
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1149
    functionName: OGRGPXLayer::OGRGPX_WriteXMLExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - strcmp
    - PrintLine
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: "bool OGRGPXLayer::OGRGPX_WriteXMLExtension(const char *pszTagName,\n
      \                                          const char *pszContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - nIdentLevel
    argTypes:
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: AddIdent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    linkageType: ''
    returnType: void
    signature: void AddIdent(VSILFILE *fp, int nIdentLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFP
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1164,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1170,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1171,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1174,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1177,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1178,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1179,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1181,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1183,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1185,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1186,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1187,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1188,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1189,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1190,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1191,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1192,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1193,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1194,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1197,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1200,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1201,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1202,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1203,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1209,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1210,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1211,1
    - Dst: GetExtensionsNS
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1220,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1221,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1222,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1225,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1226,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1231,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1234,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1235,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1236,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1237,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1238,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1239,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1247,1
    - Dst: OGRGPXLayer::OGRGPX_WriteXMLExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1249,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1251,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1257,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1258,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1258,1
    - Dst: OGRGPXLayer::OGRGPX_WriteXMLExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1266,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1267,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1271,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1275,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1282,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1283,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1284,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1285,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1287,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1289,1
    - Dst: AddIdent
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1292,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1293,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - poFeature
    - nIdentLevel
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 1295
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1295
    functionName: OGRGPXLayer::WriteFeatureAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - VSIFPrintfL
    - GetExtensionsNS
    - OGRGPXLayer::OGRGPX_WriteXMLExtension
    - GetOutputFP
    - AddIdent
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::GetFieldAsDouble
    - strcmp
    - OGRFieldDefn*::GetType
    - strstr
    - strlen
    - GetFieldDefn
    - PrintLine
    - STARTS_WITH
    - std::string::c_str
    - CPLFree
    - OGRFormatDouble
    linkageType: ''
    returnType: void
    signature: "void OGRGPXLayer::WriteFeatureAttributes(const OGRFeature *poFeature,\n
      \                                        int nIdentLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1325,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - pdfLatitude
    - pdfLongitude
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1337
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1337
    functionName: OGRGPXLayer::CheckAndFixCoordinatesValidity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - fmod
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGPXLayer::CheckAndFixCoordinatesValidity(double *pdfLatitude,\n
      \                                                  double *pdfLongitude)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFP
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1346,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1354,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1358,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1360,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1364,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1366,1
    - Dst: SetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1371,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1374,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1376,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1383,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1385,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1390,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1393,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1394,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1395,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1396,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1397,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1398,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1399,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1403,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1404,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1406,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1411,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1414,1
    - Dst: SetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1418,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1424,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1425,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1426,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1430,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1435,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1454,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1464,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1467,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1467,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1472,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1473,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1481,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1482,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1483,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1484,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1485,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1487,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1488,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1490,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1490,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1491,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1493,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1496,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1500,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1503,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1506,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1509,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1510,1
    - Dst: SetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1515,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1519,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1520,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1521,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1525,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1530,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1532,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1533,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1534,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1539,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1540,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1541,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1542,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1543,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1545,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1547,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1547,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1549,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1551,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1553,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1554,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1561,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1562,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1563,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1566,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1571,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1572,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1573,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1574,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1575,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1577,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1579,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1579,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1581,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1583,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1585,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1587,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1593,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1596,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1596,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1603,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1604,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1606,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1612,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1612,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1614,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1623,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1628,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1630,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1632,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1637,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1639,1
    - Dst: SetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1643,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1645,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1649,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1651,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1652,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1656,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1657,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1661,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1663,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1666,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1667,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1668,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1669,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1670,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1671,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1672,1
    - Dst: GetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1676,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1679,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1684,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1684,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1686,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1695,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1702,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1704,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1707,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1709,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1711,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1714,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1716,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1718,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1721,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1723,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1725,1
    - Dst: SetLastGPXGeomTypeWritten
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1729,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1731,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1735,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1736,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1738,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1740,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1744,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1745,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1748,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1751,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1753,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1754,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1757,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1759,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1761,1
    - Dst: OGRGPXLayer::CheckAndFixCoordinatesValidity
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1764,1
    - Dst: AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1765,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1766,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1767,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1768,1
    - Dst: OGRGPXLayer::WriteFeatureAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1769,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1770,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 252
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1774
      start: 1343
    functionDepth: 4
    functionLinenumber: 1343
    functionLinenumberEnd: 1774
    functionName: OGRGPXLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - GetFieldDefn
    - OGRLineString*::getZ
    - CPLError
    - PrintLine
    - OGRFeature*::GetFieldAsInteger
    - SetLastGPXGeomTypeWritten
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - GetOutputFP
    - OGRLineString*::getGeometryType
    - OGRGeometry*::getCoordinateDimension
    - AddCoord
    - CPLFree
    - OGRGeometry*::toLineString
    - OGRFormatDouble
    - OGRFeature*::GetGeometryRef
    - OGRGPXLayer::CheckAndFixCoordinatesValidity
    - OGRGeometryTypeToName
    - GetLastGPXGeomTypeWritten
    - OGRGeometry*::toPoint
    - OGRGPXLayer::WriteFeatureAttributes
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGPXLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1782,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1784,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1784,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1785,1
    - Dst: GetUseExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1792,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1796,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1804
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1804
    functionName: OGRGPXLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - strcmp
    - AddFieldDefn
    - GetFieldDefn
    - GetUseExtensions
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGPXLayer::CreateField(const OGRFieldDefn *poField, int /*bApproxOK*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1813,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1815,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1817,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1824
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1824
    functionName: OGRGPXLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGPXLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1838
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1838
    functionName: startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: "void startElementLoadSchemaCbk(void *pUserData,\n                                              const
      char *pszName,\n                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1844
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1844
    functionName: endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: "void endElementLoadSchemaCbk(void *pUserData,\n                                            const
      char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1850
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1850
    functionName: dataHandlerLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGPXLayer *>
    linkageType: ''
    returnType: void
    signature: "void dataHandlerLoadSchemaCbk(void *pUserData, const char *data,\n
      \                                            int nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1855,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1856,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1858,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1859,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1861,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1867,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1868,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1879,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1880,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1880,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1883,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1887,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1887,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1888,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1888,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1889,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1889,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1898,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1903,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1907
    functionName: OGRGPXLayer::LoadExtensionsSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Seek
    - static_cast<int>
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - std::vector::size
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::LoadExtensionsSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1921,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1927,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1933,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1939,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1945,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1954,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1964,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1972,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1973,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1975,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1980,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1981,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1987,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1991,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1996,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1998,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:1999,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2000,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2002,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2004,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2006,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 2014
      start: 1913
    functionDepth: 2
    functionLinenumber: 1913
    functionLinenumberEnd: 2014
    functionName: OGRGPXLayer::startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - XML_StopParser
    - GetFieldCount
    - strcmp
    - AddFieldDefn
    - GetFieldDefn
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRGPXLayer::startElementLoadSchemaCbk(const char *pszName,\n
      \                                           CPL_UNUSED const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2036
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2036
    functionName: OGRGPXIsInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGPXIsInt(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2049,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2054,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2059,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2065,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2071,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2077,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2082,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2084,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2086,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2087,1
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2090,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2090,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2094,1
    - Dst: OGRGPXIsInt
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2096,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2096,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2098,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2104,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2109,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2110,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2114
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2114
    functionName: OGRGPXLayer::endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - CPLStrtod
    - OGRGPXIsInt
    - SetType
    - strcmp
    - GetType
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::endElementLoadSchemaCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2128,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2130,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2137,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2141,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2145,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2147,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2151,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2153,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp:2156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2160
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2160
    functionName: OGRGPXLayer::dataHandlerLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - XML_StopParser
    - append
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::dataHandlerLoadSchemaCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2164
    functionName: OGRGPXLayer::LoadExtensionsSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGPXLayer::LoadExtensionsSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2174
    functionName: OGRGPXLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGPXLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:47,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:50,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:51,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:53,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:67,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:68,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: OGRGPXDataSource::~OGRGPXDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - Write
    - OGRGPXDataSource::PrintLine
    - Seek
    - strlen
    linkageType: ''
    returnType: void
    signature: void OGRGPXDataSource::~OGRGPXDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:82,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:84,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: OGRGPXDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGPXDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:99,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:99,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: OGRGPXDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGPXDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:115,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:120,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:129,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:152,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:154,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:157,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:157,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:158,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:160,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 161
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 161
    functionName: OGRGPXDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - back
    - OGRGeometryTypeToName
    - GetDescription
    - OGRGeomFieldDefn*::GetType
    - std::make_unique<OGRGPXLayer>
    - EQUAL
    - CPLError
    - emplace_back
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRGPXDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:174,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:179,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:183,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:196,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:202,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:206,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:210,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:214,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:218,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:222,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:227,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:232,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:234,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:234,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:238,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:244,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:249,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:251,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:252,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:253,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:260,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:264,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:269,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:273,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:278,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:278,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:280,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:281,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:284,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:289,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:294,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:296,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:296,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:303,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:307,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:314,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:317,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:319,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:322,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:327,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:331,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:336,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 118
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 342
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 342
    functionName: OGRGPXDataSource::startElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - empty
    - std::string::append
    - CPLSPrintf
    - strcmp
    - SetMetadataItem
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRGPXDataSource::startElementValidateCbk(const char *pszNameIn,\n
      \                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:353,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:355,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:355,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:355,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:357,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:358,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:363,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:365,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:365,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:365,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:367,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:368,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:373,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:375,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:375,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:375,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:377,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:378,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 386
    functionName: OGRGPXDataSource::endElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - SetMetadataItem
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGPXDataSource::endElementValidateCbk(const char * /*pszName
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:394,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:396,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:402,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: OGRGPXDataSource::dataHandlerValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - XML_StopParser
    - empty
    - append
    linkageType: ''
    returnType: void
    signature: void OGRGPXDataSource::dataHandlerValidateCbk(const char *data, int
      nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:412,1
    - Dst: OGRGPXDataSource*::startElementValidateCbk
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: startElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRGPXDataSource *>
    - OGRGPXDataSource*::startElementValidateCbk
    linkageType: ''
    returnType: void
    signature: "void startElementValidateCbk(void *pUserData,\n                                            const
      char *pszName,\n                                            const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:418,1
    - Dst: OGRGPXDataSource*::endElementValidateCbk
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: endElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRGPXDataSource *>
    - OGRGPXDataSource*::endElementValidateCbk
    linkageType: ''
    returnType: void
    signature: void endElementValidateCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPXDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:425,1
    - Dst: OGRGPXDataSource*::dataHandlerValidateCbk
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: dataHandlerValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRGPXDataSource *>
    - OGRGPXDataSource*::dataHandlerValidateCbk
    linkageType: ''
    returnType: void
    signature: "void dataHandlerValidateCbk(void *pUserData, const char *data,\n                                           int
      nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:440,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:446,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:451,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:457,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:459,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:460,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:462,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:477,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:478,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:478,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:478,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:480,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:481,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:481,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:487,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:487,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:487,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:489,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:492,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:492,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:493,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:493,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:494,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:494,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:523,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:525,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:529,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:531,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:548,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:552,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:555,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:555,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:556,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:558,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:558,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:559,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:561,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:561,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:562,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:564,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:564,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:565,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:567,1
    - Dst: std::make_unique<OGRGPXLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:567,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:568,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:574,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:581,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:583,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:587,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 591
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 591
    functionName: OGRGPXDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - GetDescription
    - XML_ParserFree
    - CPLDebug
    - OGRCreateExpatXMLParser
    - CPLError
    - XML_ErrorString
    - static_cast<unsigned int>
    - XML_GetCurrentLineNumber
    - std::make_unique<OGRGPXLayer>
    - XML_SetUserData
    - XML_GetCurrentColumnNumber
    - emplace_back
    - std::vector::data
    - c_str
    - static_cast<int>
    - XML_GetErrorCode
    - VSIFOpenL
    - strstr
    - VSIFReadL
    - SetDescription
    - XML_SetElementHandler
    - XML_Parse
    - VSIFCloseL
    - empty
    - XML_SetCharacterDataHandler
    linkageType: ''
    returnType: int
    signature: int OGRGPXDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:599,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:607,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:609,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:620,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:622,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:625,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:625,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:628,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:628,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:654,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:658,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:671,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:694,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:695,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:700,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:701,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:705,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:705,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:707,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:710,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:710,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:712,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:713,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:715,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:739,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:740,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:747,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:748,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:760,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:764,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:765,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:770,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:777,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:779,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:780,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:788,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:789,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:796,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:797,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:804,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:805,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:807,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:809,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:818,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:819,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:826,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:827,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:834,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:835,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:837,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:843,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:844,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:852,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:853,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:860,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:861,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:868,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:869,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:871,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:880,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:881,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:888,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:889,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:896,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:898,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:899,1
    - Dst: OGRGPXDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:901,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 136
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 904
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 904
    functionName: OGRGPXDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - Tell
    - GDALVersionInfo
    - CPLTestBool
    - c_str
    - STARTS_WITH_CI
    - VSIStatL
    - OGRGPXDataSource::PrintLine
    - std::string::find
    - EQUAL
    - VSIFOpenL
    - strcmp
    - Printf
    - memset
    - strstr
    - reset
    - CPLError
    - SetDescription
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGRGPXDataSource::Create(const char *pszFilename, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:912,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:913,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:914,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dfLon
    - dfLat
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 916
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 916
    functionName: OGRGPXDataSource::AddCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: void
    signature: void OGRGPXDataSource::AddCoord(double dfLon, double dfLat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:927,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:928,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:929,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:931,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:931,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:931,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:932,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 933
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 933
    functionName: OGRGPXDataSource::PrintLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp
    functionUses: 2
    functionsReached:
    - Write
    - va_start
    - va_end
    - CPLString::c_str
    - CPLString::size
    - strlen
    - CPLString::vPrintf
    linkageType: ''
    returnType: void
    signature: void OGRGPXDataSource::PrintLine(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:30,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:33,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:34,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:35,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:36,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:37,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:38,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:39,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:44,1
    - Dst: OGRMVTInitFields
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:48,1
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:58,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:63,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:63,1
    - Dst: OGRPMTilesVectorLayer::GetNextSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:66,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:72,1
    - Dst: OGRPMTilesVectorLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:77,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 12
    argNames:
    - poDS
    - pszLayerName
    - oFields
    - oAttributesFromTileStats
    - bJsonField
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - eGeomType
    - nZoomLevel
    - bZoomLevelFromSpatialFilter
    argTypes:
    - OGRPMTilesDataset*
    - char*
    - CPLJSONObject
    - CPLJSONArray
    - bool
    - double
    - double
    - double
    - double
    - OGRwkbGeometryType
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 85
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 85
    functionName: OGRPMTilesVectorLayer::OGRPMTilesVectorLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTInitFields
    - OGRPMTilesVectorLayer::ResetReading
    - OGRSpatialReference::OGRSpatialReference
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRAPISpy_L_SetSpatialFilter
    - CPLJSONObject::GetChildren
    - auto::GetFieldCount
    - OGRSpatialReference*::Release
    - Reference
    - OGRSpatialReference*::importFromEPSG
    - AddFieldDefn
    - CPLJSONObject::IsValid
    - SetDescription
    - OGRPMTilesVectorLayer::GetNextSrcFeature
    linkageType: ''
    returnType: void
    signature: "void OGRPMTilesVectorLayer::OGRPMTilesVectorLayer(\n    OGRPMTilesDataset
      *poDS, const char *pszLayerName,\n    const CPLJSONObject &oFields, const CPLJSONArray
      &oAttributesFromTileStats,\n    bool bJsonField, double dfMinX, double dfMinY,
      double dfMaxX, double dfMaxY,\n    OGRwkbGeometryType eGeomType, int nZoomLevel,\n
      \   bool bZoomLevelFromSpatialFilter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: OGRPMTilesVectorLayer::~OGRPMTilesVectorLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesVectorLayer::~OGRPMTilesVectorLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:102,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: OGRPMTilesVectorLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 1
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesVectorLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:118,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:119,1
    - Dst: OGRPMTilesDataset*::GetMetadataFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:120,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:125,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:129,1
    - Dst: OGRPMTilesDataset*::ReadTileData
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:135,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:142,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:143,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:144,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:144,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:145,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:145,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:146,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:148,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:148,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:149,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:150,1
    - Dst: auto::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:153,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:158,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:162,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:164,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:164,1
    - Dst: OGRPMTilesTileIterator::SkipRunLength
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:168,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:171,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:171,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - poDS
    - pszLayerName
    - nZoomLevel
    argTypes:
    - OGRPMTilesDataset*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 181
    functionName: OGRPMTilesVectorLayer::GuessGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - OGRPMTilesDataset*::ReadTileData
    - OGRAPISpyOpen
    - VSIMemGenerateHiddenFilename
    - c_str
    - VSIUnlink
    - CPLSPrintf
    - time
    - CPLStringList::SetNameValue
    - auto::GetGeomType
    - VSIFileFromMemBuffer
    - std::unique_ptr<GDALDataset>
    - VSIFCloseL
    - OGRPMTilesTileIterator::SkipRunLength
    - OGRPMTilesDataset*::GetMetadataFilename
    - std::string::size
    - auto::GetLayerByName
    - OGRPMTilesTileIterator::GetNextTile
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRPMTilesVectorLayer::GuessGeometryType(\n    OGRPMTilesDataset
      *poDS, const char *pszLayerName, int nZoomLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:193,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:194,1
    - Dst: GetMetadataFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:195,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:200,1
    - Dst: ReadTileData
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:206,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:213,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:214,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:215,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:215,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:216,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:216,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:217,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:219,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:219,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:220,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:221,1
    - Dst: auto::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:224,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:224,1
    - Dst: auto::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:228,1
    - Dst: OGRPMTilesTileIterator::SkipRunLength
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:231,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:234,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 238
    functionName: OGRPMTilesVectorLayer::GetTotalFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFeatureCount
    - reinterpret_cast<GByte *>
    - GetDescription
    - std::string::c_str
    - ReadTileData
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - GetMetadataFilename
    - OGRAPISpyOpen
    - VSIMemGenerateHiddenFilename
    - c_str
    - VSIUnlink
    - CPLSPrintf
    - CPLStringList::SetNameValue
    - VSIFileFromMemBuffer
    - std::unique_ptr<GDALDataset>
    - VSIFCloseL
    - OGRPMTilesTileIterator::SkipRunLength
    - std::string::size
    - auto::GetLayerByName
    - OGRPMTilesTileIterator::GetNextTile
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPMTilesVectorLayer::GetTotalFeatureCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesVectorLayer::GetTotalFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:250,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: OGRPMTilesVectorLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRPMTilesVectorLayer::GetTotalFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPMTilesVectorLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:271,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:276,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:277,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:278,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:278,1
    - Dst: ReadTileData
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:280,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:287,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:288,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:289,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:289,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:289,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:290,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:291,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:294,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:295,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:295,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:296,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:296,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:297,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:297,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:298,1
    - Dst: GetMetadataFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:300,1
    - Dst: GetClipOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:301,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:303,1
    - Dst: GetClipOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:304,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:306,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:306,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:307,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:308,1
    - Dst: auto::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:312,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:312,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:316,1
    - Dst: auto::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:316,1
    - Dst: OGRPMTilesVectorLayer::CreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:319,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:319,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:320,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:324,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:324,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 327
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 327
    functionName: OGRPMTilesVectorLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - GetDescription
    - auto::get
    - static_cast<uint32_t>
    - std::string::c_str
    - ReadTileData
    - CPLStringList::CPLStringList
    - std::unique_ptr::SetFID
    - CPLStringList::List
    - GetMetadataFilename
    - std::unique_ptr::release
    - OGRAPISpyOpen
    - c_str
    - OGRPMTilesVectorLayer::CreateFeatureFrom
    - VSIUnlink
    - auto::GetLayerByName
    - CPLSPrintf
    - CPLAssert
    - GetClipOpenOption
    - CPLStringList::SetNameValue
    - VSIFileFromMemBuffer
    - auto::GetFeature
    - std::unique_ptr<GDALDataset>
    - std::unique_ptr<OGRFeature>
    - VSIFCloseL
    - std::string::size
    - VSIMemGenerateHiddenFilename
    - OGRPMTilesTileIterator::GetNextTile
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPMTilesVectorLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesVectorLayer::ExtentToTileExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:341,1
    - Dst: std::make_unique<OGRPMTilesTileIterator>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:352,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:359,1
    - Dst: GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:365,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:382,1
    - Dst: ReadTileData
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:386,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:394,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:395,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:396,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:397,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:397,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:398,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:399,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:400,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:402,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:403,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:403,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:404,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:404,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:405,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:405,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:406,1
    - Dst: GetMetadataFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:408,1
    - Dst: GetClipOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:409,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:411,1
    - Dst: GetClipOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:412,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:414,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:414,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:415,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:417,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:420,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:420,1
    - Dst: MarkSuppressOnClose
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:421,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:422,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:422,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:425,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:431,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:436,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:436,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:441,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 442
    functionName: OGRPMTilesVectorLayer::GetNextSrcFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<GByte *>
    - GetDescription
    - MarkSuppressOnClose
    - std::string::c_str
    - ReadTileData
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - GetMetadataFilename
    - OGRAPISpyOpen
    - GetNextTile
    - GetLayerByName
    - c_str
    - std::make_unique<OGRPMTilesTileIterator>
    - VSIUnlink
    - CPLSPrintf
    - GetClipOpenOption
    - CPLStringList::SetNameValue
    - SetDescription
    - VSIFileFromMemBuffer
    - size
    - CPLDebugOnly
    - std::unique_ptr<OGRFeature>
    - VSIFCloseL
    - OGRPMTilesVectorLayer::ExtentToTileExtent
    - reset
    - VSIMemGenerateHiddenFilename
    - GetNextFeature
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: std::unique_ptr<OGRFeature> OGRPMTilesVectorLayer::GetNextSrcFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:451,1
    - Dst: OGRMVTCreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:451,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSrcFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: OGRPMTilesVectorLayer::CreateFeatureFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 1
    functionsReached:
    - GetSpatialRef
    - std::unique_ptr<OGRFeature>
    - OGRMVTCreateFeatureFrom
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: std::unique_ptr<OGRFeature> OGRPMTilesVectorLayer::CreateFeatureFrom(OGRFeature
      *poSrcFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesVectorLayer::GetNextSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:461,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:466,1
    - Dst: OGRPMTilesVectorLayer::CreateFeatureFrom
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:467,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:467,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:468,1
    - Dst: auto::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:468,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 471
    functionName: OGRPMTilesVectorLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - auto::SetFID
    - auto::release
    - auto::GetFID
    - OGRPMTilesVectorLayer::CreateFeatureFrom
    - auto::get
    - OGRPMTilesVectorLayer::GetNextSrcFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPMTilesVectorLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:479,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: OGRPMTilesVectorLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPMTilesVectorLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: OGRPMTilesVectorLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPMTilesVectorLayer::IGetExtent(int /* iGeomField */,\n                                         OGREnvelope
      *psExtent, bool)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:513,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:513,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:513,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:516,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:516,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:516,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:518,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:519,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:519,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:521,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:522,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - sEnvelope
    - nTileMinX
    - nTileMinY
    - nTileMaxX
    - nTileMaxY
    argTypes:
    - OGREnvelope
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: OGRPMTilesVectorLayer::ExtentToTileExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 1
    functionsReached:
    - floor
    - max
    - static_cast<int>
    - min
    linkageType: ''
    returnType: void
    signature: "void OGRPMTilesVectorLayer::ExtentToTileExtent(const OGREnvelope &sEnvelope,\n
      \                                              int &nTileMinX, int &nTileMinY,\n
      \                                              int &nTileMaxX,\n                                               int
      &nTileMaxY) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:533,1
    - Dst: GetMinZoomLevel
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:541,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:559,1
    - Dst: GetMinZoomLevel
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:560,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:561,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:561,1
    - Dst: log
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:561,1
    - Dst: log
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:562,1
    - Dst: GetMaxZoomLevel
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:563,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:564,1
    - Dst: OGRPMTilesVectorLayer::ExtentToTileExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:566,1
    - Dst: GetMaxZoomLevel
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp:573,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 581
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 581
    functionName: OGRPMTilesVectorLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesvectorlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetMaxZoomLevel
    - OGRLayer::ISetSpatialFilter
    - log
    - OGRPMTilesVectorLayer::ExtentToTileExtent
    - CPLDebug
    - min
    - max
    - GetMinZoomLevel
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPMTilesVectorLayer::ISetSpatialFilter(int iGeomField,\n
      \                                               const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:39,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:42,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:50,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:55,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:61,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:63,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:65,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:69,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:71,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:71,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:76,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:81,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:83,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:86,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:87,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:94,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:101,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:106,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:106,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:107,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:109,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:114,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:122,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:127,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:127,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:130,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:137,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:137,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:138,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:140,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:144,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:145,1
    - Dst: CPLJSONDocument::SaveAsString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:164,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:165,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:166,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:167,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:168,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:169,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:170,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:171,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:172,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 3
    argNames:
    - poSQLiteDS
    - sHeader
    - osMetadata
    argTypes:
    - GDALDataset*
    - pmtiles::headerv3
    - std::string
    constantsTouched: []
    func_position:
      end: 175
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 175
    functionName: ProcessMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetString
    - GDALDataset*::GetLayerByName
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::SetRoot
    - CPLError
    - std::fabs
    - auto::c_str
    - CSLTokenizeString2
    - CPLStringList::size
    - GetName
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::CPLJSONObject
    - static_cast<uint8_t>
    - CPLJSONDocument::SaveAsString
    - EQUAL
    - CPLJSONObject::Set
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    - static_cast<int32_t>
    linkageType: ''
    returnType: bool
    signature: "bool ProcessMetadata(GDALDataset *poSQLiteDS, pmtiles::headerv3 &sHeader,\n
      \                           std::string &osMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::array<T, N>
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: operator()(const std::array<T, N> &key) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp
    functionUses: 0
    functionsReached:
    - hasher
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW operator()(const std::array<T,
      N> &key) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:208,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:212,1
    - Dst: ProcessMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:219,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:219,1
    - Dst: auto::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:222,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:239,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:258,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:265,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:272,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:282,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:282,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:288,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:289,1
    - Dst: GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:297,1
    - Dst: CPLMD5Init
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:305,1
    - Dst: CPLMD5Update
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:306,1
    - Dst: CPLMD5Final
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:307,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:314,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:315,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:322,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:322,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:322,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:330,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:331,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:333,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:333,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:337,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:337,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:337,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:338,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:338,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:341,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:342,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:359,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:360,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:360,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:380,1
    - Dst: std::unordered_map::find
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:388,1
    - Dst: std::unordered_map::end
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:389,1
    - Dst: pmtiles::tileid_to_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:400,1
    - Dst: auto::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:401,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:401,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:409,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:410,1
    - Dst: auto::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:413,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:415,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:418,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:423,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:426,1
    - Dst: std::pair<uint64_t, uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:434,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:445,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:452,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:453,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:468,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:468,1
    - Dst: CPLCompressor*::pfnFunc
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:471,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:471,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:471,1
    - Dst: compression_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:475,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:477,1
    - Dst: oCompressFunc
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:489,1
    - Dst: std::tie
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:492,1
    - Dst: pmtiles::make_root_leaves
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:493,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:498,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:499,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:505,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:508,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:511,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:518,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:522,1
    - Dst: std::unordered_map::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:525,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:528,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:528,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:531,1
    - Dst: pmtiles::headerv3::serialize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:535,1
    - Dst: auto::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:537,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:538,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:538,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:538,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:539,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:539,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:539,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:540,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:540,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:540,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:542,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:543,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:543,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:543,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:545,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:551,1
    - Dst: auto::Read
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:558,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:559,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:561,1
    - Dst: auto::Close
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp:567,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 148
    argCount: 2
    argNames:
    - pszDestName
    - pszSrcName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 571
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 571
    functionName: OGRPMTilesConvertFromMBTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesfrommbtiles.cpp
    functionUses: 0
    functionsReached:
    - oCompressFunc
    - CPLGetFilename
    - std::string::data
    - std::vector::size
    - assert
    - auto::Close
    - std::tie
    - auto::get
    - pmtiles::zxy_to_tileid
    - CPLMD5Update
    - std::unordered_map::end
    - auto::SetAttributeFilter
    - std::vector::push_back
    - CPLError
    - auto::size
    - std::string::c_str
    - CPLGetCompressor
    - auto::ResetReading
    - std::unordered_map::find
    - std::string::empty
    - std::pair<uint64_t, uint32_t>
    - auto::Write
    - CPLMD5Init
    - std::vector::end
    - std::vector::begin
    - std::sort
    - OGRAPISpyOpen
    - VSIIsLocal
    - CPLGenerateTempFilenameSafe
    - CPLCompressor*::pfnFunc
    - pmtiles::tileid_to_zxy
    - c_str
    - GetFieldAsBinary
    - pmtiles::make_root_leaves
    - VSIUnlink
    - std::unordered_map::size
    - pmtiles::headerv3::serialize
    - CPLSPrintf
    - auto::Seek
    - VSIFOpenL
    - std::string::resize
    - compression_exception
    - auto::GetNextFeature
    - what
    - data
    - size
    - std::unique_ptr<GDALDataset>
    - std::unique_ptr<OGRFeature>
    - auto::data
    - static_cast<uint8_t>
    - std::string::size
    - reset
    - ProcessMetadata
    - std::vector::back
    - auto::GetFieldAsBinary
    - CPLMD5Final
    - VSIVirtualHandleUniquePtr
    - std::string
    - auto::GetLayerByName
    - auto::Read
    linkageType: ''
    returnType: bool
    signature: "bool OGRPMTilesConvertFromMBTiles(const char *pszDestName,\n                                  const
      char *pszSrcName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesWriterDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OGRPMTilesWriterDataset::~OGRPMTilesWriterDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPMTilesWriterDataset::Close
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesWriterDataset::~OGRPMTilesWriterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesWriterDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:40,1
    - Dst: OGRPMTilesConvertFromMBTiles
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:46,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:47,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:48,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:54,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:54,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:55,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 62
    functionName: OGRPMTilesWriterDataset::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp
    functionUses: 2
    functionsReached:
    - GDALDataset::Close
    - GetDescription
    - VSIUnlink
    - reset
    - OGRPMTilesWriterDataset::Close
    - OGRPMTilesConvertFromMBTiles
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRPMTilesWriterDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:71,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:73,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:80,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:82,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:82,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:86,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:87,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:88,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:90,1
    - Dst: OGRMVTWriterDatasetCreate
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:91,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 94
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 94
    functionName: OGRPMTilesWriterDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::List
    - OGRMVTWriterDatasetCreate
    - CPLGetFilename
    - CPLGetBasenameSafe
    - reset
    - VSIIsLocal
    - CPLStringList::SetNameValue
    - SetDescription
    - std::string::c_str
    - CPLStringList::FetchNameValue
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool OGRPMTilesWriterDataset::Create(const char *pszFilename,\n                                     CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: OGRPMTilesWriterDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp
    functionUses: 0
    functionsReached:
    - CreateLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRPMTilesWriterDataset::ICreateLayer(const char *pszLayerName,\n
      \                                     const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesWriterDataset::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: OGRPMTilesWriterDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtileswriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPMTilesWriterDataset::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRPMTilesWriterDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: VSIPMTilesFilesystemHandler::VSIPMTilesFilesystemHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VSIPMTilesFilesystemHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset*::GetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRPMTilesDataset*
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: VSIPMTilesGetTileExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset*::GetHeader
    linkageType: ''
    returnType: char
    signature: char *VSIPMTilesGetTileExtension(OGRPMTilesDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset*::GetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:75,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:76,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:77,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:78,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:79,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:80,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:81,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:82,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:83,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:84,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:85,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:86,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:87,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:88,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:89,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:90,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:91,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:92,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:93,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:94,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:95,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:96,1
    - Dst: OGRPMTilesDataset::GetTileType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:96,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:97,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:98,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:99,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:100,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:101,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:102,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:103,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:104,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:105,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:106,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:107,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:108,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:109,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:110,1
    - Dst: CPLJSONDocument::SaveAsString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRPMTilesDataset*
    constantsTouched: []
    func_position:
      end: 112
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 112
    functionName: VSIPMTilesGetPMTilesHeaderJson
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::GetTileType
    - OGRPMTilesDataset::GetCompression
    - CPLJSONObject::CPLJSONObject
    - OGRPMTilesDataset*::GetHeader
    - CPLJSONDocument::SaveAsString
    - CPLJSONObject::Set
    - CPLJSONDocument::SetRoot
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::string
    signature: std::string VSIPMTilesGetPMTilesHeaderJson(OGRPMTilesDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:122,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:124,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:127,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:127,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:129,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:139,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:142,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:145,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:146,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:156,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:160,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:160,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:161,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:165,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:167,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:171,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:173,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:180,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:181,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:182,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:183,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:184,1
    - Dst: std::make_unique<OGRPMTilesDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:185,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:188,1
    - Dst: ENDS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:195,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:197,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:197,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:198,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:200,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 6
    argNames:
    - pszFilename
    - osSubfilename
    - nComponents
    - nZ
    - nX
    - nY
    argTypes:
    - char*
    - std::string
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 203
    functionName: VSIPMTilesOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLStringList::List
    - std::make_unique<OGRPMTilesDataset>
    - std::string::assign
    - atoi
    - CPLGetValueType
    - auto::Open
    - CPLStringList::size
    - std::string::clear
    - ENDS_WITH_CI
    - strlen
    - CPLStringList::SetNameValue
    - CSLTokenizeString2
    - STARTS_WITH
    - std::string::c_str
    - CPLStringList::CPLStringList
    - std::string::pop_back
    - std::string::back
    linkageType: ''
    returnType: std::unique_ptr<OGRPMTilesDataset>
    signature: "std::unique_ptr<OGRPMTilesDataset> VSIPMTilesOpen(const char *pszFilename,
      std::string &osSubfilename,\n               int &nComponents, int &nZ, int &nX,
      int &nY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:214,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:214,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:215,1
    - Dst: VSIPMTilesOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:223,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:229,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:230,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:230,1
    - Dst: auto::GetMetadataContent
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:231,1
    - Dst: auto::GetMetadataContent
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:232,1
    - Dst: VSIPMTilesGetPMTilesHeaderJson
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:237,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:237,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:238,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:239,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:239,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:239,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:240,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:248,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:249,1
    - Dst: auto::ReadTileData
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:253,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:259,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:259,1
    - Dst: auto*::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:259,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:260,1
    - Dst: auto*::data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:260,1
    - Dst: auto*::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:260,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:261,1
    - Dst: auto*::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - pszFilename
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 262
    functionName: VSIPMTilesFilesystemHandler::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - VSIPMTilesGetPMTilesHeaderJson
    - OGRPMTilesTileIterator::GetNextTile
    - CPLStrdup
    - auto::ReadTileData
    - reinterpret_cast<GByte *>
    - memcpy
    - auto::get
    - auto*::data
    - strchr
    - auto::GetMetadataContent
    - CPLMalloc
    - static_cast<GByte *>
    - auto*::size
    - VSIFileFromMemBuffer
    - VSIPMTilesOpen
    - auto::c_str
    - auto::size
    linkageType: ''
    returnType: VSIVirtualHandle
    signature: "VSIVirtualHandle *\nVSIPMTilesFilesystemHandler::Open(const char *pszFilename,\n
      \                                 const char *pszAccess, bool /*bSetError*/,\n
      \                                 CSLConstList /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:271,1
    - Dst: VSIPMTilesOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:279,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:283,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:287,1
    - Dst: auto::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:287,1
    - Dst: auto::GetMetadataContent
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:295,1
    - Dst: VSIPMTilesGetPMTilesHeaderJson
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:302,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:302,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:308,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - pszFilename
    - pStatBuf
    argTypes:
    - char*
    - VSIStatBufL*
    constantsTouched: []
    func_position:
      end: 322
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 322
    functionName: VSIPMTilesFilesystemHandler::Stat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRPMTilesTileIterator::GetNextTile
    - VSIStatL
    - auto::GetDescription
    - auto::get
    - auto::GetMetadataContent
    - memset
    - VSIPMTilesGetPMTilesHeaderJson
    - VSIPMTilesOpen
    linkageType: ''
    returnType: int
    signature: "int VSIPMTilesFilesystemHandler::Stat(const char *pszFilename,\n                                      VSIStatBufL
      *pStatBuf, int /*nFlags*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIPMTilesOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:337,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:341,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:343,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:344,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:345,1
    - Dst: auto::GetMaxZoomLevel
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:346,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:348,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:349,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:352,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:354,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:354,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:357,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:363,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:366,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:369,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:370,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:370,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:372,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:374,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:378,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:381,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:381,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:383,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:389,1
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:392,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:395,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:396,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:396,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:398,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:400,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:404,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:408,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:408,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:410,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 414
    functionName: VSIPMTilesFilesystemHandler::ReadDirEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - static_cast<int>
    - std::set::size
    - CPLStringList::AddString
    - std::set::insert
    - CPLStringList::size
    - auto::get
    - CPLSPrintf
    - CPLStringList::StealList
    - CPLError
    - OGRPMTilesTileIterator::GetNextTile
    - VSIPMTilesOpen
    - auto::GetMaxZoomLevel
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: "char **VSIPMTilesFilesystemHandler::ReadDirEx(const char *pszFilename,\n
      \                                             int nMaxFiles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:422,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:423,1
    - Dst: VSIFileManager::InstallHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:425,1
    - Dst: VSIPMTilesFilesystemHandler::VSIPMTilesFilesystemHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: VSIPMTilesRegister
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/vsipmtiles.cpp
    functionUses: 0
    functionsReached:
    - VSIFileManager::InstallHandler
    - VSIPMTilesFilesystemHandler::VSIPMTilesFilesystemHandler
    - VSIFileManager::GetHandler
    linkageType: ''
    returnType: void
    signature: void VSIPMTilesRegister()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: OGRPMTilesDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OGRPMTilesDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:40,1
    - Dst: std::make_unique<OGRPMTilesDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:42,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:43,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: OGRPMTilesDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - auto::release
    - std::make_unique<OGRPMTilesDataset>
    - OGRPMTilesDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPMTilesDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:57,1
    - Dst: auto::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:57,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:60,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:71,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:72,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - poSourceDS
    - papszVectorTranslateArguments
    - ppapszFailureReasons
    argTypes:
    - GDALDataset*
    - CSLConstList
    - char***
    constantsTouched: []
    func_position:
      end: 89
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 89
    functionName: OGRPMTilesDriverCanVectorTranslateFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetDescription
    - CSLAddString
    - EQUAL
    - strcmp
    - GDALDataset*::GetDriver
    linkageType: ''
    returnType: bool
    signature: "bool OGRPMTilesDriverCanVectorTranslateFrom(\n    const char * /*pszDestName*/,
      GDALDataset *poSourceDS,\n    CSLConstList papszVectorTranslateArguments, char
      ***ppapszFailureReasons)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDriverCanVectorTranslateFrom
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:100,1
    - Dst: OGRPMTilesConvertFromMBTiles
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:106,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:107,1
    - Dst: OGRPMTilesDriverOpen
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pszDestName
    - poSourceDS
    - papszVectorTranslateArguments
    argTypes:
    - char*
    - GDALDataset*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: OGRPMTilesDriverVectorTranslateFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPMTilesDriverOpen
    - OGRPMTilesDriverCanVectorTranslateFrom
    - OGRPMTilesConvertFromMBTiles
    - GDALDataset*::GetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRPMTilesDriverVectorTranslateFrom(\n    const char
      *pszDestName, GDALDataset *poSourceDS,\n    CSLConstList papszVectorTranslateArguments,\n
      \   GDALProgressFunc /* pfnProgress */, void * /* pProgressData */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRPMTilesWriterDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:128,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:129,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: OGRPMTilesDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Create
    - auto::release
    - std::make_unique<OGRPMTilesWriterDataset>
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRPMTilesDriverCreate(const char *pszFilename, int nXSize,\n
      \                                          int nYSize, int nBandsIn,\n                                           GDALDataType
      eDT,\n                                           char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:143,1
    - Dst: VSIPMTilesRegister
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:146,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:148,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:150,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:151,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:152,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:153,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:175,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:184,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:197,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:198,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:199,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:201,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:204,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 210
    functionName: RegisterOGRPMTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - VSIPMTilesRegister
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPMTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<pmtiles::entryv3>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - entries
    - tile_id
    argTypes:
    - std::vector<pmtiles::entryv3>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: find_tile_idx_lesser_or_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp
    functionUses: 0
    functionsReached:
    - std::vector<pmtiles::entryv3>::empty
    linkageType: ''
    returnType: int
    signature: "int find_tile_idx_lesser_or_equal(const std::vector<pmtiles::entryv3>
      &entries,\n                              uint64_t tile_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:59,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:74,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:75,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:82,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:83,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:84,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:105,1
    - Dst: GetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:110,1
    - Dst: ReadInternal
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:111,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:112,1
    - Dst: pmtiles::deserialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:120,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:142,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:143,1
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:165,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:165,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 167
    functionName: OGRPMTilesTileIterator::LoadRootDirectory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - static_cast<uint8_t>
    - pmtiles::deserialize_directory
    - emplace
    - GetHeader
    - pmtiles::zxy_to_tileid
    - min
    - max
    - static_cast<uint32_t>
    - std::move
    - ReadInternal
    linkageType: ''
    returnType: bool
    signature: bool OGRPMTilesTileIterator::LoadRootDirectory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:175,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:177,1
    - Dst: auto::sEntries::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 190
    functionName: OGRPMTilesTileIterator::SkipRunLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp
    functionUses: 2
    functionsReached:
    - auto::sEntries::size
    - top
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesTileIterator::SkipRunLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::entry_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:199,1
    - Dst: GetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:201,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:206,1
    - Dst: OGRPMTilesTileIterator::LoadRootDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:208,1
    - Dst: pmtiles::entry_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:211,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:234,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:235,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:239,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:240,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:247,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:248,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:259,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:260,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:260,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:262,1
    - Dst: AdvanceToNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:262,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:265,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:266,1
    - Dst: top
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:270,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:277,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:280,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:289,1
    - Dst: ReadInternal
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:299,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:304,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:306,1
    - Dst: pmtiles::deserialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:311,1
    - Dst: DirectoryContext::sEntries::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:312,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:327,1
    - Dst: AdvanceToNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:338,1
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:347,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:347,1
    - Dst: pmtiles::tileid_to_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:364,1
    - Dst: pmtiles::zxy_to_tileid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:370,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:373,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:396,1
    - Dst: AdvanceToNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:407,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:413,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:416,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:419,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:422,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:427,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:431,1
    - Dst: pmtiles::entry_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:445,1
    - Dst: AdvanceToNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:459,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:460,1
    - Dst: pmtiles::entry_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:464,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 142
    argCount: 1
    argNames:
    - pnRunLength
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 465
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 465
    functionName: OGRPMTilesTileIterator::GetNextTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp
    functionUses: 6
    functionsReached:
    - static_cast<GUIntBig>
    - DirectoryContext::sEntries::empty
    - pmtiles::deserialize_directory
    - pmtiles::zxy_to_tileid
    - pmtiles::entry_zxy
    - top
    - static_cast<uint32_t>
    - CPLError
    - simple_max
    - emplace
    - GetHeader
    - std::move
    - pmtiles::tileid_to_zxy
    - OGRPMTilesTileIterator::LoadRootDirectory
    - AdvanceToNextTile
    - what
    - size
    - empty
    - static_cast<uint8_t>
    - pop
    - ReadInternal
    linkageType: ''
    returnType: pmtiles::entry_zxy
    signature: pmtiles::entry_zxy OGRPMTilesTileIterator::GetNextTile(uint32_t *pnRunLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesTileIterator::GetNextTile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:477,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: OGRPMTilesTileIterator::DumpTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilestileiterator.cpp
    functionUses: 0
    functionsReached:
    - printf
    - OGRPMTilesTileIterator::GetNextTile
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesTileIterator::DumpTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:27,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:28,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: OGRPMTilesDataset::~OGRPMTilesDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIUnlink
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesDataset::~OGRPMTilesDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:38,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: OGRPMTilesDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPMTilesDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: LongLatToSphericalMercator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LongLatToSphericalMercator(double *x, double *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: OGRPMTilesDataset::GetCompression
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRPMTilesDataset::GetCompression(uint8_t nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - sHeader
    argTypes:
    - pmtiles::headerv3
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: OGRPMTilesDataset::GetTileType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRPMTilesDataset::GetTileType(const pmtiles::headerv3 &sHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:113,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:116,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:121,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:121,1
    - Dst: pmtiles::deserialize_header
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:125,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:141,1
    - Dst: OGRPMTilesDataset::GetTileType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:143,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:148,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:149,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:153,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:160,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:169,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:171,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:176,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:176,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:183,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:184,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:193,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:197,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:200,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:210,1
    - Dst: OGRPMTilesDataset::GetCompression
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:212,1
    - Dst: OGRPMTilesDataset::ReadInternal
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:219,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:223,1
    - Dst: auto*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:223,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:227,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:228,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:228,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:228,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:229,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:230,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:232,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:235,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:239,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:240,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:242,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:244,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:250,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:250,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:252,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:256,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:259,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:261,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:261,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:262,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:271,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:272,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:278,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:290,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:300,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:301,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:303,1
    - Dst: auto::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:308,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:315,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:320,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:320,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:323,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:331,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:333,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:334,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:334,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:337,1
    - Dst: OGRMVTFindGeomTypeFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:339,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:340,1
    - Dst: OGRPMTilesVectorLayer::GuessGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:344,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:345,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:348,1
    - Dst: OGRMVTFindAttributesFromTileStat
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:350,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:351,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:353,1
    - Dst: std::make_unique<OGRPMTilesVectorLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:353,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:354,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 116
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 361
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 361
    functionName: OGRPMTilesDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetArray
    - std::string::assign
    - reinterpret_cast<GByte *>
    - GetObj
    - LongLatToSphericalMercator
    - CPLJSONDocument::GetRoot
    - CPLError
    - OGRPMTilesDataset::ReadInternal
    - CPLJSONObject::GetType
    - CPLJSONArray::IsValid
    - CPLJSONObject::IsValid
    - SetMetadataItem
    - GetName
    - auto::GetChildren
    - OGRMVTFindGeomTypeFromTileStat
    - CPLJSONObject::ToString
    - OGRPMTilesDataset::GetTileType
    - CPLTestBool
    - c_str
    - reinterpret_cast<const char *>
    - CPLJSONDocument::LoadMemory
    - ToString
    - std::make_unique<OGRPMTilesVectorLayer>
    - OGRPMTilesVectorLayer::GuessGeometryType
    - CPLSPrintf
    - CPLJSONArray::Size
    - GetType
    - SetDescription
    - VSIFileFromMemBuffer
    - size
    - CPLDebugOnly
    - OGRPMTilesDataset::GetCompression
    - pmtiles::deserialize_header
    - CPLGetDecompressor
    - auto*::c_str
    - VSIFCloseL
    - CSLFetchNameValueDef
    - OGRMVTFindAttributesFromTileStat
    - push_back
    - reset
    - VSIMemGenerateHiddenFilename
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: bool OGRPMTilesDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:373,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:376,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:377,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:380,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:380,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:381,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:382,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:382,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:384,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:386,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:386,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:392,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:392,1
    - Dst: CPLCompressor*::pfnFunc
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:397,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:397,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:397,1
    - Dst: CPLCompressor*::pfnFunc
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:405,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:406,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:406,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:409,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:411,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:411,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:412,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:417,1
    - Dst: unsigned
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:420,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:421,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - psDecompressor
    - nOffset
    - nSize
    - pszDataType
    argTypes:
    - CPLCompressor*
    - uint64_t
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 433
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 433
    functionName: OGRPMTilesDataset::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - size
    - Seek
    - static_cast<size_t>
    - OGRPMTilesDataset::Read
    - unsigned
    - CPLDebug
    - CPLError
    - resize
    - data
    - CPLCompressor*::pfnFunc
    linkageType: ''
    returnType: std::string
    signature: "std::string *OGRPMTilesDataset::Read(const CPLCompressor *psDecompressor,\n
      \                                          uint64_t nOffset, uint64_t nSize,\n
      \                                          const char *pszDataType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nOffset
    - nSize
    - pszDataType
    argTypes:
    - uint64_t
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: OGRPMTilesDataset::ReadInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPMTilesDataset::Read
    linkageType: ''
    returnType: std::string
    signature: "std::string *OGRPMTilesDataset::ReadInternal(uint64_t nOffset,\n                                                   uint64_t
      nSize,\n                                                   const char *pszDataType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nOffset
    - nSize
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: OGRPMTilesDataset::ReadTileData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogrpmtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::Read
    linkageType: ''
    returnType: std::string
    signature: "std::string *OGRPMTilesDataset::ReadTileData(uint64_t nOffset,\n                                                   uint64_t
      nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: OGRPMTilesDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h:53,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 17
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: GetMinZoomLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMinZoomLevel() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: GetMaxZoomLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxZoomLevel() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: '&GetHeader() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pmtiles::headerv3
    signature: pmtiles::headerv3 &GetHeader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: '&GetMetadataContent() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetMetadataContent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: '&GetMetadataFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetMetadataFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: '&GetClipOpenOption() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetClipOpenOption() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRPMTilesDataset*
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: OGRPMTilesTileIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPMTilesTileIterator(OGRPMTilesDataset *poDS,\n                                    int
      nZoomLevel = -1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - poDS
    - nZoomLevel
    - nMinX
    - nMinY
    - nMaxX
    - nMaxY
    argTypes:
    - OGRPMTilesDataset*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OGRPMTilesTileIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPMTilesTileIterator(OGRPMTilesDataset *poDS, int nZoomLevel,
      int nMinX,\n                           int nMinY, int nMaxX, int nMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 65
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: OGRPMTilesWriterDataset::OGRPMTilesWriterDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/ogr_pmtiles.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPMTilesWriterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: pmtiles::swap_byte_order_if_msb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void swap_byte_order_if_msb(T* ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: pmtiles::swap_byte_order_if_msb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_byte_order_if_msb(T* /*ptr*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::swap_byte_order_if_msb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:43,1
    - Dst: write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:44,1
    - Dst: reinterpret_cast<char*>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ss'
    - val
    argTypes:
    - std::stringstream
    - T
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pmtiles::copy_to_lsb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - write
    - pmtiles::swap_byte_order_if_msb
    linkageType: ''
    returnType: void
    signature: void copy_to_lsb(std::stringstream& ss, T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:49,1
    - Dst: reinterpret_cast<char*>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ss'
    - val
    argTypes:
    - std::stringstream
    - uint8_t
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: pmtiles::copy_to_lsb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - write
    linkageType: ''
    returnType: void
    signature: void copy_to_lsb<uint8_t>(std::stringstream& ss, uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:83,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:84,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:85,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:86,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:87,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:88,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:89,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:90,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:91,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:92,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:93,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:94,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:101,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:102,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:103,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:104,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:105,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:106,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:107,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:108,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:109,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:110,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:111,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:112,1
    - Dst: pmtiles::copy_to_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:113,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 116
    functionName: pmtiles::serialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - pmtiles::copy_to_lsb
    linkageType: ''
    returnType: std::string
    signature: std::string serialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: pmtiles::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: pmtiles::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::copy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:142,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:142,1
    - Dst: pmtiles::swap_byte_order_if_msb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - s
    - offset
    argTypes:
    - T*
    - std::string
    - size_t
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: pmtiles::copy_from_lsb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - pmtiles::swap_byte_order_if_msb
    - std::string::copy
    - reinterpret_cast<char *>
    linkageType: ''
    returnType: void
    signature: void copy_from_lsb(T* ptr, const std::string &s, size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:147,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:150,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:154,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:155,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:156,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:157,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:158,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:159,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:160,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:161,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:162,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:163,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:164,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:175,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:176,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:177,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:178,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:180,1
    - Dst: pmtiles::copy_from_lsb
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 183
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 183
    functionName: pmtiles::deserialize_header
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 1
    functionsReached:
    - std::string::substr
    - pmtiles::copy_from_lsb
    - std::string::size
    linkageType: ''
    returnType: headerv3
    signature: headerv3 deserialize_header(const std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _z
    - _x
    - _y
    argTypes:
    - uint8_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: pmtiles::zxy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zxy(uint8_t _z, int _x, int _y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: pmtiles::entryv3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entryv3()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _tile_id
    - _offset
    - _length
    - _run_length
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: pmtiles::entryv3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entryv3(uint64_t _tile_id, uint64_t _offset, uint32_t _length,
      uint32_t _run_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - entryv3
    - entryv3
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: operator()(entryv3 a, entryv3 b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(entryv3 a, entryv3 b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - _z
    - _x
    - _y
    - _offset
    - _length
    argTypes:
    - uint8_t
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: pmtiles::entry_zxy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry_zxy(uint8_t _z, uint32_t _x, uint32_t _y, uint64_t _offset,
      uint32_t _length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: pmtiles::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: pmtiles::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:256,1
    - Dst: reinterpret_cast<const int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:257,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:327,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 2
    argNames:
    - data
    - end
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 329
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 329
    functionName: pmtiles::decode_varint_impl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - reinterpret_cast<const int8_t *>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decode_varint_impl(const char **data, const char *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:333,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:334,1
    - Dst: pmtiles::decode_varint_impl
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - end
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: pmtiles::decode_varint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - pmtiles::decode_varint_impl
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decode_varint(const char **data, const char *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - n
    - x
    - y
    - rx
    - ry
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: pmtiles::rotate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rotate(int64_t n, int64_t &x, int64_t &y, int64_t rx, int64_t
      ry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::rotate
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:363,1
    - Dst: pmtiles::zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:368,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:368,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - z
    - pos
    argTypes:
    - uint8_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: pmtiles::t_on_level
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - pmtiles::rotate
    - pmtiles::zxy
    - static_cast<int>
    linkageType: ''
    returnType: zxy
    signature: zxy t_on_level(uint8_t z, uint64_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - value
    argTypes:
    - std::back_insert_iterator<std::string>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: pmtiles::write_varint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int write_varint(std::back_insert_iterator<std::string> data, uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - entry_zxy
    - entry_zxy
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: operator()(entry_zxy a, entry_zxy b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(entry_zxy a, entry_zxy b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - entries
    - tile_id
    argTypes:
    - std::vector<entryv3>
    - uint64_t
    constantsTouched: []
    func_position:
      end: 422
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 422
    functionName: pmtiles::find_tile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entryv3
    signature: entryv3 find_tile(const std::vector<entryv3> &entries, uint64_t tile_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::t_on_level
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:431,1
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tileid
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 436
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 436
    functionName: pmtiles::tileid_to_zxy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 2
    functionsReached:
    - pmtiles::t_on_level
    - std::overflow_error
    linkageType: ''
    returnType: zxy
    signature: zxy tileid_to_zxy(uint64_t tileid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:440,1
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:443,1
    - Dst: pmtiles::rotate
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - z
    - x
    - y
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: pmtiles::zxy_to_tileid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 3
    functionsReached:
    - std::overflow_error
    - pmtiles::rotate
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t zxy_to_tileid(uint32_t z, uint32_t x, uint32_t y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:464,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:464,1
    - Dst: std::vector<entryv3>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:464,1
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:468,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:468,1
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:473,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:473,1
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:477,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:477,1
    - Dst: std::vector<entryv3>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:480,1
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:482,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:482,1
    - Dst: pmtiles::write_varint
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:484,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - entries
    argTypes:
    - std::vector<entryv3>
    constantsTouched: []
    func_position:
      end: 489
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 489
    functionName: pmtiles::serialize_directory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - std::vector<entryv3>::size
    - std::back_inserter
    - pmtiles::write_varint
    linkageType: ''
    returnType: std::string
    signature: std::string serialize_directory(const std::vector<entryv3> &entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: pmtiles::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:514,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:515,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:520,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:525,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:526,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:535,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:536,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:538,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:543,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:544,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:546,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:553,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:554,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:564,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - decompressed
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 568
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 568
    functionName: pmtiles::deserialize_directory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 2
    functionsReached:
    - simple_max
    - std::string::size
    - static_cast<uint32_t>
    - malformed_directory_exception
    - std::vector::resize
    linkageType: ''
    returnType: std::vector<entryv3>
    signature: std::vector<entryv3> deserialize_directory(const std::string &decompressed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<pmtiles::entryv3>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:574,1
    - Dst: std::vector<pmtiles::entryv3>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:577,1
    - Dst: std::vector<pmtiles::entryv3>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:578,1
    - Dst: std::vector<pmtiles::entryv3>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:580,1
    - Dst: std::vector<pmtiles::entryv3>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:580,1
    - Dst: pmtiles::serialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:581,1
    - Dst: mycompress
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:582,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:583,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:583,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:583,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:583,1
    - Dst: pmtiles::serialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:586,1
    - Dst: mycompress
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:587,1
    - Dst: std::make_tuple
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - mycompress
    - compression
    - entries
    - leaf_size
    argTypes:
    - std::function<std::string(const std::string &, uint8_t)>
    - uint8_t
    - std::vector<pmtiles::entryv3>
    - int
    constantsTouched: []
    func_position:
      end: 589
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 589
    functionName: pmtiles::build_root_leaves
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - std::string::size
    - std::vector<pmtiles::entryv3>::size
    - std::vector::emplace_back
    - pmtiles::serialize_directory
    - static_cast<uint32_t>
    - std::vector<pmtiles::entryv3>::begin
    - mycompress
    - auto::size
    linkageType: ''
    returnType: std::tuple<std::string, std::string, int>
    signature: std::tuple<std::string, std::string, int> build_root_leaves(const std::function<std::string(const
      std::string &, uint8_t)> mycompress, uint8_t compression, const std::vector<pmtiles::entryv3>
      &entries, int leaf_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::serialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:592,1
    - Dst: mycompress
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:593,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:594,1
    - Dst: std::make_tuple
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:595,1
    - Dst: std::tie
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:602,1
    - Dst: pmtiles::build_root_leaves
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:602,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:603,1
    - Dst: std::make_tuple
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:604,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:606,1
    - Dst: std::make_tuple
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - mycompress
    - compression
    - entries
    argTypes:
    - std::function<std::string(const std::string &, uint8_t)>
    - uint8_t
    - std::vector<pmtiles::entryv3>
    constantsTouched: []
    func_position:
      end: 611
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 611
    functionName: pmtiles::make_root_leaves
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 1
    functionsReached:
    - std::string::length
    - simple_max
    - std::make_tuple
    - pmtiles::build_root_leaves
    - std::tie
    - pmtiles::serialize_directory
    - auto::size
    - mycompress
    linkageType: ''
    returnType: std::tuple<std::string, std::string, int>
    signature: std::tuple<std::string, std::string, int> make_root_leaves(const std::function<std::string(const
      std::string &, uint8_t)> mycompress, uint8_t compression, const std::vector<pmtiles::entryv3>
      &entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:614,1
    - Dst: decompress
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:615,1
    - Dst: pmtiles::deserialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:617,1
    - Dst: pmtiles::collect_entries
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:620,1
    - Dst: pmtiles::tileid_to_zxy
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:623,1
    - Dst: std::vector<entry_zxy>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - decompress
    - tile_entries
    - pmtiles_map
    - h
    - dir_offset
    - dir_len
    argTypes:
    - std::function<std::string(const std::string &, uint8_t)>
    - std::vector<entry_zxy>
    - char*
    - headerv3
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 628
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 628
    functionName: pmtiles::collect_entries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 1
    functionsReached:
    - pmtiles::collect_entries
    - static_cast<size_t>
    - pmtiles::tileid_to_zxy
    - decompress
    - pmtiles::deserialize_directory
    - std::vector<entry_zxy>::emplace_back
    linkageType: ''
    returnType: void
    signature: void collect_entries(const std::function<std::string(const std::string
      &, uint8_t)> decompress, std::vector<entry_zxy> &tile_entries, const char *pmtiles_map,
      const headerv3 &h, uint64_t dir_offset, uint64_t dir_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::deserialize_header
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:632,1
    - Dst: pmtiles::collect_entries
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:636,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:637,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:637,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - decompress
    - pmtiles_map
    argTypes:
    - std::function<std::string(const std::string &, uint8_t)>
    - char*
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: pmtiles::entries_tms
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - pmtiles::collect_entries
    - pmtiles::deserialize_header
    - std::vector::end
    - std::vector::begin
    - std::sort
    linkageType: ''
    returnType: std::vector<entry_zxy>
    signature: std::vector<entry_zxy> entries_tms(const std::function<std::string(const
      std::string &, uint8_t)> decompress, const char *pmtiles_map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pmtiles::deserialize_header
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:645,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:648,1
    - Dst: malformed_directory_exception
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:649,1
    - Dst: decompress
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:654,1
    - Dst: pmtiles::deserialize_directory
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:655,1
    - Dst: pmtiles::find_tile
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:656,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:660,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:666,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp:670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - decompress
    - pmtiles_map
    - z
    - x
    - y
    argTypes:
    - std::function<std::string(const std::string &, uint8_t)>
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 671
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 671
    functionName: pmtiles::get_tile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pmtiles/pmtiles/pmtiles.hpp
    functionUses: 0
    functionsReached:
    - simple_max
    - pmtiles::deserialize_header
    - decompress
    - std::make_pair
    - pmtiles::deserialize_directory
    - pmtiles::find_tile
    - malformed_directory_exception
    linkageType: ''
    returnType: std::pair<uint64_t, uint32_t>
    signature: std::pair<uint64_t, uint32_t> get_tile(const std::function<std::string(const
      std::string &, uint8_t)> decompress, const char *pmtiles_map, uint8_t z, uint32_t
      x, uint32_t y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:53,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:54,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - node_
    - iliVersion_
    - oTidLookup_
    - oClasses_
    - oAxisCount_
    argTypes:
    - CPLXMLNode*
    - int
    - StrNodeMap
    - ClassesMap
    - NodeCountMap
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: IliClass::IliClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    linkageType: ''
    returnType: void
    signature: "void IliClass(CPLXMLNode *node_, int iliVersion_, StrNodeMap &oTidLookup_,\n
      \            ClassesMap &oClasses_, NodeCountMap &oAxisCount_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ~IliClass()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~IliClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: IliClass::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 1
    functionsReached:
    - IliClass::GetName
    linkageType: ''
    returnType: char
    signature: char *GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: IliClass::GetIliName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    linkageType: ''
    returnType: char
    signature: char *GetIliName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:90,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:91,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: IliClass::LayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *LayerName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:101,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:105,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:106,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:108,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - nodeIn
    - iOrderPos
    argTypes:
    - CPLXMLNode*
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: IliClass::AddFieldNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - IliClass::GetName
    - CPLDebug
    - CPLError
    - resize
    linkageType: ''
    returnType: void
    signature: void AddFieldNode(CPLXMLNode *nodeIn, int iOrderPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IliClass::AddFieldNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nodeIn
    - iOrderPos
    argTypes:
    - CPLXMLNode*
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: IliClass::AddRoleNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - IliClass::AddFieldNode
    linkageType: ''
    returnType: void
    signature: void AddRoleNode(CPLXMLNode *nodeIn, int iOrderPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:123,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:124,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:128,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: IliClass::isEmbedded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    - end
    - begin
    - CPLTestBool
    linkageType: ''
    returnType: bool
    signature: bool isEmbedded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:139,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:141,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:145,1
    - Dst: OGRFeatureDefn*::DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:147,1
    - Dst: OGRFeatureDefn*::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:149,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:150,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:151,1
    - Dst: SetGeomTableDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - layerName
    - psFieldName
    - eType
    argTypes:
    - CPLString
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: IliClass::AddGeomTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - SetGeomTableDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFeatureDefn*::DeleteGeomFieldDefn
    - CPLDebug
    - OGRFeatureDefn*::AddGeomFieldDefn
    - OGRFeatureDefn*::GetName
    linkageType: ''
    returnType: void
    signature: "void AddGeomTable(const CPLString &layerName, const char *psFieldName,\n
      \                     OGRwkbGeometryType eType, bool bRefTIDField = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:158,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:159,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - psName
    - fieldType
    argTypes:
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: IliClass::AddField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - IliClass::GetName
    - AddFieldDefn
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void AddField(const char *psName, OGRFieldType fieldType) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:166,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:167,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - psName
    - geomType
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: IliClass::AddGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - IliClass::GetName
    - AddGeomFieldDefn
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void AddGeomField(const char *psName, OGRwkbGeometryType geomType)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:173,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:181,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:181,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - psName
    - psTypeNode
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: IliClass::AddCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - find
    - IliClass::AddField
    - IliClass::AddGeomField
    linkageType: ''
    returnType: void
    signature: void AddCoord(const char *psName, const CPLXMLNode *psTypeNode) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IliClass::GetFormattedType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nodeIn
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: IliClass::GetFormattedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 1
    functionsReached:
    - IliClass::GetFormattedType
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType GetFormattedType(CPLXMLNode *nodeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:200,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:204,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:207,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:211,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:213,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:220,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:222,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 224
    functionName: IliClass::InitFieldDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - DeleteGeomFieldDefn
    - CPLTestBool
    - IliClass::GetName
    - CPLDebug
    - EQUAL
    - AddFieldDefn
    - CPLGetXMLValue
    linkageType: ''
    returnType: void
    signature: void InitFieldDefinitions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:230,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:234,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:235,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: IliClass::TidLookup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - end
    - find
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *TidLookup(const char *pszKey) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:246,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:247,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:256,1
    - Dst: IliClass::TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:263,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:265,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:267,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:269,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:272,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:274,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:276,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:281,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:285,1
    - Dst: IliClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:287,1
    - Dst: IliClass::GetFormattedType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:289,1
    - Dst: IliClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:299,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:300,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:311,1
    - Dst: IliClass::AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:313,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:332,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:335,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:335,1
    - Dst: IliClass::AddGeomTable
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:336,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:339,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:345,1
    - Dst: IliClass::AddCoord
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:348,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:351,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:351,1
    - Dst: IliClass::AddGeomTable
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:352,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:354,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:363,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:365,1
    - Dst: IliClass::AddGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:376,1
    - Dst: IliClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:378,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 1
    argNames:
    - oArcLineTypes
    argTypes:
    - NodeVector
    constantsTouched: []
    func_position:
      end: 382
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 382
    functionName: IliClass::AddFieldDefinitions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLError
    - IliClass::AddGeomField
    - IliClass::GetName
    - IliClass::TidLookup
    - IliClass::AddField
    - CPLDebug
    - EQUAL
    - begin
    - IliClass::GetFormattedType
    - CPLString
    - IliClass::AddGeomTable
    - IliClass*::GetName
    - IliClass::AddCoord
    linkageType: ''
    returnType: void
    signature: void AddFieldDefinitions(NodeVector oArcLineTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeatureDefnInfo::FeatureDefnInfo
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:386,1
    - Dst: IliClass::isEmbedded
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:387,1
    - Dst: FeatureDefnInfo::SetTableDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: IliClass::tableDefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - FeatureDefnInfo::FeatureDefnInfo
    - FeatureDefnInfo::SetTableDefn
    - IliClass::isEmbedded
    linkageType: ''
    returnType: FeatureDefnInfo
    signature: FeatureDefnInfo tableDefs()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iliVersionIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: ImdReader::ImdReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ImdReader::ImdReader(int iliVersionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: ImdReader::~ImdReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ImdReader::~ImdReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:414,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:416,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:420,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:423,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:436,1
    - Dst: static_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:438,1
    - Dst: StrNodeMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:440,1
    - Dst: StrNodeMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:441,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:443,1
    - Dst: static_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:445,1
    - Dst: static_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:447,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:456,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:465,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:471,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:472,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:475,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:476,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:477,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:478,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:485,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:489,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:489,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:490,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:491,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:491,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:491,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:493,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:493,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:493,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:497,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:500,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:501,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:503,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:505,1
    - Dst: IliClass::IliClass
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:506,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:522,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:535,1
    - Dst: ClassesMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:538,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:539,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:542,1
    - Dst: IliClass*::AddFieldNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:545,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:547,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:560,1
    - Dst: ClassesMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:563,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:564,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:567,1
    - Dst: IliClass*::AddFieldNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:572,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:582,1
    - Dst: ClassesMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:585,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:586,1
    - Dst: IliClass*::AddRoleNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:590,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:592,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:601,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:606,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:612,1
    - Dst: TidLookup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:616,1
    - Dst: NodeVector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:619,1
    - Dst: ClassesMap::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:629,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:629,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:633,1
    - Dst: ClassesMap::const_iterator::second::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:633,1
    - Dst: StrNodeMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:639,1
    - Dst: StrNodeMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:639,1
    - Dst: ClassesMap::find
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:640,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:646,1
    - Dst: ClassesMap::const_iterator::second::InitFieldDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:650,1
    - Dst: ClassesMap::const_iterator::second::AddFieldDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:651,1
    - Dst: ClassesMap::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:655,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:655,1
    - Dst: ClassesMap::const_iterator::second::tableDefs
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:659,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:660,1
    - Dst: FeatureDefnInfo::GetTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:661,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:662,1
    - Dst: ClassesMap::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:665,1
    - Dst: ClassesMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:665,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:670,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 121
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 671
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 671
    functionName: ImdReader::ReadModel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - ClassesMap::const_iterator::second::GetName
    - TidLookup
    - CPLDebug
    - StrNodeMap::end
    - FeatureDefnInfo::GetTableDefnRef
    - CPLGetXMLValue
    - CPLError
    - ClassesMap::begin
    - static_cast<CPLXMLNode *>
    - ClassesMap::end
    - IliClass::IliClass
    - IliClass*::AddFieldNode
    - STARTS_WITH_CI
    - CPLDestroyXMLNode
    - ClassesMap::const_iterator::second::tableDefs
    - ClassesMap::const_iterator::second::AddFieldDefinitions
    - ClassesMap::const_iterator::second::InitFieldDefinitions
    - IliClass*::AddRoleNode
    - static_cast<char>
    - CPLParseXMLFile
    - CPLGetXMLNode
    - NodeVector::push_back
    - EQUAL
    - StrNodeMap::find
    - push_back
    - ClassesMap::find
    linkageType: ''
    returnType: void
    signature: void ImdReader::ReadModel(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeatureDefnInfo::FeatureDefnInfo
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:675,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:676,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:677,1
    - Dst: FeatureDefnInfos::const_iterator::GetTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:679,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:680,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: ImdReader::GetFeatureDefnInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.cpp
    functionUses: 0
    functionsReached:
    - end
    - FeatureDefnInfos::const_iterator::GetTableDefnRef
    - FeatureDefnInfo::FeatureDefnInfo
    - EQUAL
    - begin
    - OGRFeatureDefn*::GetName
    linkageType: ''
    returnType: FeatureDefnInfo
    signature: FeatureDefnInfo ImdReader::GetFeatureDefnInfo(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:33,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:33,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - poFeatureDefnIn
    - oGeomFieldInfosIn
    - poDSIn
    argTypes:
    - OGRFeatureDefn*
    - GeomFieldInfos
    - OGRILI1DataSource*
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: OGRILI1Layer::OGRILI1Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - Reference
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRILI1Layer::OGRILI1Layer(OGRFeatureDefn *poFeatureDefnIn,\n
      \                          const GeomFieldInfos &oGeomFieldInfosIn,\n                           OGRILI1DataSource
      *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:47,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: OGRILI1Layer::~OGRILI1Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRILI1Layer::~OGRILI1Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRFeature **>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:57,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: OGRILI1Layer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<OGRFeature **>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRILI1Layer::AddFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: OGRILI1Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRILI1Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI1Layer::JoinGeomLayers
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:81,1
    - Dst: OGRILI1Layer::GetNextFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:85,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: OGRILI1Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - OGRILI1Layer::GetNextFeatureRef
    - OGRILI1Layer::JoinGeomLayers
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRILI1Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:100,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:100,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: OGRILI1Layer::GetNextFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 1
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRILI1Layer::GetNextFeatureRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:114,1
    - Dst: OGRILI1Layer::GetNextFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:117,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: OGRILI1Layer::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - OGRILI1Layer::ResetReading
    - OGRILI1Layer::GetNextFeatureRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRILI1Layer::GetFeatureRef(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:129,1
    - Dst: OGRILI1Layer::GetNextFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:132,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:134,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fid
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: OGRILI1Layer::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsString
    - strcmp
    - OGRILI1Layer::ResetReading
    - OGRILI1Layer::GetNextFeatureRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRILI1Layer::GetFeatureRef(const char *fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: OGRILI1Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRILI1Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: OGRILI1Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRILI1Layer::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:183,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:184,1
    - Dst: GeomFieldInfos::const_iterator::second::GetGeomTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:186,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:189,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:190,1
    - Dst: GeomFieldInfos::const_iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:190,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:192,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:192,1
    - Dst: OGRILI1Layer::JoinSurfaceLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:197,1
    - Dst: PolygonizeAreaLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 209
    functionName: OGRILI1Layer::JoinGeomLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 1
    functionsReached:
    - end
    - PolygonizeAreaLayer
    - OGRILI1Layer::JoinSurfaceLayer
    - GeomFieldInfos::const_iterator::first::c_str
    - CPLDebug
    - GeomFieldInfos::const_iterator::second::GetGeomTableDefnRef
    - begin
    - GetLayerByName
    - OGRFeatureDefn*::GetName
    linkageType: ''
    returnType: void
    signature: void OGRILI1Layer::JoinGeomLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:214,1
    - Dst: OGRILI1Layer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:215,1
    - Dst: OGRILI1Layer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:217,1
    - Dst: OGRILI1Layer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:221,1
    - Dst: OGRILI1Layer*::GetNextFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:224,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:228,1
    - Dst: OGRILI1Layer::GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:230,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:230,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:234,1
    - Dst: OGRILI1Layer::GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:235,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:239,1
    - Dst: dynamic_cast<OGRMultiCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:240,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:245,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:246,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:252,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:254,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:260,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:261,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:271,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:272,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:275,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:276,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:283,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:284,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:287,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:288,1
    - Dst: OGRCurve*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:289,1
    - Dst: OGRCurve*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:290,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:292,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:292,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:292,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:293,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:293,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:293,1
    - Dst: OGRCurve*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:297,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:300,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:300,1
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:304,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:307,1
    - Dst: OGRCompoundCurve*::addCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:312,1
    - Dst: std::vector::erase
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:314,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:318,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:318,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:318,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:320,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:320,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:320,1
    - Dst: OGRCurve*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:322,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:325,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:325,1
    - Dst: OGRCurve*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:330,1
    - Dst: OGRSimpleCurve*::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:331,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:332,1
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:339,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:343,1
    - Dst: OGRSimpleCurve*::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:346,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:347,1
    - Dst: std::vector::erase
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:351,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:356,1
    - Dst: OGRCompoundCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:356,1
    - Dst: OGRCompoundCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:363,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:366,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:366,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:368,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:378,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:384,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:384,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:388,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:389,1
    - Dst: std::vector::erase
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:394,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:401,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:403,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:407,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:410,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:410,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:411,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:414,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:415,1
    - Dst: OGRCurve::CastToLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:420,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:426,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:429,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:429,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:430,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:435,1
    - Dst: OGRILI1Layer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:438,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 101
    argCount: 2
    argNames:
    - poSurfaceLineLayer
    - nSurfaceFieldIndex
    argTypes:
    - OGRILI1Layer*
    - int
    constantsTouched: []
    func_position:
      end: 439
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 439
    functionName: OGRILI1Layer::JoinSurfaceLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldAsInteger64
    - std::map::end
    - OGRFeature*::GetFieldAsString
    - OGRCurve*::StartPoint
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - OGRILI1Layer*::ResetReading
    - fabs
    - OGRCompoundCurve*::addCurveDirectly
    - dynamic_cast<OGRMultiCurve *>
    - std::vector::push_back
    - OGRCurve*::toCompoundCurve
    - OGRPolygon::OGRPolygon
    - OGRFeature*::SetGeomFieldDirectly
    - OGRPoint::getY
    - std::vector::end
    - OGRCurve*::EndPoint
    - std::vector::begin
    - OGRPoint::OGRPoint
    - OGRILI1Layer::GetFeatureRef
    - wkbFlatten
    - std::vector::empty
    - GetName
    - IsEmpty
    - OGRFeature*::GetGeomFieldRef
    - std::map::begin
    - OGRPoint::getX
    - OGRILI1Layer::GetLayerDefn
    - OGRCompoundCurve*::addCurve
    - OGRFeature*::GetFID
    - OGRCurvePolygon*::addRingDirectly
    - OGRCompoundCurve::OGRCompoundCurve
    - CPLFree
    - OGRCurve*::getGeometryType
    - std::vector::erase
    - OGRSimpleCurve*::reversePoints
    - OGRCompoundCurve*::getCurve
    - OGRCurvePolygon::OGRCurvePolygon
    - OGRCompoundCurve*::get_IsClosed
    - push_back
    - OGRILI1Layer*::GetNextFeatureRef
    - OGRCurve::CastToLinearRing
    - OGRILI1Layer::ResetReading
    - OGRCurve*::toSimpleCurve
    linkageType: ''
    returnType: void
    signature: "void OGRILI1Layer::JoinSurfaceLayer(OGRILI1Layer *poSurfaceLineLayer,\n
      \                                   int nSurfaceFieldIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:448,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:450,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:459,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:461,1
    - Dst: OGRGeometryCollection*::Union
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:464,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:464,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:467,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:467,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:469,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:469,1
    - Dst: dynamic_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:472,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:473,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:474,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:475,1
    - Dst: OGRGeometry::createGEOSContext
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:484,1
    - Dst: static_cast<GEOSGeom *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:486,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:487,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:487,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:488,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:490,1
    - Dst: GEOSPolygonize_r
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:492,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:493,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:495,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:496,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:497,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:503,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:504,1
    - Dst: OGRGeometryFactory::createFromGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:507,1
    - Dst: GEOSGeom_destroy_r
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:509,1
    - Dst: OGRGeometry::freeGEOSContext
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:510,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:512,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:513,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:513,1
    - Dst: dynamic_cast<OGRMultiPolygon *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:514,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:517,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp:520,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - poLines
    - HAVE_GEOS
    argTypes:
    - OGRGeometryCollection*
    - bool
    constantsTouched: []
    func_position:
      end: 522
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 522
    functionName: OGRILI1Layer::Polygonize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry::createGEOSContext
    - OGRGeometry::freeGEOSContext
    - GEOSGeom_destroy_r
    - OGRGeometryCollection*::Union
    - dynamic_cast<OGRMultiPolygon *>
    - dynamic_cast<OGRGeometryCollection *>
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryFactory::forceToMultiPolygon
    - CPLDebug
    - static_cast<GEOSGeom *>
    - OGRMultiPolygon::OGRMultiPolygon
    - GEOSPolygonize_r
    - wkbFlatten
    - OGRGeometryFactory::createFromGEOS
    - CPLFree
    - CPLCalloc
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: "OGRMultiPolygon *OGRILI1Layer::Polygonize(OGRGeometryCollection *poLines,\n
      \                                         bool\n#if defined(HAVE_GEOS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: OGRILI1Layer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRILI1Layer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: OGRILI2Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: OGRILI2Layer::GetIliGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetIliGeomType(const char *cFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI2DataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili2.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: OGRILI2DataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili2.h
    functionUses: 1
    functionsReached:
    - OGRILI2DataSource::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImdReader::ImdReader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: OGRILI1DataSource::OGRILI1DataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 0
    functionsReached:
    - ImdReader::ImdReader
    linkageType: ''
    returnType: void
    signature: void OGRILI1DataSource::OGRILI1DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:43,1
    - Dst: DestroyILI1Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: OGRILI1DataSource::~OGRILI1DataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - DestroyILI1Reader
    linkageType: ''
    returnType: void
    signature: void OGRILI1DataSource::~OGRILI1DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:57,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:64,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:67,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:75,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:83,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:89,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:93,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:113,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:115,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:124,1
    - Dst: CreateILI1Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:129,1
    - Dst: OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:137,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:137,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:139,1
    - Dst: ReadModel
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:140,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:140,1
    - Dst: ReadFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - pszNewName
    - papszOpenOptionsIn
    - bTestOpen
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 149
    functionName: OGRILI1DataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - CreateILI1Reader
    - VSIFCloseL
    - CSLDestroy
    - ReadModel
    - OpenFile
    - VSIFOpenL
    - ReadFeatures
    - strlen
    - strstr
    - CPLError
    - std::string::c_str
    - CSLFetchNameValue
    linkageType: ''
    returnType: int
    signature: "int OGRILI1DataSource::Open(const char *pszNewName, char **papszOpenOptionsIn,\n
      \                           int bTestOpen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: OGRILI1DataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRILI1DataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI1DataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: OGRILI1DataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 1
    functionsReached:
    - OGRILI1DataSource::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRILI1DataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRILI1Layer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:189,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:190,1
    - Dst: cpl::down_cast<OGRILI1Layer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:193,1
    - Dst: OGRILI1DataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: OGRILI1DataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1datasource.cpp
    functionUses: 1
    functionsReached:
    - GDALDataset::GetLayerByName
    - cpl::down_cast<OGRILI1Layer *>
    - OGRILI1DataSource::GetLayerByName
    linkageType: ''
    returnType: OGRILI1Layer
    signature: OGRILI1Layer *OGRILI1DataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:54,1
    - Dst: string::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:55,1
    - Dst: string::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:57,1
    - Dst: string::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:57,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:59,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:59,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:60,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:60,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:61,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:61,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:62,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:62,1
    - Dst: string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:69,1
    - Dst: string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:69,1
    - Dst: string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:69,1
    - Dst: string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - string
    - string
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: gdal::ili2::cmpStr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - string::end
    - static_cast<unsigned char>
    - CPLToupper
    - string::size
    - string::begin
    linkageType: ''
    returnType: int
    signature: int cmpStr(const string &s1, const string &s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string::length
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:75,1
    - Dst: string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:78,1
    - Dst: string::length
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - tmpstr
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: gdal::ili2::ltrim
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - string::substr
    - string::length
    linkageType: ''
    returnType: string
    signature: string ltrim(const string &tmpstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:83,1
    - Dst: string::length
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:89,1
    - Dst: string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - tmpstr
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: gdal::ili2::rtrim
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - string::empty
    - string::substr
    - string::length
    linkageType: ''
    returnType: string
    signature: string rtrim(const string &tmpstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::ili2::ltrim
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:94,1
    - Dst: gdal::ili2::rtrim
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tmpstr
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: gdal::ili2::trim
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - gdal::ili2::ltrim
    - gdal::ili2::rtrim
    linkageType: ''
    returnType: string
    signature: string trim(const string &tmpstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DOMElement*::getNodeType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:110,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:112,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:116,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:120,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:124,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:128,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:132,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 139
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 139
    functionName: getGeometryTypeOfElem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - DOMElement*::getNodeType
    - cmpStr
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: int
    signature: int getGeometryTypeOfElem(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:143,1
    - Dst: DOMNode*::getNodeType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:144,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:146,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:146,1
    - Dst: DOMNode*::getNodeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: getObjValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - DOMElement*::getFirstChild
    - CPLStrdup
    - DOMNode*::getNodeType
    - DOMNode*::getNodeValue
    - transcode
    linkageType: ''
    returnType: char
    signature: char *getObjValue(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:154,1
    - Dst: DOMElement*::getAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:154,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: getREFValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - DOMElement*::getAttribute
    - CPLStrdup
    - transcode
    linkageType: ''
    returnType: char
    signature: char *getREFValue(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:161,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:161,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:164,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:172,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:173,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:173,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:174,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:175,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:175,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:176,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:177,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:177,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:179,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:180,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:181,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:181,1
    - Dst: OGRPoint*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 185
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 185
    functionName: getPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 22
    functionsReached:
    - CPLAtof
    - DOMElement*::getFirstChild
    - CPLFree
    - OGRPoint*::setX
    - cmpStr
    - OGRPoint*::flattenTo2D
    - OGRPoint::OGRPoint
    - OGRPoint*::setY
    - OGRPoint*::setZ
    - DOMElement*::getNextSibling
    - dynamic_cast<DOMElement *>
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *getPoint(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:190,1
    - Dst: DOMElement*::getPreviousSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:190,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:193,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:198,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:200,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:202,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:205,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:205,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:212,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:213,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:213,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:214,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:215,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:215,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:216,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:217,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:217,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:218,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:219,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:219,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:220,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:221,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:221,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:222,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:223,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:223,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:224,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:229,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:230,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:231,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:231,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:233,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:234,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 240
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 240
    functionName: ILI2Reader::getArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - DOMElement*::getFirstChild
    - CPLFree
    - OGRCircularString*::addPoint
    - OGRPoint*::setX
    - DOMElement*::getPreviousSibling
    - cmpStr
    - OGRPoint::OGRPoint
    - flatbuffers::vector_downward::release
    - OGRPoint*::setY
    - OGRCircularString::OGRCircularString
    - OGRPoint*::setZ
    - DOMElement*::getNextSibling
    - dynamic_cast<DOMElement *>
    - getPoint
    linkageType: ''
    returnType: OGRCircularString
    signature: OGRCircularString *ILI2Reader::getArc(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:245,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:246,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:248,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:248,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:252,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:254,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:257,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:261,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:264,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:266,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:267,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:271,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:273,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:275,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:277,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:282,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:282,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:289,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:290,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:290,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:291,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:292,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:292,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:293,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:294,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:294,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:295,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:296,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:296,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:297,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:298,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:298,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:299,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:300,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:300,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:301,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:306,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:307,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:309,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:309,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:313,1
    - Dst: DOMElement*::getPreviousSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:313,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:316,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:318,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:321,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:322,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:323,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:327,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:327,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:332,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:334,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:336,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:343,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:345,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:345,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:348,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:350,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 357
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 357
    functionName: getPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString*::addPoint
    - OGRPoint*::setX
    - OGRLineString*::getNumPoints
    - OGRPoint*::setY
    - OGRCircularString::OGRCircularString
    - OGRCompoundCurve*::addCurveDirectly
    - flatbuffers::vector_downward::release
    - DOMElement*::getFirstChild
    - DOMElement*::getPreviousSibling
    - OGRPoint::OGRPoint
    - OGRLineString*::empty
    - OGRPoint*::setZ
    - OGRLineString::OGRLineString
    - CPLAtof
    - cmpStr
    - DOMElement*::getNextSibling
    - OGRCompoundCurve::OGRCompoundCurve
    - CPLFree
    - dynamic_cast<DOMElement *>
    - getPoint
    - OGRLineString*::addPoint
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *getPolyline(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:362,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:362,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:366,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:368,1
    - Dst: getPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:369,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:371,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: getBoundary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - DOMElement*::getFirstChild
    - cmpStr
    - getPolyline
    - OGRCompoundCurve::OGRCompoundCurve
    - dynamic_cast<DOMElement *>
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *getBoundary(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:379,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:382,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:382,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:386,1
    - Dst: getBoundary
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:388,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:389,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:394,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:395,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 400
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 400
    functionName: getPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - DOMElement*::getFirstChild
    - cmpStr
    - OGRCurvePolygon::OGRCurvePolygon
    - getBoundary
    - OGRCurvePolygon*::addRingDirectly
    - DOMElement*::getNextSibling
    - dynamic_cast<DOMElement *>
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *getPolygon(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:404,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:413,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:416,1
    - Dst: getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:417,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:423,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:426,1
    - Dst: ILI2Reader::getArc
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:427,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:431,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:434,1
    - Dst: getPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:435,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:439,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:442,1
    - Dst: getPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:443,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:447,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:448,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:451,1
    - Dst: getPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:452,1
    - Dst: ILI2Reader::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:459,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:461,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:465,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:468,1
    - Dst: DOMElement*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:468,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - elem
    - type
    argTypes:
    - DOMElement*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 402
    functionDepth: 5
    functionLinenumber: 402
    functionLinenumberEnd: 472
    functionName: ILI2Reader::getGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryCollection*::addGeometryDirectly
    - ILI2Reader::getGeometry
    - OGRGeometryCollection::OGRGeometryCollection
    - cmpStr
    - getPolyline
    - ILI2Reader::getArc
    - getPolygon
    - DOMElement*::getNextSibling
    - dynamic_cast<DOMElement *>
    - getPoint
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *ILI2Reader::getGeometry(DOMElement *elem, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImdReader*::ReadModel
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:477,1
    - Dst: ImdReader*::featureDefnInfos::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:479,1
    - Dst: ImdReader*::featureDefnInfos::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:480,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:482,1
    - Dst: std::make_unique<OGRILI2Layer>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:482,1
    - Dst: FeatureDefnInfos::const_iterator::GetTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - poDS
    - poImdReader
    - modelFilename
    argTypes:
    - OGRILI2DataSource*
    - ImdReader*
    - char*
    constantsTouched: []
    func_position:
      end: 486
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 486
    functionName: ILI2Reader::ReadModel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRILI2Layer>
    - FeatureDefnInfos::const_iterator::GetTableDefnRef
    - push_back
    - ImdReader*::featureDefnInfos::begin
    - ImdReader*::ReadModel
    - ImdReader*::featureDefnInfos::end
    linkageType: ''
    returnType: int
    signature: "int ILI2Reader::ReadModel(OGRILI2DataSource *poDS, ImdReader *poImdReader,\n
      \                         const char *modelFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getGeometryTypeOfElem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:492,1
    - Dst: DOMNode*::getParentNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:495,1
    - Dst: DOMNode*::getParentNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:500,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:504,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:505,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:507,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:507,1
    - Dst: DOMNode*::getNodeName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: fieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - DOMNode*::getNodeName
    - DOMNode*::getParentNode
    - getGeometryTypeOfElem
    - CPLError
    - transcode
    linkageType: ''
    returnType: char
    signature: char *fieldName(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:514,1
    - Dst: DOMNode*::getNodeType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:516,1
    - Dst: DOMNode*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:517,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:519,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:520,1
    - Dst: getGeometryTypeOfElem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:521,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:524,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:525,1
    - Dst: ILI2Reader::setFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:528,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:533,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:535,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:537,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:539,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - featureDef
    - elem
    argTypes:
    - OGRFeatureDefn*
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: ILI2Reader::setFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 1
    functionsReached:
    - DOMElement*::getFirstChild
    - OGRFeatureDefn*::AddFieldDefn
    - CPLFree
    - DOMNode*::getNextSibling
    - CPLDebug
    - OGRFeatureDefn*::GetFieldIndex
    - DOMNode*::getNodeType
    - CPLAssert
    - getGeometryTypeOfElem
    - ILI2Reader::setFieldDefn
    - dynamic_cast<DOMElement *>
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::setFieldDefn(OGRFeatureDefn *featureDef, DOMElement
      *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:549,1
    - Dst: DOMNode*::getNodeType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:551,1
    - Dst: DOMNode*::getNextSibling
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:552,1
    - Dst: dynamic_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:554,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:555,1
    - Dst: getGeometryTypeOfElem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:556,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:559,1
    - Dst: DOMElement*::getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:560,1
    - Dst: ILI2Reader::SetFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:563,1
    - Dst: getREFValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:573,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:574,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:575,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:579,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:580,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:582,1
    - Dst: ILI2Reader::getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:589,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:594,1
    - Dst: OGRFeature*::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:599,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:603,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:604,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:609,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:613,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - feature
    - elem
    argTypes:
    - OGRFeature*
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 616
      start: 545
    functionDepth: 6
    functionLinenumber: 545
    functionLinenumberEnd: 616
    functionName: ILI2Reader::SetFieldValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 1
    functionsReached:
    - DOMElement*::getFirstChild
    - CPLFree
    - getREFValue
    - ILI2Reader::getGeometry
    - OGRFeature*::SetGeometryDirectly
    - DOMNode*::getNextSibling
    - CPLDebug
    - OGRGeometry*::getLinearGeometry
    - DOMNode*::getNodeType
    - CPLAssert
    - getGeometryTypeOfElem
    - ILI2Reader::SetFieldValues
    - OGRFeature*::SetField
    - push_back
    - OGRFeature*::GetGeomFieldDefnRef
    - dynamic_cast<DOMElement *>
    - OGRFeature*::SetGeomFieldDirectly
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::SetFieldValues(OGRFeature *feature, DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: IILI2Reader::~IILI2Reader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IILI2Reader::~IILI2Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILI2Reader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: ILI2Reader::ILI2Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - ILI2Reader::SetupParser
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::ILI2Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:634,1
    - Dst: ILI2Reader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:636,1
    - Dst: OGRDeinitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 640
    functionName: ILI2Reader::~ILI2Reader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - OGRDeinitializeXerces
    - CPLFree
    - ILI2Reader::CleanupParser
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::~ILI2Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:644,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 646
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 646
    functionName: ILI2Reader::SetSourceFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::SetSourceFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRInitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:653,1
    - Dst: ILI2Reader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:660,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:663,1
    - Dst: ILI2Handler::ILI2Handler
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:665,1
    - Dst: setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:667,1
    - Dst: setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:668,1
    - Dst: setLexicalHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:669,1
    - Dst: setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:670,1
    - Dst: setDTDHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:671,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:672,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:691,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:692,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:693,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:694,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:695,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 702
    functionName: ILI2Reader::SetupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 1
    functionsReached:
    - setErrorHandler
    - OGRInitializeXerces
    - setLexicalHandler
    - setFeature
    - setEntityResolver
    - XMLReaderFactory::createXMLReader
    - setDTDHandler
    - ILI2Handler::ILI2Handler
    - setContentHandler
    - OGR::transcode
    - flatbuffers::vector_downward::release
    - ILI2Reader::CleanupParser
    linkageType: ''
    returnType: int
    signature: int ILI2Reader::SetupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 716
    functionName: ILI2Reader::CleanupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILI2Reader::CleanupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:725,1
    - Dst: OGRCreateXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:729,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:734,1
    - Dst: parse
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:735,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:736,1
    - Dst: OGRDestroyXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:737,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:742,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:743,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:743,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:744,1
    - Dst: OGRDestroyXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:750,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:751,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:751,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:752,1
    - Dst: OGRDestroyXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:753,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:757,1
    - Dst: sort
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:759,1
    - Dst: unique
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:760,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:763,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:763,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:766,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:769,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 773
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 773
    functionName: ILI2Reader::SaveClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - end
    - empty
    - VSIFCloseL
    - OGRDestroyXercesInputSource
    - CPLDebug
    - OGRCreateXercesInputSource
    - getMessage
    - VSIFOpenL
    - unique
    - begin
    - CPLError
    - string::c_str
    - sort
    - parse
    - transcode
    linkageType: ''
    returnType: int
    signature: int ILI2Reader::SaveClasses(const char *pszFile = nullptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: '&ILI2Reader::GetLayers()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<OGRLayer>>
    signature: std::vector<std::unique_ptr<OGRLayer>> &ILI2Reader::GetLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:782,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 783
    functionName: ILI2Reader::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int ILI2Reader::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:787,1
    - Dst: rend
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:787,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:789,1
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:790,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:790,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 796
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 796
    functionName: ILI2Reader::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - rend
    - rbegin
    - cmpStr
    - auto::get
    - OGRFeatureDefn*::GetName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *ILI2Reader::GetLayer(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:800,1
    - Dst: DOMElement*::getTagName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:800,1
    - Dst: cpl::down_cast<OGRILI2Layer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:804,1
    - Dst: ILI2Reader::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:804,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:811,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:811,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:812,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:813,1
    - Dst: std::make_unique<OGRILI2Layer>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:815,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:817,1
    - Dst: OGRILI2Layer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:821,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:826,1
    - Dst: ILI2Reader::setFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:828,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:832,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:838,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:839,1
    - Dst: DOMElement*::getAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:839,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:843,1
    - Dst: ILI2Reader::SetFieldValues
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:846,1
    - Dst: OGRILI2Layer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:847,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:850,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - elem
    argTypes:
    - DOMElement*
    constantsTouched: []
    func_position:
      end: 853
      start: 798
    functionDepth: 7
    functionLinenumber: 798
    functionLinenumberEnd: 853
    functionName: ILI2Reader::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRILI2Layer>
    - CPLDebug
    - DOMElement*::getTagName
    - transcode
    - OGRFeatureDefn*::AddFieldDefn
    - DOMElement*::getAttribute
    - OGRFeatureDefn*::SetGeomType
    - CPLString::c_str
    - std::move
    - OGRILI2Layer*::AddFeature
    - ILI2Reader::GetLayer
    - OGRFeatureDefn::OGRFeatureDefn
    - cpl::down_cast<OGRILI2Layer *>
    - OGRFeature::OGRFeature
    - std::unique_ptr::get
    - OGRILI2Layer*::GetLayerDefn
    - ILI2Reader::SetFieldValues
    - OGRFeature*::SetField
    - push_back
    - ILI2Reader::setFieldDefn
    linkageType: ''
    returnType: int
    signature: int ILI2Reader::AddFeature(DOMElement *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILI2Reader::ILI2Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: CreateILI2Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached:
    - ILI2Reader::ILI2Reader
    linkageType: ''
    returnType: IILI2Reader
    signature: IILI2Reader *CreateILI2Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - IILI2Reader*
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: DestroyILI2Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DestroyILI2Reader(IILI2Reader *reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: OGRILI1Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili1.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRILI1Layer::GetGeomFieldInfos
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeomFieldInfos
    signature: GeomFieldInfos GetGeomFieldInfos()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRILI1DataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili1.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: OGRILI1DataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogr_ili1.h
    functionUses: 1
    functionsReached:
    - OGRILI1DataSource::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:26,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:31,1
    - Dst: OGRILI1DataSource::OGRILI1DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:39,1
    - Dst: OGRILI1DataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:41,1
    - Dst: OGRILI1DataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:43,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: OGRILI1DriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - OGRILI1DataSource*::Open
    - strstr
    - OGRILI1DataSource*::GetLayerCount
    - OGRILI1DataSource::OGRILI1DataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRILI1DriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:58,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:61,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:63,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:64,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:65,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:66,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:71,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:77,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 82
    functionName: RegisterOGRILI1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili1driver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRILI1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: GeomFieldInfo::GeomFieldInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeomFieldInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ~GeomFieldInfo()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~GeomFieldInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - GeomFieldInfo
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: GeomFieldInfo::GeomFieldInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - Reference
    linkageType: ''
    returnType: void
    signature: void GeomFieldInfo(const GeomFieldInfo &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:51,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - GeomFieldInfo
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: '&operator=(const GeomFieldInfo &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - Reference
    - Release
    linkageType: ''
    returnType: GeomFieldInfo
    signature: GeomFieldInfo &operator=(const GeomFieldInfo &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: GeomFieldInfo::GetGeomTableDefnRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetGeomTableDefnRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:67,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - geomTableIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: GeomFieldInfo::SetGeomTableDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - CPLAssert
    - Reference
    linkageType: ''
    returnType: void
    signature: void SetGeomTableDefn(OGRFeatureDefn *geomTableIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: FeatureDefnInfo::FeatureDefnInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FeatureDefnInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ~FeatureDefnInfo()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~FeatureDefnInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - FeatureDefnInfo
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: FeatureDefnInfo::FeatureDefnInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 2
    functionsReached:
    - Reference
    linkageType: ''
    returnType: void
    signature: void FeatureDefnInfo(const FeatureDefnInfo &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:111,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - other
    argTypes:
    - FeatureDefnInfo
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: '&operator=(const FeatureDefnInfo &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 0
    functionsReached:
    - Reference
    - Release
    linkageType: ''
    returnType: FeatureDefnInfo
    signature: FeatureDefnInfo &operator=(const FeatureDefnInfo &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: FeatureDefnInfo::GetTableDefnRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetTableDefnRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:128,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poTableDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: FeatureDefnInfo::SetTableDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/imdreader.h
    functionUses: 1
    functionsReached:
    - CPLAssert
    - Reference
    linkageType: ''
    returnType: void
    signature: void SetTableDefn(OGRFeatureDefn *poTableDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:36,1
    - Dst: DOMImplementationRegistry::getDOMImplementation
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:38,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:39,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:42,1
    - Dst: DOMImplementation*::createDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:43,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:44,1
    - Dst: getDocumentElement
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - poReader
    argTypes:
    - ILI2Reader*
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: ILI2Handler::ILI2Handler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 1
    functionsReached:
    - getDocumentElement
    - DOMImplementationRegistry::getDOMImplementation
    - DOMImplementation*::createDocument
    - OGR::transcode
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::ILI2Handler(ILI2Reader *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:53,1
    - Dst: removeChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:56,1
    - Dst: getFirstChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:57,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: ILI2Handler::~ILI2Handler()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached:
    - release
    - removeChild
    - getFirstChild
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::~ILI2Handler()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: ILI2Handler::startDocument
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::startDocument()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ILI2Handler::endDocument
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::endDocument()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmpStr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:85,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:85,1
    - Dst: reinterpret_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:94,1
    - Dst: createElement
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:94,1
    - Dst: DOMElement*::setAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:99,1
    - Dst: Attributes::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:99,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:100,1
    - Dst: appendChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:101,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - qname
    - attrs
    argTypes:
    - XMLCh*
    - Attributes
    constantsTouched: []
    func_position:
      end: 106
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 106
    functionName: ILI2Handler::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached:
    - appendChild
    - reinterpret_cast<DOMElement *>
    - DOMElement*::setAttribute
    - Attributes::getQName
    - cmpStr
    - Attributes::getValue
    - createElement
    - OGR::transcode
    - flatbuffers::vector_downward::release
    linkageType: ''
    returnType: void
    signature: "void ILI2Handler::startElement(const XMLCh *const /* uri */,\n                               const
      XMLCh *const /* localname */,\n                               const XMLCh *const
      qname,\n                               const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getParentNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:120,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:122,1
    - Dst: removeChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:125,1
    - Dst: reinterpret_cast<DOMElement *>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:132,1
    - Dst: getParentNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - uri
    - localname
    - qname
    argTypes:
    - CPL_UNUSED*
    - CPL_UNUSED*
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: ILI2Handler::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached:
    - getParentNode
    - removeChild
    - reinterpret_cast<DOMElement *>
    - AddFeature
    linkageType: ''
    returnType: void
    signature: "void ILI2Handler::endElement(CPL_UNUSED const XMLCh *const uri,\n
      \                            CPL_UNUSED const XMLCh *const localname,\n                             CPL_UNUSED
      const XMLCh *const qname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:151,1
    - Dst: appendChild
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:152,1
    - Dst: createTextNode
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:152,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - chars
    - XMLSize_t
    argTypes:
    - XMLCh*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: ILI2Handler::characters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached:
    - trim
    - flatbuffers::vector_downward::release
    - appendChild
    - createTextNode
    linkageType: ''
    returnType: void
    signature: "void ILI2Handler::characters(const XMLCh *const chars,\n                             CPL_UNUSED
      const XMLSize_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: ILI2Handler::startEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached:
    - SAXNotSupportedException
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::startEntity(CPL_UNUSED const XMLCh *const name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ILI2Handler::fatalError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili2handler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILI2Handler::fatalError(const SAXParseException &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:28,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:34,1
    - Dst: OGRILI2DataSource::OGRILI2DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:43,1
    - Dst: OGRILI2DataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:45,1
    - Dst: OGRILI2DataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:47,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: OGRILI2DriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp
    functionUses: 0
    functionsReached:
    - OGRILI2DataSource::OGRILI2DataSource
    - strchr
    - strstr
    - OGRILI2DataSource*::GetLayerCount
    - OGRILI2DataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRILI2DriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:62,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:65,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:71,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:81,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: RegisterOGRILI2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2driver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRILI2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:28,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:28,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:29,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - poFeatureDefnIn
    - oGeomFieldInfosIn
    - poDSIn
    argTypes:
    - OGRFeatureDefn*
    - GeomFieldInfos
    - OGRILI2DataSource*
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: OGRILI2Layer::OGRILI2Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - Reference
    - GetName
    - begin
    linkageType: ''
    returnType: void
    signature: "void OGRILI2Layer::OGRILI2Layer(OGRFeatureDefn *poFeatureDefnIn,\n
      \                          const GeomFieldInfos &oGeomFieldInfosIn,\n                           OGRILI2DataSource
      *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:41,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:43,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: OGRILI2Layer::~OGRILI2Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRILI2Layer::~OGRILI2Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:57,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:57,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:57,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: OGRILI2Layer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - size
    - push_back
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: void OGRILI2Layer::AddFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: OGRILI2Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void OGRILI2Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:76,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:81,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:81,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:82,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: OGRILI2Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - end
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRILI2Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:96,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: OGRILI2Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRILI2Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:110,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: OGRILI2Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRILI2Layer::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: OGRILI2Layer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRILI2Layer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: IILI1Reader::~IILI1Reader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IILI1Reader::~IILI1Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ILI1Reader::ILI1Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILI1Reader::ILI1Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: ILI1Reader::~ILI1Reader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void ILI1Reader::~ILI1Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:63,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: ILI1Reader::OpenFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VSIFOpenL
    linkageType: ''
    returnType: int
    signature: int ILI1Reader::OpenFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topicname
    - tablename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: ILI1Reader::GetLayerNameString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *ILI1Reader::GetLayerNameString(const char *topicname,\n                                           const
      char *tablename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImdReader*::ReadModel
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:85,1
    - Dst: ImdReader*::featureDefnInfos::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:87,1
    - Dst: ImdReader*::featureDefnInfos::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:88,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:91,1
    - Dst: FeatureDefnInfos::const_iterator::GetTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:92,1
    - Dst: FeatureDefnInfos::const_iterator::GetTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:95,1
    - Dst: OGRILI1Layer::OGRILI1Layer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:95,1
    - Dst: ILI1Reader::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:96,1
    - Dst: FeatureDefnInfos::const_iterator::poGeomFieldInfos::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:98,1
    - Dst: FeatureDefnInfos::const_iterator::poGeomFieldInfos::end
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:99,1
    - Dst: GeomFieldInfos::const_iterator::second::GetGeomTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:101,1
    - Dst: GeomFieldInfos::const_iterator::second::GetGeomTableDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:104,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:106,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:109,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:112,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:114,1
    - Dst: OGRILI1Layer::OGRILI1Layer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:117,1
    - Dst: ILI1Reader::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:118,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:124,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:126,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - poImdReader
    - pszModelFilename
    - poDS
    argTypes:
    - ImdReader*
    - char*
    - OGRILI1DataSource*
    constantsTouched: []
    func_position:
      end: 132
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 132
    functionName: ILI1Reader::ReadModel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetName
    - OGRFeatureDefn*::GetGeomFieldDefn
    - FeatureDefnInfos::const_iterator::GetTableDefnRef
    - FeatureDefnInfos::const_iterator::poGeomFieldInfos::begin
    - OGRGeomFieldDefn*::GetNameRef
    - ILI1Reader::AddLayer
    - CPLDebug
    - GeomFieldInfos::const_iterator::second::GetGeomTableDefnRef
    - OGRILI1Layer::OGRILI1Layer
    - ImdReader*::featureDefnInfos::begin
    - ImdReader*::ReadModel
    - ImdReader*::featureDefnInfos::end
    - FeatureDefnInfos::const_iterator::poGeomFieldInfos::end
    linkageType: ''
    returnType: int
    signature: "int ILI1Reader::ReadModel(ImdReader *poImdReader, const char *pszModelFilename,\n
      \                         OGRILI1DataSource *poDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILI1Reader::ReadParseLine
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:144,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:149,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:153,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:158,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:165,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:168,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:168,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:170,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:171,1
    - Dst: CSLGetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:171,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:173,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:173,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:177,1
    - Dst: ILI1Reader::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:178,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:182,1
    - Dst: ILI1Reader::GetLayerNameString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:187,1
    - Dst: CSLGetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:187,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:186,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:188,1
    - Dst: OGRILI1Layer::OGRILI1Layer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:191,1
    - Dst: ILI1Reader::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:192,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:196,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:199,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:200,1
    - Dst: ILI1Reader::ReadTable
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:205,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:207,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:213,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:215,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:221,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:225,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:229,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:230,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 233
    functionName: ILI1Reader::ReadFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached:
    - ILI1Reader::GetLayerByName
    - CPLDebug
    - ILI1Reader::ReadTable
    - CPLError
    - CPLStrdup
    - OGRFeatureDefn*::SetGeomType
    - ILI1Reader::ReadParseLine
    - CSLCount
    - GetLayerDefn
    - STARTS_WITH_CI
    - OGRFeatureDefn::OGRFeatureDefn
    - ILI1Reader::GetLayerNameString
    - OGRILI1Layer::OGRILI1Layer
    - CPLFree
    - CPLReadLineL
    - CSLGetField
    - ILI1Reader::AddLayer
    - CSLDestroy
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int ILI1Reader::ReadFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:241,1
    - Dst: ILI1Reader::ReadParseLine
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:248,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:250,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:253,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:255,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:260,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:263,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:269,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:273,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:280,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:282,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:285,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:299,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:300,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:304,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:306,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:309,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:317,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:319,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:320,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:323,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:323,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:324,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:325,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:328,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:332,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:332,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:341,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:346,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:347,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:346,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:348,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:351,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:354,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:359,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:360,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:361,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:359,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:362,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:369,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:371,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:374,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:374,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:375,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:378,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:381,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:381,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:383,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:387,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:392,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:393,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:398,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:399,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:401,1
    - Dst: ILI1Reader::ReadGeom
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:404,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:408,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:410,1
    - Dst: ILI1Reader::ReadParseLine
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:411,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:416,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:417,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:419,1
    - Dst: ILI1Reader::ReadGeom
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:425,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:427,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:428,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:429,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:436,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:440,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 94
    argCount: 1
    argNames:
    - layername
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 447
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 447
    functionName: ILI1Reader::ReadTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldAsInteger64
    - CPLDebug
    - AddFeature
    - CPLError
    - OGRFeature*::SetGeomFieldDirectly
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::GetGeomFieldDefn
    - CPLString::substr
    - ILI1Reader::ReadParseLine
    - CPLString::c_str
    - CPLString::size
    - OGRPoint::OGRPoint
    - CSLCount
    - OGRFeatureDefn*::GetName
    - CPLAtof
    - GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldIndex
    - snprintf
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - ILI1Reader::ReadGeom
    - CSLDestroy
    - EQUAL
    - OGRFeature*::SetField
    - GetFeatureCount
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: int
    signature: int ILI1Reader::ReadTable(CPL_UNUSED const char *layername)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:453,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:454,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:458,1
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:464,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:470,1
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:474,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:477,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:478,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:478,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:479,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:479,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:481,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:482,1
    - Dst: ILI1Reader::ReadParseLine
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:490,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:497,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:497,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:499,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:499,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:500,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:500,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:503,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:511,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:516,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:518,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:518,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:521,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:523,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:527,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:530,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:533,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:537,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:540,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:541,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:542,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:542,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:543,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:543,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:544,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:546,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:548,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:550,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:554,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:557,1
    - Dst: OGRCompoundCurve*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:562,1
    - Dst: OGRMultiCurve*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:570,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:573,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:584,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:595,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:603,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:607,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:613,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:617,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:626,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:631,1
    - Dst: OGRMultiCurve*::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:632,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:638,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:643,1
    - Dst: OGRCurvePolygon*::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:643,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:649,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 4
    argNames:
    - stgeom
    - geomIdx
    - eType
    - feature
    argTypes:
    - char**
    - int
    - OGRwkbGeometryType
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 651
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 651
    functionName: ILI1Reader::ReadGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 1
    functionsReached:
    - OGRCompoundCurve*::IsEmpty
    - OGRCircularString*::addPoint
    - OGRPoint::setX
    - OGRPoint::setY
    - CPLDebug
    - OGRLineString*::getNumPoints
    - OGRCircularString::OGRCircularString
    - CPLError
    - OGRCompoundCurve*::addCurveDirectly
    - OGRFeature*::SetGeomFieldDirectly
    - ILI1Reader::ReadParseLine
    - OGRPoint::OGRPoint
    - OGRLineString*::empty
    - CSLCount
    - OGRMultiCurve*::addGeometryDirectly
    - OGRLineString::OGRLineString
    - CPLAtof
    - OGRCurvePolygon*::addRingDirectly
    - OGRMultiCurve*::getLinearGeometry
    - OGRCompoundCurve::OGRCompoundCurve
    - CPLFree
    - OGRLineString*::addPoint
    - OGRMultiCurve::OGRMultiCurve
    - OGRGeometryTypeToName
    - CSLDestroy
    - OGRCurvePolygon::OGRCurvePolygon
    - EQUAL
    - OGRCurvePolygon*::getLinearGeometry
    linkageType: ''
    returnType: void
    signature: "void ILI1Reader::ReadGeom(char **stgeom, int geomIdx, OGRwkbGeometryType
      eType,\n                          OGRFeature *feature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRILI1Layer **>
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:662,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poNewLayer
    argTypes:
    - OGRILI1Layer*
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: ILI1Reader::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 2
    functionsReached:
    - CPLRealloc
    - static_cast<OGRILI1Layer **>
    linkageType: ''
    returnType: void
    signature: void ILI1Reader::AddLayer(OGRILI1Layer *poNewLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: ILI1Reader::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRILI1Layer
    signature: OGRILI1Layer *ILI1Reader::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:686,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 690
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 690
    functionName: ILI1Reader::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - GetLayerDefn
    linkageType: ''
    returnType: OGRILI1Layer
    signature: OGRILI1Layer *ILI1Reader::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 700
    functionName: ILI1Reader::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ILI1Reader::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:709,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:717,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:724,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:730,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:733,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:733,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:734,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:736,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:742,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:745,1
    - Dst: CSLInsertStrings
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:750,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:751,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:753,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:757,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 761
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 761
    functionName: ILI1Reader::ReadParseLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 3
    functionsReached:
    - CPLReadLineL
    - CSLInsertStrings
    - CSLDestroy
    - EQUAL
    - CPLAssert
    - strlen
    - CSLCount
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **ILI1Reader::ReadParseLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILI1Reader::ILI1Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: CreateILI1Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 1
    functionsReached:
    - ILI1Reader::ILI1Reader
    linkageType: ''
    returnType: IILI1Reader
    signature: IILI1Reader *CreateILI1Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - IILI1Reader*
    constantsTouched: []
    func_position:
      end: 772
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 772
    functionName: DestroyILI1Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ili1reader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DestroyILI1Reader(IILI1Reader *reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImdReader::ImdReader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: OGRILI2DataSource::OGRILI2DataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp
    functionUses: 1
    functionsReached:
    - ImdReader::ImdReader
    linkageType: ''
    returnType: void
    signature: void OGRILI2DataSource::OGRILI2DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:44,1
    - Dst: DestroyILI2Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: OGRILI2DataSource::~OGRILI2DataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp
    functionUses: 0
    functionsReached:
    - DestroyILI2Reader
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRILI2DataSource::~OGRILI2DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:62,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:65,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:73,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:81,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:84,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:89,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:93,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:114,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:117,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:126,1
    - Dst: CreateILI2Reader
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:131,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:139,1
    - Dst: ReadModel
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:140,1
    - Dst: SetSourceFile
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:142,1
    - Dst: SaveClasses
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:144,1
    - Dst: GetLayers
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:146,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:147,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - pszNewName
    - papszOpenOptionsIn
    - bTestOpen
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 150
    functionName: OGRILI2DataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - VSIFCloseL
    - ResetReading
    - CSLDestroy
    - ReadModel
    - SaveClasses
    - VSIFOpenL
    - GetLayers
    - strstr
    - CPLError
    - CreateILI2Reader
    - SetSourceFile
    - CPLString::empty
    - CSLFetchNameValue
    linkageType: ''
    returnType: int
    signature: "int OGRILI2DataSource::Open(const char *pszNewName, char **papszOpenOptionsIn,\n
      \                           int bTestOpen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: OGRILI2DataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRILI2DataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayers
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:175,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: OGRILI2DataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ili/ogrili2datasource.cpp
    functionUses: 0
    functionsReached:
    - get
    - GetLayers
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRILI2DataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: OGRCARTODataSource::OGRCARTODataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCARTODataSource::OGRCARTODataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:38,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:43,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:44,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:45,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:45,1
    - Dst: OGRCARTODataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:45,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: OGRCARTODataSource::~OGRCARTODataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLHTTPFetch
    - CSLDestroy
    - CPLSPrintf
    - OGRCARTODataSource::GetAPIURL
    - CPLHTTPDestroyResult
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: void OGRCARTODataSource::~OGRCARTODataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:59,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:61,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:63,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: OGRCARTODataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRCARTODataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: OGRCARTODataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRCARTODataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:97,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:100,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pszFilename
    - pszOptionName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: OGRCARTOGetOptionValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - CPLString::size
    - CPLString::resize
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRCARTOGetOptionValue(const char *pszFilename,\n                                        const
      char *pszOptionName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:112,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:113,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:114,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:115,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:116,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:120,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:122,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:122,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:125,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:126,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:126,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:128,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:134,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:139,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:141,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:142,1
    - Dst: OGRCARTOGetOptionValue
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:144,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:153,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:153,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:154,1
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:156,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:159,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:162,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:164,1
    - Dst: OGRCARTODataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:168,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:170,1
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:179,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:182,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:185,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:188,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:192,1
    - Dst: OGRCARTODataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:196,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:200,1
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:202,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:239,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:244,1
    - Dst: OGRCARTOTableLayer::OGRCARTOTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:247,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:249,1
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:253,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:257,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:259,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:261,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:264,1
    - Dst: OGRCARTOTableLayer::OGRCARTOTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:264,1
    - Dst: OGRCARTODataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:268,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:277,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:280,1
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:281,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:285,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:287,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:289,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:293,1
    - Dst: OGRCARTOTableLayer::OGRCARTOTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:292,1
    - Dst: OGRCARTODataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:297,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    - bUpdateIn
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 304
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 304
    functionName: OGRCARTODataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - OGRCARTODataSource::ReleaseResultSet
    - OGRCARTOTableLayer::OGRCARTOTableLayer
    - CPLError
    - CPLGetConfigOption
    - CPLString::empty
    - CPL_TO_BOOL
    - CSLFetchNameValue
    - CPLStrdup
    - OGRCARTODataSource::ExecuteSQLInternal
    - OGRCARTOGetOptionValue
    - CPLRealloc
    - strlen
    - OGRCARTOEscapeLiteral
    - CPLTestBool
    - STARTS_WITH_CI
    - CPLString::Printf
    - OGRFeature*::GetFieldCount
    - empty
    - CSLFetchNameValueDef
    - CSLDestroy
    linkageType: ''
    returnType: int
    signature: "int OGRCARTODataSource::Open(const char *pszFilename, char **papszOpenOptionsIn,\n
      \                            int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:317,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: OGRCARTODataSource::GetAPIURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *OGRCARTODataSource::GetAPIURL() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:338,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:340,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:347,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:350,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:353,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:356,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:356,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:366,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 377
      start: 326
    functionDepth: 7
    functionLinenumber: 326
    functionLinenumberEnd: 377
    functionName: OGRCARTODataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - atoi
    - OGRSpatialReference::GetAuthorityName
    - EQUAL
    - OGRSpatialReference::AutoIdentifyEPSG
    - strlen
    linkageType: ''
    returnType: int
    signature: int OGRCARTODataSource::FetchSRSId(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:390,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:395,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:409,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:409,1
    - Dst: SetDropOnCreation
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:415,1
    - Dst: OGRCARTODataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:416,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:420,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:431,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:435,1
    - Dst: OGRCARTOTableLayer::OGRCARTOTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:438,1
    - Dst: OGRCARTOTableLayer*::SetDropOnCreation
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:452,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:460,1
    - Dst: OGRCARTOTableLayer*::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:469,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:469,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:474,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:475,1
    - Dst: OGRCARTOTableLayer*::SetDeferredCreation
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:477,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:479,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:480,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - pszNameIn
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 485
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 485
    functionName: OGRCARTODataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOTableLayer*::SetDropOnCreation
    - CPLFree
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRCARTODataSource::DeleteLayer
    - CPLFetchBool
    - OGRCARTOTableLayer*::SetLaunderFlag
    - OGRGeomFieldDefn*::GetType
    - EQUAL
    - OGRSpatialReference*::Release
    - CPLRealloc
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRCARTOTableLayer::OGRCARTOTableLayer
    - CPLError
    - OGRCARTOTableLayer*::SetDeferredCreation
    - SetDropOnCreation
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRCARTODataSource::ICreateLayer(const char *pszNameIn,\n
      \                                const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:495,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:502,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:512,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:514,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:514,1
    - Dst: CancelDeferredCreation
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:518,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:520,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:524,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:530,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:531,1
    - Dst: OGRCARTODataSource::RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:533,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:536,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 540
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 540
    functionName: OGRCARTODataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - CPLString::empty
    - CPLString::Printf
    - CPLDebug
    - json_object_put
    - CPLString::c_str
    - OGRCARTODataSource::RunSQL
    - CPLError
    - OGRCARTOEscapeIdentifier
    - memmove
    - CancelDeferredCreation
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTODataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:550,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: OGRCARTODataSource::AddHTTPOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char **OGRCARTODataSource::AddHTTPOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:568,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:570,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:574,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:576,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:583,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:586,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:588,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:606,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:607,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:610,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:619,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:622,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:624,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:629,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:634,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:640,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:646,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:648,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:650,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:654,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:658,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:660,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:662,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:663,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:665,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:669,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:671,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:672,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:679,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - pszSQL
    - pszCopyFile
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 685
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 685
    functionName: OGRCARTODataSource::RunCopyFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - empty
    - CPLHTTPFetch
    - json_object_get_string
    - CSLDestroy
    - json_object_get_type
    - CPLDebug
    - json_object_put
    - strlen
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    - CPLFree
    - OGRJSonParse
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: "json_object *OGRCARTODataSource::RunCopyFrom(const char *pszSQL,\n
      \                                            const char *pszCopyFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:701,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:707,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:720,1
    - Dst: OGRCARTODataSource::GetAPIURL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:720,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:721,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:730,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:732,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:733,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:740,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:745,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:751,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:755,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:756,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:760,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:762,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:766,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:770,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:772,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:774,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:775,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:777,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:779,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:781,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:783,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:784,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:791,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 1
    argNames:
    - pszUnescapedSQL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 797
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 797
    functionName: OGRCARTODataSource::RunSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - empty
    - CPLHTTPFetch
    - json_object_get_string
    - CSLDestroy
    - json_object_get_type
    - CPLSPrintf
    - OGRCARTODataSource::GetAPIURL
    - CPLDebug
    - json_object_put
    - strlen
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    - OGRJSonParse
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRCARTODataSource::RunSQL(const char *pszUnescapedSQL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:810,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:811,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:812,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:817,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 825
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 825
    functionName: OGRCARTOGetSingleRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - json_object_get_type
    - CPL_json_object_object_get
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRCARTOGetSingleRow(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTODataSource::ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 837
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 837
    functionName: OGRCARTODataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTODataSource::ExecuteSQLInternal
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRCARTODataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                        OGRGeometry *poSpatialFilter,\n                                         const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:849,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:850,1
    - Dst: FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:850,1
    - Dst: RunDeferredCartofy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:851,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:862,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:863,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:869,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:878,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:878,1
    - Dst: OGRCARTODataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:880,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:887,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:888,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:889,1
    - Dst: OGRCARTODataSource::RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:891,1
    - Dst: OGRCARTOResultLayer::OGRCARTOResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:895,1
    - Dst: OGRCARTOResultLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:898,1
    - Dst: OGRCARTOResultLayer*::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp:900,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    - bRunDeferredActions
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 907
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 907
    functionName: OGRCARTODataSource::ExecuteSQLInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 2
    functionsReached:
    - STARTS_WITH_CI
    - OGRCARTOResultLayer::OGRCARTOResultLayer
    - RunDeferredCartofy
    - OGRCARTODataSource::DeleteLayer
    - RunDeferredCreationIfNecessary
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - EQUAL
    - OGRCARTODataSource::RunSQL
    - CPL_IGNORE_RET_VAL
    - OGRCARTOResultLayer*::SetSpatialFilter
    - OGRCARTOResultLayer*::IsOK
    - FlushDeferredBuffer
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRCARTODataSource::ExecuteSQLInternal(const char *pszSQLCommand,\n
      \                                                OGRGeometry *poSpatialFilter,\n
      \                                                const char *pszDialect,\n                                                 bool
      bRunDeferredActions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: OGRCARTODataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCARTODataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:24,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRCartoDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRCartoDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 88
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 88
    functionName: OGRCartoDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRCartoDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:97,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:101,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:103,1
    - Dst: OGRCartoDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:106,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: DeclareDeferredOGRCartoPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - OGRCartoDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRCartoPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: OGRCartoGeomFieldDefn::~OGRCartoGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCartoGeomFieldDefn::~OGRCartoGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRCARTODataSource*
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: OGRCARTOLayer::OGRCARTOLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCARTOLayer::OGRCARTOLayer(OGRCARTODataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:38,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: OGRCARTOLayer::~OGRCARTOLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRCARTOLayer::~OGRCARTOLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: OGRCARTOLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRCARTOLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefnInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: OGRCARTOLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefnInternal
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRCARTOLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:78,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:81,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:83,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:86,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:88,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:90,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:90,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:95,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:98,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:100,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:101,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:104,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:106,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:108,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:111,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:111,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:114,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:119,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:119,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:122,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:123,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:125,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:125,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:127,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:129,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:129,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:133,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:136,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:137,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:138,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:140,1
    - Dst: OGRGeometryFromHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:142,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:143,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:145,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:146,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:147,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - poRowObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 152
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 152
    functionName: OGRCARTOLayer::BuildFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - OGRParseXMLDateTime
    - GetGeomFieldDefn
    - GetFieldDefn
    - GetGeomFieldCount
    - OGRFeature*::SetGeomFieldDirectly
    - CPL_json_object_object_get
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeometryFromHexEWKB
    - json_object_get_double
    - json_object_get_type
    - GetFieldCount
    - json_object_get_string
    - OGRFeature::OGRFeature
    - empty
    - OGRFeature*::SetField
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOLayer::BuildFeature(json_object *poRowObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:161,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:162,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:165,1
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:165,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:167,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: OGRCARTOLayer::FetchNewFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::ifind
    - GetFeaturesToFetch
    - CPLSPrintf
    - RunSQL
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRCARTOLayer::FetchNewFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:183,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:189,1
    - Dst: OGRCARTOLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:191,1
    - Dst: OGRCARTOLayer::FetchNewFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:194,1
    - Dst: GetLayerDefnInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:203,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:206,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:208,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:209,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:211,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:217,1
    - Dst: static_cast<decltype(nFetchedObjects)>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:220,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:221,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:225,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:227,1
    - Dst: OGRCARTOLayer::BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:231,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 236
    functionName: OGRCARTOLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - GetFeaturesToFetch
    - json_object_array_length
    - static_cast<decltype(nFetchedObjects)>
    - OGRCARTOLayer::GetLayerDefn
    - empty
    - OGRCARTOLayer::BuildFeature
    - OGRFeature*::GetFID
    - json_object_get_type
    - GetLayerDefnInternal
    - OGRCARTOLayer::FetchNewFeatures
    - json_object_put
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:248,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:253,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:253,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: OGRCARTOLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRCARTOLayer::GetNextRawFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: OGRCARTOLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRCARTOLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:282,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:283,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:284,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:300,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:300,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:306,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:313,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:315,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:318,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:330,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:332,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:334,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:337,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:338,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:339,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:344,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:346,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:356,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:357,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:365,1
    - Dst: std::make_unique<OGRCartoGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:368,1
    - Dst: OGRCARTOLayer::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:371,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:374,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:375,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:377,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:380,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:383,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:384,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:388,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:392,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:396,1
    - Dst: std::make_unique<OGRCartoGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:400,1
    - Dst: OGRCARTOLayer::GetSRS
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:403,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:406,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:407,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:409,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:409,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:414,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 2
    argNames:
    - pszLayerName
    - poObjIn
    argTypes:
    - char*
    - json_object*
    constantsTouched: []
    func_position:
      end: 415
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 415
    functionName: OGRCARTOLayer::EstablishLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOLayer::GetSRS
    - CPLDebug
    - OGRSpatialReference*::Release
    - Reference
    - CPL_json_object_object_get
    - std::make_unique<OGRCartoGeomFieldDefn>
    - SetGeomType
    - std::move
    - AddFieldDefn
    - c_str
    - CPLString::Printf
    - OGRFeatureDefn::OGRFeatureDefn
    - json_object_get_type
    - OGRFieldDefn::SetSubType
    - auto::SetSpatialRef
    - AddGeomFieldDefn
    - json_object_put
    - EQUAL
    - RunSQL
    linkageType: ''
    returnType: void
    signature: "void OGRCARTOLayer::EstablishLayerDefn(const char *pszLayerName,\n
      \                                      json_object *poObjIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:423,1
    - Dst: GetSRS_SQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:423,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:424,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:428,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:432,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:433,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:435,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:438,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:441,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:444,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:445,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:446,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pszGeomCol
    - pnSRID
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 455
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 455
    functionName: OGRCARTOLayer::GetSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 1
    functionsReached:
    - GetSRS_SQL
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - json_object_get_type
    - OGRSpatialReference*::importFromWkt
    - json_object_put
    - json_object_get_int
    - RunSQL
    - OGRCARTOGetSingleRow
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRCARTOLayer::GetSRS(const char *pszGeomCol,
      int *pnSRID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: OGRCARTOLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartolayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCARTOLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszNameIn
    - eType
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: OGRCartoGeomFieldDefn::OGRCartoGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCartoGeomFieldDefn(const char *pszNameIn, OGRwkbGeometryType
      eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:86,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:95,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:95,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 98
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - CPLGetConfigOption
    - atoi
    linkageType: ''
    returnType: class OGRCARTOLayer
    signature: class OGRCARTOLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: OGRCARTOTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: OGRCARTOTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: OGRCARTOTableLayer::GetDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetDeferredCreation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: OGRCARTOTableLayer::CancelDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CancelDeferredCreation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: OGRCARTOTableLayer::SetDropOnCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDropOnCreation(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OGRCARTOTableLayer::GetDropOnCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetDropOnCreation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: OGRCARTODataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: OGRCARTODataSource::IsReadWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsReadWrite() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: OGRCARTODataSource::DoBatchInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DoBatchInsert() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: OGRCARTODataSource::DoCopyMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DoCopyMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: '&GetCurrentSchema()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetCurrentSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: OGRCARTODataSource::IsAuthenticatedConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int IsAuthenticatedConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: OGRCARTODataSource::HasOGRMetadataFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasOGRMetadataFunction()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: OGRCARTODataSource::SetOGRMetadataFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOGRMetadataFunction(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: OGRCARTODataSource::GetPostGISMajor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPostGISMajor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: OGRCARTODataSource::GetPostGISMinor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogr_carto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPostGISMinor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCartoDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:29,1
    - Dst: OGRCARTODataSource::OGRCARTODataSource
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:32,1
    - Dst: OGRCARTODataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: OGRCartoDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp
    functionUses: 0
    functionsReached:
    - OGRCartoDriverIdentify
    - OGRCARTODataSource::OGRCARTODataSource
    - OGRCARTODataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCartoDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTODataSource::OGRCARTODataSource
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:56,1
    - Dst: OGRCARTODataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:58,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: OGRCartoDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCARTODataSource*::Open
    - OGRCARTODataSource::OGRCARTODataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRCartoDriverCreate(const char *pszName,\n                                         CPL_UNUSED
      int nBands,\n                                         CPL_UNUSED int nXSize,\n
      \                                        CPL_UNUSED int nYSize,\n                                         CPL_UNUSED
      GDALDataType eDT,\n                                         CPL_UNUSED char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:76,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:79,1
    - Dst: OGRCartoDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:80,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: RegisterOGRCarto
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartodriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - OGRCartoDriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRCarto()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poDSIn
    - pszRawQueryIn
    argTypes:
    - OGRCARTODataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: OGRCARTOResultLayer::OGRCARTOResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 1
    functionsReached:
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRCARTOResultLayer::OGRCARTOResultLayer(OGRCARTODataSource *poDSIn,\n
      \                                        const char *pszRawQueryIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: OGRCARTOResultLayer::~OGRCARTOResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCARTOResultLayer::~OGRCARTOResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poObjIn
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: OGRCARTOResultLayer::GetLayerDefnInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 0
    functionsReached:
    - EstablishLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRCARTOResultLayer::GetLayerDefnInternal(json_object
      *poObjIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: OGRCARTOResultLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOResultLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:73,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:74,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: OGRCARTOResultLayer::IsOK
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 0
    functionsReached:
    - GetNextFeature
    - CPLErrorReset
    - CPLGetLastErrorType
    linkageType: ''
    returnType: bool
    signature: bool OGRCARTOResultLayer::IsOK()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:103,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:103,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:107,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:109,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszGeomCol
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 113
    functionName: OGRCARTOResultLayer::GetSRS_SQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartoresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOEscapeIdentifier
    - CPLString::Printf
    - c_str
    - CPLString::c_str
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOResultLayer::GetSRS_SQL(const char *pszGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:32,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: OGRCARTOEscapeIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 2
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOEscapeIdentifier(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: OGRCARTOEscapeLiteralCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOEscapeLiteralCopy(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:82,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: OGRCARTOEscapeLiteral
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOEscapeLiteral(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRCartoGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:96,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:97,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:102,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:102,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:103,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:103,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:105,1
    - Dst: OGRMultiPolygon*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:106,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:107,1
    - Dst: GetPostGISMajor
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:108,1
    - Dst: GetPostGISMinor
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:108,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:112,1
    - Dst: GetPostGISMajor
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:112,1
    - Dst: GetPostGISMinor
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - poGeom
    - i
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: OGRCARTOTableLayer::OGRCARTOGetHexGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::addGeometry
    - GetPostGISMinor
    - GetGeomFieldDefn
    - cpl::down_cast<OGRCartoGeomFieldDefn *>
    - OGRGeometryToHexEWKB
    - GetGeomType
    - OGRMultiPolygon::OGRMultiPolygon
    - GetPostGISMajor
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: char
    signature: char *OGRCARTOTableLayer::OGRCARTOGetHexGeometry(OGRGeometry *poGeom,
      int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:125,1
    - Dst: DoBatchInsert
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:127,1
    - Dst: DoCopyMode
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:128,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:133,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:133,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - poDSIn
    - pszName
    argTypes:
    - OGRCARTODataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: OGRCARTOTableLayer::OGRCARTOTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - DoBatchInsert
    - DoCopyMode
    - SetDescription
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void OGRCARTOTableLayer::OGRCARTOTableLayer(OGRCARTODataSource *poDSIn,\n
      \                                      const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:148,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:149,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:149,1
    - Dst: OGRCARTOTableLayer::RunDeferredCartofy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: OGRCARTOTableLayer::~OGRCARTOTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOTableLayer::RunDeferredCartofy
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - CPL_IGNORE_RET_VAL
    linkageType: ''
    returnType: void
    signature: void OGRCARTOTableLayer::~OGRCARTOTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsAuthenticatedConnection
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:164,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:167,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:190,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:191,1
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:191,1
    - Dst: HasOGRMetadataFunction
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:193,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:195,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:197,1
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:197,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:198,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:201,1
    - Dst: IsAuthenticatedConnection
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:203,1
    - Dst: HasOGRMetadataFunction
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:204,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:205,1
    - Dst: ExecuteSQLInternal
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:206,1
    - Dst: IsAuthenticatedConnection
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:207,1
    - Dst: HasOGRMetadataFunction
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:208,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:210,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:213,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:215,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:217,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:219,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:221,1
    - Dst: SetOGRMetadataFunction
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:224,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:229,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:237,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:238,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:260,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:264,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:265,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:272,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:284,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:286,1
    - Dst: std::make_unique<OGRCartoGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:288,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:291,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:294,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:295,1
    - Dst: auto::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:298,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:306,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:307,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:311,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:311,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:317,1
    - Dst: OGRPGCommonLayerSetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:318,1
    - Dst: OGRPGCommonLayerNormalizeDefault
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:321,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:324,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:330,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:336,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:337,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:338,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:342,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:345,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:347,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:349,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:353,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:354,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:356,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:358,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:362,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:363,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:365,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:368,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 96
    argCount: 1
    argNames:
    - json_object *poObjIn
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 373
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 373
    functionName: OGRCARTOTableLayer::GetLayerDefnInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::importFromWkt
    - OGRLayer*::GetNextFeature
    - GetGeomFieldDefn
    - GetCurrentSchema
    - CPLDebug
    - wkbSetZ
    - OGRPGCommonLayerNormalizeDefault
    - HasOGRMetadataFunction
    - Reference
    - strcmp
    - OGRFieldDefn::SetNullable
    - GetFieldDefn
    - OGRFromOGCGeomType
    - GetGeomFieldCount
    - CPLString::empty
    - CPLErrorReset
    - std::make_unique<OGRCartoGeomFieldDefn>
    - SetGeomType
    - IsAuthenticatedConnection
    - CPLPopErrorHandler
    - std::move
    - OGRPGCommonLayerSetType
    - OGRCARTOEscapeLiteral
    - OGRLayer*::GetLayerDefn
    - AddFieldDefn
    - SetOGRMetadataFunction
    - EstablishLayerDefn
    - CPLString::Printf
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - ExecuteSQLInternal
    - ReleaseResultSet
    - auto::SetSpatialRef
    - OGRCARTOEscapeIdentifier
    - auto::SetAxisMappingStrategy
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - AddGeomFieldDefn
    - EQUAL
    - Printf
    - auto::SetNullable
    - CPLPushErrorHandler
    - auto::Release
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: 'OGRFeatureDefn *

      OGRCARTOTableLayer::GetLayerDefnInternal(CPL_UNUSED json_object *poObjIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:381,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:384,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:386,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:387,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:387,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:387,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:388,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:389,1
    - Dst: GetFeaturesToFetch
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:390,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:391,1
    - Dst: OGRCARTOLayer::FetchNewFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: OGRCARTOTableLayer::FetchNewFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetFeaturesToFetch
    - c_str
    - empty
    - CPLString::Printf
    - CPLSPrintf
    - OGRCARTOLayer::FetchNewFeatures
    - RunSQL
    - OGRCARTOEscapeIdentifier
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRCARTOTableLayer::FetchNewFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:403,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:405,1
    - Dst: OGRCARTOLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: OGRCARTOTableLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - OGRCARTOLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOTableLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:417,1
    - Dst: OGRCARTOTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:428,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: OGRCARTOTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRCARTOTableLayer::BuildWhere
    - ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:445,1
    - Dst: OGRCARTOTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:447,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 453
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 453
    functionName: OGRCARTOTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - InstallFilter
    - OGRCARTOTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::ISetSpatialFilter(int iGeomField,\n                                             const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:467,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:468,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:469,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:471,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:473,1
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:473,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:474,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:476,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: OGRCARTOTableLayer::RunDeferredCartofy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::Printf
    - GetCurrentSchema
    - json_object_put
    - OGRCARTOEscapeLiteral
    - RunSQL
    linkageType: ''
    returnType: void
    signature: void OGRCARTOTableLayer::RunDeferredCartofy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCartoGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:488,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:492,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:492,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:496,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:500,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - poGeomField
    argTypes:
    - OGRCartoGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 510
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 510
    functionName: OGRCARTOGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - OGR_GT_HasM
    - OGRCartoGeomFieldDefn*::GetType
    - OGR_GT_HasZ
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOGeometryType(OGRCartoGeomFieldDefn *poGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::FlushDeferredCopy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:519,1
    - Dst: OGRCARTOTableLayer::FlushDeferredInsert
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bReset
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: OGRCARTOTableLayer::FlushDeferredBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRCARTOTableLayer::FlushDeferredCopy
    - OGRCARTOTableLayer::FlushDeferredInsert
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::FlushDeferredBuffer(bool bReset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:531,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:541,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - bReset
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 560
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 560
    functionName: OGRCARTOTableLayer::FlushDeferredInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - json_object_put
    - empty
    - RunSQL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::FlushDeferredInsert(bool bReset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:569,1
    - Dst: RunCopyFrom
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:574,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:577,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bReset
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 593
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 593
    functionName: OGRCARTOTableLayer::FlushDeferredCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - RunCopyFrom
    - clear
    - empty
    - json_object_put
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::FlushDeferredCopy(bool bReset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:605,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:610,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:613,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:619,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:621,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:629,1
    - Dst: std::make_unique<OGRCartoGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:635,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:635,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:637,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:638,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:640,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:643,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:644,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:645,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:646,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:653,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:654,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:657,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:660,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:662,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:663,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:663,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:673,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:675,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:676,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:676,1
    - Dst: OGRCARTOGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:677,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:677,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:678,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:681,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:684,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:687,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:687,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - poGeomFieldIn
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 689
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 689
    functionName: OGRCARTOTableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - OGRCARTOGeometryType
    - auto::SetType
    - OGRGeomFieldDefn*::IsNullable
    - auto::get
    - CPLError
    - GetGeomFieldCount
    - std::make_unique<OGRCartoGeomFieldDefn>
    - auto::Clone
    - std::move
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - auto::GetSpatialRef
    - auto::SetName
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - IsReadWrite
    - auto::SetSpatialRef
    - auto::GetNameRef
    - OGRCARTOEscapeIdentifier
    - CPLFree
    - auto::SetAxisMappingStrategy
    - AddGeomFieldDefn
    - json_object_put
    - EQUAL
    - auto::SetNullable
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - RunSQL
    - FetchSRSId
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::CreateGeomField(const OGRGeomFieldDefn
      *poGeomFieldIn,\n                                    CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:698,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:702,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:709,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:718,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:719,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:729,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:730,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:731,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:731,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:732,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:733,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:735,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:735,1
    - Dst: OGRPGCommonLayerGetPGDefault
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:738,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:741,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:744,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:747,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 750
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 750
    functionName: OGRCARTOTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - OGRFieldDefn::GetNameRef
    - OGRPGCommonLayerGetType
    - OGRFieldDefn::GetDefault
    - CPLString::Printf
    - OGRPGCommonLayerGetPGDefault
    - json_object_put
    - OGRFieldDefn::IsDefaultDriverSpecific
    - OGRFieldDefn::SetName
    - IsReadWrite
    - AddFieldDefn
    - RunSQL
    - CPLError
    - OGRCARTOEscapeIdentifier
    - CPLFree
    - OGRFieldDefn::IsNullable
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                      CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:762,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:767,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:769,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:775,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:783,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:784,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:785,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:786,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:789,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:792,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:794,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 795
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 795
    functionName: OGRCARTOTableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - DeleteFieldDefn
    - CPLString::Printf
    - GetFieldCount
    - json_object_put
    - RunSQL
    - IsReadWrite
    - GetFieldDefn
    - CPLError
    - OGRCARTOEscapeIdentifier
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:806,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:810,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:812,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:814,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:816,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:818,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:827,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:830,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:832,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:833,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:834,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:835,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:839,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:841,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:843,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:848,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:850,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:852,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:853,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:855,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:856,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:860,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:862,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:864,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:870,1
    - Dst: OGRCARTOTableLayer::ICreateFeatureCopy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:875,1
    - Dst: OGRCARTOTableLayer::ICreateFeatureInsert
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:878,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 880
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 880
    functionName: OGRCARTOTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - GetLayerDefn
    - OGRCARTOTableLayer::ICreateFeatureInsert
    - empty
    - CPLString::Printf
    - json_object_get_string
    - json_object_get_type
    - OGRCARTOTableLayer::ICreateFeatureCopy
    - json_object_put
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - IsReadWrite
    - OGRCARTOEscapeLiteral
    - RunSQL
    - CPLError
    - GetFieldIndex
    - OGRCARTOGetSingleRow
    - CPLString::empty
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:891,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:896,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:897,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:897,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:903,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:906,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:906,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:915,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:928,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:929,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:929,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:932,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:932,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:933,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:937,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:937,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:938,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:949,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:950,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:953,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:960,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:961,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:964,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:965,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:976,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:985,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:985,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:992,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:996,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1005,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1007,1
    - Dst: OGRCARTOEscapeLiteralCopy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1016,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1016,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1019,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1021,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1024,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1027,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1034,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1043,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1046,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1048,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1053,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1053,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1060,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1067,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1068,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1070,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1078,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1080,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 107
    argCount: 3
    argNames:
    - poFeature
    - bHasUserFieldMatchingFID
    - bHasJustGotNextFID
    argTypes:
    - OGRFeature*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1085
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 1085
    functionName: OGRCARTOTableLayer::ICreateFeatureCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - OGRFeature*::IsFieldNull
    - GetFieldDefn
    - GetGeomFieldCount
    - CPL_TO_BOOL
    - OGRCARTOEscapeLiteralCopy
    - OGRFeature*::GetFieldAsInteger
    - resize
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - c_str
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - GetFieldCount
    - CPLSPrintf
    - OGRCARTOEscapeIdentifier
    - CPLFree
    - size
    - static_cast<size_t>
    - empty
    - OGRFeature*::IsFieldSet
    - Printf
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::ICreateFeatureCopy(OGRFeature *poFeature,\n
      \                                             bool bHasUserFieldMatchingFID,\n
      \                                             bool bHasJustGotNextFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1096,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1101,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1102,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1105,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1118,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1119,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1128,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1130,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1139,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1140,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1141,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1144,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1155,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1156,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1159,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1162,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1173,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1174,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1177,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1178,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1189,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1207,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1209,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1227,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1228,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1236,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1236,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1240,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1243,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1246,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1249,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1251,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1275,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1279,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1281,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1288,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1288,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1296,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1303,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1304,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1306,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1316,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1317,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1317,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1319,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1326,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1328,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1337,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1340,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1342,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1343,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1347,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1351,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1352,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1354,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1354,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1358,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1365,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1369,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1371,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1379,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 163
    argCount: 3
    argNames:
    - poFeature
    - bHasUserFieldMatchingFID
    - bHasJustGotNextFID
    argTypes:
    - OGRFeature*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1384
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1384
    functionName: OGRCARTOTableLayer::ICreateFeatureInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 1
    functionsReached:
    - json_object_get_int64
    - GetGeomFieldDefn
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::IsFieldNull
    - GetFieldDefn
    - GetGeomFieldCount
    - OGRCARTOGetSingleRow
    - CPL_json_object_object_get
    - OGRFeature*::GetFieldAsInteger
    - CPLString::size
    - OGRCARTOEscapeLiteral
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRFeature*::GetGeomFieldRef
    - json_object_get_type
    - GetFieldCount
    - CPLSPrintf
    - OGRCARTOEscapeIdentifier
    - CPLFree
    - size
    - empty
    - OGRFeature*::IsFieldSet
    - json_object_put
    - RunSQL
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::ICreateFeatureInsert(OGRFeature *poFeature,\n
      \                                               bool bHasUserFieldMatchingFID,\n
      \                                               bool bHasJustGotNextFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1393,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1395,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1398,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1400,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1402,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1409,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1415,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1415,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1417,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1419,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1427,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1428,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1431,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1437,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1442,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1442,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1446,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1449,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1452,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1456,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1463,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1464,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1467,1
    - Dst: cpl::down_cast<OGRCartoGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1475,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1476,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1486,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1493,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1494,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1495,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1498,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1502,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1504,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1514,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1518
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1518
    functionName: OGRCARTOTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsString
    - GetGeomFieldDefn
    - OGRFeature*::IsFieldNull
    - GetFieldDefn
    - CPLError
    - GetGeomFieldCount
    - CPL_json_object_object_get
    - OGRFeature*::GetFieldAsInteger
    - OGRCARTOEscapeLiteral
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRFeature*::GetGeomFieldRef
    - json_object_get_type
    - GetFieldCount
    - CPLSPrintf
    - IsReadWrite
    - OGRCARTOEscapeIdentifier
    - CPLFree
    - OGRFeature*::IsFieldSet
    - cpl::down_cast<OGRCartoGeomFieldDefn *>
    - json_object_put
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - RunSQL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1528,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1530,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1533,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1535,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1537,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1542,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1546,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1547,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1548,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1551,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1555,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1557,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1571
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1571
    functionName: OGRCARTOTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - empty
    - CPLString::Printf
    - json_object_get_type
    - json_object_put
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - IsReadWrite
    - RunSQL
    - CPLError
    - OGRCARTOEscapeIdentifier
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1581,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1583,1
    - Dst: GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1583,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1584,1
    - Dst: OGRCARTOEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszGeomCol
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1588
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1588
    functionName: OGRCARTOTableLayer::GetSRS_SQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - GetCurrentSchema
    - OGRCARTOEscapeLiteral
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCARTOTableLayer::GetSRS_SQL(const char *pszGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1603,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1607,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1610,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1616,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1618,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1620,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1622,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1624,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1625,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1629,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1631,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1636,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1645
    functionName: OGRCARTOTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 2
    functionsReached:
    - getEnvelope
    - empty
    - GetGeomFieldDefn
    - strchr
    - Printf
    - CPLsnprintf
    - OGRCARTOEscapeIdentifier
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRCARTOTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1654,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1656,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1659,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1661,1
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1662,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1666,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1668,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1670,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1671,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1675,1
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1676,1
    - Dst: BuildFeature
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1679,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1683
      start: 1651
    functionDepth: 4
    functionLinenumber: 1651
    functionLinenumberEnd: 1683
    functionName: OGRCARTOTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeature
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - empty
    - BuildFeature
    - CPLSPrintf
    - json_object_put
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - RunSQL
    - OGRCARTOEscapeIdentifier
    - OGRCARTOGetSingleRow
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCARTOTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1692,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1694,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1697,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1699,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1700,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1701,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1707,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1708,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1712,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1713,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1716,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1717,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1719,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1720,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1723,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1725,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1728
      start: 1689
    functionDepth: 4
    functionLinenumber: 1689
    functionLinenumberEnd: 1728
    functionName: OGRCARTOTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - GetLayerDefn
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - empty
    - CPL_json_object_object_get
    - json_object_get_type
    - CPLSPrintf
    - json_object_put
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - RunSQL
    - OGRCARTOEscapeIdentifier
    - OGRCARTOGetSingleRow
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCARTOTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1742,1
    - Dst: OGRCARTOTableLayer::FlushDeferredBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1744,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1748,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1751,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1753,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1753,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1754,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1756,1
    - Dst: OGRCARTOGetSingleRow
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1757,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1761,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1763,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1769,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1776,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1779,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1783,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1792,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1794,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1796,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1807,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1808,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1809,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1810,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1812,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1814,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1820,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1822,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1823
      start: 1737
    functionDepth: 3
    functionLinenumber: 1737
    functionLinenumberEnd: 1823
    functionName: OGRCARTOTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRCARTOTableLayer::FlushDeferredBuffer
    - CPLString::Printf
    - GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - json_object_get_type
    - strncpy
    - json_object_put
    - strchr
    - CSLCount
    - CSLDestroy
    - OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    - RunSQL
    - CPLError
    - OGRCARTOEscapeIdentifier
    - OGRCARTOGetSingleRow
    - OGRLayer::IGetExtent
    - CPL_json_object_object_get
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCARTOTableLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                      bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1832,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1834,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1836,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1838,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1839,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1842,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1842,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1843,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1843,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1844,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1844,1
    - Dst: IsReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1846,1
    - Dst: OGRCARTOLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1850
    functionName: OGRCARTOTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - empty
    - EQUAL
    - IsReadWrite
    - OGRCARTOLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRCARTOTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1863,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1865,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1866,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1867,1
    - Dst: std::make_unique<OGRCartoGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1875,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1876,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1879,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1880,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1882,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1882,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1885,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - eGType
    - poSRSIn
    - bGeomNullable
    - bCartodbfyIn
    argTypes:
    - OGRwkbGeometryType
    - OGRSpatialReference*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1888
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1888
    functionName: OGRCARTOTableLayer::SetDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRCartoGeomFieldDefn>
    - SetGeomType
    - AddGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - Printf
    - CPLAssert
    - Reference
    - auto::SetNullable
    - std::move
    - auto::SetSpatialRef
    - OGRCARTOEscapeIdentifier
    - FetchSRSId
    linkageType: ''
    returnType: void
    signature: "void OGRCARTOTableLayer::SetDeferredCreation(OGRwkbGeometryType eGType,\n
      \                                            OGRSpatialReference *poSRSIn,\n
      \                                            bool bGeomNullable,\n                                             bool
      bCartodbfyIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1901,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1903,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1904,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1906,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1907,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1908,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1910,1
    - Dst: cpl::down_cast<OGRCartoGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1913,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1914,1
    - Dst: OGRCartoGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1915,1
    - Dst: OGRCartoGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1922,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1924,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1927,1
    - Dst: OGRCARTOGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1928,1
    - Dst: OGRCartoGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1929,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1932,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1934,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1935,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1935,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1937,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1937,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1939,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1940,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1942,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1943,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1946,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1952,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1952,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1954,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1955,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1955,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1955,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1959,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1959,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1961,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1961,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1963,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1963,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1964,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1965,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1968,1
    - Dst: OGRCARTOEscapeIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1969,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1970,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1970,1
    - Dst: RunSQL
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1977,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp:1980,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1983
    functionName: OGRCARTOTableLayer::RunDeferredCreationIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/carto/ogrcartotablelayer.cpp
    functionUses: 8
    functionsReached:
    - OGRCARTOGeometryType
    - GetGeomFieldDefn
    - CPLDebug
    - strcmp
    - GetFieldDefn
    - OGRCartoGeomFieldDefn*::GetType
    - GetGeomFieldCount
    - OGRPGCommonLayerGetType
    - OGRCartoGeomFieldDefn*::IsNullable
    - OGRFieldDefn*::GetDefault
    - CPLString::c_str
    - strlen
    - OGRFieldDefn*::IsNullable
    - OGRCartoGeomFieldDefn*::GetNameRef
    - c_str
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - CPLSPrintf
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - OGRCARTOEscapeIdentifier
    - cpl::down_cast<OGRCartoGeomFieldDefn *>
    - json_object_put
    - RunSQL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCARTOTableLayer::RunDeferredCreationIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: OGRGTFSDataset::OGRGTFSDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGTFSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:36,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OGRGTFSDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:51,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:51,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: OGRGTFSDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGTFSDataset::GetLayer(int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: OGRGTFSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:98,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:100,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:101,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:102,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:103,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:105,1
    - Dst: OGRGTFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:107,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:109,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:110,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:112,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:115,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:117,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:120,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:123,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:125,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:129,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:132,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:134,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:136,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:140,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:142,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:146,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:147,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:149,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:152,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:161,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:162,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:164,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:165,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:167,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 42
    argCount: 3
    argNames:
    - osDirname
    - pszName
    - poUnderlyingDS
    argTypes:
    - std::string
    - char*
    - std::unique_ptr<GDALDataset>
    constantsTouched: []
    func_position:
      end: 169
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 169
    functionName: OGRGTFSLayer::OGRGTFSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGTFSLayer::GetLayerDefn
    - auto::GetFieldDefn
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - EQUAL
    - Reference
    - std::move
    - strstr
    - AddFieldDefn
    - SetDescription
    - GetLayer
    - auto::GetFieldIndex
    linkageType: ''
    returnType: void
    signature: "void OGRGTFSLayer::OGRGTFSLayer(const std::string &osDirname, const
      char *pszName,\n                           std::unique_ptr<GDALDataset> &&poUnderlyingDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: OGRGTFSLayer::~OGRGTFSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGTFSLayer::~OGRGTFSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGTFSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGRGTFSLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 1
    functionsReached:
    - OGRGTFSLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRGTFSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:199,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:199,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:200,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:204,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:207,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:218,1
    - Dst: GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:219,1
    - Dst: GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:220,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:225,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:225,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:226,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:230,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:254,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: OGRGTFSLayer::PrepareTripsData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - auto::GetLayerDefn
    - std::make_pair
    - auto::GetLayer
    - OGRAPISpyOpen
    - GetFieldAsDouble
    - std::string
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRGTFSLayer::PrepareTripsData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGTFSLayer::PrepareTripsData
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:265,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:270,1
    - Dst: OGRGTFSLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:270,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:274,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:276,1
    - Dst: auto::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:276,1
    - Dst: OGRGTFSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:277,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:280,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:281,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:283,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:283,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:289,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:299,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:304,1
    - Dst: auto::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:304,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:309,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:314,1
    - Dst: auto::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:315,1
    - Dst: auto::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:316,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:315,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:323,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:324,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:326,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:330,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:331,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:332,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:335,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:339,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:339,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:340,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:340,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:342,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 262
    functionDepth: 5
    functionLinenumber: 262
    functionLinenumberEnd: 345
    functionName: OGRGTFSLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 1
    functionsReached:
    - auto::GetFieldAsInteger
    - auto::SetField
    - auto::get
    - GetFieldDefn
    - end
    - find
    - OGRPoint::OGRPoint
    - strlen
    - OGRGTFSLayer::GetLayerDefn
    - OGRLineString::OGRLineString
    - std::make_unique<OGRFeature>
    - auto::GetFieldDefn
    - auto::GetFID
    - OGRGTFSLayer::PrepareTripsData
    - FilterGeometry
    - Evaluate
    - auto::GetGeometryRef
    - auto::GetRawFieldRef
    - auto::SetGeometryDirectly
    - std::unique_ptr<OGRFeature>
    - OGRLineString*::addPoint
    - auto::SetFID
    - auto::release
    - OGRGTFSLayer::GetNextFeature
    - auto::GetFieldAsDouble
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGTFSLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:354,1
    - Dst: OGRGTFSLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: OGRGTFSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRGTFSLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGTFSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: OGRGTFSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGTFSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: OGRGTFSShapesGeomLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:405,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:407,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:408,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:409,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:410,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:412,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poUnderlyingDS
    argTypes:
    - std::unique_ptr<GDALDataset>
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: OGRGTFSShapesGeomLayer::OGRGTFSShapesGeomLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - std::move
    - AddFieldDefn
    - SetDescription
    - GetLayer
    linkageType: ''
    returnType: void
    signature: "void OGRGTFSShapesGeomLayer::OGRGTFSShapesGeomLayer(\n    std::unique_ptr<GDALDataset>
      &&poUnderlyingDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: OGRGTFSShapesGeomLayer::~OGRGTFSShapesGeomLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGTFSShapesGeomLayer::~OGRGTFSShapesGeomLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: OGRGTFSShapesGeomLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGTFSShapesGeomLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGTFSShapesGeomLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:442,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:460,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:467,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:468,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:468,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:469,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:472,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:474,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:475,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:475,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:475,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:476,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:481,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 483
    functionName: OGRGTFSShapesGeomLayer::Prepare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::SetGeometryDirectly
    - static_cast<GIntBig>
    - size
    - OGRLineString*::addPoint
    - auto::SetFID
    - std::make_pair
    - OGRGTFSShapesGeomLayer::GetLayerDefn
    - auto::SetField
    - std::move
    - CPLError
    - OGRLineString::OGRLineString
    - emplace_back
    - auto::c_str
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: void
    signature: void OGRGTFSShapesGeomLayer::Prepare()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGTFSShapesGeomLayer::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:492,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:495,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:498,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:498,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:500,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:500,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: OGRGTFSShapesGeomLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - Evaluate
    - FilterGeometry
    - get
    - Clone
    - GetGeometryRef
    - OGRGTFSShapesGeomLayer::Prepare
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGTFSShapesGeomLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: OGRGTFSShapesGeomLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGTFSShapesGeomLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:526,1
    - Dst: OGRGTFSShapesGeomLayer::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:528,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:529,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: OGRGTFSShapesGeomLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - size
    - OGRLayer::GetFeatureCount
    - OGRGTFSShapesGeomLayer::Prepare
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGTFSShapesGeomLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:542,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:545,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:550,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:558,1
    - Dst: CPL_LSBSINT16PTR
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:566,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:569,1
    - Dst: CPL_LSBSINT16PTR
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:583,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:586,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 593
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 593
    functionName: OGRGTFSDataset::Identify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsSingleAllowedDriver
    - CPL_LSBSINT16PTR
    - memcmp
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRGTFSDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGTFSDataset::Identify
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:601,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:605,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:606,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:609,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:610,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:610,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:611,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:612,1
    - Dst: std::make_unique<OGRGTFSDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:614,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:616,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:616,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:619,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:621,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:621,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:631,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:634,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:634,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:635,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:639,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:642,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:643,1
    - Dst: auto::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:645,1
    - Dst: std::make_unique<OGRGTFSLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:646,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:647,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:648,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:656,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:661,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:663,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:663,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:664,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:666,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:669,1
    - Dst: auto::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:672,1
    - Dst: std::make_unique<OGRGTFSShapesGeomLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:673,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:674,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:679,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 680
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 680
    functionName: OGRGTFSDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetLayer
    - std::make_unique<OGRGTFSLayer>
    - CPLError
    - std::make_unique<OGRGTFSShapesGeomLayer>
    - STARTS_WITH
    - auto::GetFieldIndex
    - std::string::c_str
    - CPLGetExtensionSafe
    - std::string::empty
    - auto::GetLayerDefn
    - OGRGTFSDataset::Identify
    - OGRAPISpyOpen
    - std::move
    - strlen
    - auto::m_apoLayers::emplace_back
    - CPL_IGNORE_RET_VAL
    - std::unique_ptr<GDALDataset>
    - std::make_unique<OGRGTFSDataset>
    - auto::release
    - cpl::Iterate
    - CPLGetBasenameSafe
    - EQUAL
    - std::string
    - VSIReadDir
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGTFSDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:689,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:692,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:694,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:695,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:697,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:698,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:699,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:700,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 706
    functionName: RegisterOGRGTFS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gtfs/ogrgtfsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGTFS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:22,1
    - Dst: std::make_unique<OGRADBCDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:24,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:25,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: OGRADBCDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - std::make_unique<OGRADBCDataset>
    - OGRADBCDriverIdentify
    - auto::release
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRADBCDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:36,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:39,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:42,1
    - Dst: OGRADBCDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:43,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: RegisterOGRADBC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRADBCDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRADBC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:37,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:38,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::OGRArrowArrayToOGRFeatureAdapterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - SetGeomType
    linkageType: ''
    returnType: void
    signature: void OGRArrowArrayToOGRFeatureAdapterLayer(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:60,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *pszCap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CreateField(const OGRFieldDefn *poFieldDefn, int) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:72,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:73,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - std::unique_ptr<OGRFeature>
    - emplace_back
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr ICreateFeature(OGRFeature *poFeature) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: OGRADBCLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 1
    functionsReached:
    - OGRADBCLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: OGRADBCDataset::OGRADBCDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRADBCDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:189,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: OGRADBCDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:194,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: OGRADBCDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - get
    - OGRADBCDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer(int idx) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszStatement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: OGRADBCDataset::CreateInternalLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - OGRADBCDataset::CreateLayer
    linkageType: ''
    returnType: std::unique_ptr<OGRADBCLayer>
    signature: std::unique_ptr<OGRADBCLayer> CreateInternalLayer(const char *pszStatement)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: OGRADBCError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRADBCError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~OGRADBCError()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~OGRADBCError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:231,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 80
    functionsReached:
    - memset
    - release
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: message
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *message() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: operator AdbcError *()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator AdbcError *()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 304
    functionName: AdbcError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcError
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: AdbcErrorDetail
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcErrorDetail
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 815
    functionName: AdbcDatabase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcDatabase
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 838
    functionName: AdbcConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcConnection
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 877
    functionName: AdbcStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcStatement
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 1086
    functionName: AdbcDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogr_adbc_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ADBC_EXPORT
    signature: struct ADBC_EXPORT AdbcDriver
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRADBCDriverIsDuckDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCDriverIsDuckDB(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:36,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: OGRADBCDriverIsSQLite3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCDriverIsSQLite3(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:48,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:48,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:49,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: OGRADBCDriverIsParquet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCDriverIsParquet(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:59,1
    - Dst: OGRADBCDriverIsDuckDB
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:60,1
    - Dst: OGRADBCDriverIsSQLite3
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:61,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:62,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:63,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:64,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:65,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:66,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:67,1
    - Dst: OGRADBCDriverIsParquet
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:68,1
    - Dst: GDALGetAdbcLoadDriverOverride
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:70,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:72,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:73,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: OGRADBCDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALOpenInfo*::IsSingleAllowedDriver
    - OGRADBCDriverIsDuckDB
    - OGRADBCDriverIsParquet
    - GDALGetAdbcLoadDriverOverride
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH
    - OGRADBCDriverIsSQLite3
    linkageType: ''
    returnType: int
    signature: int OGRADBCDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:89,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: OGRADBCDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRADBCDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:119,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:123,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:125,1
    - Dst: OGRADBCDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:128,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: DeclareDeferredOGRADBCPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - OGRADBCDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRADBCPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetAdbcLoadDriverOverride
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:37,1
    - Dst: load_driver_override
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:40,1
    - Dst: AdbcLoadDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - driver_name
    - entrypoint
    - driver
    - error
    argTypes:
    - char*
    - char*
    - void*
    - struct AdbcError*
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: OGRADBCLoadDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - AdbcLoadDriver
    - GDALGetAdbcLoadDriverOverride
    - load_driver_override
    linkageType: ''
    returnType: AdbcStatusCode
    signature: "AdbcStatusCode OGRADBCLoadDriver(const char *driver_name,\n                                 const
      char *entrypoint, void *driver,\n                                 struct AdbcError
      *error)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:66,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:69,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:69,1
    - Dst: OGRADBCError::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:70,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:73,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: OGRADBCDataset::~OGRADBCDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - release
    - get
    - OGRADBCError::clear
    - ADBC_CALL
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRADBCDataset::~OGRADBCDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:90,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:98,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:99,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:103,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:105,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:107,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:107,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:112,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:113,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:115,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:119,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:122,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:124,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:124,1
    - Dst: std::make_unique<AdbcStatement>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:129,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:130,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:130,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:133,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:134,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:138,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:138,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:141,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:142,1
    - Dst: OGRADBCError::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:143,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:144,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:144,1
    - Dst: std::make_unique<OGRArrowArrayStream>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:148,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:150,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:150,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:150,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:153,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:154,1
    - Dst: OGRADBCError::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:155,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:156,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:156,1
    - Dst: auto::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:163,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:164,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:164,1
    - Dst: std::make_unique<OGRADBCLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:168,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:169,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:169,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - pszStatement
    - pszLayerName
    - bInternalUse
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 171
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 171
    functionName: OGRADBCDataset::CreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRDuplicateCharacter
    - auto::get_schema
    - empty
    - CPLString::substr
    - std::string::size
    - get
    - auto::get
    - CPLString::c_str
    - CPLString::ifind
    - std::make_unique<AdbcStatement>
    - std::move
    - std::make_unique<OGRArrowArrayStream>
    - OGRADBCError::message
    - std::string
    - CPLError
    - OGRADBCError::clear
    - std::make_unique<OGRADBCLayer>
    - ADBC_CALL
    linkageType: ''
    returnType: std::unique_ptr<OGRADBCLayer>
    signature: "std::unique_ptr<OGRADBCLayer> OGRADBCDataset::CreateLayer(const char
      *pszStatement, const char *pszLayerName,\n                            bool bInternalUse)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:181,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:183,1
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:187,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:190,1
    - Dst: auto::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:192,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: OGRADBCDataset::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - auto::SetSpatialFilter
    - EQUAL
    - GDALDataset::ExecuteSQL
    - auto::GetGeomType
    - OGRADBCDataset::CreateLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRADBCDataset::ExecuteSQL(const char *pszStatement,\n                                     OGRGeometry
      *poSpatialFilter,\n                                     const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:203,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:204,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:204,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: IsParquetExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - std::string::c_str
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: bool IsParquetExtension(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:217,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:219,1
    - Dst: std::make_unique<GDALOpenInfo>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:221,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:223,1
    - Dst: OGRADBCDriverIsDuckDB
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:227,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:237,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:240,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:241,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:244,1
    - Dst: IsParquetExtension
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:245,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:245,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:247,1
    - Dst: defined
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:277,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:285,1
    - Dst: OGRADBCLoadDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:293,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:294,1
    - Dst: OGRADBCLoadDriver
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:300,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:303,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:304,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:312,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:313,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:324,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:325,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:331,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:334,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:335,1
    - Dst: cpl::IterateNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:340,1
    - Dst: static_cast<CSLConstList>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:341,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:343,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:345,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:346,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:349,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:350,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:356,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:358,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:359,1
    - Dst: std::make_unique<AdbcConnection>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:363,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:364,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:364,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:366,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:367,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:371,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:374,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:375,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:382,1
    - Dst: CSLConstList
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:382,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:384,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:386,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:387,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:387,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:391,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:393,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:394,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:397,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:401,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:404,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:405,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:413,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:415,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:415,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:417,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:418,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:418,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:422,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:423,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:424,1
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:439,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:439,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:441,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:445,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:448,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:449,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:449,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:450,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:452,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:453,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:455,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:458,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:460,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:466,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:468,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:472,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:475,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:477,1
    - Dst: std::make_unique<AdbcConnection>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:481,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:482,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:485,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:487,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:491,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:494,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:496,1
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:503,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:503,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:509,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:509,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:514,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:516,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:521,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:524,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:527,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:528,1
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:531,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:531,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:534,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:534,1
    - Dst: OGRADBCDataset::CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:540,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:546,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:551,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:556,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:557,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:558,1
    - Dst: OGRADBCDataset::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:561,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:562,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:563,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:566,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:566,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 169
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 572
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 572
    functionName: OGRADBCDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRADBCDriverIsDuckDB
    - CPLDebug
    - auto::get
    - OGRADBCLoadDriver
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLGetConfigOption
    - auto::GetLayerDefn
    - IsParquetExtension
    - CPLString::substr
    - CPLGetLastErrorMsg
    - CPLGetDirnameSafe
    - std::make_unique<AdbcConnection>
    - std::move
    - strlen
    - defined
    - OGRADBCError::message
    - OGRADBCDataset::CreateLayer
    - ADBC_CALL
    - emplace_back
    - static_cast<CSLConstList>
    - STARTS_WITH_CI
    - CSLConstList
    - OGRADBCDataset::CreateInternalLayer
    - CPLTestBool
    - c_str
    - get
    - CPLSPrintf
    - std::make_unique<GDALOpenInfo>
    - strstr
    - auto::GetNextFeature
    - CPLString::find
    - std::unique_ptr::get
    - std::unique_ptr<OGRFeature>
    - OGRDuplicateCharacter
    - empty
    - cpl::Iterate
    - CPLGetBasenameSafe
    - cpl::IterateNameValue
    - CSLDestroy
    - EQUAL
    - reset
    - memset
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCDataset::Open(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:580,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:581,1
    - Dst: std::make_unique<OGRArrowArrayStream>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:585,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:586,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:586,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:592,1
    - Dst: auto::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:595,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:597,1
    - Dst: std::make_unique<AdbcStatement>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:601,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:602,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:603,1
    - Dst: OGRADBCLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:605,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:606,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:607,1
    - Dst: std::make_unique<OGRMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:613,1
    - Dst: auto::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:616,1
    - Dst: auto::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:620,1
    - Dst: auto::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:624,1
    - Dst: auto::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:628,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:639,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:640,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:642,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:643,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:645,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:647,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:650,1
    - Dst: GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:652,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:653,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:657,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:661,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:663,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:664,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:669,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:672,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:674,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:676,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:678,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:679,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:680,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:681,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:683,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:685,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:686,1
    - Dst: auto::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:687,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:700,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:700,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp:701,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 702
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 702
    functionName: OGRADBCDataset::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbcdataset.cpp
    functionUses: 0
    functionsReached:
    - GetObj
    - GetString
    - auto::GetType
    - auto::get
    - CPLJSONDocument::GetRoot
    - std::make_unique<AdbcStatement>
    - CPLError
    - auto::GetFieldIndex
    - std::string::c_str
    - auto::ToArray
    - GDALDataset::GetLayerByName
    - std::string::empty
    - auto::GetLayerDefn
    - std::move
    - std::make_unique<OGRMemLayer>
    - ADBC_CALL
    - emplace_back
    - auto::CreateField
    - CPLJSONDocument::LoadMemory
    - OGRFeature::SetField
    - get
    - auto::CreateFeature
    - GetType
    - CPL_IGNORE_RET_VAL
    - auto::IsValid
    - auto::get_schema
    - back
    - EQUAL
    - OGRADBCLayer::GetLayerDefn
    - GetArray
    - CPLJSONDocument::CPLJSONDocument
    - std::make_unique<OGRArrowArrayStream>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRADBCDataset::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: OGRArrowArrayToOGRFeatureAdapterLayer::~OGRArrowArrayToOGRFeatureAdapterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRArrowArrayToOGRFeatureAdapterLayer::~OGRArrowArrayToOGRFeatureAdapterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRReadWKTGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:38,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:38,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:39,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:41,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osType
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: GetGeometryTypeFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRReadWKTGeometryType
    - std::string::c_str
    - CPLDebug
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeometryTypeFromString(const std::string &osType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:57,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:57,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:59,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:61,1
    - Dst: OGRADBCLayer::BuildLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - poDS
    - pszName
    - pszStatement
    - poStatement
    - poStream
    - schema
    - bInternalUse
    argTypes:
    - OGRADBCDataset*
    - char*
    - char*
    - std::unique_ptr<AdbcStatement>
    - std::unique_ptr<OGRArrowArrayStream>
    - ArrowSchema*
    - bool
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: OGRADBCLayer::OGRADBCLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - memcpy
    - std::move
    - OGRADBCLayer::BuildLayerDefn
    linkageType: ''
    returnType: void
    signature: "void OGRADBCLayer::OGRADBCLayer(OGRADBCDataset *poDS, const char *pszName,\n
      \                          const char *pszStatement,\n                           std::unique_ptr<AdbcStatement>
      poStatement,\n                           std::unique_ptr<OGRArrowArrayStream>
      poStream,\n                           ArrowSchema *schema, bool bInternalUse)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:80,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:81,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:84,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:84,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:90,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:90,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:90,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:91,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:92,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:93,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:94,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:95,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:97,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:98,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:99,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:100,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:101,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:101,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:102,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:102,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:103,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:104,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:105,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:106,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:107,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:108,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:109,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:110,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:111,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:111,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:112,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:112,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:113,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:113,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:115,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:116,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:117,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:118,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:119,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 16
    argCount: 6
    argNames:
    - oJSONDef
    - osBBOXColumn
    - osXMin
    - osYMin
    - osXMax
    - osYMax
    argTypes:
    - CPLJSONObject
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 126
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 126
    functionName: ParseGeometryColumnCovering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - ToString
    - auto::GetType
    - GetType
    - auto::IsValid
    - auto::Size
    - auto::ToArray
    linkageType: ''
    returnType: bool
    signature: "bool ParseGeometryColumnCovering(const CPLJSONObject &oJSONDef,\n
      \                                       std::string &osBBOXColumn,\n                                        std::string
      &osXMin,\n                                        std::string &osYMin,\n                                        std::string
      &osXMax,\n                                        std::string &osYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:142,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:143,1
    - Dst: std::make_unique<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:146,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:147,1
    - Dst: auto::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:148,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:149,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:149,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:151,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:155,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:155,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:157,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:158,1
    - Dst: std::make_unique<OGRSpatialReference>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:160,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:161,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:163,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:163,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:166,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:167,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:174,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:178,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:179,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:181,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:182,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:184,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:184,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:186,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:202,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:203,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:203,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:204,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:205,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:208,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:208,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:209,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:209,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:215,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:216,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:217,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:217,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:218,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:226,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:230,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:236,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:239,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:240,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:240,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:242,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:243,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:244,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:245,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:246,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:247,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:250,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:253,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:253,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:255,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:256,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:257,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:258,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:259,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:260,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:263,1
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:269,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:274,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:275,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:280,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:281,1
    - Dst: BuildColName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:285,1
    - Dst: BuildColName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:286,1
    - Dst: BuildColName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:287,1
    - Dst: BuildColName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:288,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:289,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:290,1
    - Dst: std::set<std::string>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:291,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:291,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 6
    argNames:
    - oColumn
    - oMapType
    - oMapExtent
    - oMapGeomColumnToCoveringBBOXColumn
    - oMapGeomColumnsFromGeoParquet
    - oSetCoveringBBoxColumn
    argTypes:
    - CPLJSONObject
    - std::map<std::string, OGRwkbGeometryType>
    - std::map<std::string, OGREnvelope3D>
    - std::map<std::string, OGRADBCLayer::GeomColBBOX>
    - std::map<std::string, std::unique_ptr<OGRSpatialReference>>
    - std::set<std::string>
    constantsTouched: []
    func_position:
      end: 293
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 293
    functionName: ParseGeoParquetColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - auto::importFromEPSG
    - auto::GetType
    - BuildColName
    - auto::ToArray
    - auto::find
    - OGR_GT_HasZ
    - PromoteToCollection
    - std::move
    - auto::Size
    - auto::SetFromUserInput
    - auto::ToString
    - ToString
    - GetGeometryTypeFromString
    - std::set<std::string>::insert
    - CPLJSONObject::GetArray
    - auto::IsValid
    - OGR_GT_HasM
    - auto::SetAxisMappingStrategy
    - std::make_unique<OGRSpatialReference>
    - OGR_GT_SetModifier
    - OGRDuplicateCharacter
    - CPLJSONObject::GetName
    - std::string
    - ParseGeometryColumnCovering
    - CPLJSONObject::GetObj
    - ToDouble
    - OGR_GT_Flatten
    linkageType: ''
    returnType: void
    signature: "void ParseGeoParquetColumn(\n    const CPLJSONObject &oColumn,\n    std::map<std::string,
      OGRwkbGeometryType> &oMapType,\n    std::map<std::string, OGREnvelope3D> &oMapExtent,\n
      \   std::map<std::string, OGRADBCLayer::GeomColBBOX>\n        &oMapGeomColumnToCoveringBBOXColumn,\n
      \   std::map<std::string, std::unique_ptr<OGRSpatialReference>>\n        &oMapGeomColumnsFromGeoParquet,\n
      \   std::set<std::string> &oSetCoveringBBoxColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:308,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:308,1
    - Dst: m_osParquetFilename::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:310,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:311,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:312,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:312,1
    - Dst: m_osParquetFilename::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:322,1
    - Dst: CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:324,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:325,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:326,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:332,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:333,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:337,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:338,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:339,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:344,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:345,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:345,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:347,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:348,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:350,1
    - Dst: ParseGeoParquetColumn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:352,1
    - Dst: CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:360,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:361,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:366,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:371,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:378,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:383,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:384,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:386,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:388,1
    - Dst: auto::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:388,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:393,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:395,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:399,1
    - Dst: OGRADBCLayer::ReplaceStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:411,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:411,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:413,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:417,1
    - Dst: std::map::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:418,1
    - Dst: std::make_unique<OGRArrowArrayToOGRFeatureAdapterLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:423,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:424,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:429,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:430,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:433,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:436,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:437,1
    - Dst: m_poLayerDefn::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:439,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:441,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:442,1
    - Dst: CreateFieldFromArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:447,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 1
    argNames:
    - bInternalUse
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 450
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 450
    functionName: OGRADBCLayer::BuildLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::map::end
    - GetString
    - GetDescription
    - m_osParquetFilename::empty
    - OGRGeomFieldDefn::SetSpatialRef
    - CPLJSONDocument::GetRoot
    - CPLString
    - OGRADBCLayer::ReplaceStatement
    - std::string::c_str
    - cpl::contains
    - std::string::empty
    - CreateFieldFromArrowSchema
    - std::move
    - auto::GetFieldAsString
    - auto::GetChildren
    - CPLJSONDocument::LoadMemory
    - c_str
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - std::make_unique<OGRArrowArrayToOGRFeatureAdapterLayer>
    - m_poLayerDefn::AddGeomFieldDefn
    - std::map::find
    - std::map::clear
    - auto::GetNextFeature
    - CreateInternalLayer
    - OGRDuplicateCharacter
    - std::unique_ptr<OGRFeature>
    - ParseGeoParquetColumn
    - auto::GetFieldAsBinary
    - EQUAL
    - std::map::empty
    - std::string
    - auto::Release
    - CPLJSONDocument::CPLJSONDocument
    - push_back
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRADBCLayer::BuildLayerDefn(bool bInternalUse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:460,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:460,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: OGRADBCLayer::~OGRADBCLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - release
    - get
    - ADBC_CALL
    linkageType: ''
    returnType: void
    signature: void OGRADBCLayer::~OGRADBCLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AdbcStatement>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:473,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:474,1
    - Dst: m_connection::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:474,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:474,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:477,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:478,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:479,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:479,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:481,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:484,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:485,1
    - Dst: OGRADBCError::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:486,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:487,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:487,1
    - Dst: std::make_unique<OGRArrowArrayStream>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:491,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:494,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:495,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:495,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:495,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:498,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:499,1
    - Dst: OGRADBCError::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:500,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:501,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:501,1
    - Dst: auto::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:503,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:505,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:506,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:506,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:511,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:512,1
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:515,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:515,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:516,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - pszNewStatement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 524
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 524
    functionName: OGRADBCLayer::ReplaceStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 1
    functionsReached:
    - auto::get_schema
    - memcpy
    - release
    - get
    - auto::get
    - memset
    - std::make_unique<AdbcStatement>
    - std::move
    - std::make_unique<OGRArrowArrayStream>
    - OGRADBCError::message
    - CPLError
    - OGRADBCError::clear
    - m_connection::get
    - ADBC_CALL
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCLayer::ReplaceStatement(const char *pszNewStatement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:535,1
    - Dst: m_apoFeatures::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:538,1
    - Dst: std::make_unique<OGRArrowArrayStream>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:542,1
    - Dst: OGRADBCLayer::GetArrowStreamInternal
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:543,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:543,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:548,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:552,1
    - Dst: get_next
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:553,1
    - Dst: struct ArrowArray::release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:563,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:571,1
    - Dst: auto::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:576,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:578,1
    - Dst: m_poLayerDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:579,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:582,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 584
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 584
    functionName: OGRADBCLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - get_next
    - m_poLayerDefn::GetGeomFieldDefn
    - auto::SetFID
    - release
    - auto::assignSpatialReference
    - auto::get
    - memset
    - m_apoFeatures::clear
    - auto::GetGeomFieldRef
    - std::move
    - OGRADBCLayer::GetArrowStreamInternal
    - m_apoFeatures::size
    - struct ArrowArray::release
    - std::make_unique<OGRArrowArrayStream>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRADBCLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_apoFeatures::clear
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:594,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 600
    functionName: OGRADBCLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - m_apoFeatures::clear
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRADBCLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope*::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:610,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: OGRADBCLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGREnvelope*::IsInit
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRADBCLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                               bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREnvelope3D*::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:624,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 628
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 628
    functionName: OGRADBCLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGREnvelope3D*::IsInit
    - OGRLayer::IGetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRADBCLayer::IGetExtent3D(int iGeomField, OGREnvelope3D *psExtent,\n
      \                                 bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:636,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:637,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:637,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:638,1
    - Dst: osXMin::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:640,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:644,1
    - Dst: osXMin::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:663,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:666,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:668,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:672,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:676,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:680,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:685,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:687,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:688,1
    - Dst: m_poLayerDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:689,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:693,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:698,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:701,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:702,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:703,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:704,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 713
    functionName: OGRADBCLayer::GetCurrentStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - m_poLayerDefn::GetGeomFieldDefn
    - c_str
    - STARTS_WITH_CI
    - empty
    - OGRDuplicateCharacter
    - std::string::append
    - CPLSPrintf
    - osXMin::empty
    linkageType: ''
    returnType: std::string
    signature: std::string OGRADBCLayer::GetCurrentStatement() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCLayer::ReplaceStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:721,1
    - Dst: OGRADBCLayer::GetCurrentStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: OGRADBCLayer::UpdateStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGRADBCLayer::ReplaceStatement
    - OGRADBCLayer::GetCurrentStatement
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCLayer::UpdateStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:730,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:731,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:731,1
    - Dst: OGRADBCLayer::UpdateStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:734,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 740
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 740
    functionName: OGRADBCLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - STARTS_WITH_CI
    - empty
    - OGRLayer::SetAttributeFilter
    - OGRADBCLayer::UpdateStatement
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRADBCLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRADBCLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:750,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:753,1
    - Dst: OGRADBCLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:754,1
    - Dst: OGRADBCLayer::UpdateStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 758
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 758
    functionName: OGRADBCLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRADBCLayer::ResetReading
    - OGRADBCLayer::GetLayerDefn
    - OGRADBCLayer::UpdateStatement
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRADBCLayer::ISetSpatialFilter(int iGeomField,\n                                       const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:766,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:768,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:770,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:773,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:775,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:777,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:779,1
    - Dst: OGRADBCLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:780,1
    - Dst: CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:788,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:788,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:792,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:792,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:794,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:796,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:796,1
    - Dst: osXMin::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:798,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 808
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 808
    functionName: OGRADBCLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDuplicateCharacter
    - std::unique_ptr<OGRFeature>
    - empty
    - GetDescription
    - CPLSPrintf
    - EQUAL
    - OGRADBCLayer::GetLayerDefn
    - auto::GetNextFeature
    - CreateInternalLayer
    - osXMin::empty
    - IsInit
    linkageType: ''
    returnType: int
    signature: int OGRADBCLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: OGRADBCLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRADBCLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:827,1
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:829,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:834,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:834,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:835,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:835,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:836,1
    - Dst: OGRADBCLayer::GetArrowStreamInternal
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 840
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 840
    functionName: OGRADBCLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPLFetchBool
    - get
    - reset
    - OGRADBCLayer::GetArrowStreamInternal
    - memset
    - OGRLayer::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGRADBCLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADBC_CALL
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:850,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:853,1
    - Dst: OGRADBCError::message
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out_stream
    argTypes:
    - struct ArrowArrayStream*
    constantsTouched: []
    func_position:
      end: 859
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 859
    functionName: OGRADBCLayer::GetArrowStreamInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - get
    - ADBC_CALL
    - OGRADBCError::message
    linkageType: ''
    returnType: bool
    signature: bool OGRADBCLayer::GetArrowStreamInternal(struct ArrowArrayStream *out_stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:867,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:869,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:870,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:870,1
    - Dst: osXMin::empty
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:872,1
    - Dst: OGRADBCLayer::GetCurrentStatement
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:875,1
    - Dst: CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:876,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:877,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:882,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:885,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:885,1
    - Dst: auto::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:887,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:891,1
    - Dst: OGRADBCLayer::GetFeatureCountParquet
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:896,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:900,1
    - Dst: std::make_unique<OGRArrowArrayStream>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:904,1
    - Dst: OGRADBCLayer::GetArrowStreamInternal
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:905,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:905,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:909,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:916,1
    - Dst: get_next
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:917,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:919,1
    - Dst: struct ArrowArray::release
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:925,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:929,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 35
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 931
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 931
    functionName: OGRADBCLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - auto::get
    - OGRADBCLayer::GetCurrentStatement
    - OGRADBCLayer::GetFeatureCountParquet
    - get_next
    - auto::GetLayerDefn
    - auto::GetFieldAsInteger64
    - std::move
    - c_str
    - STARTS_WITH_CI
    - osXMin::empty
    - auto::GetNextFeature
    - CreateInternalLayer
    - OGRADBCLayer::GetArrowStreamInternal
    - std::unique_ptr<OGRFeature>
    - empty
    - reset
    - std::string
    - memset
    - struct ArrowArray::release
    - std::make_unique<OGRArrowArrayStream>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRADBCLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:939,1
    - Dst: OGRDuplicateCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:941,1
    - Dst: CreateInternalLayer
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:942,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:942,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:943,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:946,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:946,1
    - Dst: auto::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 952
    functionName: OGRADBCLayer::GetFeatureCountParquet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/adbc/ogradbclayer.cpp
    functionUses: 1
    functionsReached:
    - auto::GetLayerDefn
    - OGRDuplicateCharacter
    - std::unique_ptr<OGRFeature>
    - auto::GetFieldAsInteger64
    - CPLSPrintf
    - auto::GetNextFeature
    - CreateInternalLayer
    - std::string::c_str
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRADBCLayer::GetFeatureCountParquet()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OGRCSWLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OGRCSWLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: OGRCSWDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: '&GetBaseURL()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetBaseURL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: '&GetVersion()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: '&GetElementSetName()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetElementSetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: '&GetOutputSchema()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetOutputSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: OGRCSWDataSource::FullExtentRecordsAsNonSpatial
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FullExtentRecordsAsNonSpatial()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: OGRCSWDataSource::GetMaxRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxRecords()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:141,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:145,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:145,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:146,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:147,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:149,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:150,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:151,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:152,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:155,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:159,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:163,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:167,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:171,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:175,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:179,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:183,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:187,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:191,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:195,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:199,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:203,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:207,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:211,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:215,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:219,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:223,1
    - Dst: GetOutputSchema
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:225,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:228,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:231,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRCSWDataSource*
    constantsTouched: []
    func_position:
      end: 234
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 234
    functionName: OGRCSWLayer::OGRCSWLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRSpatialReference*::Release
    - Reference
    - AddFieldDefn
    - GetOutputSchema
    - VSIMemGenerateHiddenFilename
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRCSWLayer::OGRCSWLayer(OGRCSWDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:242,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:243,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:244,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: OGRCSWLayer::~OGRCSWLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIRmdirRecursive
    - c_str
    - Release
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRCSWLayer::~OGRCSWLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: OGRCSWLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRCSWLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:273,1
    - Dst: OGRCSWLayer::FetchGetRecords
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:276,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:279,1
    - Dst: OGRCSWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:280,1
    - Dst: OGRCSWLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:281,1
    - Dst: OGRCSWLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:287,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:292,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:294,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:301,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:302,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:303,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:305,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:307,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:310,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:311,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:316,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:320,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:322,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:326,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:330,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:332,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:336,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:340,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:342,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:346,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:350,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:352,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:356,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:357,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:362,1
    - Dst: FullExtentRecordsAsNonSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:365,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:368,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:378,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:379,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:380,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:384,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:387,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:388,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 397
    functionName: OGRCSWLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - FullExtentRecordsAsNonSpatial
    - OGRFeature*::GetFieldAsString
    - GetGeomFieldDefn
    - OGRCSWLayer::FetchGetRecords
    - strcmp
    - GetFieldDefn
    - GetLayer
    - GDALClose
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::SetGeometryDirectly
    - Evaluate
    - GetFieldCount
    - OGRCSWLayer::GetNextFeature
    - OGRFeature*::GetFieldIndex
    - OGRFeature::OGRFeature
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetFieldDefnRef
    - OGRCSWLayer::ResetReading
    - empty
    - OGRFeature*::StealGeometry
    - OGRCSWLayer::GetFeatureCount
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCSWLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSWLayer::GetFeatureCountWithHits
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:405,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 409
    functionName: OGRCSWLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRCSWLayer::GetFeatureCountWithHits
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCSWLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:417,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:434,1
    - Dst: GetElementSetName
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:434,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:435,1
    - Dst: OGRCSWDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:438,1
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:438,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:447,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:449,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:452,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:453,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:456,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:456,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 462
    functionName: OGRCSWLayer::GetFeatureCountWithHits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - CPLGetXMLValue
    - CPLDestroyXMLNode
    - CPLAtoGIntBig
    - GetBaseURL
    - GetVersion
    - CPLSPrintf
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - GetElementSetName
    - CPLHTTPDestroyResult
    - CPLError
    - OGRCSWDataSource::HTTPFetch
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCSWLayer::GetFeatureCountWithHits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputSchema
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:472,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:473,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:476,1
    - Dst: GetVersion
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:496,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:496,1
    - Dst: GetMaxRecords
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:497,1
    - Dst: GetElementSetName
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:498,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:498,1
    - Dst: OGRCSWDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:500,1
    - Dst: GetBaseURL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:500,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:506,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:506,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:511,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:512,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:514,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:516,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:524,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:529,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:530,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:533,1
    - Dst: GetOutputSchema
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:537,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:539,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:542,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:544,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:549,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:555,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:558,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:560,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:564,1
    - Dst: GDALDataset*::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:565,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:567,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:573,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:573,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:584,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:588,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:590,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:592,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:594,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:597,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:602,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:604,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:606,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:608,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:616,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:617,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:618,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:619,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:620,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:621,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:622,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:623,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:624,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:626,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:629,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:630,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:631,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:632,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:637,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:638,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:640,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:640,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:642,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:643,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:649,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:650,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:650,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:651,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:655,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:659,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:662,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:664,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:669,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:676,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:679,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 468
    functionDepth: 8
    functionLinenumber: 468
    functionLinenumberEnd: 684
    functionName: OGRCSWLayer::FetchGetRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::swapXY
    - GetMaxRecords
    - CPLError
    - CPLGetXMLValue
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::addRingDirectly
    - CPLGetConfigOption
    - CPLString::empty
    - GDALClose
    - CPLStrdup
    - GML2OGRGeometry_XMLNode
    - VSIMkdir
    - CPLString::c_str
    - OGRAPISpyOpen
    - GetElementSetName
    - OGRLayer*::GetLayerDefn
    - OGRCSWDataSource::HTTPFetch
    - OGRLayer*::CreateFeature
    - OGRFeature*::SetGeometryDirectly
    - c_str
    - CPLTestBool
    - GDALDataset*::CreateLayer
    - OGRLinearRing::OGRLinearRing
    - CPLDestroyXMLNode
    - VSIUnlink
    - OGRLayer*::CreateField
    - GetVersion
    - CPLSPrintf
    - MEMDataset::Create
    - CPL_IGNORE_RET_VAL
    - strstr
    - GetOutputSchema
    - GML_IsSRSLatLongOrder
    - VSIFileFromMemBuffer
    - OGRFeature::OGRFeature
    - CPLFree
    - VSIFCloseL
    - CPLParseXMLFile
    - CPLGetXMLNode
    - GetBaseURL
    - GDALDataset*::GetLayer
    - OGRFeature*::SetField
    - CPLSearchXMLNode
    - CPLHTTPDestroyResult
    - OGRLinearRing*::addPoint
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCSWLayer::FetchGetRecords()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:692,1
    - Dst: OGRCSWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:695,1
    - Dst: OGRCSWLayer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: OGRCSWLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::ISetSpatialFilter
    - OGRCSWLayer::ResetReading
    - OGRCSWLayer::BuildQuery
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSWLayer::ISetSpatialFilter(int iGeomField, const OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:709,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:711,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:714,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:715,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:717,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:718,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:725,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:726,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:727,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:731,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:734,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:736,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:737,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:739,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:741,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:742,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:744,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:746,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:747,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:749,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:751,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:752,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:754,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:756,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:757,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:759,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:761,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:762,1
    - Dst: OGRCSWAddRightPrefixes
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:768,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 770
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 770
    functionName: OGRCSWAddRightPrefixes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - OGRCSWAddRightPrefixes
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRCSWAddRightPrefixes(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:781,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:782,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:789,1
    - Dst: Compile
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:791,1
    - Dst: OGRCSWLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:791,1
    - Dst: WFSGetCustomFuncRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:792,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:803,1
    - Dst: swq_expr_node*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:804,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:805,1
    - Dst: OGRCSWAddRightPrefixes
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:806,1
    - Dst: WFS_TurnSQLFilterToOGCFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:812,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:820,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:822,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:824,1
    - Dst: OGRCSWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:829,1
    - Dst: OGRCSWLayer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:830,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 833
      start: 776
    functionDepth: 9
    functionLinenumber: 776
    functionLinenumberEnd: 833
    functionName: OGRCSWLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRCSWLayer::GetLayerDefn
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - OGRFeatureQuery::OGRFeatureQuery
    - OGRCSWLayer::ResetReading
    - CPLStrdup
    - empty
    - OGRLayer::SetAttributeFilter
    - WFSGetCustomFuncRegistrar
    - OGRCSWLayer::BuildQuery
    - CPLDebug
    - WFS_TurnSQLFilterToOGCFilter
    - swq_expr_node*::Clone
    - GetSWQExpr
    - OGRCSWAddRightPrefixes
    - CPLFree
    - Compile
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSWLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:841,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:845,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:853,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:854,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:854,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:858,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:861,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:867,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:870,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:877,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 884
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 884
    functionName: OGRCSWLayer::BuildQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - getEnvelope
    - empty
    - CPLSPrintf
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRCSWLayer::BuildQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 893
    functionName: OGRCSWDataSource::OGRCSWDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSWDataSource::OGRCSWDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 902
    functionName: OGRCSWDataSource::~OGRCSWDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSWDataSource::~OGRCSWDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:912,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:913,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:915,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:915,1
    - Dst: OGRCSWDataSource::HTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:917,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:923,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:925,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:929,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 936
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 936
    functionName: OGRCSWDataSource::SendGetCapabilities
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - CPLString::c_str
    - CPLURLAddKVP
    - strstr
    - CPLHTTPDestroyResult
    - CPLError
    - OGRCSWDataSource::HTTPFetch
    linkageType: ''
    returnType: CPLHTTPResult
    signature: CPLHTTPResult *OGRCSWDataSource::SendGetCapabilities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:948,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:952,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:958,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:959,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:962,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:963,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:965,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:968,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:968,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:970,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:971,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:972,1
    - Dst: OGRCSWDataSource::SendGetCapabilities
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:975,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:979,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:982,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:984,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:987,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:988,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:995,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:997,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1000,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1001,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1006,1
    - Dst: OGRCSWLayer::OGRCSWLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1008,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1011
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 1011
    functionName: OGRCSWDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - OGRCSWDataSource::SendGetCapabilities
    - atoi
    - CPLFetchBool
    - CPLDestroyXMLNode
    - CSLFetchNameValueDef
    - OGRCSWLayer::OGRCSWLayer
    - CPLDebug
    - EQUAL
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - CPLHTTPDestroyResult
    - CPLError
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRCSWDataSource::Open(const char *pszFilename, char **papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1024
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1024
    functionName: OGRCSWDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRCSWDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1036,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1038,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1041,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1042,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1050,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1054,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1059,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1061,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pszURL
    - pszPost
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1065
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1065
    functionName: OGRCSWDataSource::HTTPFetch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 3
    functionsReached:
    - CPLHTTPFetch
    - CSLDestroy
    - CSLAddNameValue
    - CPLHTTPDestroyResult
    - CPLError
    linkageType: ''
    returnType: CPLHTTPResult
    signature: "CPLHTTPResult *OGRCSWDataSource::HTTPFetch(const char *pszURL,\n                                           const
      char *pszPost)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: OGRCSWDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRCSWDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSWDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1084,1
    - Dst: OGRCSWDataSource::OGRCSWDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1087,1
    - Dst: OGRCSWDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1096
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1096
    functionName: OGRCSWDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRCSWDataSource*::Open
    - OGRCSWDriverIdentify
    - OGRCSWDataSource::OGRCSWDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCSWDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1105,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1108,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1119,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1143
    functionName: RegisterOGRCSW
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csw/ogrcswdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRCSW()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: OGRPGDataSource::OGRPGDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource::OGRPGDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:41,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:43,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:44,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:49,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:54,1
    - Dst: OGRPGDataSource::FlushSoftTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:56,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:68,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:69,1
    - Dst: PQfinish
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 78
    functionName: OGRPGDataSource::~OGRPGDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPG_PQexec
    - OGRPGDataSource::FlushSoftTransaction
    - CSLDestroy
    - OGRPGDataSource::FlushCache
    - OGRPGClearResult
    - CPLFree
    - CSLFetchNameValue
    - PQfinish
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource::~OGRPGDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:86,1
    - Dst: RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: OGRPGDataSource::FlushCacheWithRet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - RunDeferredCreationIfNecessary
    - OGRPGDataSource::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::FlushCacheWithRet(bool /* bAtClosing */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::FlushCacheWithRet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: OGRPGDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGDataSource::FlushCacheWithRet
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRPGDataSource::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:111,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:112,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:112,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:114,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: OGRPGDataSource::GetCurrentSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - PQgetisnull
    - OGRPG_PQexec
    - PQntuples
    - OGRPGClearResult
    - PQgetvalue
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGDataSource::GetCurrentSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:133,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:135,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:137,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:138,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:138,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:139,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:140,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:141,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:142,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:143,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - psVersion
    - pszVer
    argTypes:
    - PGver*
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: OGRPGDataSource::OGRPGDecodeVersionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - std::string::find
    - std::string::resize
    - CSLTokenizeString2
    - memset
    - CPLStringList::size
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRPGDataSource::OGRPGDecodeVersionString(PGver *psVersion,\n
      \                                              const char *pszVer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:165,1
    - Dst: CPLHashSetHashStr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:166,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _psTableEntry
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: OGRPGHashTableEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLHashSetHashStr
    - CPLString
    - static_cast<const PGTableEntry *>
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OGRPGHashTableEntry(const void *_psTableEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:174,1
    - Dst: static_cast<const PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:176,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:177,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - _psTableEntry1
    - _psTableEntry2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: OGRPGEqualTableEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - static_cast<const PGTableEntry *>
    linkageType: ''
    returnType: int
    signature: "int OGRPGEqualTableEntry(const void *_psTableEntry1,\n                                const
      void *_psTableEntry2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PGGeomColumnDesc *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:189,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:189,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:193,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - psTableEntry
    - pszName
    argTypes:
    - PGTableEntry*
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: OGRPGTableEntryAddGeomColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<PGGeomColumnDesc *>
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableEntryAddGeomColumn(\n    PGTableEntry *psTableEntry,
      const char *pszName,\n    const char *pszGeomType = nullptr, int GeometryTypeFlags
      = 0,\n    int nSRID = UNDETERMINED_SRID, PostgisType ePostgisType = GEOM_TYPE_UNKNOWN,\n
      \   int bNullable = TRUE)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:212,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:213,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:214,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:215,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:218,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:219,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:221,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - _psTableEntry
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 223
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 223
    functionName: OGRPGFreeTableEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - static_cast<PGTableEntry *>
    linkageType: ''
    returnType: void
    signature: void OGRPGFreeTableEntry(void *_psTableEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:230,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:231,1
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:232,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSetTables
    - pszTableName
    - pszSchemaName
    argTypes:
    - CPLHashSet*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: OGRPGFindTableEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLHashSetLookup
    - static_cast<PGTableEntry *>
    - const_cast<char *>
    linkageType: ''
    returnType: PGTableEntry
    signature: "PGTableEntry *OGRPGFindTableEntry(CPLHashSet *hSetTables,\n                                         const
      char *pszTableName,\n                                         const char *pszSchemaName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:241,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:241,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:242,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:243,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:244,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hSetTables
    - pszTableName
    - pszSchemaName
    - pszDescription
    argTypes:
    - CPLHashSet*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: OGRPGAddTableEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLHashSetInsert
    - CPLCalloc
    - static_cast<PGTableEntry *>
    - CPLStrdup
    linkageType: ''
    returnType: PGTableEntry
    signature: "PGTableEntry *OGRPGAddTableEntry(CPLHashSet *hSetTables,\n                                        const
      char *pszTableName,\n                                        const char *pszSchemaName,\n
      \                                       const char *pszDescription)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:259,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:260,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:268,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:275,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:279,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:282,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:286,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:310,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:311,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:323,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:327,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:331,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:340,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:344,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:353,1
    - Dst: QuoteAndEscapeConnectionParam
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:357,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:366,1
    - Dst: getenv
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:367,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:372,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:376,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:381,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:386,1
    - Dst: QuoteAndEscapeConnectionParam
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:390,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:390,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:419,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:468,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:469,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:492,1
    - Dst: ParseAndRemoveParam
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:493,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:503,1
    - Dst: ParseAndRemoveParam
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:505,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:507,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:507,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:510,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:526,1
    - Dst: ParseAndRemoveParam
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:527,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:530,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:530,1
    - Dst: PQconnectdb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:536,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:537,1
    - Dst: PQstatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:542,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:543,1
    - Dst: PQfinish
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:545,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:558,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:559,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:561,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:565,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:572,1
    - Dst: PQsetClientEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:575,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:577,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:579,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:584,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:585,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:586,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:591,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:592,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:598,1
    - Dst: PQsetNoticeProcessor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:604,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:611,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:615,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:616,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:620,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:624,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:632,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:633,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:634,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:642,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:650,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:651,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:654,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:657,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:657,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:661,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:661,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:662,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:663,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:665,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:669,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:670,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:672,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:675,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:675,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:679,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:680,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:680,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:683,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:683,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:685,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:687,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:688,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:690,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:691,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:693,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:693,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:694,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:694,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:696,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:698,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:700,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:701,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:707,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:718,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:719,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:720,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:724,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:730,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:730,1
    - Dst: OGRPGDataSource::OGRPGDecodeVersionString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:732,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:735,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:736,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:743,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:746,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:746,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:747,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:750,1
    - Dst: OGRPGDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:758,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:761,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:764,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:766,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:768,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:770,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:771,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:773,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:775,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:775,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:777,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:777,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:778,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:779,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:781,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:781,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:782,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:786,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:791,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:796,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:802,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:804,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:805,1
    - Dst: OGRPGDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:807,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:817,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:820,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:821,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:822,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:822,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:824,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:828,1
    - Dst: static_cast<Oid>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:831,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:831,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:833,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:833,1
    - Dst: static_cast<Oid>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:836,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:836,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:841,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:853,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:854,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:855,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:859,1
    - Dst: OGRPGDataSource::OGRPGDecodeVersionString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:861,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:863,1
    - Dst: OGRPG_Check_Table_Exists
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:867,1
    - Dst: OGRPG_Check_Table_Exists
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:868,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:877,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:879,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:880,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:882,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:882,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:885,1
    - Dst: OGRPGDataSource::GetCurrentSchema
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:890,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:892,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:893,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:894,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:896,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:897,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:898,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 303
    argCount: 4
    argNames:
    - pszNewName
    - bUpdate
    - bTestOpen
    - papszOpenOptionsIn
    argTypes:
    - char*
    - int
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 901
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 901
    functionName: OGRPGDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Oid>
    - QuoteAndEscapeConnectionParam
    - PQstatus
    - atoi
    - OGRPGDataSource::GetCurrentSchema
    - CPLDebug
    - OGRPGEscapeString
    - strcmp
    - GDALVersionInfo
    - CPLError
    - EQUALN
    - STARTS_WITH
    - std::string::c_str
    - CPLGetConfigOption
    - CPLString::empty
    - PQfinish
    - std::string::empty
    - OGRPGDataSource::OGRPGDecodeVersionString
    - ParseAndRemoveParam
    - CPLStrdup
    - CPLString::substr
    - static_cast<unsigned char>
    - std::string::find
    - CPL_MSBPTR64
    - OGRPG_Check_Table_Exists
    - OGRPGDataSource::SoftStartTransaction
    - PQntuples
    - CPLString::c_str
    - PQsetNoticeProcessor
    - strlen
    - CSLTokenizeString2
    - CSLCount
    - PQsetClientEncoding
    - CPLString::back
    - STARTS_WITH_CI
    - c_str
    - isdigit
    - CPLTestBool
    - PQconnectdb
    - getenv
    - CPLSPrintf
    - PQgetlength
    - CPLAssert
    - CPL_MSBPTR32
    - strstr
    - CPLString::find
    - PQresultStatus
    - CPLFree
    - memmove
    - PQgetvalue
    - empty
    - OGRPGDataSource::SoftCommitTransaction
    - OGRPG_PQexec
    - CSLFetchNameValueDef
    - std::string::substr
    - EQUAL
    - CSLDuplicate
    - PQfformat
    - PQerrorMessage
    - OGRPGClearResult
    - memcpy
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int OGRPGDataSource::Open(const char *pszNewName, int bUpdate, int
      bTestOpen,\n                          char **papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:920,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:920,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:926,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:954,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:987,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:998,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:999,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1000,1
    - Dst: static_cast<PGTableEntry **>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1003,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1003,1
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1005,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1006,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1007,1
    - Dst: OGRPGTableEntryAddGeomColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1008,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1009,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1014,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1016,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1016,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1021,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1021,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1023,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1023,1
    - Dst: CPLHashSetNew
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1036,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1042,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1042,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1056,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1081,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1081,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1083,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1087,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1088,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1096,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1117,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1119,1
    - Dst: CPLString::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1129,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1130,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1135,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1143,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1144,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1145,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1150,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1153,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1157,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1161,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1164,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1168,1
    - Dst: static_cast<PGTableEntry **>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1186,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1186,1
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1189,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1189,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1190,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1191,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1193,1
    - Dst: OGRPGTableEntryAddGeomColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1195,1
    - Dst: OGRPGFindTableEntry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1201,1
    - Dst: OGRPGAddTableEntry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1203,1
    - Dst: OGRPGTableEntryAddGeomColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1205,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1210,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1221,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1239,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1260,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1270,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1270,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1272,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1274,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1276,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1277,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1286,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1300,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1301,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1302,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1303,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1303,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1304,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1304,1
    - Dst: static_cast<PostgisType>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1305,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1306,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1307,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1307,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1308,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1312,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1316,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1320,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1321,1
    - Dst: static_cast<PGTableEntry **>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1338,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1338,1
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1341,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1341,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1342,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1343,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1345,1
    - Dst: OGRPGTableEntryAddGeomColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1347,1
    - Dst: OGRPGFindTableEntry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1353,1
    - Dst: OGRPGAddTableEntry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1355,1
    - Dst: OGRPGTableEntryAddGeomColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1358,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1368,1
    - Dst: static_cast<PGTableEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1376,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1377,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1382,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1393,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1402,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1402,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1404,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1404,1
    - Dst: OGRPGDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1406,1
    - Dst: OGRPGTableLayer*::SetGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1414,1
    - Dst: OGRPGTableLayer*::SetGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1422,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1431,1
    - Dst: OGRPGFreeTableEntry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1434,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1435,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 204
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 1436
    functionName: OGRPGDataSource::LoadTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer*::SetGeometryInformation
    - atoi
    - std::set::insert
    - CPLString
    - CPLError
    - CPLString::resize
    - CPLGetConfigOption
    - std::string::c_str
    - OGRPGFreeTableEntry
    - std::string::empty
    - CPLStrdup
    - OGRPGTableEntryAddGeomColumn
    - PQntuples
    - CPLString::c_str
    - CPLRealloc
    - static_cast<PGTableEntry **>
    - static_cast<PGTableEntry *>
    - strlen
    - std::move
    - CSLTokenizeString2
    - GetName
    - CPLHashSetNew
    - std::string::back
    - c_str
    - CPLTestBool
    - CPLHashSetDestroy
    - CPLString::Printf
    - OGRPGAddTableEntry
    - std::set::find
    - CPLHashSetLookup
    - CPLString::tolower
    - strstr
    - PQresultStatus
    - CPLCalloc
    - CPLFree
    - PQgetvalue
    - static_cast<PostgisType>
    - OGRPG_PQexec
    - OGRPGDataSource::OpenTable
    - EQUAL
    - strchr
    - OGRPGFindTableEntry
    - CSLFindString
    - PQerrorMessage
    - OGRPGClearResult
    - std::string::pop_back
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource::LoadTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::OGRPGTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1454,1
    - Dst: OGRPGTableLayer*::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1456,1
    - Dst: static_cast<OGRPGTableLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1465,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - osCurrentSchemaIn
    - pszNewName
    - pszSchemaName
    - pszDescription
    - pszGeomColumnForced
    - bUpdate
    - bTestOpen
    argTypes:
    - CPLString
    - char*
    - char*
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1470
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1470
    functionName: OGRPGDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - static_cast<OGRPGTableLayer **>
    - OGRPGTableLayer::OGRPGTableLayer
    - OGRPGTableLayer*::ReadTableDefinition
    linkageType: ''
    returnType: OGRPGTableLayer
    signature: "OGRPGTableLayer *OGRPGDataSource::OpenTable(CPLString &osCurrentSchemaIn,\n
      \                                           const char *pszNewName,\n                                            const
      char *pszSchemaName,\n                                            const char
      *pszDescription,\n                                            const char *pszGeomColumnForced,\n
      \                                           int bUpdate, int bTestOpen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1480,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1484,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1490,1
    - Dst: GetTableName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1491,1
    - Dst: GetSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1492,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1494,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1494,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1497,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1501,1
    - Dst: OGRPGDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1509,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1511,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1512,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1513,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1514,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1514,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1515,1
    - Dst: OGRPGDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1520
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1520
    functionName: OGRPGDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRPGDataSource::SoftCommitTransaction
    - OGRPGDataSource::GetLayerCount
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - GetSchemaName
    - OGRPGDataSource::EndCopy
    - CPLString::empty
    - CPLString::Printf
    - CPLDebug
    - OGRPGDataSource::SoftStartTransaction
    - GetTableName
    - CPLString::c_str
    - OGRPGClearResult
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1536,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1538,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1543,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1561,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1566,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1568,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1570,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1575,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1594,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1599,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1607,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1630,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1630,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1631,1
    - Dst: OGRPGCommonLaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1635,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1638,1
    - Dst: OGRPGCommonGenerateShortEnoughIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1639,1
    - Dst: OGRPGCommonLaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1646,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1650,1
    - Dst: OGRPGCommonGenerateShortEnoughIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1650,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1657,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1659,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1660,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1660,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1666,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1667,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1671,1
    - Dst: OGRPGDataSource::FindSchema
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1677,1
    - Dst: auto::has_value
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1678,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1680,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1681,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1684,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1685,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1685,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1694,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1695,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1695,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1708,1
    - Dst: OGRPGDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1709,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1710,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1711,1
    - Dst: OGRPGDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1714,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1718,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1718,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1718,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1720,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1721,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1721,1
    - Dst: OGRPGDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1723,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1727,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1731,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1732,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1733,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1742,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1752,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1756,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1761,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1762,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1770,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1776,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1777,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1780,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1786,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1792,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1793,1
    - Dst: OGRPGDataSource::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1804,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1806,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1810,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1813,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1814,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1822,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1826,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1827,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1833,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1858,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1859,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1863,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1865,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1866,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1867,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1875,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1876,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1887,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1889,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1896,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1900,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1901,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1903,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1906,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1908,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1910,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1910,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1911,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1913,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1914,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1917,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1920,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1922,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1922,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1923,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1925,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1926,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1930,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1931,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1932,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1933,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1935,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1945,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1945,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1947,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1954,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1958,1
    - Dst: OGRPGDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1966,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1971,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1971,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1972,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1974,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1974,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1975,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1976,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1977,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1979,1
    - Dst: OGRPGDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1981,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1985,1
    - Dst: OGRPGCommonGenerateSpatialIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1992,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1995,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1996,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1996,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1997,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:1998,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2000,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2002,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2002,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2004,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2006,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2008,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2010,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2011,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2013,1
    - Dst: OGRPGDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2015,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2019,1
    - Dst: OGRPGDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2027,1
    - Dst: OGRPGTableLayer::OGRPGTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2033,1
    - Dst: OGRPGTableLayer*::SetTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2035,1
    - Dst: OGRPGTableLayer*::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2037,1
    - Dst: OGRPGTableLayer*::SetUTF8ToASCIIFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2038,1
    - Dst: OGRPGTableLayer*::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2039,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2039,1
    - Dst: OGRPGTableLayer*::SetForcedGeometryTypeFlags
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2041,1
    - Dst: OGRPGTableLayer*::SetCreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2042,1
    - Dst: OGRPGTableLayer*::SetDeferredCreation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2043,1
    - Dst: OGRPGTableLayer*::SetForcedDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2047,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2053,1
    - Dst: OGRPGTableLayer*::SetOverrideColumnTypes
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2058,1
    - Dst: OGRPGTableLayer*::AllowAutoFIDOnCreateViaCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2060,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2061,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2061,1
    - Dst: OGRPGTableLayer*::SetUseCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2062,1
    - Dst: OGRPGTableLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2065,1
    - Dst: static_cast<OGRPGTableLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2070,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2071,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2075,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2076,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 231
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2079
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 2079
    functionName: OGRPGDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGEscapeColumnName
    - OGRPGTableLayer*::SetForcedGeometryTypeFlags
    - static_cast<OGRPGTableLayer **>
    - OGRPGDataSource::EndCopy
    - strncpy
    - OGRPGTableLayer*::SetTableDefinition
    - CPLError
    - OGRPGDataSource::FetchSRSId
    - STARTS_WITH
    - std::string::c_str
    - CPLGetConfigOption
    - CSLFetchNameValue
    - auto::c_str
    - OGRPGTableLayer*::SetUseCopy
    - CPLErrorReset
    - CPLStrdup
    - OGRPGDataSource::GetLayerByName
    - OGRPGTableLayer*::SetUTF8ToASCIIFlag
    - OGR_GT_HasZ
    - OGRPGCommonGenerateShortEnoughIdentifier
    - OGRPGDataSource::SoftStartTransaction
    - CPLString::c_str
    - OGRPGTableLayer*::SetOverrideColumnTypes
    - CPLPopErrorHandler
    - std::move
    - CPLRealloc
    - CPLMalloc
    - wkbFlatten
    - GetName
    - auto::IsGeographic
    - c_str
    - CPLTestBool
    - CPLFetchBool
    - OGRPGDataSource::FindSchema
    - auto::has_value
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - OGRPGTableLayer*::SetForcedDescription
    - CPLSPrintf
    - OGRPGTableLayer*::SetLaunderFlag
    - OGRPGTableLayer*::SetCreateSpatialIndex
    - OGRPGTableLayer::OGRPGTableLayer
    - OGRPGDataSource::DeleteLayer
    - static_cast<char *>
    - PQresultStatus
    - OGR_GT_HasM
    - OGRPGCommonLaunderName
    - CPLFree
    - OGRPGTableLayer*::SetDeferredCreation
    - empty
    - OGRPGDataSource::GetLayerCount
    - OGRPGDataSource::SoftCommitTransaction
    - OGRPG_PQexec
    - OGRPGTableLayer*::AllowAutoFIDOnCreateViaCopy
    - OGRPGCommonGenerateSpatialIndexName
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - CPLPushErrorHandler
    - PQerrorMessage
    - OGRPGTableLayer*::SetMetadataItem
    - OGRPGClearResult
    - OGRPGDataSource::SoftRollbackTransaction
    - OGRPGTableLayer*::SetPrecisionFlag
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRPGDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                       const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                       CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2088,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2088,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2089,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2091,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2093,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2095,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2097,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2099,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2103
      start: 2085
    functionDepth: 0
    functionLinenumber: 2085
    functionLinenumberEnd: 2103
    functionName: OGRPGDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::LoadTables
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2109
    functionDepth: 3
    functionLinenumber: 2109
    functionLinenumberEnd: 2113
    functionName: OGRPGDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRPGDataSource::LoadTables
    linkageType: ''
    returnType: int
    signature: int OGRPGDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2127
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2127
    functionName: OGRPGDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDataSource::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPGDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2140,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2141,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2146,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2151,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2152,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2152,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2153,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2155,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2162,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2168,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2168,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2174,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2176,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - pszSchemaNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2187
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2187
    functionName: OGRPGDataSource::FindSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - OGRPG_PQexec
    - OGRPGDataSource::EndCopy
    - OGRPGEscapeString
    - PQntuples
    - strcmp
    - CPLError
    - OGRPGClearResult
    - std::string::c_str
    - PQgetvalue
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> OGRPGDataSource::FindSchema(const char *pszSchemaNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2209,1
    - Dst: OGRPGTableLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2209,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2220,1
    - Dst: OGRPGTableLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2220,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2231,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2237,1
    - Dst: OGRPGDataSource::FindSchema
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2241,1
    - Dst: auto::has_value
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2242,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2244,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2245,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2248,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2248,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2249,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2253,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2256,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2259,1
    - Dst: cpl::down_cast<OGRPGTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2268,1
    - Dst: OGRPGDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2268,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2272,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2275,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2277,1
    - Dst: OGRPGDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2278,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2281,1
    - Dst: OGRPGDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2285,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2290,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2292,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2295
      start: 2193
    functionDepth: 2
    functionLinenumber: 2193
    functionLinenumberEnd: 2295
    functionName: OGRPGDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    - OGRPGDataSource::GetLayerByName
    - OGRPGDataSource::FindSchema
    - auto::has_value
    - OGRPGDataSource::EndCopy
    - OGRPGDataSource::OpenTable
    - EQUAL
    - strchr
    - strcmp
    - CPLPopErrorHandler
    - strlen
    - cpl::down_cast<OGRPGTableLayer *>
    - CPLString
    - CPLPushErrorHandler
    - CPLFree
    - OGRPGTableLayer*::GetName
    - auto::c_str
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPGDataSource::GetLayerByName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - pszMessage
    argTypes:
    - CPL_UNUSED*
    - char*
    constantsTouched: []
    func_position:
      end: 2304
      start: 2301
    functionDepth: 1
    functionLinenumber: 2301
    functionLinenumberEnd: 2304
    functionName: OGRPGNoticeProcessor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRPGNoticeProcessor(CPL_UNUSED void *arg, const char *pszMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2313
    functionDepth: 0
    functionLinenumber: 2313
    functionLinenumberEnd: 2318
    functionName: OGRPGDataSource::InitializeMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::InitializeMetadataTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2337,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2338,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2340,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2343,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2351,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2354,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2354,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2356,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2357,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2362,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2362,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2366,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2367,1
    - Dst: std::unique_ptr::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2368,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2372,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2379,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2380,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2383,1
    - Dst: std::unique_ptr::StripTOWGS84IfKnownDatumAndAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2386,1
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2391,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2391,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2392,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2393
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2393
    functionName: OGRPGDataSource::FetchSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::importFromWkt
    - atoi
    - std::unique_ptr::importFromEPSG
    - OGRPGDataSource::EndCopy
    - CPLError
    - end
    - emplace
    - find
    - PQntuples
    - CPLString::c_str
    - std::move
    - std::unique_ptr::reset
    - std::unique_ptr::SetAxisMappingStrategy
    - CPLString::Printf
    - PQresultStatus
    - auto::second::get
    - OGRSpatialReference::OGRSpatialReference
    - std::unique_ptr::StripTOWGS84IfKnownDatumAndAllowed
    - OGRPG_PQexec
    - EQUAL
    - PQerrorMessage
    - OGRPGClearResult
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRPGDataSource::FetchSRS(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2414,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2421,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2424,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2427,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2430,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2430,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2432,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2445,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2445,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2448,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2451,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2451,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2453,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2454,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2458,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2463,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2471,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2473,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2481,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2482,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2483,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2484,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2484,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2485,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2491,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2492,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2496,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2508,1
    - Dst: OGRPGDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2512,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2519,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2522,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2524,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2524,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2525,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2532,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2534,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2538,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2543,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2543,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2545,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2548,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2548,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2553,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2555,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2555,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2559,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2560,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2562,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2562,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2563,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 2566
      start: 2402
    functionDepth: 7
    functionLinenumber: 2402
    functionLinenumberEnd: 2566
    functionName: OGRPGDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - atoi
    - OGRSpatialReference::GetAuthorityName
    - OGRPGEscapeString
    - OGRPGDataSource::InitializeMetadataTables
    - PQntuples
    - CPLString::c_str
    - strlen
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::exportToProj4
    - CPLString::Printf
    - OGRSpatialReference::AutoIdentifyEPSG
    - PQresultStatus
    - CPLFree
    - PQgetvalue
    - OGRPG_PQexec
    - EQUAL
    - OGRSpatialReference::GetAuthorityCode
    - OGRPGClearResult
    linkageType: ''
    returnType: int
    signature: int OGRPGDataSource::FetchSRSId(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2578,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2583,1
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2584,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2588,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2608
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2608
    functionName: OGRPGDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    - OGRPGDataSource::EndCopy
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::StartTransaction(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2620,1
    - Dst: OGRPGDataSource::FlushCacheWithRet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2627,1
    - Dst: OGRPGDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2630,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2639,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2642,1
    - Dst: InvalidateCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2650,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2651,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2658
    functionName: OGRPGDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - InvalidateCursor
    - CPLAssert
    - OGRPGDataSource::RollbackTransaction
    - CPLError
    - OGRPGDataSource::FlushCacheWithRet
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2670,1
    - Dst: OGRPGDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2677,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2685,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2688,1
    - Dst: InvalidateCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2696,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2697,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2666
    functionDepth: 3
    functionLinenumber: 2666
    functionLinenumberEnd: 2704
    functionName: OGRPGDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - InvalidateCursor
    - OGRPGDataSource::FlushCache
    - CPLAssert
    - CPLError
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2728
    functionName: OGRPGDataSource::SoftStartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 3
    functionsReached:
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::SoftStartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2740,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2747,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2755,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2737
    functionDepth: 1
    functionLinenumber: 2737
    functionLinenumberEnd: 2761
    functionName: OGRPGDataSource::SoftCommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 3
    functionsReached:
    - CPLAssert
    - OGRPGDataSource::EndCopy
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::SoftCommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2773,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2780,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2788,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2770
    functionDepth: 1
    functionLinenumber: 2770
    functionLinenumberEnd: 2794
    functionName: OGRPGDataSource::SoftRollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - OGRPGDataSource::EndCopy
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::SoftRollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2814,1
    - Dst: OGRPGDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2803
    functionDepth: 1
    functionLinenumber: 2803
    functionLinenumberEnd: 2817
    functionName: OGRPGDataSource::FlushSoftTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - OGRPGDataSource::DoTransactionCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::FlushSoftTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2827,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2829,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2832,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszCommand
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2840
      start: 2823
    functionDepth: 1
    functionLinenumber: 2823
    functionLinenumberEnd: 2840
    functionName: OGRPGDataSource::DoTransactionCommand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 7
    functionsReached:
    - OGRPG_PQexec
    - PQresultStatus
    - OGRPGDataSource::GetPGConn
    - OGRPGClearResult
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::DoTransactionCommand(const char *pszCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2855
    functionDepth: 0
    functionLinenumber: 2855
    functionLinenumberEnd: 2858
    functionName: OGRPGNoResetResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2862
    functionDepth: 0
    functionLinenumber: 2862
    functionLinenumberEnd: 2866
    functionName: OGRPGNoResetResultLayer::GetFromClauseForGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFromClauseForGetExtent() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGFldDefn
    argTypes:
    - OGRPGGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 2871
      start: 2868
    functionDepth: 0
    functionLinenumber: 2868
    functionLinenumberEnd: 2871
    functionName: OGRPGNoResetResultLayer::ResolveSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResolveSRID(const OGRPGGeomFieldDefn *poGFldDefn) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadResultDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2882,1
    - Dst: CreateMapFromFieldNameToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poDSIn
    - hResultIn
    argTypes:
    - OGRPGDataSource*
    - PGresult*
    constantsTouched: []
    func_position:
      end: 2887
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2887
    functionName: OGRPGNoResetResultLayer::OGRPGNoResetResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateMapFromFieldNameToIndex
    - ReadResultDefinition
    linkageType: ''
    returnType: void
    signature: "void OGRPGNoResetResultLayer::OGRPGNoResetResultLayer(OGRPGDataSource
      *poDSIn,\n                                                 PGresult *hResultIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2893
    functionDepth: 1
    functionLinenumber: 2893
    functionLinenumberEnd: 2898
    functionName: OGRPGNoResetResultLayer::~OGRPGNoResetResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGClearResult
    linkageType: ''
    returnType: void
    signature: void OGRPGNoResetResultLayer::~OGRPGNoResetResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2904
    functionDepth: 0
    functionLinenumber: 2904
    functionLinenumberEnd: 2907
    functionName: OGRPGNoResetResultLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGNoResetResultLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2916,1
    - Dst: RecordToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2920,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2913
    functionDepth: 0
    functionLinenumber: 2913
    functionLinenumberEnd: 2923
    functionName: OGRPGNoResetResultLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - PQntuples
    - static_cast<int>
    - RecordToFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGNoResetResultLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2932
    functionName: OGRPGMemLayerWrapper::OGRPGMemLayerWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGMemLayerWrapper(const OGRPGMemLayerWrapper &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2933
    functionName: '&operator=(const OGRPGMemLayerWrapper &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGMemLayerWrapper
    signature: OGRPGMemLayerWrapper &operator=(const OGRPGMemLayerWrapper &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMemDSIn
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 2943
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2943
    functionName: OGRPGMemLayerWrapper::OGRPGMemLayerWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetLayer
    linkageType: ''
    returnType: void
    signature: void OGRPGMemLayerWrapper(GDALDataset *poMemDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGMemLayerWrapper::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2950
    functionName: OGRPGMemLayerWrapper::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGMemLayerWrapper::ResetReading
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGMemLayerWrapper::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2955
    functionName: OGRPGMemLayerWrapper::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGMemLayerWrapper::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGMemLayerWrapper::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2957
    functionDepth: 0
    functionLinenumber: 2957
    functionLinenumberEnd: 2960
    functionName: OGRPGMemLayerWrapper::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGMemLayerWrapper::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2962
    functionDepth: 0
    functionLinenumber: 2962
    functionLinenumberEnd: 2965
    functionName: OGRPGMemLayerWrapper::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2968
    functionDepth: 0
    functionLinenumber: 2968
    functionLinenumberEnd: 2971
    functionName: OGRPGMemLayerWrapper::~OGRPGMemLayerWrapper()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGMemLayerWrapper::~OGRPGMemLayerWrapper()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2981,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2984,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2985,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2986,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2987,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2988,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2989,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2990,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:2992,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - pszKey
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3001
      start: 2977
    functionDepth: 1
    functionLinenumber: 2977
    functionLinenumberEnd: 3001
    functionName: OGRPGDataSource::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *OGRPGDataSource::GetMetadataItem(const char *pszKey,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isspace
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3013,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3013,1
    - Dst: OGRPGDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3016,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3021,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3022,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3028,1
    - Dst: OGRPGDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3035,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3038,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3038,1
    - Dst: OGRPGDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3040,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3052,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3053,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3054,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3062,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3063,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3065,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3065,1
    - Dst: OGRPGNoResetResultLayer::OGRPGNoResetResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3068,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3069,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3070,1
    - Dst: auto::CopyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3071,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3073,1
    - Dst: OGRPGMemLayerWrapper::OGRPGMemLayerWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3073,1
    - Dst: OGRPGDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3080,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3083,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3086,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3094,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3096,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3098,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3099,1
    - Dst: OGRPGResultLayer::OGRPGResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3102,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3104,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3106,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3107,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3108,1
    - Dst: OGRPGDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3110,1
    - Dst: OGRPGResultLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3113,1
    - Dst: OGRPGDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3119,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3123,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 3126
      start: 3007
    functionDepth: 3
    functionLinenumber: 3007
    functionLinenumberEnd: 3126
    functionName: OGRPGDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::CopyLayer
    - OGRPGNoResetResultLayer::OGRPGNoResetResultLayer
    - CPLDebug
    - IsGenericSQLDialect
    - static_cast<unsigned char>
    - OGRPGDataSource::SoftStartTransaction
    - PQntuples
    - std::isspace
    - GetName
    - OGRPGResultLayer::OGRPGResultLayer
    - STARTS_WITH_CI
    - CPLString::Printf
    - OGRPGResultLayer*::SetSpatialFilter
    - MEMDataset::Create
    - OGRPGDataSource::DeleteLayer
    - strstr
    - PQresultStatus
    - OGRPGMemLayerWrapper::OGRPGMemLayerWrapper
    - std::unique_ptr<GDALDataset>
    - auto::release
    - OGRPGDataSource::GetLayerCount
    - OGRPGDataSource::SoftCommitTransaction
    - OGRPG_PQexec
    - OGRPGDataSource::FlushCache
    - GDALDataset::ExecuteSQL
    - EQUAL
    - OGRPGClearResult
    - OGRPGDataSource::SoftRollbackTransaction
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRPGDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                     OGRGeometry *poSpatialFilter,\n                                      const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PQgetCancel
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3134,1
    - Dst: PQcancel
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3139,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3141,1
    - Dst: PQfreeCancel
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3132
    functionDepth: 1
    functionLinenumber: 3132
    functionLinenumberEnd: 3146
    functionName: OGRPGDataSource::AbortSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - PQfreeCancel
    - PQgetCancel
    - PQcancel
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::AbortSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 3156
      start: 3152
    functionDepth: 0
    functionLinenumber: 3152
    functionLinenumberEnd: 3156
    functionName: OGRPGDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3166,1
    - Dst: OGRPGDataSource::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poPGLayer
    argTypes:
    - OGRPGTableLayer*
    constantsTouched: []
    func_position:
      end: 3169
      start: 3162
    functionDepth: 1
    functionLinenumber: 3162
    functionLinenumberEnd: 3169
    functionName: OGRPGDataSource::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGDataSource::EndCopy
    - OGRPGDataSource::StartCopy
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource::StartCopy(OGRPGTableLayer *poPGLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3175
    functionDepth: 1
    functionLinenumber: 3175
    functionLinenumberEnd: 3186
    functionName: OGRPGDataSource::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 11
    functionsReached:
    - OGRPGDataSource::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDataSource::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::OGRSystemTablesEventTriggerExists
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3200,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3202,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3211,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3218,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3220,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3226,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3232,1
    - Dst: OGRPGDataSource::HasWritePermissionsOnMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3240,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3246,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3255,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3256,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3257,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3259,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3262,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3264,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3271,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3272,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3274,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3277,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3279,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3283,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3284,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3286,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3289,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3291,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3314,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3315,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3317,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3320,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3324,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3327,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3328,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3330,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3333,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3335,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3341,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3342,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3344,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3347,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3354
    functionName: OGRPGDataSource::CreateMetadataTableIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPG_PQexec
    - PQresultStatus
    - OGRPGDataSource::OGRSystemTablesEventTriggerExists
    - OGRPGDataSource::HasWritePermissionsOnMetadataTable
    - CPLError
    - OGRPGClearResult
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDataSource::CreateMetadataTableIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3362,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3360
    functionDepth: 1
    functionLinenumber: 3360
    functionLinenumberEnd: 3369
    functionName: OGRPGDataSource::IsSuperUser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPG_PQexec
    - OGRPGClearResult
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDataSource::IsSuperUser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3378,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3383
    functionName: OGRPGDataSource::OGRSystemTablesEventTriggerExists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPG_PQexec
    - OGRPGClearResult
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDataSource::OGRSystemTablesEventTriggerExists()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3392,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3392,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3397,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3404,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3408,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3418,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3424,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3428,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3429,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3430,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3430,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3431,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3434,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3389
    functionDepth: 1
    functionLinenumber: 3389
    functionLinenumberEnd: 3440
    functionName: OGRPGDataSource::HasOgrSystemTablesMetadataTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 0
    functionsReached:
    - PQgetisnull
    - CPLTestBool
    - OGRPG_PQexec
    - PQntuples
    - strcmp
    - CPLError
    - OGRPGClearResult
    - CPLGetConfigOption
    - PQgetvalue
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDataSource::HasOgrSystemTablesMetadataTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::HasOgrSystemTablesMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3452,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3454,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3461,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3462,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3463,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3463,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3464,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp:3467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3446
    functionDepth: 2
    functionLinenumber: 3446
    functionLinenumberEnd: 3474
    functionName: OGRPGDataSource::HasWritePermissionsOnMetadataTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
    functionUses: 1
    functionsReached:
    - PQgetisnull
    - OGRPG_PQexec
    - PQntuples
    - strcmp
    - CPLError
    - OGRPGClearResult
    - OGRPGDataSource::HasOgrSystemTablesMetadataTable
    - PQgetvalue
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDataSource::HasWritePermissionsOnMetadataTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:27,1
    - Dst: OGRPGResultLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:33,1
    - Dst: ReadResultDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:35,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:43,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:46,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:47,1
    - Dst: PQfname
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:47,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:48,1
    - Dst: PQftable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:53,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:57,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:60,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:62,1
    - Dst: std::pair<int, int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:63,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:71,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:71,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:72,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:73,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:78,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:78,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:79,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:81,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:90,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:93,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:95,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:100,1
    - Dst: PQftable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:106,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:110,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:115,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:115,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:117,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:119,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:122,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:122,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:124,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:124,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:127,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - poDSIn
    - pszRawQueryIn
    - hInitialResultIn
    argTypes:
    - OGRPGDataSource*
    - char*
    - PGresult*
    constantsTouched: []
    func_position:
      end: 130
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 130
    functionName: OGRPGResultLayer::OGRPGResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - ReadResultDefinition
    - strcmp
    - CPLString::ifind
    - GetPGConn
    - GetFieldDefn
    - OGRPGResultLayer::BuildFullQueryStatement
    - PQnfields
    - GetGeomFieldCount
    - CPLString::empty
    - CPLStrdup
    - PQntuples
    - GetGeomFieldIndex
    - PQftable
    - CPLString::Printf
    - CPLSPrintf
    - std::pair<int, int>
    - PQresultStatus
    - PQgetvalue
    - OGRPG_PQexec
    - PQfname
    - OGRPGClearResult
    linkageType: ''
    returnType: void
    signature: "void OGRPGResultLayer::OGRPGResultLayer(OGRPGDataSource *poDSIn,\n
      \                                  const char *pszRawQueryIn,\n                                   PGresult
      *hInitialResultIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:139,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:140,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: OGRPGResultLayer::~OGRPGResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGResultLayer::~OGRPGResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:153,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:158,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:158,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:160,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:161,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:163,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: OGRPGResultLayer::BuildFullQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - strcpy
    - snprintf
    - static_cast<char *>
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGResultLayer::BuildFullQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: OGRPGResultLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRPGResultLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGResultLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:185,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:186,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:188,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:192,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:195,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:196,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:197,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:197,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:199,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:199,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: OGRPGResultLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGResultLayer::TestCapability
    - atoi
    - OGRPG_PQexec
    - CPLString::Printf
    - CPLDebug
    - CPLString::c_str
    - PQgetvalue
    - GetPGConn
    - OGRPGClearResult
    - PQresultStatus
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPGResultLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:212,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:214,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:215,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:218,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:220,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:226,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:229,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:238,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:241,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:247,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:249,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 253
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 253
    functionName: OGRPGResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - GetLayerDefn
    - GetGeomFieldCount
    - GetGeomFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRPGResultLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:263,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:264,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:268,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:275,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:275,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: OGRPGResultLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - GetNextRawFeature
    - OGRFeature*::GetGeomFieldRef
    - GetGeomFieldDefn
    - FilterGeometry
    - Evaluate
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGResultLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:294,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:295,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:306,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:318,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:320,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:322,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:324,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:324,1
    - Dst: OGRPGResultLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:335,1
    - Dst: OGRPGResultLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 341
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 341
    functionName: OGRPGResultLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - getEnvelope
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - Printf
    - CPLsnprintf
    - OGRPGResultLayer::BuildFullQueryStatement
    - InstallFilter
    - OGRPGResultLayer::ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGResultLayer::ISetSpatialFilter(int iGeomField,\n                                           const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRPGLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:375,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:375,1
    - Dst: OGRPGLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:383,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:384,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:401,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:401,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:409,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:409,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:412,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:412,1
    - Dst: GetUndefinedSRID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:414,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:416,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:418,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:419,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:419,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:423,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:424,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:424,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp:427,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - poGFldDefn
    argTypes:
    - OGRPGGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 432
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 432
    functionName: OGRPGResultLayer::ResolveSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - OGRPGEscapeColumnName
    - atoi
    - OGRPG_PQexec
    - PQresultStatus
    - cpl::down_cast<OGRPGLayer *>
    - PQntuples
    - GetPGConn
    - OGRPGClearResult
    - PQerrorMessage
    - OGRPGLayer*::GetLayerDefn
    - CPLError
    - GetLayerByName
    - GetUndefinedSRID
    - OGRPGGeomFieldDefn*::GetSpatialRef
    - PQgetvalue
    linkageType: ''
    returnType: void
    signature: void OGRPGResultLayer::ResolveSRID(const OGRPGGeomFieldDefn *poGFldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:23,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:24,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: OGRPGDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRPGDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:46,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:49,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:52,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:139,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:143,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:145,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:148,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:151,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:152,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:153,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:155,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:158,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:161,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:166,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:168,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 170
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 170
    functionName: OGRPGDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRPGDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:179,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:183,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:185,1
    - Dst: OGRPGDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:188,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: DeclareDeferredOGRPGPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRPGDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRPGPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: OGRPGGeomFieldDefn::OGRPGGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGGeomFieldDefn(const OGRPGGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '&operator=(const OGRPGGeomFieldDefn &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGGeomFieldDefn
    signature: OGRPGGeomFieldDefn &operator=(const OGRPGGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poLayerIn
    - pszFieldName
    argTypes:
    - OGRPGLayer*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: OGRPGGeomFieldDefn::OGRPGGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGGeomFieldDefn(OGRPGLayer *poLayerIn, const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: OGRPGGeomFieldDefn::UnsetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnsetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: OGRFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 48
    functionsReached:
    - SetGeomType
    linkageType: ''
    returnType: class OGRPGFeatureDefn
    signature: class OGRPGFeatureDefn OGRFeatureDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRPGGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:147,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 80
    functionsReached:
    - OGRFeatureDefn::GetGeomFieldDefn
    - cpl::down_cast<OGRPGGeomFieldDefn *>
    linkageType: ''
    returnType: OGRPGGeomFieldDefn
    signature: OGRPGGeomFieldDefn *GetGeomFieldDefn(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<const OGRPGGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:153,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 81
    functionsReached:
    - cpl::down_cast<const OGRPGGeomFieldDefn *>
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: OGRPGGeomFieldDefn
    signature: OGRPGGeomFieldDefn *GetGeomFieldDefn(int i) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 257
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached:
    - OGRPGLayer
    linkageType: ''
    returnType: class OGRPGLayer
    signature: class OGRPGLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: OGRPGTableLayer::OGRPGTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer(const OGRPGTableLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: '&operator=(const OGRPGTableLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGTableLayer
    signature: OGRPGTableLayer &operator=(const OGRPGTableLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: OGRPGTableLayer::GetFromClauseForGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFromClauseForGetExtent() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: OGRPGTableLayer::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetTableName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: OGRPGTableLayer::GetSchemaName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetSchemaName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: OGRPGTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: OGRPGTableLayer::SetUTF8ToASCIIFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUTF8ToASCIIFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: OGRPGTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: OGRPGTableLayer::HasGeometryInformation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasGeometryInformation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nForcedSRSIdIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: OGRPGTableLayer::SetForcedSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetForcedSRSId(int nForcedSRSIdIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GeometryTypeFlagsIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: OGRPGTableLayer::SetForcedGeometryTypeFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetForcedGeometryTypeFlags(int GeometryTypeFlagsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bFlag
    - pszSpatialIndexType
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: OGRPGTableLayer::SetCreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCreateSpatialIndex(bool bFlag, const char *pszSpatialIndexType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: OGRPGTableLayer::AllowAutoFIDOnCreateViaCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AllowAutoFIDOnCreateViaCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: OGRPGTableLayer::SetUseCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 502
    functionName: OGRPGResultLayer::OGRPGResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGResultLayer(const OGRPGResultLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: '&operator=(const OGRPGResultLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGResultLayer
    signature: OGRPGResultLayer &operator=(const OGRPGResultLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: OGRPGResultLayer::GetFromClauseForGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFromClauseForGetExtent() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 546
    functionName: OGRPGDataSource::OGRPGDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDataSource(const OGRPGDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    functionName: '&operator=(const OGRPGDataSource &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGDataSource
    signature: OGRPGDataSource &operator=(const OGRPGDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: OGRPGDataSource::HavePostGIS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HavePostGIS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: OGRPGDataSource::GetUndefinedSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetUndefinedSRID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: OGRPGDataSource::IsUTF8ClientEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUTF8ClientEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: OGRPGDataSource::GetPGConn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PGconn
    signature: PGconn *GetPGConn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: OGRPGDataSource::GetGeometryOID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Oid
    signature: Oid GetGeometryOID()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: OGRPGDataSource::GetGeographyOID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Oid
    signature: Oid GetGeographyOID()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: OGRPGDataSource::IsUserTransactionActive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogr_pg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUserTransactionActive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRPGGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:35,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: OGRPGFeatureDefn::UnsetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - get
    - cpl::down_cast<OGRPGGeomFieldDefn *>
    linkageType: ''
    returnType: void
    signature: void OGRPGFeatureDefn::UnsetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: OGRPGTableFeatureDefn::OGRPGTableFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGTableFeatureDefn(const OGRPGTableFeatureDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '&operator=(const OGRPGTableFeatureDefn &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGTableFeatureDefn
    signature: OGRPGTableFeatureDefn &operator=(const OGRPGTableFeatureDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poLayerIn
    argTypes:
    - OGRPGTableLayer*
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: OGRPGTableFeatureDefn::OGRPGTableFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableFeatureDefn(OGRPGTableLayer *poLayerIn,\n                                   const
      char *pszName = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:64,1
    - Dst: OGR_F_GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: OGRPGTableFeatureDefn::GetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - OGR_F_GetFieldCount
    linkageType: ''
    returnType: int
    signature: int GetFieldCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:70,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: OGRPGTableFeatureDefn::GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - OGRFeatureDefn::GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefn(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:76,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: OGRPGTableFeatureDefn::GetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - OGRFeatureDefn::GetFieldDefn
    linkageType: ''
    returnType: OGRFieldDefn
    signature: OGRFieldDefn *GetFieldDefn(int i) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:82,1
    - Dst: OGR_F_GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: OGRPGTableFeatureDefn::GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - OGR_F_GetFieldIndex
    linkageType: ''
    returnType: int
    signature: int GetFieldIndex(const char *pszName) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:88,1
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:89,1
    - Dst: OGR_F_GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: OGRPGTableFeatureDefn::GetGeomFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - OGR_F_GetGeomFieldCount
    - HasGeometryInformation
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:95,1
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:96,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: OGRPGTableFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - HasGeometryInformation
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: OGRPGGeomFieldDefn
    signature: OGRPGGeomFieldDefn *GetGeomFieldDefn(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:102,1
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:103,1
    - Dst: OGRFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: OGRPGTableFeatureDefn::GetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - HasGeometryInformation
    - OGRFeatureDefn::GetGeomFieldDefn
    linkageType: ''
    returnType: OGRPGGeomFieldDefn
    signature: OGRPGGeomFieldDefn *GetGeomFieldDefn(int i) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasGeometryInformation
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:109,1
    - Dst: OGRPGTableFeatureDefn::SolveFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:110,1
    - Dst: OGR_F_GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: OGRPGTableFeatureDefn::GetGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableFeatureDefn::SolveFields
    - HasGeometryInformation
    - OGR_F_GetGeomFieldIndex
    linkageType: ''
    returnType: int
    signature: int GetGeomFieldIndex(const char *pszName) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGFeatureDefn::UnsetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: OGRPGTableFeatureDefn::UnsetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGFeatureDefn::UnsetLayer
    linkageType: ''
    returnType: void
    signature: void OGRPGTableFeatureDefn::UnsetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: OGRPGTableFeatureDefn::SolveFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 8
    functionsReached:
    - ReadTableDefinition
    linkageType: ''
    returnType: void
    signature: void OGRPGTableFeatureDefn::SolveFields() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: OGRPGTableLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::ReadTableDefinition
    linkageType: ''
    returnType: char
    signature: char *OGRPGTableLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:158,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:159,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:160,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:161,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:163,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:164,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:169,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:169,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:171,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:171,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:182,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:183,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:183,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:184,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:185,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:192,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:192,1
    - Dst: OGRPGTableFeatureDefn::OGRPGTableFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:201,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:202,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:202,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:203,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:208,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - poDSIn
    - osCurrentSchema
    - pszTableNameIn
    - pszSchemaNameIn
    - pszDescriptionIn
    - pszGeomColForcedIn
    - bUpdate
    argTypes:
    - OGRPGDataSource*
    - CPLString
    - char*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 212
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 212
    functionName: OGRPGTableLayer::OGRPGTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - CPLStrdup
    - OGRPGEscapeColumnName
    - CPLString::Printf
    - OGRPGTableLayer::SetMetadataItem
    - EQUAL
    - CPLString::c_str
    - OGRPGTableFeatureDefn::OGRPGTableFeatureDefn
    - Reference
    - CPLString
    - SetDescription
    - CPLGetConfigOption
    - GetName
    - Seal
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableLayer::OGRPGTableLayer(OGRPGDataSource *poDSIn,\n                                 CPLString
      &osCurrentSchema,\n                                 const char *pszTableNameIn,\n
      \                                const char *pszSchemaNameIn,\n                                 const
      char *pszDescriptionIn,\n                                 const char *pszGeomColForcedIn,
      int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:222,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:224,1
    - Dst: OGRPGTableLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:225,1
    - Dst: OGRPGTableLayer::SerializeMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:226,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:228,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:229,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:230,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:231,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:232,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:233,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: OGRPGTableLayer::~OGRPGTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGTableLayer::SerializeMetadata
    - CSLDestroy
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRPGTableLayer::UpdateSequenceIfNeeded
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::~OGRPGTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasOgrSystemTablesMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:247,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:250,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:253,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:255,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:256,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:257,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:257,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:261,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:261,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:264,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:269,1
    - Dst: XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:272,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:273,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 280
    functionName: OGRPGTableLayer::LoadMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRFeature>
    - XMLInit
    - CPLDestroyXMLNode
    - CPLSPrintf
    - OGRPGEscapeString
    - CPLParseXMLString
    - ReleaseResultSet
    - GetPGConn
    - ExecuteSQL
    - auto::GetNextFeature
    - HasOgrSystemTablesMetadataTable
    - auto::IsFieldSetAndNotNull
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::LoadMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:289,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:289,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:294,1
    - Dst: Serialize
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:295,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:306,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:307,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:314,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:315,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:317,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:317,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:320,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:335,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:345,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:349,1
    - Dst: CreateMetadataTableIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:354,1
    - Dst: HasWritePermissionsOnMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:355,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:358,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:360,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:361,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:362,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:362,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:363,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:366,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:367,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:371,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:374,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:375,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:376,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:377,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:377,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:378,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:380,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:381,1
    - Dst: HasOgrSystemTablesMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:384,1
    - Dst: HasWritePermissionsOnMetadataTable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:385,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:388,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:390,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:391,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:393,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:393,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:394,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:398,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 405
    functionName: OGRPGTableLayer::SerializeMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CreateMetadataTableIfNeeded
    - HasWritePermissionsOnMetadataTable
    - OGRPGEscapeString
    - strcmp
    - GetPGConn
    - CPLGetXMLValue
    - HasOgrSystemTablesMetadataTable
    - CPLGetConfigOption
    - CPLAddXMLChild
    - CPLString::c_str
    - CPLTestBool
    - CPLRemoveXMLChild
    - CPLDestroyXMLNode
    - CPLString::Printf
    - Serialize
    - CPLFree
    - OGRPG_PQexec
    - CPLGetXMLNode
    - CPLCreateXMLNode
    - EQUAL
    - OGRPGClearResult
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::SerializeMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:413,1
    - Dst: OGRPGTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:416,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: OGRPGTableLayer::GetMetadataDomainList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::LoadMetadata
    - CSLAddString
    - OGRPGTableLayer::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **OGRPGTableLayer::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:430,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:433,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:435,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:442,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:443,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:444,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:444,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:447,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:448,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:450,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:452,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:454,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:456,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 460
    functionName: OGRPGTableLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - OGRPG_PQexec
    - CPLString::Printf
    - OGRPGTableLayer::SetMetadataItem
    - OGRPGEscapeString
    - EQUAL
    - CPLString::c_str
    - OGRPGTableLayer::LoadMetadata
    - PQntuples
    - GetPGConn
    - OGRPGClearResult
    - OGRWFSDataSource::GetMetadata
    - PQresultStatus
    - PQgetvalue
    linkageType: ''
    returnType: char
    signature: char **OGRPGTableLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:469,1
    - Dst: OGRPGTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:471,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 473
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 473
    functionName: OGRPGTableLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::LoadMetadata
    - OGRDGNV8DataSource::GetMetadataItem
    - OGRPGTableLayer::GetMetadata
    linkageType: ''
    returnType: char
    signature: "char *OGRPGTableLayer::GetMetadataItem(const char *pszName,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:481,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:483,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:486,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:487,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:489,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:492,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:497,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:500,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:503,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:505,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:505,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:506,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:508,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 513
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 513
    functionName: OGRPGTableLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - empty
    - CPLStrdup
    - OGRPG_PQexec
    - OGRPGTableLayer::SetMetadataItem
    - CPLString::Printf
    - OGRPGTableLayer::SetMetadata
    - OGRPGEscapeString
    - EQUAL
    - CPLString::c_str
    - OGRPGTableLayer::LoadMetadata
    - GetPGConn
    - OGRPGClearResult
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRPGTableLayer::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::LoadMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:526,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:526,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:535,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:537,1
    - Dst: OGRPGTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:537,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 541
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 541
    functionName: OGRPGTableLayer::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 5
    functionsReached:
    - empty
    - OGRPGTableLayer::SetMetadataItem
    - OGRPGTableLayer::GetMetadata
    - OGRPGTableLayer::SetMetadata
    - EQUAL
    - OGRPGTableLayer::LoadMetadata
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRPGTableLayer::SetMetadataItem(const char *pszName,\n                                        const
      char *pszValue,\n                                        const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:550,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:551,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pszDescriptionIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: OGRPGTableLayer::SetForcedDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadataItem
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::SetForcedDescription(const char *pszDescriptionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:564,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:569,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:570,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:577,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:580,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:584,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:585,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:587,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pasDesc
    - nGeomFieldCount
    argTypes:
    - PGGeomColumnDesc*
    - int
    constantsTouched: []
    func_position:
      end: 589
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 589
    functionName: OGRPGTableLayer::SetGeometryInformation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - wkbSetM
    - std::make_unique<OGRPGGeomFieldDefn>
    - auto::SetType
    - AddGeomFieldDefn
    - wkbSetZ
    - auto::SetNullable
    - std::move
    - GetTemporaryUnsealer
    - OGRFromOGCGeomType
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableLayer::SetGeometryInformation(PGGeomColumnDesc *pasDesc,\n
      \                                            int nGeomFieldCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:601,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:607,1
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:609,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:616,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:619,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:620,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:623,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:623,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:624,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:626,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:626,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:628,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:629,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:629,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:630,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:634,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:636,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:642,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:643,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:652,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:665,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:665,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:667,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:669,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:669,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:672,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:675,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:675,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:677,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:678,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:679,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:680,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:683,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:685,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:691,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:696,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:696,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:702,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:727,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:727,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:729,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:733,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:733,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:737,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:739,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:741,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:749,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:766,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:767,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:768,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:769,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:771,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:771,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:773,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:773,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:774,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:778,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:778,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:779,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:779,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:784,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:801,1
    - Dst: SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:804,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:804,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:810,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:810,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:812,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:813,1
    - Dst: InitGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:814,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:814,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:815,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:815,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:823,1
    - Dst: InitGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:824,1
    - Dst: OGRPGCommonLayerSetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:831,1
    - Dst: OGRPGCommonLayerNormalizeDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:835,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:838,1
    - Dst: OGRFieldDefn::SetGenerated
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:840,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:843,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:846,1
    - Dst: OGRPGTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:850,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:863,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:866,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:877,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:880,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:884,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:886,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:890,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:890,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:893,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:895,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:897,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:899,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:900,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:923,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:927,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:931,1
    - Dst: OGRPGGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:932,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:939,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:946,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:947,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:949,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:950,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:950,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:952,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:953,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:955,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:957,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:957,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:966,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 140
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 971
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 971
    functionName: OGRPGTableLayer::ReadTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - PQgetisnull
    - GetGeomFieldDefn
    - wkbSetZ
    - CPLDebug
    - OGRPGEscapeString
    - auto::get
    - OGRPGCommonLayerNormalizeDefault
    - OGRPGGeomFieldDefn*::SetType
    - GetPGConn
    - OGRFieldDefn::SetNullable
    - OGRFieldDefn::SetUnique
    - CPLString
    - CPLError
    - GetGeomFieldCount
    - OGRFromOGCGeomType
    - static_cast<unsigned>
    - CPLStrdup
    - InitGeomField
    - OGRPGTableLayer::ResetReading
    - CPLAtoGIntBig
    - PQntuples
    - CPLString::c_str
    - OGRPGCommonLayerSetType
    - std::move
    - AddFieldDefn
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - OGRPGGeomFieldDefn*::GetNameRef
    - c_str
    - wkbSetM
    - CPLString::Printf
    - SetNullable
    - GetTemporaryUnsealer
    - OGRFieldDefn::SetGenerated
    - PQresultStatus
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - PQgetvalue
    - std::make_unique<OGRPGGeomFieldDefn>
    - AddGeomFieldDefn
    - OGRPG_PQexec
    - OGRPGTableLayer::SetMetadataItem
    - Printf
    - EQUAL
    - PQerrorMessage
    - OGRFieldDefn::SetComment
    - OGRPGClearResult
    linkageType: ''
    returnType: int
    signature: int OGRPGTableLayer::ReadTableDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:985,1
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:986,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:987,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:991,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:992,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:995,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1000,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1008,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1011,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 6
    argNames:
    - pszFIDColumnName
    - pszGFldName
    - eType
    - pszGeomType
    - nSRSId
    - GeometryTypeFlags
    argTypes:
    - char*
    - char*
    - OGRwkbGeometryType
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1018
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 1018
    functionName: OGRPGTableLayer::SetTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - auto::SetType
    - std::make_unique<OGRPGGeomFieldDefn>
    - SetGeomType
    - AddGeomFieldDefn
    - EQUAL
    - std::move
    - GetTemporaryUnsealer
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableLayer::SetTableDefinition(const char *pszFIDColumnName,\n
      \                                        const char *pszGFldName,\n                                         OGRwkbGeometryType
      eType,\n                                         const char *pszGeomType, int
      nSRSId,\n                                         int GeometryTypeFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1030,1
    - Dst: OGRPGTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1032,1
    - Dst: OGRPGTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1038
    functionName: OGRPGTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRPGTableLayer::ResetReading
    - OGRPGTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::ISetSpatialFilter(int iGeomField,\n                                          const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1052,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1053,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1064,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1076,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1078,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1080,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1082,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1082,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1086,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1088,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1090,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1090,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1047
    functionDepth: 2
    functionLinenumber: 1047
    functionLinenumberEnd: 1099
    functionName: OGRPGTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - c_str
    - getEnvelope
    - empty
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - Printf
    - CPLsnprintf
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::BuildFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1108,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1111,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1114,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1114,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1115,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1115,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1115,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1116,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1117,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1117,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1117,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1118,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1120
    functionName: OGRPGTableLayer::BuildFullQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - OGRPGTableLayer::BuildFields
    - CPLString::c_str
    - CPLString::size
    - snprintf
    - strlen
    - static_cast<char *>
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::BuildFullQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1134,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1135,1
    - Dst: OGRPGTableLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1138,1
    - Dst: OGRPGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1126
    functionDepth: 2
    functionLinenumber: 1126
    functionLinenumberEnd: 1143
    functionName: OGRPGTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRPGTableLayer::BuildFullQueryStatement
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGTableLayer::EndCopy
    - OGRPGLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1152,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1154,1
    - Dst: OGRPGTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1157,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1160,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1161,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1162,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1166,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1178,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1178,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1182,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1190
    functionName: OGRPGTableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGTableLayer::ResetReading
    - GetNextRawFeature
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFID
    - GetGeomFieldDefn
    - FilterGeometry
    - GetFieldCount
    - OGRFeature*::SetField
    - GetGeomFieldCount
    - OGRPGTableLayer::EndCopy
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGTableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1205,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1208,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1210,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1213,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1216,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1218,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1218,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1220,1
    - Dst: HavePostGIS
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1225,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1229,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1229,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1234,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1235,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1235,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1251,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1252,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1252,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1256,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1256,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1261,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1262,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1262,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1275,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1279,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1286,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1289,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1295,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1300
    functionName: OGRPGTableLayer::BuildFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLGetConfigOption
    - OGRPGGeomFieldDefn*::GetNameRef
    - HavePostGIS
    - CPLTestBool
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - GetFieldCount
    - CPLSPrintf
    - GetFieldDefn
    - GetFieldIndex
    - GetGeomFieldCount
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGTableLayer::BuildFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1309,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1310,1
    - Dst: OGRPGTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1317,1
    - Dst: OGRPGTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1322
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1322
    functionName: OGRPGTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::ResetReading
    - CPLFree
    - CPLStrdup
    - OGRPGTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1331,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1338,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1343,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1354,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1365,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1366,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1373,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1375,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1377,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1379,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1385,1
    - Dst: PQcmdStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1385,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1394
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1394
    functionName: OGRPGTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - PQcmdStatus
    - EQUAL
    - GetPGConn
    - OGRPGClearResult
    - PQerrorMessage
    - CPLError
    - PQresultStatus
    - OGRPGTableLayer::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1406
    functionName: OGRPGTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::IUpdateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1420,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1425,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1431,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1436,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1442,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1447,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1449,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1456,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1465,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1466,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1467,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1469,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1478,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1489,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1490,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1498,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1498,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1513,1
    - Dst: GeometryToOID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1520,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1524,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1541,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1541,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1545,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1546,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1548,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1559,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1562,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1563,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1578,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1580,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1588,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1589,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1592,1
    - Dst: OGRPGCommonAppendFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1598,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1607,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1609,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1609,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1614,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1615,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1617,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1620,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1620,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1621,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1623,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1628,1
    - Dst: PQcmdStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1628,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1633,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 107
    argCount: 5
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1636
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1636
    functionName: OGRPGTableLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - OGRGeometry*::setMeasured
    - GetPGConn
    - CPLString
    - GetFieldDefn
    - CPLError
    - OGRGeometry*::set3D
    - OGRFeature*::IsFieldNull
    - OGRFeature*::GetDefnRef
    - CPLString::c_str
    - GetLayerDefn
    - OGRPGGeomFieldDefn*::GetNameRef
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGCommonAppendFieldValue
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRFeature*::GetGeomFieldRef
    - PQresultStatus
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRFeature*::IsFieldSet
    - OGRPG_PQexec
    - PQcmdStatus
    - EQUAL
    - GeometryToOID
    - PQerrorMessage
    - OGRPGClearResult
    - OGRGeometry*::closeRings
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::IUpdateFeature(OGRFeature *poFeature,\n                                       int
      nUpdatedFieldsCount,\n                                       const int *panUpdatedFieldsIdx,\n
      \                                      int nUpdatedGeomFieldsCount,\n                                       const
      int *panUpdatedGeomFieldsIdx,\n                                       bool /*
      bUpdateStyleString*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1644,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1648,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1655,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1660,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1664,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1669,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1671,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1672,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1677,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1681,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1689,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1690,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1692,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1695,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1697,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1698,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1699,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1702,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1702,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1703,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1705,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1709,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1711,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1717,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1717,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1719,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1722,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1723,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1723,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1724,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1730,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1730,1
    - Dst: OGRPGTableLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1735,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1746,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1747,1
    - Dst: OGRPGTableLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1755,1
    - Dst: OGRPGTableLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1763,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1765,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1766,1
    - Dst: OGRPGTableLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1768,1
    - Dst: OGRPGTableLayer::CreateFeatureViaCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1786,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1791,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1799,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1799,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 79
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1803
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1803
    functionName: OGRPGTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - OGRPGEscapeColumnName
    - GetPGConn
    - OGRPGTableLayer::CreateFeatureViaInsert
    - CPLError
    - CPLGetConfigOption
    - GetGeomFieldCount
    - CPLString::c_str
    - GetLayerDefn
    - CPLTestBool
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRDGNV8DataSource::GetMetadataItem
    - OGRFeature*::GetFID
    - CPLString::Printf
    - GetFieldCount
    - PQresultStatus
    - OGRPGTableLayer::EndCopy
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::IsFieldSet
    - OGRPG_PQexec
    - CPL_INT64_FITS_ON_INT32
    - OGRPGTableLayer::SetMetadataItem
    - OGRFeature*::SetField
    - PQerrorMessage
    - OGRPGClearResult
    - OGRPGTableLayer::CreateFeatureViaCopy
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1817,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszColumnName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1824
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1824
    functionName: OGRPGEscapeColumnName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 10
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGEscapeColumnName(const char *pszColumnName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PGconn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1834,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1845,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1851,1
    - Dst: PQescapeStringConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1867,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1871,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1875,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - hPGConnIn
    - pszStrValue
    - nMaxLength
    - pszTableName
    - pszFieldName
    argTypes:
    - void*
    - char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1882
      start: 1830
    functionDepth: 1
    functionLinenumber: 1830
    functionLinenumberEnd: 1882
    functionName: OGRPGEscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 8
    functionsReached:
    - reinterpret_cast<PGconn *>
    - CPLDebug
    - PQescapeStringConn
    - PQerrorMessage
    - reinterpret_cast<const unsigned char *>
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRPGEscapeString(void *hPGConnIn, const char *pszStrValue,\n
      \                           int nMaxLength, const char *pszTableName,\n                            const
      char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1891,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1897,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1902,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1904,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1906,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1907,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1914,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1914,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1918,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1925,1
    - Dst: OGRPGTableLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1930,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1938,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1940,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1949,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1949,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1959,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1962,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1963,1
    - Dst: OGRPGTableLayer::CheckGeomTypeCompatibility
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1974,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1976,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1977,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1979,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1989,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:1999,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2001,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2009,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2028,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2030,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2034,1
    - Dst: GeometryToOID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2039,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2043,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2050,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2054,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2054,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2062,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2064,1
    - Dst: OGRPGCommonAppendFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2072,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2079,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2089,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2096,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2104,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2105,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2106,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2106,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2109,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2109,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2111,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2113,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2115,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2115,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2121,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2132,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2137,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 133
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2140
      start: 1888
    functionDepth: 2
    functionLinenumber: 1888
    functionLinenumberEnd: 2140
    functionName: OGRPGTableLayer::CreateFeatureViaInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGTableLayer::CheckGeomTypeCompatibility
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - OGRGeometry*::setMeasured
    - GetPGConn
    - CPLString
    - GetFieldDefn
    - CPLError
    - OGRGeometry*::set3D
    - PQnfields
    - GetGeomFieldCount
    - OGRFeature*::GetDefnRef
    - CPLString::substr
    - OGRGeomFieldDefn*::GetNameRef
    - CPLAtoGIntBig
    - PQntuples
    - OGRPGCommonAppendFieldValue
    - OGRFeature*::GetGeomFieldRef
    - CPLString::Printf
    - OGRFeature*::GetFID
    - PQresultStatus
    - CPLFree
    - OGRPGTableLayer::UpdateSequenceIfNeeded
    - OGRPGTableLayer::EndCopy
    - OGRFeature*::IsFieldSet
    - OGRPG_PQexec
    - GeometryToOID
    - PQerrorMessage
    - OGRPGClearResult
    - OGRGeometry*::closeRings
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::CreateFeatureViaInsert(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2148,1
    - Dst: OGRPGTableLayer::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2152,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2155,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2158,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2159,1
    - Dst: OGRPGTableLayer::CheckGeomTypeCompatibility
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2164,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2166,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2167,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2169,1
    - Dst: GeometryToBYTEA
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2173,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2176,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2181,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2197,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2199,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2202,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2210,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2211,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2212,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2213,1
    - Dst: OGRPGCommonAppendCopyFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2218,1
    - Dst: OGRPGCommonAppendCopyRegularFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2220,1
    - Dst: IsUTF8ClientEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2229,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2230,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2230,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2230,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2230,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2232,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2235,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2235,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2236,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2249,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2249,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2255,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2259,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2260,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2266
      start: 2146
    functionDepth: 2
    functionLinenumber: 2146
    functionLinenumberEnd: 2266
    functionName: OGRPGTableLayer::CreateFeatureViaCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGTableLayer::CheckGeomTypeCompatibility
    - std::vector::size
    - GetGeomFieldDefn
    - OGRGeometry*::setMeasured
    - CPLDebug
    - IsUTF8ClientEncoding
    - GetPGConn
    - OGRPGTableLayer::StartCopy
    - CPLError
    - OGRGeometry*::set3D
    - GetGeomFieldCount
    - CPLString::empty
    - OGRFeature*::GetDefnRef
    - OGRGeometryToHexEWKB
    - CPLString::c_str
    - OGRPGCommonAppendCopyRegularFields
    - CPLString::size
    - CPLIsUTF8
    - GetName
    - GeometryToBYTEA
    - static_cast<int>
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFID
    - OGRPGCommonAppendCopyFID
    - OGRFeature*::GetFieldCount
    - CPLFree
    - PQerrorMessage
    - OGRGeometry*::closeRings
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::CreateFeatureViaCopy(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2277,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2284,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2285,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2286,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2293,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2299,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2300,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2305,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2314,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2317,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2319,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2330,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2333,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2340,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2343,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2349,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 41
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2354
      start: 2272
    functionDepth: 2
    functionLinenumber: 2272
    functionLinenumberEnd: 2354
    functionName: OGRPGTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetLayerDefn
    - GetGeomFieldCount
    - GetGeomFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRPGTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2364,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2373,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2378,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2378,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2379,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2379,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2381,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2382,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2396,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2398,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2398,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2400,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2403,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2413,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2414,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2414,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2415,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2420,1
    - Dst: OGRFieldDefn::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2422,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2424,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2424,1
    - Dst: OGRPGCommonLayerGetPGDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2427,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2431,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2436,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2436,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2438,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2438,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2447,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2447,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2450,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2450,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2455,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2456,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2456,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2461,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2463,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2464,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2464,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2465,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2468,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2471,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2471,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2472,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2474,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2479,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2481,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2483,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2483,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2484,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2488,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2490,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2490,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2492,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2496
      start: 2360
    functionDepth: 2
    functionLinenumber: 2360
    functionLinenumberEnd: 2496
    functionName: OGRPGTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRPGEscapeColumnName
    - OGRPGCommonLayerGetPGDefault
    - OGRPGEscapeString
    - GetPGConn
    - CPLError
    - std::string::c_str
    - CPLString::empty
    - CPL_TO_BOOL
    - OGRFieldDefn::GetComment
    - std::string::empty
    - OGRPGCommonLayerGetType
    - OGRFieldDefn::IsUnique
    - OGRFieldDefn::IsDefaultDriverSpecific
    - CPLString::c_str
    - std::move
    - OGRFieldDefn::IsNullable
    - GetLayerDefn
    - OGRFieldDefn::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - OGRFieldDefn::SetName
    - PQresultStatus
    - whileUnsealing
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRPG_PQexec
    - EQUAL
    - push_back
    - PQerrorMessage
    - OGRPGClearResult
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                   int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2505,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2515,1
    - Dst: OGRPGGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2515,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2523,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2525,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2526,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2527,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2527,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2530,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2530,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2532,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2534,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2535,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2537,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2542,1
    - Dst: OGRPGGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2544,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2546,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2548,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2548,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2550,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2550,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - poGeomField
    argTypes:
    - OGRPGGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 2555
      start: 2502
    functionDepth: 2
    functionLinenumber: 2502
    functionLinenumberEnd: 2555
    functionName: OGRPGTableLayer::RunAddGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - OGRPGGeomFieldDefn*::GetType
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - OGRPGEscapeString
    - OGRPGGeomFieldDefn*::IsNullable
    - CPLString::c_str
    - GetPGConn
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - wkbFlatten
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::RunAddGeometryColumn(const OGRPGGeomFieldDefn
      *poGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2565,1
    - Dst: OGRPGCommonGenerateSpatialIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2568,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2569,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2571,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2572,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2572,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2573,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2574,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2574,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2576,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2576,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2580,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2581,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2583,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poGeomField
    - nIdx
    argTypes:
    - OGRPGGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2591
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2591
    functionName: OGRPGTableLayer::RunCreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - c_str
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - OGRPGCommonGenerateSpatialIndexName
    - CPLString::c_str
    - GetPGConn
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::RunCreateSpatialIndex(const OGRPGGeomFieldDefn
      *poGeomField,\n                                       int nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2600,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2603,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2610,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2612,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2612,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2617,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2617,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2619,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2620,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2620,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2620,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2624,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2624,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2625,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2627,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2630,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2631,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2632,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2633,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2644,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2645,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2648,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2653,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2656,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2658,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2664,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2667,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2668,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2671,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2671,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2680,1
    - Dst: OGRPGTableLayer::RunAddGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2682,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2682,1
    - Dst: OGRPGTableLayer::RunCreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2689,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2689,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2696,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2696,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - poGeomFieldIn
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2699
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2699
    functionName: OGRPGTableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::SetType
    - OGRGeomFieldDefn*::IsNullable
    - auto::get
    - CPLString
    - OGRPGTableLayer::RunAddGeometryColumn
    - CPLError
    - GetGeomFieldCount
    - OGRGeomFieldDefn*::GetNameRef
    - OGR_GT_HasZ
    - auto::Clone
    - std::move
    - c_str
    - auto::GetSpatialRef
    - auto::SetName
    - OGRPGTableLayer::RunCreateSpatialIndex
    - OGRGeomFieldDefn*::GetType
    - CPLSPrintf
    - auto::SetSpatialRef
    - auto::GetNameRef
    - OGR_GT_HasM
    - CPLFree
    - auto::SetAxisMappingStrategy
    - OGRPGTableLayer::EndCopy
    - whileUnsealing
    - size
    - OGR_GT_SetModifier
    - std::make_unique<OGRPGGeomFieldDefn>
    - EQUAL
    - auto::SetNullable
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - FetchSRSId
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::CreateGeomField(const OGRGeomFieldDefn *poGeomFieldIn,\n
      \                                       CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2707,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2710,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2714,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2719,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2721,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2725,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2727,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2729,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2731,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2731,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2733,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2734,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2736,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2736,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2737,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2739,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2744,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2747
      start: 2705
    functionDepth: 2
    functionLinenumber: 2705
    functionLinenumberEnd: 2747
    functionName: OGRPGTableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - GetFieldCount
    - CPLString::c_str
    - GetPGConn
    - OGRPGClearResult
    - PQerrorMessage
    - GetFieldDefn
    - CPLError
    - PQresultStatus
    - whileUnsealing
    - OGRPGTableLayer::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2756,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2759,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2763,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2768,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2770,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2774,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2776,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2778,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2779,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2782,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2786,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2787,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2787,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2788,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2788,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2793,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2793,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2794,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2794,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2799,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2800,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2801,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2803,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2808,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2810,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2810,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2811,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2813,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2814,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2816,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2816,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2817,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2819,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2821,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2825,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2829,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2829,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2831,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2831,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2833,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2834,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2836,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2836,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2838,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2840,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2840,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2842,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2843,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2845,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2845,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2846,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2848,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2850,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2854,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2858,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2859,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2861,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2861,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2863,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2865,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2865,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2867,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2868,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2870,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2870,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2871,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2873,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2875,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2879,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2881,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2882,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2884,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2885,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2890,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2891,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2892,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2893,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2894,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2895,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2896,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2896,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2896,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2899,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2899,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2901,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2902,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2904,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2904,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2906,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2909,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2909,1
    - Dst: OGRPGCommonLayerGetPGDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2910,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2912,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2913,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2915,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2915,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2916,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2918,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2920,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2924,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2928,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2928,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2930,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2930,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2932,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2934,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2936,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2936,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2937,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2937,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2942,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2944,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2944,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2947,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2948,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2950,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2950,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2951,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2953,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2955,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2959,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2968,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2969,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2972,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2972,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2974,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2977,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2980,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2980,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2980,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2982,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2984,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2984,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2985,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2985,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2986,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2987,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2989,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2990,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2990,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2992,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2994,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:2998,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3002,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3005,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3005,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3008,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3009,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3009,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3010,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3010,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3014,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3014,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3015,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3015,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3018,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3018,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3020,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3020,1
    - Dst: OGRFieldDefn*::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3022,1
    - Dst: OGRFieldDefn::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3022,1
    - Dst: OGRFieldDefn*::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3024,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3024,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 134
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 3027
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 3027
    functionName: OGRPGTableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRPGEscapeColumnName
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetComment
    - OGRPGCommonLayerGetPGDefault
    - OGRPGEscapeString
    - strcmp
    - OGRFieldDefn*::SetSubType
    - GetPGConn
    - OGRFieldDefn::SetNullable
    - OGRFieldDefn::SetUnique
    - GetFieldDefn
    - OGRFieldDefn*::GetTemporaryUnsealer
    - CPLError
    - OGRFieldDefn*::GetWidth
    - CPL_TO_BOOL
    - CPLString::empty
    - OGRFieldDefn::GetComment
    - SoftStartTransaction
    - OGRPGCommonLayerGetType
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::SetDefault
    - OGRFieldDefn::IsUnique
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::SetComment
    - OGRFieldDefn::IsNullable
    - GetLayerDefn
    - OGRFieldDefn::GetNameRef
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRFieldDefn*::SetNullable
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - SoftRollbackTransaction
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn*::GetType
    - OGRFieldDefn::SetName
    - OGRFieldDefn::GetWidth
    - PQresultStatus
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - OGRFieldDefn*::SetUnique
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRPG_PQexec
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn::SetType
    - EQUAL
    - SoftCommitTransaction
    - OGRFieldDefn::GetSubType
    - OGRFieldDefn*::IsUnique
    - PQerrorMessage
    - OGRFieldDefn::SetComment
    - OGRPGClearResult
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                      int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3038,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3043,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3049,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3051,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3055,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3057,1
    - Dst: cpl::down_cast<OGRPGGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3059,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3060,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3061,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3065,1
    - Dst: auto::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3066,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3068,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3076,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3081,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3081,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3092,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3092,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3094,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3094,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3101,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3104,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3106,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3106,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3107,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3109,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3112,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3112,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3113,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3115,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3117,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3121,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3124,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3129,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3135,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3138,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3142,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3144,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3145,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3146,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3146,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3150,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3151,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3153,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3154,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3154,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3156,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3158,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3162,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3167,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3167,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3169,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3170,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3172,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3172,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3174,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3176,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3176,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3178,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3181,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3181,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3182,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3184,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3186,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3190,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3194,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3194,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3195,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3197,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3199,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3199,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3200,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3200,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3201,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3204,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3204,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3205,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3207,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3209,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3213,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3216,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3219,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3219,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3223,1
    - Dst: OGRGeomFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3223,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3226,1
    - Dst: OGRGeomFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3226,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3229,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3232,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3233,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3234,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3238,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 101
    argCount: 3
    argNames:
    - iGeomFieldToAlter
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 3244
      start: 3033
    functionDepth: 2
    functionLinenumber: 3033
    functionLinenumberEnd: 3244
    functionName: OGRPGTableLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - OGRPGEscapeColumnName
    - auto::SetType
    - OGRGeomFieldDefn*::IsNullable
    - GetGeomFieldDefn
    - auto::GetType
    - OGRPGEscapeString
    - strcmp
    - GetPGConn
    - CPLError
    - std::string::c_str
    - SoftStartTransaction
    - OGRGeomFieldDefn*::GetNameRef
    - OGR_GT_HasZ
    - cpl::down_cast<OGRPGGeomFieldDefn *>
    - CPLString::c_str
    - auto::Clone
    - GetLayerDefn
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - auto::GetSpatialRef
    - OGRGeomFieldDefn::IsNullable
    - auto::SetName
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - SoftRollbackTransaction
    - CPLSPrintf
    - auto::GetCoordinateEpoch
    - OGRGeomFieldDefn::GetNameRef
    - auto::SetSpatialRef
    - auto::GetNameRef
    - PQresultStatus
    - OGR_GT_HasM
    - auto::IsSame
    - OGRPGTableLayer::EndCopy
    - OGRPG_PQexec
    - OGRGeomFieldDefn::GetType
    - SoftCommitTransaction
    - auto::SetNullable
    - auto::GetTemporaryUnsealer
    - OGRGeomFieldDefn*::GetSpatialRef
    - PQerrorMessage
    - OGRGeomFieldDefn::GetSpatialRef
    - auto::Release
    - OGRPGClearResult
    - FetchSRSId
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::AlterGeomFieldDefn(int iGeomFieldToAlter,\n
      \                                   const OGRGeomFieldDefn *poNewGeomFieldDefn,\n
      \                                   int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3253,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3256,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3262,1
    - Dst: OGRPGTableLayer::BuildFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3263,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3266,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3267,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3269,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3272,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3273,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3275,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3275,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3277,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3279,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3281,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3283,1
    - Dst: CreateMapFromFieldNameToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3290,1
    - Dst: RecordToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3293,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3295,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3296,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3299,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3300,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3305,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3314,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3323,1
    - Dst: PQresultErrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3324,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3330,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3332,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3333,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3335,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3338
      start: 3250
    functionDepth: 3
    functionLinenumber: 3250
    functionLinenumberEnd: 3338
    functionName: OGRPGTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGEscapeColumnName
    - GetPGConn
    - RecordToFeature
    - CPLError
    - SoftStartTransaction
    - CPLString::c_str
    - OGRLayer::GetFeature
    - GetLayerDefn
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRPGTableLayer::BuildFields
    - PQresultStatus
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRPG_PQexec
    - PQresultErrorMessage
    - SoftCommitTransaction
    - CreateMapFromFieldNameToIndex
    - OGRFeature*::SetField
    - OGRPGClearResult
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3347,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3349,1
    - Dst: OGRPGTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3351,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3352,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3360,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3364,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3365,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3367,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3368,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3369,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3369,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3371,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3371,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3375
      start: 3344
    functionDepth: 4
    functionLinenumber: 3344
    functionLinenumberEnd: 3375
    functionName: OGRPGTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPG_PQexec
    - CPLString::Printf
    - CPLAtoGIntBig
    - CPLDebug
    - CPLString::c_str
    - PQgetvalue
    - GetPGConn
    - OGRPGClearResult
    - PQresultStatus
    - OGRPGTableLayer::EndCopy
    - OGRPGTableLayer::TestCapability
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRPGTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3384,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3394,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3398,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3399,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3399,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3402,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3403,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3405,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3405,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3407,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3408,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3410,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3410,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3413,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3423,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3423,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3427,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3427,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3430,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3430,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3431,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3432,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3434,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3434,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3437,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - poGFldDefn
    argTypes:
    - OGRPGGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 3441
      start: 3381
    functionDepth: 2
    functionLinenumber: 3381
    functionLinenumberEnd: 3441
    functionName: OGRPGTableLayer::ResolveSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - atoi
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - OGRPGEscapeString
    - PQntuples
    - CPLString::c_str
    - GetPGConn
    - CPLString
    - OGRPGClearResult
    - PQresultStatus
    - PQgetvalue
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::ResolveSRID(const OGRPGGeomFieldDefn *poGFldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::BuildCopyFields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3452,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3457,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3458,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3460,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3461,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3465,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3465,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3470,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3474
    functionName: OGRPGTableLayer::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPG_PQexec
    - OGRPGTableLayer::BuildCopyFields
    - CPLString::c_str
    - GetPGConn
    - snprintf
    - PQerrorMessage
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::StartCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3491,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3505,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3506,1
    - Dst: PQgetResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3512,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3516,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3517,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3522,1
    - Dst: OGRPGTableLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3480
    functionDepth: 1
    functionLinenumber: 3480
    functionLinenumberEnd: 3530
    functionName: OGRPGTableLayer::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 15
    functionsReached:
    - CPLDebug
    - PQgetResult
    - GetPGConn
    - PQerrorMessage
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - OGRPGTableLayer::UpdateSequenceIfNeeded
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3540,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3544,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3547,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3548,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3549,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3550,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3551,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3536
    functionDepth: 2
    functionLinenumber: 3536
    functionLinenumberEnd: 3555
    functionName: OGRPGTableLayer::UpdateSequenceIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRPGEscapeColumnName
    - OGRPG_PQexec
    - CPLString::Printf
    - OGRPGEscapeString
    - GetPGConn
    - OGRPGClearResult
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::UpdateSequenceIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3567,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3569,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3570,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3572,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3572,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3577,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3580,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3582,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3585,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3590,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3595,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3561
    functionDepth: 2
    functionLinenumber: 3561
    functionLinenumberEnd: 3602
    functionName: OGRPGTableLayer::BuildCopyFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGEscapeColumnName
    - OGRGeomFieldDefn*::GetNameRef
    - GetGeomFieldDefn
    - GetFieldCount
    - GetFieldDefn
    - GetFieldIndex
    - GetGeomFieldCount
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGTableLayer::BuildCopyFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3615,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3616,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3617,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3617,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3631,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3635,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3635,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3636,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3638
      start: 3608
    functionDepth: 2
    functionLinenumber: 3608
    functionLinenumberEnd: 3638
    functionName: OGRPGTableLayer::CheckGeomTypeCompatibility
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryTypeToName
    - GetGeomFieldDefn
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableLayer::CheckGeomTypeCompatibility(int iGeomField,\n
      \                                                OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3674,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3681,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3683,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - pszOverrideColumnTypes
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3684
      start: 3644
    functionDepth: 1
    functionLinenumber: 3644
    functionLinenumberEnd: 3684
    functionName: OGRPGTableLayer::SetOverrideColumnTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRPGTableLayer::SetOverrideColumnTypes(const char *pszOverrideColumnTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3698,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3700,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3703,1
    - Dst: OGRPGTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3711,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3713,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3721,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3723,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3724,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3725,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3725,1
    - Dst: RunGetExtentRequest
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3729,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3733,1
    - Dst: OGRPGLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 3739
      start: 3693
    functionDepth: 3
    functionLinenumber: 3693
    functionLinenumberEnd: 3739
    functionName: OGRPGTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - CPLString::Printf
    - GetGeomFieldDefn
    - RunGetExtentRequest
    - CPLDebug
    - OGRPGEscapeString
    - OGRPGLayer::IGetExtent
    - GetPGConn
    - OGRPGTableLayer::EndCopy
    - OGRPGTableLayer::TestCapability
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGTableLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3747,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3750,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3752,1
    - Dst: OGRPGTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3753,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3756,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3758,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3760,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3763,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3766,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3766,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3768,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3772,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3773,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3775,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3778,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3779,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3785
      start: 3745
    functionDepth: 3
    functionLinenumber: 3745
    functionLinenumberEnd: 3785
    functionName: OGRPGTableLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - OGRPGTableLayer::ResetReading
    - CPLStrdup
    - OGRPG_PQexec
    - CPLString::Printf
    - SetDescription
    - GetPGConn
    - OGRPGClearResult
    - PQerrorMessage
    - CPLError
    - PQresultStatus
    - whileUnsealing
    - CPLFree
    - OGRPGTableLayer::EndCopy
    - OGRPGTableLayer::TestCapability
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bDeferredCreationIn
    - osCreateTableIn
    argTypes:
    - int
    - std::string
    constantsTouched: []
    func_position:
      end: 3796
      start: 3791
    functionDepth: 0
    functionLinenumber: 3791
    functionLinenumberEnd: 3796
    functionName: OGRPGTableLayer::SetDeferredCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPGTableLayer::SetDeferredCreation(int bDeferredCreationIn,\n
      \                                         const std::string &osCreateTableIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3808,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3810,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3812,1
    - Dst: HavePostGIS
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3814,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3821,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3821,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3837,1
    - Dst: OGRPGGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3839,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3847,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3849,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3849,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3852,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3852,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3853,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3855,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3859,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3863,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3863,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3864,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3866,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3870,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3873,1
    - Dst: OGRPGTableLayer::RunCreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3874,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3883,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3802
    functionDepth: 2
    functionLinenumber: 3802
    functionLinenumberEnd: 3886
    functionName: OGRPGTableLayer::RunDeferredCreationIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 12
    functionsReached:
    - OGRPGEscapeColumnName
    - GetGeomFieldDefn
    - OGRPGTableLayer::SetMetadata
    - GetPGConn
    - CPLError
    - GetGeomFieldCount
    - CPLString::c_str
    - OGRPGGeomFieldDefn*::GetNameRef
    - HavePostGIS
    - c_str
    - OGRPGTableLayer::RunCreateSpatialIndex
    - CPLSPrintf
    - OGRPGGeomFieldDefn*::IsNullable
    - PQresultStatus
    - OGRPGTableLayer::EndCopy
    - OGRPG_PQexec
    - PQerrorMessage
    - OGRPGClearResult
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGTableLayer::RunDeferredCreationIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3898,1
    - Dst: OGRPGTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3904,1
    - Dst: OGRPGTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3909,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3912,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3914,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3914,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3919,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3924,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3924,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3925,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3925,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3926,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3929,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3940,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3946,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3951,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3951,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3952,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3952,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3952,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3953,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3958,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3966,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3973,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3976,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3976,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3977,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3978,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3984,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3987,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3987,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3988,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3989,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3989,1
    - Dst: std::thread
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:3998,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4004,1
    - Dst: AbortSQL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4005,1
    - Dst: std::condition_variable::wait_for
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4006,1
    - Dst: std::chrono::milliseconds
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4006,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4011,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4012,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4012,1
    - Dst: std::condition_variable::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4019,1
    - Dst: std::thread::join
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4021,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4026,1
    - Dst: static_cast<OGRGeometryTypeCounter *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4030,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4031,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4046,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4055,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4060,1
    - Dst: std::strtoll
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4060,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4065,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 5
    argNames:
    - iGeomField
    - nFlagsGGT
    - nEntryCountOut
    - pfnProgress
    - pProgressData
    argTypes:
    - int
    - int
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4068
      start: 3892
    functionDepth: 3
    functionLinenumber: 3892
    functionLinenumberEnd: 4068
    functionName: OGRPGTableLayer::GetGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGEscapeColumnName
    - std::chrono::milliseconds
    - std::thread::join
    - GetPGConn
    - CPLError
    - std::string::c_str
    - OGRFromOGCGeomType
    - auto::c_str
    - std::string::empty
    - std::strtoll
    - std::thread
    - AbortSQL
    - CPLString::c_str
    - pfnProgress
    - std::condition_variable::notify_one
    - static_cast<OGRGeometryTypeCounter *>
    - GetLayerDefn
    - OGRPGGeomFieldDefn*::GetNameRef
    - c_str
    - OGRPGTableLayer::RunDeferredCreationIfNecessary
    - CPLString::Printf
    - PQresultStatus
    - CPLCalloc
    - OGRPGTableLayer::EndCopy
    - static_cast<int64_t>
    - OGR_GT_SetModifier
    - OGRPG_PQexec
    - std::condition_variable::wait_for
    - OGRPGClearResult
    linkageType: ''
    returnType: OGRGeometryTypeCounter
    signature: "OGRGeometryTypeCounter *OGRPGTableLayer::GetGeometryTypes(\n    int
      iGeomField, int nFlagsGGT, int &nEntryCountOut,\n    GDALProgressFunc pfnProgress,
      void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4076,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4084,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp:4085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pszFieldName
    - bExactMatch
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4089
      start: 4074
    functionDepth: 2
    functionLinenumber: 4074
    functionLinenumberEnd: 4089
    functionName: OGRPGTableLayer::FindFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - auto::GetFieldIndex
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGRPGTableLayer::FindFieldIndex(const char *pszFieldName, int bExactMatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:25,1
    - Dst: OGRPGDataSource::OGRPGDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:28,1
    - Dst: OGRPGDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: OGRPGDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDataSource::OGRPGDataSource
    - OGRPGDriverIdentify
    - OGRPGDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPGDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDataSource::OGRPGDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:50,1
    - Dst: OGRPGDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: OGRPGDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDataSource::OGRPGDataSource
    - OGRPGDataSource*::Open
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRPGDriverCreate(const char *pszName, CPL_UNUSED int
      nBands,\n                  CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n                  CPL_UNUSED
      GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:72,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:75,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:78,1
    - Dst: OGRPGDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:79,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: RegisterOGRPG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRPGDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PQclear
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hResult
    argTypes:
    - PGresult*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: OGRPGClearResult
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.h
    functionUses: 43
    functionsReached:
    - PQclear
    linkageType: ''
    returnType: void
    signature: void OGRPGClearResult(PGresult *&hResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:65,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:65,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:67,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: OGRPGLayer::OGRPGLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - CPLGetConfigOption
    - CPLStrdup
    - atoi
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::OGRPGLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:79,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:80,1
    - Dst: OGRPGLayer::CloseCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:83,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:85,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:86,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:87,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:88,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:89,1
    - Dst: UnsetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:93,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: OGRPGLayer::~OGRPGLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGLayer::CloseCursor
    - CPLDebug
    - UnsetLayer
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::~OGRPGLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:104,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:108,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:111,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:116,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:116,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:117,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: OGRPGLayer::CloseCursor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPG_PQexec
    - CPLString::Printf
    - CPLString::c_str
    - SoftCommitTransaction
    - GetPGConn
    - OGRPGClearResult
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::CloseCursor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::CloseCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: OGRPGLayer::InvalidateCursor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGLayer::CloseCursor
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::InvalidateCursor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:142,1
    - Dst: OGRPGLayer::CloseCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: OGRPGLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 2
    functionsReached:
    - GetLayerDefn
    - OGRPGLayer::CloseCursor
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:221,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - var
    argTypes:
    - NumericVar*
    constantsTouched: []
    func_position:
      end: 280
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 280
    functionName: OGRPGGetStrFromBinaryNumeric
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_MSBPTR16
    linkageType: ''
    returnType: char
    signature: char *OGRPGGetStrFromBinaryNumeric(NumericVar *var)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - jd
    - year
    - month
    - day
    argTypes:
    - int
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: OGRPGj2date
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGj2date(int jd, int *year, int *month, int *day)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - jd
    - hour
    - min
    - sec
    - fsec
    argTypes:
    - GIntBig
    - int*
    - int*
    - int*
    - double*
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: OGRPGdt2timeInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPGdt2timeInt8(GIntBig jd, int *hour, int *min, int *sec,\n
      \                            double *fsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - jd
    - hour
    - min
    - sec
    - fsec
    argTypes:
    - double
    - int*
    - int*
    - int*
    - double*
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: OGRPGdt2timeFloat8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRPGdt2timeFloat8(double jd, int *hour, int *min, int *sec,\n
      \                              double *fsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TMODULO
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:365,1
    - Dst: OGRPGj2date
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:380,1
    - Dst: OGRPGdt2timeInt8
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - dt
    - year
    - month
    - day
    - hour
    - min
    - pdfSec
    argTypes:
    - GIntBig
    - int*
    - int*
    - int*
    - int*
    - int*
    - double*
    constantsTouched: []
    func_position:
      end: 387
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 387
    functionName: OGRPGTimeStamp2DMYHMS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGdt2timeInt8
    - TMODULO
    - OGRPGj2date
    linkageType: ''
    returnType: int
    signature: "int OGRPGTimeStamp2DMYHMS(GIntBig dt, int *year, int *month, int *day,\n
      \                                int *hour, int *min, double *pdfSec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszToken
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 413
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 413
    functionName: OGRPGTokenizeStringListUnescapeToken
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: void
    signature: void OGRPGTokenizeStringListUnescapeToken(char *pszToken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:423,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:456,1
    - Dst: OGRPGTokenizeStringListUnescapeToken
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:459,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:460,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:461,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:489,1
    - Dst: OGRPGTokenizeStringListUnescapeToken
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:492,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:493,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:494,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:504,1
    - Dst: OGRPGTokenizeStringListUnescapeToken
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:507,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:509,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:519,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 522
    functionName: OGRPGTokenizeStringListFromText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - OGRPGTokenizeStringListUnescapeToken
    - CPLError
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **OGRPGTokenizeStringListFromText(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:540,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:542,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:548,1
    - Dst: PQftype
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:560,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:563,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:568,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:568,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:570,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:570,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:572,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:573,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:578,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:578,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:580,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:580,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:582,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:583,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:587,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:598,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:598,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:612,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:617,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:618,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:631,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:632,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:634,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:635,1
    - Dst: OGRPGLayer::BYTEAToGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:637,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:642,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:643,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:649,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:650,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:651,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:657,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:659,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:660,1
    - Dst: CPLBase64DecodeInPlace
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:669,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:669,1
    - Dst: OGRGeometryFromEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:670,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:671,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:675,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:676,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:677,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:683,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:684,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:698,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:699,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:700,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:701,1
    - Dst: OGRPGLayer::BYTEAToGByteArray
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:703,1
    - Dst: OGRGeometryFromEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:705,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:706,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:708,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:709,1
    - Dst: OGRGeometryFromHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:711,1
    - Dst: OGRGeometryFromEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:717,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:718,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:719,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:725,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:726,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:727,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:743,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:752,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:753,1
    - Dst: OGRGeometryFromHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:755,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:758,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:762,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:763,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:764,1
    - Dst: OGRPGLayer::OIDToGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:784,1
    - Dst: static_cast<Oid>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:784,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:784,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:789,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:793,1
    - Dst: OGRGeometryFromEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:795,1
    - Dst: OGRPGLayer::BYTEAToGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:800,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:806,1
    - Dst: OGRPGGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:807,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:808,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:824,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:826,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:831,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:838,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:846,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:847,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:850,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:850,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:859,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:864,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:865,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:866,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:870,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:872,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:873,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:882,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:895,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:896,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:896,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:898,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:902,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:907,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:909,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:911,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:912,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:921,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:929,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:930,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:932,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:933,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:942,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:944,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:948,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:949,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:956,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:969,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:971,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:971,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:973,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:977,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:982,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:984,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:986,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:987,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:996,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1004,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1005,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1007,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1008,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1017,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1023,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1025,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1026,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1030,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1033,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1034,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1044,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1057,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1059,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1059,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1062,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1063,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1066,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1067,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1075,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1082,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1083,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1092,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1097,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1101,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1105,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1107,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1108,1
    - Dst: OGRPGTokenizeStringListFromText
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1118,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1119,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1124,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1125,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1133,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1138,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1138,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1140,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1140,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1142,1
    - Dst: OGRPGj2date
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1143,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1145,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1154,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1154,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1159,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1159,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1160,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1161,1
    - Dst: OGRPGdt2timeInt8
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1164,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1170,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1170,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1171,1
    - Dst: OGRPGdt2timeFloat8
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1172,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1175,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1177,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1189,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1189,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1190,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1190,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1191,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1192,1
    - Dst: OGRPGTimeStamp2DMYHMS
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1194,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1196,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1204,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1204,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1207,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1212,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1222,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1222,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1225,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1232,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1235,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1236,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1237,1
    - Dst: OGRPGLayer::BYTEAToGByteArray
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1244,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1245,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1246,1
    - Dst: PQfformat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1252,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1257,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1257,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1260,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1266,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1268,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1270,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1272,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1274,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1276,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1278,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1280,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1281,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1281,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1291,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1292,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1296,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1296,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1299,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1299,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1301,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1302,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1306,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1306,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1309,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1309,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1311,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1312,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1316,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1316,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1318,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1318,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1319,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1320,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1323,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1327,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1327,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1330,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1330,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1332,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1333,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1337,1
    - Dst: PQgetlength
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1337,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1340,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1340,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1342,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1343,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1347,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1350,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1351,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1359,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1362,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1363,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1364,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1365,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1369,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1374,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1376,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1376,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1380,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1381,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 390
    argCount: 4
    argNames:
    - hResult
    - panMapFieldNameToIndex
    - panMapFieldNameToGeomIndex
    - iRecord
    argTypes:
    - PGresult*
    - int*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1388
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 1388
    functionName: OGRPGLayer::RecordToFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Oid>
    - PQgetisnull
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - OGRPGTokenizeStringListFromText
    - atoi
    - OGRPGj2date
    - OGRPGTimeStamp2DMYHMS
    - reinterpret_cast<GByte *>
    - GetGeomFieldDefn
    - CSLAddString
    - CPLDebug
    - CPLBase64DecodeInPlace
    - OGRPGdt2timeFloat8
    - OGRFieldDefn::GetFieldTypeName
    - GetFieldDefn
    - PQnfields
    - STARTS_WITH
    - static_cast<GIntBig *>
    - OGRFeature*::SetGeomFieldDirectly
    - OGRGeometryFactory::createFromWkb
    - CPL_MSBPTR64
    - CPL_MSBPTR16
    - CPLAtoGIntBig
    - OGRPGLayer::BYTEAToGeometry
    - OGRGeometryFromHexEWKB
    - static_cast<double *>
    - CSLCount
    - OGRPGdt2timeInt8
    - OGRGeometryFromEWKB
    - OGRPGGeomFieldDefn*::GetSpatialRef
    - CPLAtof
    - STARTS_WITH_CI
    - PQftype
    - const_cast<GByte *>
    - PQgetlength
    - CPLAssert
    - CPL_MSBPTR32
    - snprintf
    - OGRFeature::OGRFeature
    - CPLCalloc
    - CPLFree
    - PQgetvalue
    - OGRPGLayer::OIDToGeometry
    - static_cast<int *>
    - OGRPGLayer::BYTEAToGByteArray
    - CSLDestroy
    - reinterpret_cast<const GByte *>
    - EQUAL
    - PQfformat
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - memcpy
    - OGRFeature*::SetFID
    - OGRParseDate
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRPGLayer::RecordToFeature(PGresult *hResult,\n                                        const
      int *panMapFieldNameToIndex,\n                                        const
      int *panMapFieldNameToGeomIndex,\n                                        int
      iRecord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1403,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1404,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1404,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1408
    functionName: OGRPGIsKnownGeomFuncPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - EQUALN
    - static_cast<int>
    - strlen
    linkageType: ''
    returnType: int
    signature: int OGRPGIsKnownGeomFuncPrefix(const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1423,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1425,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1427,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1430,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1430,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1430,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1432,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1432,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1432,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1433,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1437,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1441,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1446,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1450,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - hResult
    - poFeatureDefn
    - panMapFieldNameToIndex
    - panMapFieldNameToGeomIndex
    argTypes:
    - PGresult*
    - OGRFeatureDefn*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1462
      start: 1418
    functionDepth: 2
    functionLinenumber: 1418
    functionLinenumberEnd: 1462
    functionName: OGRPGLayer::CreateMapFromFieldNameToIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int *>
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFeatureDefn*::GetFieldIndex
    - strlen
    - PQresultStatus
    - CPLMalloc
    - CPLFree
    - PQnfields
    linkageType: ''
    returnType: void
    signature: "void OGRPGLayer::CreateMapFromFieldNameToIndex(PGresult *hResult,\n
      \                                              OGRFeatureDefn *poFeatureDefn,\n
      \                                              int *&panMapFieldNameToIndex,\n
      \                                              int *&panMapFieldNameToGeomIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1470,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1473,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1475,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1479,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1483,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1486,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1489,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1489,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1490,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1492,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1494,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1495,1
    - Dst: OGRPGLayer::CreateMapFromFieldNameToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1502
    functionName: OGRPGLayer::SetInitialQueryCursor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - SoftStartTransaction
    - OGRPG_PQexec
    - CPLString::Printf
    - SoftRollbackTransaction
    - OGRPGLayer::CreateMapFromFieldNameToIndex
    - CPLAssert
    - GetPGConn
    - OGRPGClearResult
    - PQerrorMessage
    - CPLError
    - PQresultStatus
    linkageType: ''
    returnType: void
    signature: void OGRPGLayer::SetInitialQueryCursor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1516,1
    - Dst: OGRPGLayer::SetInitialQueryCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1527,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1534,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1536,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1538,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1540,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1550,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1551,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1552,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1554,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1556,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1557,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1566,1
    - Dst: OGRPGLayer::CloseCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1568,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1570,1
    - Dst: OGRPGLayer::RecordToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1508
    functionDepth: 5
    functionLinenumber: 1508
    functionLinenumberEnd: 1586
    functionName: OGRPGLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGLayer::CloseCursor
    - OGRPGLayer::RecordToFeature
    - OGRPG_PQexec
    - CPLString::Printf
    - CPLDebug
    - MAX
    - PQntuples
    - OGRPGLayer::SetInitialQueryCursor
    - GetPGConn
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1595,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1597,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1598,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1607,1
    - Dst: OGRPGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1613,1
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1617,1
    - Dst: OGRPGLayer::SetInitialQueryCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1622,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1625,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1627,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1629,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1631,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1632,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1634,1
    - Dst: OGRPGLayer::CloseCursor
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1649
      start: 1592
    functionDepth: 4
    functionLinenumber: 1592
    functionLinenumberEnd: 1649
    functionName: OGRPGLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRPGLayer::CloseCursor
    - OGRPG_PQexec
    - PQresultStatus
    - CPLString::Printf
    - OGRLayer::SetNextByIndex
    - PQntuples
    - TestCapability
    - OGRPGLayer::SetInitialQueryCursor
    - GetPGConn
    - OGRPGLayer::ResetReading
    - CPLError
    - OGRPGClearResult
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1666,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1670,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1670,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1670,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - pszBytea
    - pnLength
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1706
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1706
    functionName: OGRPGLayer::BYTEAToGByteArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - CPLMalloc
    - strlen
    - CPLHexToBinary
    - static_cast<GByte *>
    linkageType: ''
    returnType: GByte
    signature: GByte *OGRPGLayer::BYTEAToGByteArray(const char *pszBytea, int *pnLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::BYTEAToGByteArray
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1719,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1722,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszBytea
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1727
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1727
    functionName: OGRPGLayer::BYTEAToGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGLayer::BYTEAToGByteArray
    - CPLFree
    - OGRGeometryFactory::createFromWkb
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRPGLayer::BYTEAToGeometry(const char *pszBytea)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1739,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1739,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1741,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1744,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1744,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1745,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1747,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1750,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1751,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1754,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1759,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1760,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1764,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - poGeometry
    - nPostGISMajor
    - nPostGISMinor
    argTypes:
    - OGRGeometry*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1767
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1767
    functionName: OGRPGLayer::GeometryToBYTEA
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGRGeometry*::exportToWkb
    - OGRGeometry*::IsEmpty
    - static_cast<GByte *>
    - wkbFlatten
    - CPLFree
    - VSI_MALLOC_VERBOSE
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: char
    signature: "char *OGRPGLayer::GeometryToBYTEA(const OGRGeometry *poGeometry,\n
      \                                 int nPostGISMajor, int nPostGISMinor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1779,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1785,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1785,1
    - Dst: lo_close
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1788,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1791,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - oid
    argTypes:
    - Oid
    constantsTouched: []
    func_position:
      end: 1797
      start: 1773
    functionDepth: 2
    functionLinenumber: 1773
    functionLinenumberEnd: 1797
    functionName: OGRPGLayer::OIDToGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - lo_close
    - OGRGeometryFactory::createFromWkb
    - GetPGConn
    - static_cast<GByte *>
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRPGLayer::OIDToGeometry(Oid oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1806,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1808,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1810,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1814,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1814,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1817,1
    - Dst: lo_creat
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1821,1
    - Dst: lo_close
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1827,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1829,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1831,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1833,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1839
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1839
    functionName: OGRPGLayer::GeometryToOID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - CPLFree
    - lo_close
    - static_cast<int>
    - OGRGeometry*::exportToWkb
    - CPLDebug
    - GetPGConn
    - static_cast<GByte *>
    - CPLError
    - lo_creat
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: Oid
    signature: Oid OGRPGLayer::GeometryToOID(OGRGeometry *poGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1849
    functionName: OGRPGLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1859
    functionName: OGRPGLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGLayer::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1869
    functionName: OGRPGLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1884
    functionName: OGRPGLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRPGLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1899,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1901,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1904,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1906,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1906,1
    - Dst: GetFromClauseForGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1907,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1913,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1916,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1916,1
    - Dst: GetFromClauseForGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1917,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1920,1
    - Dst: OGRPGLayer::RunGetExtentRequest
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1922,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1928
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1928
    functionName: OGRPGLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - OGRPGGeomFieldDefn*::GetNameRef
    - OGRPGEscapeColumnName
    - CPLString::Printf
    - GetGeomFieldDefn
    - TestCapability
    - GetFromClauseForGetExtent
    - OGRLayer::IGetExtent
    - OGRPGLayer::RunGetExtentRequest
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                             bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1933,1
    - Dst: auto::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1936,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1937,1
    - Dst: CPLAssertNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1937,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1937,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1940,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1941,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1942,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1949,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1951,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1954,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1956,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1956,1
    - Dst: GetFromClauseForGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1957,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1963,1
    - Dst: OGRPGEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1966,1
    - Dst: OGRPGGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1966,1
    - Dst: GetFromClauseForGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1967,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1970,1
    - Dst: OGRPGLayer::RunGetExtent3DRequest
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1972,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 1977
      start: 1930
    functionDepth: 2
    functionLinenumber: 1930
    functionLinenumberEnd: 1977
    functionName: OGRPGLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - CPLAssertNotNull
    - OGRPGGeomFieldDefn*::GetNameRef
    - GetExtent
    - OGRPGLayer::RunGetExtent3DRequest
    - cpl::infinity
    - OGRPGEscapeColumnName
    - auto::GetGeomFieldCount
    - CPLString::Printf
    - OGR_GT_HasZ
    - auto::GetGeomFieldDefn
    - TestCapability
    - GetFromClauseForGetExtent
    - OGRLayer::IGetExtent3D
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGLayer::IGetExtent3D(int iGeomField, OGREnvelope3D *psExtent3D,\n
      \                               bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1988,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1990,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1990,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1991,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1992,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1994,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:1995,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2003,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2006,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2007,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2009,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2012,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2016,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2020,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2023,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2025,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2028,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2038,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2039,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2040,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2041,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2043,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - sExtent
    - bForce
    - osCommand
    - bErrorAsDebug
    argTypes:
    - OGREnvelope
    - CPL_UNUSED
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 2046
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 2046
    functionName: OGRPGLayer::RunGetExtentRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - PQgetisnull
    - static_cast<int>
    - CSLTokenizeString2
    - OGRPG_PQexec
    - strncpy
    - CPLDebug
    - strchr
    - GetPGConn
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - CPLStringList::size
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGLayer::RunGetExtentRequest(OGREnvelope &sExtent,\n                                       CPL_UNUSED
      int bForce,\n                                       const std::string &osCommand,\n
      \                                      int bErrorAsDebug)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2052,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2054,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2054,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2055,1
    - Dst: PQgetisnull
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2056,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2058,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2059,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2067,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2070,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2071,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2073,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2076,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2080,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2084,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2086,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2088,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2090,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2094,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2095,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2096,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2097,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2098,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2099,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2101,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - sExtent3D
    - osCommand
    - bErrorAsDebug
    argTypes:
    - OGREnvelope3D
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 2105
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2105
    functionName: OGRPGLayer::RunGetExtent3DRequest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - PQgetisnull
    - static_cast<int>
    - OGRPG_PQexec
    - CSLDestroy
    - strncpy
    - CPLDebug
    - strchr
    - GetPGConn
    - OGRPGClearResult
    - CPLError
    - PQresultStatus
    - CSLCount
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGLayer::RunGetExtent3DRequest(OGREnvelope3D &sExtent3D,\n
      \                                        const std::string &osCommand,\n                                         int
      bErrorAsDebug)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGFeatureDefn::OGRPGFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2121,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2122,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2122,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2124,1
    - Dst: PQnfields
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2126,1
    - Dst: PQftype
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2129,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2132,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2132,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2136,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2140,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2141,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2141,1
    - Dst: OGRPGIsKnownGeomFuncPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2145,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2145,1
    - Dst: GetGeometryOID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2146,1
    - Dst: GetGeographyOID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2147,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2150,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2150,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2152,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2152,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2155,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2156,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2157,1
    - Dst: GetGeographyOID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2159,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2173,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2176,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2176,1
    - Dst: std::make_unique<OGRPGGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2181,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2181,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2183,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2183,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2191,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2196,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2206,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2211,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2212,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2213,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2217,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2218,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2219,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2223,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2227,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2231,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2232,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2236,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2251,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2253,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2257,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2259,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2260,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2264,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2269,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2270,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2271,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2275,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2276,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2280,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2284,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2288,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2289,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2293,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2298,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2302,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2306,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2317,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2321,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2322,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2326,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2327,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2331,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2333,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2334,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2337,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 129
    argCount: 1
    argNames:
    - hInitialResultIn
    argTypes:
    - PGresult*
    constantsTouched: []
    func_position:
      end: 2341
      start: 2113
    functionDepth: 2
    functionLinenumber: 2113
    functionLinenumberEnd: 2341
    functionName: OGRPGLayer::ReadResultDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGIsKnownGeomFuncPrefix
    - CPLDebug
    - Reference
    - CPLError
    - PQnfields
    - GetGeometryOID
    - CPLStrdup
    - std::move
    - strlen
    - AddFieldDefn
    - GetName
    - OGRFieldDefn::GetNameRef
    - auto::SetName
    - PQftype
    - OGRFieldDefn::SetSubType
    - SetDescription
    - CPLFree
    - GetGeographyOID
    - std::make_unique<OGRPGGeomFieldDefn>
    - AddGeomFieldDefn
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - OGRPGFeatureDefn::OGRPGFeatureDefn
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGLayer::ReadResultDefinition(PGresult *hInitialResultIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResolveSRID
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2352,1
    - Dst: GetDS
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2356,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp:2358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2361
    functionName: OGRPGGeomFieldDefn::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached:
    - ResolveSRID
    - const_cast<OGRSpatialReference *>
    - GetDS
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRPGGeomFieldDefn::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2370
    functionName: OGRPGLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPGLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:24,1
    - Dst: PQexecParams
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:25,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:33,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:37,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:38,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:54,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:56,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:62,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:63,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:66,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:66,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:68,1
    - Dst: PQerrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:68,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - conn
    - query
    - bMultipleCommandAllowed
    - bErrorAsDebug
    argTypes:
    - PGconn*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 72
    functionName: OGRPG_PQexec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp
    functionUses: 47
    functionsReached:
    - PQexecParams
    - CPLDebug
    - PQntuples
    - snprintf
    - PQerrorMessage
    - CPLError
    - PQresultStatus
    - PQexec
    linkageType: ''
    returnType: PGresult
    signature: "PGresult *OGRPG_PQexec(PGconn *conn, const char *query,\n                       int
      bMultipleCommandAllowed, int bErrorAsDebug)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:81,1
    - Dst: OGRPGEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:83,1
    - Dst: OGRPG_PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:84,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:87,1
    - Dst: OGRPGClearResult
      Src: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hPGConn
    - pszTableName
    argTypes:
    - PGconn*
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: OGRPG_Check_Table_Exists
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pg/ogrpgutility.cpp
    functionUses: 1
    functionsReached:
    - OGRPG_PQexec
    - CPLString::Printf
    - CPLDebug
    - OGRPGEscapeString
    - OGRPGClearResult
    linkageType: ''
    returnType: bool
    signature: bool OGRPG_Check_Table_Exists(PGconn *hPGConn, const char *pszTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: OGRArrowArrayStream::OGRArrowArrayStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void OGRArrowArrayStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: ~OGRArrowArrayStream()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~OGRArrowArrayStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: OGRArrowArrayStream::clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: OGRArrowArrayStream::get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ArrowArrayStream
    signature: ArrowArrayStream *get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowArrayStream::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OGRArrowArrayStream::get_schema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 1
    functionsReached:
    - OGRArrowArrayStream::get_schema
    linkageType: ''
    returnType: int
    signature: int get_schema(struct ArrowSchema *schema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowArrayStream::get_next
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: OGRArrowArrayStream::get_next
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 1
    functionsReached:
    - OGRArrowArrayStream::get_next
    linkageType: ''
    returnType: int
    signature: int get_next(struct ArrowArray *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:94,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:95,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - OGRArrowArrayStream
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: '&operator=(OGRArrowArrayStream &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - clear
    linkageType: ''
    returnType: OGRArrowArrayStream
    signature: OGRArrowArrayStream &operator=(OGRArrowArrayStream &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: OGRArrowArrayStream::OGRArrowArrayStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowArrayStream(const OGRArrowArrayStream &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: OGRArrowArrayStream::OGRArrowArrayStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowArrayStream(OGRArrowArrayStream &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '&operator=(const OGRArrowArrayStream &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRArrowArrayStream
    signature: OGRArrowArrayStream &operator=(const OGRArrowArrayStream &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: OGRMILayerAttrIndex::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: OGRMILayerAttrIndex::OGRMILayerAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMILayerAttrIndex::OGRMILayerAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:129,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:135,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:139,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:141,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: OGRMILayerAttrIndex::~OGRMILayerAttrIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - CPLFree
    - Close
    linkageType: ''
    returnType: void
    signature: void OGRMILayerAttrIndex::~OGRMILayerAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:161,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:164,1
    - Dst: OGRMILayerAttrIndex::LoadConfigFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:165,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:168,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:168,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:171,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:171,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:179,1
    - Dst: OGRMILayerAttrIndex::LoadConfigFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - pszIndexPathIn
    - poLayerIn
    argTypes:
    - char*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 187
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 187
    functionName: OGRMILayerAttrIndex::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - STARTS_WITH_CI
    - CPLStrdup
    - CPLResetExtensionSafe
    - OGRMILayerAttrIndex::LoadConfigFromXML
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMILayerAttrIndex::Initialize(const char *pszIndexPathIn,\n
      \                                      OGRLayer *poLayerIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:199,1
    - Dst: TABINDFile::TABINDFile
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:211,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:211,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:220,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:222,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:223,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:234,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:242,1
    - Dst: OGRMILayerAttrIndex::AddAttrInd
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:247,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:250,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:252,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - pszRawXML
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 258
    functionName: OGRMILayerAttrIndex::LoadConfigFromXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - CPLStrdup
    - CPLError
    - Open
    - CPLDestroyXMLNode
    - OGRMILayerAttrIndex::AddAttrInd
    - CPLDebug
    - CPLParseXMLString
    - EQUAL
    - TABINDFile::TABINDFile
    - CPLGetXMLValue
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::LoadConfigFromXML(const char *pszRawXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:262,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:267,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:271,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:273,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:276,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:277,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:279,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:286,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:286,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:288,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:292,1
    - Dst: OGRMILayerAttrIndex::LoadConfigFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:294,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 298
    functionName: OGRMILayerAttrIndex::LoadConfigFromXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - VSIFCloseL
    - VSIFSeekL
    - OGRMILayerAttrIndex::LoadConfigFromXML
    - VSIFOpenL
    - CPLAssert
    - VSIFTellL
    - VSIFReadL
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::LoadConfigFromXML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:314,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:316,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:317,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:323,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:325,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:326,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:328,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:330,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:332,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:333,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:341,1
    - Dst: VSIFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:346,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:348,1
    - Dst: VSIFWrite
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:352,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:352,1
    - Dst: VSIFClose
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:355,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 360
    functionName: OGRMILayerAttrIndex::SaveConfigToXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - VSIFClose
    - GetLayerDefn
    - CPLCreateXMLElementAndValue
    - CPLGetFilename
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLSPrintf
    - VSIFWrite
    - VSIFOpen
    - strlen
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::SaveConfigToXML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:369,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:372,1
    - Dst: OGRMILayerAttrIndex::AddToIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:374,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: OGRMILayerAttrIndex::IndexAllFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - GetNextFeature
    - OGRMILayerAttrIndex::AddToIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::IndexAllFeatures(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::TABINDFile
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:402,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:403,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:408,1
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:415,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:416,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:418,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:421,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:423,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:446,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:449,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:450,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:462,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:474,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:475,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:481,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:483,1
    - Dst: OGRMILayerAttrIndex::AddAttrInd
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:496,1
    - Dst: OGRMILayerAttrIndex::SaveConfigToXML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:503,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 504
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 504
    functionName: OGRMILayerAttrIndex::CreateIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRMILayerAttrIndex::SaveConfigToXML
    - Open
    - OGRFieldDefn*::GetNameRef
    - OGRMILayerAttrIndex::AddAttrInd
    - TABINDFile::TABINDFile
    - OGRFieldDefn*::GetType
    - Close
    - CPLError
    - OGRFieldDefn*::GetWidth
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::CreateIndex(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:520,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:531,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:533,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:542,1
    - Dst: OGRMILayerAttrIndex::SaveConfigToXML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:555,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 563
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 563
    functionName: OGRMILayerAttrIndex::DropIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRMILayerAttrIndex::SaveConfigToXML
    - OGRFieldDefn*::GetNameRef
    - VSIUnlink
    - CPLError
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::DropIndex(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMIAttrIndex::OGRMIAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:572,1
    - Dst: static_cast<OGRMIAttrIndex **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:575,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - iField
    - iINDIndex
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: OGRMILayerAttrIndex::AddAttrInd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 2
    functionsReached:
    - CPLRealloc
    - OGRMIAttrIndex::OGRMIAttrIndex
    - static_cast<OGRMIAttrIndex **>
    linkageType: ''
    returnType: void
    signature: void OGRMILayerAttrIndex::AddAttrInd(int iField, int iINDIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: OGRMILayerAttrIndex::GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRAttrIndex
    signature: OGRAttrIndex *OGRMILayerAttrIndex::GetFieldIndex(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:606,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:608,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:620,1
    - Dst: AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:623,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:623,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - poFeature
    - iTargetField
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 628
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 628
    functionName: OGRMILayerAttrIndex::AddToIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - AddEntry
    - OGRFeature*::GetFID
    - OGRFeature*::GetRawFieldRef
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::AddToIndex(OGRFeature *poFeature, int iTargetField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: OGRMILayerAttrIndex::RemoveFromIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMILayerAttrIndex::RemoveFromIndex(OGRFeature * /*poFeature*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMILayerAttrIndex::OGRMILayerAttrIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: OGRCreateDefaultLayerIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - OGRMILayerAttrIndex::OGRMILayerAttrIndex
    linkageType: ''
    returnType: OGRLayerAttrIndex
    signature: OGRLayerAttrIndex *OGRCreateDefaultLayerIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMILayerAttrIndex*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poLayerIndex
    - iIndexIn
    - iFieldIn
    argTypes:
    - OGRMILayerAttrIndex*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: OGRMIAttrIndex::OGRMIAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 1
    functionsReached:
    - OGRMILayerAttrIndex*::GetLayer
    linkageType: ''
    returnType: void
    signature: "void OGRMIAttrIndex::OGRMIAttrIndex(OGRMILayerAttrIndex *poLayerIndex,
      int iIndexIn,\n                               int iFieldIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 678
    functionName: OGRMIAttrIndex::~OGRMIAttrIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMIAttrIndex::~OGRMIAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:693,1
    - Dst: OGRMIAttrIndex::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:698,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - psKey
    - nFID
    argTypes:
    - OGRField*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 702
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 702
    functionName: OGRMIAttrIndex::AddEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 1
    functionsReached:
    - OGRMIAttrIndex::AddEntry
    - static_cast<int>
    - OGRMIAttrIndex::BuildKey
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMIAttrIndex::AddEntry(OGRField *psKey, GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: OGRMIAttrIndex::RemoveEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMIAttrIndex::RemoveEntry(OGRField * /*psKey*/, GIntBig /*nFID*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:722,1
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:725,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:730,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:732,1
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:737,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:737,1
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:742,1
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:746,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - psKey
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 754
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 754
    functionName: OGRMIAttrIndex::BuildKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - OGRMIAttrIndex::BuildKey
    - CPL_INT64_FITS_ON_INT32
    - CPLAssert
    - GetType
    - CPLError
    linkageType: ''
    returnType: GByte
    signature: GByte *OGRMIAttrIndex::BuildKey(OGRField *psKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:763,1
    - Dst: FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psKey
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 769
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 769
    functionName: OGRMIAttrIndex::GetFirstMatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - FindFirst
    - OGRMIAttrIndex::BuildKey
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMIAttrIndex::GetFirstMatch(OGRField *psKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMIAttrIndex::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:778,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:782,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:782,1
    - Dst: FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:787,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:793,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:794,1
    - Dst: FindNext
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - psKey
    - panFIDList
    - nFIDCount
    - nLength
    argTypes:
    - OGRField*
    - GIntBig*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 804
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 804
    functionName: OGRMIAttrIndex::GetAllMatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached:
    - OGRMIAttrIndex::BuildKey
    - FindNext
    - CPLRealloc
    - FindFirst
    - CPLMalloc
    - static_cast<GIntBig *>
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig *OGRMIAttrIndex::GetAllMatches(OGRField *psKey, GIntBig *panFIDList,\n
      \                                      int *nFIDCount, int *nLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMIAttrIndex::GetAllMatches
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psKey
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: OGRMIAttrIndex::GetAllMatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 1
    functionsReached:
    - OGRMIAttrIndex::GetAllMatches
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig *OGRMIAttrIndex::GetAllMatches(OGRField *psKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: OGRMIAttrIndex::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMIAttrIndex::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: OGRCreateDefaultLayerIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_miattrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayerAttrIndex
    signature: OGRLayerAttrIndex *OGRCreateDefaultLayerIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: OGRLayerAttrIndex::OGRLayerAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_attrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayerAttrIndex::OGRLayerAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_attrind.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: OGRLayerAttrIndex::~OGRLayerAttrIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_attrind.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRLayerAttrIndex::~OGRLayerAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: OGRAttrIndex::OGRAttrIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_attrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAttrIndex::OGRAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: OGRAttrIndex::~OGRAttrIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_attrind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRAttrIndex::~OGRAttrIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: OGRUnionLayerGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRUnionLayerGeomFieldDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:56,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:69,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:85,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:86,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:87,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:92,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:93,1
    - Dst: OGRUnionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:129,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 194
    functionName: OGRUnionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.h
    functionUses: 1
    functionsReached:
    - std::make_pair
    - release
    - get
    - CPL_DISALLOW_COPY_ASSIGN
    - CPLString::c_str
    - OGRUnionLayer
    - std::move
    - reset
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRUnionLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: OGRSFDriver::~OGRSFDriver()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSFDriver::~OGRSFDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: OGRSFDriver::CreateDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRDataSource
    signature: OGRDataSource *OGRSFDriver::CreateDataSource(const char *, char **)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:51,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:53,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:60,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:61,1
    - Dst: OGRAPISpyCreateDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:64,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hDriver
    - pszName
    - papszOptions
    argTypes:
    - OGRSFDriverH
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: OGR_Dr_CreateDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::Create
    - OGRAPISpyCreateDataSource
    - reinterpret_cast<GDALDriver *>
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: "OGRDataSourceH OGR_Dr_CreateDataSource(OGRSFDriverH hDriver,\n                                       const
      char *pszName, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszDataSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: OGRSFDriver::DeleteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSFDriver::DeleteDataSource(const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:92,1
    - Dst: OGRAPISpyDeleteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:96,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hDriver
    - pszDataSource
    argTypes:
    - OGRSFDriverH
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: OGR_Dr_DeleteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALDriver *>
    - VALIDATE_POINTER1
    - OGRAPISpyDeleteDataSource
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_Dr_DeleteDataSource(OGRSFDriverH hDriver, const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:114,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDriver
    argTypes:
    - OGRSFDriverH
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: OGR_Dr_GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER1
    - reinterpret_cast<GDALDriver *>
    linkageType: ''
    returnType: char
    signature: char *OGR_Dr_GetName(OGRSFDriverH hDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:127,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:137,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:141,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hDriver
    - pszName
    - bUpdate
    argTypes:
    - OGRSFDriverH
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 145
    functionName: OGR_Dr_Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpyOpen
    - GDALOpenEx
    - VALIDATE_POINTER1
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: "OGRDataSourceH OGR_Dr_Open(OGRSFDriverH hDriver, const char *pszName,\n
      \                          int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:154,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:155,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:158,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - hDriver
    - pszCap
    argTypes:
    - OGRSFDriverH
    - char*
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: OGR_Dr_TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALDriver*::GetMetadataItem
    - VALIDATE_POINTER1
    - reinterpret_cast<GDALDriver *>
    linkageType: ''
    returnType: int
    signature: int OGR_Dr_TestCapability(OGRSFDriverH hDriver, const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:183,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:184,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:185,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:187,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:190,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:192,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:196,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:198,1
    - Dst: GDALDataset*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:205,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:207,1
    - Dst: GDALDataset*::CopyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:212,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:212,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - hDriver
    - hSrcDS
    - pszNewName
    - papszOptions
    argTypes:
    - OGRSFDriverH
    - OGRDataSourceH
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 217
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 217
    functionName: OGR_Dr_CopyDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALDriver*::Create
    - FromHandle
    - GDALDataset*::GetLayerCount
    - OGRLayer*::GetLayerDefn
    - reinterpret_cast<GDALDriver *>
    - GDALDataset*::CopyLayer
    - GDALDataset*::GetLayer
    - VALIDATE_POINTER1
    - GDALDriver*::GetDescription
    - CPLError
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: "OGRDataSourceH OGR_Dr_CopyDataSource(OGRSFDriverH hDriver,\n                                     OGRDataSourceH
      hSrcDS,\n                                     const char *pszNewName,\n                                     char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:26,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:26,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - poBaseDataSource
    - bTakeOwnership
    - hMutexIn
    - bWrapLayersInMutexedLayer
    argTypes:
    - GDALDataset*
    - int
    - CPLMutex*
    - int
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: OGRMutexedDataSource::OGRMutexedDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - GDALDataset*::GetDriver
    - GDALDataset*::GetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRMutexedDataSource::OGRMutexedDataSource(GDALDataset *poBaseDataSource,\n
      \                                          int bTakeOwnership,\n                                           CPLMutex
      *hMutexIn,\n                                           int bWrapLayersInMutexedLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:33,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: OGRMutexedDataSource::~OGRMutexedDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void OGRMutexedDataSource::~OGRMutexedDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:43,1
    - Dst: OGRMutexedDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: OGRMutexedDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetLayerCount
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: int
    signature: int OGRMutexedDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMutexedLayer::OGRMutexedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: OGRMutexedDataSource::WrapLayerIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMutexedLayer::OGRMutexedLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMutexedDataSource::WrapLayerIfNecessary(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:68,1
    - Dst: OGRMutexedDataSource::WrapLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:69,1
    - Dst: OGRMutexedDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: OGRMutexedDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetLayer
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::WrapLayerIfNecessary
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMutexedDataSource::GetLayer(int iIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:74,1
    - Dst: OGRMutexedDataSource::WrapLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:75,1
    - Dst: OGRMutexedDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: OGRMutexedDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetLayerByName
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::WrapLayerIfNecessary
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMutexedDataSource::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:80,1
    - Dst: OGRMutexedDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:82,1
    - Dst: OGRMutexedDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:83,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:87,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:88,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:91,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: OGRMutexedDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - erase
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::DeleteLayer
    - find
    - OGRMutexedDataSource::GetLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedDataSource::DeleteLayer(int iIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:100,1
    - Dst: OGRMutexedDataSource::IsLayerPrivate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGRMutexedDataSource::IsLayerPrivate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::IsLayerPrivate
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: bool
    signature: bool OGRMutexedDataSource::IsLayerPrivate(int iLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:106,1
    - Dst: OGRMutexedDataSource::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: OGRMutexedDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::TestCapability
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: int
    signature: int OGRMutexedDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:115,1
    - Dst: OGRMutexedDataSource::WrapLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:116,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: OGRMutexedDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateLayer
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::WrapLayerIfNecessary
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMutexedDataSource::ICreateLayer(const char *pszName,\n
      \                                  const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:124,1
    - Dst: OGRMutexedDataSource::WrapLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:125,1
    - Dst: OGRMutexedDataSource::CopyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - poSrcLayer
    - pszNewName
    - papszOptions
    argTypes:
    - OGRLayer*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: OGRMutexedDataSource::CopyLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::CopyLayer
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::WrapLayerIfNecessary
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRMutexedDataSource::CopyLayer(OGRLayer *poSrcLayer,\n
      \                                         const char *pszNewName,\n                                          char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:131,1
    - Dst: OGRMutexedDataSource::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: OGRMutexedDataSource::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetStyleTable
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRMutexedDataSource::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:137,1
    - Dst: OGRMutexedDataSource::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: OGRMutexedDataSource::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::SetStyleTableDirectly
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: void
    signature: void OGRMutexedDataSource::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:143,1
    - Dst: OGRMutexedDataSource::SetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: OGRMutexedDataSource::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::SetStyleTable
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: void
    signature: void OGRMutexedDataSource::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:151,1
    - Dst: OGRMutexedDataSource::WrapLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:152,1
    - Dst: OGRMutexedDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: OGRMutexedDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::ExecuteSQL
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::WrapLayerIfNecessary
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRMutexedDataSource::ExecuteSQL(const char *pszStatement,\n
      \                                          OGRGeometry *poSpatialFilter,\n                                           const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:158,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:162,1
    - Dst: dynamic_cast<OGRMutexedLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:163,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:164,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:164,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:167,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:168,1
    - Dst: OGRMutexedDataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: OGRMutexedDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - erase
    - dynamic_cast<OGRMutexedLayer *>
    - OGRMutexedDataSource::ReleaseResultSet
    - CPLMutexHolderOptionalLockD
    - find
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRMutexedDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:176,1
    - Dst: OGRMutexedDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: OGRMutexedDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::FlushCache
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRMutexedDataSource::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:182,1
    - Dst: OGRMutexedDataSource::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: OGRMutexedDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::StartTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedDataSource::StartTransaction(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:188,1
    - Dst: OGRMutexedDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: OGRMutexedDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::CommitTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:194,1
    - Dst: OGRMutexedDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: OGRMutexedDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::RollbackTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:200,1
    - Dst: OGRMutexedDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: OGRMutexedDataSource::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetMetadata
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: char **OGRMutexedDataSource::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:207,1
    - Dst: OGRMutexedDataSource::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: OGRMutexedDataSource::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::SetMetadata
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRMutexedDataSource::SetMetadata(char **papszMetadata,\n                                         const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:214,1
    - Dst: OGRMutexedDataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: OGRMutexedDataSource::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetMetadataItem
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: "char *OGRMutexedDataSource::GetMetadataItem(const char *pszName,\n
      \                                                 const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:222,1
    - Dst: OGRMutexedDataSource::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: OGRMutexedDataSource::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::SetMetadataItem
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRMutexedDataSource::SetMetadataItem(const char *pszName,\n
      \                                            const char *pszValue,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:229,1
    - Dst: OGRMutexedDataSource::GetFieldDomainNames
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: OGRMutexedDataSource::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetFieldDomainNames
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRMutexedDataSource::GetFieldDomainNames(CSLConstList
      papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:236,1
    - Dst: OGRMutexedDataSource::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: OGRMutexedDataSource::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::GetFieldDomain
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRMutexedDataSource::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:243,1
    - Dst: OGRMutexedDataSource::AddFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:244,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: OGRMutexedDataSource::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - OGRMutexedDataSource::AddFieldDomain
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: bool
    signature: "bool OGRMutexedDataSource::AddFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:250,1
    - Dst: OGRMutexedDataSource::DeleteFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - failureReason
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: OGRMutexedDataSource::DeleteFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::DeleteFieldDomain
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: bool
    signature: "bool OGRMutexedDataSource::DeleteFieldDomain(const std::string &name,\n
      \                                            std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:257,1
    - Dst: OGRMutexedDataSource::UpdateFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:258,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: OGRMutexedDataSource::UpdateFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::UpdateFieldDomain
    linkageType: ''
    returnType: bool
    signature: "bool OGRMutexedDataSource::UpdateFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:265,1
    - Dst: OGRMutexedDataSource::GetRelationshipNames
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: OGRMutexedDataSource::GetRelationshipNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::GetRelationshipNames
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRMutexedDataSource::GetRelationshipNames(CSLConstList
      papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:272,1
    - Dst: OGRMutexedDataSource::GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: OGRMutexedDataSource::GetRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource::GetRelationship
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: GDALRelationship
    signature: 'GDALRelationship *

      OGRMutexedDataSource::GetRelationship(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:278,1
    - Dst: OGRMutexedDataSource::GetRootGroup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: OGRMutexedDataSource::GetRootGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRMutexedDataSource::GetRootGroup
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: std::shared_ptr<GDALGroup> OGRMutexedDataSource::GetRootGroup() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: IsStructure
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsStructure(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: IsMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsMap(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: IsFixedWidthBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFixedWidthBinary(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:82,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: GetFixedWithBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: int GetFixedWithBinary(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: IsList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsList(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: IsLargeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLargeList(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: IsFixedSizeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFixedSizeList(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:104,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: GetFixedSizeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: int GetFixedSizeList(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: IsDecimal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDecimal(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: IsBoolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBoolean(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: IsInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInt8(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: IsUInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt8(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: IsInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInt16(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: IsUInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt16(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: IsInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInt32(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: IsUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt32(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: IsInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInt64(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: IsUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt64(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: IsFloat16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat16(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: IsFloat32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat32(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: IsFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat64(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: IsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsString(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: IsLargeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLargeString(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: IsBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBinary(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: IsLargeBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLargeBinary(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - format
    - chType
    argTypes:
    - char*
    - char
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: IsTimestampInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTimestampInternal(const char *format, char chType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestampInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: IsTimestampSeconds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsTimestampInternal
    linkageType: ''
    returnType: bool
    signature: bool IsTimestampSeconds(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestampInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: IsTimestampMilliseconds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsTimestampInternal
    linkageType: ''
    returnType: bool
    signature: bool IsTimestampMilliseconds(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestampInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: IsTimestampMicroseconds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsTimestampInternal
    linkageType: ''
    returnType: bool
    signature: bool IsTimestampMicroseconds(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestampInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: IsTimestampNanoseconds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsTimestampInternal
    linkageType: ''
    returnType: bool
    signature: bool IsTimestampNanoseconds(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestampSeconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:220,1
    - Dst: IsTimestampMilliseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:220,1
    - Dst: IsTimestampMicroseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:221,1
    - Dst: IsTimestampNanoseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: IsTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsTimestampMicroseconds
    - IsTimestampNanoseconds
    - IsTimestampMilliseconds
    - IsTimestampSeconds
    linkageType: ''
    returnType: bool
    signature: bool IsTimestamp(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:226,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: GetTimestampTimezone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - IsTimestamp
    linkageType: ''
    returnType: char
    signature: char *GetTimestampTimezone(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - nIdx
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: TestBit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TestBit(const uint8_t *pabyData, size_t nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - nIdx
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: SetBit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBit(uint8_t *pabyData, size_t nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - nIdx
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: UnsetBit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnsetBit(uint8_t *pabyData, size_t nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:263,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:264,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:265,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:267,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:267,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:269,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:269,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:270,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:270,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:273,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:281,1
    - Dst: struct ArrowSchema*::dictionary::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:287,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - schema
    - bFullFreeFormat
    argTypes:
    - struct ArrowSchema*
    - bool
    constantsTouched: []
    func_position:
      end: 292
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 292
    functionName: OGRLayerReleaseSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - const_cast<char *>
    - release
    - CPLAssert
    - struct ArrowSchema*::dictionary::release
    - STARTS_WITH
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRLayerReleaseSchema(struct ArrowSchema *schema,\n                                  bool
      bFullFreeFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerReleaseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: OGRLayerPartialReleaseSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerReleaseSchema
    linkageType: ''
    returnType: void
    signature: void OGRLayerPartialReleaseSchema(struct ArrowSchema *schema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerReleaseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: OGRLayerFullReleaseSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerReleaseSchema
    linkageType: ''
    returnType: void
    signature: void OGRLayerFullReleaseSchema(struct ArrowSchema *schema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerPartialReleaseSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: OGRLayer::ReleaseSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerPartialReleaseSchema
    linkageType: ''
    returnType: void
    signature: void OGRLayer::ReleaseSchema(struct ArrowSchema *schema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCodedFieldDomain*::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:325,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:331,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:347,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:349,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:356,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:357,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:360,1
    - Dst: OGRCodedFieldDomain*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - psChild
    - poCodedDomain
    argTypes:
    - struct ArrowSchema*
    - OGRCodedFieldDomain*
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: AddDictToSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - CPLStrdup
    - OGRCodedFieldDomain*::GetName
    - static_cast<uint32_t>
    - OGRCodedFieldDomain*::GetEnumeration
    - CPLCalloc
    - static_cast<struct ArrowSchema *>
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void AddDictToSchema(struct ArrowSchema *psChild,\n                            const
      OGRCodedFieldDomain *poCodedDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:384,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:386,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:388,1
    - Dst: static_cast<struct ArrowSchema **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:393,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:394,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:398,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:399,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:405,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:411,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:412,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:417,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:418,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:422,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:422,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:423,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:425,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:426,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:439,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:440,1
    - Dst: OGRLayer::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:442,1
    - Dst: auto::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:446,1
    - Dst: auto::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:448,1
    - Dst: static_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:451,1
    - Dst: AddDictToSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:453,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:481,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:483,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:483,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:483,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:535,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:537,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:541,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:542,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:542,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:551,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:551,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:556,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:560,1
    - Dst: OGRTZFlagToTimezone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:561,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:561,1
    - Dst: static_cast<struct ArrowSchema **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:573,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:574,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:575,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:576,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:578,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:586,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:587,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:587,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:592,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:593,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:597,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:597,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:599,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:600,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:601,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:601,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:605,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:606,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:611,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:611,1
    - Dst: OGR_GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:612,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:614,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:616,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:616,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:617,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:617,1
    - Dst: auto::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:619,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:621,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:621,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:623,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:625,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:625,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:626,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:629,1
    - Dst: first::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:635,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:637,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:640,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:640,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:647,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:651,1
    - Dst: first::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:651,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:652,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:654,1
    - Dst: first::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:654,1
    - Dst: first::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:655,1
    - Dst: first::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:656,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:658,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:658,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:659,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:661,1
    - Dst: second::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:661,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:662,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:663,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:666,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:672,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:687,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:690,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:696,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:697,1
    - Dst: OGRLayer::CreateSchemaForWKBGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:702,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 185
    argCount: 1
    argNames:
    - out_schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 711
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 711
    functionName: OGRLayer::GetArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - second::data
    - OGRLayer::CreateSchemaForWKBGeometryColumn
    - memcpy
    - auto::GetType
    - auto::IsIgnored
    - std::vector::emplace_back
    - CPLError
    - static_cast<struct ArrowSchema *>
    - std::string::empty
    - simple_max
    - auto::GetDomainType
    - CPLStrdup
    - static_cast<struct ArrowSchema **>
    - auto::GetWidth
    - OGRTZFlagToTimezone
    - auto::GetFieldDomain
    - auto::GetGeomFieldDefn
    - second::size
    - OGR_GetFieldTypeName
    - std::vector::empty
    - static_cast<const OGRCodedFieldDomain *>
    - first::size
    - GetLayerDefn
    - c_str
    - auto::GetFieldDefn
    - auto::GetComment
    - static_cast<int32_t>
    - static_cast<uint64_t>
    - auto::empty
    - CPLSPrintf
    - auto::IsUnique
    - CPLAssert
    - AddDictToSchema
    - OGRLayer::GetDataset
    - CPL_IGNORE_RET_VAL
    - auto::GetNameRef
    - CPLCalloc
    - first::data
    - std::pair
    - EQUAL
    - auto::GetSubType
    - std::string
    - memset
    - auto::GetDomainName
    - OGR_GetFieldSubTypeName
    linkageType: ''
    returnType: int
    signature: "int OGRLayer::GetArrowSchema(struct ArrowArrayStream *,\n                             struct
      ArrowSchema *out_schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:727,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:727,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:728,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:729,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:730,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:732,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:737,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:738,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:743,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:744,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:748,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:750,1
    - Dst: auto::exportToPROJJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:754,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:764,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:766,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:773,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:775,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:776,1
    - Dst: reinterpret_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:781,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:782,1
    - Dst: reinterpret_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:784,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:785,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:785,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:787,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:788,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:789,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:789,1
    - Dst: reinterpret_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:790,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:791,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:791,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:793,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:793,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:794,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:795,1
    - Dst: reinterpret_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:797,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:798,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:798,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:800,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:801,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:802,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:802,1
    - Dst: reinterpret_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:803,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:804,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:804,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:806,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:806,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:807,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:808,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:810,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:811,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 3
    argNames:
    - poFieldDefn
    - pszArrowFormat
    - pszExtensionName
    argTypes:
    - OGRGeomFieldDefn*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 813
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 813
    functionName: OGRLayer::CreateSchemaForWKBGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - OGRGeomFieldDefn*::IsNullable
    - strcmp
    - CPLError
    - static_cast<struct ArrowSchema *>
    - std::string::c_str
    - std::string::empty
    - CPLStrdup
    - OGRGeomFieldDefn*::GetNameRef
    - strlen
    - reinterpret_cast<int32_t *>
    - static_cast<int>
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - CPLCalloc
    - CPLFree
    - std::string::size
    - EQUAL
    - auto::exportToPROJJSON
    - OGRGeomFieldDefn*::GetSpatialRef
    - memcpy
    - static_cast<int32_t>
    linkageType: ''
    returnType: struct ArrowSchema
    signature: "struct ArrowSchema *\nOGRLayer::CreateSchemaForWKBGeometryColumn(const
      OGRGeomFieldDefn *poFieldDefn,\n                                           const
      char *pszArrowFormat,\n                                           const char
      *pszExtensionName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:829,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:834,1
    - Dst: auto::GetArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - out_schema
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 839
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 839
    functionName: OGRLayer::StaticGetArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
    - auto::GetArrowSchema
    linkageType: ''
    returnType: int
    signature: "int OGRLayer::StaticGetArrowSchema(struct ArrowArrayStream *stream,\n
      \                                  struct ArrowSchema *out_schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:849,1
    - Dst: VSIFreeAligned
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:850,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:850,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:851,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:855,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:859,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:860,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:863,1
    - Dst: struct ArrowArray*::dictionary::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:869,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 874
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 874
    functionName: OGRLayerDefaultReleaseArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - release
    - struct ArrowArray*::dictionary::release
    - const_cast<void *>
    - VSIFreeAligned
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRLayerDefaultReleaseArray(struct ArrowArray *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDefaultReleaseArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: OGRLayer::ReleaseArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDefaultReleaseArray
    linkageType: ''
    returnType: void
    signature: void OGRLayer::ReleaseArray(struct ArrowArray *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 901
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 901
    functionName: IsValidField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValidField(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:909,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:910,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 917
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 917
    functionName: AllocValidityBitmap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t *>
    - memset
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *AllocValidityBitmap(size_t nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:930,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:930,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:932,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:933,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:940,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:941,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:943,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:951,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:956,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - member
    - i
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - TMember
    - int
    constantsTouched: []
    func_position:
      end: 964
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 964
    functionName: FillArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - UnsetBit
    - static_cast<T *>
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - auto::GetRawFieldRef
    - CPLCalloc
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillArray(struct ArrowArray *psChild,\n                      std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                      const size_t nFeatureCountLimit, const
      bool bIsNullable,\n                      TMember member, const int i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:977,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:977,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:983,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:988,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:989,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:992,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:999,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - member
    - i
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - TMember
    - int
    constantsTouched: []
    func_position:
      end: 1008
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1008
    functionName: FillBoolArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - UnsetBit
    - SetBit
    - memset
    - CPLCalloc
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillBoolArray(struct ArrowArray *psChild,\n                          std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                          const size_t nFeatureCountLimit,\n
      \                         const bool bIsNullable, TMember member, const int
      i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1019
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: getCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getCount(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1024
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1024
    functionName: getValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *getValues(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1032
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    functionName: getCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getCount(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1037
    functionName: getValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig *getValues(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1045
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1045
    functionName: getCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getCount(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psRawField
    argTypes:
    - OGRField*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1050
    functionName: getValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double *getValues(const OGRField *psRawField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1061,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1061,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1064,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1064,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1076,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1077,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1080,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1086,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1093,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1098,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1104,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1105,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1106,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1107,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1113,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1113,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1115,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1116,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1125,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1126,1
    - Dst: getValues
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1129,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1131,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1136,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1139,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1144
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1144
    functionName: FillListArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - static_cast<size_t>
    - AllocValidityBitmap
    - UnsetBit
    - static_cast<struct ArrowArray **>
    - static_cast<struct ArrowArray *>
    - static_cast<T *>
    - getValues
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<OffsetType>
    - static_cast<OffsetType *>
    - CPLCalloc
    - memcpy
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillListArray(struct ArrowArray *psChild,\n              std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n              const size_t nFeatureCountLimit, const bool bIsNullable,\n
      \             const int i, const size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1154,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1154,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1157,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1157,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1169,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1170,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1173,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1179,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1186,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1191,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1197,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1198,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1199,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1200,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1206,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1206,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1212,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1219,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1220,1
    - Dst: getValues
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1223,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1228,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1235
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1235
    functionName: FillListArrayBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - static_cast<size_t>
    - AllocValidityBitmap
    - UnsetBit
    - static_cast<struct ArrowArray **>
    - static_cast<struct ArrowArray *>
    - memset
    - getValues
    - SetBit
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<OffsetType>
    - static_cast<OffsetType *>
    - CPLCalloc
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillListArrayBool(struct ArrowArray *psChild,\n                  std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                  const size_t nFeatureCountLimit, const bool
      bIsNullable,\n                  const int i, const size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1249,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1249,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1251,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1252,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1261,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1262,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1263,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1272,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1279,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1284,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1287,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1302,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1303,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1309
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1309
    functionName: FillStringArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - memcpy
    - UnsetBit
    - static_cast<T *>
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - CPLCalloc
    - GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillStringArray(struct ArrowArray *psChild,\n                std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                const size_t nFeatureCountLimit, const bool bIsNullable,\n
      \               const int i, const size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1323,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1323,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1326,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1326,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1339,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1340,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1343,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1344,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1353,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1359,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1361,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1368,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1373,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1380,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1381,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1382,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1383,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1390,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1390,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1392,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1393,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1409,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1410,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1418,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1420,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1427
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1427
    functionName: FillStringListArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - static_cast<size_t>
    - AllocValidityBitmap
    - UnsetBit
    - static_cast<struct ArrowArray **>
    - static_cast<struct ArrowArray *>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<OffsetType>
    - static_cast<OffsetType *>
    - CPLCalloc
    - memcpy
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillStringListArray(struct ArrowArray *psChild,\n                    std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                    const size_t nFeatureCountLimit, const bool
      bIsNullable,\n                    const int i, const size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1441,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1441,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1443,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1444,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1454,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1455,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1458,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1464,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1471,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1476,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1482,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1482,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1494,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1495,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1496,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1501
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1501
    functionName: FillBinaryArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - static_cast<size_t>
    - AllocValidityBitmap
    - memcpy
    - UnsetBit
    - static_cast<T *>
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<GByte *>
    - CPLCalloc
    - GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillBinaryArray(struct ArrowArray *psChild,\n                std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                const size_t nFeatureCountLimit, const bool bIsNullable,\n
      \               const int i, const size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1514,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1514,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1517,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1518,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1519,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1520,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1527,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1528,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1533,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1535,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1539,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1545,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1551,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1556,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - nWidth
    - i
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1562
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1562
    functionName: FillFixedWidthBinaryArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<const void **>
    - AllocValidityBitmap
    - memcpy
    - assert
    - UnsetBit
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<GByte *>
    - memset
    - CPLCalloc
    - GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillFixedWidthBinaryArray(struct ArrowArray *psChild,\n                          std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                          const size_t nFeatureCountLimit,\n
      \                         const bool bIsNullable, const int nWidth, const int
      i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1578,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1578,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1580,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1581,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1585,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1587,1
    - Dst: OGRGeometryFactory::createGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1587,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1588,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1596,1
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1597,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1607,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1614,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1619,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1630,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1633,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1636,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1636,1
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1648,1
    - Dst: auto::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1649,1
    - Dst: auto::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1654,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - poFieldDefn
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - OGRGeomFieldDefn*
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1661
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1661
    functionName: FillWKBGeometryArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - auto::exportToWkb
    - std::unique_ptr<OGRGeometry>
    - OGRGeometryFactory::createGeometry
    - wkbFlatten
    - OGRGeomFieldDefn*::GetType
    - UnsetBit
    - static_cast<GByte *>
    - static_cast<T *>
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - GetGeomFieldRef
    - CPLCalloc
    linkageType: ''
    returnType: size_t
    signature: "size_t FillWKBGeometryArray(struct ArrowArray *psChild,\n                     std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                     const size_t nFeatureCountLimit,\n                     const
      OGRGeomFieldDefn *poFieldDefn, const int i,\n                     const size_t
      nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1673,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1673,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1683,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1684,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1687,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1692,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1692,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1700,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1705,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 1713
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1713
    functionName: FillDateArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - static_cast<int>
    - UnsetBit
    - CPLYMDHMSToUnixTime
    - memset
    - CPLCalloc
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillDateArray(struct ArrowArray *psChild,\n                          std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                          const size_t nFeatureCountLimit,\n
      \                         const bool bIsNullable, const int i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1725,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1725,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1735,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1736,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1741,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1749,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 1762
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1762
    functionName: FillTimeArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - static_cast<int>
    - UnsetBit
    - auto::GetRawFieldRef
    - CPLCalloc
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillTimeArray(struct ArrowArray *psChild,\n                          std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                          const size_t nFeatureCountLimit,\n
      \                         const bool bIsNullable, const int i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1775,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1775,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1783,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1787,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1788,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1795,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1797,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1798,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1816,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nFieldTZFlag
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1829
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1829
    functionName: FillDateTimeArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - static_cast<int>
    - UnsetBit
    - CPLYMDHMSToUnixTime
    - memset
    - CPLCalloc
    - auto::GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: bool
    signature: "bool FillDateTimeArray(struct ArrowArray *psChild,\n                  std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                  const size_t nFeatureCountLimit, const bool
      bIsNullable,\n                  const int i, int nFieldTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1843,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1843,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1846,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1847,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1856,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1857,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1858,1
    - Dst: fmodf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1861,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1862,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1866,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1873,1
    - Dst: AllocValidityBitmap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1880,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1885,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1888,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1906,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1910,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1911,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1915,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 6
    argNames:
    - psChild
    - apoFeatures
    - nFeatureCountLimit
    - bIsNullable
    - i
    - nMemLimit
    argTypes:
    - struct ArrowArray*
    - std::deque<std::unique_ptr<OGRFeature>>
    - size_t
    - bool
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 1922
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1922
    functionName: FillDateTimeArrayAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const void **>
    - AllocValidityBitmap
    - memcpy
    - UnsetBit
    - fmodf
    - static_cast<T *>
    - min
    - static_cast<T>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - strlen
    - memset
    - CPLCalloc
    - GetRawFieldRef
    - IsValidField
    linkageType: ''
    returnType: size_t
    signature: "size_t FillDateTimeArrayAsString(struct ArrowArray *psChild,\n                          std::deque<std::unique_ptr<OGRFeature>>
      &apoFeatures,\n                          const size_t nFeatureCountLimit,\n
      \                         const bool bIsNullable, const int i,\n                          const
      size_t nMemLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1939,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1956,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1958,1
    - Dst: m_anQueriedFIDs::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1965,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1973,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1976,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1976,1
    - Dst: m_anQueriedFIDs::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1978,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1983,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1983,1
    - Dst: OGRLayer::FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1986,1
    - Dst: auto::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1986,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1989,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1989,1
    - Dst: m_anQueriedFIDs::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:1993,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2000,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2000,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2002,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2002,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2008,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2008,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2011,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2020,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2021,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2025,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2025,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2031,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2032,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2038,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2038,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2045,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2047,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2053,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2054,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2059,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2060,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2065,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2066,1
    - Dst: FillBoolArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2072,1
    - Dst: FillArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2078,1
    - Dst: FillArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2085,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2091,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2092,1
    - Dst: OGRLayer::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2094,1
    - Dst: auto::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2098,1
    - Dst: auto::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2100,1
    - Dst: static_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2103,1
    - Dst: OGRArrowArrayHelper::FillDict
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2105,1
    - Dst: FillArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2116,1
    - Dst: FillArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2126,1
    - Dst: FillArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2132,1
    - Dst: FillFixedWidthBinaryArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2166,1
    - Dst: FillListArrayBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2192,1
    - Dst: FillListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2199,1
    - Dst: FillListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2206,1
    - Dst: FillListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2240,1
    - Dst: FillListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2247,1
    - Dst: FillDateArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2277,1
    - Dst: FillTimeArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2285,1
    - Dst: FillDateTimeArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2307,1
    - Dst: auto::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2309,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2318,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2319,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2324,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2325,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2329,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2341,1
    - Dst: auto::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2342,1
    - Dst: auto::pop_front
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2361,1
    - Dst: auto::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2364,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2366,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2367,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 253
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 2369
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 2369
    functionName: OGRLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - auto::GetTZFlag
    - FillArray
    - auto::GetType
    - CPLDebug
    - OGRLayer::FilterGeometry
    - auto::IsIgnored
    - struct ArrowArray*::release
    - CPLError
    - FillDateTimeArray
    - static_cast<struct ArrowArray **>
    - auto::size
    - OGRArrowArrayHelper::FillDict
    - GetFID
    - auto::GetDomainType
    - auto::clear
    - auto::GetFieldDomain
    - FillFixedWidthBinaryArray
    - FillListArrayBool
    - FillBoolArray
    - auto::GetGeomFieldDefn
    - auto::GetGeomFieldRef
    - std::move
    - auto::emplace_back
    - OGRLayer::GetFeature
    - static_cast<const OGRCodedFieldDomain *>
    - FillTimeArray
    - GetLayerDefn
    - auto::GetFieldDefn
    - auto::pop_front
    - static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
    - auto::empty
    - m_anQueriedFIDs::empty
    - FillListArray
    - OGRLayer::GetDataset
    - CPLCalloc
    - static_cast<const void **>
    - static_cast<size_t>
    - std::unique_ptr<OGRFeature>
    - auto::GetDomainName
    - static_cast<struct ArrowArray *>
    - auto::GetSubType
    - FillDateArray
    - memset
    - GetNextFeature
    - m_anQueriedFIDs::size
    linkageType: ''
    returnType: int
    signature: "int OGRLayer::GetNextArrowArray(struct ArrowArrayStream *stream,\n
      \                               struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2385,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2390,1
    - Dst: auto::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 2395
      start: 2382
    functionDepth: 1
    functionLinenumber: 2382
    functionLinenumberEnd: 2395
    functionName: OGRLayer::StaticGetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::GetNextArrowArray
    - static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
    linkageType: ''
    returnType: int
    signature: "int OGRLayer::StaticGetNextArrowArray(struct ArrowArrayStream *stream,\n
      \                                     struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2411,1
    - Dst: static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2413,1
    - Dst: ArrowArrayStreamPrivateDataSharedDataWrapper*::poShared::m_poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct ArrowArrayStream*
    constantsTouched: []
    func_position:
      end: 2422
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2422
    functionName: OGRLayer::ReleaseStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - ArrowArrayStreamPrivateDataSharedDataWrapper*::poShared::m_poLayer::ResetReading
    - assert
    - static_cast<ArrowArrayStreamPrivateDataSharedDataWrapper *>
    linkageType: ''
    returnType: void
    signature: void OGRLayer::ReleaseStream(struct ArrowArrayStream *stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2435
    functionDepth: 0
    functionLinenumber: 2435
    functionLinenumberEnd: 2439
    functionName: OGRLayer::GetLastErrorArrowArrayStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRLayer::GetLastErrorArrowArrayStream(struct ArrowArrayStream
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2586,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2590,1
    - Dst: Assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2595,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2595,1
    - Dst: std::make_shared<ArrowArrayStreamPrivateData>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2605,1
    - Dst: m_anQueriedFIDs::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2611,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2616,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2616,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2621,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2622,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2629,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2630,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2632,1
    - Dst: m_anQueriedFIDs::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2633,1
    - Dst: ArrowArrayStreamPrivateDataSharedDataWrapper::ArrowArrayStreamPrivateDataSharedDataWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2640,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2644
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2644
    functionName: OGRLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - m_anQueriedFIDs::clear
    - Assign
    - m_anQueriedFIDs::push_back
    - std::set::insert
    - std::make_shared<ArrowArrayStreamPrivateData>
    - std::set::find
    - static_cast<swq_expr_node *>
    - CSLDuplicate
    - TestCapability
    - ArrowArrayStreamPrivateDataSharedDataWrapper::ArrowArrayStreamPrivateDataSharedDataWrapper
    - GetSWQExpr
    - CPLError
    - memset
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                             CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2793,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2794,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hLayer
    - out_stream
    - papszOptions
    argTypes:
    - OGRLayerH
    - struct ArrowArrayStream*
    - char**
    constantsTouched: []
    func_position:
      end: 2798
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2798
    functionName: OGR_L_GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: bool
    signature: "bool OGR_L_GetArrowStream(OGRLayerH hLayer, struct ArrowArrayStream
      *out_stream,\n                          char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2809,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2814,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2817,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2821,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2824,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - pabyMetadata
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2831
      start: 2804
    functionDepth: 0
    functionLinenumber: 2804
    functionLinenumberEnd: 2831
    functionName: OGRParseArrowMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - std::move
    - std::string::assign
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> OGRParseArrowMetadata(const char
      *pabyMetadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2848,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - format
    - nPrecision
    - nScale
    - nWidthInBytes
    argTypes:
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2873
      start: 2837
    functionDepth: 0
    functionLinenumber: 2837
    functionLinenumberEnd: 2873
    functionName: ParseDecimalFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: bool
    signature: "bool ParseDecimalFormat(const char *format, int &nPrecision, int &nScale,\n
      \                              int &nWidthInBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - nWidthInBytes
    - nPrecision
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2895
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2895
    functionName: GetErrorIfUnsupportedDecimal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *GetErrorIfUnsupportedDecimal(int nWidthInBytes,\n                                                int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2906,1
    - Dst: IsHandledSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2910,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2911,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2912,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2923,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2923,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2923,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2924,1
    - Dst: IsHandledSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2926,1
    - Dst: CPLStringList::FindString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2932,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2932,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2934,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2937,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2970,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2976,1
    - Dst: CPLStringList::FindString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2979,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2979,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2984,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2986,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2987,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2987,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:2997,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3004,1
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3004,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3009,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3010,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 5
    argNames:
    - bTopLevel
    - schema
    - osPrefix
    - bHasAttrQuery
    - aosUsedFields
    argTypes:
    - bool
    - struct ArrowSchema*
    - std::string
    - bool
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 3012
      start: 2901
    functionDepth: 3
    functionLinenumber: 2901
    functionLinenumberEnd: 3012
    functionName: IsHandledSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - IsList
    - c_str
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - IsLargeList
    - CPLDebug
    - IsDecimal
    - IsStructure
    - IsMap
    - strcmp
    - IsHandledSchema
    - std::string
    - CPLStringList::FindString
    - IsFixedSizeList
    - IsTimestamp
    linkageType: ''
    returnType: bool
    signature: "bool IsHandledSchema(bool bTopLevel, const struct ArrowSchema *schema,\n
      \                           const std::string &osPrefix, bool bHasAttrQuery,\n
      \                           const CPLStringList &aosUsedFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsHandledSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3023,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3024,1
    - Dst: CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3026,1
    - Dst: GetUsedFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3026,1
    - Dst: CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3027,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3043,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3045,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3046,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3048,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3057,1
    - Dst: OGRParseArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3064,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3065,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3066,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3068,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3078,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3083,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3093,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 3100
      start: 3021
    functionDepth: 4
    functionLinenumber: 3021
    functionLinenumberEnd: 3100
    functionName: OGRLayer::CanPostFilterArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - GetUsedFields
    - auto::second::c_str
    - auto::find
    - IsBinary
    - CPLDebug
    - strcmp
    - IsHandledSchema
    - IsLargeBinary
    - std::string
    - CPLStringList
    - OGRParseArrowMetadata
    - auto::end
    linkageType: ''
    returnType: bool
    signature: bool OGRLayer::CanPostFilterArrowArray(const struct ArrowSchema *schema)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3115,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3120,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3122,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3125,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 3126
      start: 3107
    functionDepth: 0
    functionLinenumber: 3107
    functionLinenumberEnd: 3126
    functionName: CheckValidityBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - TestBit
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void CheckValidityBuffer(const struct ArrowArray *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3147,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3147,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3148,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3158,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3159,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3165
      start: 3133
    functionDepth: 1
    functionLinenumber: 3133
    functionLinenumberEnd: 3165
    functionName: CompactValidityBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - UnsetBit
    - std::vector<bool>::size
    - CPLAssert
    - SetBit
    - TestBit
    linkageType: ''
    returnType: void
    signature: "void CompactValidityBuffer(\n    const struct ArrowSchema *, struct
      ArrowArray *array, size_t iStart,\n    const std::vector<bool> &abyValidityFromFilters,
      size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3176,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3177,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3178,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3178,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3179,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3190,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3191,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3193,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3204
      start: 3171
    functionDepth: 2
    functionLinenumber: 3171
    functionLinenumberEnd: 3204
    functionName: CompactBoolArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - UnsetBit
    - std::vector<bool>::size
    - CPLAssert
    - SetBit
    - TestBit
    linkageType: ''
    returnType: void
    signature: "void CompactBoolArray(const struct ArrowSchema *schema,\n                             struct
      ArrowArray *array, size_t iStart,\n                             const std::vector<bool>
      &abyValidityFromFilters,\n                             size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3215,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3216,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3217,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3217,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3218,1
    - Dst: static_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3223,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3223,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3239
      start: 3211
    functionDepth: 2
    functionLinenumber: 3211
    functionLinenumberEnd: 3239
    functionName: CompactPrimitiveArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - std::vector<bool>::size
    - static_cast<T *>
    - CPLAssert
    - const_cast<void *>
    linkageType: ''
    returnType: void
    signature: "void CompactPrimitiveArray(\n    const struct ArrowSchema *schema,
      struct ArrowArray *array, size_t iStart,\n    const std::vector<bool> &abyValidityFromFilters,
      size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3250,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3251,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3252,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3252,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3253,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3258,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3258,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3261,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3261,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3271,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3276,1
    - Dst: static_cast<OffsetType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3279,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3291
      start: 3246
    functionDepth: 2
    functionLinenumber: 3246
    functionLinenumberEnd: 3291
    functionName: CompactStringOrBinaryArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - std::vector<bool>::size
    - CPLAssert
    - const_cast<void *>
    - static_cast<GByte *>
    - static_cast<OffsetType>
    - static_cast<OffsetType *>
    - memmove
    linkageType: ''
    returnType: void
    signature: "void CompactStringOrBinaryArray(\n    const struct ArrowSchema *schema,
      struct ArrowArray *array, size_t iStart,\n    const std::vector<bool> &abyValidityFromFilters,
      size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3303,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3304,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3305,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3305,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3306,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3311,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3311,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3320,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - schema
    - array
    - nWidth
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - int
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3331
      start: 3297
    functionDepth: 2
    functionLinenumber: 3297
    functionLinenumberEnd: 3331
    functionName: CompactFixedWidthArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - std::vector<bool>::size
    - CPLAssert
    - const_cast<void *>
    - static_cast<GByte *>
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CompactFixedWidthArray(const struct ArrowSchema *schema,\n                       struct
      ArrowArray *array, int nWidth, size_t iStart,\n                       const
      std::vector<bool> &abyValidityFromFilters,\n                       size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3349,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3360,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3361,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3362,1
    - Dst: CompactArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3364,1
    - Dst: CompactArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3372,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3378,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3379,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3389
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3389
    functionName: CompactStructArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - CompactArray
    - std::vector<bool>::size
    - CPLAssert
    - static_cast<int64_t>
    - std::vector::resize
    linkageType: ''
    returnType: bool
    signature: "bool CompactStructArray(const struct ArrowSchema *schema,\n                               struct
      ArrowArray *array, size_t iStart,\n                               const std::vector<bool>
      &abyValidityFromFilters,\n                               size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InvalidateNullCountRec
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - schema
    - array
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 3402
      start: 3395
    functionDepth: 1
    functionLinenumber: 3395
    functionLinenumberEnd: 3402
    functionName: InvalidateNullCountRec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - InvalidateNullCountRec
    linkageType: ''
    returnType: void
    signature: "void InvalidateNullCountRec(const struct ArrowSchema *schema,\n                                   struct
      ArrowArray *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3414,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3414,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3415,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3416,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3417,1
    - Dst: static_cast<OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3425,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3425,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3431,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3453,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3456,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3466,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3473,1
    - Dst: CompactArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3483,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3484,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3488,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3489,1
    - Dst: InvalidateNullCountRec
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3493,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3497,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3503
      start: 3409
    functionDepth: 2
    functionLinenumber: 3409
    functionLinenumberEnd: 3503
    functionName: CompactListArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - std::vector::size
    - std::vector<bool>::size
    - CompactArray
    - CPLAssert
    - const_cast<void *>
    - CPLError
    - static_cast<OffsetType *>
    - static_cast<int64_t>
    - InvalidateNullCountRec
    linkageType: ''
    returnType: bool
    signature: "bool CompactListArray(const struct ArrowSchema *schema,\n                             struct
      ArrowArray *array, size_t iStart,\n                             const std::vector<bool>
      &abyValidityFromFilters,\n                             size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3515,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3515,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3516,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3517,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3542,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3543,1
    - Dst: CompactArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3545,1
    - Dst: CompactValidityBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3550,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3555,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - schema
    - array
    - N
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3559
      start: 3509
    functionDepth: 2
    functionLinenumber: 3509
    functionLinenumberEnd: 3559
    functionName: CompactFixedSizeListArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CompactValidityBuffer
    - CompactArray
    - std::vector<bool>::size
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - static_cast<int64_t>
    linkageType: ''
    returnType: bool
    signature: "bool CompactFixedSizeListArray(const struct ArrowSchema *schema,\n
      \                         struct ArrowArray *array, size_t N, size_t iStart,\n
      \                         const std::vector<bool> &abyValidityFromFilters,\n
      \                         size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompactListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3572
      start: 3565
    functionDepth: 3
    functionLinenumber: 3565
    functionLinenumberEnd: 3572
    functionName: CompactMapArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CompactListArray
    linkageType: ''
    returnType: bool
    signature: "bool CompactMapArray(const struct ArrowSchema *schema,\n                            struct
      ArrowArray *array, size_t iStart,\n                            const std::vector<bool>
      &abyValidityFromFilters,\n                            size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3585,1
    - Dst: CompactStructArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3587,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3591,1
    - Dst: CompactListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3593,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3597,1
    - Dst: CompactListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3599,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3603,1
    - Dst: CompactMapArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3605,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3609,1
    - Dst: CompactFixedSizeListArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3614,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3614,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3619,1
    - Dst: CompactBoolArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3621,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3624,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3624,1
    - Dst: CompactPrimitiveArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3626,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3629,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3629,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3629,1
    - Dst: CompactPrimitiveArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3631,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3634,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3634,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3634,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3635,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3635,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3636,1
    - Dst: CompactPrimitiveArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3638,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3641,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3641,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3641,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3642,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3642,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3643,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3643,1
    - Dst: CompactPrimitiveArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3645,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3648,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3648,1
    - Dst: CompactStringOrBinaryArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3650,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3653,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3653,1
    - Dst: CompactStringOrBinaryArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3655,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3658,1
    - Dst: CompactFixedWidthArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3661,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3664,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3669,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3671,1
    - Dst: CompactFixedWidthArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3683,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 58
    argCount: 5
    argNames:
    - schema
    - array
    - iStart
    - abyValidityFromFilters
    - nNewLength
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - std::vector<bool>
    - size_t
    constantsTouched: []
    func_position:
      end: 3691
      start: 3578
    functionDepth: 4
    functionLinenumber: 3578
    functionLinenumberEnd: 3691
    functionName: CompactArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 3
    functionsReached:
    - CompactPrimitiveArray
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - IsLargeList
    - strncmp
    - IsInt8
    - IsBinary
    - strcmp
    - IsInt32
    - CPLError
    - IsFloat32
    - IsLargeString
    - CompactListArray
    - CompactFixedSizeListArray
    - IsMap
    - IsString
    - IsStructure
    - IsUInt16
    - CompactStructArray
    - IsUInt64
    - IsList
    - CompactBoolArray
    - CompactFixedWidthArray
    - IsBoolean
    - IsFloat64
    - CompactStringOrBinaryArray
    - IsLargeBinary
    - IsFixedSizeList
    - CompactMapArray
    - IsUInt32
    - static_cast<size_t>
    - IsFloat16
    - IsInt64
    - IsDecimal
    - IsInt16
    - IsUInt8
    linkageType: ''
    returnType: bool
    signature: "bool CompactArray(const struct ArrowSchema *schema,\n                         struct
      ArrowArray *array, size_t iStart,\n                         const std::vector<bool>
      &abyValidityFromFilters,\n                         size_t nNewLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3709,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3710,1
    - Dst: std::vector<bool>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3712,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3716,1
    - Dst: OGRLayer*::FilterWKBGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - array
    - poLayer
    - abyValidityFromFilters
    argTypes:
    - struct ArrowArray*
    - OGRLayer*
    - std::vector<bool>
    constantsTouched: []
    func_position:
      end: 3731
      start: 3698
    functionDepth: 0
    functionLinenumber: 3698
    functionLinenumberEnd: 3731
    functionName: FillValidityArrayFromWKBArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const OffsetType *>
    - OGRLayer*::FilterWKBGeometry
    - static_cast<const GByte *>
    - TestBit
    - std::vector<bool>::resize
    linkageType: ''
    returnType: size_t
    signature: "size_t FillValidityArrayFromWKBArray(struct ArrowArray *array, const
      OGRLayer *poLayer,\n                              std::vector<bool> &abyValidityFromFilters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3751,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3752,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3778,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3779,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3781,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 5
    argNames:
    - nTimestamp
    - nInvFactorToSecond
    - pszTZ
    - oFeature
    - iField
    argTypes:
    - int64_t
    - int
    - char*
    - OGRFeature
    - int
    constantsTouched: []
    func_position:
      end: 3782
      start: 3737
    functionDepth: 1
    functionLinenumber: 3737
    functionLinenumberEnd: 3782
    functionName: ArrowTimestampToOGRDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::SetField
    - strcmp
    - CPLUnixTimeToYMDHMS
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: "void ArrowTimestampToOGRDateTime(int64_t nTimestamp,\n                                        int
      nInvFactorToSecond,\n                                        const char *pszTZ,
      OGRFeature &oFeature,\n                                        int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<int>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3797,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3797,1
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3798,1
    - Dst: BuildMapFieldNameToArrowPath
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3803,1
    - Dst: std::vector<int>::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - schema
    - oMap
    - osPrefix
    - anArrowPath
    argTypes:
    - struct ArrowSchema*
    - std::map<std::string, std::vector<int>>
    - std::string
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 3812
      start: 3788
    functionDepth: 1
    functionLinenumber: 3788
    functionLinenumberEnd: 3812
    functionName: BuildMapFieldNameToArrowPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - std::vector<int>::push_back
    - static_cast<int>
    - IsStructure
    - BuildMapFieldNameToArrowPath
    - std::vector<int>::pop_back
    linkageType: ''
    returnType: void
    signature: "void BuildMapFieldNameToArrowPath(const struct ArrowSchema *schema,\n
      \                            std::map<std::string, std::vector<int>> &oMap,\n
      \                            const std::string &osPrefix,\n                             std::vector<int>
      &anArrowPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ListOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3826,1
    - Dst: static_cast<const ArrowType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3830,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3832,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3834,1
    - Dst: static_cast<OGRType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3834,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3836,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3836,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3836,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - array
    - iOGRFieldIdx
    - nOffsettedIndex
    - childArray
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3838
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3838
    functionName: FillFieldList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<int>
    - static_cast<const ListOffsetType *>
    - OGRFeature::SetField
    - std::vector::size
    - static_cast<const ArrowType *>
    - static_cast<OGRType>
    - std::vector::push_back
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void FillFieldList(const struct ArrowArray *array,\n                                 int
      iOGRFieldIdx, size_t nOffsettedIndex,\n                                 const
      struct ArrowArray *childArray,\n                                 OGRFeature
      &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ListOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3851,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3854,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3856,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3858,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3858,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3860,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3860,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3860,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - array
    - iOGRFieldIdx
    - nOffsettedIndex
    - childArray
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3862
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3862
    functionName: FillFieldListFromBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<int>
    - static_cast<const ListOffsetType *>
    - OGRFeature::SetField
    - std::vector::size
    - static_cast<const uint8_t *>
    - std::vector::push_back
    - TestBit
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void FillFieldListFromBool(const struct ArrowArray *array, int iOGRFieldIdx,\n
      \                     size_t nOffsettedIndex,\n                      const struct
      ArrowArray *childArray, OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ListOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3874,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3878,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3880,1
    - Dst: CPLHalfToFloat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3882,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3884,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3885,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3887,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3887,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3887,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - array
    - iOGRFieldIdx
    - nOffsettedIndex
    - childArray
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3889
      start: 3869
    functionDepth: 1
    functionLinenumber: 3869
    functionLinenumberEnd: 3889
    functionName: FillFieldListFromHalfFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLHalfToFloat
    - static_cast<size_t>
    - static_cast<int>
    - static_cast<const ListOffsetType *>
    - static_cast<const uint16_t *>
    - OGRFeature::SetField
    - std::vector::size
    - std::vector::push_back
    - memcpy
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void FillFieldListFromHalfFloat(\n    const struct ArrowArray *array,
      int iOGRFieldIdx, size_t nOffsettedIndex,\n    const struct ArrowArray *childArray,
      OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ListOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3903,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3905,1
    - Dst: static_cast<const StringOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3907,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3911,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3913,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3915,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3916,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3916,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3918,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - array
    - iOGRFieldIdx
    - nOffsettedIndex
    - childArray
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3919
      start: 3896
    functionDepth: 0
    functionLinenumber: 3896
    functionLinenumberEnd: 3919
    functionName: FillFieldListFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::string::assign
    - static_cast<const ListOffsetType *>
    - CPLStringList::AddString
    - OGRFeature::SetField
    - static_cast<const StringOffsetType *>
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: void
    signature: "void FillFieldListFromString(const struct ArrowArray *array,\n                                           int
      iOGRFieldIdx,\n                                           size_t nOffsettedIndex,\n
      \                                          const struct ArrowArray *childArray,\n
      \                                          OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ArrowType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3932,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3936,1
    - Dst: static_cast<OGRType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3936,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3938,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3938,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3938,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - iOGRFieldIdx
    - nOffsettedIndex
    - nItems
    - childArray
    - oFeature
    argTypes:
    - int
    - size_t
    - int
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3940
      start: 3926
    functionDepth: 1
    functionLinenumber: 3926
    functionLinenumberEnd: 3940
    functionName: FillFieldFixedSizeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRFeature::SetField
    - std::vector::size
    - static_cast<const ArrowType *>
    - static_cast<OGRType>
    - std::vector::push_back
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void FillFieldFixedSizeList(\n    const struct ArrowArray *, int iOGRFieldIdx,
      size_t nOffsettedIndex,\n    const int nItems, const struct ArrowArray *childArray,
      OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3951,1
    - Dst: static_cast<const StringOffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3953,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3959,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3961,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3962,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3962,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3964,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - iOGRFieldIdx
    - nOffsettedIndex
    - nItems
    - childArray
    - oFeature
    argTypes:
    - int
    - size_t
    - int
    - struct ArrowArray*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 3965
      start: 3947
    functionDepth: 0
    functionLinenumber: 3947
    functionLinenumberEnd: 3965
    functionName: FillFieldFixedSizeListString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::string::assign
    - CPLStringList::AddString
    - OGRFeature::SetField
    - static_cast<const StringOffsetType *>
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: void
    signature: "void FillFieldFixedSizeListString(\n    const struct ArrowArray *,
      int iOGRFieldIdx, size_t nOffsettedIndex,\n    const int nItems, const struct
      ArrowArray *childArray, OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ArrowType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - iFeature
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 3977
      start: 3972
    functionDepth: 0
    functionLinenumber: 3972
    functionLinenumberEnd: 3977
    functionName: GetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 17
    functionsReached:
    - static_cast<const ArrowType *>
    linkageType: ''
    returnType: ArrowType
    signature: "ArrowType GetValue(const struct ArrowArray *array,\n                                 size_t
      iFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3981,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3982,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - iFeature
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 3983
      start: 3979
    functionDepth: 0
    functionLinenumber: 3979
    functionLinenumberEnd: 3983
    functionName: GetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 17
    functionsReached:
    - static_cast<size_t>
    - TestBit
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: bool
    signature: bool GetValue<bool>(const struct ArrowArray *array, size_t iFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3991,1
    - Dst: CPLHalfToFloat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3993,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:3995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - nIdx
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 3997
      start: 3989
    functionDepth: 1
    functionLinenumber: 3989
    functionLinenumberEnd: 3997
    functionName: GetValueFloat16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint16_t *>
    - CPLHalfToFloat
    - memcpy
    linkageType: ''
    returnType: float
    signature: float GetValueFloat16(const struct ArrowArray *array, const size_t
      nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4013,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4016,1
    - Dst: std::pow
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - array
    - nWidthIn64BitWord
    - nScale
    - nIdx
    argTypes:
    - struct ArrowArray*
    - int
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 4017
      start: 4003
    functionDepth: 0
    functionLinenumber: 4003
    functionLinenumberEnd: 4017
    functionName: GetValueDecimal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - std::pow
    - static_cast<const int64_t *>
    linkageType: ''
    returnType: double
    signature: "double GetValueDecimal(const struct ArrowArray *array,\n                              const
      int nWidthIn64BitWord, const int nScale,\n                              const
      size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4027,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4028,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4031,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4031,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - nIdx
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4034
      start: 4024
    functionDepth: 0
    functionLinenumber: 4024
    functionLinenumberEnd: 4034
    functionName: GetString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 34
    functionsReached:
    - static_cast<size_t>
    - static_cast<const OffsetType *>
    - std::string::assign
    linkageType: ''
    returnType: std::string
    signature: std::string GetString(const struct ArrowArray *array, const size_t
      nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4045,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4046,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4047,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4049,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4049,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4051,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4052,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - array
    - nIdx
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4059
      start: 4041
    functionDepth: 1
    functionLinenumber: 4041
    functionLinenumberEnd: 4059
    functionName: GetBinaryAsBase64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<const OffsetType *>
    - static_cast<const GByte *>
    - std::string
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: "std::string GetBinaryAsBase64(const struct ArrowArray *array,\n                                     const
      size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4069,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - array
    - nWidth
    - nIdx
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 4076
      start: 4065
    functionDepth: 0
    functionLinenumber: 4065
    functionLinenumberEnd: 4076
    functionName: GetValueFixedWithBinaryAsBase64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - static_cast<const GByte *>
    linkageType: ''
    returnType: std::string
    signature: "std::string GetValueFixedWithBinaryAsBase64(const struct ArrowArray
      *array,\n                                const int nWidth, const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4089,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4090,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4090,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4091,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4092,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4092,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4093,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4094,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4094,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4095,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4096,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4096,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4097,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4098,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4098,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4099,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4100,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4100,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4100,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4101,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4102,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4102,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4103,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4104,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4104,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4105,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4106,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4106,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4106,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4107,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4108,1
    - Dst: GetValueFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4108,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4109,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4110,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4110,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4111,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4112,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4112,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4113,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4114,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4114,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4115,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4116,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4116,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4117,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4118,1
    - Dst: GetBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4118,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4119,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4120,1
    - Dst: GetBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4120,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4121,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4122,1
    - Dst: GetValueFixedWithBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4122,1
    - Dst: GetFixedWithBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4123,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4124,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4132,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4133,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4134,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4134,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4137,1
    - Dst: GetObjectAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4137,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 4
    argNames:
    - oArray
    - schema
    - array
    - nIdx
    argTypes:
    - CPLJSONArray
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4138
      start: 4086
    functionDepth: 2
    functionLinenumber: 4086
    functionLinenumberEnd: 4138
    functionName: AddToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsFixedWidthBinary
    - GetString
    - IsInt8
    - IsBinary
    - IsInt32
    - IsFloat32
    - GetValueFloat16
    - GetValueDecimal
    - static_cast<GIntBig>
    - GetValue
    - IsLargeString
    - GetObjectAsJSON
    - IsString
    - IsUInt16
    - IsUInt64
    - GetValueFixedWithBinaryAsBase64
    - CPLJSONArray::Add
    - GetFixedWithBinary
    - IsBoolean
    - IsFloat64
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - IsLargeBinary
    - IsUInt32
    - GetBinaryAsBase64
    - IsFloat16
    - IsInt64
    - IsDecimal
    - IsInt16
    - IsUInt8
    linkageType: ''
    returnType: void
    signature: "void AddToArray(CPLJSONArray &oArray, const struct ArrowSchema *schema,\n
      \                      const struct ArrowArray *array, const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4149,1
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4150,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4159,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4162,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4162,1
    - Dst: AddToArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4164,1
    - Dst: CPLJSONArray::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - schema
    - array
    - nIdx
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4172
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4172
    functionName: GetListAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONArray::CPLJSONArray
    - static_cast<size_t>
    - static_cast<const OffsetType *>
    - AddToArray
    - TestBit
    - CPLJSONArray::AddNull
    linkageType: ''
    returnType: CPLJSONArray
    signature: "CPLJSONArray GetListAsJSON(const struct ArrowSchema *schema,\n                                  const
      struct ArrowArray *array,\n                                  const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4182,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4193,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4193,1
    - Dst: AddToArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4195,1
    - Dst: CPLJSONArray::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - schema
    - array
    - nIdx
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4203
      start: 4178
    functionDepth: 1
    functionLinenumber: 4178
    functionLinenumberEnd: 4203
    functionName: GetFixedSizeListAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONArray::CPLJSONArray
    - static_cast<size_t>
    - AddToArray
    - TestBit
    - CPLJSONArray::AddNull
    linkageType: ''
    returnType: CPLJSONArray
    signature: "CPLJSONArray GetFixedSizeListAsJSON(const struct ArrowSchema *schema,\n
      \                                          const struct ArrowArray *array,\n
      \                                          const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4213,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4214,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4214,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4215,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4216,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4216,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4217,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4218,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4218,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4219,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4220,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4220,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4221,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4222,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4222,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4223,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4224,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4224,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4224,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4225,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4226,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4226,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4227,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4228,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4228,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4229,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4230,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4230,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4230,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4231,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4232,1
    - Dst: GetValueFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4232,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4233,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4234,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4234,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4235,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4236,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4236,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4237,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4238,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4238,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4239,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4240,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4240,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4241,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4242,1
    - Dst: GetBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4242,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4243,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4244,1
    - Dst: GetBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4244,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4245,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4246,1
    - Dst: GetValueFixedWithBinaryAsBase64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4246,1
    - Dst: GetFixedWithBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4247,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4248,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4256,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4257,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4258,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4259,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4262,1
    - Dst: GetObjectAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4262,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 5
    argNames:
    - oDict
    - osKey
    - schema
    - array
    - nIdx
    argTypes:
    - CPLJSONObject
    - std::string
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4263
      start: 4209
    functionDepth: 2
    functionLinenumber: 4209
    functionLinenumberEnd: 4263
    functionName: AddToDict
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsFixedWidthBinary
    - GetString
    - IsInt8
    - IsBinary
    - IsInt32
    - IsFloat32
    - GetValueFloat16
    - GetValueDecimal
    - static_cast<GIntBig>
    - GetValue
    - IsLargeString
    - GetObjectAsJSON
    - IsString
    - IsUInt16
    - IsUInt64
    - GetValueFixedWithBinaryAsBase64
    - GetFixedWithBinary
    - IsBoolean
    - IsFloat64
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - IsLargeBinary
    - IsUInt32
    - GetBinaryAsBase64
    - IsFloat16
    - IsInt64
    - IsDecimal
    - IsInt16
    - CPLJSONObject::Add
    - IsUInt8
    linkageType: ''
    returnType: void
    signature: "void AddToDict(CPLJSONObject &oDict, const std::string &osKey,\n                      const
      struct ArrowSchema *schema,\n                      const struct ArrowArray *array,
      const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4274,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4276,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4278,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4282,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4284,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4286,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4291,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4293,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4309,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4310,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4313,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4317,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4318,1
    - Dst: AddToDict
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4320,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - schema
    - array
    - nIdx
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4329
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4329
    functionName: GetMapAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLJSONObject
    - std::string::assign
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::AddNull
    - AddToDict
    - IsString
    - IsStructure
    - CPLError
    - TestBit
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetMapAsJSON(const struct ArrowSchema *schema,\n                                  const
      struct ArrowArray *array,\n                                  const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4339,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4347,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4348,1
    - Dst: AddToDict
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4350,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - schema
    - array
    - nIdx
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4359
      start: 4335
    functionDepth: 1
    functionLinenumber: 4335
    functionLinenumberEnd: 4359
    functionName: GetStructureAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::AddNull
    - AddToDict
    - TestBit
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetStructureAsJSON(const struct ArrowSchema *schema,\n
      \                                       const struct ArrowArray *array,\n                                        const
      size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4369,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4370,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4371,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4372,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4373,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4374,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4375,1
    - Dst: GetFixedSizeListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4376,1
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4377,1
    - Dst: GetStructureAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4381,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - schema
    - array
    - nIdx
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 4386
      start: 4365
    functionDepth: 2
    functionLinenumber: 4365
    functionLinenumberEnd: 4386
    functionName: GetObjectAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 2
    functionsReached:
    - IsList
    - CPLJSONObject
    - GetStructureAsJSON
    - IsLargeList
    - GetMapAsJSON
    - GetListAsJSON
    - IsMap
    - IsStructure
    - CPLError
    - IsFixedSizeList
    - GetFixedSizeListAsJSON
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetObjectAsJSON(const struct ArrowSchema *schema,\n
      \                                    const struct ArrowArray *array,\n                                     const
      size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4399,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4401,1
    - Dst: GetValueFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4403,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4404,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4407,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4411,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4412,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4424,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4425,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4438,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4439,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4451,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4452,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4465,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4466,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4472,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4473,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4473,1
    - Dst: IsTimestampSeconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4476,1
    - Dst: ArrowTimestampToOGRDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4478,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4479,1
    - Dst: GetTimestampTimezone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4480,1
    - Dst: IsTimestampMilliseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4482,1
    - Dst: ArrowTimestampToOGRDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4484,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4485,1
    - Dst: GetTimestampTimezone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4486,1
    - Dst: IsTimestampMicroseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4488,1
    - Dst: ArrowTimestampToOGRDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4490,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4491,1
    - Dst: GetTimestampTimezone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4492,1
    - Dst: IsTimestampNanoseconds
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4495,1
    - Dst: ArrowTimestampToOGRDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4497,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4498,1
    - Dst: GetTimestampTimezone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4499,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4502,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4507,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4511,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4514,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4515,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4516,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4521,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4521,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4521,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4522,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4524,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4526,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4530,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4532,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4536,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4538,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4542,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4544,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4548,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4550,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4554,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4556,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4560,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4562,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4566,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4568,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4572,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4577,1
    - Dst: GetValueFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4578,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4580,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4580,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4580,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4581,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4583,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4585,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4589,1
    - Dst: FillFieldFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4591,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4595,1
    - Dst: FillFieldFixedSizeListString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4597,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4601,1
    - Dst: FillFieldFixedSizeListString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4603,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4608,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4608,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4612,1
    - Dst: FillFieldListFromBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4615,1
    - Dst: FillFieldListFromBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4619,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4623,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4626,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4630,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4634,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4637,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4641,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4645,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4648,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4652,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4656,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4659,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4663,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4667,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4670,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4674,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4678,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4681,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4685,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4689,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4692,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4696,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4700,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4703,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4707,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4711,1
    - Dst: FillFieldListFromHalfFloat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4714,1
    - Dst: FillFieldListFromHalfFloat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4718,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4722,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4725,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4729,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4733,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4736,1
    - Dst: FillFieldList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4740,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4744,1
    - Dst: FillFieldListFromString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4747,1
    - Dst: FillFieldListFromString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4751,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4755,1
    - Dst: FillFieldListFromString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4758,1
    - Dst: FillFieldListFromString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4762,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4770,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4771,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4779,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4780,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4785,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4790,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4792,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4796,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4798,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4802,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4804,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4807,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4811,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4812,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 180
    argCount: 5
    argNames:
    - oFeature
    - iOGRFieldIndex
    - nOffsettedIndex
    - schema
    - array
    argTypes:
    - OGRFeature
    - int
    - size_t
    - struct ArrowSchema*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 4822
      start: 4392
    functionDepth: 4
    functionLinenumber: 4392
    functionLinenumberEnd: 4822
    functionName: SetFieldForOtherFormats
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsFixedWidthBinary
    - std::vector::size
    - FillFieldList
    - IsLargeList
    - static_cast<const GByte *>
    - IsInt8
    - GetListAsJSON
    - ParseDecimalFormat
    - GetMapAsJSON
    - IsInt32
    - std::vector::push_back
    - IsFloat32
    - GetValueFloat16
    - GetValueDecimal
    - static_cast<GIntBig>
    - IsLargeString
    - IsTimestampMicroseconds
    - IsMap
    - CPLUnixTimeToYMDHMS
    - FillFieldFixedSizeList
    - IsString
    - IsUInt16
    - IsUInt64
    - static_cast<const int64_t *>
    - std::vector::data
    - IsList
    - static_cast<int>
    - static_cast<float>
    - FillFieldListFromString
    - OGRFeature::SetField
    - IsBoolean
    - static_cast<const uint8_t *>
    - IsTimestampSeconds
    - IsFloat64
    - FillFieldFixedSizeListString
    - CPLAssert
    - IsTimestampMilliseconds
    - IsUInt8
    - ArrowTimestampToOGRDateTime
    - IsFixedSizeList
    - TestBit
    - IsUInt32
    - static_cast<size_t>
    - FillFieldListFromBool
    - IsFloat16
    - FillFieldListFromHalfFloat
    - IsTimestampNanoseconds
    - IsInt64
    - IsDecimal
    - IsInt16
    - GetTimestampTimezone
    linkageType: ''
    returnType: bool
    signature: "bool SetFieldForOtherFormats(OGRFeature &oFeature,\n                                    const
      int iOGRFieldIndex,\n                                    const size_t nOffsettedIndex,\n
      \                                   const struct ArrowSchema *schema,\n                                    const
      struct ArrowArray *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4834,1
    - Dst: BuildMapFieldNameToArrowPath
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4839,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4840,1
    - Dst: OGRFeatureQuery*::GetUsedFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4851,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4852,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4857,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4858,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4863,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4863,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4867,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4872,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4878,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4894,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4898,1
    - Dst: OGRFeatureQuery*::GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4898,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4904,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4907,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4921,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4922,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4929,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4945,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4947,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4949,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4954,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4967,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4988,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4992,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4994,1
    - Dst: static_cast<const int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4994,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4997,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4999,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:4999,1
    - Dst: anArrowPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5011,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5023,1
    - Dst: OGRFeature::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5026,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5045,1
    - Dst: OGRFeature::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5047,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5049,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5051,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5053,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5053,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5056,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5058,1
    - Dst: static_cast<const int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5059,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5062,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5064,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5065,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5068,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5070,1
    - Dst: static_cast<const int16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5071,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5074,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5076,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5077,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5080,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5082,1
    - Dst: static_cast<const int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5083,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5086,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5088,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5090,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5090,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5093,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5095,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5097,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5097,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5100,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5102,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5104,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5104,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5107,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5109,1
    - Dst: static_cast<const float *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5110,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5113,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5115,1
    - Dst: static_cast<const double *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5116,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5119,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5121,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5123,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5126,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5128,1
    - Dst: OGRFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5128,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5131,1
    - Dst: OGRFeature::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5133,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5134,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5135,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5138,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5140,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5142,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5145,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5148,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5148,1
    - Dst: OGRFeature::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5150,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5152,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5155,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5157,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5159,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5162,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5165,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5165,1
    - Dst: std::vector<bool>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5167,1
    - Dst: std::vector<bool>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5169,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5174,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5174,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5177,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5179,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5181,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5184,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5187,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5187,1
    - Dst: std::vector<bool>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5189,1
    - Dst: std::vector<bool>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5191,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5196,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5196,1
    - Dst: SetFieldForOtherFormats
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5199,1
    - Dst: std::vector<bool>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5203,1
    - Dst: std::vector<bool>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5205,1
    - Dst: OGRFeatureQuery*::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5213,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 164
    argCount: 6
    argNames:
    - poLayer
    - poAttrQuery
    - schema
    - array
    - abyValidityFromFilters
    - papszOptions
    argTypes:
    - OGRLayer*
    - OGRFeatureQuery*
    - struct ArrowSchema*
    - struct ArrowArray*
    - std::vector<bool>
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5223
      start: 4828
    functionDepth: 5
    functionLinenumber: 4828
    functionLinenumberEnd: 5223
    functionName: FillValidityArrayFromAttrQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureQuery*::Evaluate
    - std::map::end
    - std::vector::size
    - static_cast<const GByte *>
    - CPLDebug
    - IsInt8
    - IsBinary
    - OGRFeature::GetRawFieldRef
    - static_cast<const uint64_t *>
    - IsInt32
    - std::vector::push_back
    - CPLError
    - BuildMapFieldNameToArrowPath
    - static_cast<const int32_t *>
    - OGRFeature::SetFieldNull
    - IsFloat32
    - OGRFeatureQuery*::GetUsedFields
    - IsValidField
    - static_cast<GIntBig>
    - static_cast<const double *>
    - IsLargeString
    - simple_max
    - static_cast<const uint16_t *>
    - CPLAtoGIntBig
    - IsString
    - std::move
    - static_cast<const int16_t *>
    - IsUInt16
    - IsUInt64
    - CPLStringList::size
    - std::vector::empty
    - std::vector<bool>::clear
    - static_cast<const int64_t *>
    - static_cast<int>
    - const_cast<OGRLayer *>
    - OGRFeature::SetField
    - static_cast<uint64_t>
    - IsBoolean
    - static_cast<const uint8_t *>
    - IsFloat64
    - std::map::find
    - CPLAssert
    - static_cast<const float *>
    - IsLargeBinary
    - anArrowPath::size
    - IsUInt8
    - TestBit
    - static_cast<int64_t>
    - CPLFree
    - IsUInt32
    - static_cast<double>
    - std::vector<bool>::resize
    - static_cast<size_t>
    - OGRFeature::GetFieldDefnRef
    - SetFieldForOtherFormats
    - OGRFeature::SetFID
    - auto::GetFieldCount
    - IsInt64
    - EQUAL
    - static_cast<swq_expr_node *>
    - IsInt16
    - std::string
    - OGRFeatureQuery*::GetSWQExpr
    - memcpy
    - static_cast<const int8_t *>
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: size_t
    signature: "size_t FillValidityArrayFromAttrQuery(\n    const OGRLayer *poLayer,
      OGRFeatureQuery *poAttrQuery,\n    const struct ArrowSchema *schema, struct
      ArrowArray *array,\n    std::vector<bool> &abyValidityFromFilters, CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5240,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5253,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5258,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5262,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5263,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5263,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5264,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5265,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5280,1
    - Dst: CompactStructArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5299,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5302,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5303,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - schema
    - array
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5305
      start: 5233
    functionDepth: 3
    functionLinenumber: 5233
    functionLinenumberEnd: 5305
    functionName: OGRLayer::PostFilterArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - IsBinary
    - memset
    - CPLAssert
    - strcmp
    - struct ArrowArray*::release
    - IsLargeBinary
    - CompactStructArray
    - std::vector::resize
    linkageType: ''
    returnType: void
    signature: "void OGRLayer::PostFilterArrowArray(const struct ArrowSchema *schema,\n
      \                                   struct ArrowArray *array,\n                                    CSLConstList
      papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5316,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5326,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5326,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5327,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5328,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5328,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5330,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5333,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5337,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5350,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5357,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5358,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5360,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5365,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5372,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5375,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5375,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5377,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5377,1
    - Dst: IsFloat16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5377,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5379,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5379,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5379,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5380,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5380,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5381,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5385,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5385,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5385,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5386,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5391,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5391,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5391,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5392,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5392,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5393,1
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5393,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5397,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5397,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5398,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5403,1
    - Dst: GetFixedWithBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5405,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5407,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5412,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5415,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5436,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5436,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5437,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5441,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5446,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5453,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5453,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5454,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5458,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5463,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5472,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5474,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5483,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5493,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5496,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5496,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5499,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5504,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5504,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5507,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5509,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5515,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5531,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5532,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5540,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5552,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5553,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5553,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5557,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5558,1
    - Dst: OGRCloneArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5559,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5561,1
    - Dst: GetFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5562,1
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5563,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5574,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5575,1
    - Dst: OGRCloneArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5576,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5582,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5583,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 135
    argCount: 4
    argNames:
    - schema
    - src_array
    - out_array
    - nParentOffset
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 5586
      start: 5311
    functionDepth: 3
    functionLinenumber: 5311
    functionLinenumberEnd: 5586
    functionName: OGRCloneArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t *>
    - static_cast<uint64_t *>
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - IsLargeList
    - static_cast<const GByte *>
    - IsInt8
    - IsBinary
    - OGRCloneArrowArray
    - strcmp
    - static_cast<const uint64_t *>
    - struct ArrowArray*::release
    - IsInt32
    - CPLError
    - IsFloat32
    - static_cast<struct ArrowArray **>
    - IsTimestamp
    - IsLargeString
    - IsMap
    - IsString
    - IsStructure
    - IsUInt16
    - SetBit
    - IsUInt64
    - GetFixedWithBinary
    - IsList
    - UnsetBit
    - IsBoolean
    - static_cast<const uint8_t *>
    - IsFloat64
    - CPLAssert
    - IsLargeBinary
    - CPLCalloc
    - TestBit
    - IsFixedSizeList
    - IsUInt32
    - GetFixedSizeList
    - static_cast<const void **>
    - static_cast<size_t>
    - IsFloat16
    - IsInt64
    - IsDecimal
    - IsInt16
    - static_cast<struct ArrowArray *>
    - memset
    - memcpy
    - IsUInt8
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: bool
    signature: "bool OGRCloneArrowArray(const struct ArrowSchema *schema,\n                               const
      struct ArrowArray *src_array,\n                               struct ArrowArray
      *out_array,\n                               size_t nParentOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCloneArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - schema
    - src_array
    - out_array
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 5604
      start: 5599
    functionDepth: 1
    functionLinenumber: 5599
    functionLinenumberEnd: 5604
    functionName: OGRCloneArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 2
    functionsReached:
    - OGRCloneArrowArray
    linkageType: ''
    returnType: bool
    signature: "bool OGRCloneArrowArray(const struct ArrowSchema *schema,\n                        const
      struct ArrowArray *src_array,\n                        struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5615,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5617,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5617,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5618,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5623,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5623,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5625,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5627,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5627,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5631,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5631,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5633,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5635,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5635,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5639,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5639,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5639,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5641,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5641,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - pMetadata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 5643
      start: 5610
    functionDepth: 0
    functionLinenumber: 5610
    functionLinenumberEnd: 5643
    functionName: OGRCloneArrowMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::end
    - std::vector::size
    - static_cast<const GByte *>
    - static_cast<GByte *>
    - memcpy
    - VSI_MALLOC_VERBOSE
    - std::vector::insert
    linkageType: ''
    returnType: void
    signature: void *OGRCloneArrowMetadata(const void *pMetadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5660,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5662,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5663,1
    - Dst: static_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5664,1
    - Dst: const_cast<const void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5665,1
    - Dst: OGRCloneArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5665,1
    - Dst: static_cast<struct ArrowSchema **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5670,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5670,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5671,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5674,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5678,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5680,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5681,1
    - Dst: OGRCloneArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5682,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5685,1
    - Dst: static_cast<struct ArrowSchema *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5693,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5693,1
    - Dst: OGRCloneArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5694,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - schema
    - out_schema
    argTypes:
    - struct ArrowSchema*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 5701
      start: 5657
    functionDepth: 1
    functionLinenumber: 5657
    functionLinenumberEnd: 5701
    functionName: OGRCloneArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - VSI_CALLOC_VERBOSE
    - CPLStrdup
    - static_cast<int>
    - static_cast<struct ArrowSchema **>
    - static_cast<const char *>
    - static_cast<struct ArrowSchema *>
    - const_cast<const void *>
    - OGRCloneArrowSchema
    - memset
    - CPLMalloc
    - struct ArrowSchema*::release
    - OGRCloneArrowMetadata
    linkageType: ''
    returnType: bool
    signature: "bool OGRCloneArrowSchema(const struct ArrowSchema *schema,\n                         struct
      ArrowSchema *out_schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5769
      start: 5759
    functionDepth: 0
    functionLinenumber: 5759
    functionLinenumberEnd: 5769
    functionName: IsValidDictionaryIndexType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValidDictionaryIndexType(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5774,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5778,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5792,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5792,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5792,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5795,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5800,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5802,1
    - Dst: GetErrorIfUnsupportedDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5807,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5811,1
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5813,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5815,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5816,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5819,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5819,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5819,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5821,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 5825
      start: 5771
    functionDepth: 1
    functionLinenumber: 5771
    functionLinenumberEnd: 5825
    functionName: IsSupportForJSONObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - IsList
    - CPLError
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - GetErrorIfUnsupportedDecimal
    - IsLargeList
    - IsBinary
    - IsDecimal
    - IsMap
    - IsString
    - IsLargeBinary
    - IsStructure
    - IsSupportForJSONObj
    - IsFixedSizeList
    linkageType: ''
    returnType: bool
    signature: bool IsSupportForJSONObj(const struct ArrowSchema *schema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5833,1
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5840,1
    - Dst: IsArrowSchemaSupportedInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5846,1
    - Dst: IsValidDictionaryIndexType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5855,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5857,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5866,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5866,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5866,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5878,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5883,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5886,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5886,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5895,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5902,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5907,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5912,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5914,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5917,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5921,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5926,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5928,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5928,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5937,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5947,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5953,1
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5953,1
    - Dst: AppendError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5956,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5956,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - schema
    - osFieldPrefix
    - osErrorMsg
    argTypes:
    - struct ArrowSchema*
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 5960
      start: 5827
    functionDepth: 3
    functionLinenumber: 5827
    functionLinenumberEnd: 5960
    functionName: IsArrowSchemaSupportedInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - IsValidDictionaryIndexType
    - IsArrowSchemaSupportedInternal
    - IsList
    - std::string
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - IsLargeList
    - AppendError
    - IsDecimal
    - IsMap
    - strcmp
    - IsStructure
    - IsSupportForJSONObj
    - IsFixedSizeList
    - IsTimestamp
    linkageType: ''
    returnType: bool
    signature: "bool IsArrowSchemaSupportedInternal(const struct ArrowSchema *schema,\n
      \                                          const std::string &osFieldPrefix,\n
      \                                          std::string &osErrorMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5982,1
    - Dst: IsArrowSchemaSupportedInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5993,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:5993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - schema
    - CSLConstList papszOptions
    - osErrorMsg
    argTypes:
    - struct ArrowSchema*
    - CPL_UNUSED
    - std::string
    constantsTouched: []
    func_position:
      end: 5998
      start: 5978
    functionDepth: 4
    functionLinenumber: 5978
    functionLinenumberEnd: 5998
    functionName: OGRLayer::IsArrowSchemaSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - IsArrowSchemaSupportedInternal
    - IsStructure
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::IsArrowSchemaSupported(const struct ArrowSchema *schema,\n
      \                                     CPL_UNUSED CSLConstList papszOptions,\n
      \                                     std::string &osErrorMsg) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6026,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6027,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6030,1
    - Dst: VSIStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6034,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - hLayer
    - schema
    - papszOptions
    - ppszErrorMsg
    argTypes:
    - OGRLayerH
    - struct ArrowSchema*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 6043
      start: 6022
    functionDepth: 1
    functionLinenumber: 6022
    functionLinenumberEnd: 6043
    functionName: OGR_L_IsArrowSchemaSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FromHandle
    - VALIDATE_POINTER1
    - VSIStrdup
    linkageType: ''
    returnType: bool
    signature: "bool OGR_L_IsArrowSchemaSupported(OGRLayerH hLayer,\n                                  const
      struct ArrowSchema *schema,\n                                  char **papszOptions,
      char **ppszErrorMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParseArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6054,1
    - Dst: OGRLayer*::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6059,1
    - Dst: auto::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6063,1
    - Dst: auto::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - poLayer
    - arrowMetadata
    argTypes:
    - OGRLayer*
    - char*
    constantsTouched: []
    func_position:
      end: 6074
      start: 6049
    functionDepth: 1
    functionLinenumber: 6049
    functionLinenumberEnd: 6074
    functionName: IsKnownCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - auto::GetDomainType
    - OGRLayer*::GetDataset
    - auto::GetFieldDomain
    - OGRParseArrowMetadata
    linkageType: ''
    returnType: bool
    signature: "bool IsKnownCodedFieldDomain(OGRLayer *poLayer,\n                                    const
      char *arrowMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6087,1
    - Dst: OGRLayer::CreateFieldFromArrowSchemaInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6092,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6099,1
    - Dst: const_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6100,1
    - Dst: auto::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6101,1
    - Dst: auto::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6104,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6110,1
    - Dst: IsKnownCodedFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6115,1
    - Dst: IsValidDictionaryIndexType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6119,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6137,1
    - Dst: CPLStringList::FindString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6138,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6149,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6150,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6153,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6154,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6156,1
    - Dst: OGRParseArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6160,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6168,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6170,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6176,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6180,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6180,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6182,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6184,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6184,1
    - Dst: OGRFieldDefn::GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6193,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6196,1
    - Dst: static_cast<OGRFieldSubType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6203,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6208,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6208,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6208,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6210,1
    - Dst: auto::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6213,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6214,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6219,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6223,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6224,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6228,1
    - Dst: OGRLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6230,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6231,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6248,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6250,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6254,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6256,1
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6259,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6261,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6264,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6266,1
    - Dst: GetFixedWithBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6266,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6269,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6269,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6269,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6276,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6280,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6285,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6288,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6289,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6289,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6299,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6304,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6307,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6312,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6313,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6313,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6319,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6326,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6327,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6337,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6342,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6345,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6346,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6346,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 134
    argCount: 3
    argNames:
    - schema
    - osFieldPrefix
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - std::string
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 6350
      start: 6081
    functionDepth: 3
    functionLinenumber: 6081
    functionLinenumberEnd: 6350
    functionName: OGRLayer::CreateFieldFromArrowSchemaInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - IsKnownCodedFieldDomain
    - atoi
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - IsLargeList
    - CPLDebug
    - strcmp
    - auto::GetDriver
    - OGRFieldDefn::SetNullable
    - OGRFieldDefn::GetFieldTypeName
    - OGRFieldDefn::SetUnique
    - CPLError
    - IsSupportForJSONObj
    - std::string::c_str
    - CPLStringList::CPLStringList
    - OGRParseArrowMetadata
    - IsTimestamp
    - auto::GetFieldDomain
    - IsMap
    - IsStructure
    - CSLTokenizeString2
    - second::c_str
    - OGRFieldDefn::SetAlternativeName
    - auto::GetDataset
    - IsValidDictionaryIndexType
    - GetLayerDefn
    - GetFixedWithBinary
    - OGRFieldDefn::GetFieldSubTypeName
    - IsList
    - c_str
    - const_cast<OGRLayer *>
    - OGRFieldDefn::SetSubType
    - CPLStringList::empty
    - static_cast<OGRFieldSubType>
    - first::c_str
    - OGRLayer::CreateField
    - AddField
    - IsFixedSizeList
    - OGRFieldDefn::SetDefault
    - std::string
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRLayer::CreateFieldFromArrowSchemaInternal
    - static_cast<OGRFieldType>
    - OGRFieldDefn::SetType
    - auto::GetFieldCount
    - IsDecimal
    - OGRFieldDefn::SetComment
    - CPLStringList::FindString
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::CreateFieldFromArrowSchemaInternal(\n    const struct
      ArrowSchema *schema, const std::string &osFieldPrefix,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::CreateFieldFromArrowSchemaInternal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6392,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - schema
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 6394
      start: 6389
    functionDepth: 4
    functionLinenumber: 6389
    functionLinenumberEnd: 6394
    functionName: OGRLayer::CreateFieldFromArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::CreateFieldFromArrowSchemaInternal
    - std::string
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::CreateFieldFromArrowSchema(const struct ArrowSchema
      *schema,\n                                          CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6440,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6441,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hLayer
    - schema
    - papszOptions
    argTypes:
    - OGRLayerH
    - struct ArrowSchema*
    - char**
    constantsTouched: []
    func_position:
      end: 6445
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6445
    functionName: OGR_L_CreateFieldFromArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: bool
    signature: "bool OGR_L_CreateFieldFromArrowSchema(OGRLayerH hLayer,\n                                      const
      struct ArrowSchema *schema,\n                                      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6484,1
    - Dst: BuildOGRFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6489,1
    - Dst: IsKnownCodedFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6505,1
    - Dst: IsValidDictionaryIndexType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6507,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6509,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6525,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6525,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6533,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6536,1
    - Dst: std::map<std::string, std::string>::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6546,1
    - Dst: std::map<std::string, std::string>::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6547,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6552,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6552,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6557,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6561,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6580,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6584,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6592,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6596,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6604,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6608,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6616,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6620,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6643,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6646,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6647,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6648,1
    - Dst: IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6654,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6663,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6666,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6667,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6668,1
    - Dst: IsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6673,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6687,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6690,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6691,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6692,1
    - Dst: IsFixedWidthBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6697,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6711,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6714,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6715,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6716,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6721,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6721,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6722,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6744,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6748,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6749,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6750,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6756,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6758,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6761,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6762,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6762,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6789,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6792,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6793,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6794,1
    - Dst: IsSupportForJSONObj
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6799,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6808,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6811,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6812,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6813,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6820,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6821,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6821,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6829,1
    - Dst: ParseDecimalFormat
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6831,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6834,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6835,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6835,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6861,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6864,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6865,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6866,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6873,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6874,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6874,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6882,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6883,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6888,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6890,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6893,1
    - Dst: OGRParseArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6905,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6906,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6907,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6913,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6916,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6926,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6928,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6933,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6933,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6935,1
    - Dst: FieldInfo::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6938,1
    - Dst: std::vector<FieldInfo>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6945,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6945,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 235
    argCount: 13
    argNames:
    - schema
    - array
    - poFeatureDefn
    - osFieldPrefix
    - aosNativeTypes
    - bFallbackTypesUsed
    - asFieldInfo
    - pszFIDName
    - pszGeomFieldName
    - poLayer
    - oMapArrowFieldNameToOGRFieldName
    - schemaFIDColumn
    - arrayFIDColumn
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - OGRFeatureDefn*
    - std::string
    - CPLStringList
    - bool
    - std::vector<FieldInfo>
    - char*
    - char*
    - OGRLayer*
    - std::map<std::string, std::string>
    - struct ArrowSchema*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 6947
      start: 6472
    functionDepth: 3
    functionLinenumber: 6472
    functionLinenumberEnd: 6947
    functionName: BuildOGRFieldInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - IsKnownCodedFieldDomain
    - IsFixedWidthBinary
    - ParseDecimalFormat
    - BuildOGRFieldInfo
    - IsLargeList
    - CPLDebug
    - OGRFeatureDefn*::GetFieldIndex
    - IsBinary
    - strcmp
    - IsInt32
    - CPLError
    - std::map<std::string, std::string>::end
    - IsSupportForJSONObj
    - std::string::c_str
    - OGRParseArrowMetadata
    - IsTimestamp
    - auto::end
    - auto::find
    - IsMap
    - std::move
    - IsStructure
    - OGR_GetFieldTypeName
    - IsValidDictionaryIndexType
    - std::map<std::string, std::string>::find
    - IsList
    - c_str
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFeatureDefn*::GetGeomFieldCount
    - std::vector<FieldInfo>::emplace_back
    - IsLargeBinary
    - IsFixedSizeList
    - OGRFeatureDefn*::GetFieldDefn
    - IsInt64
    - FieldInfo::osName::c_str
    - IsDecimal
    - std::string
    linkageType: ''
    returnType: bool
    signature: "bool BuildOGRFieldInfo(\n    const struct ArrowSchema *schema, struct
      ArrowArray *array,\n    const OGRFeatureDefn *poFeatureDefn, const std::string
      &osFieldPrefix,\n    const CPLStringList &aosNativeTypes, bool &bFallbackTypesUsed,\n
      \   std::vector<FieldInfo> &asFieldInfo, const char *pszFIDName,\n    const
      char *pszGeomFieldName, OGRLayer *poLayer,\n    const std::map<std::string,
      std::string> &oMapArrowFieldNameToOGRFieldName,\n    const struct ArrowSchema
      *&schemaFIDColumn,\n    struct ArrowArray *&arrayFIDColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6958,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6962,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6965,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6968,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6971,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6974,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6977,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6980,1
    - Dst: GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6983,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:6987,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - schema
    - array
    - iFeature
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 6991
      start: 6953
    functionDepth: 0
    functionLinenumber: 6953
    functionLinenumberEnd: 6991
    functionName: GetUInt64Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - GetValue
    - CPLAssert
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t GetUInt64Value(const struct ArrowSchema *schema,\n                                      const
      struct ArrowArray *array,\n                                      size_t iFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7004,1
    - Dst: GetWorkingBufferSize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7009,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7011,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7025,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7025,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7035,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7037,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7040,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7047,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7050,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7053,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7056,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7059,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - schema
    - array
    - iFeature
    - iArrowIdxInOut
    - asFieldInfo
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - size_t
    - int
    - std::vector<FieldInfo>
    constantsTouched: []
    func_position:
      end: 7064
      start: 6997
    functionDepth: 1
    functionLinenumber: 6997
    functionLinenumberEnd: 7064
    functionName: GetWorkingBufferSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - IsLargeString
    - static_cast<size_t>
    - static_cast<uint64_t>
    - IsString
    - static_cast<const uint64_t *>
    - IsStructure
    - CPLError
    - TestBit
    - static_cast<const uint32_t *>
    - GetWorkingBufferSize
    linkageType: ''
    returnType: size_t
    signature: "size_t GetWorkingBufferSize(const struct ArrowSchema *schema,\n                                   const
      struct ArrowArray *array,\n                                   size_t iFeature,
      int &iArrowIdxInOut,\n                                   const std::vector<FieldInfo>
      &asFieldInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ArrowType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7074,1
    - Dst: OGRFeature::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7075,1
    - Dst: static_cast<OGRType>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - array
    - iOGRFieldIdx
    - iFeature
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 7078
      start: 7071
    functionDepth: 1
    functionLinenumber: 7071
    functionLinenumberEnd: 7078
    functionName: FillField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const ArrowType *>
    - static_cast<OGRType>
    - OGRFeature::SetFieldSameTypeUnsafe
    linkageType: ''
    returnType: void
    signature: "void FillField(const struct ArrowArray *array, int iOGRFieldIdx,\n
      \                            size_t iFeature, OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7092,1
    - Dst: OGRFeature::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7098,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7099,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7100,1
    - Dst: std::string::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7101,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7106,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - array
    - iOGRFieldIdx
    - iFeature
    - iArrowIdx
    - asFieldInfo
    - osWorkingBuffer
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - int
    - std::vector<FieldInfo>
    - std::string
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 7108
      start: 7085
    functionDepth: 1
    functionLinenumber: 7085
    functionLinenumberEnd: 7108
    functionName: FillFieldString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const OffsetType *>
    - std::string::size
    - OGRFeature::SetField
    - std::string::append
    - OGRFeature::SetFieldSameTypeUnsafe
    - std::string::push_back
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: "void FillFieldString(const struct ArrowArray *array, int iOGRFieldIdx,\n
      \               size_t iFeature, int iArrowIdx,\n                const std::vector<FieldInfo>
      &asFieldInfo,\n                std::string &osWorkingBuffer, OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const OffsetType *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7123,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7124,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7125,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7137,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7139,1
    - Dst: auto::importFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7141,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7148,1
    - Dst: OGRFeature::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7150,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7154,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7154,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7156,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7158,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7161,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 8
    argNames:
    - array
    - iOGRFieldIdx
    - iFeature
    - iArrowIdx
    - asFieldInfo
    - osFieldPrefix
    - pszFieldName
    - oFeature
    argTypes:
    - struct ArrowArray*
    - int
    - size_t
    - int
    - std::vector<FieldInfo>
    - std::string
    - char*
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 7164
      start: 7115
    functionDepth: 3
    functionLinenumber: 7115
    functionLinenumberEnd: 7164
    functionName: FillFieldBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - auto::importFromWkb
    - simple_max
    - static_cast<size_t>
    - static_cast<const OffsetType *>
    - static_cast<int>
    - OGRGeometryFactory::createFromWkb
    - OGRFeature::SetField
    - static_cast<const GByte *>
    - auto::getGeometryType
    - CPLError
    - OGRFeature::GetGeomFieldRef
    - std::string::c_str
    - OGRFeature::SetGeomFieldDirectly
    linkageType: ''
    returnType: bool
    signature: "bool FillFieldBinary(const struct ArrowArray *array, int iOGRFieldIdx,\n
      \               size_t iFeature, int iArrowIdx,\n                const std::vector<FieldInfo>
      &asFieldInfo,\n                const std::string &osFieldPrefix, const char
      *pszFieldName,\n                OGRFeature &oFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7180,1
    - Dst: FillFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7185,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7187,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7207,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7208,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7211,1
    - Dst: OGRFeature::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7213,1
    - Dst: OGRFeature::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7216,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7219,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7221,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7222,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7227,1
    - Dst: OGRFeature::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7232,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7238,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7239,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7243,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7244,1
    - Dst: IsValidField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7248,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7249,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7255,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7265,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7267,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7270,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7271,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7276,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7279,1
    - Dst: OGRFeature::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7283,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7285,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7285,1
    - Dst: IsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7290,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7292,1
    - Dst: IsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7295,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7297,1
    - Dst: IsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7300,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7302,1
    - Dst: IsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7305,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7307,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7310,1
    - Dst: static_cast<const int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7315,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7316,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7320,1
    - Dst: IsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7324,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7326,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7329,1
    - Dst: static_cast<const int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7334,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7335,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7339,1
    - Dst: IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7344,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7346,1
    - Dst: IsFloat32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7349,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7351,1
    - Dst: IsFloat64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7354,1
    - Dst: FillField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7356,1
    - Dst: IsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7359,1
    - Dst: FillFieldString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7361,1
    - Dst: IsLargeString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7365,1
    - Dst: FillFieldString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7367,1
    - Dst: IsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7371,1
    - Dst: FillFieldBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7373,1
    - Dst: IsLargeBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7377,1
    - Dst: FillFieldBinary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7379,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7386,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7388,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7391,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7394,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7401,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7401,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7405,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7405,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7405,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7406,1
    - Dst: IsLargeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7409,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7412,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7416,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7417,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7419,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7419,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7423,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7423,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7423,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7424,1
    - Dst: IsFixedSizeList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7427,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7434,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7434,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7438,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7438,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7442,1
    - Dst: OGRFeature::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7444,1
    - Dst: GetValueDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7446,1
    - Dst: SetFieldForOtherFormats
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7450,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7452,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7457,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7458,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7458,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 159
    argCount: 9
    argNames:
    - poLayer
    - schema
    - array
    - osFieldPrefix
    - iFeature
    - iArrowIdxInOut
    - asFieldInfo
    - oFeature
    - osWorkingBuffer
    argTypes:
    - OGRLayer*
    - struct ArrowSchema*
    - struct ArrowArray*
    - std::string
    - size_t
    - int
    - std::vector<FieldInfo>
    - OGRFeature
    - std::string
    constantsTouched: []
    func_position:
      end: 7462
      start: 7170
    functionDepth: 5
    functionLinenumber: 7170
    functionLinenumberEnd: 7462
    functionName: FillFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - IsLargeList
    - IsInt8
    - IsBinary
    - OGRFeature::GetRawFieldRef
    - static_cast<const uint64_t *>
    - IsInt32
    - CPLError
    - IsFloat32
    - std::vector::push_back
    - static_cast<const int32_t *>
    - IsValidField
    - GetValueDecimal
    - IsLargeString
    - FillFeature
    - IsString
    - IsStructure
    - IsUInt16
    - IsUInt64
    - static_cast<const int64_t *>
    - OGRFeature::SetGeomFieldDirectly
    - std::vector::data
    - c_str
    - FillFieldString
    - IsList
    - static_cast<int>
    - OGRFeature::SetField
    - static_cast<uint64_t>
    - IsBoolean
    - IsFloat64
    - OGRFeature::SetFieldSameTypeUnsafe
    - OGR_RawField_SetNull
    - CPLAssert
    - IsLargeBinary
    - CPLFree
    - TestBit
    - FillFieldBinary
    - IsUInt32
    - IsFixedSizeList
    - static_cast<size_t>
    - SetFieldForOtherFormats
    - CSLDestroy
    - OGRFeature::SetFID
    - IsInt64
    - IsInt16
    - FillField
    - std::string
    - IsUInt8
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: bool
    signature: "bool FillFeature(OGRLayer *poLayer, const struct ArrowSchema *schema,\n
      \                       const struct ArrowArray *array,\n                        const
      std::string &osFieldPrefix, size_t iFeature,\n                        int &iArrowIdxInOut,\n
      \                       const std::vector<FieldInfo> &asFieldInfo,\n                        OGRFeature
      &oFeature, std::string &osWorkingBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsStructure
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7623,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7631,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7638,1
    - Dst: const_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7639,1
    - Dst: auto::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7642,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7648,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7653,1
    - Dst: BuildOGRFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7676,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7677,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7688,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7689,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7689,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7693,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7693,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7695,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7702,1
    - Dst: OGRLayer::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7710,1
    - Dst: OGRLayer::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7715,1
    - Dst: OGRFeatureDefn::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7724,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7725,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7727,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7728,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7729,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7731,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7732,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7733,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7735,1
    - Dst: OGRFeatureDefn::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7738,1
    - Dst: auto::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7740,1
    - Dst: OGRFeatureDefn::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7742,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7742,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7767,1
    - Dst: IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7773,1
    - Dst: SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7774,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7775,1
    - Dst: OGRLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7794,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7799,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7802,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7807,1
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7808,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7811,1
    - Dst: FillFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7816,1
    - Dst: OGRLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7821,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7827,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7827,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7828,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7828,1
    - Dst: OGRFeature::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7833,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7833,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7836,1
    - Dst: OGRFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7836,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7840,1
    - Dst: OGRFeature::IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7842,1
    - Dst: OGRFeatureDefn::GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7848,1
    - Dst: auto::GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7850,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7859,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7860,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7862,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7863,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7864,1
    - Dst: OGRFeature::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7868,1
    - Dst: OGRFeature::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7869,1
    - Dst: OGRFeature::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7874,1
    - Dst: OGRFeature::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7875,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7880,1
    - Dst: OGRFeature::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7881,1
    - Dst: OGRFeature::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7882,1
    - Dst: IsDoubleCastToInt64EqualTInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7887,1
    - Dst: OGRFeature::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7888,1
    - Dst: OGRFeature::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7889,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7895,1
    - Dst: OGRFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7898,1
    - Dst: OGRFeatureDefn::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7899,1
    - Dst: OGRLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7901,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7908,1
    - Dst: OGRLayer::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7909,1
    - Dst: OGRLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7912,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7921,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7929,1
    - Dst: OGRLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7933,1
    - Dst: IsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7942,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7944,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7945,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7946,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7947,1
    - Dst: UnsetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7952,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7953,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7956,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7959,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7965,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7966,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7970,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7970,1
    - Dst: IsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7973,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7977,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7979,1
    - Dst: static_cast<int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7981,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7982,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7984,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7988,1
    - Dst: OGRLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:7999,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 152
    argCount: 3
    argNames:
    - schema
    - array
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 8002
      start: 7616
    functionDepth: 6
    functionLinenumber: 7616
    functionLinenumberEnd: 8002
    functionName: OGRLayer::WriteArrowBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::SetFrom
    - OGRLayer::CommitTransaction
    - OGRFeature::GetFID
    - OGRFeatureDefn::AddFieldDefn
    - std::map::end
    - OGRFeatureDefn::SetGeomType
    - std::vector::size
    - OGRFeatureDefn::GetFieldDefnUnsafe
    - auto::GetName
    - BuildOGRFieldInfo
    - OGRLayer::Reference
    - auto::GetType
    - std::string::reserve
    - auto::GetDriver
    - IsInt32
    - CPLError
    - std::vector::push_back
    - OGRLayer::StartTransaction
    - std::string::c_str
    - CPLStringList::CPLStringList
    - simple_max
    - OGRFeature::GetFieldAsDoubleUnsafe
    - IsFieldSetAndNotNullUnsafe
    - OGRLayer::Dereference
    - FillFeature
    - auto::GetGeomFieldDefn
    - IsDoubleCastToInt64EqualTInt64
    - const_cast<void *>
    - IsStructure
    - CSLTokenizeString2
    - OGRLayer::RollbackTransaction
    - SetBit
    - simple_min
    - std::vector::data
    - GetLayerDefn
    - OGRLayer::CreateFeature
    - static_cast<int>
    - auto::GetFieldDefnUnsafe
    - auto::GetFieldDefn
    - const_cast<OGRLayer *>
    - auto::GetGeomFieldCount
    - OGRFeature*::GetFID
    - UnsetBit
    - SetFieldSameTypeUnsafe
    - std::string::clear
    - std::map::find
    - CPLAssert
    - static_cast<int32_t *>
    - GetDefnRef
    - CPL_IGNORE_RET_VAL
    - static_cast<char *>
    - auto::GetNameRef
    - OGRFeatureDefn::AddGeomFieldDefn
    - static_cast<int64_t>
    - OGRFeature::GetFieldAsInteger64Unsafe
    - OGRFeature::GetFieldAsIntegerUnsafe
    - static_cast<double>
    - static_cast<int64_t *>
    - static_cast<size_t>
    - std::string::size
    - OGRFeature::IsFieldSetAndNotNullUnsafe
    - OGRFeature::SetFID
    - auto::GetFieldCount
    - IsInt64
    - OGRFeatureDefn::GetFieldDefn
    - std::string
    - static_cast<int32_t>
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::WriteArrowBatch(const struct ArrowSchema *schema,\n
      \                              struct ArrowArray *array,\n                               CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:8160,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:8161,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:8162,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp:8164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hLayer
    - schema
    - array
    - papszOptions
    argTypes:
    - OGRLayerH
    - struct ArrowSchema*
    - struct ArrowArray*
    - char**
    constantsTouched: []
    func_position:
      end: 8166
      start: 8157
    functionDepth: 0
    functionLinenumber: 8157
    functionLinenumberEnd: 8166
    functionName: OGR_L_WriteArrowBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerarrow.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: bool
    signature: "bool OGR_L_WriteArrowBatch(OGRLayerH hLayer, const struct ArrowSchema
      *schema,\n                           struct ArrowArray *array, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszNameIn
    - eType
    argTypes:
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn(const
      char *pszNameIn,\n                                                       OGRwkbGeometryType
      eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:37,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:37,1
    - Dst: SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:39,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSrc
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialRef
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetType
    linkageType: ''
    returnType: void
    signature: "void OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn(\n    const
      OGRGeomFieldDefn *poSrc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayerGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:48,1
    - Dst: OGRUnionLayerGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:48,1
    - Dst: SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:51,1
    - Dst: OGRUnionLayerGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poSrc
    argTypes:
    - OGRUnionLayerGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialRef
    - OGRUnionLayerGeomFieldDefn*::GetNameRef
    - OGRUnionLayerGeomFieldDefn*::GetType
    - OGRUnionLayerGeomFieldDefn*::GetSpatialRef
    linkageType: ''
    returnType: void
    signature: "void OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn(\n    const
      OGRUnionLayerGeomFieldDefn *poSrc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: OGRUnionLayerGeomFieldDefn::~OGRUnionLayerGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayerGeomFieldDefn::~OGRUnionLayerGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:73,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:75,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:79,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:80,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pszName
    - nSrcLayersIn
    - papoSrcLayersIn
    - bTakeLayerOwnership
    argTypes:
    - char*
    - int
    - OGRLayer**
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: OGRUnionLayer::OGRUnionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - SetDescription
    - CPLFree
    - CPL_TO_BOOL
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRUnionLayer::OGRUnionLayer(const char *pszName, int nSrcLayersIn,\n
      \                            OGRLayer **papoSrcLayersIn,\n                             int
      bTakeLayerOwnership)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:91,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:95,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:98,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:100,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:101,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:104,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: OGRUnionLayer::~OGRUnionLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - CPLFree
    - const_cast<OGRSpatialReference *>
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::~OGRUnionLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:118,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:119,1
    - Dst: static_cast<OGRFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:125,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:126,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:128,1
    - Dst: static_cast<OGRUnionLayerGeomFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:133,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:134,1
    - Dst: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - eFieldStrategyIn
    - nFieldsIn
    - papoFieldsIn
    - nGeomFieldsIn
    - papoGeomFieldsIn
    argTypes:
    - FieldUnionStrategy
    - int
    - OGRFieldDefn**
    - int
    - OGRUnionLayerGeomFieldDefn**
    constantsTouched: []
    func_position:
      end: 139
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 139
    functionName: OGRUnionLayer::SetFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    - OGRFieldDefn::OGRFieldDefn
    - CPLAssert
    - static_cast<OGRUnionLayerGeomFieldDefn **>
    - CPLMalloc
    - static_cast<OGRFieldDefn **>
    linkageType: ''
    returnType: void
    signature: "void OGRUnionLayer::SetFields(FieldUnionStrategy eFieldStrategyIn,\n
      \                             int nFieldsIn, OGRFieldDefn **papoFieldsIn,\n
      \                             int nGeomFieldsIn,\n                              OGRUnionLayerGeomFieldDefn
      **papoGeomFieldsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:147,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:149,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszSourceLayerFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: OGRUnionLayer::SetSourceLayerFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::SetSourceLayerFieldName(const char *pszSourceLayerFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bPreserveSrcFIDIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: OGRUnionLayer::SetPreserveSrcFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::SetPreserveSrcFID(int bPreserveSrcFIDIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFeatureCountIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: OGRUnionLayer::SetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::SetFeatureCount(int nFeatureCountIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:183,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:183,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:185,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:186,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:187,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:188,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:189,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:190,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:191,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:192,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:193,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:194,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:195,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:196,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:197,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:198,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:200,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:203,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:203,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:204,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:204,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:206,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:207,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 2
    argNames:
    - poFieldDefn
    - poSrcFieldDefn
    argTypes:
    - OGRFieldDefn*
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 209
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 209
    functionName: MergeFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetWidth
    - OGRFieldDefn*::SetType
    linkageType: ''
    returnType: void
    signature: "void MergeFieldDefn(OGRFieldDefn *poFieldDefn,\n                           const
      OGRFieldDefn *poSrcFieldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:220,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:221,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:222,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:225,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:228,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:235,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:238,1
    - Dst: std::make_unique<OGRUnionLayerGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:239,1
    - Dst: cpl::down_cast<OGRUnionLayerGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:242,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:243,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:250,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:256,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:260,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:261,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:266,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:267,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:271,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:273,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:287,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:290,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:290,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:292,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:296,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:297,1
    - Dst: std::make_unique<OGRUnionLayerGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:298,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:305,1
    - Dst: std::make_unique<OGRUnionLayerGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:306,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:315,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:322,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:324,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:324,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:329,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:332,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:337,1
    - Dst: MergeFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:338,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:343,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:347,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:352,1
    - Dst: std::make_unique<OGRUnionLayerGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:353,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:355,1
    - Dst: OGRUnionLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:356,1
    - Dst: cpl::down_cast<OGRUnionLayerGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:359,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:360,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:362,1
    - Dst: OGRUnionLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:362,1
    - Dst: cpl::down_cast<OGRUnionLayerGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:370,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:371,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:375,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:375,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:380,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:381,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:391,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:392,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:393,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:393,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:394,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:396,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:397,1
    - Dst: std::make_unique<OGRUnionLayerGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:398,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:402,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:402,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:406,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:407,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:411,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:416,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:421,1
    - Dst: MergeFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:422,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:427,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:432,1
    - Dst: DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:437,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 450
    functionName: OGRUnionLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - DeleteGeomFieldDefn
    - GetGeomFieldDefn
    - Reference
    - OGRUnionLayerGeomFieldDefn*::SetSpatialRef
    - GetFieldDefn
    - OGRUnionLayerGeomFieldDefn*::SetType
    - GetGeomFieldCount
    - OGRUnionLayer::GetLayerDefn
    - OGRFeatureDefn*::GetGeomFieldDefn
    - SetGeomType
    - DeleteFieldDefn
    - AddFieldDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - static_cast<int>
    - OGRUnionLayer::GetSpatialRef
    - OGRFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetType
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - std::make_unique<OGRUnionLayerGeomFieldDefn>
    - std::map::find
    - OGRFeatureDefn*::GetFieldDefn
    - cpl::down_cast<OGRUnionLayerGeomFieldDefn *>
    - size
    - const_cast<OGRSpatialReference *>
    - empty
    - AddGeomFieldDefn
    - OGRGeomFieldDefn*::GetSpatialRef
    - MergeFieldDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRUnionLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:462,1
    - Dst: OGRLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: OGRUnionLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetGeomType
    - GetType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRUnionLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:475,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:481,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:485,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poSrcLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 492
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 492
    functionName: OGRUnionLayer::SetSpatialFilterToSourceLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRUnionLayer::GetLayerDefn
    - OGRLayer*::SetSpatialFilter
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::SetSpatialFilterToSourceLayer(OGRLayer *poSrcLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:500,1
    - Dst: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:501,1
    - Dst: OGRUnionLayer::SetSpatialFilterToSourceLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:502,1
    - Dst: OGRUnionLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:503,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:506,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:508,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:515,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:519,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:520,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:520,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:523,1
    - Dst: FindString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:524,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:524,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:527,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:527,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:529,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:537,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:539,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:540,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:542,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:543,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:544,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:545,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:547,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:555,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:556,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:564,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:566,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:566,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:577,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:578,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:578,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:583,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:584,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:584,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:585,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:589,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:596,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:601,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:602,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:602,1
    - Dst: OGRUnionLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:606,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:606,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 608
    functionName: OGRUnionLayer::ConfigureActiveLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - std::map::end
    - GetGeomFieldDefn
    - OGRFeatureDefn*::GetFieldIndex
    - OGRUnionLayer::TestCapability
    - GetFieldDefn
    - std::vector::clear
    - GetGeomFieldCount
    - CPLStringList::CPLStringList
    - OGRUnionLayer::GetLayerDefn
    - CPLStringList::List
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - OGRUnionLayer::SetIgnoredFields
    - CPLMalloc
    - FindString
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFieldDefn*::GetNameRef
    - CPLStringList::AddString
    - std::map::find
    - OGRUnionLayer::SetSpatialFilterToSourceLayer
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - std::vector::resize
    - static_cast<int *>
    - cpl::Iterate
    - OGRUnionLayer::ResetReading
    - EQUAL
    - OGRUnionLayer::AutoWarpLayerIfNecessary
    - OGRUnionLayer::ApplyAttributeFilterToSrcLayer
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::ConfigureActiveLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::ConfigureActiveLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: OGRUnionLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRUnionLayer::ConfigureActiveLayer
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:631,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:635,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:638,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:644,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:650,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:654,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:655,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:658,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:660,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:665,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:666,1
    - Dst: std::unique_ptr::GetInverse
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:670,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:675,1
    - Dst: std::make_unique<OGRWarpedLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:676,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:678,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:682,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 690
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 690
    functionName: OGRUnionLayer::AutoWarpLayerIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::GetInverse
    - OGRUnionLayer::GetLayerDefn
    - OGRFeatureDefn*::GetGeomFieldDefn
    - std::unique_ptr::release
    - CPLDebug
    - std::make_unique<OGRWarpedLayer>
    - OGRSpatialReference*::IsSame
    - reset
    - CPLError
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::AutoWarpLayerIfNecessary(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:699,1
    - Dst: OGRUnionLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:701,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:703,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:703,1
    - Dst: OGRUnionLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:708,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:712,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:712,1
    - Dst: OGRUnionLayer::ConfigureActiveLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:714,1
    - Dst: OGRUnionLayer::TranslateFromSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:721,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:725,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:725,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:726,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 734
    functionName: OGRUnionLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGRUnionLayer::TranslateFromSrcLayer
    - static_cast<int>
    - OGRFeature*::GetGeomFieldRef
    - OGRUnionLayer::ResetReading
    - Evaluate
    - FilterGeometry
    - OGRUnionLayer::GetNextFeature
    - OGRUnionLayer::ConfigureActiveLayer
    - OGRUnionLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRUnionLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:746,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:753,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:755,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:755,1
    - Dst: OGRUnionLayer::ConfigureActiveLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:758,1
    - Dst: OGRUnionLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:761,1
    - Dst: OGRUnionLayer::TranslateFromSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:764,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:771,1
    - Dst: OGRUnionLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 778
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 778
    functionName: OGRUnionLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGRUnionLayer::TranslateFromSrcLayer
    - static_cast<int>
    - OGRUnionLayer::ResetReading
    - SetSpatialFilter
    - OGRUnionLayer::GetFeature
    - OGRUnionLayer::ConfigureActiveLayer
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRUnionLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:786,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:788,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:794,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:796,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:801,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:803,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:805,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:812,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:812,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:816,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:816,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:817,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:818,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:820,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:820,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 830
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 830
    functionName: OGRUnionLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRUnionLayer::GetLayerDefn
    - c_str
    - empty
    - OGRFeature*::SetFrom
    - OGRFeature*::GetFID
    - strcmp
    - CreateFeature
    - CPLError
    - OGRFeature::OGRFeature
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:840,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:847,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:853,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:855,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:860,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:862,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:864,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:871,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:871,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:875,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:875,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:876,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:877,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:877,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:878,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 888
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 888
    functionName: OGRUnionLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRUnionLayer::GetLayerDefn
    - c_str
    - empty
    - OGRFeature*::SetFrom
    - OGRFeature*::GetFID
    - SetFeature
    - strcmp
    - CPLError
    - OGRFeature::OGRFeature
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:896,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:896,1
    - Dst: OGRUnionLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:898,1
    - Dst: OGRUnionLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 904
      start: 894
    functionDepth: 4
    functionLinenumber: 894
    functionLinenumberEnd: 904
    functionName: OGRUnionLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - OGRUnionLayer::GetFeature
    - OGRUnionLayer::ICreateFeature
    - OGRUnionLayer::ISetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:919,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:924,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:926,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:934,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:939,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:941,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:943,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:948,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:948,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:950,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:950,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:954,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:955,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:956,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:957,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:957,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:962,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:972,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:987,1
    - Dst: UpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:992,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:993,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:993,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:994,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:995,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:995,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:996,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1002,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 1006
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 1006
    functionName: OGRUnionLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRUnionLayer::GetLayerDefn
    - c_str
    - static_cast<int>
    - empty
    - OGRFeature*::SetFrom
    - std::vector::push_back
    - UpdateFeature
    - OGRFeature*::GetFID
    - std::vector::size
    - strcmp
    - CPLError
    - OGRFeature::OGRFeature
    - GetName
    - OGRFeature*::SetFID
    - std::vector::data
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRUnionLayer::IUpdateFeature(OGRFeature *poFeature,\n                                     int
      nUpdatedFieldsCount,\n                                     const int *panUpdatedFieldsIdx,\n
      \                                    int nUpdatedGeomFieldsCount,\n                                     const
      int *panUpdatedGeomFieldsIdx,\n                                     bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1017,1
    - Dst: OGRUnionLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1018,1
    - Dst: OGRUnionLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1022,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1024,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1027
    functionName: OGRUnionLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRUnionLayer::GetSpatialRef
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRUnionLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1046,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1053,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1059,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1068,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1073
    functionName: OGRUnionLayer::GetAttrFilterPassThroughValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLDestroy
    - OGRUnionLayer::GetLayerDefn
    - OGRFeatureDefn*::GetFieldIndex
    linkageType: ''
    returnType: int
    signature: int OGRUnionLayer::GetAttrFilterPassThroughValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1081,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1082,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1082,1
    - Dst: OGRUnionLayer::GetAttrFilterPassThroughValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1084,1
    - Dst: OGRUnionLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1085,1
    - Dst: OGRUnionLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iSubLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1088
      start: 1079
    functionDepth: 3
    functionLinenumber: 1079
    functionLinenumberEnd: 1088
    functionName: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - OGRUnionLayer::SetAttributeFilter
    - OGRUnionLayer::GetAttrFilterPassThroughValue
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRUnionLayer::ApplyAttributeFilterToSrcLayer(int iSubLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::GetAttrFilterPassThroughValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1102,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1103,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1106,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1106,1
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1108,1
    - Dst: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1109,1
    - Dst: OGRUnionLayer::SetSpatialFilterToSourceLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1110,1
    - Dst: OGRUnionLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1111,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1113,1
    - Dst: OGRUnionLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1119
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1119
    functionName: OGRUnionLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - simple_max
    - static_cast<int>
    - OGRLayer::GetFeatureCount
    - OGRUnionLayer::ApplyAttributeFilterToSrcLayer
    - OGRUnionLayer::ResetReading
    - OGRUnionLayer::GetAttrFilterPassThroughValue
    - OGRUnionLayer::GetFeatureCount
    - OGRUnionLayer::AutoWarpLayerIfNecessary
    - OGRUnionLayer::SetSpatialFilterToSourceLayer
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRUnionLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1130,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1134,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1138,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1142,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1146,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1146,1
    - Dst: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - pszAttributeFilterIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1150
    functionName: OGRUnionLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - CPLStrdup
    - OGRLayer::SetAttributeFilter
    - strcmp
    - OGRUnionLayer::ApplyAttributeFilterToSrcLayer
    - CPLFree
    - OGRUnionLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::SetAttributeFilter(const char *pszAttributeFilterIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1158,1
    - Dst: OGRUnionLayer::GetAttrFilterPassThroughValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1164,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1167,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1167,1
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1169,1
    - Dst: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1170,1
    - Dst: OGRUnionLayer::SetSpatialFilterToSourceLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1171,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1178,1
    - Dst: sStaticEnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1180,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1183,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1183,1
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1185,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1192,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1194,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1194,1
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1196,1
    - Dst: OGRUnionLayer::ApplyAttributeFilterToSrcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1197,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1198,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1204,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1214,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1221,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1227,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1229,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1234,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1240,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1242,1
    - Dst: OGRUnionLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1247,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1253,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1256,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 69
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1260
      start: 1156
    functionDepth: 4
    functionLinenumber: 1156
    functionLinenumberEnd: 1260
    functionName: OGRUnionLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 2
    functionsReached:
    - size
    - static_cast<int>
    - empty
    - OGRUnionLayer::ApplyAttributeFilterToSrcLayer
    - sStaticEnvelope::IsInit
    - OGRUnionLayer::GetAttrFilterPassThroughValue
    - EQUAL
    - OGRUnionLayer::TestCapability
    - OGRUnionLayer::AutoWarpLayerIfNecessary
    - OGRUnionLayer::SetSpatialFilterToSourceLayer
    linkageType: ''
    returnType: int
    signature: int OGRUnionLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sStaticEnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1270,1
    - Dst: OGRUnionLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1280,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1287,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1287,1
    - Dst: OGRUnionLayer::AutoWarpLayerIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1289,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1297,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1304,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1313
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1313
    functionName: OGRUnionLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - GetExtent
    - OGREnvelope*::Merge
    - sStaticEnvelope::IsInit
    - CPLError
    - OGRUnionLayer::AutoWarpLayerIfNecessary
    - OGRUnionLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRUnionLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1323,1
    - Dst: OGRUnionLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1324,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1326,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1326,1
    - Dst: OGRUnionLayer::SetSpatialFilterToSourceLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1332
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1332
    functionName: OGRUnionLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRUnionLayer::ResetReading
    - InstallFilter
    - OGRUnionLayer::SetSpatialFilterToSourceLayer
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRUnionLayer::ISetSpatialFilter(int iGeomField,\n                                        const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1340,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1340,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1341,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1342,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1342,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1344,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1345,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1347,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1348,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1350,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1350,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1353,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1355,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1356,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1359,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1362,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1363,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1369,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1369,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - poSrcFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1373
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1373
    functionName: OGRUnionLayer::TranslateFromSrcLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 2
    functionsReached:
    - size
    - OGRFeature*::SetFID
    - OGRGeometry*::assignSpatialReference
    - static_cast<int>
    - empty
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFID
    - GetGeomFieldDefn
    - CPLAssert
    - OGRFeature*::SetField
    - GetFieldDefn
    - OGRFeature*::SetFrom
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - GetGeomFieldCount
    - GetName
    - OGRFeature*::SetGeomFieldDirectly
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRUnionLayer::TranslateFromSrcLayer(OGRFeature *poSrcFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1388
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1388
    functionName: OGRUnionLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRUnionLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1406
    functionName: OGRUnionLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrunionlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRUnionLayer::SyncToDisk
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRUnionLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.h:30,1
    - Dst: OGRMutexedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 114
    functionName: OGRLayerDecorator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.h
    functionUses: 0
    functionsReached:
    - OGRMutexedLayer
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRLayerDecorator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALAllRegister
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: OGRRegisterAll
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp
    functionUses: 0
    functionsReached:
    - GDALAllRegister
    linkageType: ''
    returnType: void
    signature: void OGRRegisterAll()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOGRShape
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:31,1
    - Dst: RegisterOGRTAB
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:34,1
    - Dst: RegisterOGRLVBAG
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:37,1
    - Dst: RegisterOGRS57
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:40,1
    - Dst: RegisterOGRDGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:43,1
    - Dst: RegisterOGRVRT
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:46,1
    - Dst: RegisterOGRCSV
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:49,1
    - Dst: RegisterOGRNAS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:52,1
    - Dst: RegisterOGRGML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:55,1
    - Dst: RegisterOGRGPX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:58,1
    - Dst: RegisterOGRLIBKML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:61,1
    - Dst: RegisterOGRKML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:64,1
    - Dst: RegisterOGRGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:67,1
    - Dst: RegisterOGRGeoJSONSeq
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:68,1
    - Dst: RegisterOGRESRIJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:69,1
    - Dst: RegisterOGRTopoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:70,1
    - Dst: RegisterOGRILI1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:73,1
    - Dst: RegisterOGRILI2
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:74,1
    - Dst: RegisterOGRGMT
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:77,1
    - Dst: RegisterOGRGeoPackage
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:80,1
    - Dst: RegisterOGRSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:83,1
    - Dst: RegisterOGRODBC
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:86,1
    - Dst: RegisterOGRWAsP
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:89,1
    - Dst: RegisterOGRPGeo
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:92,1
    - Dst: RegisterOGRMSSQLSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:95,1
    - Dst: RegisterOGRPG
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:98,1
    - Dst: RegisterOGRMySQL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:101,1
    - Dst: RegisterOGROCI
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:104,1
    - Dst: RegisterOGROpenFileGDB
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:108,1
    - Dst: RegisterOGRFileGDB
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:111,1
    - Dst: RegisterOGRDWG
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:114,1
    - Dst: RegisterOGRDGNV8
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:117,1
    - Dst: RegisterOGRDXF
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:120,1
    - Dst: RegisterOGRCAD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:123,1
    - Dst: RegisterOGRFlatGeobuf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:126,1
    - Dst: RegisterOGRIDB
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:129,1
    - Dst: RegisterOGRGeoRSS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:132,1
    - Dst: RegisterOGRVFK
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:135,1
    - Dst: RegisterOGRPGDump
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:138,1
    - Dst: RegisterOGROSM
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:142,1
    - Dst: RegisterOGRGPSBabel
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:145,1
    - Dst: RegisterOGRPDS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:148,1
    - Dst: RegisterOGRWFS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:151,1
    - Dst: RegisterOGROAPIF
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:154,1
    - Dst: RegisterOGRSOSI
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:157,1
    - Dst: RegisterOGREDIGEO
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:160,1
    - Dst: RegisterOGRIdrisi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:163,1
    - Dst: RegisterOGRXLS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:166,1
    - Dst: RegisterOGRODS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:169,1
    - Dst: RegisterOGRXLSX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:172,1
    - Dst: RegisterOGRElastic
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:175,1
    - Dst: RegisterOGRCarto
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:178,1
    - Dst: RegisterOGRAmigoCloud
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:181,1
    - Dst: RegisterOGRSXF
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:184,1
    - Dst: RegisterOGRSelafin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:187,1
    - Dst: RegisterOGRJML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:190,1
    - Dst: RegisterOGRPLSCENES
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:193,1
    - Dst: RegisterOGRCSW
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:196,1
    - Dst: RegisterOGRMongoDBv3
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:199,1
    - Dst: RegisterOGRVDV
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:202,1
    - Dst: RegisterOGRGMLAS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:205,1
    - Dst: RegisterOGRMVT
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:208,1
    - Dst: RegisterOGRNGW
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:211,1
    - Dst: RegisterOGRMapML
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:214,1
    - Dst: RegisterOGRHANA
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:217,1
    - Dst: RegisterOGRParquet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:220,1
    - Dst: RegisterOGRArrow
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:223,1
    - Dst: RegisterOGRGTFS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:226,1
    - Dst: RegisterOGRPMTiles
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:229,1
    - Dst: RegisterOGRJSONFG
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:232,1
    - Dst: RegisterOGRMiraMon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:235,1
    - Dst: RegisterOGRXODR
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:238,1
    - Dst: RegisterOGRADBC
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:241,1
    - Dst: RegisterOGRAVCBin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:251,1
    - Dst: RegisterOGRAVCE00
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:252,1
    - Dst: RegisterOGRAIVector
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 260
    functionName: OGRRegisterAllInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp
    functionUses: 0
    functionsReached:
    - RegisterOGRAVCBin
    - RegisterOGRGeoJSONSeq
    - RegisterOGRDGN
    - RegisterOGRTAB
    - RegisterOGRDXF
    - RegisterOGRVFK
    - RegisterOGRODS
    - RegisterOGRNGW
    - RegisterOGRCarto
    - RegisterOGRElastic
    - RegisterOGRMongoDBv3
    - RegisterOGRLVBAG
    - RegisterOGRILI1
    - RegisterOGROSM
    - RegisterOGRSelafin
    - RegisterOGRGMLAS
    - RegisterOGRXLS
    - RegisterOGRHANA
    - RegisterOGRKML
    - RegisterOGRPGeo
    - RegisterOGRFileGDB
    - RegisterOGRCAD
    - RegisterOGRPG
    - RegisterOGRJML
    - RegisterOGRArrow
    - RegisterOGRTopoJSON
    - RegisterOGRGeoPackage
    - RegisterOGRVRT
    - RegisterOGRGTFS
    - RegisterOGRAVCE00
    - RegisterOGRDWG
    - RegisterOGRVDV
    - RegisterOGRODBC
    - RegisterOGRAmigoCloud
    - RegisterOGRMVT
    - RegisterOGRGeoRSS
    - RegisterOGRWAsP
    - RegisterOGRGMT
    - RegisterOGRSOSI
    - RegisterOGRGPX
    - RegisterOGRCSV
    - RegisterOGRMySQL
    - RegisterOGRGeoJSON
    - RegisterOGRS57
    - RegisterOGRWFS
    - RegisterOGROAPIF
    - RegisterOGRADBC
    - RegisterOGRIdrisi
    - RegisterOGRPLSCENES
    - RegisterOGRGML
    - RegisterOGRParquet
    - RegisterOGRXODR
    - RegisterOGRILI2
    - RegisterOGRMapML
    - RegisterOGREDIGEO
    - RegisterOGRNAS
    - RegisterOGRMSSQLSpatial
    - RegisterOGRPGDump
    - RegisterOGRXLSX
    - RegisterOGRESRIJSON
    - RegisterOGRSXF
    - RegisterOGRMiraMon
    - RegisterOGRSQLite
    - RegisterOGRShape
    - RegisterOGROCI
    - RegisterOGRPMTiles
    - RegisterOGROpenFileGDB
    - RegisterOGRAIVector
    - RegisterOGRDGNV8
    - RegisterOGRPDS
    - RegisterOGRGPSBabel
    - RegisterOGRCSW
    - RegisterOGRJSONFG
    - RegisterOGRIDB
    - RegisterOGRLIBKML
    - RegisterOGRFlatGeobuf
    linkageType: ''
    returnType: void
    signature: void OGRRegisterAllInternal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:22,1
    - Dst: OGRLayer*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDecoratedLayer
    - bTakeOwnership
    - hMutex
    argTypes:
    - OGRLayer*
    - int
    - CPLMutex*
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: OGRMutexedLayer::OGRMutexedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 1
    functionsReached:
    - SetDescription
    - OGRLayer*::GetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRMutexedLayer::OGRMutexedLayer(OGRLayer *poDecoratedLayer,
      int bTakeOwnership,\n                                 CPLMutex *hMutex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: OGRMutexedLayer::~OGRMutexedLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMutexedLayer::~OGRMutexedLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:31,1
    - Dst: OGRLayerDecorator::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: OGRMutexedLayer::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetSpatialFilter
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRMutexedLayer::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:38,1
    - Dst: OGRLayerDecorator::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: OGRMutexedLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::ISetSpatialFilter
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMutexedLayer::ISetSpatialFilter(int iGeomField,\n                                          const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:44,1
    - Dst: OGRLayerDecorator::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poAttrFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: OGRMutexedLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRLayerDecorator::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::SetAttributeFilter(const char *poAttrFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:50,1
    - Dst: OGRLayerDecorator::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: OGRMutexedLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::ResetReading
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: void
    signature: void OGRMutexedLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:56,1
    - Dst: OGRLayerDecorator::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: OGRMutexedLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetNextFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMutexedLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:62,1
    - Dst: OGRLayerDecorator::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: OGRMutexedLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetDataset
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMutexedLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:69,1
    - Dst: OGRLayerDecorator::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: OGRMutexedLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetArrowStream
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: bool
    signature: "bool OGRMutexedLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:75,1
    - Dst: OGRLayerDecorator::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: OGRMutexedLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SetNextByIndex
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:81,1
    - Dst: OGRLayerDecorator::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: OGRMutexedLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMutexedLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:87,1
    - Dst: OGRLayerDecorator::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: OGRMutexedLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::ISetFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:93,1
    - Dst: OGRLayerDecorator::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: OGRMutexedLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::ICreateFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:99,1
    - Dst: OGRLayerDecorator::IUpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: OGRMutexedLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::IUpsertFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:110,1
    - Dst: OGRLayerDecorator::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: OGRMutexedLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::IUpdateFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMutexedLayer::IUpdateFeature(OGRFeature *poFeature,\n                                       int
      nUpdatedFieldsCount,\n                                       const int *panUpdatedFieldsIdx,\n
      \                                      int nUpdatedGeomFieldsCount,\n                                       const
      int *panUpdatedGeomFieldsIdx,\n                                       bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:118,1
    - Dst: OGRLayerDecorator::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: OGRMutexedLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::DeleteFeature
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:124,1
    - Dst: OGRLayerDecorator::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: OGRMutexedLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetName
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: char *OGRMutexedLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:130,1
    - Dst: OGRLayerDecorator::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: OGRMutexedLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetGeomType
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRMutexedLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:136,1
    - Dst: OGRLayerDecorator::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: OGRMutexedLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetLayerDefn
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMutexedLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:142,1
    - Dst: OGRLayerDecorator::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: OGRMutexedLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetSpatialRef
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRMutexedLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:148,1
    - Dst: OGRLayerDecorator::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: OGRMutexedLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetFeatureCount
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMutexedLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:155,1
    - Dst: OGRLayerDecorator::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: OGRMutexedLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::IGetExtent
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMutexedLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:161,1
    - Dst: OGRLayerDecorator::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszCapability
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: OGRMutexedLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::TestCapability
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: int
    signature: int OGRMutexedLayer::TestCapability(const char *pszCapability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:167,1
    - Dst: OGRLayerDecorator::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: OGRMutexedLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::CreateField
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:173,1
    - Dst: OGRLayerDecorator::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: OGRMutexedLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::DeleteField
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:179,1
    - Dst: OGRLayerDecorator::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: OGRMutexedLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::ReorderFields
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:186,1
    - Dst: OGRLayerDecorator::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: OGRMutexedLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRLayerDecorator::AlterFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMutexedLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                      int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:193,1
    - Dst: OGRLayerDecorator::AlterGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iGeomField
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: OGRMutexedLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::AlterGeomFieldDefn
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMutexedLayer::AlterGeomFieldDefn(\n    int iGeomField, const
      OGRGeomFieldDefn *poNewGeomFieldDefn, int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:200,1
    - Dst: OGRLayerDecorator::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: OGRMutexedLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SyncToDisk
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:206,1
    - Dst: OGRLayerDecorator::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: OGRMutexedLayer::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRLayerDecorator::GetStyleTable
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRMutexedLayer::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:212,1
    - Dst: OGRLayerDecorator::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: OGRMutexedLayer::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SetStyleTableDirectly
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: void
    signature: void OGRMutexedLayer::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:218,1
    - Dst: OGRLayerDecorator::SetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: OGRMutexedLayer::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SetStyleTable
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: void
    signature: void OGRMutexedLayer::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:224,1
    - Dst: OGRLayerDecorator::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: OGRMutexedLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::StartTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:230,1
    - Dst: OGRLayerDecorator::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: OGRMutexedLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::CommitTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:236,1
    - Dst: OGRLayerDecorator::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: OGRMutexedLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::RollbackTransaction
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:242,1
    - Dst: OGRLayerDecorator::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: OGRMutexedLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetFIDColumn
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: char *OGRMutexedLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:248,1
    - Dst: OGRLayerDecorator::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: OGRMutexedLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetGeometryColumn
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: char *OGRMutexedLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:254,1
    - Dst: OGRLayerDecorator::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: OGRMutexedLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderOptionalLockD
    - OGRLayerDecorator::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:260,1
    - Dst: OGRLayerDecorator::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: OGRMutexedLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetMetadata
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: char **OGRMutexedLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:266,1
    - Dst: OGRLayerDecorator::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: OGRMutexedLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SetMetadata
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRMutexedLayer::SetMetadata(char **papszMetadata, const char
      *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:273,1
    - Dst: OGRLayerDecorator::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: OGRMutexedLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetMetadataItem
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: char
    signature: "char *OGRMutexedLayer::GetMetadataItem(const char *pszName,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:281,1
    - Dst: OGRLayerDecorator::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: OGRMutexedLayer::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::SetMetadataItem
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRMutexedLayer::SetMetadataItem(const char *pszName,\n                                        const
      char *pszValue,\n                                        const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:287,1
    - Dst: OGRLayerDecorator::Rename
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: OGRMutexedLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::Rename
    - CPLMutexHolderOptionalLockD
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMutexedLayer::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:22,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:23,1
    - Dst: OGRLayer*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poDecoratedLayer
    - bTakeOwnership
    argTypes:
    - OGRLayer*
    - int
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: OGRLayerDecorator::OGRLayerDecorator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - CPLAssert
    - OGRLayer*::GetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRLayerDecorator::OGRLayerDecorator(OGRLayer *poDecoratedLayer,\n
      \                                    int bTakeOwnership)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: OGRLayerDecorator::~OGRLayerDecorator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayerDecorator::~OGRLayerDecorator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: OGRLayerDecorator::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetSpatialFilter
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRLayerDecorator::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: OGRLayerDecorator::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::ISetSpatialFilter(int iGeomField,\n                                            const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poAttrFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: OGRLayerDecorator::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::SetAttributeFilter(const char *poAttrFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: OGRLayerDecorator::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRLayerDecorator::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: OGRLayerDecorator::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLayerDecorator::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: OGRLayerDecorator::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetDataset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRLayerDecorator::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:80,1
    - Dst: OGRLayerDecorator::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: OGRLayerDecorator::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - memset
    - OGRLayerDecorator::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayerDecorator::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: OGRLayerDecorator::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetNextByIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: OGRLayerDecorator::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLayerDecorator::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: OGRLayerDecorator::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - SetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: OGRLayerDecorator::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - CreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: OGRLayerDecorator::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - UpsertFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: OGRLayerDecorator::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - UpdateFeature
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::IUpdateFeature(OGRFeature *poFeature,\n
      \                                        int nUpdatedFieldsCount,\n                                         const
      int *panUpdatedFieldsIdx,\n                                         int nUpdatedGeomFieldsCount,\n
      \                                        const int *panUpdatedGeomFieldsIdx,\n
      \                                        bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: OGRLayerDecorator::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::DeleteFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:145,1
    - Dst: OGRLayerDecorator::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: OGRLayerDecorator::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetName
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *OGRLayerDecorator::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: OGRLayerDecorator::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRLayerDecorator::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: OGRLayerDecorator::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRLayerDecorator::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OGRLayerDecorator::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRLayerDecorator::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: OGRLayerDecorator::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRLayerDecorator::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: OGRLayerDecorator::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                    bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: OGRLayerDecorator::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 0
    functionsReached:
    - GetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::IGetExtent3D(int iGeomField, OGREnvelope3D
      *psExtent,\n                                       bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCapability
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: OGRLayerDecorator::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRLayerDecorator::TestCapability(const char *pszCapability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: OGRLayerDecorator::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::CreateField
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::CreateField(const OGRFieldDefn *poField,\n
      \                                     int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: OGRLayerDecorator::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::DeleteField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: OGRLayerDecorator::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: OGRLayerDecorator::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::AlterFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::AlterFieldDefn(int iField,\n                                         OGRFieldDefn
      *poNewFieldDefn,\n                                         int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::AlterGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iGeomField
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: OGRLayerDecorator::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::AlterGeomFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::AlterGeomFieldDefn(\n    int iGeomField,
      const OGRGeomFieldDefn *poNewGeomFieldDefn, int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: OGRLayerDecorator::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 1
    functionsReached:
    - OGRLayerDecorator::CreateGeomField
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayerDecorator::CreateGeomField(const OGRGeomFieldDefn *poField,\n
      \                                         int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: OGRLayerDecorator::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SyncToDisk
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: OGRLayerDecorator::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetStyleTable
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRLayerDecorator::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: OGRLayerDecorator::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetStyleTableDirectly
    linkageType: ''
    returnType: void
    signature: void OGRLayerDecorator::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: OGRLayerDecorator::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetStyleTable
    linkageType: ''
    returnType: void
    signature: void OGRLayerDecorator::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: OGRLayerDecorator::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: OGRLayerDecorator::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: OGRLayerDecorator::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: OGRLayerDecorator::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetFIDColumn
    linkageType: ''
    returnType: char
    signature: char *OGRLayerDecorator::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: OGRLayerDecorator::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetGeometryColumn
    linkageType: ''
    returnType: char
    signature: char *OGRLayerDecorator::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: OGRLayerDecorator::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: OGRLayerDecorator::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **OGRLayerDecorator::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: OGRLayerDecorator::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRLayerDecorator::SetMetadata(char **papszMetadata,\n                                      const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: OGRLayerDecorator::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *OGRLayerDecorator::GetMetadataItem(const char *pszName,\n                                               const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: OGRLayerDecorator::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::SetMetadataItem
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRLayerDecorator::SetMetadataItem(const char *pszName,\n                                          const
      char *pszValue,\n                                          const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerDecorator::Rename
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:354,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:357,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: OGRLayerDecorator::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.cpp
    functionUses: 2
    functionsReached:
    - OGRLayerDecorator::Rename
    - SetDescription
    - GetDescription
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayerDecorator::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:33,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:36,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: OGRArrowArrayHelper::GetMemLimit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp
    functionUses: 0
    functionsReached:
    - CPLGetUsablePhysicalRAM
    - static_cast<uint64_t>
    - static_cast<uint32_t>
    - atoi
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OGRArrowArrayHelper::GetMemLimit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aosArrowArrayStreamOptions
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: OGRArrowArrayHelper::GetMaxFeaturesInBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGRArrowArrayHelper::GetMaxFeaturesInBatch(\n    const CPLStringList
      &aosArrowArrayStreamOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:69,1
    - Dst: CPLStringList::FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:70,1
    - Dst: OGRArrowArrayHelper::GetMaxFeaturesInBatch
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:71,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:72,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:73,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:76,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:78,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:79,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:80,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:81,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:87,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:87,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:108,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:109,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:109,1
    - Dst: auto::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:111,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:112,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:121,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:128,1
    - Dst: static_cast<struct ArrowArray **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:136,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:137,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:141,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:141,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:147,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:148,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:154,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:154,1
    - Dst: static_cast<int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:155,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:156,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:168,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:169,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:170,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:175,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:177,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:194,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:195,1
    - Dst: GDALDataset*::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:198,1
    - Dst: auto::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:200,1
    - Dst: static_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:203,1
    - Dst: OGRArrowArrayHelper::FillDict
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:205,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:246,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:247,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:248,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:252,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:252,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:257,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:284,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:284,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:286,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:289,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:289,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:301,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:302,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:310,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:310,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:311,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:315,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:315,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:320,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:330,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:331,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 156
    argCount: 4
    argNames:
    - poDS
    - poFeatureDefn
    - aosArrowArrayStreamOptions
    - out_array
    argTypes:
    - GDALDataset*
    - OGRFeatureDefn*
    - CPLStringList
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 332
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 332
    functionName: OGRArrowArrayHelper::OGRArrowArrayHelper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - auto::GetTZFlag
    - auto::GetType
    - auto::IsIgnored
    - struct ArrowArray*::release
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - static_cast<struct ArrowArray **>
    - OGRArrowArrayHelper::FillDict
    - CPL_TO_BOOL
    - OGRArrowArrayHelper::GetMaxFeaturesInBatch
    - auto::GetDomainType
    - OGRFeatureDefn*::GetGeomFieldDefn
    - const_cast<void *>
    - resize
    - static_cast<const OGRCodedFieldDomain *>
    - OGRFeatureDefn*::GetFieldCount
    - CPLTestBool
    - OGRFeatureDefn*::GetGeomFieldCount
    - auto::empty
    - GDALDataset*::GetFieldDomain
    - CPLCalloc
    - static_cast<int64_t *>
    - OGRFeatureDefn*::GetFieldDefn
    - static_cast<const void **>
    - EQUAL
    - static_cast<struct ArrowArray *>
    - auto::GetSubType
    - memset
    - auto::GetDomainName
    - CPLStringList::FetchNameValueDef
    linkageType: ''
    returnType: void
    signature: "void OGRArrowArrayHelper::OGRArrowArrayHelper(\n    GDALDataset *poDS,
      OGRFeatureDefn *poFeatureDefn,\n    const CPLStringList &aosArrowArrayStreamOptions,\n
      \   struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCodedFieldDomain*::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:345,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:348,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:364,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:366,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:376,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:377,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:383,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:383,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:388,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:389,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:392,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:393,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:397,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:405,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:406,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:416,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:417,1
    - Dst: OGRCodedFieldDomain*::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:425,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:428,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:430,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:431,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:438,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:439,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:447,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:453,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:454,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp:458,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 2
    argNames:
    - psChild
    - poCodedDomain
    argTypes:
    - struct ArrowArray*
    - OGRCodedFieldDomain*
    constantsTouched: []
    func_position:
      end: 465
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 465
    functionName: OGRArrowArrayHelper::FillDict
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.cpp
    functionUses: 2
    functionsReached:
    - simple_max
    - static_cast<const void **>
    - auto::release
    - static_cast<uint8_t>
    - static_cast<struct ArrowArray *>
    - memset
    - static_cast<uint32_t>
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - OGRCodedFieldDomain*::GetEnumeration
    - static_cast<uint8_t *>
    - CPLCalloc
    - memcpy
    - CPLFree
    - CPLGetValueType
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowArrayHelper::FillDict(struct ArrowArray *psChild,\n                                   const
      OGRCodedFieldDomain *poCodedDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Private::Private
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: OGRLayer::OGRLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - Private::Private
    linkageType: ''
    returnType: void
    signature: void OGRLayer::OGRLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:68,1
    - Dst: OGRDestroyPreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 86
    functionName: OGRLayer::~OGRLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDestroyPreparedGeometry
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRLayer::~OGRLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: OGRLayer::Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRLayer::Reference()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:105,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: OGR_L_Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_L_Reference(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: OGRLayer::Dereference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRLayer::Dereference()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:127,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: OGR_L_Dereference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_L_Dereference(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: OGRLayer::GetRefCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRLayer::GetRefCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:149,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: OGR_L_GetRefCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_L_GetRefCount(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:167,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:167,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: OGRLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 25
    functionsReached:
    - ResetReading
    - get
    - CPL_IGNORE_RET_VAL
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:182,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:186,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - bForce
    argTypes:
    - OGRLayerH
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: OGR_L_GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGR_L_GetFeatureCount(OGRLayerH hLayer, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: OGRLayer::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::GetExtent(OGREnvelope *psExtent, bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:270,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:271,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:275,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 282
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 282
    functionName: OGRLayer::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - GetLayerDefn
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::GetExtent(int iGeomField, OGREnvelope *psExtent, bool
      bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:325,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:326,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:332,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:333,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:333,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:334,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:334,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:341,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:352,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 355
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 355
    functionName: OGRLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 12
    functionsReached:
    - ResetReading
    - GetGeomFieldRef
    - std::isnan
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,
      bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:394,1
    - Dst: OGRAPISpy_L_GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:398,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - psExtent
    - bForce
    argTypes:
    - OGRLayerH
    - OGREnvelope*
    - int
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: OGR_L_GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_GetExtent(OGRLayerH hLayer, OGREnvelope *psExtent, int
      bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:443,1
    - Dst: OGRAPISpy_L_GetExtentEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:447,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - hLayer
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - OGRLayerH
    - int
    - OGREnvelope*
    - int
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: OGR_L_GetExtentEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetExtentEx
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_GetExtentEx(OGRLayerH hLayer, int iGeomField,\n                         OGREnvelope
      *psExtent, int bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:497,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:498,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:504,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:505,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:509,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 516
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 516
    functionName: OGRLayer::GetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetLayerDefn
    - OGRLayer::IGetExtent3D
    - cpl::infinity
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::GetExtent3D(int iGeomField, OGREnvelope3D *psExtent3D,\n
      \                            bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:562,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:563,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:569,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:571,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:573,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:574,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:580,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:582,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:584,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:585,1
    - Dst: OGREnvelope3D*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:588,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 594
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 594
    functionName: OGRLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 4
    functionsReached:
    - cpl::infinity
    - ResetReading
    - OGRGeometry*::Is3D
    - GetGeomFieldRef
    - OGREnvelope3D*::Merge
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::IGetExtent3D(int iGeomField, OGREnvelope3D *psExtent3D,\n
      \                             bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:636,1
    - Dst: OGRAPISpy_L_GetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:640,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - hLayer
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - OGRLayerH
    - int
    - OGREnvelope3D*
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: OGR_L_GetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetExtent3D
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_GetExtent3D(OGRLayerH hLayer, int iGeomField,\n                         OGREnvelope3D
      *psExtent3D, int bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:654,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:655,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:660,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:666,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:677,1
    - Dst: Compile
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:679,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 689
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 689
    functionName: OGRLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 8
    functionsReached:
    - OGRFeatureQuery::OGRFeatureQuery
    - CPLStrdup
    - ResetReading
    - strlen
    - CPLFree
    - Compile
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContainGeomSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - expr
    - nLayerFieldCount
    argTypes:
    - swq_expr_node*
    - int
    constantsTouched: []
    func_position:
      end: 716
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 716
    functionName: ContainGeomSpecialField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - ContainGeomSpecialField
    linkageType: ''
    returnType: int
    signature: int ContainGeomSpecialField(swq_expr_node *expr, int nLayerFieldCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:729,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:729,1
    - Dst: ContainGeomSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 733
    functionName: OGRLayer::AttributeFilterEvaluationNeedsGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - GetSWQExpr
    - static_cast<swq_expr_node *>
    - ContainGeomSpecialField
    linkageType: ''
    returnType: int
    signature: int OGRLayer::AttributeFilterEvaluationNeedsGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:744,1
    - Dst: OGRAPISpy_L_SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:749,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - pszQuery
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: OGR_L_SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetAttributeFilter
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_SetAttributeFilter(OGRLayerH hLayer, const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:766,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:769,1
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:770,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:775,1
    - Dst: OGRFeatureUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:777,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:783,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:784,1
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:785,1
    - Dst: OGRFeatureUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 789
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 789
    functionName: OGRLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 6
    functionsReached:
    - GetFID
    - OGRFeatureUniquePtr::release
    - OGRFeatureUniquePtr::swap
    - OGRLayer::SetAttributeFilter
    - OGRLayer::SetSpatialFilter
    - clone
    - CPLFree
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:798,1
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:802,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:805,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nFeatureId
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 807
      start: 795
    functionDepth: 4
    functionLinenumber: 795
    functionLinenumberEnd: 807
    functionName: OGR_L_GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRAPISpy_L_GetFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureH
    signature: OGRFeatureH OGR_L_GetFeature(OGRLayerH hLayer, GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:819,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 832
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 832
    functionName: OGRLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 3
    functionsReached:
    - ResetReading
    - GetNextFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:841,1
    - Dst: OGRAPISpy_L_SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:845,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nIndex
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: OGR_L_SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetNextByIndex
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_SetNextByIndex(OGRLayerH hLayer, GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:858,1
    - Dst: OGRAPISpy_L_GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:862,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:865,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 866
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 866
    functionName: OGR_L_GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRAPISpy_L_GetNextFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureH
    signature: OGRFeatureH OGR_L_GetNextFeature(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:879,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:879,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:881,1
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:881,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:882,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:883,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:885,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:893,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:905,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:909,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:913,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:913,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:915,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:919,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:919,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:922,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:922,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:923,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:924,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:925,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:926,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:936,1
    - Dst: OGRGeometry*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:938,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:942,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 951
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 951
    functionName: OGRLayer::ConvertGeomsIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - GetLayerDefn
    - CPLTestBool
    - OGR_GT_IsNonLinear
    - OGR_GT_GetLinear
    - OGRFeature*::GetGeomFieldRef
    - OGRGeometry*::SetPrecision
    - OGRGeometry*::setMeasured
    - OGRFeature*::StealGeometry
    - TestCapability
    - OGRGeometry*::hasCurveGeometry
    - OGRGeometryFactory::forceTo
    - OGR_GT_HasM
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - OGRFeature*::SetGeomFieldDirectly
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRLayer::ConvertGeomsIfNecessary(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ConvertGeomsIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:960,1
    - Dst: OGRLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 962
      start: 957
    functionDepth: 7
    functionLinenumber: 957
    functionLinenumberEnd: 962
    functionName: OGRLayer::SetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::ConvertGeomsIfNecessary
    - OGRLayer::ISetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 972
    functionName: OGRLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::ISetFeature(OGRFeature *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:981,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:982,1
    - Dst: OGRAPISpy_L_SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:986,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:989,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 991
      start: 978
    functionDepth: 5
    functionLinenumber: 978
    functionLinenumberEnd: 991
    functionName: OGR_L_SetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_SetFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ConvertGeomsIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1000,1
    - Dst: OGRLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1002
      start: 997
    functionDepth: 7
    functionLinenumber: 997
    functionLinenumberEnd: 1002
    functionName: OGRLayer::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::ConvertGeomsIfNecessary
    - OGRLayer::ICreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::CreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1012
    functionName: OGRLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::ICreateFeature(OGRFeature *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1021,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1022,1
    - Dst: OGRAPISpy_L_CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1026,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1029,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1031
      start: 1018
    functionDepth: 5
    functionLinenumber: 1018
    functionLinenumberEnd: 1031
    functionName: OGR_L_CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_CreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_CreateFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ConvertGeomsIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1040,1
    - Dst: OGRLayer::IUpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 7
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: OGRLayer::UpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IUpsertFeature
    - OGRLayer::ConvertGeomsIfNecessary
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::UpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1051
    functionName: OGRLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::IUpsertFeature(OGRFeature *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1060,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1061,1
    - Dst: OGRAPISpy_L_UpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1065,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1068,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hLayer
    - hFeat
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    constantsTouched: []
    func_position:
      end: 1070
      start: 1057
    functionDepth: 5
    functionLinenumber: 1057
    functionLinenumberEnd: 1070
    functionName: OGR_L_UpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_UpsertFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_UpsertFeature(OGRLayerH hLayer, OGRFeatureH hFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ConvertGeomsIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1089,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1101,1
    - Dst: OGRLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 1110
      start: 1076
    functionDepth: 7
    functionLinenumber: 1076
    functionLinenumberEnd: 1110
    functionName: OGRLayer::UpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRLayer::ConvertGeomsIfNecessary
    - OGRLayer::IUpdateFeature
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::UpdateFeature(OGRFeature *poFeature, int nUpdatedFieldsCount,\n
      \                              const int *panUpdatedFieldsIdx,\n                               int
      nUpdatedGeomFieldsCount,\n                               const int *panUpdatedGeomFieldsIdx,\n
      \                              bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1122,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1126,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1126,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1126,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1132,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1134,1
    - Dst: auto::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1138,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1140,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1144,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1144,1
    - Dst: OGRLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1146,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 1147
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1147
    functionName: OGRLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRFeature>
    - auto::SetStyleString
    - OGRFeature*::GetFID
    - OGRFeature*::GetRawFieldRef
    - auto::SetField
    - OGRFeature*::GetStyleString
    - OGRFeature*::StealGeometry
    - OGRLayer::ISetFeature
    - auto::get
    - TestCapability
    - OGRLayer::GetFeature
    - auto::SetGeomFieldDirectly
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::IUpdateFeature(OGRFeature *poFeature, int nUpdatedFieldsCount,\n
      \                               const int *panUpdatedFieldsIdx,\n                                int
      nUpdatedGeomFieldsCount,\n                                const int *panUpdatedGeomFieldsIdx,\n
      \                               bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1161,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1162,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1164,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hLayer
    - hFeat
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRLayerH
    - OGRFeatureH
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 1167
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1167
    functionName: OGR_L_UpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_UpdateFeature(OGRLayerH hLayer, OGRFeatureH hFeat,\n
      \                          int nUpdatedFieldsCount,\n                           const
      int *panUpdatedFieldsIdx,\n                           int nUpdatedGeomFieldsCount,\n
      \                          const int *panUpdatedGeomFieldsIdx,\n                           bool
      bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: OGRLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::CreateField(const OGRFieldDefn *poField, int bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1192,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1193,1
    - Dst: OGRAPISpy_L_CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1197,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1200,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hLayer
    - hField
    - bApproxOK
    argTypes:
    - OGRLayerH
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1202
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1202
    functionName: OGR_L_CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_CreateField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_CreateField(OGRLayerH hLayer, OGRFieldDefnH hField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1217
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1217
    functionName: OGRLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1226,1
    - Dst: OGRAPISpy_L_DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1230,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - iField
    argTypes:
    - OGRLayerH
    - int
    constantsTouched: []
    func_position:
      end: 1234
      start: 1223
    functionDepth: 4
    functionLinenumber: 1223
    functionLinenumberEnd: 1234
    functionName: OGR_L_DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_DeleteField
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_DeleteField(OGRLayerH hLayer, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1249
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1249
    functionName: OGRLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1258,1
    - Dst: OGRAPISpy_L_ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1262,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - panMap
    argTypes:
    - OGRLayerH
    - int*
    constantsTouched: []
    func_position:
      end: 1266
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1266
    functionName: OGR_L_ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_ReorderFields(OGRLayerH hLayer, int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1286,1
    - Dst: OGRLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1320,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - iOldFieldPos
    - iNewFieldPos
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1323
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1323
    functionName: OGRLayer::ReorderField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - OGRLayer::ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::ReorderField(int iOldFieldPos, int iNewFieldPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1332,1
    - Dst: OGRAPISpy_L_ReorderField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1336,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iOldFieldPos
    - iNewFieldPos
    argTypes:
    - OGRLayerH
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1341
      start: 1329
    functionDepth: 4
    functionLinenumber: 1329
    functionLinenumberEnd: 1341
    functionName: OGR_L_ReorderField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_ReorderField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_ReorderField(OGRLayerH hLayer, int iOldFieldPos, int iNewFieldPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1356
    functionName: OGRLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::AlterFieldDefn(int /* iField*/,\n                                OGRFieldDefn
      * /*poNewFieldDefn*/,\n                                int /* nFlags */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1366,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1367,1
    - Dst: OGRAPISpy_L_AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1372,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1375,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hLayer
    - iField
    - hNewFieldDefn
    - nFlags
    argTypes:
    - OGRLayerH
    - int
    - OGRFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1377
      start: 1362
    functionDepth: 4
    functionLinenumber: 1362
    functionLinenumberEnd: 1377
    functionName: OGR_L_AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_AlterFieldDefn
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_AlterFieldDefn(OGRLayerH hLayer, int iField,\n                            OGRFieldDefnH
      hNewFieldDefn, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1393
    functionName: OGRLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::AlterGeomFieldDefn(int /* iGeomField*/,\n                             const
      OGRGeomFieldDefn * /*poNewGeomFieldDefn*/,\n                             int
      /* nFlags */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1403,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1405,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1408,1
    - Dst: const_cast<const OGRGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1410,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hLayer
    - iGeomField
    - hNewGeomFieldDefn
    - nFlags
    argTypes:
    - OGRLayerH
    - int
    - OGRGeomFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1413
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1413
    functionName: OGR_L_AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const OGRGeomFieldDefn *>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_AlterGeomFieldDefn(OGRLayerH hLayer, int iGeomField,\n
      \                               OGRGeomFieldDefnH hNewGeomFieldDefn, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1429
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1429
    functionName: OGRLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::CreateGeomField(const OGRGeomFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1439,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1440,1
    - Dst: OGRAPISpy_L_CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1444,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1447,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hLayer
    - hField
    - bApproxOK
    argTypes:
    - OGRLayerH
    - OGRGeomFieldDefnH
    - int
    constantsTouched: []
    func_position:
      end: 1449
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1449
    functionName: OGR_L_CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_CreateGeomField
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH hField,\n
      \                            int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1459
    functionName: OGRLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1468,1
    - Dst: OGRAPISpy_L_StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1472,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1476
      start: 1465
    functionDepth: 5
    functionLinenumber: 1465
    functionLinenumberEnd: 1476
    functionName: OGR_L_StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_L_StartTransaction
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_StartTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: OGRLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1495,1
    - Dst: OGRAPISpy_L_CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1499,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1503
      start: 1492
    functionDepth: 5
    functionLinenumber: 1492
    functionLinenumberEnd: 1503
    functionName: OGR_L_CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_L_CommitTransaction
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_CommitTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1513
    functionName: OGRLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1522,1
    - Dst: OGRAPISpy_L_RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1527,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1531
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1531
    functionName: OGR_L_RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_L_RollbackTransaction
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_RollbackTransaction(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1540,1
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1544,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1547,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1549
      start: 1537
    functionDepth: 4
    functionLinenumber: 1537
    functionLinenumberEnd: 1549
    functionName: OGR_L_GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRAPISpy_L_GetLayerDefn
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRFeatureDefnH
    signature: OGRFeatureDefnH OGR_L_GetLayerDefn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1559,1
    - Dst: OGRAPISpy_L_FindFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1563,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - pszFieldName
    - bExactMatch
    argTypes:
    - OGRLayerH
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1568
      start: 1555
    functionDepth: 4
    functionLinenumber: 1555
    functionLinenumberEnd: 1568
    functionName: OGR_L_FindFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_FindFieldIndex
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: "int OGR_L_FindFieldIndex(OGRLayerH hLayer, const char *pszFieldName,\n
      \                        int bExactMatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFieldName
    - bExactMatch
    argTypes:
    - char*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1578
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1578
    functionName: OGRLayer::FindFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: int
    signature: "int OGRLayer::FindFieldIndex(const char *pszFieldName,\n                             CPL_UNUSED
      int bExactMatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1586,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1587,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1591
    functionName: OGRLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1600,1
    - Dst: OGRAPISpy_L_GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1604,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1607,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1609
      start: 1597
    functionDepth: 5
    functionLinenumber: 1597
    functionLinenumberEnd: 1609
    functionName: OGR_L_GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - OGRAPISpy_L_GetSpatialRef
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: OGRSpatialReferenceH OGR_L_GetSpatialRef(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1618,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1619,1
    - Dst: OGRAPISpy_L_TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1623,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hLayer
    - pszCap
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 1627
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1627
    functionName: OGR_L_TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    - OGRAPISpy_L_TestCapability
    linkageType: ''
    returnType: int
    signature: int OGR_L_TestCapability(OGRLayerH hLayer, const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1637
    functionName: OGRLayer::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRLayer::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1646,1
    - Dst: OGRAPISpy_L_GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1650,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1653,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 1655
      start: 1643
    functionDepth: 5
    functionLinenumber: 1643
    functionLinenumberEnd: 1655
    functionName: OGR_L_GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - OGRAPISpy_L_GetSpatialFilter
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryH
    signature: OGRGeometryH OGR_L_GetSpatialFilter(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1666,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1673,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - iGeomField
    - poGeomIn
    - bIsSelectLayer
    argTypes:
    - int
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 1694
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1694
    functionName: OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetLayerDefn
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter(\n    int
      iGeomField, const OGRGeometry *poGeomIn, bool bIsSelectLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFilter
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1737
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1737
    functionName: OGRLayer::SetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer::SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetSpatialFilter(const OGRGeometry *poFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1781,1
    - Dst: OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1788,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - iGeomField
    - poFilter
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1796
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1796
    functionName: OGRLayer::SetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer::ISetSpatialFilter
    - OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetSpatialFilter(int iGeomField, const OGRGeometry
      *poFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1825,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - iGeomField
    - poFilter
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1828
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1828
    functionName: OGRLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 7
    functionsReached:
    - OGRLayer::InstallFilter
    - ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::ISetSpatialFilter(int iGeomField, const OGRGeometry
      *poFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1871,1
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1875,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1878,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - hGeom
    argTypes:
    - OGRLayerH
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1880
      start: 1868
    functionDepth: 4
    functionLinenumber: 1868
    functionLinenumberEnd: 1880
    functionName: OGR_L_SetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER0
    - OGRAPISpy_L_SetSpatialFilter
    linkageType: ''
    returnType: void
    signature: void OGR_L_SetSpatialFilter(OGRLayerH hLayer, OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1929,1
    - Dst: OGRAPISpy_L_SetSpatialFilterEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1933,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1936,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - hGeom
    argTypes:
    - OGRLayerH
    - int
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1938
      start: 1925
    functionDepth: 4
    functionLinenumber: 1925
    functionLinenumberEnd: 1938
    functionName: OGR_L_SetSpatialFilterEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - OGRAPISpy_L_SetSpatialFilterEx
    linkageType: ''
    returnType: void
    signature: "void OGR_L_SetSpatialFilterEx(OGRLayerH hLayer, int iGeomField,\n
      \                             OGRGeometryH hGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetSpatialFilterRect
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:1973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1974
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1974
    functionName: OGRLayer::SetSpatialFilterRect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::SetSpatialFilterRect
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::SetSpatialFilterRect(double dfMinX, double dfMinY,\n
      \                                     double dfMaxX, double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2010,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2011,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2013,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2014,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2015,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2016,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2017,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2019,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2019,1
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - iGeomField
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2022
      start: 2005
    functionDepth: 2
    functionLinenumber: 2005
    functionLinenumberEnd: 2022
    functionName: OGRLayer::SetSpatialFilterRect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - auto::addPoint
    - OGRPolygon::addRing
    - OGRLayer::SetSpatialFilter
    - std::move
    - OGRPolygon::OGRPolygon
    - std::make_unique<OGRLinearRing>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::SetSpatialFilterRect(int iGeomField, double dfMinX,\n
      \                                     double dfMinY, double dfMaxX,\n                                      double
      dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2058,1
    - Dst: OGRAPISpy_L_SetSpatialFilterRect
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2062,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - hLayer
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRLayerH
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2068
      start: 2054
    functionDepth: 4
    functionLinenumber: 2054
    functionLinenumberEnd: 2068
    functionName: OGR_L_SetSpatialFilterRect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - OGRAPISpy_L_SetSpatialFilterRect
    linkageType: ''
    returnType: void
    signature: "void OGR_L_SetSpatialFilterRect(OGRLayerH hLayer, double dfMinX, double
      dfMinY,\n                                double dfMaxX, double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2109,1
    - Dst: OGRAPISpy_L_SetSpatialFilterRectEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2113,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - hLayer
    - iGeomField
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRLayerH
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2119
      start: 2104
    functionDepth: 4
    functionLinenumber: 2104
    functionLinenumberEnd: 2119
    functionName: OGR_L_SetSpatialFilterRectEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - OGRAPISpy_L_SetSpatialFilterRectEx
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void OGR_L_SetSpatialFilterRectEx(OGRLayerH hLayer, int iGeomField,\n
      \                                 double dfMinX, double dfMinY, double dfMaxX,\n
      \                                 double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDestroyPreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2153,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2158,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2165,1
    - Dst: OGRCreatePreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2169,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2169,1
    - Dst: IsRectangle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - poFilter
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2174
      start: 2136
    functionDepth: 3
    functionLinenumber: 2136
    functionLinenumberEnd: 2174
    functionName: OGRLayer::InstallFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - getEnvelope
    - OGRDestroyPreparedGeometry
    - OGRCreatePreparedGeometry
    - ToHandle
    - IsRectangle
    - OGRGeometry*::clone
    linkageType: ''
    returnType: int
    signature: int OGRLayer::InstallFilter(const OGRGeometry *poFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2187,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2187,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2191,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2199,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2204,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2205,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2214,1
    - Dst: DoesGeometryHavePointInEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2216,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - poGeometry
    - sEnvelope
    argTypes:
    - OGRGeometry*
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 2242
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2242
    functionName: DoesGeometryHavePointInEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - DoesGeometryHavePointInEnvelope
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: "bool DoesGeometryHavePointInEnvelope(const OGRGeometry *poGeometry,\n
      \                                           const OGREnvelope &sEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2264,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2274,1
    - Dst: DoesGeometryHavePointInEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2301,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2311,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2315,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2317,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2318,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2320,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2325
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2325
    functionName: OGRLayer::FilterGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - DoesGeometryHavePointInEnvelope
    - OGRPreparedGeometryIntersects
    - const_cast<OGRGeometry *>
    - ToHandle
    - Intersects
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: int
    signature: int OGRLayer::FilterGeometry(const OGRGeometry *poGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pabyWKB
    - nWKBSize
    - bEnvelopeAlreadySet
    - sEnvelope
    argTypes:
    - GByte*
    - size_t
    - bool
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 2341
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2341
    functionName: OGRLayer::FilterWKBGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRLayer *>
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::FilterWKBGeometry(const GByte *pabyWKB, size_t nWKBSize,\n
      \                                bool bEnvelopeAlreadySet,\n                                 OGREnvelope
      &sEnvelope) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2356,1
    - Dst: OGREnvelope::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2357,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2359,1
    - Dst: OGRWKBIntersectsPessimistic
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2366,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2370,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2374,1
    - Dst: OGRCreatePreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2380,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2380,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2381,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2384,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2386,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2387,1
    - Dst: OGRGeometry*::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2389,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 8
    argNames:
    - pabyWKB
    - nWKBSize
    - bEnvelopeAlreadySet
    - sEnvelope
    - poFilterGeom
    - bFilterIsEnvelope
    - sFilterEnvelope
    - pPreparedFilterGeom
    argTypes:
    - GByte*
    - size_t
    - bool
    - OGREnvelope
    - OGRGeometry*
    - bool
    - OGREnvelope
    - OGRPreparedGeometry*
    constantsTouched: []
    func_position:
      end: 2403
      start: 2344
    functionDepth: 4
    functionLinenumber: 2344
    functionLinenumberEnd: 2403
    functionName: OGRLayer::FilterWKBGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGREnvelope::Intersects
    - OGRPreparedGeometryIntersects
    - const_cast<OGRGeometry *>
    - OGRGeometryFactory::createFromWkb
    - OGRCreatePreparedGeometry
    - CPL_TO_BOOL
    - ToHandle
    - OGRWKBGetBoundingBox
    - OGRGeometry*::Intersects
    - OGRWKBIntersectsPessimistic
    - OGREnvelope::Contains
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::FilterWKBGeometry(const GByte *pabyWKB, size_t nWKBSize,\n
      \                                bool bEnvelopeAlreadySet,\n                                 OGREnvelope
      &sEnvelope,\n                                 const OGRGeometry *poFilterGeom,\n
      \                                bool bFilterIsEnvelope,\n                                 const
      OGREnvelope &sFilterEnvelope,\n                                 OGRPreparedGeometry
      *&pPreparedFilterGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2411,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2413
    functionName: OGRLayer::PrepareStartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRLayer::PrepareStartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2433,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2445,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2455,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2455,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2456,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2461,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2462,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2473,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2473,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2474,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2480,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2488,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2496,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2504,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2507,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2520,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2529,1
    - Dst: OGRLayer::begin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2529,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2544,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2570,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2575,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2579,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2589,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 1
    argNames:
    - osSavepointName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2595
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2595
    functionName: OGRLayer::FinishRollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - GetLayerDefn
    - erase
    - CPLError
    - OGRLayer::begin
    - CPLAssert
    - std::move
    - std::vector::push_back
    - whileUnsealing
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRLayer::FinishRollbackTransaction(const std::string &osSavepointName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2606,1
    - Dst: OGRAPISpy_L_ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2610,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2614
      start: 2603
    functionDepth: 5
    functionLinenumber: 2603
    functionLinenumberEnd: 2614
    functionName: OGR_L_ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - OGRAPISpy_L_ResetReading
    linkageType: ''
    returnType: void
    signature: void OGR_L_ResetReading(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateDefaultLayerIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2635,1
    - Dst: Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2648
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 2648
    functionName: OGRLayer::InitializeIndexSupport
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCreateDefaultLayerIndex
    - Initialize
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::InitializeIndexSupport([[maybe_unused]] const char
      *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2660
    functionName: OGRLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2669,1
    - Dst: OGRAPISpy_L_SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2673,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2677
      start: 2666
    functionDepth: 5
    functionLinenumber: 2666
    functionLinenumberEnd: 2677
    functionName: OGR_L_SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_L_SyncToDisk
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_SyncToDisk(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GIntBig
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2686
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2686
    functionName: OGRLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::DeleteFeature(CPL_UNUSED GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2695,1
    - Dst: OGRAPISpy_L_DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2699,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - nFID
    argTypes:
    - OGRLayerH
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2703
      start: 2692
    functionDepth: 4
    functionLinenumber: 2692
    functionLinenumberEnd: 2703
    functionName: OGR_L_DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_DeleteFeature
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_DeleteFeature(OGRLayerH hLayer, GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2710
    functionDepth: 0
    functionLinenumber: 2710
    functionLinenumberEnd: 2714
    functionName: OGRLayer::GetFeaturesRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRLayer::GetFeaturesRead()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2725,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2728
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2728
    functionName: OGR_L_GetFeaturesRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGR_L_GetFeaturesRead(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2738
    functionName: OGRLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2747,1
    - Dst: OGRAPISpy_L_GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2751,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2755
      start: 2744
    functionDepth: 5
    functionLinenumber: 2744
    functionLinenumberEnd: 2755
    functionName: OGR_L_GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFIDColumn
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_L_GetFIDColumn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2764,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2768
    functionName: OGRLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2777,1
    - Dst: OGRAPISpy_L_GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2781,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2785
      start: 2774
    functionDepth: 5
    functionLinenumber: 2774
    functionLinenumberEnd: 2785
    functionName: OGR_L_GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetGeometryColumn
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_L_GetGeometryColumn(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2794
    functionName: OGRLayer::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRLayer::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2805
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2805
    functionName: OGRLayer::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayer::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2817
      start: 2811
    functionDepth: 0
    functionLinenumber: 2811
    functionLinenumberEnd: 2817
    functionName: OGRLayer::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable*::Clone
    linkageType: ''
    returnType: void
    signature: void OGRLayer::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2826,1
    - Dst: reinterpret_cast<OGRStyleTableH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2828,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2830
      start: 2823
    functionDepth: 0
    functionLinenumber: 2823
    functionLinenumberEnd: 2830
    functionName: OGR_L_GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - reinterpret_cast<OGRStyleTableH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRStyleTableH
    signature: OGRStyleTableH OGR_L_GetStyleTable(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2839,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2841,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hLayer
    - hStyleTable
    argTypes:
    - OGRLayerH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 2843
      start: 2836
    functionDepth: 0
    functionLinenumber: 2836
    functionLinenumberEnd: 2843
    functionName: OGR_L_SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_L_SetStyleTableDirectly(OGRLayerH hLayer, OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2852,1
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2853,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2855,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hLayer
    - hStyleTable
    argTypes:
    - OGRLayerH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 2857
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2857
    functionName: OGR_L_SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_L_SetStyleTable(OGRLayerH hLayer, OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2863
    functionDepth: 0
    functionLinenumber: 2863
    functionLinenumberEnd: 2867
    functionName: OGRLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2876,1
    - Dst: OGRAPISpy_L_GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2880,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2884
      start: 2873
    functionDepth: 5
    functionLinenumber: 2873
    functionLinenumberEnd: 2884
    functionName: OGR_L_GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetName
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_L_GetName(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2892,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2895,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2890
    functionDepth: 1
    functionLinenumber: 2890
    functionLinenumberEnd: 2899
    functionName: OGRLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - OGRFeatureDefn*::GetGeomType
    - CPLDebug
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2908,1
    - Dst: OGRAPISpy_L_GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2912,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2915,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2916,1
    - Dst: OGRGetNonLinearGeometriesEnabledFlag
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2916,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 2921
      start: 2905
    functionDepth: 5
    functionLinenumber: 2905
    functionLinenumberEnd: 2921
    functionName: OGR_L_GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_GT_IsNonLinear
    - OGR_GT_GetLinear
    - OGRAPISpy_L_GetGeomType
    - OGRGetNonLinearGeometriesEnabledFlag
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGR_L_GetGeomType(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2929,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2932,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2934,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2936,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2938,1
    - Dst: OGRFeatureDefn*::SetStyleIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2940,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2943,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2946,1
    - Dst: OGRFeatureDefn*::SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2947,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2948,1
    - Dst: OGRFeatureDefn*::SetStyleIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2949,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2957,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2963,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2971
      start: 2927
    functionDepth: 2
    functionLinenumber: 2927
    functionLinenumberEnd: 2971
    functionName: OGRLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 2
    functionsReached:
    - GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFeatureDefn*::GetGeomFieldDefn
    - cpl::Iterate
    - EQUAL
    - OGRFeatureDefn*::SetStyleIgnored
    - OGRFeatureDefn*::SetGeometryIgnored
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2980,1
    - Dst: OGRAPISpy_L_SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2984,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:2987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hLayer
    - papszFields
    argTypes:
    - OGRLayerH
    - char**
    constantsTouched: []
    func_position:
      end: 2988
      start: 2977
    functionDepth: 4
    functionLinenumber: 2977
    functionLinenumberEnd: 2988
    functionName: OGR_L_SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetIgnoredFields
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_SetIgnoredFields(OGRLayerH hLayer, const char **papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 3017
      start: 3011
    functionDepth: 1
    functionLinenumber: 3011
    functionLinenumberEnd: 3017
    functionName: OGRLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLayer::Rename(CPL_UNUSED const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3044,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3045,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hLayer
    - pszNewName
    argTypes:
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 3048
      start: 3041
    functionDepth: 0
    functionLinenumber: 3041
    functionLinenumberEnd: 3048
    functionName: OGR_L_Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_L_Rename(OGRLayerH hLayer, const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3057,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pLayer
    - ppGeometry
    argTypes:
    - OGRLayer*
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 3060
      start: 3054
    functionDepth: 0
    functionLinenumber: 3054
    functionLinenumberEnd: 3060
    functionName: clone_spatial_filter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::clone
    - OGRLayer*::GetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr clone_spatial_filter(OGRLayer *pLayer, OGRGeometry **ppGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3068,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - poDefn
    - map
    argTypes:
    - OGRFeatureDefn*
    - int**
    constantsTouched: []
    func_position:
      end: 3075
      start: 3062
    functionDepth: 0
    functionLinenumber: 3062
    functionLinenumberEnd: 3075
    functionName: create_field_map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int *>
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr create_field_map(OGRFeatureDefn *poDefn, int **map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3083,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3083,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3087,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3094,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3099,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3103,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3106,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3112,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3115,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3118,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3135,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3136,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3141,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3142,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3152,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3154,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3154,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3155,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3156,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3157,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3157,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3158,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3161,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3162,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3162,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3164,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3171,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3177,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3195,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3197,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3197,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3198,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3199,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3200,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3200,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3201,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3204,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3205,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3205,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3207,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3214,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3219,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 72
    argCount: 7
    argNames:
    - pLayerResult
    - poDefnInput
    - poDefnMethod
    - mapInput
    - mapMethod
    - combined
    - papszOptions
    argTypes:
    - OGRLayer*
    - OGRFeatureDefn*
    - OGRFeatureDefn*
    - int*
    - int*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 3224
      start: 3077
    functionDepth: 2
    functionLinenumber: 3077
    functionLinenumberEnd: 3224
    functionName: set_result_schema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - OGRFeatureDefn*::GetFieldCount
    - CPLTestBool
    - CPLErrorReset
    - CSLFetchNameValueDef
    - std::set::insert
    - OGRLayer*::CreateField
    - CPLSPrintf
    - OGRFeatureDefn*::GetFieldIndex
    - std::set::find
    - OGRFieldDefn::SetName
    - std::set::empty
    - OGRLayer*::GetLayerDefn
    - OGRFeatureDefn*::GetFieldDefn
    - std::set::end
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr set_result_schema(OGRLayer *pLayerResult,\n                                OGRFeatureDefn
      *poDefnInput,\n                                OGRFeatureDefn *poDefnMethod,
      int *mapInput,\n                                int *mapMethod, bool combined,\n
      \                               const char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3230,1
    - Dst: OGRGeometry*::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3235,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3237,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3240,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pLayer
    - pGeometryExistingFilter
    - pFeature
    argTypes:
    - OGRLayer*
    - OGRGeometry*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 3251
      start: 3226
    functionDepth: 0
    functionLinenumber: 3226
    functionLinenumberEnd: 3251
    functionName: set_filter_from
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::Intersects
    - OGRGeometry*::Intersection
    - OGRLayer*::SetSpatialFilter
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *set_filter_from(OGRLayer *pLayer,\n                                    OGRGeometry
      *pGeometryExistingFilter,\n                                    OGRFeature *pFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3255,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3255,1
    - Dst: OGRGeometryFactory::forceToMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3257,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3259,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 3264
      start: 3253
    functionDepth: 5
    functionLinenumber: 3253
    functionLinenumberEnd: 3264
    functionName: promote_to_multi
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::forceToMultiLineString
    - OGRGeometryFactory::forceToMultiPoint
    - OGRGeometryFactory::forceToMultiPolygon
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *promote_to_multi(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3350,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3351,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3373,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3375,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3381,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3384,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3387,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3390,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3394,1
    - Dst: OGRLayer*::GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3395,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3399,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3401,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3417,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3428,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3432,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3448,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3450,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3450,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3451,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3460,1
    - Dst: OGRPreparedGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3472,1
    - Dst: OGRCreatePreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3473,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3473,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3482,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3489,1
    - Dst: OGRPreparedGeometryContains
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3492,1
    - Dst: OGRPreparedGeometryUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3492,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3493,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3495,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3496,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3496,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3498,1
    - Dst: OGRPreparedGeometryUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3499,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3500,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3502,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3507,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3516,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3524,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3525,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3525,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3526,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3535,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3540,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3542,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3542,1
    - Dst: OGRGeometryUniquePtr::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3543,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3543,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3548,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3549,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3549,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3550,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3550,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3552,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3552,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3552,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3553,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3553,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3554,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3554,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3564,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3570,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3572,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3578,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3582,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3584,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 148
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3586
      start: 3345
    functionDepth: 6
    functionLinenumber: 3345
    functionLinenumberEnd: 3586
    functionName: OGRLayer::Intersection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometry*::Intersection
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLDebug
    - OGRLayer*::GetGeomType
    - CPLError
    - OGRPreparedGeometryUniquePtr::reset
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - ToHandle
    - set_filter_from
    - pfnProgress
    - OGRGeometry*::getDimension
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - OGRGeometryUniquePtr::getDimension
    - GetLayerDefn
    - OGRGeometryUniquePtr::reset
    - OGRPreparedGeometryIntersects
    - OGRCreatePreparedGeometry
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRPreparedGeometryUniquePtr::get
    - OGRFeature::OGRFeature
    - OGRGeometry*::getEnvelope
    - OGRLayer*::GetExtent
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - VSIFree
    - CPLGetLastErrorType
    - OGRPreparedGeometryContains
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Intersection(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                             char **papszOptions, GDALProgressFunc pfnProgress,\n
      \                             void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3674,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3675,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3677,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3680,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3681,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3684
      start: 3669
    functionDepth: 0
    functionLinenumber: 3669
    functionLinenumberEnd: 3684
    functionName: OGR_L_Intersection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Intersection(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                         OGRLayerH pLayerResult, char **papszOptions,\n                          GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3768,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3769,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3792,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3798,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3801,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3804,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3807,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3810,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3814,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3818,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3820,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3835,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3837,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3846,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3848,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3848,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3849,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3858,1
    - Dst: OGRPreparedGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3870,1
    - Dst: OGRCreatePreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3871,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3871,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3879,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3883,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3889,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3891,1
    - Dst: OGRPreparedGeometryUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3891,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3892,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3894,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3899,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3908,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3913,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3914,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3915,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3924,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3929,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3931,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3931,1
    - Dst: OGRGeometryUniquePtr::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3932,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3932,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3938,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3939,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3939,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3940,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3940,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3942,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3943,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3943,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3944,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3944,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3948,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3950,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3951,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3961,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3966,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3970,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3970,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3979,1
    - Dst: OGRPreparedGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3985,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3987,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3993,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3994,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3994,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3996,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3996,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3996,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3997,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3997,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3998,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:3998,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4007,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4015,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4024,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4026,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4035,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4037,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4037,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4038,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4047,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4057,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4061,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4069,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4071,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4072,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4082,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4088,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4093,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4099,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4100,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4100,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4102,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4102,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4102,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4103,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4103,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4104,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4104,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4113,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4119,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4121,1
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4127,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4128,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4134,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4136,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 229
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4138
      start: 3763
    functionDepth: 6
    functionLinenumber: 3763
    functionLinenumberEnd: 4138
    functionName: OGRLayer::Union
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometryUniquePtr::Difference
    - OGRGeometry*::Intersection
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLDebug
    - OGRLayer*::GetGeomType
    - CPLError
    - OGRPreparedGeometryUniquePtr::reset
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - ToHandle
    - set_filter_from
    - pfnProgress
    - OGRGeometry*::getDimension
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - OGRGeometryUniquePtr::getDimension
    - GetLayerDefn
    - OGRPreparedGeometryIntersects
    - OGRGeometryUniquePtr::reset
    - OGRCreatePreparedGeometry
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRPreparedGeometryUniquePtr::get
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - OGRLayer::SetSpatialFilter
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Union(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                      char **papszOptions, GDALProgressFunc pfnProgress,\n
      \                      void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4224,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4225,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4226,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4228,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4229,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4232
      start: 4219
    functionDepth: 0
    functionLinenumber: 4219
    functionLinenumberEnd: 4232
    functionName: OGR_L_Union
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Union(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                  OGRLayerH pLayerResult, char **papszOptions,\n                   GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4305,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4306,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4323,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4325,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4331,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4334,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4337,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4340,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4343,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4347,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4358,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4360,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4369,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4371,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4371,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4372,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4381,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4391,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4395,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4402,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4403,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4404,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4413,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4419,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4422,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4426,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4428,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4429,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4429,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4431,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4431,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4431,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4432,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4432,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4433,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4433,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4442,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4450,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4459,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4461,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4470,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4472,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4472,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4473,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4482,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4492,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4496,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4501,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4502,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4503,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4512,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4518,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4521,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4525,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4527,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4528,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4528,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4530,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4530,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4530,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4531,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4531,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4532,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4532,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4541,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4547,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4549,1
    - Dst: OGRLayer::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4555,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4556,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4562,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4564,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 171
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4566
      start: 4300
    functionDepth: 6
    functionLinenumber: 4300
    functionLinenumberEnd: 4566
    functionName: OGRLayer::SymDifference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometryUniquePtr::Difference
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLError
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - set_filter_from
    - pfnProgress
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - GetLayerDefn
    - OGRGeometryUniquePtr::reset
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - OGRLayer::SetSpatialFilter
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::SymDifference(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                              char **papszOptions,\n                               GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4642,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4644,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4646,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4649,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4650,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4653
      start: 4637
    functionDepth: 0
    functionLinenumber: 4637
    functionLinenumberEnd: 4653
    functionName: OGR_L_SymDifference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_SymDifference(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                          OGRLayerH pLayerResult, char **papszOptions,\n                           GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4735,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4736,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4756,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4763,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4765,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4772,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4775,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4778,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4781,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4785,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4796,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4798,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4807,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4809,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4809,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4810,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4819,1
    - Dst: OGRPreparedGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4831,1
    - Dst: OGRCreatePreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4832,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4832,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4840,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4844,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4848,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4850,1
    - Dst: OGRPreparedGeometryUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4850,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4851,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4853,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4858,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4867,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4872,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4873,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4874,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4883,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4887,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4889,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4889,1
    - Dst: OGRGeometryUniquePtr::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4890,1
    - Dst: OGRGeometry*::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4891,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4897,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4898,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4898,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4899,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4899,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4901,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4902,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4902,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4903,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4903,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4906,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4908,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4909,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4919,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4924,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4927,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4927,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4936,1
    - Dst: OGRPreparedGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4943,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4945,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4951,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4952,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4952,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4954,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4954,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4954,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4955,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4955,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4956,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4956,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4965,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4971,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4973,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4979,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4983,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:4985,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 157
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4987
      start: 4730
    functionDepth: 6
    functionLinenumber: 4730
    functionLinenumberEnd: 4987
    functionName: OGRLayer::Identity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometryUniquePtr::Difference
    - OGRGeometry*::Intersection
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLDebug
    - OGRLayer*::GetGeomType
    - OGRPreparedGeometryUniquePtr::reset
    - CPLError
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - ToHandle
    - set_filter_from
    - pfnProgress
    - OGRGeometry*::getDimension
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - OGRGeometryUniquePtr::getDimension
    - GetLayerDefn
    - OGRPreparedGeometryIntersects
    - OGRGeometryUniquePtr::reset
    - OGRCreatePreparedGeometry
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRPreparedGeometryUniquePtr::get
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Identity(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                         char **papszOptions, GDALProgressFunc pfnProgress,\n
      \                         void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5071,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5072,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5073,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5075,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5076,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5079
      start: 5066
    functionDepth: 0
    functionLinenumber: 5066
    functionLinenumberEnd: 5079
    functionName: OGR_L_Identity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Identity(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                     OGRLayerH pLayerResult, char **papszOptions,\n                      GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5153,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5154,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5172,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5178,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5181,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5184,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5187,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5191,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5204,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5213,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5215,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5215,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5216,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5225,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5235,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5238,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5243,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5245,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5246,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5256,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5262,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5267,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5273,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5274,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5274,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5276,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5276,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5276,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5277,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5277,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5278,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5278,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5287,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5295,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5304,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5306,1
    - Dst: StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5314,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5317,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5319,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5319,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5320,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5321,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5321,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5330,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5335,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5337,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5343,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5347,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5349,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 127
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5351
      start: 5148
    functionDepth: 6
    functionLinenumber: 5148
    functionLinenumberEnd: 5351
    functionName: OGRLayer::Update
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometryUniquePtr::Difference
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLError
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - set_filter_from
    - pfnProgress
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - GetLayerDefn
    - OGRGeometryUniquePtr::reset
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - StealGeometry
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Update(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                       char **papszOptions, GDALProgressFunc pfnProgress,\n
      \                       void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5427,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5428,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5429,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5431,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5432,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5435
      start: 5422
    functionDepth: 0
    functionLinenumber: 5422
    functionLinenumberEnd: 5435
    functionName: OGR_L_Update
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Update(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                   OGRLayerH pLayerResult, char **papszOptions,\n                    GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5502,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5515,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5517,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5522,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5525,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5528,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5533,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5544,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5553,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5555,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5555,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5556,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5565,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5579,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5584,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5584,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5588,1
    - Dst: OGRGeometryUniquePtr::Union
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5589,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5590,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5599,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5605,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5613,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5615,1
    - Dst: OGRGeometryUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5615,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5616,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5625,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5629,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5631,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5632,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5632,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5634,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5635,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5635,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5636,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5636,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5637,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5637,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5646,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5655,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5661,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5665,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 107
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5667
      start: 5497
    functionDepth: 6
    functionLinenumber: 5497
    functionLinenumberEnd: 5667
    functionName: OGRLayer::Clip
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometry*::Intersection
    - set_result_schema
    - OGRGeometryUniquePtr::Union
    - OGRLayer*::SetSpatialFilter
    - CPLError
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - OGRGeometryUniquePtr::get
    - set_filter_from
    - pfnProgress
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - GetLayerDefn
    - OGRGeometryUniquePtr::reset
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Clip(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                     char **papszOptions, GDALProgressFunc pfnProgress,\n                      void
      *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5736,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5737,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5738,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5740,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5741,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5744
      start: 5731
    functionDepth: 0
    functionLinenumber: 5731
    functionLinenumberEnd: 5744
    functionName: OGR_L_Clip
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Clip(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                 OGRLayerH pLayerResult, char **papszOptions,\n                  GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5811,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5826,1
    - Dst: clone_spatial_filter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5832,1
    - Dst: create_field_map
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5835,1
    - Dst: set_result_schema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5838,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5842,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5854,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5863,1
    - Dst: set_filter_from
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5865,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5865,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5866,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5875,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5885,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5890,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5893,1
    - Dst: OGRGeometryUniquePtr::Difference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5894,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5895,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5904,1
    - Dst: OGRGeometryUniquePtr::swap
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5910,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5911,1
    - Dst: OGRGeometryUniquePtr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5919,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5921,1
    - Dst: OGRFeatureUniquePtr::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5922,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5922,1
    - Dst: OGRGeometryUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5924,1
    - Dst: promote_to_multi
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5924,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5924,1
    - Dst: OGRFeatureUniquePtr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5925,1
    - Dst: OGRGeometryUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5925,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5926,1
    - Dst: OGRFeatureUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5926,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5935,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5943,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5949,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:5953,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 5
    argNames:
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayer*
    - OGRLayer*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5955
      start: 5806
    functionDepth: 6
    functionLinenumber: 5806
    functionLinenumberEnd: 5955
    functionName: OGRLayer::Erase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRGeometryUniquePtr::release
    - create_field_map
    - OGRGeometryUniquePtr::IsEmpty
    - OGRGeometryUniquePtr::Difference
    - set_result_schema
    - OGRLayer*::SetSpatialFilter
    - CPLError
    - OGRFeatureUniquePtr::SetFieldsFrom
    - OGRGeometry*::clone
    - CPLErrorReset
    - set_filter_from
    - pfnProgress
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFeatureUniquePtr::get
    - GetLayerDefn
    - OGRGeometryUniquePtr::reset
    - get
    - GetGeometryRef
    - clone_spatial_filter
    - OGRFeature::OGRFeature
    - OGRFeatureUniquePtr::SetGeometryDirectly
    - promote_to_multi
    - OGRGeometryUniquePtr::swap
    - VSIFree
    - CPLGetLastErrorType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::Erase(OGRLayer *pLayerMethod, OGRLayer *pLayerResult,\n
      \                      char **papszOptions, GDALProgressFunc pfnProgress,\n
      \                      void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6024,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6025,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6026,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6028,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6029,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - pLayerInput
    - pLayerMethod
    - pLayerResult
    - papszOptions
    - pfnProgress
    - pProgressArg
    argTypes:
    - OGRLayerH
    - OGRLayerH
    - OGRLayerH
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 6032
      start: 6019
    functionDepth: 0
    functionLinenumber: 6019
    functionLinenumberEnd: 6032
    functionName: OGR_L_Erase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_Erase(OGRLayerH pLayerInput, OGRLayerH pLayerMethod,\n
      \                  OGRLayerH pLayerResult, char **papszOptions,\n                   GDALProgressFunc
      pfnProgress, void *pProgressArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6041
      start: 6040
    functionDepth: 0
    functionLinenumber: 6040
    functionLinenumberEnd: 6041
    functionName: Private
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: CPL_DISALLOW_COPY_ASSIGN
    signature: CPL_DISALLOW_COPY_ASSIGN Private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::FeatureIterator::Private::Private
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6054,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6061,1
    - Dst: m_poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6068,1
    - Dst: m_poFeature::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6069,1
    - Dst: m_poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - poLayer
    - bStart
    argTypes:
    - OGRLayer*
    - bool
    constantsTouched: []
    func_position:
      end: 6075
      start: 6053
    functionDepth: 1
    functionLinenumber: 6053
    functionLinenumberEnd: 6075
    functionName: OGRLayer::FeatureIterator::FeatureIterator(OGRLayer *poLayer, bool
      bStart)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - m_poFeature::reset
    - m_poLayer::ResetReading
    - CPLError
    - OGRLayer::FeatureIterator::Private::Private
    - m_poLayer::GetNextFeature
    linkageType: ''
    returnType: void
    signature: void OGRLayer::FeatureIterator::FeatureIterator(OGRLayer *poLayer,
      bool bStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6081
    functionDepth: 0
    functionLinenumber: 6081
    functionLinenumberEnd: 6085
    functionName: OGRLayer::FeatureIterator::~FeatureIterator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayer::FeatureIterator::~FeatureIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6094
      start: 6091
    functionDepth: 0
    functionLinenumber: 6091
    functionLinenumberEnd: 6094
    functionName: '&OGRLayer::FeatureIterator::operator*()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureUniquePtr
    signature: OGRFeatureUniquePtr &OGRLayer::FeatureIterator::operator*()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poFeature::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6102,1
    - Dst: m_poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6100
    functionDepth: 1
    functionLinenumber: 6100
    functionLinenumberEnd: 6105
    functionName: '&OGRLayer::FeatureIterator::operator++()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - m_poFeature::reset
    - m_poLayer::GetNextFeature
    linkageType: ''
    returnType: OGRLayer::FeatureIterator
    signature: OGRLayer::FeatureIterator &OGRLayer::FeatureIterator::operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - OGRLayer::FeatureIterator
    constantsTouched: []
    func_position:
      end: 6115
      start: 6111
    functionDepth: 0
    functionLinenumber: 6111
    functionLinenumberEnd: 6115
    functionName: "OGRLayer::FeatureIterator::operator!=(\n    const OGRLayer::FeatureIterator
      &it) const"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRLayer::FeatureIterator::operator!=(\n    const OGRLayer::FeatureIterator
      &it) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6124
      start: 6121
    functionDepth: 0
    functionLinenumber: 6121
    functionLinenumberEnd: 6124
    functionName: OGRLayer::begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer::FeatureIterator
    signature: OGRLayer::FeatureIterator OGRLayer::begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6133
      start: 6130
    functionDepth: 0
    functionLinenumber: 6130
    functionLinenumberEnd: 6133
    functionName: OGRLayer::end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer::FeatureIterator
    signature: OGRLayer::FeatureIterator OGRLayer::end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6197,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6203,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6204,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6208,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6210,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6211,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6213,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6217,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6219,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6220,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6222,1
    - Dst: OGRFeatureDefn*::IsStyleIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6224,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6225,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6226,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6227,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6227,1
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6240,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6247,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6250,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6251,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6254,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6262,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6263,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6267,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6275,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6275,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6284,1
    - Dst: std::map::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6284,1
    - Dst: static_cast<OGRGeometryTypeCounter *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6285,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6286,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 5
    argNames:
    - iGeomField
    - nFlagsGGT
    - nEntryCountOut
    - pfnProgress
    - pProgressData
    argTypes:
    - int
    - int
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 6295
      start: 6189
    functionDepth: 3
    functionLinenumber: 6189
    functionLinenumberEnd: 6295
    functionName: OGRLayer::GetGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - std::set::size
    - std::set::insert
    - auto::IsIgnored
    - CPLError
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - auto::getGeometryRef
    - OGRFeatureDefn*::GetGeomFieldDefn
    - pfnProgress
    - OGRLayer::SetIgnoredFields
    - static_cast<OGRGeometryTypeCounter *>
    - GetLayerDefn
    - std::map::size
    - static_cast<int>
    - CPLStringList::AddString
    - OGRFeatureDefn*::IsStyleIgnored
    - GetGeomFieldRef
    - CPLCalloc
    - auto::toGeometryCollection
    - OGRFeatureDefn*::GetFieldDefn
    - auto::getNumGeometries
    - auto::getGeometryType
    linkageType: ''
    returnType: OGRGeometryTypeCounter
    signature: "OGRGeometryTypeCounter *\nOGRLayer::GetGeometryTypes(int iGeomField,
      int nFlagsGGT, int &nEntryCountOut,\n                           GDALProgressFunc
      pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6322,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6323,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - hLayer
    - iGeomField
    - nFlags
    - pnEntryCount
    - pfnProgress
    - pProgressData
    argTypes:
    - OGRLayerH
    - int
    - int
    - int*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 6327
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6327
    functionName: OGR_L_GetGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRGeometryTypeCounter
    signature: "OGRGeometryTypeCounter *OGR_L_GetGeometryTypes(OGRLayerH hLayer, int
      iGeomField,\n                                               int nFlags, int
      *pnEntryCount,\n                                               GDALProgressFunc
      pfnProgress,\n                                               void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 6350
      start: 6345
    functionDepth: 0
    functionLinenumber: 6345
    functionLinenumberEnd: 6350
    functionName: '&

      OGRLayer::GetSupportedSRSList(CPL_UNUSED int iGeomField)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer::GetSupportedSRSListRetType
    signature: 'OGRLayer::GetSupportedSRSListRetType &

      OGRLayer::GetSupportedSRSList(CPL_UNUSED int iGeomField)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6374,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6375,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6378,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6379,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6379,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6380,1
    - Dst: static_cast<OGRSpatialReferenceH *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6384,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6385,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6385,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6389,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6390,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - pnCount
    argTypes:
    - OGRLayerH
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 6395
      start: 6371
    functionDepth: 1
    functionLinenumber: 6371
    functionLinenumberEnd: 6395
    functionName: OGR_L_GetSupportedSRSList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - FromHandle
    - get
    - auto::empty
    - ToHandle
    - Reference
    - CPLMalloc
    - VALIDATE_POINTER1
    - auto::size
    - static_cast<OGRSpatialReferenceH *>
    linkageType: ''
    returnType: OGRSpatialReferenceH
    signature: "OGRSpatialReferenceH *OGR_L_GetSupportedSRSList(OGRLayerH hLayer,\n
      \                                               int iGeomField, int *pnCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iGeomField
    - OGRSpatialReference *poSRS
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 6431
      start: 6427
    functionDepth: 0
    functionLinenumber: 6427
    functionLinenumberEnd: 6431
    functionName: OGRLayer::SetActiveSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLayer::SetActiveSRS(CPL_UNUSED int iGeomField,\n                              CPL_UNUSED
      const OGRSpatialReference *poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6467,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6468,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hLayer
    - iGeomField
    - hSRS
    argTypes:
    - OGRLayerH
    - int
    - OGRSpatialReferenceH
    constantsTouched: []
    func_position:
      end: 6470
      start: 6464
    functionDepth: 0
    functionLinenumber: 6464
    functionLinenumberEnd: 6470
    functionName: OGR_L_SetActiveSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGR_L_SetActiveSRS(OGRLayerH hLayer, int iGeomField,\n                          OGRSpatialReferenceH
      hSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6497
    functionName: OGRLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6523,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6524,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp:6524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hLayer
    argTypes:
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 6525
      start: 6521
    functionDepth: 0
    functionLinenumber: 6521
    functionLinenumberEnd: 6525
    functionName: OGR_L_GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayer.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: GDALDatasetH
    signature: GDALDatasetH OGR_L_GetDataset(OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: OGRAbstractProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h
    functionUses: 0
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRAbstractProxiedLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: OGRLayerPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h
    functionUses: 0
    functionsReached:
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRLayerPool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h:90,1
    - Dst: OGRProxiedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 179
    functionName: OGRAbstractProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.h
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRAbstractProxiedLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:35,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:36,1
    - Dst: SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:39,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeomFieldDefn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: OGRGenSQLGeomFieldDefn::OGRGenSQLGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialRef
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetType
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLGeomFieldDefn(OGRGeomFieldDefn *poGeomFieldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: OGRGenSQLGeomFieldDefn::~OGRGenSQLGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLGeomFieldDefn::~OGRGenSQLGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayerHasSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - expr
    - nMinIndexForSpecialField
    argTypes:
    - swq_expr_node*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: OGRGenSQLResultsLayerHasSpecialField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayerHasSpecialField
    linkageType: ''
    returnType: bool
    signature: "bool OGRGenSQLResultsLayerHasSpecialField(swq_expr_node *expr,\n                                                 int
      nMinIndexForSpecialField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:85,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:87,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:92,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:102,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:106,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:107,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:114,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:114,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:115,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:118,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:119,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:120,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:125,1
    - Dst: GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:125,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:136,1
    - Dst: OGRGenSQLResultsLayerHasSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:141,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:150,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:152,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:153,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:153,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:154,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:155,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:157,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:159,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:176,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:179,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:181,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:185,1
    - Dst: ALL_FIELD_INDEX_TO_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:188,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:190,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:199,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:201,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:202,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:202,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:203,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:204,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:210,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:212,1
    - Dst: swq_op_registrar::GetOperator
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:216,1
    - Dst: static_cast<swq_op>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:217,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:219,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:220,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:233,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:235,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:239,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:245,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:252,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:252,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:257,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:257,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:262,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:270,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:270,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:271,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:271,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:275,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:275,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:279,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:279,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:280,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:280,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:287,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:290,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:293,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:296,1
    - Dst: GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:301,1
    - Dst: GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:301,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:303,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:311,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:315,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:319,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:320,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:324,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:328,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:339,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:342,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:345,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:346,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:349,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:352,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:355,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:358,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:361,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:367,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:368,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:372,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:376,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:381,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:386,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:390,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:391,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:393,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:393,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:398,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:403,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:404,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:405,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:407,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:409,1
    - Dst: std::make_unique<OGRGenSQLGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:413,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:415,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:415,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:418,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:425,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:426,1
    - Dst: swq_select*::column_defs::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:428,1
    - Dst: swq_select*::column_defs::back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:430,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:432,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:435,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:438,1
    - Dst: GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:442,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:446,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:448,1
    - Dst: std::make_unique<OGRGenSQLGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:448,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:449,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:454,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:456,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:457,1
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:466,1
    - Dst: const_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:467,1
    - Dst: OGRGenSQLResultsLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:469,1
    - Dst: OGRGenSQLResultsLayer::FindAndSetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:471,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:474,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:474,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 219
    argCount: 5
    argNames:
    - poSrcDSIn
    - pSelectInfo
    - poSpatFilter
    - pszWHEREIn
    - pszDialect
    argTypes:
    - GDALDataset*
    - std::unique_ptr<swq_select>
    - OGRGeometry*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 475
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 475
    functionName: OGRGenSQLResultsLayer::OGRGenSQLResultsLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - GetMetadata
    - OGRLayer::SetAttributeFilter
    - OGRFieldDefn*::GetPrecision
    - ALL_FIELD_INDEX_TO_GEOM_FIELD_INDEX
    - GetGeomFieldDefn
    - OGRGenSQLResultsLayer::FindAndSetIgnoredFields
    - GDALDataset*::GetLayerByName
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - swq_select*::column_defs::back
    - OGRFieldDefn*::GetDomainName
    - Reference
    - IS_GEOM_FIELD_INDEX
    - std::make_unique<OGRGenSQLGeomFieldDefn>
    - reserve
    - SetMetadata
    - CPLError
    - OGRFieldDefn*::GetWidth
    - GetGeomFieldCount
    - OGRGeomFieldDefn::SetType
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRFeatureDefn*::GetGeomFieldDefn
    - CPLStrdup
    - SetGeomType
    - CPLGetLastErrorMsg
    - GetMetadataItem
    - OGRGenSQLResultsLayerHasSpecialField
    - OGRAPISpy_L_SetSpatialFilter
    - OGRAPISpyOpen
    - std::move
    - strlen
    - OGRFieldDefn*::GetSubType
    - OGRSpatialReference*::importFromEPSG
    - AddFieldDefn
    - CPLMalloc
    - swq_select*::column_defs::size
    - GetName
    - emplace_back
    - OGRGenSQLResultsLayer::GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - swq_select*::column_defs::emplace_back
    - c_str
    - GetSpatialRef
    - get
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - CPLSPrintf
    - OGRFieldDefn::SetSubType
    - OGRGeomFieldDefn*::GetType
    - OGRFieldDefn*::GetType
    - OGRFieldDefn::SetName
    - snprintf
    - CPLAssert
    - GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
    - static_cast<char *>
    - SetDescription
    - swq_op_registrar::GetOperator
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - back
    - OGRGeomFieldDefn::SetName
    - OGRSpatialReference::OGRSpatialReference
    - AddGeomFieldDefn
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRGenSQLResultsLayer::ResetReading
    - OGRFieldDefn::SetType
    - EQUAL
    - static_cast<swq_op>
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - OGRGeomFieldDefn::GetSpatialRef
    - memset
    - const_cast<OGRGeometry *>
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::OGRGenSQLResultsLayer(\n    GDALDataset
      *poSrcDSIn, std::unique_ptr<swq_select> &&pSelectInfo,\n    const OGRGeometry
      *poSpatFilter, const char *pszWHEREIn,\n    const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:486,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:487,1
    - Dst: OGRGenSQLResultsLayer::ClearFilters
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:490,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 496
    functionName: OGRGenSQLResultsLayer::~OGRGenSQLResultsLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::ClearFilters
    - Release
    - GetName
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::~OGRGenSQLResultsLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:514,1
    - Dst: OGRGenSQLResultsLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:515,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:516,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:522,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:532,1
    - Dst: OGRLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 547
    functionName: OGRGenSQLResultsLayer::ClearFilters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayer::SetAttributeFilter
    - OGRGenSQLResultsLayer::ResetReading
    - get
    - SetSpatialFilter
    - OGRLayer*::SetAttributeFilter
    - OGRLayer*::SetIgnoredFields
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::ClearFilters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 564
    functionName: OGRGenSQLResultsLayer::MustEvaluateSpatialFilterOnGenSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int OGRGenSQLResultsLayer::MustEvaluateSpatialFilterOnGenSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:572,1
    - Dst: OGRGenSQLResultsLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:574,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:574,1
    - Dst: OGRGenSQLResultsLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:578,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:581,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:585,1
    - Dst: OGRGenSQLResultsLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 589
    functionName: OGRGenSQLResultsLayer::ApplyFiltersToSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::SetAttributeFilter
    - OGRGenSQLResultsLayer::GetLayerDefn
    - c_str
    - empty
    - OGRGenSQLResultsLayer::ResetReading
    - SetSpatialFilter
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::ApplyFiltersToSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:598,1
    - Dst: OGRGenSQLResultsLayer::ApplyFiltersToSource
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: OGRGenSQLResultsLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 3
    functionsReached:
    - get
    - OGRGenSQLResultsLayer::ApplyFiltersToSource
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:623,1
    - Dst: OGRGenSQLResultsLayer::CreateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:634,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:636,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:642,1
    - Dst: OGRGenSQLResultsLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:650,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 655
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 655
    functionName: OGRGenSQLResultsLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - empty
    - get
    - OGRGenSQLResultsLayer::CreateOrderByIndex
    - OGRGenSQLResultsLayer::SetNextByIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGenSQLResultsLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:665,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:671,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 677
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 677
    functionName: OGRGenSQLResultsLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    - get
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGenSQLResultsLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                         bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:686,1
    - Dst: OGRGenSQLResultsLayer::CreateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:688,1
    - Dst: OGRGenSQLResultsLayer::PrepareSummary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:693,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:696,1
    - Dst: OGRGenSQLResultsLayer::MustEvaluateSpatialFilterOnGenSQL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:703,1
    - Dst: OGRGenSQLResultsLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:705,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:709,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:714,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:714,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 718
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 718
    functionName: OGRGenSQLResultsLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - swq_select*::column_summary::empty
    - OGRLayer::GetFeatureCount
    - get
    - OGRGenSQLResultsLayer::CreateOrderByIndex
    - OGRGenSQLResultsLayer::GetFeatureCount
    - min
    - max
    - OGRGenSQLResultsLayer::PrepareSummary
    - OGRGenSQLResultsLayer::MustEvaluateSpatialFilterOnGenSQL
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGenSQLResultsLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:727,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:729,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:733,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:736,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:740,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:740,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:741,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:742,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:751,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:756,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:769,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:775,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:780,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:783,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:786,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:794,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:804,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 36
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 809
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 809
    functionName: OGRGenSQLResultsLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayer::GetLayerDefn
    - empty
    - get
    - std::set::insert
    - auto::GetFieldCount
    - EQUAL
    - IS_GEOM_FIELD_INDEX
    - OGRGenSQLResultsLayer::TestCapability
    - swq_select*::column_defs::size
    - cpl::contains
    linkageType: ''
    returnType: int
    signature: int OGRGenSQLResultsLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:829,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:829,1
    - Dst: OGRGenSQLResultsLayer::ContainGeomSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:838,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - expr
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 843
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 843
    functionName: OGRGenSQLResultsLayer::ContainGeomSpecialField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayer::ContainGeomSpecialField
    - GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int OGRGenSQLResultsLayer::ContainGeomSpecialField(swq_expr_node *expr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:852,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:857,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:858,1
    - Dst: OGRGenSQLResultsLayer::ApplyFiltersToSource
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:864,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:879,1
    - Dst: SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:881,1
    - Dst: SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:886,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:890,1
    - Dst: OGRGenSQLResultsLayer::ContainGeomSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:895,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:898,1
    - Dst: GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:915,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:915,1
    - Dst: OGRGenSQLResultsLayer::ContainGeomSpecialField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:923,1
    - Dst: std::make_unique<TempGeomIgnoredSetter>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:933,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:942,1
    - Dst: OGRGenSQLResultsLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:946,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:947,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:949,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:951,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:952,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:953,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:954,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:955,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:955,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:968,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:978,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:979,1
    - Dst: GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:986,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:988,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:991,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:996,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1003,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1010,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1020,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1027,1
    - Dst: swq_select_summarize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1033,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1040,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1042,1
    - Dst: OGRGenSQLResultsLayer::ClearFilters
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1052,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1060,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1063,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1069,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1071,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1072,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1080,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1081,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1084,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1087,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1109,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1109,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1111,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1117,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1118,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1123,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1137,1
    - Dst: swq_summary::osMin::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1138,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1140,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1154,1
    - Dst: swq_summary::osMax::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1155,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1157,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1165,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1172,1
    - Dst: swq_summary::sum
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1173,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1183,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1184,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1196,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1197,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1204,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 1209
    functionName: OGRGenSQLResultsLayer::PrepareSummary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayer::ContainGeomSpecialField
    - IS_GEOM_FIELD_INDEX
    - GetFieldDefn
    - CPLError
    - static_cast<GIntBig>
    - SetField
    - IsGeometryIgnored
    - swq_summary::sum
    - fmod
    - OGRGenSQLResultsLayer::ClearFilters
    - CPLUnixTimeToYMDHMS
    - std::make_unique<TempGeomIgnoredSetter>
    - OGRLayer*::GetLayerDefn
    - std::make_unique<OGRFeature>
    - OGRGenSQLResultsLayer::GetLayerDefn
    - static_cast<int>
    - static_cast<float>
    - swq_summary::osMin::c_str
    - get
    - OGRGenSQLResultsLayer::ApplyFiltersToSource
    - swq_summary::osMax::c_str
    - OGRGenSQLResultsLayer::GetFeatureCount
    - swq_select*::result_columns
    - SetGeometryIgnored
    - GEOM_FIELD_INDEX_TO_ALL_FIELD_INDEX
    - swq_select_summarize
    - GetGeomFieldRef
    - swq_select*::column_summary::empty
    - CPL_INT64_FITS_ON_INT32
    - SetFID
    - sqrt
    - reset
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: bool
    signature: bool OGRGenSQLResultsLayer::PrepareSummary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VectorOfUniquePtrFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1222,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1225,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1231,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1231,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1233,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1239,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1249,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1251,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1256,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1255,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1261,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1263,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1263,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1268,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1267,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1273,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1275,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1280,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1279,1
    - Dst: static_cast<OGRGeometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1287,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1287,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1294,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1293,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1300,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1302,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1307,1
    - Dst: swq_expr_node::swq_expr_node
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1306,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - op
    - pFeatureList
    argTypes:
    - swq_expr_node*
    - void*
    constantsTouched: []
    func_position:
      end: 1312
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1312
    functionName: OGRMultiFeatureFetcher
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - OGRFeature*::IsFieldSetAndNotNull
    - static_cast<int>
    - OGRFeature*::GetFieldAsInteger64
    - static_cast<OGRGeometry *>
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFieldAsInteger
    - get
    - OGRFeature*::GetFieldAsDouble
    - swq_expr_node::swq_expr_node
    - OGRFeature*::GetFieldAsString
    - static_cast<VectorOfUniquePtrFeature *>
    - CPLAssert
    - CPLError
    - auto::size
    linkageType: ''
    returnType: swq_expr_node
    signature: "swq_expr_node *OGRMultiFeatureFetcher(swq_expr_node *op,\n                                             void
      *pFeatureList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1325,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1331,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1332,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1338,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1342,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1343,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1345,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1346,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1348,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1352,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1353,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1357,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1359,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1369,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1377,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1379,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1385,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1389,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1393,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1405,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1410,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1420,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1421,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1423,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1424,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1426,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1431,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1432,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1432,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1436,1
    - Dst: GetFilterForJoin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1449,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1451,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1454,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1457,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1457,1
    - Dst: swq_expr_node*::UnparseOperationFromUnparsedSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1461,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1467,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 4
    argNames:
    - poExpr
    - poSrcFeat
    - poJoinLayer
    - secondary_table
    argTypes:
    - swq_expr_node*
    - OGRFeature*
    - OGRLayer*
    - int
    constantsTouched: []
    func_position:
      end: 1473
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1473
    functionName: GetFilterForJoin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - swq_expr_node*::UnparseOperationFromUnparsedSubExpr
    - CPLString
    - std::vector::push_back
    - CPLString::empty
    - OGRFeature*::GetDefnRef
    - CPLStrdup
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetRawFieldRef
    - OGRLayer*::GetLayerDefn
    - auto::GetFieldDefn
    - GetFilterForJoin
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - CPLSPrintf
    - CPLAssert
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - auto::GetFieldCount
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetFilterForJoin(swq_expr_node *poExpr, OGRFeature *poSrcFeat,\n
      \                                 OGRLayer *poJoinLayer, int secondary_table)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1483,1
    - Dst: VectorOfUniquePtrFeature::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1491,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1491,1
    - Dst: VectorOfUniquePtrFeature::front
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1492,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1504,1
    - Dst: GetFilterForJoin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1509,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1514,1
    - Dst: VectorOfUniquePtrFeature::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1516,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1522,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1523,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1523,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1524,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1524,1
    - Dst: VectorOfUniquePtrFeature::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1526,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1526,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1532,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1534,1
    - Dst: auto::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1534,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1536,1
    - Dst: auto::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1536,1
    - Dst: auto::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1537,1
    - Dst: auto::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1537,1
    - Dst: auto::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1538,1
    - Dst: auto::GetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1538,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1555,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1563,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1563,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1566,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1572,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1576,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1581,1
    - Dst: std::unique_ptr<swq_expr_node>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1588,1
    - Dst: swq_col_def*::expr::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1589,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1604,1
    - Dst: std::unique_ptr<swq_expr_node>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1625,1
    - Dst: swq_col_def*::expr::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1625,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1647,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1648,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1652,1
    - Dst: cpl::down_cast<OGRGenSQLGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1658,1
    - Dst: auto::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1659,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1664,1
    - Dst: auto::geometry_value::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1664,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1666,1
    - Dst: OGRGenSQLGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1666,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1669,1
    - Dst: OGR_G_ForceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1670,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1670,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1677,1
    - Dst: OGR_G_ForceToPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1678,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1678,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1684,1
    - Dst: OGR_G_ForceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1685,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1685,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1692,1
    - Dst: OGR_G_ForceToLineString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1693,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1693,1
    - Dst: auto::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1697,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1702,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1712,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1733,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1733,1
    - Dst: auto::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1737,1
    - Dst: auto::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1738,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1742,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1748,1
    - Dst: auto::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1750,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1753,1
    - Dst: auto::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1755,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1758,1
    - Dst: auto::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1760,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1769,1
    - Dst: auto::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1771,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1775,1
    - Dst: auto::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1777,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1781,1
    - Dst: auto::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1783,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1790,1
    - Dst: auto::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1792,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1796,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1800,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1802,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1814,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1821,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1835,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1837,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 164
    argCount: 1
    argNames:
    - poSrcFeatUniquePtr
    argTypes:
    - std::unique_ptr<OGRFeature>
    constantsTouched: []
    func_position:
      end: 1844
      start: 1479
    functionDepth: 6
    functionLinenumber: 1479
    functionLinenumberEnd: 1844
    functionName: OGRGenSQLResultsLayer::TranslateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFieldAsDouble
    - auto::SetGeomField
    - auto::GetFieldAsInteger
    - OGRLayer*::GetNextFeature
    - std::unique_ptr<swq_expr_node>
    - auto::SetField
    - OGRLayer*::SetAttributeFilter
    - IS_GEOM_FIELD_INDEX
    - CPLError
    - std::string::c_str
    - OGR_G_ForceToMultiPolygon
    - std::string::empty
    - static_cast<GIntBig>
    - auto::GetFieldAsInteger64
    - cpl::down_cast<OGRGenSQLGeomFieldDefn *>
    - auto::GetNativeMediaType
    - OGRFeature*::GetRawFieldRef
    - auto::SetNativeData
    - auto::GetGeomFieldDefnRef
    - ToHandle
    - VectorOfUniquePtrFeature::front
    - auto::GetGeomFieldRef
    - std::move
    - auto::GetFieldAsString
    - auto::SetNativeMediaType
    - std::unique_ptr::reset
    - auto::IsFieldSetAndNotNull
    - swq_col_def*::expr::Evaluate
    - wkbFlatten
    - std::make_unique<OGRFeature>
    - auto::SetStyleString
    - FromHandle
    - auto::GetStyleString
    - GetFilterForJoin
    - auto::GetFID
    - get
    - OGR_G_ForceToPolygon
    - VectorOfUniquePtrFeature::push_back
    - CPLAssert
    - swq_select*::result_columns
    - OGRLayer*::ResetReading
    - auto::GetRawFieldRef
    - auto::geometry_value::getGeometryType
    - auto::GetDefnRef
    - auto::SetFID
    - OGR_G_ForceToLineString
    - OGRGenSQLGeomFieldDefn*::GetType
    - EQUAL
    - auto::GetNativeData
    - OGR_G_ForceToMultiLineString
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: "std::unique_ptr<OGRFeature> OGRGenSQLResultsLayer::TranslateFeature(\n
      \   std::unique_ptr<OGRFeature> poSrcFeatUniquePtr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1853,1
    - Dst: OGRGenSQLResultsLayer::CreateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1862,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1863,1
    - Dst: OGRGenSQLResultsLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1866,1
    - Dst: OGRGenSQLResultsLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1878,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1889,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1899,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1899,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1902,1
    - Dst: OGRGenSQLResultsLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1902,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1903,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1908,1
    - Dst: OGRGenSQLResultsLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1908,1
    - Dst: OGRGenSQLResultsLayer::TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1914,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1914,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1919,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1919,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1921,1
    - Dst: auto::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1921,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1924,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1850
    functionDepth: 7
    functionLinenumber: 1850
    functionLinenumberEnd: 1929
    functionName: OGRGenSQLResultsLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - OGRGenSQLResultsLayer::GetFeature
    - size
    - static_cast<size_t>
    - empty
    - auto::release
    - OGRGenSQLResultsLayer::TranslateFeature
    - get
    - OGRGenSQLResultsLayer::GetNextFeature
    - Evaluate
    - auto::get
    - OGRGenSQLResultsLayer::CreateOrderByIndex
    - FilterGeometry
    - auto::GetGeomFieldRef
    - std::move
    - std::unique_ptr::reset
    - OGRGenSQLResultsLayer::SetNextByIndex
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGenSQLResultsLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1938,1
    - Dst: OGRGenSQLResultsLayer::CreateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1940,1
    - Dst: OGRGenSQLResultsLayer::PrepareSummary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1947,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1950,1
    - Dst: OGRGenSQLResultsLayer::PrepareSummary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1958,1
    - Dst: swq_select*::column_summary::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1961,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1967,1
    - Dst: swq_summary::oVectorDistinctValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1968,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1975,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1976,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1979,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1983,1
    - Dst: swq_summary::oSetDistinctValues::begin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1986,1
    - Dst: swq_summary::oSetDistinctValues::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1988,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1991,1
    - Dst: swq_summary::oSetDistinctValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1992,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:1995,1
    - Dst: swq_summary::oSetDistinctValues::clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2002,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2006,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2006,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2011,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2012,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2014,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2017,1
    - Dst: Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2019,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2026,1
    - Dst: OGRGenSQLResultsLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2026,1
    - Dst: OGRGenSQLResultsLayer::TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2030,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2030,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2031
      start: 1935
    functionDepth: 7
    functionLinenumber: 1935
    functionLinenumberEnd: 2031
    functionName: OGRGenSQLResultsLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 2
    functionsReached:
    - swq_summary::oVectorDistinctValues::size
    - reserve
    - static_cast<GIntBig>
    - SetField
    - swq_summary::oSetDistinctValues::clear
    - OGRGenSQLResultsLayer::CreateOrderByIndex
    - Clone
    - std::move
    - SetFieldNull
    - OGRGenSQLResultsLayer::GetFeature
    - c_str
    - swq_summary::oSetDistinctValues::end
    - get
    - swq_summary::oSetDistinctValues::begin
    - OGRGenSQLResultsLayer::PrepareSummary
    - size
    - std::unique_ptr<OGRFeature>
    - empty
    - swq_select*::column_summary::empty
    - OGRGenSQLResultsLayer::TranslateFeature
    - SetFID
    - swq_summary::oSetDistinctValues::size
    - push_back
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGenSQLResultsLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2041
    functionName: OGRGenSQLResultsLayer::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRGenSQLResultsLayer::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2050,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2055,1
    - Dst: OGRGenSQLResultsLayer::PrepareSummary
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2047
    functionDepth: 4
    functionLinenumber: 2047
    functionLinenumberEnd: 2067
    functionName: OGRGenSQLResultsLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 5
    functionsReached:
    - swq_select*::result_columns
    - OGRGenSQLResultsLayer::PrepareSummary
    - get
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRGenSQLResultsLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2076,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2088,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2098,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2105,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2107,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2113,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2114,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - pasIndexFields
    - l_nIndexSize
    argTypes:
    - OGRField*
    - size_t
    constantsTouched: []
    func_position:
      end: 2119
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2119
    functionName: OGRGenSQLResultsLayer::FreeIndexFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::GetLayerDefn
    - OGR_RawField_IsNull
    - get
    - CPLAssert
    - OGRFieldDefn*::GetType
    - OGR_RawField_IsUnset
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::FreeIndexFields(OGRField *pasIndexFields,\n
      \                                           size_t l_nIndexSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2129,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2137,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2147,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2152,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2156,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2157,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2165,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2167,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2169,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2170,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2171,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2171,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2172,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2172,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2173,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2174,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2176,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2177,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2179,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - poSrcFeat
    - nOrderItems
    - pasIndexFields
    argTypes:
    - OGRFeature*
    - int
    - OGRField*
    constantsTouched: []
    func_position:
      end: 2182
      start: 2125
    functionDepth: 3
    functionLinenumber: 2125
    functionLinenumberEnd: 2182
    functionName: OGRGenSQLResultsLayer::ReadIndexFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::GetLayerDefn
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - CPLStrdup
    - OGRFeature*::GetFieldAsDouble
    - get
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::GetRawFieldRef
    - CPLAssert
    - OGRFieldDefn*::GetType
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::ReadIndexFields(OGRFeature *poSrcFeat,\n
      \                                           int nOrderItems,\n                                            OGRField
      *pasIndexFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2204,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2214,1
    - Dst: OGRGenSQLResultsLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2216,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2225,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2225,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2226,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2226,1
    - Dst: OGRGenSQLResultsLayer::ReadIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2231,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2231,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2232,1
    - Dst: OGRGenSQLResultsLayer::Compare
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2234,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2234,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2234,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2237,1
    - Dst: OGRGenSQLResultsLayer::FreeIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2238,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2238,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2239,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2239,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2239,1
    - Dst: OGRGenSQLResultsLayer::FreeIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2244,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2244,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2246,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2246,1
    - Dst: OGRGenSQLResultsLayer::FreeIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2248,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2248,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2252,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2264,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2264,1
    - Dst: OGRGenSQLResultsLayer::FreeIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2285,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2285,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2305,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2307,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2312,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2322,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2323,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2327,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2332,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2332,1
    - Dst: OGRGenSQLResultsLayer::ReadIndexFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2339,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2339,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2340,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2342,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2342,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2358,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2363,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2363,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2369,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2370,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2373,1
    - Dst: OGRGenSQLResultsLayer::SortIndexSection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2378,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2378,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2379,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2387,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2389,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2399,1
    - Dst: OGRGenSQLResultsLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2402,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2201
    functionDepth: 4
    functionLinenumber: 2201
    functionLinenumberEnd: 2403
    functionName: OGRGenSQLResultsLayer::CreateOrderByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 4
    functionsReached:
    - OGRGenSQLResultsLayer::SortIndexSection
    - reserve
    - std::vector::push_back
    - CPLError
    - static_cast<GIntBig *>
    - OGRGenSQLResultsLayer::Compare
    - GetFID
    - static_cast<GIntBig>
    - std::vector::reserve
    - resize
    - std::vector::data
    - get
    - static_cast<uint64_t>
    - std::vector::resize
    - data
    - static_cast<size_t>
    - OGRGenSQLResultsLayer::FreeIndexFields
    - OGRGenSQLResultsLayer::ResetReading
    - memset
    - VSIFree
    - push_back
    - OGRGenSQLResultsLayer::ReadIndexFields
    - memcpy
    - VSI_MALLOC_VERBOSE
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::CreateOrderByIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2419,1
    - Dst: OGRGenSQLResultsLayer::SortIndexSection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2427,1
    - Dst: OGRGenSQLResultsLayer::SortIndexSection
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2428,1
    - Dst: OGRGenSQLResultsLayer::Compare
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2439,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2458,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pasIndexFields
    - panMerged
    - nStart
    - nEntries
    argTypes:
    - OGRField*
    - GIntBig*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 2459
      start: 2411
    functionDepth: 1
    functionLinenumber: 2411
    functionLinenumberEnd: 2459
    functionName: OGRGenSQLResultsLayer::SortIndexSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 2
    functionsReached:
    - OGRGenSQLResultsLayer::SortIndexSection
    - get
    - memcpy
    - OGRGenSQLResultsLayer::Compare
    - data
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::SortIndexSection(const OGRField *pasIndexFields,\n
      \                                            GIntBig *panMerged, size_t nStart,\n
      \                                            size_t nEntries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 2472
      start: 2465
    functionDepth: 0
    functionLinenumber: 2465
    functionLinenumberEnd: 2472
    functionName: ComparePrimitive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ComparePrimitive(const T &a, const T &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2482,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2493,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2496,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2497,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2499,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2500,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2505,1
    - Dst: OGR_RawField_IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2506,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2512,1
    - Dst: ComparePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2520,1
    - Dst: ComparePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2524,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2528,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2533,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2537,1
    - Dst: ComparePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2539,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2542,1
    - Dst: ComparePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2544,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2547,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2550,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2552,1
    - Dst: ComparePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2554,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2557,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2558,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2559,1
    - Dst: OGRCompareDate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2562,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - pasFirstTuple
    - pasSecondTuple
    argTypes:
    - OGRField*
    - OGRField*
    constantsTouched: []
    func_position:
      end: 2570
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2570
    functionName: OGRGenSQLResultsLayer::Compare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 2
    functionsReached:
    - OGRGenSQLResultsLayer::GetLayerDefn
    - OGRCompareDate
    - OGR_RawField_IsNull
    - ComparePrimitive
    - get
    - CPLAssert
    - strcmp
    - OGRFieldDefn*::GetType
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: int
    signature: "int OGRGenSQLResultsLayer::Compare(const OGRField *pasFirstTuple,\n
      \                                  const OGRField *pasSecondTuple)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2582,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2588,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2589,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2595,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2596,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2603,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2604,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2610,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2611,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2613,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2617,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2618,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - iTable
    - iColumn
    - hSet
    argTypes:
    - int
    - int
    - CPLHashSet*
    constantsTouched: []
    func_position:
      end: 2622
      start: 2576
    functionDepth: 1
    functionLinenumber: 2576
    functionLinenumberEnd: 2622
    functionName: OGRGenSQLResultsLayer::AddFieldDefnToSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - CPLHashSetInsert
    - auto::GetFieldDefn
    - auto::GetGeomFieldDefn
    - IS_GEOM_FIELD_INDEX
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::AddFieldDefnToSet(int iTable, int iColumn,\n
      \                                             CPLHashSet *hSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayer::AddFieldDefnToSet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2633,1
    - Dst: OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - expr
    - hSet
    argTypes:
    - swq_expr_node*
    - CPLHashSet*
    constantsTouched: []
    func_position:
      end: 2640
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2640
    functionName: OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
    - OGRGenSQLResultsLayer::AddFieldDefnToSet
    linkageType: ''
    returnType: void
    signature: "void OGRGenSQLResultsLayer::ExploreExprForIgnoredFields(swq_expr_node
      *expr,\n                                                        CPLHashSet *hSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2648,1
    - Dst: CPLHashSetNew
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2650,1
    - Dst: swq_select*::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2656,1
    - Dst: OGRGenSQLResultsLayer::AddFieldDefnToSet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2659,1
    - Dst: OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2661,1
    - Dst: OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2665,1
    - Dst: OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2670,1
    - Dst: OGRGenSQLResultsLayer::AddFieldDefnToSet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2676,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2686,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2691,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2692,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2695,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2695,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2704,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2705,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2708,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2708,1
    - Dst: OGRLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2714,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2715,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2716,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2719,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2646
    functionDepth: 3
    functionLinenumber: 2646
    functionLinenumberEnd: 2720
    functionName: OGRGenSQLResultsLayer::FindAndSetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - const_cast<const char **>
    - OGRGenSQLResultsLayer::AddFieldDefnToSet
    - OGRFeatureDefn*::GetGeomFieldDefn
    - CPLHashSetDestroy
    - OGRFieldDefn*::GetNameRef
    - get
    - OGRGenSQLResultsLayer::ExploreExprForIgnoredFields
    - CSLAddString
    - OGRGeomFieldDefn*::GetNameRef
    - CSLDestroy
    - swq_select*::result_columns
    - CPLHashSetLookup
    - OGRLayer*::GetLayerDefn
    - OGRFeatureDefn*::GetFieldDefn
    - OGRLayer*::SetIgnoredFields
    - CPLHashSetNew
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::FindAndSetIgnoredFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2726
    functionDepth: 0
    functionLinenumber: 2726
    functionLinenumberEnd: 2730
    functionName: OGRGenSQLResultsLayer::InvalidateOrderByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGenSQLResultsLayer::InvalidateOrderByIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2741,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2743,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2746,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2750,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2751,1
    - Dst: OGRGenSQLResultsLayer::InvalidateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2755,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2756,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2756,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - pszAttributeFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2758
      start: 2736
    functionDepth: 2
    functionLinenumber: 2736
    functionLinenumberEnd: 2758
    functionName: OGRGenSQLResultsLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - empty
    - OGRLayer::SetAttributeFilter
    - OGRGenSQLResultsLayer::InvalidateOrderByIndex
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGenSQLResultsLayer::SetAttributeFilter(const char *pszAttributeFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayer::InvalidateOrderByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2767,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2769
      start: 2764
    functionDepth: 2
    functionLinenumber: 2764
    functionLinenumberEnd: 2769
    functionName: OGRGenSQLResultsLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::InvalidateOrderByIndex
    - OGRLayer::ISetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGenSQLResultsLayer::ISetSpatialFilter(int iGeomField,\n
      \                                               const OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2800,1
    - Dst: OGRGenSQLResultsLayerArrowStreamPrivateData*::psSrcLayerStream::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2805,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2807,1
    - Dst: struct ArrowArrayStream*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ArrowArrayStream*
    constantsTouched: []
    func_position:
      end: 2815
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2815
    functionName: Release
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 93
    functionsReached:
    - struct ArrowArrayStream*::release
    - static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
    - CPLFree
    - OGRGenSQLResultsLayerArrowStreamPrivateData*::psSrcLayerStream::release
    linkageType: ''
    returnType: void
    signature: void Release(struct ArrowArrayStream *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2822,1
    - Dst: dynamic_cast<OGRGenSQLResultsLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2828,1
    - Dst: auto::GetArrowSchemaForwarded
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 2834
      start: 2819
    functionDepth: 1
    functionLinenumber: 2819
    functionLinenumberEnd: 2834
    functionName: GetSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
    - dynamic_cast<OGRGenSQLResultsLayer *>
    - auto::GetArrowSchemaForwarded
    linkageType: ''
    returnType: int
    signature: int GetSchema(struct ArrowArrayStream *self, struct ArrowSchema *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2841,1
    - Dst: dynamic_cast<OGRGenSQLResultsLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2843,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2847,1
    - Dst: auto::GetNextArrowArrayForwarded
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 2852
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2852
    functionName: GetNext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
    - dynamic_cast<OGRGenSQLResultsLayer *>
    - auto::GetNextArrowArrayForwarded
    linkageType: ''
    returnType: int
    signature: int GetNext(struct ArrowArrayStream *self, struct ArrowArray *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2862,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2863,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2863,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2866,1
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2867,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2867,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2873,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2882,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2883,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2884,1
    - Dst: CPLStringList::FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2884,1
    - Dst: static_cast<struct ArrowArrayStream *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2890,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2891,1
    - Dst: OGRGenSQLResultsLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2892,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2892,1
    - Dst: OGRGenSQLResultsLayerArrowStreamPrivateData::OGRGenSQLResultsLayerArrowStreamPrivateData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2895,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2896,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2912,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2913,1
    - Dst: struct ArrowArrayStream*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2915,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2920
      start: 2859
    functionDepth: 3
    functionLinenumber: 2859
    functionLinenumberEnd: 2920
    functionName: OGRGenSQLResultsLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - struct ArrowArrayStream*::release
    - CPLGetConfigOption
    - CPLStringList::List
    - CPLAtoGIntBig
    - OGRGenSQLResultsLayer::GetArrowStream
    - static_cast<struct ArrowArrayStream *>
    - CPLMalloc
    - OGRLayer::GetArrowStream
    - CPLTestBool
    - get
    - CPLSPrintf
    - min
    - CPLAssert
    - CPLStringList::SetNameValue
    - OGRGenSQLResultsLayer::TestCapability
    - CPLFree
    - auto::release
    - OGRGenSQLResultsLayerArrowStreamPrivateData::OGRGenSQLResultsLayerArrowStreamPrivateData
    - CPLStringList::FetchNameValueDef
    linkageType: ''
    returnType: bool
    signature: "bool OGRGenSQLResultsLayer::GetArrowStream(struct ArrowArrayStream
      *out_stream,\n                                           CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2929,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2931,1
    - Dst: OGRLayer::GetArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2933,1
    - Dst: OGRGenSQLResultsLayer::GetArrowSchemaForwarded
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - out_schema
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 2937
      start: 2926
    functionDepth: 3
    functionLinenumber: 2926
    functionLinenumberEnd: 2937
    functionName: OGRGenSQLResultsLayer::GetArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetArrowSchema
    - OGRGenSQLResultsLayer::TestCapability
    - OGRGenSQLResultsLayer::GetArrowSchemaForwarded
    - FetchNameValue
    linkageType: ''
    returnType: int
    signature: "int OGRGenSQLResultsLayer::GetArrowSchema(struct ArrowArrayStream
      *stream,\n                                          struct ArrowSchema *out_schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2946,1
    - Dst: static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2948,1
    - Dst: OGRCloneArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2955,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2957,1
    - Dst: swq_select*::column_defs::size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2962,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2966,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2967,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2968,1
    - Dst: OGRGenSQLResultsLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2971,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2972,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2975,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2978,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2980,1
    - Dst: IS_GEOM_FIELD_INDEX
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2983,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2990,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:2992,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3000,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3001,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3003,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3003,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3005,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3005,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3009,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - stream
    - out_schema
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 3013
      start: 2943
    functionDepth: 2
    functionLinenumber: 2943
    functionLinenumberEnd: 3013
    functionName: OGRGenSQLResultsLayer::GetArrowSchemaForwarded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - std::map::end
    - IS_GEOM_FIELD_INDEX
    - CPLStrdup
    - auto::GetGeomFieldDefn
    - static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
    - OGRCloneArrowSchema
    - swq_select*::column_defs::size
    - OGRGenSQLResultsLayer::GetLayerDefn
    - auto::GetFieldDefn
    - get
    - std::map::find
    - CPLAssert
    - auto::GetNameRef
    - CPLFree
    - auto::second::c_str
    - const_cast<char *>
    - auto::GetFieldCount
    - memcpy
    - struct ArrowSchema*::release
    linkageType: ''
    returnType: int
    signature: "int OGRGenSQLResultsLayer::GetArrowSchemaForwarded(\n    struct ArrowArrayStream
      *stream, struct ArrowSchema *out_schema) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3022,1
    - Dst: OGRGenSQLResultsLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3024,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3026,1
    - Dst: OGRGenSQLResultsLayer::GetNextArrowArrayForwarded
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 3030
      start: 3019
    functionDepth: 3
    functionLinenumber: 3019
    functionLinenumberEnd: 3030
    functionName: OGRGenSQLResultsLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 0
    functionsReached:
    - OGRGenSQLResultsLayer::GetNextArrowArrayForwarded
    - OGRGenSQLResultsLayer::TestCapability
    - OGRLayer::GetNextArrowArray
    - FetchNameValue
    linkageType: ''
    returnType: int
    signature: "int OGRGenSQLResultsLayer::GetNextArrowArray(struct ArrowArrayStream
      *stream,\n                                             struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3039,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3042,1
    - Dst: static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp:3047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 3067
      start: 3036
    functionDepth: 0
    functionLinenumber: 3036
    functionLinenumberEnd: 3067
    functionName: OGRGenSQLResultsLayer::GetNextArrowArrayForwarded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogr_gensql.cpp
    functionUses: 1
    functionsReached:
    - memset
    - get
    - static_cast<OGRGenSQLResultsLayerArrowStreamPrivateData *>
    linkageType: ''
    returnType: int
    signature: "int OGRGenSQLResultsLayer::GetNextArrowArrayForwarded(\n    struct
      ArrowArrayStream *stream, struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:30,1
    - Dst: GetTargetCS
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:30,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:32,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:33,1
    - Dst: OGRLayer*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:33,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - poDecoratedLayer
    - iGeomField
    - bTakeOwnership
    - poCT
    - poReversedCT
    argTypes:
    - OGRLayer*
    - int
    - int
    - OGRCoordinateTransformation*
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: OGRWarpedLayer::OGRWarpedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - CPLAssert
    - Reference
    - OGRLayer*::GetDescription
    - GetTargetCS
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRWarpedLayer::OGRWarpedLayer(OGRLayer *poDecoratedLayer, int
      iGeomField,\n                               int bTakeOwnership,\n                               OGRCoordinateTransformation
      *poCT,\n                               OGRCoordinateTransformation *poReversedCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:48,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: OGRWarpedLayer::~OGRWarpedLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRWarpedLayer::~OGRWarpedLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:64,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:65,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:71,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:77,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:78,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:78,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:79,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:79,1
    - Dst: SetSpatialFilterRect
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:81,1
    - Dst: OGRWarpedLayer::ReprojectEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:85,1
    - Dst: SetSpatialFilterRect
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:87,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:93,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 102
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 102
    functionName: OGRWarpedLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWarpedLayer::ReprojectEnvelope
    - ResetReading
    - SetSpatialFilterRect
    - SetSpatialFilter
    - std::isinf
    - InstallFilter
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWarpedLayer::ISetSpatialFilter(int iGeomField,\n                                         const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::unique_ptr<OGRFeature>>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:112,1
    - Dst: OGRWarpedLayer::SrcFeatureToWarpedFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:113,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSrcFeature
    - apoOutFeatures
    argTypes:
    - std::unique_ptr<OGRFeature>
    - std::vector<std::unique_ptr<OGRFeature>>
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: OGRWarpedLayer::TranslateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<OGRFeature>>::push_back
    - std::move
    - OGRWarpedLayer::SrcFeatureToWarpedFeature
    linkageType: ''
    returnType: void
    signature: "void OGRWarpedLayer::TranslateFeature(\n    std::unique_ptr<OGRFeature>
      poSrcFeature,\n    std::vector<std::unique_ptr<OGRFeature>> &apoOutFeatures)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>::SetFDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:125,1
    - Dst: OGRWarpedLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:125,1
    - Dst: std::unique_ptr<OGRFeature>::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:127,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:128,1
    - Dst: std::unique_ptr<OGRFeature>::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - std::unique_ptr<OGRFeature>
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: OGRWarpedLayer::SrcFeatureToWarpedFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRWarpedLayer::GetLayerDefn
    - std::unique_ptr<OGRFeature>::SetFDefnUnsafe
    - std::unique_ptr<OGRFeature>::StealGeometry
    - OGRGeometry*::transform
    - std::unique_ptr<OGRFeature>::GetGeomFieldRef
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: std::unique_ptr<OGRFeature> OGRWarpedLayer::SrcFeatureToWarpedFeature(std::unique_ptr<OGRFeature>
      poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>::SetFDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:145,1
    - Dst: OGRWarpedLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:145,1
    - Dst: std::unique_ptr<OGRFeature>::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:147,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - std::unique_ptr<OGRFeature>
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: OGRWarpedLayer::WarpedFeatureToSrcFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRFeature>::GetGeomFieldRef
    - OGRGeometry*::transform
    - OGRWarpedLayer::GetLayerDefn
    - std::unique_ptr<OGRFeature>::SetFDefnUnsafe
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: std::unique_ptr<OGRFeature> OGRWarpedLayer::WarpedFeatureToSrcFeature(std::unique_ptr<OGRFeature>
      poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:166,1
    - Dst: OGRWarpedLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:166,1
    - Dst: OGRWarpedLayer::SrcFeatureToWarpedFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:170,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:170,1
    - Dst: auto::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:171,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:172,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: OGRWarpedLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRFeature>
    - auto::release
    - FilterGeometry
    - auto::GetGeomFieldRef
    - std::move
    - OGRWarpedLayer::SrcFeatureToWarpedFeature
    - OGRWarpedLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWarpedLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:188,1
    - Dst: OGRWarpedLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:188,1
    - Dst: OGRWarpedLayer::SrcFeatureToWarpedFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:191,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:191,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: OGRWarpedLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRFeature>
    - auto::release
    - OGRWarpedLayer::GetFeature
    - std::move
    - OGRWarpedLayer::SrcFeatureToWarpedFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWarpedLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::WarpedFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:202,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:203,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:203,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:207,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: OGRWarpedLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - std::unique_ptr<OGRFeature>
    - SetFeature
    - auto::get
    - OGRWarpedLayer::WarpedFeatureToSrcFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWarpedLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::WarpedFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:216,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:217,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:217,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:221,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: OGRWarpedLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - std::unique_ptr<OGRFeature>
    - auto::get
    - OGRWarpedLayer::WarpedFeatureToSrcFeature
    - CreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWarpedLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::WarpedFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:230,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:231,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:231,1
    - Dst: UpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:235,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: OGRWarpedLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - UpsertFeature
    - std::unique_ptr<OGRFeature>
    - auto::get
    - OGRWarpedLayer::WarpedFeatureToSrcFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWarpedLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::WarpedFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:249,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:250,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:250,1
    - Dst: UpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:254,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: OGRWarpedLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - std::unique_ptr<OGRFeature>
    - UpdateFeature
    - auto::get
    - OGRWarpedLayer::WarpedFeatureToSrcFeature
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWarpedLayer::IUpdateFeature(OGRFeature *poFeature,\n                                      int
      nUpdatedFieldsCount,\n                                      const int *panUpdatedFieldsIdx,\n
      \                                     int nUpdatedGeomFieldsCount,\n                                      const
      int *panUpdatedGeomFieldsIdx,\n                                      bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:268,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:269,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:270,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: OGRWarpedLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 3
    functionsReached:
    - Reference
    - GetGeomFieldCount
    - GetGeomFieldDefn
    - OGRWarpedLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRWarpedLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: OGRWarpedLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRWarpedLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWarpedLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:295,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: OGRWarpedLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRWarpedLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRWarpedLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:309,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:317,1
    - Dst: OGRWarpedLayer::ReprojectEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:321,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 331
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 331
    functionName: OGRWarpedLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    - GetExtent
    - OGRWarpedLayer::ReprojectEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWarpedLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                 bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - poCT
    - dfX
    - dfY
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRCoordinateTransformation*
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 358
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 358
    functionName: TransformAndUpdateBBAndReturnX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformation*::Transform
    linkageType: ''
    returnType: double
    signature: "double TransformAndUpdateBBAndReturnX(OGRCoordinateTransformation
      *poCT,\n                                             double dfX, double dfY,\n
      \                                            double &dfMinX, double &dfMinY,\n
      \                                            double &dfMaxX, double &dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindXDiscontinuity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:383,1
    - Dst: FindXDiscontinuity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 8
    argNames:
    - poCT
    - dfX1
    - dfX2
    - dfY
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - OGRCoordinateTransformation*
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: FindXDiscontinuity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 1
    functionsReached:
    - FindXDiscontinuity
    linkageType: ''
    returnType: void
    signature: "void FindXDiscontinuity(OGRCoordinateTransformation *poCT, double
      dfX1,\n                               double dfX2, double dfY, double &dfMinX,\n
      \                              double &dfMinY, double &dfMaxX, double &dfMaxY,\n
      \                              int nRecLevel = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:409,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:410,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:411,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:426,1
    - Dst: FindXDiscontinuity
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:472,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:497,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:498,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:499,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - psEnvelope
    - poCT
    argTypes:
    - OGREnvelope*
    - OGRCoordinateTransformation*
    constantsTouched: []
    func_position:
      end: 502
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 502
    functionName: OGRWarpedLayer::ReprojectEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 2
    functionsReached:
    - FindXDiscontinuity
    - OGRCoordinateTransformation*::Transform
    - VSIFree
    linkageType: ''
    returnType: int
    signature: "int OGRWarpedLayer::ReprojectEnvelope(OGREnvelope *psEnvelope,\n                                      OGRCoordinateTransformation
      *poCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:510,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:510,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:518,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:520,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:525,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - pszCapability
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 532
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 532
    functionName: OGRWarpedLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - IsInit
    linkageType: ''
    returnType: int
    signature: int OGRWarpedLayer::TestCapability(const char *pszCapability)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: OGRWarpedLayer::SetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRWarpedLayer::SetExtent(double dfXMin, double dfYMin, double
      dfXMax,\n                               double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: OGRWarpedLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrwarpedlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGRWarpedLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                   CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: OGRSFDriverRegistrar::OGRSFDriverRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSFDriverRegistrar::OGRSFDriverRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: OGRSFDriverRegistrar::~OGRSFDriverRegistrar()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSFDriverRegistrar::~OGRSFDriverRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriverRegistrar::OGRSFDriverRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: OGRSFDriverRegistrar::GetRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - OGRSFDriverRegistrar::OGRSFDriverRegistrar
    linkageType: ''
    returnType: OGRSFDriverRegistrar
    signature: OGRSFDriverRegistrar *OGRSFDriverRegistrar::GetRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDestroyDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: OGRCleanupAll
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALDestroyDriverManager
    linkageType: ''
    returnType: void
    signature: void OGRCleanupAll()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:77,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:80,1
    - Dst: reinterpret_cast<OGRSFDriverH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:84,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:84,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pszName
    - bUpdate
    - pahDriverList
    argTypes:
    - char*
    - int
    - OGRSFDriverH*
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: OGROpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenEx
    - reinterpret_cast<OGRSFDriverH>
    - VALIDATE_POINTER1
    - GDALGetDatasetDriver
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: "OGRDataSourceH OGROpen(const char *pszName, int bUpdate,\n                       OGRSFDriverH
      *pahDriverList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:97,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:99,1
    - Dst: reinterpret_cast<OGRSFDriverH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:105,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:105,1
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pszName
    - bUpdate
    - pahDriverList
    argTypes:
    - char*
    - int
    - OGRSFDriverH*
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: OGROpenShared
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenEx
    - reinterpret_cast<OGRSFDriverH>
    - VALIDATE_POINTER1
    - GDALGetDatasetDriver
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: "OGRDataSourceH OGROpenShared(const char *pszName, int bUpdate,\n                             OGRSFDriverH
      *pahDriverList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:116,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:118,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: OGRReleaseDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALDatasetH>
    - VALIDATE_POINTER1
    - GDALClose
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRReleaseDataSource(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: OGRSFDriverRegistrar::GetOpenDSCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int OGRSFDriverRegistrar::GetOpenDSCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: OGRGetOpenDSCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - OGRSFDriverRegistrar::GetRegistrar
    linkageType: ''
    returnType: int
    signature: int OGRGetOpenDSCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: OGRSFDriverRegistrar::GetOpenDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRDataSource
    signature: OGRDataSource *OGRSFDriverRegistrar::GetOpenDS(CPL_UNUSED int iDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRDataSourceH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:160,1
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iDS
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: OGRGetOpenDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - OGRSFDriverRegistrar::GetRegistrar
    - reinterpret_cast<OGRDataSourceH>
    linkageType: ''
    returnType: OGRDataSourceH
    signature: OGRDataSourceH OGRGetOpenDS(int iDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:171,1
    - Dst: reinterpret_cast<OGRSFDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:172,1
    - Dst: OGRDataSource*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:175,1
    - Dst: OGRDataSource*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poDriver
    - poOpenInfo
    argTypes:
    - GDALDriver*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: OGRSFDriverRegistrar::OpenWithDriverArg
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriver *>
    - OGRDataSource*::GetName
    - reinterpret_cast<OGRDataSource *>
    - OGRDataSource*::SetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRSFDriverRegistrar::OpenWithDriverArg(GDALDriver *poDriver,\n
      \                                                    GDALOpenInfo *poOpenInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:187,1
    - Dst: reinterpret_cast<OGRSFDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:188,1
    - Dst: OGRDataSource*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:190,1
    - Dst: OGRDataSource*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:191,1
    - Dst: OGRDataSource*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - poDriver
    - pszName
    - papszOptions
    argTypes:
    - GDALDriver*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: OGRSFDriverRegistrar::CreateVectorOnly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriver *>
    - OGRDataSource*::GetName
    - reinterpret_cast<OGRDataSource *>
    - OGRDataSource*::SetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRSFDriverRegistrar::CreateVectorOnly(GDALDriver *poDriver,\n
      \                                                   const char *pszName,\n                                                    char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSFDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poDriver
    - pszName
    argTypes:
    - GDALDriver*
    - char*
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: OGRSFDriverRegistrar::DeleteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriver *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRSFDriverRegistrar::DeleteDataSource(GDALDriver *poDriver,\n
      \                                             const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:217,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:217,1
    - Dst: OGRSFDriver*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:217,1
    - Dst: OGRSFDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:220,1
    - Dst: OGRSFDriver*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:220,1
    - Dst: OGRSFDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:221,1
    - Dst: OGRSFDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:223,1
    - Dst: OGRSFDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:224,1
    - Dst: OGRSFDriver*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:224,1
    - Dst: OGRSFDriver*::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:228,1
    - Dst: OGRSFDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:230,1
    - Dst: OGRSFDriver*::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:233,1
    - Dst: OGRSFDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:238,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:240,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:244,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:246,1
    - Dst: OGRSFDriver*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - OGRSFDriver*
    constantsTouched: []
    func_position:
      end: 252
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 252
    functionName: OGRSFDriverRegistrar::RegisterDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALGetDriverByName
    - FromHandle
    - CPLError
    - OGRSFDriver*::TestCapability
    - OGRSFDriver*::SetDescription
    - OGRSFDriver*::SetMetadataItem
    - GetGDALDriverManager
    - OGRSFDriver*::GetMetadataItem
    - OGRSFDriver*::GetName
    linkageType: ''
    returnType: void
    signature: void OGRSFDriverRegistrar::RegisterDriver(OGRSFDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:261,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:263,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDriver
    argTypes:
    - OGRSFDriverH
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: OGRRegisterDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void OGRRegisterDriver(OGRSFDriverH hDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:273,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:275,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDriver
    argTypes:
    - OGRSFDriverH
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: OGRDeregisterDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void OGRDeregisterDriver(OGRSFDriverH hDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:286,1
    - Dst: GDALDriverManager*::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:291,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: OGRSFDriverRegistrar::GetDriverCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALDriverManager*::GetDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: int
    signature: int OGRSFDriverRegistrar::GetDriverCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: OGRGetDriverCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - OGRSFDriverRegistrar::GetRegistrar
    linkageType: ''
    returnType: int
    signature: int OGRGetDriverCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:316,1
    - Dst: GDALDriverManager*::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:321,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iDriver
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 330
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 330
    functionName: OGRSFDriverRegistrar::GetDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALDriverManager*::GetDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: GDALDriver
    signature: GDALDriver *OGRSFDriverRegistrar::GetDriver(int iDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSFDriverH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:339,1
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iDriver
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: OGRGetDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriverH>
    - OGRSFDriverRegistrar::GetRegistrar
    linkageType: ''
    returnType: OGRSFDriverH
    signature: OGRSFDriverH OGRGetDriver(int iDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:350,1
    - Dst: GDALDriverManager*::GetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:352,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:352,1
    - Dst: GDALDriverManager*::GetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:354,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: OGRSFDriverRegistrar::GetDriverByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALDriverManager*::GetDriverByName
    - CPLSPrintf
    - GetGDALDriverManager
    linkageType: ''
    returnType: GDALDriver
    signature: GDALDriver *OGRSFDriverRegistrar::GetDriverByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:368,1
    - Dst: reinterpret_cast<OGRSFDriverH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:370,1
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: OGRGetDriverByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriverH>
    - OGRSFDriverRegistrar::GetRegistrar
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSFDriverH
    signature: OGRSFDriverH OGRGetDriverByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: OGRLayerWithTranslateFeature::~OGRLayerWithTranslateFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerwithtranslatefeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayerWithTranslateFeature::~OGRLayerWithTranslateFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGREditableLayerSynchronizer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: IOGREditableLayerSynchronizer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.h
    functionUses: 1
    functionsReached:
    - IOGREditableLayerSynchronizer
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL IOGREditableLayerSynchronizer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.h:32,1
    - Dst: OGREditableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 121
    functionName: OGRLayerDecorator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.h
    functionUses: 0
    functionsReached:
    - OGREditableLayer
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRLayerDecorator
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: OGRDataSource::OGRDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDataSource::OGRDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: OGRDataSource::~OGRDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDataSource::~OGRDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRDataSource*
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: OGRDataSource::DestroyDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRDataSource::DestroyDataSource(OGRDataSource *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:52,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: OGR_DS_Destroy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALDatasetH>
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGR_DS_Destroy(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:63,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDataSource
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: OGR_DS_Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_Reference(OGRDataSourceH hDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:75,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDataSource
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: OGR_DS_Dereference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_Dereference(OGRDataSourceH hDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:87,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDataSource
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: OGR_DS_GetRefCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_GetRefCount(OGRDataSourceH hDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:99,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDataSource
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: OGR_DS_GetSummaryRefCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_GetSummaryRefCount(OGRDataSourceH hDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:117,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:122,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:122,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:123,1
    - Dst: OGRAPISpy_DS_CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - hDS
    - pszName
    - hSpatialRef
    - eType
    - papszOptions
    argTypes:
    - OGRDataSourceH
    - char*
    - OGRSpatialReferenceH
    - OGRwkbGeometryType
    - char**
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: OGR_DS_CreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_DS_CreateLayer
    - FromHandle
    - ToHandle
    - VALIDATE_POINTER1
    - CPLError
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGR_DS_CreateLayer(OGRDataSourceH hDS, const char *pszName,\n
      \                            OGRSpatialReferenceH hSpatialRef,\n                             OGRwkbGeometryType
      eType, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:143,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:144,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:145,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:147,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:147,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hDS
    - hSrcLayer
    - pszNewName
    - papszOptions
    argTypes:
    - OGRDataSourceH
    - OGRLayerH
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: OGR_DS_CopyLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGR_DS_CopyLayer(OGRDataSourceH hDS, OGRLayerH hSrcLayer,\n
      \                          const char *pszNewName, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:158,1
    - Dst: OGRAPISpy_DS_DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:162,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:162,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - iLayer
    argTypes:
    - OGRDataSourceH
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: OGR_DS_DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_DS_DeleteLayer
    - reinterpret_cast<GDALDatasetH>
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_DS_DeleteLayer(OGRDataSourceH hDS, int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:177,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:179,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:180,1
    - Dst: OGRAPISpy_DS_GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:184,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - pszLayerName
    argTypes:
    - OGRDataSourceH
    - char*
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: OGR_DS_GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - ToHandle
    - reinterpret_cast<GDALDatasetH>
    - VALIDATE_POINTER1
    - OGRAPISpy_DS_GetLayerByName
    linkageType: ''
    returnType: OGRLayerH
    signature: OGRLayerH OGR_DS_GetLayerByName(OGRDataSourceH hDS, const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:199,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:202,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:202,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:203,1
    - Dst: OGRAPISpy_DS_ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:207,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - hDS
    - pszStatement
    - hSpatialFilter
    - pszDialect
    argTypes:
    - OGRDataSourceH
    - char*
    - OGRGeometryH
    - char*
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: OGR_DS_ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGRAPISpy_DS_ExecuteSQL
    - ToHandle
    - reinterpret_cast<GDALDatasetH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRLayerH
    signature: "OGRLayerH OGR_DS_ExecuteSQL(OGRDataSourceH hDS, const char *pszStatement,\n
      \                           OGRGeometryH hSpatialFilter, const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:222,1
    - Dst: OGRAPISpy_DS_ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:226,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:226,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:230,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - hLayer
    argTypes:
    - OGRDataSourceH
    - OGRLayerH
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: OGR_DS_ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - OGRAPISpy_DS_ReleaseResultSet
    - reinterpret_cast<GDALDatasetH>
    - FromHandle
    linkageType: ''
    returnType: void
    signature: void OGR_DS_ReleaseResultSet(OGRDataSourceH hDS, OGRLayerH hLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:241,1
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:242,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hDS
    - pszCapability
    argTypes:
    - OGRDataSourceH
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: OGR_DS_TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_TestCapability(OGRDataSourceH hDS, const char *pszCapability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:254,1
    - Dst: OGRAPISpy_DS_GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:258,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:258,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 262
    functionName: OGR_DS_GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALDatasetH>
    - OGRAPISpy_DS_GetLayerCount
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: int
    signature: int OGR_DS_GetLayerCount(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:271,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:274,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:274,1
    - Dst: OGRAPISpy_DS_GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:278,1
    - Dst: reinterpret_cast<GDALDatasetH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hDS
    - iLayer
    argTypes:
    - OGRDataSourceH
    - int
    constantsTouched: []
    func_position:
      end: 283
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 283
    functionName: OGR_DS_GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_DS_GetLayer
    - FromHandle
    - ToHandle
    - reinterpret_cast<GDALDatasetH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRLayerH
    signature: OGRLayerH OGR_DS_GetLayer(OGRDataSourceH hDS, int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:292,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: OGR_DS_GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: char
    signature: char *OGR_DS_GetName(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:304,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:306,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: OGR_DS_SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetLastErrorType
    - FromHandle
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGR_DS_SyncToDisk(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:320,1
    - Dst: reinterpret_cast<OGRSFDriverH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:322,1
    - Dst: reinterpret_cast<OGRDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: OGR_DS_GetDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSFDriverH>
    - reinterpret_cast<OGRDataSource *>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRSFDriverH
    signature: OGRSFDriverH OGR_DS_GetDriver(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:333,1
    - Dst: reinterpret_cast<OGRStyleTableH>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:335,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hDS
    argTypes:
    - OGRDataSourceH
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: OGR_DS_GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - reinterpret_cast<OGRStyleTableH>
    - VALIDATE_POINTER1
    linkageType: ''
    returnType: OGRStyleTableH
    signature: OGRStyleTableH OGR_DS_GetStyleTable(OGRDataSourceH hDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:347,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:349,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hDS
    - hStyleTable
    argTypes:
    - OGRDataSourceH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: OGR_DS_SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: "void OGR_DS_SetStyleTableDirectly(OGRDataSourceH hDS,\n                                  OGRStyleTableH
      hStyleTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:360,1
    - Dst: VALIDATE_POINTER0
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:361,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:363,1
    - Dst: reinterpret_cast<OGRStyleTable *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hDS
    - hStyleTable
    argTypes:
    - OGRDataSourceH
    - OGRStyleTableH
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: OGR_DS_SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
    functionUses: 0
    functionsReached:
    - VALIDATE_POINTER0
    - FromHandle
    - reinterpret_cast<OGRStyleTable *>
    linkageType: ''
    returnType: void
    signature: void OGR_DS_SetStyleTable(OGRDataSourceH hDS, OGRStyleTableH hStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:61,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:62,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:67,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:70,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:75,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:75,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:83,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:84,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:85,1
    - Dst: static_cast<int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:91,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:91,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:98,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:98,1
    - Dst: static_cast<int16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:105,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:105,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:112,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:113,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:119,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:119,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:126,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:127,1
    - Dst: static_cast<int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:133,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:133,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:140,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:141,1
    - Dst: static_cast<float *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:147,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:147,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:154,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:154,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:167,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:167,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:168,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:168,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:180,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:182,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:183,1
    - Dst: static_cast<int64_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:192,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:192,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:200,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:200,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:205,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:205,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:208,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:224,1
    - Dst: VSIFreeAligned
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:225,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:225,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:229,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:229,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:231,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:238,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:238,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:257,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h:258,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 263
    functionName: OGRArrowArrayHelper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ograrrowarrayhelper.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t *>
    - static_cast<uint64_t *>
    - static_cast<int16_t *>
    - static_cast<uint32_t>
    - struct ArrowArray*::release
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - CPLError
    - simple_max
    - static_cast<int8_t *>
    - static_cast<float *>
    - static_cast<double *>
    - const_cast<void *>
    - static_cast<uint16_t *>
    - static_cast<int>
    - static_cast<int32_t *>
    - static_cast<GByte *>
    - static_cast<uint8_t *>
    - VSIFreeAligned
    - static_cast<int64_t *>
    - static_cast<uint8_t>
    - CPLYMDHMSToUnixTime
    - memset
    - memcpy
    - static_cast<int32_t>
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRArrowArrayHelper
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.h:22,1
    - Dst: OGRLayerDecorator
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 113
    functionName: OGRLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerdecorator.h
    functionUses: 1
    functionsReached:
    - OGRLayerDecorator
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: public
    signature: public OGRLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.h:32,1
    - Dst: OGRMutexedDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.h:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 114
    functionName: OGRMutexedDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrmutexeddatasource.h
    functionUses: 1
    functionsReached:
    - OGRMutexedDataSource
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGRMutexedDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPoolIn
    argTypes:
    - OGRLayerPool*
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: OGRAbstractProxiedLayer::OGRAbstractProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRAbstractProxiedLayer::OGRAbstractProxiedLayer(OGRLayerPool
      *poPoolIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnchainLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: OGRAbstractProxiedLayer::~OGRAbstractProxiedLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - UnchainLayer
    linkageType: ''
    returnType: void
    signature: void OGRAbstractProxiedLayer::~OGRAbstractProxiedLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nMaxSimultaneouslyOpenedIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: OGRLayerPool::OGRLayerPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLayerPool::OGRLayerPool(int nMaxSimultaneouslyOpenedIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:54,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:55,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: OGRLayerPool::~OGRLayerPool()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRLayerPool::~OGRLayerPool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerPool::UnchainLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:74,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:81,1
    - Dst: CloseUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:83,1
    - Dst: OGRLayerPool::UnchainLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:84,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:88,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:89,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRAbstractProxiedLayer*
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: OGRLayerPool::SetLastUsedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - CloseUnderlyingLayer
    - CPLAssert
    - OGRLayerPool::UnchainLayer
    linkageType: ''
    returnType: void
    signature: void OGRLayerPool::SetLastUsedLayer(OGRAbstractProxiedLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:111,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRAbstractProxiedLayer*
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: OGRLayerPool::UnchainLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGRLayerPool::UnchainLayer(OGRAbstractProxiedLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: ReleaseDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReleaseDelete(OGRLayer *poLayer, void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poPoolIn
    - pfnOpenLayerIn
    - pfnFreeUserDataIn
    - pUserDataIn
    argTypes:
    - OGRLayerPool*
    - OpenLayerFunc
    - FreeUserDataFunc
    - void*
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: OGRProxiedLayer::OGRProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: "void OGRProxiedLayer::OGRProxiedLayer(OGRLayerPool *poPoolIn,\n                                 OpenLayerFunc
      pfnOpenLayerIn,\n                                 FreeUserDataFunc pfnFreeUserDataIn,\n
      \                                void *pUserDataIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - poPoolIn
    - pfnOpenLayerIn
    - pfnReleaseLayerIn
    - pfnFreeUserDataIn
    - pUserDataIn
    argTypes:
    - OGRLayerPool*
    - OpenLayerFunc
    - ReleaseLayerFunc
    - FreeUserDataFunc
    - void*
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: OGRProxiedLayer::OGRProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: "void OGRProxiedLayer::OGRProxiedLayer(OGRLayerPool *poPoolIn,\n                                 OpenLayerFunc
      pfnOpenLayerIn,\n                                 ReleaseLayerFunc pfnReleaseLayerIn,\n
      \                                FreeUserDataFunc pfnFreeUserDataIn,\n                                 void
      *pUserDataIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::CloseUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:174,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:177,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:180,1
    - Dst: pfnFreeUserData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: OGRProxiedLayer::~OGRProxiedLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - pfnFreeUserData
    - OGRProxiedLayer::CloseUnderlyingLayer
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRProxiedLayer::~OGRProxiedLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:192,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:193,1
    - Dst: SetLastUsedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:194,1
    - Dst: pfnOpenLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:195,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: OGRProxiedLayer::OpenUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - pfnOpenLayer
    - SetLastUsedLayer
    - CPLDebug
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: int
    signature: int OGRProxiedLayer::OpenUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:209,1
    - Dst: pfnReleaseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: OGRProxiedLayer::CloseUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - pfnReleaseLayer
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRProxiedLayer::CloseUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:227,1
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: OGRProxiedLayer::GetUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - CPL_IGNORE_RET_VAL
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRProxiedLayer::GetUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:238,1
    - Dst: OGRProxiedLayer::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: OGRProxiedLayer::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::GetSpatialFilter
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRProxiedLayer::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:250,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: OGRProxiedLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialFilter
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRProxiedLayer::ISetSpatialFilter(int iGeomField,\n                                          const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:261,1
    - Dst: OGRProxiedLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poAttrFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: OGRProxiedLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::SetAttributeFilter(const char *poAttrFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:272,1
    - Dst: OGRProxiedLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: OGRProxiedLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::ResetReading
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: void
    signature: void OGRProxiedLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:283,1
    - Dst: OGRProxiedLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: OGRProxiedLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRProxiedLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:294,1
    - Dst: OGRProxiedLayer::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: OGRProxiedLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetDataset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRProxiedLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:306,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:308,1
    - Dst: OGRProxiedLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: OGRProxiedLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - memset
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGRProxiedLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:320,1
    - Dst: OGRProxiedLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: OGRProxiedLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::SetNextByIndex
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:331,1
    - Dst: OGRProxiedLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: OGRProxiedLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRProxiedLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:342,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: OGRProxiedLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - SetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:353,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: OGRProxiedLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - CreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:364,1
    - Dst: UpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: OGRProxiedLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - UpsertFeature
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:380,1
    - Dst: UpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: OGRProxiedLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - UpdateFeature
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRProxiedLayer::IUpdateFeature(OGRFeature *poFeature,\n                                       int
      nUpdatedFieldsCount,\n                                       const int *panUpdatedFieldsIdx,\n
      \                                      int nUpdatedGeomFieldsCount,\n                                       const
      int *panUpdatedGeomFieldsIdx,\n                                       bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:393,1
    - Dst: OGRProxiedLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: OGRProxiedLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::DeleteFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:404,1
    - Dst: OGRProxiedLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: OGRProxiedLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetName
    linkageType: ''
    returnType: char
    signature: char *OGRProxiedLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:415,1
    - Dst: OGRProxiedLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: OGRProxiedLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRProxiedLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:429,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:431,1
    - Dst: OGRProxiedLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:435,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 441
    functionName: OGRProxiedLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - Reference
    - OGRProxiedLayer::GetLayerDefn
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRFeatureDefn::OGRFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRProxiedLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:451,1
    - Dst: OGRProxiedLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:453,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 460
    functionName: OGRProxiedLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - Reference
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRProxiedLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:468,1
    - Dst: OGRProxiedLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: OGRProxiedLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::GetFeatureCount
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRProxiedLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:480,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: OGRProxiedLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 0
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRProxiedLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:491,1
    - Dst: OGRProxiedLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCapability
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: OGRProxiedLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRProxiedLayer::TestCapability(const char *pszCapability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:502,1
    - Dst: OGRProxiedLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: OGRProxiedLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::CreateField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:513,1
    - Dst: OGRProxiedLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: OGRProxiedLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::DeleteField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:524,1
    - Dst: OGRProxiedLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: OGRProxiedLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:536,1
    - Dst: OGRProxiedLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: OGRProxiedLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::AlterFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRProxiedLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                      int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:548,1
    - Dst: OGRProxiedLayer::AlterGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - iGeomField
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 552
    functionName: OGRProxiedLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::AlterGeomFieldDefn
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRProxiedLayer::AlterGeomFieldDefn(\n    int iGeomField, const
      OGRGeomFieldDefn *poNewGeomFieldDefn, int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:560,1
    - Dst: OGRProxiedLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 563
    functionName: OGRProxiedLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::SyncToDisk
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:571,1
    - Dst: OGRProxiedLayer::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 574
    functionName: OGRProxiedLayer::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::GetStyleTable
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRProxiedLayer::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:582,1
    - Dst: OGRProxiedLayer::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: OGRProxiedLayer::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::SetStyleTableDirectly
    linkageType: ''
    returnType: void
    signature: void OGRProxiedLayer::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:593,1
    - Dst: OGRProxiedLayer::SetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: OGRProxiedLayer::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::SetStyleTable
    linkageType: ''
    returnType: void
    signature: void OGRProxiedLayer::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:604,1
    - Dst: OGRProxiedLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: OGRProxiedLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:615,1
    - Dst: OGRProxiedLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: OGRProxiedLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:626,1
    - Dst: OGRProxiedLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: OGRProxiedLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:637,1
    - Dst: OGRProxiedLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: OGRProxiedLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::GetFIDColumn
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: char
    signature: char *OGRProxiedLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:648,1
    - Dst: OGRProxiedLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: OGRProxiedLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::GetGeometryColumn
    - OGRProxiedLayer::OpenUnderlyingLayer
    linkageType: ''
    returnType: char
    signature: char *OGRProxiedLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:659,1
    - Dst: OGRProxiedLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: OGRProxiedLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRProxiedLayer::OpenUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:670,1
    - Dst: OGRProxiedLayer::Rename
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: OGRProxiedLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogrlayerpool.cpp
    functionUses: 1
    functionsReached:
    - OGRProxiedLayer::OpenUnderlyingLayer
    - OGRProxiedLayer::Rename
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRProxiedLayer::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: IOGREditableLayerSynchronizer::~IOGREditableLayerSynchronizer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGREditableLayerSynchronizer::~IOGREditableLayerSynchronizer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:39,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:40,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:44,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:46,1
    - Dst: OGREditableLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:47,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:47,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:49,1
    - Dst: OGREditableLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:50,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:51,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - poDecoratedLayer
    - bTakeOwnershipDecoratedLayer
    - poSynchronizer
    - bTakeOwnershipSynchronizer
    argTypes:
    - OGRLayer*
    - bool
    - IOGREditableLayerSynchronizer*
    - bool
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: OGREditableLayer::OGREditableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldDefn
    - GetGeomFieldDefn
    - GetFieldCount
    - OGREditableLayer::CreateGeomField
    - OGRMemLayer::OGRMemLayer
    - Reference
    - GetGeomFieldCount
    - begin
    - OGRLayer*::GetLayerDefn
    - OGREditableLayer::CreateField
    linkageType: ''
    returnType: void
    signature: "void OGREditableLayer::OGREditableLayer(\n    OGRLayer *poDecoratedLayer,
      bool bTakeOwnershipDecoratedLayer,\n    IOGREditableLayerSynchronizer *poSynchronizer,\n
      \   bool bTakeOwnershipSynchronizer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:62,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: OGREditableLayer::~OGREditableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGREditableLayer::SyncToDisk
    - Release
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::~OGREditableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNextFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: OGREditableLayer::SetNextFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::SetNextFID(GIntBig nNextFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsCurveGeometries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: OGREditableLayer::SetSupportsCurveGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::SetSupportsCurveGeometries(bool bSupportsCurveGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsCreateGeomField
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: OGREditableLayer::SetSupportsCreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::SetSupportsCreateGeomField(bool bSupportsCreateGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:106,1
    - Dst: OGREditableLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:108,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:110,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: OGREditableLayer::DetectNextFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - OGREditableLayer::ResetReading
    - OGREditableLayer::GetNextFeature
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::DetectNextFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:124,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:129,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:130,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: OGREditableLayer::GetSrcGeomFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::GetNameRef
    - GetGeomFieldCount
    - GetGeomFieldDefn
    - OGREditableLayer::GetLayerDefn
    linkageType: ''
    returnType: int
    signature: int OGREditableLayer::GetSrcGeomFieldIndex(int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:142,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: OGREditableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGREditableLayer::ResetReading
    - begin
    linkageType: ''
    returnType: void
    signature: void OGREditableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:157,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:162,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:168,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:170,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:176,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:183,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:188,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:188,1
    - Dst: std::map*::find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:194,1
    - Dst: std::map*::end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:195,1
    - Dst: OGRFeature*::SetFieldsFrom
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:198,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:199,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:201,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:203,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:210,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:211,1
    - Dst: OGRFeature*::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:215,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:216,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:218,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:220,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:220,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:223,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:223,1
    - Dst: OGRFeature*::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:224,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:224,1
    - Dst: OGRFeature*::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:225,1
    - Dst: OGRFeature*::GetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:225,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:226,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - poTargetDefn
    - poSrcFeature
    - bCanStealSrcFeature
    - bHideDeletedFields
    argTypes:
    - OGRFeatureDefn*
    - OGRFeature*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 229
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 229
    functionName: OGREditableLayer::Translate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetGeomField
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetGeomFieldDirectly
    - end
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeature*::SetStyleString
    - OGRFeature*::SetNativeMediaType
    - find
    - OGRFeature*::GetStyleString
    - std::move
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFID
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - OGRFeature*::SetNativeData
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - empty
    - OGRFeature*::SetFieldsFrom
    - std::map*::end
    - OGRFeature*::StealGeometry
    - OGRFeature*::GetNativeData
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRFeature*::GetNativeMediaType
    - std::map*::find
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGREditableLayer::Translate(OGRFeatureDefn *poTargetDefn,\n
      \                                       OGRFeature *poSrcFeature,\n                                        bool
      bCanStealSrcFeature,\n                                        bool bHideDeletedFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:241,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:245,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:246,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:246,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:251,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:251,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:252,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:252,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:255,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:261,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:263,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:272,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:277,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:277,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 284
    functionName: OGREditableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - end
    - OGREditableLayer::GetNextFeature
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - find
    - FilterGeometry
    - Evaluate
    - OGREditableLayer::Translate
    - OGREditableLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGREditableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:292,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:293,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:293,1
    - Dst: OGREditableLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:295,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: OGREditableLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGREditableLayer::SetNextByIndex
    - OGRLayer::SetNextByIndex
    - empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:312,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:312,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:313,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:313,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:315,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:318,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:318,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:324,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 330
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 330
    functionName: OGREditableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - end
    - find
    - OGREditableLayer::GetFeature
    - OGREditableLayer::Translate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGREditableLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:341,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:342,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:342,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:343,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:345,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:346,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:347,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:353,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:353,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:354,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:357,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:358,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:361,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:361,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:363,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 370
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 370
    functionName: OGREditableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - OGREditableLayer::TestCapability
    - empty
    - OGRFeature*::GetFID
    - insert
    - find
    - SetFeature
    - OGREditableLayer::Translate
    - OGREditableLayer::GetLayerDefn
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:381,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:382,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:383,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:385,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:386,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:387,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:388,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:389,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:389,1
    - Dst: OGREditableLayer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:395,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:395,1
    - Dst: OGREditableLayer::DetectNextFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:396,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:397,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:398,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:399,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:402,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:403,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:404,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:405,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:406,1
    - Dst: OGREditableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 413
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 413
    functionName: OGREditableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - erase
    - OGREditableLayer::TestCapability
    - empty
    - OGRFeature*::GetFID
    - insert
    - OGREditableLayer::Translate
    - OGREditableLayer::GetLayerDefn
    - OGREditableLayer::DetectNextFID
    - OGREditableLayer::ResetReading
    - CreateFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:422,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:422,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:422,1
    - Dst: OGREditableLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:425,1
    - Dst: OGREditableLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: OGREditableLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGREditableLayer::ISetFeature
    - std::unique_ptr<OGRFeature>
    - OGREditableLayer::ICreateFeature
    - OGRFeature*::GetFID
    - OGREditableLayer::GetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: OGREditableLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IUpdateFeature
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::IUpdateFeature(OGRFeature *poFeature,\n                                        int
      nUpdatedFieldsCount,\n                                        const int *panUpdatedFieldsIdx,\n
      \                                       int nUpdatedGeomFieldsCount,\n                                        const
      int *panUpdatedGeomFieldsIdx,\n                                        bool
      bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:461,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:461,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:466,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:466,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:468,1
    - Dst: OGREditableLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:469,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:472,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:472,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:474,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:475,1
    - Dst: OGREditableLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:476,1
    - Dst: OGREditableLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:480,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:483,1
    - Dst: OGREditableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 496
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 496
    functionName: OGREditableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - end
    - erase
    - OGREditableLayer::DeleteFeature
    - insert
    - find
    - OGREditableLayer::ResetReading
    - OGREditableLayer::GetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: OGREditableLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGREditableLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: OGREditableLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGREditableLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: OGREditableLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGREditableLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: OGREditableLayer::GetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetSpatialFilter
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGREditableLayer::GetSpatialFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poAttrFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: OGREditableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::SetAttributeFilter(const char *poAttrFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: OGREditableLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGREditableLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:561,1
    - Dst: OGREditableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:562,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:568,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 573
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 573
    functionName: OGREditableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGREditableLayer::ResetReading
    - SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::ISetSpatialFilter(int iGeomField,\n                                           const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:584,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:584,1
    - Dst: OGREditableLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:586,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:589,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: OGREditableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - OGRLayer::GetFeatureCount
    - empty
    - OGREditableLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGREditableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:606,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:606,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:609,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:613,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:616,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 622
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 622
    functionName: OGREditableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    - GetExtent
    - empty
    - OGREnvelope*::Merge
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                   bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:632,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:632,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:633,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:633,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:635,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:635,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:637,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:640,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:644,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:647,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 648
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 648
    functionName: OGREditableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 3
    functionsReached:
    - EQUAL
    - OGREditableLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGREditableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:659,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:662,1
    - Dst: OGREditableLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:664,1
    - Dst: OGREditableLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:667,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:670,1
    - Dst: OGREditableLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:676,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 683
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 683
    functionName: OGREditableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - AddFieldDefn
    - OGREditableLayer::CreateField
    - OGREditableLayer::TestCapability
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:694,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:697,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:700,1
    - Dst: OGREditableLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:703,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:706,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:708,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 711
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 711
    functionName: OGREditableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGREditableLayer::DeleteField
    - DeleteFieldDefn
    - insert
    - GetFieldCount
    - std::move
    - GetFieldDefn
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:722,1
    - Dst: OGREditableLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:724,1
    - Dst: ReorderFieldDefns
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: OGREditableLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGREditableLayer::ReorderFields
    - ReorderFieldDefns
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:744,1
    - Dst: OGREditableLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:747,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:751,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:753,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:754,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:754,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:755,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:755,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:756,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:756,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:757,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:757,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:758,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:758,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:759,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:759,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:760,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:760,1
    - Dst: OGRFieldDefn*::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:761,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:761,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:762,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:762,1
    - Dst: OGRFieldDefn*::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:763,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 767
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 767
    functionName: OGREditableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetComment
    - OGRFieldDefn*::SetSubType
    - OGRFieldDefn*::GetDomainName
    - OGREditableLayer::AlterFieldDefn
    - GetFieldDefn
    - OGRFieldDefn*::GetWidth
    - OGRFieldDefn*::SetDefault
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::GetSubType
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::SetComment
    - OGRFieldDefn*::SetNullable
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::SetDomainName
    - OGRFieldDefn*::GetType
    - OGREditableLayer::GetLayerDefn
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - OGRFieldDefn*::SetUnique
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn*::IsUnique
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::AlterFieldDefn(int iField,\n                                        OGRFieldDefn
      *poNewFieldDefn,\n                                        int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::AlterGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:779,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:784,1
    - Dst: OGREditableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:786,1
    - Dst: OGRGeomFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:787,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:787,1
    - Dst: OGRGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:788,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:788,1
    - Dst: OGRGeomFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:789,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:789,1
    - Dst: OGRGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:790,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - iGeomField
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 794
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 794
    functionName: OGREditableLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeomFieldDefn*::SetSpatialRef
    - OGREditableLayer::AlterGeomFieldDefn
    - OGRGeomFieldDefn*::IsNullable
    - OGRGeomFieldDefn*::GetNameRef
    - GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetType
    - OGRGeomFieldDefn*::SetNullable
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGREditableLayer::GetLayerDefn
    - OGRGeomFieldDefn*::SetName
    - OGRGeomFieldDefn*::SetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::AlterGeomFieldDefn(\n    int iGeomField,
      const OGRGeomFieldDefn *poNewGeomFieldDefn, int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:807,1
    - Dst: OGREditableLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:809,1
    - Dst: OGREditableLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:812,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:815,1
    - Dst: OGREditableLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:821,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 828
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 828
    functionName: OGREditableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGREditableLayer::TestCapability
    - AddGeomFieldDefn
    - OGREditableLayer::CreateGeomField
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGREditableLayer::CreateGeomField(const OGRGeomFieldDefn *poField,\n
      \                                        int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:838,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:841,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:841,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:842,1
    - Dst: EditableSyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:846,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:848,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:849,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:850,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 854
    functionName: OGREditableLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGREditableLayer::SyncToDisk
    - EditableSyncToDisk
    - empty
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: OGREditableLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: OGREditableLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: OGREditableLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGREditableLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: OGREditableLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/generic/ogreditablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetGeometryColumn
    linkageType: ''
    returnType: char
    signature: char *OGREditableLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:23,1
    - Dst: CPLODBCStatement*::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:23,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - poDSIn
    - poStmtIn
    argTypes:
    - OGRODBCDataSource*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: OGRODBCSelectLayer::OGRODBCSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement*::GetCommand
    - CPLStrdup
    - BuildFeatureDefn
    linkageType: ''
    returnType: void
    signature: "void OGRODBCSelectLayer::OGRODBCSelectLayer(OGRODBCDataSource *poDSIn,\n
      \                                      CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: OGRODBCSelectLayer::~OGRODBCSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCSelectLayer::ClearStatement
    linkageType: ''
    returnType: void
    signature: void OGRODBCSelectLayer::~OGRODBCSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: OGRODBCSelectLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCSelectLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCSelectLayer::ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: OGRODBCSelectLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCSelectLayer::ResetStatement
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRODBCSelectLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:80,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:84,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:85,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:85,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:86,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: OGRODBCSelectLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - CPLDebug
    - ExecuteSQL
    - Append
    - OGRODBCSelectLayer::ClearStatement
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODBCSelectLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCSelectLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:106,1
    - Dst: OGRODBCLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: OGRODBCSelectLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCSelectLayer::ClearStatement
    - OGRODBCLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRODBCSelectLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: OGRODBCSelectLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODBCSelectLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: OGRODBCSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRODBCSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: OGRODBCSelectLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODBCSelectLayer::IGetExtent(int, OGREnvelope *, bool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: OGRODBCSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRODBCSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCLayer
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 78
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h
    functionUses: 0
    functionsReached:
    - OGRODBCLayer
    linkageType: ''
    returnType: class OGRODBCLayer
    signature: class OGRODBCLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: OGRODBCTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: OGRODBCTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: OGRODBCDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OGRODBCDataSource::GetSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogr_odbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLODBCSession
    signature: CPLODBCSession *GetSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: OGRODBCLayer::OGRODBCLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCLayer::OGRODBCLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:41,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:42,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:52,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:55,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:59,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 65
    functionName: OGRODBCLayer::~OGRODBCLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - GetName
    - CPLDebug
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRODBCLayer::~OGRODBCLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:78,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:79,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:79,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:82,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:84,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:88,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:90,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:90,1
    - Dst: CPLODBCStatement*::GetColSize
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:90,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:93,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:93,1
    - Dst: CPLODBCStatement::GetTypeMapping
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:96,1
    - Dst: CPLODBCStatement*::GetColType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:96,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:102,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:107,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:111,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:115,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:116,1
    - Dst: CPLODBCStatement*::GetColPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:116,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:121,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:122,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:126,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:130,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:135,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:142,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:143,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:153,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:154,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:158,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:159,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:161,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:162,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - pszLayerName
    - poStmtIn
    argTypes:
    - char*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 165
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 165
    functionName: OGRODBCLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::GetTypeMapping
    - CPLDebug
    - Reference
    - GetFieldIndex
    - CPLODBCStatement*::GetColName
    - CPLStrdup
    - CPLODBCStatement*::GetColPrecision
    - MAX
    - CPLODBCStatement*::GetColSize
    - AddFieldDefn
    - CPLMalloc
    - GetName
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - SetDescription
    - CPLODBCStatement*::GetColType
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - EQUAL
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRODBCLayer::BuildFeatureDefn(const char *pszLayerName,\n
      \                                     CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: OGRODBCLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:187,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:192,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:192,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: OGRODBCLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCLayer::GetNextRawFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODBCLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:207,1
    - Dst: Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:213,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:224,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:226,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:227,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:228,1
    - Dst: GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:228,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:228,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:230,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:238,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:241,1
    - Dst: Flags
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:245,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:252,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:254,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:258,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:266,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:267,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:268,1
    - Dst: GetColDataLength
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:268,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:271,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:287,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:316,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:321,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 325
    functionName: OGRODBCLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::SetFieldNull
    - GetColDataLength
    - atoi
    - GetFieldDefn
    - CPLError
    - std::isnan
    - OGRGeometryFactory::createFromWkb
    - GetColData
    - OGRFeature*::SetGeometryDirectly
    - GetColId
    - GetFieldCount
    - Fetch
    - OGRFeature::OGRFeature
    - Flags
    - OGRFeature*::GetFieldDefnRef
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - GetStatement
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODBCLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: OGRODBCLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODBCLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: OGRODBCLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRODBCLayer::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: OGRODBCLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRODBCLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nODBCStatementFlags
    argTypes:
    - OGRODBCDataSource*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: OGRODBCTableLayer::OGRODBCTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRODBCTableLayer::OGRODBCTableLayer(OGRODBCDataSource *poDSIn,\n
      \                                    int nODBCStatementFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:42,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:43,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:45,1
    - Dst: OGRODBCTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: OGRODBCTableLayer::~OGRODBCTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCTableLayer::ClearStatement
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRODBCTableLayer::~OGRODBCTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:57,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:59,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:62,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:72,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:73,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:78,1
    - Dst: CPLODBCStatement::GetPrimaryKeys
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:86,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:87,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:89,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:89,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:91,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:93,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:96,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:106,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:110,1
    - Dst: CPLODBCStatement::GetColumns
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:118,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:121,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:125,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:127,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:137,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:138,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:139,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:140,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:143,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:155,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:158,1
    - Dst: CPLODBCStatement::GetTypeMapping
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:163,1
    - Dst: CPLODBCStatement::GetColType
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:163,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - pszLayerName
    - pszGeomCol
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 170
    functionName: OGRODBCTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::GetTypeMapping
    - CPLStrdup
    - GetSession
    - CPLODBCStatement::GetColumns
    - CPLODBCStatement::GetColType
    - GetFieldCount
    - CPLODBCStatement::Fetch
    - CPLDebug
    - CPLODBCStatement::GetPrimaryKeys
    - BuildFeatureDefn
    - CPLError
    - SetDescription
    - GetFieldIndex
    - CPLFree
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRODBCTableLayer::Initialize(const char *pszLayerName,\n                                     const
      char *pszGeomCol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: OGRODBCTableLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCTableLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCTableLayer::ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: OGRODBCTableLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCTableLayer::ResetStatement
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRODBCTableLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - osStr
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 226
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 226
    functionName: EscapeAndQuoteIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::size
    linkageType: ''
    returnType: CPLString
    signature: CPLString EscapeAndQuoteIdentifier(const CPLString &osStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:235,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:239,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:239,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:240,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:241,1
    - Dst: EscapeAndQuoteIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:241,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:241,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:245,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:251,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:253,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:255,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:261,1
    - Dst: GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:261,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 270
    functionName: OGRODBCTableLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - OGRODBCTableLayer::ClearStatement
    - EscapeAndQuoteIdentifier
    - CPLDebug
    - Appendf
    - ExecuteSQL
    - Append
    - GetName
    - GetCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODBCTableLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:279,1
    - Dst: OGRODBCLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: OGRODBCTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCTableLayer::ClearStatement
    - OGRODBCLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRODBCTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:291,1
    - Dst: OGRODBCTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:293,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:297,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:297,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:298,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:299,1
    - Dst: EscapeAndQuoteIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:299,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:299,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:300,1
    - Dst: EscapeAndQuoteIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:301,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:303,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 311
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 311
    functionName: OGRODBCTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - GetNextRawFeature
    - OGRODBCTableLayer::ClearStatement
    - EscapeAndQuoteIdentifier
    - Appendf
    - ExecuteSQL
    - Append
    - GetName
    - OGRODBCLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODBCTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:320,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:321,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:325,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:328,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:329,1
    - Dst: OGRODBCTableLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: OGRODBCTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRODBCTableLayer::ClearStatement
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODBCTableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:343,1
    - Dst: OGRODBCLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: OGRODBCTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRODBCLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRODBCTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:363,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:365,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:366,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:367,1
    - Dst: EscapeAndQuoteIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:367,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:367,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:370,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:372,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:372,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:374,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:376,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:376,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:377,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:380,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 381
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 381
    functionName: OGRODBCTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - CPLODBCStatement::GetColData
    - GetSession
    - CPLODBCStatement::Append
    - CPLAtoGIntBig
    - EscapeAndQuoteIdentifier
    - CPLODBCStatement::Fetch
    - CPLODBCStatement::Appendf
    - CPLODBCStatement::GetCommand
    - CPLError
    - GetName
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRODBCTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPGConn
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:397,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:401,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:404,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:407,1
    - Dst: PQexec
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:408,1
    - Dst: PQresultStatus
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:410,1
    - Dst: PQntuples
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:411,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:413,1
    - Dst: PQgetvalue
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:413,1
    - Dst: SoftCommit
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:416,1
    - Dst: OGRODBCLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 421
    functionName: OGRODBCTableLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbctablelayer.cpp
    functionUses: 0
    functionsReached:
    - SoftStartTransaction
    - atoi
    - sprintf
    - PQntuples
    - OGRODBCLayer::GetSpatialRef
    - GetPGConn
    - PQresultStatus
    - PQexec
    - GetName
    - SoftCommit
    - PQgetvalue
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRODBCTableLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:24,1
    - Dst: OGRODBCDataSource::OGRODBCDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:27,1
    - Dst: OGRODBCDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: OGRODBCDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCDataSource::OGRODBCDataSource
    - OGRODBCDriverIdentify
    - OGRODBCDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRODBCDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:45,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:48,1
    - Dst: OGRODBCDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:49,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: RegisterOGRODBC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - OGRODBCDriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRODBC()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: OGRODBCDataSource::OGRODBCDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCDataSource::OGRODBCDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: OGRODBCDataSource::~OGRODBCDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRODBCDataSource::~OGRODBCDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: CheckDSNStringTemplate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckDSNStringTemplate(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLODBCDriverInstaller::InstallMdbToolsDriver
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:87,1
    - Dst: CheckDSNStringTemplate
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:93,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:95,1
    - Dst: ConnectToMsAccess
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:101,1
    - Dst: CPLODBCStatement::GetTables
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:114,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:116,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:124,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:132,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:132,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:134,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:148,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:161,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:162,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:163,1
    - Dst: OGRODBCDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 172
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 172
    functionName: OGRODBCDataSource::OpenMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCDataSource::OpenTable
    - CPLODBCDriverInstaller::InstallMdbToolsDriver
    - CPLString::substr
    - ConnectToMsAccess
    - insert
    - CPLODBCStatement::Fetch
    - std::vector::emplace_back
    - CheckDSNStringTemplate
    - CPLString::size
    - CPLODBCStatement::GetTables
    - strlen
    - CPLString
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int OGRODBCDataSource::OpenMDB(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:180,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:185,1
    - Dst: OGRODBCDriverIsSupportedMsAccessFileExtension
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:186,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:187,1
    - Dst: OGRODBCDataSource::OpenMDB
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:188,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:203,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:207,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:208,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:217,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:230,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:234,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:235,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:246,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:251,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:252,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:262,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:263,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:285,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:286,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:289,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:290,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:294,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:299,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:301,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:301,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:301,1
    - Dst: EstablishSession
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:303,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:304,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:304,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:305,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:305,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:307,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:310,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:310,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:311,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:312,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:313,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:314,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:315,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:327,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:329,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:331,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:333,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:333,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:334,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:334,1
    - Dst: CPLODBCStatement::GetTables
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:347,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:349,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:354,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:360,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:362,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:364,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:376,1
    - Dst: OGRODBCDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:377,1
    - Dst: OGRODBCDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:379,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:382,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:383,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:397,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:399,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:401,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:402,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:403,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:404,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:405,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:406,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:408,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:409,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:410,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:412,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:422,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:423,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:425,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:427,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:427,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:436,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:438,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:440,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 118
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 443
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 443
    functionName: OGRODBCDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::importFromWkt
    - std::string::assign
    - OGRODBCDataSource::OpenTable
    - atoi
    - CSLAddString
    - CPLDebug
    - GetLastError
    - CPLODBCStatement::GetCommand
    - CPLError
    - EstablishSession
    - std::string::c_str
    - CPLGetExtensionSafe
    - std::string::empty
    - CPLStrdup
    - std::string::find
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - std::move
    - strlen
    - CPLODBCStatement::ExecuteSQL
    - STARTS_WITH_CI
    - std::unique_ptr::SetAxisMappingStrategy
    - CPLAssert
    - std::string::resize
    - strrchr
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRODBCDriverIsSupportedMsAccessFileExtension
    - OGRODBCDataSource::OpenMDB
    - CSLDestroy
    - strchr
    - CPLODBCStatement::GetTables
    - std::string::substr
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: int
    signature: int OGRODBCDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODBCTableLayer::OGRODBCTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:454,1
    - Dst: OGRODBCTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:456,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pszNewName
    - pszGeomCol
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 470
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 470
    functionName: OGRODBCDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLRealloc
    - OGRODBCTableLayer::OGRODBCTableLayer
    - OGRODBCTableLayer*::Initialize
    linkageType: ''
    returnType: int
    signature: int OGRODBCDataSource::OpenTable(const char *pszNewName, const char
      *pszGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: OGRODBCDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRODBCDataSource::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: OGRODBCDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRODBCDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:500,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:505,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:506,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:506,1
    - Dst: OGRODBCDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 515
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 515
    functionName: OGRODBCDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - end
    - OGRODBCDataSource::OpenTable
    - find
    - CPLString
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRODBCDataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:523,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:525,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: OGRODBCDataSource::IsPrivateLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::size
    - CPLString
    - CPLString::substr
    linkageType: ''
    returnType: bool
    signature: bool OGRODBCDataSource::IsPrivateLayerName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:538,1
    - Dst: OGRODBCDataSource::IsPrivateLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: OGRODBCDataSource::IsLayerPrivate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODBCDataSource::IsPrivateLayerName
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool OGRODBCDataSource::IsLayerPrivate(int iLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:554,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:555,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:562,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:564,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:565,1
    - Dst: CPLODBCStatement*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:568,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:568,1
    - Dst: CPLODBCStatement*::GetColCount
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:576,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:579,1
    - Dst: OGRODBCSelectLayer::OGRODBCSelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:588,1
    - Dst: OGRODBCSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 594
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 594
    functionName: OGRODBCDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - CPLErrorReset
    - CPLODBCStatement*::ExecuteSQL
    - OGRODBCSelectLayer::OGRODBCSelectLayer
    - OGRODBCSelectLayer*::SetSpatialFilter
    - CPLDebug
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - GetLastError
    - CPLError
    - CPLODBCStatement*::GetColCount
    - CPLODBCStatement*::Append
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRODBCDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                       OGRGeometry *poSpatialFilter,\n                                        const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: OGRODBCDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODBCDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:24,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:24,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pszExtension
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRODBCDriverIsSupportedMsAccessFileExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: bool OGRODBCDriverIsSupportedMsAccessFileExtension(const char *pszExtension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:35,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:44,1
    - Dst: OGRODBCDriverIsSupportedMsAccessFileExtension
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: OGRODBCDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - STARTS_WITH_CI
    - OGRODBCDriverIsSupportedMsAccessFileExtension
    linkageType: ''
    returnType: int
    signature: int OGRODBCDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:63,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:65,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:66,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 85
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 85
    functionName: OGRODBCDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRODBCDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:94,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:98,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:100,1
    - Dst: OGRODBCDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:103,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: DeclareDeferredOGRODBCPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/odbc/ogrodbcdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRODBCDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRODBCPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: VDVGet452XML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *VDVGet452XML(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:47,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:49,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:51,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:52,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:52,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:58,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:58,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:68,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:70,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:72,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:73,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:73,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:79,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:79,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:98,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:100,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:102,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:102,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:107,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:113,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:114,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:116,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:118,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:121,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - poLayer
    - poFeatureDefn
    - papszAtr
    - papszFrm
    argTypes:
    - OGRLayer*
    - OGRFeatureDefn*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 124
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 124
    functionName: OGRVDVParseAtrFrm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - OGRFeatureDefn*::AddFieldDefn
    - atoi
    - OGRFieldDefn::SetWidth
    - OGRLayer*::CreateField
    - OGRFieldDefn::SetSubType
    - strchr
    - CPLAssert
    - strlen
    linkageType: ''
    returnType: void
    signature: "void OGRVDVParseAtrFrm(OGRLayer *poLayer, OGRFeatureDefn *poFeatureDefn,\n
      \                             char **papszAtr, char **papszFrm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszFilename
    - fpLIn
    argTypes:
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: OGRIDFDataSource::OGRIDFDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDFDataSource::OGRIDFDataSource(const char *pszFilename, VSILFILE
      *fpLIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:145,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:150,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: OGRIDFDataSource::~OGRIDFDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - VSIUnlink
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRIDFDataSource::~OGRIDFDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:167,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:167,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:175,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:176,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:176,1
    - Dst: reinterpret_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:182,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:182,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:186,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:189,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:193,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:194,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:197,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:209,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:213,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:213,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:218,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:219,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:220,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:233,1
    - Dst: StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:236,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:275,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:276,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:285,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:290,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:299,1
    - Dst: Trim
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:302,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:304,1
    - Dst: Trim
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:307,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:327,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:328,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:329,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:331,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:333,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:335,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:336,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:337,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:340,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:342,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:343,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:344,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:346,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:350,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:351,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:352,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:357,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:358,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:359,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:360,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:361,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:363,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:366,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:367,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:368,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:371,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:375,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:380,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:381,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:385,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:385,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:385,1
    - Dst: OGRVDVParseAtrFrm
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:387,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:389,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:390,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:396,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:397,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:399,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:404,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:408,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:409,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:413,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:426,1
    - Dst: Point
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:427,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:428,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:432,1
    - Dst: Point
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:433,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:434,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:436,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:437,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:438,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:442,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:443,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:445,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:447,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:448,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:448,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:450,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:453,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:455,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:460,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:462,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:464,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:465,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:466,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:478,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:479,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:483,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:485,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:486,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:487,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:489,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:492,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:493,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:495,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:497,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:499,1
    - Dst: std::map<GIntBig, OGRLineString *>::iterator::second::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:506,1
    - Dst: std::map<GIntBig, OGRLineString *>::iterator::second::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:510,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:514,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:517,1
    - Dst: std::map::clear
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:524,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:527,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:528,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:530,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:533,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:535,1
    - Dst: GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:538,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:540,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:541,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:543,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:545,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:550,1
    - Dst: OGRLineString*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:551,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:553,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:553,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:553,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:554,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:556,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:558,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:558,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:559,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:560,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:562,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:562,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:562,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:563,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:567,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:567,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:567,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:569,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:571,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:571,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:572,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:574,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:574,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:574,1
    - Dst: OGRLineString*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:576,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:577,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:578,1
    - Dst: OGRLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:578,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:578,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:582,1
    - Dst: CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:586,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:589,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:592,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:593,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 199
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 596
    functionName: OGRIDFDataSource::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::GetFieldAsInteger64
    - std::map::end
    - CPLDebug
    - reinterpret_cast<GDALDriver *>
    - OGRSpatialReference*::Release
    - OGRLineString*::getNumPoints
    - strcmp
    - VSIFTellL
    - OGRLineString*::getZ
    - STARTS_WITH
    - CPLGetConfigOption
    - OGRLineString*::getY
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRLineString*::getX
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRLayer*::SetFeature
    - OGRFeature*::GetFieldAsDouble
    - CPLAtoGIntBig
    - CommitTransaction
    - CreateLayer
    - OGRPoint::OGRPoint
    - CPLPopErrorHandler
    - OGRLayer*::GetLayerDefn
    - CSLCount
    - GetLayerByName
    - std::map<GIntBig, OGRLineString *>::iterator::second::addPoint
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - OGRLayer*::CreateFeature
    - GetFieldAsInteger64
    - CPLGenerateTempFilenameSafe
    - OGRFeatureDefn*::GetFieldCount
    - CPLTestBool
    - OGRLineString*::getGeometryType
    - VSIUnlink
    - StartTransaction
    - get
    - std::map::begin
    - VSIFOpenL
    - std::map::find
    - GetGeometryRef
    - std::map::clear
    - CPL_IGNORE_RET_VAL
    - OGRLineString*::assignSpatialReference
    - ExecuteSQL
    - Trim
    - OGRLayer*::ResetReading
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRGeometry*::toLineString
    - OGRFeatureDefn*::GetFieldDefn
    - GDALGetDriverByName
    - OGRSpatialReference::OGRSpatialReference
    - GDALDriver*::Create
    - empty
    - VSIStatL
    - VSIFCloseL
    - OGRVDVParseAtrFrm
    - OGRLineString*::addPoint
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - CSLFindString
    - OGRFeature*::SetField
    - CPLPushErrorHandler
    - Point
    - SetGeometryDirectly
    linkageType: ''
    returnType: void
    signature: void OGRIDFDataSource::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDFDataSource::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:605,1
    - Dst: OGRIDFDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: OGRIDFDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRIDFDataSource::Parse
    - OGRIDFDataSource::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int OGRIDFDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDFDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:617,1
    - Dst: OGRIDFDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: OGRIDFDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRIDFDataSource::GetLayerCount
    - OGRIDFDataSource::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRIDFDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:630,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:632,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: OGRIDFDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRIDFDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - pszFilename
    - fpL
    - bUpdate
    - bSingleFile
    - bNew
    argTypes:
    - char*
    - VSILFILE*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: OGRVDVDataSource::OGRVDVDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRVDVDataSource::OGRVDVDataSource(const char *pszFilename, VSILFILE
      *fpL,\n                                   bool bUpdate, bool bSingleFile, bool
      bNew)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StopAsCurrentLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:662,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:668,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:675,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 679
    functionName: OGRVDVDataSource::~OGRVDVDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - StopAsCurrentLayer
    - VSIFPrintfL
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRVDVDataSource::~OGRVDVDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVDataSource::DetectLayers
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: OGRVDVDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRVDVDataSource::DetectLayers
    linkageType: ''
    returnType: int
    signature: int OGRVDVDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 701
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 701
    functionName: OGRVDVDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRVDVDataSource::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRVDVDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:723,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:743,1
    - Dst: OGRVDVLayer::OGRVDVLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:754,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:756,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:757,1
    - Dst: OGRVDVLayer*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:791,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:794,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:796,1
    - Dst: OGRVDVLayer*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:837,1
    - Dst: OGRVDVLayer*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:849,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 850
    functionName: OGRVDVDataSource::DetectLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - EQUAL
    - static_cast<OGRLayer **>
    - CPLRealloc
    - VSIFTellL
    - OGRVDVLayer::OGRVDVLayer
    - CPLString::resize
    - OGRVDVLayer*::SetFeatureCount
    linkageType: ''
    returnType: void
    signature: void OGRVDVDataSource::DetectLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:864,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:865,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:866,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:867,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:868,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:869,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:879,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:882,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:883,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:883,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:884,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:884,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:886,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:886,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:888,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:893,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:895,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:898,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:900,1
    - Dst: Trim
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:903,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:905,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:905,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:909,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:911,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:912,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:912,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:920,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:920,1
    - Dst: OGRVDVParseAtrFrm
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:922,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:924,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:925,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:929,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:931,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:934,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:936,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:937,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:941,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:943,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:944,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:945,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:946,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 6
    argNames:
    - poDS
    - osTableName
    - fpL
    - bOwnFP
    - bRecodeFromLatin1
    - nStartOffset
    argTypes:
    - GDALDataset*
    - CPLString
    - VSILFILE*
    - bool
    - bool
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 950
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 950
    functionName: OGRVDVLayer::OGRVDVLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - CPLDebug
    - OGRSpatialReference*::Release
    - Reference
    - VSIFTellL
    - GetFieldIndex
    - STARTS_WITH
    - CPLString::empty
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLString::substr
    - SetGeomType
    - CPLString::size
    - CSLCount
    - CPLString::Trim
    - CPLString::back
    - VSIFSeekL
    - OGRFeatureDefn::OGRFeatureDefn
    - Trim
    - SetDescription
    - OGRVDVParseAtrFrm
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - CSLDestroy
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void OGRVDVLayer::OGRVDVLayer(GDALDataset *poDS, const CPLString &osTableName,\n
      \                        VSILFILE *fpL, bool bOwnFP, bool bRecodeFromLatin1,\n
      \                        vsi_l_offset nStartOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:958,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 961
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 961
    functionName: OGRVDVLayer::~OGRVDVLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRVDVLayer::~OGRVDVLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 973
    functionName: OGRVDVLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRVDVLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pszValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 995
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 995
    functionName: OGRVDVUnescapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRVDVUnescapeString(const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1004,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1005,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1012,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1013,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1018,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1024,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1025,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1027,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1030,1
    - Dst: OGRVDVUnescapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1038,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1043,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1043,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1044,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1046,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1051,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1052,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1054,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1056,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1060,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1095,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1096,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1097,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1098,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1103,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1103,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1104,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1111,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1113
    functionName: OGRVDVLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - strncmp
    - VSIFTellL
    - GetFieldDefn
    - CPLString::empty
    - OGRPoint::OGRPoint
    - OGRFeature*::SetGeometryDirectly
    - CPLString::back
    - OGRFeature*::GetGeomFieldRef
    - VSIFSeekL
    - FilterGeometry
    - GetFieldCount
    - Evaluate
    - CPLString::pop_back
    - OGRVDVLayer::ResetReading
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRPoint*::assignSpatialReference
    - CSLDestroy
    - EQUAL
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    - OGRVDVUnescapeString
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVDVLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1121,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1126,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1135
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1135
    functionName: OGRVDVLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRVDVLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1149
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1149
    functionName: OGRVDVLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRVDVLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1162,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1163,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1164,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1166
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1166
    functionName: OGRVDVDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRVDVDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1190,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1193,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1207,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1214,1
    - Dst: OGRVDVDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1218,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1220,1
    - Dst: OGRVDVDataSource::OGRVDVDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1225,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1234,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1234,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1238,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1238,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1244,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1245,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1248,1
    - Dst: OGRVDVLayer::OGRVDVLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1248,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1252,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1265,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1266,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1267,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1268,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1269,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1270,1
    - Dst: OGRIDFDataSource::OGRIDFDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1272,1
    - Dst: OGRVDVDataSource::OGRVDVDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1276,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1281
      start: 1172
    functionDepth: 4
    functionLinenumber: 1172
    functionLinenumberEnd: 1281
    functionName: OGRVDVDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRVDVDataSource::OGRVDVDataSource
    - CPLGetBasenameSafe
    - OGRVDVDriverIdentify
    - CSLDestroy
    - EQUAL
    - VSIFOpenL
    - static_cast<OGRLayer **>
    - CPLRealloc
    - OGRIDFDataSource::OGRIDFDataSource
    - strstr
    - OGRVDVLayer::OGRVDVLayer
    - CPLFormFilenameSafe
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRVDVDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1292,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1298,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1299,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - poDS
    - pszName
    - fpL
    - bOwnFP
    - poVDV452Table
    - osVDV452Lang
    - bProfileStrict
    argTypes:
    - OGRVDVDataSource*
    - char*
    - VSILFILE*
    - bool
    - OGRVDV452Table*
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 1301
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1301
    functionName: OGRVDVWriterLayer::OGRVDVWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - SetGeomType
    linkageType: ''
    returnType: void
    signature: "void OGRVDVWriterLayer::OGRVDVWriterLayer(OGRVDVDataSource *poDS,\n
      \                                    const char *pszName, VSILFILE *fpL,\n                                     bool
      bOwnFP, OGRVDV452Table *poVDV452Table,\n                                     const
      CPLString &osVDV452Lang,\n                                     bool bProfileStrict)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVWriterLayer::StopAsCurrentLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1309,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1311,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1314,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1317
    functionName: OGRVDVWriterLayer::~OGRVDVWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - Release
    - OGRVDVWriterLayer::StopAsCurrentLayer
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRVDVWriterLayer::~OGRVDVWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1325
    functionName: OGRVDVWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVDVWriterLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1336
    functionName: OGRVDVWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVDVWriterLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1353
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1353
    functionName: OGRVDVEscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRVDVEscapeString(const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1367,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1368,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1371,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1373,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1374,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1376,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1377,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1378,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1381,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1382,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1385,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1390,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1393,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1405,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1414,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1425
    functionName: OGRVDVWriterLayer::WriteSchemaIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - GetFieldCount
    - GetFieldDefn
    linkageType: ''
    returnType: bool
    signature: bool OGRVDVWriterLayer::WriteSchemaIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1435,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1438,1
    - Dst: SetCurrentWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1441,1
    - Dst: OGRVDVWriterLayer::WriteSchemaIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1443,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1446,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1449,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1450,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1451,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1457,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1458,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1464,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1465,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1466,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1470,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1472,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1483,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1484,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1488,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1490,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1501,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1502,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1507,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1510,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1517
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1517
    functionName: OGRVDVWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - VSIFPrintfL
    - auto::toPoint
    - OGRFeature*::GetFieldAsInteger64
    - OGRVDVEscapeString
    - GetFieldCount
    - SetCurrentWriterLayer
    - auto::getGeometryType
    - OGRVDVWriterLayer::WriteSchemaIfNeeded
    - GetFieldDefn
    - CPLError
    - CPLFree
    - GetName
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVDVWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: OGRVDVWriterLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRVDVWriterLayer::GetFeatureCount(int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1537,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1539,1
    - Dst: aosFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1550,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1553,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1562,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1565,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1565,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1569,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1570,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1572,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1572,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1573,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1573,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1575,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1577,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1578,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1578,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1580,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1585,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1587
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1587
    functionName: OGRVDVWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - aosFields::size
    - GetFieldCount
    - EQUAL
    - AddFieldDefn
    - CPLError
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRVDVWriterLayer::CreateField(const OGRFieldDefn *poFieldDefn,\n
      \                                     int /* bApprox */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1595,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1600
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1600
    functionName: OGRVDVWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRVDVWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVDVWriterLayer::WriteSchemaIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1613,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1606
    functionDepth: 3
    functionLinenumber: 1606
    functionLinenumberEnd: 1617
    functionName: OGRVDVWriterLayer::StopAsCurrentLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - VSIFPrintfL
    - OGRVDVWriterLayer::WriteSchemaIfNeeded
    linkageType: ''
    returnType: void
    signature: void OGRVDVWriterLayer::StopAsCurrentLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1626
    functionName: OGRVDVWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRVDVWriterLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1639,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1639,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1655,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1656,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1657,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1658,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1659,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1675,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1676,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1677,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1678,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1679,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1680,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1681,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1682,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1683,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1684,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1690,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1691,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1692,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1693,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1694,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1695,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1696,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1700,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1700,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1703,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1703,1
    - Dst: OGRVDVEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1704,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1706,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 2
    argNames:
    - fpL
    - papszOptions
    argTypes:
    - VSILFILE*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1711
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1711
    functionName: OGRVDVWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - VSIFPrintfL
    - OGRVDVEscapeString
    - EQUAL
    - CPLUnixTimeToYMDHMS
    - time
    - strlen
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool OGRVDVWriteHeader(VSILFILE *fpL, CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1726,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1734,1
    - Dst: VDVGet452XML
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1734,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1736,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1745,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1751,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1758,1
    - Dst: OGRVDV452Table::OGRVDV452Table
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1760,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1761,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1762,1
    - Dst: OGRVDV452Tables::aosTables::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1763,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1770,1
    - Dst: OGRVDV452Field::OGRVDV452Field
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1772,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1773,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1774,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1775,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1776,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1776,1
    - Dst: OGRVDV452Table*::aosFields::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1777,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1777,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1782,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - oTables
    argTypes:
    - OGRVDV452Tables
    constantsTouched: []
    func_position:
      end: 1784
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1784
    functionName: OGRVDVLoadVDV452Tables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLParseXMLFile
    - OGRVDV452Table::OGRVDV452Table
    - CPLGetXMLNode
    - OGRVDV452Field::OGRVDV452Field
    - CPLDestroyXMLNode
    - CPLDebug
    - EQUAL
    - VDVGet452XML
    - CPLParseXMLString
    - strcmp
    - std::move
    - OGRVDV452Table*::aosFields::push_back
    - CPLGetXMLValue
    - OGRVDV452Tables::aosTables::push_back
    linkageType: ''
    returnType: bool
    signature: bool OGRVDVLoadVDV452Tables(OGRVDV452Tables &oTables)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1800,1
    - Dst: OGRVDVLoadVDV452Tables
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1803,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1811,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1816,1
    - Dst: oMapEnglish::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1818,1
    - Dst: oMapEnglish::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1819,1
    - Dst: oMapGerman::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1824,1
    - Dst: oMapGerman::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1825,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1835,1
    - Dst: oMapEnglish::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1837,1
    - Dst: oMapEnglish::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1838,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1848,1
    - Dst: oMapGerman::find
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1850,1
    - Dst: oMapGerman::end
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1863,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1876,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1877,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1882,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1884,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1902,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1904,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1905,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1905,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1910,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1912,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1913,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1917,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1925,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1927,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1928,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1931,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1932,1
    - Dst: OGRVDVDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1937,1
    - Dst: OGRVDVWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1941,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1944,1
    - Dst: OGRVDVWriterLayer::OGRVDVWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1952,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1954,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1955,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1959,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1961,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1961,1
    - Dst: OGRVDVWriterLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1963,1
    - Dst: OGRVDV452Table*::aosFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1968,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1988,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1989,1
    - Dst: OGRVDVWriterLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:1990,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 110
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1995
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1995
    functionName: OGRVDVDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - OGRVDVWriteHeader
    - VSIFTellL
    - CPLError
    - STARTS_WITH
    - OGRVDVWriterLayer*::CreateField
    - OGRVDVLoadVDV452Tables
    - VSIFTruncateL
    - CPLString::c_str
    - CPLRealloc
    - OGRVDVDataSource::GetLayerCount
    - oMapEnglish::find
    - oMapEnglish::end
    - STARTS_WITH_CI
    - oMapGerman::end
    - VSIFSeekL
    - OGRGeomFieldDefn*::GetType
    - OGRFieldDefn::SetSubType
    - OGRVDVWriterLayer*::GetLayerDefn
    - VSIFOpenL
    - OGRVDV452Table*::aosFields::size
    - VSIFReadL
    - CPLFormFilenameSafe
    - oMapGerman::find
    - VSIFCloseL
    - OGRFieldDefn::SetWidth
    - CSLFetchNameValueDef
    - OGRVDVWriterLayer::OGRVDVWriterLayer
    - EQUAL
    - static_cast<OGRLayer **>
    - VSIFWriteL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRVDVDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StopAsCurrentLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRVDVWriterLayer*
    constantsTouched: []
    func_position:
      end: 2010
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2010
    functionName: OGRVDVDataSource::SetCurrentWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - StopAsCurrentLayer
    linkageType: ''
    returnType: void
    signature: void OGRVDVDataSource::SetCurrentWriterLayer(OGRVDVWriterLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2019,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2025
      start: 2016
    functionDepth: 0
    functionLinenumber: 2016
    functionLinenumberEnd: 2025
    functionName: OGRVDVDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRVDVDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2041,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2043,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2055,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2057,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2065,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2068,1
    - Dst: OGRVDVDataSource::OGRVDVDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2075
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2075
    functionName: OGRVDVDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - OGRVDVDataSource::OGRVDVDataSource
    - VSIMkdir
    - VSIFOpenL
    - CPLError
    - VSIStrerror
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRVDVDataSource::Create(const char *pszName, int /*nXSize*/,\n
      \                                     int /*nYSize*/, int /*nBands*/,\n                                      GDALDataType
      /*eType*/,\n                                      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2084,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2087,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2089,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2090,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2091,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2092,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2093,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2094,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2095,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2096,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2097,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2098,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2106,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2107,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2108,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2121,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp:2163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2081
    functionDepth: 1
    functionLinenumber: 2081
    functionLinenumberEnd: 2164
    functionName: RegisterOGRVDV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogrvdvdatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRVDV()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: OGRVDVLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: OGRVDVLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nTotalFeatureCount
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: OGRVDVLayer::SetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFeatureCount(GIntBig nTotalFeatureCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: OGRVDV452Field::OGRVDV452Field
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVDV452Field()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: OGRVDV452Tables::OGRVDV452Tables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVDV452Tables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: ~OGRVDV452Tables()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void ~OGRVDV452Tables()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: OGRVDVWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vdv/ogr_vdv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: OGRGeoRSSDataSource::OGRGeoRSSDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSDataSource::OGRGeoRSSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:63,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:64,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:68,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:71,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: OGRGeoRSSDataSource::~OGRGeoRSSDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSDataSource::~OGRGeoRSSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:86,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: OGRGeoRSSDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoRSSDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: OGRGeoRSSDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGeoRSSDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:122,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:125,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:126,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:127,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:132,1
    - Dst: static_cast<OGRGeoRSSLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:139,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:140,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:144,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:145,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:147,1
    - Dst: OGRGeoRSSLayer::OGRGeoRSSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:147,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 153
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 153
    functionName: OGRGeoRSSDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - GetDescription
    - OGRSpatialReference::SetAxisMappingStrategy
    - OGRSpatialReference*::Release
    - CPLRealloc
    - static_cast<OGRGeoRSSLayer **>
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::IsSame
    - OGRGeoRSSLayer::OGRGeoRSSLayer
    - CPLError
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRGeoRSSDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:165,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:170,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:171,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:176,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 194
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 194
    functionName: OGRGeoRSSDataSource::startElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSDataSource::startElementValidateCbk(const char *pszNameIn,\n
      \                                                 const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:206,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: OGRGeoRSSDataSource::dataHandlerValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSDataSource::dataHandlerValidateCbk(const char * /* data
      */,\n                                                 int /* nLen */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGeoRSSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:216,1
    - Dst: OGRGeoRSSDataSource*::startElementValidateCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: startElementValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRGeoRSSDataSource *>
    - OGRGeoRSSDataSource*::startElementValidateCbk
    linkageType: ''
    returnType: void
    signature: "void startElementValidateCbk(void *pUserData,\n                                            const
      char *pszName,\n                                            const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGeoRSSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:223,1
    - Dst: OGRGeoRSSDataSource*::dataHandlerValidateCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: dataHandlerValidateCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRGeoRSSDataSource *>
    - OGRGeoRSSDataSource*::dataHandlerValidateCbk
    linkageType: ''
    returnType: void
    signature: "void dataHandlerValidateCbk(void *pUserData, const char *data,\n                                           int
      nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:237,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:245,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:251,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:252,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:253,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:254,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:269,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:270,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:270,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:270,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:271,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:272,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:272,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:279,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:279,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:280,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:280,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:280,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:280,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:281,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:283,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:286,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:286,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:287,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:287,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:288,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:288,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:311,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:313,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:317,1
    - Dst: static_cast<OGRGeoRSSLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:320,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:321,1
    - Dst: OGRGeoRSSLayer::OGRGeoRSSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:323,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:328,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:335,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:336,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:336,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:337,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:339,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:343,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 347
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 347
    functionName: OGRGeoRSSDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - XML_ParserFree
    - CPLDebug
    - OGRCreateExpatXMLParser
    - CPLError
    - XML_ErrorString
    - static_cast<unsigned int>
    - XML_GetCurrentLineNumber
    - CPLRealloc
    - OGRGeoRSSLayer::OGRGeoRSSLayer
    - XML_SetUserData
    - XML_GetCurrentColumnNumber
    - std::vector::data
    - static_cast<int>
    - XML_GetErrorCode
    - VSIFOpenL
    - static_cast<OGRGeoRSSLayer **>
    - strstr
    - VSIFReadL
    - XML_SetElementHandler
    - XML_Parse
    - VSIFCloseL
    - XML_SetCharacterDataHandler
    linkageType: ''
    returnType: int
    signature: int OGRGeoRSSDataSource::Open(const char *pszFilename, int bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:357,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:361,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:371,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:384,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:394,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:405,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:409,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:412,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:419,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:436,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:440,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:444,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:450,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:454,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:458,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:462,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:469,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:474,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:477,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:479,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:483,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:486,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:489,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:490,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:493,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:497,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:498,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:500,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:505,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:507,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:509,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:512,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:515,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:518,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:522,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:523,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:524,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp:526,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 531
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 531
    functionName: OGRGeoRSSDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - VSIFPrintfL
    - VSIStatL
    - EQUAL
    - VSIFOpenL
    - CPLAssert
    - strcmp
    - CPLError
    - CSLFetchNameValue
    linkageType: ''
    returnType: int
    signature: int OGRGeoRSSDataSource::Create(const char *pszFilename, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: OGRGeoRSSDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogr_georss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: OGRGeoRSSDataSource::GetOutputFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogr_georss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: OGRGeoRSSDataSource::GetFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogr_georss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeoRSSFormat
    signature: OGRGeoRSSFormat GetFormat()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: OGRGeoRSSDataSource::GetGeomDialect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogr_georss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeoRSSGeomDialect
    signature: OGRGeoRSSGeomDialect GetGeomDialect()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: OGRGeoRSSDataSource::GetUseExtensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogr_georss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUseExtensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:104,1
    - Dst: OGRGeoRSSDataSource*::GetFormat
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:105,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:136,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:136,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:137,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:141,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:142,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:150,1
    - Dst: OGRGeoRSSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - pszFilename
    - pszLayerName
    - poDS_
    - poSRSIn
    - bWriteMode_
    argTypes:
    - char*
    - char*
    - OGRGeoRSSDataSource*
    - OGRSpatialReference*
    - bool
    constantsTouched: []
    func_position:
      end: 157
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 157
    functionName: OGRGeoRSSLayer::OGRGeoRSSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeoRSSDataSource*::GetFormat
    - OGRGeoRSSLayer::ResetReading
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - VSIFOpenL
    - Reference
    - CPLError
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSLayer::OGRGeoRSSLayer(const char *pszFilename,\n                               const
      char *pszLayerName,\n                               OGRGeoRSSDataSource *poDS_,\n
      \                              OGRSpatialReference *poSRSIn, bool bWriteMode_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:168,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:170,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:173,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:175,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:176,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:177,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:178,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:180,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:186,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: OGRGeoRSSLayer::~OGRGeoRSSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLHashSetDestroy
    - VSIFCloseL
    - XML_ParserFree
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::~OGRGeoRSSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoRSSLayer::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: OGRGeoRSSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoRSSLayer::LoadSchema
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRGeoRSSLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: startElementCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - startElementCbk
    linkageType: ''
    returnType: void
    signature: "void startElementCbk(void *pUserData, const char *pszName,\n                                    const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: endElementCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - endElementCbk
    linkageType: ''
    returnType: void
    signature: void endElementCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dataHandlerCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - dataHandlerCbk
    linkageType: ''
    returnType: void
    signature: void dataHandlerCbk(void *pUserData, const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:241,1
    - Dst: VSIFClearErrL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:242,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:245,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:247,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:248,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:249,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:250,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:261,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:266,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:270,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:275,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 289
    functionName: OGRGeoRSSLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFClearErrL
    - XML_SetElementHandler
    - CPLHashSetDestroy
    - VSIFSeekL
    - XML_ParserFree
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:304,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: OGRGeoRSSLayer::AddStrToSubElementValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::AddStrToSubElementValue(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: OGRGeoRSS_GetOGRCompatibleTagName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRGeoRSS_GetOGRCompatibleTagName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: OGRGeoRSSLayerATOMTagHasSubElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoRSSLayerATOMTagHasSubElement(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:361,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:364,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:371,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:372,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:386,1
    - Dst: CPLHashSetNew
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:388,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:397,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:401,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:403,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:405,1
    - Dst: OGRGeoRSSLayerATOMTagHasSubElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:408,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:410,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:411,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:414,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:417,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:419,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:419,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:421,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:421,1
    - Dst: IS_LAT_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:433,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:435,1
    - Dst: IS_LON_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:442,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:447,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:448,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:449,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:450,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:451,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:453,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:456,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:457,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:458,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:460,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:461,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:467,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:468,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:469,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:470,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:471,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:472,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:473,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:475,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:478,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:478,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:481,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:485,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:488,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:494,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:496,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:501,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:504,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:513,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:517,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:518,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:518,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:522,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:522,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:526,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:527,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:538,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:540,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:541,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:543,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:545,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:554,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:556,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:567,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:568,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:572,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:573,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:574,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:575,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:576,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:578,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 145
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 582
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 582
    functionName: OGRGeoRSSLayer::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - STARTS_WITH
    - SetField
    - CPLStrdup
    - CPLHashSetNew
    - CPLHashSetInsert
    - CPLAtof
    - CPLHashSetDestroy
    - CPLSPrintf
    - CPLHashSetLookup
    - IS_LON_ELEMENT
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRGeoRSSLayer::AddStrToSubElementValue
    - SetFID
    - OGRGeoRSSLayerATOMTagHasSubElement
    - IS_LAT_ELEMENT
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::startElementCbk(const char *pszName, const char
      **ppszAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:595,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:595,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:598,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 605
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 605
    functionName: OGRGeoRSSLayerTrimLeadingAndTrailingSpaces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - static_cast<int>
    - memmove
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayerTrimLeadingAndTrailingSpaces(char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:630,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:630,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:631,1
    - Dst: SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:633,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:638,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:639,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:642,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:642,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:643,1
    - Dst: static_cast<OGRFeature **>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:645,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:645,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:664,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:668,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:670,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:670,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:672,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:675,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:677,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:681,1
    - Dst: OGRGeoRSSLayerATOMTagHasSubElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:684,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:690,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:691,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:692,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:699,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:699,1
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:700,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:702,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:708,1
    - Dst: OGRSpatialReference*::importFromURN
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:709,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:710,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:711,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:720,1
    - Dst: OGRGeoRSSLayerTrimLeadingAndTrailingSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:739,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:749,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:750,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:752,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:758,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:759,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:758,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:763,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:767,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:767,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:768,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:773,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:774,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:776,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:777,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:781,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:781,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:782,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:791,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:792,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:793,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:794,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:795,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:799,1
    - Dst: IS_LAT_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:804,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:810,1
    - Dst: IS_LON_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:814,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:820,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:830,1
    - Dst: OGRParseRFC822DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:834,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:836,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:838,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:840,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:844,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:851,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:853,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:854,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:856,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:860,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:862,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:869,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:870,1
    - Dst: OGRGeoRSSLayer::AddStrToSubElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:871,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:878,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:895,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 170
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 899
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 899
    functionName: OGRGeoRSSLayer::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::swapXY
    - OGRParseXMLDateTime
    - OGRSpatialReference*::importFromURN
    - OGRSpatialReference*::Release
    - strcmp
    - GetFieldDefn
    - CPLError
    - OGRPolygon*::addRingDirectly
    - STARTS_WITH
    - OGRPolygon::OGRPolygon
    - static_cast<OGRFeature **>
    - SetField
    - OGRPoint::OGRPoint
    - CPLRealloc
    - OGR_G_CreateFromGML
    - OGRLineString::OGRLineString
    - CPLAtof
    - OGRLinearRing::OGRLinearRing
    - Evaluate
    - FilterGeometry
    - SetGeometry
    - GetGeometryRef
    - CPLAssert
    - IS_LON_ELEMENT
    - OGRGeoRSSLayerTrimLeadingAndTrailingSpaces
    - CPLFree
    - OGRParseRFC822DateTime
    - OGRGeometry*::IsEmpty
    - OGRSpatialReference::OGRSpatialReference
    - OGRLineString*::addPoint
    - OGRGeoRSSLayer::AddStrToSubElementValue
    - CSLDestroy
    - OGRLinearRing*::addPoint
    - OGRGeoRSSLayerATOMTagHasSubElement
    - SetGeometryDirectly
    - IS_LAT_ELEMENT
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::endElementCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:917,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 925
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 925
    functionName: OGRGeoRSSLayer::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::dataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:936,1
    - Dst: OGRGeoRSSLayer::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:945,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:956,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:956,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:959,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:970,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:971,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:973,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:976,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:976,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:977,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:977,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:978,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:978,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 987
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 987
    functionName: OGRGeoRSSLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFEofL
    - XML_Parse
    - OGRGeoRSSLayer::LoadSchema
    - XML_ErrorString
    - std::vector::size
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - VSIFErrorL
    - CPLError
    - XML_GetCurrentColumnNumber
    - CPLFree
    - std::vector::data
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoRSSLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:998,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1007,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1020,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1026,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - pszName
    - papszNames
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1032
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1032
    functionName: OGRGeoRSSLayerIsStandardFieldInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoRSSLayerIsStandardFieldInternal(const char *pszName,\n
      \                                                 const char *const *papszNames)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoRSSLayerIsStandardFieldInternal
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1042,1
    - Dst: OGRGeoRSSLayerIsStandardFieldInternal
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1050
    functionName: OGRGeoRSSLayer::IsStandardField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoRSSLayerIsStandardFieldInternal
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoRSSLayer::IsStandardField(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1070,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1075,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1078,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1079,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1083,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1088,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1095,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - pszName
    - osElementName
    - osNumber
    - osAttributeName
    argTypes:
    - char*
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 1098
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1098
    functionName: OGRGeoRSSLayerSplitComposedField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - std::string::resize
    - std::string::clear
    - std::string::substr
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSLayerSplitComposedField(const char *pszName,\n                                             std::string
      &osElementName,\n                                             std::string &osNumber,\n
      \                                            std::string &osAttributeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1111,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1115,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1115,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1117,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1124,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1128,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1129,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1131,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1138,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1140,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1144,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1145,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1147,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - fp
    - pszElementName
    - pszNumber
    - papszNames
    - poFeatureDefn
    - poFeature
    argTypes:
    - VSILFILE*
    - char*
    - char*
    - char**
    - OGRFeatureDefn*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1154
    functionName: OGRGeoRSSLayerWriteSimpleElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - VSIFPrintfL
    - strncmp
    - strlen
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSLayerWriteSimpleElement(VSILFILE *fp,\n                                             const
      char *pszElementName,\n                                             const char
      *pszNumber,\n                                             const char *const
      *papszNames,\n                                             OGRFeatureDefn *poFeatureDefn,\n
      \                                            OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFP
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1163,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1177,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1180,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1182,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1184,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1189,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1195,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1197,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1201,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1203,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1208,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1210,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1219,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1222,1
    - Dst: OGRGeoRSSLayerSplitComposedField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1228,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1241,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1247,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1247,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1251,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1252,1
    - Dst: OGRGeoRSSLayerSplitComposedField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1258,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1259,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1263,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1269,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1270,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1271,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1272,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1276,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1276,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1287,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1289,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1292,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1294,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1295,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1297,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1299,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1300,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1302,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1304,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1306,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1308,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1315,1
    - Dst: OGRGeoRSSLayerWriteSimpleElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1317,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1318,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1318,1
    - Dst: OGRGeoRSSLayerWriteSimpleElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1327,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1328,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1328,1
    - Dst: OGRGeoRSSLayerWriteSimpleElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1339,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1340,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1340,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1344,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1345,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1347,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1349,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1355,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1357,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1357,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1361,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1362,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1364,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1367,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1367,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1368,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1369,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1373,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1374,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1376,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1379,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1379,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1380,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1381,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1385,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1386,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1388,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1390,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1393,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1393,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1399,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1400,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1402,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1405,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1407,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1407,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1409,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1414,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1418,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1419,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1421,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1425,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1426,1
    - Dst: OGRGeoRSSLayer::IsStandardField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1449,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1455,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1457,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1462,1
    - Dst: GetGeomDialect
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1464,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1465,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1466,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1480,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1481,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1481,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1489,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1502,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1514,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1514,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1518,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1523,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1525,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1526,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1528,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1530,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1531,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1536,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1538,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1540,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1544,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1545,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1550,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1551,1
    - Dst: OGRFormatDouble
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1552,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1553,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1560,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1563,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1565,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1566,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1572,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1574,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1576,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1581,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1587,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1588,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1590,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1601,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1602,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1608,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1610,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1611,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1618,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1620,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1622,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1628,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1634,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1635,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1637,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1650,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1654,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1656,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 246
    argCount: 1
    argNames:
    - poFeatureIn
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1659
    functionName: OGRGeoRSSLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsString
    - strcmp
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - STARTS_WITH
    - std::string::c_str
    - OGRGeoRSSLayerSplitComposedField
    - std::string::empty
    - CPLStrdup
    - OGRGeoRSSLayer::IsStandardField
    - OGRFeature*::GetRawFieldRef
    - strlen
    - wkbFlatten
    - OGRGeoRSSLayerWriteSimpleElement
    - GetGeomDialect
    - IsGeographic
    - OGRGeometry*::getGeometryType
    - VSIFPrintfL
    - STARTS_WITH_CI
    - GetOutputFP
    - OGRFieldDefn*::GetNameRef
    - OGRGeometry*::getCoordinateDimension
    - CPLSPrintf
    - CPLFree
    - OGRPoint*::getZ
    - OGRFormatDouble
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::IsEmpty
    - OGRGeometry*::toLineString
    - strchr
    - EQUAL
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    - OGRMakeWktCoordinate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoRSSLayer::ICreateFeature(OGRFeature *poFeatureIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1669,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1670,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1671,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1672,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1673,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1675,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1680,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1682,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1682,1
    - Dst: OGRGeoRSSLayer::IsStandardField
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1689,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1691,1
    - Dst: GetUseExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1695,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1697,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - poFieldDefn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1709
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1709
    functionName: OGRGeoRSSLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoRSSLayer::IsStandardField
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - strcmp
    - AddFieldDefn
    - GetUseExtensions
    - GetFieldDefn
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoRSSLayer::CreateField(const OGRFieldDefn *poFieldDefn,\n
      \                                  CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: startElementLoadSchemaCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1718
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1718
    functionName: startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - startElementLoadSchemaCbk
    linkageType: ''
    returnType: void
    signature: "void startElementLoadSchemaCbk(void *pUserData,\n                                              const
      char *pszName,\n                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: endElementLoadSchemaCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1724
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1724
    functionName: endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - endElementLoadSchemaCbk
    linkageType: ''
    returnType: void
    signature: "void endElementLoadSchemaCbk(void *pUserData,\n                                            const
      char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dataHandlerLoadSchemaCbk
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1730
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1730
    functionName: dataHandlerLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 1
    functionsReached:
    - dataHandlerLoadSchemaCbk
    linkageType: ''
    returnType: void
    signature: "void dataHandlerLoadSchemaCbk(void *pUserData, const char *data,\n
      \                                            int nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1747,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1748,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1750,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1751,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1753,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1762,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1780,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1781,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1781,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1784,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1787,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1787,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1788,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1788,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1789,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1789,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1795,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1799,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1804,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1809,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1810,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1811,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1815,1
    - Dst: importFromURN
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1816,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1821,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1822,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1823,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1826,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1828,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1830,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1833,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1834
    functionName: OGRGeoRSSLayer::LoadSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 2
    functionsReached:
    - std::vector::size
    - GetGeomFieldDefn
    - XML_ParserFree
    - OGRCreateExpatXMLParser
    - SetWellKnownGeogCS
    - CPLError
    - GetGeomFieldCount
    - importFromURN
    - XML_ErrorString
    - SetGeomType
    - XML_GetCurrentLineNumber
    - SetAxisMappingStrategy
    - XML_SetUserData
    - XML_GetCurrentColumnNumber
    - std::vector::data
    - static_cast<int>
    - CPLHashSetDestroy
    - VSIFSeekL
    - XML_GetErrorCode
    - CPLAssert
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - XML_SetElementHandler
    - XML_Parse
    - XML_SetCharacterDataHandler
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::LoadSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1853,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1856,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1864,1
    - Dst: CPLHashSetNew
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1866,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1872,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1875,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1877,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1879,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1881,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1885,1
    - Dst: OGRGeoRSSLayerATOMTagHasSubElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1888,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1890,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1891,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1894,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1897,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1899,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1899,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1902,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1907,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1907,1
    - Dst: IS_GEO_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1912,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1914,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1917,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1918,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1921,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1924,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1925,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1925,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1927,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1927,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1935,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1938,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1940,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1942,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1946,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1948,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1950,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1951,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1957,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1959,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1959,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1961,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1963,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1965,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1977,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1981,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1986,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1987,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1988,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1990,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1992,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1994,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1998,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:1999,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2001,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2004,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2008,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2011,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2014,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2016,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2017,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2018,1
    - Dst: IS_LAT_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2018,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2019,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2020,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2028,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2029,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2030,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2031,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2032,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2033,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2034,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2041,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2046,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2050,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2065,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2067,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2073,1
    - Dst: IS_LAT_ELEMENT
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2073,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2074,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2078,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2082,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2083,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2084,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2088,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2092,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2093,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2094,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2095,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2099,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2111,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2117,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 153
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2122
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 2122
    functionName: OGRGeoRSSLayer::startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - wkbSetZ
    - strcmp
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - STARTS_WITH
    - CPLStrdup
    - AddFieldDefn
    - wkbFlatten
    - CPLHashSetNew
    - CPLHashSetInsert
    - CPLHashSetDestroy
    - GetFieldCount
    - CPLSPrintf
    - CPLHashSetLookup
    - OGRFieldDefn*::GetType
    - IS_GEO_ELEMENT
    - CPLFree
    - OGRFieldDefn*::SetType
    - XML_StopParser
    - OGRGeoRSSLayerATOMTagHasSubElement
    - IS_LAT_ELEMENT
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void OGRGeoRSSLayer::startElementLoadSchemaCbk(const char *pszName,\n
      \                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2146,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2149,1
    - Dst: OGRGeoRSSLayerATOMTagHasSubElement
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2154,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2164,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2165,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2167,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2170,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2179,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2181,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 34
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2186
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2186
    functionName: OGRGeoRSSLayer::endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - SetType
    - strcmp
    - GetType
    - OGRGeoRSSLayerATOMTagHasSubElement
    - CPLFree
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::endElementLoadSchemaCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2200,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2202,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2215,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2220,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2224,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2231
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2231
    functionName: OGRGeoRSSLayer::dataHandlerLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::dataHandlerLoadSchemaCbk(const char *data, int
      nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2233
    functionDepth: 0
    functionLinenumber: 2233
    functionLinenumberEnd: 2235
    functionName: OGRGeoRSSLayer::LoadSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoRSSLayer::LoadSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2249,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2254,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2260
      start: 2242
    functionDepth: 0
    functionLinenumber: 2242
    functionLinenumberEnd: 2260
    functionName: OGRGeoRSSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoRSSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2271,1
    - Dst: OGRGeoRSSLayer::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2277,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp:2280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2283
      start: 2266
    functionDepth: 3
    functionLinenumber: 2266
    functionLinenumberEnd: 2283
    functionName: OGRGeoRSSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRLayer::GetFeatureCount
    - OGRGeoRSSLayer::LoadSchema
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoRSSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2292
    functionName: OGRGeoRSSLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorsslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoRSSLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:35,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:36,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:37,1
    - Dst: OGRGeoRSSDataSource::OGRGeoRSSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:40,1
    - Dst: OGRGeoRSSDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 49
    functionName: OGRGeoRSSDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoRSSDataSource::OGRGeoRSSDataSource
    - OGRGeoRSSDataSource*::Open
    - strstr
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoRSSDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoRSSDataSource::OGRGeoRSSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:60,1
    - Dst: OGRGeoRSSDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: OGRGeoRSSDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoRSSDataSource::OGRGeoRSSDataSource
    - OGRGeoRSSDataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRGeoRSSDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                      CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                     CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: OGRGeoRSSDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGeoRSSDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:91,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:94,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:97,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:99,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:101,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:103,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:106,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:108,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:147,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:149,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:150,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 157
    functionName: RegisterOGRGeoRSS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/georss/ogrgeorssdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGeoRSS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:24,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:26,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:27,1
    - Dst: OGRHANA::HanaVersion::HanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:28,1
    - Dst: OGRHANA::HanaVersion::HanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:30,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:30,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:30,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: OGRHANA::HanaVersion::fromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::HanaVersion::HanaVersion
    - atoi
    - CPLString::replaceAll
    - CSLTokenizeString2
    - CPLStringList::size
    linkageType: ''
    returnType: HanaVersion
    signature: HanaVersion HanaVersion::fromString(const char *version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: OGRHANA::SkipLeadingSpaces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SkipLeadingSpaces(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:44,1
    - Dst: decorator
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:46,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - strs
    - delimiter
    argTypes:
    - std::vector<CPLString>
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: OGRHANA::JoinStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - decorator
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: CPLString
    signature: "CPLString JoinStrings(const std::vector<CPLString> &strs, const char
      *delimiter,\n                      CPLString (*decorator)(const CPLString &str))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:62,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:62,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - delimiter
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: OGRHANA::SplitStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - CPLString::Trim
    - CSLDestroy
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: std::vector<CPLString> SplitStrings(const char *str, const char *delimiter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - schemaName
    - tableName
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: OGRHANA::GetFullTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetFullTableName(const CPLString &schemaName,\n                           const
      CPLString &tableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:82,1
    - Dst: OGRHANA::QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:83,1
    - Dst: OGRHANA::QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:84,1
    - Dst: OGRHANA::QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - schemaName
    - tableName
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: OGRHANA::GetFullTableNameQuoted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::QuotedIdentifier
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetFullTableNameQuoted(const CPLString &schemaName,\n                                 const
      CPLString &tableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:91,1
    - Dst: OGRHANA::QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - schemaName
    - tableName
    - columnName
    argTypes:
    - CPLString
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: OGRHANA::GetFullColumnNameQuoted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::QuotedIdentifier
    - OGRHANA::GetFullTableNameQuoted
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetFullColumnNameQuoted(const CPLString &schemaName,\n                                  const
      CPLString &tableName,\n                                  const CPLString &columnName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: OGRHANA::Literal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: CPLString Literal(const CPLString &value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: OGRHANA::QuotedIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString QuotedIdentifier(const CPLString &value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - fieldType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: OGRHANA::IsArrayField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsArrayField(OGRFieldType fieldType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - wkbType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: OGRHANA::IsGeometryTypeSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: bool
    signature: bool IsGeometryTypeSupported(OGRwkbGeometryType wkbType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:137,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:138,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:139,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:140,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:142,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:143,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:145,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:146,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:148,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:149,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:150,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:151,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:153,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:154,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:156,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - type
    - hasZ
    - hasM
    argTypes:
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: OGRHANA::ToWkbType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_SetModifier
    - strcmp
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType ToWkbType(const char *type, bool hasZ, bool hasM)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: OGRHANA::ToPlanarSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ToPlanarSRID(int srid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: OGRHanaLayerCreationOptionsConstants::GetList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * OGRHanaLayerCreationOptionsConstants::GetList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 64
    functionName: OGRHanaOpenOptionsConstants::GetList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * OGRHanaOpenOptionsConstants::GetList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: OGRHanaDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRHanaDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:89,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:91,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:92,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:93,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:94,1
    - Dst: OGRHanaOpenOptionsConstants::GetList
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:96,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:98,1
    - Dst: OGRHanaLayerCreationOptionsConstants::GetList
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:99,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:107,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: OGRHANADriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp
    functionUses: 0
    functionsReached:
    - OGRHanaOpenOptionsConstants::GetList
    - OGRHanaLayerCreationOptionsConstants::GetList
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRHANADriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:130,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:134,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:136,1
    - Dst: OGRHANADriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:139,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 141
    functionName: DeclareDeferredOGRHANAPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRHANADriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRHANAPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - feature
    argTypes:
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: OGRHANA::OGRHanaFeatureWriter::OGRHanaFeatureWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaFeatureWriter::OGRHanaFeatureWriter(OGRFeature &feature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Long::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:40,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:41,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:43,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Long
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Long::isNull
    - static_cast<GIntBig>
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Long &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Float::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:49,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:50,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:52,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Float
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - odbc::Float::isNull
    - SetField
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Float &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Decimal::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:58,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:59,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:61,1
    - Dst: odbc::Decimal::toString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Decimal
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Decimal::isNull
    - odbc::Decimal::toString
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Decimal &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::String::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:67,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:68,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:70,1
    - Dst: odbc::String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::String
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - odbc::String::isNull
    - SetField
    - SetFieldNull
    - odbc::String::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::String &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Date::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:76,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:77,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:79,1
    - Dst: odbc::Date::year
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:79,1
    - Dst: odbc::Date::month
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:79,1
    - Dst: odbc::Date::day
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Date
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Date::year
    - odbc::Date::month
    - odbc::Date::day
    - odbc::Date::isNull
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Date &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Time::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:86,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:87,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:89,1
    - Dst: odbc::Time::hour
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:89,1
    - Dst: odbc::Time::minute
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:89,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:90,1
    - Dst: odbc::Time::second
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Time
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - odbc::Time::second
    - SetField
    - odbc::Time::isNull
    - static_cast<float>
    - odbc::Time::hour
    - odbc::Time::minute
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Time &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Timestamp::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:96,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:97,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:99,1
    - Dst: odbc::Timestamp::year
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:99,1
    - Dst: odbc::Timestamp::month
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:99,1
    - Dst: odbc::Timestamp::day
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:100,1
    - Dst: odbc::Timestamp::hour
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:100,1
    - Dst: odbc::Timestamp::minute
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:100,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:101,1
    - Dst: odbc::Timestamp::second
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:101,1
    - Dst: odbc::Timestamp::milliseconds
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Timestamp
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Timestamp::year
    - odbc::Timestamp::day
    - odbc::Timestamp::isNull
    - static_cast<float>
    - odbc::Timestamp::minute
    - odbc::Timestamp::hour
    - odbc::Timestamp::milliseconds
    - odbc::Timestamp::second
    - odbc::Timestamp::month
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Timestamp &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Binary::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:109,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:110,1
    - Dst: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:112,1
    - Dst: odbc::Binary::data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:112,1
    - Dst: odbc::Binary::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Binary
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 1
    functionsReached:
    - SetFieldNull
    - odbc::Binary::isNull
    - odbc::Binary::data
    - odbc::Binary::size
    - OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Binary &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:118,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 1
    functionsReached:
    - SetFieldNull
    - SetField
    linkageType: ''
    returnType: void
    signature: void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex, const char
      *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:126,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:128,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:134,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:136,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - fieldIndex
    - value
    - size
    argTypes:
    - int
    - void*
    - std::size_t
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 1
    functionsReached:
    - SetFieldNull
    - simple_max
    - SetField
    - static_cast<int>
    - CPLError
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex, const void
      *value,\n                                         std::size_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Binary::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:142,1
    - Dst: odbc::Binary::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:142,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:144,1
    - Dst: reinterpret_cast<const int16_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:166,1
    - Dst: reinterpret_cast<const int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:171,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:177,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:183,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:188,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:190,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:191,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:198,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Binary
    constantsTouched: []
    func_position:
      end: 200
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 200
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValueAsStringArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.cpp
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - reinterpret_cast<const int16_t *>
    - SetField
    - odbc::Binary::isNull
    - CSLAddString
    - CSLDestroy
    - reinterpret_cast<const int32_t *>
    - odbc::Binary::size
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValueAsStringArray(int fieldIndex,\n
      \                                                     const odbc::Binary &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - datasource
    - query
    argTypes:
    - OGRHanaDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: OGRHANA::OGRHanaResultLayer::OGRHanaResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRHanaResultLayer::OGRHanaResultLayer(OGRHanaDataSource *datasource,\n
      \                                      const char *query)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSchemaAndTableNames
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:45,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:45,1
    - Dst: InitFeatureDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: OGRHANA::OGRHanaResultLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - InitFeatureDefinition
    - FindSchemaAndTableNames
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaResultLayer::Initialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:57,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:59,1
    - Dst: IsFastExtentAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:60,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:62,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:63,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:65,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:66,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - capabilities
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: OGRHANA::OGRHanaResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanaresultlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - size
    - EnsureInitialized
    - IsFastExtentAvailable
    linkageType: ''
    returnType: int
    signature: int OGRHanaResultLayer::TestCapability(const char *capabilities)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:54,1
    - Dst: CPLString::find_first_of
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:67,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:69,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:70,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:74,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:74,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:82,1
    - Dst: getOptValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:87,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:88,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:97,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:98,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:99,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:99,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:101,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:102,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:103,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:104,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:105,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:106,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:111,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:112,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:113,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:115,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:116,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:117,1
    - Dst: checkIgnoredOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:118,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:122,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:129,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:130,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:130,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:132,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:133,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:134,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:140,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:141,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:141,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:144,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:146,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:147,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:149,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:151,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:153,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:155,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:159,1
    - Dst: addOptParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:160,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:162,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:165,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:165,1
    - Dst: addParameter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:166,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:166,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 1
    argNames:
    - openOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 169
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 169
    functionName: BuildConnectionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - GDALVersionInfo
    - checkIgnoredOptParameter
    - CPLFetchBool
    - addOptParameter
    - CPLString::Printf
    - CPLString::replaceAll
    - CPLString::c_str
    - CPLString::find_first_of
    - JoinStrings
    - CPLString
    - addParameter
    - CPLError
    - getOptValue
    linkageType: ''
    returnType: CPLString
    signature: CPLString BuildConnectionString(char **openOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - papszStrList
    - pszKey
    - defaultValue
    argTypes:
    - CSLConstList
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: CPLFetchInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int CPLFetchInt(CSLConstList papszStrList, const char *pszKey, int
      defaultValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::ResultSet::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:182,1
    - Dst: odbc::ResultSet::getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:184,1
    - Dst: odbc::Int::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:185,1
    - Dst: odbc::ResultSet::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - resultSet
    argTypes:
    - odbc::ResultSet
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: GetSrid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::Int::isNull
    - odbc::ResultSet::close
    - odbc::ResultSet::getInt
    - odbc::ResultSet::next
    linkageType: ''
    returnType: int
    signature: int GetSrid(odbc::ResultSet &resultSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Connection::prepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:201,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:201,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:202,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:202,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:203,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:203,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:205,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:205,1
    - Dst: GetSrid
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:206,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - conn
    - schemaName
    - tableName
    - columnName
    argTypes:
    - odbc::Connection
    - CPLString
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: GetColumnSrid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::Connection::prepareStatement
    - odbc::PreparedStatementRef::executeQuery
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - CPLString::c_str
    - GetSrid
    linkageType: ''
    returnType: int
    signature: "int GetColumnSrid(odbc::Connection &conn, const CPLString &schemaName,\n
      \                 const CPLString &tableName, const CPLString &columnName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:212,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:215,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:216,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:216,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:216,1
    - Dst: odbc::Connection::createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:218,1
    - Dst: GetSrid
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:219,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:219,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - query
    - columnName
    argTypes:
    - odbc::Connection
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: GetColumnSrid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - QuotedIdentifier
    - CPLString::c_str
    - odbc::Connection::createStatement
    - CPLString
    - GetSrid
    - odbc::StatementRef::executeQuery
    linkageType: ''
    returnType: int
    signature: "int GetColumnSrid(odbc::Connection &conn, const CPLString &query,\n
      \                 const CPLString &columnName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:224,1
    - Dst: odbc::Connection::createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:228,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:229,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:231,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:232,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:232,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:233,1
    - Dst: odbc::ResultSetRef::getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:235,1
    - Dst: odbc::Int::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:236,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - whereCondition
    argTypes:
    - odbc::Connection
    - CPLString
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: GetSridWithFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::Int::isNull
    - odbc::ResultSetRef::getInt
    - odbc::ResultSetRef::next
    - odbc::Connection::createStatement
    - CPLAssert
    - CPLString::c_str
    - CPLString
    - odbc::StatementRef::executeQuery
    - odbc::ResultSetRef::close
    linkageType: ''
    returnType: int
    signature: int GetSridWithFilter(odbc::Connection &conn, const CPLString &whereCondition)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Connection::prepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:252,1
    - Dst: odbc::PreparedStatementRef::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:253,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:253,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:254,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:255,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:257,1
    - Dst: odbc::String::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:258,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:261,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - srid
    argTypes:
    - odbc::Connection
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: GetSrsWktById
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::Connection::prepareStatement
    - odbc::PreparedStatementRef::executeQuery
    - odbc::PreparedStatementRef::setInt
    - odbc::String::isNull
    - odbc::ResultSetRef::next
    - WriteVarUInt
    - odbc::ResultSetRef::getString
    - odbc::ResultSetRef::close
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetSrsWktById(odbc::Connection &conn, int srid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:274,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:276,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:279,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:279,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:279,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:279,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:280,1
    - Dst: odbc::Connection::createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:282,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:283,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:283,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:286,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:289,1
    - Dst: odbc::ResultSetRef::getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:290,1
    - Dst: odbc::ResultSetRef::getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:291,1
    - Dst: ToWkbType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:293,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:293,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - query
    - columnName
    argTypes:
    - odbc::Connection
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 309
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 309
    functionName: GetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 4
    functionsReached:
    - odbc::ResultSetRef::getInt
    - QuotedIdentifier
    - ToWkbType
    - odbc::ResultSetRef::next
    - CPLString::c_str
    - odbc::Connection::createStatement
    - CPLString
    - odbc::ResultSetRef::getString
    - odbc::StatementRef::executeQuery
    - odbc::ResultSetRef::close
    - auto::c_str
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType GetGeometryType(odbc::Connection &conn,\n                                   const
      CPLString &query,\n                                   const CPLString &columnName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:318,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - conn
    - schemaName
    - tableName
    - columnName
    - detectGeometryType
    argTypes:
    - odbc::Connection
    - CPLString
    - CPLString
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: GetGeometryColumnDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - GetGeometryType
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: GeometryColumnDescription
    signature: "GeometryColumnDescription GetGeometryColumnDescription(\n    odbc::Connection
      &conn, const CPLString &schemaName,\n    const CPLString &tableName, const CPLString
      &columnName,\n    bool detectGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:338,1
    - Dst: std::search
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:349,1
    - Dst: CPLString::begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:350,1
    - Dst: CPLString::end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:350,1
    - Dst: CPLString::begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:350,1
    - Dst: CPLString::end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:351,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:354,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:354,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:355,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:355,1
    - Dst: CPLString::end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:358,1
    - Dst: CPLString::begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:360,1
    - Dst: CPLString::replace
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:362,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:362,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:363,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:364,1
    - Dst: GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - conn
    - query
    - columnName
    - detectGeometryType
    argTypes:
    - odbc::Connection
    - CPLString
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 376
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 376
    functionName: GetGeometryColumnDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::replace
    - CPLString::end
    - CPLToupper
    - static_cast<unsigned char>
    - static_cast<std::size_t>
    - GetGeometryType
    - std::search
    - CPLString::find
    - CPLString::begin
    - CPLString::length
    linkageType: ''
    returnType: GeometryColumnDescription
    signature: "GeometryColumnDescription GetGeometryColumnDescription(odbc::Connection
      &conn, const CPLString &query,\n                             const CPLString
      &columnName,\n                             bool detectGeometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:393,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:417,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:425,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:427,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:430,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:435,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - value
    - dataType
    argTypes:
    - char*
    - short
    constantsTouched: []
    func_position:
      end: 441
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 441
    functionName: FormatDefaultValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - Literal
    linkageType: ''
    returnType: CPLString
    signature: CPLString FormatDefaultValue(const char *value, short dataType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 1
    argNames:
    - typeName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 477
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 477
    functionName: GetArrayDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short GetArrayDataType(const CPLString &typeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: GetSupportedArrayTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: std::vector<CPLString> GetSupportedArrayTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 2
    argCount: 1
    argNames:
    - dataType
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 514
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 514
    functionName: IsKnownDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsKnownDataType(short dataType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: OGRHanaDataSource::GetPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRHanaDataSource::GetPrefix()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: OGRHanaDataSource::OGRHanaDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::OGRHanaDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:541,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:547,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 550
    functionName: OGRHanaDataSource::~OGRHanaDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Release
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::~OGRHanaDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:558,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:558,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:560,1
    - Dst: OGRHanaDataSource::GetPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:560,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:562,1
    - Dst: OGRHanaDataSource::GetPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:565,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:570,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:573,1
    - Dst: OGRHanaDataSource::GetPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:573,1
    - Dst: BuildConnectionString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:584,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:586,1
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:588,1
    - Dst: createConnection
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:589,1
    - Dst: setAutoCommit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:590,1
    - Dst: setConnectionTimeout
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:596,1
    - Dst: static_cast<unsigned long>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:597,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:597,1
    - Dst: connect
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:601,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:605,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:606,1
    - Dst: connected
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:609,1
    - Dst: OGRHanaDataSource::DetermineVersions
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:611,1
    - Dst: OGRHanaDataSource::InitializeLayers
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:615,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - newName
    - openOptions
    - update
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 623
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 623
    functionName: OGRHanaDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - setConnectionTimeout
    - CPLError
    - CPLString::empty
    - createConnection
    - connect
    - setAutoCommit
    - OGRHanaDataSource::GetPrefix
    - CPLString::c_str
    - strlen
    - static_cast<unsigned long>
    - STARTS_WITH_CI
    - CPLFetchBool
    - OGRHanaDataSource::DetermineVersions
    - FlatGeobuf::NodeItem::create
    - CPLAssert
    - OGRHanaDataSource::InitializeLayers
    - what
    - size
    - CSLDestroy
    - connected
    - BuildConnectionString
    linkageType: ''
    returnType: int
    signature: int OGRHanaDataSource::Open(const char *newName, char **openOptions,
      int update)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:631,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:631,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:635,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:636,1
    - Dst: std::unique_ptr::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:636,1
    - Dst: dynamic_cast<OGRHanaTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:638,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:638,1
    - Dst: auto::DropTable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:640,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:645,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 648
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 648
    functionName: OGRHanaDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - auto::DropTable
    - erase
    - std::unique_ptr::GetName
    - dynamic_cast<OGRHanaTableLayer *>
    - CPLDebug
    - begin
    - static_cast<std::size_t>
    - std::unique_ptr::get
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaDataSource::DeleteLayer(int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:658,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:661,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:662,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:664,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:669,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:670,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:672,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:673,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:676,1
    - Dst: OGRHanaDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 8
    argNames:
    - tableName
    - fidName
    - fidType
    - geomColumnName
    - geomType
    - geomColumnNullable
    - geomColumnIndexType
    - geomSrid
    argTypes:
    - CPLString
    - CPLString
    - CPLString
    - CPLString
    - OGRwkbGeometryType
    - bool
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 680
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 680
    functionName: OGRHanaDataSource::CreateTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - QuotedIdentifier
    - std::to_string
    - OGRHanaDataSource::ExecuteSQL
    - GetFullTableNameQuoted
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void OGRHanaDataSource::CreateTable(\n    const CPLString &tableName,
      const CPLString &fidName,\n    const CPLString &fidType, const CPLString &geomColumnName,\n
      \   OGRwkbGeometryType geomType, bool geomColumnNullable,\n    const CPLString
      &geomColumnIndexType, int geomSrid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getDatabaseMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:684,1
    - Dst: odbc::DatabaseMetaDataRef::getDBMSVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:685,1
    - Dst: OGRHANA::HanaVersion::fromString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:686,1
    - Dst: major
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:688,1
    - Dst: HanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:690,1
    - Dst: createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:694,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:697,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:698,1
    - Dst: OGRHANA::HanaVersion::fromString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:700,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:700,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 703
    functionName: OGRHanaDataSource::DetermineVersions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - getDatabaseMetaData
    - odbc::ResultSetRef::next
    - odbc::ResultSetRef::close
    - OGRHANA::HanaVersion::fromString
    - major
    - HanaVersion
    - odbc::ResultSetRef::getString
    - odbc::StatementRef::executeQuery
    - createStatement
    - odbc::DatabaseMetaDataRef::getDBMSVersion
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::DetermineVersions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:712,1
    - Dst: odbc::PreparedStatementRef::get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:713,1
    - Dst: odbc::PreparedStatementRef::getMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:716,1
    - Dst: odbc::ResultSetMetaDataRef::getTableName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:720,1
    - Dst: odbc::ResultSetMetaDataRef::getSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:723,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:724,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:724,1
    - Dst: OGRHanaDataSource::FindSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:725,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - query
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 727
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 727
    functionName: OGRHanaDataSource::FindSchemaAndTableNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::getMetaData
    - OGRHanaDataSource::FindSchemaName
    - odbc::ResultSetMetaDataRef::getTableName
    - CPLString::c_str
    - odbc::ResultSetMetaDataRef::getSchemaName
    - OGRHanaDataSource::PrepareStatement
    - CPLString::empty
    - odbc::PreparedStatementRef::get
    linkageType: ''
    returnType: std::pair<CPLString, CPLString>
    signature: std::pair<CPLString, CPLString> OGRHanaDataSource::FindSchemaAndTableNames(const
      char *query)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:735,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:737,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:737,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: OGRHanaDataSource::FindLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - EQUAL
    - static_cast<int>
    - GetName
    linkageType: ''
    returnType: int
    signature: int OGRHanaDataSource::FindLayerByName(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:751,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:752,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:752,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:753,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:755,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:758,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:760,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:763,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:765,1
    - Dst: getSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:770,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:772,1
    - Dst: getSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - objectName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 777
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 777
    functionName: OGRHanaDataSource::FindSchemaName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - CPLString::clear
    - getSchemaName
    - odbc::ResultSetRef::getString
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetRef::close
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRHanaDataSource::FindSchemaName(const char *objectName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: OGRHanaDataSource::CreateStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - createStatement
    linkageType: ''
    returnType: odbc::StatementRef
    signature: odbc::StatementRef OGRHanaDataSource::CreateStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:794,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:798,1
    - Dst: odbc::StringConverter::utf8ToUtf16
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:800,1
    - Dst: prepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:801,1
    - Dst: std::u16string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:801,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:805,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sql
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: OGRHanaDataSource::PrepareStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 2
    functionsReached:
    - prepareStatement
    - odbc::StringConverter::utf8ToUtf16
    - CPLDebug
    - CPLAssert
    - std::u16string::c_str
    - CPLError
    - what
    linkageType: ''
    returnType: odbc::PreparedStatementRef
    signature: odbc::PreparedStatementRef OGRHanaDataSource::PrepareStatement(const
      char *sql)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: commit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 818
    functionName: OGRHanaDataSource::Commit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - commit
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::Commit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::StringConverter::utf8ToUtf16
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:827,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:827,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:827,1
    - Dst: createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:828,1
    - Dst: odbc::StatementRef::execute
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:829,1
    - Dst: std::u16string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:829,1
    - Dst: OGRHanaDataSource::IsTransactionStarted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:830,1
    - Dst: commit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sql
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 832
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 832
    functionName: OGRHanaDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - commit
    - odbc::StringConverter::utf8ToUtf16
    - OGRHanaDataSource::IsTransactionStarted
    - odbc::StatementRef::execute
    - CPLString::c_str
    - std::u16string::c_str
    - createStatement
    - CPLString::length
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::ExecuteSQL(const CPLString &sql)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:848,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:849,1
    - Dst: auto::second::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:851,1
    - Dst: GetSrsWktById
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:857,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:858,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:860,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:861,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:861,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:869,1
    - Dst: OGRSpatialReference*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - srid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 874
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 874
    functionName: OGRHanaDataSource::GetSrsById
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - OGRSpatialReference::OGRSpatialReference
    - insert
    - find
    - OGRSpatialReference*::importFromWkt
    - CPLString::c_str
    - OGRSpatialReference*::Reference
    - auto::second::Reference
    - CPLString::empty
    - GetSrsWktById
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRHanaDataSource::GetSrsById(int srid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:891,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:893,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:894,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:895,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:898,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:900,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:900,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:901,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:909,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:909,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:926,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:928,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:943,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:945,1
    - Dst: createStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:956,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:960,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:961,1
    - Dst: odbc::ResultSetRef::getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:963,1
    - Dst: odbc::Int::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:964,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:966,1
    - Dst: OGRHanaDataSource::CreateSpatialReferenceSystem
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:977,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:978,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - srs
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 982
      start: 880
    functionDepth: 7
    functionLinenumber: 880
    functionLinenumberEnd: 982
    functionName: OGRHanaDataSource::GetSrsId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - odbc::Int::isNull
    - atoi
    - odbc::ResultSetRef::next
    - OGRSpatialReference::GetAuthorityName
    - CPLError
    - odbc::ResultSetRef::getInt
    - strlen
    - odbc::StatementRef::executeQuery
    - createStatement
    - odbc::ResultSetRef::close
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::exportToProj4
    - OGRSpatialReference::AutoIdentifyEPSG
    - what
    - CPLFree
    - OGRHanaDataSource::CreateSpatialReferenceSystem
    - EQUAL
    - OGRSpatialReference::GetAuthorityCode
    linkageType: ''
    returnType: int
    signature: int OGRHanaDataSource::GetSrsId(const OGRSpatialReference *srs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:993,1
    - Dst: odbc::PreparedStatementRef::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:994,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:994,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:995,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:997,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:998,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - srid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1001
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1001
    functionName: OGRHanaDataSource::IsSrsRoundEarth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - odbc::PreparedStatementRef::setInt
    - odbc::ResultSetRef::next
    - WriteVarUInt
    - odbc::ResultSetRef::getString
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetRef::close
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaDataSource::IsSrsRoundEarth(int srid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1011,1
    - Dst: odbc::PreparedStatementRef::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1012,1
    - Dst: ToPlanarSRID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1012,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1013,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1015,1
    - Dst: odbc::ResultSetRef::getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1016,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - srid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1019
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1019
    functionName: OGRHanaDataSource::HasSrsPlanarEquivalent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - odbc::PreparedStatementRef::setInt
    - ToPlanarSRID
    - odbc::ResultSetRef::next
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetRef::close
    - odbc::ResultSetRef::getLong
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaDataSource::HasSrsPlanarEquivalent(int srid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ColumnDescription>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1029,1
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1031,1
    - Dst: odbc::PreparedStatementRef::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1033,1
    - Dst: odbc::PreparedStatementRef::getMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1036,1
    - Dst: odbc::ResultSetMetaDataRef::getColumnCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1037,1
    - Dst: std::vector<ColumnDescription>::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1041,1
    - Dst: getDatabaseMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1043,1
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1045,1
    - Dst: odbc::ResultSetMetaDataRef::getColumnTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1052,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1054,1
    - Dst: odbc::ResultSetMetaDataRef::getTableName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1058,1
    - Dst: odbc::ResultSetMetaDataRef::getColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1059,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1063,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1063,1
    - Dst: odbc::DatabaseMetaDataRef::getColumns
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1067,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1067,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1067,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1068,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1069,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1072,1
    - Dst: odbc::String::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1073,1
    - Dst: FormatDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1075,1
    - Dst: odbc::String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1075,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1077,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1080,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1081,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1082,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1083,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1084,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1086,1
    - Dst: GetArrayDataType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1087,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1091,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1094,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1100,1
    - Dst: IsKnownDataType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1103,1
    - Dst: odbc::DatabaseMetaDataRef::getTypeInfo
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1105,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1106,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1108,1
    - Dst: odbc::String::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1109,1
    - Dst: odbc::String::compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1111,1
    - Dst: odbc::String::compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1112,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1117,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1123,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1123,1
    - Dst: GetGeometryColumnDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1124,1
    - Dst: GetGeometryColumnDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1127,1
    - Dst: odbc::ResultSetMetaDataRef::isNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1130,1
    - Dst: std::vector<ColumnDescription>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1132,1
    - Dst: AttributeColumnDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1132,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1133,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1138,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1140,1
    - Dst: odbc::ResultSetMetaDataRef::isNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1142,1
    - Dst: odbc::ResultSetMetaDataRef::isAutoIncrement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1146,1
    - Dst: odbc::ResultSetMetaDataRef::getColumnLength
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1146,1
    - Dst: odbc::ResultSetMetaDataRef::getPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1147,1
    - Dst: odbc::ResultSetMetaDataRef::getScale
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1148,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1149,1
    - Dst: std::vector<ColumnDescription>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1151,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1151,1
    - Dst: GeometryColumnDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1152,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - schemaName
    - query
    - columnDescriptions
    argTypes:
    - CPLString
    - CPLString
    - std::vector<ColumnDescription>
    constantsTouched: []
    func_position:
      end: 1157
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1157
    functionName: OGRHanaDataSource::GetQueryColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - odbc::PreparedStatementRef::isNull
    - odbc::ResultSetMetaDataRef::getColumnName
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - odbc::ResultSetMetaDataRef::getScale
    - CPLError
    - odbc::DatabaseMetaDataRef::getColumns
    - CPLString::empty
    - odbc::String::isNull
    - odbc::String::compare
    - odbc::ResultSetMetaDataRef::getColumnTypeName
    - odbc::PreparedStatementRef::getMetaData
    - odbc::ResultSetMetaDataRef::isNullable
    - CPLString::c_str
    - std::move
    - odbc::ResultSetRef::getString
    - GeometryColumnDescription
    - std::vector<ColumnDescription>::clear
    - std::vector<ColumnDescription>::reserve
    - odbc::ResultSetRef::close
    - getDatabaseMetaData
    - FormatDefaultValue
    - IsKnownDataType
    - GetGeometryColumnDescription
    - static_cast<int>
    - odbc::DatabaseMetaDataRef::getTypeInfo
    - odbc::ResultSetMetaDataRef::getTableName
    - GetArrayDataType
    - odbc::ResultSetMetaDataRef::getPrecision
    - AttributeColumnDescription
    - odbc::ResultSetMetaDataRef::getColumnLength
    - odbc::ResultSetMetaDataRef::getColumnCount
    - std::vector<ColumnDescription>::push_back
    - odbc::String::c_str
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetMetaDataRef::isAutoIncrement
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaDataSource::GetQueryColumns(\n    const CPLString &schemaName,
      const CPLString &query,\n    std::vector<ColumnDescription> &columnDescriptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getDatabaseMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1169,1
    - Dst: odbc::DatabaseMetaDataRef::getPrimaryKeys
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1171,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1172,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1174,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1174,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - schemaName
    - tableName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1179
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1179
    functionName: OGRHanaDataSource::GetTablePrimaryKeys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - getDatabaseMetaData
    - odbc::DatabaseMetaDataRef::getPrimaryKeys
    - odbc::ResultSetRef::next
    - odbc::ResultSetRef::getString
    - std::vector::push_back
    - odbc::ResultSetRef::close
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: "std::vector<CPLString> OGRHanaDataSource::GetTablePrimaryKeys(const
      char *schemaName,\n                                       const char *tableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SplitStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1188,1
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1193,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1194,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1194,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1195,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1196,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1198,1
    - Dst: odbc::String::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1199,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1202,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1202,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1202,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1203,1
    - Dst: std::vector::erase
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1204,1
    - Dst: std::make_unique<OGRHanaTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1206,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1207,1
    - Dst: odbc::String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1207,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1208,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1208,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1210,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1216,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1218,1
    - Dst: addLayersFromQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1220,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1220,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1222,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1228,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1230,1
    - Dst: addLayersFromQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1232,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1232,1
    - Dst: OGRHanaDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1239,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - schemaName
    - tableNames
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1245
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1245
    functionName: OGRHanaDataSource::InitializeLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - CPLDebug
    - std::ostringstream::str
    - odbc::String::isNull
    - std::vector::end
    - addLayersFromQuery
    - std::vector::begin
    - JoinStrings
    - SplitStrings
    - std::move
    - odbc::ResultSetRef::getString
    - std::vector::empty
    - odbc::ResultSetRef::close
    - c_str
    - std::vector::erase
    - OGRHanaDataSource::GetLayerByName
    - std::make_unique<OGRHanaTableLayer>
    - std::find
    - odbc::String::c_str
    - push_back
    - OGRHanaDataSource::PrepareStatement
    linkageType: ''
    returnType: void
    signature: "void OGRHanaDataSource::InitializeLayers(const char *schemaName,\n
      \                                        const char *tableNames)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1253,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1255,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1257,1
    - Dst: std::runtime_error
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1273,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1289,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1290,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1290,1
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1304,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1305,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1305,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1305,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1306,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1308,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1310,1
    - Dst: odbc::ResultSetRef::getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1310,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1315,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1319
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1319
    functionName: OGRHanaDataSource::LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - static_cast<char>
    - CPLToupper
    - static_cast<unsigned char>
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - CPLString::clear
    - std::runtime_error
    - CPLAssert
    - CPLString::c_str
    - CPLIsUTF8
    - CPLString::swap
    - odbc::ResultSetRef::getString
    - CPLError
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetRef::close
    linkageType: ''
    returnType: std::pair<OGRErr, CPLString>
    signature: std::pair<OGRErr, CPLString> OGRHanaDataSource::LaunderName(const char
      *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1329,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1329,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1330,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1331,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1331,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1331,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1332,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1338,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1343,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1345,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1348,1
    - Dst: OGRSpatialReference::GetAngularUnits
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1350,1
    - Dst: OGRSpatialReference::GetAreaOfUse
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1355,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1358,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1359,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1361,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1362,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1367,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1368,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1369,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1370,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1376,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1378,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1381,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1393,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1394,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1395,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1396,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1401,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1402,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1407,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1408,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1409,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1409,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1409,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1410,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1410,1
    - Dst: OGRHanaDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 6
    argNames:
    - srs
    - srid
    - authorityName
    - authorityCode
    - wkt
    - proj4
    argTypes:
    - OGRSpatialReference
    - int
    - char*
    - int
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1413
      start: 1325
    functionDepth: 6
    functionLinenumber: 1325
    functionLinenumberEnd: 1413
    functionName: OGRHanaDataSource::CreateSpatialReferenceSystem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - QuotedIdentifier
    - OGRSpatialReference::GetAngularUnits
    - Literal
    - std::to_string
    - OGRSpatialReference::GetLinearUnits
    - EQUAL
    - CPLString::c_str
    - OGRSpatialReference::GetAttrValue
    - OGRSpatialReference::IsGeographic
    - CPLString
    - OGRHanaDataSource::ExecuteSQL
    - OGRSpatialReference::GetAreaOfUse
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    linkageType: ''
    returnType: void
    signature: "void OGRHanaDataSource::CreateSpatialReferenceSystem(\n    const OGRSpatialReference
      &srs, int srid, const char *authorityName,\n    int authorityCode, const CPLString
      &wkt, const CPLString &proj4)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1425,1
    - Dst: replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1461,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1462,1
    - Dst: OGRHanaDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1463,1
    - Dst: replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1493,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1494,1
    - Dst: GetSupportedArrayTypes
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1496,1
    - Dst: OGRHanaDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1500,1
    - Dst: replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - schemaName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1502
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1502
    functionName: OGRHanaDataSource::CreateParseArrayFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - QuotedIdentifier
    - replaceAll
    - CPLString::replaceAll
    - OGRHanaDataSource::ExecuteSQL
    - GetSupportedArrayTypes
    linkageType: ''
    returnType: void
    signature: void OGRHanaDataSource::CreateParseArrayFunctions(const char *schemaName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1513,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1514,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1514,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1515,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1516,1
    - Dst: odbc::ResultSetRef::getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1516,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1517,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1518,1
    - Dst: GetSupportedArrayTypes
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - schemaName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1520
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1520
    functionName: OGRHanaDataSource::ParseArrayFunctionsExist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - GetSupportedArrayTypes
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - static_cast<std::size_t>
    - OGRHanaDataSource::PrepareStatement
    - odbc::ResultSetRef::close
    - odbc::ResultSetRef::getLong
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaDataSource::ParseArrayFunctionsExist(const char *schemaName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1528,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1528,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1530,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1531
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1531
    functionName: OGRHanaDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - size
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRHanaDataSource::GetLayer(int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1539,1
    - Dst: OGRHanaDataSource::FindLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1540
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1540
    functionName: OGRHanaDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRHanaDataSource::GetLayer
    - OGRHanaDataSource::FindLayerByName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRHanaDataSource::GetLayerByName(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1555,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1557,1
    - Dst: getDatabaseMetaData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1560,1
    - Dst: odbc::DatabaseMetaDataRef::isReadOnly
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1561,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1563,1
    - Dst: odbc::DatabaseMetaDataRef::getDatabaseName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1566,1
    - Dst: OGRHanaDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1575,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1578,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1581,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1590,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1594,1
    - Dst: OGRHanaDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1598,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1606,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1609,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1619,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1622,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1627,1
    - Dst: OGRHanaDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1632,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1632,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1635,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1640,1
    - Dst: OGRHanaDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1649,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1652,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1656,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1661,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1661,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1662,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1662,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1663,1
    - Dst: OGRHanaDataSource::GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1668,1
    - Dst: OGRHanaDataSource::CreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1672,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1677,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1679,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1679,1
    - Dst: std::make_unique<OGRHanaTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1684,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1684,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1685,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1686,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1687,1
    - Dst: auto::SetBatchSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1689,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1689,1
    - Dst: auto::SetDefaultStringSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1691,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1692,1
    - Dst: auto::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1693,1
    - Dst: auto::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1694,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1694,1
    - Dst: auto::SetCustomColumnTypes
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1696,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1696,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1699,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1699,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1701,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - layerNameIn
    - poGeomFieldDefn
    - options
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1702
      start: 1546
    functionDepth: 8
    functionLinenumber: 1546
    functionLinenumberEnd: 1702
    functionName: OGRHanaDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - CPLString::swap
    - CPLError
    - CSLFetchNameValue
    - auto::GetLayerDefn
    - OGRHanaDataSource::DeleteLayer
    - auto::SetCustomColumnTypes
    - auto::SetPrecisionFlag
    - CPLString::c_str
    - std::move
    - OGRHanaDataSource::GetSrsId
    - OGRHanaDataSource::LaunderName
    - getDatabaseMetaData
    - c_str
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - auto::SetBatchSize
    - static_cast<std::size_t>
    - auto::SetLaunderFlag
    - what
    - odbc::DatabaseMetaDataRef::getDatabaseName
    - back
    - OGRHanaDataSource::CreateTable
    - CSLFetchNameValueDef
    - std::make_unique<OGRHanaTableLayer>
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - odbc::DatabaseMetaDataRef::isReadOnly
    - auto::SetDefaultStringSize
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRHanaDataSource::ICreateLayer(const char *layerNameIn,\n
      \                               const OGRGeomFieldDefn *poGeomFieldDefn,\n                                CSLConstList
      options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1714,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1718,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - capabilities
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1724
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1724
    functionName: OGRHanaDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRHanaDataSource::TestCapability(const char *capabilities)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SkipLeadingSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1734,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1736,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1737,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1739,1
    - Dst: OGRHanaDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1744,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1747,1
    - Dst: OGRHanaDataSource::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1749,1
    - Dst: auto::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1750,1
    - Dst: std::make_unique<OGRHanaResultLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1753,1
    - Dst: auto::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1755,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1756,1
    - Dst: OGRHanaDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1761,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1765,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - sqlCommand
    - spatialFilter
    - dialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1771
      start: 1730
    functionDepth: 2
    functionLinenumber: 1730
    functionLinenumberEnd: 1771
    functionName: OGRHanaDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<OGRHanaResultLayer>
    - STARTS_WITH_CI
    - auto::isNull
    - auto::release
    - auto::SetSpatialFilter
    - OGRHanaDataSource::DeleteLayer
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - SkipLeadingSpaces
    - OGRHanaDataSource::ExecuteSQL
    - CPLError
    - OGRHanaDataSource::PrepareStatement
    - what
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRHanaDataSource::ExecuteSQL(const char *sqlCommand,\n
      \                                       OGRGeometry *spatialFilter,\n                                        const
      char *dialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1788
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1788
    functionName: OGRHanaDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaDataSource::StartTransaction(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1798,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1806,1
    - Dst: static_cast<OGRHanaLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1808,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1808,1
    - Dst: OGRHanaLayer*::IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1809,1
    - Dst: static_cast<OGRHanaTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1812,1
    - Dst: OGRHanaTableLayer*::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1813,1
    - Dst: commit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1817,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1821,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1826
    functionName: OGRHanaDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - commit
    - OGRHanaLayer*::IsTableLayer
    - static_cast<OGRHanaLayer *>
    - static_cast<OGRHanaTableLayer *>
    - get
    - CPLError
    - what
    - OGRHanaTableLayer*::FlushPendingBatches
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1836,1
    - Dst: rollback
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1844,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1848,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp:1849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1853
    functionName: OGRHanaDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - rollback
    - what
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:42,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:44,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:47,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - source
    - columns
    - where
    - orderBy
    - limit
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: OGRHANA::BuildQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::to_string
    - strlen
    linkageType: ''
    returnType: CPLString
    signature: "CPLString BuildQuery(const char *source, const char *columns, const
      char *where,\n                     const char *orderBy, int limit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - columns
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: OGRHANA::BuildQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 1
    functionsReached:
    - OGRHANA::BuildQuery
    linkageType: ''
    returnType: CPLString
    signature: CPLString BuildQuery(const char *source, const char *columns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:60,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:62,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:62,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:62,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:63,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:84,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:87,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:89,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - dbVersion
    - geom
    - clmName
    - srid
    argTypes:
    - int
    - OGRGeometry
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 93
    functionName: OGRHANA::BuildSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - std::isinf
    - CPLString::c_str
    - CPLString
    - OGRGeometry::getEnvelope
    linkageType: ''
    returnType: CPLString
    signature: "CPLString BuildSpatialFilter(int dbVersion, const OGRGeometry &geom,\n
      \                            const CPLString &clmName, int srid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::IsArrayField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:176,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:177,1
    - Dst: AttributeColumnDescription::typeName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:179,1
    - Dst: AttributeColumnDescription::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:179,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:182,1
    - Dst: AttributeColumnDescription::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:182,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:183,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:184,1
    - Dst: auto::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:188,1
    - Dst: auto::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:191,1
    - Dst: auto::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:192,1
    - Dst: AttributeColumnDescription::defaultValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:195,1
    - Dst: auto::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:196,1
    - Dst: auto::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:198,1
    - Dst: AttributeColumnDescription::defaultValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:198,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 1
    argNames:
    - columnDesc
    argTypes:
    - AttributeColumnDescription
    constantsTouched: []
    func_position:
      end: 200
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 200
    functionName: OGRHANA::CreateFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - auto::SetSubType
    - OGRHANA::IsArrayField
    - AttributeColumnDescription::typeName::c_str
    - AttributeColumnDescription::defaultValue::empty
    - auto::SetDefault
    - AttributeColumnDescription::name::c_str
    - auto::SetNullable
    - auto::SetPrecision
    - CPLError
    - std::make_unique<OGRFieldDefn>
    - auto::SetWidth
    - AttributeColumnDescription::defaultValue::c_str
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDefn>
    signature: std::unique_ptr<OGRFieldDefn> CreateFieldDefn(const AttributeColumnDescription
      &columnDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:204,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:205,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:211,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:217,1
    - Dst: cplError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:222,1
    - Dst: cplError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:225,1
    - Dst: cplError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:228,1
    - Dst: cplError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - std::size_t
    constantsTouched: []
    func_position:
      end: 234
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 234
    functionName: OGRHANA::CreateGeometryFromWkb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - cplError
    - CPLError
    - OGRGeometryFactory::createFromWkb
    - static_cast<std::size_t>
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *CreateGeometryFromWkb(const void *data, std::size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - datasource
    argTypes:
    - OGRHanaDataSource*
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: OGRHANA::OGRHanaLayer::OGRHanaLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::OGRHanaLayer(OGRHanaDataSource *datasource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: OGRHanaLayer::~OGRHanaLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::~OGRHanaLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:263,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:266,1
    - Dst: OGRHANA::OGRHanaLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: OGRHANA::OGRHanaLayer::EnsureInitialized
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRHANA::OGRHanaLayer::GetName
    - Initialize
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::EnsureInitialized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: OGRHANA::OGRHanaLayer::ClearQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::ClearQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:287,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:290,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:292,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:296,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:296,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:298,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:302,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:302,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:304,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:305,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:306,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:306,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:310,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:314,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:314,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 319
    functionName: '&OGRHanaLayer::GetQueryStatement()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - QuotedIdentifier
    - JoinStrings
    - CPLString
    - std::vector::push_back
    - EnsureInitialized
    linkageType: ''
    returnType: CPLString
    signature: CPLString &OGRHanaLayer::GetQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:332,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:335,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:336,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:341,1
    - Dst: BuildSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:342,1
    - Dst: GetHanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:343,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:348,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:351,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 356
    functionName: OGRHANA::OGRHanaLayer::BuildWhereClause
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - GetHanaVersion
    - GetGeomFieldDefn
    - static_cast<std::size_t>
    - BuildSpatialFilter
    - GetGeomFieldCount
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::BuildWhereClause()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:364,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: OGRHANA::OGRHanaLayer::EnsureBufferCapacity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::EnsureBufferCapacity(std::size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:374,1
    - Dst: GetQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:376,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:377,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:377,1
    - Dst: CreateStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:381,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:382,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:382,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:386,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:387,1
    - Dst: OGRHANA::OGRHanaLayer::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: OGRHANA::OGRHanaLayer::GetNextFeatureInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::ReadFeature
    - isNull
    - GetQueryStatement
    - CPLString::c_str
    - CPLAssert
    - CPLError
    - odbc::StatementRef::executeQuery
    - what
    - CPLString::empty
    - CreateStatement
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRHanaLayer::GetNextFeatureInternal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:402,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:402,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - columnIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: OGRHANA::OGRHanaLayer::GetGeometryColumnSrid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - size
    linkageType: ''
    returnType: int
    signature: int OGRHanaLayer::GetGeometryColumnSrid(int columnIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:413,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:416,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:417,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:422,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:428,1
    - Dst: OGRGeomFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:430,1
    - Dst: getBinaryLength
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:433,1
    - Dst: auto::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:436,1
    - Dst: OGRHANA::OGRHanaLayer::EnsureBufferCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:443,1
    - Dst: getBinaryData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:444,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:444,1
    - Dst: CreateGeometryFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:447,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:447,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:447,1
    - Dst: getBinary
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:451,1
    - Dst: odbc::Binary::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:452,1
    - Dst: odbc::Binary::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:452,1
    - Dst: CreateGeometryFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:453,1
    - Dst: static_cast<const void *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:454,1
    - Dst: odbc::Binary::data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:454,1
    - Dst: odbc::Binary::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:454,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:458,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:458,1
    - Dst: auto::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:459,1
    - Dst: getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:473,1
    - Dst: odbc::Int::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:474,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:475,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:475,1
    - Dst: getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:479,1
    - Dst: odbc::Long::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:480,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:481,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:481,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:488,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:489,1
    - Dst: getBinary
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:494,1
    - Dst: odbc::Binary::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:495,1
    - Dst: auto::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:497,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:504,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:508,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:512,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:516,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:520,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:525,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:529,1
    - Dst: OGRHanaFeatureWriter::SetFieldValueAsStringArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:538,1
    - Dst: getBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:550,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:551,1
    - Dst: getByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:556,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:557,1
    - Dst: getShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:562,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:563,1
    - Dst: getInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:568,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:569,1
    - Dst: getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:574,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:575,1
    - Dst: getFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:581,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:582,1
    - Dst: getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:587,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:588,1
    - Dst: getDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:594,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:595,1
    - Dst: getStringLength
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:607,1
    - Dst: auto::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:609,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:611,1
    - Dst: OGRHANA::OGRHanaLayer::EnsureBufferCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:614,1
    - Dst: getStringData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:615,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:615,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:617,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:617,1
    - Dst: getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:621,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:622,1
    - Dst: getBinaryLength
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:631,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:633,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:634,1
    - Dst: auto::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:636,1
    - Dst: OGRHANA::OGRHanaLayer::EnsureBufferCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:639,1
    - Dst: getBinaryData
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:640,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:640,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:642,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:642,1
    - Dst: getBinary
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:647,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:648,1
    - Dst: getDate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:655,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:656,1
    - Dst: getTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:662,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:663,1
    - Dst: getTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:670,1
    - Dst: OGRHanaFeatureWriter::SetFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:671,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:679,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 170
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 680
    functionName: OGRHANA::OGRHanaLayer::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 1
    functionsReached:
    - odbc::Int::isNull
    - OGRGeometry*::assignSpatialReference
    - getDecimal
    - odbc::Binary::isNull
    - GetGeomFieldDefn
    - auto::SetField
    - getByte
    - getInt
    - GetFieldDefn
    - getFloat
    - getTimestamp
    - static_cast<GIntBig>
    - static_cast<const void *>
    - getShort
    - OGRFieldDefn*::IsIgnored
    - getDate
    - getDouble
    - getBoolean
    - OGRHanaFeatureWriter::SetFieldValue
    - auto::SetFieldNull
    - getBinary
    - auto::SetGeomFieldDirectly
    - odbc::Long::isNull
    - OGRGeomFieldDefn*::IsIgnored
    - std::make_unique<OGRFeature>
    - getStringData
    - getLong
    - CreateGeometryFromWkb
    - getString
    - getBinaryData
    - static_cast<GByte *>
    - OGRHanaFeatureWriter::SetFieldValueAsArray
    - getBinaryLength
    - getTime
    - data
    - size
    - auto::SetFID
    - auto::release
    - getStringLength
    - OGRHanaFeatureWriter::SetFieldValueAsStringArray
    - odbc::Binary::data
    - odbc::Binary::size
    - OGRHANA::OGRHanaLayer::EnsureBufferCapacity
    - next
    - OGRGeomFieldDefn*::GetSpatialRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRHanaLayer::ReadFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:691,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:692,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:694,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:695,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:695,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:696,1
    - Dst: GetQueryColumns
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:700,1
    - Dst: GetTablePrimaryKeys
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:705,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:707,1
    - Dst: DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:708,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:717,1
    - Dst: GeometryColumnDescription::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:718,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:719,1
    - Dst: GetSrsById
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:724,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:725,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:726,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:728,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:729,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:729,1
    - Dst: CreateFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:735,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:737,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:738,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:739,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:743,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:745,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:745,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:746,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:754,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:754,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:755,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - schemaName
    - tableName
    - query
    - featureDefName
    argTypes:
    - CPLString
    - CPLString
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 759
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 759
    functionName: OGRHANA::OGRHanaLayer::InitFeatureDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - DeleteGeomFieldDefn
    - std::vector::size
    - GetQueryColumns
    - auto::GetType
    - auto::get
    - OGRSpatialReference*::Release
    - Reference
    - compare
    - GetGeomFieldCount
    - GetTablePrimaryKeys
    - CPLString::c_str
    - std::move
    - AddFieldDefn
    - GetSrsById
    - static_cast<int>
    - CreateFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - auto::SetSpatialRef
    - auto::GetNameRef
    - size
    - AddGeomFieldDefn
    - GeometryColumnDescription::name::c_str
    - auto::SetNullable
    - push_back
    - std::make_unique<OGRGeomFieldDefn>
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaLayer::InitFeatureDefinition(const CPLString &schemaName,\n
      \                                          const CPLString &tableName,\n                                           const
      CPLString &query,\n                                           const CPLString
      &featureDefName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:768,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:770,1
    - Dst: OGRHANA::OGRHanaLayer::IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:773,1
    - Dst: FindSchemaAndTableNames
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:775,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:775,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:776,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:780,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:781,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:782,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:783,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:783,1
    - Dst: odbc::PreparedStatementRef::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:784,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:784,1
    - Dst: IsSrsRoundEarth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:789,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:791,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:797,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:798,1
    - Dst: ToPlanarSRID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:799,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:800,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:803,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:803,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:803,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:804,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:805,1
    - Dst: BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:806,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:806,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:806,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:811,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:812,1
    - Dst: BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:813,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:813,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:814,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:814,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:818,1
    - Dst: odbc::PreparedStatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:828,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:829,1
    - Dst: odbc::ResultSetRef::getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:831,1
    - Dst: odbc::Double::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:832,1
    - Dst: odbc::ResultSetRef::getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:835,1
    - Dst: odbc::ResultSetRef::getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:836,1
    - Dst: odbc::ResultSetRef::getDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:837,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:842,1
    - Dst: OGRHANA::OGRHanaLayer::ReadGeometryExtent
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:844,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - geomField
    - extent
    - force
    argTypes:
    - int
    - OGREnvelope*
    - int
    constantsTouched: []
    func_position:
      end: 845
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 845
    functionName: OGRHANA::OGRHanaLayer::ReadGeometryExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 1
    functionsReached:
    - odbc::PreparedStatementRef::executeQuery
    - BuildQuery
    - GetGeomFieldDefn
    - odbc::ResultSetRef::next
    - odbc::PreparedStatementRef::setString
    - OGRFeature::GetFieldAsString
    - odbc::ResultSetRef::getDouble
    - CPLString
    - OGRHANA::OGRHanaLayer::ReadGeometryExtent
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    - ToPlanarSRID
    - CPLString::c_str
    - IsSrsRoundEarth
    - odbc::ResultSetRef::close
    - OGRHANA::OGRHanaLayer::IsTableLayer
    - c_str
    - FindSchemaAndTableNames
    - QuotedIdentifier
    - odbc::Double::isNull
    - PrepareStatement
    linkageType: ''
    returnType: void
    signature: "void OGRHanaLayer::ReadGeometryExtent(int geomField, OGREnvelope *extent,\n
      \                                     int force)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:849,1
    - Dst: GetHanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:852,1
    - Dst: GetHanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:855,1
    - Dst: HanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:855,1
    - Dst: GetHanaCloudVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:857,1
    - Dst: HanaVersion
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 862
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 862
    functionName: OGRHANA::OGRHanaLayer::IsFastExtentAvailable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - GetHanaVersion
    - GetHanaCloudVersion
    - empty
    - HanaVersion
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaLayer::IsFastExtentAvailable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 872
    functionName: OGRHANA::OGRHanaLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::IsFastExtentAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:883,1
    - Dst: OGRHANA::OGRHanaLayer::ReadGeometryExtent
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:884,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:891,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:891,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:892,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:892,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:895,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:897,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:897,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - iGeomField
    - extent
    - force
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 901
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 901
    functionName: OGRHANA::OGRHanaLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::IsFastExtentAvailable
    - size
    - static_cast<int>
    - CPLError
    - CPLString::c_str
    - static_cast<std::size_t>
    - OGRHANA::OGRHanaLayer::ReadGeometryExtent
    - OGRLayer::IGetExtent
    - what
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaLayer::IGetExtent(int iGeomField, OGREnvelope *extent,
      bool force)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:909,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:912,1
    - Dst: GetQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:913,1
    - Dst: CreateStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:914,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:915,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:915,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:916,1
    - Dst: odbc::ResultSetRef::getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:917,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - force
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 920
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 920
    functionName: OGRHANA::OGRHanaLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - odbc::ResultSetRef::next
    - GetQueryStatement
    - odbc::ResultSetRef::close
    - CPLString::c_str
    - CPLString
    - odbc::StatementRef::executeQuery
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    - odbc::ResultSetRef::getLong
    - CreateStatement
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRHanaLayer::GetFeatureCount(CPL_UNUSED int force)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: OGRHANA::OGRHanaLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRHanaLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 939
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 939
    functionName: OGRHANA::OGRHanaLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 1
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *OGRHanaLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:947,1
    - Dst: OGRHANA::OGRHanaLayer::GetNextFeatureInternal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:951,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:956,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:956,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:957,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 962
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: OGRHANA::OGRHanaLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::GetNextFeatureInternal
    - Evaluate
    - FilterGeometry
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRHanaLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaLayer::EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:970,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 972
    functionName: OGRHANA::OGRHanaLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRHANA::OGRHanaLayer::EnsureInitialized
    linkageType: ''
    returnType: char
    signature: char *OGRHanaLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:980,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:981,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:983,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:986,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:986,1
    - Dst: OGRHANA::OGRHanaLayer::ClearQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:988,1
    - Dst: OGRHANA::OGRHanaLayer::BuildWhereClause
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:989,1
    - Dst: OGRHANA::OGRHanaLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 993
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 993
    functionName: OGRHANA::OGRHanaLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::BuildWhereClause
    - OGRHANA::OGRHanaLayer::ResetReading
    - CPLStrdup
    - assign
    - OGRHANA::OGRHanaLayer::ClearQueryStatement
    - strlen
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:1004,1
    - Dst: OGRHANA::OGRHanaLayer::ClearQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:1007,1
    - Dst: OGRHANA::OGRHanaLayer::BuildWhereClause
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:1008,1
    - Dst: OGRHANA::OGRHanaLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1011
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1011
    functionName: OGRHANA::OGRHanaLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanalayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::ResetReading
    - InstallFilter
    - OGRHANA::OGRHanaLayer::ClearQueryStatement
    - OGRHANA::OGRHanaLayer::BuildWhereClause
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaLayer::ISetSpatialFilter(int iGeomField,\n                                       const
      OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:41,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:41,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - field
    argTypes:
    - OGRFieldDefn
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: OGRHANA::GetColumnDefaultValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetSubType
    - EQUAL
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: char
    signature: char *GetColumnDefaultValue(const OGRFieldDefn &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:50,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:56,1
    - Dst: OGRFeatureDefn::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - featureDefn
    argTypes:
    - OGRFeatureDefn
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: OGRHANA::FindGeomFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn::GetGeomFieldCount
    - OGRFeatureDefn::GetGeomFieldIndex
    - CPLSPrintf
    linkageType: ''
    returnType: CPLString
    signature: CPLString FindGeomFieldName(const OGRFeatureDefn &featureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:97,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:99,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - type
    - typeName
    - isArray
    argTypes:
    - short
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 105
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 105
    functionName: OGRHANA::GetParameterValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::compare
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetParameterValue(short type, const CPLString &typeName,
      bool isArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::good
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:113,1
    - Dst: std::getline
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:117,1
    - Dst: std::stoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:117,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:117,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: OGRHANA::ParseIntValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::good
    - std::stoi
    - std::getline
    - std::vector::push_back
    - std::vector::clear
    - std::string::c_str
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> ParseIntValues(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:131,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:132,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:151,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:153,1
    - Dst: OGRHANA::ParseIntValues
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:154,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:158,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:158,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:160,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:165,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:167,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:167,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:169,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:169,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:171,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:171,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:173,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:173,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:175,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:175,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:177,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:180,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:182,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:189,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:189,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:191,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:194,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:196,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:203,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:203,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:205,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:205,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:207,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:207,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:209,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:212,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:214,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:217,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:221,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:221,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:223,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:226,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:228,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:235,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:235,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:237,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:237,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:239,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:239,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:240,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:241,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:241,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:243,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:243,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:245,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:248,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:250,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:253,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:257,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:257,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:259,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:259,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:261,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:264,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:267,1
    - Dst: incorrectFormatErr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:270,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:275,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:276,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:277,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 107
    argCount: 1
    argNames:
    - typeDef
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 278
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 278
    functionName: OGRHANA::ParseColumnTypeInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::ParseIntValues
    - CPLString::substr
    - std::vector::size
    - EQUAL
    - CPLString::c_str
    - CPLString::Trim
    - std::move
    - CPLError
    - std::vector::empty
    - incorrectFormatErr
    linkageType: ''
    returnType: ColumnTypeInfo
    signature: ColumnTypeInfo ParseColumnTypeInfo(const CPLString &typeDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:328,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:338,1
    - Dst: ColumnTypeInfo::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - typeInfo
    argTypes:
    - ColumnTypeInfo
    constantsTouched: []
    func_position:
      end: 343
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 343
    functionName: OGRHANA::GetColumnDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - ColumnTypeInfo::name::c_str
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetColumnDefinition(const ColumnTypeInfo &typeInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::strstr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:348,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:354,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:355,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:359,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:359,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:360,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:363,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:363,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:366,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:366,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:371,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:371,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:373,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:377,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:377,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:382,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:382,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:387,1
    - Dst: isArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:387,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:391,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:395,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:399,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:405,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:411,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:412,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 2
    argNames:
    - field
    - typeInfo
    argTypes:
    - OGRFieldDefn
    - ColumnTypeInfo
    constantsTouched: []
    func_position:
      end: 413
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 413
    functionName: OGRHANA::SetFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - isArray
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - std::strstr
    linkageType: ''
    returnType: void
    signature: void SetFieldDefn(OGRFieldDefn &field, const ColumnTypeInfo &typeInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:428,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:429,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - datasource
    - schemaName
    - tableName
    - update
    argTypes:
    - OGRHanaDataSource*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: OGRHANA::OGRHanaTableLayer::OGRHanaTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - c_str
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: void
    signature: "void OGRHanaTableLayer::OGRHanaTableLayer(OGRHanaDataSource *datasource,\n
      \                                    const char *schemaName,\n                                     const
      char *tableName, int update)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: OGRHanaTableLayer::~OGRHanaTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - FlushPendingBatches
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::~OGRHanaTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitFeatureDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:451,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:457,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:457,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:458,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:460,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:462,1
    - Dst: CreateStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:463,1
    - Dst: odbc::StatementRef::executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:464,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:464,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:466,1
    - Dst: odbc::ResultSetRef::getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:466,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:467,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:471,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 479
    functionName: OGRHANA::OGRHanaTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - InitFeatureDefinition
    - odbc::ResultSetRef::next
    - CPLDebug
    - odbc::ResultSetRef::close
    - CPLString::c_str
    - CPLString
    - odbc::StatementRef::executeQuery
    - GetFullTableNameQuoted
    - odbc::ResultSetRef::getLong
    - CreateStatement
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::Initialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::PreparedStatement::getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:495,1
    - Dst: odbc::PreparedStatement::executeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:496,1
    - Dst: odbc::PreparedStatement::executeUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:501,1
    - Dst: IsTransactionStarted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:504,1
    - Dst: Commit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:505,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:509,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - statement
    - withBatch
    - functionName
    argTypes:
    - odbc::PreparedStatement
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 515
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 515
    functionName: OGRHANA::OGRHanaTableLayer::ExecuteUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - Commit
    - IsTransactionStarted
    - odbc::PreparedStatement::executeUpdate
    - CPLError
    - odbc::PreparedStatement::executeBatch
    - what
    - odbc::PreparedStatement::getBatchDataSize
    linkageType: ''
    returnType: std::pair<OGRErr, std::size_t>
    signature: "std::pair<OGRErr, std::size_t> OGRHanaTableLayer::ExecuteUpdate(odbc::PreparedStatement
      &statement,\n                                 bool withBatch, const char *functionName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:523,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:525,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:526,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:526,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:527,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: OGRHANA::OGRHanaTableLayer::CreateDeleteFeatureStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - PrepareStatement
    - QuotedIdentifier
    - GetFIDColumn
    - CPLString::c_str
    - CPLString
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: odbc::PreparedStatementRef
    signature: odbc::PreparedStatementRef OGRHanaTableLayer::CreateDeleteFeatureStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:548,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:548,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:549,1
    - Dst: GetParameterValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:550,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:557,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:557,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:558,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:559,1
    - Dst: ParseArrayFunctionsExist
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:565,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:565,1
    - Dst: CreateParseArrayFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:566,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:566,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:570,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:572,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:573,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:573,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:575,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:575,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - withFID
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 576
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 576
    functionName: OGRHANA::OGRHanaTableLayer::CreateInsertFeatureStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetParameterValue
    - ParseArrayFunctionsExist
    - c_str
    - PrepareStatement
    - QuotedIdentifier
    - std::to_string
    - CreateParseArrayFunctions
    - CPLString::c_str
    - JoinStrings
    - CPLString
    - std::vector::push_back
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: odbc::PreparedStatementRef
    signature: odbc::PreparedStatementRef OGRHanaTableLayer::CreateInsertFeatureStatement(bool
      withFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:585,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:585,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:595,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:596,1
    - Dst: GetParameterValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:597,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:604,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:604,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:606,1
    - Dst: ParseArrayFunctionsExist
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:612,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:612,1
    - Dst: CreateParseArrayFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:613,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:613,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:617,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:619,1
    - Dst: JoinStrings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:620,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:621,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:621,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:623,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 624
    functionName: OGRHANA::OGRHanaTableLayer::CreateUpdateFeatureStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - GetParameterValue
    - ParseArrayFunctionsExist
    - c_str
    - PrepareStatement
    - QuotedIdentifier
    - std::to_string
    - GetFIDColumn
    - CreateParseArrayFunctions
    - CPLString::c_str
    - JoinStrings
    - CPLString
    - std::vector::reserve
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: odbc::PreparedStatementRef
    signature: odbc::PreparedStatementRef OGRHanaTableLayer::CreateUpdateFeatureStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:632,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:634,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:636,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:638,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: OGRHANA::OGRHanaTableLayer::ResetPreparedStatements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - isNull
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::ResetPreparedStatements()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:668,1
    - Dst: odbc::PreparedStatement::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:669,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:669,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:672,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:673,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:674,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:677,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:681,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:681,1
    - Dst: odbc::PreparedStatement::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:685,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:686,1
    - Dst: static_cast<std::int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:686,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:687,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:691,1
    - Dst: odbc::PreparedStatement::setLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:692,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:692,1
    - Dst: odbc::PreparedStatement::setLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:694,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:695,1
    - Dst: static_cast<std::int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:695,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:696,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:699,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:702,1
    - Dst: name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:703,1
    - Dst: odbc::PreparedStatement::setBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:717,1
    - Dst: OGRHanaFeatureReader::GetFieldAsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:718,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:722,1
    - Dst: OGRHanaFeatureReader::GetFieldAsIntArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:723,1
    - Dst: odbc::PreparedStatement::setByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:725,1
    - Dst: OGRHanaFeatureReader::GetFieldAsByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:726,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:730,1
    - Dst: OGRHanaFeatureReader::GetFieldAsIntArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:731,1
    - Dst: odbc::PreparedStatement::setShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:733,1
    - Dst: OGRHanaFeatureReader::GetFieldAsShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:734,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:738,1
    - Dst: OGRHanaFeatureReader::GetFieldAsIntArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:739,1
    - Dst: odbc::PreparedStatement::setInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:741,1
    - Dst: OGRHanaFeatureReader::GetFieldAsInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:742,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:746,1
    - Dst: OGRHanaFeatureReader::GetFieldAsBigIntArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:748,1
    - Dst: odbc::PreparedStatement::setLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:750,1
    - Dst: OGRHanaFeatureReader::GetFieldAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:751,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:756,1
    - Dst: OGRHanaFeatureReader::GetFieldAsRealArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:757,1
    - Dst: odbc::PreparedStatement::setFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:759,1
    - Dst: OGRHanaFeatureReader::GetFieldAsFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:760,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:764,1
    - Dst: OGRHanaFeatureReader::GetFieldAsDoubleArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:766,1
    - Dst: odbc::PreparedStatement::setDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:768,1
    - Dst: OGRHanaFeatureReader::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:769,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:773,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:774,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:775,1
    - Dst: odbc::PreparedStatement::setDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:777,1
    - Dst: IsDecimal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:777,1
    - Dst: odbc::PreparedStatement::setDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:779,1
    - Dst: OGRHanaFeatureReader::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:780,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:786,1
    - Dst: OGRHanaFeatureReader::GetFieldAsStringArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:788,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:790,1
    - Dst: OGRHanaFeatureReader::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:791,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:798,1
    - Dst: OGRHanaFeatureReader::GetFieldAsStringArray
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:800,1
    - Dst: odbc::PreparedStatement::setString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:802,1
    - Dst: OGRHanaFeatureReader::GetFieldAsNString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:803,1
    - Dst: OGRHanaFeatureReader::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:811,1
    - Dst: odbc::PreparedStatement::setBytes
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:812,1
    - Dst: odbc::PreparedStatement::setDate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:817,1
    - Dst: OGRHanaFeatureReader::GetFieldAsDate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:818,1
    - Dst: odbc::PreparedStatement::setTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:822,1
    - Dst: OGRHanaFeatureReader::GetFieldAsTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:823,1
    - Dst: odbc::PreparedStatement::setTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:827,1
    - Dst: OGRHanaFeatureReader::GetFieldAsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:828,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:833,1
    - Dst: OGRHANA::OGRHanaTableLayer::GetGeometryWkb
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:837,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:837,1
    - Dst: odbc::PreparedStatement::setBytes
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:840,1
    - Dst: odbc::PreparedStatement::setLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:847,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:847,1
    - Dst: static_cast<std::int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:847,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:848,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 117
    argCount: 5
    argNames:
    - statement
    - feature
    - newFeature
    - withFID
    - functionName
    argTypes:
    - odbc::PreparedStatement
    - OGRFeature*
    - bool
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 852
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 852
    functionName: OGRHANA::OGRHanaTableLayer::SetStatementParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatement::setBoolean
    - odbc::PreparedStatement::setDouble
    - OGRHanaFeatureReader::GetFieldAsStringArray
    - odbc::PreparedStatement::setString
    - OGRHanaFeatureReader::GetFieldAsTime
    - OGRHanaFeatureReader::GetFieldAsShort
    - OGRHANA::OGRHanaTableLayer::GetGeometryWkb
    - OGRFeature*::IsFieldNull
    - CPLError
    - odbc::PreparedStatement::setLong
    - OGRHanaFeatureReader::GetFieldAsString
    - simple_max
    - odbc::PreparedStatement::setTimestamp
    - OGRHanaFeatureReader::GetFieldAsLong
    - OGRHanaFeatureReader::GetFieldAsBoolean
    - OGRHanaFeatureReader::GetFieldAsBigIntArray
    - OGRCoordinateTransformationOptions::SetSourceCenterLong
    - WriteVarUInt
    - static_cast<std::int64_t>
    - odbc::PreparedStatement::setByte
    - OGRHanaFeatureReader::GetFieldAsTimestamp
    - odbc::PreparedStatement::setInt
    - simple_min
    - OGRHanaFeatureReader::GetFieldAsDoubleArray
    - odbc::PreparedStatement::setDate
    - static_cast<int>
    - OGRFeature*::GetFID
    - static_cast<std::int32_t>
    - std::to_string
    - OGRHanaFeatureReader::GetFieldAsRealArray
    - odbc::PreparedStatement::setDecimal
    - OGRHanaFeatureReader::GetFieldAsIntArray
    - OGRHanaFeatureReader::GetFieldAsNString
    - OGRHanaFeatureReader::GetFieldAsInt
    - OGRHanaFeatureReader::GetFieldAsBinary
    - OGRFeature*::GetFieldDefnRef
    - size
    - OGRHanaFeatureReader::GetFieldAsDate
    - odbc::PreparedStatement::setBytes
    - odbc::PreparedStatement::setShort
    - OGRFeature*::IsFieldSet
    - OGRHanaFeatureReader::GetFieldAsByte
    - OGRHanaFeatureReader::GetFieldAsDouble
    - IsDecimal
    - name::c_str
    - odbc::PreparedStatement::setFloat
    - odbc::PreparedStatement::setTime
    - OGRHanaFeatureReader::GetFieldAsFloat
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::SetStatementParameters(\n    odbc::PreparedStatement
      &statement, OGRFeature *feature, bool newFeature,\n    bool withFID, const char
      *functionName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:861,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:864,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:864,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:865,1
    - Dst: OGRHANA::OGRHanaTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:865,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:869,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:870,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 875
    functionName: OGRHANA::OGRHanaTableLayer::DropTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::GetName
    - c_str
    - what
    - CPLDebug
    - CPLString::c_str
    - ExecuteSQL
    - CPLError
    - GetFullTableNameQuoted
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::DropTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:887,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:888,1
    - Dst: hasFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:889,1
    - Dst: executeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:890,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:891,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:892,1
    - Dst: hasFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:893,1
    - Dst: executeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:894,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:895,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:896,1
    - Dst: hasFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:897,1
    - Dst: executeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:898,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:899,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:900,1
    - Dst: hasFlag
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:901,1
    - Dst: executeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:902,1
    - Dst: OGRHANA::OGRHanaTableLayer::ClearBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:908,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:910,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:911,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - BatchOperation
    constantsTouched: []
    func_position:
      end: 914
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 914
    functionName: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::ClearBatches
    - isNull
    - hasFlag
    - getBatchDataSize
    - executeBatch
    - CPLError
    - what
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::ExecutePendingBatches(BatchOperation op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::HasPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:922,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:925,1
    - Dst: IsTransactionStarted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:926,1
    - Dst: Commit
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - commit
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 928
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 928
    functionName: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::HasPendingBatches
    - Commit
    - IsTransactionStarted
    - OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::FlushPendingBatches(bool commit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:936,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:937,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:938,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:939,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:940,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:941,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:942,1
    - Dst: getBatchDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:943,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 944
    functionName: OGRHANA::OGRHanaTableLayer::HasPendingBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - isNull
    - getBatchDataSize
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaTableLayer::HasPendingBatches() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:955,1
    - Dst: name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:955,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:955,1
    - Dst: ParseColumnTypeInfo
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:956,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:959,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:962,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:964,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:969,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:971,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:972,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:974,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:977,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:981,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:983,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:987,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:991,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:993,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:994,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:998,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:999,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1000,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1003,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1003,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1006,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1013,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1013,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1015,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1020,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1020,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1022,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1025,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1027,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1029,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1032,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1034,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1035,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1038,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1041,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1043,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1044,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1046,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 1
    argNames:
    - field
    argTypes:
    - OGRFieldDefn
    constantsTouched: []
    func_position:
      end: 1055
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 1055
    functionName: OGRHANA::OGRHanaTableLayer::GetColumnTypeInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - OGRFieldDefn::GetPrecision
    - ParseColumnTypeInfo
    - name::c_str
    - EQUAL
    - OGRFieldDefn::GetSubType
    - OGRFieldDefn::GetWidth
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: ColumnTypeInfo
    signature: ColumnTypeInfo OGRHanaTableLayer::GetColumnTypeInfo(const OGRFieldDefn
      &field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1063,1
    - Dst: IsGeometryTypeSupported
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1064,1
    - Dst: OGRGeometry*::getIsoGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1064,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1068,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1069,1
    - Dst: OGRGeometry*::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1069,1
    - Dst: EnsureBufferCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1070,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - feature
    - fieldIndex
    - binary
    argTypes:
    - OGRFeature*
    - int
    - Binary
    constantsTouched: []
    func_position:
      end: 1080
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1080
    functionName: OGRHANA::OGRHanaTableLayer::GetGeometryWkb
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - EnsureBufferCapacity
    - OGRGeometry*::getIsoGeometryType
    - IsGeometryTypeSupported
    - OGRFeature*::GetGeomFieldRef
    - OGRGeometry*::WkbSize
    - OGRGeometry*::exportToWkb
    - static_cast<std::size_t>
    - OGRGeometry*::closeRings
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::GetGeometryWkb(OGRFeature *feature, int
      fieldIndex,\n                                         Binary &binary)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1089,1
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1091,1
    - Dst: OGRHANA::OGRHanaLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - geomField
    - extent
    - force
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1095
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1095
    functionName: OGRHANA::OGRHanaTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    - OGRHANA::OGRHanaLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::IGetExtent(int geomField, OGREnvelope *extent,\n
      \                                    bool force)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1103,1
    - Dst: OGRHANA::OGRHanaLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - force
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1106
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1106
    functionName: OGRHANA::OGRHanaTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::GetFeatureCount
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRHanaTableLayer::GetFeatureCount(int force)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1114,1
    - Dst: OGRHANA::OGRHanaLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1120
    functionName: OGRHANA::OGRHanaTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaLayer::ResetReading
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1128,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1130,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1135,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1137,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1140,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1142,1
    - Dst: IsFastExtentAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1143,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1147,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1148,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1152,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1161,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1165,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 1
    argNames:
    - capabilities
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1171
    functionName: OGRHANA::OGRHanaTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - empty
    - EnsureInitialized
    - IsFastExtentAvailable
    linkageType: ''
    returnType: int
    signature: int OGRHanaTableLayer::TestCapability(const char *capabilities)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1188,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1193,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1196,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1206,1
    - Dst: odbc::PreparedStatementRef::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1217,1
    - Dst: OGRHANA::OGRHanaTableLayer::CreateInsertFeatureStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1219,1
    - Dst: odbc::PreparedStatementRef::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1220,1
    - Dst: OGRHANA::OGRHanaTableLayer::SetStatementParameters
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1224,1
    - Dst: odbc::PreparedStatementRef::addBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1230,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecuteUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1232,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1240,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1243,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1245,1
    - Dst: PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1248,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1248,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1249,1
    - Dst: executeQuery
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1254,1
    - Dst: odbc::ResultSetRef::next
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1255,1
    - Dst: odbc::ResultSetRef::getLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1257,1
    - Dst: odbc::Long::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1258,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1259,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1259,1
    - Dst: odbc::ResultSetRef::close
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1261,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1268,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1269,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - feature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1273
      start: 1177
    functionDepth: 4
    functionLinenumber: 1177
    functionLinenumberEnd: 1273
    functionName: OGRHANA::OGRHanaTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - odbc::PreparedStatementRef::isNull
    - odbc::ResultSetRef::next
    - OGRHANA::OGRHanaTableLayer::SetStatementParameters
    - OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    - CPLString
    - OGRHANA::OGRHanaTableLayer::CreateInsertFeatureStatement
    - CPLError
    - static_cast<GIntBig>
    - isNull
    - CPLString::c_str
    - odbc::Long::isNull
    - odbc::ResultSetRef::close
    - odbc::PreparedStatementRef::addBatch
    - what
    - odbc::ResultSetRef::getLong
    - OGRHANA::OGRHanaTableLayer::ExecuteUpdate
    - PrepareStatement
    - executeQuery
    - GetFullTableNameQuoted
    - EnsureInitialized
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::ICreateFeature(OGRFeature *feature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1283,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1300,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1308,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1310,1
    - Dst: OGRHANA::OGRHanaTableLayer::CreateDeleteFeatureStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1312,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1313,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1318,1
    - Dst: setLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1322,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1322,1
    - Dst: static_cast<std::int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1322,1
    - Dst: addBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1325,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecuteUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1331
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1331
    functionName: OGRHANA::OGRHanaTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - setLong
    - OGRHANA::OGRHanaTableLayer::ExecuteUpdate
    - OGRHANA::OGRHanaTableLayer::CreateDeleteFeatureStatement
    - isNull
    - OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    - OGRCoordinateTransformationOptions::SetSourceCenterLong
    - static_cast<std::int64_t>
    - CPLError
    - addBatch
    - EnsureInitialized
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1348,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1362,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1368,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1370,1
    - Dst: OGRHANA::OGRHanaTableLayer::CreateUpdateFeatureStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1372,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1373,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1381,1
    - Dst: OGRHANA::OGRHanaTableLayer::SetStatementParameters
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1387,1
    - Dst: addBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1395,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecuteUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1397,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1404,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1405,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - feature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1337
    functionDepth: 4
    functionLinenumber: 1337
    functionLinenumberEnd: 1408
    functionName: OGRHANA::OGRHanaTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::ExecuteUpdate
    - OGRFeature*::GetFID
    - isNull
    - OGRHANA::OGRHanaTableLayer::SetStatementParameters
    - OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    - OGRHANA::OGRHanaTableLayer::CreateUpdateFeatureStatement
    - CPLError
    - addBatch
    - what
    - EnsureInitialized
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::ISetFeature(OGRFeature *feature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1419,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1424,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1426,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1430,1
    - Dst: LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1436,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1436,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1439,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1439,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1443,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1443,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1443,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1444,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1446,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1447,1
    - Dst: OGRHANA::OGRHanaTableLayer::GetColumnTypeInfo
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1451,1
    - Dst: GetColumnDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1452,1
    - Dst: ColumnTypeInfo::name::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1456,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1461,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1462,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1465,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1466,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1466,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1468,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1473,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1475,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1476,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1476,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1483,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1483,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1484,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1486,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1486,1
    - Dst: IsArrayField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1488,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1488,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1492,1
    - Dst: ColumnTypeInfo::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1496,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1496,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1502,1
    - Dst: GetColumnDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1502,1
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1505,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1507,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1509,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1510,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1514,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1518,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1520,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1520,1
    - Dst: SetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1526,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1529,1
    - Dst: IsArrayField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1532,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1532,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1534,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1536,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1537,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1538,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1539,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1541,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1541,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1542,1
    - Dst: OGRHANA::OGRHanaTableLayer::ColumnsChanged
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1544,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 2
    argNames:
    - srsField
    - approxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1547
      start: 1414
    functionDepth: 3
    functionLinenumber: 1414
    functionLinenumberEnd: 1547
    functionName: OGRHANA::OGRHanaTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - static_cast<unsigned short>
    - OGRFieldDefn::GetFieldTypeName
    - CPLString
    - CPLError
    - OGRHANA::OGRHanaTableLayer::ColumnsChanged
    - LaunderName
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    - OGRFieldDefn::IsDefaultDriverSpecific
    - CPLString::c_str
    - std::move
    - AddFieldDefn
    - OGRHANA::OGRHanaTableLayer::GetColumnTypeInfo
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - static_cast<int>
    - QuotedIdentifier
    - OGRFieldDefn*::GetNameRef
    - std::to_string
    - GetFIDColumn
    - OGRFieldDefn::SetName
    - ColumnTypeInfo::name::c_str
    - ExecuteSQL
    - GetColumnDefaultValue
    - what
    - SetFieldDefn
    - auto::second::c_str
    - GetColumnDefinition
    - OGRFieldDefn::SetDefault
    - ColumnTypeInfo::name::empty
    - EQUAL
    - IsArrayField
    - push_back
    - GetFullTableNameQuoted
    - EnsureInitialized
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::CreateField(const OGRFieldDefn *srsField,\n
      \                                     int approxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1558,1
    - Dst: IsGeometryTypeSupported
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1563,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1563,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1565,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1567,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1567,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1568,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1568,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1572,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1574,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1576,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1579,1
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1588,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1590,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1594,1
    - Dst: LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1597,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1597,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1600,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1603,1
    - Dst: FindGeomFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1604,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1606,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1608,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1609,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1613,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1613,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1617,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1619,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1619,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1623,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1624,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1624,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1625,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1625,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1626,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1626,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1627,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1627,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1627,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1628,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1629,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1629,1
    - Dst: OGRHANA::OGRHanaTableLayer::ColumnsChanged
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - geomField
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 1634
      start: 1553
    functionDepth: 3
    functionLinenumber: 1553
    functionLinenumberEnd: 1634
    functionName: OGRHANA::OGRHanaTableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - OGRGeomFieldDefn*::IsNullable
    - auto::GetType
    - CPLString::swap
    - CPLString
    - CPLError
    - OGRHANA::OGRHanaTableLayer::ColumnsChanged
    - CPLString::empty
    - LaunderName
    - OGRGeomFieldDefn*::GetNameRef
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    - CPLString::c_str
    - std::move
    - GetGeomFieldIndex
    - c_str
    - IsGeometryTypeSupported
    - QuotedIdentifier
    - OGRGeomFieldDefn*::GetType
    - ExecuteSQL
    - auto::SetSpatialRef
    - auto::GetNameRef
    - what
    - FindGeomFieldName
    - AddGeomFieldDefn
    - OGRGeometryTypeToName
    - auto::SetNullable
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - std::make_unique<OGRGeomFieldDefn>
    - GetFullTableNameQuoted
    - EnsureInitialized
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::CreateGeomField(const OGRGeomFieldDefn *geomField,\n
      \                                         int)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1644,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1649,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1651,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1655,1
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1657,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1659,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1660,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1662,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1663,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1667,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1671,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1672,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1672,1
    - Dst: std::find_if
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1676,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1676,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1676,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1679,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1680,1
    - Dst: OGRHANA::OGRHanaTableLayer::ColumnsChanged
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - field
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1685
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1685
    functionName: OGRHANA::OGRHanaTableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - what
    - erase
    - std::find_if
    - QuotedIdentifier
    - DeleteFieldDefn
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    - GetFieldCount
    - CPLString::c_str
    - begin
    - CPLString
    - ExecuteSQL
    - GetFieldDefn
    - CPLError
    - OGRHANA::OGRHanaTableLayer::ColumnsChanged
    - GetFullTableNameQuoted
    - EnsureInitialized
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::DeleteField(int field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1696,1
    - Dst: EnsureInitialized
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1701,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1703,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1705,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1709,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1714,1
    - Dst: name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1714,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1714,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1723,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1728,1
    - Dst: LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1732,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1732,1
    - Dst: CPLString::swap
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1735,1
    - Dst: OGRHANA::OGRHanaTableLayer::FlushPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1738,1
    - Dst: OGRHANA::OGRHanaTableLayer::GetColumnTypeInfo
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1740,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1745,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1745,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1745,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1747,1
    - Dst: GetFullColumnNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1749,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1750,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1752,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1753,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1753,1
    - Dst: GetColumnDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1760,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1762,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1762,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1764,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1771,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1772,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1773,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1774,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1775,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1776,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1777,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1777,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1777,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1781,1
    - Dst: Literal
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1782,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1782,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1783,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1783,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1786,1
    - Dst: GetFullTableNameQuoted
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1788,1
    - Dst: QuotedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1789,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1789,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1791,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1791,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1796,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1797,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1797,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1807,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1807,1
    - Dst: AttributeColumnDescription::name::assign
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1808,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1808,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1813,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1814,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1814,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1815,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1815,1
    - Dst: IsArrayField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1816,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1816,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1823,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1823,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1824,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1824,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1825,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1826,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1827,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1832,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1832,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1833,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1838,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1838,1
    - Dst: AttributeColumnDescription::name::assign
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1839,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1839,1
    - Dst: OGRHANA::OGRHanaTableLayer::ColumnsChanged
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1842,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 3
    argNames:
    - field
    - newFieldDefn
    - flagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1845
      start: 1691
    functionDepth: 3
    functionLinenumber: 1691
    functionLinenumberEnd: 1845
    functionName: OGRHANA::OGRHanaTableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetFullColumnNameQuoted
    - OGRFieldDefn*::GetPrecision
    - strcmp
    - OGRFieldDefn*::SetSubType
    - CPLString::swap
    - CPLString
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - OGRHANA::OGRHanaTableLayer::ColumnsChanged
    - LaunderName
    - OGRFieldDefn*::GetDefault
    - OGRHANA::OGRHanaTableLayer::FlushPendingBatches
    - OGRFieldDefn*::SetDefault
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - AttributeColumnDescription::name::assign
    - OGRHANA::OGRHanaTableLayer::GetColumnTypeInfo
    - OGRFieldDefn*::IsNullable
    - static_cast<int>
    - OGRFieldDefn*::SetNullable
    - OGRFieldDefn*::SetPrecision
    - QuotedIdentifier
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - ExecuteSQL
    - what
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - size
    - GetColumnDefinition
    - OGRFieldDefn*::SetWidth
    - Literal
    - name::c_str
    - EQUAL
    - IsArrayField
    - GetFullTableNameQuoted
    - EnsureInitialized
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRHanaTableLayer::AlterFieldDefn(int field, OGRFieldDefn *newFieldDefn,\n
      \                                        int flagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1853,1
    - Dst: clearBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1854,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1855,1
    - Dst: clearBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1856,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1857,1
    - Dst: clearBatch
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1859
    functionName: OGRHANA::OGRHanaTableLayer::ClearBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - isNull
    - clearBatch
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::ClearBatches()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1867,1
    - Dst: OGRHANA::OGRHanaTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1868,1
    - Dst: OGRHANA::OGRHanaTableLayer::ResetPreparedStatements
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1870
    functionName: OGRHANA::OGRHanaTableLayer::ColumnsChanged
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 4
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::ResetReading
    - OGRHANA::OGRHanaTableLayer::ResetPreparedStatements
    - ClearQueryStatement
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::ColumnsChanged()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1898,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1902,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1903,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1904,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1905,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - columnTypes
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1911
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1911
    functionName: OGRHANA::OGRHanaTableLayer::SetCustomColumnTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - CPLString
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRHanaTableLayer::SetCustomColumnTypes(const char *columnTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1920
    functionName: OGRHANA::OGRHanaTableLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::HasPendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1928,1
    - Dst: OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1930,1
    - Dst: OGRHANA::OGRHanaTableLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1936
    functionName: OGRHANA::OGRHanaTableLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::HasPendingBatches
    - OGRHANA::OGRHanaTableLayer::CommitTransaction
    - OGRHANA::OGRHanaTableLayer::ExecutePendingBatches
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaTableLayer::ClearBatches
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1944,1
    - Dst: OGRHANA::OGRHanaTableLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1942
    functionDepth: 1
    functionLinenumber: 1942
    functionLinenumberEnd: 1946
    functionName: OGRHANA::OGRHanaTableLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanatablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRHANA::OGRHanaTableLayer::ClearBatches
    - OGRHANA::OGRHanaTableLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRHanaTableLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHanaDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:25,1
    - Dst: std::make_unique<OGRHanaDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:28,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:29,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - openInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: OGRHanaDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - OGRHanaDriverIdentify
    - auto::release
    - std::make_unique<OGRHanaDataSource>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRHanaDriverOpen(GDALOpenInfo *openInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRHanaDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:45,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:46,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:48,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - name
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - options
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: OGRHanaDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - auto::release
    - CPLError
    - std::make_unique<OGRHanaDataSource>
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRHanaDriverCreate(const char *name, CPL_UNUSED int
      nBands,\n                                        CPL_UNUSED int nXSize,\n                                        CPL_UNUSED
      int nYSize,\n                                        CPL_UNUSED GDALDataType
      eDT,\n                                        CPL_UNUSED char **options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:63,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:66,1
    - Dst: std::make_unique<GDALDriver>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:69,1
    - Dst: OGRHANADriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:70,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:70,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:74,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: RegisterOGRHANA
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - OGRHANADriverSetCommonMetadata
    - auto::release
    - GDAL_CHECK_VERSION
    - std::make_unique<GDALDriver>
    - auto::get
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRHANA()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:37,1
    - Dst: toString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:44,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:46,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - elements
    - numElements
    argTypes:
    - T*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: OGRHANA::CreateStringFromValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - toString
    - OGRFeature::GetFieldAsString
    linkageType: ''
    returnType: odbc::String
    signature: "odbc::String CreateStringFromValues(const T *elements, int numElements,\n
      \                                   std::string (*toString)(T e))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:51,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:52,1
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:53,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: OGRHANA::castInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - std::overflow_error
    - static_cast<T>
    - simple_min
    linkageType: ''
    returnType: T
    signature: T castInt(int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: OGRHANA::castInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int castInt(int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::castInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:65,1
    - Dst: std::stoi
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OGRHANA::strToInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::castInt
    - std::stoi
    linkageType: ''
    returnType: T
    signature: T strToInt(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - feature
    argTypes:
    - OGRFeature
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: OGRHANA::OGRHanaFeatureReader::OGRHanaFeatureReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaFeatureReader::OGRHanaFeatureReader(const OGRFeature &feature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:77,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:78,1
    - Dst: IsBoolean
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:82,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:84,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsBoolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - IsBoolean
    - GetFieldAsInteger
    linkageType: ''
    returnType: odbc::Boolean
    signature: odbc::Boolean OGRHanaFeatureReader::GetFieldAsBoolean(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:89,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:90,1
    - Dst: castInt<std::int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:91,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:91,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:95,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsByte
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:96,1
    - Dst: strToInt<std::int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsByte
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 1
    functionsReached:
    - castInt<std::int8_t>
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsByte
    - GetFieldAsInteger
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - strToInt<std::int8_t>
    linkageType: ''
    returnType: odbc::Byte
    signature: odbc::Byte OGRHanaFeatureReader::GetFieldAsByte(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:101,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:102,1
    - Dst: castInt<std::int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:103,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:103,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:107,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsShort
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:108,1
    - Dst: strToInt<std::int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsShort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 1
    functionsReached:
    - strToInt<std::int16_t>
    - GetFieldAsInteger
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsShort
    - castInt<std::int16_t>
    linkageType: ''
    returnType: odbc::Short
    signature: odbc::Short OGRHanaFeatureReader::GetFieldAsShort(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:113,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:114,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:114,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:118,1
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:119,1
    - Dst: strToInt<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - strToInt<int>
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - WriteVarUInt
    - GetFieldAsInteger
    linkageType: ''
    returnType: odbc::Int
    signature: odbc::Int OGRHanaFeatureReader::GetFieldAsInt(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:124,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:125,1
    - Dst: GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:125,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:129,1
    - Dst: OGRCoordinateTransformationOptions::SetSourceCenterLong
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:130,1
    - Dst: std::stol
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformationOptions::SetSourceCenterLong
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - GetFieldAsInteger64
    - std::stol
    linkageType: ''
    returnType: odbc::Long
    signature: odbc::Long OGRHanaFeatureReader::GetFieldAsLong(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:135,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:138,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:138,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:143,1
    - Dst: SWQAutoPromoteIntegerToInteger64OrFloat
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:144,1
    - Dst: std::stof
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - std::stof
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - static_cast<float>
    - SWQAutoPromoteIntegerToInteger64OrFloat
    linkageType: ''
    returnType: odbc::Float
    signature: odbc::Float OGRHanaFeatureReader::GetFieldAsFloat(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:149,1
    - Dst: OGRFeature::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:150,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:150,1
    - Dst: OGRFeature::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:153,1
    - Dst: OGRFeature::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:154,1
    - Dst: std::stod
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 1
    functionsReached:
    - std::stod
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - OGRFeature::GetFieldAsDouble
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsDouble
    linkageType: ''
    returnType: odbc::Double
    signature: odbc::Double OGRHanaFeatureReader::GetFieldAsDouble(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:163,1
    - Dst: std::strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:166,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:166,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:167,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:168,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:168,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:169,1
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:172,1
    - Dst: getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:173,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:173,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:177,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:180,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:183,1
    - Dst: getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:185,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:186,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - fieldIndex
    - maxCharLength
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 191
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 191
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 1
    functionsReached:
    - std::strlen
    - OGRFeature::GetFieldAsString
    - getString
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsString
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - CPLString::pop_back
    - strlen
    - std::string
    - static_cast<std::size_t>
    - CPLFree
    linkageType: ''
    returnType: odbc::String
    signature: "odbc::String OGRHanaFeatureReader::GetFieldAsString(int fieldIndex,\n
      \                                                   int maxCharLength) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:199,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:202,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:202,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:209,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:228,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:229,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:229,1
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:232,1
    - Dst: getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:233,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:233,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:237,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:240,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:243,1
    - Dst: getString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:245,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:246,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - fieldIndex
    - maxCharLength
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 251
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 251
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsNString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - OGRFeature::GetFieldAsString
    - getString
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsString
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - CPLString::pop_back
    - strlen
    - std::string
    - static_cast<std::size_t>
    - CPLFree
    linkageType: ''
    returnType: odbc::String
    signature: "odbc::String OGRHanaFeatureReader::GetFieldAsNString(int fieldIndex,\n
      \                                                    int maxCharLength) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:255,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:264,1
    - Dst: odbc::makeNullable<odbc::date>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:267,1
    - Dst: OGRFormatDate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:274,1
    - Dst: std::time
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:276,1
    - Dst: std::localtime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:277,1
    - Dst: OGRFormatDate
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:279,1
    - Dst: odbc::makeNullable<odbc::date>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:280,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:285,1
    - Dst: odbc::makeNullable<odbc::date>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 288
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 288
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - EQUAL
    - GetFieldAsDateTime
    - OGRFormatDate
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - std::localtime
    - std::time
    - odbc::makeNullable<odbc::date>
    linkageType: ''
    returnType: odbc::Date
    signature: odbc::Date OGRHanaFeatureReader::GetFieldAsDate(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:292,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:301,1
    - Dst: odbc::makeNullable<odbc::time>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:303,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:304,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:304,1
    - Dst: OGRFeature::GetFieldAsISO8601DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:311,1
    - Dst: std::time
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:313,1
    - Dst: std::localtime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:314,1
    - Dst: OGRFeature::GetFieldAsISO8601DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:316,1
    - Dst: odbc::makeNullable<odbc::time>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:317,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:324,1
    - Dst: odbc::makeNullable<odbc::time>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 326
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - static_cast<int>
    - EQUAL
    - GetFieldAsDateTime
    - round
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - odbc::makeNullable<odbc::time>
    - std::localtime
    - std::time
    - OGRFeature::GetFieldAsISO8601DateTime
    linkageType: ''
    returnType: odbc::Time
    signature: odbc::Time OGRHanaFeatureReader::GetFieldAsTime(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:330,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:339,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:357,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:360,1
    - Dst: odbc::makeNullable<odbc::timestamp>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:369,1
    - Dst: swq_expr_node::MarkAsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:377,1
    - Dst: std::time
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:379,1
    - Dst: std::localtime
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:380,1
    - Dst: swq_expr_node::MarkAsTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:382,1
    - Dst: odbc::makeNullable<odbc::timestamp>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:383,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:396,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:397,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:400,1
    - Dst: odbc::makeNullable<odbc::timestamp>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 405
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 405
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - swq_expr_node::MarkAsTimestamp
    - EQUAL
    - GetFieldAsDateTime
    - CPLYMDHMSToUnixTime
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - CPLUnixTimeToYMDHMS
    - strchr
    - std::localtime
    - std::time
    - odbc::makeNullable<odbc::timestamp>
    linkageType: ''
    returnType: odbc::Timestamp
    signature: odbc::Timestamp OGRHanaFeatureReader::GetFieldAsTimestamp(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:409,1
    - Dst: OGRHANA::OGRHanaFeatureReader::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:412,1
    - Dst: static_cast<std::size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:413,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:420,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:420,1
    - Dst: std::strlen
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 1
    functionsReached:
    - OGRHANA::OGRHanaFeatureReader::GetFieldAsBinary
    - std::strlen
    - reinterpret_cast<const GByte *>
    - const_cast<GByte *>
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - static_cast<std::size_t>
    linkageType: ''
    returnType: Binary
    signature: Binary OGRHanaFeatureReader::GetFieldAsBinary(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:426,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:427,1
    - Dst: CreateStringFromValues<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 433
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsIntArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - CreateStringFromValues<int>
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - OGRFeature::GetFieldAsString
    linkageType: ''
    returnType: odbc::String
    signature: odbc::String OGRHanaFeatureReader::GetFieldAsIntArray(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:437,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:438,1
    - Dst: GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:442,1
    - Dst: CreateStringFromValues<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 445
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 445
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsBigIntArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - GetFieldAsInteger64List
    - OGRFeature::GetFieldAsString
    - CreateStringFromValues<GIntBig>
    linkageType: ''
    returnType: odbc::String
    signature: odbc::String OGRHanaFeatureReader::GetFieldAsBigIntArray(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:449,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:450,1
    - Dst: CreateStringFromValues<double>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:455,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:459,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:461,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 463
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 463
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsRealArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - std::to_string
    - OGRFeature::GetFieldAsString
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - CreateStringFromValues<double>
    - std::isnan
    linkageType: ''
    returnType: odbc::String
    signature: odbc::String OGRHanaFeatureReader::GetFieldAsRealArray(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:467,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:468,1
    - Dst: CreateStringFromValues<double>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:473,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:476,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 477
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 477
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsDoubleArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - OGRFeature::GetFieldAsString
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - CreateStringFromValues<double>
    - std::isnan
    linkageType: ''
    returnType: odbc::String
    signature: odbc::String OGRHanaFeatureReader::GetFieldAsDoubleArray(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:481,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:482,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:486,1
    - Dst: OGRFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:513,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 514
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 514
    functionName: OGRHANA::OGRHanaFeatureReader::GetFieldAsStringArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - OGRFeature::GetFieldAsString
    linkageType: ''
    returnType: odbc::String
    signature: odbc::String OGRHanaFeatureReader::GetFieldAsStringArray(int fieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:518,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: OGRHANA::OGRHanaFeatureReader::GetDefaultValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 0
    functionsReached:
    - GetFieldDefnRef
    - OGRFieldDefn*::GetDefault
    linkageType: ''
    returnType: char
    signature: char *OGRHanaFeatureReader::GetDefaultValue(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRHANA::OGRHanaFeatureReader::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:524,1
    - Dst: IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fieldIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: OGRHANA::OGRHanaFeatureReader::IsFieldSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturereader.cpp
    functionUses: 19
    functionsReached:
    - OGRHANA::OGRHanaFeatureReader::IsFieldSet
    - IsFieldNull
    linkageType: ''
    returnType: bool
    signature: bool OGRHanaFeatureReader::IsFieldSet(int fieldIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: OGRHanaLayerCreationOptionsConstants::OGRHanaLayerCreationOptionsConstants
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaLayerCreationOptionsConstants()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: OGRHanaOpenOptionsConstants::OGRHanaOpenOptionsConstants
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanadrivercore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRHanaOpenOptionsConstants()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Nullable<T>::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:53,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:54,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Nullable<T>
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h
    functionUses: 1
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Nullable<T>::isNull
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValue(int fieldIndex,\n                                         const
      odbc::Nullable<T> &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: odbc::Binary::isNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:63,1
    - Dst: odbc::Binary::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:63,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:65,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:74,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:87,1
    - Dst: reinterpret_cast<const InputT *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:87,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:89,1
    - Dst: ResultT
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:89,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:92,1
    - Dst: reinterpret_cast<const InputT *>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:92,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:97,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:97,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:97,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - fieldIndex
    - value
    argTypes:
    - int
    - odbc::Binary
    constantsTouched: []
    func_position:
      end: 99
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 99
    functionName: OGRHANA::OGRHanaFeatureWriter::SetFieldValueAsArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanafeaturewriter.h
    functionUses: 0
    functionsReached:
    - SetFieldNull
    - SetField
    - odbc::Binary::isNull
    - std::vector::size
    - ResultT
    - odbc::Binary::size
    - reinterpret_cast<const InputT *>
    - std::vector::push_back
    - std::vector::reserve
    - static_cast<int32_t>
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void OGRHanaFeatureWriter::SetFieldValueAsArray(int fieldIndex,\n
      \                                               const odbc::Binary &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: OGRHANA::QGRHanaDataTypes::QGRHanaDataTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void QGRHanaDataTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BatchOperation>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:170,1
    - Dst: static_cast<std::underlying_type<BatchOperation>::type>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:171,1
    - Dst: static_cast<std::underlying_type<BatchOperation>::type>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BatchOperation
    - BatchOperation
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: operator&(BatchOperation a, BatchOperation b)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type<BatchOperation>::type>
    - static_cast<BatchOperation>
    linkageType: ''
    returnType: BatchOperation
    signature: BatchOperation operator&(BatchOperation a, BatchOperation b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BatchOperation>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:177,1
    - Dst: static_cast<std::underlying_type<BatchOperation>::type>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:178,1
    - Dst: static_cast<std::underlying_type<BatchOperation>::type>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BatchOperation
    - BatchOperation
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: operator|(BatchOperation a, BatchOperation b)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type<BatchOperation>::type>
    - static_cast<BatchOperation>
    linkageType: ''
    returnType: BatchOperation
    signature: BatchOperation operator|(BatchOperation a, BatchOperation b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: OGRHANA::OGRHanaLayer::IsTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTableLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: OGRHANA::OGRHanaTableLayer::IsTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTableLayer() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: OGRHANA::OGRHanaTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 1
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: OGRHANA::OGRHanaTableLayer::SetBatchSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBatchSize(std::size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: OGRHANA::OGRHanaTableLayer::SetDefaultStringSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDefaultStringSize(std::size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: OGRHANA::OGRHanaTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(bool flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: OGRHANA::OGRHanaTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(bool flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: OGRHanaDataSource::IsTransactionStarted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTransactionStarted() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: OGRHanaDataSource::GetHanaVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRHANA::HanaVersion
    signature: OGRHANA::HanaVersion GetHanaVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: OGRHanaDataSource::GetHanaCloudVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRHANA::HanaVersion
    signature: OGRHANA::HanaVersion GetHanaCloudVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:461,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: OGRHanaDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogr_hana.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - major
    - minor
    - patch
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: OGRHANA::HanaVersion::HanaVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HanaVersion(unsigned int major, unsigned int minor,\n                         unsigned
      int patch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: OGRHANA::HanaVersion::HanaVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HanaVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: OGRHANA::HanaVersion::major
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int major() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: OGRHANA::HanaVersion::minor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int minor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: OGRHANA::HanaVersion::patch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int patch() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - HanaVersion
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: operator<=(const HanaVersion &other)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const HanaVersion &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - HanaVersion
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: operator>=(const HanaVersion &other)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const HanaVersion &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - HanaVersion
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: operator==(const HanaVersion &other)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/hana/ogrhanautils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const HanaVersion &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: OGRGPSBabelWriteDataSource::OGRGPSBabelWriteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGPSBabelWriteDataSource::OGRGPSBabelWriteDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:38,1
    - Dst: OGRGPSBabelWriteDataSource::Convert
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:40,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:42,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: OGRGPSBabelWriteDataSource::~OGRGPSBabelWriteDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGPSBabelWriteDataSource::Convert
    - CPLFree
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRGPSBabelWriteDataSource::~OGRGPSBabelWriteDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:53,1
    - Dst: OGRGPSBabelDataSource::IsSpecialFile
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:56,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:59,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:59,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:72,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:74,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:80,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:83,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:88,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:88,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:101,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:103,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:107,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:112,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 117
    functionName: OGRGPSBabelWriteDataSource::Convert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - VSIFCloseL
    - VSIUnlink
    - OGRGPSBabelDataSource::IsSpecialFile
    - VSIFOpenL
    - CPLSpawn
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRGPSBabelWriteDataSource::Convert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSFDriverRegistrar::GetRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:127,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:130,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:135,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:143,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:155,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:161,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:166,1
    - Dst: OGRGPSBabelDataSource::IsValidDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:170,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:176,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:177,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:178,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:180,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:182,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - pszNameIn
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 188
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 188
    functionName: OGRGPSBabelWriteDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRGPSBabelDataSource::IsValidDriverName
    - CPLStrdup
    - VSIMemGenerateHiddenFilename
    - OGRSFDriverRegistrar::GetRegistrar
    - GDALDriver*::Create
    - c_str
    - CPLError
    - CPLGetConfigOption
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: int
    signature: "int OGRGPSBabelWriteDataSource::Create(const char *pszNameIn,\n                                       char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: OGRGPSBabelWriteDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRGPSBabelWriteDataSource::ICreateLayer(\n    const char
      *pszLayerName, const OGRGeomFieldDefn *poGeomFieldDefn,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: OGRGPSBabelWriteDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGPSBabelWriteDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPSBabelWriteDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: OGRGPSBabelWriteDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGPSBabelWriteDataSource::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGPSBabelWriteDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPSBabelWriteDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: OGRGPSBabelWriteDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabelwritedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGPSBabelWriteDataSource::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int OGRGPSBabelWriteDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: OGRGPSBabelDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogr_gpsbabel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:26,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:33,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:35,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:37,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:37,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:40,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:44,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:44,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:47,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:47,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:49,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:49,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:52,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:55,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:55,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:57,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:57,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:59,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:59,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:76,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:76,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:78,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:78,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:88,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:96,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:103,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:104,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:105,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:106,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:107,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:117,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 44
    argCount: 2
    argNames:
    - poOpenInfo
    - ppszGSPBabelDriverName
    argTypes:
    - GDALOpenInfo*
    - char**
    constantsTouched: []
    func_position:
      end: 123
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 123
    functionName: OGRGPSBabelDriverIdentifyInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - VSIStatL
    - VSIFCloseL
    - VSIUnlink
    - memcmp
    - CPLDebug
    - VSIFOpenL
    - CPLSpawn
    - strstr
    - VSIMemGenerateHiddenFilename
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: bool
    signature: "bool OGRGPSBabelDriverIdentifyInternal(GDALOpenInfo *poOpenInfo,\n
      \                                 const char **ppszGSPBabelDriverName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPSBabelDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: OGRGPSBabelDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGPSBabelDriverIdentifyInternal
    linkageType: ''
    returnType: int
    signature: int OGRGPSBabelDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPSBabelDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:141,1
    - Dst: OGRGPSBabelDataSource::OGRGPSBabelDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:144,1
    - Dst: OGRGPSBabelDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: OGRGPSBabelDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGPSBabelDriverIdentifyInternal
    - OGRGPSBabelDataSource*::Open
    - OGRGPSBabelDataSource::OGRGPSBabelDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGPSBabelDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGPSBabelWriteDataSource::OGRGPSBabelWriteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:166,1
    - Dst: OGRGPSBabelWriteDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: OGRGPSBabelDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGPSBabelWriteDataSource*::Create
    - OGRGPSBabelWriteDataSource::OGRGPSBabelWriteDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGPSBabelDriverCreate(const char *pszName,\n                                            int
      /* nBands */, int /* nXSize */,\n                                            int
      /* nYSize */,\n                                            GDALDataType /* eDT
      */,\n                                            char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: OGRGPSBabelDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGPSBabelDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:196,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:199,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:202,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:204,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:205,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:206,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:207,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:208,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:210,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:211,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:213,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:215,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:223,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 235
    functionName: RegisterOGRGPSBabel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGPSBabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: OGRGPSBabelDataSource::OGRGPSBabelDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGPSBabelDataSource::OGRGPSBabelDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:37,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:38,1
    - Dst: OGRGPSBabelDataSource::CloseDependentDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:40,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:42,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:43,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: OGRGPSBabelDataSource::~OGRGPSBabelDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - OGRGPSBabelDataSource::CloseDependentDatasets
    - VSIUnlink
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGPSBabelDataSource::~OGRGPSBabelDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: OGRGPSBabelDataSource::CloseDependentDatasets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int OGRGPSBabelDataSource::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:72,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:74,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:76,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:78,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:79,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:80,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:81,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:82,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:83,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:84,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: GetArgv
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    linkageType: ''
    returnType: char
    signature: "char **GetArgv(int bExplicitFeatures, int bWaypoints, int bRoutes,\n
      \                     int bTracks, const char *pszGPSBabelDriverName,\n                      const
      char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:96,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:97,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:98,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: OGRGPSBabelDataSource::IsSpecialFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH
    - atoi
    linkageType: ''
    returnType: bool
    signature: bool OGRGPSBabelDataSource::IsSpecialFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 1
    argNames:
    - pszGPSBabelDriverName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: OGRGPSBabelDataSource::IsValidDriverName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRGPSBabelDataSource::IsValidDriverName(const char *pszGPSBabelDriverName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:132,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:134,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:135,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:136,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:140,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:142,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:142,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:148,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:153,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:153,1
    - Dst: OGRGPSBabelDataSource::IsValidDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:173,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:178,1
    - Dst: OGRGPSBabelDataSource::IsValidDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:182,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:213,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:215,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:217,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:221,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:228,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:237,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:242,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:243,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:245,1
    - Dst: OGRGPSBabelDataSource::IsSpecialFile
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:248,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:253,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:253,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:254,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:255,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:257,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:265,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:273,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:273,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:275,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:276,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:277,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:279,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:282,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:283,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:284,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:286,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:289,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:294,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:298,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:299,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:304,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:306,1
    - Dst: GetArgv
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:314,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:316,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:316,1
    - Dst: CPLSpawn
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:317,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:318,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:321,1
    - Dst: static_cast<GDALDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:329,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:329,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:330,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:335,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:336,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:342,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:343,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:345,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:346,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:352,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:353,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:355,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp:356,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 123
    argCount: 3
    argNames:
    - pszDatasourceName
    - pszGPSBabelDriverNameIn
    - papszOpenOptionsIn
    argTypes:
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 363
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 363
    functionName: OGRGPSBabelDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGPSBabelDataSource::IsValidDriverName
    - CPLError
    - CSLFetchNameValue
    - VSIStat
    - CPLStrdup
    - CPLGetLastErrorMsg
    - OGRGPSBabelDataSource::IsSpecialFile
    - CPLString::c_str
    - CPLPopErrorHandler
    - GetArgv
    - GetLayerByName
    - CPLGenerateTempFilenameSafe
    - STARTS_WITH_CI
    - CPLTestBool
    - c_str
    - CPLGetLastErrorNo
    - OGRLayer*::GetFeatureCount
    - VSIFOpenL
    - CPLAssert
    - strstr
    - CPLFree
    - GDALOpenEx
    - VSIFCloseL
    - CSLDestroy
    - EQUAL
    - CPLSpawn
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - VSIMemGenerateHiddenFilename
    - static_cast<GDALDataset *>
    linkageType: ''
    returnType: int
    signature: "int OGRGPSBabelDataSource::Open(const char *pszDatasourceName,\n                                const
      char *pszGPSBabelDriverNameIn,\n                                char **papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: OGRGPSBabelDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGPSBabelDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poCSVLayer
    - papszOpenOptions
    argTypes:
    - OGRCSVLayer*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: OGRCSVEditableLayerSynchronizer::OGRCSVEditableLayerSynchronizer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    linkageType: ''
    returnType: void
    signature: "void OGRCSVEditableLayerSynchronizer(OGRCSVLayer *poCSVLayer,\n                                    CSLConstList
      papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVEditableLayerSynchronizer::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: OGRCSVEditableLayerSynchronizer::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRCSVEditableLayerSynchronizer::GetFileList
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: OGRCSVEditableLayerSynchronizer::~OGRCSVEditableLayerSynchronizer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void OGRCSVEditableLayerSynchronizer::~OGRCSVEditableLayerSynchronizer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:83,1
    - Dst: GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:85,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:86,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:87,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:89,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:94,1
    - Dst: OGRCSVLayer::OGRCSVLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:100,1
    - Dst: OGRCSVLayer*::BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:102,1
    - Dst: OGRCSVLayer*::SetCRLF
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:103,1
    - Dst: GetCRLF
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:103,1
    - Dst: OGRCSVLayer*::SetCreateCSVT
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:104,1
    - Dst: OGRCSVLayer*::SetWriteBOM
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:105,1
    - Dst: GetWriteBOM
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:105,1
    - Dst: OGRCSVLayer*::SetStringQuoting
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:106,1
    - Dst: GetStringQuoting
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:106,1
    - Dst: GetGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:108,1
    - Dst: OGRCSVLayer*::SetWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:109,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:115,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:116,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:121,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:121,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:122,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:124,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:125,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:125,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:125,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:129,1
    - Dst: OGRCSVLayer*::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:130,1
    - Dst: OGRCSVLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:134,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:143,1
    - Dst: GetXField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:144,1
    - Dst: GetXField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:146,1
    - Dst: OGRCSVLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:148,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:150,1
    - Dst: GetYField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:151,1
    - Dst: GetYField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:153,1
    - Dst: OGRCSVLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:155,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:157,1
    - Dst: GetZField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:158,1
    - Dst: GetZField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:160,1
    - Dst: OGRCSVLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:162,1
    - Dst: HasHiddenWKTColumn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:167,1
    - Dst: OGRCSVLayer*::SetWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:169,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:170,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:172,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:176,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:179,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:183,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:184,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:185,1
    - Dst: OGRCSVLayer*::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:187,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:191,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:197,1
    - Dst: OGRLayer*::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:200,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:202,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:203,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:206,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:207,1
    - Dst: auto::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:208,1
    - Dst: OGRCSVLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:216,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:216,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:217,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:217,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:217,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:221,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:223,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:223,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:225,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:226,1
    - Dst: GetXField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:226,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:227,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:228,1
    - Dst: GetYField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:228,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:229,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:232,1
    - Dst: GetZField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:232,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:233,1
    - Dst: OGRCSVLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:237,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:243,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:244,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:245,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:250,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:251,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:252,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:253,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:253,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:263,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:265,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:266,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:267,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:269,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:274,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:276,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:282,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:283,1
    - Dst: OGRCSVLayer::OGRCSVLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:290,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:293,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 99
    argCount: 2
    argNames:
    - poEditableLayer
    - ppoDecoratedLayer
    argTypes:
    - OGRLayer*
    - OGRLayer**
    constantsTouched: []
    func_position:
      end: 297
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 297
    functionName: OGRCSVEditableLayerSynchronizer::EditableSyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetWriteBOM
    - OGRLayer*::GetSpatialFilter
    - HasHiddenWKTColumn
    - OGRLayer*::SetSpatialFilter
    - OGRCSVLayer*::CreateFeature
    - OGRLayer*::SetAttributeFilter
    - OGRCSVLayer::OGRCSVLayer
    - OGRFeature*::SetFrom
    - CPLError
    - OGRGeometry*::clone
    - GetCRLF
    - GetDataset
    - OGRFeatureDefn*::GetGeomFieldDefn
    - GetYField
    - GetZField
    - CPLString::c_str
    - OGRCSVLayer*::BuildFeatureDefn
    - GetXField
    - OGRLayer*::GetLayerDefn
    - wkbFlatten
    - VSIRename
    - GetName
    - OGRCSVLayer*::SetStringQuoting
    - OGRGeometry*::getGeometryType
    - OGRFieldDefn::GetNameRef
    - OGRFeatureDefn*::GetFieldCount
    - c_str
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFeatureDefn*::GetGeomFieldCount
    - auto::getZ
    - get
    - VSIUnlink
    - OGRCSVLayer*::CreateGeomField
    - GetGeometryRef
    - CPLAssert
    - OGRCSVLayer*::SetWriteBOM
    - VSIFOpenL
    - BuildFeatureDefn
    - OGRGeomFieldDefn::GetNameRef
    - OGRLayer*::ResetReading
    - OGRFeature::OGRFeature
    - GetStringQuoting
    - OGRCSVLayer*::GetLayerDefn
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - OGRCSVLayer*::SetWriteGeometry
    - OGRCSVLayer*::SetCRLF
    - OGRCSVLayer*::SetCreateCSVT
    - auto::push_back
    - auto::data
    - VSIStatL
    - auto::getX
    - CPLResetExtensionSafe
    - EQUAL
    - GetGeometryFormat
    - auto::getY
    - OGRFeature*::SetField
    - GetFilename
    - std::string
    - OGRGeometry*::toPoint
    - OGRCSVLayer*::CreateField
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCSVEditableLayerSynchronizer::EditableSyncToDisk(\n    OGRLayer
      *poEditableLayer, OGRLayer **ppoDecoratedLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: OGRCSVEditableLayer::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRCSVEditableLayerSynchronizer *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: OGRCSVEditableLayer::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRCSVEditableLayerSynchronizer *>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetFileList() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVEditableLayerSynchronizer::OGRCSVEditableLayerSynchronizer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:338,1
    - Dst: SetSupportsCreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:341,1
    - Dst: SetSupportsCurveGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poCSVLayer
    - papszOpenOptions
    argTypes:
    - OGRCSVLayer*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: OGRCSVEditableLayer::OGRCSVEditableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRCSVEditableLayerSynchronizer::OGRCSVEditableLayerSynchronizer
    - SetSupportsCreateGeomField
    - SetSupportsCurveGeometries
    linkageType: ''
    returnType: void
    signature: "void OGRCSVEditableLayer::OGRCSVEditableLayer(OGRCSVLayer *poCSVLayer,\n
      \                                        CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:355,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:359,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:361,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:363,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:364,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:365,1
    - Dst: OGRCSVLayer::PreCreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:370,1
    - Dst: OGREditableLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:376,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:379,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:379,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - poNewField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 382
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 382
    functionName: OGRCSVEditableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - empty
    - OGRFieldDefn*::GetNameRef
    - insert
    - GetFieldCount
    - CPLString
    - GetFieldDefn
    - CPLError
    - OGREditableLayer::CreateField
    - OGRCSVLayer::PreCreateField
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCSVEditableLayer::CreateField(const OGRFieldDefn *poNewField,\n
      \                                       int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:386,1
    - Dst: OGREditableLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: OGRCSVEditableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREditableLayer::DeleteField
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVEditableLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:394,1
    - Dst: OGREditableLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: OGRCSVEditableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGREditableLayer::AlterFieldDefn
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCSVEditableLayer::AlterFieldDefn(int iField,\n                                           OGRFieldDefn
      *poNewFieldDefn,\n                                           int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:404,1
    - Dst: static_cast<OGRCSVLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:408,1
    - Dst: SetNextFID
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: OGRCSVEditableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetNextFID
    - static_cast<OGRCSVLayer *>
    - OGREditableLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCSVEditableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: OGRCSVDataSource::OGRCSVDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSVDataSource::OGRCSVDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:429,1
    - Dst: OGRCSVDriverRemoveFromMap
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: OGRCSVDataSource::~OGRCSVDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRCSVDriverRemoveFromMap
    - CPLFree
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRCSVDataSource::~OGRCSVDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:444,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:446,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:448,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:450,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:454,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:456,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 460
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 460
    functionName: OGRCSVDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRCSVDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:469,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:469,1
    - Dst: OGRCSVDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 473
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 473
    functionName: OGRCSVDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - OGRCSVDataSource::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRCSVDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:481,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:482,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:482,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:485,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:485,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:487,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:488,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:488,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:490,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:491,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: OGRCSVDataSource::GetRealExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - STARTS_WITH
    - CPLString::size
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRCSVDataSource::GetRealExtension(CPLString osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:506,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:507,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:509,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:513,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:517,1
    - Dst: OGRCSVDataSource::GetRealExtension
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:518,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:522,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:525,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:530,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:532,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:533,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:539,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:540,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:541,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:542,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:543,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:544,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:545,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:546,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:547,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:548,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:549,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:550,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:551,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:552,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:553,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:554,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:554,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:561,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:561,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:566,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:567,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:573,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:573,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:582,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:586,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:588,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:590,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:590,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:592,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:594,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:594,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:596,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:597,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:598,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:599,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:600,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:605,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:606,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:607,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:608,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:609,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:611,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:613,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:614,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:617,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:621,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:622,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:624,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:627,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:631,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:632,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:635,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:636,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:636,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:638,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:641,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:642,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:643,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:647,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:662,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:662,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:665,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:666,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:672,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:672,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:674,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:676,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:676,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:682,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:683,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:684,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:684,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:689,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:692,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:692,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:698,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:699,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:700,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:700,1
    - Dst: OGRCSVDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:702,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:705,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:705,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:717,1
    - Dst: OGRCSVDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:721,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 108
    argCount: 5
    argNames:
    - pszFilename
    - bUpdateIn
    - bForceOpen
    - papszOpenOptionsIn
    - bSingleDriver
    argTypes:
    - char*
    - bool
    - bool
    - CSLConstList
    - bool
    constantsTouched: []
    func_position:
      end: 722
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 722
    functionName: OGRCSVDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - CPLDebug
    - STARTS_WITH
    - VSIStatExL
    - CPL_TO_BOOL
    - CPLGetExtensionSafe
    - OGRCSVDataSource::OpenTable
    - CPLStrdup
    - CPLString::substr
    - VSI_ISDIR
    - CPLString::c_str
    - CPLString::size
    - strlen
    - CSLCount
    - STARTS_WITH_CI
    - strstr
    - CPLFormFilenameSafe
    - empty
    - VSIStatL
    - OGRCSVDataSource::GetRealExtension
    - VSI_ISREG
    - CSLDestroy
    - EQUAL
    - OGRCSVDataSource::GetLayerCount
    linkageType: ''
    returnType: bool
    signature: "bool OGRCSVDataSource::Open(const char *pszFilename, bool bUpdateIn,\n
      \                           bool bForceOpen, CSLConstList papszOpenOptionsIn,\n
      \                           bool bSingleDriver)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: '&OGRCSVDataSource::DeletedFieldIndexes() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> &OGRCSVDataSource::DeletedFieldIndexes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:736,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:738,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:742,1
    - Dst: OGRSchemaOverride::LoadFromJSON
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:748,1
    - Dst: OGRSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:749,1
    - Dst: OGRSchemaOverride::GetLayerOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:754,1
    - Dst: auto::GetFieldOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:760,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:763,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:764,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:767,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:767,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:770,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:771,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:776,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:777,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:779,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:781,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:781,1
    - Dst: auto::cend
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:782,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:784,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:785,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:787,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:788,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:789,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:791,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:792,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:793,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:795,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:797,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:798,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:800,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:802,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:803,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:804,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:810,1
    - Dst: auto::erase
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:812,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:817,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:819,1
    - Dst: auto::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:821,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:821,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:822,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:831,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:832,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:832,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:832,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:833,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:835,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:836,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 843
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 843
    functionName: OGRCSVDataSource::DealWithOgrSchemaOpenOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFieldOverrides
    - auto::second::GetFieldWidth
    - CPLDebug
    - CPLError
    - auto::second::GetFieldName
    - std::vector::push_back
    - auto::c_str
    - std::string::empty
    - auto::GetLayerDefn
    - std::vector::end
    - auto::find
    - auto::second::GetFieldSubType
    - std::vector::begin
    - GetLayerByName
    - c_str
    - OGRSchemaOverride::IsValid
    - auto::cend
    - auto::GetFieldDefn
    - auto::second::GetFieldType
    - auto::second::GetFieldPrecision
    - auto::empty
    - OGRSchemaOverride::GetLayerOverrides
    - auto::cbegin
    - auto::GetNameRef
    - whileUnsealing
    - OGRSchemaOverride::LoadFromJSON
    - auto::erase
    - CSLFetchNameValueDef
    - auto::GetFieldCount
    - std::find
    - push_back
    linkageType: ''
    returnType: bool
    signature: "bool OGRCSVDataSource::DealWithOgrSchemaOpenOption(\n    CSLConstList
      papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:859,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:861,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:864,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:865,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:869,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:870,1
    - Dst: VSICreateBufferedReaderHandle
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:871,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:873,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:874,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:875,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:875,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:877,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:878,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:878,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:880,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:880,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:883,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:884,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:884,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:886,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:886,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:889,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:890,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:890,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:892,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:892,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:905,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:924,1
    - Dst: CSVDetectSeperator
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:926,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:926,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:927,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:931,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:944,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:952,1
    - Dst: CSVReadParseLine3L
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:953,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:960,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:972,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:977,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:979,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:981,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:983,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:987,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:993,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1002,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1007,1
    - Dst: std::make_unique<OGRCSVLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1011,1
    - Dst: auto::BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1013,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1018,1
    - Dst: std::make_unique<OGRCSVEditableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1018,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1019,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1023,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1023,1
    - Dst: OGRCSVDataSource::DealWithOgrSchemaOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1025,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1027,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 4
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    - pszNfdcRunwaysGeomField
    - pszGeonamesGeomFieldPrefix
    argTypes:
    - char*
    - CSLConstList
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1033
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 1033
    functionName: OGRCSVDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 1
    functionsReached:
    - CSVReadParseLine3L
    - std::make_unique<OGRCSVLayer>
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLGetExtensionSafe
    - CPLString::substr
    - std::string::find
    - CPLString::size
    - std::move
    - strlen
    - emplace_back
    - auto::BuildFeatureDefn
    - VSIRewindL
    - CSVDetectSeperator
    - strstr
    - std::make_unique<OGRCSVEditableLayer>
    - static_cast<size_t>
    - auto::release
    - VSIFCloseL
    - OGRCSVDataSource::DealWithOgrSchemaOpenOption
    - CPLGetBasenameSafe
    - VSIFOpenExL
    - CSLDestroy
    - EQUAL
    - VSIGetLastErrorMsg
    - pop_back
    - VSICreateBufferedReaderHandle
    linkageType: ''
    returnType: bool
    signature: "bool OGRCSVDataSource::OpenTable(const char *pszFilename,\n                                 CSLConstList
      papszOpenOptionsIn,\n                                 const char *pszNfdcRunwaysGeomField,\n
      \                                const char *pszGeonamesGeomFieldPrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1047,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1056,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1058,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1063,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1067,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1068,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1069,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1071,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1088,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1095,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1100,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1106,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1108,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1120,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1130,1
    - Dst: std::make_unique<OGRCSVLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1139,1
    - Dst: auto::BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1142,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1160,1
    - Dst: auto::SetCRLF
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1168,1
    - Dst: auto::SetStringQuoting
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1175,1
    - Dst: auto::SetWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1183,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1189,1
    - Dst: auto::SetWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1191,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1193,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1196,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1198,1
    - Dst: auto::SetWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1207,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1216,1
    - Dst: auto::SetCreateCSVT
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1226,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1232,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1235,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1236,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1239,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1239,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1240,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1242,1
    - Dst: auto::SetWriteBOM
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1250,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1250,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1252,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1255,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1256,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1257,1
    - Dst: auto::SetWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1260,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1260,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1260,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1262,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1265,1
    - Dst: std::make_unique<OGRCSVEditableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1265,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1266,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1268,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1268,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1270,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 97
    argCount: 3
    argNames:
    - pszLayerName
    - poSrcGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1271
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1271
    functionName: OGRCSVDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::SetCRLF
    - std::make_unique<OGRCSVLayer>
    - strcmp
    - auto::SetCoordinatePrecision
    - CPLError
    - auto::SetCreateCSVT
    - STARTS_WITH
    - auto::GetLayerDefn
    - VSI_ISDIR
    - auto::exportToWkt
    - CPLString::c_str
    - std::move
    - wkbFlatten
    - emplace_back
    - VSIFPrintfL
    - CPLTestBool
    - auto::BuildFeatureDefn
    - OGRGeomFieldDefn*::GetType
    - VSIFOpenL
    - auto::SetWriteBOM
    - CPL_IGNORE_RET_VAL
    - std::make_unique<OGRCSVEditableLayer>
    - auto::SetStringQuoting
    - CPLFormFilenameSafe
    - CPLFree
    - auto::SetWriteGeometry
    - back
    - auto::release
    - VSIStatL
    - VSIFCloseL
    - OGRGeometryTypeToName
    - auto::SetWriteHeader
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRCSVDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n
      \                              CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1283,1
    - Dst: OGRCSVDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1291,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1293,1
    - Dst: OGRCSVDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1295,1
    - Dst: OGRCSVDataSource::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1299,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1301,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1301,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1304,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1307
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1307
    functionName: OGRCSVDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - erase
    - c_str
    - VSIUnlink
    - begin
    - OGRCSVDataSource::GetLayerCount
    - OGRCSVDataSource::GetFileList
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1316,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszDirname
    - pszFilename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1319
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1319
    functionName: OGRCSVDataSource::CreateForSingleFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - CPLGetFilename
    linkageType: ''
    returnType: void
    signature: "void OGRCSVDataSource::CreateForSingleFile(const char *pszDirname,\n
      \                                          const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1327,1
    - Dst: OGRCSVDataSource::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1330,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1332,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1332,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp:1335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1336
    functionName: OGRCSVDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdatasource.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - CPLStringList::AddString
    - CPLStringList::StealList
    - OGRCSVDataSource::GetFileList
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **OGRCSVDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IOGRCSVLayer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached:
    - IOGRCSVLayer
    linkageType: ''
    returnType: class IOGRCSVLayer
    signature: class IOGRCSVLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: OGRCSVLayer::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: OGRCSVLayer::GetFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: OGRCSVLayer::GetDelimiter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char GetDelimiter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRCSVLayer::GetCRLF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetCRLF() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: OGRCSVLayer::GetCreateCSVT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetCreateCSVT() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: OGRCSVLayer::GetWriteBOM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetWriteBOM() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: OGRCSVLayer::GetGeometryFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRCSVGeometryFormat
    signature: OGRCSVGeometryFormat GetGeometryFormat() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: OGRCSVLayer::HasHiddenWKTColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasHiddenWKTColumn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRCSVLayer::GetTotalFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetTotalFeatureCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: '&GetXField() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetXField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: '&GetYField() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetYField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: '&GetZField() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetZField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: OGRCSVLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: OGRCSVLayer::SetWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetWriteHeader(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eVal
    argTypes:
    - StringQuoting
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: OGRCSVLayer::SetStringQuoting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetStringQuoting(StringQuoting eVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: OGRCSVLayer::GetStringQuoting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringQuoting
    signature: StringQuoting GetStringQuoting() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: OGRCSVLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h:308,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: OGRCSVDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 2
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: OGRCSVDataSource::EnableGeometryFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogr_csv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnableGeometryFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: IOGRCSVLayer::~IOGRCSVLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGRCSVLayer::~IOGRCSVLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:62,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:62,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:63,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:67,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:68,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:68,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:69,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - poDS
    - pszLayerNameIn
    - fp
    - nMaxLineSize
    - pszFilenameIn
    - bNewIn
    - bInWriteModeIn
    - chDelimiterIn
    argTypes:
    - GDALDataset*
    - char*
    - VSILFILE*
    - int
    - char*
    - int
    - int
    - char
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: OGRCSVLayer::OGRCSVLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - SetGeomType
    - CPL_TO_BOOL
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRCSVLayer::OGRCSVLayer(GDALDataset *poDS, const char *pszLayerNameIn,\n
      \                        VSILFILE *fp, int nMaxLineSize,\n                         const
      char *pszFilenameIn, int bNewIn,\n                         int bInWriteModeIn,
      char chDelimiterIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:87,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:94,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:95,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:99,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:100,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:107,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:108,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:108,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:109,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:116,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:119,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - pszFieldName
    - papszPossibleNames
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: OGRCSVLayer::Matches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLString::pop_back
    - CPLString
    - strlen
    - EQUALN
    linkageType: ''
    returnType: bool
    signature: bool OGRCSVLayer::Matches(const char *pszFieldName, char **papszPossibleNames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:135,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:137,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:146,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:155,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:170,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:171,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:172,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:181,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:196,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:208,1
    - Dst: OGRCSVDataSource::GetRealExtension
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:218,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:221,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:222,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:223,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:231,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:232,1
    - Dst: CSVReadParseLine3L
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:234,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:240,1
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:249,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:255,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:268,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:268,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:277,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:278,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:279,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:280,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:280,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:281,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:281,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:283,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:306,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:323,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:326,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:327,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:327,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:330,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:331,1
    - Dst: CSVReadParseLine3L
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:333,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:339,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:346,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:347,1
    - Dst: OGRCSVLayer::AutodetectFieldTypes
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:349,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:352,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:352,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:365,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:366,1
    - Dst: ReserveSpaceForFields
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:369,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:390,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:391,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:408,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:415,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:418,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:420,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:424,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:435,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:439,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:440,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:442,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:446,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:448,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:450,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:455,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:456,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:458,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:460,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:465,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:466,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:468,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:470,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:475,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:477,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:478,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:479,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:481,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:483,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:486,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:488,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:489,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:510,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:514,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:516,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:517,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:518,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:520,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:521,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:522,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:524,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:526,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:527,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:528,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:529,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:530,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:532,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:534,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:535,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:537,1
    - Dst: OGRCSVLayer::Matches
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:542,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:542,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:544,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:555,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:555,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:556,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:556,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:557,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:559,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:563,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:575,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:577,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:579,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:587,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:588,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:589,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:590,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:591,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:594,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:595,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:596,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:597,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:598,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:599,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:600,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:601,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:602,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:603,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:604,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:605,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:606,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:607,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:608,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:609,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:610,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:611,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:612,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:613,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:614,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:615,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:616,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:617,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:618,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:619,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:620,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:621,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:622,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:623,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:624,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:625,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:627,1
    - Dst: OGRCSVLayer::Matches
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:632,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:632,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:635,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:636,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:637,1
    - Dst: OGRCSVLayer::Matches
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:641,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:641,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:642,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:644,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:646,1
    - Dst: OGRCSVLayer::Matches
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:650,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:650,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:651,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:653,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:655,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:664,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:664,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:665,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:666,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:666,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:666,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:668,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:675,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:675,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:677,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:677,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:677,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:679,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:687,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:687,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:688,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:689,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:689,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:690,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:692,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:692,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:693,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:695,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:695,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:696,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:698,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:701,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:703,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:708,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:708,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:709,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:710,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:710,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:711,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:713,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:713,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:714,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:716,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:716,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:717,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:719,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:722,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:724,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:729,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:731,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:734,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:734,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:735,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:742,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:744,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:756,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:758,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:769,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:770,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:773,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:773,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:777,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:779,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:780,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:781,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:782,1
    - Dst: "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:783,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:787,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:789,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:791,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:792,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:796,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:797,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:798,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:799,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:809,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:813,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:819,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:821,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:826,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:827,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:830,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:830,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:832,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:835,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:835,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:837,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:841,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:842,1
    CyclomaticComplexity: 187
    EdgeCount: 187
    ICount: 370
    argCount: 3
    argNames:
    - pszNfdcGeomField
    - pszGeonamesGeomFieldPrefix
    - papszOpenOptions
    argTypes:
    - char*
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 843
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 843
    functionName: OGRCSVLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - CSVReadParseLine3L
    - GetGeomFieldDefn
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - reinterpret_cast<const unsigned char *>
    - CPLError
    - EQUALN
    - std::string::c_str
    - GetGeomFieldCount
    - CPLGetExtensionSafe
    - OGRGeomFieldDefn::SetType
    - OGRSpatialReference*::SetAxisMappingStrategy
    - SetGeomType
    - OGRCSVLayer::ResetReading
    - CPLString::c_str
    - std::move
    - AddFieldDefn
    - strlen
    - OGRSpatialReference*::importFromEPSG
    - CSLTokenizeString2
    - CSLCount
    - CPLAtof
    - OGRFieldDefn::GetNameRef
    - CPLTestBool
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - CPLFetchBool
    - VSIRewindL
    - OGRCSVLayer::AutodetectFieldTypes
    - OGRFieldDefn::SetSubType
    - CPLSPrintf
    - VSIFOpenL
    - snprintf
    - strstr
    - VSIFReadL
    - VSIIngestFile
    - CPLCalloc
    - OGRCSVLayer::Matches
    - CPLFree
    - static_cast<int *>
    - OGRSpatialReference::OGRSpatialReference
    - AddGeomFieldDefn
    - VSIFCloseL
    - OGRFieldDefn::SetWidth
    - OGRCSVDataSource::GetRealExtension
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - CSLDestroy
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - EQUAL
    - strchr
    - "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - OGRSpatialReference*::SetFromUserInput
    - ReserveSpaceForFields
    - OGRFieldDefn::GetType
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void OGRCSVLayer::BuildFeatureDefn(const char *pszNfdcGeomField,\n
      \                                  const char *pszGeonamesGeomFieldPrefix,\n
      \                                  CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:852,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:853,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 856
    functionName: OGRCSVLayer::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRCSVLayer::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:865,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 866
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 866
    functionName: OGRCSVIsTrue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: bool OGRCSVIsTrue(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:875,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 876
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 876
    functionName: OGRCSVIsFalse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: bool OGRCSVIsFalse(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:892,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:892,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:893,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:894,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:899,1
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:905,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:930,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:930,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:930,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:933,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:933,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:936,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:939,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:940,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:940,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:941,1
    - Dst: VSILFILE*::Eof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:953,1
    - Dst: VSILFILE*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:953,1
    - Dst: VSILFILE*::Eof
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:968,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:968,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:971,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:975,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:977,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:994,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1009,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1009,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1022,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1023,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1029,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1030,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1031,1
    - Dst: OGRCSVIsTrue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1041,1
    - Dst: OGRCSVIsFalse
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1042,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1048,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1051,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1052,1
    - Dst: OGRCSVIsTrue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1070,1
    - Dst: OGRCSVIsFalse
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1071,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1094,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1107,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1116,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1124,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1133,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1140,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1145,1
    - Dst: SetFinalStringType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1151,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1155,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1161,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1164,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1164,1
    - Dst: static_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1170,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1170,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1209,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1214,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1219,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1224,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1225,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1225,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1226,1
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1229,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 185
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 1232
    functionName: OGRCSVLayer::AutodetectFieldTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - OGRCSVIsFalse
    - reinterpret_cast<GByte *>
    - static_cast<char **>
    - VSIFTellL
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - CPLErrorReset
    - CPLStrdup
    - CPLAtoGIntBig
    - OGRCSVLayer::ResetReading
    - CPLPopErrorHandler
    - strlen
    - static_cast<int>
    - VSIUnlink
    - VSILFILE*::Error
    - CPLSPrintf
    - VSILFILE*::Eof
    - SetFinalStringType
    - VSIFReadL
    - static_cast<char *>
    - VSIFileFromMemBuffer
    - CPLCalloc
    - static_cast<size_t>
    - CPLDebugOnly
    - VSIFCloseL
    - CPL_INT64_FITS_ON_INT32
    - CSLFetchNameValueDef
    - CSLDestroy
    - EQUAL
    - VSIFree
    - OGRCSVIsTrue
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    - VSI_MALLOC_VERBOSE
    - CPLGetValueType
    linkageType: ''
    returnType: char
    signature: "char **OGRCSVLayer::AutodetectFieldTypes(CSLConstList papszOpenOptions,\n
      \                                        int nFieldCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1243,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1244,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1244,1
    - Dst: OGRCSVLayer::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1249,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1251,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1253,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1254,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1258
    functionName: OGRCSVLayer::~OGRCSVLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFCloseL
    - OGRCSVLayer::WriteHeader
    - CPLDebug
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRCSVLayer::~OGRCSVLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1268,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1271,1
    - Dst: CSVReadParseLine3L
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1281
    functionName: OGRCSVLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 2
    functionsReached:
    - CSLDestroy
    - VSIRewindL
    - CSVReadParseLine3L
    linkageType: ''
    returnType: void
    signature: void OGRCSVLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1306
    functionName: OGRCSVLayer::GetNextLineTokens
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: char **OGRCSVLayer::GetNextLineTokens()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1317,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1323,1
    - Dst: OGRCSVLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1327
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1327
    functionName: OGRCSVLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCSVLayer::GetNextUnfilteredFeature
    - OGRCSVLayer::ResetReading
    - CSLDestroy
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCSVLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1345,1
    - Dst: static_cast<OGRCSVDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1356,1
    - Dst: OGRCSVDataSource*::DeletedFieldIndexes
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1358,1
    - Dst: OGRCSVDataSource*::DeletedFieldIndexes
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1361,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1362,1
    - Dst: auto::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1362,1
    - Dst: auto::cend
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1363,1
    - Dst: auto::cend
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1364,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1390,1
    - Dst: OGRGeomFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1400,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1400,1
    - Dst: std::tie
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1402,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1403,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1406,1
    - Dst: std::tie
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1414,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1415,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1419,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1419,1
    - Dst: OGR_G_CreateGeometryFromJson
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1420,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1426,1
    - Dst: OGRGeometryFromHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1427,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1433,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1434,1
    - Dst: OGRFeature*::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1435,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1435,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1446,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1447,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1448,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1455,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1459,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1468,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1472,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1478,1
    - Dst: OGRCSVIsTrue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1480,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1481,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1483,1
    - Dst: OGRCSVIsFalse
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1485,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1486,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1488,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1493,1
    - Dst: WarnOnceBadValue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1494,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1500,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1503,1
    - Dst: std::strtoll
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1504,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1505,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1507,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1509,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1510,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1510,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1511,1
    - Dst: WarnTooLargeWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1513,1
    - Dst: WarnOnceBadValue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1518,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1524,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1532,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1534,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1536,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1537,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1537,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1538,1
    - Dst: WarnTooLargeWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1540,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1543,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1550,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1553,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1558,1
    - Dst: WarnOnceBadValue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1564,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1570,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1572,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1574,1
    - Dst: WarnOnceBadValue
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1576,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1580,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1584,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1588,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1589,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1590,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1590,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1591,1
    - Dst: WarnTooLargeWidth
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1593,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1602,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1604,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1618,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1620,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1625,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1626,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1628,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1633,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1637,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1640,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1643,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1645,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1648,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1651,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1658,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1665,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1685,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1686,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1686,1
    - Dst: IsCPLAtofMParsable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1693,1
    - Dst: IsCPLAtofMParsable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1694,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1705,1
    - Dst: IsCPLAtofMParsable
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1709,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1710,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1711,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1710,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1713,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1713,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1718,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1722,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1723,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1723,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1727,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1333
    functionDepth: 4
    functionLinenumber: 1333
    functionLinenumberEnd: 1732
    functionName: OGRCSVLayer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::SetGeomField
    - OGRCSVIsFalse
    - OGRFeature*::SetFieldNull
    - IsCPLAtofMParsable
    - OGRFieldDefn*::GetPrecision
    - GetGeomFieldDefn
    - CPLAtofM
    - std::tie
    - CPLDebug
    - OGR_G_CreateGeometryFromJson
    - strcmp
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - static_cast<GIntBig>
    - std::strtoll
    - Tell
    - OGRFieldDefn*::IsIgnored
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeometryFromHexEWKB
    - OGRPoint::OGRPoint
    - std::move
    - OGRFieldDefn*::GetSubType
    - WarnOnceBadValue
    - strlen
    - CSLCount
    - std::unique_ptr::reset
    - WarnTooLargeWidth
    - OGRFeature*::SetGeometryDirectly
    - OGRGeomFieldDefn*::IsIgnored
    - auto::cend
    - FromHandle
    - static_cast<int>
    - OGRFieldDefn*::GetNameRef
    - static_cast<uint64_t>
    - auto::cbegin
    - OGRFieldDefn*::GetType
    - OGRFeature::OGRFeature
    - static_cast<OGRCSVDataSource *>
    - CSLDestroy
    - EQUAL
    - std::unique_ptr::assignSpatialReference
    - OGRCSVDataSource*::DeletedFieldIndexes
    - OGRGeometryFactory::createFromWkt
    - std::find
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRCSVIsTrue
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    - CPLGetValueType
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCSVLayer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1742,1
    - Dst: OGRCSVLayer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1748,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1753,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1753,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1759
    functionName: OGRCSVLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRCSVLayer::GetNextUnfilteredFeature
    - OGRFeature*::GetGeomFieldRef
    - OGRCSVLayer::ResetReading
    - FilterGeometry
    - Evaluate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCSVLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1768,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1770,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1772,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1775,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1779,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1781,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1785
      start: 1765
    functionDepth: 0
    functionLinenumber: 1765
    functionLinenumberEnd: 1785
    functionName: OGRCSVLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRCSVLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1797,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1797,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1797,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1798,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1800,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1800,1
    - Dst: OGRFeatureDefn*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1801,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1802,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1802,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1806,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1809,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1815,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1834,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1838,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1842,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1846,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - poFeatureDefn
    - oSetFields
    - poNewField
    - bApproxOK
    argTypes:
    - OGRFeatureDefn*
    - std::set<CPLString>
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1851
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1851
    functionName: OGRCSVLayer::PreCreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn*::GetFieldTypeName
    - std::set<CPLString>::find
    - OGRFeatureDefn*::GetGeomFieldIndex
    - OGRFieldDefn*::GetNameRef
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - CPLString
    - CPLError
    - std::set<CPLString>::end
    linkageType: ''
    returnType: OGRCSVCreateFieldAction
    signature: "OGRCSVCreateFieldAction OGRCSVLayer::PreCreateField(OGRFeatureDefn
      *poFeatureDefn,\n                            const std::set<CPLString> &oSetFields,\n
      \                           const OGRFieldDefn *poNewField, int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1862,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1864,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1871,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1875,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1877,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1879,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1880,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1880,1
    - Dst: OGRCSVLayer::PreCreateField
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1886,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1893,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1895,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1895,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1895,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1897,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1897,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1898,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1899,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - poNewField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1902
      start: 1857
    functionDepth: 3
    functionLinenumber: 1857
    functionLinenumberEnd: 1902
    functionName: OGRCSVLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int *>
    - OGRCSVLayer::TestCapability
    - empty
    - OGRFieldDefn*::GetNameRef
    - insert
    - GetFieldCount
    - CPLRealloc
    - CPLString
    - AddFieldDefn
    - GetFieldDefn
    - CPLError
    - OGRCSVLayer::PreCreateField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVLayer::CreateField(const OGRFieldDefn *poNewField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1913,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1919,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1921,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1924,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1929,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1932,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1933,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1934,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1935,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1937,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1940,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1945,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1950,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1950,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1950,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1951,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1952,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1952,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1953,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1956,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1959,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1959,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1960,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1961,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1962,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - poGeomField
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 1965
      start: 1908
    functionDepth: 2
    functionLinenumber: 1908
    functionLinenumberEnd: 1965
    functionName: OGRCSVLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn::SetSpatialRef
    - CPLError
    - GetGeomFieldCount
    - OGRGeomFieldDefn*::GetNameRef
    - CPLRealloc
    - auto::Clone
    - strlen
    - GetGeomFieldIndex
    - AddFieldDefn
    - STARTS_WITH_CI
    - GetFieldCount
    - CPLSPrintf
    - auto::SetAxisMappingStrategy
    - static_cast<int *>
    - OGRCSVLayer::TestCapability
    - AddGeomFieldDefn
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRCSVLayer::CreateGeomField(const OGRGeomFieldDefn *poGeomField,\n
      \                                   int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1976,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1985,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1986,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1987,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1989,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1993,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:1994,1
    - Dst: CreateCSV
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2001,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2014,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2015,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2017,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2018,1
    - Dst: CreateCSV
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2022,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2028,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2036,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2038,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2044,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2046,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2052,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2054,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2063,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2066,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2070,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2075,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2077,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2093,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2096,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2097,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2099,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2101,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2109,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2113,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2117,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2120,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2125,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2129,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2134,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2138,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2143,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2147,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2152,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2155,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2158,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2161,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2164,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2168,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2171,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2174,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2181,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2184,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2192,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2194,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2197,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2199,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2201,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 2205
    functionName: OGRCSVLayer::WriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 1
    functionsReached:
    - CreateCSV
    - VSIFPutcL
    - CPLFree
    - VSIFPrintfL
    - VSIFCloseL
    - GetFieldCount
    - strchr
    - VSIFOpenL
    - CPLAssert
    - VSIFWriteL
    - GetFieldDefn
    - CPLError
    - STARTS_WITH
    - CPLFormFilenameSafe
    - VSIStrerror
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVLayer::WriteHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2216,1
    - Dst: OGRCSVLayer::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2233,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2251,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2252,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2252,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2254,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2255,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2259,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2260,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2265,1
    - Dst: GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2274,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2282,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2289,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2296,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2308,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2309,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2309,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2311,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2312,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2315,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2315,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2315,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2316,1
    - Dst: GetWktOptions
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2317,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2320,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2320,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2320,1
    - Dst: GetWktOptions
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2321,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2324,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2324,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2324,1
    - Dst: GetWktOptions
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2325,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2332,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2332,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2336,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2338,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2345,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2348,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2350,1
    - Dst: GetWktOptions
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2350,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2351,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2353,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2354,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2354,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2354,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2355,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2363,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2369,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2378,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2382,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2384,1
    - Dst: GetWktOptions
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2384,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2385,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2390,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2390,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2390,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2391,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2392,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2393,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2398,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2399,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2404,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2405,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2411,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2415,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2417,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2419,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2419,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2420,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2425,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2425,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2434,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2442,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2444,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2449,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2453,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2467,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2470,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2473,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2477,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2478,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2482,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2485,1
    - Dst: VSIFPutcL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2486,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 139
    argCount: 1
    argNames:
    - poNewFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2492
      start: 2211
    functionDepth: 3
    functionLinenumber: 2211
    functionLinenumberEnd: 2492
    functionName: OGRCSVLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRPoint*::getY
    - GetGeomFieldDefn
    - OGRFeature*::GetFieldAsString
    - VSIFTellL
    - GetFieldDefn
    - CPLError
    - std::string::c_str
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - VSIFPutcL
    - std::string::empty
    - CPLEscapeString
    - CPLStrdup
    - OGRFeature*::GetFieldAsDouble
    - GetCoordinatePrecision
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - VSIFPrintfL
    - OGRPoint*::getX
    - GetWktOptions
    - OGRFeature*::GetGeomFieldRef
    - VSIFSeekL
    - GetFieldCount
    - CPLSPrintf
    - VSIFReadL
    - CPLFree
    - OGRPoint*::getZ
    - OGRFeature*::GetGeometryRef
    - OGRCSVLayer::WriteHeader
    - std::string::size
    - OGRGeometry*::exportToWkt
    - strchr
    - VSIFWriteL
    - OGRGeometry*::toPoint
    - OGRMakeWktCoordinate
    - memcpy
    - CPLGetValueType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVLayer::ICreateFeature(OGRFeature *poNewFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bNewValue
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2501
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2501
    functionName: OGRCSVLayer::SetCRLF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSVLayer::SetCRLF(bool bNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2520,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - eGType
    - eGeometryFormatIn
    - pszGeomCol
    argTypes:
    - OGRwkbGeometryType
    - OGRCSVGeometryFormat
    - char*
    constantsTouched: []
    func_position:
      end: 2526
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2526
    functionName: OGRCSVLayer::SetWriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - AddGeomFieldDefn
    - SetGeomType
    linkageType: ''
    returnType: void
    signature: "void OGRCSVLayer::SetWriteGeometry(OGRwkbGeometryType eGType,\n                                   OGRCSVGeometryFormat
      eGeometryFormatIn,\n                                   const char *pszGeomCol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bCreateCSVTIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2535
      start: 2532
    functionDepth: 0
    functionLinenumber: 2532
    functionLinenumberEnd: 2535
    functionName: OGRCSVLayer::SetCreateCSVT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSVLayer::SetCreateCSVT(bool bCreateCSVTIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bWriteBOMIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2544
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2544
    functionName: OGRCSVLayer::SetWriteBOM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCSVLayer::SetWriteBOM(bool bWriteBOMIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2554,1
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2563,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2607,1
    - Dst: OGRCSVLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2611,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2614
      start: 2550
    functionDepth: 2
    functionLinenumber: 2550
    functionLinenumberEnd: 2614
    functionName: OGRCSVLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRCSVLayer::ResetReading
    - CSLDestroy
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCSVLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp:2624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2620
    functionDepth: 1
    functionLinenumber: 2620
    functionLinenumberEnd: 2628
    functionName: OGRCSVLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFFlushL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRCSVLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:43,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:47,1
    - Dst: OGRCSVDataSource::GetRealExtension
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:49,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:51,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:52,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:53,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:54,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:58,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:59,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:60,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:61,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:62,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:63,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:65,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:66,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:67,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:68,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:69,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:70,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:71,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:72,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:73,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:74,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:74,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:78,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:84,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:88,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:89,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:98,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:104,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 111
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 111
    functionName: OGRCSVDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - CPLGetFilename
    - OGRCSVDataSource::GetRealExtension
    - EQUAL
    - CPLString::size
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRCSVDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:121,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:122,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:123,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pszName
    - poDS
    argTypes:
    - char*
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: OGRCSVDriverRemoveFromMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    - erase
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: void OGRCSVDriverRemoveFromMap(const char *pszName, GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCSVDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:138,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:143,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:145,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:146,1
    - Dst: GDALDataset*::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:149,1
    - Dst: std::make_unique<OGRCSVDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:153,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:155,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:158,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:160,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:163,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:167,1
    - Dst: std::map<CPLString, GDALDataset *>::map<CPLString, GDALDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:169,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:170,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:170,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: OGRCSVDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 0
    functionsReached:
    - end
    - OGRCSVDriverIdentify
    - GDALOpenInfo*::IsSingleAllowedDriver
    - CPLMutexHolderD
    - std::make_unique<OGRCSVDataSource>
    - auto::Open
    - auto::release
    - find
    - std::map<CPLString, GDALDataset *>::map<CPLString, GDALDataset *>
    - GDALDataset*::FlushCache
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCSVDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:191,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:194,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:196,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:206,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:206,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:208,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:219,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:223,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:223,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:225,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:227,1
    - Dst: std::make_unique<OGRCSVDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:234,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:236,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:236,1
    - Dst: auto::CreateForSingleFile
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:238,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:240,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:248,1
    - Dst: auto::EnableGeometryFields
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:249,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 252
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 252
    functionName: OGRCSVDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLGetPathSafe
    - auto::release
    - VSIStatL
    - std::make_unique<OGRCSVDataSource>
    - auto::CreateForSingleFile
    - auto::Open
    - VSIMkdir
    - EQUAL
    - strcmp
    - auto::EnableGeometryFields
    - CPLError
    - STARTS_WITH
    - VSIStrerror
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRCSVDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLUnlinkTree
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: OGRCSVDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLUnlinkTree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRCSVDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: OGRCSVDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRCSVDriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:287,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:290,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:292,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:293,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:294,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:295,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:296,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:297,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:298,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:299,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:301,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:304,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:305,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:306,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:308,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:310,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:311,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:312,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:313,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:315,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:318,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:326,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:372,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:443,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:444,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:448,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:450,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:452,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:453,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 462
    functionName: RegisterOGRCSV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/csv/ogrcsvdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRCSV()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:31,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:31,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:32,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:33,1
    - Dst: DSGetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:34,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:36,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:36,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:38,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:38,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:40,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:42,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:44,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - poDSIn
    - poDefnIn
    - nFeatureCountIn
    - nOBJLIn
    argTypes:
    - OGRS57DataSource*
    - OGRFeatureDefn*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: OGRS57Layer::OGRS57Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - GetGeomFieldDefn
    - EQUAL
    - SetDescription
    - GetGeomFieldCount
    - OGRFeatureDefn*::GetName
    - DSGetSpatialRef
    linkageType: ''
    returnType: void
    signature: "void OGRS57Layer::OGRS57Layer(OGRS57DataSource *poDSIn, OGRFeatureDefn
      *poDefnIn,\n                         int nFeatureCountIn, int nOBJLIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:58,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:59,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:59,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: OGRS57Layer::~OGRS57Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetName
    - CPLDebug
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRS57Layer::~OGRS57Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: OGRS57Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRS57Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:86,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:93,1
    - Dst: S57Reader*::SetNextFEIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:98,1
    - Dst: S57Reader*::ReadNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:99,1
    - Dst: S57Reader*::GetNextFEIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:100,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:109,1
    - Dst: S57Reader*::GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:111,1
    - Dst: S57Reader*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:113,1
    - Dst: OGRS57Layer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:117,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:122,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:123,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 128
    functionName: OGRS57Layer::GetNextUnfilteredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 1
    functionsReached:
    - GetModuleCount
    - GetModule
    - GetSpatialRef
    - S57Reader*::GetNextFEIndex
    - OGRS57Layer::GetNextUnfilteredFeature
    - S57Reader*::Open
    - S57Reader*::ReadNextFeature
    - S57Reader*::SetNextFEIndex
    - S57Reader*::GetModule
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRS57Layer::GetNextUnfilteredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57Layer::GetNextUnfilteredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:145,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:150,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:150,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: OGRS57Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRS57Layer::GetNextUnfilteredFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRS57Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:167,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:180,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:180,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:181,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:184,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:188,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:191,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:194,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:196,1
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:197,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:200,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 204
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 204
    functionName: OGRS57Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetExtent
    - GetModule
    - GetName
    linkageType: ''
    returnType: int
    signature: int OGRS57Layer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:214,1
    - Dst: GetDSExtent
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: OGRS57Layer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomType
    - GetDSExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRS57Layer::IGetExtent(int /*iGeomField*/, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57Layer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:226,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: OGRS57Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - OGRS57Layer::TestCapability
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRS57Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:239,1
    - Dst: S57Reader*::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:244,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:244,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:246,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:247,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: OGRS57Layer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetModule
    - GetSpatialRef
    - S57Reader*::ReadFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRS57Layer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:269,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:270,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:273,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:273,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:284,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:285,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:288,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:288,1
    - Dst: GetWriter
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 299
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 299
    functionName: OGRS57Layer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57layer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger
    - CPLAssert
    - OGRFeature*::SetField
    - GetWriter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRS57Layer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: S57Writer::S57Writer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S57Writer::S57Writer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: S57Writer::~S57Writer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - S57Writer::Close
    linkageType: ''
    returnType: void
    signature: void S57Writer::~S57Writer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: S57Writer::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 2
    functionsReached:
    - S57Writer::Close
    linkageType: ''
    returnType: bool
    signature: bool S57Writer::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:70,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:77,1
    - Dst: Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:78,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:83,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:85,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:91,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:96,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:98,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:101,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:106,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:108,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:111,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:112,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:113,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:114,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:115,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:116,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:117,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:118,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:119,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:120,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:121,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:122,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:123,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:124,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:125,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:126,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:128,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:133,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:135,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:138,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:139,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:140,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:141,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:142,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:143,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:144,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:145,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:146,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:147,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:148,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:150,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:155,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:157,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:160,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:161,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:162,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:163,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:164,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:165,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:166,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:167,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:168,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:169,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:170,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:171,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:172,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:174,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:179,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:181,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:184,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:185,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:186,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:187,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:189,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:194,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:196,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:199,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:200,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:201,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:203,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:208,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:210,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:213,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:214,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:215,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:216,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:217,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:219,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:224,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:226,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:229,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:230,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:232,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:237,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:239,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:242,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:243,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:244,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:246,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:251,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:253,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:256,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:257,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:259,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:264,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:266,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:269,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:270,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:271,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:273,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:278,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:280,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:283,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:284,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:285,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:286,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:287,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:288,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:289,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:291,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:296,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:298,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:301,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:302,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:303,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:305,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:310,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:312,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:315,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:316,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:318,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:323,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:325,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:328,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:329,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:331,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:336,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:338,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:342,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:343,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:344,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:346,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:351,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:353,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:356,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:357,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:358,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:360,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:365,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:367,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:371,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:372,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:373,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:375,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:380,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:382,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:385,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:386,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:387,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:388,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:390,1
    - Dst: Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 159
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 403
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 403
    functionName: S57Writer::CreateS57File
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - DDFModule::DDFModule
    - Initialize
    - DDFFieldDefn*::Create
    - DDFFieldDefn*::AddSubfield
    - DDFFieldDefn::DDFFieldDefn
    - Create
    - S57Writer::Close
    - AddField
    linkageType: ''
    returnType: bool
    signature: bool S57Writer::CreateS57File(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::MakeRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:438,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:441,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:441,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:443,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:444,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:445,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:446,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:447,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:448,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:449,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:450,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:451,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:452,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:453,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:454,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:455,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:456,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:457,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:458,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:464,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:464,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:466,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:467,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:468,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:469,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:471,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:472,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:474,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:476,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:478,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:479,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:481,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:486,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 18
    argNames:
    - nEXPP
    - nINTU
    - pszDSNM
    - pszEDTN
    - pszUPDN
    - pszUADT
    - pszISDT
    - pszSTED
    - nAGEN
    - pszCOMT
    - nAALL
    - nNALL
    - nNOMR
    - nNOGR
    - nNOLR
    - nNOIN
    - nNOCN
    - nNOED
    argTypes:
    - int
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 490
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 490
    functionName: S57Writer::WriteDSID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord*::SetStringSubfield
    - FindFieldDefn
    - DDFRecord*::Write
    - DDFRecord*::AddField
    - DDFRecord*::SetIntSubfield
    - S57Writer::MakeRecord
    linkageType: ''
    returnType: bool
    signature: "bool S57Writer::WriteDSID(int nEXPP, int nINTU, const char *pszDSNM,\n
      \                         const char *pszEDTN, const char *pszUPDN,\n                          const
      char *pszUADT, const char *pszISDT,\n                          const char *pszSTED,
      int nAGEN, const char *pszCOMT,\n                          int nAALL, int nNALL,
      int nNOMR, int nNOGR, int nNOLR,\n                          int nNOIN, int nNOCN,
      int nNOED)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::MakeRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:506,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:509,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:509,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:511,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:512,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:514,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:515,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:516,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:517,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:518,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:519,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:520,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:521,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:522,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:523,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - nHDAT
    - nVDAT
    - nSDAT
    - nCSCL
    - nCOMF
    - nSOMF
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 532
    functionName: S57Writer::WriteDSPM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - FindFieldDefn
    - DDFRecord*::Write
    - DDFRecord*::AddField
    - DDFRecord*::SetIntSubfield
    - S57Writer::MakeRecord
    linkageType: ''
    returnType: bool
    signature: "bool S57Writer::WriteDSPM(int nHDAT, int nVDAT, int nSDAT, int nCSCL,
      int nCOMF,\n                          int nSOMF)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:548,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:549,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:549,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 555
    functionName: S57Writer::MakeRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 2
    functionsReached:
    - DDFRecord*::SetFieldRaw
    - DDFRecord::DDFRecord
    - DDFRecord*::AddField
    - FindFieldDefn
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *S57Writer::MakeRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:571,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:571,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:581,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:581,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:581,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:583,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:583,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:583,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:587,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:588,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:592,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:593,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:593,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:594,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:595,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:596,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - poRec
    - nVertCount
    - padfX
    - padfY
    - padfZ
    argTypes:
    - DDFRecord*
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 606
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 606
    functionName: S57Writer::WriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - FindFieldDefn
    - floor
    - DDFRecord*::AddField
    - static_cast<GInt32>
    - memcpy
    - CPLFree
    - CPL_LSBWORD32
    linkageType: ''
    returnType: bool
    signature: "bool S57Writer::WriteGeometry(DDFRecord *poRec, int nVertCount,\n
      \                             const double *padfX, const double *padfY,\n                              const
      double *padfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer::MakeRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:615,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:616,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:623,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:623,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:625,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:626,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:627,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:628,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:629,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:630,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:637,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:637,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:639,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:641,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:641,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:642,1
    - Dst: S57Writer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:649,1
    - Dst: S57Writer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:651,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:658,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:658,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:660,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:663,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:663,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:664,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:672,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:673,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:674,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:675,1
    - Dst: S57Writer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:678,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:680,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:681,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:682,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:689,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:689,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:691,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:694,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:694,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:701,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:702,1
    - Dst: S57Writer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:706,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:708,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:709,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:715,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:717,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:717,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:720,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:720,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:728,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:729,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:730,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:731,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:732,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:733,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:734,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:735,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:736,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:745,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:746,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:747,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:748,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:749,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:750,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:751,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:752,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:753,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:759,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 764
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 764
    functionName: S57Writer::WritePrimitive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getY
    - OGRGeometry*::toMultiPoint
    - S57Writer::MakeRecord
    - OGRLineString*::getY
    - OGRFeature*::GetDefnRef
    - OGRLineString*::getX
    - FindFieldDefn
    - OGRFeature*::GetFieldAsInteger
    - DDFRecord*::SetIntSubfield
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - DDFRecord*::SetStringSubfield
    - OGRPoint*::getX
    - CPLAssert
    - DDFRecord*::AddField
    - DDFRecord*::Write
    - S57Writer::WriteGeometry
    - CPLFree
    - OGRGeometry*::toLineString
    - OGRPoint*::getZ
    - OGRFeature*::GetGeometryRef
    - OGRMultiPoint*::getGeometryRef
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: bool
    signature: bool S57Writer::WritePrimitive(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 1
    argNames:
    - pszSrcHEXString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 793
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 793
    functionName: GetHEXChar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char GetHEXChar(const char *pszSrcHEXString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:802,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:807,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:807,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:808,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:808,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:809,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:809,1
    - Dst: S57Writer::WritePrimitive
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:810,1
    - Dst: S57Writer::MakeRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:815,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:821,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:821,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:823,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:824,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:825,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:826,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:827,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:828,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:829,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:830,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:831,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:832,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:833,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:838,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:838,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:840,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:841,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:842,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:843,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:844,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:845,1
    - Dst: SelectClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:852,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:853,1
    - Dst: S57Writer::WriteATTF
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:854,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:863,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:863,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:879,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:886,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:889,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:895,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:895,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:896,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:897,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:905,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:911,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:911,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:917,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:921,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:922,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:925,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:926,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:927,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:928,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:931,1
    - Dst: GetHEXChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:932,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:936,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:937,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:944,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 948
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 948
    functionName: S57Writer::WriteCompleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - SelectClass
    - S57Writer::MakeRecord
    - OGRFeature*::GetDefnRef
    - FindFieldDefn
    - OGRFeature*::GetFieldAsInteger
    - strlen
    - DDFRecord*::SetIntSubfield
    - CSLCount
    - OGRFeatureDefn*::GetName
    - CPL_LSBWORD32
    - DDFRecord*::SetStringSubfield
    - GetHEXChar
    - OGRFeature*::GetFieldIndex
    - DDFRecord*::SetFieldRaw
    - CPLAssert
    - DDFRecord*::AddField
    - S57Writer::WriteATTF
    - DDFRecord*::Write
    - S57Writer::WritePrimitive
    - CPLFree
    - EQUAL
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool S57Writer::WriteCompleteFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poReg
    - poClassContentExplorerIn
    argTypes:
    - S57ClassRegistrar*
    - S57ClassContentExplorer*
    constantsTouched: []
    func_position:
      end: 960
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 960
    functionName: S57Writer::SetClassBased
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S57Writer::SetClassBased(S57ClassRegistrar *poReg,\n                              S57ClassContentExplorer
      *poClassContentExplorerIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:968,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:986,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:988,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:997,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:998,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1009,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1016,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1021,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1022,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1025,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1027,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1033,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1035,1
    - Dst: CPLString::data
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1035,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1035,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1036,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1036,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1052,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1052,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1054,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp:1054,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - poRec
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1055
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1055
    functionName: S57Writer::WriteATTF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57writer.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - OGRFeature*::GetDefnRef
    - OGRFeature*::IsFieldSetAndNotNull
    - static_cast<int>
    - atoi
    - FindFieldDefn
    - CPL_TO_BOOL
    - OGRFeature*::GetFieldAsString
    - CPLString::clear
    - DDFRecord*::SetFieldRaw
    - CPLAssert
    - CPLString::size
    - DDFRecord*::AddField
    - CPLString::data
    - CPLError
    - memcpy
    - CPLString::empty
    linkageType: ''
    returnType: bool
    signature: bool S57Writer::WriteATTF(DDFRecord *poRec, OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:26,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:28,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:29,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:36,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:37,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:39,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:40,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:42,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:43,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:45,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:46,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:48,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:49,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:51,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:52,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:54,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:55,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:57,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:58,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:60,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:61,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:63,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:64,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:66,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:67,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:69,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:70,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:72,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:73,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:75,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:76,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:82,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:83,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:85,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:86,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:88,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:89,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:91,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:92,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:94,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:95,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:97,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:98,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:100,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:101,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:103,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:104,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:106,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:107,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:109,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:110,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:112,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:113,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:119,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:120,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:122,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:123,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:125,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:126,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:128,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:129,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:131,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:132,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:134,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:135,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:137,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:138,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:140,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:141,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:143,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:144,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:146,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:147,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:149,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 153
    functionName: S57GenerateDSIDFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::Set
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *S57GenerateDSIDFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:167,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:168,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:172,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:173,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:177,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:178,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:182,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:183,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:187,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:188,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:193,1
    - Dst: S57GenerateStandardAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - eGType
    - nOptionFlags
    argTypes:
    - OGRwkbGeometryType
    - int
    constantsTouched: []
    func_position:
      end: 197
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 197
    functionName: S57GenerateGeomFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - S57GenerateStandardAttributes
    - OGRFeatureDefn*::SetGeomType
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: "OGRFeatureDefn *S57GenerateGeomFeatureDefn(OGRwkbGeometryType eGType,\n
      \                                          int nOptionFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:210,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:211,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:215,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:216,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:220,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:221,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:225,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:226,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:231,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:238,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:239,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:241,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:242,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:244,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:245,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:247,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:248,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:253,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:254,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:256,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:257,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:265,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:266,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:268,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:269,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:271,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:272,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:274,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:275,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:277,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:278,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:280,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:281,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:283,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:284,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:286,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:287,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:289,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:290,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:292,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:293,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:295,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:296,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:298,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 1
    argNames:
    - nRCNM
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 303
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 303
    functionName: S57GenerateVectorPrimitiveFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::Set
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: "OGRFeatureDefn *S57GenerateVectorPrimitiveFeatureDefn(int nRCNM,\n
      \                                                     int /* nOptionFlags */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57ClassContentExplorer*::SelectClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:315,1
    - Dst: S57ClassContentExplorer*::GetAcronym
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:323,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:323,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:324,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:331,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:333,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:335,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:341,1
    - Dst: S57ClassContentExplorer*::GetAcronym
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:341,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:344,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:346,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:349,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:353,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:358,1
    - Dst: S57GenerateStandardAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:364,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:378,1
    - Dst: S57ClassContentExplorer*::GetAcronym
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:379,1
    - Dst: S57ClassContentExplorer*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:380,1
    - Dst: S57ClassRegistrar*::GetAttrType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:386,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:390,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:394,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:399,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:406,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:410,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:415,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:422,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:426,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 4
    argNames:
    - poCR
    - poClassContentExplorer
    - nOBJL
    - nOptionFlags
    argTypes:
    - S57ClassRegistrar*
    - S57ClassContentExplorer*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 430
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 430
    functionName: S57GenerateObjectClassDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn*::AddFieldDefn
    - S57ClassContentExplorer*::GetAcronym
    - OGRFeatureDefn*::SetGeomType
    - S57ClassRegistrar*::GetAttrType
    - OGRFeatureDefn::OGRFeatureDefn
    - S57ClassContentExplorer*::GetDescription
    - S57ClassContentExplorer*::SelectClass
    - CPLDebug
    - EQUAL
    - OGRFieldDefn::SetType
    - CSLCount
    - S57GenerateStandardAttributes
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: "OGRFeatureDefn *\nS57GenerateObjectClassDefn(S57ClassRegistrar *poCR,\n
      \                          S57ClassContentExplorer *poClassContentExplorer,\n
      \                          int nOBJL, int nOptionFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:446,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:447,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:452,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:453,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:458,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:459,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:464,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:465,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:470,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:471,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:476,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:477,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:482,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:483,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:488,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:489,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:496,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:497,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:499,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:500,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:502,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:503,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:513,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:514,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:516,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:517,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:519,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:520,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:522,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:523,1
    - Dst: OGRFieldDefn::Set
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:525,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 2
    argNames:
    - poFDefn
    - nOptionFlags
    argTypes:
    - OGRFeatureDefn*
    - int
    constantsTouched: []
    func_position:
      end: 528
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 528
    functionName: S57GenerateStandardAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57featuredefns.cpp
    functionUses: 2
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFieldDefn::Set
    linkageType: ''
    returnType: void
    signature: void S57GenerateStandardAttributes(OGRFeatureDefn *poFDefn, int nOptionFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/embedded_resources.c:24,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/embedded_resources.c:26,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/embedded_resources.c:28,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/embedded_resources.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: S57GetEmbeddedCSV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/embedded_resources.c
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: char
    signature: char *S57GetEmbeddedCSV(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:26,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:29,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:41,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:43,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:44,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:46,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:47,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:48,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:49,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:51,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:54,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:57,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:58,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:59,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:61,1
    - Dst: S57ClassRegistrar::S57ClassRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:67,1
    - Dst: S57ClassContentExplorer::S57ClassContentExplorer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:72,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:82,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:88,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:90,1
    - Dst: S57Reader::SetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:94,1
    - Dst: S57Reader::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:96,1
    - Dst: S57Reader::CollectClassList
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:106,1
    - Dst: S57Reader::SetClassBased
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:108,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:110,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:111,1
    - Dst: S57ClassContentExplorer*::SelectClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:116,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:118,1
    - Dst: S57ClassContentExplorer*::GetAcronym
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:119,1
    - Dst: S57ClassContentExplorer*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:120,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:122,1
    - Dst: S57GenerateObjectClassDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:122,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:127,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:134,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:135,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:140,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:141,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:142,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:143,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:144,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:145,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:146,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:147,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:152,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:153,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:154,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:155,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:156,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:157,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:158,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:159,1
    - Dst: S57Reader::AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:162,1
    - Dst: S57GenerateDSIDFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:162,1
    - Dst: S57Reader::ReadNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:167,1
    - Dst: OGRFeature*::DumpReadable
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:169,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp:174,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 178
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57dump.cpp
    functionUses: 22
    functionsReached:
    - std::vector::size
    - S57GenerateObjectClassDefn
    - S57ClassContentExplorer*::GetDescription
    - S57GenerateDSIDFeatureDefn
    - printf
    - S57GenerateGeomFeatureDefn
    - S57Reader::Open
    - S57ClassRegistrar::S57ClassRegistrar
    - S57GenerateVectorPrimitiveFeatureDefn
    - S57Reader::CollectClassList
    - S57Reader::SetOptions
    - STARTS_WITH_CI
    - S57ClassContentExplorer*::GetAcronym
    - S57ClassContentExplorer::S57ClassContentExplorer
    - S57ClassContentExplorer*::SelectClass
    - OGRFeature*::DumpReadable
    - S57Reader::SetClassBased
    - S57Reader::ReadNextFeature
    - exit
    - EQUAL
    - S57Reader::AddFeatureDefn
    - CSLSetNameValue
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char **papszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: DDFRecordIndex::DDFRecordIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::DDFRecordIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: DDFRecordIndex::~DDFRecordIndex()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Clear
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::~DDFRecordIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: DDFRecordIndex::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:82,1
    - Dst: static_cast<DDFIndexedRecord *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:83,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - nKey
    - poRecord
    argTypes:
    - int
    - DDFRecord*
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: DDFRecordIndex::AddRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<int>
    - static_cast<DDFIndexedRecord *>
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::AddRecord(int nKey, DDFRecord *poRecord)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nKey
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: DDFRecordIndex::FindRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFRecordIndex::FindRecord(int nKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:142,1
    - Dst: poRecord::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - nObjl
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: DDFRecordIndex::FindRecordByObjl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    - poRecord::GetIntSubfield
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFRecordIndex::FindRecordByObjl(int nObjl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:177,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - nKey
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 216
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 216
    functionName: DDFRecordIndex::RemoveRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    - memmove
    linkageType: ''
    returnType: bool
    signature: bool DDFRecordIndex::RemoveRecord(int nKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pRec1
    - pRec2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: DDFCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DDFCompare(const void *pRec1, const void *pRec2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: DDFRecordIndex::Sort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 3
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::Sort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: DDFRecordIndex::GetByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFRecordIndex::GetByIndex(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: DDFRecordIndex::GetClientInfoByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    linkageType: ''
    returnType: void
    signature: void *DDFRecordIndex::GetClientInfoByIndex(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::Sort
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - nIndex
    - pClientData
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: DDFRecordIndex::SetClientInfoByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ddfrecordindex.cpp
    functionUses: 0
    functionsReached:
    - DDFRecordIndex::Sort
    linkageType: ''
    returnType: void
    signature: void DDFRecordIndex::SetClientInfoByIndex(int nIndex, void *pClientData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:26,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:30,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:31,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:41,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:45,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:48,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:62,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 66
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 66
    functionName: OGRS57DataSource::OGRS57DataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - CPLFree
    - CPLDebug
    - SetAxisMappingStrategy
    - CSLTokenizeStringComplex
    - SetWellKnownGeogCS
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: void OGRS57DataSource::OGRS57DataSource(char **papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:78,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:82,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:84,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:86,1
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: OGRS57DataSource::~OGRS57DataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLFree
    - Close
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRS57DataSource::~OGRS57DataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:103,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszNewOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: OGRS57DataSource::SetOptionList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void OGRS57DataSource::SetOptionList(char **papszNewOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszOption
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: OGRS57DataSource::GetOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: char *OGRS57DataSource::GetOption(const char *pszOption)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: OGRS57DataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRS57DataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:142,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:144,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:146,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:147,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:149,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:150,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:151,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:153,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:155,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:156,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:158,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:160,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:161,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:163,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:165,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:166,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:168,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:170,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:171,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:173,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:175,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:176,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:178,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:179,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:180,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:182,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:184,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:185,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:187,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:189,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:190,1
    - Dst: S57Reader::S57Reader
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:192,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:194,1
    - Dst: S57Reader*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:208,1
    - Dst: static_cast<S57Reader **>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:218,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:218,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:224,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:225,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:225,1
    - Dst: S57GenerateDSIDFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:227,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:228,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:228,1
    - Dst: OGRS57DataSource::GetOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:234,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:236,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:237,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:238,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:238,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:240,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:241,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:242,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:242,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:244,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:245,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:246,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:246,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:248,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:249,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:250,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:250,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:257,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:260,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:260,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:261,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:261,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:263,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:264,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:265,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:265,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:268,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:268,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:269,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:269,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:272,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:272,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:273,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:273,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:283,1
    - Dst: S57ClassContentExplorer::S57ClassContentExplorer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:283,1
    - Dst: SetClassBased
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:286,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:286,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:293,1
    - Dst: CollectClassList
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:294,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:299,1
    - Dst: S57GenerateObjectClassDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:303,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:304,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:305,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:308,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:309,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:313,1
    - Dst: S57GenerateGeomFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:321,1
    - Dst: S57Reader*::GetOptionFlags
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:322,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:323,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:323,1
    - Dst: AddFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:334,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:335,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 340
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 340
    functionName: OGRS57DataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - S57Reader::S57Reader
    - OGRS57DataSource::GetOption
    - std::vector::size
    - S57GenerateObjectClassDefn
    - OGRS57Layer::OGRS57Layer
    - CPLDebug
    - S57GenerateDSIDFeatureDefn
    - OGRS57Driver::GetS57Registrar
    - CollectClassList
    - S57GenerateGeomFeatureDefn
    - CPL_TO_BOOL
    - S57Reader*::GetOptionFlags
    - S57Reader*::Open
    - S57GenerateVectorPrimitiveFeatureDefn
    - OGRS57DataSource::AddLayer
    - CPLMalloc
    - static_cast<S57Reader **>
    - GetLayerDefn
    - CPLTestBool
    - S57ClassContentExplorer::S57ClassContentExplorer
    - AddFeatureDefn
    - CSLDestroy
    - SetClassBased
    - CSLSetNameValue
    linkageType: ''
    returnType: int
    signature: int OGRS57DataSource::Open(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: OGRS57DataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRS57DataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRS57Layer **>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:362,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poNewLayer
    argTypes:
    - OGRS57Layer*
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 366
    functionName: OGRS57DataSource::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRS57Layer **>
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void OGRS57DataSource::AddLayer(OGRS57Layer *poNewLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 379
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 379
    functionName: OGRS57DataSource::GetModule
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S57Reader
    signature: S57Reader *OGRS57DataSource::GetModule(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:407,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:415,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:416,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:417,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - int
    constantsTouched: []
    func_position:
      end: 426
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 426
    functionName: OGRS57DataSource::GetDSExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRS57DataSource::GetDSExtent(OGREnvelope *psExtent, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:439,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:441,1
    - Dst: S57Writer::S57Writer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:449,1
    - Dst: CreateS57File
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:451,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:455,1
    - Dst: S57ClassContentExplorer::S57ClassContentExplorer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:455,1
    - Dst: SetClassBased
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:457,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:457,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:466,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:467,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:467,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:469,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:470,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:470,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:472,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:473,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:473,1
    - Dst: S57GenerateVectorPrimitiveFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:475,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:476,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:476,1
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:481,1
    - Dst: NextClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:483,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:487,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:487,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:489,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:492,1
    - Dst: S57GenerateObjectClassDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:493,1
    - Dst: OGRS57Driver::GetS57Registrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:493,1
    - Dst: OGRS57DataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:497,1
    - Dst: OGRS57Layer::OGRS57Layer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:497,1
    - Dst: WriteDSID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:526,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:526,1
    - Dst: WriteDSPM
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - pszFilename
    - papszOptionsIn
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 551
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 551
    functionName: OGRS57DataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57datasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - CreateS57File
    - std::set::insert
    - S57GenerateObjectClassDefn
    - OGRS57Layer::OGRS57Layer
    - CPLDebug
    - OGRS57Driver::GetS57Registrar
    - CPLError
    - S57GenerateVectorPrimitiveFeatureDefn
    - WriteDSID
    - OGRS57DataSource::AddLayer
    - NextClass
    - S57ClassContentExplorer::S57ClassContentExplorer
    - std::set::find
    - S57Writer::S57Writer
    - Rewind
    - SetClassBased
    - WriteDSPM
    - std::set::end
    linkageType: ''
    returnType: int
    signature: int OGRS57DataSource::Create(const char *pszFilename, char **papszOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: OGRS57Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogr_s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: OGRS57DataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogr_s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: OGRS57DataSource::DSGetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogr_s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *DSGetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: OGRS57DataSource::GetModuleCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogr_s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetModuleCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: OGRS57DataSource::GetWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogr_s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: S57Writer
    signature: S57Writer *GetWriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::ReadDSID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:55,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:57,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:58,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:59,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:60,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:73,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:80,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:80,1
    - Dst: static_cast<wchar_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:90,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:90,1
    - Dst: CPLRecodeFromWChar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:118,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:119,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:126,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:131,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - SourceString
    - LookAtAALL_NALL
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 134
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 134
    functionName: S57Reader::RecodeByDSSI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - const_cast<char *>
    - reinterpret_cast<GByte *>
    - OGRFeature*::GetFieldAsInteger
    - S57Reader::ReadDSID
    - CPLDebug
    - CPLRecodeFromWChar
    - CPLMalloc
    - CPLRecode
    - CPLFree
    - static_cast<wchar_t *>
    linkageType: ''
    returnType: char
    signature: char *S57Reader::RecodeByDSSI(const char *SourceString, bool LookAtAALL_NALL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: S57Reader::S57Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void S57Reader::S57Reader(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Close
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:162,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:164,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:165,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: S57Reader::~S57Reader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - S57Reader::Close
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void S57Reader::~S57Reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:179,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:183,1
    - Dst: S57Reader::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:184,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:197,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:207,1
    - Dst: DDFFieldDefn*::IsRepeating
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:208,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:210,1
    - Dst: DDFFieldDefn*::SetRepeatingFlag
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - bTestOpen
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 222
    functionName: S57Reader::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 2
    functionsReached:
    - S57Reader::Open
    - DDFModule::DDFModule
    - FindFieldDefn
    - S57Reader::Rewind
    - CPLDebug
    - CPLError
    - DDFFieldDefn*::SetRepeatingFlag
    - DDFFieldDefn*::IsRepeating
    linkageType: ''
    returnType: int
    signature: int S57Reader::Open(int bTestOpen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:233,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:234,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:235,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:236,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:237,1
    - Dst: S57Reader::ClearPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:250,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 260
    functionName: S57Reader::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - Clear
    - CPLFree
    - S57Reader::ClearPendingMultiPoint
    linkageType: ''
    returnType: void
    signature: void S57Reader::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: S57Reader::ClearPendingMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S57Reader::ClearPendingMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:283,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:284,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:284,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:284,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:287,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:288,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:289,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:291,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:291,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:293,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:295,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:295,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:298,1
    - Dst: OGRFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:300,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:303,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:303,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:305,1
    - Dst: S57Reader::ClearPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 309
    functionName: S57Reader::NextPendingMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - GetFID
    - OGRMultiPoint*::getGeometryRef
    - OGRFeatureDefn*::GetFieldCount
    - OGRMultiPoint*::getNumGeometries
    - OGRFeature*::SetGeometry
    - S57Reader::ClearPendingMultiPoint
    - GetGeometryRef
    - CPLAssert
    - OGRFeature::OGRFeature
    - GetDefnRef
    - OGRFeature*::SetField
    - wkbFlatten
    - GetRawFieldRef
    - OGRPoint*::getZ
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *S57Reader::NextPendingMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:318,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:319,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:323,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:328,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:329,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:337,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:343,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:344,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:352,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:358,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:359,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:364,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:365,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:370,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:371,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:376,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:377,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:382,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:383,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:388,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:389,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 1
    argNames:
    - papszOptionsIn
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 395
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 395
    functionName: S57Reader::SetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - CSLDestroy
    - EQUAL
    - CSLDuplicate
    - CPLError
    - CSLFetchNameValue
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::SetOptions(char **papszOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poReg
    - poClassContentExplorerIn
    argTypes:
    - S57ClassRegistrar*
    - S57ClassContentExplorer*
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: S57Reader::SetClassBased
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S57Reader::SetClassBased(S57ClassRegistrar *poReg,\n                              S57ClassContentExplorer
      *poClassContentExplorerIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::ClearPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: S57Reader::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - S57Reader::ClearPendingMultiPoint
    linkageType: ''
    returnType: void
    signature: void S57Reader::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:442,1
    - Dst: ReadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:444,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:446,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:449,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:456,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:461,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:465,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:471,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:471,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:475,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:475,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:479,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:479,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:483,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:483,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:487,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:493,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:498,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:501,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:501,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:504,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:507,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:508,1
    - Dst: DDFRecord*::GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:509,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:510,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:537,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:540,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:541,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:542,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:544,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:545,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:546,1
    - Dst: DDFRecord*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:554,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:560,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:565,1
    - Dst: S57Reader::FindAndApplyUpdates
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:574,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 577
    functionName: S57Reader::Ingest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord*::GetStringSubfield
    - CPLErrorReset
    - AddRecord
    - DDFRecord*::Clone
    - CPLStrdup
    - ReadRecord
    - DDFRecord*::GetField
    - CPLDebug
    - EQUAL
    - S57Reader::FindAndApplyUpdates
    - max
    - CPLGetLastErrorType
    - CPLError
    - DDFField*::GetFieldDefn
    - DDFRecord*::GetIntSubfield
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::Ingest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::ClearPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - nNewIndex
    - nRCNM
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: S57Reader::SetNextFEIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - S57Reader::ClearPendingMultiPoint
    linkageType: ''
    returnType: void
    signature: void S57Reader::SetNextFEIndex(int nNewIndex, int nRCNM)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - nRCNM
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: S57Reader::GetNextFEIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S57Reader::GetNextFEIndex(int nRCNM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Ingest
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:633,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:641,1
    - Dst: S57Reader::NextPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:643,1
    - Dst: S57Reader::ClearPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:647,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:655,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:655,1
    - Dst: S57Reader::ReadDSID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:657,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:670,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:675,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:680,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:693,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:693,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:698,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:698,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:703,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:703,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:708,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:708,1
    - Dst: S57Reader::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:717,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:729,1
    - Dst: static_cast<OGRFeatureDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:731,1
    - Dst: GetClientInfoByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:732,1
    - Dst: S57Reader::FindFDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:736,1
    - Dst: GetByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:736,1
    - Dst: SetClientInfoByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:737,1
    - Dst: S57Reader::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:746,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:750,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:751,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:751,1
    - Dst: S57Reader::NextPendingMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:756,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 1
    argNames:
    - poTarget
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 764
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 764
    functionName: S57Reader::ReadNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - SetClientInfoByIndex
    - S57Reader::ReadFeature
    - S57Reader::NextPendingMultiPoint
    - S57Reader::Ingest
    - S57Reader::ReadDSID
    - S57Reader::ReadVector
    - S57Reader::ClearPendingMultiPoint
    - EQUAL
    - GetByIndex
    - GetDefnRef
    - static_cast<OGRFeatureDefn *>
    - GetClientInfoByIndex
    - GetCount
    - wkbFlatten
    - S57Reader::FindFDefn
    - OGRFeatureDefn*::GetName
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *S57Reader::ReadNextFeature(OGRFeatureDefn *poTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:775,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:781,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:781,1
    - Dst: S57Reader::ReadDSID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:783,1
    - Dst: S57Reader::AssembleFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:787,1
    - Dst: GetByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:787,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:790,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - nFeatureId
    - poTarget
    argTypes:
    - int
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 793
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 793
    functionName: S57Reader::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - S57Reader::ReadDSID
    - GetByIndex
    - EQUAL
    - S57Reader::AssembleFeature
    - GetCount
    - OGRFeatureDefn*::GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *S57Reader::ReadFeature(int nFeatureId, OGRFeatureDefn *poTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::FindFDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:811,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:825,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:831,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:833,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:833,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:834,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:834,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:835,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:835,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:836,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:836,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:837,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:837,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:838,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:838,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:839,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:839,1
    - Dst: S57Reader::GenerateLNAMAndRefs
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:846,1
    - Dst: S57Reader::GenerateFSPTAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:853,1
    - Dst: S57Reader::ApplyObjectClassAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:859,1
    - Dst: S57Reader::AssembleSoundingGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:869,1
    - Dst: S57Reader::AssemblePointGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:871,1
    - Dst: S57Reader::AssembleLineGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:875,1
    - Dst: S57Reader::AssembleAreaGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:879,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - poRecord
    - poTarget
    argTypes:
    - DDFRecord*
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 883
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 883
    functionName: S57Reader::AssembleFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - S57Reader::GenerateLNAMAndRefs
    - S57Reader::AssembleLineGeometry
    - S57Reader::AssembleSoundingGeometry
    - S57Reader::AssemblePointGeometry
    - S57Reader::GenerateFSPTAttributes
    - OGRFeature*::SetField
    - S57Reader::AssembleAreaGeometry
    - S57Reader::ApplyObjectClassAttributes
    - OGRFeature::OGRFeature
    - S57Reader::FindFDefn
    - DDFRecord*::GetIntSubfield
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *S57Reader::AssembleFeature(DDFRecord *poRecord,\n                                       OGRFeatureDefn
      *poTarget)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:896,1
    - Dst: GetAttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:906,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:911,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:916,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:917,1
    - Dst: S57Reader::RecodeByDSSI
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:942,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:947,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:951,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:952,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:955,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:958,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:965,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:970,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:971,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:975,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:978,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:984,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:989,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1000,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1004,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1005,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1019,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1020,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1023,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - poRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1026
      start: 889
    functionDepth: 4
    functionLinenumber: 889
    functionLinenumberEnd: 1026
    functionName: S57Reader::ApplyObjectClassAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetDefnRef
    - CPLError
    - S57Reader::RecodeByDSSI
    - OGRFeature*::GetFieldAsInteger
    - CSLDestroy
    - GetAttrInfo
    - OGRFieldDefn*::GetType
    - strlen
    - OGRFeature*::SetField
    - DDFField*::GetRepeatCount
    - DDFRecord*::FindField
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void S57Reader::ApplyObjectClassAttributes(DDFRecord *poRecord,\n
      \                                          OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1039,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1040,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1041,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1042,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1043,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1048,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1059,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1061,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1079,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1080,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1084,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1089,1
    - Dst: reinterpret_cast<unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1091,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1091,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1092,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1095,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1096,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1102,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1103,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1105,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - poRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1107
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1107
    functionName: S57Reader::GenerateLNAMAndRefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - const_cast<char *>
    - OGRFeature*::GetFieldAsInteger
    - CSLAddString
    - CSLDestroy
    - DDFField*::GetSubfieldData
    - reinterpret_cast<unsigned char *>
    - snprintf
    - OGRFeature*::SetField
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void S57Reader::GenerateLNAMAndRefs(DDFRecord *poRecord, OGRFeature
      *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1120,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1140,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1141,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1142,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1143,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1149,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1150,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1151,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1152,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1153,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1158,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1159,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1160,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1161,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - poRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1163
      start: 1113
    functionDepth: 3
    functionLinenumber: 1113
    functionLinenumberEnd: 1163
    functionName: S57Reader::GenerateFSPTAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - S57Reader::ParseName
    - OGRFeature*::SetField
    - DDFRecord*::FindField
    - DDFRecord*::GetIntSubfield
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void S57Reader::GenerateFSPTAttributes(DDFRecord *poRecord,\n                                       OGRFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1182,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1182,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1198,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1205,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1206,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1207,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1208,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1209,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1210,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1211,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1212,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1212,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1214,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1214,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1216,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1217,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1217,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1219,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1219,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1222,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1223,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1224,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1225,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1225,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1227,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1227,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1229,1
    - Dst: GetFloatSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1230,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1231,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1232,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1233,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1234,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1235,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1236,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1237,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1238,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1239,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1240,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1241,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1242,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1249,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1250,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1251,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1252,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1253,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1254,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1255,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1256,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1257,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1258,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1259,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1260,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1261,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1262,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1263,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1264,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1265,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1266,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1267,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1268,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1269,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1270,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1278,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1279,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1280,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1281,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1282,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1283,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1284,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1285,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1286,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1287,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1288,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1289,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1290,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1291,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1292,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1293,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1294,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1295,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1296,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1297,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1298,1
    - Dst: GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1299,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1302,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1305
    functionName: S57Reader::ReadDSID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - empty
    - GetIntSubfield
    - EQUAL
    - GetFloatSubfield
    - GetStringSubfield
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *S57Reader::ReadDSID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1346,1
    - Dst: DDFRecordIndex*::GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1350,1
    - Dst: DDFRecordIndex*::GetByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1353,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1362,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1362,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1378,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1380,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1382,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1382,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1383,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1383,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1384,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1384,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1385,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1385,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1392,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1398,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1398,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1401,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1415,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1415,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1419,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1433,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1433,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1436,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1447,1
    - Dst: DDFRecord*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1449,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1451,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1453,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1453,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1457,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1461,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1463,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1464,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1465,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1466,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1471,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1480,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1482,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1483,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1483,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1484,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1485,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1486,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1487,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1488,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1489,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1490,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1491,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1496,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1504,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1508,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1509,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1515,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1515,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1516,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1517,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1517,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1519,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1519,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1521,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1521,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1523,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1523,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1535,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1538,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1544,1
    - Dst: DDFRecord*::GetFloatSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1545,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1551,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1552,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 2
    argNames:
    - nFeatureId
    - nRCNM
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1558
      start: 1314
    functionDepth: 3
    functionLinenumber: 1314
    functionLinenumberEnd: 1558
    functionName: S57Reader::ReadVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - DDFRecord*::GetFieldCount
    - OGRMultiPoint*::addGeometryDirectly
    - CPLError
    - OGRFeature*::GetDefnRef
    - OGRLineString*::setPoint
    - OGRFeature*::GetFieldAsInteger
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - DDFRecord*::GetIntSubfield
    - GetName
    - S57Reader::ParseName
    - OGRLineString*::setNumPoints
    - DDFRecord*::GetFloatSubfield
    - CPLAssert
    - DDFField*::GetRepeatCount
    - OGRFeature::OGRFeature
    - static_cast<double>
    - DDFRecordIndex*::GetCount
    - DDFRecordIndex*::GetByIndex
    - DDFRecord*::GetField
    - EQUAL
    - OGRFeature*::SetField
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *S57Reader::ReadVector(int nFeatureId, int nRCNM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1573,1
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1575,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1584,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1586,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1587,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1588,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1589,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1591,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1593,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1594,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1595,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1596,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1597,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - nRCNM
    - nRCID
    - pdfX
    - pdfY
    - pdfZ
    argTypes:
    - int
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1611
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1611
    functionName: S57Reader::FetchPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - FindRecord
    - DDFRecord*::FindField
    - DDFRecord*::GetIntSubfield
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: "bool S57Reader::FetchPoint(int nRCNM, int nRCID, double *pdfX, double
      *pdfY,\n                           double *pdfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1623,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1625,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1628,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - dfCenterX
    - dfCenterY
    - dfRadius
    - dfStartAngle
    - dfEndAngle
    - nVertexCount
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 1641
      start: 1617
    functionDepth: 2
    functionLinenumber: 1617
    functionLinenumberEnd: 1641
    functionName: S57StrokeArcToOGRGeometry_Angles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - max
    - OGRLineString::OGRLineString
    - OGRLineString*::setNumPoints
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *\nS57StrokeArcToOGRGeometry_Angles(double dfCenterX,
      double dfCenterY,\n                                 double dfRadius, double
      dfStartAngle,\n                                 double dfEndAngle, int nVertexCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1665,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1669,1
    - Dst: S57StrokeArcToOGRGeometry_Angles
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - dfStartX
    - dfStartY
    - dfCenterX
    - dfCenterY
    - dfEndX
    - dfEndY
    - nVertexCount
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 1708
      start: 1647
    functionDepth: 3
    functionLinenumber: 1647
    functionLinenumberEnd: 1708
    functionName: S57StrokeArcToOGRGeometry_Points
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - S57StrokeArcToOGRGeometry_Angles
    - atan2
    linkageType: ''
    returnType: OGRLineString
    signature: "OGRLineString *\nS57StrokeArcToOGRGeometry_Points(double dfStartX,
      double dfStartY,\n                                 double dfCenterX, double
      dfCenterY,\n                                 double dfEndX, double dfEndY, int
      nVertexCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1726,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1728,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1731,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1731,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1735,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1735,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1752,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1754,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1758,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1789,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1790,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1823,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1827,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1831,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1832,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1837,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1866,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1872,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1884,1
    - Dst: S57StrokeArcToOGRGeometry_Points
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1888,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1889,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1889,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1890,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1890,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1891,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1891,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1895,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1896,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1896,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1897,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - poSRecord
    - iStartVertex
    - iDirection
    - poLine
    argTypes:
    - DDFRecord*
    - int
    - int
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 1905
      start: 1714
    functionDepth: 4
    functionLinenumber: 1714
    functionLinenumberEnd: 1905
    functionName: S57Reader::FetchLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - DDFRecord*::GetFieldCount
    - DDFField*::GetSubfieldData
    - OGRLineString*::setNumPoints
    - S57StrokeArcToOGRGeometry_Points
    - DDFRecord*::GetField
    - CPLDebug
    - EQUAL
    - OGRLineString*::getNumPoints
    - CPL_SWAP32PTR
    - DDFField*::GetFieldDefn
    - memcpy
    - OGRLineString*::getY
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: bool
    signature: "bool S57Reader::FetchLine(DDFRecord *poSRecord, int iStartVertex,\n
      \                         int iDirection, OGRLineString *poLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1918,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1922,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1925,1
    - Dst: DDFRecord*::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1927,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1929,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1943,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1951,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1951,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1953,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - poFRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1954
      start: 1911
    functionDepth: 2
    functionLinenumber: 1911
    functionLinenumberEnd: 1954
    functionName: S57Reader::AssemblePointGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - fprintf
    - CPLDebug
    - S57Reader::FetchPoint
    - OGRPoint::OGRPoint
    - DDFField*::GetRepeatCount
    - DDFRecord*::FindField
    - DDFRecord*::Dump
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: void
    signature: "void S57Reader::AssemblePointGeometry(DDFRecord *poFRecord,\n                                      OGRFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1967,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1971,1
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1977,1
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1978,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1986,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1988,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1990,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:1998,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2000,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2003,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2008,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2035,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2036,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2041,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2041,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2044,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - poFRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2045
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 2045
    functionName: S57Reader::AssembleSoundingGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - OGRMultiPoint::OGRMultiPoint
    - DDFSubfieldDefn*::ExtractIntData
    - OGRMultiPoint*::addGeometryDirectly
    - CPLDebug
    - FindRecord
    - OGRPoint::OGRPoint
    - DDFField*::GetRepeatCount
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: void
    signature: "void S57Reader::AssembleSoundingGeometry(DDFRecord *poFRecord,\n                                         OGRFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2055,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - poField
    - pszSubfield
    - iSubfieldIndex
    argTypes:
    - DDFField*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2069
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2069
    functionName: GetIntSubfield
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 7
    functionsReached:
    - DDFField*::GetFieldDefn
    - DDFSubfieldDefn*::ExtractIntData
    linkageType: ''
    returnType: int
    signature: "int GetIntSubfield(const DDFField *poField, const char *pszSubfield,\n
      \                         int iSubfieldIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2079,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2080,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2093,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2095,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2096,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2096,1
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2120,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2124,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2125,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2134,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2137,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2141,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2142,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2151,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2153,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2154,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2158,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2162,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2163,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2167,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2179,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2180,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2184,1
    - Dst: S57Reader::ParseName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2185,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2193,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2197,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2198,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2213,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2215,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2217,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2218,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2221,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2222,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2223,1
    - Dst: DDFRecord*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2236,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2241,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2241,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2242,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2242,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2245,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2247,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2251,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2274,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2283,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2285,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2287,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2290,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2292,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2294,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2309,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2317,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2321,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2322,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2333,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2335,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2336,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2338,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2340,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 93
    argCount: 2
    argNames:
    - poFRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2348
    functionName: S57Reader::AssembleLineGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - DDFRecord*::GetFieldCount
    - auto::GetName
    - OGRMultiLineString*::getNumGeometries
    - S57Reader::FetchPoint
    - CPLDebug
    - OGRLineString*::getNumPoints
    - CPLError
    - OGRFeature*::GetDefnRef
    - DDFField*::GetSubfieldData
    - FindRecord
    - std::abs
    - OGRLineString::OGRLineString
    - DDFRecord*::GetIntSubfield
    - OGRMultiLineString::OGRMultiLineString
    - OGRFeature*::SetGeometryDirectly
    - S57Reader::ParseName
    - OGRLineString*::setNumPoints
    - DDFField*::GetRepeatCount
    - OGRMultiLineString*::addGeometryDirectly
    - static_cast<double>
    - OGRLineString*::addPoint
    - DDFSubfieldDefn*::ExtractIntData
    - DDFRecord*::GetField
    - GetIntSubfield
    - EQUAL
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void S57Reader::AssembleLineGeometry(DDFRecord *poFRecord,\n                                     OGRFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2358,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2367,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2370,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2370,1
    - Dst: FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2389,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2392,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2396,1
    - Dst: GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2397,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2406,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2413,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2420,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2421,1
    - Dst: S57Reader::FetchLine
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2429,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2429,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2431,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2440,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2446,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2447,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2449,1
    - Dst: S57Reader::FetchPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2455,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2456,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2459,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2468,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2468,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2472,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2475,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2476,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2482,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 2
    argNames:
    - poFRecord
    - poFeature
    argTypes:
    - DDFRecord*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2483
      start: 2354
    functionDepth: 5
    functionLinenumber: 2354
    functionLinenumberEnd: 2483
    functionName: S57Reader::AssembleAreaGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - OGRBuildPolygonFromEdges
    - auto::GetName
    - S57Reader::FetchPoint
    - CPLDebug
    - OGRLineString*::getNumPoints
    - CPLError
    - OGRFeature*::GetDefnRef
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRFeature*::GetFieldAsInteger
    - ToHandle
    - FindRecord
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    - FromHandle
    - S57Reader::FetchLine
    - DDFField*::GetRepeatCount
    - OGRLineString*::addPoint
    - OGRGeometryCollection::OGRGeometryCollection
    - DDFRecord*::GetField
    - GetIntSubfield
    - EQUAL
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: "void S57Reader::AssembleAreaGeometry(const DDFRecord *poFRecord,\n
      \                                    OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2500,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2500,1
    - Dst: SelectClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2504,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2508,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2518,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2518,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2540,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - poRecord
    argTypes:
    - DDFRecord*
    constantsTouched: []
    func_position:
      end: 2546
      start: 2493
    functionDepth: 1
    functionLinenumber: 2493
    functionLinenumberEnd: 2546
    functionName: S57Reader::FindFDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 2
    functionsReached:
    - size
    - static_cast<int>
    - EQUAL
    - GetGeomType
    - SelectClass
    - GetName
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *S57Reader::FindFDefn(DDFRecord *poRecord)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2561,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2566,1
    - Dst: CPL_LSBSINT32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - poField
    - nIndex
    - pnRCNM
    argTypes:
    - DDFField*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2581
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2581
    functionName: S57Reader::ParseName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - DDFField*::GetFieldDefn
    - CPL_LSBSINT32PTR
    linkageType: ''
    returnType: int
    signature: int S57Reader::ParseName(const DDFField *poField, int nIndex, int *pnRCNM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRFeatureDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2591,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2592,1
    - Dst: SelectClass
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2598,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2598,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2603,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poFDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 2609
      start: 2587
    functionDepth: 1
    functionLinenumber: 2587
    functionLinenumberEnd: 2609
    functionName: S57Reader::AddFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLRealloc
    - SelectClass
    - resize
    - OGRFeatureDefn*::GetName
    - static_cast<OGRFeatureDefn **>
    linkageType: ''
    returnType: void
    signature: void S57Reader::AddFeatureDefn(OGRFeatureDefn *poFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Ingest
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2621,1
    - Dst: GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2626,1
    - Dst: GetByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2628,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2635,1
    - Dst: std::vector<int>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - anClassCount
    argTypes:
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 2642
      start: 2618
    functionDepth: 2
    functionLinenumber: 2618
    functionLinenumberEnd: 2642
    functionName: S57Reader::CollectClassList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - std::vector<int>::size
    - std::vector<int>::resize
    - S57Reader::Ingest
    - GetByIndex
    - GetCount
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::CollectClassList(std::vector<int> &anClassCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2659,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2660,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2662,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2663,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2664,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2673,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2682,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2685,1
    - Dst: DDFSubfieldDefn*::GetFormat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2685,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2687,1
    - Dst: DDFSubfieldDefn*::GetFormat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2690,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2702,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2702,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2703,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2704,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2706,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2707,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2713,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2716,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2717,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2734,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2736,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2739,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2745,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2745,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2752,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2754,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2756,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2759,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2760,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2764,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2765,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2769,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2771,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2778,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2784,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2786,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2789,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2796,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2806,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2809,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2810,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2827,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2829,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2832,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2838,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2838,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2845,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2847,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2849,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2852,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2853,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2857,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2858,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2862,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2864,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2871,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2876,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2878,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2881,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2890,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2899,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2901,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2902,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2909,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2912,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2922,1
    - Dst: DDFRecord*::GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2923,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2924,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2932,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2950,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2952,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2955,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2961,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2961,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2968,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2970,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2972,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2975,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2976,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2980,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2981,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2986,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2988,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:2995,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3000,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3002,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3005,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3014,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3024,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3027,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3028,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3033,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3042,1
    - Dst: DDFRecord*::GetModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3042,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3043,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3051,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3066,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3070,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3072,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3075,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3081,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3081,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3088,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3090,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3092,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3095,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3096,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3100,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3101,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3108,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3113,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3118,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3123,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3125,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3128,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3137,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3146,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3148,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3153,1
    - Dst: FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3153,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3156,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3166,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3170,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3177,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3181,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 214
    argCount: 2
    argNames:
    - poTarget
    - poUpdate
    argTypes:
    - DDFRecord*
    - DDFRecord*
    constantsTouched: []
    func_position:
      end: 3187
      start: 2651
    functionDepth: 1
    functionLinenumber: 2651
    functionLinenumberEnd: 3187
    functionName: S57Reader::ApplyRecordUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - DDFField*::GetData
    - CPLDebug
    - CPLError
    - FindFieldDefn
    - DDFField*::GetDataSize
    - DDFRecord*::GetIntSubfield
    - CPL_LSBPTR16
    - static_cast<int>
    - DDFRecord*::SetFieldRaw
    - CPLAssert
    - DDFRecord*::AddField
    - DDFField*::GetRepeatCount
    - CPLFree
    - DDFSubfieldDefn*::GetFormat
    - DDFRecord*::GetModule
    - EQUAL
    - DDFRecord*::FindField
    - DDFField*::GetFieldDefn
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::ApplyRecordUpdate(DDFRecord *poTarget, DDFRecord *poUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Ingest
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3202,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3208,1
    - Dst: DDFModule*::ReadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3212,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3214,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3220,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3220,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3228,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3228,1
    - Dst: DDFRecordIndex*::AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3263,1
    - Dst: DDFRecord*::CloneOn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3263,1
    - Dst: DDFRecordIndex*::FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3267,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3270,1
    - Dst: DDFRecord*::GetIntSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3274,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3277,1
    - Dst: DDFRecordIndex*::RemoveRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3283,1
    - Dst: DDFRecordIndex*::FindRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3289,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3292,1
    - Dst: S57Reader::ApplyRecordUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3309,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3318,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3318,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3323,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3334,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3336,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3336,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3336,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3338,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3341,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3341,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3356,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3362,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 1
    argNames:
    - poUpdateModule
    argTypes:
    - DDFModule*
    constantsTouched: []
    func_position:
      end: 3363
      start: 3196
    functionDepth: 2
    functionLinenumber: 3196
    functionLinenumberEnd: 3363
    functionName: S57Reader::ApplyUpdates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - c_str
    - empty
    - DDFRecordIndex*::RemoveRecord
    - atoi
    - S57Reader::ApplyRecordUpdate
    - S57Reader::Ingest
    - DDFRecord*::GetField
    - CPLDebug
    - EQUAL
    - DDFRecord*::CloneOn
    - DDFRecordIndex*::AddRecord
    - CPLGetLastErrorType
    - CPLError
    - DDFField*::GetFieldDefn
    - DDFRecord*::GetIntSubfield
    - DDFRecordIndex*::FindRecord
    - DDFModule*::ReadRecord
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::ApplyUpdates(DDFModule *poUpdateModule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3378,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3380,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3397,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3398,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3399,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3400,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3405,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3406,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3407,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3408,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3413,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3414,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3415,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3418,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3424,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3427,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3428,1
    - Dst: DDFModule::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3428,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3431,1
    - Dst: S57Reader::ApplyUpdates
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3433,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3445,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3446,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3447,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3448,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3448,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3449,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3450,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3452,1
    - Dst: DDFModule::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3452,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3452,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3455,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3456,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3457,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3458,1
    - Dst: S57Reader::ApplyUpdates
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3461,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3465,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pszPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3469
      start: 3372
    functionDepth: 3
    functionLinenumber: 3372
    functionLinenumberEnd: 3469
    functionName: S57Reader::FindAndApplyUpdates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 1
    functionsReached:
    - S57Reader::ApplyUpdates
    - DDFModule::DDFModule
    - VSIFCloseL
    - CPLGetBasenameSafe
    - DDFModule::Open
    - CPLDebug
    - EQUAL
    - VSIFOpenL
    - CPLsnprintf
    - CPLString::c_str
    - CPLError
    - CPLFree
    - CPL_TO_BOOL
    - CPLGetExtensionSafe
    - CPLString::append
    linkageType: ''
    returnType: bool
    signature: bool S57Reader::FindAndApplyUpdates(const char *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Reader::Ingest
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3488,1
    - Dst: DDFRecordIndex*::GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3513,1
    - Dst: DDFRecordIndex*::GetByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3515,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3516,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3517,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3522,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3523,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3524,1
    - Dst: CPL_LSBSINT32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3529,1
    - Dst: CPL_LSBSINT32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3530,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3534,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3535,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3536,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3537,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3553,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3556,1
    - Dst: CPL_LSBSINT32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3561,1
    - Dst: CPL_LSBSINT32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3563,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3567,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3568,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3569,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3570,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3591,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3592,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3593,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp:3594,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - int
    constantsTouched: []
    func_position:
      end: 3598
      start: 3478
    functionDepth: 2
    functionLinenumber: 3478
    functionLinenumberEnd: 3598
    functionName: S57Reader::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57reader.cpp
    functionUses: 0
    functionsReached:
    - CPL_LSBSINT32PTR
    - static_cast<double>
    - DDFField*::GetData
    - DDFRecordIndex*::GetCount
    - static_cast<int>
    - S57Reader::Ingest
    - DDFRecordIndex*::GetByIndex
    - min
    - max
    - DDFField*::GetDataSize
    - DDFRecord*::FindField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr S57Reader::GetExtent(OGREnvelope *psExtent, int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:30,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:32,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:45,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:48,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:59,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:60,1
    - Dst: DDFModule::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:60,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:62,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:63,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:66,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:76,1
    - Dst: DDFModule::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:78,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:80,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:87,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:91,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:92,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:94,1
    - Dst: CPLStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:107,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:107,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:109,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:111,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:112,1
    - Dst: CPLStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:114,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:115,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:117,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:119,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:120,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:124,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:131,1
    - Dst: DDFRecord*::FindField
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:134,1
    - Dst: DDFRecord*::GetStringSubfield
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:134,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:143,1
    - Dst: CPLStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:144,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:144,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:147,1
    - Dst: CPLStat
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:150,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:150,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:152,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:158,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:158,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:159,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:159,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:163,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp:164,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 167
    functionName: S57FileCollector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57filecollector.cpp
    functionUses: 0
    functionsReached:
    - VSIStat
    - DDFRecord*::FindField
    - DDFRecord*::GetStringSubfield
    - CPLStrdup
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - VSI_ISREG
    - CSLAddString
    - VSI_ISDIR
    - DDFModule::Open
    - CPLFormFilenameSafe
    - CPLDebug
    - CPLStat
    - EQUAL
    - CPLError
    - std::string::c_str
    - CPLFree
    - DDFModule::ReadRecord
    linkageType: ''
    returnType: char
    signature: char **S57FileCollector(const char *pszDataset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: S57AttrInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL S57AttrInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:102,1
    - Dst: S57ClassRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:116,1
    - Dst: GetAttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:127,1
    - Dst: osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:128,1
    - Dst: GetAttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:133,1
    - Dst: osAcronym::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:134,1
    - Dst: GetAttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:139,1
    - Dst: GetAttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 155
    functionName: S57ClassRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 2
    functionsReached:
    - osName::c_str
    - osAcronym::c_str
    - GetAttrInfo
    - CPLStringList::CPLStringList
    - S57ClassRegistrar
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL S57ClassRegistrar
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57ClassContentExplorer::SelectClassByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: S57ClassContentExplorer::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 0
    functionsReached:
    - S57ClassContentExplorer::SelectClassByIndex
    linkageType: ''
    returnType: bool
    signature: bool Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57ClassContentExplorer::SelectClassByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: S57ClassContentExplorer::NextClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 0
    functionsReached:
    - S57ClassContentExplorer::SelectClassByIndex
    linkageType: ''
    returnType: bool
    signature: bool NextClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 249
    functionName: DDFRecordIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 1
    functionsReached:
    - DDFRecordIndex
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL DDFRecordIndex
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecordIndex::DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:274,1
    - Dst: DDFRecordIndex::DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:275,1
    - Dst: DDFRecordIndex::DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:276,1
    - Dst: DDFRecordIndex::DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:277,1
    - Dst: DDFRecordIndex::DDFRecordIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:285,1
    - Dst: ReadNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 377
    functionName: S57Reader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 1
    functionsReached:
    - ReadNextFeature
    - DDFRecordIndex::DDFRecordIndex
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL S57Reader
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57Writer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 431
    functionName: S57Writer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57.h
    functionUses: 2
    functionsReached:
    - S57Writer
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL S57Writer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: OGRS57Driver::OGRS57Driver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRS57Driver::OGRS57Driver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: OGRS57Driver::~OGRS57Driver()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRS57Driver::~OGRS57Driver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:66,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:67,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:71,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: OGRS57DriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRS57DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57DriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:81,1
    - Dst: OGRS57DataSource::OGRS57DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:84,1
    - Dst: OGRS57DataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:85,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: OGRS57Driver::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 0
    functionsReached:
    - OGRS57DriverIdentify
    - OGRS57DataSource*::Open
    - CPLError
    - OGRS57DataSource::OGRS57DataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRS57Driver::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRS57DataSource::OGRS57DataSource
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:110,1
    - Dst: OGRS57DataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: OGRS57Driver::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 0
    functionsReached:
    - OGRS57DataSource::OGRS57DataSource
    - OGRS57DataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRS57Driver::Create(const char *pszName, int /* nBands
      */,\n                                  int /* nXSize */, int /* nYSize */,\n
      \                                 GDALDataType /* eDT */, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:129,1
    - Dst: S57ClassRegistrar::S57ClassRegistrar
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:133,1
    - Dst: LoadInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 143
    functionName: OGRS57Driver::GetS57Registrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 2
    functionsReached:
    - S57ClassRegistrar::S57ClassRegistrar
    - LoadInfo
    - CPLMutexHolderD
    linkageType: ''
    returnType: S57ClassRegistrar
    signature: S57ClassRegistrar *OGRS57Driver::GetS57Registrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:152,1
    - Dst: OGRS57Driver::OGRS57Driver
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:155,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:158,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:161,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:164,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:203,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:256,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:257,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:258,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 265
    functionName: RegisterOGRS57
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GetGDALDriverManager
    - OGRS57Driver::OGRS57Driver
    linkageType: ''
    returnType: void
    signature: void RegisterOGRS57()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: S57ClassRegistrar::S57ClassRegistrar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void S57ClassRegistrar::S57ClassRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:40,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: S57ClassRegistrar::~S57ClassRegistrar()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void S57ClassRegistrar::~S57ClassRegistrar()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poRegistrarIn
    argTypes:
    - S57ClassRegistrar*
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: S57ClassContentExplorer::S57ClassContentExplorer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void S57ClassContentExplorer::S57ClassContentExplorer(\n    S57ClassRegistrar
      *poRegistrarIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:63,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:68,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: S57ClassContentExplorer::~S57ClassContentExplorer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void S57ClassContentExplorer::~S57ClassContentExplorer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:96,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:102,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:103,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:105,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:106,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:107,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:107,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:115,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:122,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:122,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - pszTarget
    - pszDirectory
    - bReportErr
    - pfp
    argTypes:
    - char*
    - char*
    - bool
    - VSILFILE**
    constantsTouched: []
    func_position:
      end: 134
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 134
    functionName: S57ClassRegistrar::FindFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    - const_cast<GByte *>
    - EQUAL
    - reinterpret_cast<const GByte *>
    - VSIFOpenL
    - strlen
    - CPLError
    - VSIFileFromMemBuffer
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool S57ClassRegistrar::FindFile(const char *pszTarget,\n                                 const
      char *pszDirectory, bool bReportErr,\n                                 VSILFILE
      **pfp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: S57ClassRegistrar::ReadLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    linkageType: ''
    returnType: char
    signature: char *S57ClassRegistrar::ReadLine(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:170,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:179,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:185,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:188,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:191,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:193,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:198,1
    - Dst: S57ClassRegistrar::FindFile
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:202,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:205,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:207,1
    - Dst: S57ClassRegistrar::FindFile
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:219,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:223,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:226,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:233,1
    - Dst: S57ClassRegistrar::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:234,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:236,1
    - Dst: AddString
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:238,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:245,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:247,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:255,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:261,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:264,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:267,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:269,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:274,1
    - Dst: S57ClassRegistrar::FindFile
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:277,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:280,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:282,1
    - Dst: S57ClassRegistrar::FindFile
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:283,1
    - Dst: S57ClassRegistrar::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:292,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:298,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:301,1
    - Dst: S57ClassRegistrar::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:308,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:310,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:315,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:317,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:322,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:323,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:327,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:329,1
    - Dst: S57AttrInfo::S57AttrInfo
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:333,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:338,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:339,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:343,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:345,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:345,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:356,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 103
    argCount: 3
    argNames:
    - pszDirectory
    - pszProfile
    - bReportErr
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 368
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 368
    functionName: S57ClassRegistrar::LoadInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - strcmp
    - S57ClassRegistrar::ReadLine
    - CPLError
    - AddString
    - CPLGetConfigOption
    - S57AttrInfo::S57AttrInfo
    - Clear
    - S57ClassRegistrar::FindFile
    - strlen
    - CSLCount
    - resize
    - static_cast<int>
    - snprintf
    - strstr
    - size
    - VSIFCloseL
    - CSLDestroy
    - EQUAL
    - push_back
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool S57ClassRegistrar::LoadInfo(const char *pszDirectory,\n                                 const
      char *pszProfile, bool bReportErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:386,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nNewIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 401
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 401
    functionName: S57ClassContentExplorer::SelectClassByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 2
    functionsReached:
    - CPLCalloc
    - CSLTokenizeStringComplex
    linkageType: ''
    returnType: bool
    signature: bool S57ClassContentExplorer::SelectClassByIndex(int nNewIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:412,1
    - Dst: S57ClassContentExplorer::SelectClassByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nOBJL
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 417
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 417
    functionName: S57ClassContentExplorer::SelectClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - S57ClassContentExplorer::SelectClassByIndex
    linkageType: ''
    returnType: bool
    signature: bool S57ClassContentExplorer::SelectClass(int nOBJL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S57ClassContentExplorer::SelectClassByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:428,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - pszAcronym
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 438
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 438
    functionName: S57ClassContentExplorer::SelectClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - S57ClassContentExplorer::SelectClassByIndex
    linkageType: ''
    returnType: bool
    signature: bool S57ClassContentExplorer::SelectClass(const char *pszAcronym)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: S57ClassContentExplorer::GetOBJL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int S57ClassContentExplorer::GetOBJL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: S57ClassContentExplorer::GetDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *S57ClassContentExplorer::GetDescription() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 478
    functionName: S57ClassContentExplorer::GetAcronym
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *S57ClassContentExplorer::GetAcronym() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:493,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:498,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:501,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:504,1
    - Dst: CSLInsertStrings
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:510,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:512,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 516
    functionName: S57ClassContentExplorer::GetAttributeList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLInsertStrings
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: char **S57ClassContentExplorer::GetAttributeList(const char *pszType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: S57ClassContentExplorer::GetClassCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char S57ClassContentExplorer::GetClassCode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:541,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:543,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: S57ClassContentExplorer::GetPrimitives
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - CSLTokenizeStringComplex
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: char **S57ClassContentExplorer::GetPrimitives()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iAttr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: S57ClassRegistrar::GetAttrInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: S57AttrInfo
    signature: S57AttrInfo *S57ClassRegistrar::GetAttrInfo(int iAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 593
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 593
    functionName: S57ClassRegistrar::FindAttrByAcronym
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/s57/s57classregistrar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int S57ClassRegistrar::FindAttrByAcronym(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:23,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:24,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:25,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:25,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:27,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:28,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:29,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:32,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:35,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:38,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - xodrRoadElements
    - proj4Defn
    argTypes:
    - RoadElements
    - std::string
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: OGRXODRLayerRoadObject::OGRXODRLayerRoadObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - GetGeomFieldDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerRoadObject::OGRXODRLayerRoadObject(\n    const RoadElements
      &xodrRoadElements, const std::string &proj4Defn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: OGRXODRLayerRoadObject::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerRoadObject::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roadObjects::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:58,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:60,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:60,1
    - Dst: triangulateSurface
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:68,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:69,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:70,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:71,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:71,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:74,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:74,1
    - Dst: odr::RoadObject::id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:75,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:76,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:76,1
    - Dst: odr::RoadObject::road_id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:77,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:78,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:78,1
    - Dst: odr::RoadObject::type::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:79,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:80,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:80,1
    - Dst: odr::RoadObject::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:81,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:82,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 97
    functionName: OGRXODRLayerRoadObject::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadobject.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::unique_ptr::SetGeometryDirectly
    - std::unique_ptr::release
    - get
    - odr::RoadObject::type::c_str
    - std::unique_ptr::SetField
    - std::unique_ptr::assignSpatialReference
    - odr::RoadObject::id::c_str
    - roadObjects::end
    - odr::RoadObject::name::c_str
    - triangulateSurface
    - GetFieldIndex
    - odr::RoadObject::road_id::c_str
    - std::unique_ptr::SetFID
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerRoadObject::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:24,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:24,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:25,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:26,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:26,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:30,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:31,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:35,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:37,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:38,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:41,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:44,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - xodrRoadElements
    - proj4Defn
    - dissolveTriangulatedSurface
    argTypes:
    - RoadElements
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 48
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 48
    functionName: OGRXODRLayerRoadMark::OGRXODRLayerRoadMark
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - OGR_GT_SetZ
    - GetGeomFieldDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerRoadMark::OGRXODRLayerRoadMark(\n    const RoadElements
      &xodrRoadElements, const std::string &proj4Defn,\n    const bool dissolveTriangulatedSurface)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: OGRXODRLayerRoadMark::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerRoadMark::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roadMarks::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:64,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:66,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:66,1
    - Dst: triangulateSurface
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:73,1
    - Dst: std::unique_ptr::UnaryUnion
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:76,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:79,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:80,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:81,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:85,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:93,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:94,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:95,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:95,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:99,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:99,1
    - Dst: odr::RoadMark::road_id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:100,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:101,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:101,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:103,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:103,1
    - Dst: odr::RoadMark::type::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:104,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:105,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: OGRXODRLayerRoadMark::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadmark.cpp
    functionUses: 0
    functionsReached:
    - odr::RoadMark::type::c_str
    - std::unique_ptr::UnaryUnion
    - IsEmpty
    - OGRGeometry*::assignSpatialReference
    - std::unique_ptr::SetGeometryDirectly
    - roadMarks::end
    - get
    - std::unique_ptr::release
    - std::unique_ptr::SetField
    - std::unique_ptr::assignSpatialReference
    - odr::RoadMark::road_id::c_str
    - triangulateSurface
    - CPLError
    - GetFieldIndex
    - std::unique_ptr::SetFID
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerRoadMark::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:24,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:24,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:25,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:26,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:26,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:30,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:31,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:35,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:37,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:38,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:41,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:44,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:47,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:50,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:53,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:56,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:59,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:62,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:65,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:68,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - xodrRoadElements
    - proj4Defn
    - dissolveTriangulatedSurface
    argTypes:
    - RoadElements
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 70
    functionName: OGRXODRLayerRoadSignal::OGRXODRLayerRoadSignal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - OGR_GT_SetZ
    - GetGeomFieldDefn
    - OGRFieldDefn::SetSubType
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerRoadSignal::OGRXODRLayerRoadSignal(\n    const RoadElements
      &xodrRoadElements, const std::string &proj4Defn,\n    const bool dissolveTriangulatedSurface)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: OGRXODRLayerRoadSignal::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerRoadSignal::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roadSignals::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:86,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:88,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:88,1
    - Dst: roads::at
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:98,1
    - Dst: odr::Road::get_xyz
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:103,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:105,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:106,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:107,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:108,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:108,1
    - Dst: triangulateSurface
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:113,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:114,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:115,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:116,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:116,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:120,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:120,1
    - Dst: odr::RoadSignal::id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:121,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:122,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:122,1
    - Dst: odr::RoadSignal::road_id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:123,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:124,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:124,1
    - Dst: odr::RoadSignal::type::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:125,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:126,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:126,1
    - Dst: odr::RoadSignal::subtype::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:127,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:128,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:128,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:130,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:130,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:132,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:132,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:134,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:134,1
    - Dst: odr::RoadSignal::orientation::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:135,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:136,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:136,1
    - Dst: odr::RoadSignal::name::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:137,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:138,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:138,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:140,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 155
    functionName: OGRXODRLayerRoadSignal::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerroadsignal.cpp
    functionUses: 0
    functionsReached:
    - odr::RoadSignal::name::c_str
    - auto::assignSpatialReference
    - GetFieldIndex
    - odr::RoadSignal::road_id::c_str
    - odr::RoadSignal::id::c_str
    - odr::Road::get_xyz
    - std::unique_ptr::SetFID
    - std::unique_ptr::release
    - std::unique_ptr::SetField
    - roadSignals::end
    - std::make_unique<OGRFeature>
    - IsEmpty
    - std::unique_ptr::SetGeometryDirectly
    - get
    - odr::RoadSignal::orientation::c_str
    - triangulateSurface
    - std::make_unique<OGRPoint>
    - auto::release
    - roads::at
    - odr::RoadSignal::subtype::c_str
    - std::unique_ptr::assignSpatialReference
    - odr::RoadSignal::type::c_str
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerRoadSignal::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - xodrRoadElements
    - proj4Defn
    argTypes:
    - RoadElements
    - std::string
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: OGRXODRLayer::OGRXODRLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayer::OGRXODRLayer(const RoadElements &xodrRoadElements,\n
      \                          const std::string &proj4Defn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:37,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:39,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:39,1
    - Dst: OGRXODRLayer::resetRoadElementIterators
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xodrRoadElements
    - proj4Defn
    - dissolveTriangulatedSurface
    argTypes:
    - RoadElements
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: OGRXODRLayer::OGRXODRLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - importFromProj4
    - std::string::c_str
    - OGRXODRLayer::resetRoadElementIterators
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayer::OGRXODRLayer(const RoadElements &xodrRoadElements,\n
      \                          const std::string &proj4Defn,\n                           const
      bool dissolveTriangulatedSurface)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXODRLayer::resetRoadElementIterators
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: OGRXODRLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRXODRLayer::resetRoadElementIterators
    linkageType: ''
    returnType: void
    signature: void OGRXODRLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roads::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:52,1
    - Dst: referenceLines::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:53,1
    - Dst: lanes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:55,1
    - Dst: laneSections::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:56,1
    - Dst: laneRoadIDs::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:57,1
    - Dst: laneMeshes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:58,1
    - Dst: laneLinesInner::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:60,1
    - Dst: laneLinesOuter::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:61,1
    - Dst: roadMarks::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:63,1
    - Dst: roadMarkMeshes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:64,1
    - Dst: roadObjects::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:66,1
    - Dst: roadObjectMeshes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:67,1
    - Dst: roadSignals::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:69,1
    - Dst: roadSignalMeshes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: OGRXODRLayer::resetRoadElementIterators
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp
    functionUses: 2
    functionsReached:
    - roadObjects::begin
    - roads::begin
    - laneLinesOuter::begin
    - laneSections::begin
    - referenceLines::begin
    - lanes::begin
    - roadMarkMeshes::begin
    - laneMeshes::begin
    - roadMarks::begin
    - laneLinesInner::begin
    - roadSignals::begin
    - roadObjectMeshes::begin
    - roadSignalMeshes::begin
    - laneRoadIDs::begin
    linkageType: ''
    returnType: void
    signature: void OGRXODRLayer::resetRoadElementIterators()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRTriangulatedSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:79,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mesh
    argTypes:
    - odr::Mesh3D
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: OGRXODRLayer::triangulateSurface
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRTriangulatedSurface>
    - auto::addGeometry
    linkageType: ''
    returnType: std::unique_ptr<OGRTriangulatedSurface>
    signature: std::unique_ptr<OGRTriangulatedSurface> OGRXODRLayer::triangulateSurface(const
      odr::Mesh3D &mesh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:24,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRXODRDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRXODRDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:49,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: OGRXODRDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRXODRDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:61,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:65,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:67,1
    - Dst: OGRXODRDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:70,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: DeclareDeferredOGRXODRPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRXODRDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRXODRPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogr_xodr.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OGRXODRLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogr_xodr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogr_xodr.h:237,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogr_xodr.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: OGRXODRDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogr_xodr.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:24,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:24,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:25,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:26,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:26,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:30,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:31,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:35,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:37,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:39,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:43,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:46,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:49,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:52,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - xodrRoadElements
    - proj4Defn
    - dissolveTriangulatedSurface
    argTypes:
    - RoadElements
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 56
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 56
    functionName: OGRXODRLayerLane::OGRXODRLayerLane
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - OGR_GT_SetZ
    - GetGeomFieldDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerLane::OGRXODRLayerLane(const RoadElements &xodrRoadElements,\n
      \                                  const std::string &proj4Defn,\n                                   const
      bool dissolveTriangulatedSurface)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: OGRXODRLayerLane::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerLane::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lanes::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:72,1
    - Dst: lanes::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:80,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:83,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:83,1
    - Dst: triangulateSurface
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:91,1
    - Dst: std::unique_ptr::UnaryUnion
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:94,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:97,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:98,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:99,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:103,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:111,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:112,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:113,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:113,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:117,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:118,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:118,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:119,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:120,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:120,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:121,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:121,1
    - Dst: odr::Lane::type::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:122,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:123,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:123,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:125,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:125,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 142
    functionName: OGRXODRLayerLane::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlane.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::UnaryUnion
    - IsEmpty
    - OGRGeometry*::assignSpatialReference
    - std::unique_ptr::SetGeometryDirectly
    - lanes::end
    - std::unique_ptr::release
    - get
    - std::unique_ptr::SetField
    - std::unique_ptr::assignSpatialReference
    - triangulateSurface
    - CPLError
    - GetFieldIndex
    - std::string::c_str
    - std::unique_ptr::SetFID
    - odr::Lane::type::c_str
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerLane::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:23,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:24,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:25,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:25,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:27,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:28,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:29,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:30,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:33,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:36,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:39,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:42,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - xodrRoadElements
    - proj4Defn
    argTypes:
    - RoadElements
    - std::string
    constantsTouched: []
    func_position:
      end: 46
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 46
    functionName: OGRXODRLayerLaneBorder::OGRXODRLayerLaneBorder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - OGR_GT_SetZ
    - GetGeomFieldDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerLaneBorder::OGRXODRLayerLaneBorder(\n    const RoadElements
      &xodrRoadElements, const std::string &proj4Defn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: OGRXODRLayerLaneBorder::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerLaneBorder::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lanes::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:62,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:64,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:64,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:71,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:74,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:77,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:78,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:79,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:79,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:82,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:83,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:84,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:84,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:85,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:85,1
    - Dst: odr::Lane::type::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:86,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:87,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:87,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:89,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:89,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:91,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 108
    functionName: OGRXODRLayerLaneBorder::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerlaneborder.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - auto::release
    - auto::addPoint
    - std::unique_ptr::SetGeometryDirectly
    - lanes::end
    - std::make_unique<OGRLineString>
    - get
    - auto::assignSpatialReference
    - std::unique_ptr::SetField
    - std::unique_ptr::release
    - GetFieldIndex
    - std::string::c_str
    - std::unique_ptr::SetFID
    - odr::Lane::type::c_str
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerLaneBorder::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeatureDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:23,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:23,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:24,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:25,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:25,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:27,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:28,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:29,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:30,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:33,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:36,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xodrRoadElements
    - proj4Defn
    argTypes:
    - RoadElements
    - std::string
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: OGRXODRLayerReferenceLine::OGRXODRLayerReferenceLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - c_str
    - std::make_unique<OGRFeatureDefn>
    - SetGeomType
    - OGR_GT_SetZ
    - GetGeomFieldDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRXODRLayerReferenceLine::OGRXODRLayerReferenceLine(\n    const
      RoadElements &xodrRoadElements, const std::string &proj4Defn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: OGRXODRLayerReferenceLine::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRLayerReferenceLine::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roads::end
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:56,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:58,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:58,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:64,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:67,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:69,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:70,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:71,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:71,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:74,1
    - Dst: odr::Road::id::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:74,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:75,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:76,1
    - Dst: odr::Road::junction::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:76,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:77,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 92
    functionName: OGRXODRLayerReferenceLine::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrlayerreferenceline.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - auto::release
    - auto::addPoint
    - roads::end
    - std::unique_ptr::SetGeometryDirectly
    - odr::Road::junction::c_str
    - std::make_unique<OGRLineString>
    - get
    - auto::assignSpatialReference
    - std::unique_ptr::SetField
    - std::unique_ptr::release
    - odr::Road::id::c_str
    - std::unique_ptr::SetFID
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXODRLayerReferenceLine::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:26,1
    - Dst: pugi::xml_parse_result::description
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:28,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:34,1
    - Dst: odr::OpenDriveMap::get_roads
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:41,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:43,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:58,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:63,1
    - Dst: OGRXODRDataSource::createRoadElements
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:66,1
    - Dst: std::make_unique<OGRXODRLayerReferenceLine>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:70,1
    - Dst: std::make_unique<OGRXODRLayerLaneBorder>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:72,1
    - Dst: std::make_unique<OGRXODRLayerRoadMark>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:73,1
    - Dst: std::make_unique<OGRXODRLayerRoadObject>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:76,1
    - Dst: std::make_unique<OGRXODRLayerLane>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:77,1
    - Dst: std::make_unique<OGRXODRLayerRoadSignal>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:79,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:82,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:82,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:83,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:83,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:84,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:84,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:85,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:85,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:86,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:86,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:87,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - pszFilename
    - openOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 90
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 90
    functionName: OGRXODRDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp
    functionUses: 0
    functionsReached:
    - pugi::xml_parse_result::description
    - OGRXODRDataSource::createRoadElements
    - std::make_unique<OGRXODRLayerReferenceLine>
    - std::make_unique<OGRXODRLayerRoadSignal>
    - CSLFetchNameValueDef
    - std::make_unique<OGRXODRLayerRoadMark>
    - std::make_unique<OGRXODRLayerLane>
    - std::make_unique<OGRXODRLayerLaneBorder>
    - std::move
    - push_back
    - std::make_unique<OGRXODRLayerRoadObject>
    - CPLError
    - odr::OpenDriveMap::get_roads
    - std::vector::empty
    linkageType: ''
    returnType: bool
    signature: bool OGRXODRDataSource::Open(const char *pszFilename, CSLConstList
      openOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:94,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:94,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: OGRXODRDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRXODRDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: OGRXODRDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXODRDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoadElements::roads::insert
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:117,1
    - Dst: RoadElements::referenceLines::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:119,1
    - Dst: ref_line::get_line
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:120,1
    - Dst: get_lanesections
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:122,1
    - Dst: RoadElements::laneSections::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:124,1
    - Dst: get_lanes
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:126,1
    - Dst: RoadElements::laneRoadIDs::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:128,1
    - Dst: RoadElements::lanes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:130,1
    - Dst: RoadElements::laneMeshes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:133,1
    - Dst: get_lane_mesh
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:134,1
    - Dst: RoadElements::laneLinesOuter::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:137,1
    - Dst: get_lane_border_line
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:138,1
    - Dst: RoadElements::laneLinesInner::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:141,1
    - Dst: get_lane_border_line
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:142,1
    - Dst: get_roadmarks
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:147,1
    - Dst: RoadElements::roadMarks::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:149,1
    - Dst: RoadElements::roadMarkMeshes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:152,1
    - Dst: get_roadmark_mesh
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:153,1
    - Dst: get_road_objects
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:158,1
    - Dst: RoadElements::roadObjects::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:160,1
    - Dst: RoadElements::roadObjectMeshes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:162,1
    - Dst: get_road_object_mesh
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:163,1
    - Dst: get_road_signals
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:166,1
    - Dst: RoadElements::roadSignals::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:168,1
    - Dst: RoadElements::roadSignalMeshes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:170,1
    - Dst: get_road_signal_mesh
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - roads
    argTypes:
    - std::vector<odr::Road>
    constantsTouched: []
    func_position:
      end: 175
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 175
    functionName: OGRXODRDataSource::createRoadElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdatasource.cpp
    functionUses: 1
    functionsReached:
    - get_lanesections
    - get_lane_border_line
    - RoadElements::laneLinesOuter::push_back
    - get_road_objects
    - RoadElements::laneLinesInner::push_back
    - RoadElements::laneRoadIDs::push_back
    - get_lanes
    - get_road_signals
    - RoadElements::roadObjectMeshes::push_back
    - get_roadmarks
    - RoadElements::roadObjects::push_back
    - RoadElements::laneMeshes::push_back
    - get_road_object_mesh
    - RoadElements::roadSignalMeshes::push_back
    - RoadElements::referenceLines::push_back
    - ref_line::get_line
    - RoadElements::lanes::push_back
    - RoadElements::roadMarks::push_back
    - RoadElements::roads::insert
    - RoadElements::roadSignals::push_back
    - RoadElements::laneSections::push_back
    - get_road_signal_mesh
    - get_lane_mesh
    - get_roadmark_mesh
    - RoadElements::roadMarkMeshes::push_back
    linkageType: ''
    returnType: RoadElements
    signature: RoadElements OGRXODRDataSource::createRoadElements(const std::vector<odr::Road>
      &roads)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRXODRDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:24,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:26,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: OGRXODRDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - std::make_unique<OGRXODRDataSource>
    - auto::release
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRXODRDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:37,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:40,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:43,1
    - Dst: OGRXODRDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:44,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: RegisterOGRXODR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xodr/ogrxodrdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRXODRDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRXODR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:43,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:44,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:45,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:49,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:49,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:50,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:50,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:51,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:51,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:51,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:52,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:52,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - poPoint
    - poRing
    argTypes:
    - OGRPoint*
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: OGRPointInRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRLineString*::getNumPoints
    - OGRLineString*::getY
    linkageType: ''
    returnType: GBool
    signature: GBool OGRPointInRing(OGRPoint *poPoint, OGRLineString *poRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:75,1
    - Dst: OGRPointInRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:77,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - poPoint
    - poPoly
    argTypes:
    - OGRPoint*
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: OGRIntersectPointPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGR_NUM_RINGS
    - OGR_GET_RING
    - OGRPointInRing
    linkageType: ''
    returnType: GBool
    signature: GBool OGRIntersectPointPolygon(OGRPoint *poPoint, OGRPolygon *poPoly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:112,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - x0
    - x
    - x1
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: EDGE_CHECK
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: CLIP_STATE
    signature: CLIP_STATE EDGE_CHECK(double x0, double x, double x1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:127,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:129,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:130,1
    - Dst: OGRIntersectPointPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:134,1
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:142,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:145,1
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:167,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:169,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:173,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:177,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:178,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:179,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:180,1
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:184,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:186,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:188,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:190,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:191,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:192,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:193,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:194,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:195,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:201,1
    - Dst: OGRRawPoint::OGRRawPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:207,1
    - Dst: OGRRawPoint::OGRRawPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:208,1
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:211,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:213,1
    - Dst: OGRLinearRing*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:214,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:216,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:216,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:217,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:217,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:219,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:221,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:222,1
    - Dst: EDGE_CHECK
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:224,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:250,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:267,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:268,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:273,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:282,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:282,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:283,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:283,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:286,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:287,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 85
    argCount: 2
    argNames:
    - poPoly
    - poLabelPoint
    argTypes:
    - OGRPolygon*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 297
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 297
    functionName: OGRPolygonLabelPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - free
    - EDGE_CHECK
    - OGRPoint*::setX
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRIntersectPointPolygon
    - OGRLinearRing*::getY
    - OGR_NUM_RINGS
    - OGR_GET_RING
    - OGRRawPoint::OGRRawPoint
    - OGRPoint*::setY
    - OGRPolygon*::getEnvelope
    - OGRLinearRing*::IsEmpty
    - OGRLinearRing*::getX
    - swap
    linkageType: ''
    returnType: int
    signature: int OGRPolygonLabelPoint(OGRPolygon *poPoly, OGRPoint *poLabelPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_NUM_RINGS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:317,1
    - Dst: OGR_GET_RING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:319,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:324,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:328,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:329,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:331,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:331,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:331,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:341,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - poPoly
    - poCentroid
    argTypes:
    - OGRPolygon*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 345
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 345
    functionName: OGRGetCentroid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - pow
    - OGRPoint*::setX
    - sqrt
    - OGRLinearRing*::getY
    - OGR_NUM_RINGS
    - OGR_GET_RING
    - OGRLinearRing*::getX
    - OGRPoint*::setY
    linkageType: ''
    returnType: int
    signature: int OGRGetCentroid(OGRPolygon *poPoly, OGRPoint *poCentroid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:364,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:367,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:371,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:371,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:371,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:372,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:372,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:372,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:377,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - poLine
    - poLabelPoint
    argTypes:
    - OGRLineString*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: OGRPolylineCenterPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRPoint*::setX
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - OGRPoint*::setY
    - OGRLineString*::getY
    linkageType: ''
    returnType: int
    signature: int OGRPolylineCenterPoint(OGRLineString *poLine, OGRPoint *poLabelPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:393,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:401,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:405,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:406,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:412,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - poLine
    - poLabelPoint
    argTypes:
    - OGRLineString*
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 418
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 418
    functionName: OGRPolylineLabelPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_geometry.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - OGRPoint*::setX
    - OGRLineString*::getNumPoints
    - OGRPoint*::setY
    - OGRLineString*::getY
    linkageType: ''
    returnType: int
    signature: int OGRPolylineLabelPoint(OGRLineString *poLine, OGRPoint *poLabelPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: TABFeature::TABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABFeature::TABFeature(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: TABFeature::~TABFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABFeature::~TABFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:85,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:89,1
    - Dst: TABFontPoint::TABFontPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:93,1
    - Dst: TABCustomPoint::TABCustomPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:97,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:109,1
    - Dst: TABArc::TABArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:113,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:122,1
    - Dst: TABRectangle::TABRectangle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:128,1
    - Dst: TABEllipse::TABEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:132,1
    - Dst: TABText::TABText
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:136,1
    - Dst: TABMultiPoint::TABMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:142,1
    - Dst: TABCollection::TABCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:148,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:160,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:162,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 2
    argNames:
    - nMapInfoType
    - poDefn
    argTypes:
    - int
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 169
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 169
    functionName: TABFeature::CreateFromMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCustomPoint::TABCustomPoint
    - static_cast<CPLErrorNum>
    - TABText::TABText
    - TABPolyline::TABPolyline
    - TABRectangle::TABRectangle
    - TABFontPoint::TABFontPoint
    - TABArc::TABArc
    - TABMultiPoint::TABMultiPoint
    - TABRegion::TABRegion
    - TABPoint::TABPoint
    - TABCollection::TABCollection
    - TABEllipse::TABEllipse
    - CPLError
    - TABFeature::TABFeature
    linkageType: ''
    returnType: TABFeature
    signature: "TABFeature *TABFeature::CreateFromMapInfoType(int nMapInfoType,\n
      \                                             OGRFeatureDefn *poDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:189,1
    - Dst: TABFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:191,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:193,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:195,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:195,1
    - Dst: TABFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:202,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:202,1
    - Dst: TABFeature::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:208,1
    - Dst: TABFeature*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:209,1
    - Dst: TABFeature::GetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:215,1
    - Dst: TABFeature*::SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poDestFeature
    argTypes:
    - TABFeature*
    constantsTouched: []
    func_position:
      end: 220
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 220
    functionName: TABFeature::CopyTABFeatureBase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - TABFeature*::SetField
    - TABFeature::GetIntMBR
    - TABFeature*::GetDefnRef
    - TABFeature*::SetGeometry
    - GetGeometryRef
    - TABFeature::GetMBR
    - GetDefnRef
    - TABFeature*::SetMBR
    - GetRawFieldRef
    - TABFeature*::SetIntMBR
    linkageType: ''
    returnType: void
    signature: void TABFeature::CopyTABFeatureBase(TABFeature *poDestFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:241,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:241,1
    - Dst: TABFeature::CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: TABFeature::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetDefnRef
    - TABFeature::TABFeature
    - TABFeature::CopyTABFeatureBase
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABFeature::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:260,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:261,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:262,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: TABFeature::SetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: void
    signature: void TABFeature::SetMBR(double dXMin, double dYMin, double dXMax, double
      dYMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: TABFeature::GetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABFeature::GetMBR(double &dXMin, double &dYMin, double &dXMax,\n
      \                       double &dYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: TABFeature::SetIntMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABFeature::SetIntMBR(GInt32 nXMin, GInt32 nYMin, GInt32 nXMax,\n
      \                          GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: TABFeature::GetIntMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABFeature::GetIntMBR(GInt32 &nXMin, GInt32 &nYMin, GInt32 &nXMax,\n
      \                          GInt32 &nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:320,1
    - Dst: TABDATFile*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:326,1
    - Dst: TABDATFile*::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:331,1
    - Dst: TABDATFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:333,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:335,1
    - Dst: TABDATFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:335,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:337,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:344,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:351,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:358,1
    - Dst: TABDATFile*::ReadLargeIntField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:363,1
    - Dst: TABDATFile*::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:364,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:365,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:372,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:379,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:392,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:397,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:416,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:422,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:441,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:453,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 1
    argNames:
    - poDATFile
    argTypes:
    - TABDATFile*
    constantsTouched: []
    func_position:
      end: 459
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 459
    functionName: TABFeature::ReadRecordFromDATFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABDATFile*::GetFieldType
    - SetField
    - CPLError
    - TABDATFile*::ReadCharField
    - TABDATFile*::GetEncoding
    - TABDATFile*::ReadLargeIntField
    - CPLAssert
    - TABDATFile*::GetFieldWidth
    - CPLString::Recode
    linkageType: ''
    returnType: int
    signature: int TABFeature::ReadRecordFromDATFile(TABDATFile *poDATFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:485,1
    - Dst: TABDATFile*::MarkRecordAsExisting
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:489,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:495,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:497,1
    - Dst: TABDATFile*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:497,1
    - Dst: TABDATFile*::WriteIntegerField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:499,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:499,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:499,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:503,1
    - Dst: TABDATFile*::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:505,1
    - Dst: TABDATFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:510,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:512,1
    - Dst: TABDATFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:512,1
    - Dst: TABDATFile*::WriteCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:514,1
    - Dst: TABDATFile*::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:515,1
    - Dst: TABDATFile*::WriteDecimalField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:520,1
    - Dst: GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:521,1
    - Dst: TABDATFile*::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:521,1
    - Dst: TABDATFile*::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:522,1
    - Dst: TABDATFile*::WriteIntegerField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:526,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:527,1
    - Dst: TABDATFile*::WriteSmallIntField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:530,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:531,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:531,1
    - Dst: TABDATFile*::WriteLargeIntField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:535,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:536,1
    - Dst: GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:536,1
    - Dst: TABDATFile*::WriteFloatField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:540,1
    - Dst: GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:541,1
    - Dst: TABDATFile*::WriteLogicalField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:545,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:545,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:550,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:552,1
    - Dst: TABDATFile*::WriteDateField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:562,1
    - Dst: TABDATFile*::WriteDateField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:565,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:566,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:571,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:573,1
    - Dst: TABDATFile*::WriteTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:585,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:586,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:586,1
    - Dst: TABDATFile*::WriteTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:590,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:591,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:596,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:598,1
    - Dst: TABDATFile*::WriteDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:611,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:612,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:613,1
    - Dst: TABDATFile*::WriteDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:615,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:616,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:621,1
    - Dst: TABDATFile*::CommitRecordToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:629,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 3
    argNames:
    - poDATFile
    - poINDFile
    - panIndexNo
    argTypes:
    - TABDATFile*
    - TABINDFile*
    - int*
    constantsTouched: []
    func_position:
      end: 633
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 633
    functionName: TABFeature::WriteRecordToDATFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABDATFile*::WriteCharField
    - static_cast<GInt64>
    - TABDATFile*::MarkRecordAsExisting
    - CPLError
    - GetFID
    - OGR_GET_MS
    - TABDATFile*::GetFieldPrecision
    - TABDATFile*::WriteLogicalField
    - TABDATFile*::WriteDateField
    - GetFieldAsDateTime
    - TABDATFile*::GetFieldWidth
    - TABDATFile*::WriteDecimalField
    - GetFieldAsInteger64
    - GetFieldAsString
    - static_cast<int>
    - TABDATFile*::CommitRecordToFile
    - TABDATFile*::GetEncoding
    - GetFieldAsInteger
    - static_cast<GInt16>
    - GetFieldAsDouble
    - CPLAssert
    - TABDATFile*::WriteSmallIntField
    - GetDefnRef
    - TABDATFile*::WriteFloatField
    - TABDATFile*::WriteTimeField
    - TABDATFile*::GetFieldType
    - TABDATFile*::WriteIntegerField
    - TABDATFile*::WriteLargeIntField
    - TABDATFile*::WriteDateTimeField
    - CPLString::Recode
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: int
    signature: "int TABFeature::WriteRecordToDATFile(TABDATFile *poDATFile,\n                                     TABINDFile
      *poINDFile, int *panIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 668
    functionName: TABFeature::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TABFeature::ReadGeometryFromMAPFile(\n    TABMAPFile * /*poMapFile*/,
      TABMAPObjHdr * /*poObjHdr*/,\n    GBool /*bCoordBlockDataOnly=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:680,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:685,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:694,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:695,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:700,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 712
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 712
    functionName: TABFeature::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetGeometryRef
    - TABMAPFile*::Coordsys2Int
    - swap
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: int
    signature: int TABFeature::UpdateMBR(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFeature::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:734,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:739,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:740,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:745,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:745,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:747,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:747,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:754,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 761
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 761
    functionName: TABFeature::ValidateCoordType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<int>
    - TABFeature::UpdateMBR
    - static_cast<TABGeomType>
    linkageType: ''
    returnType: GBool
    signature: GBool TABFeature::ValidateCoordType(TABMAPFile *poMapFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:785,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 8
    argNames:
    - nMapInfoType
    - bCompr
    - nComprOrgX
    - nComprOrgY
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - TABGeomType
    - GBool
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 795
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 795
    functionName: TABFeature::ForceCoordTypeAndOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABGeomType>
    linkageType: ''
    returnType: void
    signature: "void TABFeature::ForceCoordTypeAndOrigin(TABGeomType nMapInfoType,
      GBool bCompr,\n                                         GInt32 nComprOrgX, GInt32
      nComprOrgY,\n                                         GInt32 nXMin, GInt32 nYMin,\n
      \                                        GInt32 nXMax, GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 834
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 834
    functionName: TABFeature::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TABFeature::WriteGeometryToMAPFile(\n    TABMAPFile * /* poMapFile*/,
      TABMAPObjHdr * /*poObjHdr*/,\n    GBool /*bCoordBlockDataOnly=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:843,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:848,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:850,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:852,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:852,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:853,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:853,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:854,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 858
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 858
    functionName: TABFeature::DumpMID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - fprintf
    - OGRFieldDefn*::GetType
    - GetDefnRef
    - OGRFieldDefn::GetFieldTypeName
    - OGRFeatureDefn*::GetFieldDefn
    - GetFieldAsString
    linkageType: ''
    returnType: void
    signature: void TABFeature::DumpMID(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:873,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: TABFeature::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABFeature::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 889
    functionName: TABPoint::TABPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPoint::TABPoint(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: TABPoint::~TABPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPoint::~TABPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:913,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:913,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:915,1
    - Dst: TABPoint*::GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:921,1
    - Dst: GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 924
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 924
    functionName: TABPoint::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - GetSymbolDefRef
    - TABPoint::TABPoint
    - GetDefnRef
    - TABPoint*::GetSymbolDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABPoint::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:946,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:947,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:947,1
    - Dst: TABPoint::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:965,1
    - Dst: UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 973
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 973
    functionName: TABPoint::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetGeometryRef
    - UpdateMBR
    - CPLError
    - wkbFlatten
    - TABPoint::GetFeatureClass
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABPoint::ValidateMapInfoType(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1004,1
    - Dst: cpl::down_cast<TABMAPObjPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1014,1
    - Dst: TABMAPFile*::ReadSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1018,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1026,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1027,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1029,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1031,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1036
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1036
    functionName: TABPoint::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - SetGeometryDirectly
    - cpl::down_cast<TABMAPObjPoint *>
    - SetIntMBR
    - SetMBR
    - TABMAPFile*::ReadSymbolDef
    - OGRPoint::OGRPoint
    - CPLError
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABPoint::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1062,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1067,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1069,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1069,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1070,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1073,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1080,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1080,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1080,1
    - Dst: cpl::down_cast<TABMAPObjPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1085,1
    - Dst: TABMAPObjPoint*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1089,1
    - Dst: TABMAPFile*::WriteSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1091,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1093,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1099
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1099
    functionName: TABPoint::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - cpl::down_cast<TABMAPObjPoint *>
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - TABMAPFile*::WriteSymbolDef
    - GetGeometryRef
    - CPLAssert
    - TABMAPObjPoint*::SetMBR
    - static_cast<GByte>
    - CPLGetLastErrorType
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int TABPoint::WriteGeometryToMAPFile(TABMAPFile *poMapFile,\n                                     TABMAPObjHdr
      *poObjHdr,\n                                     GBool bCoordBlockDataOnly /*=FALSE*/,\n
      \                                    TABMAPCoordBlock ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1112,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1114,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1114,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1115,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1118,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1124
    functionName: TABPoint::GetX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - CPLError
    - GetGeometryRef
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: double
    signature: double TABPoint::GetX()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1136,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1138,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1138,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1142,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1148
    functionName: TABPoint::GetY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPoint*::getY
    - GetGeometryRef
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: double
    signature: double TABPoint::GetY()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1161,1
    - Dst: GetSymbolStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: TABPoint::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetSymbolStyleString
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *TABPoint::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1180,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1182,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1182,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1186,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1194,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1194,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1194,1
    - Dst: DumpSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1196,1
    - Dst: TABPoint::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1202,1
    - Dst: cpl::down_cast<TABFontPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1204,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1205,1
    - Dst: TABFontPoint*::GetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1206,1
    - Dst: TABFontPoint*::GetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1207,1
    - Dst: TABFontPoint*::DumpFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1209,1
    - Dst: TABPoint::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1212,1
    - Dst: cpl::down_cast<TABCustomPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1214,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1216,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1218,1
    - Dst: TABCustomPoint*::GetCustomSymbolStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1219,1
    - Dst: TABCustomPoint*::GetCustomSymbolStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1220,1
    - Dst: TABCustomPoint*::DumpFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1222,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1226
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1226
    functionName: TABPoint::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - TABFontPoint*::GetFontStyleTABValue
    - cpl::down_cast<TABFontPoint *>
    - TABFontPoint*::DumpFontDef
    - TABCustomPoint*::DumpFontDef
    - fflush
    - fprintf
    - cpl::down_cast<TABCustomPoint *>
    - GetGeometryRef
    - TABCustomPoint*::GetCustomSymbolStyle
    - DumpSymbolDef
    - OGRGeometry*::toPoint
    - wkbFlatten
    - TABPoint::GetFeatureClass
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABPoint::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: TABFontPoint::TABFontPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::TABFontPoint(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1249
    functionName: TABFontPoint::~TABFontPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::~TABFontPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1265,1
    - Dst: TABFontPoint::TABFontPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1265,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1267,1
    - Dst: TABFontPoint*::GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1273,1
    - Dst: GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1273,1
    - Dst: TABFontPoint*::GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1276,1
    - Dst: GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1276,1
    - Dst: TABFontPoint*::SetSymbolAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1278,1
    - Dst: TABFontPoint::GetSymbolAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1278,1
    - Dst: TABFontPoint*::SetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1279,1
    - Dst: TABFontPoint::GetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1282
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1282
    functionName: TABFontPoint::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABFontPoint*::SetSymbolAngle
    - GetFontDefRef
    - TABFontPoint*::GetSymbolDefRef
    - TABFontPoint*::SetFontStyleTABValue
    - TABFontPoint::TABFontPoint
    - GetSymbolDefRef
    - TABFontPoint::GetSymbolAngle
    - TABFontPoint::GetFontStyleTABValue
    - GetDefnRef
    - TABFontPoint*::GetFontDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABFontPoint::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1313,1
    - Dst: cpl::down_cast<TABMAPObjFontPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1328,1
    - Dst: TABMAPFile*::ReadFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1350,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1357,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1358,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1360,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1362,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1367
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1367
    functionName: TABFontPoint::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<TABMAPObjFontPoint *>
    - SetGeometryDirectly
    - SetIntMBR
    - SetMBR
    - OGRPoint::OGRPoint
    - TABMAPFile*::ReadFontDef
    - CPLError
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABFontPoint::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1393,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1398,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1400,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1400,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1401,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1404,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1411,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1411,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1411,1
    - Dst: cpl::down_cast<TABMAPObjFontPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1421,1
    - Dst: TABMAPObjFontPoint*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1425,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1428,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1430,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1433,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1433,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1434,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1434,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1435,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1435,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1442,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1442,1
    - Dst: TABMAPFile*::WriteFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1445,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1447,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1453
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1453
    functionName: TABFontPoint::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getY
    - COLOR_B
    - static_cast<GByte>
    - CPLError
    - COLOR_R
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - cpl::down_cast<TABMAPObjFontPoint *>
    - OGRPoint*::getX
    - COLOR_G
    - ROUND_INT
    - TABMAPFile*::WriteFontDef
    - static_cast<GInt16>
    - GetGeometryRef
    - CPLAssert
    - TABMAPFile*::Coordsys2Int
    - TABMAPObjFontPoint*::SetMBR
    - CPLGetLastErrorType
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: int
    signature: "int TABFontPoint::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eStyleToQuery
    argTypes:
    - TABFontStyle
    constantsTouched: []
    func_position:
      end: 1465
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1465
    functionName: TABFontPoint::QueryFontStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: GBool
    signature: GBool TABFontPoint::QueryFontStyle(TABFontStyle eStyleToQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1470,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - eStyleToToggle
    - bStyleOn
    argTypes:
    - TABFontStyle
    - GBool
    constantsTouched: []
    func_position:
      end: 1473
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1473
    functionName: TABFontPoint::ToggleFontStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::ToggleFontStyle(TABFontStyle eStyleToToggle, GBool
      bStyleOn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1497
    functionName: TABFontPoint::GetFontStyleMIFValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABFontPoint::GetFontStyleMIFValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nStyle
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: TABFontPoint::SetFontStyleMIFValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::SetFontStyleMIFValue(int nStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1517
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1517
    functionName: TABFontPoint::SetSymbolAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fmod
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::SetSymbolAngle(double dAngle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1539,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dfAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1544
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1544
    functionName: TABFontPoint::GetSymbolStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetFontNameRef
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *TABFontPoint::GetSymbolStyleString(double dfAngle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1557,1
    - Dst: TABFontPoint::GetSymbolStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1557,1
    - Dst: TABFontPoint::GetSymbolAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1561
    functionName: TABFontPoint::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - TABFontPoint::GetSymbolStyleString
    - TABFontPoint::GetSymbolAngle
    linkageType: ''
    returnType: char
    signature: char *TABFontPoint::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITABFeatureSymbol::SetSymbolFromStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1570,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1576,1
    - Dst: SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1579,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1579,1
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - poSymbolStyle
    argTypes:
    - OGRStyleSymbol*
    constantsTouched: []
    func_position:
      end: 1587
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1587
    functionName: TABFontPoint::SetSymbolFromStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GInt16>
    - ITABFeatureSymbol::SetSymbolFromStyle
    - SetFontName
    - SetSymbolNo
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: void TABFontPoint::SetSymbolFromStyle(OGRStyleSymbol *poSymbolStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1601
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1601
    functionName: TABCustomPoint::TABCustomPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABCustomPoint::TABCustomPoint(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1610
    functionName: TABCustomPoint::~TABCustomPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABCustomPoint::~TABCustomPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1626,1
    - Dst: TABCustomPoint::TABCustomPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1626,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1628,1
    - Dst: TABCustomPoint*::GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1634,1
    - Dst: GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1634,1
    - Dst: TABCustomPoint*::GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1637,1
    - Dst: GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1637,1
    - Dst: TABCustomPoint*::SetCustomSymbolStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1639,1
    - Dst: TABCustomPoint::GetCustomSymbolStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1642
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1642
    functionName: TABCustomPoint::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCustomPoint::TABCustomPoint
    - CopyTABFeatureBase
    - TABCustomPoint::GetCustomSymbolStyle
    - GetFontDefRef
    - TABCustomPoint*::GetSymbolDefRef
    - TABCustomPoint*::GetFontDefRef
    - GetSymbolDefRef
    - GetDefnRef
    - TABCustomPoint*::SetCustomSymbolStyle
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABCustomPoint::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1673,1
    - Dst: cpl::down_cast<TABMAPObjCustomPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1684,1
    - Dst: TABMAPFile*::ReadSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1691,1
    - Dst: TABMAPFile*::ReadFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1694,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1701,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1702,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1704,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1706,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1711
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1711
    functionName: TABCustomPoint::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - SetGeometryDirectly
    - SetIntMBR
    - SetMBR
    - cpl::down_cast<TABMAPObjCustomPoint *>
    - TABMAPFile*::ReadSymbolDef
    - OGRPoint::OGRPoint
    - TABMAPFile*::ReadFontDef
    - CPLError
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABCustomPoint::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1737,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1742,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1744,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1744,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1748,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1755,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1755,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1755,1
    - Dst: cpl::down_cast<TABMAPObjCustomPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1761,1
    - Dst: TABMAPObjCustomPoint*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1765,1
    - Dst: TABMAPFile*::WriteSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1770,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1772,1
    - Dst: TABMAPFile*::WriteFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1774,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1775,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 1781
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1781
    functionName: TABCustomPoint::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - TABMAPFile*::WriteFontDef
    - TABMAPObjCustomPoint*::SetMBR
    - TABMAPFile*::WriteSymbolDef
    - cpl::down_cast<TABMAPObjCustomPoint *>
    - GetGeometryRef
    - CPLAssert
    - static_cast<GByte>
    - CPLGetLastErrorType
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int TABCustomPoint::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1794,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1800,1
    - Dst: TABCustomPoint::GetSymbolNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1800,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1808,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1808,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1808,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1812,1
    - Dst: TABCustomPoint::GetSymbolNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1815,1
    - Dst: TABCustomPoint::GetSymbolNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - dfAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1817
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1817
    functionName: TABCustomPoint::GetSymbolStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    - static_cast<unsigned char>
    - CPLTolower
    - CPLSPrintf
    - TABCustomPoint::GetSymbolNameRef
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: char
    signature: char *TABCustomPoint::GetSymbolStyleString(double dfAngle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITABFeatureSymbol::SetSymbolFromStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1826,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1833,1
    - Dst: TABCustomPoint::SetCustomSymbolStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1836,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1836,1
    - Dst: TABCustomPoint::SetSymbolName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - poSymbolStyle
    argTypes:
    - OGRStyleSymbol*
    constantsTouched: []
    func_position:
      end: 1856
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1856
    functionName: TABCustomPoint::SetSymbolFromStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCustomPoint::SetSymbolName
    - static_cast<GByte>
    - ITABFeatureSymbol::SetSymbolFromStyle
    - TABCustomPoint::SetCustomSymbolStyle
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: void TABCustomPoint::SetSymbolFromStyle(OGRStyleSymbol *poSymbolStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1869,1
    - Dst: TABCustomPoint::GetSymbolStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1865
    functionDepth: 2
    functionLinenumber: 1865
    functionLinenumberEnd: 1873
    functionName: TABCustomPoint::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - TABCustomPoint::GetSymbolStyleString
    linkageType: ''
    returnType: char
    signature: char *TABCustomPoint::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1888
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1888
    functionName: TABPolyline::TABPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPolyline::TABPolyline(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1897
    functionName: TABPolyline::~TABPolyline()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPolyline::~TABPolyline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1912,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1912,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1914,1
    - Dst: TABPolyline*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1920,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1928
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1928
    functionName: TABPolyline::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABPolyline::TABPolyline
    - GetPenDefRef
    - GetDefnRef
    - TABPolyline*::GetPenDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABPolyline::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1941,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1942,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1942,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1950,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1950,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1955,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1960
    functionName: TABPolyline::GetNumParts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRMultiLineString*::getNumGeometries
    - GetGeometryRef
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABPolyline::GetNumParts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1973,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1974,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1974,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1980,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1983,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1983,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1988,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1989,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:1991,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - nPartIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1998
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1998
    functionName: TABPolyline::GetPartRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRMultiLineString*::getNumGeometries
    - OGRMultiLineString*::getGeometryRef
    - GetGeometryRef
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *TABPolyline::GetPartRef(int nPartIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2015,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2016,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2016,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2021,1
    - Dst: TAB_REGION_PLINE_REQUIRES_V800
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2022,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2022,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2026,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2030,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2034,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2039,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2046,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2052,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2052,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2058,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2065,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2067,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2067,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2069,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2075,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2076,1
    - Dst: TAB_REGION_PLINE_REQUIRES_V800
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2079,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2086,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2103,1
    - Dst: UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2107,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 2111
      start: 2010
    functionDepth: 1
    functionLinenumber: 2010
    functionLinenumberEnd: 2111
    functionName: TABPolyline::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - ValidateCoordType
    - OGRGeometry*::getGeometryType
    - OGRMultiLineString*::getGeometryRef
    - GetGeometryRef
    - OGRLineString*::getNumPoints
    - UpdateMBR
    - CPLError
    - wkbFlatten
    - OGRGeometry*::toLineString
    - TAB_REGION_PLINE_REQUIRES_V800
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABPolyline::ValidateMapInfoType(TABMAPFile *poMapFile
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2139,1
    - Dst: cpl::down_cast<TABMAPObjLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2152,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2156,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2158,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2160,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2162,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2164,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2166,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2171,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2184,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2189,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2191,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2199,1
    - Dst: TABPolyline::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2201,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2208,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2210,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2216,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2230,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2236,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2238,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2240,1
    - Dst: TABMAPCoordBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2245,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2248,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2249,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2274,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2282,1
    - Dst: TABPolyline::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2284,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2291,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2293,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2305,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2313,1
    - Dst: static_cast<TABMAPCoordSecHdr *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2320,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2321,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2328,1
    - Dst: TABMAPCoordBlock*::ReadCoordSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2336,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2339,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2346,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2348,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2349,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2353,1
    - Dst: static_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2355,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2356,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2359,1
    - Dst: TABMAPCoordBlock*::ReadIntCoords
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2363,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2366,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2369,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2370,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2382,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2391,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2392,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2396,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2397,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2403,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2405,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2409,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2414,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2421,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2423,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2424,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 128
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 2434
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2434
    functionName: TABPolyline::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - SetIntMBR
    - TABMAPFile*::ReadPenDef
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - cpl::down_cast<TABMAPObjPLine *>
    - CPLError
    - TABMAPFile*::GetFileSize
    - auto::setPoint
    - TABMAPFile*::GetCoordBlock
    - TABMAPCoordBlock*::ReadIntCoords
    - TABMAPCoordBlock*::ReadCoordSecHdrs
    - TABPolyline::SetCenter
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - static_cast<TABMAPCoordSecHdr *>
    - CPLAssert
    - static_cast<GInt32 *>
    - auto::setNumPoints
    - SetGeometryDirectly
    - CPLFree
    - cpl::down_cast<TABMAPObjLine *>
    - OGRMultiLineString*::addGeometryDirectly
    - TABMAPObjHdr*::IsCompressedType
    - SetMBR
    - VSI_MALLOC2_VERBOSE
    - TABMAPFile*::Int2Coordsys
    - TABMAPCoordBlock*::ReadIntCoord
    linkageType: ''
    returnType: int
    signature: "int TABPolyline::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2461,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2462,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2467,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2471,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2471,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2472,1
    - Dst: getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2472,1
    - Dst: cpl::down_cast<TABMAPObjLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2477,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2479,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2479,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2479,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2481,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2481,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2481,1
    - Dst: TABMAPObjLine*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2483,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2488,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2490,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2495,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2495,1
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2500,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2505,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2507,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2512,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2513,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2514,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2515,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2520,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2520,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2520,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2521,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2529,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2534,1
    - Dst: TABMAPObjPLine*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2543,1
    - Dst: TABPolyline::GetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2548,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2550,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2565,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2567,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2577,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2577,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2578,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2578,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2584,1
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2593,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2601,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2602,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2603,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2604,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2608,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2608,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2610,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2611,1
    - Dst: static_cast<TABMAPCoordSecHdr *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2622,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2623,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2643,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2646,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2646,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2648,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2649,1
    - Dst: OGRLineString*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2650,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2652,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2655,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2658,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2669,1
    - Dst: TABMAPCoordBlock*::WriteCoordSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2676,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2679,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2691,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2694,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2694,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2696,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2697,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2701,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2701,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2701,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2703,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2713,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2719,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2724,1
    - Dst: TABMAPObjPLine*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2733,1
    - Dst: TABPolyline::GetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2738,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2740,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2755,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2757,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2762,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2767,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 124
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 2777
      start: 2447
    functionDepth: 1
    functionLinenumber: 2447
    functionLinenumberEnd: 2777
    functionName: TABPolyline::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPCoordBlock*::WriteCoordSecHdrs
    - OGRMultiLineString*::getNumGeometries
    - TABMAPCoordBlock*::GetFeatureDataSize
    - OGRMultiLineString*::getGeometryRef
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - OGRLineString*::getNumPoints
    - static_cast<GByte>
    - cpl::down_cast<TABMAPObjPLine *>
    - CPLError
    - TABMAPObjLine*::SetMBR
    - OGRLineString*::getY
    - TABPolyline::GetCenter
    - CPLErrorReset
    - OGRLineString*::getX
    - TABMAPFile*::GetCurCoordBlock
    - TABMAPCoordBlock*::WriteIntCoord
    - TABMAPObjPLine*::SetMBR
    - wkbFlatten
    - static_cast<TABMAPCoordSecHdr *>
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - VSI_CALLOC_VERBOSE
    - getNumPoints
    - GetGeometryRef
    - CPLAssert
    - cpl::down_cast<TABMAPObjLine *>
    - OGRGeometry*::toLineString
    - CPLFree
    - TABMAPFile*::Coordsys2Int
    - TABMAPObjHdr*::IsCompressedType
    - OGRLineString*::getEnvelope
    - TABMAPFile*::WritePenDef
    - TABMAPCoordBlock*::StartNewFeature
    - TABMAPCoordBlock*::GetCurAddress
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: "int TABPolyline::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2790,1
    - Dst: GetPenStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2794
    functionName: TABPolyline::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - GetPenStyleString
    linkageType: ''
    returnType: char
    signature: char *TABPolyline::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2813,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2814,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2814,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2819,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2820,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2821,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2823,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2823,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2823,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2826,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2826,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2832,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2833,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2834,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2837,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2839,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2839,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2841,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2842,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2843,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2845,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2845,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2846,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2858,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2864,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2867,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2869,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 2870
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2870
    functionName: TABPolyline::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRLineString*::getX
    - fflush
    - OGRMultiLineString*::getNumGeometries
    - fprintf
    - OGRMultiLineString*::getGeometryRef
    - GetGeometryRef
    - OGRLineString*::getNumPoints
    - OGRLineString*::getY
    - DumpPenDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABPolyline::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2892,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2893,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2893,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2895,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2898,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2898,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2900,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2901,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2902,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2905,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2908,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2911,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2911,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2912,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2912,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2917,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:2918,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2930
      start: 2886
    functionDepth: 1
    functionLinenumber: 2886
    functionLinenumberEnd: 2930
    functionName: TABPolyline::GetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRLineString*::getX
    - OGRMultiLineString*::getNumGeometries
    - OGRMultiLineString*::getGeometryRef
    - GetGeometryRef
    - OGRLineString*::getNumPoints
    - OGRLineString*::getY
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABPolyline::GetCenter(double &dX, double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2942
      start: 2937
    functionDepth: 0
    functionLinenumber: 2937
    functionLinenumberEnd: 2942
    functionName: TABPolyline::SetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPolyline::SetCenter(double dX, double dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2949
    functionDepth: 0
    functionLinenumber: 2949
    functionLinenumberEnd: 2952
    functionName: TABPolyline::TwoPointLineAsPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool TABPolyline::TwoPointLineAsPolyline()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bTwoPointLineAsPolyline
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 2962
      start: 2959
    functionDepth: 0
    functionLinenumber: 2959
    functionLinenumberEnd: 2962
    functionName: TABPolyline::TwoPointLineAsPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABPolyline::TwoPointLineAsPolyline(GBool bTwoPointLineAsPolyline)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 2977
      start: 2973
    functionDepth: 0
    functionLinenumber: 2973
    functionLinenumberEnd: 2977
    functionName: TABRegion::TABRegion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRegion::TABRegion(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2984
    functionDepth: 0
    functionLinenumber: 2984
    functionLinenumberEnd: 2986
    functionName: TABRegion::~TABRegion()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRegion::~TABRegion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3001,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3001,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3003,1
    - Dst: TABRegion*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3009,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3009,1
    - Dst: TABRegion*::GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3012,1
    - Dst: GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 3020
      start: 2996
    functionDepth: 1
    functionLinenumber: 2996
    functionLinenumberEnd: 3020
    functionName: TABRegion::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABRegion*::GetBrushDefRef
    - TABRegion*::GetPenDefRef
    - TABRegion::TABRegion
    - GetPenDefRef
    - GetDefnRef
    - GetBrushDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABRegion::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3037,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3038,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3038,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3039,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3039,1
    - Dst: TABRegion::GetNumRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3042,1
    - Dst: TABRegion::GetRingRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3045,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3047,1
    - Dst: TAB_REGION_PLINE_REQUIRES_V800
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3049,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3058,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3066,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 3069
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3069
    functionName: TABRegion::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - TABRegion::GetRingRef
    - ValidateCoordType
    - GetGeometryRef
    - TAB_REGION_PLINE_REQUIRES_V800
    - TABRegion::GetNumRings
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABRegion::ValidateMapInfoType(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3113,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3119,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3129,1
    - Dst: TABRegion::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3131,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3138,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3140,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3146,1
    - Dst: TABMAPFile*::ReadBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3158,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3164,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3166,1
    - Dst: static_cast<TABMAPCoordSecHdr *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3170,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3171,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3178,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3181,1
    - Dst: TABMAPCoordBlock*::ReadCoordSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3188,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3191,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3198,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3200,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3201,1
    - Dst: static_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3205,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3206,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3209,1
    - Dst: TABMAPCoordBlock*::ReadIntCoords
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3213,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3216,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3219,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3220,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3249,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3266,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3276,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3277,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3281,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3282,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3286,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3293,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3298,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3306,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3307,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3311,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3318,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3320,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3321,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 99
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 3331
      start: 3083
    functionDepth: 2
    functionLinenumber: 3083
    functionLinenumberEnd: 3331
    functionName: TABRegion::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - SetIntMBR
    - OGRLinearRing*::setPoint
    - TABMAPFile*::ReadPenDef
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - cpl::down_cast<TABMAPObjPLine *>
    - CPLError
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - TABMAPFile*::GetFileSize
    - TABMAPFile*::GetCoordBlock
    - TABMAPCoordBlock*::ReadIntCoords
    - TABMAPCoordBlock*::ReadCoordSecHdrs
    - static_cast<TABMAPCoordSecHdr *>
    - OGRLinearRing*::setNumPoints
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRLinearRing::OGRLinearRing
    - CPLAssert
    - OGRMultiPolygon::OGRMultiPolygon
    - static_cast<GInt32 *>
    - SetGeometryDirectly
    - CPLFree
    - TABRegion::SetCenter
    - TABMAPObjHdr*::IsCompressedType
    - TABMAPFile*::ReadBrushDef
    - SetMBR
    - VSI_MALLOC2_VERBOSE
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABRegion::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3353,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3358,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3368,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3368,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3369,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3369,1
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3377,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3385,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3386,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3387,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3388,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3391,1
    - Dst: TABMAPCoordBlock*::WriteCoordSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3409,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3412,1
    - Dst: TABRegion::GetRingRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3426,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3429,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3438,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3438,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3438,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3441,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3449,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3454,1
    - Dst: TABMAPObjPLine*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3463,1
    - Dst: TABRegion::GetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3468,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3470,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3485,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3487,1
    - Dst: TABMAPFile*::WriteBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3489,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3496,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3501,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 3511
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3511
    functionName: TABRegion::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPCoordBlock*::WriteCoordSecHdrs
    - TABRegion::GetRingRef
    - TABMAPCoordBlock*::GetFeatureDataSize
    - OGRLinearRing*::getY
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - static_cast<GByte>
    - OGRLinearRing*::getX
    - cpl::down_cast<TABMAPObjPLine *>
    - CPLError
    - printf
    - TABMAPFile*::GetCurCoordBlock
    - TABMAPCoordBlock*::WriteIntCoord
    - TABMAPObjPLine*::SetMBR
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - GetGeometryRef
    - CPLAssert
    - CPLFree
    - TABMAPFile*::Coordsys2Int
    - TABMAPObjHdr*::IsCompressedType
    - TABMAPFile*::WriteBrushDef
    - TABMAPFile*::WritePenDef
    - TABMAPCoordBlock*::StartNewFeature
    - TABMAPCoordBlock*::GetCurAddress
    - TABRegion::GetCenter
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: "int TABRegion::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRegion::ComputeNumRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3526
    functionName: TABRegion::GetNumRings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABRegion::ComputeNumRings
    linkageType: ''
    returnType: int
    signature: int TABRegion::GetNumRings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3537,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3539,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3539,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3540,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3540,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3545,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3545,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3547,1
    - Dst: getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3549,1
    - Dst: TABRegion::AppendSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3553,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3561,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3562,1
    - Dst: TABRegion::AppendSecHdrs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3566,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3592,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 2
    argNames:
    - ppasSecHdrs
    - poMapFile
    argTypes:
    - TABMAPCoordSecHdr**
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 3604
      start: 3528
    functionDepth: 1
    functionLinenumber: 3528
    functionLinenumberEnd: 3604
    functionName: TABRegion::ComputeNumRings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - getNumInteriorRings
    - OGRGeometry*::toMultiPolygon
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getNumInteriorRings
    - CPLAssert
    - TABRegion::AppendSecHdrs
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int TABRegion::ComputeNumRings(TABMAPCoordSecHdr **ppasSecHdrs,\n
      \                              TABMAPFile *poMapFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABMAPCoordSecHdr *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3623,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3624,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3633,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3639,1
    - Dst: OGRLinearRing*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3644,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3646,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3653,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - poPolygon
    - pasSecHdrs
    - poMapFile
    - iLastRing
    argTypes:
    - OGRPolygon*
    - TABMAPCoordSecHdr*
    - TABMAPFile*
    - int
    constantsTouched: []
    func_position:
      end: 3664
      start: 3613
    functionDepth: 1
    functionLinenumber: 3613
    functionLinenumberEnd: 3664
    functionName: TABRegion::AppendSecHdrs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - TABMAPFile*::Coordsys2Int
    - OGRPolygon*::getInteriorRing
    - CPLRealloc
    - OGRPolygon*::getExteriorRing
    - CPLError
    - OGRLinearRing*::getEnvelope
    - static_cast<TABMAPCoordSecHdr *>
    linkageType: ''
    returnType: int
    signature: "int TABRegion::AppendSecHdrs(OGRPolygon *poPolygon,\n                             TABMAPCoordSecHdr
      *&pasSecHdrs,\n                             TABMAPFile *poMapFile, int &iLastRing)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3681,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3683,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3683,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3684,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3684,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3693,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3693,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3695,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3696,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3712,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3714,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3720,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3725,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - nRequestedRingIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3733
      start: 3677
    functionDepth: 1
    functionLinenumber: 3677
    functionLinenumberEnd: 3733
    functionName: TABRegion::GetRingRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 2
    functionsReached:
    - OGRMultiPolygon*::getNumGeometries
    - OGRGeometry*::toMultiPolygon
    - OGRMultiPolygon*::getGeometryRef
    - OGRPolygon*::getInteriorRing
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *TABRegion::GetRingRef(int nRequestedRingIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3742,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3744,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3744,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3745,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3745,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3754,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3754,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3756,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3757,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3772,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - nRequestedRingIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3792
      start: 3740
    functionDepth: 1
    functionLinenumber: 3740
    functionLinenumberEnd: 3792
    functionName: TABRegion::IsInteriorRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::getNumGeometries
    - OGRGeometry*::toMultiPolygon
    - OGRMultiPolygon*::getGeometryRef
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: GBool
    signature: GBool TABRegion::IsInteriorRing(int nRequestedRingIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3810,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3810,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3812,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3801
    functionDepth: 1
    functionLinenumber: 3801
    functionLinenumberEnd: 3817
    functionName: TABRegion::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *TABRegion::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3832,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3833,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3833,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3834,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3834,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3844,1
    - Dst: TABRegion::GetRingRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3848,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3852,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3858,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3860,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3860,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3861,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3866,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3872,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3875,1
    - Dst: DumpBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3876,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 3879
      start: 3824
    functionDepth: 2
    functionLinenumber: 3824
    functionLinenumberEnd: 3879
    functionName: TABRegion::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABRegion::GetRingRef
    - fflush
    - fprintf
    - OGRLinearRing*::getY
    - GetGeometryRef
    - DumpPenDef
    - OGRLinearRing*::getX
    - DumpBrushDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABRegion::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3898,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3904,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3904,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3906,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3907,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3908,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3910,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3910,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3912,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3915,1
    - Dst: OGRPolygonLabelPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3917,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3919,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3920,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3925,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3939
      start: 3890
    functionDepth: 4
    functionLinenumber: 3890
    functionLinenumberEnd: 3939
    functionName: TABRegion::GetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint::getY
    - OGRMultiPolygon*::getNumGeometries
    - OGRGeometry*::toMultiPolygon
    - OGRMultiPolygon*::getGeometryRef
    - OGRPoint::getX
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPoint::OGRPoint
    - OGRGeometry*::getEnvelope
    - wkbFlatten
    - OGRPolygonLabelPoint
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABRegion::GetCenter(double &dX, double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3951
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3951
    functionName: TABRegion::SetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRegion::SetCenter(double dX, double dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 3966
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 3966
    functionName: TABRectangle::TABRectangle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRectangle::TABRectangle(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3973
    functionDepth: 0
    functionLinenumber: 3973
    functionLinenumberEnd: 3975
    functionName: TABRectangle::~TABRectangle()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRectangle::~TABRectangle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3991,1
    - Dst: TABRectangle::TABRectangle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3991,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3993,1
    - Dst: TABRectangle*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3999,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:3999,1
    - Dst: TABRectangle*::GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4002,1
    - Dst: GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 4009
      start: 3985
    functionDepth: 1
    functionLinenumber: 3985
    functionLinenumberEnd: 4009
    functionName: TABRectangle::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABRectangle::TABRectangle
    - TABRectangle*::GetBrushDefRef
    - GetPenDefRef
    - TABRectangle*::GetPenDefRef
    - GetDefnRef
    - GetBrushDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABRectangle::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4026,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4027,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4027,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4036,1
    - Dst: TABRectangle::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4049
      start: 4021
    functionDepth: 1
    functionLinenumber: 4021
    functionLinenumberEnd: 4049
    functionName: TABRectangle::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABRectangle::UpdateMBR
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABRectangle::ValidateMapInfoType(TABMAPFile *poMapFile
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4065,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4066,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4066,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4067,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4070,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4087,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4092
      start: 4058
    functionDepth: 1
    functionLinenumber: 4058
    functionLinenumberEnd: 4092
    functionName: TABRectangle::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABRectangle::UpdateMBR(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4124,1
    - Dst: cpl::down_cast<TABMAPObjRectEllipse *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4135,1
    - Dst: TABMAPFile*::Int2CoordsysDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4143,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4166,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4168,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4172,1
    - Dst: TABMAPFile*::ReadBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4175,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4181,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4182,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4185,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4191,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4192,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4209,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4211,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4213,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4215,1
    - Dst: TABCloseRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4218,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4222,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4223,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4224,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4225,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4226,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4229,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 4233
      start: 4106
    functionDepth: 1
    functionLinenumber: 4106
    functionLinenumberEnd: 4233
    functionName: TABRectangle::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetMBR
    - TABCloseRing
    - SetIntMBR
    - SetGeometryDirectly
    - cpl::down_cast<TABMAPObjRectEllipse *>
    - OGRPolygon*::addRingDirectly
    - TABMAPFile*::ReadBrushDef
    - OGRPolygon::OGRPolygon
    - TABMAPFile*::ReadPenDef
    - SetMBR
    - OGRLinearRing::OGRLinearRing
    - TABGenerateArc
    - TABMAPFile*::Int2CoordsysDist
    - OGRLinearRing*::addPoint
    - CPLError
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABRectangle::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4259,1
    - Dst: TABRectangle::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4267,1
    - Dst: cpl::down_cast<TABMAPObjRectEllipse *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4274,1
    - Dst: TABMAPFile*::Coordsys2IntDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4279,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4295,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4296,1
    - Dst: TABMAPFile*::WriteBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4298,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4300,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 4306
      start: 4246
    functionDepth: 2
    functionLinenumber: 4246
    functionLinenumberEnd: 4306
    functionName: TABRectangle::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABRectangle::UpdateMBR
    - TABMAPFile*::Coordsys2IntDist
    - cpl::down_cast<TABMAPObjRectEllipse *>
    - TABMAPFile*::WriteBrushDef
    - TABMAPFile*::WritePenDef
    - CPLAssert
    - static_cast<GByte>
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: "int TABRectangle::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4324,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4324,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4331
    functionName: TABRectangle::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *TABRectangle::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4350,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4353,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4356,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4362,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4363,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4363,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4369,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4371,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4378,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4380,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4384,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4390,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4392,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4392,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4398,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4404,1
    - Dst: DumpBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4405,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 4408
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4408
    functionName: TABRectangle::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetMBR
    - fflush
    - fprintf
    - OGRPolygon*::getInteriorRing
    - OGRLinearRing*::getY
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRLinearRing*::getX
    - DumpPenDef
    - DumpBrushDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABRectangle::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 4423
      start: 4419
    functionDepth: 0
    functionLinenumber: 4419
    functionLinenumberEnd: 4423
    functionName: TABEllipse::TABEllipse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABEllipse::TABEllipse(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4430
    functionDepth: 0
    functionLinenumber: 4430
    functionLinenumberEnd: 4432
    functionName: TABEllipse::~TABEllipse()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABEllipse::~TABEllipse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4447,1
    - Dst: TABEllipse::TABEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4447,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4449,1
    - Dst: TABEllipse*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4455,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4455,1
    - Dst: TABEllipse*::GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4458,1
    - Dst: GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 4466
      start: 4442
    functionDepth: 1
    functionLinenumber: 4442
    functionLinenumberEnd: 4466
    functionName: TABEllipse::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - GetBrushDefRef
    - GetPenDefRef
    - GetDefnRef
    - TABEllipse::TABEllipse
    - TABEllipse*::GetPenDefRef
    - TABEllipse*::GetBrushDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABEllipse::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4483,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4484,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4484,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4485,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4485,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4491,1
    - Dst: TABEllipse::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4504
      start: 4478
    functionDepth: 1
    functionLinenumber: 4478
    functionLinenumberEnd: 4504
    functionName: TABEllipse::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - TABEllipse::UpdateMBR
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABEllipse::ValidateMapInfoType(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4523,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4524,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4524,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4525,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4525,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4526,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4529,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4543,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4544,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4554,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4559
      start: 4513
    functionDepth: 1
    functionLinenumber: 4513
    functionLinenumberEnd: 4559
    functionName: TABEllipse::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - std::abs
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABEllipse::UpdateMBR(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4590,1
    - Dst: cpl::down_cast<TABMAPObjRectEllipse *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4601,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4609,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4611,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4615,1
    - Dst: TABMAPFile*::ReadBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4618,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4625,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4626,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4628,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4630,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4636,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4637,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4643,1
    - Dst: TABCloseRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4645,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4647,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 4651
      start: 4573
    functionDepth: 1
    functionLinenumber: 4573
    functionLinenumberEnd: 4651
    functionName: TABEllipse::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCloseRing
    - SetIntMBR
    - SetGeometryDirectly
    - cpl::down_cast<TABMAPObjRectEllipse *>
    - OGRPolygon*::addRingDirectly
    - TABMAPFile*::ReadBrushDef
    - OGRPolygon::OGRPolygon
    - TABMAPFile*::ReadPenDef
    - SetMBR
    - OGRLinearRing::OGRLinearRing
    - TABGenerateArc
    - std::abs
    - CPLError
    - TABMAPFile*::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABEllipse::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4677,1
    - Dst: TABEllipse::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4689,1
    - Dst: cpl::down_cast<TABMAPObjRectEllipse *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4696,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4708,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4709,1
    - Dst: TABMAPFile*::WriteBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4711,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4713,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 4719
      start: 4664
    functionDepth: 2
    functionLinenumber: 4664
    functionLinenumberEnd: 4719
    functionName: TABEllipse::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<TABMAPObjRectEllipse *>
    - TABMAPFile*::WriteBrushDef
    - TABMAPFile*::WritePenDef
    - CPLAssert
    - static_cast<GByte>
    - CPLGetLastErrorType
    - TABEllipse::UpdateMBR
    linkageType: ''
    returnType: int
    signature: "int TABEllipse::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4737,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4737,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4739,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4744
      start: 4728
    functionDepth: 1
    functionLinenumber: 4728
    functionLinenumberEnd: 4744
    functionName: TABEllipse::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *TABEllipse::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4763,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4764,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4770,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4771,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4771,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4777,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4779,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4786,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4788,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4792,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4798,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4800,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4800,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4801,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4806,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4812,1
    - Dst: DumpBrushDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4813,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4815,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 4816
      start: 4751
    functionDepth: 1
    functionLinenumber: 4751
    functionLinenumberEnd: 4816
    functionName: TABEllipse::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetMBR
    - fflush
    - fprintf
    - OGRPolygon*::getInteriorRing
    - OGRLinearRing*::getY
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRLinearRing*::getX
    - DumpPenDef
    - DumpBrushDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABEllipse::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 4831
      start: 4827
    functionDepth: 0
    functionLinenumber: 4827
    functionLinenumberEnd: 4831
    functionName: TABArc::TABArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABArc::TABArc(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4838
    functionDepth: 0
    functionLinenumber: 4838
    functionLinenumberEnd: 4840
    functionName: TABArc::~TABArc()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABArc::~TABArc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4855,1
    - Dst: TABArc::TABArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4855,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4857,1
    - Dst: TABArc*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4863,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4863,1
    - Dst: TABArc*::SetStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4865,1
    - Dst: TABArc::GetStartAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4865,1
    - Dst: TABArc*::SetEndAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4866,1
    - Dst: TABArc::GetEndAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 4874
      start: 4850
    functionDepth: 1
    functionLinenumber: 4850
    functionLinenumberEnd: 4874
    functionName: TABArc::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABArc::GetEndAngle
    - TABArc*::SetEndAngle
    - TABArc*::SetStartAngle
    - TABArc::TABArc
    - GetPenDefRef
    - GetDefnRef
    - TABArc::GetStartAngle
    - TABArc*::GetPenDefRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABArc::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4891,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4892,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4892,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4893,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4893,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4899,1
    - Dst: TABArc::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4912
      start: 4886
    functionDepth: 1
    functionLinenumber: 4886
    functionLinenumberEnd: 4912
    functionName: TABArc::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABArc::UpdateMBR
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABArc::ValidateMapInfoType(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4925,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4926,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4926,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4936,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4938,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4938,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4947,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4948,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4949,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4951,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4954,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4955,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4957,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4958,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4959,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4961,1
    - Dst: OGRLineString::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4965,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4969,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4982,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:4983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 4987
      start: 4921
    functionDepth: 1
    functionLinenumber: 4921
    functionLinenumberEnd: 4987
    functionName: TABArc::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - OGRPoint*::getX
    - OGRPoint*::getY
    - static_cast<int>
    - OGRLineString::getEnvelope
    - CPLError
    - TABGenerateArc
    - std::abs
    - GetGeometryRef
    - max
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRLineString::OGRLineString
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABArc::UpdateMBR(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5017,1
    - Dst: cpl::down_cast<TABMAPObjArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5027,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5071,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5072,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5073,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5086,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5087,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5088,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5097,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5099,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5105,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5106,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5107,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5126,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5128,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5133,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5134,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5137,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5138,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5139,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5142,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5149,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5159,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5163,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 5166
      start: 5001
    functionDepth: 1
    functionLinenumber: 5001
    functionLinenumberEnd: 5166
    functionName: TABArc::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - SetGeometryDirectly
    - TABMAPFile*::ReadPenDef
    - SetMBR
    - TABGenerateArc
    - std::abs
    - TABMAPFile*::GetHeaderBlock
    - TABMAPFile*::Int2Coordsys
    - fabs
    - CPLError
    - cpl::down_cast<TABMAPObjArc *>
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: int
    signature: "int TABArc::ReadGeometryFromMAPFile(TABMAPFile *poMapFile,\n                                    TABMAPObjHdr
      *poObjHdr,\n                                    GBool bCoordBlockDataOnly /*=FALSE*/,\n
      \                                   TABMAPCoordBlock ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5192,1
    - Dst: TABArc::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5198,1
    - Dst: cpl::down_cast<TABMAPObjArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5204,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5213,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5213,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5215,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5216,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5219,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5222,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5232,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5233,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 5239
      start: 5179
    functionDepth: 2
    functionLinenumber: 5179
    functionLinenumberEnd: 5239
    functionName: TABArc::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - ROUND_INT
    - TABArc::UpdateMBR
    - TABMAPFile*::WritePenDef
    - CPLAssert
    - static_cast<GByte>
    - TABMAPFile*::GetHeaderBlock
    - CPLGetLastErrorType
    - cpl::down_cast<TABMAPObjArc *>
    linkageType: ''
    returnType: int
    signature: "int TABArc::WriteGeometryToMAPFile(TABMAPFile *poMapFile,\n                                   TABMAPObjHdr
      *poObjHdr,\n                                   GBool bCoordBlockDataOnly /*=FALSE*/,\n
      \                                  TABMAPCoordBlock ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5254
      start: 5247
    functionDepth: 0
    functionLinenumber: 5247
    functionLinenumberEnd: 5254
    functionName: TABArc::SetStartAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fmod
    linkageType: ''
    returnType: void
    signature: void TABArc::SetStartAngle(double dAngle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5263
      start: 5256
    functionDepth: 0
    functionLinenumber: 5256
    functionLinenumberEnd: 5263
    functionName: TABArc::SetEndAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fmod
    linkageType: ''
    returnType: void
    signature: void TABArc::SetEndAngle(double dAngle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5276,1
    - Dst: GetPenStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5272
    functionDepth: 1
    functionLinenumber: 5272
    functionLinenumberEnd: 5280
    functionName: TABArc::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - GetPenStyleString
    linkageType: ''
    returnType: char
    signature: char *TABArc::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5295,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5298,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5298,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5303,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5304,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5304,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5310,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5312,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5314,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5314,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5314,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5318,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5324,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 5327
      start: 5287
    functionDepth: 1
    functionLinenumber: 5287
    functionLinenumberEnd: 5327
    functionName: TABArc::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - static_cast<int>
    - fflush
    - fprintf
    - GetGeometryRef
    - OGRLineString*::getY
    - DumpPenDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABArc::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 5345
      start: 5338
    functionDepth: 0
    functionLinenumber: 5338
    functionLinenumberEnd: 5345
    functionName: TABText::TABText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::TABText(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5355
    functionName: TABText::~TABText()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABText::~TABText()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5370,1
    - Dst: TABText::TABText
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5370,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5372,1
    - Dst: TABText*::GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5378,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5378,1
    - Dst: TABText*::GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5381,1
    - Dst: GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5381,1
    - Dst: TABText*::SetTextString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5383,1
    - Dst: TABText::GetTextString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5383,1
    - Dst: TABText*::SetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5384,1
    - Dst: TABText::GetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5384,1
    - Dst: TABText*::SetTextBoxHeight
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5385,1
    - Dst: TABText::GetTextBoxHeight
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5385,1
    - Dst: TABText*::SetTextBoxWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5386,1
    - Dst: TABText::GetTextBoxWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5386,1
    - Dst: TABText*::SetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5387,1
    - Dst: TABText::GetFontStyleTABValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5387,1
    - Dst: TABText*::SetFontBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5388,1
    - Dst: TABText::GetFontBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5388,1
    - Dst: TABText*::SetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5389,1
    - Dst: TABText::GetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5389,1
    - Dst: TABText*::SetFontOColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5390,1
    - Dst: TABText::GetFontOColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5390,1
    - Dst: TABText*::SetFontSColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5391,1
    - Dst: TABText::GetFontSColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5391,1
    - Dst: TABText*::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5393,1
    - Dst: TABText::GetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5393,1
    - Dst: TABText*::SetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5394,1
    - Dst: TABText::GetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5394,1
    - Dst: TABText*::SetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 5400
      start: 5365
    functionDepth: 1
    functionLinenumber: 5365
    functionLinenumberEnd: 5400
    functionName: TABText::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText*::SetTextJustification
    - TABText::GetFontSColor
    - TABText::GetFontBGColor
    - TABText::TABText
    - TABText::GetTextBoxHeight
    - TABText*::SetFontBGColor
    - TABText*::SetFontStyleTABValue
    - TABText*::SetTextBoxHeight
    - TABText::GetTextAngle
    - TABText::GetFontOColor
    - TABText::GetTextJustification
    - TABText*::SetTextAngle
    - TABText*::SetTextLineType
    - TABText*::GetPenDefRef
    - TABText*::SetTextString
    - TABText*::SetTextBoxWidth
    - TABText*::SetTextSpacing
    - GetFontDefRef
    - TABText::GetTextString
    - TABText::GetFontStyleTABValue
    - TABText*::SetFontSColor
    - TABText*::SetFontOColor
    - TABText*::GetFontDefRef
    - TABText::GetTextBoxWidth
    - GetDefnRef
    - TABText::GetFontFGColor
    - CopyTABFeatureBase
    - TABText::GetTextSpacing
    - GetPenDefRef
    - TABText*::SetFontFGColor
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABText::CloneTABFeature(OGRFeatureDefn *poNewDefn /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5417,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5418,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5418,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5424,1
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 5437
      start: 5412
    functionDepth: 1
    functionLinenumber: 5412
    functionLinenumberEnd: 5437
    functionName: TABText::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - TABText::UpdateMBR
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABText::ValidateMapInfoType(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5463,1
    - Dst: cpl::down_cast<TABMAPObjText *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5477,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5502,1
    - Dst: TABMAPFile*::Int2CoordsysDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5508,1
    - Dst: TABMAPFile*::ReadFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5513,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5521,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5523,1
    - Dst: TABMAPFile*::ReadPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5529,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5548,1
    - Dst: TABMAPCoordBlock*::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5550,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5551,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5553,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5555,1
    - Dst: TABMAPFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5568,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5572,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5576,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5581,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5582,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5585,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5621,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5623,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5642,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5643,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5652,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 5655
      start: 5451
    functionDepth: 1
    functionLinenumber: 5451
    functionLinenumberEnd: 5655
    functionName: TABText::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetMBR
    - SetIntMBR
    - TABMAPCoordBlock*::ReadBytes
    - SetGeometryDirectly
    - TABMAPFile*::GetEncoding
    - reinterpret_cast<GByte *>
    - TABMAPFile*::ReadPenDef
    - TABMAPFile*::GetCoordBlock
    - SetMBR
    - std::abs
    - OGRPoint::OGRPoint
    - TABMAPFile*::Int2CoordsysDist
    - TABMAPFile*::ReadFontDef
    - cpl::down_cast<TABMAPObjText *>
    - CPLError
    - TABMAPFile*::Int2Coordsys
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int TABText::ReadGeometryFromMAPFile(TABMAPFile *poMapFile,\n                                     TABMAPObjHdr
      *poObjHdr,\n                                     GBool bCoordBlockDataOnly /*=FALSE*/,\n
      \                                    TABMAPCoordBlock **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5679,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5684,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5686,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5686,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5687,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5690,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5695,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5695,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5695,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5707,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5708,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5709,1
    - Dst: TABMAPFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5713,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5715,1
    - Dst: TABMAPFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5715,1
    - Dst: TABMAPCoordBlock*::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5722,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5723,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5723,1
    - Dst: cpl::down_cast<TABMAPObjText *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5733,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5744,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5748,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5748,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5749,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5749,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5750,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5750,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5752,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5752,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5753,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5753,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5754,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5754,1
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5769,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5770,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5772,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5773,1
    - Dst: TABText::GetTextLineEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5778,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5779,1
    - Dst: TABMAPFile*::Coordsys2IntDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5783,1
    - Dst: TABMAPFile*::WriteFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5789,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5791,1
    - Dst: TABMAPObjText*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5795,1
    - Dst: TABMAPFile*::WritePenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5799,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5801,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5804,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 5814
      start: 5668
    functionDepth: 1
    functionLinenumber: 5668
    functionLinenumberEnd: 5814
    functionName: TABText::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile*::Coordsys2IntDist
    - OGRPoint*::getY
    - COLOR_B
    - static_cast<GByte>
    - CPLError
    - cpl::down_cast<TABMAPObjText *>
    - GetMBR
    - TABMAPFile*::GetCurCoordBlock
    - COLOR_R
    - CPLString::c_str
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - ROUND_INT
    - TABMAPFile*::GetEncoding
    - COLOR_G
    - TABText::GetTextLineEndPoint
    - TABMAPFile*::WriteFontDef
    - GetGeometryRef
    - CPLAssert
    - TABText::UpdateMBR
    - TABMAPFile*::Coordsys2Int
    - TABMAPCoordBlock*::WriteBytes
    - TABMAPFile*::WritePenDef
    - TABMAPCoordBlock*::StartNewFeature
    - reinterpret_cast<const GByte *>
    - TABMAPCoordBlock*::GetCurAddress
    - TABMAPObjText*::SetMBR
    - CPLGetLastErrorType
    - OGRGeometry*::toPoint
    - CPLString::Recode
    linkageType: ''
    returnType: int
    signature: "int TABText::WriteGeometryToMAPFile(TABMAPFile *poMapFile,\n                                    TABMAPObjHdr
      *poObjHdr,\n                                    GBool bCoordBlockDataOnly /*=FALSE*/,\n
      \                                   TABMAPCoordBlock **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5830
      start: 5824
    functionDepth: 0
    functionLinenumber: 5824
    functionLinenumberEnd: 5830
    functionName: TABText::GetTextString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TABText::GetTextString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5843,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNewStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5845
      start: 5841
    functionDepth: 1
    functionLinenumber: 5841
    functionLinenumberEnd: 5845
    functionName: TABText::SetTextString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextString(const char *pszNewStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5855
      start: 5852
    functionDepth: 0
    functionLinenumber: 5852
    functionLinenumberEnd: 5855
    functionName: TABText::GetTextAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double TABText::GetTextAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5860,1
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5865
      start: 5857
    functionDepth: 1
    functionLinenumber: 5857
    functionLinenumberEnd: 5865
    functionName: TABText::SetTextAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::UpdateMBR
    - fmod
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextAngle(double dAngle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5875
      start: 5872
    functionDepth: 0
    functionLinenumber: 5872
    functionLinenumberEnd: 5875
    functionName: TABText::GetTextBoxHeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double TABText::GetTextBoxHeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dHeight
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5881
      start: 5877
    functionDepth: 1
    functionLinenumber: 5877
    functionLinenumberEnd: 5881
    functionName: TABText::SetTextBoxHeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::UpdateMBR
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextBoxHeight(double dHeight)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5900
      start: 5893
    functionDepth: 0
    functionLinenumber: 5893
    functionLinenumberEnd: 5900
    functionName: TABText::GetTextBoxWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: double
    signature: double TABText::GetTextBoxWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dWidth
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 5906
      start: 5902
    functionDepth: 1
    functionLinenumber: 5902
    functionLinenumberEnd: 5906
    functionName: TABText::SetTextBoxWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::UpdateMBR
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextBoxWidth(double dWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5923,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5933
      start: 5914
    functionDepth: 1
    functionLinenumber: 5914
    functionLinenumberEnd: 5933
    functionName: TABText::GetTextLineEndPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - GetMBR
    - TABText::UpdateMBR
    linkageType: ''
    returnType: void
    signature: void TABText::GetTextLineEndPoint(double &dX, double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 5940
      start: 5935
    functionDepth: 0
    functionLinenumber: 5935
    functionLinenumberEnd: 5940
    functionName: TABText::SetTextLineEndPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextLineEndPoint(double dX, double dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5954,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5955,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5955,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5957,1
    - Dst: TABText::GetTextBoxWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5965,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5970,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5992,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:5993,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 6000
      start: 5952
    functionDepth: 1
    functionLinenumber: 5952
    functionLinenumberEnd: 6000
    functionName: TABText::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 6
    functionsReached:
    - TABMAPFile*::Coordsys2Int
    - SetMBR
    - GetGeometryRef
    - TABText::GetTextBoxWidth
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABText::UpdateMBR(TABMAPFile *poMapFile /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6010
      start: 6007
    functionDepth: 0
    functionLinenumber: 6007
    functionLinenumberEnd: 6010
    functionName: TABText::GetFontBGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABText::GetFontBGColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rgbColor
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 6015
      start: 6012
    functionDepth: 0
    functionLinenumber: 6012
    functionLinenumberEnd: 6015
    functionName: TABText::SetFontBGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetFontBGColor(GInt32 rgbColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6022
    functionDepth: 0
    functionLinenumber: 6022
    functionLinenumberEnd: 6025
    functionName: TABText::GetFontOColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABText::GetFontOColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rgbColor
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 6030
      start: 6027
    functionDepth: 0
    functionLinenumber: 6027
    functionLinenumberEnd: 6030
    functionName: TABText::SetFontOColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetFontOColor(GInt32 rgbColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6040
      start: 6037
    functionDepth: 0
    functionLinenumber: 6037
    functionLinenumberEnd: 6040
    functionName: TABText::GetFontSColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABText::GetFontSColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rgbColor
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 6045
      start: 6042
    functionDepth: 0
    functionLinenumber: 6042
    functionLinenumberEnd: 6045
    functionName: TABText::SetFontSColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetFontSColor(GInt32 rgbColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6055
      start: 6052
    functionDepth: 0
    functionLinenumber: 6052
    functionLinenumberEnd: 6055
    functionName: TABText::GetFontFGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABText::GetFontFGColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rgbColor
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 6060
      start: 6057
    functionDepth: 0
    functionLinenumber: 6057
    functionLinenumberEnd: 6060
    functionName: TABText::SetFontFGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetFontFGColor(GInt32 rgbColor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6067
    functionDepth: 0
    functionLinenumber: 6067
    functionLinenumberEnd: 6077
    functionName: TABText::GetTextJustification
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TABTextJust
    signature: TABTextJust TABText::GetTextJustification() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - eJustification
    argTypes:
    - TABTextJust
    constantsTouched: []
    func_position:
      end: 6088
      start: 6079
    functionDepth: 0
    functionLinenumber: 6079
    functionLinenumberEnd: 6088
    functionName: TABText::SetTextJustification
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextJustification(TABTextJust eJustification)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6095
    functionDepth: 0
    functionLinenumber: 6095
    functionLinenumberEnd: 6105
    functionName: TABText::GetTextSpacing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TABTextSpacing
    signature: TABTextSpacing TABText::GetTextSpacing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - eSpacing
    argTypes:
    - TABTextSpacing
    constantsTouched: []
    func_position:
      end: 6116
      start: 6107
    functionDepth: 0
    functionLinenumber: 6107
    functionLinenumberEnd: 6116
    functionName: TABText::SetTextSpacing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextSpacing(TABTextSpacing eSpacing)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6133
      start: 6123
    functionDepth: 0
    functionLinenumber: 6123
    functionLinenumberEnd: 6133
    functionName: TABText::GetTextLineType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABTextLineType
    signature: TABTextLineType TABText::GetTextLineType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - eLineType
    argTypes:
    - TABTextLineType
    constantsTouched: []
    func_position:
      end: 6144
      start: 6135
    functionDepth: 0
    functionLinenumber: 6135
    functionLinenumberEnd: 6144
    functionName: TABText::SetTextLineType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABText::SetTextLineType(TABTextLineType eLineType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eStyleToQuery
    argTypes:
    - TABFontStyle
    constantsTouched: []
    func_position:
      end: 6156
      start: 6153
    functionDepth: 0
    functionLinenumber: 6153
    functionLinenumberEnd: 6156
    functionName: TABText::QueryFontStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: GBool
    signature: GBool TABText::QueryFontStyle(TABFontStyle eStyleToQuery) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - eStyleToToggle
    - bStyleOn
    argTypes:
    - TABFontStyle
    - GBool
    constantsTouched: []
    func_position:
      end: 6164
      start: 6158
    functionDepth: 0
    functionLinenumber: 6158
    functionLinenumberEnd: 6164
    functionName: TABText::ToggleFontStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void TABText::ToggleFontStyle(TABFontStyle eStyleToToggle, GBool bStyleOn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6180
    functionDepth: 0
    functionLinenumber: 6180
    functionLinenumberEnd: 6185
    functionName: TABText::GetFontStyleMIFValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABText::GetFontStyleMIFValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6189,1
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6191,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nStyle
    - bBGColorSet
    argTypes:
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 6193
      start: 6187
    functionDepth: 1
    functionLinenumber: 6187
    functionLinenumberEnd: 6193
    functionName: TABText::SetFontStyleMIFValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::ToggleFontStyle
    - TABText::QueryFontStyle
    - static_cast<GInt16>
    linkageType: ''
    returnType: void
    signature: void TABText::SetFontStyleMIFValue(int nStyle, GBool bBGColorSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6195
    functionDepth: 1
    functionLinenumber: 6195
    functionLinenumberEnd: 6199
    functionName: TABText::IsFontBGColorUsed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontBGColorUsed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6201
    functionDepth: 1
    functionLinenumber: 6201
    functionLinenumberEnd: 6205
    functionName: TABText::IsFontOColorUsed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontOColorUsed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6207
    functionDepth: 1
    functionLinenumber: 6207
    functionLinenumberEnd: 6211
    functionName: TABText::IsFontSColorUsed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontSColorUsed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6217
      start: 6213
    functionDepth: 1
    functionLinenumber: 6213
    functionLinenumberEnd: 6217
    functionName: TABText::IsFontBold
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontBold() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6223
      start: 6219
    functionDepth: 1
    functionLinenumber: 6219
    functionLinenumberEnd: 6223
    functionName: TABText::IsFontItalic
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontItalic() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6229
      start: 6225
    functionDepth: 1
    functionLinenumber: 6225
    functionLinenumberEnd: 6229
    functionName: TABText::IsFontUnderline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::QueryFontStyle
    linkageType: ''
    returnType: int
    signature: int TABText::IsFontUnderline() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6248,1
    - Dst: TABText::GetTextString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6248,1
    - Dst: TABText::GetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6251,1
    - Dst: TABText::GetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6281,1
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6298,1
    - Dst: isalpha
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6300,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6300,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6301,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6302,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6302,1
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6307,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6308,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6309,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6311,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6312,1
    - Dst: TABText::QueryFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6334,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6335,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6336,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6336,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6337,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6338,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6350,1
    - Dst: TABText::GetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6352,1
    - Dst: TABText::GetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6352,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6354,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6356,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6238
    functionDepth: 1
    functionLinenumber: 6238
    functionLinenumberEnd: 6358
    functionName: TABText::GetLabelStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetFontNameRef
    - static_cast<char>
    - TABText::GetTextString
    - static_cast<unsigned char>
    - CPLToupper
    - CPLSPrintf
    - TABText::GetTextSpacing
    - isalpha
    - strlen
    - TABText::GetTextAngle
    - strcpy
    - TABText::GetFontFGColor
    - CPLMalloc
    - TABText::GetTextJustification
    - CPLFree
    - TABText::QueryFontStyle
    - static_cast<char *>
    linkageType: ''
    returnType: char
    signature: char *TABText::GetLabelStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6371,1
    - Dst: TABText::GetLabelStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6375
      start: 6367
    functionDepth: 2
    functionLinenumber: 6367
    functionLinenumberEnd: 6375
    functionName: TABText::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::GetLabelStyleString
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *TABText::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRStyleMgr>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6380,1
    - Dst: auto::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6384,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6390,1
    - Dst: auto::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6390,1
    - Dst: std::unique_ptr::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6396,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6402,1
    - Dst: cpl::down_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6412,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6412,1
    - Dst: TABText::SetTextString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6418,1
    - Dst: auto::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6420,1
    - Dst: TABText::SetTextBoxHeight
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6438,1
    - Dst: auto::Bold
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6442,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6443,1
    - Dst: auto::Italic
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6445,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6446,1
    - Dst: auto::Underline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6448,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6449,1
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6453,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6464,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6465,1
    - Dst: TABText::SetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6467,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6467,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6479,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6480,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6482,1
    - Dst: TABText::SetFontBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6483,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6483,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6495,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6496,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6499,1
    - Dst: TABText::SetFontOColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6500,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6500,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6513,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6514,1
    - Dst: TABText::ToggleFontStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6517,1
    - Dst: TABText::SetFontSColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6518,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6518,1
    - Dst: TABText::SetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6524,1
    - Dst: TABText::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6532,1
    - Dst: TABText::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6535,1
    - Dst: TABText::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6538,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 88
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6542
      start: 6377
    functionDepth: 2
    functionLinenumber: 6377
    functionLinenumberEnd: 6542
    functionName: TABText::SetLabelFromStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABText::SetFontOColor
    - CPLString::resize
    - auto::GetPart
    - std::make_unique<OGRStyleMgr>
    - TABText::SetTextJustification
    - TABText::SetFontSColor
    - auto::Bold
    - strlen
    - std::unique_ptr::reset
    - TABText::ToggleFontStyle
    - auto::InitStyleString
    - std::unique_ptr::GetType
    - cpl::down_cast<OGRStyleLabel *>
    - TABText::SetFontBGColor
    - TABText::SetTextAngle
    - TABText::SetTextString
    - auto::Italic
    - std::unique_ptr::get
    - auto::Underline
    - TABText::SetFontFGColor
    - TABText::SetTextBoxHeight
    - SetFontName
    - static_cast<GInt32>
    - auto::SetUnit
    linkageType: ''
    returnType: void
    signature: void TABText::SetLabelFromStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6557,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6558,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6558,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6563,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6565,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6566,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6567,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6569,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6570,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6571,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6572,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6574,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6576,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6577,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6581,1
    - Dst: DumpPenDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6587,1
    - Dst: DumpFontDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6588,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 6591
      start: 6549
    functionDepth: 1
    functionLinenumber: 6549
    functionLinenumberEnd: 6591
    functionName: TABText::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - DumpFontDef
    - OGRPoint*::getX
    - OGRPoint*::getY
    - CPLError
    - fflush
    - fprintf
    - GetGeometryRef
    - DumpPenDef
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABText::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 6606
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6606
    functionName: TABMultiPoint::TABMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMultiPoint::TABMultiPoint(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6615
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6615
    functionName: TABMultiPoint::~TABMultiPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMultiPoint::~TABMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6631,1
    - Dst: TABMultiPoint::TABMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6631,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6633,1
    - Dst: TABMultiPoint*::GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6639,1
    - Dst: GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 6646
      start: 6625
    functionDepth: 1
    functionLinenumber: 6625
    functionLinenumberEnd: 6646
    functionName: TABMultiPoint::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CopyTABFeatureBase
    - TABMultiPoint::TABMultiPoint
    - GetSymbolDefRef
    - TABMultiPoint*::GetSymbolDefRef
    - GetDefnRef
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABMultiPoint::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6663,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6664,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6664,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6666,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6668,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6675,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 6686
      start: 6658
    functionDepth: 1
    functionLinenumber: 6658
    functionLinenumberEnd: 6686
    functionName: TABMultiPoint::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getNumGeometries
    - ValidateCoordType
    - OGRGeometry*::toMultiPoint
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABMultiPoint::ValidateMapInfoType(TABMAPFile *poMapFile
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6710,1
    - Dst: cpl::down_cast<TABMAPObjMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6730,1
    - Dst: TABMAPFile*::GetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6737,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6742,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6744,1
    - Dst: TABMAPFile*::ReadSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6750,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6756,1
    - Dst: TABMultiPoint::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6758,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6767,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6774,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6780,1
    - Dst: TABMAPCoordBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6786,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6788,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6795,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6796,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6798,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6800,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6806,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6813,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6815,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6818,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 6828
      start: 6700
    functionDepth: 1
    functionLinenumber: 6700
    functionLinenumberEnd: 6828
    functionName: TABMultiPoint::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile*::GetFileSize
    - SetGeometryDirectly
    - TABMAPObjHdr*::IsCompressedType
    - SetIntMBR
    - OGRMultiPoint::OGRMultiPoint
    - TABMAPFile*::GetCoordBlock
    - SetMBR
    - cpl::down_cast<TABMAPObjMultiPoint *>
    - OGRMultiPoint*::addGeometryDirectly
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - TABMultiPoint::SetCenter
    - TABMAPFile*::ReadSymbolDef
    - OGRPoint::OGRPoint
    - CPLAssert
    - CPLError
    - TABMAPFile*::Int2Coordsys
    - TABMAPCoordBlock*::ReadIntCoord
    linkageType: ''
    returnType: int
    signature: "int TABMultiPoint::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6852,1
    - Dst: cpl::down_cast<TABMAPObjMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6855,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6860,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6862,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6862,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6863,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6866,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6871,1
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6876,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6882,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6883,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6884,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6885,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6890,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6892,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6892,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6894,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6896,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6896,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6896,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6913,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6927,1
    - Dst: TABMAPObjMultiPoint*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6928,1
    - Dst: TABMultiPoint::GetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6933,1
    - Dst: TABMAPFile*::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6935,1
    - Dst: TABMAPFile*::WriteSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6941,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6943,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6946,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 6956
      start: 6841
    functionDepth: 1
    functionLinenumber: 6841
    functionLinenumberEnd: 6956
    functionName: TABMultiPoint::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getY
    - OGRGeometry*::toMultiPoint
    - TABMAPCoordBlock*::GetFeatureDataSize
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - TABMultiPoint::GetCenter
    - static_cast<GByte>
    - CPLError
    - TABMAPFile*::GetCurCoordBlock
    - TABMAPCoordBlock*::WriteIntCoord
    - TABMAPFile*::WriteSymbolDef
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - cpl::down_cast<TABMAPObjMultiPoint *>
    - GetGeometryRef
    - CPLAssert
    - OGRMultiPoint*::getGeometryRef
    - OGRMultiPoint*::getNumGeometries
    - TABMAPFile*::Coordsys2Int
    - TABMAPObjHdr*::IsCompressedType
    - TABMAPCoordBlock*::StartNewFeature
    - TABMAPObjMultiPoint*::SetMBR
    - TABMAPCoordBlock*::GetCurAddress
    - CPLGetLastErrorType
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: int
    signature: "int TABMultiPoint::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6968,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6969,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6969,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6971,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6973,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6974,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6975,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6975,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6977,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6979,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6980,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:6985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - i
    - dX
    - dY
    argTypes:
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 6993
      start: 6963
    functionDepth: 1
    functionLinenumber: 6963
    functionLinenumberEnd: 6993
    functionName: TABMultiPoint::GetXY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getGeometryRef
    - OGRMultiPoint*::getNumGeometries
    - OGRPoint*::getX
    - OGRPoint*::getY
    - CPLError
    - OGRGeometry*::toMultiPoint
    - GetGeometryRef
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABMultiPoint::GetXY(int i, double &dX, double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7005,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7006,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7006,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7008,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7010,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7018
      start: 7000
    functionDepth: 1
    functionLinenumber: 7000
    functionLinenumberEnd: 7018
    functionName: TABMultiPoint::GetNumPoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getNumGeometries
    - OGRGeometry*::toMultiPoint
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABMultiPoint::GetNumPoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7031,1
    - Dst: GetSymbolStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7035
      start: 7027
    functionDepth: 1
    functionLinenumber: 7027
    functionLinenumberEnd: 7035
    functionName: TABMultiPoint::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetSymbolStyleString
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *TABMultiPoint::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMultiPoint::GetNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7050,1
    - Dst: TABMultiPoint::GetXY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7064
      start: 7048
    functionDepth: 2
    functionLinenumber: 7048
    functionLinenumberEnd: 7064
    functionName: TABMultiPoint::GetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABMultiPoint::GetXY
    - TABMultiPoint::GetNumPoints
    linkageType: ''
    returnType: int
    signature: int TABMultiPoint::GetCenter(double &dX, double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dX
    - dY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 7076
      start: 7071
    functionDepth: 0
    functionLinenumber: 7071
    functionLinenumberEnd: 7076
    functionName: TABMultiPoint::SetCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMultiPoint::SetCenter(double dX, double dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7091,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7093,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7093,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7094,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7097,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7105,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7105,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7107,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7109,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7111,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7111,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7113,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7114,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7114,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7118,1
    - Dst: DumpSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7124,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7127,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 7130
      start: 7083
    functionDepth: 1
    functionLinenumber: 7083
    functionLinenumberEnd: 7130
    functionName: TABMultiPoint::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getGeometryRef
    - OGRMultiPoint*::getNumGeometries
    - OGRPoint*::getX
    - OGRPoint*::getY
    - fflush
    - OGRGeometry*::toMultiPoint
    - fprintf
    - OGRGeometry*::toPoint
    - GetGeometryRef
    - DumpSymbolDef
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void TABMultiPoint::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 7145
      start: 7141
    functionDepth: 0
    functionLinenumber: 7141
    functionLinenumberEnd: 7145
    functionName: TABCollection::TABCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABCollection::TABCollection(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCollection::EmptyCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7155
      start: 7152
    functionDepth: 1
    functionLinenumber: 7152
    functionLinenumberEnd: 7155
    functionName: TABCollection::~TABCollection()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCollection::EmptyCollection
    linkageType: ''
    returnType: void
    signature: void TABCollection::~TABCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCollection::SyncOGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7162
    functionDepth: 1
    functionLinenumber: 7162
    functionLinenumberEnd: 7185
    functionName: TABCollection::EmptyCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABCollection::SyncOGRGeometryCollection
    linkageType: ''
    returnType: void
    signature: void TABCollection::EmptyCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7201,1
    - Dst: TABCollection::TABCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7201,1
    - Dst: CopyTABFeatureBase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7203,1
    - Dst: TABCollection*::SetRegionDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7210,1
    - Dst: cpl::down_cast<TABRegion *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7211,1
    - Dst: TABCollection::CloneTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7211,1
    - Dst: TABCollection*::SetPolylineDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7214,1
    - Dst: cpl::down_cast<TABPolyline *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7215,1
    - Dst: TABCollection::CloneTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7215,1
    - Dst: TABCollection*::SetMultiPointDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7218,1
    - Dst: cpl::down_cast<TABMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7219,1
    - Dst: TABCollection::CloneTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poNewDefn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 7222
      start: 7195
    functionDepth: 1
    functionLinenumber: 7195
    functionLinenumberEnd: 7222
    functionName: TABCollection::CloneTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - CopyTABFeatureBase
    - TABCollection*::SetPolylineDirectly
    - cpl::down_cast<TABPolyline *>
    - TABCollection*::SetMultiPointDirectly
    - GetDefnRef
    - TABCollection::TABCollection
    - TABCollection::CloneTABFeature
    - cpl::down_cast<TABMultiPoint *>
    - cpl::down_cast<TABRegion *>
    - TABCollection*::SetRegionDirectly
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABCollection::CloneTABFeature(OGRFeatureDefn *poNewDefn
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7244,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7246,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7246,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7252,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7260,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7273,1
    - Dst: TABCollection::ValidateMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7274,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7275,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7276,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7281,1
    - Dst: TABCollection::ValidateMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7282,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7283,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7284,1
    - Dst: ValidateCoordType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7289,1
    - Dst: TABCollection::ValidateMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7290,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7291,1
    - Dst: TAB_GEOM_GET_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7292,1
    - Dst: GetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7309,1
    - Dst: ForceCoordTypeAndOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7310,1
    - Dst: GetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7319,1
    - Dst: ForceCoordTypeAndOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7320,1
    - Dst: GetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7330,1
    - Dst: ForceCoordTypeAndOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7331,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - poMapFile
    argTypes:
    - TABMAPFile*
    constantsTouched: []
    func_position:
      end: 7338
      start: 7234
    functionDepth: 1
    functionLinenumber: 7234
    functionLinenumberEnd: 7338
    functionName: TABCollection::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABCollection::ValidateMapInfoType
    - GetIntMBR
    - ForceCoordTypeAndOrigin
    - TAB_GEOM_GET_VERSION
    - OGRGeometry*::getGeometryType
    - GetGeometryRef
    - CPLError
    - wkbFlatten
    - ValidateCoordType
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABCollection::ValidateMapInfoType(TABMAPFile *poMapFile
      /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7364,1
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7365,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7367,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7368,1
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7370,1
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7371,1
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7372,1
    - Dst: TABMAPCoordBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7373,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7374,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7375,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7376,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7377,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7383,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7384,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7386,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7387,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7388,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 10
    argNames:
    - poCoordBlock
    - bComprCoord
    - nComprOrgX
    - nComprOrgY
    - pnMinX
    - pnMinY
    - pnMaxX
    - pnMaxY
    - pnLabelX
    - pnLabelY
    argTypes:
    - TABMAPCoordBlock*
    - GBool
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 7393
      start: 7347
    functionDepth: 1
    functionLinenumber: 7347
    functionLinenumberEnd: 7393
    functionName: TABCollection::ReadLabelAndMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPCoordBlock*::ReadInt32
    - TABSaturatedAdd
    - TABMAPCoordBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: "int TABCollection::ReadLabelAndMBR(TABMAPCoordBlock *poCoordBlock,\n
      \                                  GBool bComprCoord, GInt32 nComprOrgX,\n                                   GInt32
      nComprOrgY, GInt32 &pnMinX,\n                                   GInt32 &pnMinY,
      GInt32 &pnMaxX,\n                                   GInt32 &pnMaxY, GInt32 &pnLabelX,\n
      \                                  GInt32 &pnLabelY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7415,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7416,1
    - Dst: TABMAPCoordBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 8
    argNames:
    - poCoordBlock
    - bComprCoord
    - nMinX
    - nMinY
    - nMaxX
    - nMaxY
    - nLabelX
    - nLabelY
    argTypes:
    - TABMAPCoordBlock*
    - GBool
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 7425
      start: 7402
    functionDepth: 0
    functionLinenumber: 7402
    functionLinenumberEnd: 7425
    functionName: TABCollection::WriteLabelAndMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPCoordBlock*::WriteIntCoord
    linkageType: ''
    returnType: int
    signature: "int TABCollection::WriteLabelAndMBR(TABMAPCoordBlock *poCoordBlock,\n
      \                                   GBool bComprCoord, GInt32 nMinX,\n                                    GInt32
      nMinY, GInt32 nMaxX, GInt32 nMaxY,\n                                    GInt32
      nLabelX, GInt32 nLabelY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7456,1
    - Dst: TABCollection::EmptyCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7466,1
    - Dst: cpl::down_cast<TABMAPObjCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7472,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7479,1
    - Dst: TABMAPFile*::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7481,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7484,1
    - Dst: SetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7486,1
    - Dst: TABMAPFile*::GetCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7494,1
    - Dst: TABMAPObjPLine::TABMAPObjPLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7508,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7523,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7523,1
    - Dst: TABCollection::ReadLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7527,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7534,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7541,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7553,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7553,1
    - Dst: TABCollection::ReadGeometryFromMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7554,1
    - Dst: TABMAPObjPLine::TABMAPObjPLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7572,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7587,1
    - Dst: TABMAPCoordBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7587,1
    - Dst: TABCollection::ReadLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7591,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7597,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7604,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7615,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7615,1
    - Dst: TABCollection::ReadGeometryFromMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7616,1
    - Dst: TABMAPObjMultiPoint::TABMAPObjMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7633,1
    - Dst: TABCollection::ReadLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7643,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7650,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7657,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7667,1
    - Dst: TABMultiPoint::TABMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7667,1
    - Dst: TABCollection::ReadGeometryFromMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7668,1
    - Dst: TABCollection::SyncOGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7682,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 7692
      start: 7439
    functionDepth: 2
    functionLinenumber: 7439
    functionLinenumberEnd: 7692
    functionName: TABCollection::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - SetIntMBR
    - TABMAPObjMultiPoint::TABMAPObjMultiPoint
    - TABMultiPoint::TABMultiPoint
    - CPLError
    - TABMAPObjPLine::TABMAPObjPLine
    - TABMAPFile*::GetCoordBlock
    - TABRegion::TABRegion
    - cpl::down_cast<TABMAPObjCollection *>
    - TABCollection::SyncOGRGeometryCollection
    - TABPolyline::TABPolyline
    - CPLAssert
    - GetDefnRef
    - TABCollection::ReadLabelAndMBR
    - static_cast<TABGeomType>
    - TABMAPObjHdr*::IsCompressedType
    - SetMBR
    - TABCollection::ReadGeometryFromMAPFile
    - TABMAPCoordBlock*::GetCurAddress
    - TABCollection::EmptyCollection
    - TABMAPFile*::Int2Coordsys
    - TABMAPCoordBlock*::ReadInt32
    linkageType: ''
    returnType: int
    signature: "int TABCollection::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7727,1
    - Dst: cpl::down_cast<TABMAPObjCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7730,1
    - Dst: TABMAPObjHdr*::IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7741,1
    - Dst: TABMAPFile*::GetCurCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7751,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7752,1
    - Dst: TABMAPCoordBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7753,1
    - Dst: TABMAPCoordBlock*::SetComprCoordOrigin
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7754,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7759,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7761,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7761,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7762,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7763,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7764,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7766,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7767,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7767,1
    - Dst: TABMAPFile*::UpdateMapHeaderInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7771,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7771,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7780,1
    - Dst: TABMAPCoordBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7786,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7788,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7789,1
    - Dst: TABCollection::WriteGeometryToMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7791,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7795,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7805,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7807,1
    - Dst: TABMAPCoordBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7816,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7818,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7824,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7858,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7860,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7860,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7861,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7862,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7863,1
    - Dst: cpl::down_cast<TABMAPObjPLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7865,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7866,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7866,1
    - Dst: TABMAPFile*::UpdateMapHeaderInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7870,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7870,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7879,1
    - Dst: TABMAPCoordBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7885,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7887,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7888,1
    - Dst: TABCollection::WriteGeometryToMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7890,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7893,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7903,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7905,1
    - Dst: TABMAPCoordBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7914,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7916,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7922,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7953,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7955,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7955,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7956,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7957,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7958,1
    - Dst: cpl::down_cast<TABMAPObjMultiPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7961,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7962,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7962,1
    - Dst: TABMAPFile*::UpdateMapHeaderInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7966,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7966,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7975,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7978,1
    - Dst: TABMAPCoordBlock*::GetFeatureDataSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7979,1
    - Dst: TABCollection::WriteGeometryToMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7981,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7985,1
    - Dst: TABMAPCoordBlock*::StartNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7995,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:7997,1
    - Dst: TABCollection::WriteLabelAndMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8003,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8009,1
    - Dst: TABMAPObjCollection*::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8046,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8048,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 133
    argCount: 4
    argNames:
    - poMapFile
    - poObjHdr
    - bCoordBlockDataOnly
    - ppoCoordBlock
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    - GBool
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 8058
      start: 7705
    functionDepth: 1
    functionLinenumber: 7705
    functionLinenumberEnd: 8058
    functionName: TABCollection::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABMAPCoordBlock*::GetFeatureDataSize
    - TABMAPCoordBlock*::SetComprCoordOrigin
    - cpl::down_cast<TABMAPObjPLine *>
    - CPLError
    - TABCollection::WriteGeometryToMAPFile
    - TABMAPFile*::GetCurCoordBlock
    - TABCollection::WriteLabelAndMBR
    - TABMAPObjHdr::NewObj
    - cpl::down_cast<TABMAPObjCollection *>
    - TABMAPFile*::UpdateMapHeaderInfo
    - cpl::down_cast<TABMAPObjMultiPoint *>
    - CPLAssert
    - GetMapInfoType
    - TABMAPObjHdr*::IsCompressedType
    - TABMAPCoordBlock*::WriteInt32
    - TABMAPCoordBlock*::StartNewFeature
    - TABMAPCoordBlock*::GetCurAddress
    - TABMAPCoordBlock*::GotoByteInFile
    - CPLGetLastErrorType
    - TABMAPObjCollection*::SetMBR
    linkageType: ''
    returnType: int
    signature: "int TABCollection::WriteGeometryToMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool bCoordBlockDataOnly /*=FALSE*/,\n    TABMAPCoordBlock
      **ppoCoordBlock /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8070,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8076,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8078,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8078,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8084,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8099,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8104,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8104,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8105,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8105,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8107,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8107,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8108,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8108,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8110,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8110,1
    - Dst: OGRGeometryCollection*::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8113,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8120,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8128,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8129,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8129,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8131,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8132,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8132,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8134,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8135,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8135,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8138,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 30
    argCount: 3
    argNames:
    - bSyncRegion
    - bSyncPline
    - bSyncMpoint
    argTypes:
    - GBool
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 8141
      start: 8066
    functionDepth: 1
    functionLinenumber: 8066
    functionLinenumberEnd: 8141
    functionName: TABCollection::SyncOGRGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 2
    functionsReached:
    - SetGeometryDirectly
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryCollection*::removeGeometry
    - GetGeometryRef
    - OGRGeometryCollection*::addGeometry
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int TABCollection::SyncOGRGeometryCollection(GBool bSyncRegion,\n
      \                                            GBool bSyncPline,\n                                             GBool
      bSyncMpoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCollection::SyncOGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poRegion
    argTypes:
    - TABRegion*
    constantsTouched: []
    func_position:
      end: 8162
      start: 8154
    functionDepth: 2
    functionLinenumber: 8154
    functionLinenumberEnd: 8162
    functionName: TABCollection::SetRegionDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCollection::SyncOGRGeometryCollection
    linkageType: ''
    returnType: int
    signature: int TABCollection::SetRegionDirectly(TABRegion *poRegion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCollection::SyncOGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poPline
    argTypes:
    - TABPolyline*
    constantsTouched: []
    func_position:
      end: 8183
      start: 8175
    functionDepth: 2
    functionLinenumber: 8175
    functionLinenumberEnd: 8183
    functionName: TABCollection::SetPolylineDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCollection::SyncOGRGeometryCollection
    linkageType: ''
    returnType: int
    signature: int TABCollection::SetPolylineDirectly(TABPolyline *poPline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCollection::SyncOGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poMpoint
    argTypes:
    - TABMultiPoint*
    constantsTouched: []
    func_position:
      end: 8204
      start: 8196
    functionDepth: 2
    functionLinenumber: 8196
    functionLinenumberEnd: 8204
    functionName: TABCollection::SetMultiPointDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABCollection::SyncOGRGeometryCollection
    linkageType: ''
    returnType: int
    signature: int TABCollection::SetMultiPointDirectly(TABMultiPoint *poMpoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8217,1
    - Dst: GetSymbolStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8213
    functionDepth: 1
    functionLinenumber: 8213
    functionLinenumberEnd: 8221
    functionName: TABCollection::GetStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - GetSymbolStyleString
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *TABCollection::GetStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8244,1
    - Dst: TABCollection::DumpMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8247,1
    - Dst: TABCollection::DumpMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8250,1
    - Dst: TABCollection::DumpMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8253,1
    - Dst: DumpSymbolDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8255,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 8258
      start: 8228
    functionDepth: 1
    functionLinenumber: 8228
    functionLinenumberEnd: 8258
    functionName: TABCollection::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 1
    functionsReached:
    - TABCollection::DumpMIF
    - DumpSymbolDef
    - fprintf
    - fflush
    linkageType: ''
    returnType: void
    signature: void TABCollection::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDefnIn
    argTypes:
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 8273
      start: 8269
    functionDepth: 0
    functionLinenumber: 8269
    functionLinenumberEnd: 8273
    functionName: TABDebugFeature::TABDebugFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void TABDebugFeature::TABDebugFeature(OGRFeatureDefn *poDefnIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8282
      start: 8280
    functionDepth: 0
    functionLinenumber: 8280
    functionLinenumberEnd: 8282
    functionName: TABDebugFeature::~TABDebugFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABDebugFeature::~TABDebugFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile*::GetCurObjBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8306,1
    - Dst: TABMAPFile*::GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8307,1
    - Dst: TABMAPHeaderBlock*::MapObjectUsesCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8313,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8315,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8316,1
    - Dst: TABMAPHeaderBlock*::GetMapObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8324,1
    - Dst: TABMAPObjectBlock*::GotoByteRel
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8327,1
    - Dst: TABMAPObjectBlock*::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8328,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8329,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - poMapFile
    - poObjHdr
    argTypes:
    - TABMAPFile*
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 8333
      start: 8296
    functionDepth: 1
    functionLinenumber: 8296
    functionLinenumberEnd: 8333
    functionName: TABDebugFeature::ReadGeometryFromMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - static_cast<int>
    - TABMAPHeaderBlock*::MapObjectUsesCoordBlock
    - TABMAPFile*::GetCurObjBlock
    - TABMAPObjectBlock*::ReadBytes
    - min
    - TABMAPObjectBlock*::GotoByteRel
    - TABMAPFile*::GetHeaderBlock
    - TABMAPHeaderBlock*::GetMapObjectSize
    linkageType: ''
    returnType: int
    signature: "int TABDebugFeature::ReadGeometryFromMAPFile(\n    TABMAPFile *poMapFile,
      TABMAPObjHdr *poObjHdr,\n    GBool /*bCoordBlockDataOnly=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8357
      start: 8346
    functionDepth: 1
    functionLinenumber: 8346
    functionLinenumberEnd: 8357
    functionName: TABDebugFeature::WriteGeometryToMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDebugFeature::WriteGeometryToMAPFile(\n    TABMAPFile * /*poMapFile*/,
      TABMAPObjHdr * /*poObjHdr*/,\n    GBool /*bCoordBlockDataOnly=FALSE*/,\n    TABMAPCoordBlock
      ** /*ppoCoordBlock=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8369,1
    - Dst: GetMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8370,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8371,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8372,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8373,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8374,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8377,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8379,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 8382
      start: 8364
    functionDepth: 1
    functionLinenumber: 8364
    functionLinenumberEnd: 8382
    functionName: TABDebugFeature::DumpMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - GetMapInfoType
    linkageType: ''
    returnType: void
    signature: void TABDebugFeature::DumpMIF(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8395
    functionDepth: 0
    functionLinenumber: 8395
    functionLinenumberEnd: 8398
    functionName: ITABFeaturePen::ITABFeaturePen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::ITABFeaturePen()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8404
    functionDepth: 0
    functionLinenumber: 8404
    functionLinenumberEnd: 8404
    functionName: ITABFeaturePen::~ITABFeaturePen()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::~ITABFeaturePen()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8433
      start: 8430
    functionDepth: 0
    functionLinenumber: 8430
    functionLinenumberEnd: 8433
    functionName: ITABFeaturePen::GetPenWidthPixel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte ITABFeaturePen::GetPenWidthPixel() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8440,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 8442
      start: 8435
    functionDepth: 1
    functionLinenumber: 8435
    functionLinenumberEnd: 8442
    functionName: ITABFeaturePen::SetPenWidthPixel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::SetPenWidthPixel(GByte val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8448
      start: 8444
    functionDepth: 0
    functionLinenumber: 8444
    functionLinenumberEnd: 8448
    functionName: ITABFeaturePen::GetPenWidthPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ITABFeaturePen::GetPenWidthPoint() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8453,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8453,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 8455
      start: 8450
    functionDepth: 1
    functionLinenumber: 8450
    functionLinenumberEnd: 8455
    functionName: ITABFeaturePen::SetPenWidthPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::SetPenWidthPoint(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8469
      start: 8465
    functionDepth: 0
    functionLinenumber: 8465
    functionLinenumberEnd: 8469
    functionName: ITABFeaturePen::GetPenWidthMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ITABFeaturePen::GetPenWidthMIF() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8475,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8481,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8481,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 8484
      start: 8471
    functionDepth: 1
    functionLinenumber: 8471
    functionLinenumberEnd: 8484
    functionName: ITABFeaturePen::SetPenWidthMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - min
    - static_cast<GByte>
    - max
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::SetPenWidthMIF(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITABFeaturePen::GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8500,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8510,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8514,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8518,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8522,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8526,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8530,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8534,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8538,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8542,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8546,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8550,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8554,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8558,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8562,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8566,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8570,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8574,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8578,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8582,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8586,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8590,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8594,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8598,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8609,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8612,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8614,1
    - Dst: ITABFeaturePen::GetPenWidthPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8614,1
    - Dst: ITABFeaturePen::GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8615,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8618,1
    - Dst: ITABFeaturePen::GetPenWidthPixel
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8620,1
    - Dst: ITABFeaturePen::GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8621,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8627,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8629,1
    - Dst: ITABFeaturePen::GetPenWidthPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8629,1
    - Dst: ITABFeaturePen::GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8630,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8632,1
    - Dst: ITABFeaturePen::GetPenWidthPixel
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8634,1
    - Dst: ITABFeaturePen::GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8635,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8639
      start: 8491
    functionDepth: 1
    functionLinenumber: 8491
    functionLinenumberEnd: 8639
    functionName: ITABFeaturePen::GetPenStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - ITABFeaturePen::GetPenWidthPixel
    - ITABFeaturePen::GetPenPattern
    - CPLSPrintf
    - strlen
    - ITABFeaturePen::GetPenWidthPoint
    - strcpy
    linkageType: ''
    returnType: char
    signature: char *ITABFeaturePen::GetPenStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8651,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8655,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8661,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8665,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8683,1
    - Dst: OGRStylePen*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8693,1
    - Dst: OGRStylePen*::Width
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8701,1
    - Dst: ITABFeaturePen::SetPenWidthPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8706,1
    - Dst: ITABFeaturePen::SetPenWidthPixel
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8708,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8708,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8719,1
    - Dst: strtol
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8719,1
    - Dst: ITABFeaturePen::SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8720,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8727,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8727,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8733,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8733,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8737,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8743,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8743,1
    - Dst: OGRStylePen*::Pattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8750,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8755,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8756,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8757,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8758,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8759,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8760,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8761,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8762,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8763,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8764,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8765,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8766,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8767,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8768,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8769,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8770,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8771,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8772,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8773,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8774,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8775,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8776,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8777,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8778,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8779,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8780,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8781,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8782,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8783,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8784,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8785,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8786,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8787,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8788,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8789,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8790,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8791,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8792,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8793,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8794,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8795,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8796,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8797,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8798,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8799,1
    - Dst: ITABFeaturePen::SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8800,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 8808
      start: 8646
    functionDepth: 2
    functionLinenumber: 8646
    functionLinenumberEnd: 8808
    functionName: ITABFeaturePen::SetPenFromStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRStyleMgr*::InitStyleString
    - strtol
    - ITABFeaturePen::SetPenPattern
    - OGRStylePen*::Pattern
    - ITABFeaturePen::SetPenWidthPoint
    - OGRStyleTool*::GetType
    - OGRStyleMgr*::GetPart
    - OGRStylePen*::Width
    - static_cast<GByte>
    - OGRStyleMgr::OGRStyleMgr
    - strcmp
    - ITABFeaturePen::SetPenWidthPixel
    - strstr
    - ITABFeaturePen::SetPenColor
    - cpl::down_cast<OGRStylePen *>
    - OGRStylePen*::SetUnit
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::SetPenFromStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8820,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8821,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8822,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8823,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8824,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8825,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 8829
      start: 8815
    functionDepth: 1
    functionLinenumber: 8815
    functionLinenumberEnd: 8829
    functionName: ITABFeaturePen::DumpPenDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ITABFeaturePen::DumpPenDef(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8845
      start: 8842
    functionDepth: 0
    functionLinenumber: 8842
    functionLinenumberEnd: 8845
    functionName: ITABFeatureBrush::ITABFeatureBrush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeatureBrush::ITABFeatureBrush()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8851
      start: 8851
    functionDepth: 0
    functionLinenumber: 8851
    functionLinenumberEnd: 8851
    functionName: ITABFeatureBrush::~ITABFeatureBrush()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeatureBrush::~ITABFeatureBrush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITABFeatureBrush::GetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8883,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8889,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8896
      start: 8858
    functionDepth: 1
    functionLinenumber: 8858
    functionLinenumberEnd: 8896
    functionName: ITABFeatureBrush::GetBrushStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - ITABFeatureBrush::GetBrushTransparent
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *ITABFeatureBrush::GetBrushStyleString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8909,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8913,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8919,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8923,1
    - Dst: cpl::down_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8941,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8949,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8950,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8952,1
    - Dst: ITABFeatureBrush::SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8955,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8955,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8958,1
    - Dst: ITABFeatureBrush::SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8963,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8963,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8977,1
    - Dst: ITABFeatureBrush::SetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8980,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8985,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8986,1
    - Dst: ITABFeatureBrush::SetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8989,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8989,1
    - Dst: ITABFeatureBrush::SetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8994,1
    - Dst: OGRStyleBrush*::ForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:8998,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9006,1
    - Dst: ITABFeatureBrush::SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9010,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9010,1
    - Dst: ITABFeatureBrush::SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9015,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9015,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9019,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9020,1
    - Dst: ITABFeatureBrush::SetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9023,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9023,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9030
      start: 8904
    functionDepth: 1
    functionLinenumber: 8904
    functionLinenumberEnd: 9030
    functionName: ITABFeatureBrush::SetBrushFromStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - ITABFeatureBrush::SetBrushTransparent
    - ITABFeatureBrush::SetBrushFGColor
    - OGRStyleMgr*::InitStyleString
    - OGRStyleTool*::GetType
    - OGRStyleMgr*::GetPart
    - static_cast<GByte>
    - OGRStyleMgr::OGRStyleMgr
    - ITABFeatureBrush::SetBrushBGColor
    - cpl::down_cast<OGRStyleBrush *>
    - strstr
    - strlen
    - OGRStyleBrush*::ForeColor
    - static_cast<GInt32>
    - CPLString::resize
    - ITABFeatureBrush::SetBrushPattern
    linkageType: ''
    returnType: void
    signature: void ITABFeatureBrush::SetBrushFromStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9042,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9043,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9044,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9045,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9046,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9047,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9048,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9050,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 9054
      start: 9037
    functionDepth: 1
    functionLinenumber: 9037
    functionLinenumberEnd: 9054
    functionName: ITABFeatureBrush::DumpBrushDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - static_cast<int>
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ITABFeatureBrush::DumpBrushDef(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9070
      start: 9067
    functionDepth: 0
    functionLinenumber: 9067
    functionLinenumberEnd: 9070
    functionName: ITABFeatureFont::ITABFeatureFont
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeatureFont::ITABFeatureFont()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9076
      start: 9076
    functionDepth: 0
    functionLinenumber: 9076
    functionLinenumberEnd: 9076
    functionName: ITABFeatureFont::~ITABFeatureFont()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeatureFont::~ITABFeatureFont()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9085
      start: 9081
    functionDepth: 0
    functionLinenumber: 9081
    functionLinenumberEnd: 9085
    functionName: ITABFeatureFont::SetFontName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: void ITABFeatureFont::SetFontName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9097,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9098,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9099,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 9102
      start: 9092
    functionDepth: 1
    functionLinenumber: 9092
    functionLinenumberEnd: 9102
    functionName: ITABFeatureFont::DumpFontDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ITABFeatureFont::DumpFontDef(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9118
      start: 9115
    functionDepth: 0
    functionLinenumber: 9115
    functionLinenumberEnd: 9118
    functionName: ITABFeatureSymbol::ITABFeatureSymbol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITABFeatureSymbol::ITABFeatureSymbol()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9196,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 1
    argNames:
    - dfAngle
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 9204
      start: 9125
    functionDepth: 1
    functionLinenumber: 9125
    functionLinenumberEnd: 9204
    functionName: ITABFeatureSymbol::GetSymbolStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: char *ITABFeatureSymbol::GetSymbolStyleString(double dfAngle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9222,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9225,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9225,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9227,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9236,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9239,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9242,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9245,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9248,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9251,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9254,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9257,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9260,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9263,1
    - Dst: ITABFeatureSymbol::SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9267,1
    - Dst: ITABFeatureSymbol::SetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9277,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9277,1
    - Dst: ITABFeatureSymbol::SetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9288,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9288,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - poSymbolStyle
    argTypes:
    - OGRStyleSymbol*
    constantsTouched: []
    func_position:
      end: 9290
      start: 9211
    functionDepth: 1
    functionLinenumber: 9211
    functionLinenumberEnd: 9290
    functionName: ITABFeatureSymbol::SetSymbolFromStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 2
    functionsReached:
    - static_cast<GInt16>
    - ITABFeatureSymbol::SetSymbolColor
    - static_cast<GByte>
    - ITABFeatureSymbol::SetSymbolSize
    - static_cast<GInt32>
    - STARTS_WITH
    - ITABFeatureSymbol::SetSymbolNo
    linkageType: ''
    returnType: void
    signature: void ITABFeatureSymbol::SetSymbolFromStyle(OGRStyleSymbol *poSymbolStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9300,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9304,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9310,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9314,1
    - Dst: cpl::down_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9333,1
    - Dst: OGRStyleSymbol*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9342,1
    - Dst: ITABFeatureSymbol::SetSymbolFromStyle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9350
      start: 9297
    functionDepth: 2
    functionLinenumber: 9297
    functionLinenumberEnd: 9350
    functionName: ITABFeatureSymbol::SetSymbolFromStyleString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRStyleSymbol *>
    - OGRStyleMgr*::InitStyleString
    - OGRStyleTool*::GetType
    - OGRStyleMgr*::GetPart
    - ITABFeatureSymbol::SetSymbolFromStyle
    - OGRStyleMgr::OGRStyleMgr
    - OGRStyleSymbol*::SetUnit
    linkageType: ''
    returnType: void
    signature: void ITABFeatureSymbol::SetSymbolFromStyleString(const char *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9361,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9365,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9371,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9377,1
    - Dst: cpl::down_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9398,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9409,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9413,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - pszStyleString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9423
      start: 9357
    functionDepth: 1
    functionLinenumber: 9357
    functionLinenumberEnd: 9423
    functionName: ITABFeatureSymbol::GetSymbolFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRStyleSymbol *>
    - OGRStyleMgr*::InitStyleString
    - OGRStyleTool*::GetType
    - OGRStyleMgr*::GetPart
    - OGRStyleMgr::OGRStyleMgr
    - STARTS_WITH
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass ITABFeatureSymbol::GetSymbolFeatureClass(const char
      *pszStyleString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9435,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9436,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9437,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9438,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9439,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9440,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9441,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp:9444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 9445
      start: 9430
    functionDepth: 1
    functionLinenumber: 9430
    functionLinenumberEnd: 9445
    functionName: ITABFeatureSymbol::DumpSymbolDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - static_cast<int>
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ITABFeatureSymbol::DumpSymbolDef(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: OGRTABDataSource::OGRTABDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRTABDataSource::OGRTABDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:51,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: OGRTABDataSource::~OGRTABDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRTABDataSource::~OGRTABDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:64,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:65,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:69,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:71,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:71,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:72,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:72,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:75,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:78,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:80,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:84,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:84,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:89,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:89,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:91,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:93,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:95,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:106,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:112,1
    - Dst: MIFFile::MIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:125,1
    - Dst: IMapInfoFile*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:126,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:134,1
    - Dst: TABFile*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:135,1
    - Dst: IMapInfoFile*::SetStrictLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:143,1
    - Dst: static_cast<IMapInfoFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:145,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:145,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:148,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:148,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 153
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 153
    functionName: OGRTABDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLError
    - static_cast<IMapInfoFile **>
    - CPLGetExtensionSafe
    - CSLFetchNameValue
    - CPLStrdup
    - VSI_ISDIR
    - VSIMkdir
    - strlen
    - MIFFile::MIFFile
    - IMapInfoFile*::Open
    - CPLMalloc
    - TABFile::TABFile
    - IMapInfoFile*::SetStrictLaundering
    - TABFile*::Open
    - SetDescription
    - CPLGetPathSafe
    - VSIStatL
    - CSLFetchNameValueDef
    - EQUAL
    - CSLDuplicate
    linkageType: ''
    returnType: int
    signature: int OGRTABDataSource::Create(const char *pszName, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:164,1
    - Dst: IMapInfoFile::SmartOpen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:170,1
    - Dst: OGRTABDataSource::GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:171,1
    - Dst: IMapInfoFile*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:175,1
    - Dst: IMapInfoFile*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:175,1
    - Dst: static_cast<IMapInfoFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:178,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:178,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:182,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:182,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:194,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:203,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:203,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:204,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:204,1
    - Dst: IMapInfoFile::SmartOpen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:212,1
    - Dst: OGRTABDataSource::GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:213,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:214,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:218,1
    - Dst: IMapInfoFile*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:221,1
    - Dst: IMapInfoFile*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:221,1
    - Dst: static_cast<IMapInfoFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:224,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:225,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - poOpenInfo
    - bTestOpen
    argTypes:
    - GDALOpenInfo*
    - int
    constantsTouched: []
    func_position:
      end: 243
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 243
    functionName: OGRTABDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLGetPathSafe
    - IMapInfoFile*::SetDescription
    - CPLStrdup
    - CSLDestroy
    - OGRTABDataSource::GetUpdate
    - EQUAL
    - CPLRealloc
    - CPLMalloc
    - CPLError
    - SetDescription
    - static_cast<IMapInfoFile **>
    - std::string::c_str
    - IMapInfoFile*::GetName
    - IMapInfoFile::SmartOpen
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: int
    signature: int OGRTABDataSource::Open(GDALOpenInfo *poOpenInfo, int bTestOpen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: OGRTABDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRTABDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTABDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: OGRTABDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - OGRTABDataSource::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRTABDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTABDataSource::GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:283,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:289,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:304,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:313,1
    - Dst: IMapInfoFile*::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:323,1
    - Dst: IMapInfoFile*::GetFileClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:325,1
    - Dst: IMapInfoFile*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:326,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:333,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:334,1
    - Dst: MIFFile::MIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:337,1
    - Dst: IMapInfoFile*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:339,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:341,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:348,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:349,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:352,1
    - Dst: TABFile*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:354,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:357,1
    - Dst: IMapInfoFile*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:362,1
    - Dst: static_cast<IMapInfoFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:366,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:367,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:370,1
    - Dst: IMapInfoFile*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:373,1
    - Dst: IMapInfoFile*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:373,1
    - Dst: IMapInfoFile*::SetStrictLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:374,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:380,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:381,1
    - Dst: IMapInfoFile*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:382,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:383,1
    - Dst: IMapInfoFile*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:385,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:386,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:387,1
    - Dst: IMapInfoFile*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:387,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:392,1
    - Dst: CPLsscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:398,1
    - Dst: IMapInfoFile*::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:404,1
    - Dst: IMapInfoFile*::IsBoundsSet
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:409,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:411,1
    - Dst: IMapInfoFile*::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:412,1
    - Dst: auto::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:413,1
    - Dst: IMapInfoFile*::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:417,1
    - Dst: IMapInfoFile*::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:421,1
    - Dst: IMapInfoFile*::SetQuickSpatialIndexMode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:425,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:427,1
    - Dst: IMapInfoFile*::SetQuickSpatialIndexMode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:431,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:433,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefnIn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 438
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 438
    functionName: OGRTABDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - IMapInfoFile*::SetSpatialRef
    - CPLsscanf
    - CPLError
    - static_cast<IMapInfoFile **>
    - CSLFetchNameValue
    - CPLStrdup
    - IMapInfoFile*::IsBoundsSet
    - auto::IsProjected
    - CPLRealloc
    - auto::Clone
    - MIFFile::MIFFile
    - IMapInfoFile*::Open
    - IMapInfoFile*::GetName
    - auto::IsGeographic
    - IMapInfoFile*::SetMetadataItem
    - IMapInfoFile*::SetCharset
    - IMapInfoFile*::SetQuickSpatialIndexMode
    - IMapInfoFile*::GetFileClass
    - TABFile::TABFile
    - IMapInfoFile*::SetStrictLaundering
    - TABFile*::Open
    - IMapInfoFile*::GetLayerDefn
    - auto::SetSpatialRef
    - IMapInfoFile*::GetSpatialRef
    - CPLFree
    - CPLFormFilenameSafe
    - auto::SetAxisMappingStrategy
    - CSLFetchNameValueDef
    - IMapInfoFile*::SetBounds
    - OGRTABDataSource::GetUpdate
    - auto::GetTemporaryUnsealer
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - IMapInfoFile*::SetDescription
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRTABDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefnIn,\n
      \                              CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:447,1
    - Dst: OGRTABDataSource::GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:448,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:449,1
    - Dst: OGRTABDataSource::GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: OGRTABDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRTABDataSource::GetUpdate
    linkageType: ''
    returnType: int
    signature: int OGRTABDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:462,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:464,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:464,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:465,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:475,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:477,1
    - Dst: CPLStringList::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:479,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:479,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:480,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:492,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:492,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:492,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:493,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:493,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:493,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:505,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:505,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:506,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:506,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:508,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:508,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:509,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:510,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:510,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:512,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:515,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:516,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:516,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:520,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 521
    functionName: OGRTABDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - VSIStatL
    - CPLStringList::AddString
    - GetDescription
    - CPLFormFilenameSafe
    - CSLDestroy
    - VSI_ISDIR
    - CPLResetExtensionSafe
    - std::string::clear
    - EQUAL
    - CPLStringList::StealList
    - CSLFindString
    - CPLString
    - std::string::c_str
    - CPLStringList::push_back
    - CPLStringList::CPLStringList
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: char
    signature: char **OGRTABDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:532,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:532,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:534,1
    - Dst: dynamic_cast<IMapInfoFile *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:537,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:537,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:540,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:543,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:547,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:550,1
    - Dst: IMapInfoFile*::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:554,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:558,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp:559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 560
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 560
    functionName: OGRTABDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_datasource.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<IMapInfoFile *>
    - CPLError
    - CSLDestroy
    - EQUAL
    - GDALDataset::ExecuteSQL
    - IMapInfoFile*::SetFieldIndexed
    - CSLCount
    - GetLayerByName
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRTABDataSource::ExecuteSQL(const char *pszStatement,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: TABMAPObjHdr::TABMAPObjHdr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjHdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: TABMAPObjHdr::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WriteObj(TABMAPObjectBlock *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: TABMAPObjHdr::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ReadObj(TABMAPObjectBlock *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    functionName: TABMAPObjNone::TABMAPObjNone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjNone()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: TABMAPObjNone::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WriteObj(TABMAPObjectBlock *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: TABMAPObjPoint::TABMAPObjPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: ~TABMAPObjPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: TABMAPObjFontPoint::TABMAPObjFontPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjFontPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: ~TABMAPObjFontPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjFontPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: TABMAPObjCustomPoint::TABMAPObjCustomPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjCustomPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: ~TABMAPObjCustomPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjCustomPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: TABMAPObjLine::TABMAPObjLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: ~TABMAPObjLine()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: TABMAPObjPLine::TABMAPObjPLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjPLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: ~TABMAPObjPLine()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjPLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: TABMAPObjRectEllipse::TABMAPObjRectEllipse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjRectEllipse()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: ~TABMAPObjRectEllipse()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjRectEllipse()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: TABMAPObjArc::TABMAPObjArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjArc()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: ~TABMAPObjArc()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjArc()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: TABMAPObjText::TABMAPObjText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjText()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: ~TABMAPObjText()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjText()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: TABMAPObjMultiPoint::TABMAPObjMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    functionName: ~TABMAPObjMultiPoint()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 700
    functionName: TABMAPObjCollection::TABMAPObjCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: ~TABMAPObjCollection()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TABMAPObjCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: TABBinBlockManager::GetBlockSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nBlockPtr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: TABBinBlockManager::SetLastPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLastPtr(int nBlockPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: TABRawBinBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: TABRawBinBlock::GetStartAddress
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetStartAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bModified
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: TABRawBinBlock::SetModifiedFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetModifiedFlag(GBool bModified)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: TABRawBinBlock::GetCurDataPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte *GetCurDataPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: TABMAPHeaderBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1026
    functionName: TABMAPIndexBlock::GetMaxEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxEntries() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1043
    functionName: TABMAPIndexBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: TABMAPIndexBlock::GetNumEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetNumEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1064
    functionName: TABMAPIndexBlock::GetNodeBlockPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached:
    - GetStartAddress
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetNodeBlockPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: TABMAPIndexBlock::GetCurChildIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetCurChildIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1079
    functionName: TABMAPIndexBlock::GetCurChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: TABMAPIndexBlock
    signature: TABMAPIndexBlock *GetCurChild()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1084
    functionName: TABMAPIndexBlock::GetParentRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPIndexBlock
    signature: TABMAPIndexBlock *GetParentRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1166
    functionName: TABMAPObjectBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1182
    functionName: TABMAPObjectBlock::GetFirstCoordBlockAddress
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetFirstCoordBlockAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1187
    functionName: TABMAPObjectBlock::GetLastCoordBlockAddress
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetLastCoordBlockAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1201
    functionName: TABMAPObjectBlock::GetCurObjectOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetCurObjectOffset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1206
    functionName: TABMAPObjectBlock::GetCurObjectId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetCurObjectId()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1211
    functionName: TABMAPObjectBlock::GetCurObjectType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType GetCurObjectType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1217
    functionName: TABMAPObjectBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 1
    functionsReached:
    - TABMAPObjectBlock::Dump
    linkageType: ''
    returnType: void
    signature: void Dump(FILE *fpOut = nullptr) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1272
    functionName: TABMAPCoordBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1290
    functionName: TABMAPCoordBlock::GetNextCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetNextCoordBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1297
    functionName: TABMAPCoordBlock::GetNumBlocksInChain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetNumBlocksInChain()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1302
    functionName: TABMAPCoordBlock::ResetTotalDataSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetTotalDataSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1307
    functionName: TABMAPCoordBlock::GetTotalDataSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetTotalDataSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1315
    functionName: TABMAPCoordBlock::GetFeatureDataSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFeatureDataSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1362
    functionName: TABMAPToolBlock::GetBlockClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBlockClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1375
    functionName: TABMAPToolBlock::GetNumBlocksInChain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetNumBlocksInChain()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1641
    functionName: TABINDNode::GetFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType GetFieldType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bUnique
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 1646
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1646
    functionName: TABINDNode::SetUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUnique(GBool bUnique)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1651
    functionName: TABINDNode::IsUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool IsUnique()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1656
    functionName: TABINDNode::GetKeyLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetKeyLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1661
    functionName: TABINDNode::GetSubTreeDepth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSubTreeDepth()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1666
    functionName: TABINDNode::GetNodeBlockPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetNodeBlockPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1671
    functionName: TABINDNode::GetNumEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetNumEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1676
    functionName: TABINDNode::GetMaxNumEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxNumEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1742
    functionName: TABINDFile::GetNumIndexes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetNumIndexes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1838
    functionName: TABDATFile::IsCurrentRecordDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool IsCurrentRecordDeleted()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1952
    functionName: TABRelation::GetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1970
    functionDepth: 0
    functionLinenumber: 1970
    functionLinenumberEnd: 1973
    functionName: TABRelation::GetMainFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetMainFieldName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1978
    functionName: TABRelation::GetRelFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetRelFieldName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2016
    functionName: MIDDATAFile::GetXMultiplier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetXMultiplier()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2021
    functionName: MIDDATAFile::GetDelimiter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetDelimiter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszDelimiter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2026
      start: 2023
    functionDepth: 0
    functionLinenumber: 2023
    functionLinenumberEnd: 2026
    functionName: MIDDATAFile::SetDelimiter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDelimiter(const char *pszDelimiter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:45,1
    - Dst: SetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: TABINDFile::TABINDFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - SetName
    - SetBlockSize
    linkageType: ''
    returnType: void
    signature: void TABINDFile::TABINDFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TABINDFile::~TABINDFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - TABINDFile::Close
    linkageType: ''
    returnType: void
    signature: void TABINDFile::~TABINDFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:81,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:91,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:91,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:96,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:101,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:108,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:116,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:119,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:120,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:123,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:129,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:134,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:137,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:145,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:146,1
    - Dst: TABINDFile::ReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:153,1
    - Dst: TABINDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:156,1
    - Dst: TABINDFile::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:167,1
    - Dst: TABINDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:170,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - pszFname
    - pszAccess
    - bTestOpenNoError
    argTypes:
    - char*
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 176
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 176
    functionName: TABINDFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - TABINDFile::Close
    - TABINDFile::WriteHeader
    - EQUAL
    - strchr
    - VSIFOpenL
    - strcpy
    - CPLError
    - TABINDFile::ReadHeader
    - CPLFree
    - AllocNewBlock
    - TABAdjustFilenameExtension
    - Reset
    linkageType: ''
    returnType: int
    signature: "int TABINDFile::Open(const char *pszFname, const char *pszAccess,\n
      \                    GBool bTestOpenNoError /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:195,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:201,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:202,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:215,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:217,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:219,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:226,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:229,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 233
    functionName: TABINDFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - CommitToFile
    - VSIFCloseL
    - TABINDFile::WriteHeader
    - CPL_IGNORE_RET_VAL
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int TABINDFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:246,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:247,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:253,1
    - Dst: SetLastPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:255,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:256,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:262,1
    - Dst: TABRawBinBlock*::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:263,1
    - Dst: TABRawBinBlock*::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:270,1
    - Dst: TABRawBinBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:271,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:274,1
    - Dst: TABRawBinBlock*::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:281,1
    - Dst: TABRawBinBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:282,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:285,1
    - Dst: static_cast<TABINDNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:295,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:296,1
    - Dst: static_cast<GByte **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:299,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:299,1
    - Dst: TABRawBinBlock*::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:302,1
    - Dst: TABRawBinBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:309,1
    - Dst: TABRawBinBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:310,1
    - Dst: TABRawBinBlock*::GotoByteRel
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:313,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:325,1
    - Dst: InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:326,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:338,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 353
    functionName: TABINDFile::ReadHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - static_cast<TABINDNode **>
    - static_cast<int>
    - SetLastPtr
    - VSIStatL
    - TABRawBinBlock*::ReadInt32
    - InitNode
    - TABRawBinBlock::TABRawBinBlock
    - static_cast<GByte *>
    - TABRawBinBlock*::GotoByteRel
    - CPLAssert
    - TABRawBinBlock*::ReadInt16
    - TABRawBinBlock*::ReadFromFile
    - CPLError
    - CPLCalloc
    - TABINDNode::TABINDNode
    - static_cast<GByte **>
    - TABRawBinBlock*::GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABINDFile::ReadHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:365,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:366,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:371,1
    - Dst: TABRawBinBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:372,1
    - Dst: TABRawBinBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:374,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:376,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:377,1
    - Dst: TABRawBinBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:378,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:380,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:380,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:382,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:384,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:385,1
    - Dst: TABRawBinBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:387,1
    - Dst: TABRawBinBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:401,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:401,1
    - Dst: TABRawBinBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:402,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:403,1
    - Dst: TABINDNode*::GetMaxNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:403,1
    - Dst: TABRawBinBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:404,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:405,1
    - Dst: TABINDNode*::GetSubTreeDepth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:405,1
    - Dst: TABRawBinBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:406,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:407,1
    - Dst: TABINDNode*::GetKeyLength
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:407,1
    - Dst: TABRawBinBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:409,1
    - Dst: TABINDNode*::GetSubTreeDepth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:414,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:416,1
    - Dst: TABINDNode*::GetSubTreeDepth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:419,1
    - Dst: TABRawBinBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:428,1
    - Dst: TABRawBinBlock*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 441
    functionName: TABINDFile::WriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - TABRawBinBlock*::WriteInt16
    - TABINDNode*::GetNodeBlockPtr
    - TABINDNode*::GetSubTreeDepth
    - TABRawBinBlock*::WriteInt32
    - TABRawBinBlock*::WriteByte
    - TABRawBinBlock*::CommitToFile
    - TABRawBinBlock*::InitNewBlock
    - TABRawBinBlock::TABRawBinBlock
    - TABRawBinBlock*::WriteZeros
    - static_cast<GInt16>
    - CPLAssert
    - static_cast<GByte>
    - TABINDNode*::GetKeyLength
    - CPLError
    - TABINDNode*::GetMaxNumEntries
    linkageType: ''
    returnType: int
    signature: int TABINDFile::WriteHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:454,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - nIndexNumber
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 470
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 470
    functionName: TABINDFile::ValidateIndexNo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABINDFile::ValidateIndexNo(int nIndexNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:482,1
    - Dst: SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nIndexNumber
    - eType
    argTypes:
    - int
    - TABFieldType
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: TABINDFile::SetIndexFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - SetFieldType
    - TABINDFile::ValidateIndexNo
    linkageType: ''
    returnType: int
    signature: int TABINDFile::SetIndexFieldType(int nIndexNumber, TABFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:499,1
    - Dst: SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nIndexNumber
    - bUnique
    argTypes:
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: TABINDFile::SetIndexUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - TABINDFile::ValidateIndexNo
    - SetUnique
    linkageType: ''
    returnType: int
    signature: int TABINDFile::SetIndexUnique(int nIndexNumber, GBool bUnique /*=TRUE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:524,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:540,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:544,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:546,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:550,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:552,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:554,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:556,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - nIndexNumber
    - nValue
    argTypes:
    - int
    - GInt32
    constantsTouched: []
    func_position:
      end: 566
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 566
    functionName: TABINDFile::BuildKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GByte>
    - TABINDFile::ValidateIndexNo
    linkageType: ''
    returnType: GByte
    signature: GByte *TABINDFile::BuildKey(int nIndexNumber, GInt32 nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:575,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:586,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:587,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - nIndexNumber
    - pszStr
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 597
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 597
    functionName: TABINDFile::BuildKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - static_cast<GByte>
    - TABINDFile::ValidateIndexNo
    - CPLToupper
    linkageType: ''
    returnType: GByte
    signature: GByte *TABINDFile::BuildKey(int nIndexNumber, const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:606,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:611,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:620,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:623,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nIndexNumber
    - dValue
    argTypes:
    - int
    - double
    constantsTouched: []
    func_position:
      end: 627
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 627
    functionName: TABINDFile::BuildKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - memcpy
    - CPLAssert
    - CPL_SWAPDOUBLE
    - TABINDFile::ValidateIndexNo
    linkageType: ''
    returnType: GByte
    signature: GByte *TABINDFile::BuildKey(int nIndexNumber, double dValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:636,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:641,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:644,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:647,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nIndexNumber
    - nValue
    argTypes:
    - int
    - GInt64
    constantsTouched: []
    func_position:
      end: 651
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 651
    functionName: TABINDFile::BuildKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - memcpy
    - CPLAssert
    - TABINDFile::ValidateIndexNo
    - CPL_SWAP64PTR
    linkageType: ''
    returnType: GByte
    signature: GByte *TABINDFile::BuildKey(int nIndexNumber, GInt64 nValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:667,1
    - Dst: TABINDFile::FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nIndexNumber
    - pKeyValue
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: TABINDFile::FindFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDFile::FindFirst
    - TABINDFile::ValidateIndexNo
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABINDFile::FindFirst(int nIndexNumber, GByte *pKeyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:689,1
    - Dst: TABINDFile::FindNext
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nIndexNumber
    - pKeyValue
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: TABINDFile::FindNext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDFile::ValidateIndexNo
    - TABINDFile::FindNext
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABINDFile::FindNext(int nIndexNumber, GByte *pKeyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:722,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:742,1
    - Dst: static_cast<TABINDNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:755,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:755,1
    - Dst: static_cast<GByte **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:758,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:759,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:783,1
    - Dst: InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:784,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:797,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:797,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - eType
    - nFieldSize
    argTypes:
    - TABFieldType
    - int
    constantsTouched: []
    func_position:
      end: 801
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 801
    functionName: TABINDFile::CreateIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - InitNode
    - static_cast<GByte *>
    - CPLRealloc
    - TABINDNode::TABINDNode
    - CPLError
    - CPLCalloc
    - static_cast<GByte **>
    - static_cast<TABINDNode **>
    linkageType: ''
    returnType: int
    signature: int TABINDFile::CreateIndex(TABFieldType eType, int nFieldSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::ValidateIndexNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:816,1
    - Dst: TABINDFile::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - nIndexNumber
    - pKeyValue
    - nRecordNo
    argTypes:
    - int
    - GByte*
    - GInt32
    constantsTouched: []
    func_position:
      end: 821
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 821
    functionName: TABINDFile::AddEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDFile::AddEntry
    - TABINDFile::ValidateIndexNo
    linkageType: ''
    returnType: int
    signature: int TABINDFile::AddEntry(int nIndexNumber, GByte *pKeyValue, GInt32
      nRecordNo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:835,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:839,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:843,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:844,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:849,1
    - Dst: TABINDFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:850,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 856
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 856
    functionName: TABINDFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - fflush
    - TABINDFile::Dump
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABINDFile::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 877
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 877
    functionName: TABINDNode::TABINDNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABINDNode::TABINDNode(TABAccess eAccessMode /*=TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 891
    functionName: TABINDNode::~TABINDNode()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABINDNode::~TABINDNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:949,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:957,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:958,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:960,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:961,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:962,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:966,1
    - Dst: ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:971,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:977,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:978,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:979,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:980,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 9
    argNames:
    - fp
    - nBlockPtr
    - nKeyLength
    - nSubTreeDepth
    - bUnique
    - poBlockMgr
    - poParentNode
    - nPrevNodePtr
    - nNextNodePtr
    argTypes:
    - VSILFILE*
    - int
    - int
    - int
    - GBool
    - TABBinBlockManager*
    - TABINDNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 986
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 986
    functionName: TABINDNode::InitNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - InitNewBlock
    - TABRawBinBlock::TABRawBinBlock
    - WriteInt32
    - CPLAssert
    - ReadInt32
    - ReadFromFile
    - AllocNewBlock
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABINDNode::InitNode(VSILFILE *fp, int nBlockPtr, int nKeyLength,\n
      \                        int nSubTreeDepth, GBool bUnique,\n                         TABBinBlockManager
      *poBlockMgr /*=NULL*/,\n                         TABINDNode *poParentNode /*=NULL*/,\n
      \                        int nPrevNodePtr /*=0*/, int nNextNodePtr /*=0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:999,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1002,1
    - Dst: TABINDNode::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - nNewNodePtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1007
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1007
    functionName: TABINDNode::GotoNodePtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - TABINDNode::CommitToFile
    - CPLAssert
    - TABINDNode::InitNode
    linkageType: ''
    returnType: int
    signature: int TABINDNode::GotoNodePtr(GInt32 nNewNodePtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1031,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1032,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1036,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - nEntryNo
    - pKeyValue
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 1044
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1044
    functionName: TABINDNode::ReadIndexEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - ReadInt32
    - ReadBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABINDNode::ReadIndexEntry(int nEntryNo, GByte *pKeyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1059,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1060,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1062,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1063,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1065,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pKeyValue
    - nEntryNo
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 1068
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1068
    functionName: TABINDNode::IndexKeyCmp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - ReadBytes
    - GotoByteInBlock
    - memcmp
    linkageType: ''
    returnType: int
    signature: int TABINDNode::IndexKeyCmp(const GByte *pKeyValue, int nEntryNo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1101,1
    - Dst: TABFIELDTYPE_2_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1103,1
    - Dst: TABINDNode::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1113,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 13
    argCount: 1
    argNames:
    - eType
    argTypes:
    - TABFieldType
    constantsTouched: []
    func_position:
      end: 1116
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1116
    functionName: TABINDNode::SetFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABINDNode::SetFieldType
    - TABFIELDTYPE_2_STRING
    linkageType: ''
    returnType: int
    signature: int TABINDNode::SetFieldType(TABFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pKeyValue
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1134
    functionName: TABINDNode::FindFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode::FindFirst
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABINDNode::FindFirst(const GByte *pKeyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1141,1
    - Dst: TABINDNode::ReadIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1175,1
    - Dst: std::set<int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1276,1
    - Dst: std::set<int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1277,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1285,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1293,1
    - Dst: TABINDNode::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1294,1
    - Dst: TABINDNode::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1298,1
    - Dst: TABINDNode::GotoNodePtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1305,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1311,1
    - Dst: TABINDNode::FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1312,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1322,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 2
    argNames:
    - pKeyValue
    - oSetVisitedNodePtr
    argTypes:
    - GByte*
    - std::set<int>
    constantsTouched: []
    func_position:
      end: 1327
      start: 1136
    functionDepth: 3
    functionLinenumber: 1136
    functionLinenumberEnd: 1327
    functionName: TABINDNode::FindFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - TABINDNode::FindFirst
    - std::set<int>::find
    - TABINDNode::InitNode
    - TABINDNode::ReadIndexEntry
    - std::set<int>::end
    - std::set<int>::insert
    - CPLAssert
    - TABINDNode::TABINDNode
    - CPLError
    - TABINDNode::SetFieldType
    - TABINDNode::GotoNodePtr
    linkageType: ''
    returnType: GInt32
    signature: "GInt32 TABINDNode::FindFirst(const GByte *pKeyValue,\n                             std::set<int>
      &oSetVisitedNodePtr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1344,1
    - Dst: TABINDNode::GotoNodePtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1363,1
    - Dst: TABINDNode::IndexKeyCmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1368,1
    - Dst: TABINDNode::ReadIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1371,1
    - Dst: TABINDNode::FindNext
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - pKeyValue
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1393
    functionName: TABINDNode::FindNext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode::IndexKeyCmp
    - TABINDNode::FindNext
    - TABINDNode::ReadIndexEntry
    - CPLError
    - TABINDNode::GotoNodePtr
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABINDNode::FindNext(GByte *pKeyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1413,1
    - Dst: TABINDNode::GetSubTreeDepth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1416,1
    - Dst: TABINDNode::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1420
    functionName: TABINDNode::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - TABINDNode::CommitToFile
    - TABINDNode::GetSubTreeDepth
    linkageType: ''
    returnType: int
    signature: int TABINDNode::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1462,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1468,1
    - Dst: TABINDNode::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1476,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1483,1
    - Dst: TABINDNode::GetNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1489,1
    - Dst: TABINDNode::GetMaxNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1489,1
    - Dst: TABINDNode::SplitRootNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1497,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1500,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1501,1
    - Dst: TABINDNode::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1502,1
    - Dst: TABINDNode::SplitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1511,1
    - Dst: TABINDNode::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1519,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - pKeyValue
    - nRecordNo
    - bAddInThisNodeOnly
    - bInsertAfterCurChild
    - bMakeNewEntryCurChild
    argTypes:
    - GByte*
    - GInt32
    - GBool
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 1525
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1525
    functionName: TABINDNode::AddEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode::FindFirst
    - TABINDNode::GetNumEntries
    - TABINDNode::GetMaxNumEntries
    - TABINDNode::SplitNode
    - CPLAssert
    - TABINDNode::InsertEntry
    - TABINDNode::SplitRootNode
    - TABINDNode::AddEntry
    linkageType: ''
    returnType: int
    signature: "int TABINDNode::AddEntry(GByte *pKeyValue, GInt32 nRecordNo,\n                         GBool
      bAddInThisNodeOnly /*=FALSE*/,\n                         GBool bInsertAfterCurChild
      /*=FALSE*/,\n                         GBool bMakeNewEntryCurChild /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::GetNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1542,1
    - Dst: TABINDNode::GetMaxNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1544,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1569,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1578,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1580,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1582,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1582,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1583,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1584,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1591,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1592,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1595,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1596,1
    - Dst: TABINDNode::UpdateCurChildEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1609,1
    - Dst: TABINDNode::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1609,1
    - Dst: TABINDNode::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1610,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - pKeyValue
    - nRecordNo
    - bInsertAfterCurChild
    - bMakeNewEntryCurChild
    argTypes:
    - GByte*
    - GInt32
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 1615
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1615
    functionName: TABINDNode::InsertEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode::GetNumEntries
    - static_cast<size_t>
    - TABINDNode::GetMaxNumEntries
    - GetCurDataPtr
    - WriteInt32
    - TABINDNode::UpdateCurChildEntry
    - TABINDNode::GetNodeBlockPtr
    - CPLError
    - WriteBytes
    - TABINDNode::GetNodeKey
    - memmove
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABINDNode::InsertEntry(GByte *pKeyValue, GInt32 nRecordNo,\n
      \                           GBool bInsertAfterCurChild /*=FALSE*/,\n                            GBool
      bMakeNewEntryCurChild /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1634,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1639,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1643,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pKeyValue
    - nRecordNo
    argTypes:
    - GByte*
    - GInt32
    constantsTouched: []
    func_position:
      end: 1649
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1649
    functionName: TABINDNode::UpdateCurChildEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - WriteZeros
    - WriteBytes
    - GotoByteInBlock
    - WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABINDNode::UpdateCurChildEntry(GByte *pKeyValue, GInt32 nRecordNo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1670,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1674,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1678,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1680,1
    - Dst: TABINDNode::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - pKeyValue1
    - nRecordNo1
    - pKeyValue2
    - nRecordNo2
    - nNewCurChildNo
    argTypes:
    - GByte*
    - GInt32
    - GByte*
    - GInt32
    - int
    constantsTouched: []
    func_position:
      end: 1695
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1695
    functionName: TABINDNode::UpdateSplitChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - WriteZeros
    - WriteBytes
    - GotoByteInBlock
    - TABINDNode::AddEntry
    linkageType: ''
    returnType: int
    signature: "int TABINDNode::UpdateSplitChild(GByte *pKeyValue1, GInt32 nRecordNo1,\n
      \                                GByte *pKeyValue2, GInt32 nRecordNo2,\n                                 int
      nNewCurChildNo /* 1 or 2 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1716,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1717,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1725,1
    - Dst: TABINDNode*::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1732,1
    - Dst: TABINDNode::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1734,1
    - Dst: TABINDNode*::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1736,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1746,1
    - Dst: TABINDNode*::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1747,1
    - Dst: TABINDNode*::SetPrevNodePtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1750,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1750,1
    - Dst: TABINDNode*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1751,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1760,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1763,1
    - Dst: TABINDNode*::SetNodeBufferDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1765,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1766,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1774,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1774,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1775,1
    - Dst: TABINDNode::UpdateSplitChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1783,1
    - Dst: TABINDNode::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1784,1
    - Dst: TABINDNode::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1784,1
    - Dst: TABINDNode*::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1784,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1785,1
    - Dst: TABINDNode*::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1797,1
    - Dst: TABINDNode::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1800,1
    - Dst: TABINDNode*::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1801,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1811,1
    - Dst: TABINDNode*::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1812,1
    - Dst: TABINDNode*::SetNextNodePtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1815,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1815,1
    - Dst: TABINDNode*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1816,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1825,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1828,1
    - Dst: TABINDNode*::SetNodeBufferDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1830,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1831,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1838,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1838,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1839,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1841,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1845,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1845,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1846,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1847,1
    - Dst: TABINDNode::UpdateSplitChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1857,1
    - Dst: TABINDNode*::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1858,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1858,1
    - Dst: TABINDNode::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1859,1
    - Dst: TABINDNode::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1859,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1870,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1871,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1872,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1873,1
    - Dst: TABINDNode*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1878,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1714
    functionDepth: 4
    functionLinenumber: 1714
    functionLinenumberEnd: 1887
    functionName: TABINDNode::SplitNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode*::SetFieldType
    - TABINDNode*::SetPrevNodePtr
    - TABINDNode*::GetNodeKey
    - TABINDNode::GetNodeKey
    - TABINDNode::TABINDNode
    - GotoByteInBlock
    - TABINDNode*::GetNodeBlockPtr
    - GetCurDataPtr
    - CPLAssert
    - TABINDNode*::InitNode
    - memmove
    - static_cast<size_t>
    - TABINDNode*::CommitToFile
    - WriteInt32
    - TABINDNode::GetNodeBlockPtr
    - TABINDNode*::SetNextNodePtr
    - memset
    - TABINDNode*::SetNodeBufferDirectly
    - TABINDNode::UpdateSplitChild
    linkageType: ''
    returnType: int
    signature: int TABINDNode::SplitNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1907,1
    - Dst: TABINDNode*::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1909,1
    - Dst: TABINDNode*::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1911,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1918,1
    - Dst: TABINDNode*::SetNodeBufferDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1919,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1920,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1929,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1929,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1930,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1939,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1940,1
    - Dst: TABINDNode::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1942,1
    - Dst: TABINDNode*::GetNodeKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1942,1
    - Dst: TABINDNode*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1942,1
    - Dst: TABINDNode::SplitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1901
    functionDepth: 5
    functionLinenumber: 1901
    functionLinenumberEnd: 1954
    functionName: TABINDNode::SplitRootNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode*::SetFieldType
    - static_cast<size_t>
    - TABINDNode*::GetNodeBlockPtr
    - GetCurDataPtr
    - TABINDNode::SplitNode
    - TABINDNode*::GetNodeKey
    - WriteInt32
    - TABINDNode::InsertEntry
    - TABINDNode::TABINDNode
    - memset
    - TABINDNode*::InitNode
    - TABINDNode*::SetNodeBufferDirectly
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABINDNode::SplitRootNode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1971,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1972,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1976,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:1977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - numEntries
    - pBuf
    - nCurIndexEntry
    - poCurChild
    argTypes:
    - int
    - GByte*
    - int
    - TABINDNode*
    constantsTouched: []
    func_position:
      end: 1988
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 1988
    functionName: TABINDNode::SetNodeBufferDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - WriteBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABINDNode::SetNodeBufferDirectly(int numEntries, GByte *pBuf,\n
      \                                     int nCurIndexEntry /*=0*/,\n                                      TABINDNode
      *poCurChild /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2003,1
    - Dst: GetCurDataPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2006
    functionName: TABINDNode::GetNodeKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 2
    functionsReached:
    - GotoByteInBlock
    - GetCurDataPtr
    linkageType: ''
    returnType: GByte
    signature: GByte *TABINDNode::GetNodeKey()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2024,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - nPrevNodePtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 2026
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2026
    functionName: TABINDNode::SetPrevNodePtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABINDNode::SetPrevNodePtr(GInt32 nPrevNodePtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2044,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - nNextNodePtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 2046
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2046
    functionName: TABINDNode::SetNextNodePtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABINDNode::SetNextNodePtr(GInt32 nNextNodePtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2060,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2064,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2068,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2069,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2070,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2071,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2072,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2073,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2074,1
    - Dst: TABFIELDTYPE_2_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2075,1
    - Dst: TABINDNode::TABINDNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2084,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2089,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2094,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2099,1
    - Dst: TABINDNode::ReadIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2105,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2106,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2107,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2108,1
    - Dst: TABINDNode::ReadIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2112,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2114,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2116,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2118,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2119,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2120,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2121,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2122,1
    - Dst: TABINDNode::ReadIndexEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2127,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2127,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2128,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2129,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2130,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2135,1
    - Dst: TABINDNode::InitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2136,1
    - Dst: TABINDNode::SetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2138,1
    - Dst: TABINDNode::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2139,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp:2145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 2146
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2146
    functionName: TABINDNode::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_indfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDNode::InitNode
    - reinterpret_cast<char *>
    - memcpy
    - reinterpret_cast<GByte *>
    - fflush
    - fprintf
    - CPL_IGNORE_RET_VAL
    - TABFIELDTYPE_2_STRING
    - TABINDNode::ReadIndexEntry
    - CPLError
    - TABINDNode::SetFieldType
    - TABINDNode::TABINDNode
    - TABINDNode::Dump
    linkageType: ''
    returnType: void
    signature: void TABINDNode::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: TABSeamless::TABSeamless
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABSeamless::TABSeamless(GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TABSeamless::~TABSeamless()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - TABSeamless::Close
    linkageType: ''
    returnType: void
    signature: void TABSeamless::~TABSeamless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: TABSeamless::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - TABSeamless::OpenBaseTable
    linkageType: ''
    returnType: void
    signature: void TABSeamless::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:108,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:119,1
    - Dst: TABSeamless::OpenForRead
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:119,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pszFname
    - eAccess
    - bTestOpenNoError
    argTypes:
    - char*
    - TABAccess
    - GBool
    constantsTouched: []
    func_position:
      end: 129
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 129
    functionName: TABSeamless::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - TABSeamless::OpenForRead
    - static_cast<char>
    linkageType: ''
    returnType: int
    signature: "int TABSeamless::Open(const char *pszFname, TABAccess eAccess,\n                      GBool
      bTestOpenNoError /*= FALSE*/,\n                      const char * /*pszCharset
      = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:148,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:168,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:171,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:173,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:186,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:186,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:188,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:196,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:201,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:203,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:215,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:215,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:229,1
    - Dst: TABSeamless::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:230,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:234,1
    - Dst: TABSeamless::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:235,1
    - Dst: TABSeamless::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:239,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:244,1
    - Dst: TABSeamless::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:249,1
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:256,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:260,1
    - Dst: TABSeamless::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:261,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:265,1
    - Dst: TABSeamless::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:266,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:267,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - pszFname
    - bTestOpenNoError
    argTypes:
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 270
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 270
    functionName: TABSeamless::OpenForRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::GetFieldIndex
    - Reference
    - CPLError
    - TABSeamless::Close
    - CPLErrorReset
    - CPLStrdup
    - static_cast<unsigned char>
    - isspace
    - strlen
    - TABAdjustFilenameExtension
    - TABSeamless::OpenBaseTable
    - STARTS_WITH_CI
    - static_cast<int>
    - TABFile::TABFile
    - CPLAssert
    - TABSeamless::GetLayerDefn
    - CPLFree
    - TABSeamless::Open
    - CSLDestroy
    linkageType: ''
    returnType: int
    signature: "int TABSeamless::OpenForRead(const char *pszFname,\n                             GBool
      bTestOpenNoError /*= FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:286,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:294,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 308
    functionName: TABSeamless::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 2
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: int
    signature: int TABSeamless::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:320,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:326,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:328,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:328,1
    - Dst: TABSeamless::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:333,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:355,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:362,1
    - Dst: TABSeamless::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:363,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:367,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:370,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:377,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:381,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - poIndexFeature
    - bTestOpenNoError
    argTypes:
    - TABFeature*
    - GBool
    constantsTouched: []
    func_position:
      end: 384
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 384
    functionName: TABSeamless::OpenBaseTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 2
    functionsReached:
    - TABSeamless::ResetReading
    - static_cast<GIntBig>
    - CPLErrorReset
    - TABSeamless::Open
    - TABFeature*::GetFID
    - TABFile::TABFile
    - strchr
    - CPLAssert
    - SetSpatialFilter
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int TABSeamless::OpenBaseTable(TABFeature *poIndexFeature,\n                               GBool
      bTestOpenNoError /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:399,1
    - Dst: TABSeamless::OpenNextBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:400,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:404,1
    - Dst: TABSeamless::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:411,1
    - Dst: TABSeamless::GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:416,1
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:420,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - nTableId
    - bTestOpenNoError
    argTypes:
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 431
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 431
    functionName: TABSeamless::OpenBaseTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 3
    functionsReached:
    - TABSeamless::ResetReading
    - TABSeamless::OpenBaseTable
    - TABSeamless::OpenNextBaseTable
    - CPLErrorReset
    - TABSeamless::GetFeatureRef
    linkageType: ''
    returnType: int
    signature: int TABSeamless::OpenBaseTable(int nTableId, GBool bTestOpenNoError
      /*=FALSE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:445,1
    - Dst: cpl::down_cast<TABFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:448,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:448,1
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:452,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - bTestOpenNoError
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 470
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 470
    functionName: TABSeamless::OpenNextBaseTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::OpenBaseTable
    - CPLErrorReset
    - CPLAssert
    - cpl::down_cast<TABFeature *>
    - GetNextFeature
    linkageType: ''
    returnType: int
    signature: int TABSeamless::OpenNextBaseTable(GBool bTestOpenNoError /*=FALSE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nTableId
    - nBaseFeatureId
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: TABSeamless::EncodeFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABSeamless::EncodeFeatureId(int nTableId, int nBaseFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nEncodedFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: TABSeamless::ExtractBaseTableId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int TABSeamless::ExtractBaseTableId(GIntBig nEncodedFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nEncodedFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: TABSeamless::ExtractBaseFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int TABSeamless::ExtractBaseFeatureId(GIntBig nEncodedFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::ExtractBaseTableId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:516,1
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:518,1
    - Dst: TABSeamless::ExtractBaseTableId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:518,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:525,1
    - Dst: TABSeamless::GetNextFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:525,1
    - Dst: TABSeamless::EncodeFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:527,1
    - Dst: TABSeamless::OpenNextBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: TABSeamless::GetNextFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::OpenBaseTable
    - TABSeamless::OpenNextBaseTable
    - static_cast<int>
    - TABSeamless::GetNextFeatureId
    - TABSeamless::EncodeFeatureId
    - TABSeamless::ExtractBaseTableId
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABSeamless::GetNextFeatureId(GIntBig nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::ExtractBaseTableId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:557,1
    - Dst: TABSeamless::OpenBaseTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:559,1
    - Dst: TABSeamless::ExtractBaseTableId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:559,1
    - Dst: static_cast<TABFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:569,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:570,1
    - Dst: TABSeamless::ExtractBaseFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:570,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:573,1
    - Dst: SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:574,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:579,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 585
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 585
    functionName: TABSeamless::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::OpenBaseTable
    - TABSeamless::ExtractBaseFeatureId
    - static_cast<TABFeature *>
    - SetFID
    - SetFrom
    - TABSeamless::ExtractBaseTableId
    - GetFeature
    - TABFeature::TABFeature
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABSeamless::GetFeatureRef(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: TABSeamless::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *TABSeamless::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: TABSeamless::GetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::GetNativeFieldType
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType TABSeamless::GetNativeFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::IsFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: TABSeamless::IsFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::IsFieldIndexed
    linkageType: ''
    returnType: GBool
    signature: GBool TABSeamless::IsFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::IsFieldUnique
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: TABSeamless::IsFieldUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - TABSeamless::IsFieldUnique
    linkageType: ''
    returnType: GBool
    signature: GBool TABSeamless::IsFieldUnique(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:662,1
    - Dst: TABSeamless::GetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    - bForce
    argTypes:
    - double
    - double
    - double
    - double
    - GBool
    constantsTouched: []
    func_position:
      end: 669
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 669
    functionName: TABSeamless::GetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABSeamless::GetBounds
    linkageType: ''
    returnType: int
    signature: "int TABSeamless::GetBounds(double &dXMin, double &dYMin, double &dXMax,\n
      \                          double &dYMax, GBool bForce /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:686,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 693
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 693
    functionName: TABSeamless::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr TABSeamless::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - numPoints
    - numLines
    - numRegions
    - numTexts
    - bForce
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 719
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 719
    functionName: TABSeamless::GetFeatureCountByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TABSeamless::GetFeatureCountByType(CPL_UNUSED int &numPoints,\n
      \                                      CPL_UNUSED int &numLines,\n                                       CPL_UNUSED
      int &numRegions,\n                                       CPL_UNUSED int &numTexts,\n
      \                                      CPL_UNUSED GBool bForce /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 729
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 729
    functionName: TABSeamless::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABSeamless::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:747,1
    - Dst: TABSeamless::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 753
    functionName: TABSeamless::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABSeamless::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *TABSeamless::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:765,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:768,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 774
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 774
    functionName: TABSeamless::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialFilter
    - OGRAPISpy_L_SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr TABSeamless::ISetSpatialFilter(int /*iGeomField*/,\n                                      const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:783,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:789,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:792,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:795,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:798,1
    - Dst: TestUtf8Capability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:799,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 803
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 803
    functionName: TABSeamless::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - TestUtf8Capability
    linkageType: ''
    returnType: int
    signature: int TABSeamless::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:817,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:821,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:825,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 829
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 829
    functionName: TABSeamless::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabseamless.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABSeamless::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: TABMAPToolBlock::TABMAPToolBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPToolBlock::TABMAPToolBlock(TABAccess eAccessMode /*= TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TABMAPToolBlock::~TABMAPToolBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPToolBlock::~TABMAPToolBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: TABMAPToolBlock::EndOfChain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool TABMAPToolBlock::EndOfChain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:100,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:103,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:111,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:112,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:116,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:120,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:125,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:129,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:131,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 142
    functionName: TABMAPToolBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - ReadInt16
    - ReadInt32
    - CPLError
    - CPLFree
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPToolBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                      int nSizeUsed,\n                                       GBool
      bMakeCopy /* = TRUE */,\n                                       VSILFILE *fpSrc
      /* = NULL */,\n                                       int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:161,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:175,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:177,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:178,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:180,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:180,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:182,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:192,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 198
    functionName: TABMAPToolBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - WriteInt16
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - static_cast<GInt16>
    - WriteInt32
    - CPLAssert
    - CPLError
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPToolBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:219,1
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:225,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:235,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:239,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:240,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:241,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: TABMAPToolBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::InitNewBlock
    - WriteInt16
    - CPLDebug
    - WriteInt32
    - CPLGetLastErrorType
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPToolBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                 int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNextToolBlockAddress
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: TABMAPToolBlock::SetNextToolBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPToolBlock::SetNextToolBlock(GInt32 nNextToolBlockAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poBlockMgr
    argTypes:
    - TABBinBlockManager*
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: TABMAPToolBlock::SetMAPBlockManagerRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPToolBlock::SetMAPBlockManagerRef(TABBinBlockManager *poBlockMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:305,1
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - numBytes
    - pabyDstBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: TABMAPToolBlock::ReadBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPToolBlock::ReadBytes(int numBytes, GByte *pabyDstBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:339,1
    - Dst: TABMAPToolBlock::SetNextToolBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:345,1
    - Dst: TABMAPToolBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:347,1
    - Dst: TABMAPToolBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:348,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - nBytesToWrite
    - pabySrcBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 358
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 358
    functionName: TABMAPToolBlock::WriteBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPToolBlock::CommitToFile
    - TABRawBinBlock::WriteBytes
    - TABMAPToolBlock::SetNextToolBlock
    - CPLError
    - TABMAPToolBlock::InitNewBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPToolBlock::WriteBytes(int nBytesToWrite, const GByte *pabySrcBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:389,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:392,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:396,1
    - Dst: TABMAPToolBlock::SetNextToolBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:401,1
    - Dst: TABMAPToolBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:403,1
    - Dst: TABMAPToolBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - nToolType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 414
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 414
    functionName: TABMAPToolBlock::CheckAvailableSpace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPToolBlock::CommitToFile
    - CPLAssert
    - TABMAPToolBlock::SetNextToolBlock
    - CPLError
    - TABMAPToolBlock::InitNewBlock
    - GetNumUnusedBytes
    linkageType: ''
    returnType: int
    signature: int TABMAPToolBlock::CheckAvailableSpace(int nToolType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:428,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:431,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:435,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:437,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:438,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: TABMAPToolBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_maptoolblock.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABMAPToolBlock::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: TABIDFile::TABIDFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABIDFile::TABIDFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABIDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: TABIDFile::~TABIDFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 0
    functionsReached:
    - TABIDFile::Close
    linkageType: ''
    returnType: void
    signature: void TABIDFile::~TABIDFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:65,1
    - Dst: TABIDFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:66,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:67,1
    - Dst: TABIDFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: TABIDFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - STARTS_WITH_CI
    - TABIDFile::Open
    linkageType: ''
    returnType: int
    signature: int TABIDFile::Open(const char *pszFname, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:90,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:116,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:122,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:125,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:126,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:127,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:128,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:132,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:140,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:141,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:151,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:153,1
    - Dst: TABIDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:155,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:159,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:160,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:163,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:164,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:167,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:174,1
    - Dst: ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:176,1
    - Dst: TABIDFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:179,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:187,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:190,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 2
    argNames:
    - pszFname
    - eAccess
    argTypes:
    - char*
    - TABAccess
    constantsTouched: []
    func_position:
      end: 194
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 194
    functionName: TABIDFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 1
    functionsReached:
    - TABIDFile::Close
    - static_cast<int>
    - CPLStrdup
    - VSIStatL
    - InitNewBlock
    - TABRawBinBlock::TABRawBinBlock
    - min
    - VSIFOpenL
    - strcmp
    - strcpy
    - CPLError
    - static_cast<vsi_l_offset>
    - CPLFree
    - ReadFromFile
    - TABAdjustFilenameExtension
    linkageType: ''
    returnType: int
    signature: int TABIDFile::Open(const char *pszFname, TABAccess eAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABIDFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:210,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:217,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: TABIDFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 2
    functionsReached:
    - TABIDFile::SyncToDisk
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int TABIDFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:234,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: TABIDFile::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CommitToFile
    linkageType: ''
    returnType: int
    signature: int TABIDFile::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:264,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:270,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - nObjId
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: TABIDFile::GetObjPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - ReadInt32
    - GotoByteInFile
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABIDFile::GetObjPtr(GInt32 nObjId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:302,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:317,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:323,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:327,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - nObjId
    - nObjPtr
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: TABIDFile::SetObjPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - max
    - WriteInt32
    - GotoByteInFile
    linkageType: ''
    returnType: int
    signature: int TABIDFile::SetObjPtr(GInt32 nObjId, GInt32 nObjPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: TABIDFile::GetMaxObjId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABIDFile::GetMaxObjId()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:358,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:362,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:366,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:367,1
    - Dst: TABIDFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:368,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:369,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 373
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 373
    functionName: TABIDFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_idfile.cpp
    functionUses: 1
    functionsReached:
    - fflush
    - fprintf
    - TABIDFile::Dump
    linkageType: ''
    returnType: void
    signature: void TABIDFile::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: TABMAPCoordBlock::TABMAPCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::TABMAPCoordBlock(TABAccess eAccessMode /*= TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TABMAPCoordBlock::~TABMAPCoordBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::~TABMAPCoordBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:77,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:95,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:103,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:108,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:112,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:117,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 128
    functionName: TABMAPCoordBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - ReadInt16
    - CPLDebug
    - ReadInt32
    - CPLError
    - CPLFree
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                       int nSizeUsed,\n                                        GBool
      bMakeCopy /* = TRUE */,\n                                        VSILFILE *fpSrc
      /* = NULL */,\n                                        int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:151,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:165,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:167,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:168,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:170,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:170,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:172,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:174,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:183,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 189
    functionName: TABMAPCoordBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - WriteInt16
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - static_cast<GInt16>
    - WriteInt32
    - CPLAssert
    - CPLGetLastErrorType
    - CPLError
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPCoordBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:209,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:211,1
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:217,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:240,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:242,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:243,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:244,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 251
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 251
    functionName: TABMAPCoordBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - TABRawBinBlock::InitNewBlock
    - WriteInt16
    - CPLDebug
    - WriteInt32
    - CPLGetLastErrorType
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                  int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nNextCoordBlockAddress
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: TABMAPCoordBlock::SetNextCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::SetNextCoordBlock(GInt32 nNextCoordBlockAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nX
    - nY
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: TABMAPCoordBlock::SetComprCoordOrigin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::SetComprCoordOrigin(GInt32 nX, GInt32 nY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:294,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:295,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:296,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:297,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:301,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:302,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bCompressed
    - nX
    - nY
    argTypes:
    - GBool
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: TABMAPCoordBlock::ReadIntCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLGetLastErrorType
    - ReadInt32
    - ReadInt16
    - TABSaturatedAdd
    linkageType: ''
    returnType: int
    signature: int TABMAPCoordBlock::ReadIntCoord(GBool bCompressed, GInt32 &nX, GInt32
      &nY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:337,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:338,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:339,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:340,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:341,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:349,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:350,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - bCompressed
    - numCoordPairs
    - panXY
    argTypes:
    - GBool
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 357
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 357
    functionName: TABMAPCoordBlock::ReadIntCoords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLGetLastErrorType
    - ReadInt32
    - ReadInt16
    - TABSaturatedAdd
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::ReadIntCoords(GBool bCompressed, int numCoordPairs,\n
      \                                   GInt32 *panXY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:409,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:427,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:429,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:434,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:439,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:441,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:444,1
    - Dst: TABMAPCoordBlock::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:448,1
    - Dst: TABMAPCoordBlock::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:449,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:453,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:463,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:472,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:498,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - bCompressed
    - nVersion
    - numSections
    - pasHdrs
    - numVerticesTotal
    argTypes:
    - GBool
    - int
    - int
    - TABMAPCoordSecHdr*
    - GInt32
    constantsTouched: []
    func_position:
      end: 506
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 506
    functionName: TABMAPCoordBlock::ReadCoordSecHdrs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - ReadInt16
    - TABMAPCoordBlock::ReadIntCoord
    - ReadInt32
    - CPLGetLastErrorType
    - CPLError
    - printf
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::ReadCoordSecHdrs(GBool bCompressed, int nVersion,\n
      \                                      int numSections,\n                                       TABMAPCoordSecHdr
      *pasHdrs,\n                                       GInt32 &numVerticesTotal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:529,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:537,1
    - Dst: GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:541,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:545,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:551,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:553,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:553,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:555,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:557,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:557,1
    - Dst: TABMAPCoordBlock::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:558,1
    - Dst: TABMAPCoordBlock::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:559,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:560,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - nVersion
    - numSections
    - pasHdrs
    - bCompressed
    argTypes:
    - int
    - int
    - TABMAPCoordSecHdr*
    - GBool
    constantsTouched: []
    func_position:
      end: 567
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 567
    functionName: TABMAPCoordBlock::WriteCoordSecHdrs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - WriteInt16
    - GetCurAddress
    - static_cast<GInt16>
    - WriteInt32
    - CPLGetLastErrorType
    - printf
    - TABMAPCoordBlock::WriteIntCoord
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::WriteCoordSecHdrs(int nVersion, int numSections,\n
      \                                       TABMAPCoordSecHdr *pasHdrs,\n                                        GBool
      bCompressed /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:583,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:583,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:584,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:584,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:585,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:585,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 3
    argNames:
    - nX
    - nY
    - bCompressed
    argTypes:
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 618
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 618
    functionName: TABMAPCoordBlock::WriteIntCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 1
    functionsReached:
    - WriteInt32
    - TABInt16Diff
    - WriteInt16
    linkageType: ''
    returnType: int
    signature: "int TABMAPCoordBlock::WriteIntCoord(GInt32 nX, GInt32 nY,\n                                    GBool
      bCompressed /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poBlockMgr
    argTypes:
    - TABBinBlockManager*
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: TABMAPCoordBlock::SetMAPBlockManagerRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::SetMAPBlockManagerRef(TABBinBlockManager *poBlockMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:667,1
    - Dst: "m_nCurPos < (m_numDataBytes + MAP_COORD_HEADER_SIZE) &&\n        m_nCurPos
        + numBytes >"
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:671,1
    - Dst: TABMAPCoordBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:684,1
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - numBytes
    - pabyDstBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 690
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 690
    functionName: TABMAPCoordBlock::ReadBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 1
    functionsReached:
    - "m_nCurPos < (m_numDataBytes + MAP_COORD_HEADER_SIZE) &&\n        m_nCurPos
      + numBytes >"
    - TABMAPCoordBlock::ReadBytes
    - TABRawBinBlock::ReadBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPCoordBlock::ReadBytes(int numBytes, GByte *pabyDstBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:713,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:734,1
    - Dst: TABMAPCoordBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:736,1
    - Dst: ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:737,1
    - Dst: TABMAPCoordBlock::SetNextCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:749,1
    - Dst: TABMAPCoordBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:751,1
    - Dst: TABMAPCoordBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:752,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:776,1
    - Dst: TABMAPCoordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:780,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:797,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - nBytesToWrite
    - pabySrcBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 798
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 798
    functionName: TABMAPCoordBlock::WriteBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPCoordBlock::CommitToFile
    - TABMAPCoordBlock::InitNewBlock
    - TABMAPCoordBlock::WriteBytes
    - TABRawBinBlock::WriteBytes
    - min
    - CPLAssert
    - TABMAPCoordBlock::SetNextCoordBlock
    - CPLError
    - ReadFromFile
    linkageType: ''
    returnType: int
    signature: int TABMAPCoordBlock::WriteBytes(int nBytesToWrite, const GByte *pabySrcBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: TABMAPCoordBlock::SeekEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::SeekEnd()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: TABMAPCoordBlock::StartNewFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::StartNewFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 843
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 843
    functionName: TABMAPCoordBlock::GetFeatureMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABMAPCoordBlock::GetFeatureMBR(GInt32 &nXMin, GInt32 &nYMin,\n
      \                                    GInt32 &nXMax, GInt32 &nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:857,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:860,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:864,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:866,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:867,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 871
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 871
    functionName: TABMAPCoordBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapcoordblock.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABMAPCoordBlock::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: TABToolDefTable::TABToolDefTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABToolDefTable::TABToolDefTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:52,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:53,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:57,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:60,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:61,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:64,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: TABToolDefTable::~TABToolDefTable()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABToolDefTable::~TABToolDefTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPToolBlock*::EndOfChain
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:85,1
    - Dst: static_cast<TABPenDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:95,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:95,1
    - Dst: static_cast<TABPenDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:99,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:99,1
    - Dst: TABMAPToolBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:101,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:102,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:103,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:104,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:106,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:107,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:107,1
    - Dst: static_cast<TABBrushDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:127,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:128,1
    - Dst: static_cast<TABBrushDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:131,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:132,1
    - Dst: TABMAPToolBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:134,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:135,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:137,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:139,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:140,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:140,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:142,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:143,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:143,1
    - Dst: static_cast<TABFontDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:153,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:154,1
    - Dst: static_cast<TABFontDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:158,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:158,1
    - Dst: TABMAPToolBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:160,1
    - Dst: TABMAPToolBlock*::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:161,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:161,1
    - Dst: static_cast<TABSymbolDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:173,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:174,1
    - Dst: static_cast<TABSymbolDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:177,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:178,1
    - Dst: TABMAPToolBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:180,1
    - Dst: TABMAPToolBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:181,1
    - Dst: TABMAPToolBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:182,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:184,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:186,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:187,1
    - Dst: TABMAPToolBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:194,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - poBlock
    argTypes:
    - TABMAPToolBlock*
    constantsTouched: []
    func_position:
      end: 208
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 208
    functionName: TABToolDefTable::ReadAllToolDefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - TABMAPToolBlock*::ReadInt32
    - static_cast<TABFontDef **>
    - TABMAPToolBlock*::ReadBytes
    - reinterpret_cast<GByte *>
    - static_cast<TABPenDef *>
    - static_cast<TABSymbolDef *>
    - TABMAPToolBlock*::ReadInt16
    - static_cast<TABPenDef **>
    - static_cast<TABBrushDef **>
    - CPLRealloc
    - static_cast<TABBrushDef *>
    - static_cast<TABSymbolDef **>
    - CPLGetLastErrorType
    - CPLError
    - CPLCalloc
    - TABMAPToolBlock*::ReadByte
    - TABMAPToolBlock*::EndOfChain
    - static_cast<TABFontDef *>
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::ReadAllToolDefs(TABMAPToolBlock *poBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:234,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:237,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:243,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:244,1
    - Dst: TABMAPToolBlock*::CheckAvailableSpace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:247,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:248,1
    - Dst: TABMAPToolBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:249,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:251,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:252,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:253,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:254,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:254,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:254,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:255,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:255,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:255,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:256,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:256,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:256,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:258,1
    - Dst: TABMAPToolBlock*::CheckAvailableSpace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:270,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:272,1
    - Dst: TABMAPToolBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:273,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:275,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:276,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:277,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:278,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:278,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:279,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:280,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:280,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:281,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:282,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:282,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:283,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:284,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:284,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:285,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:286,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:286,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:287,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:288,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:288,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:290,1
    - Dst: TABMAPToolBlock*::CheckAvailableSpace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:302,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:304,1
    - Dst: TABMAPToolBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:305,1
    - Dst: TABMAPToolBlock*::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:307,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:308,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:310,1
    - Dst: TABMAPToolBlock*::CheckAvailableSpace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:322,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:324,1
    - Dst: TABMAPToolBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:325,1
    - Dst: TABMAPToolBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:327,1
    - Dst: TABMAPToolBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:328,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:329,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:330,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:331,1
    - Dst: COLOR_R
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:331,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:332,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:333,1
    - Dst: COLOR_G
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:333,1
    - Dst: TABMAPToolBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:334,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:335,1
    - Dst: COLOR_B
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:335,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:337,1
    - Dst: TABMAPToolBlock*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:345,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 1
    argNames:
    - poBlock
    argTypes:
    - TABMAPToolBlock*
    constantsTouched: []
    func_position:
      end: 348
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 348
    functionName: TABToolDefTable::WriteAllToolDefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - TABMAPToolBlock*::WriteInt16
    - TABMAPToolBlock*::CommitToFile
    - TABMAPToolBlock*::WriteByte
    - COLOR_G
    - COLOR_B
    - TABMAPToolBlock*::WriteBytes
    - TABMAPToolBlock*::CheckAvailableSpace
    - COLOR_R
    - reinterpret_cast<GByte *>
    - TABMAPToolBlock*::WriteInt32
    - min
    - static_cast<GByte>
    - max
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::WriteAllToolDefs(TABMAPToolBlock *poBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: TABToolDefTable::GetNumPen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::GetNumPen()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: TABToolDefTable::GetPenDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABPenDef
    signature: TABPenDef *TABToolDefTable::GetPenDefRef(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABPenDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:425,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:426,1
    - Dst: static_cast<TABPenDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:429,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - poNewPenDef
    argTypes:
    - TABPenDef*
    constantsTouched: []
    func_position:
      end: 437
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 437
    functionName: TABToolDefTable::AddPenDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABPenDef *>
    - CPLRealloc
    - CPLCalloc
    - static_cast<TABPenDef **>
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::AddPenDefRef(TABPenDef *poNewPenDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: TABToolDefTable::GetNumBrushes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::GetNumBrushes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: TABToolDefTable::GetBrushDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABBrushDef
    signature: TABBrushDef *TABToolDefTable::GetBrushDefRef(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABBrushDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:514,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:514,1
    - Dst: static_cast<TABBrushDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:518,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:518,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - poNewBrushDef
    argTypes:
    - TABBrushDef*
    constantsTouched: []
    func_position:
      end: 526
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 526
    functionName: TABToolDefTable::AddBrushDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABBrushDef **>
    - CPLRealloc
    - static_cast<TABBrushDef *>
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::AddBrushDefRef(TABBrushDef *poNewBrushDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: TABToolDefTable::GetNumFonts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::GetNumFonts()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: TABToolDefTable::GetFontDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFontDef
    signature: TABFontDef *TABToolDefTable::GetFontDefRef(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:578,1
    - Dst: static_cast<TABFontDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:594,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:594,1
    - Dst: static_cast<TABFontDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:598,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - poNewFontDef
    argTypes:
    - TABFontDef*
    constantsTouched: []
    func_position:
      end: 606
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 606
    functionName: TABToolDefTable::AddFontDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABFontDef **>
    - EQUAL
    - CPLRealloc
    - CPLCalloc
    - static_cast<TABFontDef *>
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::AddFontDefRef(TABFontDef *poNewFontDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 616
    functionName: TABToolDefTable::GetNumSymbols
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::GetNumSymbols()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: TABToolDefTable::GetSymbolDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABSymbolDef
    signature: TABSymbolDef *TABToolDefTable::GetSymbolDefRef(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABSymbolDef **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:677,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:677,1
    - Dst: static_cast<TABSymbolDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:681,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:681,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - poNewSymbolDef
    argTypes:
    - TABSymbolDef*
    constantsTouched: []
    func_position:
      end: 689
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 689
    functionName: TABToolDefTable::AddSymbolDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABSymbolDef *>
    - CPLRealloc
    - static_cast<TABSymbolDef **>
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::AddSymbolDefRef(TABSymbolDef *poNewSymbolDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 716
    functionName: TABToolDefTable::GetMinVersionNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tooldef.cpp
    functionUses: 0
    functionsReached:
    - max
    linkageType: ''
    returnType: int
    signature: int TABToolDefTable::GetMinVersionNumber()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: MIFFile::MIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void MIFFile::MIFFile(GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: MIFFile::~MIFFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MIFFile::Close
    linkageType: ''
    returnType: void
    signature: void MIFFile::~MIFFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:90,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:94,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:115,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:121,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:125,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:133,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:134,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:134,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:135,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:136,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:139,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:144,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:148,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:153,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:165,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:168,1
    - Dst: MIDDATAFile::MIDDATAFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:168,1
    - Dst: MIFFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:173,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:176,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:178,1
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:179,1
    - Dst: MIFFile::ParseMIFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:188,1
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:193,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:196,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:198,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:208,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:209,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:211,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:214,1
    - Dst: MIDDATAFile::MIDDATAFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:217,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:220,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:220,1
    - Dst: GetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:220,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:224,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:224,1
    - Dst: MIFFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:232,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:235,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:237,1
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:238,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:244,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:253,1
    - Dst: MIFFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:263,1
    - Dst: MIFFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:265,1
    - Dst: SetTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:268,1
    - Dst: SetTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:271,1
    - Dst: SetDelimiter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:273,1
    - Dst: SetDelimiter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:275,1
    - Dst: MIFFile::GetFeatureCountByType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:282,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:287,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:289,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:300,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:301,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:303,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:304,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 107
    argCount: 4
    argNames:
    - pszFname
    - eAccess
    - bTestOpenNoError
    - pszCharset
    argTypes:
    - char*
    - TABAccess
    - GBool
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 308
    functionName: MIFFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - MIFFile::SetCharset
    - strcmp
    - SetTranslation
    - Reference
    - CPLError
    - SetEncoding
    - CPLErrorReset
    - CPLStrdup
    - CharsetToEncoding
    - SetGeomType
    - MIFFile::GetFeatureCountByType
    - strlen
    - TABAdjustFilenameExtension
    - static_cast<int>
    - MIFFile::Close
    - OGRFeatureDefn::OGRFeatureDefn
    - MIDDATAFile::MIDDATAFile
    - MIFFile::ParseMIFHeader
    - CPLFree
    - Seal
    - MIFFile::Open
    - SetDelimiter
    - EQUAL
    - GetCharset
    - strcpy
    linkageType: ''
    returnType: int
    signature: "int MIFFile::Open(const char *pszFname, TABAccess eAccess,\n                  GBool
      bTestOpenNoError /*=FALSE*/,\n                  const char *pszCharset /* =
      NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:327,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:329,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:330,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:334,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:351,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:352,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:359,1
    - Dst: MIFFile::AddFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:366,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:380,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:383,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:386,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:387,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:389,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:391,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:394,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:398,1
    - Dst: MIFFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:400,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:402,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:404,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:407,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:411,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:413,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:414,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:416,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:418,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:423,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:425,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:430,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:432,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:432,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:433,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:438,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:440,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:444,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:446,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:447,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:448,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:449,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:456,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:458,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:461,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:464,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:466,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:480,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:484,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:486,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:495,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:497,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:503,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:505,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:506,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:507,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:508,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:516,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:523,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:524,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:524,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:526,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:535,1
    - Dst: IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:536,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:546,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:550,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:553,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:558,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:562,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:565,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 149
    argCount: 1
    argNames:
    - pbIsEmpty
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 569
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 569
    functionName: MIFFile::ParseMIFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - MIFFile::SetCharset
    - CSLTokenizeStringComplex
    - Reference
    - CPLStrnlen
    - CPLError
    - CPLString::empty
    - CPLStrdup
    - CPLString::size
    - CSLCount
    - MIFFile::AddFields
    - CPLAtof
    - STARTS_WITH_CI
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - CPLFree
    - Seal
    - GetLastLine
    - IsValidFeature
    - CSLDestroy
    - GetLine
    linkageType: ''
    returnType: int
    signature: int MIFFile::ParseMIFHeader(int *pbIsEmpty)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:579,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:588,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:588,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:590,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:590,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:594,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:599,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:601,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:608,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:616,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:619,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:626,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:634,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:637,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:644,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:652,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:655,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:660,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:660,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:661,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:663,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:670,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:675,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:677,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:682,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:684,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:690,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:692,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:697,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:702,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:707,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 713
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 713
    functionName: MIFFile::AddFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - MIFFile::AddFieldNative
    - atoi
    - CSLDestroy
    - EQUAL
    - CPLAssert
    - strlen
    - CPLError
    - CPLString::Recode
    - GetEncoding
    linkageType: ''
    returnType: int
    signature: int MIFFile::AddFields(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:723,1
    - Dst: MIFFile::PreParseFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 734
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 734
    functionName: MIFFile::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MIFFile::PreParseFile
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig MIFFile::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:743,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:746,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:747,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:750,1
    - Dst: IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:752,1
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 770
    functionName: MIFFile::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetLine
    - STARTS_WITH_CI
    - Rewind
    - IsValidFeature
    linkageType: ''
    returnType: void
    signature: void MIFFile::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:786,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:789,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:790,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:795,1
    - Dst: IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:797,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:804,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:805,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:807,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:810,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:812,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:812,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:812,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:813,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:813,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:816,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:817,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:818,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:819,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:820,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:822,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:825,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:825,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:825,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:826,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:826,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:827,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:827,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:827,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:828,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:828,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:831,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:836,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:841,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:848,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:849,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:851,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:851,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:851,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:852,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:852,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:857,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:858,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:860,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:860,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:860,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:861,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:861,1
    - Dst: MIFFile::UpdateExtents
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:862,1
    - Dst: GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:862,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:862,1
    - Dst: GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:863,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:863,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:868,1
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:870,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:872,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:873,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:876,1
    - Dst: IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:878,1
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:884,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 888
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 888
    functionName: MIFFile::PreParseFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - STARTS_WITH_CI
    - IsValidFeature
    - CSLDestroy
    - strchr
    - GetXTrans
    - Rewind
    - CSLTokenizeString2
    - GetLine
    - CSLCount
    - GetYTrans
    - MIFFile::UpdateExtents
    linkageType: ''
    returnType: void
    signature: void MIFFile::PreParseFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:903,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:908,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:910,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:920,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:921,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:924,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:925,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:929,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:934,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:936,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:941,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:944,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:949,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:951,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:956,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:960,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:967,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:973,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:975,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:975,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:977,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:979,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:980,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:982,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:982,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:983,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:983,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:988,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:993,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:993,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:996,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:996,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:999,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:999,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1002,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1002,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1005,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1006,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1007,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1007,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1010,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1010,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1013,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1013,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1016,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1016,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1019,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1019,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1023,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1023,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1024,1
    - Dst: WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1031,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 1034
    functionName: MIFFile::WriteMIFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - WriteLine
    - EQUAL
    - CPLString::c_str
    - CPLAssert
    - strlen
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - CPLFree
    - CPLString::Recode
    - GetEncoding
    linkageType: ''
    returnType: int
    signature: int MIFFile::WriteMIFHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::WriteMIFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1049,1
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1054,1
    - Dst: MIFFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1061,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1076,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1080,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1084,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1087,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1090,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1093,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1098,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1101,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1103,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1119
    functionName: MIFFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 3
    functionsReached:
    - MIFFile::Close
    - Dereference
    - MIFFile::WriteMIFHeader
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int MIFFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1131,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1136,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1142
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1142
    functionName: MIFFile::GetNextFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetLastLine
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig MIFFile::GetNextFeatureId(GIntBig nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1165,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1170,1
    - Dst: IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1172,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1176,1
    - Dst: GetTokenizedNextLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1176,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1188
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1188
    functionName: MIFFile::GotoFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetTokenizedNextLine
    - IsValidFeature
    - CSLDestroy
    - MIFFile::ResetReading
    - CPLAssert
    - GetLine
    linkageType: ''
    returnType: int
    signature: int MIFFile::GotoFeature(int nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1208,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1219,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1224,1
    - Dst: MIFFile::GotoFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1225,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1227,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1237,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1246,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1248,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1250,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1256,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1258,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1259,1
    - Dst: SaveLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1265,1
    - Dst: GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1267,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1269,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1271,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1272,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1273,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1275,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1278,1
    - Dst: TABFontPoint::TABFontPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1281,1
    - Dst: TABCustomPoint::TABCustomPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1284,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1287,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1288,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1297,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1302,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1305,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1306,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1308,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1310,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1312,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1314,1
    - Dst: TABArc::TABArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1316,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1318,1
    - Dst: TABText::TABText
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1320,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1322,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1323,1
    - Dst: TABRectangle::TABRectangle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1325,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1327,1
    - Dst: TABEllipse::TABEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1329,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1331,1
    - Dst: TABMultiPoint::TABMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1333,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1335,1
    - Dst: TABCollection::TABCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1337,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1342,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1350,1
    - Dst: ReadRecordFromMIDFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1359,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1361,1
    - Dst: ReadGeometryFromMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1372,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1374,1
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1384,1
    - Dst: cpl::down_cast<TABText *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1386,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1387,1
    - Dst: TABText*::GetTextString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1387,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1389,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1390,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1392,1
    - Dst: GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1392,1
    - Dst: GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1403,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1409,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 113
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1412
      start: 1204
    functionDepth: 3
    functionLinenumber: 1204
    functionLinenumberEnd: 1412
    functionName: MIFFile::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MIFFile::GotoFeature
    - TABText::TABText
    - TABMultiPoint::TABMultiPoint
    - TABArc::TABArc
    - CSLTokenizeStringComplex
    - TABPoint::TABPoint
    - CPLError
    - TABCustomPoint::TABCustomPoint
    - SaveLine
    - TABRectangle::TABRectangle
    - TABRegion::TABRegion
    - ReadRecordFromMIDFile
    - strlen
    - cpl::down_cast<TABText *>
    - CSLCount
    - TABText*::GetTextString
    - TABFeature::TABFeature
    - STARTS_WITH_CI
    - static_cast<int>
    - TABPolyline::TABPolyline
    - GetFieldCount
    - GetFeatureClass
    - CPLAssert
    - TABCollection::TABCollection
    - TABEllipse::TABEllipse
    - GetRawFieldRef
    - ReadGeometryFromMIFFile
    - GetLastLine
    - TABFeature*::SetField
    - CPL_INT64_FITS_ON_INT32
    - SetFID
    - CSLDestroy
    - TABFontPoint::TABFontPoint
    - EQUAL
    - GetLine
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *MIFFile::GetFeatureRef(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1430,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1440,1
    - Dst: MIFFile::SetFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1452,1
    - Dst: TABFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1452,1
    - Dst: MIFFile::WriteMIFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1454,1
    - Dst: TABFeature*::WriteGeometryToMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1466,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1468,1
    - Dst: TABFeature*::WriteRecordToMIDFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1475,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1477,1
    - Dst: TABFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - TABFeature*
    constantsTouched: []
    func_position:
      end: 1486
      start: 1424
    functionDepth: 3
    functionLinenumber: 1424
    functionLinenumberEnd: 1486
    functionName: MIFFile::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - TABFeature*::GetDefnRef
    - MIFFile::SetFeatureDefn
    - TABFeature*::WriteRecordToMIDFile
    - MIFFile::WriteMIFHeader
    - TABFeature*::WriteGeometryToMIFFile
    - CPLError
    - TABFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr MIFFile::CreateFeature(TABFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: MIFFile::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *MIFFile::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1527,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1537,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1550,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1561,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1564,1
    - Dst: MIFFile::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1586,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1586,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1587,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1588,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - poFeatureDefn
    - paeMapInfoNativeFieldTypes
    argTypes:
    - OGRFeatureDefn*
    - TABFieldType*
    constantsTouched: []
    func_position:
      end: 1592
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1592
    functionName: MIFFile::SetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - Dereference
    - MIFFile::AddFieldNative
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - CPLError
    - OGRFieldDefn*::GetWidth
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: "int MIFFile::SetFeatureDefn(\n    OGRFeatureDefn *poFeatureDefn,\n
      \   TABFieldType *paeMapInfoNativeFieldTypes /* =NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1619,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1630,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1651,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1652,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1654,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1655,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1671,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1671,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1672,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1678,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1678,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1679,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1685,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1685,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1686,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1692,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1692,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1693,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1699,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1699,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1700,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1701,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1707,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1707,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1714,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1714,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1720,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1721,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1727,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1727,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1733,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1734,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1741,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1741,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1747,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1748,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1754,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1754,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1755,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1756,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1759,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1767,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1768,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1768,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1768,1
    - Dst: static_cast<TABFieldType *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1774,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1774,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1775,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1776,1
    - Dst: static_cast<GBool *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1781,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1781,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1782,1
    - Dst: static_cast<GBool *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1783,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1783,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1784,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1785,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1786,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 81
    argCount: 6
    argNames:
    - pszName
    - eMapInfoType
    - nWidth
    - nPrecision
    - bIndexed
    - bUnique
    argTypes:
    - char*
    - TABFieldType
    - int
    - int
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 1789
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1789
    functionName: MIFFile::AddFieldNative
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 2
    functionsReached:
    - OGRFieldDefn::OGRFieldDefn
    - OGRFieldDefn*::SetSubType
    - Reference
    - CPLString
    - CPLError
    - static_cast<TABFieldType *>
    - static_cast<GBool *>
    - insert
    - CPLString::c_str
    - CPLRealloc
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - whileUnsealing
    - CPLFree
    - Seal
    - OGRFieldDefn*::SetWidth
    - max
    linkageType: ''
    returnType: int
    signature: "int MIFFile::AddFieldNative(const char *pszName, TABFieldType eMapInfoType,\n
      \                           int nWidth /*=0*/, int nPrecision /*=0*/,\n                            GBool
      bIndexed /*=FALSE*/, GBool bUnique /*=FALSE*/,\n                            int
      /*bApproxOK*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1806
      start: 1799
    functionDepth: 2
    functionLinenumber: 1799
    functionLinenumberEnd: 1806
    functionName: MIFFile::GetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType MIFFile::GetNativeFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1822
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1822
    functionName: MIFFile::SetFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: int
    signature: int MIFFile::SetFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1836
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1836
    functionName: MIFFile::IsFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: GBool
    signature: GBool MIFFile::IsFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1850
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1850
    functionName: MIFFile::IsFieldUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: GBool
    signature: GBool MIFFile::IsFieldUnique(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1859,1
    - Dst: MIFFile::SetMIFCoordSys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1865,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poSpatialRef
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1870
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1870
    functionName: MIFFile::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - MIFFile::SetMIFCoordSys
    linkageType: ''
    returnType: int
    signature: int MIFFile::SetSpatialRef(OGRSpatialReference *poSpatialRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1882,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1884,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1888,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1895,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1897,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1898,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1899,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1900,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1905,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1908,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1911,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1913,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - pszMIFCoordSys
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1917
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1917
    functionName: MIFFile::SetMIFCoordSys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - STARTS_WITH_CI
    - CPLStrdup
    - CSLDestroy
    - strstr
    - CSLCount
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int MIFFile::SetMIFCoordSys(const char *pszMIFCoordSys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1921,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1928,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1928,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1932,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1934,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pszCharset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1939
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1939
    functionName: MIFFile::SetCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 2
    functionsReached:
    - SetEncoding
    - CharsetToEncoding
    - IMapInfoFile::SetCharset
    - EQUAL
    - max
    linkageType: ''
    returnType: int
    signature: int MIFFile::SetCharset(const char *pszCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetStrictLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1943,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bStrictLaundering
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1948
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1948
    functionName: MIFFile::SetStrictLaundering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - max
    - IMapInfoFile::SetStrictLaundering
    linkageType: ''
    returnType: void
    signature: void MIFFile::SetStrictLaundering(bool bStrictLaundering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABCoordSys2SpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:1958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1954
    functionDepth: 3
    functionLinenumber: 1954
    functionLinenumberEnd: 1961
    functionName: MIFFile::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MITABCoordSys2SpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *MIFFile::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - dfX
    - dfY
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1987
      start: 1968
    functionDepth: 0
    functionLinenumber: 1968
    functionLinenumberEnd: 1987
    functionName: MIFFile::UpdateExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MIFFile::UpdateExtents(double dfX, double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2015
      start: 1999
    functionDepth: 1
    functionLinenumber: 1999
    functionLinenumberEnd: 2015
    functionName: MIFFile::SetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int MIFFile::SetBounds(double dXMin, double dYMin, double dXMax, double
      dYMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::PreParseFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - numPoints
    - numLines
    - numRegions
    - numTexts
    - bForce
    argTypes:
    - int
    - int
    - int
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 2049
      start: 2031
    functionDepth: 2
    functionLinenumber: 2031
    functionLinenumberEnd: 2049
    functionName: MIFFile::GetFeatureCountByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 1
    functionsReached:
    - MIFFile::PreParseFile
    linkageType: ''
    returnType: int
    signature: "int MIFFile::GetFeatureCountByType(int &numPoints, int &numLines,\n
      \                                  int &numRegions, int &numTexts, GBool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::PreParseFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    - bForce
    argTypes:
    - double
    - double
    - double
    - double
    - GBool
    constantsTouched: []
    func_position:
      end: 2085
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2085
    functionName: MIFFile::GetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MIFFile::PreParseFile
    linkageType: ''
    returnType: int
    signature: "int MIFFile::GetBounds(double &dXMin, double &dYMin, double &dXMax,\n
      \                      double &dYMax, GBool bForce /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIFFile::PreParseFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 2110
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2110
    functionName: MIFFile::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - MIFFile::PreParseFile
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr MIFFile::IGetExtent(int /* iGeomField */, OGREnvelope *psExtent,\n
      \                          bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2125,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2134,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2137,1
    - Dst: TestUtf8Capability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp:2138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2142
      start: 2116
    functionDepth: 0
    functionLinenumber: 2116
    functionLinenumberEnd: 2142
    functionName: MIFFile::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - TestUtf8Capability
    linkageType: ''
    returnType: int
    signature: int MIFFile::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:64,1
    - Dst: IMapInfoFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 197
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - IMapInfoFile
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class IMapInfoFile
    signature: class IMapInfoFile CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: TABFile::GetFileClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFileClass
    signature: TABFileClass GetFileClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: TABFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - IMapInfoFile::Open
    linkageType: ''
    returnType: int
    signature: "int Open(const char *pszFname, const char *pszAccess,\n                     GBool
      bTestOpenNoError = FALSE,\n                     const char *pszCharset = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFname
    - eAccess
    argTypes:
    - char*
    - TABAccess
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: TABFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - TABFile::Open
    linkageType: ''
    returnType: int
    signature: "int Open(const char *pszFname, TABAccess eAccess,\n                     GBool
      bTestOpenNoError = FALSE,\n                     const char *pszCharset = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: TABFile::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: char
    signature: char *GetTableName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: TABFile::IsFieldUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool IsFieldUnique(int /*nFieldId*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: TABFile::GetVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPI
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: TABFile::GetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - GetHeaderBlock
    linkageType: ''
    returnType: int
    signature: int GetProjInfo(TABProjInfo *poPI) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: TABFile::GetMAPFileRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPFile
    signature: TABMAPFile *GetMAPFileRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TABView::GetFileClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFileClass
    signature: TABFileClass GetFileClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: TABView::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - IMapInfoFile::Open
    linkageType: ''
    returnType: int
    signature: "int Open(const char *pszFname, const char *pszAccess,\n                     GBool
      bTestOpenNoError = FALSE,\n                     const char *pszCharset = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: TABView::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - GetFeatureDefn
    linkageType: ''
    returnType: char
    signature: char *GetTableName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::GetProjInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPI
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 510
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 510
    functionName: TABView::GetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - TABView::GetProjInfo
    linkageType: ''
    returnType: int
    signature: int GetProjInfo(TABProjInfo *poPI) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::SetProjInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPI
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: TABView::SetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - TABView::SetProjInfo
    linkageType: ''
    returnType: int
    signature: int SetProjInfo(TABProjInfo *poPI) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: TABView::SetMIFCoordSys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetMIFCoordSys(const char * /*pszMIFCoordSys*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: TABSeamless::GetFileClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFileClass
    signature: TABFileClass GetFileClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: TABSeamless::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 2
    functionsReached:
    - IMapInfoFile::Open
    linkageType: ''
    returnType: int
    signature: "int Open(const char *pszFname, const char *pszAccess,\n                     GBool
      bTestOpenNoError = FALSE,\n                     const char *pszCharset = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: TABSeamless::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: char
    signature: char *GetTableName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - double
    - double
    - double
    - double
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: TABSeamless::SetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SetBounds(CPL_UNUSED double dXMin, CPL_UNUSED double dYMin,\n
      \                         CPL_UNUSED double dXMax,\n                          CPL_UNUSED
      double dYMax) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - OGRFeatureDefn *poFeatureDefn
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: TABSeamless::SetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SetFeatureDefn(\n        CPL_UNUSED OGRFeatureDefn *poFeatureDefn,\n
      \       CPL_UNUSED TABFieldType *paeMapInfoNativeFieldTypes = nullptr) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - TABFieldType eMapInfoType
    argTypes:
    - CPL_UNUSED*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 652
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 652
    functionName: TABSeamless::AddFieldNative
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int AddFieldNative(CPL_UNUSED const char *pszName,\n                               CPL_UNUSED
      TABFieldType eMapInfoType,\n                               CPL_UNUSED int nWidth
      = 0,\n                               CPL_UNUSED int nPrecision = 0,\n                               CPL_UNUSED
      GBool bIndexed = FALSE,\n                               CPL_UNUSED GBool bUnique
      = FALSE,\n                               CPL_UNUSED int bApproxOK = TRUE) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - OGRSpatialReference *poSpatialRef
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: TABSeamless::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetSpatialRef(CPL_UNUSED OGRSpatialReference *poSpatialRef) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - TABFeature *poFeature
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: TABSeamless::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CreateFeature(CPL_UNUSED TABFeature *poFeature) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: TABSeamless::SetFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetFieldIndexed(CPL_UNUSED int nFieldId) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABSeamless::GetProjInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poPI
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 675
    functionName: TABSeamless::GetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - TABSeamless::GetProjInfo
    linkageType: ''
    returnType: int
    signature: int GetProjInfo(TABProjInfo *poPI) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - TABProjInfo *poPI
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: TABSeamless::SetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetProjInfo(CPL_UNUSED TABProjInfo *poPI) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: TABSeamless::SetMIFCoordSys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetMIFCoordSys(const char * /*pszMIFCoordSys*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: MIFFile::GetFileClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFileClass
    signature: TABFileClass GetFileClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 780
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 780
    functionName: MIFFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - IMapInfoFile::Open
    linkageType: ''
    returnType: int
    signature: "int Open(const char *pszFname, const char *pszAccess,\n                     GBool
      bTestOpenNoError = FALSE,\n                     const char *pszCharset = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: MIFFile::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: char
    signature: char *GetTableName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 823
    functionName: MIFFile::GetVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 849
    functionName: MIFFile::GetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetProjInfo(TABProjInfo * /*poPI*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: MIFFile::SetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetProjInfo(TABProjInfo * /*poPI*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 864
    functionName: MIFFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dump(FILE * /*fpOut*/ = nullptr) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: ITABFeaturePen::GetPenDefIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPenDefIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: ITABFeaturePen::GetPenDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABPenDef
    signature: TABPenDef *GetPenDefRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 986
    functionName: ITABFeaturePen::GetPenDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABPenDef
    signature: TABPenDef *GetPenDefRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: ITABFeaturePen::GetPenPattern
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte GetPenPattern() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1000
    functionName: ITABFeaturePen::GetPenColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetPenColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: ITABFeaturePen::SetPenPattern
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPenPattern(GByte val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1014
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1014
    functionName: ITABFeaturePen::SetPenColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPenColor(GInt32 clr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1036
    functionName: ITABFeatureBrush::GetBrushDefIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBrushDefIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1041
    functionName: ITABFeatureBrush::GetBrushDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABBrushDef
    signature: TABBrushDef *GetBrushDefRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    functionName: ITABFeatureBrush::GetBrushDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABBrushDef
    signature: TABBrushDef *GetBrushDefRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1051
    functionName: ITABFeatureBrush::GetBrushFGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetBrushFGColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1056
    functionName: ITABFeatureBrush::GetBrushBGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetBrushBGColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1061
    functionName: ITABFeatureBrush::GetBrushPattern
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte GetBrushPattern() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    functionName: ITABFeatureBrush::GetBrushTransparent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte GetBrushTransparent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1071
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1071
    functionName: ITABFeatureBrush::SetBrushFGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBrushFGColor(GInt32 clr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1076
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1076
    functionName: ITABFeatureBrush::SetBrushBGColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBrushBGColor(GInt32 clr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: ITABFeatureBrush::SetBrushPattern
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBrushPattern(GByte val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: ITABFeatureBrush::SetBrushTransparent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetBrushTransparent(GByte val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1108
    functionName: ITABFeatureFont::GetFontDefIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFontDefIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1113
    functionName: ITABFeatureFont::GetFontDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFontDef
    signature: TABFontDef *GetFontDefRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: ITABFeatureFont::GetFontDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFontDef
    signature: TABFontDef *GetFontDefRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: ITABFeatureFont::GetFontNameRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFontNameRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1141
    functionName: ~ITABFeatureSymbol()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ITABFeatureSymbol()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1146
    functionName: ITABFeatureSymbol::GetSymbolDefIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSymbolDefIndex() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1151
    functionName: ITABFeatureSymbol::GetSymbolDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABSymbolDef
    signature: TABSymbolDef *GetSymbolDefRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1156
    functionName: ITABFeatureSymbol::GetSymbolDefRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABSymbolDef
    signature: TABSymbolDef *GetSymbolDefRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1161
    functionName: ITABFeatureSymbol::GetSymbolNo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt16
    signature: GInt16 GetSymbolNo() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1166
    functionName: ITABFeatureSymbol::GetSymbolSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt16
    signature: GInt16 GetSymbolSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: ITABFeatureSymbol::GetSymbolColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 GetSymbolColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - GInt16
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: ITABFeatureSymbol::SetSymbolNo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSymbolNo(GInt16 val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - GInt16
    constantsTouched: []
    func_position:
      end: 1181
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1181
    functionName: ITABFeatureSymbol::SetSymbolSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSymbolSize(GInt16 val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1186
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1186
    functionName: ITABFeatureSymbol::SetSymbolColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSymbolColor(GInt32 clr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1250
    functionName: TABFeature::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1255
    functionName: TABFeature::GetMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType GetMapInfoType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1262
    functionName: TABFeature::ValidateMapInfoType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType ValidateMapInfoType(CPL_UNUSED TABMAPFile *poMapFile =
      nullptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1267
    functionName: TABFeature::IsRecordDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool IsRecordDeleted()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bDeleted
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 1272
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1272
    functionName: TABFeature::SetRecordDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRecordDeleted(GBool bDeleted)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1348
    functionName: TABPoint::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1403
    functionName: TABFontPoint::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1433
    functionName: TABFontPoint::GetFontStyleTABValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFontStyleTABValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nStyle
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1438
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1438
    functionName: TABFontPoint::SetFontStyleTABValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - static_cast<GInt16>
    linkageType: ''
    returnType: void
    signature: void SetFontStyleTABValue(int nStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1444
    functionName: TABFontPoint::GetSymbolAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetSymbolAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1478
    functionName: TABCustomPoint::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: TABCustomPoint::GetSymbolNameRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - GetFontNameRef
    linkageType: ''
    returnType: char
    signature: char *GetSymbolNameRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    functionName: TABCustomPoint::SetSymbolName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached:
    - SetFontName
    linkageType: ''
    returnType: void
    signature: void SetSymbolName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: TABCustomPoint::GetCustomSymbolStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte GetCustomSymbolStyle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nStyle
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 1517
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1517
    functionName: TABCustomPoint::SetCustomSymbolStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCustomSymbolStyle(GByte nStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1551
    functionName: TABPolyline::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1631
    functionName: TABRegion::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1695
    functionName: TABRectangle::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1761
    functionName: TABEllipse::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1824
    functionDepth: 0
    functionLinenumber: 1824
    functionLinenumberEnd: 1827
    functionName: TABArc::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1853
    functionName: TABArc::GetStartAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetStartAngle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1858
    functionName: TABArc::GetEndAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetEndAngle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1922
    functionName: TABText::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1989
    functionName: TABText::GetFontStyleTABValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFontStyleTABValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nStyle
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1994
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 1994
    functionName: TABText::SetFontStyleTABValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached:
    - static_cast<GInt16>
    linkageType: ''
    returnType: void
    signature: void SetFontStyleTABValue(int nStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2023
    functionDepth: 0
    functionLinenumber: 2023
    functionLinenumberEnd: 2026
    functionName: TABMultiPoint::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2107
    functionDepth: 0
    functionLinenumber: 2107
    functionLinenumberEnd: 2110
    functionName: TABCollection::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2136
    functionName: TABCollection::GetRegionRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABRegion
    signature: TABRegion *GetRegionRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2141
    functionName: TABCollection::GetPolylineRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABPolyline
    signature: TABPolyline *GetPolylineRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2146
    functionName: TABCollection::GetMultiPointRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMultiPoint
    signature: TABMultiPoint *GetMultiPointRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2175
    functionName: TABDebugFeature::GetFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFeatureClass
    signature: TABFeatureClass GetFeatureClass() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:62,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - poLine
    - numPoints
    - dCenterX
    - dCenterY
    - dXRadius
    - dYRadius
    - dStartAngle
    - dEndAngle
    argTypes:
    - OGRLineString*
    - int
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: TABGenerateArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 4
    functionsReached:
    - OGRLineString*::addPoint
    linkageType: ''
    returnType: int
    signature: "int TABGenerateArc(OGRLineString *poLine, int numPoints, double dCenterX,\n
      \                  double dCenterY, double dXRadius, double dYRadius,\n                   double
      dStartAngle, double dEndAngle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:83,1
    - Dst: OGRLineString*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:83,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:85,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:85,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poRing
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: TABCloseRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 2
    functionsReached:
    - OGRLineString*::getX
    - OGRLineString*::addPoint
    - OGRLineString*::get_IsClosed
    - OGRLineString*::getNumPoints
    - OGRLineString*::getY
    linkageType: ''
    returnType: int
    signature: int TABCloseRing(OGRLineString *poRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: TABAdjustCaseSensitiveFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TABAdjustCaseSensitiveFilename(char * /* pszFname */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:116,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:137,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:151,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:170,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:173,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:178,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:181,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:188,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:192,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:193,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 196
    functionName: TABAdjustCaseSensitiveFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIStatL
    - CSLDestroy
    - strncpy
    - EQUAL
    - CPLAssert
    - strlen
    - strcpy
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool TABAdjustCaseSensitiveFilename(char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:218,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:227,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:228,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:228,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:231,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:240,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:241,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:241,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:244,1
    - Dst: TABAdjustCaseSensitiveFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 252
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 252
    functionName: TABAdjustFilenameExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<char>
    - VSIStatL
    - static_cast<unsigned char>
    - CPLToupper
    - CPLTolower
    - TABAdjustCaseSensitiveFilename
    linkageType: ''
    returnType: GBool
    signature: GBool TABAdjustFilenameExtension(char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: TABGetBasename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TABGetBasename(const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:298,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:300,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:306,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:309,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: TAB_CSLLoad
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - CPLStringList::AddString
    - VSIFOpenL
    - CPLStringList::StealList
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **TAB_CSLLoad(const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:331,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:347,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:348,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pszString
    - bSrcIsConst
    argTypes:
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 378
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 378
    functionName: TABUnEscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char *>
    - CPLMalloc
    - strlen
    - strstr
    linkageType: ''
    returnType: char
    signature: char *TABUnEscapeString(char *pszString, GBool bSrcIsConst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 432
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 432
    functionName: TABEscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *TABEscapeString(char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:453,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:454,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:490,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:513,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:514,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 30
    argCount: 3
    argNames:
    - pszSrcName
    - pszEncoding
    - bStrictLaundering
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 521
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 521
    functionName: TABCleanFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GByte>
    - static_cast<CPLErrorNum>
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *TABCleanFieldName(const char *pszSrcName, const char *pszEncoding,\n
      \                       bool bStrictLaundering)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:529,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - nVal
    - nAdd
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 540
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 540
    functionName: TABSaturatedAdd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 3
    functionsReached:
    - simple_max
    - simple_min
    linkageType: ''
    returnType: void
    signature: void TABSaturatedAdd(GInt32 &nVal, GInt32 nAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:548,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 555
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 555
    functionName: TABInt16Diff
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_utils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<GInt16>
    linkageType: ''
    returnType: GInt16
    signature: GInt16 TABInt16Diff(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: MIDDATAFile::MIDDATAFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::MIDDATAFile(const char *pszEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: MIDDATAFile::~MIDDATAFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - MIDDATAFile::Close
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::~MIDDATAFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: MIDDATAFile::SaveLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::SaveLine(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: MIDDATAFile::GetSavedLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *MIDDATAFile::GetSavedLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:72,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:77,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:88,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:89,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:93,1
    - Dst: MIDDATAFile::SetEof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - pszFname
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 100
    functionName: MIDDATAFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - VSIFOpenL
    - MIDDATAFile::SetEof
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int MIDDATAFile::Open(const char *pszFname, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:109,1
    - Dst: MIDDATAFile::SetEof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: MIDDATAFile::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - VSIRewindL
    - MIDDATAFile::SetEof
    linkageType: ''
    returnType: int
    signature: int MIDDATAFile::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:121,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:125,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: MIDDATAFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 1
    functionsReached:
    - CPLReadLineL
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int MIDDATAFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:137,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:147,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:150,1
    - Dst: MIDDATAFile::SetEof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:156,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:157,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 174
    functionName: MIDDATAFile::GetLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - CPLGetLastErrorMsg
    - CPLDebug
    - CPLAssert
    - strstr
    - MIDDATAFile::SetEof
    - CPLError
    - clear
    linkageType: ''
    returnType: char
    signature: char *MIDDATAFile::GetLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile::GetEof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:179,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:186,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:186,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:188,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: MIDDATAFile::GetLastLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - c_str
    - MIDDATAFile::GetEof
    - CPLDebug
    linkageType: ''
    returnType: char
    signature: char *MIDDATAFile::GetLastLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:209,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:212,1
    - Dst: MIDDATAFile::SetEof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: MIDDATAFile::GetTokenizedNextLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLGetLastErrorMsg
    - strstr
    - MIDDATAFile::SetEof
    linkageType: ''
    returnType: char
    signature: char **MIDDATAFile::GetTokenizedNextLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:229,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:231,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:232,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:232,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:232,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:233,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: MIDDATAFile::WriteLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - CPLString::c_str
    - CPLString::size
    - CPLAssert
    - VSIFWriteL
    - CPLString::vPrintf
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::WriteLine(const char *pszFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfXMul
    - dfYMul
    - dfXTran
    - dfYTran
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: MIDDATAFile::SetTranslation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MIDDATAFile::SetTranslation(double dfXMul, double dfYMul, double
      dfXTran,\n                                 double dfYTran)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfX
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: MIDDATAFile::GetXTrans
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MIDDATAFile::GetXTrans(double dfX)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfY
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: MIDDATAFile::GetYTrans
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MIDDATAFile::GetYTrans(double dfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:264,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:270,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:270,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:271,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:271,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:274,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:274,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:276,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:278,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp:282,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 11
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: MIDDATAFile::IsValidFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - EQUAL
    - CSLDestroy
    linkageType: ''
    returnType: GBool
    signature: GBool MIDDATAFile::IsValidFeature(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: MIDDATAFile::GetEof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool MIDDATAFile::GetEof()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: '&MIDDATAFile::GetEncoding() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &MIDDATAFile::GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osEncoding
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: MIDDATAFile::SetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::SetEncoding(const CPLString &osEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bEof
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: MIDDATAFile::SetEof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_middatafile.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MIDDATAFile::SetEof(GBool bEof)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:67,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:75,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:76,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:82,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:84,1
    - Dst: GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:90,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:91,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:96,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:98,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:100,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:101,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:107,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:109,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:110,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:111,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:117,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:119,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:121,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:122,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:129,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:132,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:139,1
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:146,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:148,1
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:148,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:150,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:154,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 161
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 161
    functionName: TABFeature::ReadRecordFromMIDFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - SetField
    - static_cast<float>
    - CSLAddString
    - CSLDestroy
    - auto::GetType
    - GetFieldDefnRef
    - auto::GetSubType
    - strlen
    - MIDDATAFile*::GetEncoding
    - CPLError
    - CSLCount
    - CPLString::Recode
    linkageType: ''
    returnType: int
    signature: int TABFeature::ReadRecordFromMIDFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:173,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:195,1
    - Dst: GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:196,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:198,1
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:204,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:206,1
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:206,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:234,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:235,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:241,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:247,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:250,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:251,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:253,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:258,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:264,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:266,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:269,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:274,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:280,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:282,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:284,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:285,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:287,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:293,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:295,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:295,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:299,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:299,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:304,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:304,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:308,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 311
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 311
    functionName: TABFeature::WriteRecordToMIDFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - OGR_GET_MS
    - static_cast<int>
    - GetFieldAsInteger
    - GetFieldDefnRef
    - GetFieldAsDateTime
    - MIDDATAFile*::WriteLine
    - OGRFieldDefn*::GetType
    - CPLAssert
    - MIDDATAFile*::GetEncoding
    - snprintf
    - OGRFieldDefn*::GetSubType
    - GetFieldAsString
    - CPLFree
    - CPLString::Recode
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: int
    signature: int TABFeature::WriteRecordToMIDFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:335,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 340
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 340
    functionName: TABFeature::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - MIDDATAFile*::IsValidFeature
    - MIDDATAFile*::GetLine
    linkageType: ''
    returnType: int
    signature: int TABFeature::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: TABFeature::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - MIDDATAFile*::WriteLine
    linkageType: ''
    returnType: int
    signature: int TABFeature::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:373,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:375,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:382,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:388,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:389,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:390,1
    - Dst: SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:392,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:392,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:392,1
    - Dst: SetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:393,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:393,1
    - Dst: SetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:394,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:394,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:394,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:397,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:403,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:405,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:408,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:410,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 415
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 415
    functionName: TABPoint::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - SetGeometryDirectly
    - atoi
    - SetMBR
    - MIDDATAFile*::IsValidFeature
    - CSLDestroy
    - MIDDATAFile*::GetLine
    - static_cast<GInt16>
    - EQUAL
    - OGRPoint::OGRPoint
    - CSLTokenizeStringComplex
    - CSLCount
    - SetSymbolNo
    - SetSymbolColor
    - SetSymbolSize
    linkageType: ''
    returnType: int
    signature: int TABPoint::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:425,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:427,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:427,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:428,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:431,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:436,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:436,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:436,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:437,1
    - Dst: GetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:437,1
    - Dst: GetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:437,1
    - Dst: GetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 441
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 441
    functionName: TABPoint::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetSymbolColor
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - GetSymbolSize
    - GetSymbolNo
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABPoint::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:451,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:453,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:460,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:463,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:463,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:465,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:467,1
    - Dst: SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:471,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:471,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:471,1
    - Dst: SetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:472,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:472,1
    - Dst: SetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:473,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:473,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:473,1
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:474,1
    - Dst: TABFontPoint::SetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:475,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:475,1
    - Dst: TABFontPoint::SetSymbolAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:476,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:476,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:478,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:480,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:482,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:484,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:489,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 493
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 493
    functionName: TABFontPoint::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - SetGeometryDirectly
    - TABFontPoint::SetFontStyleMIFValue
    - atoi
    - SetMBR
    - MIDDATAFile*::IsValidFeature
    - CSLDestroy
    - TABFontPoint::SetSymbolAngle
    - MIDDATAFile*::GetLine
    - MIDDATAFile*::GetLastLine
    - static_cast<GInt16>
    - OGRPoint::OGRPoint
    - CSLTokenizeStringComplex
    - SetFontName
    - CSLCount
    - SetSymbolNo
    - SetSymbolColor
    - SetSymbolSize
    linkageType: ''
    returnType: int
    signature: int TABFontPoint::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:503,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:505,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:505,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:509,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:514,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:514,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:514,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:515,1
    - Dst: GetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:515,1
    - Dst: GetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:516,1
    - Dst: GetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:516,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:516,1
    - Dst: TABFontPoint::GetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:517,1
    - Dst: TABFontPoint::GetSymbolAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 520
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 520
    functionName: TABFontPoint::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetFontNameRef
    - GetSymbolColor
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - GetSymbolSize
    - GetSymbolNo
    - TABFontPoint::GetSymbolAngle
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - TABFontPoint::GetFontStyleMIFValue
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABFontPoint::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:530,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:532,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:539,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:542,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:542,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:543,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:546,1
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:550,1
    - Dst: SetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:551,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:551,1
    - Dst: SetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:552,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:552,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:552,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:553,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:553,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:555,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:557,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:559,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:561,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:566,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 571
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 571
    functionName: TABCustomPoint::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - SetGeometryDirectly
    - atoi
    - SetMBR
    - MIDDATAFile*::IsValidFeature
    - CSLDestroy
    - MIDDATAFile*::GetLine
    - MIDDATAFile*::GetLastLine
    - static_cast<GInt16>
    - OGRPoint::OGRPoint
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - SetFontName
    - CSLCount
    - SetSymbolColor
    - SetSymbolSize
    linkageType: ''
    returnType: int
    signature: int TABCustomPoint::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:581,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:583,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:583,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:587,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:592,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:592,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:592,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:593,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:593,1
    - Dst: GetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:594,1
    - Dst: GetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 597
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 597
    functionName: TABCustomPoint::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetFontNameRef
    - GetSymbolColor
    - OGRPoint*::getX
    - CPLError
    - OGRPoint*::getY
    - GetSymbolSize
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABCustomPoint::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:607,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:609,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:621,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:623,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:625,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:629,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:630,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:631,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:631,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:631,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:632,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:632,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:633,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:633,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:633,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:634,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:634,1
    - Dst: OGRLineString*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:635,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:636,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:637,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:639,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:641,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:645,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:648,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:651,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:655,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:658,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:661,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:662,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:665,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:668,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:673,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:678,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:681,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:682,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:687,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:692,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:699,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:704,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:708,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:711,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:715,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:720,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:723,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:729,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:730,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:734,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:741,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:742,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:746,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:750,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:751,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:751,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:753,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:755,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:760,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:760,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:760,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:761,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:761,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:763,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:765,1
    - Dst: OGRMultiLineString*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:768,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:769,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:771,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:780,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:784,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:787,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:793,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:794,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:797,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:804,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:805,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:808,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:812,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:813,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:813,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:816,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:818,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:822,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:822,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:822,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:823,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:823,1
    - Dst: OGRLineString*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:825,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:826,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:827,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:832,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:835,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:836,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:838,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:840,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:842,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:845,1
    - Dst: SetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:847,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:847,1
    - Dst: SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:848,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:848,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:848,1
    - Dst: SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:849,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:849,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:852,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:857,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 175
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 860
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 860
    functionName: TABPolyline::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - MIDDATAFile*::GetXTrans
    - OGRLineString*::getNumPoints
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - CPLError
    - SetPenWidthMIF
    - SetPenColor
    - MIDDATAFile*::GetLine
    - CSLTokenizeString2
    - CSLCount
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - CPLAtof
    - STARTS_WITH_CI
    - OGRLineString*::setNumPoints
    - SetPenPattern
    - CPLAssert
    - MIDDATAFile*::IsValidFeature
    - OGRMultiLineString*::addGeometryDirectly
    - OGRLineString*::getEnvelope
    - SetMBR
    - CSLDestroy
    - MIDDATAFile*::GetYTrans
    - OGRMultiLineString*::getEnvelope
    - SetGeometryDirectly
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: int
    signature: int TABPolyline::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:874,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:875,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:875,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:880,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:881,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:884,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:884,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:885,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:885,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:885,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:890,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:893,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:893,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:894,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:899,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:899,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:905,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:906,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:908,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:912,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:914,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:914,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:916,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:917,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:919,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:922,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:922,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:923,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:928,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:935,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:939,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:940,1
    - Dst: GetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:940,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:940,1
    - Dst: GetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:941,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:943,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 946
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 946
    functionName: TABPolyline::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRLineString*::getX
    - GetPenPattern
    - GetPenWidthMIF
    - OGRMultiLineString*::getNumGeometries
    - OGRMultiLineString*::getGeometryRef
    - GetGeometryRef
    - OGRLineString*::getNumPoints
    - MIDDATAFile*::WriteLine
    - OGRLineString*::getY
    - GetPenColor
    - CPLError
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABPolyline::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:965,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:965,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:968,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:973,1
    - Dst: static_cast<OGRPolygon **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:985,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:986,1
    - Dst: static_cast<OGRPolygon **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:998,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:998,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1005,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1013,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1015,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1017,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1021,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1027,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1031,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1038,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1039,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1043,1
    - Dst: auto::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1050,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1051,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1055,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1061,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1061,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1062,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1066,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1072,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1073,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1076,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1078,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1078,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1084,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1091,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1091,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1092,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1097,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1104,1
    - Dst: std::unique_ptr::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1109,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1110,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1110,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1112,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1115,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1116,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1118,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1120,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1122,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1125,1
    - Dst: SetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1127,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1127,1
    - Dst: SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1128,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1128,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1128,1
    - Dst: SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1129,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1129,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1132,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1134,1
    - Dst: SetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1136,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1136,1
    - Dst: SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1137,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1137,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1137,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1139,1
    - Dst: SetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1140,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1140,1
    - Dst: SetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1142,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1145,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1147,1
    - Dst: TABRegion::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1149,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1149,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1149,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1150,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1150,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1154,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1158
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 1158
    functionName: TABRegion::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - SetBrushBGColor
    - CPLStringList::Clear
    - MIDDATAFile*::GetXTrans
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - CPLError
    - OGRPolygon::OGRPolygon
    - SetBrushFGColor
    - SetBrushPattern
    - static_cast<OGRPolygon **>
    - auto::setPoint
    - SetPenWidthMIF
    - std::unique_ptr::release
    - SetPenColor
    - MIDDATAFile*::GetLine
    - SetBrushTransparent
    - CSLTokenizeString2
    - std::unique_ptr::reset
    - CPLStringList::size
    - std::make_unique<OGRLinearRing>
    - CPLAtof
    - STARTS_WITH_CI
    - static_cast<int>
    - VSI_REALLOC_VERBOSE
    - std::unique_ptr::getEnvelope
    - SetPenPattern
    - OGRGeometryFactory::organizePolygons
    - MIDDATAFile*::IsValidFeature
    - auto::setNumPoints
    - TABRegion::SetCenter
    - auto::getNumPoints
    - auto::closeRings
    - addRingDirectly
    - auto::release
    - SetMBR
    - MIDDATAFile*::GetYTrans
    - MIDDATAFile*::GetLastLine
    - VSI_MALLOC2_VERBOSE
    - VSIFree
    - SetGeometryDirectly
    - reinterpret_cast<OGRGeometry **>
    linkageType: ''
    returnType: int
    signature: int TABRegion::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1171,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1173,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1173,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1174,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1174,1
    - Dst: TABRegion::GetNumRings
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1184,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1186,1
    - Dst: TABRegion::GetRingRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1193,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1198,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1200,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1203,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1203,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1204,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1208,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1209,1
    - Dst: GetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1209,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1210,1
    - Dst: GetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1210,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1212,1
    - Dst: GetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1214,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1215,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1215,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1216,1
    - Dst: GetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1216,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1218,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1218,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1219,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1224,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1235
    functionName: TABRegion::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - GetBrushTransparent
    - GetPenPattern
    - GetPenWidthMIF
    - TABRegion::GetRingRef
    - GetBrushPattern
    - OGRLinearRing*::getY
    - GetBrushFGColor
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - OGRLinearRing*::getX
    - GetPenColor
    - GetBrushBGColor
    - TABRegion::GetNumRings
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABRegion::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1243,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1243,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1245,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1259,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1260,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1266,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1269,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1271,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1277,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1277,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1278,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1279,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1282,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1288,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1289,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1306,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1308,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1310,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1312,1
    - Dst: TABCloseRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1315,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1319,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1320,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1321,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1322,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1323,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1326,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1327,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1330,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1331,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1333,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1335,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1337,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1339,1
    - Dst: SetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1341,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1341,1
    - Dst: SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1342,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1342,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1342,1
    - Dst: SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1343,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1343,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1346,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1348,1
    - Dst: SetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1350,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1350,1
    - Dst: SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1351,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1351,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1351,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1353,1
    - Dst: SetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1354,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1354,1
    - Dst: SetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1356,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1360,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1364
    functionName: TABRectangle::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - SetBrushBGColor
    - CPLStringList::Clear
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - SetBrushFGColor
    - GetMBR
    - TABCloseRing
    - SetBrushPattern
    - SetPenWidthMIF
    - SetPenColor
    - MIDDATAFile*::GetLine
    - SetBrushTransparent
    - CSLTokenizeString2
    - CPLStringList::size
    - CPLAtof
    - STARTS_WITH_CI
    - OGRLinearRing::OGRLinearRing
    - SetPenPattern
    - TABGenerateArc
    - MIDDATAFile*::IsValidFeature
    - SetMBR
    - MIDDATAFile*::GetLastLine
    - OGRLinearRing*::addPoint
    - SetGeometryDirectly
    linkageType: ''
    returnType: int
    signature: int TABRectangle::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1374,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1376,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1376,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1377,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1380,1
    - Dst: OGRPolygon*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1390,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1394,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1400,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1404,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1405,1
    - Dst: GetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1405,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1405,1
    - Dst: GetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1406,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1408,1
    - Dst: GetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1410,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1411,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1411,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1412,1
    - Dst: GetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1412,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1414,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1414,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1418
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1418
    functionName: TABRectangle::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetBrushTransparent
    - GetPenPattern
    - GetPenWidthMIF
    - GetBrushPattern
    - GetBrushFGColor
    - GetGeometryRef
    - OGRGeometry*::toPolygon
    - MIDDATAFile*::WriteLine
    - GetPenColor
    - OGRPolygon*::getEnvelope
    - GetBrushBGColor
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABRectangle::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1426,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1426,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1428,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1437,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1444,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1445,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1447,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1452,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1453,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1459,1
    - Dst: TABCloseRing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1461,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1463,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1464,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1467,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1468,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1470,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1472,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1474,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1476,1
    - Dst: SetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1478,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1478,1
    - Dst: SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1479,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1479,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1479,1
    - Dst: SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1480,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1480,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1483,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1485,1
    - Dst: SetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1487,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1487,1
    - Dst: SetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1488,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1488,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1488,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1490,1
    - Dst: SetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1491,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1491,1
    - Dst: SetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1493,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1500
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1500
    functionName: TABEllipse::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - SetBrushBGColor
    - CPLStringList::Clear
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - SetBrushFGColor
    - TABCloseRing
    - SetBrushPattern
    - SetPenWidthMIF
    - SetPenColor
    - MIDDATAFile*::GetLine
    - std::abs
    - SetBrushTransparent
    - CSLTokenizeString2
    - CPLStringList::size
    - STARTS_WITH_CI
    - OGRLinearRing::OGRLinearRing
    - SetPenPattern
    - TABGenerateArc
    - MIDDATAFile*::IsValidFeature
    - SetMBR
    - MIDDATAFile*::GetLastLine
    - SetGeometryDirectly
    linkageType: ''
    returnType: int
    signature: int TABEllipse::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1508,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1509,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1509,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1510,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1510,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1514,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1519,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1522,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1523,1
    - Dst: GetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1523,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1523,1
    - Dst: GetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1524,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1526,1
    - Dst: GetBrushTransparent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1528,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1529,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1529,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1530,1
    - Dst: GetBrushBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1530,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1532,1
    - Dst: GetBrushPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1532,1
    - Dst: GetBrushFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1536
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1536
    functionName: TABEllipse::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetBrushTransparent
    - GetPenPattern
    - GetPenWidthMIF
    - GetBrushPattern
    - GetBrushFGColor
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - GetPenColor
    - GetBrushBGColor
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABEllipse::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1549,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1549,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1551,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1553,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1553,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1554,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1554,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1555,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1555,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1556,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1556,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1559,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1559,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1560,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1565,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1566,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1568,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1570,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1570,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1571,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1571,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1572,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1572,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1573,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1573,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1574,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1575,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1582,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1586,1
    - Dst: MIDDATAFile*::GetXMultiplier
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1603,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1611,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1612,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1619,1
    - Dst: TABGenerateArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1629,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1633,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1634,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1637,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1638,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1640,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1642,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1644,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1647,1
    - Dst: SetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1649,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1649,1
    - Dst: SetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1650,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1650,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1650,1
    - Dst: SetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1651,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1651,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1658
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1658
    functionName: TABArc::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - MIDDATAFile*::GetXMultiplier
    - CPLStringList::Clear
    - MIDDATAFile*::GetXTrans
    - CSLTokenizeStringComplex
    - static_cast<GByte>
    - CPLError
    - SetPenWidthMIF
    - SetPenColor
    - MIDDATAFile*::GetLine
    - std::abs
    - CSLTokenizeString2
    - CPLStringList::size
    - OGRLineString::OGRLineString
    - CPLAtof
    - STARTS_WITH_CI
    - SetPenPattern
    - TABGenerateArc
    - MIDDATAFile*::IsValidFeature
    - SetMBR
    - MIDDATAFile*::GetYTrans
    - MIDDATAFile*::GetLastLine
    - fabs
    - SetGeometryDirectly
    linkageType: ''
    returnType: int
    signature: int TABArc::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1672,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1676,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1678,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1679,1
    - Dst: GetPenWidthMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1679,1
    - Dst: GetPenPattern
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1679,1
    - Dst: GetPenColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1683
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1683
    functionName: TABArc::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - MIDDATAFile*::WriteLine
    - GetPenColor
    - GetPenPattern
    - GetPenWidthMIF
    linkageType: ''
    returnType: int
    signature: int TABArc::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1694,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1694,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1695,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1698,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1698,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1718,1
    - Dst: TABUnEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1733,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1735,1
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1736,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1740,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1746,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1746,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1749,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1770,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1771,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1774,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1775,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1777,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1779,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1781,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1783,1
    - Dst: SetFontName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1785,1
    - Dst: TABText::SetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1786,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1786,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1787,1
    - Dst: TABText::SetFontBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1789,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1789,1
    - Dst: TABText::SetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1790,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1790,1
    - Dst: TABText::SetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1793,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1793,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1798,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1800,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1802,1
    - Dst: TABText::SetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1804,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1806,1
    - Dst: TABText::SetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1808,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1812,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1814,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1816,1
    - Dst: TABText::SetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1818,1
    - Dst: TABText::SetTextLineEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1819,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1820,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1820,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1821,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1821,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1823,1
    - Dst: TABText::SetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1825,1
    - Dst: TABText::SetTextLineEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1826,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1827,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1827,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1828,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1828,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1833,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1835,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1837,1
    - Dst: TABText::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1839,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1841,1
    - Dst: TABText::SetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1843,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1847,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1849,1
    - Dst: TABText::SetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1851,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1851,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1854,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1856,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1858,1
    - Dst: TABText::SetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1860,1
    - Dst: TABText::SetTextLineEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1861,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1862,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1862,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1863,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1863,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1865,1
    - Dst: TABText::SetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1867,1
    - Dst: TABText::SetTextLineEndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1868,1
    - Dst: MIDDATAFile*::GetXTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1869,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1869,1
    - Dst: MIDDATAFile*::GetYTrans
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1870,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1870,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1910,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1912,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1931,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1932,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1941,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 132
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 1944
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1944
    functionName: TABText::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - TABText::SetTextSpacing
    - MIDDATAFile*::GetXTrans
    - CSLTokenizeStringComplex
    - GetMBR
    - TABText::SetTextJustification
    - TABText::SetTextLineType
    - MIDDATAFile*::GetLine
    - std::abs
    - OGRPoint::OGRPoint
    - CSLTokenizeString2
    - CPLStringList::size
    - TABText::SetTextLineEndPoint
    - CPLAtof
    - STARTS_WITH_CI
    - TABText::SetFontBGColor
    - TABText::SetFontStyleMIFValue
    - TABText::SetTextAngle
    - MIDDATAFile*::GetEncoding
    - MIDDATAFile*::IsValidFeature
    - CPLFree
    - SetMBR
    - MIDDATAFile*::GetYTrans
    - MIDDATAFile*::GetLastLine
    - TABUnEscapeString
    - TABText::SetFontFGColor
    - SetFontName
    - SetGeometryDirectly
    linkageType: ''
    returnType: int
    signature: int TABText::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile*::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1958,1
    - Dst: TABEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1960,1
    - Dst: TABEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1966,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1968,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1972,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1974,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1976,1
    - Dst: TABText::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1982,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1983,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1984,1
    - Dst: TABText::IsFontBGColorUsed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1986,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1987,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1987,1
    - Dst: TABText::GetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1988,1
    - Dst: TABText::GetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1988,1
    - Dst: TABText::GetFontBGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1989,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1991,1
    - Dst: GetFontNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1991,1
    - Dst: TABText::GetFontStyleMIFValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1992,1
    - Dst: TABText::GetFontFGColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1992,1
    - Dst: TABText::GetTextSpacing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1994,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:1997,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2000,1
    - Dst: TABText::GetTextJustification
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2007,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2010,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2013,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2020,1
    - Dst: TABText::GetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2020,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2021,1
    - Dst: TABText::GetTextAngle
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2021,1
    - Dst: TABText::GetTextLineType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2023,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2027,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2032,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2040
      start: 1949
    functionDepth: 2
    functionLinenumber: 1949
    functionLinenumberEnd: 2040
    functionName: TABText::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - GetMBR
    - GetFontNameRef
    - TABText::GetFontBGColor
    - TABEscapeString
    - TABText::GetTextSpacing
    - std::abs
    - MIDDATAFile*::WriteLine
    - TABText::IsFontBGColorUsed
    - TABText::GetTextAngle
    - MIDDATAFile*::GetEncoding
    - TABText::GetTextJustification
    - TABText::GetFontFGColor
    - TABText::GetFontStyleMIFValue
    - CPLFree
    - TABText::UpdateMBR
    - TABText::GetTextLineType
    linkageType: ''
    returnType: int
    signature: int TABText::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2050,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2052,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2057,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2059,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2066,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2066,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2067,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2069,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2076,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2077,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2079,1
    - Dst: TABMultiPoint::SetCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2085,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2087,1
    - Dst: OGRMultiPoint*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2091,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2092,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2094,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2097,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2102,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2103,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2105,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2106,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2106,1
    - Dst: SetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2108,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2108,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2108,1
    - Dst: SetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2109,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2109,1
    - Dst: SetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2110,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2110,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2110,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2116
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2116
    functionName: TABMultiPoint::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - atoi
    - OGRMultiPoint*::addGeometryDirectly
    - TABMultiPoint::SetCenter
    - CSLTokenizeStringComplex
    - SetSymbolColor
    - MIDDATAFile*::GetLine
    - OGRPoint::OGRPoint
    - OGRMultiPoint*::getEnvelope
    - CSLTokenizeString2
    - CSLCount
    - static_cast<GInt16>
    - CPLAssert
    - MIDDATAFile*::IsValidFeature
    - SetSymbolNo
    - SetMBR
    - CSLDestroy
    - EQUAL
    - SetGeometryDirectly
    - SetSymbolSize
    linkageType: ''
    returnType: int
    signature: int TABMultiPoint::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2126,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2127,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2127,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2129,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2132,1
    - Dst: OGRMultiPoint*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2139,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2140,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2140,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2142,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2143,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2143,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2148,1
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2154,1
    - Dst: GetSymbolNo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2154,1
    - Dst: GetSymbolColor
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2155,1
    - Dst: GetSymbolSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2159
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2159
    functionName: TABMultiPoint::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getGeometryRef
    - GetSymbolColor
    - OGRPoint*::getX
    - OGRPoint*::getY
    - CPLError
    - GetSymbolSize
    - OGRGeometry*::toMultiPoint
    - GetSymbolNo
    - GetGeometryRef
    - MIDDATAFile*::WriteLine
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: int TABMultiPoint::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2172,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2174,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2179,1
    - Dst: TABCollection::EmptyCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2194,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2205,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2209,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2212,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2212,1
    - Dst: TABCollection::ReadGeometryFromMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2213,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2215,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2222,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2223,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2226,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2226,1
    - Dst: TABCollection::ReadGeometryFromMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2229,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2236,1
    - Dst: GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2239,1
    - Dst: TABMultiPoint::TABMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2239,1
    - Dst: TABCollection::ReadGeometryFromMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2240,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2242,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2251,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2258,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2269,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2270,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2271,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2271,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2273,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2274,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2274,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2276,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2277,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2277,1
    - Dst: OGRGeometryCollection*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2280,1
    - Dst: TABCollection::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2281,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2283,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2286
      start: 2164
    functionDepth: 2
    functionLinenumber: 2164
    functionLinenumberEnd: 2286
    functionName: TABCollection::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 1
    functionsReached:
    - TABCollection::SetGeometryDirectly
    - STARTS_WITH_CI
    - CPLError
    - TABCollection::ReadGeometryFromMIFFile
    - OGRGeometryCollection::OGRGeometryCollection
    - SetMBR
    - OGRGeometryCollection*::getEnvelope
    - CSLDestroy
    - TABPolyline::TABPolyline
    - MIDDATAFile*::GetLine
    - TABMultiPoint::TABMultiPoint
    - MIDDATAFile*::GetLastLine
    - TABRegion::TABRegion
    - GetGeometryRef
    - GetDefnRef
    - OGRGeometryCollection*::addGeometry
    - CSLCount
    - TABCollection::EmptyCollection
    linkageType: ''
    returnType: int
    signature: int TABCollection::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIDDATAFile*::WriteLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2301,1
    - Dst: TABCollection::WriteGeometryToMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2305,1
    - Dst: TABCollection::WriteGeometryToMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2311,1
    - Dst: TABCollection::WriteGeometryToMIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2322
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2322
    functionName: TABCollection::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 1
    functionsReached:
    - TABCollection::WriteGeometryToMIFFile
    - MIDDATAFile*::WriteLine
    linkageType: ''
    returnType: int
    signature: int TABCollection::WriteGeometryToMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2330,1
    - Dst: MIDDATAFile*::GetLastLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2330,1
    - Dst: MIDDATAFile*::GetLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2333,1
    - Dst: MIDDATAFile*::IsValidFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp:2334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - MIDDATAFile*
    constantsTouched: []
    func_position:
      end: 2339
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2339
    functionName: TABDebugFeature::ReadGeometryFromMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached:
    - MIDDATAFile*::IsValidFeature
    - printf
    - MIDDATAFile*::GetLine
    - MIDDATAFile*::GetLastLine
    linkageType: ''
    returnType: int
    signature: int TABDebugFeature::ReadGeometryFromMIFFile(MIDDATAFile *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2347
    functionName: TABDebugFeature::WriteGeometryToMIFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_feature_mif.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABDebugFeature::WriteGeometryToMIFFile(MIDDATAFile * /* fp */)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: IMapInfoFile::IMapInfoFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMapInfoFile::IMapInfoFile(GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: IMapInfoFile::~IMapInfoFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void IMapInfoFile::~IMapInfoFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:79,1
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:80,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:81,1
    - Dst: IMapInfoFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:82,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pszFname
    - pszAccess
    - bTestOpenNoError
    - pszCharset
    argTypes:
    - char*
    - char*
    - GBool
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: IMapInfoFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 5
    functionsReached:
    - IMapInfoFile::Open
    - STARTS_WITH_CI
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int IMapInfoFile::Open(const char *pszFname, const char *pszAccess,\n
      \                      GBool bTestOpenNoError, const char *pszCharset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:111,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:111,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:114,1
    - Dst: MIFFile::MIFFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:121,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:132,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:133,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:135,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:137,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:137,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:139,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:141,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:143,1
    - Dst: TABView::TABView
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:148,1
    - Dst: TABSeamless::TABSeamless
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:150,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:152,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:155,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:157,1
    - Dst: IMapInfoFile*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:172,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 4
    argNames:
    - poDS
    - pszFname
    - bUpdate
    - bTestOpenNoError
    argTypes:
    - GDALDataset*
    - char*
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 177
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 177
    functionName: IMapInfoFile::SmartOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 1
    functionsReached:
    - CPLReadLineL
    - STARTS_WITH_CI
    - static_cast<int>
    - CPLError
    - static_cast<unsigned char>
    - TABView::TABView
    - VSIFCloseL
    - isspace
    - TABFile::TABFile
    - EQUAL
    - VSIFOpenL
    - TABSeamless::TABSeamless
    - strlen
    - TABAdjustFilenameExtension
    - MIFFile::MIFFile
    - IMapInfoFile*::Open
    - CPLFree
    linkageType: ''
    returnType: IMapInfoFile
    signature: "IMapInfoFile *IMapInfoFile::SmartOpen(GDALDataset *poDS, const char
      *pszFname,\n                                      GBool bUpdate,\n                                      GBool
      bTestOpenNoError /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:189,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:192,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:196,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:197,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:199,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:202,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:204,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:205,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 211
    functionName: IMapInfoFile::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - GetSpatialRef
    - Evaluate
    - FilterGeometry
    - GetFeatureRef
    - CPLAssert
    - GetNextFeatureId
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *IMapInfoFile::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:232,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:234,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:238,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:248,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:250,1
    - Dst: TABText::TABText
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:250,1
    - Dst: auto::SetLabelFromStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:251,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:256,1
    - Dst: ITABFeatureSymbol::GetSymbolFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:266,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:271,1
    - Dst: TABFontPoint::TABFontPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:271,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:276,1
    - Dst: TABCustomPoint::TABCustomPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:276,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:280,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:280,1
    - Dst: cpl::down_cast<TABPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:283,1
    - Dst: TABPoint*::SetSymbolFromStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:284,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:285,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:290,1
    - Dst: TABPoint::TABPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:290,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:301,1
    - Dst: TABRegion::TABRegion
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:301,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:302,1
    - Dst: cpl::down_cast<TABRegion *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:304,1
    - Dst: TABRegion*::SetPenFromStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:305,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:306,1
    - Dst: TABRegion*::SetBrushFromStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:308,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:309,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:319,1
    - Dst: TABPolyline::TABPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:319,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:320,1
    - Dst: cpl::down_cast<TABPolyline *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:323,1
    - Dst: TABPolyline*::SetPenFromStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:324,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:325,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:337,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:338,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:339,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:339,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:342,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:345,1
    - Dst: auto::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:346,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:346,1
    - Dst: IMapInfoFile::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:347,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:347,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:357,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:357,1
    - Dst: TABFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:365,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:365,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:367,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:369,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:369,1
    - Dst: TABFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:372,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:372,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 376
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 376
    functionName: IMapInfoFile::CreateTABFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - TABText::TABText
    - assert
    - auto::get
    - ITABFeatureSymbol::GetSymbolFeatureClass
    - TABPoint::TABPoint
    - CPLError
    - cpl::down_cast<TABRegion *>
    - OGRGeometry*::clone
    - TABCustomPoint::TABCustomPoint
    - OGRFeature*::GetDefnRef
    - TABFeature*::SetGeometryDirectly
    - cpl::down_cast<TABPoint *>
    - OGRGeometryCollection*::getNumGeometries
    - TABPoint*::SetSymbolFromStyleString
    - OGRFeature*::GetStyleString
    - TABPolyline*::SetPenFromStyleString
    - auto::SetGeometry
    - OGRFeature*::GetRawFieldRef
    - TABRegion::TABRegion
    - IMapInfoFile::ICreateFeature
    - TABRegion*::SetBrushFromStyleString
    - wkbFlatten
    - TABFeature::TABFeature
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRFeature*::GetFID
    - TABPolyline::TABPolyline
    - strstr
    - auto::SetLabelFromStyleString
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::Clone
    - cpl::down_cast<TABPolyline *>
    - std::unique_ptr<OGRFeature>
    - auto::SetFID
    - TABFeature*::SetField
    - OGRGeometryCollection*::getGeometryRef
    - TABFontPoint::TABFontPoint
    - TABRegion*::SetPenFromStyleString
    - TABFeature*::SetFID
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *IMapInfoFile::CreateTABFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::CreateTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:386,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:390,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:392,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: IMapInfoFile::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 1
    functionsReached:
    - TABFeature*::GetFID
    - IMapInfoFile::CreateTABFeature
    - CreateFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr IMapInfoFile::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:410,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 421
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 421
    functionName: IMapInfoFile::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - GetFeatureRef
    - CPLAssert
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *IMapInfoFile::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:438,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:440,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:452,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:458,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:460,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:477,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:480,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:480,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:481,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:485,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:491,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:497,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:503,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:509,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:513,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:517,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 4
    argNames:
    - poField
    - peTABType
    - pnWidth
    - pnPrecision
    argTypes:
    - OGRFieldDefn*
    - TABFieldType*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 530
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 530
    functionName: IMapInfoFile::GetTABType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetNameRef
    - CPLDebug
    - min
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - CPLError
    - OGRFieldDefn*::GetWidth
    linkageType: ''
    returnType: int
    signature: "int IMapInfoFile::GetTABType(const OGRFieldDefn *poField,\n                             TABFieldType
      *peTABType, int *pnWidth,\n                             int *pnPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::GetTABType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:545,1
    - Dst: AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:548,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 553
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 553
    functionName: IMapInfoFile::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - IMapInfoFile::GetTABType
    - OGRFieldDefn*::GetNameRef
    - AddFieldNative
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr IMapInfoFile::CreateField(const OGRFieldDefn *poField, int bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:565,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:571,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pszCharset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 576
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 576
    functionName: IMapInfoFile::SetCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - strlen
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: int IMapInfoFile::SetCharset(const char *pszCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: IMapInfoFile::GetCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *IMapInfoFile::GetCharset() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszCharset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: IMapInfoFile::CharsetToEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: char
    signature: char *IMapInfoFile::CharsetToEncoding(const char *pszCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:656,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 666
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 666
    functionName: IMapInfoFile::EncodingToCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: char
    signature: char *IMapInfoFile::EncodingToCharset(const char *pszEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:670,1
    - Dst: IMapInfoFile::GetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: IMapInfoFile::GetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - IMapInfoFile::GetCharset
    - IMapInfoFile::CharsetToEncoding
    linkageType: ''
    returnType: char
    signature: char *IMapInfoFile::GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:675,1
    - Dst: IMapInfoFile::EncodingToCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: IMapInfoFile::SetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - IMapInfoFile::EncodingToCharset
    - IMapInfoFile::SetCharset
    linkageType: ''
    returnType: void
    signature: void IMapInfoFile::SetEncoding(const char *pszEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bStrictLaundering
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: IMapInfoFile::SetStrictLaundering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMapInfoFile::SetStrictLaundering(bool bStrictLaundering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:686,1
    - Dst: CPLCanRecode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:691,1
    - Dst: IMapInfoFile::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 692
    functionName: IMapInfoFile::TestUtf8Capability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - IMapInfoFile::GetEncoding
    - CPLCanRecode
    - strlen
    linkageType: ''
    returnType: int
    signature: int IMapInfoFile::TestUtf8Capability() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:697,1
    - Dst: IMapInfoFile::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:697,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:698,1
    - Dst: IMapInfoFile::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:698,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:703,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:703,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:706,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:706,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:707,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:710,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:711,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:715,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:715,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:716,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:719,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:720,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:724,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:724,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:725,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:727,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:734,1
    - Dst: IMapInfoFile::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:734,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:735,1
    - Dst: IMapInfoFile::GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:735,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:737,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:737,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:739,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp:741,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 745
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 745
    functionName: IMapInfoFile::NormalizeFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_imapinfofile.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - strncpy
    - EQUAL
    - CPLString::c_str
    - CPLsnprintf
    - strlen
    - CPLString
    - CPLError
    - IMapInfoFile::GetEncoding
    - CPLString::Recode
    linkageType: ''
    returnType: CPLString
    signature: CPLString IMapInfoFile::NormalizeFieldName(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - eAccessMode
    - bHardBlockSize
    argTypes:
    - TABAccess
    - GBool
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: TABRawBinBlock::TABRawBinBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABRawBinBlock::TABRawBinBlock(TABAccess eAccessMode /*= TABRead*/,\n
      \                              GBool bHardBlockSize /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TABRawBinBlock::~TABRawBinBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABRawBinBlock::~TABRawBinBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:75,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:82,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:83,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:83,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:92,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:92,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:97,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:98,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:99,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:102,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:105,1
    - Dst: TABRawBinBlock::InitBlockFromData
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - fpSrc
    - nOffset
    - nSize
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 114
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 114
    functionName: TABRawBinBlock::ReadFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - TABRawBinBlock::InitBlockFromData
    - VSIFTellL
    - VSIFReadL
    - static_cast<GByte *>
    - CPLError
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::ReadFromFile(VSILFILE *fpSrc, int nOffset, int
      nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:139,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:154,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:162,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:163,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:163,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:171,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:195,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:196,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:198,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:208,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 213
    functionName: TABRawBinBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - static_cast<int>
    - VSIFSeekL
    - VSIFFlushL
    - VSIFTellL
    - VSIFWriteL
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:229,1
    - Dst: TABRawBinBlock::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:237,1
    - Dst: TABRawBinBlock::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:238,1
    - Dst: TABRawBinBlock::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:239,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:249,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - nNextBlockPtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 257
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 257
    functionName: TABRawBinBlock::CommitAsDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - TABRawBinBlock::WriteInt32
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - TABRawBinBlock::WriteInt16
    - CPLError
    - TABRawBinBlock::GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::CommitAsDeleted(GInt32 nNextBlockPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:295,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:302,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:303,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:306,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 322
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 322
    functionName: TABRawBinBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - CPLRealloc
    - static_cast<GByte *>
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int TABRawBinBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                     int nSizeUsed,\n                                      GBool
      bMakeCopy /* = TRUE */,\n                                      VSILFILE *fpSrc
      /* = NULL */,\n                                      int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:354,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:355,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:355,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:356,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:361,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:362,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 367
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 367
    functionName: TABRawBinBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - CPLRealloc
    - VSIFTellL
    - static_cast<GByte *>
    - memset
    linkageType: ''
    returnType: int
    signature: "int TABRawBinBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: TABRawBinBlock::GetBlockType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GetBlockType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:417,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - nOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 428
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 428
    functionName: TABRawBinBlock::GotoByteInBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - max
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GotoByteInBlock(int nOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: TABRawBinBlock::GotoByteRel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GotoByteRel(int nOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:478,1
    - Dst: TABRawBinBlock::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:491,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:501,1
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:502,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:531,1
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:533,1
    - Dst: TABRawBinBlock::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:535,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:550,1
    - Dst: TABRawBinBlock::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:551,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:562,1
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:564,1
    - Dst: TABRawBinBlock::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:575,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:582,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 41
    argCount: 3
    argNames:
    - nOffset
    - bForceReadFromFile
    - bOffsetIsEndOfData
    argTypes:
    - int
    - GBool
    - GBool
    constantsTouched: []
    func_position:
      end: 585
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 585
    functionName: TABRawBinBlock::GotoByteInFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::InitNewBlock
    - TABRawBinBlock::CommitToFile
    - TABRawBinBlock::ReadFromFile
    - max
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABRawBinBlock::GotoByteInFile(int nOffset,\n                                   GBool
      bForceReadFromFile /*=FALSE*/,\n                                   GBool bOffsetIsEndOfData
      /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: TABRawBinBlock::SetFirstBlockPtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRawBinBlock::SetFirstBlockPtr(int nOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: TABRawBinBlock::GetNumUnusedBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GetNumUnusedBytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: TABRawBinBlock::GetFirstUnusedByteOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GetFirstUnusedByteOffset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: TABRawBinBlock::GetCurAddress
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::GetCurAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:658,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:665,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - numBytes
    - pabyDstBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 678
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 678
    functionName: TABRawBinBlock::ReadBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - memcpy
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::ReadBytes(int numBytes, GByte *pabyDstBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: TABRawBinBlock::ReadByte
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    linkageType: ''
    returnType: GByte
    signature: GByte TABRawBinBlock::ReadByte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:701,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:701,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:704,1
    - Dst: CPL_SWAP16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 708
    functionName: TABRawBinBlock::ReadInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    - CPL_SWAP16
    - static_cast<GInt16>
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: GInt16
    signature: GInt16 TABRawBinBlock::ReadInt16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:714,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:714,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:717,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 721
    functionName: TABRawBinBlock::ReadInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GInt32>
    - TABRawBinBlock::ReadBytes
    - CPL_SWAP32
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABRawBinBlock::ReadInt32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:727,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:727,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 733
    functionName: TABRawBinBlock::ReadInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    - CPL_LSBPTR64
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: GInt64
    signature: GInt64 TABRawBinBlock::ReadInt64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:739,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:739,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 745
    functionName: TABRawBinBlock::ReadFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    - CPL_LSBPTR32
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: float
    signature: float TABRawBinBlock::ReadFloat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:751,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:751,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 758
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 758
    functionName: TABRawBinBlock::ReadDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::ReadBytes
    - CPL_SWAPDOUBLE
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: double
    signature: double TABRawBinBlock::ReadDouble()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:790,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:797,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:807,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - nBytesToWrite
    - pabySrcBuf
    argTypes:
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 817
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 817
    functionName: TABRawBinBlock::WriteBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - max
    - memcpy
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteBytes(int nBytesToWrite, const GByte *pabySrcBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - byValue
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: TABRawBinBlock::WriteByte
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::WriteBytes
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteByte(GByte byValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:838,1
    - Dst: CPL_SWAP16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:838,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:841,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n16Value
    argTypes:
    - GInt16
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: TABRawBinBlock::WriteInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached:
    - TABRawBinBlock::WriteBytes
    - reinterpret_cast<GByte *>
    - CPL_SWAP16
    - static_cast<GInt16>
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteInt16(GInt16 n16Value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:847,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:847,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:850,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n32Value
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 851
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 851
    functionName: TABRawBinBlock::WriteInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GInt32>
    - TABRawBinBlock::WriteBytes
    - CPL_SWAP32
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteInt32(GInt32 n32Value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:856,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:859,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n64Value
    argTypes:
    - GInt64
    constantsTouched: []
    func_position:
      end: 860
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 860
    functionName: TABRawBinBlock::WriteInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::WriteBytes
    - CPL_SWAP64PTR
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteInt64(GInt64 n64Value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:865,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:868,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fValue
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: TABRawBinBlock::WriteFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::WriteBytes
    - CPL_LSBPTR32
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteFloat(float fValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:874,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:877,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 878
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 878
    functionName: TABRawBinBlock::WriteDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::WriteBytes
    - CPL_SWAPDOUBLE
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteDouble(double dValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:898,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nBytesToWrite
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 902
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 902
    functionName: TABRawBinBlock::WriteZeros
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - TABRawBinBlock::WriteBytes
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WriteZeros(int nBytesToWrite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:920,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:920,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:921,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:925,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:925,1
    - Dst: TABRawBinBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:931,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:931,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nFieldSize
    - pszString
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 936
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 936
    functionName: TABRawBinBlock::WritePaddedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<GByte *>
    - TABRawBinBlock::WriteBytes
    - reinterpret_cast<const GByte *>
    - min
    - strlen
    linkageType: ''
    returnType: int
    signature: int TABRawBinBlock::WritePaddedString(int nFieldSize, const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:950,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:953,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:959,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:962,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:963,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:964,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:969,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:972,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 977
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 977
    functionName: TABRawBinBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - memcpy
    - fprintf
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: void TABRawBinBlock::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:990,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:993,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:996,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:998,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1011,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1016,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1019,1
    - Dst: isprint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1019,1
    - Dst: isprint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1020,1
    - Dst: isprint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1021,1
    - Dst: isprint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - nValue
    - nOffset
    - fpOut
    argTypes:
    - GInt32
    - int
    - FILE*
    constantsTouched: []
    func_position:
      end: 1023
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 1023
    functionName: TABRawBinBlock::DumpBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - isprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void TABRawBinBlock::DumpBytes(GInt32 nValue, int nOffset /*=0*/,\n
      \                              FILE *fpOut /*=NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1041,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1049,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1049,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1054,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1055,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1056,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1058,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1062,1
    - Dst: TABMAPHeaderBlock::TABMAPHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1075,1
    - Dst: TABMAPIndexBlock::TABMAPIndexBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1082,1
    - Dst: TABMAPObjectBlock::TABMAPObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1085,1
    - Dst: TABMAPCoordBlock::TABMAPCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1088,1
    - Dst: TABMAPToolBlock::TABMAPToolBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1091,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1095,1
    - Dst: TABRawBinBlock*::InitBlockFromData
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1103,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - fpSrc
    - nOffset
    - nSize
    - bHardBlockSize
    - eAccessMode
    argTypes:
    - VSILFILE*
    - int
    - int
    - GBool
    - TABAccess
    constantsTouched: []
    func_position:
      end: 1112
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1112
    functionName: TABCreateMAPBlockFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock::TABMAPObjectBlock
    - TABMAPCoordBlock::TABMAPCoordBlock
    - TABMAPToolBlock::TABMAPToolBlock
    - static_cast<unsigned int>
    - VSIFSeekL
    - TABRawBinBlock::TABRawBinBlock
    - TABMAPIndexBlock::TABMAPIndexBlock
    - VSIFReadL
    - static_cast<GByte *>
    - CPLError
    - CPLMalloc
    - CPLFree
    - TABMAPHeaderBlock::TABMAPHeaderBlock
    - TABRawBinBlock*::InitBlockFromData
    linkageType: ''
    returnType: TABRawBinBlock
    signature: "TABRawBinBlock *TABCreateMAPBlockFromFile(VSILFILE *fpSrc, int nOffset,\n
      \                                         int nSize,\n                                          GBool
      bHardBlockSize /*= TRUE */,\n                                          TABAccess
      eAccessMode /*= TABRead*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    functionName: TABBinBlockManager::TABBinBlockManager
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::TABBinBlockManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABBinBlockManager::Reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1138
    functionName: TABBinBlockManager::~TABBinBlockManager()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABBinBlockManager::Reset
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::~TABBinBlockManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nBlockSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1146
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1146
    functionName: TABBinBlockManager::SetBlockSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::SetBlockSize(int nBlockSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1155
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1155
    functionName: TABBinBlockManager::SetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::SetName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABBinBlockManager::GetFirstGarbageBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1167,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1171,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1183,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pszReason
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1192
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1192
    functionName: TABBinBlockManager::AllocNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - TABBinBlockManager::GetFirstGarbageBlock
    - CPLAssert
    - CPLDebug
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABBinBlockManager::AllocNewBlock(CPL_UNUSED const char *pszReason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1210
    functionName: TABBinBlockManager::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABBlockRef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1220,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nBlockPtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1231
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1231
    functionName: TABBinBlockManager::PushGarbageBlockAsFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - static_cast<TABBlockRef *>
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::PushGarbageBlockAsFirst(GInt32 nBlockPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TABBlockRef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1241,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nBlockPtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1252
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1252
    functionName: TABBinBlockManager::PushGarbageBlockAsLast
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - static_cast<TABBlockRef *>
    linkageType: ''
    returnType: void
    signature: void TABBinBlockManager::PushGarbageBlockAsLast(GInt32 nBlockPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1266
    functionName: TABBinBlockManager::GetFirstGarbageBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABBinBlockManager::GetFirstGarbageBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1292
    functionName: TABBinBlockManager::PopGarbageBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_rawbinblock.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABBinBlockManager::PopGarbageBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: TABView::TABView
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABView::TABView(GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: TABView::~TABView()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - TABView::Close
    linkageType: ''
    returnType: void
    signature: void TABView::~TABView()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: TABView::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABView::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: TABView::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::ResetReading
    linkageType: ''
    returnType: void
    signature: void TABView::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:106,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:117,1
    - Dst: TABView::OpenForRead
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:117,1
    - Dst: TABView::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:123,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:124,1
    - Dst: TABView::OpenForWrite
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:124,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - pszFname
    - eAccess
    - bTestOpenNoError
    - pszCharset
    argTypes:
    - char*
    - TABAccess
    - GBool
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 134
    functionName: TABView::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    - TABView::SetCharset
    - CPLError
    - TABView::OpenForRead
    - TABView::OpenForWrite
    linkageType: ''
    returnType: int
    signature: "int TABView::Open(const char *pszFname, TABAccess eAccess,\n                  GBool
      bTestOpenNoError /*= FALSE*/,\n                  const char *pszCharset /* =
      NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:154,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:162,1
    - Dst: TAB_CSLLoad
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:177,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:191,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:191,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:200,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:205,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:218,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:219,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:219,1
    - Dst: TABView::ParseTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:232,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:235,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:236,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:239,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:250,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:254,1
    - Dst: static_cast<TABFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:262,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:262,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:267,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:270,1
    - Dst: TABView::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:272,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:277,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:278,1
    - Dst: TABRelation::TABRelation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:287,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:289,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:290,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:290,1
    - Dst: Init
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:292,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:297,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:298,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:301,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 2
    argNames:
    - pszFname
    - bTestOpenNoError
    argTypes:
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 304
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 304
    functionName: TABView::OpenForRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - Init
    - TABView::Close
    - CPLError
    - CPLErrorReset
    - CPLStrdup
    - TABRelation::TABRelation
    - static_cast<unsigned char>
    - isspace
    - strlen
    - TABAdjustFilenameExtension
    - CSLCount
    - TABView::ParseTABFile
    - STARTS_WITH_CI
    - static_cast<int>
    - TABFile::TABFile
    - CPLAssert
    - CPLCalloc
    - CPLFree
    - static_cast<TABFile **>
    - TABView::Open
    - TAB_CSLLoad
    linkageType: ''
    returnType: int
    signature: "int TABView::OpenForRead(const char *pszFname,\n                         GBool
      bTestOpenNoError /*= FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:322,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:330,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:337,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:337,1
    - Dst: static_cast<TABFile **>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:362,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:362,1
    - Dst: CSLAppendPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:366,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:369,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:370,1
    - Dst: TABFile::TABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:373,1
    - Dst: TABView::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:375,1
    - Dst: GetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:376,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:379,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:380,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:381,1
    - Dst: TABRelation::TABRelation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:389,1
    - Dst: Init
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:391,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:396,1
    - Dst: TABView::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:401,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - pszFname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 405
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 405
    functionName: TABView::OpenForWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - CPLStrdup
    - TABRelation::TABRelation
    - Init
    - assert
    - TABFile::TABFile
    - GetCharset
    - TABView::Close
    - strlen
    - CSLAppendPrintf
    - TABAdjustFilenameExtension
    - CPLCalloc
    - CPLFree
    - static_cast<TABFile **>
    - TABView::Open
    linkageType: ''
    returnType: int
    signature: int TABView::OpenForWrite(const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:430,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:435,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:442,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:443,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:448,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:450,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:451,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:453,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:455,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:458,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:458,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:459,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:463,1
    - Dst: CSLAppendPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:466,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:469,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:469,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:473,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:482,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:491,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:492,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:503,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:506,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:510,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:520,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:531,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:534,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:536,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:538,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:541,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:551,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 2
    argNames:
    - pszDatasetPath
    - bTestOpenNoError
    argTypes:
    - char*
    - GBool
    constantsTouched: []
    func_position:
      end: 558
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 558
    functionName: TABView::ParseTABFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - CSLAddString
    - CSLDestroy
    - EQUAL
    - CSLTokenizeStringComplex
    - CSLAppendPrintf
    - CPLError
    - CSLCount
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int TABView::ParseTABFile(const char *pszDatasetPath,\n                          GBool
      bTestOpenNoError /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:570,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:571,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:572,1
    - Dst: TABView::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:572,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:578,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:582,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:583,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:585,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:586,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:587,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:588,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:589,1
    - Dst: TABView::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:591,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:592,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:594,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:596,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:596,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:598,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:598,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:600,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:602,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:603,1
    - Dst: GetRelFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:604,1
    - Dst: GetMainFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:605,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:607,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:611,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:612,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:613,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:615,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:620,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:621,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 625
    functionName: TABView::WriteTABFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - VSIFPrintfL
    - VSIFCloseL
    - OGRFieldDefn*::GetNameRef
    - GetRelFieldName
    - GetMainFieldName
    - TABView::GetLayerDefn
    - VSIFOpenL
    - CPLAssert
    - CPLError
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: int TABView::WriteTABFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:638,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:645,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:657,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:659,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:660,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:662,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:662,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:663,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:664,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:666,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:670,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:673,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:676,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:678,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:681,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:684,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:686,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 634
    functionDepth: 3
    functionLinenumber: 634
    functionLinenumberEnd: 698
    functionName: TABView::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 3
    functionsReached:
    - VSIUnlink
    - CSLDestroy
    - TABView::WriteTABFile
    - snprintf
    - strlen
    - TABAdjustFilenameExtension
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int TABView::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:721,1
    - Dst: TABView::SetQuickSpatialIndexMode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - bQuickSpatialIndexMode
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: TABView::SetQuickSpatialIndexMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABView::SetQuickSpatialIndexMode
    linkageType: ''
    returnType: int
    signature: int TABView::SetQuickSpatialIndexMode(GBool bQuickSpatialIndexMode
      /*=TRUE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::GetNextFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: TABView::GetNextFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::GetNextFeatureId
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABView::GetNextFeatureId(GIntBig nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:776,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:781,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:790,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:790,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 797
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 797
    functionName: TABView::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPL_INT64_FITS_ON_INT32
    - SetFID
    - CPLError
    - GetFeature
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABView::GetFeatureRef(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:813,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:820,1
    - Dst: CreateRelFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:831,1
    - Dst: TABFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - TABFeature*
    constantsTouched: []
    func_position:
      end: 843
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 843
    functionName: TABView::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CreateRelFields
    - TABFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABView::CreateFeature(TABFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 862
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 862
    functionName: TABView::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - GetFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *TABView::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::SetFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poFeatureDefn
    - TABFieldType *paeMapInfoNativeFieldTypes
    argTypes:
    - OGRFeatureDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 880
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 880
    functionName: TABView::SetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::SetFeatureDefn
    linkageType: ''
    returnType: int
    signature: "int TABView::SetFeatureDefn(\n    OGRFeatureDefn *poFeatureDefn,\n
      \   CPL_UNUSED TABFieldType *paeMapInfoNativeFieldTypes /* =NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 898
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 898
    functionName: TABView::GetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::GetNativeFieldType
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType TABView::GetNativeFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - pszName
    - eMapInfoType
    - nWidth
    - nPrecision
    - bIndexed
    - bUnique
    - bApproxOK
    argTypes:
    - char*
    - TABFieldType
    - int
    - int
    - GBool
    - GBool
    - int
    constantsTouched: []
    func_position:
      end: 926
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 926
    functionName: TABView::AddFieldNative
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::AddFieldNative
    linkageType: ''
    returnType: int
    signature: "int TABView::AddFieldNative(const char *pszName, TABFieldType eMapInfoType,\n
      \                           int nWidth /*=0*/, int nPrecision /*=0*/,\n                            GBool
      bIndexed /*=FALSE*/, GBool bUnique /*=FALSE*/,\n                            int
      bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: TABView::SetFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::SetFieldIndexed
    linkageType: ''
    returnType: int
    signature: int TABView::SetFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:948,1
    - Dst: TABView::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszCharset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: TABView::SetCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 2
    functionsReached:
    - TABView::SetCharset
    - IMapInfoFile::SetCharset
    linkageType: ''
    returnType: int
    signature: int TABView::SetCharset(const char *pszCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::IsFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: TABView::IsFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::IsFieldIndexed
    linkageType: ''
    returnType: GBool
    signature: GBool TABView::IsFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::IsFieldUnique
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 985
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 985
    functionName: TABView::IsFieldUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::IsFieldUnique
    linkageType: ''
    returnType: GBool
    signature: GBool TABView::IsFieldUnique(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1002,1
    - Dst: TABView::GetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    - bForce
    argTypes:
    - double
    - double
    - double
    - double
    - GBool
    constantsTouched: []
    func_position:
      end: 1010
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1010
    functionName: TABView::GetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABView::GetBounds
    linkageType: ''
    returnType: int
    signature: "int TABView::GetBounds(double &dXMin, double &dYMin, double &dXMax,\n
      \                      double &dYMax, GBool bForce /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1026,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: TABView::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABView::IGetExtent(int iGeomField, OGREnvelope *psExtent, bool
      bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABView::GetFeatureCountByType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - numPoints
    - numLines
    - numRegions
    - numTexts
    - bForce
    argTypes:
    - int
    - int
    - int
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 1060
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1060
    functionName: TABView::GetFeatureCountByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABView::GetFeatureCountByType
    linkageType: ''
    returnType: int
    signature: "int TABView::GetFeatureCountByType(int &numPoints, int &numLines,\n
      \                                  int &numRegions, int &numTexts,\n                                   GBool
      bForce /*= TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1078,1
    - Dst: TABView::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1084
    functionName: TABView::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABView::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *TABView::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1093,1
    - Dst: TABView::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poSpatialRef
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1099
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1099
    functionName: TABView::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABView::SetSpatialRef
    linkageType: ''
    returnType: int
    signature: int TABView::SetSpatialRef(OGRSpatialReference *poSpatialRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1108,1
    - Dst: TABView::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1115
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1115
    functionName: TABView::SetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABView::SetBounds
    linkageType: ''
    returnType: int
    signature: int TABView::SetBounds(double dXMin, double dYMin, double dXMax, double
      dYMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1127,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1130,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1136,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1139,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1142,1
    - Dst: TestUtf8Capability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1147
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1147
    functionName: TABView::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - TestUtf8Capability
    linkageType: ''
    returnType: int
    signature: int TABView::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1161,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1165,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1169,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1170,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1174
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1174
    functionName: TABView::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABView::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: TABRelation::TABRelation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABRelation::TABRelation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRelation::ResetAllMembers
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: TABRelation::~TABRelation()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - TABRelation::ResetAllMembers
    linkageType: ''
    returnType: void
    signature: void TABRelation::~TABRelation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1214,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1219,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1229,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1231,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1240
    functionName: TABRelation::ResetAllMembers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - Dereference
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABRelation::ResetAllMembers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1265,1
    - Dst: TABFile*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1266,1
    - Dst: TABRelation::ResetAllMembers
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1271,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1276,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1277,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1283,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1284,1
    - Dst: TABFile*::GetFieldIndexNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1285,1
    - Dst: TABFile*::GetINDFileRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1290,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1306,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1306,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1310,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1310,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1319,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1321,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1326,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1329,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1329,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1334,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1336,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1336,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1341,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1341,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1351,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1353,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1361,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1365,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1366,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1367,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1369,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1374,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1375,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1376,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1382,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1385,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1386,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1389,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 6
    argNames:
    - pszViewName
    - poMainTable
    - poRelTable
    - pszMainFieldName
    - pszRelFieldName
    - papszSelectedFields
    argTypes:
    - char*
    - TABFile*
    - TABFile*
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1391
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1391
    functionName: TABRelation::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - OGRFeatureDefn*::GetFieldIndex
    - Reference
    - CPLError
    - TABFile*::GetLayerDefn
    - CPLStrdup
    - AddFieldDefn
    - CPLMalloc
    - OGRFeatureDefn*::GetName
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - TABRelation::ResetAllMembers
    - TABFile*::GetINDFileRef
    - OGRFeatureDefn*::GetFieldDefn
    - TABFile*::GetFieldIndexNumber
    - static_cast<int *>
    - CSLDestroy
    - EQUAL
    - CSLDuplicate
    - CSLFindString
    linkageType: ''
    returnType: int
    signature: "int TABRelation::Init(const char *pszViewName, TABFile *poMainTable,\n
      \                     TABFile *poRelTable, const char *pszMainFieldName,\n                      const
      char *pszRelFieldName, char **papszSelectedFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1410,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1412,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1414,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1416,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1418,1
    - Dst: TABRelation::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1421,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1423,1
    - Dst: TABRelation::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1425,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1426,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1431,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1434,1
    - Dst: GetINDFileRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1438,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1443,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1444,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1446,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1446,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1447,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1448,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1450,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1450,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1451,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1452,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1462
    functionName: TABRelation::CreateRelFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - TABRelation::SetFieldIndexed
    - static_cast<int *>
    - OGRFeatureDefn*::GetFieldCount
    - CPLStrdup
    - TABRelation::AddFieldNative
    - GetINDFileRef
    - CPLRealloc
    - snprintf
    - strcpy
    - GetFieldIndex
    linkageType: ''
    returnType: int
    signature: int TABRelation::CreateRelFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1489,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1497,1
    - Dst: TABFeature*::CloneTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1505,1
    - Dst: TABFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1510,1
    - Dst: TABFeature*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1512,1
    - Dst: TABFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1514,1
    - Dst: TABFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1515,1
    - Dst: TABRelation::BuildFieldKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1530,1
    - Dst: TABRelation::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1531,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1537,1
    - Dst: TABFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1543,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1547,1
    - Dst: TABFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1548,1
    - Dst: TABFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1558,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1562,1
    - Dst: TABFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1563,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1568
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1568
    functionName: TABRelation::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - TABFeature*::GetGeometryRef
    - TABFeature*::GetRawFieldRef
    - TABFeature*::SetField
    - GetFeatureRef
    - TABFeature*::SetGeometry
    - TABFeature*::CloneTABFeature
    - TABRelation::BuildFieldKey
    - TABRelation::GetNativeFieldType
    - TABFeature*::GetFieldCount
    - CPLError
    - TABFeature*::SetFID
    - TABFeature*::GetFeatureClass
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABRelation::GetFeature(int nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1587,1
    - Dst: TABFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1588,1
    - Dst: BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1593,1
    - Dst: TABFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1600,1
    - Dst: BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1611,1
    - Dst: TABFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - poFeature
    - nFieldNo
    - eType
    - nIndexNo
    argTypes:
    - TABFeature*
    - int
    - TABFieldType
    - int
    constantsTouched: []
    func_position:
      end: 1617
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1617
    functionName: TABRelation::BuildFieldKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - TABFeature*::GetFieldAsDouble
    - TABFeature*::GetFieldAsString
    - BuildKey
    - CPLError
    - TABFeature*::GetFieldAsInteger
    linkageType: ''
    returnType: GByte
    signature: "GByte *TABRelation::BuildFieldKey(TABFeature *poFeature, int nFieldNo,\n
      \                                 TABFieldType eType, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1641,1
    - Dst: TABRelation::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1646,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1650,1
    - Dst: TABRelation::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1660
      start: 1629
    functionDepth: 1
    functionLinenumber: 1629
    functionLinenumberEnd: 1660
    functionName: TABRelation::GetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 2
    functionsReached:
    - GetLayerDefn
    - TABRelation::GetNativeFieldType
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType TABRelation::GetNativeFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRelation::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1691,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1696,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1698,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1698,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1699,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1701,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1702,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1702,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1704,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1705,1
    - Dst: TABRelation::AddFieldNative
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1712,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1717,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1719,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1719,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1720,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1722,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1723,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1723,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1725,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1726,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1729,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1730,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - pszName
    - eMapInfoType
    - nWidth
    - nPrecision
    - bIndexed
    - bUnique
    - bApproxOK
    argTypes:
    - char*
    - TABFieldType
    - int
    - int
    - GBool
    - GBool
    - int
    constantsTouched: []
    func_position:
      end: 1734
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1734
    functionName: TABRelation::AddFieldNative
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 2
    functionsReached:
    - GetLayerDefn
    - static_cast<int *>
    - OGRFeatureDefn*::GetFieldCount
    - TABRelation::SetFieldIndexed
    - TABRelation::AddFieldNative
    - GetFieldCount
    - CPLRealloc
    - AddFieldDefn
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: "int TABRelation::AddFieldNative(const char *pszName, TABFieldType
      eMapInfoType,\n                                int nWidth /*=0*/, int nPrecision
      /*=0*/,\n                                GBool bIndexed /*=FALSE*/,\n                                GBool
      bUnique /*=FALSE*/, int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1755,1
    - Dst: TABRelation::IsFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1760,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1764,1
    - Dst: TABRelation::IsFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1774
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1774
    functionName: TABRelation::IsFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - TABRelation::IsFieldIndexed
    linkageType: ''
    returnType: GBool
    signature: GBool TABRelation::IsFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1798,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1803,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1807,1
    - Dst: TABRelation::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1812,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1817
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1817
    functionName: TABRelation::SetFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 3
    functionsReached:
    - GetLayerDefn
    - TABRelation::SetFieldIndexed
    linkageType: ''
    returnType: int
    signature: int TABRelation::SetFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1847
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1847
    functionName: TABRelation::IsFieldUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: GBool
    signature: GBool TABRelation::IsFieldUnique(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1868,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1873,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1876,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1877,1
    - Dst: TABFeature*::CloneTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1883,1
    - Dst: TABFeature*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1885,1
    - Dst: TABFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1887,1
    - Dst: TABFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1888,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1894,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1898,1
    - Dst: TABFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1899,1
    - Dst: GetFieldIndexNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1910,1
    - Dst: TABRelation::BuildFieldKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1914,1
    - Dst: TABRelation::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1915,1
    - Dst: FindFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1917,1
    - Dst: TABFeature::TABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1927,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1929,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1933,1
    - Dst: TABFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1934,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1940,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1942,1
    - Dst: TABFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1952,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1954,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1955,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1955,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - poFeature
    - nFeatureId
    argTypes:
    - TABFeature*
    - int
    constantsTouched: []
    func_position:
      end: 1962
      start: 1862
    functionDepth: 4
    functionLinenumber: 1862
    functionLinenumberEnd: 1962
    functionName: TABRelation::WriteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - TABFeature*::GetGeometryRef
    - OGRFeatureDefn*::GetFieldCount
    - TABFeature*::GetRawFieldRef
    - static_cast<int>
    - TABFeature*::SetField
    - TABFeature*::GetFID
    - TABFeature*::SetGeometry
    - TABFeature*::CloneTABFeature
    - CPLAssert
    - CreateFeature
    - TABRelation::BuildFieldKey
    - TABRelation::GetNativeFieldType
    - CPLError
    - FindFirst
    - GetFieldIndexNumber
    - TABFeature*::GetFeatureClass
    - TABFeature::TABFeature
    linkageType: ''
    returnType: int
    signature: int TABRelation::WriteFeature(TABFeature *poFeature, int nFeatureId
      /*=-1*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1975,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1977,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1985,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp:1989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - poFeatureDefn
    - TABFieldType *paeMapInfoNativeFieldTypes
    argTypes:
    - OGRFeatureDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1992
      start: 1971
    functionDepth: 2
    functionLinenumber: 1971
    functionLinenumberEnd: 1992
    functionName: TABRelation::SetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabview.cpp
    functionUses: 0
    functionsReached:
    - Dereference
    - CPLAssert
    - Reference
    - GetFieldCount
    linkageType: ''
    returnType: int
    signature: "int TABRelation::SetFeatureDefn(\n    OGRFeatureDefn *poFeatureDefn,\n
      \   CPL_UNUSED TABFieldType *paeMapInfoNativeFieldTypes /* =NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:33,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:34,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:38,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:44,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:46,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:48,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:54,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:55,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:55,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: OGRTABDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLGetFilename
    - STARTS_WITH
    - EQUAL
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRTABDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTABDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:70,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:75,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:76,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:85,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:86,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:86,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:89,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:89,1
    - Dst: OGRTABDriverOpen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:92,1
    - Dst: OGRTABDataSource::OGRTABDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:96,1
    - Dst: OGRTABDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 104
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 104
    functionName: OGRTABDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - OGRTABDataSource::OGRTABDataSource
    - CPLGetFilename
    - STARTS_WITH
    - EQUAL
    - OGRTABDataSource*::Open
    - OGRTABDriverOpen
    - CPLString
    - GDALOpenInfo*::IsExtensionEqualToCI
    - OGRTABDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRTABDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTABDataSource::OGRTABDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:116,1
    - Dst: OGRTABDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: OGRTABDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 0
    functionsReached:
    - OGRTABDataSource*::Create
    - OGRTABDataSource::OGRTABDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRTABDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTABDriverOpen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:138,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:148,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:151,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:154,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:154,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pszDataSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 160
    functionName: OGRTABDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - VSIUnlink
    - CSLDestroy
    - VSI_ISDIR
    - OGRTABDriverOpen
    - VSIRmdir
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRTABDriverDelete(const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITABFreeCoordSysTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GDALDriver *poDriver
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRTABDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 0
    functionsReached:
    - MITABFreeCoordSysTable
    linkageType: ''
    returnType: void
    signature: void OGRTABDriverUnload(CPL_UNUSED GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:178,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:181,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:183,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:184,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:185,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:186,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:187,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:188,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:189,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:191,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:192,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:193,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:194,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:195,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:197,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:200,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:220,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:243,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:246,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:247,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:248,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:250,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:252,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:253,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:254,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:256,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:257,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 266
    functionName: RegisterOGRTAB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRTAB()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: TABDATFile::TABDATFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABDATFile::TABDATFile(const char *pszEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: TABDATFile::~TABDATFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - TABDATFile::Close
    linkageType: ''
    returnType: void
    signature: void TABDATFile::~TABDATFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:89,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:91,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:93,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:95,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pszFname
    - pszAccess
    - eTableType
    argTypes:
    - char*
    - char*
    - TABTableType
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: TABDATFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABDATFile::Open
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::Open(const char *pszFname, const char *pszAccess,\n
      \                    TABTableType eTableType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:121,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:143,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:152,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:153,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:158,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:159,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:169,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:170,1
    - Dst: ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:170,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:172,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:173,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:174,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:175,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:177,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:178,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:179,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:182,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:184,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:202,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:203,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:207,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:208,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:209,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:218,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:218,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:220,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:221,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:222,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:231,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:233,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:234,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:235,1
    - Dst: SetFirstBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:236,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 3
    argNames:
    - pszFname
    - eAccess
    - eTableType
    argTypes:
    - char*
    - TABAccess
    - TABTableType
    constantsTouched: []
    func_position:
      end: 257
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 257
    functionName: TABDATFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - static_cast<TABDATFieldDef *>
    - reinterpret_cast<GByte *>
    - GotoByteInFile
    - CPLError
    - ReadFromFile
    - InitNewBlock
    - CPLStrdup
    - ReadBytes
    - ReadByte
    - ReadInt16
    - TABRawBinBlock::TABRawBinBlock
    - min
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - CPLCalloc
    - CPLFree
    - static_cast<char>
    - VSIFCloseL
    - SetFirstBlockPtr
    - ReadInt32
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::Open(const char *pszFname, TABAccess eAccess,\n                     TABTableType
      eTableType /*=TABNativeTable*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABDATFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:275,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:292,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:295,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 312
    functionName: TABDATFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    - CPLFree
    - TABDATFile::SyncToDisk
    linkageType: ''
    returnType: int
    signature: int TABDATFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:325,1
    - Dst: TABDATFile::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 340
    functionName: TABDATFile::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABDATFile::WriteHeader
    linkageType: ''
    returnType: int
    signature: int TABDATFile::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:367,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:368,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:369,1
    - Dst: SetFirstBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: TABDATFile::InitWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - SetFirstBlockPtr
    - InitNewBlock
    - TABRawBinBlock::TABRawBinBlock
    linkageType: ''
    returnType: int
    signature: int TABDATFile::InitWriteHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:390,1
    - Dst: TABDATFile::InitWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:396,1
    - Dst: TABRawBinBlock::TABRawBinBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:400,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:401,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:404,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:407,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:408,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:409,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:411,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:412,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:412,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:413,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:413,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:415,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:420,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:421,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:422,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:424,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:426,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:427,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:429,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:433,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 437
    functionName: TABDATFile::WriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - WriteByte
    - CommitToFile
    - InitNewBlock
    - WriteZeros
    - WriteInt16
    - reinterpret_cast<GByte *>
    - TABRawBinBlock::TABRawBinBlock
    - static_cast<GInt16>
    - WriteInt32
    - TABDATFile::InitWriteHeader
    - CPLError
    - WriteBytes
    linkageType: ''
    returnType: int
    signature: int TABDATFile::WriteHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: TABDATFile::GetNumFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABDATFile::GetNumFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: TABDATFile::GetNumRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABDATFile::GetNumRecords()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:486,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:503,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:505,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:516,1
    - Dst: TABDATFile::WriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:530,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:535,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:542,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:546,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - nRecordId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 552
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 552
    functionName: TABDATFile::GetRecordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - InitNewBlock
    - GotoByteInFile
    - TABDATFile::WriteHeader
    - ReadByte
    - max
    - CPLError
    linkageType: ''
    returnType: TABRawBinBlock
    signature: TABRawBinBlock *TABDATFile::GetRecordBlock(int nRecordId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:569,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:577,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 582
    functionName: TABDATFile::CommitRecordToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CommitToFile
    - VSIFSeekL
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int TABDATFile::CommitRecordToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:597,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:600,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 609
    functionName: TABDATFile::MarkAsDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - CommitToFile
    - GotoByteInFile
    linkageType: ''
    returnType: int
    signature: int TABDATFile::MarkAsDeleted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:624,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 633
    functionName: TABDATFile::MarkRecordAsExisting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - GotoByteInFile
    linkageType: ''
    returnType: int
    signature: int TABDATFile::MarkRecordAsExisting()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:703,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 11
    argCount: 5
    argNames:
    - iField
    - pszName
    - eType
    - nWidth
    - nPrecision
    argTypes:
    - int
    - char*
    - TABFieldType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 715
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 715
    functionName: TABDATFile::ValidateFieldInfoFromTAB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::ValidateFieldInfoFromTAB(int iField, const char *pszName,\n
      \                                        TABFieldType eType, int nWidth,\n                                         int
      nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:728,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:741,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:749,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:753,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:789,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 5
    argNames:
    - psFieldDef
    - pszName
    - eType
    - nWidth
    - nPrecision
    argTypes:
    - TABDATFieldDef*
    - char*
    - TABFieldType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 795
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 795
    functionName: TABDATFileSetFieldDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GByte>
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int TABDATFileSetFieldDefinition(TABDATFieldDef *psFieldDef,\n                                        const
      char *pszName, TABFieldType eType,\n                                        int
      nWidth, int nPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:811,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:817,1
    - Dst: TABDATFileSetFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:824,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:832,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:833,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:834,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:845,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:845,1
    - Dst: TABDATFile::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:851,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:856,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:856,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:861,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:862,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:864,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:865,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:866,1
    - Dst: TABDATFile::MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:871,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:875,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:877,1
    - Dst: TABDATFile::m_poRecordBlock::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:879,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:882,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:883,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:884,1
    - Dst: TABDATFile::CommitRecordToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:887,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:891,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:894,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:897,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:898,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:899,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:903,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:906,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:907,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:908,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:910,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:911,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:912,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:921,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 4
    argNames:
    - pszName
    - eType
    - nWidth
    - nPrecision
    argTypes:
    - char*
    - TABFieldType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 925
      start: 806
    functionDepth: 4
    functionLinenumber: 806
    functionLinenumberEnd: 925
    functionName: TABDATFile::AddField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - static_cast<TABDATFieldDef *>
    - memcpy
    - TABDATFile::Close
    - TABDATFile::m_poRecordBlock::WriteBytes
    - TABDATFile::AddField
    - CPLError
    - ReadBytes
    - CPLString::c_str
    - CPLRealloc
    - TABDATFile::m_poRecordBlock::WriteZeros
    - CPLMalloc
    - VSIRename
    - TABDATFileSetFieldDefinition
    - VSIUnlink
    - static_cast<GByte *>
    - CPLFree
    - TABDATFile::MarkAsDeleted
    - TABDATFile::Open
    - TABDATFile::CommitRecordToFile
    - TABDATFile::GetRecordBlock
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::AddField(const char *pszName, TABFieldType eType,
      int nWidth,\n                         int nPrecision /* =0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:935,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:949,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:969,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:979,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:979,1
    - Dst: TABDATFile::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:993,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:999,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1003,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1003,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1008,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1009,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1011,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1012,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1013,1
    - Dst: TABDATFile::MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1018,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1022,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1025,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1028,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1033,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1034,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1035,1
    - Dst: TABDATFile::CommitRecordToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1038,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1042,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1045,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1048,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1049,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1050,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1052,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1055,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1056,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1057,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1059,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1071,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1074
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 1074
    functionName: TABDATFile::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABDATFieldDef *>
    - TABDATFile::Close
    - TABDATFile::m_poRecordBlock::WriteBytes
    - TABDATFile::AddField
    - CPLError
    - ReadBytes
    - CPLString::c_str
    - CPLMalloc
    - VSIRename
    - VSIUnlink
    - CPLAssert
    - static_cast<GByte *>
    - CPLFree
    - memmove
    - TABDATFile::MarkAsDeleted
    - TABDATFile::CommitRecordToFile
    - TABDATFile::Open
    - memcpy
    - TABDATFile::GetRecordBlock
    linkageType: ''
    returnType: int
    signature: int TABDATFile::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1084,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1090,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1099,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1107,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1108,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1109,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1113,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1116,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1127,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1127,1
    - Dst: TABDATFile::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1141,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1146,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1146,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1151,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1152,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1154,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1155,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1156,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1157,1
    - Dst: TABDATFile::MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1162,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1166,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1168,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1169,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1170,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1171,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1177,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1181,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1182,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1183,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1184,1
    - Dst: TABDATFile::CommitRecordToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1189,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1193,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1194,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1196,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1199,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1200,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1201,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1204,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1207,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1208,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1209,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1211,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1221,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1224
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1224
    functionName: TABDATFile::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - TABDATFile::MarkAsDeleted
    - static_cast<TABDATFieldDef *>
    - TABDATFile::CommitRecordToFile
    - OGRCheckPermutation
    - TABDATFile::Open
    - TABDATFile::Close
    - VSIUnlink
    - ReadBytes
    - TABDATFile::AddField
    - TABDATFile::m_poRecordBlock::WriteBytes
    - TABDATFile::GetRecordBlock
    - CPLString::c_str
    - VSIRename
    - static_cast<GByte *>
    - CPLError
    - CPLMalloc
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int TABDATFile::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1235,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1249,1
    - Dst: IMapInfoFile::GetTABType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1259,1
    - Dst: IMapInfoFile::GetTABType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1278,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1291,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1300,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1300,1
    - Dst: TABDATFileSetFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1318,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1322,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1327,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1330,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1346,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1356,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1356,1
    - Dst: TABDATFileSetFieldDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1366,1
    - Dst: TABDATFile::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1377,1
    - Dst: TABDATFile::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1383,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1388,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1388,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1394,1
    - Dst: TABDATFile::GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1398,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1399,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1400,1
    - Dst: TABDATFile::MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1405,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1410,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1412,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1415,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1416,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1417,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1418,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1422,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1425,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1426,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1431,1
    - Dst: TABDATFile::ReadIntegerField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1432,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1436,1
    - Dst: TABDATFile::ReadSmallIntField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1437,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1441,1
    - Dst: TABDATFile::ReadLargeIntField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1442,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1446,1
    - Dst: TABDATFile::ReadFloatField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1447,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1451,1
    - Dst: TABDATFile::ReadFloatField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1452,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1456,1
    - Dst: TABDATFile::ReadLogicalField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1457,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1463,1
    - Dst: TABDATFile::ReadDateField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1464,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1469,1
    - Dst: TABDATFile::ReadTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1470,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1475,1
    - Dst: TABDATFile::ReadDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1476,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1480,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1482,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1484,1
    - Dst: TABDATFile::m_poRecordBlock::WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1486,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1489,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1490,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1491,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1492,1
    - Dst: TABDATFile::CommitRecordToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1495,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1499,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1500,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1502,1
    - Dst: static_cast<TABDATFieldDef *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1505,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1506,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1507,1
    - Dst: TABDATFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1509,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1512,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1513,1
    - Dst: TABDATFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1514,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1516,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1528,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 157
    argCount: 4
    argNames:
    - iField
    - poSrcFieldDefn
    - poNewFieldDefn
    - nFlags
    argTypes:
    - int
    - OGRFieldDefn*
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1531
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1531
    functionName: TABDATFile::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - TABDATFile::ReadFloatField
    - TABDATFile::ReadDateTimeField
    - reinterpret_cast<GByte *>
    - static_cast<TABDATFieldDef *>
    - TABDATFile::Close
    - TABDATFile::m_poRecordBlock::WriteBytes
    - strncpy
    - TABDATFile::AddField
    - static_cast<GByte>
    - CPLError
    - OGRFieldDefn*::GetWidth
    - TABDATFile::ReadIntegerField
    - TABDATFile::ReadTimeField
    - ReadBytes
    - TABDATFile::ReadLargeIntField
    - CPLString::c_str
    - CPLMalloc
    - VSIRename
    - TABDATFile::ReadCharField
    - OGRFieldDefn*::GetNameRef
    - TABDATFileSetFieldDefinition
    - VSIUnlink
    - IMapInfoFile::GetTABType
    - snprintf
    - static_cast<GByte *>
    - CPLFree
    - TABDATFile::MarkAsDeleted
    - TABDATFile::ReadSmallIntField
    - TABDATFile::CommitRecordToFile
    - TABDATFile::Open
    - TABDATFile::ReadLogicalField
    - TABDATFile::ReadDateField
    - CPLsnprintf
    - memset
    - memcpy
    - TABDATFile::GetRecordBlock
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::AlterFieldDefn(int iField, const OGRFieldDefn *poSrcFieldDefn,\n
      \                              OGRFieldDefn *poNewFieldDefn, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1547
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1547
    functionName: TABDATFile::GetFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType TABDATFile::GetFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1563
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1563
    functionName: TABDATFile::GetFieldWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABDATFile::GetFieldWidth(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1579
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1579
    functionName: TABDATFile::GetFieldPrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABDATFile::GetFieldPrecision(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1605,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1612,1
    - Dst: ReadBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1617,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1618,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1633
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1633
    functionName: TABDATFile::ReadCharField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - ReadBytes
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: char
    signature: char *TABDATFile::ReadCharField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1654,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1660,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1660,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1663
      start: 1645
    functionDepth: 2
    functionLinenumber: 1645
    functionLinenumberEnd: 1663
    functionName: TABDATFile::ReadIntegerField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - ReadInt32
    - TABDATFile::ReadCharField
    - atoi
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABDATFile::ReadIntegerField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1684,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1690,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1690,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1690,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1693
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1693
    functionName: TABDATFile::ReadSmallIntField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - ReadInt16
    - TABDATFile::ReadCharField
    - atoi
    - static_cast<GInt16>
    - CPLError
    linkageType: ''
    returnType: GInt16
    signature: GInt16 TABDATFile::ReadSmallIntField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1714,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1720,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1720,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1720,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1723
      start: 1705
    functionDepth: 2
    functionLinenumber: 1705
    functionLinenumberEnd: 1723
    functionName: TABDATFile::ReadLargeIntField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - ReadInt64
    - TABDATFile::ReadCharField
    - CPLAtoGIntBig
    - CPLError
    linkageType: ''
    returnType: GInt64
    signature: GInt64 TABDATFile::ReadLargeIntField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1744,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1750,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1750,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1753
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1753
    functionName: TABDATFile::ReadFloatField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - ReadDouble
    - TABDATFile::ReadCharField
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double TABDATFile::ReadFloatField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1774,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1783,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1788,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1792
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1792
    functionName: TABDATFile::ReadLogicalField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - ReadByte
    - strchr
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool TABDATFile::ReadLogicalField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1825
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1825
    functionName: TABDATFile::ReadDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *TABDATFile::ReadDateField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1836,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1845,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1845,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1846,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1850,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1851,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1852,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - nWidth
    - nYear
    - nMonth
    - nDay
    argTypes:
    - int
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1860
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1860
    functionName: TABDATFile::ReadDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - ReadInt16
    - TABDATFile::ReadCharField
    - ReadByte
    - strcpy
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABDATFile::ReadDateField(int nWidth, int *nYear, int *nMonth,
      int *nDay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1894
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1894
    functionName: TABDATFile::ReadTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *TABDATFile::ReadTimeField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1907,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1916,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1916,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1917,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1921,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - nWidth
    - nHour
    - nMinute
    - nSecond
    - nMS
    argTypes:
    - int
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1934
      start: 1896
    functionDepth: 2
    functionLinenumber: 1896
    functionLinenumberEnd: 1934
    functionName: TABDATFile::ReadTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - TABDATFile::ReadCharField
    - ReadInt32
    - strcpy
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::ReadTimeField(int nWidth, int *nHour, int *nMinute,\n
      \                             int *nSecond, int *nMS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1974
      start: 1954
    functionDepth: 0
    functionLinenumber: 1954
    functionLinenumberEnd: 1974
    functionName: TABDATFile::ReadDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *TABDATFile::ReadDateTimeField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1988,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1997,1
    - Dst: TABDATFile::ReadCharField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1997,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:1998,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2003,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2004,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2005,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2006,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2009,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - nWidth
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    - nMS
    argTypes:
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2019
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 2019
    functionName: TABDATFile::ReadDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - ReadInt16
    - TABDATFile::ReadCharField
    - ReadByte
    - ReadInt32
    - strcpy
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::ReadDateTimeField(int nWidth, int *nYear, int *nMonth,\n
      \                                 int *nDay, int *nHour, int *nMinute,\n                                  int
      *nSecond, int *nMS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2046
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2046
    functionName: TABDATFile::ReadDecimalField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double TABDATFile::ReadDecimalField(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2067,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2075,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2088,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2089,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2090,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2096,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2097,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - pszStr
    - nWidth
    - poINDFile
    - nIndexNo
    argTypes:
    - char*
    - int
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2102
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2102
    functionName: TABDATFile::WriteCharField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - TABINDFile*::AddEntry
    - WriteZeros
    - reinterpret_cast<const GByte *>
    - TABINDFile*::BuildKey
    - CPLError
    - WriteBytes
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteCharField(const char *pszStr, int nWidth,\n                               TABINDFile
      *poINDFile, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2117,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2126,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2127,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - nValue
    - poINDFile
    - nIndexNo
    argTypes:
    - GInt32
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2132
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2132
    functionName: TABDATFile::WriteIntegerField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - TABINDFile*::AddEntry
    - TABINDFile*::BuildKey
    - WriteInt32
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteIntegerField(GInt32 nValue, TABINDFile *poINDFile,\n
      \                                 int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2147,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2156,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2157,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - nValue
    - poINDFile
    - nIndexNo
    argTypes:
    - GInt16
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2162
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2162
    functionName: TABDATFile::WriteSmallIntField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - TABINDFile*::AddEntry
    - TABINDFile*::BuildKey
    - WriteInt16
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteSmallIntField(GInt16 nValue, TABINDFile *poINDFile,\n
      \                                  int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2177,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2186,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2187,1
    - Dst: WriteInt64
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - nValue
    - poINDFile
    - nIndexNo
    argTypes:
    - GInt64
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2192
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2192
    functionName: TABDATFile::WriteLargeIntField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - WriteInt64
    - TABINDFile*::AddEntry
    - TABINDFile*::BuildKey
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteLargeIntField(GInt64 nValue, TABINDFile *poINDFile,\n
      \                                  int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2207,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2216,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2217,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - dValue
    - poINDFile
    - nIndexNo
    argTypes:
    - double
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2222
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2222
    functionName: TABDATFile::WriteFloatField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - WriteDouble
    - TABINDFile*::AddEntry
    - TABINDFile*::BuildKey
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteFloatField(double dValue, TABINDFile *poINDFile,\n
      \                               int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2239,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2250,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2250,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2251,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - bValue
    - poINDFile
    - nIndexNo
    argTypes:
    - bool
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2256
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2256
    functionName: TABDATFile::WriteLogicalField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - TABINDFile*::AddEntry
    - static_cast<int>
    - TABINDFile*::BuildKey
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteLogicalField(bool bValue, TABINDFile *poINDFile,\n
      \                                 int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2290,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2294,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2295,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2297,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2299,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2301,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2302,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2304,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2305,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2305,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2308,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2310,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2311,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2312,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2316,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2317,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2318,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2329,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2333,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2336,1
    - Dst: TABDATFile::WriteDateField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - pszValue
    - poINDFile
    - nIndexNo
    argTypes:
    - char*
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2339
      start: 2273
    functionDepth: 1
    functionLinenumber: 2273
    functionLinenumberEnd: 2339
    functionName: TABDATFile::WriteDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - atoi
    - TABDATFile::WriteDateField
    - CSLDestroy
    - CSLTokenizeStringComplex
    - strlen
    - strcpy
    - CSLCount
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteDateField(const char *pszValue, TABINDFile *poINDFile,\n
      \                              int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2346,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2352,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2352,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2353,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2353,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2354,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2354,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2356,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2362,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - nYear
    - nMonth
    - nDay
    - poINDFile
    - nIndexNo
    argTypes:
    - int
    - int
    - int
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2369
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2369
    functionName: TABDATFile::WriteDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - WriteByte
    - TABINDFile*::AddEntry
    - WriteInt16
    - static_cast<GInt16>
    - static_cast<GByte>
    - TABINDFile*::BuildKey
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteDateField(int nYear, int nMonth, int nDay,\n
      \                              TABINDFile *poINDFile, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2402,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2406,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2409,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2410,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2411,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2414,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2419,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2421,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2424,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2426,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2429,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2431,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2434,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2436,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2448,1
    - Dst: TABDATFile::WriteTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - pszValue
    - poINDFile
    - nIndexNo
    argTypes:
    - char*
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2456
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2456
    functionName: TABDATFile::WriteTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - atoi
    - strncpy
    - strlen
    - strcpy
    - TABDATFile::WriteTimeField
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteTimeField(const char *pszValue, TABINDFile *poINDFile,\n
      \                              int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2465,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2474,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2476,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2482,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - nHour
    - nMinute
    - nSecond
    - nMS
    - poINDFile
    - nIndexNo
    argTypes:
    - int
    - int
    - int
    - int
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2488
      start: 2458
    functionDepth: 1
    functionLinenumber: 2458
    functionLinenumberEnd: 2488
    functionName: TABDATFile::WriteTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - TABINDFile*::AddEntry
    - WriteInt32
    - TABINDFile*::BuildKey
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteTimeField(int nHour, int nMinute, int nSecond,
      int nMS,\n                               TABINDFile *poINDFile, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2530,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2534,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2535,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2537,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2539,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2541,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2543,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2545,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2547,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2549,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2550,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2552,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2553,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2553,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2556,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2558,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2559,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2560,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2561,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2562,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2563,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2568,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2569,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2570,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2571,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2572,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2573,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2577,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2589,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2594,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2597,1
    - Dst: TABDATFile::WriteDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2599,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 3
    argNames:
    - pszValue
    - poINDFile
    - nIndexNo
    argTypes:
    - char*
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2601
      start: 2508
    functionDepth: 1
    functionLinenumber: 2508
    functionLinenumberEnd: 2601
    functionName: TABDATFile::WriteDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - atoi
    - CSLDestroy
    - CSLTokenizeStringComplex
    - strlen
    - strcpy
    - TABDATFile::WriteDateTimeField
    - CSLCount
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteDateTimeField(const char *pszValue, TABINDFile
      *poINDFile,\n                                   int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2611,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2617,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2617,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2618,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2618,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2619,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2619,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2620,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2622,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2631,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2632,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 9
    argNames:
    - nYear
    - nMonth
    - nDay
    - nHour
    - nMinute
    - nSecond
    - nMS
    - poINDFile
    - nIndexNo
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2639
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2639
    functionName: TABDATFile::WriteDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 1
    functionsReached:
    - WriteByte
    - TABINDFile*::AddEntry
    - WriteInt16
    - static_cast<GInt16>
    - WriteInt32
    - static_cast<GByte>
    - CPLAssert
    - TABINDFile*::BuildKey
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteDateTimeField(int nYear, int nMonth, int nDay,
      int nHour,\n                                   int nMinute, int nSecond, int
      nMS,\n                                   TABINDFile *poINDFile, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2659,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2661,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2661,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2663,1
    - Dst: TABINDFile*::BuildKey
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2671,1
    - Dst: TABINDFile*::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2672,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2676,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - dValue
    - nWidth
    - nPrec
    - poINDFile
    - nIndexNo
    argTypes:
    - double
    - int
    - int
    - TABINDFile*
    - int
    constantsTouched: []
    func_position:
      end: 2678
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2678
    functionName: TABDATFile::WriteDecimalField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TABINDFile*::AddEntry
    - reinterpret_cast<const GByte *>
    - snprintf
    - TABINDFile*::BuildKey
    - strlen
    - CPLError
    - WriteBytes
    linkageType: ''
    returnType: int
    signature: "int TABDATFile::WriteDecimalField(double dValue, int nWidth, int nPrec,\n
      \                                 TABINDFile *poINDFile, int nIndexNo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2683
    functionName: '&TABDATFile::GetEncoding() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &TABDATFile::GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osEncoding
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2688
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2688
    functionName: TABDATFile::SetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABDATFile::SetEncoding(const CPLString &osEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2702,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2706,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2710,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2711,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2712,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp:2715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 2716
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2716
    functionName: TABDATFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_datfile.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABDATFile::Dump(FILE *fpOut /* =NULL */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: TABMAPIndexBlock::TABMAPIndexBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::TABMAPIndexBlock(TABAccess eAccessMode /*= TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::UnsetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TABMAPIndexBlock::~TABMAPIndexBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPIndexBlock::UnsetCurChild
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::~TABMAPIndexBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:67,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: TABMAPIndexBlock::UnsetCurChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock::CommitToFile
    - reset
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::UnsetCurChild()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:101,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:104,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:112,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:113,1
    - Dst: TABMAPIndexBlock::ReadAllEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: TABMAPIndexBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - ReadInt16
    - TABMAPIndexBlock::ReadAllEntries
    - CPLError
    - CPLFree
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                       int nSizeUsed,\n                                        GBool
      bMakeCopy /* = TRUE */,\n                                        VSILFILE *fpSrc
      /* = NULL */,\n                                        int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:138,1
    - Dst: TABMAPIndexBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:148,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:161,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:163,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:164,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:164,1
    - Dst: TABMAPIndexBlock::WriteNextEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:175,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:184,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 190
    functionName: TABMAPIndexBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 2
    functionsReached:
    - TABMAPIndexBlock::WriteNextEntry
    - WriteInt16
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - static_cast<GInt16>
    - TABMAPIndexBlock::CommitToFile
    - CPLError
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:213,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:228,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:230,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:231,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: TABMAPIndexBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::InitNewBlock
    - GotoByteInBlock
    - CPLGetLastErrorType
    - WriteInt16
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                  int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:251,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:259,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:260,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:261,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:262,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:263,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - psEntry
    argTypes:
    - TABMAPIndexEntry*
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: TABMAPIndexBlock::ReadNextEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - ReadInt32
    - GotoByteInBlock
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::ReadNextEntry(TABMAPIndexEntry *psEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:280,1
    - Dst: TABMAPIndexBlock::GetMaxEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:280,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:284,1
    - Dst: TABMAPIndexBlock::ReadNextEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: TABMAPIndexBlock::ReadAllEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock::ReadNextEntry
    - CPLAssert
    - GotoByteInBlock
    - TABMAPIndexBlock::GetMaxEntries
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::ReadAllEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:306,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:308,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:309,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:310,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:311,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:312,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - psEntry
    argTypes:
    - TABMAPIndexEntry*
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: TABMAPIndexBlock::WriteNextEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - WriteInt32
    - GotoByteInBlock
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::WriteNextEntry(TABMAPIndexEntry *psEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: TABMAPIndexBlock::GetNumFreeEntries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::GetNumFreeEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: TABMAPIndexBlock::GetEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPIndexEntry
    signature: TABMAPIndexEntry *TABMAPIndexBlock::GetEntry(int iIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::GetCurMaxDepth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: TABMAPIndexBlock::GetCurMaxDepth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock::GetCurMaxDepth
    linkageType: ''
    returnType: int
    signature: int TABMAPIndexBlock::GetCurMaxDepth()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: TABMAPIndexBlock::GetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABMAPIndexBlock::GetMBR(GInt32 &nXMin, GInt32 &nYMin, GInt32
      &nXMax,\n                              GInt32 &nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 389
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 389
    functionName: TABMAPIndexBlock::SetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABMAPIndexBlock::SetMBR(GInt32 nXMin, GInt32 nYMin, GInt32 nXMax,\n
      \                             GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:405,1
    - Dst: TABMAPIndexBlock::GetNumFreeEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:411,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:413,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:422,1
    - Dst: TABMAPIndexBlock::GetMaxEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    - nBlockPtr
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 433
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 433
    functionName: TABMAPIndexBlock::InsertEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    - TABMAPIndexBlock::GetNumFreeEntries
    - TABMAPIndexBlock::GetMaxEntries
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::InsertEntry(GInt32 nXMin, GInt32 nYMin, GInt32
      nXMax,\n                                  GInt32 nYMax, GInt32 nBlockPtr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:483,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:484,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:485,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:486,1
    - Dst: MITAB_AREA
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:489,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:509,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 517
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 517
    functionName: TABMAPIndexBlock::ChooseSubEntryForInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - MITAB_AREA
    - max
    - std::abs
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::ChooseSubEntryForInsert(GInt32 nXMin, GInt32
      nYMin,\n                                              GInt32 nXMax, GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:548,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:549,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:555,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:564,1
    - Dst: std::unique_ptr<TABRawBinBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:566,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:567,1
    - Dst: auto::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:569,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:571,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:572,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:572,1
    - Dst: TABMAPIndexBlock::SetParentRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:574,1
    - Dst: TABMAPIndexBlock::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:575,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:579,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:580,1
    - Dst: TABMAPIndexBlock::ChooseLeafForInsert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 596
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 596
    functionName: TABMAPIndexBlock::ChooseLeafForInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock::SetMAPBlockManagerRef
    - CPLErrorReset
    - auto::release
    - auto::GetBlockClass
    - reset
    - TABCreateMAPBlockFromFile
    - CPLAssert
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - TABMAPIndexBlock::CommitToFile
    - cpl::down_cast<TABMAPIndexBlock *>
    - TABMAPIndexBlock::ChooseLeafForInsert
    - std::unique_ptr<TABRawBinBlock>
    - TABMAPIndexBlock::SetParentRef
    linkageType: ''
    returnType: GInt32
    signature: "GInt32 TABMAPIndexBlock::ChooseLeafForInsert(GInt32 nXMin, GInt32
      nYMin,\n                                             GInt32 nXMax, GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::GetCurLeafEntryMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:617,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - nBlockPtr
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 640
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 640
    functionName: TABMAPIndexBlock::GetCurLeafEntryMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABMAPIndexBlock::GetCurLeafEntryMBR
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::GetCurLeafEntryMBR(GInt32 nBlockPtr, GInt32
      &nXMin,\n                                         GInt32 &nYMin, GInt32 &nXMax,\n
      \                                        GInt32 &nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::UpdateLeafEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:660,1
    - Dst: TABMAPIndexBlock::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:684,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - nBlockPtr
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 695
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 695
    functionName: TABMAPIndexBlock::UpdateLeafEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABMAPIndexBlock::UpdateLeafEntry
    - TABMAPIndexBlock::RecomputeMBR
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::UpdateLeafEntry(GInt32 nBlockPtr, GInt32 nXMin,\n
      \                                     GInt32 nYMin, GInt32 nXMax, GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:720,1
    - Dst: TABMAPIndexBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:742,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:743,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:750,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:759,1
    - Dst: std::unique_ptr<TABRawBinBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:762,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:762,1
    - Dst: auto::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:766,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:768,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:769,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:769,1
    - Dst: TABMAPIndexBlock::SetParentRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:771,1
    - Dst: TABMAPIndexBlock::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:772,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:776,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:777,1
    - Dst: TABMAPIndexBlock::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:786,1
    - Dst: TABMAPIndexBlock::GetNumFreeEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:800,1
    - Dst: TABMAPIndexBlock::SplitRootNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:809,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:812,1
    - Dst: TABMAPIndexBlock::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:813,1
    - Dst: TABMAPIndexBlock::SplitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:821,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:826,1
    - Dst: TABMAPIndexBlock::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:833,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 6
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    - nBlockPtr
    - bAddInThisNodeOnly
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 836
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 836
    functionName: TABMAPIndexBlock::AddEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock::SplitRootNode
    - TABCreateMAPBlockFromFile
    - TABMAPIndexBlock::GetNumFreeEntries
    - CPLError
    - TABMAPIndexBlock::SetParentRef
    - CPLErrorReset
    - TABMAPIndexBlock::SplitNode
    - TABMAPIndexBlock::InsertEntry
    - CPLPopErrorHandler
    - TABMAPIndexBlock::CommitToFile
    - std::unique_ptr<TABRawBinBlock>
    - TABMAPIndexBlock::SetMAPBlockManagerRef
    - auto::GetBlockClass
    - CPLAssert
    - auto::release
    - TABMAPIndexBlock::AddEntry
    - CPLPushErrorHandler
    - reset
    - cpl::down_cast<TABMAPIndexBlock *>
    - TABMAPIndexBlock::RecomputeMBR
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::AddEntry(GInt32 nXMin, GInt32 nYMin, GInt32
      nXMax,\n                               GInt32 nYMax, GInt32 nBlockPtr,\n                               GBool
      bAddInThisNodeOnly /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MITAB_AREA
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:870,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:878,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:879,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:880,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:881,1
    - Dst: MITAB_AREA
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 8
    argNames:
    - nNodeXMin
    - nNodeYMin
    - nNodeXMax
    - nNodeYMax
    - nEntryXMin
    - nEntryYMin
    - nEntryXMax
    - nEntryYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 888
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 888
    functionName: TABMAPIndexBlock::ComputeAreaDiff
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - MITAB_AREA
    - max
    linkageType: ''
    returnType: double
    signature: "double TABMAPIndexBlock::ComputeAreaDiff(GInt32 nNodeXMin, GInt32
      nNodeYMin,\n                                         GInt32 nNodeXMax, GInt32
      nNodeYMax,\n                                         GInt32 nEntryXMin, GInt32
      nEntryYMin,\n                                         GInt32 nEntryXMax, GInt32
      nEntryYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:965,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:966,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:967,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:968,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 9
    argNames:
    - pasEntries
    - numEntries
    - nSrcCurChildIndex
    - nNewEntryXMin
    - nNewEntryYMin
    - nNewEntryXMax
    - nNewEntryYMax
    - nSeed1
    - nSeed2
    argTypes:
    - TABMAPIndexEntry*
    - int
    - int
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1043
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 1043
    functionName: TABMAPIndexBlock::PickSeedsForSplit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::PickSeedsForSplit(\n    TABMAPIndexEntry *pasEntries,
      int numEntries, int nSrcCurChildIndex,\n    GInt32 nNewEntryXMin, GInt32 nNewEntryYMin,
      GInt32 nNewEntryXMax,\n    GInt32 nNewEntryYMax, int &nSeed1, int &nSeed2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1061,1
    - Dst: TABMAPIndexBlock::TABMAPIndexBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1066,1
    - Dst: TABMAPIndexBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1067,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1068,1
    - Dst: TABMAPIndexBlock*::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1073,1
    - Dst: static_cast<TABMAPIndexEntry *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1079,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1080,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1081,1
    - Dst: TABMAPIndexBlock::PickSeedsForSplit
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1090,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1100,1
    - Dst: TABMAPIndexBlock*::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1105,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1133,1
    - Dst: TABMAPIndexBlock::GetMaxEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1142,1
    - Dst: TABMAPIndexBlock*::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1144,1
    - Dst: TABMAPIndexBlock*::GetNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1150,1
    - Dst: TABMAPIndexBlock::GetMaxEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1150,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1152,1
    - Dst: TABMAPIndexBlock::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1159,1
    - Dst: TABMAPIndexBlock*::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1169,1
    - Dst: TABMAPIndexBlock*::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1170,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1178,1
    - Dst: TABMAPIndexBlock*::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1185,1
    - Dst: TABMAPIndexBlock::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1195,1
    - Dst: TABMAPIndexBlock*::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1196,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1202,1
    - Dst: TABMAPIndexBlock*::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1204,1
    - Dst: TABMAPIndexBlock::AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1205,1
    - Dst: TABMAPIndexBlock*::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1206,1
    - Dst: TABMAPIndexBlock*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1207,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - nNewEntryXMin
    - nNewEntryYMin
    - nNewEntryXMax
    - nNewEntryYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 1213
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1213
    functionName: TABMAPIndexBlock::SplitNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPIndexBlock*::GetNodeBlockPtr
    - TABMAPIndexBlock*::RecomputeMBR
    - TABMAPIndexBlock::GetMaxEntries
    - static_cast<TABMAPIndexEntry *>
    - TABMAPIndexBlock::PickSeedsForSplit
    - TABMAPIndexBlock*::GetMBR
    - TABMAPIndexBlock::InsertEntry
    - TABMAPIndexBlock*::SetMAPBlockManagerRef
    - CPLMalloc
    - AllocNewBlock
    - TABMAPIndexBlock*::InsertEntry
    - TABMAPIndexBlock*::CommitToFile
    - CPLAssert
    - TABMAPIndexBlock*::InitNewBlock
    - TABMAPIndexBlock::TABMAPIndexBlock
    - CPLFree
    - TABMAPIndexBlock*::GetNumEntries
    - TABMAPIndexBlock::AddEntry
    - memcpy
    - TABMAPIndexBlock::RecomputeMBR
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::SplitNode(GInt32 nNewEntryXMin, GInt32 nNewEntryYMin,\n
      \                               GInt32 nNewEntryXMax, GInt32 nNewEntryYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1230,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1231,1
    - Dst: std::make_unique<TABMAPIndexBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1237,1
    - Dst: auto::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1239,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1240,1
    - Dst: auto::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1245,1
    - Dst: auto::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1252,1
    - Dst: auto::SetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1263,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1263,1
    - Dst: auto::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1270,1
    - Dst: auto::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1272,1
    - Dst: TABMAPIndexBlock::InsertEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1273,1
    - Dst: auto::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1273,1
    - Dst: auto::SetParentRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1278,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1279,1
    - Dst: TABMAPIndexBlock::SplitNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - nNewEntryXMin
    - nNewEntryYMin
    - nNewEntryXMax
    - nNewEntryYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 1287
      start: 1227
    functionDepth: 5
    functionLinenumber: 1227
    functionLinenumberEnd: 1287
    functionName: TABMAPIndexBlock::SplitRootNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 1
    functionsReached:
    - auto::GetMBR
    - auto::SetMAPBlockManagerRef
    - std::make_unique<TABMAPIndexBlock>
    - auto::InsertEntry
    - auto::SetCurChild
    - TABMAPIndexBlock::SplitNode
    - TABMAPIndexBlock::InsertEntry
    - auto::GetNodeBlockPtr
    - CPLAssert
    - auto::SetParentRef
    - std::move
    - auto::InitNewBlock
    - auto::RecomputeMBR
    - AllocNewBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPIndexBlock::SplitRootNode(GInt32 nNewEntryXMin, GInt32 nNewEntryYMin,\n
      \                                   GInt32 nNewEntryXMax, GInt32 nNewEntryYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::UpdateCurChildMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1327,1
    - Dst: TABMAPIndexBlock::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1330
    functionName: TABMAPIndexBlock::RecomputeMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 3
    functionsReached:
    - TABMAPIndexBlock::UpdateCurChildMBR
    - TABMAPIndexBlock::GetNodeBlockPtr
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::RecomputeMBR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1343,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1344,1
    - Dst: TABMAPIndexBlock::UpdateCurChildMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1380,1
    - Dst: TABMAPIndexBlock::GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    - nBlockPtr
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1382
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1382
    functionName: TABMAPIndexBlock::UpdateCurChildMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 2
    functionsReached:
    - CPLAssert
    - TABMAPIndexBlock::UpdateCurChildMBR
    - TABMAPIndexBlock::GetNodeBlockPtr
    linkageType: ''
    returnType: void
    signature: "void TABMAPIndexBlock::UpdateCurChildMBR(GInt32 nXMin, GInt32 nYMin,\n
      \                                        GInt32 nXMax, GInt32 nYMax,\n                                         CPL_UNUSED
      GInt32 nBlockPtr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poBlockMgr
    argTypes:
    - TABBinBlockManager*
    constantsTouched: []
    func_position:
      end: 1394
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1394
    functionName: TABMAPIndexBlock::SetMAPBlockManagerRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::SetMAPBlockManagerRef(TABBinBlockManager *poBlockMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poParent
    argTypes:
    - TABMAPIndexBlock*
    constantsTouched: []
    func_position:
      end: 1404
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1404
    functionName: TABMAPIndexBlock::SetParentRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::SetParentRef(TABMAPIndexBlock *poParent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<TABMAPIndexBlock>::SetParentRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1415,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - poChild
    - nChildIndex
    argTypes:
    - std::unique_ptr<TABMAPIndexBlock>
    - int
    constantsTouched: []
    func_position:
      end: 1418
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1418
    functionName: TABMAPIndexBlock::SetCurChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<TABMAPIndexBlock>::SetParentRef
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TABMAPIndexBlock::SetCurChild(std::unique_ptr<TABMAPIndexBlock>
      &&poChild,\n                                   int nChildIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1432,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1435,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1439,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1441,1
    - Dst: TABMAPIndexBlock::ReadAllEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1447,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1451,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp:1458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1459
      start: 1427
    functionDepth: 2
    functionLinenumber: 1427
    functionLinenumberEnd: 1459
    functionName: TABMAPIndexBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapindexblock.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - TABMAPIndexBlock::ReadAllEntries
    linkageType: ''
    returnType: void
    signature: void TABMAPIndexBlock::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPHeaderBlock::InitMembersWithDefaultValues
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: TABMAPHeaderBlock::TABMAPHeaderBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPHeaderBlock::InitMembersWithDefaultValues
    linkageType: ''
    returnType: void
    signature: void TABMAPHeaderBlock::TABMAPHeaderBlock(TABAccess eAccessMode /*=
      TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: TABMAPHeaderBlock::~TABMAPHeaderBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPHeaderBlock::~TABMAPHeaderBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 146
    functionName: TABMAPHeaderBlock::InitMembersWithDefaultValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPHeaderBlock::InitMembersWithDefaultValues()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:175,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:176,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:179,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:182,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:193,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:194,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:195,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:198,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:200,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:205,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:206,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:207,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:208,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:212,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:214,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:217,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:219,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:220,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:221,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:223,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:224,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:225,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:226,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:227,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:229,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:231,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:232,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:233,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:234,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:235,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:236,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:237,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:238,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:239,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:240,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:241,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:243,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:249,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:252,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:255,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:256,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:257,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:258,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:259,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:260,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:265,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:269,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:270,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:277,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:284,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:286,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:287,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:288,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:295,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:310,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:311,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:312,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:313,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:314,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:315,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:316,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:317,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:324,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:325,1
    - Dst: TABMAPHeaderBlock::UpdatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:328,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 105
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 331
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 331
    functionName: TABMAPHeaderBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - ReadInt16
    - pow
    - TABMAPHeaderBlock::UpdatePrecision
    - ReadDouble
    - ReadByte
    - ReadInt32
    - CPLError
    - CPLFree
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                        int nSizeUsed,\n                                         GBool
      bMakeCopy /* = TRUE */,\n                                         VSILFILE *fpSrc
      /* = NULL */,\n                                         int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:371,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - nX
    - nY
    - dX
    - dY
    argTypes:
    - GInt32
    - GInt32
    - double
    - double
    constantsTouched: []
    func_position:
      end: 377
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 377
    functionName: TABMAPHeaderBlock::Int2Coordsys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - round
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::Int2Coordsys(GInt32 nX, GInt32 nY, double &dX,\n
      \                                   double &dY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:449,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:449,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:450,1
    - Dst: ROUND_INT
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:456,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:457,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - dX
    - dY
    - nX
    - nY
    - bIgnoreOverflow
    argTypes:
    - double
    - double
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 463
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 463
    functionName: TABMAPHeaderBlock::Coordsys2Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GInt32>
    - static_cast<CPLErrorNum>
    - ROUND_INT
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::Coordsys2Int(double dX, double dY, GInt32 &nX,\n
      \                                   GInt32 &nY,\n                                    GBool
      bIgnoreOverflow /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPHeaderBlock::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - nCenterX
    - nCenterY
    - nDeltaX
    - nDeltaY
    - dX
    - dY
    argTypes:
    - GInt32
    - GInt32
    - int
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 487
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 487
    functionName: TABMAPHeaderBlock::ComprInt2Coordsys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPHeaderBlock::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::ComprInt2Coordsys(GInt32 nCenterX, GInt32 nCenterY,\n
      \                                        int nDeltaX, int nDeltaY, double &dX,\n
      \                                        double &dY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - nX
    - nY
    - dX
    - dY
    argTypes:
    - GInt32
    - GInt32
    - double
    - double
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: TABMAPHeaderBlock::Int2CoordsysDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::Int2CoordsysDist(GInt32 nX, GInt32 nY, double
      &dX,\n                                        double &dY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:537,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dX
    - dY
    - nX
    - nY
    argTypes:
    - double
    - double
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: TABMAPHeaderBlock::Coordsys2IntDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GInt32>
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::Coordsys2IntDist(double dX, double dY, GInt32
      &nX,\n                                        GInt32 &nY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPHeaderBlock::UpdatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 597
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 597
    functionName: TABMAPHeaderBlock::SetCoordsysBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPHeaderBlock::UpdatePrecision
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::SetCoordsysBounds(double dXMin, double dYMin,\n
      \                                        double dXMax, double dYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:609,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nObjType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 623
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 623
    functionName: TABMAPHeaderBlock::GetMapObjectSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPHeaderBlock::GetMapObjectSize(int nObjType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:636,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nObjType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 651
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 651
    functionName: TABMAPHeaderBlock::MapObjectUsesCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: GBool
    signature: GBool TABMAPHeaderBlock::MapObjectUsesCoordBlock(int nObjType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - psProjInfo
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: TABMAPHeaderBlock::GetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPHeaderBlock::GetProjInfo(TABProjInfo *psProjInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - psProjInfo
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: TABMAPHeaderBlock::SetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPHeaderBlock::SetProjInfo(TABProjInfo *psProjInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:717,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:726,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:727,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:730,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:739,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:745,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:747,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:749,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:750,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:751,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:752,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:753,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:756,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:760,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:762,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:763,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:764,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:766,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:767,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:768,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:769,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:770,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:772,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:774,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:775,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:776,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:777,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:778,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:779,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:780,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:781,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:782,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:783,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:784,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:785,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:785,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:787,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:788,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:789,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:791,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:792,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:793,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:794,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:795,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:796,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:797,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:800,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:802,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:803,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:804,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:806,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:810,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:811,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:812,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:813,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:814,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:815,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:816,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:817,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:818,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:820,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:828,1
    - Dst: WriteDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:830,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:838,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:840,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 841
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 841
    functionName: TABMAPHeaderBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - WriteDouble
    - WriteZeros
    - WriteInt16
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - WriteInt32
    - CPLAssert
    - static_cast<GByte>
    - CPLError
    - WriteBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPHeaderBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:867,1
    - Dst: TABMAPHeaderBlock::InitMembersWithDefaultValues
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:873,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:875,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:876,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:883,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:884,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 891
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 891
    functionName: TABMAPHeaderBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::InitNewBlock
    - static_cast<GInt16>
    - CPLAssert
    - CPLGetLastErrorType
    - TABMAPHeaderBlock::InitMembersWithDefaultValues
    - WriteBytes
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPHeaderBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                   int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:901,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:901,1
    - Dst: log10
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:901,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:902,1
    - Dst: round
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:902,1
    - Dst: log10
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 903
    functionName: TABMAPHeaderBlock::UpdatePrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 2
    functionsReached:
    - log10
    - round
    - pow
    linkageType: ''
    returnType: void
    signature: void TABMAPHeaderBlock::UpdatePrecision()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:917,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:921,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:925,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:926,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:928,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:929,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:930,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:931,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:932,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:933,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:934,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:935,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:937,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:938,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:939,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:940,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:941,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:942,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:943,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:944,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:945,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:946,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:948,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:949,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:950,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:951,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:952,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:954,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:955,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:956,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:957,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:958,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:959,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:960,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:962,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:963,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:964,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:965,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:966,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:967,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:968,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:969,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:970,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:972,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:973,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:975,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:977,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:979,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:981,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:983,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:984,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:989,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:993,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:993,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:995,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:997,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp:1002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 67
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1003
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 1003
    functionName: TABMAPHeaderBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapheaderblock.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - static_cast<int>
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABMAPHeaderBlock::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eAccessMode
    argTypes:
    - TABAccess
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: TABMAPObjectBlock::TABMAPObjectBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::TABMAPObjectBlock(TABAccess eAccessMode /*=
      TABRead*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: TABMAPObjectBlock::~TABMAPObjectBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::~TABMAPObjectBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:91,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:94,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:102,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:103,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:107,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:111,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:116,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:117,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:119,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 6
    argNames:
    - pabyBuf
    - nBlockSize
    - nSizeUsed
    - bMakeCopy
    - fpSrc
    - nOffset
    argTypes:
    - GByte*
    - int
    - int
    - GBool
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 139
    functionName: TABMAPObjectBlock::InitBlockFromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - ReadInt16
    - ReadInt32
    - CPLError
    - CPLFree
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPObjectBlock::InitBlockFromData(GByte *pabyBuf, int nBlockSize,\n
      \                                        int nSizeUsed,\n                                         GBool
      bMakeCopy /* = TRUE */,\n                                         VSILFILE *fpSrc
      /* = NULL */,\n                                         int nOffset /* = 0 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:149,1
    - Dst: WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:150,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: TABMAPObjectBlock::ClearObjects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - WriteZeros
    - GotoByteInBlock
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::ClearObjects()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: TABMAPObjectBlock::LockCenter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::LockCenter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock::LockCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poOtherObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: TABMAPObjectBlock::SetCenterFromOtherBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock::LockCenter
    linkageType: ''
    returnType: void
    signature: "void TABMAPObjectBlock::SetCenterFromOtherBlock(\n    TABMAPObjectBlock
      *poOtherObjBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: TABMAPObjectBlock::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPHeaderBlock*::GetMapObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:207,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:212,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:213,1
    - Dst: TABMAPFile::IsValidObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:214,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:220,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:222,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:242,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:248,1
    - Dst: TABMAPObjectBlock::AdvanceToNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - poHeader
    argTypes:
    - TABMAPHeaderBlock*
    constantsTouched: []
    func_position:
      end: 255
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 255
    functionName: TABMAPObjectBlock::AdvanceToNextObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 1
    functionsReached:
    - static_cast<TABGeomType>
    - static_cast<CPLErrorNum>
    - static_cast<GUInt32>
    - TABMAPFile::IsValidObjType
    - ReadByte
    - ReadInt32
    - TABMAPObjectBlock::AdvanceToNextObject
    - CPLError
    - GotoByteInBlock
    - TABMAPHeaderBlock*::GetMapObjectSize
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::AdvanceToNextObject(TABMAPHeaderBlock *poHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:274,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:289,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:291,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:293,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:294,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:294,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:296,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:297,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:299,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:300,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:311,1
    - Dst: TABRawBinBlock::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 318
    functionName: TABMAPObjectBlock::CommitToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - WriteInt16
    - TABRawBinBlock::CommitToFile
    - CPLDebug
    - static_cast<GInt16>
    - WriteInt32
    - CPLAssert
    - CPLError
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::CommitToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABRawBinBlock::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:341,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:367,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:369,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:370,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:373,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:374,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:377,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:378,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - fpSrc
    - nBlockSize
    - nFileOffset
    argTypes:
    - VSILFILE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 385
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 385
    functionName: TABMAPObjectBlock::InitNewBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABRawBinBlock::InitNewBlock
    - WriteInt16
    - WriteInt32
    - CPLGetLastErrorType
    - GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: "int TABMAPObjectBlock::InitNewBlock(VSILFILE *fpSrc, int nBlockSize,\n
      \                                   int nFileOffset /* = 0*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:404,1
    - Dst: ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:405,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:406,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:407,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:411,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:412,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bCompressed
    - nX
    - nY
    argTypes:
    - GBool
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 419
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 419
    functionName: TABMAPObjectBlock::ReadIntCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - CPLGetLastErrorType
    - ReadInt32
    - ReadInt16
    - TABSaturatedAdd
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::ReadIntCoord(GBool bCompressed, GInt32 &nX,
      GInt32 &nY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:441,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:441,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:443,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:443,1
    - Dst: WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:444,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 3
    argNames:
    - nX
    - nY
    - bCompressed
    argTypes:
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 450
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 450
    functionName: TABMAPObjectBlock::WriteIntCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - static_cast<GInt16>
    - WriteInt16
    linkageType: ''
    returnType: int
    signature: "int TABMAPObjectBlock::WriteIntCoord(GInt32 nX, GInt32 nY,\n                                     GBool
      bCompressed /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:472,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:472,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:472,1
    - Dst: TABMAPObjectBlock::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:474,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:474,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    - bCompressed
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: TABMAPObjectBlock::WriteIntMBRCoord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    - TABMAPObjectBlock::WriteIntCoord
    linkageType: ''
    returnType: int
    signature: "int TABMAPObjectBlock::WriteIntMBRCoord(GInt32 nXMin, GInt32 nYMin,\n
      \                                       GInt32 nXMax, GInt32 nYMax,\n                                        GBool
      bCompressed /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:507,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:507,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:509,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nX
    - nY
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 513
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 513
    functionName: TABMAPObjectBlock::UpdateMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::UpdateMBR(GInt32 nX, GInt32 nY)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nNewBlockAddress
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: TABMAPObjectBlock::AddCoordBlockRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::AddCoordBlockRef(GInt32 nNewBlockAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:551,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:551,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:553,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 555
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 555
    functionName: TABMAPObjectBlock::SetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void TABMAPObjectBlock::SetMBR(GInt32 nXMin, GInt32 nYMin, GInt32
      nXMax,\n                               GInt32 nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nXMin
    - nYMin
    - nXMax
    - nYMax
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 569
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 569
    functionName: TABMAPObjectBlock::GetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TABMAPObjectBlock::GetMBR(GInt32 &nXMin, GInt32 &nYMin, GInt32
      &nXMax,\n                               GInt32 &nYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:591,1
    - Dst: TABMAPObjectBlock::UpdateMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:592,1
    - Dst: GetFirstUnusedByteOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:598,1
    - Dst: TABMAPObjectBlock::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:603,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:605,1
    - Dst: TABMAPObjectBlock::SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:607,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 614
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 614
    functionName: TABMAPObjectBlock::PrepareNewObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - GetFirstUnusedByteOffset
    - GetStartAddress
    - TABMAPObjectBlock::GetMBR
    - GotoByteInFile
    - TABMAPObjectBlock::UpdateMBR
    - TABMAPObjectBlock::SetMBR
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::PrepareNewObject(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:630,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:638,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:639,1
    - Dst: TABMAPObjHdr*::WriteObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 647
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 647
    functionName: TABMAPObjectBlock::CommitNewObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - GotoByteInBlock
    - TABMAPObjHdr*::WriteObj
    linkageType: ''
    returnType: int
    signature: int TABMAPObjectBlock::CommitNewObject(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:658,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:663,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:666,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:670,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:672,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:673,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:674,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:675,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:676,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:683,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:685,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:687,1
    - Dst: cpl::down_cast<TABMAPHeaderBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:692,1
    - Dst: TABMAPObjectBlock::Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:694,1
    - Dst: TABMAPObjHdr::ReadNextObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:696,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:699,1
    - Dst: TABMAPHeaderBlock*::GetMapObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:704,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - fpOut
    - bDetails
    argTypes:
    - FILE*
    - GBool
    constantsTouched: []
    func_position:
      end: 714
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 714
    functionName: TABMAPObjectBlock::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 1
    functionsReached:
    - TABRawBinBlock*::GetBlockClass
    - CPLErrorReset
    - fflush
    - TABMAPObjHdr::ReadNextObj
    - fprintf
    - TABCreateMAPBlockFromFile
    - TABMAPHeaderBlock*::GetMapObjectSize
    - CPLError
    - cpl::down_cast<TABMAPHeaderBlock *>
    - TABMAPObjectBlock::Rewind
    linkageType: ''
    returnType: void
    signature: void TABMAPObjectBlock::Dump(FILE *fpOut, GBool bDetails)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 730
    functionName: TABMAPObjHdr::~TABMAPObjHdr()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjHdr::~TABMAPObjHdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjNone::TABMAPObjNone
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:745,1
    - Dst: TABMAPObjPoint::TABMAPObjPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:749,1
    - Dst: TABMAPObjFontPoint::TABMAPObjFontPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:753,1
    - Dst: TABMAPObjCustomPoint::TABMAPObjCustomPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:757,1
    - Dst: TABMAPObjLine::TABMAPObjLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:761,1
    - Dst: TABMAPObjPLine::TABMAPObjPLine
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:777,1
    - Dst: TABMAPObjArc::TABMAPObjArc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:781,1
    - Dst: TABMAPObjRectEllipse::TABMAPObjRectEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:789,1
    - Dst: TABMAPObjText::TABMAPObjText
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:793,1
    - Dst: TABMAPObjMultiPoint::TABMAPObjMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:799,1
    - Dst: TABMAPObjCollection::TABMAPObjCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:805,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:808,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 2
    argNames:
    - nNewObjType
    - nId
    argTypes:
    - TABGeomType
    - GInt32
    constantsTouched: []
    func_position:
      end: 821
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 821
    functionName: TABMAPObjHdr::NewObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPObjCustomPoint::TABMAPObjCustomPoint
    - TABMAPObjText::TABMAPObjText
    - TABMAPObjNone::TABMAPObjNone
    - TABMAPObjCollection::TABMAPObjCollection
    - TABMAPObjMultiPoint::TABMAPObjMultiPoint
    - TABMAPObjPoint::TABMAPObjPoint
    - TABMAPObjFontPoint::TABMAPObjFontPoint
    - TABMAPObjArc::TABMAPObjArc
    - CPLError
    - TABMAPObjLine::TABMAPObjLine
    - TABMAPObjPLine::TABMAPObjPLine
    - TABMAPObjRectEllipse::TABMAPObjRectEllipse
    linkageType: ''
    returnType: TABMAPObjHdr
    signature: TABMAPObjHdr *TABMAPObjHdr::NewObj(TABGeomType nNewObjType, GInt32
      nId /*=0*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::AdvanceToNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:835,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:837,1
    - Dst: TABMAPObjectBlock*::GetCurObjectType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:837,1
    - Dst: TABMAPObjectBlock*::GetCurObjectId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:839,1
    - Dst: TABMAPObjHdr*::ReadObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - poObjBlock
    - poHeader
    argTypes:
    - TABMAPObjectBlock*
    - TABMAPHeaderBlock*
    constantsTouched: []
    func_position:
      end: 849
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 849
    functionName: TABMAPObjHdr::ReadNextObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 1
    functionsReached:
    - TABMAPObjHdr::NewObj
    - TABMAPObjectBlock*::GetCurObjectId
    - TABMAPObjHdr*::ReadObj
    - TABMAPObjectBlock*::AdvanceToNextObject
    - TABMAPObjectBlock*::GetCurObjectType
    linkageType: ''
    returnType: TABMAPObjHdr
    signature: "TABMAPObjHdr *TABMAPObjHdr::ReadNextObj(TABMAPObjectBlock *poObjBlock,\n
      \                                       TABMAPHeaderBlock *poHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 861
    functionName: TABMAPObjHdr::IsCompressedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GBool
    signature: GBool TABMAPObjHdr::IsCompressedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:873,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:873,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 875
    functionName: TABMAPObjHdr::WriteObjTypeAndId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - static_cast<GByte>
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjHdr::WriteObjTypeAndId(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:884,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:885,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:886,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nMinX
    - nMinY
    - nMaxX
    - nMaxY
    argTypes:
    - GInt32
    - GInt32
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 888
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 888
    functionName: TABMAPObjHdr::SetMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: void
    signature: "void TABMAPObjHdr::SetMBR(GInt32 nMinX, GInt32 nMinY, GInt32 nMaxX,\n
      \                         GInt32 nMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 897
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 897
    functionName: TABMAPObjNone::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABMAPObjNone::ReadObj(TABMAPObjectBlock *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: TABMAPObjHdrWithCoord::~TABMAPObjHdrWithCoord()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPObjHdrWithCoord::~TABMAPObjHdrWithCoord()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:922,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:922,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:923,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:923,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:925,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:927,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 933
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 933
    functionName: TABMAPObjLine::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - IsCompressedType
    - SetMBR
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    linkageType: ''
    returnType: int
    signature: int TABMAPObjLine::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:945,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:947,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:947,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:948,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:948,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:950,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 956
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 956
    functionName: TABMAPObjLine::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjectBlock*::WriteIntCoord
    - TABMAPObjHdr::WriteObjTypeAndId
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPObjLine::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:975,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:976,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:989,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1004,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1006,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1007,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1008,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1009,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1010,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1011,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1012,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1013,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1014,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1019,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1024,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1029,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1035,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1039,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1040,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1043,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1044,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1046,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1047,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1049,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1050,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1051,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1052,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1053,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1054,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1055,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1056,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1062,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1063,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1065,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1066,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1067,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1068,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1071,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1075,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1075,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1077,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1077,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1080,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1086,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1093,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1097
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 1097
    functionName: TABMAPObjPLine::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - static_cast<GIntBig>
    - IsCompressedType
    - static_cast<GInt32>
    - TABSaturatedAdd
    - CPLGetLastErrorType
    - CPLError
    - printf
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjPLine::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1109,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1111,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1115,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1117,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1125,1
    - Dst: TABMAPObjectBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1127,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1132,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1132,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1135,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1139,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1139,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1140,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1140,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1143,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1144,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1149,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1150,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1154,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1157,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1157,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1158,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1158,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1159,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1159,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1160,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1160,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1164,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1165,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1166,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1167,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1170,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1176,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1179,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1183
    functionName: TABMAPObjPLine::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteZeros
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjHdr::WriteObjTypeAndId
    - static_cast<GInt16>
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - TABInt16Diff
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjPLine::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1197,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1197,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1199,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1201,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: TABMAPObjPoint::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - IsCompressedType
    - SetMBR
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    linkageType: ''
    returnType: int
    signature: int TABMAPObjPoint::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1219,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1221,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1221,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1223,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1229
      start: 1216
    functionDepth: 2
    functionLinenumber: 1216
    functionLinenumberEnd: 1229
    functionName: TABMAPObjPoint::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjectBlock*::WriteIntCoord
    - TABMAPObjHdr::WriteObjTypeAndId
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPObjPoint::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1243,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1244,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1245,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1247,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1248,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1249,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1251,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1252,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1253,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1255,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1257,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1257,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1259,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1261,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1267
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1267
    functionName: TABMAPObjFontPoint::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - IsCompressedType
    - SetMBR
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjFontPoint::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1279,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1281,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1282,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1283,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1285,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1286,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1287,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1289,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1290,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1291,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1293,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1295,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1295,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1297,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1303
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1303
    functionName: TABMAPObjFontPoint::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjectBlock*::WriteIntCoord
    - TABMAPObjHdr::WriteObjTypeAndId
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPObjFontPoint::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1317,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1318,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1320,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1320,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1322,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1323,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1325,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1331
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1331
    functionName: TABMAPObjCustomPoint::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - IsCompressedType
    - SetMBR
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    linkageType: ''
    returnType: int
    signature: int TABMAPObjCustomPoint::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1343,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1345,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1346,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1347,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1347,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1349,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1350,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1356
    functionName: TABMAPObjCustomPoint::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjectBlock*::WriteIntCoord
    - TABMAPObjHdr::WriteObjTypeAndId
    - CPLGetLastErrorType
    linkageType: ''
    returnType: int
    signature: int TABMAPObjCustomPoint::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1372,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1374,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1375,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1379,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1380,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1384,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1384,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1385,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1385,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1387,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1388,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1394
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1394
    functionName: TABMAPObjRectEllipse::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - IsCompressedType
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjRectEllipse::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1406,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1410,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1412,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1412,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1413,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1413,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1417,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1418,1
    - Dst: TABMAPObjectBlock*::WriteIntMBRCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1422,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1423,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1425,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1426,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1432
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1432
    functionName: TABMAPObjRectEllipse::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjHdr::WriteObjTypeAndId
    - static_cast<GInt16>
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::WriteIntMBRCoord
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjRectEllipse::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1446,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1447,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1450,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1450,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1452,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1452,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1456,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1456,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1457,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1457,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1459,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1465
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1465
    functionName: TABMAPObjArc::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - IsCompressedType
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjArc::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1477,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1479,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1479,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1480,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1480,1
    - Dst: TABMAPObjectBlock*::WriteIntMBRCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1483,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1485,1
    - Dst: TABMAPObjectBlock*::WriteIntMBRCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1488,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1489,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1491,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1497
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1497
    functionName: TABMAPObjArc::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjHdr::WriteObjTypeAndId
    - static_cast<GInt16>
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::WriteIntMBRCoord
    linkageType: ''
    returnType: int
    signature: int TABMAPObjArc::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1511,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1512,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1515,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1518,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1520,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1522,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1524,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1525,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1526,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1528,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1529,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1530,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1533,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1533,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1536,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1537,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1539,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1542,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1545,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1545,1
    - Dst: TABMAPObjectBlock*::ReadIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1546,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1546,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1548,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1554
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1554
    functionName: TABMAPObjText::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - IsCompressedType
    - TABMAPObjectBlock*::ReadIntCoord
    - CPLGetLastErrorType
    - CPLError
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjText::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1566,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1568,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1569,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1570,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1571,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1572,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1574,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1574,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1576,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1578,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1579,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1580,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1582,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1583,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1584,1
    - Dst: TABMAPObjectBlock*::WriteIntCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1587,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1587,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1590,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1591,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1591,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1593,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1596,1
    - Dst: TABMAPObjectBlock*::WriteIntMBRCoord
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1599,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1600,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1602,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1608
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1608
    functionName: TABMAPObjText::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABMAPObjHdr::WriteObjTypeAndId
    - static_cast<GInt16>
    - TABMAPObjectBlock*::WriteIntCoord
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - TABMAPObjectBlock*::WriteIntMBRCoord
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjText::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1627,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1628,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1633,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1640,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1646,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1647,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1648,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1649,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1650,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1651,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1657,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1658,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1659,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1660,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1661,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1662,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1663,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1664,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1665,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1668,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1671,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1673,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1677,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1678,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1681,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1682,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1684,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1685,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1687,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1688,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1689,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1690,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1691,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1692,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1693,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1694,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1699,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1700,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1702,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1703,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1704,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1705,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1709,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1709,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1711,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1711,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1718
      start: 1625
    functionDepth: 2
    functionLinenumber: 1625
    functionLinenumberEnd: 1718
    functionName: TABMAPObjMultiPoint::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - static_cast<GIntBig>
    - IsCompressedType
    - static_cast<GInt32>
    - TABSaturatedAdd
    - CPLGetLastErrorType
    - CPLError
    - printf
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjMultiPoint::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1730,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1732,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1735,1
    - Dst: TABMAPObjectBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1738,1
    - Dst: TABMAPObjectBlock*::WriteZeros
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1744,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1748,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1751,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1754,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1758,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1758,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1759,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1759,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1761,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1762,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1765,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1765,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1766,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1766,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1767,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1767,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1768,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1768,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1773,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1774,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1776,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1777,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1778,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1779,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 1786
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1786
    functionName: TABMAPObjMultiPoint::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - TABMAPObjectBlock*::WriteZeros
    - IsCompressedType
    - TABMAPObjHdr::WriteObjTypeAndId
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - TABInt16Diff
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjMultiPoint::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1810,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1827,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1828,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1830,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1832,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1842,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1849,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1850,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1855,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1856,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1862,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1880,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1889,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1916,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1928,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1936,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1952,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1964,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1965,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1966,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1967,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1968,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1969,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1971,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1973,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1974,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1975,1
    - Dst: TABMAPObjectBlock*::ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1976,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1978,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1981,1
    - Dst: TABMAPObjectBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1982,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1985,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1986,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1988,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1989,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1990,1
    - Dst: TABMAPObjectBlock*::ReadInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1991,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1992,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1993,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1994,1
    - Dst: TABSaturatedAdd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1995,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:1997,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2003,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2004,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2005,1
    - Dst: TABMAPObjectBlock*::ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2006,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2010,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2010,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2012,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2012,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2015,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 106
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 2019
      start: 1802
    functionDepth: 2
    functionLinenumber: 1802
    functionLinenumberEnd: 2019
    functionName: TABMAPObjCollection::ReadObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::ReadInt32
    - static_cast<GIntBig>
    - IsCompressedType
    - TABMAPObjectBlock*::GetCurAddress
    - static_cast<GInt32>
    - TABSaturatedAdd
    - CPLGetLastErrorType
    - CPLError
    - printf
    - TABMAPObjectBlock*::ReadByte
    - TABMAPObjectBlock*::ReadInt16
    linkageType: ''
    returnType: int
    signature: int TABMAPObjCollection::ReadObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjHdr::WriteObjTypeAndId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2031,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2050,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2051,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2052,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2054,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2060,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2060,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2061,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2061,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2066,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2067,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2073,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2077,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2078,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2079,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2080,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2081,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2082,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2084,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2086,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2087,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2088,1
    - Dst: TABMAPObjectBlock*::WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2089,1
    - Dst: IsCompressedType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2091,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2094,1
    - Dst: TABMAPObjectBlock*::GetCurAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2095,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2098,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2099,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2101,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2101,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2102,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2102,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2103,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2103,1
    - Dst: TABMAPObjectBlock*::WriteInt16
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2104,1
    - Dst: TABInt16Diff
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2104,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2108,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2109,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2110,1
    - Dst: TABMAPObjectBlock*::WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2111,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp:2114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - poObjBlock
    argTypes:
    - TABMAPObjectBlock*
    constantsTouched: []
    func_position:
      end: 2118
      start: 2028
    functionDepth: 2
    functionLinenumber: 2028
    functionLinenumberEnd: 2118
    functionName: TABMAPObjCollection::WriteObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapobjectblock.cpp
    functionUses: 0
    functionsReached:
    - TABMAPObjectBlock*::WriteByte
    - IsCompressedType
    - TABInt16Diff
    - TABMAPObjHdr::WriteObjTypeAndId
    - static_cast<GInt16>
    - TABMAPObjectBlock*::GetCurAddress
    - TABMAPObjectBlock*::WriteInt16
    - CPLGetLastErrorType
    - printf
    - TABMAPObjectBlock*::WriteInt32
    linkageType: ''
    returnType: int
    signature: int TABMAPObjCollection::WriteObj(TABMAPObjectBlock *poObjBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: OGRTABDataSource::GetUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_ogr_driver.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUpdate() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: TABMAPFile::TABMAPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - SetName
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::TABMAPFile(const char *pszEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TABMAPFile::~TABMAPFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::Close
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::~TABMAPFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:85,1
    - Dst: TABMAPFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:86,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:87,1
    - Dst: TABMAPFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:88,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pszFname
    - pszAccess
    - bNoErrorMsg
    - nBlockSizeForCreate
    argTypes:
    - char*
    - char*
    - GBool
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: TABMAPFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABMAPFile::Open
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::Open(const char *pszFname, const char *pszAccess,\n
      \                    GBool bNoErrorMsg, int nBlockSizeForCreate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:123,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:144,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:155,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:157,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:167,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:169,1
    - Dst: cpl::down_cast<TABMAPHeaderBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:170,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:176,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:180,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:185,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:186,1
    - Dst: SetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:192,1
    - Dst: cpl::down_cast<TABMAPHeaderBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:193,1
    - Dst: TABMAPHeaderBlock::TABMAPHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:202,1
    - Dst: TABRawBinBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:204,1
    - Dst: SetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:206,1
    - Dst: SetLastPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:208,1
    - Dst: SetLastPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:210,1
    - Dst: TABMAPHeaderBlock::TABMAPHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:227,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:234,1
    - Dst: cpl::down_cast<TABMAPHeaderBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:242,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:243,1
    - Dst: TABMAPObjectBlock::TABMAPObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:258,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:259,1
    - Dst: TABIDFile::TABIDFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:269,1
    - Dst: TABMAPFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:270,1
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:273,1
    - Dst: TABMAPFile::ResetCoordFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:284,1
    - Dst: TABMAPFile::GetIndexObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:304,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:306,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:307,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:309,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:314,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:316,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:317,1
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:338,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:344,1
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:346,1
    - Dst: SetLastPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:349,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:349,1
    - Dst: PushGarbageBlockAsLast
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:357,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:362,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:363,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:364,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:374,1
    - Dst: PushGarbageBlockAsLast
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:381,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:389,1
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:392,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 124
    argCount: 4
    argNames:
    - pszFname
    - eAccess
    - bNoErrorMsg
    - nBlockSizeForCreate
    argTypes:
    - char*
    - TABAccess
    - GBool
    - int
    constantsTouched: []
    func_position:
      end: 397
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 397
    functionName: TABMAPFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached:
    - TABMAPFile::Close
    - TABCreateMAPBlockFromFile
    - PushGarbageBlockAsLast
    - CPLError
    - Reset
    - TABRawBinBlock*::GetBlockClass
    - CPLErrorReset
    - SetBlockSize
    - InitNewBlock
    - CPLStrdup
    - TABMAPFile::InitDrawingTools
    - TABMAPFile::ResetCoordFilter
    - TABMAPHeaderBlock::TABMAPHeaderBlock
    - static_cast<int>
    - TABIDFile::TABIDFile
    - VSIFSeekL
    - VSIFOpenL
    - TABMAPFile::Open
    - VSIFReadL
    - cpl::down_cast<TABMAPHeaderBlock *>
    - TABMAPObjectBlock::TABMAPObjectBlock
    - TABMAPFile::GetIndexObjectBlock
    - SetLastPtr
    - VSIStatL
    - VSIFCloseL
    - TABRawBinBlock*::InitNewBlock
    - SetMBR
    - CPLGetLastErrorType
    - cpl::down_cast<TABMAPIndexBlock *>
    - TABRawBinBlock*::GetBlockType
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::Open(const char *pszFname, TABAccess eAccess,\n                     GBool
      bNoErrorMsg /* = FALSE */,\n                     int nBlockSizeForCreate /*
      = 512 */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:418,1
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:428,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:463,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 470
    functionName: TABMAPFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 3
    functionsReached:
    - TABMAPFile::Close
    - CPLFree
    - TABMAPFile::SyncToDisk
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:480,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:481,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:482,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:483,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: TABMAPFile::GetFileSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    - static_cast<GUInt32>
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 TABMAPFile::GetFileSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:495,1
    - Dst: TABMAPFile::CommitObjAndCoordBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:505,1
    - Dst: TABMAPFile::CommitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:509,1
    - Dst: TABMAPFile::CommitSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:513,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:528,1
    - Dst: GetFirstGarbageBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:533,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:535,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:547,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:550,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:551,1
    - Dst: TABMAPFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:560,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 566
    functionName: TABMAPFile::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached:
    - TABMAPFile::CommitSpatialIndex
    - CommitToFile
    - static_cast<CPLErrorNum>
    - TABMAPFile::SyncToDisk
    - TABMAPFile::Int2Coordsys
    - TABMAPFile::CommitObjAndCoordBlocks
    - min
    - TABMAPFile::CommitDrawingTools
    - CPLError
    - GetFirstGarbageBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:575,1
    - Dst: TABMAPFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:576,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:578,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 583
    functionName: TABMAPFile::ReOpenReadWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::Open
    - TABMAPFile::Close
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::ReOpenReadWrite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:606,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bQuickSpatialIndexMode
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 623
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 623
    functionName: TABMAPFile::SetQuickSpatialIndexMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::SetQuickSpatialIndexMode(GBool bQuickSpatialIndexMode
      /*=TRUE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::GetIndexObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:636,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:640,1
    - Dst: std::unique_ptr<TABMAPIndexBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:642,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:643,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:648,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:653,1
    - Dst: GetEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:654,1
    - Dst: GetCurChildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:654,1
    - Dst: SetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:657,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:657,1
    - Dst: GetCurChildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:658,1
    - Dst: GetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:659,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:664,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:664,1
    - Dst: cpl::down_cast<TABMAPObjectBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - nFileOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 677
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 677
    functionName: TABMAPFile::PushBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::GetIndexObjectBlock
    - GetCurChild
    - auto::release
    - GetCurChildIndex
    - SetCurChild
    - GetEntry
    - cpl::down_cast<TABMAPObjectBlock *>
    - CPLAssert
    - std::move
    - std::unique_ptr<TABMAPIndexBlock>
    - cpl::down_cast<TABMAPIndexBlock *>
    - TABRawBinBlock*::GetBlockType
    linkageType: ''
    returnType: TABRawBinBlock
    signature: TABRawBinBlock *TABMAPFile::PushBlock(int nFileOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:692,1
    - Dst: UnsetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:700,1
    - Dst: TABMAPFile::PushBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:705,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:710,1
    - Dst: GetNumEntries
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:720,1
    - Dst: GetParentRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:722,1
    - Dst: UnsetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:724,1
    - Dst: TABMAPIndexBlock*::SetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:729,1
    - Dst: TABMAPIndexBlock*::GetCurChildIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:729,1
    - Dst: SetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:734,1
    - Dst: GetEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:736,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:739,1
    - Dst: TABMAPFile::PushBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:746,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:749,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - bFirstObject
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 758
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 758
    functionName: TABMAPFile::LoadNextMatchingObjectBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - GetNumEntries
    - TABMAPIndexBlock*::GetCurChildIndex
    - UnsetCurChild
    - TABMAPIndexBlock*::SetCurChild
    - GetEntry
    - GetParentRef
    - CPLAssert
    - TABMAPFile::PushBlock
    - SetCurChild
    - TABRawBinBlock*::GetBlockType
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::LoadNextMatchingObjectBlock(int bFirstObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::CommitObjAndCoordBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:772,1
    - Dst: UnsetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: TABMAPFile::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::CommitObjAndCoordBlocks
    - UnsetCurChild
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:796,1
    - Dst: TABMAPFile::ReOpenReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:802,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:822,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:828,1
    - Dst: AdvanceToNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:843,1
    - Dst: TABMAPFile::LoadNextMatchingObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:852,1
    - Dst: AdvanceToNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:856,1
    - Dst: GetCurObjectType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:859,1
    - Dst: GetCurObjectId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:860,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:861,1
    - Dst: GetCurObjectOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:862,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:864,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 867
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 867
    functionName: TABMAPFile::GetNextFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - GetStartAddress
    - GetCurObjectType
    - GetCurObjectOffset
    - CPLAssert
    - TABMAPFile::ReOpenReadWrite
    - AdvanceToNextObject
    - CPLError
    - TABMAPFile::LoadNextMatchingObjectBlock
    - GetCurObjectId
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::GetNextFeatureId(int nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - nX
    - nY
    - dX
    - dY
    argTypes:
    - GInt32
    - GInt32
    - double
    - double
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: TABMAPFile::Int2Coordsys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached:
    - TABMAPFile::Int2Coordsys
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::Int2Coordsys(GInt32 nX, GInt32 nY, double &dX, double
      &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dX
    - dY
    - nX
    - nY
    - bIgnoreOverflow
    argTypes:
    - double
    - double
    - GInt32
    - GInt32
    - GBool
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: TABMAPFile::Coordsys2Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile::Coordsys2Int
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::Coordsys2Int(double dX, double dY, GInt32 &nX, GInt32
      &nY,\n                             GBool bIgnoreOverflow /*=FALSE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Int2CoordsysDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - nX
    - nY
    - dX
    - dY
    argTypes:
    - GInt32
    - GInt32
    - double
    - double
    constantsTouched: []
    func_position:
      end: 929
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 929
    functionName: TABMAPFile::Int2CoordsysDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile::Int2CoordsysDist
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::Int2CoordsysDist(GInt32 nX, GInt32 nY, double &dX,
      double &dY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Coordsys2IntDist
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - dX
    - dY
    - nX
    - nY
    argTypes:
    - double
    - double
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 952
    functionName: TABMAPFile::Coordsys2IntDist
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile::Coordsys2IntDist
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::Coordsys2IntDist(double dX, double dY, GInt32 &nX,
      GInt32 &nY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::ResetCoordFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 977
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 977
    functionName: TABMAPFile::SetCoordsysBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::ResetCoordFilter
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::SetCoordsysBounds(double dXMin, double dYMin, double
      dXMax,\n                                  double dYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::GetMaxObjId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 994
    functionName: TABMAPFile::GetMaxObjId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile::GetMaxObjId
    linkageType: ''
    returnType: GInt32
    signature: GInt32 TABMAPFile::GetMaxObjId()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1014,1
    - Dst: TABMAPFile::ReOpenReadWrite
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1020,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1032,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1042,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1059,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1076,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1083,1
    - Dst: TABMAPFile::IsValidObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1084,1
    - Dst: static_cast<TABGeomType>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1086,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1090,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1092,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 1
    argNames:
    - nObjId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1137
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1137
    functionName: TABMAPFile::MoveToObjId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TABGeomType>
    - static_cast<CPLErrorNum>
    - TABMAPFile::IsValidObjType
    - GotoByteInFile
    - CPLAssert
    - TABMAPFile::ReOpenReadWrite
    - ReadByte
    - ReadInt32
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::MoveToObjId(int nObjId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1157,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1161,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1163,1
    - Dst: SetObjPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1177
    functionName: TABMAPFile::MarkAsDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - WriteInt32
    - CommitToFile
    - SetObjPtr
    - GotoByteInFile
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::MarkAsDeleted()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 16
    argCount: 1
    argNames:
    - nObjType
    argTypes:
    - TABGeomType
    constantsTouched: []
    func_position:
      end: 1239
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1239
    functionName: TABMAPFile::UpdateMapHeaderInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::UpdateMapHeaderInfo(TABGeomType nObjType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1282,1
    - Dst: UnsetCurChild
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1292,1
    - Dst: SetObjPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1304,1
    - Dst: TABMAPFile::UpdateMapHeaderInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1313,1
    - Dst: TABMAPFile::PrepareNewObjViaSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1323,1
    - Dst: TABMAPFile::PrepareNewObjViaObjBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1328,1
    - Dst: PrepareNewObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1337,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1340,1
    - Dst: SetObjPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1352,1
    - Dst: TABMAPFile::PrepareCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1358,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 1367
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1367
    functionName: TABMAPFile::PrepareNewObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::PrepareNewObjViaObjBlock
    - UnsetCurChild
    - TABMAPFile::PrepareNewObjViaSpatialIndex
    - PrepareNewObject
    - TABMAPFile::PrepareCoordBlock
    - TABMAPFile::UpdateMapHeaderInfo
    - SetObjPtr
    - CPLGetLastErrorType
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::PrepareNewObj(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPIndexBlock::TABMAPIndexBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1395,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1397,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1398,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1399,1
    - Dst: TABMAPFile::GetIndexObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1407,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1408,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1409,1
    - Dst: AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1412,1
    - Dst: GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1423,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1428,1
    - Dst: ChooseLeafForInsert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1436,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1442,1
    - Dst: TABMAPObjectBlock::TABMAPObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1453,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1457,1
    - Dst: AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1463,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1465,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1468,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1472,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1472,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1473,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1482,1
    - Dst: TABMAPFile::CommitObjAndCoordBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1485,1
    - Dst: TABMAPFile::LoadObjAndCoordBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1491,1
    - Dst: LockCenter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1496,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1502,1
    - Dst: GetCurLeafEntryMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1505,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1505,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1507,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1521,1
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1528,1
    - Dst: TABMAPObjHdr::ReadNextObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1530,1
    - Dst: GetMapObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1533,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1534,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1539,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1542,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1545,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1546,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1546,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1548,1
    - Dst: ClearObjects
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1551,1
    - Dst: CommitNewObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1561,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1561,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1563,1
    - Dst: SetObjPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1572,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1577,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1583,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1586,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1587,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1588,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1589,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1591,1
    - Dst: UpdateLeafEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1593,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1593,1
    - Dst: std::unique_ptr<TABMAPObjectBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1607,1
    - Dst: TABMAPFile::SplitObjBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1608,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1622,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1623,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1626,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1627,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1628,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1629,1
    - Dst: SetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1631,1
    - Dst: UpdateLeafEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1633,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1633,1
    - Dst: auto::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1640,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1641,1
    - Dst: AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1643,1
    - Dst: auto::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1644,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1647,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1647,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1648,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 1657
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1657
    functionName: TABMAPFile::PrepareNewObjViaSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - AddEntry
    - std::vector::size
    - std::vector::emplace_back
    - CPLDebug
    - ChooseLeafForInsert
    - TABMAPFile::CommitObjAndCoordBlocks
    - static_cast<GByte>
    - SetObjPtr
    - CPLError
    - GetNumUnusedBytes
    - GetMBR
    - InitNewBlock
    - TABMAPFile::LoadObjAndCoordBlocks
    - ClearObjects
    - GetCurLeafEntryMBR
    - AllocNewBlock
    - GetMapObjectSize
    - TABMAPFile::SplitObjBlock
    - auto::GetMBR
    - SetMAPBlockManagerRef
    - static_cast<int>
    - auto::GetStartAddress
    - get
    - GetNodeBlockPtr
    - UpdateLeafEntry
    - min
    - CPLAssert
    - CommitNewObject
    - TABMAPIndexBlock::TABMAPIndexBlock
    - Rewind
    - TABMAPObjectBlock::TABMAPObjectBlock
    - TABMAPFile::GetIndexObjectBlock
    - GetStartAddress
    - std::unique_ptr<TABMAPObjectBlock>
    - SetMBR
    - TABMAPObjHdr::ReadNextObj
    - max
    - LockCenter
    - TABRawBinBlock*::GetBlockType
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::PrepareNewObjViaSpatialIndex(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPObjectBlock::TABMAPObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1684,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1688,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1702,1
    - Dst: TABMAPFile::CommitObjAndCoordBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1709,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1711,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 1729
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1729
    functionName: TABMAPFile::PrepareNewObjViaObjBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPObjectBlock::TABMAPObjectBlock
    - InitNewBlock
    - TABMAPFile::CommitObjAndCoordBlocks
    - GetNumUnusedBytes
    - AllocNewBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::PrepareNewObjViaObjBlock(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddCoordBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1751,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1751,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1756,1
    - Dst: CommitNewObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poObjHdr
    argTypes:
    - TABMAPObjHdr*
    constantsTouched: []
    func_position:
      end: 1761
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1761
    functionName: TABMAPFile::CommitNewObj
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - GetStartAddress
    - GetMBR
    - CommitNewObject
    - AddCoordBlockRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::CommitNewObj(TABMAPObjHdr *poObjHdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1785,1
    - Dst: AddCoordBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1819,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1819,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1820,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1834,1
    - Dst: TABMAPIndexBlock::TABMAPIndexBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1850,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1852,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1853,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1854,1
    - Dst: GetNodeBlockPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1856,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1860,1
    - Dst: AddEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1861,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1862,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1865,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1865,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1866,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - bDeleteObjects
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 1879
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1879
    functionName: TABMAPFile::CommitObjAndCoordBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 4
    functionsReached:
    - GetMBR
    - CommitToFile
    - SetMAPBlockManagerRef
    - GetStartAddress
    - InitNewBlock
    - AddEntry
    - static_cast<int>
    - GetNodeBlockPtr
    - static_cast<GByte>
    - max
    - TABMAPIndexBlock::TABMAPIndexBlock
    - CPLError
    - AddCoordBlockRef
    - AllocNewBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::CommitObjAndCoordBlocks(GBool bDeleteObjects /*=FALSE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1907,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1909,1
    - Dst: cpl::down_cast<TABMAPObjectBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1916,1
    - Dst: GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1925,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1931,1
    - Dst: GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1932,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1934,1
    - Dst: cpl::down_cast<TABMAPCoordBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1936,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1942,1
    - Dst: GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - nBlockPtr
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 1949
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1949
    functionName: TABMAPFile::LoadObjAndCoordBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABRawBinBlock*::GetBlockClass
    - SetMAPBlockManagerRef
    - CPLError
    - GetLastCoordBlockAddress
    - TABCreateMAPBlockFromFile
    - cpl::down_cast<TABMAPCoordBlock *>
    - cpl::down_cast<TABMAPObjectBlock *>
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::LoadObjAndCoordBlocks(GInt32 nBlockPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1974,1
    - Dst: TABMAPObjHdr::ReadNextObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1976,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1978,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1981,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1981,1
    - Dst: GetFirstCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1986,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1988,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1989,1
    - Dst: std::make_unique<TABMAPObjectBlock>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1997,1
    - Dst: auto::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1998,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:1999,1
    - Dst: auto::SetCenterFromOtherBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2003,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2012,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2012,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2021,1
    - Dst: TABMAPIndexBlock::PickSeedsForSplit
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2025,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2026,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2026,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2026,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2034,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2034,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2034,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2041,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2041,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2041,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2042,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2055,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2055,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2061,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2067,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2069,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2069,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2070,1
    - Dst: auto::GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2074,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2077,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2077,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2085,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2086,1
    - Dst: auto::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2091,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2092,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2100,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2100,1
    - Dst: TABMAPFile::MoveObjToBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2107,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2107,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2108,1
    - Dst: TABMAPCoordBlock*::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2120,1
    - Dst: std::unique_ptr::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2132,1
    - Dst: std::unique_ptr::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2134,1
    - Dst: std::unique_ptr::CommitAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2144,1
    - Dst: GetFirstGarbageBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2145,1
    - Dst: PushGarbageBlockAsFirst
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2149,1
    - Dst: std::unique_ptr::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2150,1
    - Dst: std::unique_ptr::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2155,1
    - Dst: std::unique_ptr::GetNextCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2158,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2163,1
    - Dst: auto::CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2168,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2171,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 2
    argNames:
    - poObjHdrToAdd
    - nSizeOfObjToAdd
    argTypes:
    - TABMAPObjHdr*
    - int
    constantsTouched: []
    func_position:
      end: 2172
      start: 1966
    functionDepth: 3
    functionLinenumber: 1966
    functionLinenumberEnd: 2172
    functionName: TABMAPFile::SplitObjBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPCoordBlock*::CommitToFile
    - TABMAPFile::MoveObjToBlock
    - std::vector::size
    - std::vector::emplace_back
    - std::make_unique<TABMAPObjectBlock>
    - auto::get
    - std::unique_ptr::GotoByteInFile
    - auto::SetCenterFromOtherBlock
    - auto::GetNumUnusedBytes
    - GetNumUnusedBytes
    - std::unique_ptr::GetStartAddress
    - GetMBR
    - InitNewBlock
    - TABMAPIndexBlock::PickSeedsForSplit
    - std::vector::reserve
    - GetFirstCoordBlockAddress
    - std::unique_ptr::reset
    - AllocNewBlock
    - std::vector::data
    - auto::GetMBR
    - static_cast<int>
    - get
    - CPLAssert
    - Rewind
    - auto::InitNewBlock
    - std::unique_ptr::get
    - GetStartAddress
    - auto::release
    - std::unique_ptr::CommitAsDeleted
    - TABMAPObjHdr::ReadNextObj
    - std::unique_ptr::GetNextCoordBlock
    - auto::CommitToFile
    - PushGarbageBlockAsFirst
    - GetFirstGarbageBlock
    linkageType: ''
    returnType: TABMAPObjectBlock
    signature: "TABMAPObjectBlock *TABMAPFile::SplitObjBlock(TABMAPObjHdr *poObjHdrToAdd,\n
      \                                            int nSizeOfObjToAdd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapObjectUsesCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2195,1
    - Dst: cpl::down_cast<TABMAPObjHdrWithCoord *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2198,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2199,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2201,1
    - Dst: TABFeature::CreateFromMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2204,1
    - Dst: TABMAPFile::PrepareCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2206,1
    - Dst: TABMAPCoordBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2217,1
    - Dst: TABFeature*::ReadGeometryFromMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2218,1
    - Dst: TABFeature*::WriteGeometryToMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2221,1
    - Dst: TABMAPObjectBlock*::AddCoordBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2233,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2233,1
    - Dst: OGRFeatureDefn*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2236,1
    - Dst: TABMAPObjectBlock*::CommitNewObject
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2245,1
    - Dst: SetObjPtr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - poObjHdr
    - poSrcCoordBlock
    - poDstObjBlock
    - ppoDstCoordBlock
    argTypes:
    - TABMAPObjHdr*
    - TABMAPCoordBlock*
    - TABMAPObjectBlock*
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 2257
      start: 2185
    functionDepth: 2
    functionLinenumber: 2185
    functionLinenumberEnd: 2257
    functionName: TABMAPFile::MoveObjToBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::Reference
    - TABFeature*::ReadGeometryFromMAPFile
    - GetStartAddress
    - OGRFeatureDefn*::Release
    - OGRFeatureDefn::OGRFeatureDefn
    - TABMAPFile::PrepareCoordBlock
    - MapObjectUsesCoordBlock
    - TABMAPCoordBlock*::GotoByteInFile
    - TABFeature*::WriteGeometryToMAPFile
    - TABMAPObjectBlock*::AddCoordBlockRef
    - TABMAPObjectBlock*::CommitNewObject
    - SetObjPtr
    - cpl::down_cast<TABMAPObjHdrWithCoord *>
    - CPLError
    - TABFeature::CreateFromMapInfoType
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::MoveObjToBlock(TABMAPObjHdr *poObjHdr,\n                               TABMAPCoordBlock
      *poSrcCoordBlock,\n                               TABMAPObjectBlock *poDstObjBlock,\n
      \                              TABMAPCoordBlock **ppoDstCoordBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapObjectUsesCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2277,1
    - Dst: TABMAPCoordBlock::TABMAPCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2281,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2283,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2285,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2286,1
    - Dst: TABMAPObjectBlock*::AddCoordBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2289,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2289,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2293,1
    - Dst: TABMAPObjectBlock*::GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2294,1
    - Dst: TABCreateMAPBlockFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2296,1
    - Dst: TABMAPObjectBlock*::GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2297,1
    - Dst: TABRawBinBlock*::GetBlockClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2300,1
    - Dst: cpl::down_cast<TABMAPCoordBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2303,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2304,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2309,1
    - Dst: TABMAPObjectBlock*::GetLastCoordBlockAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2312,1
    - Dst: GetNumUnusedBytes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2317,1
    - Dst: SetNextCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2320,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2321,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2321,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2322,1
    - Dst: TABMAPObjectBlock*::AddCoordBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2325,1
    - Dst: GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2325,1
    - Dst: SeekEnd
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2329,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - nObjType
    - poObjBlock
    - ppoCoordBlock
    argTypes:
    - int
    - TABMAPObjectBlock*
    - TABMAPCoordBlock**
    constantsTouched: []
    func_position:
      end: 2336
      start: 2267
    functionDepth: 2
    functionLinenumber: 2267
    functionLinenumberEnd: 2336
    functionName: TABMAPFile::PrepareCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached:
    - CommitToFile
    - TABRawBinBlock*::GetBlockClass
    - SetMAPBlockManagerRef
    - InitNewBlock
    - GetStartAddress
    - SeekEnd
    - MapObjectUsesCoordBlock
    - TABCreateMAPBlockFromFile
    - SetNextCoordBlock
    - cpl::down_cast<TABMAPCoordBlock *>
    - GetNumUnusedBytes
    - TABMAPObjectBlock*::AddCoordBlockRef
    - CPL_IGNORE_RET_VAL
    - CPLGetLastErrorType
    - TABMAPCoordBlock::TABMAPCoordBlock
    - CPLError
    - AllocNewBlock
    - TABMAPObjectBlock*::GetLastCoordBlockAddress
    linkageType: ''
    returnType: int
    signature: "int TABMAPFile::PrepareCoordBlock(int nObjType, TABMAPObjectBlock
      *poObjBlock,\n                                  TABMAPCoordBlock **ppoCoordBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2349
    functionName: TABMAPFile::GetCurObjType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABGeomType
    signature: TABGeomType TABMAPFile::GetCurObjType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2362
    functionName: TABMAPFile::GetCurObjId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::GetCurObjId()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2374
    functionDepth: 0
    functionLinenumber: 2374
    functionLinenumberEnd: 2377
    functionName: TABMAPFile::GetCurObjBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPObjectBlock
    signature: TABMAPObjectBlock *TABMAPFile::GetCurObjBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2389
    functionDepth: 0
    functionLinenumber: 2389
    functionLinenumberEnd: 2392
    functionName: TABMAPFile::GetCurCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPCoordBlock
    signature: TABMAPCoordBlock *TABMAPFile::GetCurCoordBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPCoordBlock::TABMAPCoordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2412,1
    - Dst: InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2413,1
    - Dst: SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2414,1
    - Dst: GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2424,1
    - Dst: GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - nFileOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2434
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2434
    functionName: TABMAPFile::GetCoordBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - SetMAPBlockManagerRef
    - InitNewBlock
    - GotoByteInFile
    - TABMAPCoordBlock::TABMAPCoordBlock
    - GotoByteInBlock
    linkageType: ''
    returnType: TABMAPCoordBlock
    signature: TABMAPCoordBlock *TABMAPFile::GetCoordBlock(int nFileOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2449
    functionName: TABMAPFile::GetHeaderBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABMAPHeaderBlock
    signature: TABMAPHeaderBlock *TABMAPFile::GetHeaderBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2461
    functionDepth: 0
    functionLinenumber: 2461
    functionLinenumberEnd: 2464
    functionName: TABMAPFile::GetIDFileRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TABIDFile
    signature: TABIDFile *TABMAPFile::GetIDFileRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2487,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2487,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2489,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2490,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2490,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2494,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2497,1
    - Dst: TABMAPIndexBlock::TABMAPIndexBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2509,1
    - Dst: TABMAPIndexBlock*::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2511,1
    - Dst: TABMAPObjectBlock::TABMAPObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2514,1
    - Dst: TABRawBinBlock*::InitBlockFromData
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - nFileOffset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2521
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2521
    functionName: TABMAPFile::GetIndexObjectBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 3
    functionsReached:
    - TABMAPObjectBlock::TABMAPObjectBlock
    - static_cast<int>
    - TABMAPIndexBlock*::SetMAPBlockManagerRef
    - VSIFSeekL
    - TABMAPIndexBlock::TABMAPIndexBlock
    - VSIFReadL
    - static_cast<GByte *>
    - CPLError
    - CPLMalloc
    - CPLFree
    - TABRawBinBlock*::InitBlockFromData
    linkageType: ''
    returnType: TABRawBinBlock
    signature: TABRawBinBlock *TABMAPFile::GetIndexObjectBlock(int nFileOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABToolDefTable::TABToolDefTable
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2551,1
    - Dst: TABMAPToolBlock::TABMAPToolBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2556,1
    - Dst: TABMAPToolBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2557,1
    - Dst: TABMAPToolBlock*::GotoByteInFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2565,1
    - Dst: TABMAPToolBlock*::GotoByteInBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2572,1
    - Dst: ReadAllToolDefs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2579
    functionName: TABMAPFile::InitDrawingTools
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPToolBlock::TABMAPToolBlock
    - TABToolDefTable::TABToolDefTable
    - ReadAllToolDefs
    - TABMAPToolBlock*::GotoByteInFile
    - TABMAPToolBlock*::InitNewBlock
    - TABMAPToolBlock*::GotoByteInBlock
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::InitDrawingTools()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2596,1
    - Dst: GetNumPen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2603,1
    - Dst: GetNumBrushes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2603,1
    - Dst: GetNumFonts
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2604,1
    - Dst: GetNumSymbols
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2604,1
    - Dst: TABMAPToolBlock::TABMAPToolBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2613,1
    - Dst: TABMAPToolBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2615,1
    - Dst: TABMAPToolBlock*::InitNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2618,1
    - Dst: AllocNewBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2619,1
    - Dst: TABMAPToolBlock*::SetMAPBlockManagerRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2620,1
    - Dst: TABMAPToolBlock*::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2622,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2625,1
    - Dst: GetNumPen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2625,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2627,1
    - Dst: GetNumBrushes
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2627,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2629,1
    - Dst: GetNumFonts
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2629,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2631,1
    - Dst: GetNumSymbols
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2631,1
    - Dst: WriteAllToolDefs
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2638,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2641,1
    - Dst: TABMAPToolBlock*::GetNumBlocksInChain
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2646
    functionName: TABMAPFile::CommitDrawingTools
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - GetNumSymbols
    - GetNumBrushes
    - TABMAPToolBlock*::GetStartAddress
    - TABMAPToolBlock::TABMAPToolBlock
    - WriteAllToolDefs
    - GetNumFonts
    - static_cast<GByte>
    - GetNumPen
    - TABMAPToolBlock*::InitNewBlock
    - TABMAPToolBlock*::SetMAPBlockManagerRef
    - CPLError
    - AllocNewBlock
    - TABMAPToolBlock*::GetNumBlocksInChain
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::CommitDrawingTools()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2660,1
    - Dst: GetPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nPenIndex
    - psDef
    argTypes:
    - int
    - TABPenDef*
    constantsTouched: []
    func_position:
      end: 2677
      start: 2658
    functionDepth: 2
    functionLinenumber: 2658
    functionLinenumberEnd: 2677
    functionName: TABMAPFile::ReadPenDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - GetPenDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::ReadPenDef(int nPenIndex, TABPenDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2694,1
    - Dst: AddPenDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - psDef
    argTypes:
    - TABPenDef*
    constantsTouched: []
    func_position:
      end: 2701
      start: 2691
    functionDepth: 2
    functionLinenumber: 2691
    functionLinenumberEnd: 2701
    functionName: TABMAPFile::WritePenDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - AddPenDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::WritePenDef(TABPenDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2715,1
    - Dst: GetBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nBrushIndex
    - psDef
    argTypes:
    - int
    - TABBrushDef*
    constantsTouched: []
    func_position:
      end: 2732
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2732
    functionName: TABMAPFile::ReadBrushDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - GetBrushDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::ReadBrushDef(int nBrushIndex, TABBrushDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2749,1
    - Dst: AddBrushDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - psDef
    argTypes:
    - TABBrushDef*
    constantsTouched: []
    func_position:
      end: 2756
      start: 2746
    functionDepth: 2
    functionLinenumber: 2746
    functionLinenumberEnd: 2756
    functionName: TABMAPFile::WriteBrushDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - AddBrushDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::WriteBrushDef(TABBrushDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2770,1
    - Dst: GetFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nFontIndex
    - psDef
    argTypes:
    - int
    - TABFontDef*
    constantsTouched: []
    func_position:
      end: 2787
      start: 2768
    functionDepth: 2
    functionLinenumber: 2768
    functionLinenumberEnd: 2787
    functionName: TABMAPFile::ReadFontDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - GetFontDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::ReadFontDef(int nFontIndex, TABFontDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2804,1
    - Dst: AddFontDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - psDef
    argTypes:
    - TABFontDef*
    constantsTouched: []
    func_position:
      end: 2811
      start: 2801
    functionDepth: 2
    functionLinenumber: 2801
    functionLinenumberEnd: 2811
    functionName: TABMAPFile::WriteFontDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - AddFontDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::WriteFontDef(TABFontDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2825,1
    - Dst: GetSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nSymbolIndex
    - psDef
    argTypes:
    - int
    - TABSymbolDef*
    constantsTouched: []
    func_position:
      end: 2842
      start: 2823
    functionDepth: 2
    functionLinenumber: 2823
    functionLinenumberEnd: 2842
    functionName: TABMAPFile::ReadSymbolDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - GetSymbolDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::ReadSymbolDef(int nSymbolIndex, TABSymbolDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::InitDrawingTools
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2859,1
    - Dst: AddSymbolDefRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - psDef
    argTypes:
    - TABSymbolDef*
    constantsTouched: []
    func_position:
      end: 2866
      start: 2856
    functionDepth: 2
    functionLinenumber: 2856
    functionLinenumberEnd: 2866
    functionName: TABMAPFile::WriteSymbolDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::InitDrawingTools
    - AddSymbolDefRef
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::WriteSymbolDef(TABSymbolDef *psDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2872
      start: 2868
    functionDepth: 1
    functionLinenumber: 2868
    functionLinenumberEnd: 2872
    functionName: ORDER_MIN_MAX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void ORDER_MIN_MAX(double &min, double &max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2878
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2878
    functionName: ORDER_MIN_MAX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void ORDER_MIN_MAX(int &min, int &max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2894,1
    - Dst: TABMAPFile::Coordsys2Int
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2895,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2897,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2898,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2899,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - sMin
    - sMax
    argTypes:
    - TABVertex
    - TABVertex
    constantsTouched: []
    func_position:
      end: 2901
      start: 2889
    functionDepth: 2
    functionLinenumber: 2889
    functionLinenumberEnd: 2901
    functionName: TABMAPFile::SetCoordFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - TABMAPFile::Coordsys2Int
    - ORDER_MIN_MAX
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::SetCoordFilter(TABVertex sMin, TABVertex sMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2917,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2918,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2920,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2921,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2922,1
    - Dst: ORDER_MIN_MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2910
    functionDepth: 2
    functionLinenumber: 2910
    functionLinenumberEnd: 2924
    functionName: TABMAPFile::ResetCoordFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached:
    - ORDER_MIN_MAX
    - TABMAPFile::Int2Coordsys
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::ResetCoordFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sMin
    - sMax
    argTypes:
    - TABVertex
    - TABVertex
    constantsTouched: []
    func_position:
      end: 2939
      start: 2935
    functionDepth: 0
    functionLinenumber: 2935
    functionLinenumberEnd: 2939
    functionName: TABMAPFile::GetCoordFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::GetCoordFilter(TABVertex &sMin, TABVertex &sMax) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2954,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2971,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2972,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2972,1
    - Dst: GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2974,1
    - Dst: CommitToFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2978
    functionName: TABMAPFile::CommitSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - GetMBR
    - CommitToFile
    - static_cast<int>
    - static_cast<GByte>
    - max
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::CommitSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMinVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2991,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:2993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2986
    functionDepth: 1
    functionLinenumber: 2986
    functionLinenumberEnd: 2994
    functionName: TABMAPFile::GetMinTABFileVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached:
    - GetMinVersionNumber
    - max
    linkageType: ''
    returnType: int
    signature: int TABMAPFile::GetMinTABFileVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2996
    functionDepth: 0
    functionLinenumber: 2996
    functionLinenumberEnd: 2999
    functionName: '&TABMAPFile::GetEncoding() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &TABMAPFile::GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osEncoding
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 3004
      start: 3001
    functionDepth: 0
    functionLinenumber: 3001
    functionLinenumberEnd: 3004
    functionName: TABMAPFile::SetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::SetEncoding(const CPLString &osEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - nObjType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3058
      start: 3006
    functionDepth: 0
    functionLinenumber: 3006
    functionLinenumberEnd: 3058
    functionName: TABMAPFile::IsValidObjType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TABMAPFile::IsValidObjType(int nObjType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3072,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3076,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3080,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3081,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3083,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3086,1
    - Dst: TABMAPFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3087,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3088,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3090,1
    - Dst: TABMAPFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3091,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3092,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 3096
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3096
    functionName: TABMAPFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - fflush
    - TABMAPFile::Dump
    - fprintf
    linkageType: ''
    returnType: void
    signature: void TABMAPFile::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABMAPFile::GetIndexObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3118,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3119,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3120,1
    - Dst: TABMAPIndexBlock*::RecomputeMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3136,1
    - Dst: TABMAPIndexBlock*::GetMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3137,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3143,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3144,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3146,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3147,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3149,1
    - Dst: TABMAPIndexBlock*::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3149,1
    - Dst: MITAB_AREA
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3151,1
    - Dst: TABMAPIndexBlock*::GetEntry
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3161,1
    - Dst: TABMAPFile::GetIndexObjectBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3163,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3167,1
    - Dst: TABMAPFile::DumpSpatialIndexToMIF
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3170,1
    - Dst: cpl::down_cast<TABMAPIndexBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3171,1
    - Dst: TABMAPIndexBlock*::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3172,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3177,1
    - Dst: TABRawBinBlock*::GetBlockType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3177,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3179,1
    - Dst: TABMAPFile::Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3180,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3182,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3184,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3186,1
    - Dst: TABMAPIndexBlock*::GetStartAddress
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3188,1
    - Dst: MITAB_AREA
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp:3189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - poNode
    - fpMIF
    - fpMID
    - nParentId
    - nIndexInNode
    - nCurDepth
    - nMaxDepth
    argTypes:
    - TABMAPIndexBlock*
    - FILE*
    - FILE*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3197
      start: 3107
    functionDepth: 2
    functionLinenumber: 3107
    functionLinenumberEnd: 3197
    functionName: TABMAPFile::DumpSpatialIndexToMIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp
    functionUses: 1
    functionsReached:
    - TABMAPFile::GetIndexObjectBlock
    - TABMAPIndexBlock*::GetMBR
    - VSIFPrintf
    - TABMAPIndexBlock*::RecomputeMBR
    - TABMAPFile::Int2Coordsys
    - CPLAssert
    - TABMAPIndexBlock*::GetEntry
    - cpl::down_cast<TABMAPIndexBlock *>
    - MITAB_AREA
    - TABMAPIndexBlock*::GetStartAddress
    - TABRawBinBlock*::GetBlockType
    - TABMAPFile::DumpSpatialIndexToMIF
    linkageType: ''
    returnType: void
    signature: "void TABMAPFile::DumpSpatialIndexToMIF(TABMAPIndexBlock *poNode, FILE
      *fpMIF,\n                                       FILE *fpMID, int nParentId /*=-1*/,\n
      \                                      int nIndexInNode /*=-1*/,\n                                       int
      nCurDepth /*=0*/,\n                                       int nMaxDepth /*=-1*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:59,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 99
    functionName: EscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 23
    functionsReached:
    - static_cast<int>
    - CPLStrnlen
    linkageType: ''
    returnType: char
    signature: "char *EscapeString(const char *pszInput,\n                          bool
      bEscapeDoubleQuotes = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:108,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - pszInput
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 134
    functionName: UnescapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - CPLStrnlen
    linkageType: ''
    returnType: char
    signature: char *UnescapeString(const char *pszInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find_first_of
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:139,1
    - Dst: CPLString::find_last_of
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:142,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: GetTabDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find_last_of
    - CPLString::find_first_of
    - CPLString::substr
    linkageType: ''
    returnType: std::string
    signature: std::string GetTabDescription(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: TABFile::TABFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TABFile::TABFile(GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: TABFile::~TABFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - TABFile::Close
    linkageType: ''
    returnType: void
    signature: void TABFile::~TABFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: TABFile::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABFile::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:199,1
    - Dst: TABFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:205,1
    - Dst: ResetCoordFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:216,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:223,1
    - Dst: GetCoordFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:227,1
    - Dst: SetCoordFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: TABFile::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - getEnvelope
    - GetCoordFilter
    - TABFile::ResetReading
    - SetCoordFilter
    - ResetCoordFilter
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void TABFile::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:280,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:291,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:292,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:292,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:294,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:295,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:296,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:297,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:298,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:299,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:300,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:301,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:305,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:309,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:311,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:316,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:324,1
    - Dst: TAB_CSLLoad
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:336,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:341,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:344,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:346,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:348,1
    - Dst: TABFile::ParseTABFileFirstPass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:357,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:362,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:364,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:366,1
    - Dst: TABFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:379,1
    - Dst: TABFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:381,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:388,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:389,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:390,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:398,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:401,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:403,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:408,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:410,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:414,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:421,1
    - Dst: GetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:421,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:425,1
    - Dst: TABDATFile::TABDATFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:428,1
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:430,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:433,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:434,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:436,1
    - Dst: GetNumRecords
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:441,1
    - Dst: TABFile::ParseTABFileFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:447,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:450,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:451,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:453,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:465,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:468,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:471,1
    - Dst: TABAdjustFilenameExtension
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:474,1
    - Dst: TABMAPFile::TABMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:477,1
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:484,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:489,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:492,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:494,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:495,1
    - Dst: TABFile::GetFeatureCountByType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:504,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:509,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:511,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:515,1
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:521,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:527,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:531,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:532,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:534,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:545,1
    - Dst: TABFile::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:546,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:547,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:555,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:555,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:556,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:559,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:559,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:561,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:562,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:566,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:574,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:575,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:576,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:577,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:579,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:580,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:581,1
    - Dst: InitializeIndexSupport
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:589,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:590,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:593,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:595,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:599,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:600,1
    - Dst: TABFile::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:600,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:603,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 151
    argCount: 5
    argNames:
    - pszFname
    - eAccess
    - bTestOpenNoError
    - nBlockSizeForCreate
    - pszCharset
    argTypes:
    - char*
    - TABAccess
    - GBool
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 606
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 606
    functionName: TABFile::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 2
    functionsReached:
    - GetGeomFieldDefn
    - CPLDebug
    - strcmp
    - Reference
    - CPLError
    - std::string::c_str
    - TABDATFile::TABDATFile
    - InitializeIndexSupport
    - GetGeomFieldCount
    - CPLErrorReset
    - CPLCreateXMLElementAndValue
    - CPLStrdup
    - CharsetToEncoding
    - SetGeomType
    - TABFile::ParseTABFileFirstPass
    - strlen
    - CPLFormCIFilenameSafe
    - TABAdjustFilenameExtension
    - GetNumRecords
    - OGRFeatureDefn*::GetFieldCount
    - static_cast<int>
    - TABFile::Close
    - CPLDestroyXMLNode
    - OGRFeatureDefn::OGRFeatureDefn
    - TABMAPFile::TABMAPFile
    - CPLSPrintf
    - TABFile::ParseTABFileFields
    - TABFile::Open
    - TABFile::GetFeatureCountByType
    - CPLFree
    - TABFile::GetSpatialRef
    - OGRFeatureDefn*::GetFieldDefn
    - Seal
    - CPLGetPathSafe
    - VSIStatL
    - CPLCreateXMLNode
    - CPLGetBasenameSafe
    - TABFile::GetLayerDefn
    - CSLDestroy
    - EQUAL
    - GetCharset
    - TAB_CSLLoad
    - TABFile::SetCharset
    - strcpy
    linkageType: ''
    returnType: int
    signature: "int TABFile::Open(const char *pszFname, TABAccess eAccess,\n                  GBool
      bTestOpenNoError /*=FALSE*/, int nBlockSizeForCreate,\n                  const
      char *pszCharset /* = NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:626,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:631,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:638,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:639,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:641,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:644,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:646,1
    - Dst: TABFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:653,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:657,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:664,1
    - Dst: TABFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:666,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:669,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:674,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:674,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:684,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:689,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:694,1
    - Dst: GetTabDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:696,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:697,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:700,1
    - Dst: UnescapeString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:703,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:703,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:704,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:705,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:710,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:710,1
    - Dst: UnescapeString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:715,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:715,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:716,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:717,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:722,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:723,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:737,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:742,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:754,1
    - Dst: TABFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:757,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:762,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 70
    argCount: 1
    argNames:
    - bTestOpenNoError
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 770
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 770
    functionName: TABFile::ParseTABFileFirstPass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - GetTabDescription
    - atoi
    - OGRPGTableLayer::SetMetadataItem
    - CSLDestroy
    - CPLRecode
    - auto::empty
    - EQUAL
    - CSLTokenizeStringComplex
    - TABFile::SetCharset
    - UnescapeString
    - CPLError
    - CSLCount
    - std::shared_ptr::get
    - auto::c_str
    linkageType: ''
    returnType: int
    signature: int TABFile::ParseTABFileFirstPass(GBool bTestOpenNoError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:789,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:795,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:796,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:798,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:813,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:813,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:816,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:816,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:826,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:829,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:835,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:835,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:850,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:851,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:855,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:862,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:862,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:863,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:863,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:867,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:872,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:873,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:874,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:875,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:875,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:877,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:882,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:884,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:885,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:886,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:886,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:888,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:893,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:895,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:896,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:897,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:897,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:899,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:904,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:906,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:907,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:908,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:908,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:910,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:915,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:916,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:917,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:918,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:919,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:919,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:920,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:920,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:922,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:927,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:929,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:931,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:936,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:938,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:946,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:951,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:953,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:959,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:961,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:967,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:969,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:977,1
    - Dst: ValidateFieldInfoFromTAB
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:982,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:984,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:985,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:986,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:995,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:999,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1006,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1008,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1019,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1020,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1021,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1021,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1038,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1040,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1042,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 1050
    functionName: TABFile::ParseTABFileFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - OGRFieldDefn::OGRFieldDefn
    - CSLTokenizeStringComplex
    - Reference
    - OGRFieldDefn*::SetSubType
    - CPLStrnlen
    - CPLString
    - CPLError
    - static_cast<unsigned char>
    - isspace
    - insert
    - strlen
    - AddFieldDefn
    - GetEncoding
    - STARTS_WITH_CI
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - CPLAssert
    - CPLCalloc
    - CPLFree
    - static_cast<int *>
    - OGRFieldDefn*::SetWidth
    - CSLDestroy
    - EQUAL
    - ValidateFieldInfoFromTAB
    - CPLString::Recode
    linkageType: ''
    returnType: int
    signature: int TABFile::ParseTABFileFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1069,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1076,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1078,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1081,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1082,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1083,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1084,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1086,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1088,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1089,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1096,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1098,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1099,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1104,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1104,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1107,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1108,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1111,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1111,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1113,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1116,1
    - Dst: TABFile::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1117,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1121,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1124,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1125,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1126,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1129,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1132,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1133,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1136,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1139,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1140,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1143,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1146,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1166,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1168,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1172,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1174,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1174,1
    - Dst: CPLString::Recode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1175,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1175,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1180,1
    - Dst: TABFile::GetFieldIndexNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1182,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1184,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1184,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1189,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1190,1
    - Dst: TABFile::GetFieldIndexNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1191,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1197,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1198,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1199,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1200,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1209,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1215
    functionName: TABFile::WriteTABFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - TABFile::GetNativeFieldType
    - TABFile::GetFieldIndexNumber
    - CPLString::c_str
    - strlen
    - GetEncoding
    - VSIFPrintfL
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - CPLSPrintf
    - VSIFOpenL
    - CPLRecode
    - CPLFree
    - VSIFCloseL
    - EQUAL
    - max
    - std::shared_ptr::get
    - CPLString::Recode
    linkageType: ''
    returnType: int
    signature: int TABFile::WriteTABFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1226,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1235,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1238,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1245,1
    - Dst: TABFile::Close
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1252,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1264,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1268,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1271,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1274,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1280,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1287
    functionName: TABFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 3
    functionsReached:
    - CPLErrorReset
    - CPLFree
    - TABFile::Close
    - CSLDestroy
    - TABFile::WriteTABFile
    - Release
    linkageType: ''
    returnType: int
    signature: int TABFile::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1310,1
    - Dst: TABFile::SetQuickSpatialIndexMode
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bQuickSpatialIndexMode
    argTypes:
    - GBool
    constantsTouched: []
    func_position:
      end: 1317
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1317
    functionName: TABFile::SetQuickSpatialIndexMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - TABFile::SetQuickSpatialIndexMode
    linkageType: ''
    returnType: int
    signature: int TABFile::SetQuickSpatialIndexMode(GBool bQuickSpatialIndexMode
      /*=TRUE*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1328,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1331,1
    - Dst: TABFile::GetNextFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1338,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1338,1
    - Dst: EvaluateAgainstIndices
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1349,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1368,1
    - Dst: MoveToObjId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1380,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1383,1
    - Dst: GetCurObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1392,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1393,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1406
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1406
    functionName: TABFile::GetNextFeatureId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - IsCurrentRecordDeleted
    - static_cast<int>
    - TABFile::ResetReading
    - CPL_INT64_FITS_ON_INT32
    - GetCurObjType
    - GetRecordBlock
    - EvaluateAgainstIndices
    - MoveToObjId
    - CPLError
    - TABFile::GetNextFeatureId
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig TABFile::GetNextFeatureId(GIntBig nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1420,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1428,1
    - Dst: TABFile::GetNextFeatureId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nPrevId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1435
      start: 1416
    functionDepth: 2
    functionLinenumber: 1416
    functionLinenumberEnd: 1435
    functionName: TABFile::GetNextFeatureId_Spatial
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - TABFile::GetNextFeatureId
    linkageType: ''
    returnType: int
    signature: int TABFile::GetNextFeatureId_Spatial(int nPrevId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1466,1
    - Dst: TABFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1472,1
    - Dst: MoveToObjId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1476,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1476,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1477,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1477,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1485,1
    - Dst: GetCurObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1489,1
    - Dst: TABFeature::CreateFromMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1513,1
    - Dst: GetCurObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1514,1
    - Dst: ReadRecordFromDATFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1520,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1531,1
    - Dst: GetCurObjType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1531,1
    - Dst: GetCurObjId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1532,1
    - Dst: TABMAPObjHdr*::ReadObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1535,1
    - Dst: GetCurObjBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1535,1
    - Dst: ReadGeometryFromMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1536,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1548,1
    - Dst: SetRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1550,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1550,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1553
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1553
    functionName: TABFile::GetFeatureRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - IsCurrentRecordDeleted
    - CPLErrorReset
    - static_cast<int>
    - ReadRecordFromDATFile
    - GetCurObjBlock
    - TABFile::ResetReading
    - SetRecordDeleted
    - SetFID
    - TABMAPObjHdr::NewObj
    - GetCurObjType
    - GetRecordBlock
    - TABMAPObjHdr*::ReadObj
    - MoveToObjId
    - CPLError
    - ReadGeometryFromMAPFile
    - GetCurObjId
    - TABFeature::CreateFromMapInfoType
    linkageType: ''
    returnType: TABFeature
    signature: TABFeature *TABFile::GetFeatureRef(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1562,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1576,1
    - Dst: TABFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1582,1
    - Dst: MoveToObjId
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1585,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1585,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1586,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1586,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1594,1
    - Dst: MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1607,1
    - Dst: MarkAsDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1607,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1613
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1613
    functionName: TABFile::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - IsCurrentRecordDeleted
    - CPLErrorReset
    - static_cast<int>
    - TABFile::ResetReading
    - GetRecordBlock
    - MarkAsDeleted
    - MoveToObjId
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::DeleteFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1634,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1640,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1642,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1642,1
    - Dst: GetNumFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1650,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1652,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1655,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1656,1
    - Dst: TABFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1666,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1671,1
    - Dst: TABFeature*::WriteRecordToDATFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1672,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1675,1
    - Dst: TABMAPObjHdr::NewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1685,1
    - Dst: TABFeature*::ValidateMapInfoType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1686,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1690,1
    - Dst: TABFeature*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1702,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1704,1
    - Dst: TABFeature*::GetIntMBR
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1717,1
    - Dst: PrepareNewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1728,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1728,1
    - Dst: TABFeature*::WriteGeometryToMAPFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1729,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1729,1
    - Dst: CommitNewObj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1730,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1730,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1732,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1738,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - TABFeature*
    constantsTouched: []
    func_position:
      end: 1742
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1742
    functionName: TABFile::WriteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - GetNumFields
    - TABFeature*::GetIntMBR
    - CPLErrorReset
    - static_cast<int>
    - TABFeature*::GetFID
    - TABFeature*::ValidateMapInfoType
    - TABFeature*::WriteRecordToDATFile
    - TABMAPObjHdr::NewObj
    - PrepareNewObj
    - CommitNewObj
    - GetRecordBlock
    - TABFeature*::WriteGeometryToMAPFile
    - max
    - CPLError
    - AddField
    - TABFeature*::SetFID
    - std::unique_ptr::get
    - TABFeature*::GetFeatureClass
    linkageType: ''
    returnType: int
    signature: int TABFile::WriteFeature(TABFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetCharset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1746,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1752,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1752,1
    - Dst: SetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1756,1
    - Dst: CharsetToEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1756,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1758,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pszCharset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1763
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1763
    functionName: TABFile::SetCharset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 2
    functionsReached:
    - SetEncoding
    - CharsetToEncoding
    - IMapInfoFile::SetCharset
    - EQUAL
    - max
    linkageType: ''
    returnType: int
    signature: int TABFile::SetCharset(const char *pszCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IMapInfoFile::SetStrictLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1767,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bStrictLaundering
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1772
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1772
    functionName: TABFile::SetStrictLaundering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - max
    - IMapInfoFile::SetStrictLaundering
    linkageType: ''
    returnType: void
    signature: void TABFile::SetStrictLaundering(bool bStrictLaundering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1786,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1790,1
    - Dst: TABFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1795,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1800,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1806,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1806,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1810,1
    - Dst: TABFile::WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - TABFeature*
    constantsTouched: []
    func_position:
      end: 1822
      start: 1784
    functionDepth: 3
    functionLinenumber: 1784
    functionLinenumberEnd: 1822
    functionName: TABFile::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - IsCurrentRecordDeleted
    - CPLErrorReset
    - static_cast<int>
    - TABFeature*::GetFID
    - GetRecordBlock
    - TABFile::WriteFeature
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::CreateFeature(TABFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1832,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1846,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1854,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1866,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1868,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1868,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1869,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1869,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1871,1
    - Dst: CreateTABFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1877,1
    - Dst: TABFile::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1882,1
    - Dst: GetRecordBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1884,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1884,1
    - Dst: IsCurrentRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1894,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1896,1
    - Dst: OGRFeature*::Equal
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1900,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1902,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1911,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1912,1
    - Dst: OGRGeometry*::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1921,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1923,1
    - Dst: TABFeature*::WriteRecordToDATFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1926,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1929,1
    - Dst: TABFile::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:1947,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1962
      start: 1829
    functionDepth: 2
    functionLinenumber: 1829
    functionLinenumberEnd: 1962
    functionName: TABFile::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - IsCurrentRecordDeleted
    - TABFile::DeleteFeature
    - CPLErrorReset
    - static_cast<int>
    - CreateTABFeature
    - TABFile::ResetReading
    - OGRGeometry*::Equals
    - OGRFeature*::GetFID
    - TABFeature*::WriteRecordToDATFile
    - OGRFeature*::Equal
    - OGRGeometry*::getGeometryType
    - CPLDebug
    - GetRecordBlock
    - EQUAL
    - CPLError
    - GetFeature
    - wkbFlatten
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1978
    functionName: TABFile::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *TABFile::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2000,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2009,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2013,1
    - Dst: GetNumFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2020,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2022,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2033,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2044,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2047,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2052,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2053,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2073,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2073,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2074,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2075,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2081,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2081,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - poFeatureDefn
    - paeMapInfoNativeFieldTypes
    argTypes:
    - OGRFeatureDefn*
    - TABFieldType*
    constantsTouched: []
    func_position:
      end: 2084
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2084
    functionName: TABFile::SetFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - Dereference
    - GetNumFields
    - static_cast<int *>
    - OGRFieldDefn*::GetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - Reference
    - OGRFieldDefn*::GetSubType
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - AddField
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: "int TABFile::SetFeatureDefn(\n    OGRFeatureDefn *poFeatureDefn,\n
      \   TABFieldType *paeMapInfoNativeFieldTypes /* =NULL */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2109,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2121,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2149,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2149,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2150,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2156,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2156,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2158,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2164,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2164,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2166,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2172,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2172,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2178,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2178,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2179,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2180,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2186,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2186,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2192,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2192,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2198,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2199,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2205,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2205,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2211,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2212,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2218,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2218,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2224,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2225,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2231,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2231,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2232,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2236,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2237,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2244,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2245,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2245,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2245,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2257,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2258,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2258,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2259,1
    - Dst: TABFile::SetFieldIndexed
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2265,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2265,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2268,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 5
    argNames:
    - pszName
    - eMapInfoType
    - nWidth
    - nPrecision
    - bIndexed
    argTypes:
    - char*
    - TABFieldType
    - int
    - int
    - GBool
    constantsTouched: []
    func_position:
      end: 2271
      start: 2102
    functionDepth: 3
    functionLinenumber: 2102
    functionLinenumberEnd: 2271
    functionName: TABFile::AddFieldNative
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int *>
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn*::GetNameRef
    - insert
    - GetFieldCount
    - OGRFieldDefn::OGRFieldDefn
    - CPLString::c_str
    - max
    - OGRFieldDefn*::SetSubType
    - CPLRealloc
    - CPLString
    - TABFile::SetFieldIndexed
    - CPLError
    - TABFile::WriteTABFile
    - whileUnsealing
    linkageType: ''
    returnType: int
    signature: "int TABFile::AddFieldNative(const char *pszName, TABFieldType eMapInfoType,\n
      \                           int nWidth /*=0*/, int nPrecision /*=0*/,\n                            GBool
      bIndexed /*=FALSE*/, GBool /*bUnique=FALSE*/,\n                            int
      /*bApproxOK*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2290
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2290
    functionName: TABFile::GetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - GetFieldType
    linkageType: ''
    returnType: TABFieldType
    signature: TABFieldType TABFile::GetNativeFieldType(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2308
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2308
    functionName: TABFile::GetFieldIndexNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - GetFieldCount
    linkageType: ''
    returnType: int
    signature: int TABFile::GetFieldIndexNumber(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2328,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2335,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2337,1
    - Dst: TABINDFile::TABINDFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2356,1
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2358,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2370,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2385
      start: 2320
    functionDepth: 2
    functionLinenumber: 2320
    functionLinenumberEnd: 2385
    functionName: TABFile::SetFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - GetFieldCount
    - TABINDFile::TABINDFile
    - GetFieldDefn
    - CPLError
    - TABFile::Open
    linkageType: ''
    returnType: int
    signature: int TABFile::SetFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::GetFieldIndexNumber
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFieldId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2395
      start: 2392
    functionDepth: 3
    functionLinenumber: 2392
    functionLinenumberEnd: 2395
    functionName: TABFile::IsFieldIndexed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - TABFile::GetFieldIndexNumber
    linkageType: ''
    returnType: GBool
    signature: GBool TABFile::IsFieldIndexed(int nFieldId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABINDFile::TABINDFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2424,1
    - Dst: TABFile::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2426,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2437,1
    - Dst: SetIndexFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2441,1
    - Dst: TABFile::GetNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2411
    functionDepth: 2
    functionLinenumber: 2411
    functionLinenumberEnd: 2449
    functionName: TABFile::GetINDFileRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - SetIndexFieldType
    - TABFile::GetNativeFieldType
    - GetFieldCount
    - TABINDFile::TABINDFile
    - TABFile::Open
    linkageType: ''
    returnType: TABINDFile
    signature: TABINDFile *TABFile::GetINDFileRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2465,1
    - Dst: SetCoordsysBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2475,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2488
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2488
    functionName: TABFile::SetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - SetCoordsysBounds
    linkageType: ''
    returnType: int
    signature: int TABFile::SetBounds(double dXMin, double dYMin, double dXMax, double
      dYMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2505,1
    - Dst: Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2515,1
    - Dst: Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2516,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2520,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2521,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2522,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2523,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - dXMin
    - dYMin
    - dXMax
    - dYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2531
      start: 2500
    functionDepth: 1
    functionLinenumber: 2500
    functionLinenumberEnd: 2531
    functionName: TABFile::GetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - Int2Coordsys
    - GetHeaderBlock
    - min
    - max
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int TABFile::GetBounds(double &dXMin, double &dYMin, double &dXMax,\n
      \                      double &dYMax, GBool /*bForce = TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2548,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2549,1
    - Dst: Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2559,1
    - Dst: Int2Coordsys
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2561,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2567,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2568,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2569,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2576
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2576
    functionName: TABFile::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - Int2Coordsys
    - GetHeaderBlock
    - GetGeomType
    - min
    - max
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr TABFile::IGetExtent(int /*iGeomField*/, OGREnvelope *psExtent,\n
      \                          bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - numPoints
    - numLines
    - numRegions
    - numTexts
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2613
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2613
    functionName: TABFile::GetFeatureCountByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - GetHeaderBlock
    linkageType: ''
    returnType: int
    signature: "int TABFile::GetFeatureCountByType(int &numPoints, int &numLines,\n
      \                                  int &numRegions, int &numTexts,\n                                   GBool
      /* bForce = TRUE*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2629,1
    - Dst: MITABCoordSys2SpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2640,1
    - Dst: TABFile::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2648,1
    - Dst: MITABExtractCoordSysBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2650,1
    - Dst: TABFile::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2654,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - pszMIFCoordSys
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2683
      start: 2625
    functionDepth: 3
    functionLinenumber: 2625
    functionLinenumberEnd: 2683
    functionName: TABFile::SetMIFCoordSys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - MITABExtractCoordSysBounds
    - TABFile::SetBounds
    - OGRSpatialReference*::Dereference
    - MITABCoordSys2SpatialRef
    - TABFile::SetSpatialRef
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABFile::SetMIFCoordSys(const char *pszMIFCoordSys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2702,1
    - Dst: MITABLookupCoordSysBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2716,1
    - Dst: TABFile::SetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2718,1
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2726,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - poPI
    argTypes:
    - TABProjInfo*
    constantsTouched: []
    func_position:
      end: 2738
      start: 2698
    functionDepth: 2
    functionLinenumber: 2698
    functionLinenumberEnd: 2738
    functionName: TABFile::SetProjInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetHeaderBlock
    - TABFile::SetBounds
    - MITABLookupCoordSysBounds
    linkageType: ''
    returnType: int
    signature: int TABFile::SetProjInfo(TABProjInfo *poPI)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2748,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2753,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2755,1
    - Dst: TABFile::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2759,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2762,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2763,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2763,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2766,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2768,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2769,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2772,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2781
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2781
    functionName: TABFile::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - erase
    - GetFieldCount
    - TABFile::TestCapability
    - TABFile::DeleteField
    - CPLString
    - GetFieldDefn
    - CPLError
    - TABFile::WriteTABFile
    - whileUnsealing
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2789,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2791,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2795,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2798,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2798,1
    - Dst: TABFile::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2802,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2808,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2812,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2815,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 2824
      start: 2787
    functionDepth: 3
    functionLinenumber: 2787
    functionLinenumberEnd: 2824
    functionName: TABFile::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - OGRCheckPermutation
    - GetFieldCount
    - TABFile::ReorderFields
    - TABFile::TestCapability
    - CPLError
    - TABFile::WriteTABFile
    - whileUnsealing
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TABFile::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2833,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2835,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2840,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2842,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2846,1
    - Dst: TABFile::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2847,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2852,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2854,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2854,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2856,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2856,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2860,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2860,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2860,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2861,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2861,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2862,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2863,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2863,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2865,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2867,1
    - Dst: GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2867,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2871,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2871,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2872,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2872,1
    - Dst: GetTABType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2879,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2880,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2881,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2884,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2890
      start: 2830
    functionDepth: 3
    functionLinenumber: 2830
    functionLinenumberEnd: 2890
    functionName: TABFile::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - TABFile::TestCapability
    - CPLString
    - GetFieldDefn
    - OGRFieldDefn*::GetTemporaryUnsealer
    - CPLError
    - OGRFieldDefn*::GetWidth
    - insert
    - TABFile::AlterFieldDefn
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - TABFile::WriteTABFile
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - erase
    - OGRFieldDefn*::SetWidth
    - GetFieldWidth
    - GetTABType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr TABFile::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                              int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2906,1
    - Dst: TABFile::WriteTABFile
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2908,1
    - Dst: TABFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2911,1
    - Dst: TABFile::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2914,1
    - Dst: CPLSetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2896
    functionDepth: 3
    functionLinenumber: 2896
    functionLinenumberEnd: 2920
    functionName: TABFile::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - TABFile::WriteTABFile
    - TABFile::SyncToDisk
    - CPLSetConfigOption
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr TABFile::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2929,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2935,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2938,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2941,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2944,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2947,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2950,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2953,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2956,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2959,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2962,1
    - Dst: TestUtf8Capability
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2963,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2967
      start: 2926
    functionDepth: 0
    functionLinenumber: 2926
    functionLinenumberEnd: 2967
    functionName: TABFile::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 3
    functionsReached:
    - EQUAL
    - TestUtf8Capability
    linkageType: ''
    returnType: int
    signature: int TABFile::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2981,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2985,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2989,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2990,1
    - Dst: TABFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2991,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2992,1
    - Dst: TABFile::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2993,1
    - Dst: TABFile::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2997,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2998,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:2999,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3001,1
    - Dst: TABFile::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3002,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3003,1
    - Dst: fflush
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 3007
      start: 2976
    functionDepth: 1
    functionLinenumber: 2976
    functionLinenumberEnd: 3007
    functionName: TABFile::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - TABFile::Dump
    - fflush
    - fprintf
    - CPLFree
    - TABFile::GetSpatialRef
    linkageType: ''
    returnType: void
    signature: void TABFile::Dump(FILE *fpOut /*=NULL*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3017,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3017,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3021,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3027,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3028,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3031,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3031,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3036
      start: 3014
    functionDepth: 3
    functionLinenumber: 3014
    functionLinenumberEnd: 3036
    functionName: TABFile::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadataItem
    - CPLDebug
    - EQUAL
    - CPLError
    - std::shared_ptr::get
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr TABFile::SetMetadataItem(const char *pszName, const char *pszValue,\n
      \                               const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3054,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3059,1
    - Dst: GetHeaderBlock
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3074,1
    - Dst: TABMAPHeaderBlock*::GetProjInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3075,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3077,1
    - Dst: TABFileGetSpatialRefFromTABProj
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3050
    functionDepth: 2
    functionLinenumber: 3050
    functionLinenumberEnd: 3084
    functionName: TABFile::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 2
    functionsReached:
    - TABFileGetSpatialRefFromTABProj
    - GetHeaderBlock
    - TABMAPHeaderBlock*::GetProjInfo
    - GetGeomType
    - CPLError
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *TABFile::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3099,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3113,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3122,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3125,1
    - Dst: TABFileGetTABProjFromSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3129,1
    - Dst: TABFile::SetProjInfo
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3135,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp:3137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - poSpatialRef
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3143
      start: 3095
    functionDepth: 3
    functionLinenumber: 3095
    functionLinenumberEnd: 3143
    functionName: TABFile::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mitab/mitab_tabfile.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference*::Clone
    - Dereference
    - TABFile::SetProjInfo
    - TABFileGetTABProjFromSpatialRef
    - CPLError
    linkageType: ''
    returnType: int
    signature: int TABFile::SetSpatialRef(OGRSpatialReference *poSpatialRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:52,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:52,1
    - Dst: SHPOpenLLEx
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:57,1
    - Dst: const_cast<SAHooks *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:59,1
    - Dst: VSI_SHP_GetHook
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:59,1
    - Dst: SHPSetFastModeReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pszShapeFile
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: OGRShapeDataSource::DS_SHPOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - VSI_SHP_GetHook
    - strcmp
    - SHPSetFastModeReadObject
    - const_cast<SAHooks *>
    - STARTS_WITH
    - SHPOpenLLEx
    linkageType: ''
    returnType: SHPHandle
    signature: "SHPHandle OGRShapeDataSource::DS_SHPOpen(const char *pszShapeFile,\n
      \                                        const char *pszAccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFOpenLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:74,1
    - Dst: const_cast<SAHooks *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:75,1
    - Dst: VSI_SHP_GetHook
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszDBFFile
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: OGRShapeDataSource::DS_DBFOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - VSI_SHP_GetHook
    - DBFOpenLL
    - const_cast<SAHooks *>
    linkageType: ''
    returnType: DBFHandle
    signature: "DBFHandle OGRShapeDataSource::DS_DBFOpen(const char *pszDBFFile,\n
      \                                        const char *pszAccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRLayerPool>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:84,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:85,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: OGRShapeDataSource::OGRShapeDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - std::make_unique<OGRLayerPool>
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::OGRShapeDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRShapeDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:96,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:99,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: OGRShapeDataSource::GetLayerNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - const_cast<OGRShapeDataSource *>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: std::vector<CPLString> OGRShapeDataSource::GetLayerNames() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:112,1
    - Dst: OGRShapeDataSource::GetLayerNames
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:114,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:116,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:117,1
    - Dst: OGRShapeDataSource::RecompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:119,1
    - Dst: OGRShapeDataSource::RemoveLockFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:120,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:125,1
    - Dst: CPLDestroyCond
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: OGRShapeDataSource::~OGRShapeDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyCond
    - empty
    - CPLDestroyMutex
    - OGRShapeDataSource::RemoveLockFile
    - OGRShapeDataSource::GetLayerNames
    - reset
    - OGRShapeDataSource::RecompressIfNeeded
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::~OGRShapeDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:142,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:145,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:149,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:149,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:156,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:157,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:159,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:159,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - poOpenInfo
    - pszOriFilename
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: OGRShapeDataSource::OpenZip
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - OGRShapeDataSource::Open
    - VSIUnlink
    - CPLDebug
    - EQUAL
    - CPLString::c_str
    - time
    - SetDescription
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: "bool OGRShapeDataSource::OpenZip(GDALOpenInfo *poOpenInfo,\n                                 const
      char *pszOriFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:173,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:173,1
    - Dst: CPLCloseZip
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:178,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:183,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszOriFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: OGRShapeDataSource::CreateZip
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLCloseZip
    - empty
    - EQUAL
    - CPLAssert
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeDataSource::CreateZip(const char *pszOriFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:195,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:195,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:199,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:200,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:223,1
    - Dst: OGRShapeDataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:235,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:238,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:269,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:272,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:273,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:273,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:277,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:279,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:279,1
    - Dst: OGRShapeDataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:281,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:283,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:287,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:291,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:291,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:299,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:302,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:308,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:311,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:312,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:312,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:315,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:315,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:325,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:325,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:327,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:327,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:335,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:337,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:337,1
    - Dst: OGRShapeDataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:340,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:340,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:342,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:346,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:350,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:350,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:360,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 3
    argNames:
    - poOpenInfo
    - bTestOpen
    - bForceSingleFileDataSource
    argTypes:
    - GDALOpenInfo*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 364
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 364
    functionName: OGRShapeDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLString::toupper
    - std::set::insert
    - CPLError
    - EQUALN
    - std::string::c_str
    - CPL_TO_BOOL
    - CPLErrorReset
    - std::move
    - strlen
    - std::set::find
    - CPLAssert
    - std::set::empty
    - CPLFormFilenameSafe
    - OGRShapeDataSource::OpenFile
    - empty
    - std::string::size
    - CPLGetBasenameSafe
    - EQUAL
    - CSLDuplicate
    - push_back
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool OGRShapeDataSource::Open(GDALOpenInfo *poOpenInfo, bool bTestOpen,\n
      \                             bool bForceSingleFileDataSource)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:373,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:375,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:376,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:376,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:377,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:377,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:392,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:393,1
    - Dst: OGRShapeDataSource::DS_SHPOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:394,1
    - Dst: OGRShapeDataSource::DS_SHPOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:395,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:396,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:400,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:400,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:401,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:403,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:405,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:405,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:410,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:410,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:411,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:411,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:413,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:415,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:415,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:429,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:429,1
    - Dst: OGRShapeDataSource::DS_DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:433,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:439,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:442,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:442,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:445,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:448,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:451,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:452,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:455,1
    - Dst: OGRShapeDataSource::DS_DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:463,1
    - Dst: std::make_unique<OGRShapeLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:477,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:481,1
    - Dst: auto::SetModificationDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:482,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:483,1
    - Dst: auto::SetAutoRepack
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:484,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:484,1
    - Dst: auto::SetWriteDBFEOFChar
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:485,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:486,1
    - Dst: OGRShapeDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:491,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:491,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 2
    argNames:
    - pszNewName
    - bUpdate
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 494
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 494
    functionName: OGRShapeDataSource::OpenFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRShapeDataSource::DS_SHPOpen
    - CPLError
    - VSIStatExL
    - std::string::c_str
    - auto::SetWriteDBFEOFChar
    - CPLGetExtensionSafe
    - CSLFetchNameValue
    - CPLErrorReset
    - CPLGetLastErrorMsg
    - auto::SetAutoRepack
    - SHPClose
    - CPLString::c_str
    - CPLPopErrorHandler
    - std::move
    - OGRShapeDataSource::DS_DBFOpen
    - CPLFetchBool
    - VSIFOpenL
    - std::make_unique<OGRShapeLayer>
    - strstr
    - auto::SetModificationDate
    - VSIFCloseL
    - CPLResetExtensionSafe
    - OGRShapeDataSource::AddLayer
    - EQUAL
    - CPLPushErrorHandler
    - std::string
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeDataSource::OpenFile(const char *pszNewName, bool bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:502,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:502,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:509,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:509,1
    - Dst: GetMaxSimultaneouslyOpened
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:510,1
    - Dst: GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:511,1
    - Dst: OGRShapeDataSource::SetLastUsedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:514,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - std::unique_ptr<OGRShapeLayer>
    constantsTouched: []
    func_position:
      end: 516
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 516
    functionName: OGRShapeDataSource::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - GetMaxSimultaneouslyOpened
    - get
    - std::move
    - push_back
    - OGRShapeDataSource::SetLastUsedLayer
    - GetSize
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::AddLayer(std::unique_ptr<OGRShapeLayer> poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:527,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: LaunderLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: CPLString
    signature: CPLString LaunderLayerName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:545,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:547,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:549,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:554,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:556,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:566,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:569,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:576,1
    - Dst: OGRShapeDataSource::UncompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:581,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:589,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:637,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:653,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:658,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:663,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:678,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:683,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:688,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:693,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:698,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:703,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:708,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:718,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:723,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:728,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:733,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:738,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:738,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:755,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:760,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:769,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:771,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:771,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:772,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:772,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:775,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:775,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:775,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:785,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:785,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:786,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:787,1
    - Dst: LaunderLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:787,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:791,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:792,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:792,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:794,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:795,1
    - Dst: LaunderLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:795,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:809,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:809,1
    - Dst: SHPCreateLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:811,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:811,1
    - Dst: const_cast<SAHooks *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:812,1
    - Dst: VSI_SHP_GetHook
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:812,1
    - Dst: SHPSetFastModeReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:819,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:831,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:831,1
    - Dst: DBFCreateLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:833,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:834,1
    - Dst: const_cast<SAHooks *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:835,1
    - Dst: VSI_SHP_GetHook
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:835,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:839,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:841,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:842,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:854,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:854,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:855,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:860,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:861,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:861,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:863,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:863,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:864,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:867,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:877,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:877,1
    - Dst: std::make_unique<OGRShapeLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:879,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:880,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:885,1
    - Dst: auto::SetResizeAtClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:888,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:888,1
    - Dst: auto::CreateSpatialIndexAtClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:889,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:890,1
    - Dst: auto::SetModificationDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:891,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:892,1
    - Dst: auto::SetAutoRepack
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:893,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:893,1
    - Dst: auto::SetWriteDBFEOFChar
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:894,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:895,1
    - Dst: OGRShapeDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:900,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:900,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:902,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 189
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 903
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 903
    functionName: OGRShapeDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - VSI_SHP_GetHook
    - DBFCreateLL
    - OGRSpatialReference*::Release
    - CPLError
    - std::string::c_str
    - auto::SetWriteDBFEOFChar
    - CSLFetchNameValue
    - auto::SetAutoRepack
    - SHPClose
    - auto::Clone
    - strlen
    - std::move
    - wkbFlatten
    - auto::CreateSpatialIndexAtClose
    - OGRSpatialReference*::exportToWkt
    - auto::SetResizeAtClose
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - VSIFOpenL
    - std::make_unique<OGRShapeLayer>
    - SHPCreateLL
    - auto::SetModificationDate
    - CPLFormFilenameSafe
    - CPLFree
    - size
    - back
    - CPLGetPathSafe
    - empty
    - VSIFCloseL
    - OGRGeometryTypeToName
    - CPLGetBasenameSafe
    - OGRShapeDataSource::AddLayer
    - EQUAL
    - OGRShapeDataSource::GetLayerByName
    - OGRShapeDataSource::UncompressIfNeeded
    - LaunderLayerName
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRShapeDataSource::GetLayerCount
    - std::string
    - const_cast<SAHooks *>
    - SHPSetFastModeReadObject
    - VSIFWriteL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRShapeDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:912,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:914,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:915,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:917,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:919,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:921,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 925
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 925
    functionName: OGRShapeDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - size
    linkageType: ''
    returnType: int
    signature: int OGRShapeDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:935,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:937,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:940,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:945,1
    - Dst: OGRShapeDataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:954,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:956,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:963,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:967,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:967,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 968
    functionName: OGRShapeDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - empty
    - CPLError
    - CPLGetBasenameSafe
    - OGRShapeDataSource::OpenFile
    - resize
    - GetName
    linkageType: ''
    returnType: int
    signature: int OGRShapeDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:978,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:980,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:980,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 984
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 984
    functionName: OGRShapeDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    - OGRShapeDataSource::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRShapeDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:993,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:997,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:997,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:999,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1005,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1008,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1017,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1017,1
    - Dst: OGRShapeDataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1023,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1031,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - pszLayerNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1040
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1040
    functionName: OGRShapeDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - GDALDataset::GetLayerByName
    - back
    - empty
    - CPLError
    - CPLGetBasenameSafe
    - get
    - EQUAL
    - strcmp
    - OGRShapeDataSource::OpenFile
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRShapeDataSource::GetLayerByName(const char *pszLayerNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1059,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1061,1
    - Dst: OGRShapeDataSource::UncompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1061,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1065,1
    - Dst: OGRShapeDataSource::RecompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1067,1
    - Dst: OGRShapeDataSource::GetLayerNames
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1067,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1073,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1076,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1076,1
    - Dst: OGRShapeLayer*::Repack
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1082,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1088,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1097,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1100,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1100,1
    - Dst: OGRShapeLayer*::ResizeDBF
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1108,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1117,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1120,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1120,1
    - Dst: OGRShapeLayer*::RecomputeExtent
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1124,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1128,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1138,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1141,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1141,1
    - Dst: OGRShapeLayer*::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1149,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1159,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1165,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1165,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1168,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1168,1
    - Dst: OGRShapeLayer*::InitializeIndexSupport
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1170,1
    - Dst: OGRShapeLayer*::GetFullName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1170,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1172,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1174,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1184,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1185,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1185,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1186,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1189,1
    - Dst: cpl::down_cast<OGRShapeLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1207,1
    - Dst: OGRShapeDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1207,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1211,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1213,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1217,1
    - Dst: OGRShapeLayer*::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1219,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 3
    argNames:
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1221
    functionName: OGRShapeDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer*::RecomputeExtent
    - cpl::down_cast<OGRShapeLayer *>
    - CPLError
    - OGRShapeLayer*::InitializeIndexSupport
    - OGRShapeDataSource::GetLayerNames
    - CSLCount
    - OGRShapeDataSource::RecompressIfNeeded
    - OGRShapeLayer*::CreateSpatialIndex
    - OGRShapeLayer*::ResizeDBF
    - STARTS_WITH_CI
    - OGRShapeLayer*::DropSpatialIndex
    - OGRShapeLayer*::Repack
    - CPL_IGNORE_RET_VAL
    - OGRShapeLayer*::GetFullName
    - CSLDestroy
    - EQUAL
    - GDALDataset::ExecuteSQL
    - OGRShapeDataSource::GetLayerByName
    - OGRShapeDataSource::UncompressIfNeeded
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRShapeDataSource::ExecuteSQL(const char *pszStatement,\n
      \                                        OGRGeometry *poSpatialFilter,\n                                         const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1234
    functionName: OGRShapeDataSource::GetExtensionsForDeletion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *const *OGRShapeDataSource::GetExtensionsForDeletion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1248,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1251,1
    - Dst: OGRShapeDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1257,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1259,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1261,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1263,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1263,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1269,1
    - Dst: OGRShapeDataSource::UncompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1274,1
    - Dst: GetFullName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1277,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1279,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1279,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1285,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1286,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1288,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1288,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1289,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1293
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1293
    functionName: OGRShapeDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - erase
    - static_cast<int>
    - VSIStatL
    - GetDescription
    - CPLResetExtensionSafe
    - VSIUnlink
    - OGRShapeDataSource::UncompressIfNeeded
    - begin
    - OGRShapeDataSource::GetLayerCount
    - CPLError
    - GetFullName
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1315,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1315,1
    - Dst: GetMaxSimultaneouslyOpened
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1316,1
    - Dst: OGRShapeDataSource::SetLastUsedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRShapeLayer*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1320
    functionName: OGRShapeDataSource::SetLastUsedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 2
    functionsReached:
    - size
    - static_cast<int>
    - OGRShapeDataSource::SetLastUsedLayer
    - GetMaxSimultaneouslyOpened
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::SetLastUsedLayer(OGRShapeLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1330,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1330,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1332,1
    - Dst: OGRShapeDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1333,1
    - Dst: AddToFileList
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1336,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1339
    functionName: OGRShapeDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - CSLAddString
    - CPLStringList::StealList
    - AddToFileList
    - OGRShapeDataSource::GetLayerCount
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **OGRShapeDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRShapeDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1347,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1348,1
    - Dst: CPLAcquireMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1349,1
    - Dst: CPLCondSignal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1351,1
    - Dst: CPLCondTimedWait
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1355,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1360,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1361,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1364,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1365,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1365,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1366,1
    - Dst: CPLString::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1366,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1366,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1367,1
    - Dst: CPLReleaseMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1371
    functionName: OGRShapeDataSource::RefreshLockFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPLCondSignal
    - CPLReleaseMutex
    - CPLString::Printf
    - VSIFSeekL
    - static_cast<OGRShapeDataSource *>
    - CPLAcquireMutex
    - CPLAssert
    - CPLString::size
    - time
    - VSIFWriteL
    - CPLCondTimedWait
    - VSIFFlushL
    - CPLString::data
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::RefreshLockFile(void *_self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAcquireMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1383,1
    - Dst: CPLCondSignal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1385,1
    - Dst: CPLReleaseMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1386,1
    - Dst: CPLJoinThread
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1387,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1391,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1396
    functionName: OGRShapeDataSource::RemoveLockFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLReleaseMutex
    - VSIFCloseL
    - CPLCondSignal
    - VSIUnlink
    - CPLJoinThread
    - CPLAcquireMutex
    linkageType: ''
    returnType: void
    signature: void OGRShapeDataSource::RemoveLockFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1404,1
    - Dst: OGRShapeDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1411,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1412,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1416,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1421,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1424,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1426,1
    - Dst: CPLCreateMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1431,1
    - Dst: CPLReleaseMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1434,1
    - Dst: CPLCreateCond
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1438,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1442,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1445,1
    - Dst: CPLAcquireMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1449,1
    - Dst: CPLReleaseMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1452,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1455,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1455,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1457,1
    - Dst: CPLCreateJoinableThread
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1459,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1462,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1464,1
    - Dst: CPLAcquireMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1468,1
    - Dst: CPLCondWait
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1471,1
    - Dst: CPLReleaseMutex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1473,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1483,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1483,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1488,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1500,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1501,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1503,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1503,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1505,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1507,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1507,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1509,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1510,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1511,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1512,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1515,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1521,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1523,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1524,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1529,1
    - Dst: UpdateFollowingDeOrRecompression
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1533,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1537
    functionName: OGRShapeDataSource::UncompressIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 3
    functionsReached:
    - static_cast<GUIntBig>
    - CPLCreateMutex
    - CPLCopyFile
    - GetDescription
    - CPLDebug
    - CPLCreateJoinableThread
    - CPLError
    - CPLGetConfigOption
    - VSIMkdir
    - CPLString::c_str
    - std::move
    - returnError
    - VSIMemGenerateHiddenFilename
    - CPLStringList::size
    - VSIRmdirRecursive
    - CPLAtof
    - CPLReleaseMutex
    - VSIUnlink
    - CPLSPrintf
    - UpdateFollowingDeOrRecompression
    - VSIFOpenL
    - CPLAcquireMutex
    - time
    - size
    - CPLCondWait
    - empty
    - VSIStatL
    - CPLCreateCond
    - VSIFCloseL
    - EQUAL
    - OGRShapeDataSource::GetLayerCount
    - CPLGetUsablePhysicalRAM
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeDataSource::UncompressIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1546,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1551,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1552,1
    - Dst: OGRShapeDataSource::RemoveLockFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1553,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1559,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1563,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1564,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1568,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1570,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1574,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1582,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1582,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1582,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1587,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1587,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1588,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1592,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1592,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1593,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1601,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1601,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1603,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1603,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1617,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1618,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1618,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1619,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1625,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1631,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1633,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1634,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1639,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1654,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1654,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1657,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1660,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1662,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1663,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1666,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1671,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1671,1
    - Dst: CPLMoveFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1672,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1672,1
    - Dst: returnError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1674,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1678,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1679,1
    - Dst: UpdateFollowingDeOrRecompression
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1683,1
    - Dst: OGRShapeDataSource::RemoveLockFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1686,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 1
    argNames:
    - layerNames
    argTypes:
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 1689
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1689
    functionName: OGRShapeDataSource::RecompressIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLMoveFile
    - CPLCopyFile
    - OGRShapeDataSource::RemoveLockFile
    - std::map::end
    - GetDescription
    - std::vector::emplace_back
    - CPLError
    - CPLGetExtensionSafe
    - std::vector<CPLString>::size
    - std::vector::end
    - std::vector::begin
    - std::sort
    - CPLString::c_str
    - returnError
    - CPLStringList::size
    - VSIRmdirRecursive
    - static_cast<int>
    - VSIUnlink
    - UpdateFollowingDeOrRecompression
    - std::map::find
    - VSIFOpenL
    - CPLSleep
    - empty
    - VSIStatL
    - VSIFCloseL
    - CPLGetBasenameSafe
    - VSIFOpenExL
    - EQUAL
    - VSIGetLastErrorMsg
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool OGRShapeDataSource::RecompressIfNeeded(\n    const std::vector<CPLString>
      &layerNames)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1698,1
    - Dst: VSIOverwriteFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1698,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp:1698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fpTarget
    - osSourceFilename
    argTypes:
    - VSILFILE*
    - CPLString
    constantsTouched: []
    func_position:
      end: 1699
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1699
    functionName: OGRShapeDataSource::CopyInPlace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIOverwriteFile
    - CPLString::c_str
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: "bool OGRShapeDataSource::CopyInPlace(VSILFILE *fpTarget,\n                                     const
      CPLString &osSourceFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - psShape
    - ring
    - start
    - end
    argTypes:
    - SHPObject*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: RingStartEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RingStartEnd(SHPObject *psShape, int ring, int *start, int *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RingStartEnd
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:67,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:69,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:76,1
    - Dst: OGRLinearRing*::setPointsM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:81,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - psShape
    - ring
    - bHasZ
    - bHasM
    argTypes:
    - SHPObject*
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 90
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 90
    functionName: CreateLinearRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::setPointsM
    - RingStartEnd
    - OGRLinearRing*::setPoints
    - OGRLinearRing::OGRLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: "OGRLinearRing *CreateLinearRing(SHPObject *psShape, int ring, bool
      bHasZ,\n                                       bool bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:103,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:107,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:121,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:127,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:132,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:138,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:140,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:155,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:166,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:172,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:179,1
    - Dst: OGRPoint*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:181,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:186,1
    - Dst: OGRMultiPoint*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:189,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:212,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:216,1
    - Dst: OGRLineString*::setPointsM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:220,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:223,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:228,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:236,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:255,1
    - Dst: OGRLineString*::setPointsM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:262,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:266,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:287,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:298,1
    - Dst: CreateLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:301,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:302,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:306,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:307,1
    - Dst: CreateLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:308,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:309,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:312,1
    - Dst: addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:313,1
    - Dst: CreateLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:314,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:327,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:338,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:341,1
    - Dst: OGREnvelope::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:342,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:356,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:357,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:358,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:360,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:362,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:364,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:366,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:370,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:371,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:371,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:372,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:372,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:373,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:373,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:377,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:377,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:378,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:378,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:379,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:379,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:383,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:383,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:384,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:384,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:385,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:385,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:389,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:389,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:390,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:390,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:391,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:391,1
    - Dst: auto::isPointInRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:396,1
    - Dst: auto::isPointInRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:397,1
    - Dst: auto::isPointInRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:398,1
    - Dst: auto::isPointInRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:409,1
    - Dst: VSI_SHP_GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:414,1
    - Dst: reinterpret_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:423,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:429,1
    - Dst: OGRCreateFromMultiPatch
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:446,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:458,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:467,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 149
    argCount: 4
    argNames:
    - hSHP
    - iShape
    - psShape
    - bHasWarnedWrongWindingOrder
    argTypes:
    - SHPHandle
    - int
    - SHPObject*
    - bool
    constantsTouched: []
    func_position:
      end: 470
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 470
    functionName: SHPReadOGRObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - OGRMultiPoint::OGRMultiPoint
    - cpl::infinity
    - CPLDebug
    - OGRPolygon*::addRingDirectly
    - OGRGeometry*::set3D
    - OGRPolygon::OGRPolygon
    - CPLError
    - OGRLineString*::setPointsM
    - OGRPoint::getY
    - auto::isPointInRing
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - SHPReadObject
    - getExteriorRing
    - OGRPoint::getX
    - OGRMultiPoint*::addGeometry
    - OGRGeometryFactory::organizePolygons
    - CreateLinearRing
    - auto::getEnvelope
    - OGRPoint*::set3D
    - OGRMultiLineString*::addGeometryDirectly
    - OGRLineString*::setPoints
    - OGREnvelope::Intersects
    - auto::getNumPoints
    - addRingDirectly
    - auto::getPoint
    - SHPDestroyObject
    - OGRCreateFromMultiPatch
    - VSI_SHP_GetFilename
    - reinterpret_cast<OGRGeometry **>
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *SHPReadOGRObject(SHPHandle hSHP, int iShape, SHPObject
      *psShape,\n                              bool &bHasWarnedWrongWindingOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - v
    - vsize
    argTypes:
    - double*
    - size_t
    constantsTouched: []
    func_position:
      end: 495
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 495
    functionName: CheckNonFiniteCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::isfinite
    linkageType: ''
    returnType: bool
    signature: bool CheckNonFiniteCoordinates(const double *v, size_t vsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:499,1
    - Dst: std::vector<double>::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:499,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: CheckNonFiniteCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 1
    functionsReached:
    - std::vector<double>::size
    - std::vector<double>::data
    - CheckNonFiniteCoordinates
    linkageType: ''
    returnType: bool
    signature: bool CheckNonFiniteCoordinates(const std::vector<double> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:513,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:516,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:519,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:533,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:535,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:538,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:543,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:549,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:552,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:553,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:556,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:556,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:557,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:557,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:558,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:561,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:566,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:569,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:580,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:582,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:585,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:590,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:603,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:604,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:606,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:608,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:612,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:612,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:619,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:621,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:621,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:622,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:624,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:624,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:628,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:628,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:630,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:630,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:635,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:640,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:641,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:642,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:643,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:648,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:650,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:650,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:650,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:650,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:651,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:651,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:653,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:667,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:668,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:668,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:671,1
    - Dst: OGRMultiLineString::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:676,1
    - Dst: const_cast<OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:677,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:677,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:682,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:683,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:683,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:684,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:684,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:687,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:690,1
    - Dst: std::unique_ptr::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:694,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:703,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:705,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:723,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:725,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:726,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:729,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:733,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:738,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:738,1
    - Dst: OGRMultiLineString::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:741,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:752,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:758,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:758,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:762,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:762,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:763,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:763,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:766,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:766,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:771,1
    - Dst: getM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:771,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:773,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:773,1
    - Dst: OGRMultiLineString::removeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:780,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:782,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:783,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:784,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:785,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:790,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:791,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:791,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:792,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:792,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:792,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:793,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:793,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:793,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:794,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:796,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:811,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:811,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:816,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:818,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:819,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:821,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:826,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:835,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:835,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:839,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:855,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:855,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:856,1
    - Dst: std::unique_ptr::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:857,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:861,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:870,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:872,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:875,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:879,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:882,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:883,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:885,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:895,1
    - Dst: std::vector::capacity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:896,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:897,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:897,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:899,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:899,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:900,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:900,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:911,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:911,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:915,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:925,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:928,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:939,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:942,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:945,1
    - Dst: first::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:956,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:970,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:970,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:971,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:972,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:974,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:976,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:980,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:980,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:989,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:989,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:989,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:999,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:999,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1000,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1000,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1002,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1002,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1005,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1006,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1007,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1011,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1012,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1013,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1014,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1019,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1020,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1020,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1021,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1021,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1021,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1022,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1022,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1022,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1023,1
    - Dst: SHPRewindObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1025,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1027,1
    - Dst: OGRCreateMultiPatch
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1044,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1059,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1059,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1060,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1060,1
    - Dst: CheckNonFiniteCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1061,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1061,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1067,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1068,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1068,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1069,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1069,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1069,1
    - Dst: SHPRewindObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1071,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1073,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 230
    argCount: 5
    argNames:
    - hSHP
    - iShape
    - poGeom
    - bRewind
    - eLayerGeomType
    argTypes:
    - SHPHandle
    - int
    - OGRGeometry*
    - bool
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 1085
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 1085
    functionName: SHPWriteOGRObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsMeasured
    - OGRPoint*::getY
    - std::unique_ptr<OGRGeometry>
    - std::vector::size
    - OGRGeometry*::toMultiPoint
    - getY
    - CPLDebug
    - std::unique_ptr::toGeometryCollection
    - std::vector::capacity
    - std::vector::push_back
    - CPLError
    - CPLGetConfigOption
    - getGeometryName
    - const_cast<OGRLineString *>
    - OGRGeometry*::clone
    - simple_max
    - OGRPoint*::getM
    - OGRGeometryFactory::forceToMultiLineString
    - std::make_pair
    - SHPRewindObject
    - OGRCreateMultiPatch
    - CheckNonFiniteCoordinates
    - toPolygon
    - std::vector::reserve
    - wkbFlatten
    - OGRGeometry*::getGeometryName
    - OGRMultiLineString::OGRMultiLineString
    - std::vector::empty
    - wkbHasM
    - OGRGeometry*::getGeometryType
    - std::vector::data
    - OGRGeometry*::toMultiLineString
    - auto::getZ
    - CPLTestBool
    - OGRPoint*::getX
    - static_cast<int>
    - OGRMultiLineString::addGeometryDirectly
    - std::unique_ptr::getGeometryType
    - OGRMultiLineString::removeGeometry
    - OGRGeometry*::toGeometryCollection
    - getGeometryType
    - first::getNumPoints
    - getZ
    - OGRGeometryFactory::forceTo
    - auto::getM
    - getX
    - OGRPoint*::IsEmpty
    - what
    - OGRPoint*::getZ
    - OGRGeometry*::IsEmpty
    - OGRGeometry*::toLineString
    - getM
    - std::isfinite
    - auto::getX
    - std::unique_ptr::toMultiLineString
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - SHPDestroyObject
    - max
    - auto::getY
    - OGRGeometry*::toPoint
    - SHPCreateObject
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr SHPWriteOGRObject(SHPHandle hSHP, int iShape,\n                                const
      OGRGeometry *poGeom, bool bRewind,\n                                OGRwkbGeometryType
      eLayerGeomType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1100,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1101,1
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1110,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1113,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1117,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1118,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1122,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1125,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1126,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1135,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1136,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1142,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1144,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1147,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1150,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1151,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1154,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1156,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1167,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1168,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1172,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1190,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1193,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1197,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1199,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1200,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1211,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1216,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1223,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1227,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1231,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1235,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1239,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1243,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1247,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1251,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1255,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1259,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1263,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1267,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1271,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 105
    argCount: 5
    argNames:
    - pszName
    - hSHP
    - hDBF
    - pszSHPEncoding
    - bAdjustType
    argTypes:
    - char*
    - SHPHandle
    - DBFHandle
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1277
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1277
    functionName: SHPReadOGRFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CPL_INT64_FITS_ON_INT32
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLAtoGIntBigEx
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetName
    - strlen
    - DBFGetFieldInfo
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: "OGRFeatureDefn *SHPReadOGRFeatureDefn(const char *pszName, SHPHandle
      hSHP,\n                                      DBFHandle hDBF,\n                                      const
      char *pszSHPEncoding,\n                                      int bAdjustType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1292,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1301,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1306,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1310,1
    - Dst: OGRFeatureDefn*::IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1317,1
    - Dst: SHPReadOGRObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1319,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1334,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1339,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1340,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1340,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1342,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1344,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1344,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1346,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1348,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1348,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1350,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1352,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1352,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1354,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1359,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1363,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1371,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1374,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1375,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1378,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1390,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1391,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1394,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1398,1
    - Dst: DBFIsAttributeNULL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1406,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1408,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1412,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1416,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1426,1
    - Dst: DBFIsAttributeNULL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1433,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1435,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1443,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1445,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1449,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1449,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1450,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1450,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1452,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1452,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1457,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1459,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1460,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1463,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1468,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1473,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 90
    argCount: 7
    argNames:
    - hSHP
    - hDBF
    - poDefn
    - iShape
    - psShape
    - pszSHPEncoding
    - bHasWarnedWrongWindingOrder
    argTypes:
    - SHPHandle
    - DBFHandle
    - OGRFeatureDefn*
    - int
    - SHPObject*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1476
      start: 1283
    functionDepth: 4
    functionLinenumber: 1283
    functionLinenumberEnd: 1476
    functionName: SHPReadOGRFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetFieldNull
    - atoi
    - OGRGeometry*::setMeasured
    - static_cast<GByte>
    - CPLError
    - OGRGeometry*::set3D
    - wkbHasZ
    - OGRFeature*::GetDefnRef
    - OGRFieldDefn*::IsIgnored
    - OGRFieldDefn*::GetSubType
    - strlen
    - OGRFeature*::SetGeometryDirectly
    - wkbHasM
    - OGRGeometry*::getGeometryType
    - OGRFeatureDefn*::GetFieldCount
    - DBFIsRecordDeleted
    - OGRFeatureDefn*::IsGeometryIgnored
    - static_cast<GInt16>
    - OGRFieldDefn*::GetType
    - CPLAssert
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - SHPReadOGRObject
    - DBFIsAttributeNULL
    - SHPDestroyObject
    - OGRFeature*::SetField
    - memset
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *SHPReadOGRFeature(SHPHandle hSHP, DBFHandle hDBF,\n                              OGRFeatureDefn
      *poDefn, int iShape,\n                              SHPObject *psShape, const
      char *pszSHPEncoding,\n                              bool &bHasWarnedWrongWindingOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1488,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1490,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1491,1
    - Dst: DBFAlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1494,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1497,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1499,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1503,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - hDBF
    - iField
    - poFieldDefn
    - nNewSize
    argTypes:
    - DBFHandle
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1506
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1506
    functionName: GrowField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn*::GetNameRef
    - CPLDebug
    - OGRFieldDefn*::GetTemporaryUnsealer
    - DBFGetFieldInfo
    - CPLError
    - DBFAlterFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GrowField(DBFHandle hDBF, int iField, OGRFieldDefn *poFieldDefn,\n
      \                       int nNewSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPWriteOGRObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1526,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1527,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1527,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1528,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1528,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1543,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1544,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1552,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1553,1
    - Dst: DBFGetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1553,1
    - Dst: DBFGetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1561,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1561,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1563,1
    - Dst: DBFAddField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1566,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1572,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1574,1
    - Dst: DBFWriteIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1576,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1577,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1577,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1578,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1578,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1580,1
    - Dst: DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1584,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1585,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1585,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1592,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1594,1
    - Dst: DBFWriteNULLAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1596,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1596,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1596,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1601,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1603,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1612,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1622,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1627,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1628,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1634,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1657,1
    - Dst: GrowField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1659,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1662,1
    - Dst: DBFWriteStringAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1667,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1668,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1668,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1671,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1677,1
    - Dst: DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1679,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1680,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1680,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1681,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1687,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1689,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1690,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1691,1
    - Dst: GrowField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1696,1
    - Dst: DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1703,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1704,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1704,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1716,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1717,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1717,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1722,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1728,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1729,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1740,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1746,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1747,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1758,1
    - Dst: DBFWriteNULLAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1765,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1766,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1766,1
    - Dst: DBFWriteIntegerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1770,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1771,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp:1771,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 7
    argNames:
    - hSHP
    - hDBF
    - poDefn
    - poFeature
    - pszSHPEncoding
    - pbTruncationWarningEmitted
    - bRewind
    argTypes:
    - SHPHandle
    - DBFHandle
    - OGRFeatureDefn*
    - OGRFeature*
    - char*
    - bool*
    - bool
    constantsTouched: []
    func_position:
      end: 1787
      start: 1515
    functionDepth: 7
    functionLinenumber: 1515
    functionLinenumberEnd: 1787
    functionName: SHPWriteOGRFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - OGRFieldDefn*::GetPrecision
    - DBFWriteStringAttribute
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - SHPWriteOGRObject
    - DBFWriteNULLAttribute
    - CPLError
    - OGRFieldDefn*::GetWidth
    - static_cast<GIntBig>
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetRawFieldRef
    - OGRFeatureDefn*::GetGeomType
    - OGRFieldDefn*::GetSubType
    - DBFGetFieldCount
    - GrowField
    - OGRFeatureDefn*::GetFieldCount
    - static_cast<int>
    - OGRFeature*::GetFID
    - OGRFieldDefn*::GetNameRef
    - min
    - OGRFieldDefn*::GetType
    - DBFWriteAttributeDirectly
    - snprintf
    - CPLRecode
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetGeometryRef
    - DBFWriteIntegerAttribute
    - EQUAL
    - DBFGetRecordCount
    - fabs
    - DBFAddField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr SHPWriteOGRFeature(SHPHandle hSHP, DBFHandle hDBF,\n                          OGRFeatureDefn
      *poDefn, OGRFeature *poFeature,\n                          const char *pszSHPEncoding,\n
      \                         bool *pbTruncationWarningEmitted, bool bRewind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:40,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:43,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pszFilename
    - pszAccess
    - bEnforce2GBLimit
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: VSI_SHP_OpenInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - CPLCalloc
    - VSIFOpenExL
    - CPLStrdup
    linkageType: ''
    returnType: SAFile
    signature: "SAFile VSI_SHP_OpenInternal(const char *pszFilename,\n                                   const
      char *pszAccess, int bEnforce2GBLimit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_SHP_OpenInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszFilename
    - pszAccess
    - userData
    argTypes:
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: VSI_SHP_Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSI_SHP_OpenInternal
    linkageType: ''
    returnType: SAFile
    signature: "SAFile VSI_SHP_Open(const char *pszFilename, const char *pszAccess,\n
      \                          void *userData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - size
    - nmemb
    - file
    argTypes:
    - void*
    - SAOffset
    - SAOffset
    - SAFile
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: VSI_SHP_Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFReadL
    linkageType: ''
    returnType: SAOffset
    signature: "SAOffset VSI_SHP_Read(void *p, SAOffset size, SAOffset nmemb,\n                             SAFile
      file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:89,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - file
    - nExtraBytes
    argTypes:
    - SAFile
    - SAOffset
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: VSI_SHP_WriteMoreDataOK
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int VSI_SHP_WriteMoreDataOK(SAFile file, SAOffset nExtraBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_SHP_WriteMoreDataOK
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:117,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - size
    - nmemb
    - file
    argTypes:
    - void*
    - SAOffset
    - SAOffset
    - SAFile
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: VSI_SHP_Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSI_SHP_WriteMoreDataOK
    - VSIFWriteL
    linkageType: ''
    returnType: SAOffset
    signature: "SAOffset VSI_SHP_Write(const void *p, SAOffset size, SAOffset nmemb,\n
      \                             SAFile file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:132,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - SAFile
    - SAOffset
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: VSI_SHP_Seek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    linkageType: ''
    returnType: SAOffset
    signature: SAOffset VSI_SHP_Seek(SAFile file, SAOffset offset, int whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - SAFile
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: VSI_SHP_Tell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SAOffset
    signature: SAOffset VSI_SHP_Tell(SAFile file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - SAFile
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: VSI_SHP_Flush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFFlushL
    linkageType: ''
    returnType: int
    signature: int VSI_SHP_Flush(SAFile file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:171,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - SAFile
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: VSI_SHP_Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int VSI_SHP_Close(SAFile file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: VSI_SHP_Error
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void VSI_SHP_Error(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszFilename
    - userData
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: VSI_SHP_Remove
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: int
    signature: int VSI_SHP_Remove(const char *pszFilename, void *userData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - psHooks
    argTypes:
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: SASetupDefaultHooks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SASetupDefaultHooks(SAHooks *psHooks)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - SAFile
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: VSI_SHP_GetVSIL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *VSI_SHP_GetVSIL(SAFile file)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - SAFile
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: VSI_SHP_GetFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *VSI_SHP_GetFilename(SAFile file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_SHP_OpenInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszFilename
    - pszAccess
    - userData
    argTypes:
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: VSI_SHP_Open2GBLimit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 0
    functionsReached:
    - VSI_SHP_OpenInternal
    linkageType: ''
    returnType: SAFile
    signature: "SAFile VSI_SHP_Open2GBLimit(const char *pszFilename,\n                                   const
      char *pszAccess, void *userData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b2GBLimit
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: VSI_SHP_GetHook
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shp_vsi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SAHooks
    signature: SAHooks *VSI_SHP_GetHook(int b2GBLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeDataSource*::GetPool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:57,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:67,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:79,1
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:84,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:86,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:91,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:92,1
    - Dst: OGRShapeLayer::ConvertCodePage
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:95,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:103,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:104,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:110,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:110,1
    - Dst: DBFSetLastModifiedDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:111,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:117,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:119,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:125,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:125,1
    - Dst: OGRShapeLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:127,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:129,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:130,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:134,1
    - Dst: SHPReadOGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:136,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:137,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:137,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:139,1
    - Dst: GetOpenOptions
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:139,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:143,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:157,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:162,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:180,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:186,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:186,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:194,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:197,1
    - Dst: std::make_unique<OGRShapeGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:199,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:200,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:201,1
    - Dst: auto::SetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:202,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:204,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:205,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:206,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:206,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:209,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:209,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:210,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:210,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:215,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 78
    argCount: 10
    argNames:
    - poDSIn
    - pszFullNameIn
    - hSHPIn
    - hDBFIn
    - poSRSIn
    - bSRSSetIn
    - osPrjFilename
    - bUpdate
    - eReqType
    - papszCreateOptions
    argTypes:
    - OGRShapeDataSource*
    - char*
    - SHPHandle
    - DBFHandle
    - OGRSpatialReference*
    - bool
    - std::string
    - bool
    - OGRwkbGeometryType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 216
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 216
    functionName: OGRShapeLayer::OGRShapeLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::TouchLayer
    - OGRShapeDataSource*::GetPool
    - CPLDebug
    - GetOpenOptions
    - OGRSpatialReference*::Release
    - CPLError
    - CPLGetConfigOption
    - CSLFetchNameValue
    - wkbHasZ
    - std::string::empty
    - OGRShapeLayer::ConvertCodePage
    - OGRSpatialReference*::SetAxisMappingStrategy
    - SetGeomType
    - GetGeomType
    - CPLUnixTimeToYMDHMS
    - std::move
    - SetMetadataItem
    - std::make_unique<OGRShapeGeomFieldDefn>
    - GetName
    - wkbHasM
    - SHPReadObject
    - c_str
    - CPLTestBool
    - CPLFetchBool
    - DBFSetLastModifiedDate
    - CPLSPrintf
    - time
    - auto::SetPrjFilename
    - SetDescription
    - SHPReadOGRFeatureDefn
    - Seal
    - OGRSpatialReference*::Clone
    - OGR_GT_SetModifier
    - OGRShapeLayer::TestCapability
    - AddGeomFieldDefn
    - CPLGetBasenameSafe
    - SHPDestroyObject
    linkageType: ''
    returnType: void
    signature: "void OGRShapeLayer::OGRShapeLayer(OGRShapeDataSource *poDSIn,\n                             const
      char *pszFullNameIn, SHPHandle hSHPIn,\n                             DBFHandle
      hDBFIn,\n                             const OGRSpatialReference *poSRSIn, bool
      bSRSSetIn,\n                             const std::string &osPrjFilename, bool
      bUpdate,\n                             OGRwkbGeometryType eReqType,\n                             CSLConstList
      papszCreateOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::Repack
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:226,1
    - Dst: OGRShapeLayer::ResizeDBF
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:230,1
    - Dst: OGRShapeLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:234,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:239,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:240,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:240,1
    - Dst: OGRShapeLayer::ClearMatchingFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:243,1
    - Dst: OGRShapeLayer::ClearSpatialFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:244,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:247,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:250,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:253,1
    - Dst: SHPCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:256,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:259,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 260
    functionName: OGRShapeLayer::~OGRShapeLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::ResizeDBF
    - OGRShapeLayer::Repack
    - static_cast<int>
    - OGRShapeLayer::CreateSpatialIndex
    - DBFClose
    - CPLDebug
    - SHPClose
    - OGRShapeLayer::ClearSpatialFIDs
    - SHPCloseDiskTree
    - OGRShapeLayer::ClearMatchingFIDs
    - GetName
    - SBNCloseDiskTree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::~OGRShapeLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:273,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:274,1
    - Dst: DBFSetLastModifiedDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: OGRShapeLayer::SetModificationDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - DBFSetLastModifiedDate
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::SetModificationDate(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFSetWriteEndOfFileChar
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: OGRShapeLayer::SetWriteDBFEOFChar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - DBFSetWriteEndOfFileChar
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::SetWriteDBFEOFChar(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:499,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:500,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 196
    argCount: 1
    argNames:
    - nLDID
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 501
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 501
    functionName: GetEncodingFromLDIDNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetEncodingFromLDIDNumber(int nLDID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:510,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:512,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:515,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:517,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:519,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:519,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:521,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - pszCPG
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: GetEncodingFromCPG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - STARTS_WITH_CI
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetEncodingFromCPG(const char *pszCPG)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:542,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:542,1
    - Dst: GetEncodingFromLDIDNumber
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:546,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:548,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:550,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:550,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:555,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:557,1
    - Dst: GetEncodingFromCPG
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:559,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:561,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:562,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:562,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:565,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:567,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - pszCodePage
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 573
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 573
    functionName: OGRShapeLayer::ConvertCodePage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - STARTS_WITH_CI
    - CPLSPrintf
    - std::move
    - GetEncodingFromCPG
    - SetMetadataItem
    - std::string::c_str
    - GetEncodingFromLDIDNumber
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRShapeLayer::ConvertCodePage(const char *pszCodePage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:586,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:586,1
    - Dst: SHPOpenDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:588,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 593
    functionName: OGRShapeLayer::CheckForQIX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLResetExtensionSafe
    - c_str
    - std::string::c_str
    - SHPOpenDiskTree
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::CheckForQIX()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:606,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:606,1
    - Dst: SBNOpenDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:608,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 613
    functionName: OGRShapeLayer::CheckForSBN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLResetExtensionSafe
    - c_str
    - std::string::c_str
    - SBNOpenDiskTree
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::CheckForSBN()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:632,1
    - Dst: InitializeIndexSupport
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:634,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:634,1
    - Dst: EvaluateAgainstIndices
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:637,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:650,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:653,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:655,1
    - Dst: OGREnvelope::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:661,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:667,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:668,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:668,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:672,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:679,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:679,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:681,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:681,1
    - Dst: SHPSearchDiskTreeEx
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:696,1
    - Dst: SBNSearchDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:699,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:702,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:706,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:718,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:719,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:722,1
    - Dst: OGRShapeLayer::ClearSpatialFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:750,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 755
    functionName: OGRShapeLayer::ScanIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - CPLDebug
    - static_cast<GIntBig *>
    - InitializeIndexSupport
    - static_cast<GIntBig>
    - GetExtent
    - SBNSearchDiskTree
    - EvaluateAgainstIndices
    - OGRShapeLayer::ClearSpatialFIDs
    - CPLMalloc
    - OGREnvelope::Contains
    - OGRShapeLayer::CheckForSBN
    - free
    - c_str
    - OGRShapeLayer::CheckForQIX
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OGREnvelope::Intersects
    - static_cast<int *>
    - calloc
    - SHPSearchDiskTreeEx
    - clone
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::ScanIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:764,1
    - Dst: OGRShapeLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:772,1
    - Dst: VSIFClearErrL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:775,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 776
    functionName: OGRShapeLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFClearErrL
    - VSI_SHP_GetVSIL
    - OGRShapeLayer::TouchLayer
    - OGRShapeLayer::SyncToDisk
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: OGRShapeLayer::ClearMatchingFIDs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::ClearMatchingFIDs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:799,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 807
    functionName: OGRShapeLayer::ClearSpatialFIDs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 2
    functionsReached:
    - free
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::ClearSpatialFIDs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::ClearMatchingFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:816,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:823,1
    - Dst: OGRShapeLayer::ClearSpatialFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:835,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 839
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 839
    functionName: OGRShapeLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::ISetSpatialFilter
    - OGRShapeLayer::ClearMatchingFIDs
    - Equals
    - OGRShapeLayer::ClearSpatialFIDs
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::ISetSpatialFilter(int iGeomField,\n                                        const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::ClearMatchingFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:847,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszAttributeFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: OGRShapeLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::ClearMatchingFIDs
    - OGRLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::SetAttributeFilter(const char *pszAttributeFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:862,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:871,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 876
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 876
    functionName: OGRShapeLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::SetNextByIndex
    - OGRShapeLayer::TouchLayer
    - static_cast<int>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:892,1
    - Dst: SHPReadOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:904,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:913,1
    - Dst: SHPReadOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:918,1
    - Dst: SHPReadOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:925,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 1
    argNames:
    - iShapeId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 931
      start: 885
    functionDepth: 5
    functionLinenumber: 885
    functionLinenumberEnd: 931
    functionName: OGRShapeLayer::FetchShape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - SHPReadObject
    - SHPDestroyObject
    - SHPReadOGRFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRShapeLayer::FetchShape(int iShapeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:940,1
    - Dst: OGRShapeLayer::ScanIndices
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:951,1
    - Dst: OGRShapeLayer::FetchShape
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:971,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:971,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:984,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:986,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:986,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:987,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:987,1
    - Dst: OGRShapeLayer::FetchShape
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:990,1
    - Dst: OGRShapeLayer::FetchShape
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:993,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1000,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1003,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1003,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1008,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1010,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 937
    functionDepth: 6
    functionLinenumber: 937
    functionLinenumberEnd: 1018
    functionName: OGRShapeLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - static_cast<int>
    - VSIFEofL
    - GetSpatialRef
    - OGRShapeLayer::TouchLayer
    - FilterGeometry
    - DBFIsRecordDeleted
    - Evaluate
    - VSIFErrorL
    - VSI_SHP_GetVSIL
    - OGRShapeLayer::FetchShape
    - OGRShapeLayer::ScanIndices
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRShapeLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1027,1
    - Dst: SHPReadOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1030,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1031,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1040,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1042,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1048
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1048
    functionName: OGRShapeLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetSpatialRef
    - OGRShapeLayer::TouchLayer
    - SHPReadOGRFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRShapeLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UncompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1056,1
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1059,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pszOperation
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1071
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1071
    functionName: OGRShapeLayer::StartUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRShapeLayer::TouchLayer
    - UncompressIfNeeded
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::StartUpdate(const char *pszOperation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1080,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1083,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1091,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1091,1
    - Dst: OGRShapeLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1092,1
    - Dst: SHPWriteOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1104,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1114,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1115,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1120,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1133
      start: 1077
    functionDepth: 8
    functionLinenumber: 1077
    functionLinenumberEnd: 1133
    functionName: OGRShapeLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::CheckForQIX
    - OGRFeature*::GetFID
    - VSIFTruncateL
    - CPLAssert
    - SHPWriteOGRFeature
    - VSI_SHP_GetVSIL
    - OGRShapeLayer::DropSpatialIndex
    - OGRShapeLayer::StartUpdate
    - OGRShapeLayer::CheckForSBN
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1142,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1153,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1160,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1160,1
    - Dst: DBFMarkRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1165,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1165,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1169,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1169,1
    - Dst: OGRShapeLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1174
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1174
    functionName: OGRShapeLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRShapeLayer::CheckForQIX
    - DBFIsRecordDeleted
    - DBFMarkRecordDeleted
    - CPLError
    - OGRShapeLayer::DropSpatialIndex
    - OGRShapeLayer::StartUpdate
    - OGRShapeLayer::CheckForSBN
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1183,1
    - Dst: VSI_SHP_WriteMoreDataOK
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1187,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1193,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1193,1
    - Dst: OGRShapeLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1194,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1196,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1199,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1201,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1203,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1206,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1305,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1305,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1306,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1306,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1312,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1312,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1314,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1316,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1319,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1319,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1340,1
    - Dst: OGRShapeLayer::ResetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1341,1
    - Dst: SHPWriteOGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1345,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 121
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1360
      start: 1180
    functionDepth: 8
    functionLinenumber: 1180
    functionLinenumberEnd: 1360
    functionName: OGRShapeLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetFID
    - OGRShapeLayer::ResetGeomType
    - OGRShapeLayer::CheckForQIX
    - OGRGeometry*::toGeometryCollection
    - whileUnsealing
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::getGeometryType
    - VSI_SHP_WriteMoreDataOK
    - SHPWriteOGRFeature
    - wkbFlatten
    - OGRShapeLayer::DropSpatialIndex
    - OGRShapeLayer::StartUpdate
    - OGRShapeLayer::CheckForSBN
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::ScanIndices
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1379,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1387,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1387,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1395,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1403,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1416,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1419,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1419,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1420,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1420,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1429,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1443,1
    - Dst: sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1445,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1448,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1449,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1456,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1457,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1458,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1459,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1460,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1461,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1462,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1463,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1485,1
    - Dst: SHPReadOGRObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1489,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1492,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1543,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1549,1
    - Dst: SHPReadOGRObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1553,1
    - Dst: OGRPreparedGeometryIntersects
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1564,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1566,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1571,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1588,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1369
    functionDepth: 4
    functionLinenumber: 1369
    functionLinenumberEnd: 1592
    functionName: OGRShapeLayer::GetFeatureCountWithSpatialFilterOnly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - VSI_SHP_GetVSIL
    - VSIFEofL
    - ToHandle
    - Intersects
    - GetGeomType
    - wkbFlatten
    - SHPReadObject
    - OGRPreparedGeometryIntersects
    - static_cast<int>
    - sHooks::FRead
    - CPL_LSBPTR64
    - DBFIsRecordDeleted
    - sHooks::FSeek
    - OGRGeometry*::getEnvelope
    - OGRShapeLayer::ScanIndices
    - SHPReadOGRObject
    - SHPDestroyObject
    - VSIFErrorL
    - memset
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: int
    signature: int OGRShapeLayer::GetFeatureCountWithSpatialFilterOnly()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1606,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1609,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1611,1
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1633,1
    - Dst: OGRShapeLayer::GetFeatureCountWithSpatialFilterOnly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1639,1
    - Dst: AttributeFilterEvaluationNeedsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1648,1
    - Dst: SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1649,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1651,1
    - Dst: SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1653,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1657,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1658
      start: 1598
    functionDepth: 5
    functionLinenumber: 1598
    functionLinenumberEnd: 1658
    functionName: OGRShapeLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    - getEnvelope
    - OGRLayer::GetFeatureCount
    - OGRShapeLayer::TouchLayer
    - OGRShapeLayer::GetFeatureCountWithSpatialFilterOnly
    - SetGeometryIgnored
    - OGREnvelope::Contains
    - AttributeFilterEvaluationNeedsGeometry
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRShapeLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1674,1
    - Dst: SHPGetInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1683,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1690,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1690,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1690,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1691,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1693,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1715
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1715
    functionName: OGRShapeLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::TouchLayer
    - CPLDebug
    - SHPGetInfo
    - OGRLayer::IGetExtent
    - std::isnan
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1721,1
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1723,1
    - Dst: SHPGetInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1732,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1739,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1739,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1746,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1747,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1750,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1750,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1750,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1751,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1753,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1763,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 1771
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1771
    functionName: OGRShapeLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - OGRShapeLayer::TouchLayer
    - OGR_GT_HasZ
    - CPLDebug
    - GetGeomType
    - SHPGetInfo
    - std::isnan
    - OGRLayer::IGetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::IGetExtent3D(int iGeomField, OGREnvelope3D *psExtent3D,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1780,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1783,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1786,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1789,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1791,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1791,1
    - Dst: InitializeIndexSupport
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1796,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1796,1
    - Dst: CanUseIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1797,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1802,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1805,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1806,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1806,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1808,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1811,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1814,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1817,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1820,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1826,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1827,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1830,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1833,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1836,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1839,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1842,1
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1853,1
    - Dst: CPLCanRecode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1855,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1867,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1871
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1871
    functionName: OGRShapeLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - CPLCanRecode
    - empty
    - OGRShapeLayer::CheckForQIX
    - OGRShapeLayer::TouchLayer
    - EQUAL
    - DBFGetFieldCount
    - DBFGetFieldInfo
    - CanUseIndex
    - InitializeIndexSupport
    - OGRShapeLayer::CheckForSBN
    linkageType: ''
    returnType: int
    signature: int OGRShapeLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1881,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1884,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1890,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1890,1
    - Dst: DBFCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1891,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1895,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1905,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1908,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1912,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1914,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1916,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1925,1
    - Dst: CPLClearRecodeWarningFlags
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1927,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1928,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1929,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1932,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1934,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1935,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1937,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1939,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1939,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1945,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1956,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1959,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1960,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1964,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1966,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1968,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1970,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1971,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1971,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1979,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1981,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1982,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1992,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1993,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1994,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1994,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1996,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:1997,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2003,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2004,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2005,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2005,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2007,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2008,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2015,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2019,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2026,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2028,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2030,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2033,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2043,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2046,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2054,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2062,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2069,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2070,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2098,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2103,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2103,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2108,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2110,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2110,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2116,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2117,1
    - Dst: DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2120,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2120,1
    - Dst: DBFDeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2122,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2130,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2130,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2132,1
    - Dst: DBFWriteNULLAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2145,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 140
    argCount: 2
    argNames:
    - poFieldDefn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2150
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 2150
    functionName: OGRShapeLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - strncpy
    - DBFDeleteField
    - DBFWriteNULLAttribute
    - OGRFieldDefn::GetFieldTypeName
    - CPLString
    - GetFieldDefn
    - CPLError
    - end
    - DBFCreate
    - CPLErrorReset
    - insert
    - find
    - CPLString::c_str
    - CPLPopErrorHandler
    - std::move
    - strlen
    - DBFGetFieldCount
    - OGRShapeLayer::StartUpdate
    - c_str
    - static_cast<int>
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - CPLAssert
    - OGRFieldDefn::SetName
    - OGRFieldDefn::GetWidth
    - whileUnsealing
    - CPLFree
    - empty
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CPLResetExtensionSafe
    - CPLClearRecodeWarningFlags
    - EQUAL
    - OGRFieldDefn::GetSubType
    - CPLsnprintf
    - OGRFieldDefn::SetType
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::CreateField(const OGRFieldDefn *poFieldDefn,\n
      \                                 int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2158,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2163,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2167,1
    - Dst: DBFDeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2169,1
    - Dst: OGRShapeLayer::TruncateDBF
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2171,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2177
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2177
    functionName: OGRShapeLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::TruncateDBF
    - GetFieldCount
    - DBFDeleteField
    - CPLError
    - whileUnsealing
    - OGRShapeLayer::StartUpdate
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2185,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2188,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2191,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2191,1
    - Dst: DBFReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2195,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 2201
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2201
    functionName: OGRShapeLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - DBFReorderFields
    - OGRCheckPermutation
    - GetFieldCount
    - whileUnsealing
    - OGRShapeLayer::StartUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2210,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2213,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2215,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2219,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2221,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2222,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2224,1
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2230,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2234,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2234,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2236,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2237,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2239,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2243,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2250,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2257,1
    - Dst: CPLClearRecodeWarningFlags
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2259,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2260,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2261,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2264,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2266,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2267,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2269,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2272,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2272,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2278,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2281,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2286,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2287,1
    - Dst: DBFAlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2290,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2294,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2296,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2296,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2299,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2300,1
    - Dst: OGRShapeLayer::TruncateDBF
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2302,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2308
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2308
    functionName: OGRShapeLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - strncpy
    - GetFieldDefn
    - OGRFieldDefn*::GetTemporaryUnsealer
    - CPLError
    - OGRFieldDefn*::GetWidth
    - CPLErrorReset
    - CPLPopErrorHandler
    - OGRShapeLayer::StartUpdate
    - DBFAlterFieldDefn
    - c_str
    - OGRFieldDefn*::SetPrecision
    - OGRShapeLayer::TruncateDBF
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - CPLFree
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - empty
    - OGRFieldDefn*::SetWidth
    - CPLClearRecodeWarningFlags
    - DBFGetFieldInfo
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                    int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2317,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2322,1
    - Dst: cpl::down_cast<OGRShapeGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2326,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2327,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2328,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2332,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2332,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2333,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2335,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2344,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2346,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2355,1
    - Dst: auto::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2356,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2358,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2367,1
    - Dst: auto::SetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2369,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2370,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2370,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2373,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2379,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2380,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2380,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2383,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2383,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2384,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2388,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2389,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2390,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2394,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2396,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2397,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2398,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2402,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2404,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2404,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2405,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2405,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2407,1
    - Dst: auto::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2408,1
    - Dst: auto::SetSRSSet
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2412,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2416,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2416,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2418,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2418,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - iGeomField
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2421
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2421
    functionName: OGRShapeLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::IsNullable
    - GetGeomFieldDefn
    - auto::GetType
    - strcmp
    - CPLError
    - GetGeomFieldCount
    - cpl::down_cast<OGRShapeGeomFieldDefn *>
    - auto::SetSRSSet
    - OGRGeomFieldDefn*::GetNameRef
    - auto::exportToWkt
    - auto::Clone
    - strlen
    - OGRShapeLayer::StartUpdate
    - c_str
    - auto::GetPrjFilename
    - auto::SetName
    - OGRGeomFieldDefn*::GetType
    - VSIUnlink
    - VSIFOpenL
    - auto::GetCoordinateEpoch
    - auto::SetPrjFilename
    - auto::SetSpatialRef
    - auto::GetNameRef
    - CPLFree
    - VSIStatL
    - VSIFCloseL
    - CPLResetExtensionSafe
    - auto::SetNullable
    - auto::GetTemporaryUnsealer
    - OGRGeomFieldDefn*::GetSpatialRef
    - VSIFWriteL
    - auto::Release
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRShapeLayer::AlterGeomFieldDefn(\n    int iGeomField, const
      OGRGeomFieldDefn *poNewGeomFieldDefn, int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2439,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2439,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2446,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2446,1
    - Dst: CSLLoad2
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2447,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2447,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2452,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2454,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2455,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2458,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2459,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2460,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2462,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2463,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2465,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2472,1
    - Dst: OGR_SRSNode::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2474,1
    - Dst: OGR_SRSNode::StripNodes
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2476,1
    - Dst: OGR_SRSNode::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2478,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2481,1
    - Dst: static_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2483,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2483,1
    - Dst: auto::importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2488,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2493,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2497,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2497,1
    - Dst: auto::FindBestMatch
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2499,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2502,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2504,1
    - Dst: auto::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2510,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2427
    functionDepth: 3
    functionLinenumber: 2427
    functionLinenumberEnd: 2517
    functionName: OGRShapeGeomFieldDefn::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::FindBestMatch
    - static_cast<char **>
    - CSLLoad2
    - std::string::c_str
    - CPLGetConfigOption
    - static_cast<unsigned char>
    - auto::importFromESRI
    - std::move
    - strlen
    - OGR_SRSNode::StripNodes
    - c_str
    - STARTS_WITH_CI
    - CPLTestBool
    - OGR_SRSNode::importFromWkt
    - CPLCalloc
    - auto::SetAxisMappingStrategy
    - memmove
    - OGRSpatialReference::OGRSpatialReference
    - auto::AutoIdentifyEPSG
    - CPLResetExtensionSafe
    - CSLDestroy
    - auto::Release
    - OGR_SRSNode::OGR_SRSNode
    - OGR_SRSNode::exportToWkt
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRShapeGeomFieldDefn::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2536,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2547,1
    - Dst: sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2548,1
    - Dst: reinterpret_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2551,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2551,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2553,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2554,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2557,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2563,1
    - Dst: sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2563,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2565,1
    - Dst: sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2566,1
    - Dst: reinterpret_cast<GInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2569,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2569,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2571,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2572,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2575,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - nNewGeomType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2584
      start: 2528
    functionDepth: 1
    functionLinenumber: 2528
    functionLinenumberEnd: 2584
    functionName: OGRShapeLayer::ResetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - sHooks::FRead
    - reinterpret_cast<GInt32 *>
    - static_cast<int>
    - sHooks::FWrite
    - CPLError
    - sHooks::FSeek
    - sHooks::FTell
    - CPL_LSBWORD32
    linkageType: ''
    returnType: int
    signature: int OGRShapeLayer::ResetGeomType(int nNewGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2593,1
    - Dst: SHPWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2599,1
    - Dst: DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2602,1
    - Dst: sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2609,1
    - Dst: sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2611,1
    - Dst: sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2616,1
    - Dst: OGRShapeLayer::Repack
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2620,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2623
    functionName: OGRShapeLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRShapeLayer::Repack
    - OGRShapeLayer::TouchLayer
    - DBFUpdateHeader
    - SHPWriteHeader
    - sHooks::FFlush
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2632,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2635,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2637,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2639,1
    - Dst: SHPCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2645,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2649,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2656,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2656,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2657,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2657,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2659,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2659,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2661,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2662,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2663,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2674,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2674,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2675,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2676,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2678,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2678,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2680,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2681,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2681,1
    - Dst: OGRShapeLayer::ClearSpatialFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2690
    functionName: OGRShapeLayer::DropSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - OGRShapeLayer::CheckForQIX
    - CPLResetExtensionSafe
    - VSIUnlink
    - CPLDebug
    - OGRShapeLayer::StartUpdate
    - OGRShapeLayer::ClearSpatialFIDs
    - SHPCloseDiskTree
    - CPLError
    - SBNCloseDiskTree
    - std::string::c_str
    - VSIStrerror
    - GetName
    - OGRShapeLayer::CheckForSBN
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::DropSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2699,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2705,1
    - Dst: OGRShapeLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2706,1
    - Dst: OGRShapeLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2713,1
    - Dst: SHPCreateTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2714,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2719,1
    - Dst: SHPTreeTrimExtraNodes
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2728,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2736,1
    - Dst: SHPWriteTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2738,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2739,1
    - Dst: SHPDestroyTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2744,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2746,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - nMaxDepth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2749
      start: 2696
    functionDepth: 3
    functionLinenumber: 2696
    functionLinenumberEnd: 2749
    functionName: OGRShapeLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - SHPCreateTree
    - CPLFree
    - OGRShapeLayer::CheckForQIX
    - SHPWriteTree
    - CPLDebug
    - SHPTreeTrimExtraNodes
    - SHPDestroyTree
    - CPL_IGNORE_RET_VAL
    - OGRShapeLayer::DropSpatialIndex
    - OGRShapeLayer::SyncToDisk
    - OGRShapeLayer::StartUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::CreateSpatialIndex(int nMaxDepth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2761,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2761,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2763,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2768
      start: 2755
    functionDepth: 1
    functionLinenumber: 2755
    functionLinenumberEnd: 2768
    functionName: CheckFileDeletion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - VSIStatL
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void CheckFileDeletion(const CPLString &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2776,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2779,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2780,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2782,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2782,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2783,1
    - Dst: CheckFileDeletion
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2787
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2787
    functionName: ForceDeleteFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLSleep
    - VSIUnlink
    - CheckFileDeletion
    - CPLDebug
    - CPLString::c_str
    - VSIStrerror
    linkageType: ''
    returnType: void
    signature: void ForceDeleteFile(const CPLString &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2801,1
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2805,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2814,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2822,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2824,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2826,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2826,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2827,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2827,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2835,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2844,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2846,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2853,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2853,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2854,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2854,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2865,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2867,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2871,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2873,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2876,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2878,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2879,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2881,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2882,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2884,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2885,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2887,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2892,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2895,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2897,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2906,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2913,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2915,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2926,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2926,1
    - Dst: OGRShapeLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2927,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2937,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2939,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2942,1
    - Dst: DBFCloneEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2945,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2948,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2949,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2954,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2957,1
    - Dst: ForceDeleteFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2959,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2973,1
    - Dst: DBFWriteTuple
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2982,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2984,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2991,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:2995,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3008,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3026,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3028,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3030,1
    - Dst: SHPCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3033,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3036,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3037,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3051,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3058,1
    - Dst: SHPWriteObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3060,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3062,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3068,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3076,1
    - Dst: reinterpret_cast<unsigned int *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3079,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3080,1
    - Dst: reinterpret_cast<unsigned int *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3081,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3082,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3085,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3091,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3093,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3098,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3102,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3103,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3104,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3105,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3106,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3107,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3117,1
    - Dst: OGRShapeDataSource::CopyInPlace
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3119,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3119,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3122,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3129,1
    - Dst: VSI_SHP_GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3129,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3130,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3131,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3133,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3137,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3148,1
    - Dst: OGRShapeDataSource::CopyInPlace
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3150,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3150,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3153,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3160,1
    - Dst: VSI_SHP_GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3160,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3161,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3162,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3166,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3169,1
    - Dst: OGRShapeDataSource::CopyInPlace
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3174,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3174,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3177,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3184,1
    - Dst: VSI_SHP_GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3184,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3185,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3186,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3190,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3193,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3203,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3204,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3206,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3208,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3209,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3216,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3217,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3221,1
    - Dst: ForceDeleteFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3223,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3225,1
    - Dst: ForceDeleteFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3227,1
    - Dst: ForceDeleteFile
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3228,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3238,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3240,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3245,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3247,1
    - Dst: DS_DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3250,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3252,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3257,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3259,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3260,1
    - Dst: CheckFileDeletion
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3264,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3267,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3269,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3272,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3274,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3275,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3281,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3282,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3288,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3289,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3295,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3296,1
    - Dst: CheckFileDeletion
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3300,1
    - Dst: CheckFileDeletion
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3301,1
    - Dst: DS_SHPOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3318,1
    - Dst: DS_DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3320,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 246
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 2796
    functionDepth: 3
    functionLinenumber: 2796
    functionLinenumberEnd: 3336
    functionName: OGRShapeLayer::Repack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<unsigned int *>
    - DBFWriteTuple
    - DS_DBFOpen
    - std::vector::size
    - CPLDebug
    - CPLError
    - std::vector::push_back
    - VSI_SHP_GetVSIL
    - CPLString::empty
    - CPLGetExtensionSafe
    - VSIFEofL
    - DS_SHPOpen
    - SHPClose
    - CPLString::c_str
    - OGRShapeDataSource::CopyInPlace
    - std::vector::empty
    - VSIRename
    - OGRShapeLayer::StartUpdate
    - OGRShapeLayer::CheckForSBN
    - ForceDeleteFile
    - SHPReadObject
    - free
    - c_str
    - OGRShapeLayer::CheckForQIX
    - VSIUnlink
    - CheckFileDeletion
    - DBFIsRecordDeleted
    - CPLAssert
    - SHPCreate
    - OGRShapeLayer::DropSpatialIndex
    - CPLFormFilenameSafe
    - VSIStrerror
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - DBFClose
    - CSLDestroy
    - SHPWriteObject
    - EQUAL
    - CPLString::compare
    - SHPDestroyObject
    - VSIFErrorL
    - malloc
    - DBFCloneEmpty
    - memset
    - memcpy
    - VSI_SHP_GetFilename
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::Repack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3353,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3365,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3367,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3368,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3369,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3380,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3381,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3385,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3390,1
    - Dst: DBFIsAttributeNULL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3394,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3407,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3416,1
    - Dst: DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3422,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3426,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3428,1
    - Dst: DBFAlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3430,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3433,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3436,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3439,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3440,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3446,1
    - Dst: OGRShapeLayer::TruncateDBF
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3451,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3453,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3454,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3345
    functionDepth: 2
    functionLinenumber: 3345
    functionLinenumberEnd: 3457
    functionName: OGRShapeLayer::ResizeDBF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRShapeLayer::TruncateDBF
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - CPLDebug
    - DBFIsRecordDeleted
    - DBFIsAttributeNULL
    - DBFAlterFieldDefn
    - DBFGetFieldInfo
    - GetFieldDefn
    - CPLError
    - whileUnsealing
    - CPLFree
    - OGRShapeLayer::StartUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::ResizeDBF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3468,1
    - Dst: sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3469,1
    - Dst: static_cast<SAOffset>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3471,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3477,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3481,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3481,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3463
    functionDepth: 1
    functionLinenumber: 3463
    functionLinenumberEnd: 3484
    functionName: OGRShapeLayer::TruncateDBF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 3
    functionsReached:
    - VSI_SHP_GetVSIL
    - CPLDebug
    - VSIFTruncateL
    - static_cast<SAOffset>
    - sHooks::FSeek
    - sHooks::FTell
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::TruncateDBF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::StartUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3494,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3499,1
    - Dst: DBFIsRecordDeleted
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3512,1
    - Dst: SHPReadObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3514,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3540,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3542,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3544,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3546,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3550,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3552,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3557,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3559,1
    - Dst: SHPDestroyObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3563,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3567,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3568,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3572,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3573,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3492
    functionDepth: 2
    functionLinenumber: 3492
    functionLinenumberEnd: 3577
    functionName: OGRShapeLayer::RecomputeExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - SHPReadObject
    - DBFIsRecordDeleted
    - memcmp
    - min
    - max
    - SHPDestroyObject
    - CPLError
    - memcpy
    - OGRShapeLayer::StartUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::RecomputeExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetLastUsedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3585,1
    - Dst: OGRShapeLayer::ReopenFileDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3583
    functionDepth: 1
    functionLinenumber: 3583
    functionLinenumberEnd: 3593
    functionName: OGRShapeLayer::TouchLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 11
    functionsReached:
    - OGRShapeLayer::ReopenFileDescriptors
    - SetLastUsedLayer
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::TouchLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3601,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3601,1
    - Dst: DS_SHPOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3609,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3609,1
    - Dst: DS_DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3621,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3626,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3628,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3637
      start: 3599
    functionDepth: 1
    functionLinenumber: 3599
    functionLinenumberEnd: 3637
    functionName: OGRShapeLayer::ReopenFileDescriptors
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - DS_DBFOpen
    - DS_SHPOpen
    - CPLResetExtensionSafe
    - CPLDebug
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRShapeLayer::ReopenFileDescriptors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3645,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3645,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3648,1
    - Dst: SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3652,1
    - Dst: SHPCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3658,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3643
    functionDepth: 1
    functionLinenumber: 3643
    functionLinenumberEnd: 3668
    functionName: OGRShapeLayer::CloseUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - DBFClose
    - CPLDebug
    - SHPClose
    - SHPCloseDiskTree
    - SBNCloseDiskTree
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::CloseUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3676,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3682,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3682,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3683,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3684,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3686,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3687,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3687,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3693,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3693,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3696,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3697,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3699,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3700,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3700,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3706,1
    - Dst: cpl::down_cast<OGRShapeGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3709,1
    - Dst: OGRShapeLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3710,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3711,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3712,1
    - Dst: OGRShapeGeomFieldDefn*::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3712,1
    - Dst: OGRShapeLayer::CheckForQIX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3714,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3717,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3717,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3718,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3719,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3719,1
    - Dst: OGRShapeLayer::CheckForSBN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3721,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3724,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3724,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3725,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3726,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3726,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3728,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3728,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3729,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3730,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3730,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - oFileList
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 3733
      start: 3674
    functionDepth: 2
    functionLinenumber: 3674
    functionLinenumberEnd: 3733
    functionName: OGRShapeLayer::AddToFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::AddStringDirectly
    - cpl::down_cast<OGRShapeGeomFieldDefn *>
    - c_str
    - OGRShapeLayer::CheckForSBN
    - OGRShapeLayer::GetLayerDefn
    - OGRShapeLayer::CheckForQIX
    - GetSpatialRef
    - CPLResetExtensionSafe
    - OGRShapeLayer::TouchLayer
    - OGRShapeGeomFieldDefn*::GetPrjFilename
    - std::string::c_str
    - VSIGetCanonicalFilename
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::AddToFileList(CPLStringList &oFileList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3741,1
    - Dst: IsZip
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3741,1
    - Dst: GetTemporaryUnzipDir
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3742,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3743,1
    - Dst: GetVSIZipPrefixeDir
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3744,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3746,1
    - Dst: cpl::down_cast<OGRShapeGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3749,1
    - Dst: OGRShapeLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3750,1
    - Dst: OGRShapeGeomFieldDefn*::SetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3751,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3752,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3753,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3754,1
    - Dst: OGRShapeGeomFieldDefn*::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3754,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3759,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3760,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3760,1
    - Dst: OGRShapeLayer::CloseUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3739
    functionDepth: 2
    functionLinenumber: 3739
    functionLinenumberEnd: 3762
    functionName: OGRShapeLayer::UpdateFollowingDeOrRecompression
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRShapeGeomFieldDefn *>
    - c_str
    - OGRShapeLayer::GetLayerDefn
    - CPLGetFilename
    - GetSpatialRef
    - OGRShapeGeomFieldDefn*::GetPrjFilename
    - GetTemporaryUnzipDir
    - OGRShapeLayer::CloseUnderlyingLayer
    - IsZip
    - CPLAssert
    - CPLString::c_str
    - OGRShapeGeomFieldDefn*::SetPrjFilename
    - CPLFormFilenameSafe
    - CPLString::empty
    - GetVSIZipPrefixeDir
    linkageType: ''
    returnType: void
    signature: void OGRShapeLayer::UpdateFollowingDeOrRecompression()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3770,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3775,1
    - Dst: UncompressIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3780,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3783,1
    - Dst: OGRShapeLayer::AddToFileList
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3784,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3786,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3786,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3787,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3790,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3790,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3791,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3793,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3793,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3795,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3796,1
    - Dst: OGRShapeLayer::CloseUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3801,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3803,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3806,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3806,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3807,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3808,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3810,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3811,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3816,1
    - Dst: cpl::down_cast<OGRShapeGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3819,1
    - Dst: OGRShapeLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3820,1
    - Dst: OGRShapeGeomFieldDefn*::SetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3821,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3822,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3823,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3824,1
    - Dst: OGRShapeGeomFieldDefn*::GetPrjFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3824,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3830,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3830,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3831,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3831,1
    - Dst: OGRShapeLayer::ReopenFileDescriptors
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3833,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3836,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3837,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3840
      start: 3768
    functionDepth: 3
    functionLinenumber: 3768
    functionLinenumberEnd: 3840
    functionName: OGRShapeLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRShapeLayer::GetLayerDefn
    - OGRShapeLayer::CloseUnderlyingLayer
    - CPLError
    - OGRShapeLayer::AddToFileList
    - OGRShapeLayer::ReopenFileDescriptors
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLGetExtensionSafe
    - cpl::down_cast<OGRShapeGeomFieldDefn *>
    - OGRShapeGeomFieldDefn*::GetPrjFilename
    - GetLayerByName
    - CPLStringList::size
    - VSIRename
    - c_str
    - GetSpatialRef
    - SetDescription
    - whileUnsealing
    - CPLFormFilenameSafe
    - OGRShapeLayer::TestCapability
    - CPLGetPathSafe
    - VSIStatL
    - UncompressIfNeeded
    - OGRShapeGeomFieldDefn*::SetPrjFilename
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRShapeLayer::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3849
      start: 3846
    functionDepth: 0
    functionLinenumber: 3846
    functionLinenumberEnd: 3849
    functionName: OGRShapeLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRShapeLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3862,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3864,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3870,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3877,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3878,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3880,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3881,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3882,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3892,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3905,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3905,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3906,1
    - Dst: VSI_SHP_GetVSIL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3906,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3908,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3909,1
    - Dst: OGRArrowArrayHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3918,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3921,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3922,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 3925
      start: 3858
    functionDepth: 3
    functionLinenumber: 3858
    functionLinenumberEnd: 3925
    functionName: OGRShapeLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFEofL
    - VSI_SHP_GetVSIL
    - OGRArrowArrayHelper::Shrink
    - OGRShapeLayer::TouchLayer
    - GetGeomFieldDefn
    - GetGeomType
    - VSIFErrorL
    - struct ArrowArray*::release
    - GetFieldDefn
    - memset
    - OGRLayer::GetNextArrowArray
    linkageType: ''
    returnType: int
    signature: "int OGRShapeLayer::GetNextArrowArray(struct ArrowArrayStream *stream,\n
      \                                    struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3934,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3935,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp:3939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3940
      start: 3931
    functionDepth: 0
    functionLinenumber: 3931
    functionLinenumberEnd: 3940
    functionName: OGRShapeLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *OGRShapeLayer::GetMetadataItem(const char *pszName,\n                                           const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:98,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:99,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:100,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:104,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:105,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:107,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:108,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:110,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:116,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:117,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:118,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:128,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 140
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 140
    functionName: DBFWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFHandle::sHooks::FSeek
    - STATIC_CAST
    - DBFHandle::sHooks::FWrite
    linkageType: ''
    returnType: void
    signature: void DBFWriteHeader(DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:156,1
    - Dst: DBFHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:164,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:166,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:169,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:173,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:178,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:182,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:184,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 204
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 204
    functionName: DBFFlushRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFHandle::sHooks::FWrite
    - DBFHandle::sHooks::FTell
    - DBFHandle::sHooks::FSeek
    - snprintf
    - STATIC_CAST
    - DBFHandle::sHooks::Error
    linkageType: ''
    returnType: bool
    signature: bool DBFFlushRecord(DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:214,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:218,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:221,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:224,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:226,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:227,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:231,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:235,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - psDBF
    - iRecord
    argTypes:
    - DBFHandle
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: DBFLoadRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFHandle::sHooks::FSeek
    - snprintf
    - STATIC_CAST
    - DBFHandle::sHooks::FRead
    - DBFFlushRecord
    - DBFHandle::sHooks::Error
    linkageType: ''
    returnType: bool
    signature: bool DBFLoadRecord(DBFHandle psDBF, int iRecord)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:258,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:260,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:263,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:266,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:268,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:269,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:270,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:271,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:273,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:275,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:277,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:279,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:280,1
    - Dst: DBFHandle::sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 283
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 283
    functionName: SHPAPI_CALL::DBFUpdateHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFHandle::sHooks::FWrite
    - DBFWriteHeader
    - DBFHandle::sHooks::FSeek
    - DBFHandle::sHooks::FFlush
    - DBFHandle::sHooks::FRead
    - DBFFlushRecord
    - STATIC_CAST
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL DBFUpdateHeader(DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - psDBF
    - nYYSince1900
    - nMM
    - nDD
    argTypes:
    - DBFHandle
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: SHPAPI_CALL::DBFSetLastModifiedDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SHPAPI_CALL DBFSetLastModifiedDate(DBFHandle psDBF, int nYYSince1900,\n
      \                                       int nMM, int nDD)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:307,1
    - Dst: SHPAPI_CALL::DBFOpenLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszFilename
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: SHPAPI_CALL::DBFOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - SASetupDefaultHooks
    - SHPAPI_CALL::DBFOpenLL
    linkageType: ''
    returnType: DBFHandle
    signature: DBFHandle SHPAPI_CALL DBFOpen(const char *pszFilename, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pszBasename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 328
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 328
    functionName: DBFGetLenWithoutExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DBFGetLenWithoutExtension(const char *pszBasename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:342,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:342,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:343,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:343,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:344,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:347,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:350,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:363,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:364,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:366,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:366,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:369,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:372,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:373,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:377,1
    - Dst: DBFHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:379,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:382,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:383,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:386,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:387,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:390,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:394,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:396,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:411,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:413,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:414,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:417,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:419,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:421,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:422,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:423,1
    - Dst: SHPAPI_CALL::DBFSetLastModifiedDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:427,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:439,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:441,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:442,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:443,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:450,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:451,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:451,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:454,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:456,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:457,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:458,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:468,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:469,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:474,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:474,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:476,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:478,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:484,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:485,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:485,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:485,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:487,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:487,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:495,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:500,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:501,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:502,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:503,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:504,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:508,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:510,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:511,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:514,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:515,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:516,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:517,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:518,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:522,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:522,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:523,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:523,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:524,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:524,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:525,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:525,1
    - Dst: SHPAPI_CALL::DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:529,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:565,1
    - Dst: SHPAPI_CALL::DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:578,1
    - Dst: SHPAPI_CALL::DBFSetWriteEndOfFileChar
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:582,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 146
    argCount: 3
    argNames:
    - pszFilename
    - pszAccess
    - psHooks
    argTypes:
    - char*
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 587
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 587
    functionName: SHPAPI_CALL::DBFOpenLL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 1
    functionsReached:
    - DBFHandle::sHooks::FClose
    - SAHooks*::FClose
    - assert
    - strcmp
    - DBFHandle::sHooks::FSeek
    - SAHooks*::FOpen
    - strcpy
    - strlen
    - DBFHandle::sHooks::FOpen
    - free
    - SHPAPI_CALL::DBFClose
    - SHPAPI_CALL::DBFSetWriteEndOfFileChar
    - REINTERPRET_CAST
    - STATIC_CAST
    - calloc
    - DBFHandle::sHooks::FRead
    - malloc
    - SHPAPI_CALL::DBFSetLastModifiedDate
    - memset
    - memcpy
    linkageType: ''
    returnType: DBFHandle
    signature: "DBFHandle SHPAPI_CALL DBFOpenLL(const char *pszFilename, const char
      *pszAccess,\n                                const SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:602,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:604,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:604,1
    - Dst: SHPAPI_CALL::DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:611,1
    - Dst: DBFHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:616,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:620,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:621,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:622,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:623,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:627,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:629,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:630,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:631,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 634
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 634
    functionName: SHPAPI_CALL::DBFClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 1
    functionsReached:
    - DBFHandle::sHooks::FClose
    - free
    - SHPAPI_CALL::DBFUpdateHeader
    - DBFWriteHeader
    - CPL_IGNORE_RET_VAL_INT
    - DBFFlushRecord
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL DBFClose(DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPAPI_CALL::DBFCreateEx
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: SHPAPI_CALL::DBFCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - SHPAPI_CALL::DBFCreateEx
    linkageType: ''
    returnType: DBFHandle
    signature: DBFHandle SHPAPI_CALL DBFCreate(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:658,1
    - Dst: SHPAPI_CALL::DBFCreateLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszFilename
    - pszCodePage
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: SHPAPI_CALL::DBFCreateEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 1
    functionsReached:
    - SASetupDefaultHooks
    - SHPAPI_CALL::DBFCreateLL
    linkageType: ''
    returnType: DBFHandle
    signature: "DBFHandle SHPAPI_CALL DBFCreateEx(const char *pszFilename,\n                                  const
      char *pszCodePage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:681,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:682,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:687,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:690,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:694,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:698,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:700,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:708,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:709,1
    - Dst: CONST_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:710,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:710,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:711,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:712,1
    - Dst: SAHooks*::Remove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:717,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:720,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:725,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:725,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:731,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:756,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:756,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:756,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:758,1
    - Dst: SHPAPI_CALL::DBFSetLastModifiedDate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:760,1
    - Dst: SHPAPI_CALL::DBFSetWriteEndOfFileChar
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:762,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 3
    argNames:
    - pszFilename
    - pszCodePage
    - psHooks
    argTypes:
    - char*
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 767
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 767
    functionName: SHPAPI_CALL::DBFCreateLL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 1
    functionsReached:
    - free
    - SAHooks*::FClose
    - SHPAPI_CALL::DBFSetLastModifiedDate
    - atoi
    - SAHooks*::FWrite
    - SAHooks*::Remove
    - strncmp
    - CONST_CAST
    - SAHooks*::FOpen
    - calloc
    - SHPAPI_CALL::DBFSetWriteEndOfFileChar
    - strlen
    - malloc
    - strcpy
    - STATIC_CAST
    - memcpy
    linkageType: ''
    returnType: DBFHandle
    signature: "DBFHandle SHPAPI_CALL DBFCreateLL(const char *pszFilename,\n                                  const
      char *pszCodePage,\n                                  const SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPAPI_CALL::DBFAddNativeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - psDBF
    - pszFieldName
    - eType
    - nWidth
    - nDecimals
    argTypes:
    - DBFHandle
    - char*
    - DBFFieldType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 791
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 791
    functionName: SHPAPI_CALL::DBFAddField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - SHPAPI_CALL::DBFAddNativeFieldType
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFAddField(DBFHandle psDBF, const char *pszFieldName,\n
      \                           DBFFieldType eType, int nWidth, int nDecimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - chType
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 811
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 811
    functionName: DBFGetNullCharacter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char DBFGetNullCharacter(char chType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:824,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:830,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:834,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:850,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:854,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:909,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:917,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:917,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:920,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:947,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:953,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:954,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:958,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:959,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:976,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:979,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:980,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:982,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:987,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:989,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:993,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:994,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1002,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1005,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1006,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1010,1
    - Dst: SHPAPI_CALL::DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1014,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 5
    argNames:
    - psDBF
    - pszFieldName
    - chType
    - nWidth
    - nDecimals
    argTypes:
    - DBFHandle
    - char*
    - char
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1021
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 1021
    functionName: SHPAPI_CALL::DBFAddNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 1
    functionsReached:
    - free
    - SHPAPI_CALL::DBFUpdateHeader
    - DBFHandle::sHooks::FWrite
    - DBFHandle::sHooks::FSeek
    - strncpy
    - snprintf
    - STATIC_CAST
    - malloc
    - DBFFlushRecord
    - DBFHandle::sHooks::FRead
    - memset
    - DBFHandle::sHooks::Error
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFAddNativeFieldType(DBFHandle psDBF, const char
      *pszFieldName,\n                                      char chType, int nWidth,
      int nDecimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1044,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1058,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1058,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1060,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1061,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1067,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1068,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1080,1
    - Dst: DBFHandle::sHooks::Atof
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1087,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - psDBF
    - hEntity
    - iField
    - chReqType
    argTypes:
    - DBFHandle
    - int
    - int
    - char
    constantsTouched: []
    func_position:
      end: 1114
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1114
    functionName: DBFReadAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - atoi
    - DBFHandle::sHooks::Atof
    - REINTERPRET_CAST
    - STATIC_CAST
    - malloc
    - realloc
    - DBFLoadRecord
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *DBFReadAttribute(DBFHandle psDBF, int hEntity, int iField,\n
      \                             char chReqType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - psDBF
    - iRecord
    - iField
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1132
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1132
    functionName: SHPAPI_CALL::DBFReadIntegerAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFReadIntegerAttribute(DBFHandle psDBF, int iRecord,\n
      \                                       int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - psDBF
    - iRecord
    - iField
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1150
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1150
    functionName: SHPAPI_CALL::DBFReadDoubleAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double SHPAPI_CALL DBFReadDoubleAttribute(DBFHandle psDBF, int iRecord,\n
      \                                         int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFReadStringAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1159,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1161,1
    - Dst: DBFReadAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1162,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1174,1
    - Dst: DBFReadAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - DBFReadLogicalAttribute
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 1176
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1176
    functionName: SHPAPI_CALL1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - DBFReadStringAttribute
    - DBFReadAttribute
    linkageType: ''
    returnType: char
    signature: "char SHPAPI_CALL1(*)\n    DBFReadStringAttribute(DBFHandle psDBF,
      int iRecord, int iField)\n{\n    return STATIC_CAST(const char *,\n                       DBFReadAttribute(psDBF,
      iRecord, iField, 'C'));\n}\n\n/************************************************************************/\n/*
      \                       DBFReadLogicalAttribute()                     */\n/*
      \                                                                     */\n/*
      \     Read a logical attribute.                                       */\n/************************************************************************/\n\nconst
      char SHPAPI_CALL1(*)\n    DBFReadLogicalAttribute(DBFHandle psDBF, int iRecord,
      int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - psDBF
    - iRecord
    - iField
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1207
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1207
    functionName: SHPAPI_CALL::DBFReadDateAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: SHPDate
    signature: "SHPDate SHPAPI_CALL DBFReadDateAttribute(DBFHandle psDBF, int iRecord,\n
      \                                        int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1248,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1249,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1249,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1263,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - chType
    - pszValue
    - size
    argTypes:
    - char
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1265
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1265
    functionName: DBFIsValueNULL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool DBFIsValueNULL(char chType, const char *pszValue, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFIsValueNULL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - psDBF
    - iRecord
    - iField
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1285
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1285
    functionName: SHPAPI_CALL::DBFIsAttributeNULL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFIsValueNULL
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFIsAttributeNULL(const DBFHandle psDBF, int iRecord,\n
      \                                  int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 1296
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1296
    functionName: SHPAPI_CALL::DBFGetFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL DBFGetFieldCount(const DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psDBF
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 1307
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1307
    functionName: SHPAPI_CALL::DBFGetRecordCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL DBFGetRecordCount(const DBFHandle psDBF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 5
    argNames:
    - psDBF
    - iField
    - pszFieldName
    - pnWidth
    - pnDecimals
    argTypes:
    - DBFHandle
    - int
    - char*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1361
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1361
    functionName: SHPAPI_CALL::DBFGetFieldInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DBFFieldType
    signature: "DBFFieldType SHPAPI_CALL DBFGetFieldInfo(const DBFHandle psDBF, int
      iField,\n                                         char *pszFieldName, int *pnWidth,\n
      \                                        int *pnDecimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1379,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1386,1
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1400,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1416,1
    - Dst: DBFGetNullCharacter
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1417,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1436,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1440,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1443,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1445,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1445,1
    - Dst: DBFHandle::sHooks::Atof
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1449,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1460,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1463,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1474,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1474,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1474,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1482,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1484,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1484,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1484,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 4
    argNames:
    - psDBF
    - hEntity
    - iField
    - pValue
    argTypes:
    - DBFHandle
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1495
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1495
    functionName: DBFWriteAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFGetNullCharacter
    - DBFWriteHeader
    - DBFHandle::sHooks::Atof
    - CPLsnprintf
    - snprintf
    - STATIC_CAST
    - strlen
    - DBFFlushRecord
    - memset
    - DBFLoadRecord
    linkageType: ''
    returnType: bool
    signature: "bool DBFWriteAttribute(DBFHandle psDBF, int hEntity, int iField,\n
      \                             void *pValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1515,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1522,1
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1536,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1548,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1548,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1548,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1553,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1555,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1555,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1555,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - psDBF
    - hEntity
    - iField
    - pValue
    argTypes:
    - DBFHandle
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1567
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1567
    functionName: SHPAPI_CALL::DBFWriteAttributeDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFWriteHeader
    - strlen
    - STATIC_CAST
    - DBFFlushRecord
    - memset
    - DBFLoadRecord
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteAttributeDirectly(DBFHandle psDBF, int hEntity,\n
      \                                         int iField, const void *pValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - psDBF
    - iRecord
    - iField
    - dValue
    argTypes:
    - DBFHandle
    - int
    - int
    - double
    constantsTouched: []
    func_position:
      end: 1580
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1580
    functionName: SHPAPI_CALL::DBFWriteDoubleAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteDoubleAttribute(DBFHandle psDBF, int iRecord,\n
      \                                       int iField, double dValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - psDBF
    - iRecord
    - iField
    - nValue
    argTypes:
    - DBFHandle
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1595
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1595
    functionName: SHPAPI_CALL::DBFWriteIntegerAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteIntegerAttribute(DBFHandle psDBF, int iRecord,\n
      \                                        int iField, int nValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - psDBF
    - iRecord
    - iField
    - pszValue
    argTypes:
    - DBFHandle
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1609
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1609
    functionName: SHPAPI_CALL::DBFWriteStringAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteStringAttribute(DBFHandle psDBF, int iRecord,\n
      \                                       int iField, const char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - psDBF
    - iRecord
    - iField
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1620
      start: 1617
    functionDepth: 3
    functionLinenumber: 1617
    functionLinenumberEnd: 1620
    functionName: SHPAPI_CALL::DBFWriteNULLAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFWriteAttribute
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL DBFWriteNULLAttribute(DBFHandle psDBF, int iRecord,
      int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - psDBF
    - iRecord
    - iField
    - lValue
    argTypes:
    - DBFHandle
    - int
    - int
    - char
    constantsTouched: []
    func_position:
      end: 1634
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1634
    functionName: SHPAPI_CALL::DBFWriteLogicalAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteLogicalAttribute(DBFHandle psDBF, int iRecord,\n
      \                                        int iField, const char lValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1655,1
    - Dst: SHPAPI_CALL::DBFWriteAttributeDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - psDBF
    - iRecord
    - iField
    - lValue
    argTypes:
    - DBFHandle
    - int
    - int
    - SHPDate*
    constantsTouched: []
    func_position:
      end: 1658
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1658
    functionName: SHPAPI_CALL::DBFWriteDateAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - SHPAPI_CALL::DBFWriteAttributeDirectly
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteDateAttribute(DBFHandle psDBF, int iRecord,
      int iField,\n                                      const SHPDate *lValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1676,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1683,1
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1697,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1703,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - psDBF
    - hEntity
    - pRawTuple
    argTypes:
    - DBFHandle
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1709
      start: 1666
    functionDepth: 2
    functionLinenumber: 1666
    functionLinenumberEnd: 1709
    functionName: SHPAPI_CALL::DBFWriteTuple
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFWriteHeader
    - DBFLoadRecord
    - memcpy
    - DBFFlushRecord
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFWriteTuple(DBFHandle psDBF, int hEntity,\n                              const
      void *pRawTuple)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFReadTuple
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1718,1
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1723,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1726,1
    - Dst: DBFCreateLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1740,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1751,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1751,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1752,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1757,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1757,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1758,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1761,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1761,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1762,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1765,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1765,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1766,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1769,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1769,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1770,1
    - Dst: DBFWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1777,1
    - Dst: DBFClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1778,1
    - Dst: DBFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - SHPAPI_CALL DBFCloneEmpty
    argTypes:
    - DBFHandle
    constantsTouched: []
    func_position:
      end: 1784
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 1784
    functionName: SHPAPI_CALL1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFOpen
    - DBFReadTuple
    - DBFWriteHeader
    - DBFClose
    - DBFCreateLL
    - STATIC_CAST
    - malloc
    - DBFLoadRecord
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char SHPAPI_CALL1(*) DBFReadTuple(DBFHandle psDBF, int hEntity)\n{\n
      \   if (hEntity < 0 || hEntity >= psDBF->nRecords)\n        return SHPLIB_NULLPTR;\n\n
      \   if (!DBFLoadRecord(psDBF, hEntity))\n        return SHPLIB_NULLPTR;\n\n
      \   return STATIC_CAST(const char *, psDBF->pszCurrentRecord);\n}\n\n/************************************************************************/\n/*
      \                         DBFCloneEmpty()                             */\n/*
      \                                                                     */\n/*
      \     Create a new .dbf file with same code page and field            */\n/*
      \     definitions as the given handle.                                */\n/************************************************************************/\n\nDBFHandle
      SHPAPI_CALL DBFCloneEmpty(const DBFHandle psDBF,\n                                    const
      char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - psDBF
    - iField
    argTypes:
    - DBFHandle
    - int
    constantsTouched: []
    func_position:
      end: 1803
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1803
    functionName: SHPAPI_CALL::DBFGetNativeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char SHPAPI_CALL DBFGetNativeFieldType(const DBFHandle psDBF, int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPAPI_CALL::DBFGetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1818,1
    - Dst: SHPAPI_CALL::DBFGetFieldInfo
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1820,1
    - Dst: STRCASECMP
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - psDBF
    - pszFieldName
    argTypes:
    - DBFHandle
    - char*
    constantsTouched: []
    func_position:
      end: 1825
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1825
    functionName: SHPAPI_CALL::DBFGetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - STRCASECMP
    - SHPAPI_CALL::DBFGetFieldInfo
    - SHPAPI_CALL::DBFGetFieldCount
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFGetFieldIndex(const DBFHandle psDBF,\n                                 const
      char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - psDBF
    - iShape
    argTypes:
    - DBFHandle
    - int
    constantsTouched: []
    func_position:
      end: 1852
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1852
    functionName: SHPAPI_CALL::DBFIsRecordDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFLoadRecord
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL DBFIsRecordDeleted(const DBFHandle psDBF, int iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFLoadRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - psDBF
    - iShape
    - bIsDeleted
    argTypes:
    - DBFHandle
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1887
      start: 1858
    functionDepth: 2
    functionLinenumber: 1858
    functionLinenumberEnd: 1887
    functionName: SHPAPI_CALL::DBFMarkRecordDeleted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - DBFLoadRecord
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFMarkRecordDeleted(DBFHandle psDBF, int iShape,\n
      \                                    int bIsDeleted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFGetCodePage
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1893,1
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1912,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1934,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1935,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1937,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1938,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1940,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1941,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1943,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1944,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1951,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1955,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1956,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1959,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1960,1
    - Dst: DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1968,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1978,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1982,1
    - Dst: sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1983,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1985,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1989,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1993,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1994,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:1995,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2005,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2008,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2009,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2015,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - SHPAPI_CALL DBFDeleteField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2022
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 2022
    functionName: SHPAPI_CALL1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - free
    - sHooks::FRead
    - sHooks::FWrite
    - DBFGetCodePage
    - DBFUpdateHeader
    - DBFFlushRecord
    - realloc
    - sHooks::FSeek
    - STATIC_CAST
    - memmove
    linkageType: ''
    returnType: char
    signature: "char SHPAPI_CALL1(*) DBFGetCodePage(const DBFHandle psDBF)\n{\n    if
      (psDBF == SHPLIB_NULLPTR)\n        return SHPLIB_NULLPTR;\n    return psDBF->pszCodePage;\n}\n\n/************************************************************************/\n/*
      \                         DBFDeleteField()                            */\n/*
      \                                                                     */\n/*
      \     Remove a field from a .dbf file                                 */\n/************************************************************************/\n\nint
      SHPAPI_CALL DBFDeleteField(DBFHandle psDBF, int iField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2040,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2061,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2061,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2063,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2063,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2070,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2071,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2072,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2073,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2074,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2075,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2076,1
    - Dst: DBFHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2077,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2087,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2097,1
    - Dst: SHPAPI_CALL::DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2107,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2113,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2117,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2118,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2129,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2135,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2136,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2142,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2143,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2147,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2148,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2149,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2150,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2157,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2158,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2159,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2160,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 2
    argNames:
    - psDBF
    - panMap
    argTypes:
    - DBFHandle
    - int*
    constantsTouched: []
    func_position:
      end: 2172
      start: 2034
    functionDepth: 2
    functionLinenumber: 2034
    functionLinenumberEnd: 2172
    functionName: SHPAPI_CALL::DBFReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - free
    - SHPAPI_CALL::DBFUpdateHeader
    - DBFHandle::sHooks::FWrite
    - DBFHandle::sHooks::FSeek
    - STATIC_CAST
    - malloc
    - DBFFlushRecord
    - DBFHandle::sHooks::FRead
    - DBFHandle::sHooks::Error
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL DBFReorderFields(DBFHandle psDBF, const int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DBFFlushRecord
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2188,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2213,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2214,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2225,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2226,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2247,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2253,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2254,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2258,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2259,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2275,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2276,1
    - Dst: SHPAPI_CALL::DBFUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2282,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2294,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2298,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2299,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2306,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2317,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2322,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2331,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2335,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2339,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2340,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2348,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2351,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2352,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2364,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2368,1
    - Dst: DBFHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2369,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2376,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2382,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2390,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2397,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2399,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2404,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2410,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2414,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2415,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2423,1
    - Dst: DBFHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2426,1
    - Dst: DBFHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2427,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2431,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c:2432,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 120
    argCount: 6
    argNames:
    - psDBF
    - iField
    - pszFieldName
    - chType
    - nWidth
    - nDecimals
    argTypes:
    - DBFHandle
    - int
    - char*
    - char
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2447
      start: 2180
    functionDepth: 2
    functionLinenumber: 2180
    functionLinenumberEnd: 2447
    functionName: SHPAPI_CALL::DBFAlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 0
    functionsReached:
    - free
    - SHPAPI_CALL::DBFUpdateHeader
    - DBFHandle::sHooks::FWrite
    - DBFHandle::sHooks::FSeek
    - strncpy
    - DBFHandle::sHooks::FRead
    - DBFFlushRecord
    - memset
    - STATIC_CAST
    - memcpy
    - memmove
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL DBFAlterFieldDefn(DBFHandle psDBF, int iField,\n                                  const
      char *pszFieldName, char chType,\n                                  int nWidth,
      int nDecimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psDBF
    - bWriteFlag
    argTypes:
    - DBFHandle
    - int
    constantsTouched: []
    func_position:
      end: 2456
      start: 2453
    functionDepth: 0
    functionLinenumber: 2453
    functionLinenumberEnd: 2456
    functionName: SHPAPI_CALL::DBFSetWriteEndOfFileChar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL DBFSetWriteEndOfFileChar(DBFHandle psDBF, int bWriteFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:69,1
    - Dst: SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszFullNameIn
    - eType
    - bSRSSetIn
    - poSRSIn
    argTypes:
    - char*
    - OGRwkbGeometryType
    - int
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: OGRShapeGeomFieldDefn::OGRShapeGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached:
    - SetSpatialRef
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRShapeGeomFieldDefn(const char *pszFullNameIn, OGRwkbGeometryType
      eType,\n                          int bSRSSetIn, OGRSpatialReference *poSRSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: OGRShapeGeomFieldDefn::SetSRSSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSRSSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: '&GetPrjFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetPrjFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: OGRShapeGeomFieldDefn::SetPrjFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrjFilename(const std::string &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: OGRShapeLayer::SetResizeAtClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetResizeAtClose(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OGRShapeLayer::GetFullName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFullName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: OGRShapeLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: OGRShapeLayer::CreateSpatialIndexAtClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void CreateSpatialIndexAtClose(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: OGRShapeLayer::SetAutoRepack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAutoRepack(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: OGRShapeDataSource::GetPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayerPool
    signature: OGRLayerPool *GetPool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: OGRShapeDataSource::GetOpenOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **GetOpenOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: OGRShapeDataSource::IsZip
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsZip() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:375,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: OGRShapeDataSource::GetVSIZipPrefixeDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached:
    - GetDescription
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetVSIZipPrefixeDir() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: '&GetTemporaryUnzipDir() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshape.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetTemporaryUnzipDir() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:38,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:39,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:52,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:52,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:52,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:52,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:55,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:58,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:78,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:79,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:80,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:81,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:84,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:88,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:89,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:89,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 95
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 95
    functionName: OGRShapeDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - memcmp
    - EQUAL
    - strstr
    - CPLString
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: int OGRShapeDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRShapeDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:104,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:110,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:111,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:111,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:114,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:114,1
    - Dst: OGRShapeDriverOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:117,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:121,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:124,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:125,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:126,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:129,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:129,1
    - Dst: OGRShapeDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:131,1
    - Dst: std::make_unique<OGRShapeDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:134,1
    - Dst: auto::OpenZip
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:136,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:141,1
    - Dst: std::make_unique<OGRShapeDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:144,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:146,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 152
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 152
    functionName: OGRShapeDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - auto::release
    - CPLGetFilename
    - OGRShapeDriverIdentify
    - OGRShapeDriverOpen
    - auto::Open
    - auto::OpenZip
    - std::make_unique<OGRShapeDataSource>
    - EQUAL
    - CPLString
    - STARTS_WITH
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRShapeDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:170,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:172,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:191,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:191,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:192,1
    - Dst: std::make_unique<OGRShapeDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:194,1
    - Dst: auto::CreateZip
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:196,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:201,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:211,1
    - Dst: std::make_unique<OGRShapeDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:223,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:226,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 232
    functionName: OGRShapeDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - VSIStatL
    - auto::Open
    - VSI_ISDIR
    - VSIMkdir
    - EQUAL
    - CPLString
    - CPLError
    - std::make_unique<OGRShapeDataSource>
    - auto::CreateZip
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRShapeDriverCreate(const char *pszName, int /* nBands
      */,\n                                         int /* nXSize */, int /* nYSize
      */,\n                                         GDALDataType /* eDT */,\n                                         char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:245,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:253,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:254,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:255,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:256,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:257,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:259,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:267,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:267,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:267,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:272,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:273,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:273,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:274,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:274,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:277,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:281,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:283,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:284,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:286,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:286,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:291,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 1
    argNames:
    - pszDataSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 295
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 295
    functionName: OGRShapeDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - cpl::Iterate
    - CPLResetExtensionSafe
    - VSI_ISREG
    - VSIUnlink
    - VSI_ISDIR
    - EQUAL
    - CSLFindString
    - CPLString
    - VSIRmdir
    - CPLError
    - std::string::c_str
    - CPLFormFilenameSafe
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRShapeDriverDelete(const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:304,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:307,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:309,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:310,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:311,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:312,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:313,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:314,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:315,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:316,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:317,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:318,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:322,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:323,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:324,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:325,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:327,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:328,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:330,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:333,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:359,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:361,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:404,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:406,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:407,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:408,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:410,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:412,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:413,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:415,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:417,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:418,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 426
    functionName: RegisterOGRShape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/ogrshapedriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRShape()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:56,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:56,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:67,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - padfBoundsMin
    - padfBoundsMax
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: SHPTreeNodeCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - memcpy
    - malloc
    linkageType: ''
    returnType: SHPTreeNode
    signature: "SHPTreeNode *SHPTreeNodeCreate(const double *padfBoundsMin,\n                                      const
      double *padfBoundsMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPDestroyTreeNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:230,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psTree
    argTypes:
    - SHPTree*
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: SHPAPI_CALL::SHPDestroyTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - free
    - SHPDestroyTreeNode
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPDestroyTree(SHPTree *psTree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - padfBox1Min
    - padfBox1Max
    - padfBox2Min
    - padfBox2Max
    - nDimension
    argTypes:
    - double*
    - double*
    - double*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 255
    functionName: SHPAPI_CALL::SHPCheckBoundsOverlap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL SHPCheckBoundsOverlap(const double *padfBox1Min,\n
      \                                     const double *padfBox1Max,\n                                      const
      double *padfBox2Min,\n                                      const double *padfBox2Max,
      int nDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - psObject
    - nDimension
    - padfBoundsMin
    - padfBoundsMax
    argTypes:
    - SHPObject*
    - int
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 291
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 291
    functionName: SHPCheckObjectContained
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool SHPCheckObjectContained(const SHPObject *psObject, int nDimension,\n
      \                                   const double *padfBoundsMin,\n                                    const
      double *padfBoundsMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:310,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:311,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:312,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - padfBoundsMinIn
    - padfBoundsMaxIn
    - padfBoundsMin1
    - padfBoundsMax1
    - padfBoundsMin2
    - padfBoundsMax2
    argTypes:
    - double*
    - double*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 337
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 337
    functionName: SHPTreeSplitBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHPTreeSplitBounds(const double *padfBoundsMinIn,\n                               const
      double *padfBoundsMaxIn,\n                               double *padfBoundsMin1,
      double *padfBoundsMax1,\n                               double *padfBoundsMin2,
      double *padfBoundsMax2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:357,1
    - Dst: SHPTreeNodeAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:362,1
    - Dst: SHPTreeSplitBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:383,1
    - Dst: SHPTreeSplitBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:387,1
    - Dst: SHPTreeSplitBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:390,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:393,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:395,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:397,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:399,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:404,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:406,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:408,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:410,1
    - Dst: SHPTreeNodeAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:413,1
    - Dst: SHPTreeSplitBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:429,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:433,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:438,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:440,1
    - Dst: SHPTreeNodeAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:442,1
    - Dst: SHPCheckObjectContained
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:445,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:450,1
    - Dst: SHPTreeNodeCreate
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:452,1
    - Dst: SHPTreeNodeAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:454,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:466,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:466,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:472,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:473,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - psTreeNode
    - psObject
    - nMaxDepth
    - nDimension
    argTypes:
    - SHPTreeNode*
    - SHPObject*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 479
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 479
    functionName: SHPTreeNodeAddShapeId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - SHPTreeSplitBounds
    - SHPTreeNodeAddShapeId
    - SHPTreeNodeCreate
    - SHPCheckObjectContained
    - realloc
    - STATIC_CAST
    linkageType: ''
    returnType: bool
    signature: "bool SHPTreeNodeAddShapeId(SHPTreeNode *psTreeNode, SHPObject *psObject,\n
      \                                 int nMaxDepth, int nDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPTreeNodeAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - psTree
    - psObject
    argTypes:
    - SHPTree*
    - SHPObject*
    constantsTouched: []
    func_position:
      end: 495
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 495
    functionName: SHPAPI_CALL::SHPTreeAddShapeId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - SHPTreeNodeAddShapeId
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL SHPTreeAddShapeId(SHPTree *psTree, SHPObject *psObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPCheckBoundsOverlap
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:517,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:528,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:529,1
    - Dst: SHPTreeCollectShapeIds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - hTree
    - psTreeNode
    - padfBoundsMin
    - padfBoundsMax
    - pnShapeCount
    - pnMaxShapes
    - ppanShapeList
    argTypes:
    - SHPTree*
    - SHPTreeNode*
    - double*
    - double*
    - int*
    - int*
    - int**
    constantsTouched: []
    func_position:
      end: 550
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 550
    functionName: SHPTreeCollectShapeIds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - realloc
    - STATIC_CAST
    - SHPTreeCollectShapeIds
    - SHPCheckBoundsOverlap
    linkageType: ''
    returnType: void
    signature: "void SHPTreeCollectShapeIds(const SHPTree *hTree,\n                                   const
      SHPTreeNode *psTreeNode,\n                                   double *padfBoundsMin,
      double *padfBoundsMax,\n                                   int *pnShapeCount,
      int *pnMaxShapes,\n                                   int **ppanShapeList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:565,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: SHPTreeCompareInts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - REINTERPRET_CAST
    linkageType: ''
    returnType: int
    signature: int SHPTreeCompareInts(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPTreeNodeTrim
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hTree
    argTypes:
    - SHPTree*
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: SHPAPI_CALL::SHPTreeTrimExtraNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - SHPTreeNodeTrim
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPTreeTrimExtraNodes(SHPTree *hTree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:679,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:680,1
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:685,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:687,1
    - Dst: SHPTreeDiskHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:689,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pszQIXFilename
    - psHooks
    argTypes:
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 698
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 698
    functionName: SHPOpenDiskTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - free
    - calloc
    - SASetupDefaultHooks
    - SHPTreeDiskHandle::sHooks::FOpen
    - STATIC_CAST
    - memcpy
    linkageType: ''
    returnType: SHPTreeDiskHandle
    signature: "SHPTreeDiskHandle SHPOpenDiskTree(const char *pszQIXFilename,\n                                  const
      SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPTreeDiskHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:709,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hDiskTree
    argTypes:
    - SHPTreeDiskHandle
    constantsTouched: []
    func_position:
      end: 711
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 711
    functionName: SHPCloseDiskTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 3
    functionsReached:
    - free
    - SHPTreeDiskHandle::sHooks::FClose
    linkageType: ''
    returnType: void
    signature: void SHPCloseDiskTree(SHPTreeDiskHandle hDiskTree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:733,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:734,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:736,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:738,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:738,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:741,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:741,1
    - Dst: SHP_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:746,1
    - Dst: SHP_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:747,1
    - Dst: SHP_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:748,1
    - Dst: SHP_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:749,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:752,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:753,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:755,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:760,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:767,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:774,1
    - Dst: SHPCheckBoundsOverlap
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:782,1
    - Dst: SHPTreeDiskHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:786,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:796,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:802,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:805,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:806,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:810,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:817,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:821,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:828,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:837,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:839,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:843,1
    - Dst: SHPTreeDiskHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:846,1
    - Dst: SHPSearchDiskTreeNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:852,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 8
    argNames:
    - hDiskTree
    - padfBoundsMin
    - padfBoundsMax
    - ppanResultBuffer
    - pnBufferMax
    - pnResultCount
    - bNeedSwap
    - nRecLevel
    argTypes:
    - SHPTreeDiskHandle
    - double*
    - double*
    - int**
    - int*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 859
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 859
    functionName: SHPSearchDiskTreeNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - SHP_SWAP32
    - SHPTreeDiskHandle::sHooks::Error
    - SHPSearchDiskTreeNode
    - SHPTreeDiskHandle::sHooks::FSeek
    - SHPTreeDiskHandle::sHooks::FRead
    - SHP_SWAPDOUBLE
    - realloc
    - STATIC_CAST
    - SHPCheckBoundsOverlap
    linkageType: ''
    returnType: bool
    signature: "bool SHPSearchDiskTreeNode(const SHPTreeDiskHandle hDiskTree,\n                                  double
      *padfBoundsMin, double *padfBoundsMax,\n                                  int
      **ppanResultBuffer, int *pnBufferMax,\n                                  int
      *pnResultCount, int bNeedSwap,\n                                  int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:869,1
    - Dst: fread
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:869,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:869,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:870,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - size
    - nmemb
    - file
    argTypes:
    - void*
    - SAOffset
    - SAOffset
    - SAFile
    constantsTouched: []
    func_position:
      end: 872
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 872
    functionName: SHPTreeReadLibc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - fread
    - STATIC_CAST
    - REINTERPRET_CAST
    linkageType: ''
    returnType: SAOffset
    signature: "SAOffset SHPTreeReadLibc(void *p, SAOffset size, SAOffset nmemb,\n
      \                               SAFile file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:881,1
    - Dst: fseek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:881,1
    - Dst: REINTERPRET_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:881,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - SAFile
    - SAOffset
    - int
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: SHPTreeSeekLibc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - REINTERPRET_CAST
    - fseek
    linkageType: ''
    returnType: SAOffset
    signature: SAOffset SHPTreeSeekLibc(SAFile file, SAOffset offset, int whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPTreeDiskHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:925,1
    - Dst: SHPTreeDiskHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:926,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:928,1
    - Dst: SHPSearchDiskTreeNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:940,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:945,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:955,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:955,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - hDiskTree
    - padfBoundsMin
    - padfBoundsMax
    - pnShapeCount
    argTypes:
    - SHPTreeDiskHandle
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 960
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 960
    functionName: SHPSearchDiskTreeEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - free
    - SHPSearchDiskTreeNode
    - qsort
    - SHPTreeDiskHandle::sHooks::FSeek
    - memcmp
    - calloc
    - SHPTreeDiskHandle::sHooks::FRead
    - STATIC_CAST
    linkageType: ''
    returnType: void
    signature: "void SHPSearchDiskTreeEx(const SHPTreeDiskHandle hDiskTree,\n                        double
      *padfBoundsMin, double *padfBoundsMax,\n                        int *pnShapeCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPGetSubNodeOffset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - SHPTreeNode*
    constantsTouched: []
    func_position:
      end: 986
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 986
    functionName: SHPGetSubNodeOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - SHPGetSubNodeOffset
    linkageType: ''
    returnType: int
    signature: int SHPGetSubNodeOffset(SHPTreeNode *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:998,1
    - Dst: SHPGetSubNodeOffset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1000,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1002,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1003,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1008,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1010,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1014,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1017,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1018,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1019,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1020,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1022,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1025,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1026,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1028,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1029,1
    - Dst: SHPWriteTreeNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1034,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - fp
    - node
    - psHooks
    argTypes:
    - SAFile
    - SHPTreeNode*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 1036
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1036
    functionName: SHPWriteTreeNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - free
    - SAHooks*::FWrite
    - assert
    - SHPGetSubNodeOffset
    - SHPWriteTreeNode
    - malloc
    - CPLError
    - STATIC_CAST
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHPWriteTreeNode(SAFile fp, SHPTreeNode *node,\n                             const
      SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1046,1
    - Dst: SHPWriteTreeLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tree
    - filename
    argTypes:
    - SHPTree*
    - char*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1049
    functionName: SHPAPI_CALL::SHPWriteTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 0
    functionsReached:
    - SASetupDefaultHooks
    - SHPWriteTreeLL
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL SHPWriteTree(SHPTree *tree, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1064,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1071,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1080,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1093,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1095,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1099,1
    - Dst: SHPWriteTreeNode
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1105,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - tree
    - filename
    - psHooks
    argTypes:
    - SHPTree*
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 1110
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1110
    functionName: SHPWriteTreeLL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shptree.c
    functionUses: 1
    functionsReached:
    - SAHooks*::FClose
    - SAHooks*::FWrite
    - SAHooks*::FOpen
    - SASetupDefaultHooks
    - SHPWriteTreeNode
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SHPWriteTreeLL(SHPTree *tree, const char *filename, const SAHooks
      *psHooks)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:115,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: SBNCompareNodeIdBinStartPairs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: int
    signature: int SBNCompareNodeIdBinStartPairs(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:130,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:130,1
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:135,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:137,1
    - Dst: SBNSearchHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:140,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:143,1
    - Dst: SBNSearchHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:151,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:157,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:158,1
    - Dst: SHP_SWAPDOUBLE_CPY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:167,1
    - Dst: SHP_SWAPDOUBLE_CPY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:168,1
    - Dst: SHP_SWAPDOUBLE_CPY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:169,1
    - Dst: SHP_SWAPDOUBLE_CPY
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:170,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:172,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:173,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:174,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:175,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:180,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:181,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:193,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:195,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:196,1
    - Dst: nMaxDepth < 24 && nShapeCount >
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:212,1
    - Dst: READ_MSB_INT
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:221,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:223,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:224,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:242,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:244,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:245,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:246,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:254,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:255,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:258,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:259,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:260,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:261,1
    - Dst: SBNSearchHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:268,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:270,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:271,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:272,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:273,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:280,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:281,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:284,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:285,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:286,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:307,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:314,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:315,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:316,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:317,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:324,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:325,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:326,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:327,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:342,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:347,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:348,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:349,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:359,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:361,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:365,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:366,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:374,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:381,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:385,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:386,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:387,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:398,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:403,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:404,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:405,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:415,1
    - Dst: SBNSearchHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:415,1
    - Dst: SBNSearchHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:424,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:432,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:439,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:442,1
    - Dst: SBNSearchHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:442,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:444,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:445,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:446,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:455,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:457,1
    - Dst: SBNSearchHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:457,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:459,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:460,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:461,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:471,1
    - Dst: SBNSearchHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:471,1
    - Dst: SBNSearchHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:477,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:482,1
    - Dst: SBNCloseDiskTree
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:484,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:485,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:489,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 164
    argCount: 2
    argNames:
    - pszSBNFilename
    - psHooks
    argTypes:
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 492
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 492
    functionName: SBNOpenDiskTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 1
    functionsReached:
    - SBNSearchHandle::sHooks::FOpen
    - free
    - qsort
    - SBNSearchHandle::sHooks::FTell
    - fprintf
    - calloc
    - SBNSearchHandle::sHooks::FSeek
    - SASetupDefaultHooks
    - READ_MSB_INT
    - SHP_SWAPDOUBLE_CPY
    - SBNSearchHandle::sHooks::FRead
    - snprintf
    - malloc
    - STATIC_CAST
    - memcpy
    - nMaxDepth < 24 && nShapeCount >
    - SBNCloseDiskTree
    - SBNSearchHandle::sHooks::Error
    linkageType: ''
    returnType: SBNSearchHandle
    signature: "SBNSearchHandle SBNOpenDiskTree(const char *pszSBNFilename,\n                                const
      SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:509,1
    - Dst: SBNSearchHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:515,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:516,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - hSBN
    argTypes:
    - SBNSearchHandle
    constantsTouched: []
    func_position:
      end: 518
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 518
    functionName: SBNCloseDiskTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 4
    functionsReached:
    - free
    - SBNSearchHandle::sHooks::FClose
    linkageType: ''
    returnType: void
    signature: void SBNCloseDiskTree(SBNSearchHandle hSBN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:529,1
    - Dst: SearchStruct*::hSBN::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - psSearch
    - nShapeId
    argTypes:
    - SearchStruct*
    - int
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: SBNAddShapeId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - SearchStruct*::hSBN::sHooks::Error
    linkageType: ''
    returnType: bool
    signature: bool SBNAddShapeId(SearchStruct *psSearch, int nShapeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SEARCH_BB_INTERSECTS
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:579,1
    - Dst: SEARCH_BB_INTERSECTS
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:603,1
    - Dst: SBNAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:613,1
    - Dst: SBNSearchHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:628,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:632,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:632,1
    - Dst: SBNSearchHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:642,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:644,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:645,1
    - Dst: READ_MSB_INT
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:650,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:652,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:653,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:665,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:666,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:673,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:676,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:681,1
    - Dst: SBNSearchHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:699,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:702,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:703,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:745,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:746,1
    - Dst: SEARCH_BB_INTERSECTS
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:762,1
    - Dst: SBNAddShapeId
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:772,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:782,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:785,1
    - Dst: SBNSearchHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:789,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:805,1
    - Dst: SBNSearchDiskInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:808,1
    - Dst: SBNSearchDiskInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:815,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:823,1
    - Dst: SBNSearchDiskInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:826,1
    - Dst: SBNSearchDiskInternal
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:833,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 116
    argCount: 7
    argNames:
    - psSearch
    - nDepth
    - nNodeId
    - bNodeMinX
    - bNodeMinY
    - bNodeMaxX
    - bNodeMaxY
    argTypes:
    - SearchStruct*
    - int
    - int
    - coord
    - coord
    - coord
    - coord
    constantsTouched: []
    func_position:
      end: 842
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 842
    functionName: SBNSearchDiskInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 1
    functionsReached:
    - free
    - SEARCH_BB_INTERSECTS
    - SBNSearchHandle::sHooks::FSeek
    - SBNAddShapeId
    - READ_MSB_INT
    - snprintf
    - SBNSearchHandle::sHooks::FRead
    - malloc
    - SBNSearchDiskInternal
    - STATIC_CAST
    - SBNSearchHandle::sHooks::Error
    linkageType: ''
    returnType: bool
    signature: "bool SBNSearchDiskInternal(SearchStruct *psSearch, int nDepth,\n                                  int
      nNodeId, coord bNodeMinX, coord bNodeMinY,\n                                  coord
      bNodeMaxX, coord bNodeMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:851,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: compare_ints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: int
    signature: int compare_ints(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:898,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:898,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:909,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:909,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:928,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:928,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:939,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:939,1
    - Dst: SBNSearchDiskTreeInteger
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:949,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 4
    argNames:
    - hSBN
    - padfBoundsMin
    - padfBoundsMax
    - pnShapeCount
    argTypes:
    - SBNSearchHandle
    - double*
    - double*
    - int*
    constantsTouched: []
    func_position:
      end: 951
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 951
    functionName: SBNSearchDiskTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 1
    functionsReached:
    - floor
    - ceil
    - STATIC_CAST
    - SBNSearchDiskTreeInteger
    linkageType: ''
    returnType: int
    signature: "int *SBNSearchDiskTree(const SBNSearchHandle hSBN, const double *padfBoundsMin,\n
      \                      const double *padfBoundsMax, int *pnShapeCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:974,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:976,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:977,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:978,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:979,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:982,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:982,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:996,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:1006,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - hSBN
    - bMinX
    - bMinY
    - bMaxX
    - bMaxY
    - pnShapeCount
    argTypes:
    - SBNSearchHandle
    - int
    - int
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1009
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 1009
    functionName: SBNSearchDiskTreeInteger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 1
    functionsReached:
    - free
    - qsort
    - calloc
    - memset
    - STATIC_CAST
    linkageType: ''
    returnType: int
    signature: "int *SBNSearchDiskTreeInteger(const SBNSearchHandle hSBN, int bMinX,
      int bMinY,\n                              int bMaxX, int bMaxY, int *pnShapeCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - panShapeId
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: SBNSearchFreeIds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/sbnsearch.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void SBNSearchFreeIds(int *panShapeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:66,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:79,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:81,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:85,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:87,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:91,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:93,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:97,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:99,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:102,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:104,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:107,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:109,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:113,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:115,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:119,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:121,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:125,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:127,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:131,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:133,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:137,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:139,1
    - Dst: SHPHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:145,1
    - Dst: SHPHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:146,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:150,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:151,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:153,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:161,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:163,1
    - Dst: SHPHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:166,1
    - Dst: SHPHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:167,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:171,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:172,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:174,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:186,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:195,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:196,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:200,1
    - Dst: SHPHandle::sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:200,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:206,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:207,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:209,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:212,1
    - Dst: SHPHandle::sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:217,1
    - Dst: SHPHandle::sHooks::FFlush
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 1
    argNames:
    - psSHP
    argTypes:
    - SHPHandle
    constantsTouched: []
    func_position:
      end: 219
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 219
    functionName: SHPAPI_CALL::SHPWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - SHP_SWAP32
    - free
    - SHP_SWAP64
    - strerror
    - SHPHandle::sHooks::FSeek
    - SHPHandle::sHooks::FFlush
    - snprintf
    - SHPHandle::sHooks::Error
    - ByteCopy
    - STATIC_CAST
    - SHPHandle::sHooks::FWrite
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPWriteHeader(SHPHandle psSHP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:229,1
    - Dst: SHPAPI_CALL::SHPOpenLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszLayer
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: SHPAPI_CALL::SHPOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - SASetupDefaultHooks
    - SHPAPI_CALL::SHPOpenLL
    linkageType: ''
    returnType: SHPHandle
    signature: SHPHandle SHPAPI_CALL SHPOpen(const char *pszLayer, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pszBasename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: SHPGetLenWithoutExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SHPGetLenWithoutExtension(const char *pszBasename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:268,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:268,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:269,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:275,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:282,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:282,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:287,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:297,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:300,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:301,1
    - Dst: SHPHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:303,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:306,1
    - Dst: SHPHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:307,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:318,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:321,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:322,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:325,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:326,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:331,1
    - Dst: SHPHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:333,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:336,1
    - Dst: SHPHandle::sHooks::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:337,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:349,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:353,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:354,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:357,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:358,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:359,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:363,1
    - Dst: SHPHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:369,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:371,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:372,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:373,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:374,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:375,1
    - Dst: SHPHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:390,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:394,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:395,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:396,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:397,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:398,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:413,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:418,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:419,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:420,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:421,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:422,1
    - Dst: SHPHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:431,1
    - Dst: SHPHandle::sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:432,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:434,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:436,1
    - Dst: SHPHandle::sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:438,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:447,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:449,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:453,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:455,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:459,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:461,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:465,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:467,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:471,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:473,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:477,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:479,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:483,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:485,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:489,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:491,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:494,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:503,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:504,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:504,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:506,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:507,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:507,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:512,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:512,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:512,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:520,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:526,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:527,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:528,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:530,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:532,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:534,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:535,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:541,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:542,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:543,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:544,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:545,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:549,1
    - Dst: SHPHandle::sHooks::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:549,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:554,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:556,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:558,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:561,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:562,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:563,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:564,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:565,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:566,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:572,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:574,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:581,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:583,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:587,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:589,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:592,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:595,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:598,1
    - Dst: SHPAPI_CALL::SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:599,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:600,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:603,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:606,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:609,1
    - Dst: SHPAPI_CALL::SHPClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:610,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:611,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:617,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 186
    argCount: 3
    argNames:
    - pszLayer
    - pszAccess
    - psHooks
    argTypes:
    - char*
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 620
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 620
    functionName: SHPAPI_CALL::SHPOpenLL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 1
    functionsReached:
    - strerror
    - SHPHandle::sHooks::FSeek
    - strcmp
    - SHPHandle::sHooks::FClose
    - SHP_SWAP32
    - SHPHandle::sHooks::FTell
    - SAHooks*::Error
    - MAX
    - SHPHandle::sHooks::Error
    - free
    - SHP_SWAP64
    - SHPAPI_CALL::SHPClose
    - SHPHandle::sHooks::FOpen
    - snprintf
    - STATIC_CAST
    - calloc
    - SHPHandle::sHooks::FRead
    - strchr
    - malloc
    - memset
    - memcpy
    linkageType: ''
    returnType: SHPHandle
    signature: "SHPHandle SHPAPI_CALL SHPOpenLL(const char *pszLayer, const char *pszAccess,\n
      \                               const SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPAPI_CALL::SHPOpenLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:634,1
    - Dst: SHPAPI_CALL::SHPRestoreSHX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:637,1
    - Dst: SHPAPI_CALL::SHPOpenLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pszLayer
    - pszAccess
    - psHooks
    - bRestoreSHX
    argTypes:
    - char*
    - char*
    - SAHooks*
    - int
    constantsTouched: []
    func_position:
      end: 644
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 644
    functionName: SHPAPI_CALL::SHPOpenLLEx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - SHPAPI_CALL::SHPRestoreSHX
    - SHPAPI_CALL::SHPOpenLL
    linkageType: ''
    returnType: SHPHandle
    signature: "SHPHandle SHPAPI_CALL SHPOpenLLEx(const char *pszLayer, const char
      *pszAccess,\n                                  const SAHooks *psHooks, int bRestoreSHX)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:661,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:661,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:662,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:679,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:680,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:681,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:684,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:685,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:695,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:698,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:699,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:702,1
    - Dst: SAHooks*::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:711,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:713,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:714,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:716,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:717,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:730,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:733,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:741,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:743,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:744,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:747,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:749,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:750,1
    - Dst: SAHooks*::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:758,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:762,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:764,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:765,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:769,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:770,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:771,1
    - Dst: SAHooks*::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:785,1
    - Dst: SAHooks*::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:786,1
    - Dst: SAHooks*::FRead
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:787,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:793,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:795,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:796,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:799,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:802,1
    - Dst: "nRecordLength < 1 ||\n                nRecordLength >"
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:806,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:810,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:815,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:831,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:836,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:842,1
    - Dst: SAHooks*::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:848,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:854,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:859,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:867,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:875,1
    - Dst: SAHooks*::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:878,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:879,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:881,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:882,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:884,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:885,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 3
    argNames:
    - pszLayer
    - pszAccess
    - psHooks
    argTypes:
    - char*
    - char*
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 888
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 888
    functionName: SHPAPI_CALL::SHPRestoreSHX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 1
    functionsReached:
    - SHP_SWAP32
    - free
    - SAHooks*::FClose
    - SAHooks*::FWrite
    - "nRecordLength < 1 ||\n                nRecordLength >"
    - SAHooks*::Error
    - SAHooks*::FOpen
    - strcmp
    - snprintf
    - SAHooks*::FSeek
    - memcpy
    - SAHooks*::FRead
    linkageType: ''
    returnType: int
    signature: "int SHPAPI_CALL SHPRestoreSHX(const char *pszLayer, const char *pszAccess,\n
      \                             const SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPAPI_CALL::SHPWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:905,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:910,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:911,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:914,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:915,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:919,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:924,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:928,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - psSHP
    argTypes:
    - SHPHandle
    constantsTouched: []
    func_position:
      end: 932
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 932
    functionName: SHPAPI_CALL::SHPClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 1
    functionsReached:
    - free
    - SHPHandle::sHooks::FClose
    - SHPAPI_CALL::SHPWriteHeader
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPClose(SHPHandle psSHP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:949,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:949,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hSHP
    - bFastMode
    argTypes:
    - SHPHandle
    - int
    constantsTouched: []
    func_position:
      end: 955
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 955
    functionName: SHPAPI_CALL::SHPSetFastModeReadObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - assert
    - calloc
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPSetFastModeReadObject(SHPHandle hSHP, int bFastMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - psSHP
    - pnEntities
    - pnShapeType
    - padfMinBound
    - padfMaxBound
    argTypes:
    - SHPHandle
    - int*
    - int*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 983
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 983
    functionName: SHPAPI_CALL::SHPGetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SHPAPI_CALL SHPGetInfo(const SHPHandle psSHP, int *pnEntities,\n
      \                           int *pnShapeType, double *padfMinBound,\n                            double
      *padfMaxBound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SASetupDefaultHooks
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:996,1
    - Dst: SHPAPI_CALL::SHPCreateLL
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszLayer
    - nShapeType
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 999
    functionName: SHPAPI_CALL::SHPCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - SHPAPI_CALL::SHPCreateLL
    - SASetupDefaultHooks
    linkageType: ''
    returnType: SHPHandle
    signature: SHPHandle SHPAPI_CALL SHPCreate(const char *pszLayer, int nShapeType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1012,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1012,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1023,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1026,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1027,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1028,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1032,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1033,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1034,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1036,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1037,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1041,1
    - Dst: SAHooks*::FOpen
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1042,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1046,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1047,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1048,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1050,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1051,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1052,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1056,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1063,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1069,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1071,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1075,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1077,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1081,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1083,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1087,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1088,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1089,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1090,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1095,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1099,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1100,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1102,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1104,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1105,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1106,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1107,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1115,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1117,1
    - Dst: SAHooks*::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1120,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1124,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1125,1
    - Dst: SAHooks*::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1127,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1129,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1130,1
    - Dst: SAHooks*::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1131,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1132,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1137,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1144,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1144,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1146,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1146,1
    - Dst: SHPHandle::sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1151,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1152,1
    - Dst: SHPHandle::sHooks::FClose
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1153,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1155,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1157,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 85
    argCount: 3
    argNames:
    - pszLayer
    - nShapeType
    - psHooks
    argTypes:
    - char*
    - int
    - SAHooks*
    constantsTouched: []
    func_position:
      end: 1163
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1163
    functionName: SHPAPI_CALL::SHPCreateLL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 1
    functionsReached:
    - SHP_SWAP32
    - free
    - SAHooks*::FClose
    - ByteCopy
    - SAHooks*::FWrite
    - strerror
    - SAHooks*::Error
    - calloc
    - SAHooks*::FOpen
    - snprintf
    - SHPHandle::sHooks::Error
    - malloc
    - SHPHandle::sHooks::FClose
    - memset
    - STATIC_CAST
    - memcpy
    linkageType: ''
    returnType: SHPHandle
    signature: "SHPHandle SHPAPI_CALL SHPCreateLL(const char *pszLayer, int nShapeType,\n
      \                                 const SAHooks *psHooks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1174,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1175,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1176,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1177,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1180,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1181,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1182,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - pabyRec
    - psShape
    argTypes:
    - unsigned char*
    - SHPObject*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1185
    functionName: _SHPSetBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - ByteCopy
    - SHP_SWAP64
    linkageType: ''
    returnType: void
    signature: void _SHPSetBounds(unsigned char *pabyRec, const SHPObject *psShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1209,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1210,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1211,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1212,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1214,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1215,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1216,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - psObject
    argTypes:
    - SHPObject*
    constantsTouched: []
    func_position:
      end: 1219
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1219
    functionName: SHPAPI_CALL::SHPComputeExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: void SHPAPI_CALL SHPComputeExtents(SHPObject *psObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPCreateSimpleObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1367,1
    - Dst: SHPCreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1370,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1390,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1398,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1416,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1417,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1421,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1427,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1429,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1432,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1454,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1461,1
    - Dst: _SHPSetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1481,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1484,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1485,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1488,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1489,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1496,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1501,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1511,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1516,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1527,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1528,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1531,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1532,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1545,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1547,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1551,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1553,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1559,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1561,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1579,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1581,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1585,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1587,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1593,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1595,1
    - Dst: _SHPSetBounds
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1611,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1614,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1616,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1620,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1621,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1624,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1625,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1633,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1635,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1639,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1641,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1647,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1649,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1659,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1661,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1665,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1667,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1673,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1675,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1689,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1690,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1693,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1694,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1701,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1703,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1711,1
    - Dst: SHP_SWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1713,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1729,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1754,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1760,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1761,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1779,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1781,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1785,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1787,1
    - Dst: SHP_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1791,1
    - Dst: ByteCopy
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1793,1
    - Dst: sHooks::FTell
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1803,1
    - Dst: sHooks::FSeek
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1805,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1809,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1812,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1814,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1816,1
    - Dst: sHooks::FWrite
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1820,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1824,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1827,1
    - Dst: sHooks::Error
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1829,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1831,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1835,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1876,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1877,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1878,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1879,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1883,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1885,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1890,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1892,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 223
    argCount: 1
    argNames:
    - SHPAPI_CALL SHPWriteObject
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1897
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1897
    functionName: SHPAPI_CALL1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - MIN
    - strerror
    - assert
    - sHooks::FTell
    - SHP_SWAP32
    - sHooks::FWrite
    - MAX
    - SHPCreateSimpleObject
    - _SHPSetBounds
    - free
    - SHP_SWAP64
    - snprintf
    - ByteCopy
    - sHooks::FSeek
    - STATIC_CAST
    - sHooks::Error
    - realloc
    - SHPCreateObject
    - memcpy
    linkageType: ''
    returnType: SHPObject
    signature: "SHPObject SHPAPI_CALL1(*)\n    SHPCreateSimpleObject(int nSHPType,
      int nVertices, const double *padfX,\n                          const double
      *padfY, const double *padfZ)\n{\n    return (SHPCreateObject(nSHPType, -1, 0,
      SHPLIB_NULLPTR, SHPLIB_NULLPTR,\n                            nVertices, padfX,
      padfY, padfZ, SHPLIB_NULLPTR));\n}\n\n/************************************************************************/\n/*
      \                          SHPWriteObject()                           */\n/*
      \                                                                     */\n/*
      \     Write out the vertices of a new structure.  Note that it is     */\n/*
      \     only possible to write vertices at the end of the file.         */\n/************************************************************************/\n\nint
      SHPAPI_CALL SHPWriteObject(SHPHandle psSHP, int nShapeId,\n                               const
      SHPObject *psObject)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pBuffer
    - nSize
    argTypes:
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 1914
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1914
    functionName: SHPAllocBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *SHPAllocBuffer(unsigned char **pBuffer, int nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1931,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:1932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - psSHP
    - nObjectBufSize
    argTypes:
    - SHPHandle
    - int
    constantsTouched: []
    func_position:
      end: 1945
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1945
    functionName: SHPReallocObjectBufIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - realloc
    - STATIC_CAST
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *SHPReallocObjectBufIfNecessary(SHPHandle psSHP,\n                                                     int
      nObjectBufSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - nSHPType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2813
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2813
    functionName: SHPTypeName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHPTypeName(int nSHPType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psObject
    - iPart
    argTypes:
    - SHPObject*
    - int
    constantsTouched: []
    func_position:
      end: 2889
      start: 2882
    functionDepth: 0
    functionLinenumber: 2882
    functionLinenumberEnd: 2889
    functionName: SHPGetPartVertexCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SHPGetPartVertexCount(const SHPObject *psObject, int iPart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:2966,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:2967,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 7
    argNames:
    - psObject
    - iOpRing
    - dfTestX
    - dfTestY
    - dfRelativeTolerance
    - bSameZ
    - dfTestZ
    argTypes:
    - SHPObject*
    - int
    - double
    - double
    - double
    - int
    - double
    constantsTouched: []
    func_position:
      end: 2981
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2981
    functionName: SHPRewindIsInnerRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: int
    signature: "int SHPRewindIsInnerRing(const SHPObject *psObject, int iOpRing,\n
      \                               double dfTestX, double dfTestY,\n                                double
      dfRelativeTolerance, int bSameZ,\n                                double dfTestZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHPRewindIsInnerRing
      Src: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c:3084,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 67
    argCount: 2
    argNames:
    - hSHP
    - psObject
    argTypes:
    - SHPHandle
    - SHPObject*
    constantsTouched: []
    func_position:
      end: 3160
      start: 2990
    functionDepth: 1
    functionLinenumber: 2990
    functionLinenumberEnd: 3160
    functionName: SHPAPI_CALL::SHPRewindObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/shape/shpopen.c
    functionUses: 0
    functionsReached:
    - SHPRewindIsInnerRing
    linkageType: ''
    returnType: int
    signature: int SHPAPI_CALL SHPRewindObject(const SHPHandle hSHP, SHPObject *psObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:25,1
    - Dst: OGRMySQLResultLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:29,1
    - Dst: OGRMySQLResultLayer::ReadResultDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - poDSIn
    - pszRawQueryIn
    - hResultSetIn
    argTypes:
    - OGRMySQLDataSource*
    - char*
    - MYSQL_RES*
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: OGRMySQLResultLayer::OGRMySQLResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLResultLayer::BuildFullQueryStatement
    - OGRMySQLResultLayer::ReadResultDefinition
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRMySQLResultLayer::OGRMySQLResultLayer(OGRMySQLDataSource *poDSIn,\n
      \                                        const char *pszRawQueryIn,\n                                         MYSQL_RES
      *hResultSetIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: OGRMySQLResultLayer::~OGRMySQLResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMySQLResultLayer::~OGRMySQLResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:55,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:56,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:56,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:58,1
    - Dst: mysql_field_seek
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:60,1
    - Dst: mysql_num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:61,1
    - Dst: mysql_fetch_field
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:64,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:75,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:77,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:78,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:86,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:96,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:97,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:98,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:113,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:115,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:117,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:118,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:123,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:124,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:125,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:130,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:131,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:132,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:138,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:139,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:140,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:147,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:148,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:149,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:158,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:160,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:161,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:162,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:169,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:182,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:185,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:185,1
    - Dst: IS_NOT_NULL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:188,1
    - Dst: IS_PRI_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:189,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:197,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:197,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:202,1
    - Dst: std::make_unique<OGRMySQLGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:211,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:213,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:213,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:215,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:221,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:228,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:231,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:231,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:232,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:232,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:236,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:242,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:244,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:247,1
    - Dst: OGRFeatureDefn*::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:250,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:250,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 254
    functionName: OGRMySQLResultLayer::ReadResultDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 1
    functionsReached:
    - auto::SetType
    - GetMajorVersion
    - mysql_query
    - mysql_fetch_field
    - std::make_unique<OGRMySQLGeomFieldDefn>
    - IS_PRI_KEY
    - OGRFromOGCGeomType
    - mysql_field_seek
    - OGRFeatureDefn*::Reference
    - OGRFeatureDefn*::AddFieldDefn
    - CPLStrdup
    - OGRFeatureDefn*::SetGeomType
    - OGRFeatureDefn*::AddGeomFieldDefn
    - std::move
    - mysql_num_fields
    - OGRFeatureDefn*::GetName
    - OGRFieldDefn::GetNameRef
    - IsMariaDB
    - CPLString::Printf
    - mysql_store_result
    - OGRFeatureDefn::OGRFeatureDefn
    - SetDescription
    - IS_NOT_NULL
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - mysql_free_result
    - mysql_fetch_row
    - OGRFieldDefn::SetType
    - EQUAL
    - GetConn
    - FetchSRSId
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMySQLResultLayer::ReadResultDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:265,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: OGRMySQLResultLayer::BuildFullQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRMySQLResultLayer::BuildFullQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: OGRMySQLResultLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRMySQLResultLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: OGRMySQLResultLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMySQLResultLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: OGRMySQLResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqlresultlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMySQLResultLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hResult
    argTypes:
    - MYSQL_RES*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: FreeResultAndNullify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - mysql_free_result
    linkageType: ''
    returnType: void
    signature: void FreeResultAndNullify(MYSQL_RES *&hResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: OGRMySQLDataSource::OGRMySQLDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::OGRMySQLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:56,1
    - Dst: mysql_close
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: OGRMySQLDataSource::~OGRMySQLDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - mysql_close
    - CPLFree
    - OGRMySQLDataSource::InterruptLongResult
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::~OGRMySQLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRMySQLDataSource::GetUnknownSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMySQLDataSource::GetUnknownSRID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:79,1
    - Dst: mysql_error
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:80,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:83,1
    - Dst: mysql_error
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszDescription
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: OGRMySQLDataSource::ReportError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - mysql_error
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::ReportError(const char *pszDescription)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:94,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:112,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:119,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:140,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:142,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:143,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:152,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:154,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:156,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:158,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:159,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:160,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:162,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:167,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:173,1
    - Dst: mysql_init
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:178,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:182,1
    - Dst: mysql_options
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:193,1
    - Dst: mysql_options
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:195,1
    - Dst: mysql_real_connect
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:202,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:202,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:202,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:203,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:203,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:204,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:204,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:205,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:205,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:208,1
    - Dst: mysql_error
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:210,1
    - Dst: mysql_close
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:211,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:217,1
    - Dst: mysql_options
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:231,1
    - Dst: OGRMySQLDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:240,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:243,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:247,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:250,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:251,1
    - Dst: OGRMySQLDataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:254,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:265,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:267,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:271,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:274,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:284,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:287,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:290,1
    - Dst: OGRMySQLDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:302,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:305,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 95
    argCount: 3
    argNames:
    - pszNewName
    - papszOpenOptionsIn
    - bUpdate
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 308
    functionName: OGRMySQLDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - mysql_close
    - atoi
    - mysql_error
    - CSLAddString
    - OGRMySQLDataSource::ReleaseResultSet
    - OGRMySQLDataSource::OpenTable
    - CSLTokenizeStringComplex
    - mysql_init
    - mysql_query
    - OGRMySQLDataSource::ReportError
    - CPLError
    - std::string::c_str
    - mysql_real_connect
    - OGRMySQLDataSource::ExecuteSQL
    - FreeResultAndNullify
    - CSLCount
    - CPLString::back
    - STARTS_WITH_CI
    - c_str
    - mysql_store_result
    - CPLAssert
    - strstr
    - auto::GetNextFeature
    - mysql_options
    - std::string::length
    - CSLDestroy
    - mysql_fetch_row
    - length
    - EQUAL
    linkageType: ''
    returnType: int
    signature: "int OGRMySQLDataSource::Open(const char *pszNewName, char **papszOpenOptionsIn,\n
      \                            int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLTableLayer::OGRMySQLTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:323,1
    - Dst: OGRMySQLTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:324,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pszNewName
    - bUpdate
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 336
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 336
    functionName: OGRMySQLDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - OGRMySQLTableLayer*::Initialize
    - OGRMySQLTableLayer::OGRMySQLTableLayer
    linkageType: ''
    returnType: int
    signature: int OGRMySQLDataSource::OpenTable(const char *pszNewName, int bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:345,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:347,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: OGRMySQLDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMySQLDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: OGRMySQLDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMySQLDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:391,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:391,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:394,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:394,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:404,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:404,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:406,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:410,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:414,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:414,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:415,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:418,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:418,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:425,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:425,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:427,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:431,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:435,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:435,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 440
    functionName: OGRMySQLDataSource::InitializeMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - mysql_store_result
    - CPLDebug
    - OGRMySQLDataSource::GetConn
    - mysql_query
    - OGRMySQLDataSource::ReportError
    - OGRMySQLDataSource::GetMajorVersion
    - FreeResultAndNullify
    - OGRMySQLDataSource::IsMariaDB
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLDataSource::InitializeMetadataTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:452,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:452,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:463,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:467,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:467,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:469,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:474,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:474,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:475,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:487,1
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:489,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:490,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:499,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:509,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:509,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:511,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:516,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:516,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:517,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - pszLayerName
    - eType
    - pszGeomColumnName
    - nSRSId
    argTypes:
    - char*
    - OGRwkbGeometryType
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 521
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 521
    functionName: OGRMySQLDataSource::UpdateMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLDataSource::GetUnknownSRID
    - CPLString::Printf
    - mysql_store_result
    - OGRMySQLDataSource::GetConn
    - mysql_query
    - OGRMySQLDataSource::GetMajorVersion
    - OGRMySQLDataSource::ReportError
    - FreeResultAndNullify
    - OGRToOGCGeomType
    - OGRMySQLDataSource::IsMariaDB
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMySQLDataSource::UpdateMetadataTables(const char *pszLayerName,\n
      \                                               OGRwkbGeometryType eType,\n
      \                                               const char *pszGeomColumnName,\n
      \                                               const int nSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:541,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:542,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:544,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:548,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:548,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:549,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:552,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:552,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:554,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:559,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:566,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:566,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:567,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:567,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:573,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:577,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:580,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:583,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:584,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:585,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:587,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:590,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:598,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:599,1
    - Dst: std::unique_ptr::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:602,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:602,1
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:609,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:609,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:610,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 611
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 611
    functionName: OGRMySQLDataSource::FetchSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::importFromWkt
    - atoi
    - std::unique_ptr::importFromEPSG
    - mysql_query
    - end
    - CPLStrdup
    - emplace
    - find
    - OGRMySQLDataSource::GetConn
    - std::move
    - OGRMySQLDataSource::GetMajorVersion
    - strlen
    - FreeResultAndNullify
    - std::unique_ptr::reset
    - std::unique_ptr::SetAxisMappingStrategy
    - mysql_store_result
    - snprintf
    - CPLFree
    - auto::second::get
    - OGRSpatialReference::OGRSpatialReference
    - mysql_fetch_row
    - EQUAL
    - OGRMySQLDataSource::IsMariaDB
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRMySQLDataSource::FetchSRS(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:624,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:632,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:639,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:641,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:642,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:645,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:648,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:649,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:651,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:659,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:674,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:674,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:677,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:680,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:685,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:690,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:695,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:695,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:696,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:696,1
    - Dst: mysql_num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:698,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:700,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:703,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:707,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:712,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:717,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:717,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:718,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:726,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:728,1
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:729,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:733,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:733,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:733,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:735,1
    - Dst: OGR_SRSNode::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:737,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:739,1
    - Dst: OGRSpatialReference::CopyGeogCSFrom
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:740,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:742,1
    - Dst: OGR_SRSNode::DestroyChild
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:747,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:748,1
    - Dst: auto::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:750,1
    - Dst: OGR_SRSNode::InsertChild
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:751,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:753,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:755,1
    - Dst: OGR_SRSNode::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:756,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:764,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:764,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:767,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:768,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:772,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:775,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:779,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:779,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:780,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:780,1
    - Dst: mysql_num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:782,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:784,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:786,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:790,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:795,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:796,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:801,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:801,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:802,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:804,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:804,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:807,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:814,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:818,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:818,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:820,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:820,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:821,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:828,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:840,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:840,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:842,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:842,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:843,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:846,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:848,1
    - Dst: OGRSpatialReference::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:859,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:861,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:864,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:865,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:865,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:867,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:867,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:868,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:871,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:873,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:881,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:886,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:886,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:887,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:888,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:892,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:895,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:895,1
    - Dst: OGRMySQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:896,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:899,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:899,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:901,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:901,1
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:902,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:905,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:905,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:906,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:908,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:916,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:916,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:918,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:918,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:919,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:926,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:931,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:935,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:935,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:937,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:937,1
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:938,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:942,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:942,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:943,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:945,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 145
    argCount: 1
    argNames:
    - poSRSIn
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 948
      start: 620
    functionDepth: 7
    functionLinenumber: 620
    functionLinenumberEnd: 948
    functionName: OGRMySQLDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - auto::importFromWkt
    - atoi
    - OGRSpatialReference::GetAuthorityName
    - CPLDebug
    - OGRSpatialReference::CopyGeogCSFrom
    - OGRSpatialReference::GetName
    - mysql_num_rows
    - mysql_query
    - OGR_SRSNode::DestroyChild
    - OGRMySQLDataSource::ReportError
    - OGRSpatialReference::IsProjected
    - OGRMySQLDataSource::GetConn
    - CPLString::c_str
    - strlen
    - OGRMySQLDataSource::GetMajorVersion
    - FreeResultAndNullify
    - OGRSpatialReference::importFromEPSG
    - c_str
    - OGR_SRSNode::importFromWkt
    - CPLString::Printf
    - mysql_store_result
    - CPLSPrintf
    - OGRSpatialReference::AutoIdentifyEPSG
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRMySQLDataSource::GetUnknownSRID
    - mysql_fetch_row
    - OGR_SRSNode::InsertChild
    - EQUAL
    - OGRMySQLEscapeLiteral
    - OGR_SRSNode::OGR_SRSNode
    - OGRMySQLDataSource::IsMariaDB
    - OGR_SRSNode::exportToWkt
    linkageType: ''
    returnType: int
    signature: int OGRMySQLDataSource::FetchSRSId(const OGRSpatialReference *poSRSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:961,1
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:968,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:969,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:976,1
    - Dst: OGRMySQLDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:983,1
    - Dst: OGRMySQLDataSource::InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:991,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:998,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1000,1
    - Dst: mysql_use_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1004,1
    - Dst: mysql_field_count
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1007,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1009,1
    - Dst: mysql_affected_rows
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1010,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1015,1
    - Dst: OGRMySQLResultLayer::OGRMySQLResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1026,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1029
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 1029
    functionName: OGRMySQLDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 1
    functionsReached:
    - mysql_field_count
    - STARTS_WITH_CI
    - mysql_use_result
    - OGRMySQLResultLayer::OGRMySQLResultLayer
    - CPLDebug
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - mysql_query
    - OGRMySQLDataSource::ReportError
    - mysql_affected_rows
    - OGRMySQLDataSource::DeleteLayer
    - OGRMySQLDataSource::InterruptLongResult
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRMySQLDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                        OGRGeometry *poSpatialFilter,\n                                         const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1039
    functionName: OGRMySQLDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1053,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszSrcName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1059
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1059
    functionName: OGRMySQLDataSource::LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTolower
    - static_cast<unsigned char>
    linkageType: ''
    returnType: char
    signature: char *OGRMySQLDataSource::LaunderName(const char *pszSrcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poNewLayer
    argTypes:
    - OGRMySQLLayer*
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: OGRMySQLDataSource::RequestLongResult
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLDataSource::InterruptLongResult
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::RequestLongResult(OGRMySQLLayer *poNewLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1093
    functionName: OGRMySQLDataSource::InterruptLongResult
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 3
    functionsReached:
    - ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDataSource::InterruptLongResult()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1109,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1111,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1111,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1114,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1123,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1123,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1125,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1125,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1127,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1127,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1135
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1135
    functionName: OGRMySQLDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - CPLString::Printf
    - CPLDebug
    - OGRMySQLDataSource::GetConn
    - CPLString::c_str
    - mysql_query
    - OGRMySQLDataSource::ReportError
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1157,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1159,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1161,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1163,1
    - Dst: OGRMySQLDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1164,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1166,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1171,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1180,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1180,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1184,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1184,1
    - Dst: OGRMySQLDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1190,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1195,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1201,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1205,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1207,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1214,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1215,1
    - Dst: OGRMySQLDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1222,1
    - Dst: OGRMySQLDataSource::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1231,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1233,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1235,1
    - Dst: OGRMySQLDataSource::GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1242,1
    - Dst: OGRMySQLDataSource::IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1242,1
    - Dst: OGRMySQLDataSource::GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1242,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1243,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1249,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1257,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1260,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1263,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1263,1
    - Dst: mysql_field_count
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1265,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1265,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1266,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1269,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1275,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1280,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1280,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1281,1
    - Dst: OGRMySQLDataSource::UpdateMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1283,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1295,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1298,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1298,1
    - Dst: OGRMySQLDataSource::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1300,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1305,1
    - Dst: OGRMySQLDataSource::GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1305,1
    - Dst: FreeResultAndNullify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1306,1
    - Dst: OGRMySQLTableLayer::OGRMySQLTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1315,1
    - Dst: OGRMySQLTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1316,1
    - Dst: OGRMySQLTableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1320,1
    - Dst: OGRMySQLTableLayer*::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1322,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1322,1
    - Dst: OGRMySQLTableLayer*::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1323,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1323,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1328,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp:1333,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 3
    argNames:
    - pszLayerNameIn
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1336
      start: 1141
    functionDepth: 8
    functionLinenumber: 1141
    functionLinenumberEnd: 1336
    functionName: OGRMySQLDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLDataSource::UpdateMetadataTables
    - OGRMySQLDataSource::InitializeMetadataTables
    - CPLDebug
    - OGRMySQLTableLayer::OGRMySQLTableLayer
    - mysql_query
    - OGRMySQLDataSource::ReportError
    - CPLError
    - OGRMySQLTableLayer*::SetPrecisionFlag
    - OGRMySQLDataSource::LaunderName
    - CSLFetchNameValue
    - OGRMySQLTableLayer*::SetLaunderFlag
    - CPLStrdup
    - OGRMySQLDataSource::GetConn
    - CPLRealloc
    - OGRMySQLTableLayer*::Initialize
    - OGRMySQLDataSource::GetMajorVersion
    - FreeResultAndNullify
    - wkbFlatten
    - OGRMySQLDataSource::DeleteLayer
    - GetLayerDefn
    - CPLFetchBool
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - mysql_store_result
    - CPLFree
    - OGRMySQLDataSource::InterruptLongResult
    - mysql_field_count
    - OGRMySQLTableLayer*::GetLayerDefn
    - OGRMySQLDataSource::GetUnknownSRID
    - EQUAL
    - OGRMySQLDataSource::FetchSRSId
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRMySQLDataSource::IsMariaDB
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMySQLDataSource::ICreateLayer(const char *pszLayerNameIn,\n
      \                                const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszLiteral
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1352
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1352
    functionName: OGRMySQLEscapeLiteral
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string OGRMySQLEscapeLiteral(const char *pszLiteral)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: OGRMySQLGeomFieldDefn::OGRMySQLGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMySQLGeomFieldDefn(const OGRMySQLGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '&operator=(const OGRMySQLGeomFieldDefn &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRMySQLGeomFieldDefn
    signature: OGRMySQLGeomFieldDefn &operator=(const OGRMySQLGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poDSIn
    - pszFieldName
    argTypes:
    - OGRMySQLDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: OGRMySQLGeomFieldDefn::OGRMySQLGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMySQLGeomFieldDefn(OGRMySQLDataSource *poDSIn, const char *pszFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: OGRMySQLGeomFieldDefn::UnsetDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnsetDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 142
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OGRMySQLLayer
    signature: class OGRMySQLLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: OGRMySQLTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRMySQLTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: OGRMySQLDataSource::GetConn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: MYSQL
    signature: MYSQL *GetConn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: OGRMySQLDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: OGRMySQLDataSource::IsMariaDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsMariaDB() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: OGRMySQLDataSource::GetMajorVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogr_mysql.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMajorVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRMySQLDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRMySQLDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:89,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:94,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:97,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 99
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 99
    functionName: OGRMySQLDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:108,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:112,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:114,1
    - Dst: OGRMySQLDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:117,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: DeclareDeferredOGRMySQLPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRMySQLDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRMySQLPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:27,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - poDSIn
    - pszTableName
    - bUpdate
    - nSRSIdIn
    argTypes:
    - OGRMySQLDataSource*
    - CPL_UNUSED*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: OGRMySQLTableLayer::OGRMySQLTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 2
    functionsReached:
    - SetDescription
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRMySQLTableLayer::OGRMySQLTableLayer(OGRMySQLDataSource *poDSIn,\n
      \                                      CPL_UNUSED const char *pszTableName,\n
      \                                      int bUpdate, int nSRSIdIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:48,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: OGRMySQLTableLayer::~OGRMySQLTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMySQLTableLayer::~OGRMySQLTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLTableLayer::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:62,1
    - Dst: OGRMySQLTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: OGRMySQLTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLTableLayer::ResetReading
    - OGRMySQLTableLayer::ReadTableDefinition
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::Initialize(const char *pszTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:90,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:91,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:92,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:92,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:94,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:98,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:98,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:101,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:108,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:113,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:115,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:125,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:126,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:130,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:132,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:134,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:136,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:138,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:141,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:142,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:145,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:145,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:148,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:149,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:152,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:154,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:156,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:163,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:166,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:167,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:170,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:170,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:173,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:174,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:176,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:178,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:180,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:182,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:184,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:186,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:188,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:190,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:192,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:194,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:196,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:202,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:205,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:206,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:209,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:209,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:210,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:210,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:212,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:214,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:216,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:218,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:220,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:222,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:230,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:233,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:233,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:234,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:234,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:236,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:240,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:244,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:246,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:248,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:252,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:252,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:254,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:256,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:258,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:261,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:262,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:266,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:267,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:281,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:282,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:283,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:286,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:286,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:287,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:293,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:294,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:300,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:301,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:303,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:311,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:312,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:315,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:315,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:324,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:331,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:332,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:334,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:338,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:342,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:344,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:348,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:351,1
    - Dst: std::make_unique<OGRMySQLGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:360,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:362,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:362,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:363,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:368,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:373,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:373,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:374,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:374,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:378,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:385,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:387,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:387,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:388,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:389,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:391,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:394,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:397,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:400,1
    - Dst: OGRFeatureDefn*::AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:403,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:403,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:406,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 168
    argCount: 1
    argNames:
    - pszTable
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 412
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 412
    functionName: OGRMySQLTableLayer::ReadTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - auto::SetType
    - GetMajorVersion
    - CPLDebug
    - wkbSetZ
    - mysql_query
    - OGRFieldDefn::SetNullable
    - std::make_unique<OGRMySQLGeomFieldDefn>
    - OGRFromOGCGeomType
    - OGRFeatureDefn*::Reference
    - sscanf
    - OGRFeatureDefn*::AddFieldDefn
    - CPLStrdup
    - OGRFeatureDefn*::SetGeomType
    - OGRFeatureDefn*::AddGeomFieldDefn
    - std::move
    - CSLTokenizeString2
    - CSLCount
    - SetMetadataItem
    - ReportError
    - OGRFieldDefn::GetNameRef
    - STARTS_WITH_CI
    - CPLGetValueType
    - IsMariaDB
    - CPLString::Printf
    - mysql_store_result
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - CPLFree
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - mysql_fetch_row
    - CSLDestroy
    - mysql_free_result
    - OGRFieldDefn::SetType
    - GetConn
    - EQUAL
    - auto::SetNullable
    - FetchSRSId
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMySQLTableLayer::ReadTableDefinition(const char
      *pszTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:421,1
    - Dst: OGRMySQLTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:423,1
    - Dst: OGRMySQLTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: OGRMySQLTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRMySQLTableLayer::ResetReading
    - OGRMySQLTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::ISetSpatialFilter(int, const OGRGeometry
      *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:439,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:441,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:451,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:453,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:463,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:475,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:482,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:484,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:492,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:493,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:495,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:495,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:495,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:500,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 501
    functionName: OGRMySQLTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 1
    functionsReached:
    - getEnvelope
    - GetSpatialRef
    - GetMajorVersion
    - CPLDebug
    - CPLsnprintf
    - snprintf
    - strlen
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMySQLTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:512,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:519,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:519,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:519,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:520,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:520,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:521,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:522,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:522,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:523,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:523,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:524,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 528
    functionName: OGRMySQLTableLayer::BuildFullQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - CPLMalloc
    - CPLFree
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRMySQLTableLayer::BuildFullQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLTableLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:537,1
    - Dst: OGRMySQLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: OGRMySQLTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRMySQLLayer::ResetReading
    - OGRMySQLTableLayer::BuildFullQueryStatement
    linkageType: ''
    returnType: void
    signature: void OGRMySQLTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:554,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:557,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:559,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:560,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:560,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:565,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:566,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:570,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:571,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:578,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:578,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:579,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:583,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:587,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:588,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:590,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:591,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:592,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:595,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 598
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 598
    functionName: OGRMySQLTableLayer::BuildFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldCount
    - strcat
    - CPLAssert
    - snprintf
    - strlen
    - GetFieldDefn
    - GetFieldIndex
    linkageType: ''
    returnType: char
    signature: char *OGRMySQLTableLayer::BuildFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:607,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:608,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:610,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:612,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:615,1
    - Dst: OGRMySQLTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:617,1
    - Dst: OGRMySQLTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 622
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 622
    functionName: OGRMySQLTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGRMySQLTableLayer::ResetReading
    - OGRMySQLTableLayer::BuildWhere
    - strlen
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:637,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:640,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:643,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:646,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:649,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:655,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:658,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 663
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 663
    functionName: OGRMySQLTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMySQLTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:680,1
    - Dst: OGRMySQLTableLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:685,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:685,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 690
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 690
    functionName: OGRMySQLTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeature*::GetFID
    - CreateFeature
    - OGRMySQLTableLayer::DeleteFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:708,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:719,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:720,1
    - Dst: InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:725,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:726,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:726,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:726,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:728,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:728,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:733,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:733,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:735,1
    - Dst: mysql_affected_rows
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:738,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 741
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 741
    functionName: OGRMySQLTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - InterruptLongResult
    - CPLString::Printf
    - mysql_store_result
    - mysql_free_result
    - mysql_affected_rows
    - GetConn
    - CPLString::c_str
    - mysql_query
    - CPLError
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:756,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:756,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:758,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:764,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:773,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:775,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:784,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:790,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:795,1
    - Dst: OGRGeometry*::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:796,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:797,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:802,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:803,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:803,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:804,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:809,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:810,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:815,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:822,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:824,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:825,1
    - Dst: GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:826,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:829,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:831,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:833,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:833,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:835,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:840,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:840,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:842,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:845,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:850,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:854,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:856,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:866,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:870,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:871,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:872,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:873,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:880,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:882,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:884,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:885,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:886,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:888,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:890,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:905,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:908,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:915,1
    - Dst: mysql_insert_id
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:927,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:927,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:934,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:943,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:944,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:944,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:948,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:948,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:950,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:958,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:962,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:962,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:964,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 105
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 968
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 968
    functionName: OGRMySQLTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetMajorVersion
    - CPLDebug
    - mysql_query
    - CPLString
    - GetFieldDefn
    - OGRFeature*::IsFieldNull
    - mysql_insert_id
    - OGRGeometry*::flattenTo2D
    - GetMetadataItem
    - CPLString::c_str
    - SetMetadataItem
    - GetName
    - ReportError
    - GetSpatialRef
    - OGRFeature*::GetFID
    - CPLString::Printf
    - IsMariaDB
    - mysql_store_result
    - GetFieldCount
    - OGRFeature*::GetFieldAsBinary
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::IsFieldSet
    - CPL_INT64_FITS_ON_INT32
    - OGRGeometry*::exportToWkt
    - mysql_free_result
    - OGRSpatialReference*::IsGeographic
    - GetConn
    - OGRGeometry*::closeRings
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMySQLTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:993,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:994,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1000,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1002,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1003,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1004,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1006,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1008,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1010,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1011,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1012,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1014,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1016,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1018,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1018,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1020,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1021,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1021,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1023,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1026,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1028,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1029,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1032,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1034,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1035,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1035,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1036,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1038,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1041,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1043,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1044,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1047,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1049,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1052,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1054,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1056,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1057,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1059,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1062,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1063,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1067,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1070,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1071,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1071,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1072,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1073,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1074,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1078,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1080,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1081,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1081,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1086,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1087,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1087,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1088,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1089,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1089,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1092,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1095,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1095,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1097,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1102,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1102,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1104,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1107,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1110
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 1110
    functionName: OGRMySQLTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - mysql_query
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - OGRFieldDefn::IsDefaultDriverSpecific
    - AddFieldDefn
    - GetName
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - ReportError
    - STARTS_WITH_CI
    - CPLString::Printf
    - mysql_store_result
    - OGRFieldDefn::GetWidth
    - OGRFieldDefn::SetName
    - snprintf
    - CPLFree
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - mysql_free_result
    - GetConn
    - strcpy
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMySQLTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                      int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1120,1
    - Dst: OGRMySQLTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1125,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1134,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1135,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1137,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1142,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1142,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1144,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1148,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1148,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1151,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1161,1
    - Dst: mysql_fetch_lengths
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1165,1
    - Dst: RecordToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1172,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1184
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1184
    functionName: OGRMySQLTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - OGRMySQLLayer::GetFeature
    - CPLString::Printf
    - OGRMySQLTableLayer::ResetReading
    - mysql_store_result
    - mysql_fetch_row
    - mysql_free_result
    - GetConn
    - mysql_query
    - RecordToFeature
    - mysql_fetch_lengths
    - CPLFree
    - GetName
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMySQLTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1208,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1209,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1211,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1211,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1213,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1217,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1217,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1220,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1231,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1236
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1236
    functionName: OGRMySQLTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - InterruptLongResult
    - mysql_store_result
    - CPLAtoGIntBig
    - mysql_free_result
    - CPLSPrintf
    - GetConn
    - mysql_query
    - GetName
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMySQLTableLayer::GetFeatureCount(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1249,1
    - Dst: OGRMySQLTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1259,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1265,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1265,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1268,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1273,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1277,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1277,1
    - Dst: mysql_use_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1279,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1279,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1282,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1288,1
    - Dst: mysql_fetch_lengths
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1292,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1295,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1303,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1305,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1311,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1316,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1330,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1334,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp:1334,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1338
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1338
    functionName: OGRMySQLTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqltablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - ReportError
    - static_cast<int>
    - OGRGeometryFactory::createFromWkb
    - IsMariaDB
    - OGRMySQLTableLayer::ResetReading
    - CPLString::Printf
    - mysql_use_result
    - GetMajorVersion
    - mysql_fetch_row
    - mysql_free_result
    - GetConn
    - CPLString::c_str
    - mysql_query
    - mysql_fetch_lengths
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMySQLTableLayer::IGetExtent(int /*iGeomField */,\n                                      OGREnvelope
      *psExtent, bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRMySQLDataSource*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: OGRMySQLLayer::OGRMySQLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMySQLLayer::OGRMySQLLayer(OGRMySQLDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:35,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:36,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:39,1
    - Dst: dynamic_cast<OGRMySQLGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:41,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:42,1
    - Dst: auto::UnsetDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:44,1
    - Dst: OGRMySQLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:47,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:49,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:50,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:52,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: OGRMySQLLayer::~OGRMySQLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - auto::UnsetDataSource
    - OGRMySQLLayer::ResetReading
    - CPLDebug
    - GetGeomFieldCount
    - dynamic_cast<OGRMySQLGeomFieldDefn *>
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMySQLLayer::~OGRMySQLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:69,1
    - Dst: InterruptLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: OGRMySQLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 3
    functionsReached:
    - InterruptLongResult
    - mysql_free_result
    linkageType: ''
    returnType: void
    signature: void OGRMySQLLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:91,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:99,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:99,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: OGRMySQLLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMySQLLayer::GetNextRawFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMySQLLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mysql_field_seek
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:118,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:123,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:125,1
    - Dst: mysql_num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:131,1
    - Dst: mysql_fetch_field
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:144,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:149,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:149,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:166,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:171,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:173,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:177,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:177,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:178,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:192,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:194,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:196,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:196,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:201,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - papszRow
    - panLengths
    argTypes:
    - char**
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 206
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 206
    functionName: OGRMySQLLayer::RecordToFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - static_cast<int>
    - OGRGeometryFactory::createFromWkb
    - GetSpatialRef
    - CPLAtoGIntBig
    - EQUAL
    - OGRFeature::OGRFeature
    - OGRFieldDefn*::GetType
    - mysql_fetch_field
    - OGRFeature*::SetField
    - GetFieldDefn
    - CPLError
    - mysql_num_fields
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::SetFID
    - mysql_field_seek
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRMySQLLayer::RecordToFeature(char **papszRow,\n                                           unsigned
      long *panLengths)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:220,1
    - Dst: RequestLongResult
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:222,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:224,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:224,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:226,1
    - Dst: mysql_use_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:230,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:230,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:233,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:244,1
    - Dst: OGRMySQLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:247,1
    - Dst: mysql_fetch_lengths
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:251,1
    - Dst: OGRMySQLLayer::RecordToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 261
    functionName: OGRMySQLLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - OGRMySQLLayer::RecordToFeature
    - mysql_use_result
    - mysql_fetch_row
    - GetConn
    - CPLAssert
    - mysql_query
    - RequestLongResult
    - mysql_fetch_lengths
    - OGRMySQLLayer::ResetReading
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMySQLLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: OGRMySQLLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMySQLLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: OGRMySQLLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMySQLLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:298,1
    - Dst: GetMajorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:301,1
    - Dst: IsMariaDB
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:301,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:303,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:309,1
    - Dst: mysql_query
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:315,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:315,1
    - Dst: mysql_store_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:316,1
    - Dst: GetConn
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:316,1
    - Dst: mysql_fetch_row
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:320,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:324,1
    - Dst: mysql_free_result
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 333
    functionName: OGRMySQLLayer::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - IsMariaDB
    - CPLString::Printf
    - mysql_store_result
    - mysql_free_result
    - GetMajorVersion
    - mysql_fetch_row
    - GetConn
    - mysql_query
    linkageType: ''
    returnType: int
    signature: int OGRMySQLLayer::FetchSRSId()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:347,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:349,1
    - Dst: GetUnknownSRID
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: OGRMySQLGeomFieldDefn::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    - GetUnknownSRID
    - FetchSRS
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRMySQLGeomFieldDefn::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: OGRMySQLLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMySQLLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mysql_library_end
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:30,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - GDALDriver *poDriver
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: OGRMySQLDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    - mysql_library_end
    linkageType: ''
    returnType: void
    signature: void OGRMySQLDriverUnload(CPL_UNUSED GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:49,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:53,1
    - Dst: mysql_library_init
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:56,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:58,1
    - Dst: OGRMySQLDataSource::OGRMySQLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:66,1
    - Dst: OGRMySQLDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 76
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 76
    functionName: OGRMySQLDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRMySQLDataSource::OGRMySQLDataSource
    - OGRMySQLDriverIdentify
    - mysql_library_init
    - CPLError
    - OGRMySQLDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMySQLDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMySQLDataSource::OGRMySQLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:91,1
    - Dst: OGRMySQLDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:93,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: OGRMySQLDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRMySQLDataSource*::Open
    - OGRMySQLDataSource::OGRMySQLDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRMySQLDriverCreate(const char *pszName,\n                                         CPL_UNUSED
      int nBands,\n                                         CPL_UNUSED int nXSize,\n
      \                                        CPL_UNUSED int nYSize,\n                                         CPL_UNUSED
      GDALDataType eDT,\n                                         CPL_UNUSED char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:112,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:115,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:118,1
    - Dst: OGRMySQLDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:119,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: RegisterOGRMySQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - OGRMySQLDriverSetCommonMetadata
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMySQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: OGRODS::OGRODSLayer::GetHasHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetHasHeaderLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: OGRODS::OGRODSLayer::SetHasHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasHeaderLine(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: OGRODS::OGRODSLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRODS::OGRODSLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeomType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: OGRODS::OGRODSLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: OGRODS::OGRODSLayer::GetNextFeatureWithoutFIDHack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeatureWithoutFIDHack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:101,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: OGRODS::OGRODSLayer::SetFeatureWithoutFIDHack
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::SetUpdated
    - OGRMemLayer::ISetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr SetFeatureWithoutFIDHack(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:110,1
    - Dst: OGRMemLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: OGRODS::OGRODSLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::CreateField
    - OGRODS::OGRODSLayer::SetUpdated
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr CreateField(const OGRFieldDefn *poField,\n                               int
      bApproxOK = TRUE) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:116,1
    - Dst: OGRMemLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: OGRODS::OGRODSLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::DeleteField
    - OGRODS::OGRODSLayer::SetUpdated
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr DeleteField(int iField) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:122,1
    - Dst: OGRMemLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: OGRODS::OGRODSLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::SetUpdated
    - OGRMemLayer::ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr ReorderFields(int *panMap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:129,1
    - Dst: OGRMemLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: OGRODS::OGRODSLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::AlterFieldDefn
    - OGRODS::OGRODSLayer::SetUpdated
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                 int nFlagsIn) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: OGRODS::OGRODSDataSource::GetUpdatable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUpdatable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: OGRODS::OGRODSDataSource::SetUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogr_ods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUpdated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:30,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:35,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:35,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:38,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:38,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:43,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:43,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:46,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:47,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:51,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: OGRODSDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - CPLGetFilename
    - memcmp
    - EQUAL
    - strstr
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int OGRODSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODSDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:61,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:78,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:81,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:85,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:86,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:87,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:113,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:113,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:121,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:129,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:131,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:143,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:143,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:144,1
    - Dst: OGRODSDataSource::OGRODSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:147,1
    - Dst: OGRODSDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:149,1
    - Dst: OGRODSDataSource*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:157,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 161
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 161
    functionName: OGRODSDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRODSDataSource::OGRODSDataSource
    - OGRODSDataSource*::Open
    - VSIFCloseL
    - OGRODSDataSource*::SetDescription
    - CPLString::Printf
    - OGRODSDriverIdentify
    - memcmp
    - CPLSPrintf
    - VSIFOpenL
    - strlen
    - VSIFReadL
    - strstr
    - std::string::c_str
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRODSDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:173,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:175,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:186,1
    - Dst: OGRODSDataSource::OGRODSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:196,1
    - Dst: OGRODSDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 205
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 205
    functionName: OGRODSDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRODSDataSource::OGRODSDataSource
    - VSIStatL
    - EQUAL
    - OGRODSDataSource*::Create
    - CPLError
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRODSDriverCreate(const char *pszName, int /* nXSize
      */,\n                                       int /* nYSize */, int /* nBands
      */,\n                                       GDALDataType /* eDT */,\n                                       char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:214,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:217,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:219,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:220,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:221,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:222,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:223,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:225,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:226,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:227,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:228,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:231,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:232,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:233,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:234,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:235,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:236,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:237,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:238,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:239,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:240,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:241,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:243,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:244,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:246,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 271
    functionName: RegisterOGRODS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRODS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: ods_formulaerror
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void ods_formulaerror( ods_formula_parse_context * /* context */,\n
      \                             const char *msg )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yysymbol
    argTypes:
    - yysymbol_kind_t
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: yysymbol_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yysymbol_name (yysymbol_kind_t yysymbol)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_USE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:852,1
    - Dst: YY_USE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - yyo
    - yykind
    - yyvaluep
    - context
    argTypes:
    - FILE*
    - yysymbol_kind_t
    - YYSTYPE*
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 859
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 859
    functionName: yy_symbol_value_print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 1
    functionsReached:
    - YY_USE
    linkageType: ''
    returnType: void
    signature: "void yy_symbol_value_print (FILE *yyo,\n                       yysymbol_kind_t
      yykind, YYSTYPE const * const yyvaluep, ods_formula_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:870,1
    - Dst: yysymbol_name
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:871,1
    - Dst: yy_symbol_value_print
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:873,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - yyo
    - yykind
    - yyvaluep
    - context
    argTypes:
    - FILE*
    - yysymbol_kind_t
    - YYSTYPE*
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 875
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 875
    functionName: yy_symbol_print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 1
    functionsReached:
    - yysymbol_name
    - yy_symbol_value_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: "void yy_symbol_print (FILE *yyo,\n                 yysymbol_kind_t
      yykind, YYSTYPE const * const yyvaluep, ods_formula_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:885,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:889,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yybottom
    - yytop
    argTypes:
    - yy_state_t*
    - yy_state_t*
    constantsTouched: []
    func_position:
      end: 892
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 892
    functionName: yy_stack_print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:912,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:917,1
    - Dst: yy_symbol_print
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:918,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:919,1
    - Dst: YYFPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - yyssp
    - yyvsp
    - yyrule
    - context
    argTypes:
    - yy_state_t*
    - YYSTYPE*
    - int
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 923
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 923
    functionName: yy_reduce_print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 0
    functionsReached:
    - yy_symbol_print
    - YYFPRINTF
    - YY_ACCESSING_SYMBOL
    linkageType: ''
    returnType: void
    signature: "void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,\n                 int
      yyrule, ods_formula_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_USE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:971,1
    - Dst: YY_USE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:972,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:975,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 4
    argNames:
    - yymsg
    - yykind
    - yyvaluep
    - context
    argTypes:
    - char*
    - yysymbol_kind_t
    - YYSTYPE*
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 1032
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 1032
    functionName: yydestruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 1
    functionsReached:
    - YY_SYMBOL_PRINT
    - YY_USE
    linkageType: ''
    returnType: void
    signature: "void yydestruct (const char *yymsg,\n            yysymbol_kind_t yykind,
      YYSTYPE *yyvaluep, ods_formula_parse_context *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1096,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1116,1
    - Dst: YY_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1117,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1119,1
    - Dst: yyoverflow
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1143,1
    - Dst: YY_
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1143,1
    - Dst: YYSIZEOF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1144,1
    - Dst: YYSIZEOF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1145,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1161,1
    - Dst: YYSTACK_ALLOC
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1162,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1162,1
    - Dst: YYSTACK_BYTES
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1162,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1165,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1166,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1169,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1178,1
    - Dst: yypact_value_is_default
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1202,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1210,1
    - Dst: yylex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1211,1
    - Dst: YYDPRINTF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1218,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1232,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1233,1
    - Dst: yytable_value_is_error
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1244,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1256,1
    - Dst: YY_REDUCE_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1295,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1325,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1332,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1333,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1340,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1341,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1342,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1348,1
    - Dst: ReverseSubExpressions
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1349,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1350,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1356,1
    - Dst: ReverseSubExpressions
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1357,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1358,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1364,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1365,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1371,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1372,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1373,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1379,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1380,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1381,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1382,1
    - Dst: ReverseSubExpressions
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1389,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1390,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1402,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1403,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1404,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1410,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1411,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1412,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1418,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1419,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1420,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1426,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1427,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1428,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1434,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1435,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1436,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1442,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1443,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1444,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1450,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1451,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1452,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1458,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1459,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1460,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1466,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1467,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1468,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1484,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1485,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1485,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1486,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1493,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1494,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1495,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1501,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1502,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1503,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1509,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1510,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1511,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1517,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1518,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1519,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1525,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1526,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1527,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1533,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1534,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1535,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1541,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1542,1
    - Dst: PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1549,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1555,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1556,1
    - Dst: PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1563,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1569,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1570,1
    - Dst: PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1577,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1583,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1584,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1590,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1591,1
    - Dst: YYSTYPE::PushSubExpression
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1592,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1611,1
    - Dst: YY_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1611,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1613,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1638,1
    - Dst: yyerror
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1643,1
    - Dst: YY_
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1643,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1659,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1683,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1685,1
    - Dst: yypact_value_is_default
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1701,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1717,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1718,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1719,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1721,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1730,1
    - Dst: yyerror
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1756,1
    - Dst: YY_
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1756,1
    - Dst: YYTRANSLATE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1769,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1770,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1775,1
    - Dst: YY_STACK_PRINT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1776,1
    - Dst: yydestruct
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1779,1
    - Dst: YY_ACCESSING_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1780,1
    - Dst: YYPOPSTACK
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1781,1
    - Dst: YYSTACK_FREE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp:1785,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 409
    argCount: 1
    argNames:
    - context
    argTypes:
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 1789
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1789
    functionName: yyparse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_parser.cpp
    functionUses: 0
    functionsReached:
    - ReverseSubExpressions
    - YYDPRINTF
    - yylex
    - YYSTACK_BYTES
    - YYSTACK_FREE
    - yytable_value_is_error
    - yyoverflow
    - YY_ACCESSING_SYMBOL
    - ods_formula_node::ods_formula_node
    - YY_ASSERT
    - yyerror
    - YY_CAST
    - yydestruct
    - YYTRANSLATE
    - YY_
    - YYSTACK_RELOCATE
    - YYSIZEOF
    - YYSTYPE::PushSubExpression
    - YY_STACK_PRINT
    - YY_SYMBOL_PRINT
    - YY_REDUCE_PRINT
    - yypact_value_is_default
    - PushSubExpression
    - YYPOPSTACK
    - YYSTACK_ALLOC
    linkageType: ''
    returnType: int
    signature: int yyparse (ods_formula_parse_context *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:19,1
    - Dst: ods_formula_compile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:23,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:26,1
    - Dst: ods_formula_node*::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:27,1
    - Dst: ods_formula_node*::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:28,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:30,1
    - Dst: ods_formula_node*::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:31,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:35,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 42
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/testparser.cpp
    functionUses: 22
    functionsReached:
    - printf
    - ods_formula_compile
    - ods_formula_node*::Dump
    - ods_formula_node*::Evaluate
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poLayerIn
    argTypes:
    - OGRODSLayer*
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: OGRODS::ODSCellEvaluator::ODSCellEvaluator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ODSCellEvaluator(OGRODSLayer *poLayerIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:56,1
    - Dst: SetAdvertizeUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDSIn
    - pszName
    - bUpdatedIn
    argTypes:
    - OGRODSDataSource*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: OGRODS::OGRODSLayer::OGRODSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetAdvertizeUTF8
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRODSLayer::OGRODSLayer(OGRODSDataSource *poDSIn, const char
      *pszName,\n                         bool bUpdatedIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRODSLayer::~OGRODSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODSLayer::~OGRODSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:77,1
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - bUpdatedIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: OGRODS::OGRODSLayer::SetUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 6
    functionsReached:
    - OGRODS::OGRODSLayer::SetUpdated
    - GetUpdatable
    linkageType: ''
    returnType: void
    signature: void OGRODSLayer::SetUpdated(bool bUpdatedIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: OGRODS::OGRODSLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - FlushCache
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: OGRODS::OGRODSLayer::TranslateFIDFromMemLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRODSLayer::TranslateFIDFromMemLayer(GIntBig nFID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRODSLayer::TranslateFIDToMemLayer(GIntBig nFID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:128,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:131,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDFromMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:131,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:131,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: OGRODS::OGRODSLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - Evaluate
    - OGRMemLayer::GetNextFeature
    - OGRODS::OGRODSLayer::TranslateFIDFromMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODSLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:148,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:148,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: OGRODS::OGRODSLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    - OGRFeature*::SetFID
    - OGRMemLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRODSLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMemLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:161,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: OGRODS::OGRODSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::GetFeatureCount
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRODSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:171,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:174,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:175,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:177,1
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:183,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:184,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: OGRODS::OGRODSLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    - OGRODS::OGRODSLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::ISetFeature
    - GetFeatureRef
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:200,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:202,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:202,1
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:203,1
    - Dst: OGRMemLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:204,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: OGRODS::OGRODSLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    - OGRODS::OGRODSLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::IUpdateFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRODSLayer::IUpdateFeature(OGRFeature *poFeature,\n                                   int
      nUpdatedFieldsCount,\n                                   const int *panUpdatedFieldsIdx,\n
      \                                  int nUpdatedGeomFieldsCount,\n                                   const
      int *panUpdatedGeomFieldsIdx,\n                                   bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:217,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:220,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:221,1
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:223,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:224,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:225,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:226,1
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:230,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:231,1
    - Dst: OGRMemLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:232,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:233,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDFromMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:233,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: OGRODS::OGRODSLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    - OGRODS::OGRODSLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::ICreateFeature
    - OGRMemLayer::ISetFeature
    - GetFeatureRef
    - OGRODS::OGRODSLayer::TranslateFIDFromMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:243,1
    - Dst: OGRMemLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:244,1
    - Dst: OGRODS::OGRODSLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: OGRODS::OGRODSLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSLayer::TranslateFIDToMemLayer
    - OGRMemLayer::DeleteFeature
    - OGRODS::OGRODSLayer::SetUpdated
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: OGRODS::OGRODSLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:269,1
    - Dst: OGRMemLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: OGRODS::OGRODSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRMemLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRODSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: OGRODS::OGRODSLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRODSLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:292,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:293,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 303
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 303
    functionName: OGRODS::OGRODSDataSource::OGRODSDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLFetchNameValueDef
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::OGRODSDataSource(CSLConstList papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: OGRODSDataSource::~OGRODSDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::~OGRODSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:324,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:327,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:332,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:334,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:338,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 344
    functionName: OGRODS::OGRODSDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRODS::OGRODSDataSource::FlushCache
    - GDALDataset::Close
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRODSDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:353,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:357,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:359,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:361,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: OGRODS::OGRODSDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRODSDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::AnalyseFile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 381
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 381
    functionName: OGRODS::OGRODSDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::AnalyseFile
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRODSDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::AnalyseFile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: OGRODS::OGRODSDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::AnalyseFile
    linkageType: ''
    returnType: int
    signature: int OGRODSDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:401,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:402,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pszFilename
    - fpContentIn
    - fpSettingsIn
    - bUpdatableIn
    argTypes:
    - char*
    - VSILFILE*
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: OGRODS::OGRODSDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - CPL_TO_BOOL
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: "int OGRODSDataSource::Open(const char *pszFilename, VSILFILE *fpContentIn,\n
      \                          VSILFILE *fpSettingsIn, int bUpdatableIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 425
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: OGRODS::OGRODSDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: "int OGRODSDataSource::Create(const char *pszFilename,\n                             char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: OGRODS::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: "void startElementCbk(void *pUserData, const char *pszName,\n                                    const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::startElementDefault
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:448,1
    - Dst: OGRODS::OGRODSDataSource::startElementTable
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:451,1
    - Dst: OGRODS::OGRODSDataSource::startElementRow
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:454,1
    - Dst: OGRODS::OGRODSDataSource::startElementCell
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 465
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 465
    functionName: OGRODS::OGRODSDataSource::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::startElementRow
    - OGRODS::OGRODSDataSource::startElementCell
    - OGRODS::OGRODSDataSource::startElementDefault
    - OGRODS::OGRODSDataSource::startElementTable
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementCbk(const char *pszNameIn,\n                                       const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: OGRODS::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: void endElementCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::endElementTable
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:489,1
    - Dst: OGRODS::OGRODSDataSource::endElementRow
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:492,1
    - Dst: OGRODS::OGRODSDataSource::endElementCell
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 505
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 505
    functionName: OGRODS::OGRODSDataSource::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::endElementCell
    - OGRODS::OGRODSDataSource::endElementRow
    - OGRODS::OGRODSDataSource::endElementTable
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::endElementCbk(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: OGRODS::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: void dataHandlerCbk(void *pUserData, const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:524,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:526,1
    - Dst: OGRODS::OGRODSDataSource::dataHandlerTextP
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:544,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 549
    functionName: OGRODS::OGRODSDataSource::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRODS::OGRODSDataSource::dataHandlerTextP
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::dataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - eVal
    argTypes:
    - HandlerStateEnum
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: OGRODS::OGRODSDataSource::PushState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::PushState(HandlerStateEnum eVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ppszAttr
    - pszKey
    - pszDefaultVal
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 581
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 581
    functionName: OGRODS::GetAttributeValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: "char *GetAttributeValue(const char **ppszAttr, const char *pszKey,\n
      \                                    const char *pszDefaultVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:594,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:596,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:597,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:599,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:601,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:602,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:610,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:612,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:614,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:619,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:623,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - pszValue
    - pszValueType
    - eSubType
    argTypes:
    - char*
    - char*
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 630
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 630
    functionName: OGRODS::OGRODSDataSource::GetOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPL_INT64_FITS_ON_INT32
    - CPLAtoGIntBig
    - strcmp
    - strlen
    - CPLGetValueType
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType OGRODSDataSource::GetOGRFieldType(const char *pszValue,\n
      \                                              const char *pszValueType,\n                                               OGRFieldSubType
      &eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:641,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:646,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:647,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:650,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:651,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:655,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:656,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:660,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:661,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:667,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:669,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - poFeature
    - i
    - pszValue
    argTypes:
    - OGRFeature*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 674
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 674
    functionName: OGRODS::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - sscanf
    - static_cast<float>
    - OGRParseXMLDateTime
    - OGRFeature*::SetField
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: void SetField(OGRFeature *poFeature, int i, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:685,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:698,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:718,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:720,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:720,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:721,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:725,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:726,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:726,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:727,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:732,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:732,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 734
    functionName: OGRODS::OGRODSDataSource::DetectHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - empty
    - find
    - CPLDebug
    - EQUAL
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::DetectHeaderLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:743,1
    - Dst: OGRODSLayer::OGRODSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:748,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:749,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:755,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:756,1
    - Dst: OGRODS::OGRODSDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 760
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 760
    functionName: OGRODS::OGRODSDataSource::startElementDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - strcmp
    - OGRODSLayer::OGRODSLayer
    - resize
    - OGRODS::OGRODSDataSource::PushState
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementDefault(const char *pszNameIn,\n
      \                                          const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:769,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:771,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:772,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:781,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:794,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:802,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:803,1
    - Dst: OGRODS::OGRODSDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:805,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 807
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 807
    functionName: OGRODS::OGRODSDataSource::startElementTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - GetAttributeValue
    - atoi
    - strcmp
    - CPLError
    - resize
    - OGRODS::OGRODSDataSource::PushState
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementTable(const char *pszNameIn,\n
      \                                        const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:822,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:822,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:824,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:828,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:828,1
    - Dst: std::vector<std::string>::resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:830,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:833,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:834,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - poLayer
    - aosValues
    argTypes:
    - OGRLayer*
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 835
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 835
    functionName: OGRODS::ReserveAndLimitFieldCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - OGRLayer*::GetLayerDefn
    - CPLError
    - std::vector<std::string>::size
    - std::vector<std::string>::resize
    linkageType: ''
    returnType: void
    signature: "void ReserveAndLimitFieldCount(OGRLayer *poLayer,\n                                      std::vector<std::string>
      &aosValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:847,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:847,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:849,1
    - Dst: ReserveAndLimitFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:860,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:862,1
    - Dst: OGRODS::OGRODSDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:867,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:867,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:868,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:870,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:871,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:874,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:874,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:875,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:877,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:877,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:878,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:880,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:880,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:886,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:886,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:888,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:891,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:894,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:896,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:897,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:901,1
    - Dst: ODSCellEvaluator::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:904,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:910,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:915,1
    - Dst: reinterpret_cast<OGRMemLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:917,1
    - Dst: reinterpret_cast<OGRODSLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:919,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 924
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 924
    functionName: OGRODS::OGRODSDataSource::endElementTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - reinterpret_cast<OGRODSLayer *>
    - strcmp
    - STARTS_WITH
    - CPLGetConfigOption
    - SetField
    - ReserveAndLimitFieldCount
    - ResetReading
    - reinterpret_cast<OGRMemLayer *>
    - OGRODS::OGRODSDataSource::GetOGRFieldType
    - CreateFeature
    - GetLayerDefn
    - c_str
    - static_cast<int>
    - CPLTestBool
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - CreateField
    - CPL_IGNORE_RET_VAL
    - ODSCellEvaluator::Evaluate
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - size
    - OGRFeature*::GetFieldDefnRef
    - empty
    - GetNextFeature
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::endElementTable(\n    CPL_UNUSED /* in non-DEBUG*/
      const char *pszNameIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:932,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:940,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:953,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:963,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:964,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:966,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:974,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:975,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:977,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:988,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:989,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:991,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:992,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - wasLastCell
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 997
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 997
    functionName: OGRODS::OGRODSDataSource::FillRepeatedCells
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - empty
    - max
    - push_back
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::FillRepeatedCells(bool wasLastCell)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::FillRepeatedCells
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1006,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1008,1
    - Dst: OGRODS::OGRODSDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1010,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1012,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1024,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1029,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1036,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1042,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1044,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1051,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1053,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1054,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1056,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1059,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1060,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1064
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1064
    functionName: OGRODS::OGRODSDataSource::startElementRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - GetAttributeValue
    - OGRODS::OGRODSDataSource::FillRepeatedCells
    - empty
    - atoi
    - strcmp
    - push_back
    - STARTS_WITH
    - OGRODS::OGRODSDataSource::PushState
    - clear
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementRow(const char *pszNameIn,\n                                       const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1075,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1075,1
    - Dst: OGRODS::OGRODSDataSource::FillRepeatedCells
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1077,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1087,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1088,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1100,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1109,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1109,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1110,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1110,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1124,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1127,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1128,1
    - Dst: OGRODS::OGRODSDataSource::DetectHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1136,1
    - Dst: SetHasHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1138,1
    - Dst: ReserveAndLimitFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1140,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1144,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1148,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1151,1
    - Dst: OGRODS::OGRODSDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1153,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1153,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1154,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1158,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1159,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1164,1
    - Dst: OGRODS::OGRODSDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1170,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1170,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1171,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1173,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1174,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1177,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1177,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1178,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1180,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1180,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1181,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1183,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1183,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1191,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1192,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1194,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1196,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1197,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1198,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1199,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1201,1
    - Dst: ReserveAndLimitFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1208,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1210,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1211,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1212,1
    - Dst: OGRODS::OGRODSDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1218,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1218,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1219,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1221,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1222,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1229,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1231,1
    - Dst: OGRODS::OGRODSDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1234,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1235,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1236,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1238,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1239,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1240,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1261,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1262,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1263,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1267,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1271,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1274,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1276,1
    - Dst: AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1277,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1277,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1282,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1286,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1295,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1295,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1296,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1298,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1298,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1299,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1301,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1301,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 114
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1308
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1308
    functionName: OGRODS::OGRODSDataSource::endElementRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRODS::OGRODSDataSource::FillRepeatedCells
    - SetHasHeaderLine
    - strcmp
    - CPLError
    - SetField
    - ReserveAndLimitFieldCount
    - OGRODS::OGRODSDataSource::GetOGRFieldType
    - OGRFieldDefn*::GetSubType
    - resize
    - CreateFeature
    - GetLayerDefn
    - c_str
    - static_cast<int>
    - AlterFieldDefn
    - CPLSPrintf
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - CreateField
    - CPL_IGNORE_RET_VAL
    - OGRFieldDefn*::GetType
    - OGRFeature::OGRFeature
    - whileUnsealing
    - size
    - OGRODS::OGRODSDataSource::DetectHeaderLine
    - static_cast<size_t>
    - empty
    - OGRFieldDefn::SetType
    - GetFeatureCount
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::endElementRow(\n    CPL_UNUSED /*in non-DEBUG*/
      const char *pszNameIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1317,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1319,1
    - Dst: OGRODS::OGRODSDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1323
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1323
    functionName: OGRODS::OGRODSDataSource::startElementCell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - empty
    - OGRODS::OGRODSDataSource::PushState
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementCell(const char *pszNameIn,\n                                        const
      char ** /*ppszAttr*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1334,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1336
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1336
    functionName: OGRODS::OGRODSDataSource::endElementCell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::endElementCell(\n    CPL_UNUSED /*in non-DEBUG*/
      const char *pszNameIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1345
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1345
    functionName: OGRODS::OGRODSDataSource::dataHandlerTextP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::dataHandlerTextP(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::AnalyseSettings
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1358,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1360,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1361,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1363,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1364,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1372,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1381,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1382,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1382,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1384,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1387,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1387,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1388,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1388,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1389,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1389,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1395,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1400,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1409
    functionName: OGRODS::OGRODSDataSource::AnalyseFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - XML_GetCurrentColumnNumber
    - std::vector::size
    - VSIFCloseL
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - CPLError
    - OGRODS::OGRODSDataSource::AnalyseSettings
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::AnalyseFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1420
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1420
    functionName: OGRODS::startElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: "void startElementStylesCbk(void *pUserData, const char *pszName,\n
      \                                         const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1431,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1432,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1432,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1437,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1448,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1461
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1461
    functionName: OGRODS::OGRODSDataSource::startElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetAttributeValue
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void OGRODSDataSource::startElementStylesCbk(const char *pszNameIn,\n
      \                                            const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1470
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1470
    functionName: OGRODS::endElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: void endElementStylesCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1496
    functionName: OGRODS::OGRODSDataSource::endElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::endElementStylesCbk(const char * /*pszName*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRODSDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1507
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1507
    functionName: OGRODS::dataHandlerStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRODSDataSource *>
    linkageType: ''
    returnType: void
    signature: "void dataHandlerStylesCbk(void *pUserData, const char *data,\n                                         int
      nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1517,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1519,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1530
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1530
    functionName: OGRODS::OGRODSDataSource::dataHandlerStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - append
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::dataHandlerStylesCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1544,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1545,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1547,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1548,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1555,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1564,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1565,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1565,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1567,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1570,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1570,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1571,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1572,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1583,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1590
    functionName: OGRODS::OGRODSDataSource::AnalyseSettings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::AnalyseSettings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1606,1
    - Dst: OGRODS::OGRODSDataSource::AnalyseFile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1614,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1622,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1622,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1624,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1625,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1625,1
    - Dst: OGRODS::OGRODSDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1627,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1631,1
    - Dst: OGRODSLayer::OGRODSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1644,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1646,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pszLayerName
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1654
      start: 1596
    functionDepth: 2
    functionLinenumber: 1596
    functionLinenumberEnd: 1654
    functionName: OGRODS::OGRODSDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRODS::OGRODSDataSource::AnalyseFile
    - EQUAL
    - static_cast<OGRLayer **>
    - OGRODS::OGRODSDataSource::DeleteLayer
    - CPLRealloc
    - OGRODSLayer::OGRODSLayer
    - CPLError
    - GetName
    - CSLFetchNameValue
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRODSDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn * /*poGeomFieldDefn*/,\n
      \                              CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1668,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1682,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1682,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1688,1
    - Dst: OGRODS::OGRODSDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1696
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1696
    functionName: OGRODS::OGRODSDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - OGRODS::OGRODSDataSource::DeleteLayer
    - EQUAL
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRODSDataSource::DeleteLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRODS::OGRODSDataSource::AnalyseFile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1708,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1727
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1727
    functionName: OGRODS::OGRODSDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - OGRODS::OGRODSDataSource::AnalyseFile
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRODSDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1735,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1738,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1740,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1740,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 1746
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1746
    functionName: OGRODS::HasHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - CPLSPrintf
    - strcmp
    - OGRLayer*::GetLayerDefn
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: bool
    signature: bool HasHeaderLine(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1756,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1757,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1759,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1761,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1763,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1766,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1769,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1771,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1779,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1780,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1784,1
    - Dst: OGRGetXML_UTF8_EscapedString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1786,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1787,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1788,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1789,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1791,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1796,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1797,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1799,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1801,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1802,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1806,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1809,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1814,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1816,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1825,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1834,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1837,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1848,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1851,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1853,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1861,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1869,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1876,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1877,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1881,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1883,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1894,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1897,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1902,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1904,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1915,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1918,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1923,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1925,1
    - Dst: OGRGetXML_UTF8_EscapedString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1930,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1931,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1933,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1939,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1941,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1942,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1944,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1949,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1952,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1955,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1958,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 2
    argNames:
    - fp
    - poLayer
    argTypes:
    - VSILFILE*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 1959
      start: 1752
    functionDepth: 3
    functionLinenumber: 1752
    functionLinenumberEnd: 1959
    functionName: OGRODS::WriteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGetXML_UTF8_EscapedString
    - OGRFeatureDefn*::GetFieldCount
    - VSIFPrintfL
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsDateTime
    - OGR_GET_MS
    - static_cast<int>
    - OGRFeature*::GetFieldAsDouble
    - OGRLayer*::GetNextFeature
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::ResetReading
    - OGRFeature*::GetFieldCount
    - STARTS_WITH
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: void WriteLayer(VSILFILE *fp, OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1970,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1971,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1974,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1976,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1978,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1989,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1990,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1996,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1998,1
    - Dst: CPLCloseZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:1999,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2002,1
    - Dst: CPLWriteFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2003,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2005,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2005,1
    - Dst: CPLCloseZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2008,1
    - Dst: CPLCloseFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2011,1
    - Dst: CPLCloseZip
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2014,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2018,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2019,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2023,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2024,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2027,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2030,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2031,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2034,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2038,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2040,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2042,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2044,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2046,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2047,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2049,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2050,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2053,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2056,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2057,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2061,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2062,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2064,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2065,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2068,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2071,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2072,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2078,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2079,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2081,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2082,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2083,1
    - Dst: HasHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2087,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2091,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2094,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2095,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2098,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2101,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2104,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2106,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2109,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2112,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2113,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2114,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2115,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2116,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2117,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2118,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2120,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2121,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2124,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2127,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2128,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2133,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2134,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2136,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2137,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2138,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2139,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2141,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2142,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2145,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2148,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2149,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2161,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2162,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2163,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2165,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2168,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2169,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2171,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2174,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2175,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2177,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2178,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2179,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2180,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2181,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2182,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2183,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2184,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2185,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2186,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2187,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2188,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2189,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2190,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2192,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2193,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2194,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2195,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2196,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2197,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2198,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2199,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2200,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2201,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2202,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2203,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2204,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2206,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2207,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2208,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2209,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2210,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2211,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2212,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2213,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2214,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2215,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2216,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2218,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2219,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2223,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2227,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2231,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2235,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2236,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2237,1
    - Dst: WriteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2240,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2242,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2243,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2244,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2245,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2248,1
    - Dst: reinterpret_cast<OGRODSLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2254,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 176
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 2258
    functionName: OGRODS::OGRODSDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLCloseZip
    - WriteLayer
    - reinterpret_cast<OGRODSLayer *>
    - HasHeaderLine
    - CPLCreateFileInZip
    - CPLCloseFileInZip
    - CPLError
    - strlen
    - VSIFPrintfL
    - static_cast<int>
    - VSIUnlink
    - CPLSPrintf
    - VSIFOpenL
    - CPLAssert
    - CPLWriteFileInZip
    - CPLFree
    - VSIStatL
    - VSIFCloseL
    - CSLDestroy
    - VSIGetLastErrorMsg
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRODSDataSource::FlushCache(bool /* bAtClosing */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2267,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2270,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2275,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2278,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2285,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2287,1
    - Dst: GetNextFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2298,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2300,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2306,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2308,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2308,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2310,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2312,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2313,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2313,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2315,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2317,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2318,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2318,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2322,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2323,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2323,1
    - Dst: OGRODS::ODSCellEvaluator::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2328,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2331,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2336,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2340,1
    - Dst: GetNextFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2341,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2343,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2345,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2345,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2347,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2350,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2350,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2351,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2353,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2356,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2356,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2357,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2361,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2362,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2362,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2364,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2364,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2367,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2368,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2368,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2368,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2370,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2371,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2371,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2377,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2377,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2380,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2381,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2381,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2381,1
    - Dst: std::vector<ods_formula_node>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2383,1
    - Dst: ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2383,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2383,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2391,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 5
    argNames:
    - nRow1
    - nCol1
    - nRow2
    - nCol2
    - aoOutValues
    argTypes:
    - int
    - int
    - int
    - int
    - std::vector<ods_formula_node>
    constantsTouched: []
    func_position:
      end: 2394
      start: 2264
    functionDepth: 3
    functionLinenumber: 2264
    functionLinenumberEnd: 2394
    functionName: OGRODS::ODSCellEvaluator::EvaluateRange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - GetLayerDefn
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRODS::ODSCellEvaluator::Evaluate
    - ods_formula_node
    - SetNextByIndex
    - GetNextFeatureWithoutFIDHack
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetFieldAsString
    - CPLAtofM
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - GetFeatureCount
    - std::vector<ods_formula_node>::push_back
    - CPLGetValueType
    linkageType: ''
    returnType: int
    signature: "int ODSCellEvaluator::EvaluateRange(int nRow1, int nCol1, int nRow2,
      int nCol2,\n                                    std::vector<ods_formula_node>
      &aoOutValues)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2402,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2402,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2402,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2404,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2410,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2410,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2412,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2414,1
    - Dst: GetNextFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2419,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2420,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2421,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2424,1
    - Dst: ods_formula_compile
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2426,1
    - Dst: ods_formula_node*::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2427,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2433,1
    - Dst: GetNextFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2434,1
    - Dst: OGRFeature*::UnsetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2438,1
    - Dst: SetFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2439,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2443,1
    - Dst: SetFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2444,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2448,1
    - Dst: SetFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2449,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2453,1
    - Dst: SetFeatureWithoutFIDHack
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp:2454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - nRow
    - nCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2464
      start: 2400
    functionDepth: 3
    functionLinenumber: 2400
    functionLinenumberEnd: 2464
    functionName: OGRODS::ODSCellEvaluator::Evaluate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ogrodsdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::IsFieldSetAndNotNull
    - end
    - SetFeatureWithoutFIDHack
    - ods_formula_node*::Evaluate
    - insert
    - find
    - std::pair
    - SetNextByIndex
    - GetNextFeatureWithoutFIDHack
    - ods_formula_compile
    - OGRFeature*::SetField
    - CPLError
    - STARTS_WITH
    - OGRFeature*::UnsetField
    linkageType: ''
    returnType: int
    signature: int ODSCellEvaluator::Evaluate(int nRow, int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ods_formula_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nValueIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ods_formula_node(int nValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dfValueIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ods_formula_node(double dfValueIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszValueIn
    - field_type_in
    argTypes:
    - char*
    - ods_formula_field_type
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void ods_formula_node::ods_formula_node(const char *pszValueIn,\n
      \                                  ods_formula_field_type field_type_in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eOpIn
    argTypes:
    - ods_formula_op
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ods_formula_node(ods_formula_op eOpIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:83,1
    - Dst: static_cast<ods_formula_node **>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:89,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:90,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - ods_formula_node
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: ods_formula_node::ods_formula_node
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 2
    functionsReached:
    - ods_formula_node::ods_formula_node
    - CPLMalloc
    - static_cast<ods_formula_node **>
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ods_formula_node(const ods_formula_node &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:105,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: ods_formula_node::~ods_formula_node()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - ods_formula_node::FreeSubExpr
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::~ods_formula_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ods_formula_node **>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:117,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - child
    argTypes:
    - ods_formula_node*
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: ods_formula_node::PushSubExpression
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - static_cast<ods_formula_node **>
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::PushSubExpression(ods_formula_node *child)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: ods_formula_node::ReverseSubExpressions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::ReverseSubExpressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ODSGetSingleOpEntry
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 68
    argCount: 1
    argNames:
    - eOp
    argTypes:
    - ods_formula_op
    constantsTouched: []
    func_position:
      end: 221
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 221
    functionName: ODSGetOperatorName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - ODSGetSingleOpEntry
    linkageType: ''
    returnType: char
    signature: char *ODSGetOperatorName(ods_formula_op eOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:240,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:242,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:244,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:248,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:250,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:250,1
    - Dst: ods_formula_node::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - fp
    - depth
    argTypes:
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 254
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 254
    functionName: ods_formula_node::Dump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - ODSGetOperatorName
    - ods_formula_node::Dump
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::Dump(FILE *fp, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: ods_formula_node::FreeSubExpr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ods_formula_node::FreeSubExpr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:278,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:286,1
    - Dst: ods_formula_node::EvaluateOR
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:293,1
    - Dst: ods_formula_node::EvaluateAND
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:296,1
    - Dst: ods_formula_node::EvaluateNOT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:299,1
    - Dst: ods_formula_node::EvaluateIF
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:302,1
    - Dst: ods_formula_node::EvaluateLEN
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:313,1
    - Dst: ods_formula_node::EvaluateLEFT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:316,1
    - Dst: ods_formula_node::EvaluateRIGHT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:319,1
    - Dst: ods_formula_node::EvaluateMID
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:322,1
    - Dst: ods_formula_node::EvaluateListArgOp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:331,1
    - Dst: ods_formula_node::EvaluateSingleArgOp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:345,1
    - Dst: ods_formula_node::EvaluateEQ
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:349,1
    - Dst: ods_formula_node::EvaluateNE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:352,1
    - Dst: ods_formula_node::EvaluateLE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:355,1
    - Dst: ods_formula_node::EvaluateGE
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:358,1
    - Dst: ods_formula_node::EvaluateLT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:361,1
    - Dst: ods_formula_node::EvaluateGT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:364,1
    - Dst: ods_formula_node::EvaluateBinaryArithmetic
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:372,1
    - Dst: ods_formula_node::EvaluateCONCAT
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:376,1
    - Dst: ods_formula_node::EvaluateCELL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:380,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:385,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:387,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 394
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 394
    functionName: ods_formula_node::Evaluate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - ods_formula_node::EvaluateNOT
    - ods_formula_node::EvaluateLEFT
    - ods_formula_node::EvaluateAND
    - ods_formula_node::EvaluateCONCAT
    - ods_formula_node::EvaluateCELL
    - ods_formula_node::EvaluateMID
    - ods_formula_node::EvaluateSingleArgOp
    - CPLError
    - ods_formula_node::EvaluateGT
    - ods_formula_node::EvaluateBinaryArithmetic
    - ods_formula_node::EvaluateOR
    - ODSGetOperatorName
    - ods_formula_node::EvaluateIF
    - ods_formula_node::EvaluateListArgOp
    - ods_formula_node::EvaluateGE
    - ods_formula_node::EvaluateLT
    - ods_formula_node::EvaluateNE
    - ods_formula_node::EvaluateLEN
    - CPLAssert
    - ods_formula_node::EvaluateRIGHT
    - ods_formula_node::EvaluateEQ
    - ods_formula_node::EvaluateLE
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::Evaluate(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:402,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:403,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:405,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:406,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:407,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:411,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:413,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:426,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:427,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 439
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 439
    functionName: ods_formula_node::EvaluateOR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateOR(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:447,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:448,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:450,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:451,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:452,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:456,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:471,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:472,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 484
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 484
    functionName: ods_formula_node::EvaluateAND
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateAND(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:492,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:493,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:495,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:496,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:498,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:511,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:512,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 523
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 523
    functionName: ods_formula_node::EvaluateNOT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateNOT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:531,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:532,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:534,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:535,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:537,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:539,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:542,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:543,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:546,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:559,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:560,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:599,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 602
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 602
    functionName: ods_formula_node::EvaluateIF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateIF(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:610,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:611,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:613,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:614,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:616,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:619,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:620,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:651,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:657,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:658,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:666,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 669
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 669
    functionName: ods_formula_node::EvaluateEQ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - strcmp
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateEQ(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:677,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:678,1
    - Dst: ods_formula_node::EvaluateEQ
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 686
      start: 675
    functionDepth: 4
    functionLinenumber: 675
    functionLinenumberEnd: 686
    functionName: ods_formula_node::EvaluateNE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::EvaluateEQ
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateNE(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 724
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 724
    functionName: GetCase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CaseType
    signature: CaseType GetCase(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:732,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:733,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:735,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:736,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:738,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:741,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:742,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:777,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:778,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:779,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:782,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:788,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:789,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:797,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 800
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 800
    functionName: ods_formula_node::EvaluateLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - GetCase
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - strcmp
    - CPLError
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateLE(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:808,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:809,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:811,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:812,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:814,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:817,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:818,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:849,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:850,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:851,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:854,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:862,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:863,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:871,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 874
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 874
    functionName: ods_formula_node::EvaluateGE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - GetCase
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - strcmp
    - CPLError
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateGE(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:882,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:883,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:885,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:886,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:888,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:891,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:892,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:927,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:928,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:929,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:938,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:939,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:947,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 950
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 950
    functionName: ods_formula_node::EvaluateLT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - GetCase
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - strcmp
    - CPLError
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateLT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:958,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:959,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:961,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:962,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:964,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:967,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:968,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:999,1
    - Dst: GetCase
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1000,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1001,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1004,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1012,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1013,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1021,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1024
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 1024
    functionName: ods_formula_node::EvaluateGT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - GetCase
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - strcmp
    - CPLError
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateGT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1032,1
    - Dst: ODSGetSingleOpEntry
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1034,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1035,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1037,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1038,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1041,1
    - Dst: SingleOpStruct*::pfnEval
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1046,1
    - Dst: SingleOpStruct*::pfnEval
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1050,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1054,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1066
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1066
    functionName: ods_formula_node::EvaluateSingleArgOp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::Evaluate
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - ODSGetSingleOpEntry
    - CPLError
    - SingleOpStruct*::pfnEval
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateSingleArgOp(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1074,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1075,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1077,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1078,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1080,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1083,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1084,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1093,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1099,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1100,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1099,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1106,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1113,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1114,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1113,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1120,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1127,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1128,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1127,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1134,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1143,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1144,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1143,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1151,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1173,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1199,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1200,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1216,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1240,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1246,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1253,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1259,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1260,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1266,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1267,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 123
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1270
    functionName: ods_formula_node::EvaluateBinaryArithmetic
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - v
    - fmod
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - CPLError
    - CPLSM
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateBinaryArithmetic(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1281,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1297
    functionName: ods_formula_node::TransformToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - CPLsnprintf
    - snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string ods_formula_node::TransformToString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1305,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1306,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1308,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1309,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1311,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1314,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1315,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1317,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1318,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1322,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1322,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1327
      start: 1303
    functionDepth: 3
    functionLinenumber: 1303
    functionLinenumberEnd: 1327
    functionName: ods_formula_node::EvaluateCONCAT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::TransformToString
    - c_str
    - ods_formula_node::Evaluate
    - CPLStrdup
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateCONCAT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1337,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1349,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1352,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pszCell
    - nRow
    - nCol
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1361
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1361
    functionName: GetRowCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - atoi
    linkageType: ''
    returnType: bool
    signature: bool GetRowCol(const char *pszCell, int &nRow, int &nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1369,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1370,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1372,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1373,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1374,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1386,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1387,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1390,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1393,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1396,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1402,1
    - Dst: GetRowCol
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1413,1
    - Dst: GetRowCol
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1417,1
    - Dst: IODSCellEvaluator*::EvaluateRange
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1421,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1424,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1430,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1437,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1452,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1455,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1460,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1467,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1480,1
    - Dst: ODSGetOperatorName
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1481,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1493,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1503,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1513,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1522,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1526,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1529,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1533,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1539,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1540,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1550,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1551,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1567,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 121
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1570
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1570
    functionName: ods_formula_node::EvaluateListArgOp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - ODSGetOperatorName
    - ods_formula_node::Evaluate
    - std::vector::size
    - GetRowCol
    - IODSCellEvaluator*::EvaluateRange
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    - std::vector::empty
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateListArgOp(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1578,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1579,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1581,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1582,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1587,1
    - Dst: GetRowCol
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1593,1
    - Dst: IODSCellEvaluator*::EvaluateRange
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1597,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1598,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1602,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1617
      start: 1576
    functionDepth: 2
    functionLinenumber: 1576
    functionLinenumberEnd: 1617
    functionName: ods_formula_node::EvaluateCELL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - std::vector::size
    - GetRowCol
    - IODSCellEvaluator*::EvaluateRange
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateCELL(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1625,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1627,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1628,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1631,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1633,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1637,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1637,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1642
      start: 1623
    functionDepth: 3
    functionLinenumber: 1623
    functionLinenumberEnd: 1642
    functionName: ods_formula_node::EvaluateLEN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::TransformToString
    - static_cast<int>
    - ods_formula_node::Evaluate
    - std::string::size
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateLEN(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1650,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1652,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1653,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1655,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1658,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1659,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1661,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1671,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1675,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1675,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1680
      start: 1648
    functionDepth: 3
    functionLinenumber: 1648
    functionLinenumberEnd: 1680
    functionName: ods_formula_node::EvaluateLEFT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::TransformToString
    - ods_formula_node::Evaluate
    - CPLStrdup
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - std::string::substr
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateLEFT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1688,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1690,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1691,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1693,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1696,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1697,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1699,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1711,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1715,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1715,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1720
      start: 1686
    functionDepth: 3
    functionLinenumber: 1686
    functionLinenumberEnd: 1720
    functionName: ods_formula_node::EvaluateRIGHT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::TransformToString
    - ods_formula_node::Evaluate
    - CPLStrdup
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - std::string::substr
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateRIGHT(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1728,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1730,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1731,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1733,1
    - Dst: ods_formula_node::Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1735,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1738,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1739,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1740,1
    - Dst: ods_formula_node::TransformToString
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1742,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1762,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1764,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1771,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1771,1
    - Dst: ods_formula_node::FreeSubExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp:1773,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - poEvaluator
    argTypes:
    - IODSCellEvaluator*
    constantsTouched: []
    func_position:
      end: 1776
      start: 1726
    functionDepth: 3
    functionLinenumber: 1726
    functionLinenumberEnd: 1776
    functionName: ods_formula_node::EvaluateMID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula_node.cpp
    functionUses: 1
    functionsReached:
    - ods_formula_node::TransformToString
    - ods_formula_node::Evaluate
    - CPLStrdup
    - ods_formula_node::FreeSubExpr
    - CPLAssert
    - std::string::substr
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool ods_formula_node::EvaluateMID(IODSCellEvaluator *poEvaluator)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: IODSCellEvaluator::~IODSCellEvaluator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IODSCellEvaluator::~IODSCellEvaluator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: ODSGetSingleOpEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: SingleOpStruct
    signature: SingleOpStruct *ODSGetSingleOpEntry(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - eOp
    argTypes:
    - ods_formula_op
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: ODSGetSingleOpEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SingleOpStruct
    signature: SingleOpStruct *ODSGetSingleOpEntry(ods_formula_op eOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:130,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:131,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:172,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:172,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:173,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:175,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:175,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:179,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:180,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:181,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:181,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:183,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:183,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:192,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:192,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:201,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:208,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:213,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:215,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:219,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:221,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:223,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:225,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:229,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:236,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:249,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:251,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:254,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:256,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:259,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:261,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:266,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:268,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:273,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:278,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:283,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:285,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:288,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:290,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:293,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:298,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:300,1
    - Dst: ODSGetSingleOpEntry
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:306,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:309,1
    - Dst: ods_formula_node::ods_formula_node
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:314,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 145
    argCount: 2
    argNames:
    - ppNode
    - context
    argTypes:
    - YYSTYPE*
    - ods_formula_parse_context*
    constantsTouched: []
    func_position:
      end: 330
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 330
    functionName: ods_formulalex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - static_cast<int>
    - static_cast<unsigned char>
    - CPLAtoGIntBig
    - EQUAL
    - CPLString::size
    - strstr
    - ods_formula_node::ods_formula_node
    - CPLFree
    - ODSGetSingleOpEntry
    - isalnum
    linkageType: ''
    returnType: int
    signature: int ods_formulalex(YYSTYPE *ppNode, ods_formula_parse_context *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ods_formula_parse_context::ods_formula_parse_context
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:340,1
    - Dst: ods_formulaparse
      Src: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - expr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 353
    functionName: ods_formula_compile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.cpp
    functionUses: 2
    functionsReached:
    - ods_formulaparse
    - ods_formula_parse_context::ods_formula_parse_context
    linkageType: ''
    returnType: ods_formula_node
    signature: ods_formula_node *ods_formula_compile(const char *expr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: ods_formula_parse_context::ods_formula_parse_context
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ods/ods_formula.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ods_formula_parse_context()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:26,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:30,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:30,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:39,1
    - Dst: OGRJMLLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:39,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszLayerName
    - poDSIn
    - fpIn
    argTypes:
    - char*
    - OGRJMLDataset*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: OGRJMLLayer::OGRJMLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRJMLLayer::GetName
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - static_cast<char *>
    - SetDescription
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: "void OGRJMLLayer::OGRJMLLayer(const char *pszLayerName, OGRJMLDataset
      *poDSIn,\n                         VSILFILE *fpIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:51,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:52,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:54,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: OGRJMLLayer::~OGRJMLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - XML_ParserFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::~OGRJMLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJMLLayer::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: OGRJMLLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRJMLLayer::LoadSchema
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRJMLLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRJMLLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRJMLLayer *>
    linkageType: ''
    returnType: void
    signature: "void startElementCbk(void *pUserData, const char *pszName,\n                                    const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRJMLLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRJMLLayer *>
    linkageType: ''
    returnType: void
    signature: void endElementCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRJMLLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRJMLLayer *>
    linkageType: ''
    returnType: void
    signature: void dataHandlerCbk(void *pUserData, const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:101,1
    - Dst: VSIFClearErrL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:102,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:104,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:106,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:107,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:108,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 129
    functionName: OGRJMLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFClearErrL
    - XML_SetElementHandler
    - VSIFSeekL
    - XML_ParserFree
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:143,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:154,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:154,1
    - Dst: OGRJMLColumn::osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:163,1
    - Dst: OGRJMLColumn::osAttributeName::compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:165,1
    - Dst: OGRJMLColumn::osAttributeValue::compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:166,1
    - Dst: OGRJMLColumn::osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:177,1
    - Dst: OGRJMLColumn::osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:187,1
    - Dst: OGRJMLColumn::osAttributeName::compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:189,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:193,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:193,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:203,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:204,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:204,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:209,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:210,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:210,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:211,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:212,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:212,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:213,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:217,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:220,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:223,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:226,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 55
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 232
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 232
    functionName: OGRJMLLayer::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRJMLColumn::osAttributeValue::compare
    - OGRJMLLayer::AddStringToElementValue
    - compare
    - OGRJMLColumn::osAttributeName::empty
    - strlen
    - OGRFeature::OGRFeature
    - OGRJMLColumn::osAttributeName::compare
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::startElementCbk(const char *pszName, const char **ppszAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: OGRJMLLayer::StopAccumulate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::StopAccumulate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:261,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:263,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:265,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:269,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:270,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:270,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:270,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:271,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:278,1
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:278,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:280,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:281,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:286,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:290,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:296,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:300,1
    - Dst: GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:301,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:302,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:302,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:306,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:306,1
    - Dst: SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:310,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:311,1
    - Dst: SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:315,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:316,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:320,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:322,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:323,1
    - Dst: static_cast<OGRFeature **>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:325,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:325,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 343
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 343
    functionName: OGRJMLLayer::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRFeature **>
    - sscanf
    - SetField
    - OGRJMLLayer::StopAccumulate
    - SetStyleString
    - CPLRealloc
    - strlen
    - OGR_G_CreateFromGML
    - wkbFlatten
    - GetFieldAsString
    - SetFieldNull
    - OGRGeometry*::getGeometryType
    - static_cast<int>
    - FromHandle
    - Evaluate
    - FilterGeometry
    - CPLSPrintf
    - GetGeometryRef
    - OGRGeometry*::IsEmpty
    - OGRJMLLayer::AddStringToElementValue
    - SetFID
    - GetStyleString
    - SetGeometryDirectly
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::endElementCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:353,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:355,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:365,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 375
    functionName: OGRJMLLayer::AddStringToElementValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - memcpy
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::AddStringToElementValue(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:389,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:391,1
    - Dst: OGRJMLLayer::AddStringToElementValue
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 402
    functionName: OGRJMLLayer::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - XML_StopParser
    - OGRJMLLayer::AddStringToElementValue
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::dataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJMLLayer::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:411,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:421,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:421,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:437,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:438,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:440,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:443,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:443,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:444,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:454,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 460
    functionName: OGRJMLLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFEofL
    - XML_Parse
    - XML_ErrorString
    - std::vector::size
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - VSIFErrorL
    - OGRJMLLayer::LoadSchema
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRJMLLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRJMLLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 468
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 468
    functionName: startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRJMLLayer *>
    linkageType: ''
    returnType: void
    signature: "void startElementLoadSchemaCbk(void *pUserData,\n                                              const
      char *pszName,\n                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRJMLLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<OGRJMLLayer *>
    linkageType: ''
    returnType: void
    signature: "void endElementLoadSchemaCbk(void *pUserData,\n                                            const
      char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:488,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:489,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:491,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:492,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:494,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:503,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:504,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:506,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:509,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:509,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:510,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:510,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:511,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:511,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:518,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:523,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:528,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:528,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:529,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:531,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:537,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:539,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:541,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:542,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:542,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:543,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:544,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:546,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:547,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:548,1
    - Dst: OGRJMLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 563
    functionName: OGRJMLLayer::LoadSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - std::vector::size
    - GetGeomFieldDefn
    - XML_ParserFree
    - OGRSpatialReference*::Release
    - OGRCreateExpatXMLParser
    - CPLError
    - OGRJMLLayer::ResetReading
    - OGRSpatialReference*::SetAxisMappingStrategy
    - XML_ErrorString
    - find
    - XML_GetCurrentLineNumber
    - OGRSpatialReference*::importFromEPSG
    - strlen
    - XML_SetUserData
    - XML_GetCurrentColumnNumber
    - std::vector::data
    - static_cast<int>
    - VSIFSeekL
    - XML_GetErrorCode
    - substr
    - OGRSpatialReference::OGRSpatialReference
    - XML_SetElementHandler
    - XML_Parse
    - empty
    - XML_SetCharacterDataHandler
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::LoadSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:578,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:583,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:589,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:595,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:600,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:612,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:617,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:622,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:627,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:629,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:631,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:636,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:641,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:642,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:643,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:651,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:657,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:662,1
    - Dst: compare
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:670,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 74
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 676
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 676
    functionName: OGRJMLLayer::startElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - compare
    linkageType: ''
    returnType: void
    signature: "void OGRJMLLayer::startElementLoadSchemaCbk(const char *pszName,\n
      \                                           const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:700,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:701,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:703,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:710,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:710,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:712,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:719,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:719,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:721,1
    - Dst: osName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:726,1
    - Dst: osType::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:728,1
    - Dst: osElementName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:730,1
    - Dst: osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:734,1
    - Dst: osAttributeValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:735,1
    - Dst: osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:737,1
    - Dst: osAttributeValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:738,1
    - Dst: osAttributeName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:748,1
    - Dst: osAttributeValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:757,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:759,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:761,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:766,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:768,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:769,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:773,1
    - Dst: osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:777,1
    - Dst: osType::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:777,1
    - Dst: osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:778,1
    - Dst: osAttributeName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:779,1
    - Dst: osAttributeValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:780,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:781,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:791,1
    - Dst: osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:791,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:793,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:800,1
    - Dst: osType::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:800,1
    - Dst: OGRJMLLayer::StopAccumulate
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:802,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 804
    functionName: OGRJMLLayer::endElementLoadSchemaCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - osAttributeName::c_str
    - OGRJMLLayer::StopAccumulate
    - static_cast<int>
    - osType::c_str
    - osName::c_str
    - osAttributeValue::c_str
    - osAttributeName::empty
    - osName::empty
    - CPLDebug
    - GetFieldCount
    - EQUAL
    - osElementName::empty
    - osElementName::c_str
    - AddFieldDefn
    - osAttributeValue::empty
    - push_back
    - osType::empty
    linkageType: ''
    returnType: void
    signature: void OGRJMLLayer::endElementLoadSchemaCbk(const char * /* pszName */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:813,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: OGRJMLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmllayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRJMLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:28,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:33,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:33,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:34,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:40,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 7
    argNames:
    - pszLayerName
    - poSRS
    - poDSIn
    - fpIn
    - bAddRGBFieldIn
    - bAddOGRStyleFieldIn
    - bClassicGMLIn
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRJMLDataset*
    - VSILFILE*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: OGRJMLWriterLayer::OGRJMLWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - OGRFeatureDefn::OGRFeatureDefn
    - EQUAL
    - Reference
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRJMLWriterLayer::OGRJMLWriterLayer(const char *pszLayerName,\n
      \                                    OGRSpatialReference *poSRS,\n                                     OGRJMLDataset
      *poDSIn, VSILFILE *fpIn,\n                                     bool bAddRGBFieldIn,\n
      \                                    bool bAddOGRStyleFieldIn,\n                                     bool
      bClassicGMLIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:69,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:78,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:82,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:83,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:86,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:89,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:93,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:95,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:97,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: OGRJMLWriterLayer::~OGRJMLWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIFPrintfL
    - VSIFSeekL
    - CPLsnprintf
    - IsInit
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRJMLWriterLayer::~OGRJMLWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:111,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:122,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pszName
    - pszType
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 133
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 133
    functionName: OGRJMLWriterLayer::WriteColumnDeclaration
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRJMLWriterLayer::WriteColumnDeclaration(const char *pszName,\n
      \                                              const char *pszType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:145,1
    - Dst: OGRJMLWriterLayer::WriteColumnDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:147,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:149,1
    - Dst: OGRJMLWriterLayer::WriteColumnDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:151,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:153,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:160,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:160,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:162,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:166,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:167,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:172,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:179,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:180,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:183,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:184,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:187,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:190,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:191,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:194,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:195,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:199,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:202,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:205,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:210,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:212,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:213,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:216,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:221,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:222,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:233,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:237,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:238,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:241,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:251,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:252,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:255,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:257,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:262,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:262,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:266,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:268,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:269,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:273,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:276,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:278,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:279,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:283,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:284,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:287,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:289,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:293,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:296,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:298,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:299,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:302,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:302,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:303,1
    - Dst: OGRStyleMgr::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:304,1
    - Dst: OGRStyleMgr::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:305,1
    - Dst: OGRStyleMgr::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:307,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:311,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:315,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:320,1
    - Dst: cpl::down_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:324,1
    - Dst: OGRStyleTool*::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:331,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:334,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:341,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:343,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:346,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:348,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:350,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 110
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 353
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 353
    functionName: OGRJMLWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - GetDescription
    - OGRFeature*::GetFieldAsString
    - OGRStyleMgr::OGRStyleMgr
    - VSIFTellL
    - GetFieldDefn
    - GetFieldIndex
    - OGR_GET_MS
    - OGRStyleMgr::GetPartCount
    - OGRJMLWriterLayer::WriteColumnDeclaration
    - OGRFeature*::GetStyleString
    - std::abs
    - OGRStyleTool*::GetRGBFromString
    - cpl::down_cast<OGRStyleBrush *>
    - cpl::down_cast<OGRStylePen *>
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - VSIFPrintfL
    - c_str
    - OGRStyleMgr::InitFromFeature
    - OGRFeature*::GetFieldCount
    - CPLFree
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - OGRFeature*::GetGeometryRef
    - OGRStyleTool*::GetType
    - EQUAL
    - OGRStyleMgr::GetPart
    - Merge
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRJMLWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:365,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:365,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:392,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:399,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:401,1
    - Dst: OGRJMLWriterLayer::WriteColumnDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:407,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:407,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:409,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - poFieldDefn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 411
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 411
    functionName: OGRJMLWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - OGRJMLWriterLayer::WriteColumnDeclaration
    - strcmp
    - OGRFieldDefn*::GetType
    - OGRFieldDefn::GetFieldTypeName
    - AddFieldDefn
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRJMLWriterLayer::CreateField(const OGRFieldDefn *poFieldDefn,\n
      \                                     int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 428
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 428
    functionName: OGRJMLWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRJMLWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: OGRJMLWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmlwriterlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRJMLWriterLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: OGRJMLColumn::OGRJMLColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJMLColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJMLLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: OGRJMLLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 2
    functionsReached:
    - OGRJMLLayer::GetName
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: OGRJMLLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: OGRJMLWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: OGRJMLWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: OGRJMLWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: OGRJMLDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogr_jml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: OGRJMLDataset::OGRJMLDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRJMLDataset::OGRJMLDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: OGRJMLDataset::~OGRJMLDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRJMLDataset::~OGRJMLDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:51,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: OGRJMLDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRJMLDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: OGRJMLDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRJMLDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:79,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: OGRJMLDataset::Identify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRJMLDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJMLDataset::Identify
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:90,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:95,1
    - Dst: OGRJMLDataset::OGRJMLDataset
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:100,1
    - Dst: OGRJMLDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:101,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:107,1
    - Dst: OGRJMLLayer::OGRJMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: OGRJMLDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRJMLDataset::Identify
    - OGRJMLLayer::OGRJMLLayer
    - CPLGetBasenameSafe
    - OGRJMLDataset*::SetDescription
    - CPLError
    - OGRJMLDataset::OGRJMLDataset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRJMLDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:122,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:132,1
    - Dst: OGRJMLDataset::OGRJMLDataset
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:139,1
    - Dst: OGRJMLDataset*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:145,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 157
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 157
    functionName: OGRJMLDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - VSIFOpenL
    - strcmp
    - OGRJMLDataset*::SetDescription
    - CPLError
    - OGRJMLDataset::OGRJMLDataset
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRJMLDataset::Create(const char *pszFilename, int /*
      nXSize */,\n                                   int /* nYSize */, int /* nBands
      */,\n                                   GDALDataType /* eDT */,\n                                   char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:178,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:181,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:182,1
    - Dst: OGRJMLWriterLayer::OGRJMLWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:185,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: OGRJMLDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference*::Release
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRJMLWriterLayer::OGRJMLWriterLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRJMLDataset::ICreateLayer(const char *pszLayerName,\n
      \                                     const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:199,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:202,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:204,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:205,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:206,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:207,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:208,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:209,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:210,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:211,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:213,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:214,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:215,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:216,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:217,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:219,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:228,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:231,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 239
    functionName: RegisterOGRJML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/jml/ogrjmldataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRJML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:28,1
    - Dst: MIN
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:28,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:28,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGROCIDataSource*
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: OGROCIWritableLayer::OGROCIWritableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - MIN
    - atoi
    - MAX
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::OGROCIWritableLayer(OGROCIDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:55,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:56,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: OGROCIWritableLayer::~OGROCIWritableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::~OGROCIWritableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dfOrd
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: OGROCIWritableLayer::PushOrdinal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::PushOrdinal(double dfOrd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - nOffset
    - nEType
    - nInterp
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: OGROCIWritableLayer::PushElemInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::PushElemInfo(int nOffset, int nEType, int
      nInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:107,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:107,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:111,1
    - Dst: OGROCIWritableLayer::PushElemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:113,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:115,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:115,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:116,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:116,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:118,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:118,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:125,1
    - Dst: OGROCIWritableLayer::PushElemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:128,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:130,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:132,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:132,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:133,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:133,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:135,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:135,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:142,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:145,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:151,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:153,1
    - Dst: OGROCIWritableLayer::PushElemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:156,1
    - Dst: OGROCIWritableLayer::PushElemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:158,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:160,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:161,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:163,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:166,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:166,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:167,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:167,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:169,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:169,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:174,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:176,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:176,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:177,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:177,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:179,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:179,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 192
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 192
    functionName: OGROCIWritableLayer::TranslateElementGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getY
    - OGRLinearRing*::getY
    - OGRLinearRing*::isClockwise
    - OGRLineString*::getNumPoints
    - OGRPolygon*::getNumInteriorRings
    - OGRLinearRing*::getX
    - OGRLineString*::getZ
    - OGRLineString*::getY
    - OGRLineString*::getX
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRLinearRing*::getNumPoints
    - OGRPoint*::getX
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toLineString
    - OGRPoint*::getZ
    - OGRLinearRing*::getZ
    - OGROCIWritableLayer::PushElemInfo
    - OGROCIWritableLayer::PushOrdinal
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCIWritableLayer::TranslateElementGroup(OGRGeometry *poGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:204,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:208,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psFldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: OGROCIWritableLayer::ReportTruncation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFieldDefn*::GetNameRef
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::ReportTruncation(OGRFieldDefn *psFldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:222,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: OGROCIWritableLayer::SetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::SetOptions(CSLConstList papszOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:234,1
    - Dst: OGROCISession*::CleanName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:247,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:248,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:249,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:255,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:257,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:258,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:259,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:261,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:263,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:265,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:266,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:267,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:269,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:271,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:273,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:274,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:275,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:275,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:277,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:279,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:281,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:282,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:285,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:286,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:288,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:290,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:292,1
    - Dst: OGRFieldDefn::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:297,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:299,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:301,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:302,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:303,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:307,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:312,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:315,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:316,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:316,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:317,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:322,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:324,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:325,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:325,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:333,1
    - Dst: OGROCIStringBuf::MakeRoomFor
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:340,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:342,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:342,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:344,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:347,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:349,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:350,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:352,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:352,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:353,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:354,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:354,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:356,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:356,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:356,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:356,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:357,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:357,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:358,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:360,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:361,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:361,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:363,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:363,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:366,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 369
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 369
    functionName: OGROCIWritableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGRFieldDefn::GetDefault
    - OGROCIStringBuf::OGROCIStringBuf
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - insert
    - OGRFieldDefn::IsDefaultDriverSpecific
    - OGRFieldDefn::GetTZFlag
    - strlen
    - AddFieldDefn
    - OGROCIStatement::Execute
    - GetName
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - CPLTestBool
    - GetSession
    - OGROCISession*::CleanName
    - GetFieldCount
    - strcat
    - OGRFieldDefn::GetWidth
    - OGRFieldDefn::SetName
    - snprintf
    - OGROCIStringBuf::MakeRoomFor
    - CPLFree
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::GetPrecision
    - strcpy
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROCIWritableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                       int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNewDim
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: OGROCIWritableLayer::SetDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCIWritableLayer::SetDimension(int nNewDim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:393,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:397,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:398,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:400,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:401,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:408,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:409,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:410,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - pszOptionName
    - pdfMin
    - pdfMax
    - pdfRes
    argTypes:
    - char*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 413
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 413
    functionName: OGROCIWritableLayer::ParseDIMINFO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLError
    - CSLDestroy
    - CSLTokenizeStringComplex
    - CSLCount
    - CSLFetchNameValue
    linkageType: ''
    returnType: void
    signature: "void OGROCIWritableLayer::ParseDIMINFO(const char *pszOptionName,\n
      \                                      double *pdfMin, double *pdfMax,\n                                       double
      *pdfRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:432,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:432,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:436,1
    - Dst: CPLsprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:439,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:442,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:442,1
    - Dst: CPLsprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:444,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:447,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:447,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:448,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:450,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:457,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:457,1
    - Dst: OGROCIWritableLayer::TranslateElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:460,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:467,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:467,1
    - Dst: OGROCIWritableLayer::TranslateElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:470,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:477,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:477,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:479,1
    - Dst: OGROCIWritableLayer::PushElemInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:482,1
    - Dst: OGRMultiPoint*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:482,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:486,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:486,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:487,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:487,1
    - Dst: OGROCIWritableLayer::PushOrdinal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:489,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:489,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:505,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:505,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:507,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:507,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:509,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:509,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:514,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:517,1
    - Dst: OGRGeometry*::getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:518,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:527,1
    - Dst: OGROCIWritableLayer::TranslateElementGroup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:529,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - poGeometry
    - pnGType
    argTypes:
    - OGRGeometry*
    - int*
    constantsTouched: []
    func_position:
      end: 535
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 535
    functionName: OGROCIWritableLayer::TranslateToSDOGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint*::getNumGeometries
    - OGROCIWritableLayer::PushElemInfo
    - OGRPoint*::getX
    - OGRPoint*::getY
    - CPLStrdup
    - CPLsprintf
    - CPLError
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry*::toMultiPoint
    - OGROCIWritableLayer::PushOrdinal
    - OGROCIWritableLayer::TranslateElementGroup
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRGeometry*::getGeometryName
    - OGRPoint*::getZ
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROCIWritableLayer::TranslateToSDOGeometry(OGRGeometry *poGeometry,\n
      \                                                  int *pnGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:545,1
    - Dst: OGROCISession*::CleanName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:548,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:550,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pszFieldName
    - bExactMatch
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 556
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 556
    functionName: OGROCIWritableLayer::FindFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociwritablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGROCISession*::CleanName
    - CPLFree
    - GetSession
    linkageType: ''
    returnType: int
    signature: "int OGROCIWritableLayer::FindFieldIndex(const char *pszFieldName,\n
      \                                       int bExactMatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGROCIDataSource*
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: OGROCILayer::OGROCILayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCILayer::OGROCILayer(OGROCIDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:50,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:51,1
    - Dst: OGROCILayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:54,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:59,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:62,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: OGROCILayer::~OGROCILayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - OGROCILayer::ResetReading
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROCILayer::~OGROCILayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: OGROCILayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCILayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCILayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:101,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:106,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:106,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 112
    functionName: OGROCILayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCILayer::GetNextRawFeature
    - FilterGeometry
    - Evaluate
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROCILayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCILayer::ExecuteQuery
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:126,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:146,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:156,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:158,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:163,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:163,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:165,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:168,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:170,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:178,1
    - Dst: OGROCILayer::TranslateGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:178,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:180,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:182,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:183,1
    - Dst: OCIObjectFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:183,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:184,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 194
    functionName: OGROCILayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::SetFieldNull
    - atoi
    - GetSession
    - OGROCISession*::Failed
    - GetFieldCount
    - MAX
    - OCIObjectFree
    - OGROCILayer::TranslateGeometry
    - OGRFeature*::SetField
    - OGROCILayer::ExecuteQuery
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - static_cast<dvoid *>
    - OGRFeature*::SetFID
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROCILayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:207,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:209,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:210,1
    - Dst: OGROCIStatement::OGROCIStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:215,1
    - Dst: Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:216,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:231,1
    - Dst: OCIDefineByPos
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:232,1
    - Dst: GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:232,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:234,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:235,1
    - Dst: static_cast<ub2 *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:236,1
    - Dst: static_cast<ub2 *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:237,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:241,1
    - Dst: OCIDefineObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:242,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:244,1
    - Dst: static_cast<ub4 *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:245,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:246,1
    - Dst: static_cast<ub4 *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pszReqQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 253
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 253
    functionName: OGROCILayer::ExecuteQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached:
    - OCIDefineByPos
    - GetSession
    - static_cast<ub2 *>
    - OCIDefineObject
    - OGROCIStatement::OGROCIStatement
    - GetStatement
    - CPLAssert
    - OGROCISession*::Failed
    - reinterpret_cast<dvoid **>
    - static_cast<ub4 *>
    - static_cast<dvoid *>
    - Execute
    linkageType: ''
    returnType: int
    signature: int OGROCILayer::ExecuteQuery(const char *pszReqQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:262,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:276,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:277,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:278,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:283,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:284,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:285,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:295,1
    - Dst: OCINumberToInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:295,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:298,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:310,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:317,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:318,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:319,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:320,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:322,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:323,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:326,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:328,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:338,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:339,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:340,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:341,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:342,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:343,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:344,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:345,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:346,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:347,1
    - Dst: OGROCILayer::LoadElementInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:357,1
    - Dst: OGROCILayer::TranslateGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:367,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:379,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:381,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:381,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:381,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:385,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:387,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:387,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:387,1
    - Dst: ORA_GTYPE_MATCH
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:391,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:393,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:393,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:393,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:394,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:394,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:398,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:399,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:399,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:401,1
    - Dst: OGRGeometryCollection*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:403,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:412,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:414,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:418,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:422,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:422,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:425,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:429,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:434,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 443
    functionName: OGROCILayer::TranslateGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - OGRGeometry*::toMultiPoint
    - OGRGeometryCollection*::addGeometry
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGROCILayer::TranslateGeometryElement
    - reinterpret_cast<OCIColl *>
    - OCINumberToInt
    - ORA_GTYPE_MATCH
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRPoint::OGRPoint
    - wkbFlatten
    - OGRMultiLineString::OGRMultiLineString
    - static_cast<dvoid *>
    - OGRGeometry*::getGeometryType
    - GetSession
    - CPLAssert
    - OGRMultiPolygon::OGRMultiPolygon
    - OGROCISession*::Failed
    - OCINumberToReal
    - OGRGeometry*::toLinearRing
    - OGROCILayer::LoadElementInfo
    - OGRGeometryCollection::OGRGeometryCollection
    - OCICollSize
    - OGRPolygon*::getExteriorRing
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGROCILayer::TranslateGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:458,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:464,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:465,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:466,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:467,1
    - Dst: OCINumberToInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:468,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:469,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:471,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:472,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:473,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:474,1
    - Dst: OCINumberToInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:475,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:476,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:478,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:479,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:480,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:481,1
    - Dst: OCINumberToInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:482,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:483,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:489,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:490,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:492,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:493,1
    - Dst: OCINumberToInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:494,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - iElement
    - nElemCount
    - nTotalOrdCount
    - pnEType
    - pnInterpretation
    - pnStartOrdinal
    - pnElemOrdCount
    argTypes:
    - int
    - int
    - int
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 504
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 504
    functionName: OGROCILayer::LoadElementInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<boolean *>
    - GetSession
    - OCINumberToInt
    - OCICollGetElem
    - reinterpret_cast<dvoid **>
    - static_cast<dvoid *>
    - reinterpret_cast<OCIColl *>
    linkageType: ''
    returnType: int
    signature: "int OGROCILayer::LoadElementInfo(int iElement, int nElemCount,\n                                 int
      nTotalOrdCount, int *pnEType,\n                                 int *pnInterpretation,
      int *pnStartOrdinal,\n                                 int *pnElemOrdCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:522,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:525,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:527,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:528,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:530,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:540,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:544,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:548,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:551,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:552,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:553,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:563,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:572,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:575,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:581,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:584,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:586,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:597,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:606,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:608,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:610,1
    - Dst: OGROCIStrokeArcToOGRGeometry_Points
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:613,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:627,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:630,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:636,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:639,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:641,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:652,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:661,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:663,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:665,1
    - Dst: OGROCIStrokeArcToOGRGeometry_Points
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:668,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:681,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:685,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:686,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:689,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:691,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:692,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:693,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:694,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:695,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:705,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:710,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:711,1
    - Dst: OGROCILayer::GetOrdinalPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:713,1
    - Dst: OGROCIStrokeArcToOGRGeometry_Points
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:716,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:733,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:735,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:735,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:736,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:742,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:742,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:743,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:750,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:752,1
    - Dst: OGROCILayer::LoadElementInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:756,1
    - Dst: OGROCILayer::TranslateGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:764,1
    - Dst: dynamic_cast<OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:767,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:772,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:774,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:774,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:775,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:775,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:776,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:777,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:777,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:779,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:782,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:797,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 7
    argNames:
    - piElement
    - nGType
    - nDimension
    - nEType
    - nInterpretation
    - nStartOrdinal
    - nElemOrdCount
    argTypes:
    - int*
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 802
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 802
    functionName: OGROCILayer::TranslateGeometryElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRPoint*::setX
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiPoint*::addGeometryDirectly
    - CPLDebug
    - OGRLineString*::getNumPoints
    - OGRPoint*::setY
    - OGROCILayer::TranslateGeometryElement
    - OGRLineString*::getY
    - reinterpret_cast<OCIColl *>
    - OGROCIStrokeArcToOGRGeometry_Points
    - OGRLineString*::getX
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - OGRLineString::OGRLineString
    - OGRLinearRing*::setNumPoints
    - GetSession
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - CPLAssert
    - dynamic_cast<OGRLineString *>
    - OGROCISession*::Failed
    - OGROCILayer::LoadElementInfo
    - OGRLineString*::addSubLineString
    - OCICollSize
    - OGROCILayer::GetOrdinalPoint
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGROCILayer::TranslateGeometryElement(int *piElement,
      int nGType,\n                                                   int nDimension,
      int nEType,\n                                                   int nInterpretation,\n
      \                                                  int nStartOrdinal,\n                                                   int
      nElemOrdCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:812,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:816,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:817,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:818,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:819,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:820,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:821,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:822,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:823,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:824,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:825,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:826,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:827,1
    - Dst: OCICollGetElem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:830,1
    - Dst: reinterpret_cast<OCIColl *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:831,1
    - Dst: reinterpret_cast<boolean *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:832,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:833,1
    - Dst: OCINumberToReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:834,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - iOrdinal
    - nDimension
    - pdfX
    - pdfY
    - pdfZ
    argTypes:
    - int
    - int
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: OGROCILayer::GetOrdinalPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 1
    functionsReached:
    - OCINumberToReal
    - reinterpret_cast<boolean *>
    - GetSession
    - OCICollGetElem
    - reinterpret_cast<dvoid **>
    - static_cast<dvoid *>
    - reinterpret_cast<OCIColl *>
    linkageType: ''
    returnType: int
    signature: "int OGROCILayer::GetOrdinalPoint(int iOrdinal, int nDimension, double
      *pdfX,\n                                 double *pdfY, double *pdfZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:848,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:851,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:854,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:857,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 865
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 865
    functionName: OGROCILayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGROCILayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:890,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:892,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:893,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:895,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:901,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:903,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:909,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:915,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:918,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:918,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:921,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:922,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:925,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:926,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:929,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp:934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 938
    functionName: OGROCILayer::LookupTableSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGROCIStatement::BindString
    - CPLStrdup
    - GetSession
    - atoi
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStatement::Prepare
    - strstr
    - OGROCIStringBuf::Append
    - OGROCIStatement::Execute
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGROCILayer::LookupTableSRID()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 951
    functionName: OGROCILayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGROCILayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 964
    functionName: OGROCILayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGROCILayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: OGROCILayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROCILayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 8
    argNames:
    - x_c0
    - y_c0
    - x_c1
    - y_c1
    - x_c2
    - y_c2
    - x_center
    - y_center
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 102
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 102
    functionName: OGROCIArcCenterFromEdgePoints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGROCIArcCenterFromEdgePoints(double x_c0, double y_c0, double
      x_c1,\n                                         double y_c1, double x_c2, double
      y_c2,\n                                         double *x_center, double *y_center)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:118,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:118,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:120,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:122,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:130,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:131,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:135,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:136,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:136,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:136,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:138,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:138,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:138,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:140,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:140,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:144,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:144,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:145,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 7
    argNames:
    - dfCenterX
    - dfCenterY
    - dfRadius
    - dfStartAngle
    - dfEndAngle
    - dfMaxAngleStepSizeDegrees
    - poLine
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 151
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 151
    functionName: OGROCIStrokeArcToOGRGeometry_Angles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - sin
    - OGRLineString*::setNumPoints
    - MAX
    - OGRLineString*::getNumPoints
    - fabs
    - ceil
    - cos
    - OGRLineString*::getY
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void OGROCIStrokeArcToOGRGeometry_Angles(\n    double dfCenterX, double
      dfCenterY, double dfRadius, double dfStartAngle,\n    double dfEndAngle, double
      dfMaxAngleStepSizeDegrees, OGRLineString *poLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIArcCenterFromEdgePoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:168,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:183,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:187,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:191,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:211,1
    - Dst: OGROCIStrokeArcToOGRGeometry_Angles
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:214,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:226,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 9
    argNames:
    - dfStartX
    - dfStartY
    - dfAlongX
    - dfAlongY
    - dfEndX
    - dfEndY
    - dfMaxAngleStepSizeDegrees
    - bForceWholeCircle
    - poLine
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    - double
    - int
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 230
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 230
    functionName: OGROCIStrokeArcToOGRGeometry_Points
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistroke.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStrokeArcToOGRGeometry_Angles
    - OGROCIArcCenterFromEdgePoints
    - sqrt
    - OGRLineString*::getNumPoints
    - OGRLineString*::setPoint
    - atan2
    linkageType: ''
    returnType: int
    signature: "int OGROCIStrokeArcToOGRGeometry_Points(double dfStartX, double dfStartY,\n
      \                                       double dfAlongX, double dfAlongY,\n
      \                                       double dfEndX, double dfEndY,\n                                        double
      dfMaxAngleStepSizeDegrees,\n                                        int bForceWholeCircle,\n
      \                                       OGRLineString *poLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: OGROCISession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 1
    functionsReached:
    - OGROCISession
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGROCISession
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 178
    functionName: OGROCIStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL OGROCIStatement
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::UpdateEnd
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: OGROCIStringBuf::GetEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::UpdateEnd
    linkageType: ''
    returnType: char
    signature: char *GetEnd()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OGROCIStringBuf::GetString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::FindFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 289
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached:
    - OGRLayer::FindFieldIndex
    linkageType: ''
    returnType: class OGROCILayer
    signature: class OGROCILayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 361
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OGROCIWritableLayer
    signature: class OGROCIWritableLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: OGROCILoaderLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr SetAttributeFilter(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: OGROCILoaderLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: OGROCITableLayer::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsValid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: OGROCIDataSource::GetSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROCISession
    signature: OGROCISession *GetSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: OGROCIDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogr_oci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: OGROCIDataSource::OGROCIDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::OGROCIDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: OGROCIDataSource::~OGROCIDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::~OGROCIDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:75,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:80,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:84,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:107,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:107,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:108,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:109,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:113,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:115,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:119,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:122,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:122,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:126,1
    - Dst: OGRGetOCISession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:162,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:166,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:167,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:171,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:173,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:176,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:177,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:178,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:180,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:180,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:193,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:203,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:204,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:206,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:209,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:211,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:215,1
    - Dst: OGROCIDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:222,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:225,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 4
    argNames:
    - pszNewName
    - papszOpenOptionsIn
    - bUpdate
    - bTestOpen
    argTypes:
    - char*
    - char**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 228
    functionName: OGROCIDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - CSLAddString
    - OGROCIStringBuf::OGROCIStringBuf
    - CSLTokenizeStringComplex
    - CPLError
    - CPLStrdup
    - OGRGetOCISession
    - strlen
    - OGROCIStatement::Execute
    - OGROCIDataSource::OpenTable
    - STARTS_WITH_CI
    - static_cast<int>
    - CPLAssert
    - snprintf
    - OGROCIStringBuf::Append
    - CPLFree
    - OGROCIStatement::SimpleFetchRow
    - CSLFetchNameValueDef
    - CSLDestroy
    - EQUAL
    - CSLFindString
    - strcpy
    linkageType: ''
    returnType: int
    signature: "int OGROCIDataSource::Open(const char *pszNewName, char **papszOpenOptionsIn,\n
      \                          int bUpdate, int bTestOpen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCITableLayer::OGROCITableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:244,1
    - Dst: OGROCITableLayer*::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:247,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:256,1
    - Dst: OGROCITableLayer*::SetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - pszNewName
    - nSRID
    - bUpdate
    - bTestOpen
    - papszOpenOptionsIn
    argTypes:
    - char*
    - int
    - int
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 263
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 263
    functionName: OGROCIDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - OGROCITableLayer*::IsValid
    - OGROCITableLayer::OGROCITableLayer
    - OGROCITableLayer*::SetOptions
    linkageType: ''
    returnType: int
    signature: "int OGROCIDataSource::OpenTable(const char *pszNewName, int nSRID,
      int bUpdate,\n                                CPL_UNUSED int bTestOpen,\n                                char
      **papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:279,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:285,1
    - Dst: cpl::down_cast<OGROCITableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:295,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:297,1
    - Dst: OGROCITableLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:297,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:299,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:309,1
    - Dst: OGROCITableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:309,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:311,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:314,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:315,1
    - Dst: OGROCITableLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:315,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:316,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:317,1
    - Dst: OGROCITableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:317,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:318,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:319,1
    - Dst: OGROCITableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:319,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:320,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:322,1
    - Dst: OGROCITableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:322,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:323,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:324,1
    - Dst: OGROCITableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:324,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:325,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:326,1
    - Dst: OGROCITableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:326,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:327,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:329,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:329,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:338,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:344,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:346,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 353
    functionName: OGROCIDataSource::ValidateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - GetLayerDefn
    - cpl::down_cast<OGROCITableLayer *>
    - OGROCITableLayer*::GetGeometryColumn
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCITableLayer*::GetLayerDefn
    - CPLDebug
    - EQUAL
    - strlen
    - OGROCITableLayer*::GetFIDColumn
    - OGROCIStringBuf::Append
    - CPLError
    - OGROCIStatement::Execute
    - OGROCIStatement::SimpleFetchRow
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::ValidateLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:366,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:368,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:368,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:371,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:382,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:382,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:383,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:386,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:388,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 397
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 397
    functionName: OGROCIDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - CPLString::Printf
    - CPLDebug
    - CPLString::c_str
    - OGROCIStatement::Execute
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCIDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:413,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:413,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:421,1
    - Dst: OGROCIDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 429
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 429
    functionName: OGROCIDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - GetLayerDefn
    - OGROCIDataSource::DeleteLayer
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::DeleteLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:442,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:450,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 452
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: OGROCIDataSource::TruncateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStatement::Execute
    - CPLString::Printf
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::TruncateLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:464,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:466,1
    - Dst: CleanName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:470,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:471,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:473,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:481,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:484,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:484,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:494,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:496,1
    - Dst: OGROCIDataSource::TruncateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:497,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:504,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:505,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:507,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:508,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:508,1
    - Dst: OGROCIDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:510,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:514,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:519,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:534,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:536,1
    - Dst: OGROCIDataSource::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:536,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:538,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:563,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:567,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:573,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:583,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:593,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:607,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:607,1
    - Dst: OGROCITableLayer::OGROCITableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:611,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:611,1
    - Dst: OGROCILoaderLayer::OGROCILoaderLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:609,1
    - Dst: OGROCIWritableLayer*::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:616,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:616,1
    - Dst: OGROCIWritableLayer*::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:617,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:617,1
    - Dst: OGROCIWritableLayer*::SetDefaultStringSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:618,1
    - Dst: OGROCIWritableLayer*::SetDimension
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:622,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:622,1
    - Dst: OGROCIWritableLayer*::SetDimension
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:624,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:624,1
    - Dst: OGROCIWritableLayer*::SetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:626,1
    - Dst: OGROCIWritableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:628,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:633,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:638,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 641
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 641
    functionName: OGROCIDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROCIWritableLayer*::SetPrecisionFlag
    - atoi
    - CPLDebug
    - CleanName
    - OGROCIWritableLayer*::SetDimension
    - CPLError
    - OGROCILoaderLayer::OGROCILoaderLayer
    - CSLFetchNameValue
    - OGROCIWritableLayer*::SetDefaultStringSize
    - CPLRealloc
    - OGROCIStatement::Execute
    - OGROCIWritableLayer*::SetLaunderFlag
    - OGROCITableLayer::OGROCITableLayer
    - wkbFlatten
    - OGROCIDataSource::TruncateLayer
    - GetLayerDefn
    - OGROCIWritableLayer*::SetOptions
    - CPLFetchBool
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - CPLSPrintf
    - snprintf
    - OGROCIWritableLayer*::GetLayerDefn
    - CPLFree
    - OGROCIDataSource::FetchSRSId
    - OGROCIDataSource::DeleteLayer
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - strcpy
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGROCIDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:650,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:654,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: OGROCIDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGROCIDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    functionName: OGROCIDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGROCIDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:687,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:688,1
    - Dst: FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:694,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:696,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:701,1
    - Dst: OGROCIDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:708,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:715,1
    - Dst: OGROCIDataSource::ValidateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:722,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:729,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:733,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:745,1
    - Dst: OGROCISelectLayer::OGROCISelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 750
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 750
    functionName: OGROCIDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - OGROCIDataSource::DeleteLayer
    - CPLDebug
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - OGROCIStatement::Execute
    - OGROCISelectLayer::OGROCISelectLayer
    - FlushCache
    - OGROCIDataSource::ValidateLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGROCIDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: OGROCIDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCIDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:779,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:780,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:782,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:791,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:796,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:799,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:800,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:807,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:808,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:809,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:820,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:823,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:824,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:827,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:828,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:828,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:831,1
    - Dst: std::unique_ptr::SetAuthority
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:844,1
    - Dst: std::unique_ptr::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:844,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:854,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:855,1
    - Dst: std::unique_ptr::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:856,1
    - Dst: std::unique_ptr::SetAuthority
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:858,1
    - Dst: std::unique_ptr::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:858,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:859,1
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:865,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:865,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:866,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 867
      start: 770
    functionDepth: 7
    functionLinenumber: 770
    functionLinenumberEnd: 867
    functionName: OGROCIDataSource::FetchSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::importFromWkt
    - atoi
    - OGRSpatialReference::SetAxisMappingStrategy
    - end
    - std::unique_ptr::release
    - find
    - emplace
    - OGRSpatialReference::IsSame
    - std::unique_ptr::GetRoot
    - strlen
    - std::move
    - CSLCount
    - OGROCIStatement::Execute
    - OGRSpatialReference::importFromEPSG
    - std::unique_ptr::SetAxisMappingStrategy
    - std::unique_ptr::SetAuthority
    - snprintf
    - std::unique_ptr::get
    - auto::second::get
    - OGROCIStatement::SimpleFetchRow
    - OGRSpatialReference::OGRSpatialReference
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGROCIDataSource::FetchSRS(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:885,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:885,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:894,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:894,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:896,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:897,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:905,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:905,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:906,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:912,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:916,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:920,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:922,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:926,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:929,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:930,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:955,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:961,1
    - Dst: OGRSpatialReference*::SetAngularUnits
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:962,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:968,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:971,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:980,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:983,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:984,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:985,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:987,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:987,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:988,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:996,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:997,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1008,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1009,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1015,1
    - Dst: OGROCIStringBuf::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1022,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1023,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1024,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1025,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1026,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1027,1
    - Dst: OGRSpatialReference*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1027,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1028,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1030,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1032,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1032,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 61
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1036
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 1036
    functionName: OGROCIDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStringBuf::GetString
    - atoi
    - OGRSpatialReference*::GetAuthorityCode
    - OGROCIStringBuf::OGROCIStringBuf
    - OGRSpatialReference::IsSame
    - OGROCIStatement::Execute
    - OGRSpatialReference*::exportToWkt
    - OGRSpatialReference*::GetAuthorityName
    - OGRSpatialReference*::IsProjected
    - OGRSpatialReference*::SetAngularUnits
    - OGROCIStringBuf::Clear
    - OGROCIStringBuf::Appendf
    - snprintf
    - OGROCIStringBuf::Append
    - CPLFree
    - OGROCIStatement::SimpleFetchRow
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromWkt
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - fabs
    - OGRSpatialReference*::GetName
    linkageType: ''
    returnType: int
    signature: int OGROCIDataSource::FetchSRSId(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1051,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1058,1
    - Dst: OGROCILayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1058,1
    - Dst: CleanName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1065,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1072,1
    - Dst: OGROCILayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1072,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp:1078,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1081
    functionName: OGROCIDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROCIDataSource::GetLayerCount
    - OGROCILayer*::GetName
    - EQUAL
    - CleanName
    - strcmp
    - CPLFree
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGROCIDataSource::GetLayerByName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:40,1
    - Dst: OGROCITableLayer::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:55,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:56,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:57,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:58,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:58,1
    - Dst: LookupTableSRID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:62,1
    - Dst: OGROCIDataSource*::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:64,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:66,1
    - Dst: OGROCITableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 6
    argNames:
    - poDSIn
    - pszTableName
    - eGType
    - nSRIDIn
    - bUpdate
    - bNewLayerIn
    argTypes:
    - OGROCIDataSource*
    - char*
    - OGRwkbGeometryType
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 88
    functionName: OGROCITableLayer::OGROCITableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    - GetGeomFieldDefn
    - OGROCITableLayer::ResetReading
    - LookupTableSRID
    - OGROCITableLayer::ReadTableDefinition
    - Reference
    - OGROCIDataSource*::FetchSRS
    - SetDescription
    - GetGeomFieldCount
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROCITableLayer::OGROCITableLayer(OGROCIDataSource *poDSIn,\n
      \                                  const char *pszTableName,\n                                   OGRwkbGeometryType
      eGType, int nSRIDIn,\n                                   int bUpdate, int bNewLayerIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCITableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:99,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:101,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:104,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:107,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:111,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:112,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:117,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:118,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:120,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:121,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:123,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:124,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 128
    functionName: OGROCITableLayer::~OGROCITableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - Dereference
    - OGROCITableLayer::SyncToDisk
    - CPLFree
    - GetFieldCount
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::~OGROCITableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:140,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:149,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:151,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:152,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:152,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:152,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:153,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:153,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:154,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:155,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:155,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:156,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:162,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:163,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:166,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:166,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:168,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:178,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:179,1
    - Dst: static_cast<ub4>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:180,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:180,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:184,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:186,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:190,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:191,1
    - Dst: static_cast<ub4>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:192,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:192,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:196,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:198,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:202,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:204,1
    - Dst: static_cast<ub4>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:205,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:205,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:208,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:210,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:215,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:216,1
    - Dst: static_cast<ub4>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:217,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:217,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:221,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:227,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:227,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:233,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:233,1
    - Dst: OCIParamGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:259,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:260,1
    - Dst: OGROCISession*::GetParamInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:265,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:269,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:273,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:274,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:274,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:276,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:281,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:281,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:282,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:283,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:285,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:285,1
    - Dst: OGRFieldDefn::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:289,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:291,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:291,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:294,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:304,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:305,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:307,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:311,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:321,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:323,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:327,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:328,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:330,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:339,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:354,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:355,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:355,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:356,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:357,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:357,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:367,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:368,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:368,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:369,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:371,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:373,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:375,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:380,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:392,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:393,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:393,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:394,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:394,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:404,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:405,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:405,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:407,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:409,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:411,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:413,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:419,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:424,1
    - Dst: SetDimension
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:429,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:433,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:440,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:451,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:452,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:452,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:453,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:453,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:462,1
    - Dst: OGROCIStatement::BindString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:463,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:463,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:466,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:468,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:470,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:476,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:482,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:486,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:487,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:489,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:490,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:491,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:497,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:503,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 148
    argCount: 1
    argNames:
    - pszTable
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 509
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 509
    functionName: OGROCITableLayer::ReadTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - SetDimension
    - wkbSetZ
    - CPLDebug
    - reinterpret_cast<dvoid **>
    - OGRFeatureDefn*::Reference
    - CPLErrorReset
    - OGRFeatureDefn*::AddFieldDefn
    - CPLStrdup
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeatureDefn*::SetGeomType
    - insert
    - OCIDescribeAny
    - OCIAttrGet
    - CPLString::c_str
    - OGRFieldDefn::GetTZFlag
    - OGROCIStatement::Prepare
    - strlen
    - CSLCount
    - OGROCIStatement::Execute
    - CPLString::length
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - OGRFeatureDefn*::GetFieldCount
    - c_str
    - GetSession
    - OGROCISession*::GetParamInfo
    - CPLString::Printf
    - OGRFeatureDefn::OGRFeatureDefn
    - assign
    - strstr
    - OGROCISession*::Failed
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - OGROCIStatement::SimpleFetchRow
    - size
    - OGROCIStatement::BindString
    - static_cast<ub4>
    - EQUAL
    - OCIParamGet
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGROCITableLayer::ReadTableDefinition(const char *pszTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:518,1
    - Dst: OGROCITableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:521,1
    - Dst: OGROCITableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: OGROCITableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGROCITableLayer::BuildWhere
    - OGROCITableLayer::ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::ISetSpatialFilter(int, const OGRGeometry *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:534,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:535,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:537,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:538,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:538,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:539,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:541,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszSpatWHERE
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: OGROCITableLayer::TestForSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - GetSession
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Append
    - OGROCIStatement::Execute
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::TestForSpatialIndex(const char *pszSpatWHERE)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:557,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:559,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:566,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:568,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:569,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:570,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:572,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:574,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:575,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:576,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:577,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:578,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:583,1
    - Dst: OGROCITableLayer::TestForSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:588,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:588,1
    - Dst: OGROCIStringBuf::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:590,1
    - Dst: OGROCIStringBuf::GetLast
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:595,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:596,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:598,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:600,1
    - Dst: OGROCIStringBuf::StealString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:603,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 604
    functionName: OGROCITableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGROCITableLayer::TestForSpatialIndex
    - getEnvelope
    - OGROCIStringBuf::StealString
    - OGROCIStringBuf::Clear
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::GetLast
    - OGROCIStringBuf::Appendf
    - OGROCIStringBuf::Append
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:615,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:619,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:622,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:623,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:624,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:625,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:625,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:626,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:627,1
    - Dst: OGROCIStringBuf::StealString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:629,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 632
    functionName: OGROCITableLayer::BuildFullQueryStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::StealString
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Append
    - CPLFree
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::BuildFullQueryStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:646,1
    - Dst: OGROCITableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:651,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:656,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:659,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:660,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:661,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:662,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:662,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:663,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:664,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:664,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:667,1
    - Dst: ExecuteQuery
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:672,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:672,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:680,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:682,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:683,1
    - Dst: OGROCITableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:688,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:695,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 704
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 704
    functionName: OGROCITableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGRAPISpy_L_GetFeature
    - static_cast<int>
    - GetNextRawFeature
    - OGRFeature*::GetFID
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCITableLayer::ResetReading
    - ExecuteQuery
    - OGROCIStringBuf::Appendf
    - strlen
    - OGROCIStringBuf::Append
    - CPLError
    - CPLFree
    - GetName
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROCITableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:723,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:726,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:734,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:734,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:737,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:738,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 747
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 747
    functionName: OGROCITableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetGeometryRef
    - FilterGeometry
    - CPLDebug
    - GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROCITableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCITableLayer::FlushPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:759,1
    - Dst: OGROCITableLayer::BuildFullQueryStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:761,1
    - Dst: OGROCILayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 764
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 764
    functionName: OGROCITableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGROCILayer::ResetReading
    - OGROCITableLayer::BuildFullQueryStatement
    - OGROCITableLayer::FlushPendingFeatures
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:777,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:781,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:782,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:783,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:787,1
    - Dst: OGROCIStringBuf::GetLast
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:791,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:792,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:794,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:795,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:796,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:801,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:802,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:803,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:804,1
    - Dst: OGROCIStringBuf::StealString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 808
    functionName: OGROCITableLayer::BuildFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::StealString
    - OGROCIStringBuf::GetLast
    - OGROCIStringBuf::OGROCIStringBuf
    - GetFieldCount
    - OGROCIStringBuf::Append
    linkageType: ''
    returnType: char
    signature: char *OGROCITableLayer::BuildFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:817,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:818,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:822,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:825,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:830,1
    - Dst: OGROCITableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:832,1
    - Dst: OGROCITableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:834,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 837
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 837
    functionName: OGROCITableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGROCITableLayer::ResetReading
    - strcmp
    - CPLFree
    - OGROCITableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:856,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:860,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:860,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:865,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:867,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:871,1
    - Dst: OGROCITableLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:876,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:876,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 881
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 881
    functionName: OGROCITableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - OGROCITableLayer::DeleteFeature
    - CPLError
    - GetName
    - CreateFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:895,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:899,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:906,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:919,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:920,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:922,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:922,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:922,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:922,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:923,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:925,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:927,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:927,1
    - Dst: OGROCIStatement::GetAffectedRows
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 933
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 933
    functionName: OGROCITableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGROCIStatement::GetAffectedRows
    - static_cast<int>
    - GetSession
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Appendf
    - strlen
    - CPLError
    - OGROCIStatement::Execute
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:945,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:949,1
    - Dst: Contains
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:951,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:953,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:964,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:966,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:966,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:973,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:977,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:980,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:980,1
    - Dst: OGROCITableLayer::BoundCreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:988,1
    - Dst: OGROCITableLayer::UnboundCreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:990,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 991
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 991
    functionName: OGROCITableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCITableLayer::BoundCreateFeature
    - atoi
    - CPLFetchBool
    - Contains
    - OGROCITableLayer::UnboundCreateFeature
    - Merge
    - CSLFetchNameValue
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1000,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1009,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1014,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1015,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1017,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1020,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1026,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1028,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1032,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1034,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1040,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1042,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1042,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1043,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1044,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1047,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1049,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1049,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1054,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1055,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1057,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1062,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1064,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1066,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1066,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1068,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1071,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1074,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1075,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1077,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1080,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1081,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1081,1
    - Dst: TranslateToSDOGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1087,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1087,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1089,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1093,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1096,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1096,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1099,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1099,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1100,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1103,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1116,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1119,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1121,1
    - Dst: OGROCITableLayer::GetMaxFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1126,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1129,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1131,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1138,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1140,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1143,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1147,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1151,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1151,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1154,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1155,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1158,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1159,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1160,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1162,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1163,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1163,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1165,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1166,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1169,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1176,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1178,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1182,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1183,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1185,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1199,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1201,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1204,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1213,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1215,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1219,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1233,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1234,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1238,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1246,1
    - Dst: OCICollTrim
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1248,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1255,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1256,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1257,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1263,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1264,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1265,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1272,1
    - Dst: OCIBindByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1273,1
    - Dst: OGROCIStatement::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1274,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1275,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1275,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1281,1
    - Dst: OCIBindObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1282,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1284,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1302,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1303,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1307,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1315,1
    - Dst: OCICollTrim
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1317,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1324,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1325,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1326,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1331,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1332,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1339,1
    - Dst: OCIBindByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1340,1
    - Dst: OGROCIStatement::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1341,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1342,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1342,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1348,1
    - Dst: OCIBindObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1349,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1351,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1360,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 141
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1364
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1364
    functionName: OGROCITableLayer::UnboundCreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRPoint*::getY
    - reinterpret_cast<text *>
    - GetFieldDefn
    - reinterpret_cast<dvoid **>
    - OGRFieldDefn*::GetWidth
    - OCINumberFromInt
    - CPLRealloc
    - OGROCIStatement::Prepare
    - strcpy
    - strlen
    - OGROCIStatement::Execute
    - wkbFlatten
    - CPLMalloc
    - GetName
    - static_cast<dvoid *>
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - OCIBindByName
    - GetSession
    - OGRFeature*::GetFID
    - OCICollAppend
    - ReportTruncation
    - GetFieldCount
    - strcat
    - CPLAssert
    - OGRFieldDefn*::GetType
    - snprintf
    - OGROCIStatement::GetStatement
    - OCIObjectNew
    - OGROCISession*::Failed
    - CPLFree
    - OGRPoint*::getZ
    - OGRFeature*::GetGeometryRef
    - OCICollTrim
    - const_cast<char *>
    - OGROCITableLayer::GetMaxFID
    - TranslateToSDOGeometry
    - OCICollSize
    - OCIBindObject
    - OCINumberFromReal
    - CPLsnprintf
    - OGRGeometry*::toPoint
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::UnboundCreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1374,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1378,1
    - Dst: GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1378,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1386,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1388,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1389,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1401,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1401,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1402,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1406,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1406,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1409,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1411,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1415,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1415,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1421,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1422,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1426,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1426,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1434,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1435,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1436,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1437,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1449,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1450,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1451,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1455
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1455
    functionName: OGROCITableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - CPLAtof
    - c_str
    - GetGeometryColumn
    - GetSession
    - OGROCIStringBuf::OGROCIStringBuf
    - CPLDebug
    - EQUAL
    - CPLAssert
    - OGROCIStringBuf::Appendf
    - OGROCIStatement::Execute
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROCITableLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                   bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1467,1
    - Dst: OGROCILayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1472
    functionName: OGROCITableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGROCILayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGROCITableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1491,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1499,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1504,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1505,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1507,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1509,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1511,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1513,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1514,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1518
      start: 1483
    functionDepth: 4
    functionLinenumber: 1483
    functionLinenumberEnd: 1518
    functionName: OGROCITableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetSession
    - CPLAtoGIntBig
    - CPLDebug
    - OGROCIStatement::SimpleFetchRow
    - snprintf
    - CSLCount
    - OGROCIStatement::Execute
    - GetName
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROCITableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1540,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1542,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1552,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1556,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1556,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1559,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1561,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1562,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1566,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1566,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1578,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1579,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1580,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1581,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1583,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1592,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1614,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1619,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1624,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1630,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1634,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1635,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1636,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1637,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1639,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1644,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1649,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1650,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1650,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1650,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1651,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1660,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1661,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1662,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1662,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1662,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1663,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1665,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1666,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1668,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1673,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1679,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1681,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1687,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1689,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1689,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1690
    functionName: OGROCITableLayer::UpdateLayerExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - CPLAtof
    - ParseDIMINFO
    - c_str
    - static_cast<int>
    - GetSession
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Appendf
    - CPLAssert
    - strlen
    - OGROCIStringBuf::Append
    - OGROCIStatement::Execute
    - Merge
    - GetName
    - OGREnvelope::Contains
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::UpdateLayerExtents()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1699,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1702,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1713,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1715,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1716,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1716,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1717,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1718,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1720,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1722,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1723,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1726,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1728,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1729,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1729,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1732,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1734,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1735,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1737,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1739,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1740,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1743,1
    - Dst: OGROCIStatement::OGROCIStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1748,1
    - Dst: Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1749,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1749,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1754,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1756,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1759,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1771,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1773,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1786,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1787,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1791,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1796,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1797,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1801,1
    - Dst: BindObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1812,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1821,1
    - Dst: BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1823,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1832,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1832,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1834,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1834,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1836,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1838,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1841,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1845,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1847,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1849,1
    - Dst: BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1851,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1856,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1859,1
    - Dst: BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1861,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1866,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1869,1
    - Dst: BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1871,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1880,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1880,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1881,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1883,1
    - Dst: BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1885,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1893
    functionName: OGROCITableLayer::AllocAndBindForWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGROCIStringBuf::OGROCIStringBuf
    - BindObject
    - GetFieldDefn
    - reinterpret_cast<dvoid **>
    - BindScalar
    - OGRFieldDefn*::GetWidth
    - GetGeomType
    - CPLMalloc
    - GetName
    - GetSession
    - GetFieldCount
    - CPLAssert
    - OGROCIStringBuf::Appendf
    - snprintf
    - OGRFieldDefn*::GetType
    - OCIObjectNew
    - OGROCIStringBuf::Append
    - OGROCISession*::Failed
    - CPLCalloc
    - OGROCIStatement::OGROCIStatement
    - Prepare
    linkageType: ''
    returnType: int
    signature: int OGROCITableLayer::AllocAndBindForWrite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1902,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1909,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1911,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1912,1
    - Dst: OGROCITableLayer::FlushPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1914,1
    - Dst: OGROCITableLayer::UnboundCreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1915,1
    - Dst: OGRFeature*::Validate
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1919,1
    - Dst: OGROCITableLayer::AllocAndBindForWrite
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1930,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1937,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1941,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1951,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1956,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1956,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1958,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1965,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1966,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1969,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1970,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1983,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1984,1
    - Dst: TranslateToSDOGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1995,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:1995,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2003,1
    - Dst: OCICollTrim
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2005,1
    - Dst: OCICollSize
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2008,1
    - Dst: OCICollTrim
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2010,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2016,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2017,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2020,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2021,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2028,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2029,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2031,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2032,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2038,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2055,1
    - Dst: OGROCITableLayer::GetMaxFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2059,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2062,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2065,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2065,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2070,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2072,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2080,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2082,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2084,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2086,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2088,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2090,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2092,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2100,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2100,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2101,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2103,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2103,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2109,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2112,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2113,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2115,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2123,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2124,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2128,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2133,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2142,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2144,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2149,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2155,1
    - Dst: OGROCITableLayer::FlushPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2170,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 116
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2173
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 2173
    functionName: OGROCITableLayer::BoundCreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRPoint*::getY
    - OGRFeature*::GetFieldAsInteger64
    - strncpy
    - OGROCITableLayer::AllocAndBindForWrite
    - OGROCITableLayer::UnboundCreateFeature
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - cpl::contains
    - OCINumberFromInt
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetRawFieldRef
    - std::abs
    - strlen
    - wkbFlatten
    - static_cast<dvoid *>
    - OGRGeometry*::getGeometryType
    - OGRPoint*::getX
    - static_cast<int>
    - GetSession
    - OCICollAppend
    - OGRFeature*::GetFID
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - OGRPoint*::getZ
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::GetFieldDefnRef
    - OCICollTrim
    - OGROCITableLayer::GetMaxFID
    - TranslateToSDOGeometry
    - OCICollSize
    - OGROCITableLayer::FlushPendingFeatures
    - OCINumberFromReal
    - CPLsnprintf
    - OGRGeometry*::toPoint
    - OGRFeature*::Validate
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::BoundCreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2182,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2186,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2187,1
    - Dst: OGROCISession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2189,1
    - Dst: OCIStmtExecute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2190,1
    - Dst: GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2208
    functionName: OGROCITableLayer::FlushPendingFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 2
    functionsReached:
    - GetSession
    - GetStatement
    - CPLDebug
    - OGROCISession*::Failed
    - OCIStmtExecute
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::FlushPendingFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCITableLayer::FlushPendingFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2220,1
    - Dst: OGROCITableLayer::UpdateLayerExtents
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2222,1
    - Dst: OGROCITableLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2217
    functionDepth: 2
    functionLinenumber: 2217
    functionLinenumberEnd: 2229
    functionName: OGROCITableLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGROCITableLayer::CreateSpatialIndex
    - OGROCITableLayer::UpdateLayerExtents
    - OGROCITableLayer::FlushPendingFeatures
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCITableLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2241,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2249,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2250,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2262,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2262,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2263,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2264,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2265,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2265,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2266,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2267,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2276,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2279,1
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2288,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2289,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2291,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2294,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2301,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2302,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2304,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2305,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2306,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2306,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2308,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2310,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2311,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2312,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2313,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2313,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2314,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2315,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2315,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2316,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2317,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2317,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2318,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2319,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2319,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2320,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2321,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2321,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2322,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2323,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2323,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2324,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2326,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2328,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2331,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2331,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2334,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2335,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2338
    functionName: OGROCITableLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStringBuf::GetString
    - GetSession
    - CPLFetchBool
    - wkbFlatten
    - CPLString::empty
    - CSLFetchNameValueDef
    - OGROCIStringBuf::OGROCIStringBuf
    - CPLString::Printf
    - GetGeomType
    - CPLString::c_str
    - OGROCIStringBuf::Appendf
    - CPLString::ifind
    - snprintf
    - strlen
    - OGROCIStringBuf::Append
    - OGROCIStatement::Execute
    - IsInit
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCITableLayer::CreateSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2348,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2349,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2351,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2352,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2354,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2354,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2357,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp:2357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2358
    functionName: OGROCITableLayer::GetMaxFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGROCIStringBuf::GetString
    - GetSession
    - atoi
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Appendf
    - CSLCount
    - OGROCIStatement::Execute
    - GetName
    linkageType: ''
    returnType: int
    signature: int OGROCITableLayer::GetMaxFID()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGROCIDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGROCIDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:60,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:118,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:120,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:126,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:128,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 130
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 130
    functionName: OGROCIDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGROCIDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:139,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:143,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:145,1
    - Dst: OGROCIDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:148,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: DeclareDeferredOGROCIPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGROCIDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGROCIPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poSessionIn
    argTypes:
    - OGROCISession*
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: OGROCIStatement::OGROCIStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCIStatement::OGROCIStatement(OGROCISession *poSessionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStatement::Clean
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: OGROCIStatement::~OGROCIStatement()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStatement::Clean
    linkageType: ''
    returnType: void
    signature: void OGROCIStatement::~OGROCIStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:57,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:63,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:65,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:68,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:71,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:74,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:77,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:85,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: OGROCIStatement::Clean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 1
    functionsReached:
    - Dereference
    - CPLFree
    - static_cast<dvoid *>
    - OCIHandleFree
    linkageType: ''
    returnType: void
    signature: void OGROCIStatement::Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStatement::Clean
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:97,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:99,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:101,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:105,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:113,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:114,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:115,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:123,1
    - Dst: OCIStmtPrepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:124,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:126,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:126,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:127,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pszSQLStatement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: OGROCIStatement::Prepare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 3
    functionsReached:
    - OCIStmtPrepare
    - OGROCIStatement::Clean
    - CPLStrdup
    - const_cast<char *>
    - static_cast<unsigned int>
    - CPLDebug
    - reinterpret_cast<text *>
    - Failed
    - OCIHandleAlloc
    - strlen
    - CPLError
    - reinterpret_cast<dvoid **>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROCIStatement::Prepare(const char *pszSQLStatement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:145,1
    - Dst: OCIBindByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:146,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:148,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:148,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:149,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:154,1
    - Dst: OCIBindObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:155,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:156,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pszPlaceName
    - pahObjects
    - hTDO
    - papIndicators
    argTypes:
    - char*
    - void*
    - OCIType*
    - void**
    constantsTouched: []
    func_position:
      end: 162
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 162
    functionName: OGROCIStatement::BindObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 0
    functionsReached:
    - OCIBindByName
    - const_cast<char *>
    - OCIBindObject
    - reinterpret_cast<text *>
    - strlen
    - Failed
    - reinterpret_cast<dvoid **>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGROCIStatement::BindObject(const char *pszPlaceName, void
      *pahObjects,\n                                   OCIType *hTDO, void **papIndicators)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:174,1
    - Dst: OCIBindByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:175,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:177,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:177,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:178,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:178,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pszPlaceName
    - pData
    - nDataLen
    - nSQLType
    - paeInd
    argTypes:
    - char*
    - void*
    - int
    - int
    - sb2*
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 185
    functionName: OGROCIStatement::BindScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 0
    functionsReached:
    - OCIBindByName
    - const_cast<char *>
    - reinterpret_cast<text *>
    - strlen
    - Failed
    - static_cast<dvoid *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGROCIStatement::BindScalar(const char *pszPlaceName, void
      *pData,\n                                   int nDataLen, int nSQLType, sb2
      *paeInd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStatement::BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:195,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:197,1
    - Dst: reinterpret_cast<const void *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:197,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:198,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszPlaceName
    - pszData
    - paeInd
    argTypes:
    - char*
    - char*
    - sb2*
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: OGROCIStatement::BindString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - OGROCIStatement::BindScalar
    - reinterpret_cast<const void *>
    - strlen
    - const_cast<void *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGROCIStatement::BindString(const char *pszPlaceName,\n                                   const
      char *pszData, sb2 *paeInd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:213,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:220,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:231,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:231,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:253,1
    - Dst: OCIStmtExecute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:254,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:263,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:263,1
    - Dst: OCIParamGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:280,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:281,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:286,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:288,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:289,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:295,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:296,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:297,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:311,1
    - Dst: OCIParamGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:312,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:313,1
    - Dst: GetParamInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:318,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:322,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:327,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:327,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:330,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:339,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:340,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:350,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:353,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:354,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:356,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:358,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:360,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:363,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:364,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:366,1
    - Dst: OCIDefineByPos
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:367,1
    - Dst: reinterpret_cast<ub1 *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:369,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 2
    argNames:
    - pszSQLStatement
    - nMode
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 377
    functionName: OGROCIStatement::Execute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 19
    functionsReached:
    - Reference
    - CPLError
    - reinterpret_cast<dvoid **>
    - SetGeomType
    - OCIAttrGet
    - OGROCIStatement::Prepare
    - AddFieldDefn
    - OCIStmtExecute
    - CPLMalloc
    - OCIDefineByPos
    - OGRFieldDefn::GetNameRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - OGRFieldDefn::GetWidth
    - CPLAssert
    - CPLCalloc
    - reinterpret_cast<ub1 *>
    - OGRFieldDefn::SetType
    - EQUAL
    - GetParamInfo
    - Failed
    - OCIParamGet
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGROCIStatement::Execute(const char *pszSQLStatement, int nMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:390,1
    - Dst: OCIStmtFetch
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:393,1
    - Dst: Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 410
    functionName: OGROCIStatement::SimpleFetchRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp
    functionUses: 6
    functionsReached:
    - OCIStmtFetch
    - CPLCalloc
    - Failed
    linkageType: ''
    returnType: char
    signature: char **OGROCIStatement::SimpleFetchRow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:23,1
    - Dst: OGROCIDataSource::OGROCIDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:28,1
    - Dst: OGROCIDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: OGROCIDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp
    functionUses: 0
    functionsReached:
    - OGROCIDataSource::OGROCIDataSource
    - OGROCIDriverIdentify
    - OGROCIDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROCIDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIDataSource::OGROCIDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:52,1
    - Dst: OGROCIDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:54,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: OGROCIDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGROCIDataSource::OGROCIDataSource
    - OGROCIDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGROCIDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, CPL_UNUSED char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:74,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:77,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:80,1
    - Dst: OGROCIDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:81,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: RegisterOGROCI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGROCIDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGROCI()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:35,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:36,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:36,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:37,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:39,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:40,1
    - Dst: OGROCIDataSource*::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:43,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:46,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:51,1
    - Dst: VSIFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:54,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - poDSIn
    - pszTableName
    - pszGeomColIn
    - nSRIDIn
    - pszLoaderFilenameIn
    argTypes:
    - OGROCIDataSource*
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 62
    functionName: OGROCILoaderLayer::OGROCILoaderLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - OGRFeatureDefn::OGRFeatureDefn
    - VSIFOpen
    - Reference
    - OGROCIDataSource*::FetchSRS
    - CPLError
    - SetDescription
    - CPLGetConfigOption
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROCILoaderLayer::OGROCILoaderLayer(OGROCIDataSource *poDSIn,\n
      \                                    const char *pszTableName,\n                                     const
      char *pszGeomColIn, int nSRIDIn,\n                                     const
      char *pszLoaderFilenameIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFClose
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:72,1
    - Dst: VSIFClose
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:76,1
    - Dst: OGROCILoaderLayer::FinalizeNewLayer
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:77,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:80,1
    - Dst: Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: OGROCILoaderLayer::~OGROCILoaderLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFClose
    - OGROCILoaderLayer::FinalizeNewLayer
    - CPLFree
    - Dereference
    linkageType: ''
    returnType: void
    signature: void OGROCILoaderLayer::~OGROCILoaderLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:109,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:111,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:119,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:122,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:123,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:128,1
    - Dst: VSIFOpen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:129,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:129,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:132,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:134,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:138,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:138,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:142,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:143,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:144,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:145,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:146,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:147,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:148,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:149,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:150,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:151,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:152,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:153,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:160,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:162,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:164,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:166,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:167,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:169,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:171,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:172,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:174,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:176,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:177,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:181,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:182,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:185,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:186,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:187,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:190,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 196
    functionName: OGROCILoaderLayer::WriteLoaderHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintf
    - OGRFieldDefn*::GetNameRef
    - CPLResetExtensionSafe
    - GetFieldCount
    - EQUAL
    - VSIFOpen
    - OGRFieldDefn*::GetType
    - GetFieldDefn
    - CPLError
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCILoaderLayer::WriteLoaderHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: OGROCILoaderLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROCILoaderLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCILayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: OGROCILoaderLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCILayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGROCILoaderLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:235,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:235,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:241,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:248,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:250,1
    - Dst: TranslateToSDOGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:252,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:252,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:255,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:258,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:261,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:265,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:269,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:272,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:276,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:280,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:285,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:294,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:296,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:298,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:300,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:302,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:303,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:304,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:305,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:313,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:317,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:317,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:319,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:320,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:321,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:323,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:324,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:324,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:326,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:327,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:330,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:336,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:336,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:338,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:339,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:342,1
    - Dst: VSIFWrite
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:343,1
    - Dst: VSIFPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:349,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 355
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 355
    functionName: OGROCILoaderLayer::WriteFeatureStreamMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - static_cast<int>
    - CPLError
    - VSIFPrintf
    - OGRFeature*::GetFID
    - TranslateToSDOGeometry
    - GetFieldCount
    - ReportTruncation
    - VSIFWrite
    - OGRFieldDefn*::GetType
    - snprintf
    - strlen
    - GetFieldDefn
    - strcpy
    - OGRFieldDefn*::GetWidth
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCILoaderLayer::WriteFeatureStreamMode(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:364,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:372,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:373,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:373,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:378,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:385,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:387,1
    - Dst: TranslateToSDOGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:389,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:389,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:392,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:395,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:397,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:401,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:403,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:407,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:412,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:420,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:422,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:424,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:426,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:427,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:428,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:429,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:431,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:437,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:438,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:439,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:441,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:442,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:442,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:444,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:445,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:449,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:450,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:457,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:457,1
    - Dst: ReportTruncation
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:459,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:460,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:464,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:465,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:469,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:477,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:478,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:478,1
    - Dst: VSIFWrite
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:480,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:482,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 488
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 488
    functionName: OGROCILoaderLayer::WriteFeatureVariableMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCIStringBuf::GetString
    - OGRFeature*::IsFieldSetAndNotNull
    - OGROCIStringBuf::OGROCIStringBuf
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - strlen
    - OGRFeature*::GetFID
    - ReportTruncation
    - GetFieldCount
    - OGROCIStringBuf::Appendf
    - OGRFieldDefn*::GetType
    - snprintf
    - OGROCIStringBuf::Append
    - OGRFeature*::GetGeometryRef
    - TranslateToSDOGeometry
    - VSIFWrite
    - strcpy
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCILoaderLayer::WriteFeatureVariableMode(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: OGROCILoaderLayer::WriteFeatureBinaryMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCILoaderLayer::WriteFeatureBinaryMode(OGRFeature * /*poFeature*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCILoaderLayer::WriteLoaderHeader
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:507,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:512,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:513,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:518,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:522,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:523,1
    - Dst: OGROCILoaderLayer::WriteFeatureStreamMode
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:530,1
    - Dst: OGROCILoaderLayer::WriteFeatureVariableMode
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:532,1
    - Dst: OGROCILoaderLayer::WriteFeatureBinaryMode
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 537
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 537
    functionName: OGROCILoaderLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - OGROCILoaderLayer::WriteFeatureVariableMode
    - OGRFeature*::GetFID
    - OGROCILoaderLayer::WriteFeatureStreamMode
    - OGROCILoaderLayer::WriteFeatureBinaryMode
    - OGROCILoaderLayer::WriteLoaderHeader
    - Merge
    - OGRFeature*::SetFID
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROCILoaderLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:549,1
    - Dst: OGROCILayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: OGROCILoaderLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGROCILayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGROCILoaderLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: OGROCILoaderLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROCILoaderLayer::GetFeatureCount(int /* bForce */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::OGROCIStringBuf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:593,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:596,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:616,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:621,1
    - Dst: ParseDIMINFO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:626,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:631,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:632,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:634,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:636,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:641,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:645,1
    - Dst: OGROCIStringBuf::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:647,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:647,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:647,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:647,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:649,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:654,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:656,1
    - Dst: OGROCIStringBuf::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp:656,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 658
    functionName: OGROCILoaderLayer::FinalizeNewLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociloaderlayer.cpp
    functionUses: 1
    functionsReached:
    - ParseDIMINFO
    - OGROCIStringBuf::GetString
    - static_cast<int>
    - GetSession
    - OGROCIStringBuf::OGROCIStringBuf
    - OGROCIStringBuf::Appendf
    - strlen
    - OGROCIStringBuf::Append
    - CPLError
    - OGROCIStatement::Execute
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGROCILoaderLayer::FinalizeNewLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISession::OGROCISession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:19,1
    - Dst: OGROCISession::EstablishSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:21,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:24,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:27,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:31,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:32,1
    - Dst: OGROCIStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:41,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:61,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:62,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:63,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:64,1
    - Dst: OGROCIStatement::BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:66,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:68,1
    - Dst: OGROCIStatement::BindScalar
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:70,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:71,1
    - Dst: OGROCIStatement::BindObject
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:73,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:75,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:83,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:84,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:87,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:88,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:90,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:92,1
    - Dst: OCIObjectNew
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:93,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:96,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:97,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:99,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:111,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:130,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:131,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:132,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:135,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:137,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:137,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:141,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:159,1
    - Dst: OCINumberFromReal
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:160,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:161,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:164,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:166,1
    - Dst: OCICollAppend
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:166,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:167,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:168,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:171,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:180,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:181,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:182,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:186,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:188,1
    - Dst: OCINumberFromInt
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:189,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:190,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:193,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:209,1
    - Dst: OCIStmtExecute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:210,1
    - Dst: OGROCIStatement::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:210,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:215,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:218,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp:219,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 220
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/fastload.cpp
    functionUses: 22
    functionsReached:
    - OGROCIStatement::BindObject
    - OGROCISession::EstablishSession
    - reinterpret_cast<dvoid **>
    - printf
    - OGROCIStatement::BindScalar
    - OCINumberFromInt
    - OGROCISession::Failed
    - OGROCIStatement::Prepare
    - OGROCIStatement::Execute
    - OCIStmtExecute
    - static_cast<dvoid *>
    - OCICollAppend
    - OGROCIStatement::GetStatement
    - OCIObjectNew
    - OGROCISession::OGROCISession
    - exit
    - sprintf
    - OCINumberFromReal
    - memset
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISession::OGROCISession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:27,1
    - Dst: OGROCISession*::EstablishSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pszUserid
    - pszPassword
    - pszDatabase
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: OGRGetOCISession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 1
    functionsReached:
    - OGROCISession::OGROCISession
    - OGROCISession*::EstablishSession
    linkageType: ''
    returnType: OGROCISession
    signature: "OGROCISession *OGRGetOCISession(const char *pszUserid, const char
      *pszPassword,\n                                const char *pszDatabase)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: OGROCISession::OGROCISession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCISession::OGROCISession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:69,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:69,1
    - Dst: OCISessionEnd
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:73,1
    - Dst: OCIServerDetach
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:76,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:79,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:79,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:82,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:82,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:85,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:85,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:88,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:88,1
    - Dst: OCIHandleFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:92,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:95,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:96,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: OGROCISession::~OGROCISession()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 0
    functionsReached:
    - OCIServerDetach
    - OCISessionEnd
    - OCIHandleFree
    - CPLFree
    - static_cast<dvoid *>
    linkageType: ''
    returnType: void
    signature: void OGROCISession::~OGROCISession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:118,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:132,1
    - Dst: OCIEnvCreate
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:132,1
    - Dst: static_cast<OCIEnv **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:132,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:139,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:139,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:139,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:140,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:150,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:150,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:150,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:151,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:157,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:157,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:157,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:158,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:164,1
    - Dst: OCIServerAttach
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:164,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:166,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:166,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:167,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:167,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:176,1
    - Dst: OCIAttrSet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:176,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:176,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:177,1
    - Dst: static_cast<OCIError *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:178,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:183,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:183,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:183,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:184,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:190,1
    - Dst: OCIAttrSet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:191,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:191,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:192,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:192,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:193,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:198,1
    - Dst: OCIAttrSet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:198,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:199,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:200,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:200,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:201,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:210,1
    - Dst: OCISessionBegin
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:210,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:213,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:221,1
    - Dst: OCIAttrSet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:221,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:221,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:222,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:232,1
    - Dst: OCIHandleAlloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:232,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:232,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:243,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:245,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:245,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:246,1
    - Dst: OGROCISession::PinTDO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:249,1
    - Dst: OGROCISession::PinTDO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:258,1
    - Dst: OGROCISession::PinTDO
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:267,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:274,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:275,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:276,1
    - Dst: OCIServerVersion
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:284,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:284,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:294,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:298,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:302,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:308,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:309,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:310,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:321,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:327,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - pszUseridIn
    - pszPasswordIn
    - pszDatabaseIn
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 336
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 336
    functionName: OGROCISession::EstablishSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 1
    functionsReached:
    - OGROCISession::PinTDO
    - atoi
    - CPLDebug
    - static_cast<OCIError *>
    - reinterpret_cast<text *>
    - reinterpret_cast<dvoid **>
    - OCIServerAttach
    - CPLStrdup
    - OCIEnvCreate
    - OCIDescribeAny
    - OCIServerVersion
    - OGROCISession::Failed
    - strlen
    - OGROCIStatement::Execute
    - static_cast<dvoid *>
    - static_cast<OCIEnv **>
    - static_cast<int>
    - OCISessionBegin
    - OCIHandleAlloc
    - const_cast<char *>
    - CSLDestroy
    - EQUAL
    - OCIAttrSet
    linkageType: ''
    returnType: int
    signature: "int OGROCISession::EstablishSession(const char *pszUseridIn,\n                                    const
      char *pszPasswordIn,\n                                    const char *pszDatabaseIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCIErrorGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:355,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:355,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:356,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:361,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:367,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:372,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - nStatus
    - pszFunction
    argTypes:
    - sword
    - char*
    constantsTouched: []
    func_position:
      end: 390
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 390
    functionName: OGROCISession::Failed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - reinterpret_cast<text *>
    - static_cast<dvoid *>
    - OCIErrorGet
    linkageType: ''
    returnType: int
    signature: int OGROCISession::Failed(sword nStatus, const char *pszFunction)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:410,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:410,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:415,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:415,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:420,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:420,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:425,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:425,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:432,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:439,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:442,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:443,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:452,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:454,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:466,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:466,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:470,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:470,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:475,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:482,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:485,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:486,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:487,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:491,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:493,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:497,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:504,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:508,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:513,1
    - Dst: OGRFieldDefn*::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:516,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:527,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:531,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 80
    argCount: 4
    argNames:
    - hParamDesc
    - poOGRDefn
    - pnOCIType
    - pnOCILen
    argTypes:
    - OCIParam*
    - OGRFieldDefn*
    - ub2*
    - ub4*
    constantsTouched: []
    func_position:
      end: 542
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 542
    functionName: OGROCISession::GetParamInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::SetNullable
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::SetWidth
    - strncpy
    - OCIAttrGet
    - CPLDebug
    - OGROCISession::Failed
    - OGRFieldDefn*::SetTZFlag
    - CPLError
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGROCISession::GetParamInfo(OCIParam *hParamDesc,\n                                   OGRFieldDefn
      *poOGRDefn, ub2 *pnOCIType,\n                                   ub4 *pnOCILen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:555,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:560,1
    - Dst: CPLToupper
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:561,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 567
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 567
    functionName: OGROCISession::CleanName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - static_cast<char>
    - strlen
    - CPLToupper
    linkageType: ''
    returnType: void
    signature: void OGROCISession::CleanName(char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:582,1
    - Dst: OCIDescribeAny
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:582,1
    - Dst: reinterpret_cast<text *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:584,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:584,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:585,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:590,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:590,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:590,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:592,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:597,1
    - Dst: OCIAttrGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:597,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:597,1
    - Dst: static_cast<dvoid *>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:599,1
    - Dst: OGROCISession::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:604,1
    - Dst: OCIObjectPin
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:604,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 611
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 611
    functionName: OGROCISession::PinTDO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp
    functionUses: 1
    functionsReached:
    - const_cast<char *>
    - OCIDescribeAny
    - OCIAttrGet
    - OGROCISession::Failed
    - reinterpret_cast<text *>
    - strlen
    - OCIObjectPin
    - reinterpret_cast<dvoid **>
    - static_cast<dvoid *>
    linkageType: ''
    returnType: OCIType
    signature: OCIType *OGROCISession::PinTDO(const char *pszType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: OGROCIStringBuf::OGROCIStringBuf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 18
    functionsReached:
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::OGROCIStringBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: OGROCIStringBuf::~OGROCIStringBuf()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::~OGROCIStringBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::UpdateEnd
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:46,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nCharacters
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: OGROCIStringBuf::MakeRoomFor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 1
    functionsReached:
    - OGROCIStringBuf::UpdateEnd
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::MakeRoomFor(int nCharacters)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCIStringBuf::MakeRoomFor
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:64,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszNewText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: OGROCIStringBuf::Append
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 14
    functionsReached:
    - strcat
    - OGROCIStringBuf::MakeRoomFor
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::Append(const char *pszNewText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:81,1
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:85,1
    - Dst: CPLvsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:86,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:87,1
    - Dst: OGROCIStringBuf::Append
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:89,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - nMax
    - pszFormat
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: OGROCIStringBuf::Appendf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 11
    functionsReached:
    - va_start
    - va_end
    - OGROCIStringBuf::Append
    - CPLMalloc
    - CPLFree
    - CPLvsnprintf
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::Appendf(int nMax, const char *pszFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:101,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: OGROCIStringBuf::UpdateEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - strlen
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::UpdateEnd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: OGROCIStringBuf::StealString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 3
    functionsReached:
    - CPLMalloc
    linkageType: ''
    returnType: char
    signature: char *OGROCIStringBuf::StealString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: OGROCIStringBuf::GetLast
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char OGROCIStringBuf::GetLast()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: OGROCIStringBuf::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrocistringbuf.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCIStringBuf::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROCISelectLayer::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:30,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:31,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:31,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:33,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - poDSIn
    - pszQuery
    - poDescribedCommand
    argTypes:
    - OGROCIDataSource*
    - char*
    - OGROCIStatement*
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: OGROCISelectLayer::OGROCISelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - ResetReading
    - SetDescription
    - OGROCISelectLayer::ReadTableDefinition
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROCISelectLayer::OGROCISelectLayer(OGROCIDataSource *poDSIn,\n
      \                                    const char *pszQuery,\n                                     OGROCIStatement
      *poDescribedCommand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: OGROCISelectLayer::~OGROCISelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROCISelectLayer::~OGROCISelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:58,1
    - Dst: OCIParamGet
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:71,1
    - Dst: OGROCIStatement*::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:72,1
    - Dst: reinterpret_cast<dvoid **>
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:73,1
    - Dst: OGROCISession*::GetParamInfo
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:78,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:82,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:84,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:85,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:85,1
    - Dst: OGROCIStatement*::GetResultDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:96,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:98,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:99,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:105,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:107,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:108,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:108,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:111,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:113,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:117,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:118,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp:120,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - poCommand
    argTypes:
    - OGROCIStatement*
    constantsTouched: []
    func_position:
      end: 126
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 126
    functionName: OGROCISelectLayer::ReadTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::Reference
    - OGRFieldDefn::GetNameRef
    - OGRFeatureDefn*::GetFieldCount
    - CPLStrdup
    - GetSession
    - OGROCISession*::GetParamInfo
    - OGROCIStatement*::GetResultDefn
    - OGRFeatureDefn*::SetGeomType
    - OGROCIStatement*::GetStatement
    - OGRFeatureDefn*::GetFieldIndex
    - EQUAL
    - reinterpret_cast<dvoid **>
    - OCIParamGet
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: 'OGRFeatureDefn *

      OGROCISelectLayer::ReadTableDefinition(OGROCIStatement *poCommand)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGetOCISession
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:30,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:32,1
    - Dst: OGROCIStatement::Execute
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:36,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:37,1
    - Dst: OGROCIStatement::SimpleFetchRow
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:39,1
    - Dst: OGROCIStatement::GetResultDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:41,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:45,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:48,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/oci/ocitest.cpp
    functionUses: 22
    functionsReached:
    - OGRGetOCISession
    - exit
    - printf
    - OGROCIStatement::Execute
    - OGROCIStatement::GetResultDefn
    - OGRFeatureDefn*::GetFieldDefn
    - OGROCIStatement::SimpleFetchRow
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char **papszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: OGRSOSIDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: OGRSOSISimpleDataType::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: OGRSOSISimpleDataType::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: '&operator=(const OGRSOSIDataType &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSOSIDataType
    signature: OGRSOSIDataType &operator=(const OGRSOSIDataType &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: '&operator=(OGRSOSIDataType &&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSOSIDataType
    signature: OGRSOSIDataType &operator=(OGRSOSIDataType &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSISimpleDataType::OGRSOSISimpleDataType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oSrc
    argTypes:
    - OGRSOSIDataType
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: OGRSOSIDataType::OGRSOSIDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached:
    - OGRSOSISimpleDataType::OGRSOSISimpleDataType
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataType(const OGRSOSIDataType &oSrc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - oSrc
    argTypes:
    - OGRSOSIDataType
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OGRSOSIDataType::OGRSOSIDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataType(OGRSOSIDataType &&oSrc) noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGRSOSIDataType::getElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSOSISimpleDataType
    signature: OGRSOSISimpleDataType *getElements()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OGRSOSIDataType::getElementCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogr_sosi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getElementCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LC_Init
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:32,1
    - Dst: SOSIInitTypes
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: OGRSOSIInit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp
    functionUses: 0
    functionsReached:
    - LC_Init
    - SOSIInitTypes
    linkageType: ''
    returnType: void
    signature: void OGRSOSIInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LC_Close
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:47,1
    - Dst: SOSICleanupTypes
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - GDALDriver *poDriver
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: OGRSOSIDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp
    functionUses: 0
    functionsReached:
    - LC_Close
    - SOSICleanupTypes
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDriverUnload(CPL_UNUSED GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSIDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:59,1
    - Dst: OGRSOSIInit
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:62,1
    - Dst: OGRSOSIDataSource::OGRSOSIDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:64,1
    - Dst: OGRSOSIDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: OGRSOSIDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSIDataSource::OGRSOSIDataSource
    - OGRSOSIInit
    - OGRSOSIDriverIdentify
    - OGRSOSIDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSOSIDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSIInit
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:84,1
    - Dst: OGRSOSIDataSource::OGRSOSIDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:85,1
    - Dst: OGRSOSIDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: OGRSOSIDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSIDataSource::OGRSOSIDataSource
    - OGRSOSIInit
    - OGRSOSIDataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRSOSIDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                    CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                   CPL_UNUSED GDALDataType eDT, CPL_UNUSED char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:101,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:104,1
    - Dst: OGRSOSIDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:105,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: RegisterOGRSOSI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRSOSIDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRSOSI()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: OGRSOSIDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp
    functionUses: 1
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRSOSIDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:54,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: OGRSOSIDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:67,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:71,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:73,1
    - Dst: OGRSOSIDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:76,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: DeclareDeferredOGRSOSIPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - auto::SetMetadataItem
    - GetGDALDriverManager
    - OGRSOSIDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRSOSIPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp:31,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp:34,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - feil_nr
    - logtx
    - vartx
    argTypes:
    - short
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: LC_Error
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: void LC_Error(short feil_nr, const char *logtx, const char *vartx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszFilnavn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: LC_StartMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LC_StartMessage(const char *pszFilnavn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prosent
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: LC_ShowMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LC_ShowMessage(double prosent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: LC_EndMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LC_EndMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: LC_Cancel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/fyba_melding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short LC_Cancel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:34,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:34,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:35,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:36,1
    - Dst: OGRSOSILayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - poPar
    - poFeatDefn
    - poFil
    - poHeadDefn
    argTypes:
    - OGRSOSIDataSource*
    - OGRFeatureDefn*
    - LC_FILADM*
    - S2I*
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: OGRSOSILayer::OGRSOSILayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSILayer::ResetReading
    - GetGeomFieldDefn
    - SetDescription
    - GetGeomFieldCount
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRSOSILayer::OGRSOSILayer(OGRSOSIDataSource *poPar, OGRFeatureDefn
      *poFeatDefn,\n                           LC_FILADM *poFil, S2I *poHeadDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: OGRSOSILayer::~OGRSOSILayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRSOSILayer::~OGRSOSILayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OGRSOSILayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRSOSILayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: OGRSOSILayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSOSILayer::CreateField(OGRFieldDefn *poField,\n                                 CPL_UNUSED
      int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:77,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:96,1
    - Dst: LC_NyGr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:101,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:105,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:111,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:112,1
    - Dst: LC_PutGi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:115,1
    - Dst: LC_WsGr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: OGRSOSILayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - LC_NyGr
    - OGRFeature*::GetFieldAsString
    - GetGeomType
    - LC_WsGr
    - LC_PutGi
    - snprintf
    - CPLError
    - OGRFeature*::GetFieldCount
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSOSILayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:153,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:154,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:157,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:160,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:162,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:163,1
    - Dst: std::map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:165,1
    - Dst: std::pair<std::string, std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:165,1
    - Dst: LC_NextBgr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:170,1
    - Dst: LC_RxGr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:173,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:186,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:187,1
    - Dst: S2S::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:188,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:189,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:201,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:201,1
    - Dst: S2S::count
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:203,1
    - Dst: std::map::count
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:204,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:204,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:210,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:213,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:213,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:216,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:220,1
    - Dst: S2S::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:221,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:222,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:225,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:236,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:244,1
    - Dst: LC_InitGetRefFlate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:253,1
    - Dst: LC_GetRefFlate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:261,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:270,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:272,1
    - Dst: auto::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:275,1
    - Dst: auto::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:279,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:280,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:291,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:295,1
    - Dst: LC_GetRefFlate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:297,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:303,1
    - Dst: auto::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:304,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:305,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:305,1
    - Dst: LC_GetRefFlate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:308,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:314,1
    - Dst: std::unique_ptr::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:317,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:318,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:318,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:320,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:329,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:337,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:339,1
    - Dst: std::unique_ptr::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:342,1
    - Dst: std::unique_ptr::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:346,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:352,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:360,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:365,1
    - Dst: LC_GetRefFlate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:368,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:371,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:385,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:392,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:394,1
    - Dst: OGRLineString*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:394,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:401,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:405,1
    - Dst: toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:412,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:414,1
    - Dst: OGRMultiPoint*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:414,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:427,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:431,1
    - Dst: toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:438,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:439,1
    - Dst: OGRPoint*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:439,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:449,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:457,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:462,1
    - Dst: S2S::begin
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:466,1
    - Dst: S2S::end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:466,1
    - Dst: SOSIGetType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:469,1
    - Dst: OGRSOSIDataType*::getElements
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:470,1
    - Dst: OGRSOSIDataType*::getElementCount
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:475,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:480,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:480,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:482,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:487,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:489,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:492,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:497,1
    - Dst: SOSITypeToInt
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:497,1
    - Dst: SOSITypeToDate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:503,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:504,1
    - Dst: SOSITypeToDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:510,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:512,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:514,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:519,1
    - Dst: SOSITypeToReal
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:519,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:529,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:532,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:536,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:543,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:546,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:548,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:548,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:549,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:553,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:553,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:554,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 199
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 559
    functionName: OGRSOSILayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - SOSIGetType
    - SOSITypeToInt
    - LC_GetRefFlate
    - SOSITypeToDate
    - OGRLineString*::clone
    - CPLDebug
    - toMultiPoint
    - strncpy
    - std::map::insert
    - OGRLineString*::getNumPoints
    - OGRMultiPoint*::clone
    - strcmp
    - CPLString
    - auto::addRingDirectly
    - std::unique_ptr::addSubLineString
    - CPLError
    - std::map::count
    - auto::addSubLineString
    - std::pair<CPLString, CPLString>
    - LC_InitGetRefFlate
    - SOSITypeToReal
    - std::string::find
    - std::unique_ptr::release
    - OGRSOSIDataType*::getElementCount
    - find
    - GetGeomType
    - S2S::insert
    - CPLString::c_str
    - std::move
    - CSLTokenizeString2
    - std::unique_ptr::reset
    - CPLStringList::size
    - std::make_unique<OGRLinearRing>
    - GetName
    - SOSITypeToDateTime
    - OGRGeometry*::getGeometryType
    - OGRFeature*::SetGeometryDirectly
    - S2S::begin
    - getGeometryType
    - static_cast<float>
    - OGRLinearRing::OGRLinearRing
    - toLineString
    - Evaluate
    - toPoint
    - FilterGeometry
    - std::pair<std::string, std::string>
    - GetType
    - append
    - std::unique_ptr::closeRings
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRGeometry*::toLineString
    - std::make_unique<OGRPolygon>
    - CPLString::append
    - std::string::length
    - std::unique_ptr::getNumPoints
    - OGRFeature*::GetGeometryRef
    - auto::closeRings
    - auto::release
    - S2S::count
    - LC_NextBgr
    - OGRSOSIDataType*::getElements
    - CSLDestroy
    - OGRPoint*::clone
    - std::unique_ptr::assignSpatialReference
    - S2S::end
    - OGRFeature*::SetField
    - std::string
    - LC_RxGr
    - std::string::substr
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSOSILayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LC_SBSn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:566,1
    - Dst: LC_InitNextBgr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: OGRSOSILayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 1
    functionsReached:
    - LC_InitNextBgr
    - LC_SBSn
    linkageType: ''
    returnType: void
    signature: void OGRSOSILayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:580,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 588
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 588
    functionName: OGRSOSILayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosilayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRSOSILayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - nEPSG
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 80
    functionName: epsg2sosi
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int epsg2sosi(int nEPSG)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - nSOSI
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 134
    functionName: sosi2epsg
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int sosi2epsg(int nSOSI)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: OGRSOSIDataSource::OGRSOSIDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::OGRSOSIDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:177,1
    - Dst: LC_CloseSos
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:193,1
    - Dst: LC_CloseBase
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:195,1
    - Dst: LC_CloseSos
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:200,1
    - Dst: LC_CloseBase
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:202,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:213,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 218
    functionName: OGRSOSIDataSource::~OGRSOSIDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - Release
    - LC_CloseSos
    - CPLFree
    - LC_CloseBase
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::~OGRSOSIDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:224,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:225,1
    - Dst: S2I*::begin
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:228,1
    - Dst: S2I*::end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:228,1
    - Dst: SOSIGetType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:230,1
    - Dst: OGRSOSIDataType*::getElements
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:231,1
    - Dst: OGRSOSIDataType*::getElementCount
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:232,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:234,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:234,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:236,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:237,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:238,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:238,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:239,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - szName
    - szType
    - poHeaders
    - ppoHeadersNew
    argTypes:
    - char*
    - OGRwkbGeometryType
    - S2I*
    - S2I**
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: defineLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - S2I*::begin
    - OGRFeatureDefn*::AddFieldDefn
    - SOSIGetType
    - OGRFeatureDefn*::SetGeomType
    - OGRSOSIDataType*::getElementCount
    - S2I*::end
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRSOSIDataType*::getElements
    - strcmp
    - GetType
    - CPLString
    - GetName
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: "OGRFeatureDefn *defineLayer(const char *szName,\n                                   OGRwkbGeometryType
      szType, S2I *poHeaders,\n                                   S2I **ppoHeadersNew)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:258,1
    - Dst: VSIStat
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:265,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:270,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:272,1
    - Dst: LC_OpenBase
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:287,1
    - Dst: LC_OpenSos
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:288,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:288,1
    - Dst: LC_StrError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:294,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:296,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:306,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:307,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:308,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:332,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:333,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:334,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:335,1
    - Dst: LC_SBSn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:337,1
    - Dst: LC_InitNextBgr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:338,1
    - Dst: LC_NextBgr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:341,1
    - Dst: LC_RxGr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:345,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:372,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:378,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:378,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:380,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:380,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:389,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:390,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:392,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:392,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:400,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:401,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:403,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:403,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:410,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:410,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:412,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:412,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:419,1
    - Dst: OGRSOSIDataSource::buildOGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:429,1
    - Dst: OGRSOSIDataSource::buildOGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:444,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:444,1
    - Dst: OGRSOSIDataSource::buildOGRLineStringFromArc
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:452,1
    - Dst: OGRSOSIDataSource::buildOGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:462,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:462,1
    - Dst: LC_GetTransEx
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:470,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:472,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:477,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:478,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:484,1
    - Dst: S2S::find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:492,1
    - Dst: S2S::end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:493,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:496,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:500,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:504,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:534,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:545,1
    - Dst: defineLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:547,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:550,1
    - Dst: OGRSOSILayer::OGRSOSILayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:552,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:561,1
    - Dst: defineLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:563,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:566,1
    - Dst: OGRSOSILayer::OGRSOSILayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:568,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:577,1
    - Dst: defineLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:579,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:582,1
    - Dst: OGRSOSILayer::OGRSOSILayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:584,1
    - Dst: S2I::S2I
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:593,1
    - Dst: defineLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:595,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:598,1
    - Dst: OGRSOSILayer::OGRSOSILayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:600,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 191
    argCount: 2
    argNames:
    - pszFilename
    - bUpdate
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 608
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 608
    functionName: OGRSOSIDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSIDataSource::buildOGRMultiPoint
    - LC_GetTransEx
    - OGRSOSIDataSource::buildOGRLineString
    - LC_OpenBase
    - defineLayer
    - CPLString
    - CPLError
    - std::string::c_str
    - OGRSOSIDataSource::buildOGRLineStringFromArc
    - OGRSOSILayer::OGRSOSILayer
    - VSIStat
    - OGRSOSIDataSource::buildOGRPoint
    - end
    - OGRFeatureDefn*::Reference
    - static_cast<unsigned int>
    - std::string::find
    - find
    - S2I::S2I
    - SetAxisMappingStrategy
    - static_cast<int>
    - S2S::find
    - std::string::resize
    - static_cast<OGRGeometry **>
    - CPLFree
    - LC_StrError
    - LC_OpenSos
    - size
    - OGRSpatialReference::OGRSpatialReference
    - LC_NextBgr
    - VSI_MALLOC2_VERBOSE
    - CPLString::compare
    - importFromEPSG
    - S2S::end
    - LC_RxGr
    - LC_InitNextBgr
    - LC_SBSn
    linkageType: ''
    returnType: int
    signature: int OGRSOSIDataSource::Open(const char *pszFilename, int bUpdate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LC_OpenBase
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:620,1
    - Dst: LC_OpenSos
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:625,1
    - Dst: LC_NyttHode
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 635
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 635
    functionName: OGRSOSIDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - LC_OpenSos
    - LC_NyttHode
    - CPLError
    - LC_OpenBase
    linkageType: ''
    returnType: int
    signature: int OGRSOSIDataSource::Create(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:651,1
    - Dst: AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:656,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:659,1
    - Dst: GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:664,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:670,1
    - Dst: LC_PutTrans
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:671,1
    - Dst: GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:675,1
    - Dst: LC_PutTrans
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:679,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:683,1
    - Dst: LC_WsGr
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:690,1
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:694,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:696,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:702,1
    - Dst: OGRFeatureDefn*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:703,1
    - Dst: OGRFeatureDefn*::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:704,1
    - Dst: OGRSOSILayer::OGRSOSILayer
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - pszNameIn
    - poSpatialRef
    - eGType
    - papszOptions
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 709
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 709
    functionName: OGRSOSIDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - OGRFeatureDefn*::Reference
    - AutoIdentifyEPSG
    - IsSame
    - OGRFeatureDefn*::SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLDebug
    - LC_WsGr
    - LC_PutTrans
    - GetAuthorityCode
    - CPLError
    - OGRSOSILayer::OGRSOSILayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRSOSIDataSource::ICreateLayer(\n    const char *pszNameIn,
      const OGRSpatialReference *poSpatialRef,\n    OGRwkbGeometryType eGType, CPL_UNUSED
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: OGRSOSIDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRSOSIDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:731,1
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:738,1
    - Dst: OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:739,1
    - Dst: OGRMultiPoint*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nNumCoo
    - iSerial
    argTypes:
    - int
    - long
    constantsTouched: []
    func_position:
      end: 743
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 743
    functionName: OGRSOSIDataSource::buildOGRMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 1
    functionsReached:
    - LC_GetTK
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiPoint*::addGeometry
    - OGRPoint
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::buildOGRMultiPoint(int nNumCoo, long iSerial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:752,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:753,1
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:759,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - nNumCoo
    - iSerial
    argTypes:
    - int
    - long
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: OGRSOSIDataSource::buildOGRLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 1
    functionsReached:
    - LC_GetTK
    - OGRLineString::OGRLineString
    - OGRLineString*::setNumPoints
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::buildOGRLineString(int nNumCoo, long iSerial)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: sqr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double sqr(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:777,1
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:782,1
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:783,1
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:784,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:821,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:830,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:834,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - iSerial
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 837
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 837
    functionName: OGRSOSIDataSource::buildOGRLineStringFromArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 1
    functionsReached:
    - LC_GetTK
    - OGRLineString*::setNumPoints
    - CPLError
    - OGRLineString::OGRLineString
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::buildOGRLineStringFromArc(long iSerial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LC_GetTK
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:842,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iSerial
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 844
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 844
    functionName: OGRSOSIDataSource::buildOGRPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatasource.cpp
    functionUses: 1
    functionsReached:
    - LC_GetTK
    - OGRPoint::OGRPoint
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataSource::buildOGRPoint(long iSerial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSISimpleDataType::OGRSOSISimpleDataType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: OGRSOSIDataType::OGRSOSIDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSISimpleDataType::OGRSOSISimpleDataType
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataType::OGRSOSIDataType(int nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: OGRSOSIDataType::~OGRSOSIDataType()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSOSIDataType::~OGRSOSIDataType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nIndex
    - name
    - type
    argTypes:
    - int
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: OGRSOSIDataType::setElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached:
    - setType
    linkageType: ''
    returnType: void
    signature: "void OGRSOSIDataType::setElement(int nIndex, const char *name,\n                                 OGRFieldType
      type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: OGRSOSISimpleDataType::OGRSOSISimpleDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSOSISimpleDataType::OGRSOSISimpleDataType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSISimpleDataType::setType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: OGRSOSISimpleDataType::OGRSOSISimpleDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 2
    functionsReached:
    - OGRSOSISimpleDataType::setType
    linkageType: ''
    returnType: void
    signature: "void OGRSOSISimpleDataType::OGRSOSISimpleDataType(const char *name,\n
      \                                            OGRFieldType type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: OGRSOSISimpleDataType::setType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSOSISimpleDataType::setType(const char *name, OGRFieldType
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: C2F*::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:44,1
    - Dst: std::pair<CPLString, OGRSOSIDataType>
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:44,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - key
    - type
    argTypes:
    - C2F*
    - char*
    - OGRSOSIDataType*
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: addType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    - C2F*::insert
    - std::pair<CPLString, OGRSOSIDataType>
    linkageType: ''
    returnType: void
    signature: void addType(C2F *map, const char *key, OGRSOSIDataType *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSOSIDataType::OGRSOSIDataType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:50,1
    - Dst: OGRSOSIDataType*::setElement
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:51,1
    - Dst: addType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - map
    - key
    - gmlKey
    - type
    argTypes:
    - C2F*
    - char*
    - char*
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: addSimpleType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached:
    - OGRSOSIDataType::OGRSOSIDataType
    - addType
    - OGRSOSIDataType*::setElement
    linkageType: ''
    returnType: void
    signature: "void addSimpleType(C2F *map, const char *key, const char *gmlKey,\n
      \                         OGRFieldType type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:58,1
    - Dst: C2F::C2F
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:59,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:63,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:64,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:65,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:66,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:67,1
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: SOSIInitTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - C2F::C2F
    - addSimpleType
    linkageType: ''
    returnType: void
    signature: void SOSIInitTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: SOSICleanupTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SOSICleanupTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: SOSITypeToInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int SOSITypeToInt(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: SOSITypeToReal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double SOSITypeToReal(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:90,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:91,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:93,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - date
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: SOSITypeToDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    - atoi
    linkageType: ''
    returnType: void
    signature: void SOSITypeToDate(const char *value, int *date)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:101,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:102,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:104,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:106,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:108,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:117,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:119,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - value
    - date
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: SOSITypeToDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    - strlen
    - atoi
    linkageType: ''
    returnType: void
    signature: void SOSITypeToDateTime(const char *value, int *date)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:126,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:126,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:126,1
    - Dst: SOSIGetType
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: SOSIGetTypeFallback
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - addSimpleType
    - SOSIGetType
    linkageType: ''
    returnType: OGRSOSIDataType
    signature: OGRSOSIDataType *SOSIGetTypeFallback(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:132,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:133,1
    - Dst: SOSIGetTypeFallback
      Src: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: SOSIGetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sosi/ogrsosidatatypes.cpp
    functionUses: 3
    functionsReached:
    - SOSIGetTypeFallback
    - end
    - find
    linkageType: ''
    returnType: OGRSOSIDataType
    signature: OGRSOSIDataType *SOSIGetType(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:27,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:28,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:29,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:31,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:34,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:34,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:37,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:39,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:39,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:42,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:44,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:44,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:47,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:49,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:49,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:51,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:53,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 56
    functionName: GetHeaders
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - CPLStringList::AddString
    - CPLStringList::AddNameValue
    - std::string::c_str
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: CPLStringList
    signature: "CPLStringList GetHeaders(const std::string &osUserPwdIn = \"\",\n
      \                               const std::string &osConnectTimeout = \"\",\n
      \                               const std::string &osTimeout = \"\",\n                                const
      std::string &osRetryCount = \"\",\n                                const std::string
      &osRetryDelay = \"\")"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OGRNGWDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRNGWDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:73,1
    - Dst: OGRNGWDataset::OGRNGWDataset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:78,1
    - Dst: OGRNGWDataset*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: OGRNGWDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWDataset*::Open
    - OGRNGWDriverIdentify
    - OGRNGWDataset::OGRNGWDataset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRNGWDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::ParseUri
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:103,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:107,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:111,1
    - Dst: NGWAPI::Uri::osAddress::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:112,1
    - Dst: NGWAPI::Uri::osResourceId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:112,1
    - Dst: NGWAPI::Uri::osNewResourceName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:113,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:115,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:116,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:117,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:118,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:120,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:122,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:123,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:124,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:126,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:129,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:131,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:135,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:135,1
    - Dst: NGWAPI::Uri::osResourceId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:135,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:138,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:139,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:140,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:141,1
    - Dst: NGWAPI::CreateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:143,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:144,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:145,1
    - Dst: OGRNGWDataset::OGRNGWDataset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:151,1
    - Dst: OGRNGWDataset*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 161
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 161
    functionName: OGRNGWDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - GetHeaders
    - CPLErrorReset
    - NGWAPI::Uri::osAddress::c_str
    - NGWAPI::Uri::osResourceId::c_str
    - atoi
    - NGWAPI::ParseUri
    - CPLJSONObject::CPLJSONObject
    - CSLFetchNameValueDef
    - CPLJSONObject::Add
    - OGRNGWDataset*::Open
    - CPLDebug
    - NGWAPI::Uri::osNewResourceName::c_str
    - NGWAPI::CreateResource
    - OGRNGWDataset::OGRNGWDataset
    - CPLError
    - CPLJSONObject::Format
    - CPLGetConfigOption
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRNGWDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::ParseUri
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:168,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:173,1
    - Dst: NGWAPI::Uri::osNewResourceName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:177,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:186,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:190,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:191,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:192,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:193,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:194,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:196,1
    - Dst: NGWAPI::DeleteResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 203
    functionName: OGRNGWDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - CPLErrorReset
    - NGWAPI::Uri::osNewResourceName::empty
    - NGWAPI::ParseUri
    - NGWAPI::DeleteResource
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWDriverDelete(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::ParseUri
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:210,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:211,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:214,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:218,1
    - Dst: NGWAPI::Uri::osAddress::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:219,1
    - Dst: NGWAPI::Uri::osResourceId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:219,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:221,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:222,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:223,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:224,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:225,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:227,1
    - Dst: NGWAPI::RenameResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pszNewName
    - pszOldName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: OGRNGWDriverRename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - CPLErrorReset
    - NGWAPI::Uri::osAddress::c_str
    - NGWAPI::Uri::osResourceId::c_str
    - NGWAPI::ParseUri
    - CPLDebug
    - NGWAPI::RenameResource
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWDriverRename(const char *pszNewName, const char *pszOldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::ParseUri
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:246,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:247,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:259,1
    - Dst: GDALDataset*::GetDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:259,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:261,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:265,1
    - Dst: GDALDriver*::CreateCopy
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:267,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:268,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:269,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:274,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:279,1
    - Dst: GDALDataset*::GetDriverName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:281,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:286,1
    - Dst: GDALDataset*::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:289,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:290,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:293,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:294,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:294,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:303,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:304,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:308,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:311,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:312,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:313,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:314,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:316,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:319,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:320,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:321,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:322,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:323,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:324,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:325,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:326,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:329,1
    - Dst: NGWAPI::UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:332,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:337,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:337,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:340,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:345,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:346,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:346,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:348,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:349,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:355,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:357,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:358,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:359,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:361,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:364,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:366,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:370,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:370,1
    - Dst: NGWAPI::Uri::osResourceId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:370,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:373,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:376,1
    - Dst: NGWAPI::CreateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:378,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:380,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:388,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:396,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:399,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:403,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:407,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:411,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:417,1
    - Dst: NGWAPI::UploadFile
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:421,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:423,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:424,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:426,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:428,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:433,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:438,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:442,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:444,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:444,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:444,1
    - Dst: NGWAPI::CreateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:446,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:448,1
    - Dst: OGRNGWDataset::OGRNGWDataset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:456,1
    - Dst: OGRNGWDataset*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:458,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 466
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 466
    functionName: OGRNGWDriverCreateCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - OGRNGWDataset::OGRNGWDataset
    - CPLError
    - GDALDataset*::GetRasterCount
    - EQUALN
    - std::string::c_str
    - CPLGetConfigOption
    - CPLGetExtensionSafe
    - GDALClose
    - std::string::empty
    - GDALGetDataTypeName
    - auto::c_str
    - CPLErrorReset
    - GDALDataset*::GetFileList
    - NGWAPI::ParseUri
    - CPLJSONArray::IsValid
    - GDALDataset*::GetDriverName
    - OGRNGWDataset*::Open
    - GetGDALDriverManager
    - std::move
    - CPLStringList::size
    - CPLGenerateTempFilenameSafe
    - GetHeaders
    - const_cast<char **>
    - NGWAPI::Uri::osResourceId::c_str
    - GDALDataset*::GetRasterBand
    - CPLJSONObject::CPLJSONObject
    - VSIUnlink
    - GDALDriver*::CreateCopy
    - CPLJSONArray::Size
    - CPLJSONObject::GetArray
    - NGWAPI::UploadFile
    - CSLFetchNameValueDef
    - NGWAPI::CreateResource
    - EQUAL
    - CPLJSONObject::IsValid
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRNGWDriverCreateCopy(const char *pszFilename,\n                                           GDALDataset
      *poSrcDS, int bStrict,\n                                           char **papszOptions,\n
      \                                          GDALProgressFunc pfnProgress,\n                                           void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:474,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:479,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:481,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:482,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:483,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:484,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:485,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:486,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:487,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:488,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:489,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:490,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:491,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:492,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:493,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:496,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:497,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:499,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:501,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:502,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:504,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:550,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:605,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:617,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:620,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:622,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:623,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:624,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:625,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 635
    functionName: RegisterOGRNGW
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRNGW()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:34,1
    - Dst: GetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poBaseBandIn
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: NGWWrapperRasterBand::NGWWrapperRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - GetBlockSize
    linkageType: ''
    returnType: void
    signature: void NGWWrapperRasterBand(GDALRasterBand *poBaseBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: NGWWrapperRasterBand::RefUnderlyingRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: 'GDALRasterBand *

      NGWWrapperRasterBand::RefUnderlyingRasterBand(bool /*bForceOpen*/) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::GetTMSURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:50,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - osUrl
    - osResourceId
    - nEPSG
    - nCacheExpires
    - nCacheMaxSize
    argTypes:
    - std::string
    - std::string
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: FormGDALTMSConnectionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - NGWAPI::GetTMSURL
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *FormGDALTMSConnectionString(const std::string &osUrl,\n                                               const
      std::string &osResourceId,\n                                               int
      nEPSG, int nCacheExpires,\n                                               int
      nCacheMaxSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:88,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:91,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:92,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:94,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:96,1
    - Dst: GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:106,1
    - Dst: GetStylesIdentifiers
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:107,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:108,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:110,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - aoStyles
    - nDeep
    argTypes:
    - CPLJSONArray
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 122
    functionName: GetStylesIdentifiers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - GetString
    - GetStylesIdentifiers
    - auto::empty
    - std::move
    - GetArray
    linkageType: ''
    returnType: std::string
    signature: std::string GetStylesIdentifiers(const CPLJSONArray &aoStyles, int
      nDeep)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: OGRNGWDataset::OGRNGWDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::OGRNGWDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:142,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: OGRNGWDataset::~OGRNGWDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWDataset::FlushCache
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::~OGRNGWDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:161,1
    - Dst: NGWAPI::CheckPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:164,1
    - Dst: OGRNGWDataset::GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:165,1
    - Dst: OGRNGWDataset::IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: OGRNGWDataset::FetchPermissions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWDataset::GetHeaders
    - NGWAPI::CheckPermissions
    - OGRNGWDataset::IsUpdateMode
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::FetchPermissions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:191,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:212,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 224
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 224
    functionName: OGRNGWDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRNGWDataset::FetchPermissions
    linkageType: ''
    returnType: int
    signature: int OGRNGWDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:231,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: OGRNGWDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - OGRNGWDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRNGWDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:254,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:255,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:258,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:258,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:259,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:262,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:262,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:263,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:269,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:269,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:271,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:273,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:273,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:275,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:278,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:279,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:279,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:282,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:283,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:286,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:287,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:290,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:291,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:292,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:293,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:295,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:296,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:298,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:299,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:301,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:306,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:319,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:319,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:320,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:321,1
    - Dst: OGRNGWDataset::Init
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - osUrlIn
    - osResourceIdIn
    - papszOpenOptionsIn
    - bUpdateIn
    - nOpenFlagsIn
    argTypes:
    - std::string
    - std::string
    - char**
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 324
    functionName: OGRNGWDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - c_str
    - empty
    - atoi
    - CPLFetchBool
    - CSLFetchNameValueDef
    - CPLDebug
    - OGRNGWDataset::Init
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::Open(const std::string &osUrlIn,\n                         const
      std::string &osResourceIdIn,\n                         char **papszOpenOptionsIn,
      bool bUpdateIn,\n                         int nOpenFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::ParseUri
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:336,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:340,1
    - Dst: OGRNGWDataset::Open
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    - bUpdateIn
    - nOpenFlagsIn
    argTypes:
    - char*
    - char**
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: OGRNGWDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - NGWAPI::ParseUri
    - OGRNGWDataset::Open
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::Open(const char *pszFilename, char **papszOpenOptionsIn,\n
      \                        bool bUpdateIn, int nOpenFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:359,1
    - Dst: GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:360,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:362,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:364,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:365,1
    - Dst: NGWWrapperRasterBand::NGWWrapperRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:365,1
    - Dst: OGREnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:368,1
    - Dst: OGRNGWDataset::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:374,1
    - Dst: GDALInvGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:377,1
    - Dst: GDALApplyGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:382,1
    - Dst: GDALApplyGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:386,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:390,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:398,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - stExtent
    argTypes:
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 403
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 403
    functionName: OGRNGWDataset::SetupRasterDSWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - SetBand
    - NGWWrapperRasterBand::NGWWrapperRasterBand
    - GDALInvGeoTransform
    - GetRasterBand
    - CPLDebug
    - OGREnvelope::IsInit
    - GetRasterYSize
    - OGRNGWDataset::GetGeoTransform
    - GetRasterCount
    - GetRasterXSize
    - GDALApplyGeoTransform
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::SetupRasterDSWrapper(const OGREnvelope &stExtent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:413,1
    - Dst: OGRNGWDataset::GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:414,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:418,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:418,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:423,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:425,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:427,1
    - Dst: OGRNGWDataset::FillMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:428,1
    - Dst: OGRNGWDataset::FillCapabilities
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:433,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:434,1
    - Dst: OGRNGWDataset::FillResources
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:437,1
    - Dst: NGWAPI::CheckSupportedType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:440,1
    - Dst: OGRNGWDataset::FillCapabilities
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:443,1
    - Dst: OGRNGWDataset::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:445,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:454,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:467,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:474,1
    - Dst: CPLJSONDocument::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:475,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:476,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:481,1
    - Dst: CPLJSONObject::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:485,1
    - Dst: CPLJSONObject::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:491,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:498,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:498,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:500,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:500,1
    - Dst: OGRNGWDataset::SetupRasterDSWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:504,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:515,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:523,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:523,1
    - Dst: OGRNGWDataset::SetupRasterDSWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:527,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:531,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:533,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:534,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:536,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:537,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:539,1
    - Dst: auto::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:540,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:561,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:561,1
    - Dst: OGRNGWDataset::SetupRasterDSWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:565,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:578,1
    - Dst: GetStylesIdentifiers
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:579,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:583,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:583,1
    - Dst: OGRNGWDataset::SetupRasterDSWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:587,1
    - Dst: NGWAPI::GetCOGURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:591,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:592,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:594,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:594,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:596,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:596,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:597,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:602,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:603,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:609,1
    - Dst: OGRNGWDataset::AddRaster
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:612,1
    - Dst: OGRNGWDataset::SetupRasterDSWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:616,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:616,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 1
    argNames:
    - nOpenFlagsIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 629
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 629
    functionName: OGRNGWDataset::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRNGWDataset::FillMetadata
    - auto::GetInteger
    - OGRNGWDataset::FillCapabilities
    - CPLJSONObject::GetString
    - NGWAPI::GetResourceURL
    - CPLDebug
    - OGRNGWDataset::AddRaster
    - CPLJSONDocument::GetRoot
    - OGRNGWDataset::GetHeaders
    - CPLJSONObject::GetInteger
    - CPLJSONDocument::LoadUrl
    - auto::c_str
    - OGRNGWDataset::AddLayer
    - CPLJSONObject::GetBool
    - OGREnvelope
    - OGRNGWDataset::SetupRasterDSWrapper
    - CPLJSONDocument::LoadMemory
    - c_str
    - NGWAPI::GetCOGURL
    - FromHandle
    - auto::empty
    - OGRNGWDataset::FillResources
    - CPLJSONObject::GetArray
    - NGWAPI::CheckSupportedType
    - GDALOpenEx
    - std::string
    - GetStylesIdentifiers
    - CPLJSONObject::IsValid
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWDataset::Init(int nOpenFlagsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:637,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:643,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:647,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:649,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:649,1
    - Dst: CPLJSONDocument::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:655,1
    - Dst: NGWAPI::GetChildrenURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:656,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:660,1
    - Dst: OGRNGWDataset::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:666,1
    - Dst: OGRNGWDataset::AddRaster
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:671,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - aosHTTPOptions
    - nOpenFlagsIn
    argTypes:
    - CPLStringList
    - int
    constantsTouched: []
    func_position:
      end: 676
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 676
    functionName: OGRNGWDataset::FillResources
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - NGWAPI::GetChildrenURL
    - OGRNGWCodedFieldDomain::GetID
    - OGRNGWDataset::AddRaster
    - CPLJSONDocument::GetRoot
    - std::move
    - CPLJSONDocument::LoadUrl
    - CPLJSONDocument::CPLJSONDocument
    - OGRNGWDataset::AddLayer
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::FillResources(const CPLStringList &aosHTTPOptions,\n
      \                                 int nOpenFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:685,1
    - Dst: NGWAPI::CheckSupportedType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:686,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:692,1
    - Dst: OGRNGWLayer::OGRNGWLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:695,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:696,1
    - Dst: OGRNGWLayerPtr::GetResourceId
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:697,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:702,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:704,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:710,1
    - Dst: OGRNGWDataset::AddRaster
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - oResourceJsonObject
    - aosHTTPOptions
    - nOpenFlagsIn
    argTypes:
    - CPLJSONObject
    - CPLStringList
    - int
    constantsTouched: []
    func_position:
      end: 717
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 717
    functionName: OGRNGWDataset::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 2
    functionsReached:
    - CPLJSONObject::GetBool
    - OGRNGWLayerPtr::GetResourceId
    - CPLJSONObject::GetString
    - OGRNGWDataset::AddRaster
    - CPLJSONDocument::GetRoot
    - OGRNGWLayer::OGRNGWLayer
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckSupportedType
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRNGWDataset::AddLayer(const CPLJSONObject &oResourceJsonObject,\n
      \                            const CPLStringList &aosHTTPOptions,\n                             int
      nOpenFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:724,1
    - Dst: NGWAPI::CheckSupportedType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:725,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:730,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:731,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:733,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:738,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:738,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:739,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:741,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:741,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:742,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:742,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:743,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:745,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:745,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:746,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:747,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - oRasterJsonObj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 751
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 751
    functionName: OGRNGWDataset::AddRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - OGRPGTableLayer::SetMetadataItem
    - CPLJSONObject::GetString
    - auto::empty
    - CPLDebug
    - CPLSPrintf
    - NGWAPI::CheckSupportedType
    - auto::c_str
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::AddRaster(const CPLJSONObject &oRasterJsonObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:762,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:767,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:769,1
    - Dst: OGRNGWDataset::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:777,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:785,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:786,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:792,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:796,1
    - Dst: OGRSpatialReference*::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:797,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:802,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:807,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:809,1
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:815,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:817,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:817,1
    - Dst: OGRNGWDataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:821,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:826,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:831,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:838,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:839,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:840,1
    - Dst: OGRNGWLayer::OGRNGWLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:842,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:843,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:844,1
    - Dst: OGRNGWLayerPtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:845,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - pszNameIn
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 846
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 846
    functionName: OGRNGWDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - OGRSpatialReference*::Release
    - OGRNGWLayerPtr::get
    - CPLError
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRNGWDataset::IsUpdateMode
    - auto::Clone
    - OGRNGWDataset::FetchPermissions
    - GetName
    - emplace_back
    - OGRGeomFieldDefn*::GetType
    - OGRNGWDataset::GetLayerCount
    - OGRNGWLayer::OGRNGWLayer
    - OGRGeometryTypeToName
    - OGRSpatialReference*::AutoIdentifyEPSG
    - CSLFetchNameValueDef
    - OGRNGWDataset::DeleteLayer
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRNGWDataset::ICreateLayer(const char *pszNameIn,\n                                      const
      OGRGeomFieldDefn *poGeomFieldDefn,\n                                      CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:853,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:855,1
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:860,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:862,1
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:864,1
    - Dst: auto::GetResourceId
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:869,1
    - Dst: OGRNGWDataset::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:875,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:879,1
    - Dst: auto::Delete
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:884,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:886,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:886,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 890
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 890
    functionName: OGRNGWDataset::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - erase
    - OGRNGWDataset::IsUpdateMode
    - auto::GetResourceId
    - OGRNGWDataset::GetLayerCount
    - auto::Delete
    - begin
    - CPLError
    - OGRNGWDataset::FetchPermissions
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWDataset::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:897,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:898,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:900,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:900,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:902,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:903,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:903,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:904,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:904,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:905,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:906,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:908,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:908,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:910,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:911,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:913,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:913,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:916,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:917,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:919,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:919,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:921,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:921,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:924,1
    - Dst: NGWAPI::GetResmetaSuffix
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:928,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:928,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:929,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:929,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:929,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:930,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - oRootObject
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 932
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 932
    functionName: OGRNGWDataset::FillMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - c_str
    - ToString
    - OGRPGTableLayer::SetMetadataItem
    - CPLJSONObject::GetString
    - NGWAPI::GetResmetaSuffix
    - GetType
    - CPLJSONObject::GetObj
    - SetDescription
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::FillMetadata(const CPLJSONObject &oRootObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - papszMetadata
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 952
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 952
    functionName: OGRNGWDataset::FlushMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWDataset::FlushMetadata(char **papszMetadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:959,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:962,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:966,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:967,1
    - Dst: OGRNGWDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 972
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 972
    functionName: OGRNGWDataset::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadata
    - EQUAL
    - OGRNGWDataset::FlushMetadata
    - CPLError
    - OGRNGWDataset::FetchPermissions
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWDataset::SetMetadata(char **papszMetadata, const char
      *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:980,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:983,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:986,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 991
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 991
    functionName: OGRNGWDataset::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRPGTableLayer::SetMetadataItem
    - OGRNGWDataset::FetchPermissions
    - EQUAL
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRNGWDataset::SetMetadataItem(const char *pszName, const char
      *pszValue,\n                                      const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:998,1
    - Dst: OGRNGWDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:999,1
    - Dst: GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: OGRNGWDataset::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALDataset::FlushCache
    - GetMetadata
    - OGRNGWDataset::FlushMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWDataset::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1009,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1010,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1011,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1011,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1012,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1014,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1015,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1015,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1018,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1020,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1020,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1023,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1025,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1025,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1030,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1032,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1032,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1034,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1036,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1036,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - bSkipRetry
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1040
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1040
    functionName: OGRNGWDataset::GetHeaders
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 2
    functionsReached:
    - empty
    - c_str
    - CPLStringList::CPLStringList
    - CPLStringList::AddNameValue
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList OGRNGWDataset::GetHeaders(bool bSkipRetry) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1068
    functionName: SQLUnescape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString SQLUnescape(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1088,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1089,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1098,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1099,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1101,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1103,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1104,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1119,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1120,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1132,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1146,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1147,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1150
    functionName: SQLTokenize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::empty
    - CSLAddString
    - CPLString::clear
    linkageType: ''
    returnType: char
    signature: char **SQLTokenize(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1161,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1163,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1165,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1165,1
    - Dst: CPLString::endsWith
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1166,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1168,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1168,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1169,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1172,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1172,1
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1176,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1176,1
    - Dst: OGRNGWDataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1178,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1182,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1183,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1188,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1190,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1190,1
    - Dst: CPLString::endsWith
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1191,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1193,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1193,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1194,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1197,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1202,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1206,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1207,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1208,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1208,1
    - Dst: reinterpret_cast<OGRNGWLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1212,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1212,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1215,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1216,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1220,1
    - Dst: OGRNGWLayer*::DeleteAllFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1222,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1226,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1227,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1228,1
    - Dst: OGRFeatureQuery::Compile
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1229,1
    - Dst: OGRNGWLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1229,1
    - Dst: OGRNGWLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1236,1
    - Dst: auto::SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1237,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1238,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1241,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1242,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1242,1
    - Dst: OGRNGWLayer*::SetSelectedFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1243,1
    - Dst: OGRNGWLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1247,1
    - Dst: reinterpret_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1248,1
    - Dst: OGRFeatureQuery::GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1248,1
    - Dst: OGRNGWLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1250,1
    - Dst: OGRNGWLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1254,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1256,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1256,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1257,1
    - Dst: OGRNGWLayer*::DeleteFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1260,1
    - Dst: auto::SetGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1263,1
    - Dst: OGRNGWLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1264,1
    - Dst: OGRNGWLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1265,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1270,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1273,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1273,1
    - Dst: CPLString::endsWith
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1274,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1276,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1276,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1277,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1280,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1280,1
    - Dst: OGRNGWDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1284,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1284,1
    - Dst: OGRNGWDataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1291,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1292,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1297,1
    - Dst: CPLString::endsWith
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1299,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1301,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1301,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1302,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1308,1
    - Dst: static_cast<OGRNGWLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1313,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1314,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1314,1
    - Dst: OGRNGWLayer*::Rename
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1317,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1317,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1326,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1334,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1336,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1337,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1337,1
    - Dst: swq_select::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1338,1
    - Dst: reinterpret_cast<OGRNGWLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1346,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1350,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1358,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1377,1
    - Dst: std::set::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1379,1
    - Dst: std::set::emplace
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1380,1
    - Dst: std::set::emplace
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1385,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1405,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1411,1
    - Dst: OGRNGWLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1416,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1419,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1426,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1428,1
    - Dst: OGRNGWLayer*::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1434,1
    - Dst: OGRNGWLayer*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1439,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1440,1
    - Dst: std::set::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1440,1
    - Dst: OGRNGWLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1442,1
    - Dst: OGRNGWLayer*::SetSelectedFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1446,1
    - Dst: OGRNGWLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1448,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1450,1
    - Dst: OGRNGWLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1453,1
    - Dst: OGRNGWLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1458,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1458,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1465,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 163
    argCount: 3
    argNames:
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1466
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1466
    functionName: OGRNGWDataset::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureQuery::GetSWQExpr
    - OGRNGWLayer*::DeleteFeatures
    - swq_select::result_columns
    - reinterpret_cast<swq_expr_node *>
    - std::set::size
    - std::set::insert
    - swq_select::swq_select
    - CPLDebug
    - auto::SetGeometryIgnored
    - std::set::clear
    - CPLError
    - std::vector::push_back
    - std::string::c_str
    - CPLString::empty
    - reinterpret_cast<OGRNGWLayer *>
    - OGRNGWLayer*::GetNextFeature
    - std::string::empty
    - CPLString::substr
    - swq_select::preparse
    - CPLString::c_str
    - CPLString::size
    - OGRFeatureQuery::Compile
    - strlen
    - CPLString::Trim
    - GetLayerByName
    - CPLString::endsWith
    - OGRFeature::DestroyFeature
    - CPLStringList::size
    - GetName
    - OGRNGWLayer*::SyncToDisk
    - STARTS_WITH_CI
    - c_str
    - auto::GetFieldDefn
    - OGRNGWLayer*::GetLayerDefn
    - OGRFieldDefn*::GetNameRef
    - OGRFeature*::GetFID
    - OGRNGWDataset::GetLayerCount
    - CPLString::clear
    - std::set::empty
    - CPLString::find
    - OGRNGWLayer*::SetSelectedFields
    - OGRNGWLayer*::SetAttributeFilter
    - OGRNGWLayer*::DeleteAllFeatures
    - static_cast<OGRNGWLayer *>
    - OGRNGWLayer::TranslateSQLToFilter
    - OGRFeatureQuery::OGRFeatureQuery
    - OGRNGWLayer*::Clone
    - OGRNGWLayer*::Rename
    - auto::GetFieldCount
    - OGRNGWDataset::DeleteLayer
    - EQUAL
    - OGRNGWLayer*::SetIgnoredFields
    - OGRNGWLayer*::SetSpatialFilter
    - GDALDataset::ExecuteSQL
    - std::set::emplace
    - std::string
    - std::set::begin
    - SQLUnescape
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRNGWDataset::ExecuteSQL(const char *pszStatement,\n                                    OGRGeometry
      *poSpatialFilter,\n                                    const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1475,1
    - Dst: GDALDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1478
    functionName: OGRNGWDataset::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALDataset::GetSpatialRef
    - OGRNGWDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRNGWDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1487,1
    - Dst: GDALDataset::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1490
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1490
    functionName: OGRNGWDataset::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 2
    functionsReached:
    - GDALDataset::GetGeoTransform
    - OGRNGWDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1505,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1508,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1509,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1510,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1511,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1513,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1515,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1518,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1523,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1524,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1525,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1534
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1534
    functionName: OGRNGWDataset::IRasterIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - static_cast<size_t>
    - CPLDebug
    - Intersects
    - GDALDataset::IRasterIO
    - memset
    - IsInit
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRNGWDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                int nXSize, int nYSize, void *pData,\n
      \                               int nBufXSize, int nBufYSize,\n                                GDALDataType
      eBufType, int nBandCount,\n                                BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n                                GSpacing nLineSpace,
      GSpacing nBandSpace,\n                                GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1542,1
    - Dst: CPLJSONDocument::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1543,1
    - Dst: NGWAPI::GetVersionURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1543,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1545,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1547,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1549,1
    - Dst: NGWAPI::CheckVersion
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1550,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aosHTTPOptions
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 1556
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1556
    functionName: OGRNGWDataset::FillCapabilities
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - NGWAPI::GetVersionURL
    - CPLJSONObject::GetString
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLJSONObject::IsValid
    - CPLJSONDocument::LoadUrl
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckVersion
    linkageType: ''
    returnType: void
    signature: void OGRNGWDataset::FillCapabilities(const CPLStringList &aosHTTPOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1564
    functionName: OGRNGWDataset::Extensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string OGRNGWDataset::Extensions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::ToFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1578,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1581,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1586
    functionName: OGRNGWDataset::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetName
    - second::ToFieldDomain
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRNGWDataset::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::ToFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1600,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1611
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1611
    functionName: OGRNGWDataset::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetName
    - second::ToFieldDomain
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRNGWDataset::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::ToFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1632,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1635,1
    - Dst: second::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1637,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1639,1
    - Dst: second::GetDomainsNames
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1643,1
    - Dst: NGWAPI::DeleteResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1645,1
    - Dst: OGRNGWDataset::GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1646,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1646,1
    - Dst: OGRNGWDataset::GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1647,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1650,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1654,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1660,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1663,1
    - Dst: second::HasDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1664,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1665,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1668,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1669,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1669,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - name
    - failureReason
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 1680
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1680
    functionName: OGRNGWDataset::DeleteFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - erase
    - second::HasDomainName
    - second::ToFieldDomain
    - OGRNGWDataset::GetUrl
    - second::GetID
    - second::GetDomainsNames
    - auto::GetName
    - NGWAPI::DeleteResource
    - std::to_string
    - CPLGetLastErrorMsg
    - OGRFieldDefn*::SetDomainName
    - OGRNGWDataset::GetHeaders
    - OGRFieldDefn*::GetDomainName
    - OGRFieldDefn*::GetTemporaryUnsealer
    - std::string
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::DeleteFieldDomain(const std::string &name,\n                                      std::string
      &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1688,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1691,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1693,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1694,1
    - Dst: OGRCodedFieldDomain*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1694,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1695,1
    - Dst: OGRCodedFieldDomain*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1695,1
    - Dst: OGRCodedFieldDomain*::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1700,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1709,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pDomain
    - nResourceId
    argTypes:
    - OGRCodedFieldDomain*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1713
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1713
    functionName: CreateNGWLookupTableJson
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRCodedFieldDomain*::GetDescription
    - OGRCodedFieldDomain*::GetEnumeration
    - CPLJSONObject::CPLJSONObject
    - OGRCodedFieldDomain*::GetName
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateNGWLookupTableJson(const OGRCodedFieldDomain *pDomain,\n
      \                                           GIntBig nResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1721,1
    - Dst: OGRNGWDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1728,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1734,1
    - Dst: CreateNGWLookupTableJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1740,1
    - Dst: static_cast<OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1741,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1741,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1742,1
    - Dst: std::stol
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1742,1
    - Dst: NGWAPI::CreateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1745,1
    - Dst: OGRNGWDataset::GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1745,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1748,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1751,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1752,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1757,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1761,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1762,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1767,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 1769
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 1769
    functionName: OGRNGWDataset::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - std::stol
    - static_cast<OGRCodedFieldDomain *>
    - CreateNGWLookupTableJson
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - CPLGetLastErrorMsg
    - OGRNGWCodedFieldDomain::GetID
    - NGWAPI::GetResourceURL
    - NGWAPI::CreateResource
    - CPLJSONDocument::GetRoot
    - OGRNGWDataset::GetHeaders
    - std::move
    - CPLJSONDocument::CPLJSONDocument
    - OGRNGWDataset::GetFieldDomain
    - std::unique_ptr<OGRFieldDomain>::GetName
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::AddFieldDomain(std::unique_ptr<OGRFieldDomain>
      &&domain,\n                                   std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1777,1
    - Dst: OGRNGWDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1784,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1790,1
    - Dst: OGRNGWDataset::GetDomainIdByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1796,1
    - Dst: CreateNGWLookupTableJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1803,1
    - Dst: static_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1804,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1804,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1805,1
    - Dst: std::stol
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1805,1
    - Dst: NGWAPI::UpdateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1807,1
    - Dst: OGRNGWDataset::GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1807,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1809,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1813,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1814,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1819,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1823,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1824,1
    - Dst: OGRNGWCodedFieldDomain::GetID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1829,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 1831
      start: 1774
    functionDepth: 2
    functionLinenumber: 1774
    functionLinenumberEnd: 1831
    functionName: OGRNGWDataset::UpdateFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - std::stol
    - CreateNGWLookupTableJson
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - NGWAPI::UpdateResource
    - CPLGetLastErrorMsg
    - OGRNGWCodedFieldDomain::GetID
    - NGWAPI::GetResourceURL
    - CPLJSONDocument::GetRoot
    - OGRNGWDataset::GetHeaders
    - std::move
    - OGRNGWDataset::GetDomainIdByName
    - CPLJSONDocument::CPLJSONDocument
    - OGRNGWDataset::GetFieldDomain
    - static_cast<const OGRCodedFieldDomain *>
    - std::unique_ptr<OGRFieldDomain>::GetName
    linkageType: ''
    returnType: bool
    signature: "bool OGRNGWDataset::UpdateFieldDomain(std::unique_ptr<OGRFieldDomain>
      &&domain,\n                                      std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1838,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1839,1
    - Dst: OGRNGWCodedFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1847
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1847
    functionName: OGRNGWDataset::GetDomainByID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - OGRNGWCodedFieldDomain
    linkageType: ''
    returnType: OGRNGWCodedFieldDomain
    signature: OGRNGWCodedFieldDomain OGRNGWDataset::GetDomainByID(GIntBig id) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::HasDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp:1856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osDomainName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1862
      start: 1852
    functionDepth: 0
    functionLinenumber: 1852
    functionLinenumberEnd: 1862
    functionName: OGRNGWDataset::GetDomainIdByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp
    functionUses: 1
    functionsReached:
    - second::HasDomainName
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNGWDataset::GetDomainIdByName(const std::string &osDomainName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:26,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:29,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oRoot
    - osErrorMessage
    argTypes:
    - CPLJSONObject
    - std::string
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: NGWAPI::GetErrorMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLJSONObject::GetString
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: std::string
    signature: "std::string GetErrorMessage(const CPLJSONObject &oRoot,\n                                   const
      std::string &osErrorMessage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::GetErrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:43,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:45,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bResult
    - oRoot
    - osErrorMessage
    argTypes:
    - bool
    - CPLJSONObject
    - std::string
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: NGWAPI::CheckRequestResult
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - NGWAPI::GetErrorMessage
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool CheckRequestResult(bool bResult, const CPLJSONObject &oRoot,\n
      \                       const std::string &osErrorMessage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:57,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:58,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:60,1
    - Dst: NGWAPI::GetErrorMessage
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:61,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:62,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:62,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:66,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pabyData
    - nDataLen
    - osErrorMessage
    argTypes:
    - GByte*
    - int
    - std::string
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: NGWAPI::ReportError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - NGWAPI::GetErrorMessage
    - CPLJSONDocument::GetRoot
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    - auto::c_str
    linkageType: ''
    returnType: void
    signature: "void ReportError(const GByte *pabyData, int nDataLen,\n                        const
      std::string &osErrorMessage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 2
    argNames:
    - bIsRaster
    - osType
    argTypes:
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: NGWAPI::CheckSupportedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CheckSupportedType(bool bIsRaster, const std::string &osType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: NGWAPI::GetPermissionsURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetPermissionsURL(const std::string &osUrl,\n                              const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: NGWAPI::GetResourceURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetResourceURL(const std::string &osUrl,\n                           const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: NGWAPI::GetChildrenURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetChildrenURL(const std::string &osUrl,\n                           const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: NGWAPI::GetFeatureURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetFeatureURL(const std::string &osUrl,\n                          const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: NGWAPI::GetTMSURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetTMSURL(const std::string &osUrl, const std::string &osResourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - osUrl
    - osKey
    - osValue
    argTypes:
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: NGWAPI::GetSearchURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetSearchURL(const std::string &osUrl, const std::string
      &osKey,\n                         const std::string &osValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:137,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:141,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:142,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:146,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:159,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 9
    argNames:
    - osUrl
    - osResourceId
    - nStart
    - nCount
    - osFields
    - osWhere
    - osSpatialWhere
    - osExtensions
    - IsGeometryIgnored
    argTypes:
    - std::string
    - std::string
    - GIntBig
    - int
    - std::string
    - std::string
    - std::string
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 208
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 208
    functionName: NGWAPI::GetFeaturePageURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::to_string
    - NGWAPI::GetFeatureURL
    linkageType: ''
    returnType: std::string
    signature: "std::string GetFeaturePageURL(const std::string &osUrl, const std::string
      &osResourceId,\n                  GIntBig nStart, int nCount, const std::string
      &osFields,\n                  const std::string &osWhere, const std::string
      &osSpatialWhere,\n                  const std::string &osExtensions, bool IsGeometryIgnored)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: NGWAPI::GetRouteURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetRouteURL(const std::string &osUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: NGWAPI::GetUploadURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetUploadURL(const std::string &osUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: NGWAPI::GetVersionURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetVersionURL(const std::string &osUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: NGWAPI::GetCOGURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetCOGURL(const std::string &osUrl, const std::string &osResourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:237,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:237,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:238,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:240,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:241,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:242,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:244,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:246,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:247,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:249,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - osVersion
    - nMajor
    - nMinor
    - nPatch
    argTypes:
    - std::string
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 258
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 258
    functionName: NGWAPI::CheckVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached:
    - CSLTokenizeString2
    - CPLStringList::size
    - std::string::c_str
    - atoi
    linkageType: ''
    returnType: bool
    signature: "bool CheckVersion(const std::string &osVersion, int nMajor, int nMinor,\n
      \                 int nPatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:263,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:269,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:270,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:270,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:272,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:278,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:281,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:281,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:281,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:283,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:286,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:287,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 295
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 295
    functionName: NGWAPI::ParseUri
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 5
    functionsReached:
    - std::string::find
    - std::move
    - CPLString
    - strlen
    - std::string::substr
    linkageType: ''
    returnType: Uri
    signature: Uri ParseUri(const std::string &osUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:301,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:306,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:307,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:307,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:308,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:311,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:311,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:313,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:317,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:318,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - osUrl
    - osPayload
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 323
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 323
    functionName: NGWAPI::CreateResource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 3
    functionsReached:
    - CPLErrorReset
    - CPLStringList::AddString
    - CPLJSONObject::GetString
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateResource(const std::string &osUrl,\n                           const
      std::string &osPayload,\n                           const CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:329,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:333,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:334,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:334,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:335,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:338,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:338,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:340,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:341,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:350,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:353,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:357,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osPayload
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 361
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 361
    functionName: NGWAPI::UpdateResource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - NGWAPI::GetResourceURL
    - CPLDebug
    - CPLHTTPDestroyResult
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool UpdateResource(const std::string &osUrl, const std::string &osResourceId,\n
      \                   const std::string &osPayload,\n                    const
      CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:366,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:369,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:370,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:371,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:371,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:379,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - osUrl
    - osResourceId
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 385
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 385
    functionName: NGWAPI::DeleteResource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 2
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - NGWAPI::GetResourceURL
    - CPLHTTPDestroyResult
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool DeleteResource(const std::string &osUrl, const std::string &osResourceId,\n
      \                   const CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:391,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:393,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:394,1
    - Dst: NGWAPI::UpdateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osNewName
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: NGWAPI::RenameResource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::Format
    - NGWAPI::UpdateResource
    linkageType: ''
    returnType: bool
    signature: "bool RenameResource(const std::string &osUrl, const std::string &osResourceId,\n
      \                   const std::string &osNewName,\n                    const
      CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - osGeomType
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 428
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 428
    functionName: NGWAPI::NGWGeomTypeToOGRGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType NGWGeomTypeToOGRGeomType(const std::string &osGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 461
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 461
    functionName: NGWAPI::OGRGeomTypeToNGWGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string OGRGeomTypeToNGWGeomType(OGRwkbGeometryType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - osFieldType
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 482
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 482
    functionName: NGWAPI::NGWFieldTypeToOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType NGWFieldTypeToOGRFieldType(const std::string &osFieldType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 505
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 505
    functionName: NGWAPI::OGRFieldTypeToNGWFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string OGRFieldTypeToNGWFieldType(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:513,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:514,1
    - Dst: NGWAPI::GetPermissionsURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:516,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:519,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:520,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:522,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:523,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:524,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:525,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:527,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:529,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:531,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:532,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:534,1
    - Dst: CPLJSONObject::GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:535,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - aosHTTPOptions
    - bReadWrite
    argTypes:
    - std::string
    - std::string
    - CPLStringList
    - bool
    constantsTouched: []
    func_position:
      end: 542
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 542
    functionName: NGWAPI::CheckPermissions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetBool
    - CPLErrorReset
    - CPLJSONDocument::GetRoot
    - NGWAPI::GetPermissionsURL
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    linkageType: ''
    returnType: Permissions
    signature: "Permissions CheckPermissions(const std::string &osUrl,\n                             const
      std::string &osResourceId,\n                             const CPLStringList
      &aosHTTPOptions,\n                             bool bReadWrite)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 548
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 548
    functionName: NGWAPI::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetFeatureCount(const std::string &osUrl,\n                            const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osUrl
    - osResourceId
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: NGWAPI::GetLayerExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string GetLayerExtent(const std::string &osUrl,\n                           const
      std::string &osResourceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - eType
    argTypes:
    - CPLJSONObject::Type
    constantsTouched: []
    func_position:
      end: 568
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 568
    functionName: NGWAPI::GetResmetaSuffix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetResmetaSuffix(CPLJSONObject::Type eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:575,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:581,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:582,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:584,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:587,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:590,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:590,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:591,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:591,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:597,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:597,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:598,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:598,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:603,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - oRoot
    - papszMetadata
    argTypes:
    - CPLJSONObject
    - char**
    constantsTouched: []
    func_position:
      end: 606
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 606
    functionName: NGWAPI::FillResmeta
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - CPLAtoGIntBig
    - CPLAtofM
    - CPLString::c_str
    - CPLJSONObject::Add
    - std::string::substr
    - CPLStringList::size
    linkageType: ''
    returnType: void
    signature: void FillResmeta(const CPLJSONObject &oRoot, char **papszMetadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:615,1
    - Dst: NGWAPI::FillResmeta
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:616,1
    - Dst: NGWAPI::UpdateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:618,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - papszMetadata
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - char**
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: NGWAPI::FlushMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::CPLJSONObject
    - NGWAPI::FillResmeta
    - CPLJSONObject::Format
    - NGWAPI::UpdateResource
    linkageType: ''
    returnType: bool
    signature: "bool FlushMetadata(const std::string &osUrl, const std::string &osResourceId,\n
      \                  char **papszMetadata, const CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:628,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:630,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:631,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:632,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:632,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:640,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osFeatureId
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 646
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 646
    functionName: NGWAPI::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - NGWAPI::GetFeatureURL
    - CPLHTTPDestroyResult
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool DeleteFeature(const std::string &osUrl, const std::string &osResourceId,\n
      \                  const std::string &osFeatureId,\n                   const
      CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:652,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:656,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:657,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:657,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:658,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:661,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:662,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:662,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:670,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osFeaturesIDJson
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 676
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 676
    functionName: NGWAPI::DeleteFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - NGWAPI::GetFeatureURL
    - CPLHTTPDestroyResult
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool DeleteFeatures(const std::string &osUrl, const std::string &osResourceId,\n
      \                   const std::string &osFeaturesIDJson,\n                    const
      CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:682,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:686,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:687,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:687,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:688,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:691,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:691,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:693,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:695,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:698,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:700,1
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:702,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osFeatureJson
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 707
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 707
    functionName: NGWAPI::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLStringList::AddString
    - NGWAPI::GetFeatureURL
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLJSONObject::GetLong
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    - std::string::c_str
    linkageType: ''
    returnType: GIntBig
    signature: "GIntBig CreateFeature(const std::string &osUrl, const std::string
      &osResourceId,\n                      const std::string &osFeatureJson,\n                      const
      CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:714,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:718,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:719,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:719,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:720,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:723,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:723,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:725,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:726,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:726,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:735,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - osUrl
    - osResourceId
    - osFeatureId
    - osFeatureJson
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 741
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 741
    functionName: NGWAPI::UpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLHTTPFetch
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - NGWAPI::GetFeatureURL
    - CPLDebug
    - CPLHTTPDestroyResult
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool UpdateFeature(const std::string &osUrl, const std::string &osResourceId,\n
      \                  const std::string &osFeatureId,\n                   const
      std::string &osFeatureJson,\n                   const CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:749,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:753,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:754,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:754,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:755,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:758,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:759,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:761,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:762,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:765,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:766,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:768,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:769,1
    - Dst: GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:771,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - osUrl
    - osResourceId
    - osFeaturesJson
    - aosHTTPOptions
    argTypes:
    - std::string
    - std::string
    - std::string
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 776
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 776
    functionName: NGWAPI::PatchFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLStringList::AddString
    - NGWAPI::GetFeatureURL
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLJSONArray::Size
    - GetLong
    - CPLJSONObject::ToArray
    - std::vector::push_back
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    - std::string::c_str
    linkageType: ''
    returnType: std::vector<GIntBig>
    signature: "std::vector<GIntBig> PatchFeatures(const std::string &osUrl,\n                                   const
      std::string &osResourceId,\n                                   const std::string
      &osFeaturesJson,\n                                   const CPLStringList &aosHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:782,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:783,1
    - Dst: NGWAPI::GetLayerExtent
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:790,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:793,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:794,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:814,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:815,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:816,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:817,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:818,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:819,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:821,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:827,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:830,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:833,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:834,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:835,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:836,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:858,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:867,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 5
    argNames:
    - osUrl
    - osResourceId
    - aosHTTPOptions
    - nEPSG
    - stExtent
    argTypes:
    - std::string
    - std::string
    - CPLStringList
    - int
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 871
      start: 778
    functionDepth: 7
    functionLinenumber: 778
    functionLinenumberEnd: 871
    functionName: NGWAPI::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - OGRSpatialReference::importFromEPSG
    - CPLErrorReset
    - OGRSpatialReference::OGRSpatialReference
    - OGRCoordinateTransformation*::Transform
    - CPLSleep
    - NGWAPI::GetLayerExtent
    - OGRCreateCoordinateTransformation
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLJSONDocument::GetRoot
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    - OGRSpatialReference::SetWellKnownGeogCS
    - simple_min
    linkageType: ''
    returnType: bool
    signature: "bool GetExtent(const std::string &osUrl, const std::string &osResourceId,\n
      \              const CPLStringList &aosHTTPOptions, int nEPSG,\n               OGREnvelope
      &stExtent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:878,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:881,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:881,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:882,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:885,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:886,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:886,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:887,1
    - Dst: CPLHTTPFetchEx
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:890,1
    - Dst: NGWAPI::GetUploadURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:890,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:892,1
    - Dst: NGWAPI::ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:901,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:906,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:907,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:909,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:912,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:916,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - osUrl
    - osFilePath
    - aosHTTPOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - std::string
    - std::string
    - CPLStringList
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 920
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 920
    functionName: NGWAPI::UploadFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp
    functionUses: 1
    functionsReached:
    - NGWAPI::GetUploadURL
    - CPLJSONDocument::LoadMemory
    - CPLErrorReset
    - NGWAPI::ReportError
    - CPLStringList::AddString
    - CPLJSONObject::CPLJSONObject
    - CPLSPrintf
    - CPLJSONDocument::GetRoot
    - CPLHTTPFetchEx
    - CPLHTTPDestroyResult
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject UploadFile(const std::string &osUrl,\n                         const
      std::string &osFilePath,\n                         const CPLStringList &aosHTTPOptions,\n
      \                        GDALProgressFunc pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:28,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: OGRGeometryToWKT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OGRGeometry*::exportToWkt
    linkageType: ''
    returnType: std::string
    signature: std::string OGRGeometryToWKT(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:45,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:46,1
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:46,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:47,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:48,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:50,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:51,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:55,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:56,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:57,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:59,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:62,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:62,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:65,1
    - Dst: CPLJSONObject::ToLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:65,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:68,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:68,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:78,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:78,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:90,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:106,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:106,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:111,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:114,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:116,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:123,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:124,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:125,1
    - Dst: OGRFeature*::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:127,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:128,1
    - Dst: OGRFeature*::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:129,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - featureJson
    - poFeatureDefn
    argTypes:
    - CPLJSONObject
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 134
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 134
    functionName: JSONToFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - CPLJSONObject::GetString
    - OGRFeature*::SetGeomFieldDirectly
    - CPLJSONObject::GetType
    - OGRFieldDefn*::IsIgnored
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeature*::SetNativeMediaType
    - CPLJSONObject::ToInteger
    - CPLJSONObject::ToLong
    - CPLJSONObject::ToString
    - OGRFeatureDefn*::GetFieldCount
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - CPLJSONObject::ToDouble
    - OGRFeature::OGRFeature
    - OGRFeature*::SetNativeData
    - OGRFeatureDefn*::GetFieldDefn
    - CPLJSONObject::GetObj
    - CPLJSONObject::GetLong
    - OGRFeature*::SetField
    - OGRGeometryFactory::createFromWkt
    - CPLJSONObject::IsValid
    - CPLJSONObject::Format
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *JSONToFeature(const CPLJSONObject &featureJson,\n                                 OGRFeatureDefn
      *poFeatureDefn,\n                                 bool bCheckIgnoredFields =
      false,\n                                 bool bStoreExtensionData = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:141,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:148,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:150,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:150,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:153,1
    - Dst: OGRGeometryToWKT
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:154,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:155,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:157,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:160,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:162,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:164,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:165,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:167,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:167,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:171,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:173,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:176,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:176,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:177,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:180,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:181,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:182,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:183,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:186,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:186,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:187,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:197,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:197,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:198,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:205,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:212,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:215,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:216,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:217,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:218,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:219,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:220,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:231,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:233,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:234,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:234,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:236,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:236,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 241
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 241
    functionName: FeatureToJson
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - static_cast<GInt64>
    - OGRFeature*::IsFieldNull
    - std::string::empty
    - OGRFeature*::GetDefnRef
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRFeatureDefn*::GetFieldCount
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::CPLJSONObject
    - OGRFeature*::GetFID
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::IsFieldSet
    - OGRFeature*::GetNativeData
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    - OGRGeometryToWKT
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject FeatureToJson(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeatureToJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: FeatureToJsonString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - FeatureToJson
    linkageType: ''
    returnType: std::string
    signature: std::string FeatureToJsonString(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:257,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:261,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:262,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:264,1
    - Dst: CPLJSONArray::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vFeaturesID
    argTypes:
    - std::vector<GIntBig>
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: FeaturesIDToJsonString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONArray::CPLJSONArray
    - CPLJSONObject::CPLJSONObject
    - CPLJSONArray::Format
    - CPLJSONObject::Add
    - CPLJSONArray::Add
    linkageType: ''
    returnType: std::string
    signature: std::string FeaturesIDToJsonString(const std::vector<GIntBig> &vFeaturesID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:278,1
    - Dst: std::map<GIntBig, OGRFeature *>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - moFeatures
    argTypes:
    - std::map<GIntBig, OGRFeature *>
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: FreeMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - std::map<GIntBig, OGRFeature *>::clear
    - OGRFeature::DestroyFeature
    linkageType: ''
    returnType: void
    signature: void FreeMap(std::map<GIntBig, OGRFeature *> &moFeatures)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:287,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:294,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:295,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - poFeatureDefn
    - iField
    - pszFieldName
    argTypes:
    - OGRFeatureDefn*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 304
    functionName: CheckFieldNameUnique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGRFieldDefn*::GetNameRef
    - EQUAL
    - CPLError
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: bool
    signature: "bool CheckFieldNameUnique(OGRFeatureDefn *poFeatureDefn, int iField,\n
      \                                const char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:321,1
    - Dst: OGRNGWLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:323,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:325,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:325,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:349,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:350,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:379,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:388,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:391,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:400,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:412,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:418,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:418,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:420,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:428,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 81
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 433
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 433
    functionName: OGRNGWLayer::TranslateSQLToFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - OGRNGWLayer::TranslateSQLToFilter
    - std::to_string
    - CPLDebug
    - CPLAssert
    - std::string
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string OGRNGWLayer::TranslateSQLToFilter(swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:440,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:442,1
    - Dst: OGRNGWLayer::Fill
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poDSIn
    - oResourceJsonObject
    argTypes:
    - OGRNGWDataset*
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: OGRNGWLayer::OGRNGWLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRNGWLayer::Fill
    - begin
    - CPLJSONObject::GetString
    linkageType: ''
    returnType: void
    signature: "void OGRNGWLayer::OGRNGWLayer(OGRNGWDataset *poDSIn,\n                         const
      CPLJSONObject &oResourceJsonObject)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:460,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:464,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:465,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - osResourceIdIn
    - poDSIn
    - stPermissionsIn
    - poFeatureDefnIn
    - nFeatureCountIn
    - stExtentIn
    argTypes:
    - std::string
    - OGRNGWDataset*
    - NGWAPI::Permissions
    - OGRFeatureDefn*
    - GIntBig
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 466
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 466
    functionName: OGRNGWLayer::OGRNGWLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - Reference
    - SetDescription
    - begin
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRNGWLayer::OGRNGWLayer(const std::string &osResourceIdIn,\n
      \                        OGRNGWDataset *poDSIn,\n                         const
      NGWAPI::Permissions &stPermissionsIn,\n                         OGRFeatureDefn
      *poFeatureDefnIn,\n                         GIntBig nFeatureCountIn, const OGREnvelope
      &stExtentIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:476,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:480,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:480,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:481,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:483,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:487,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:489,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:493,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:495,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:495,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:497,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:499,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:499,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:502,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - poDSIn
    - osNameIn
    - poSpatialRef
    - eGType
    - osKeyIn
    - osDescIn
    argTypes:
    - OGRNGWDataset*
    - std::string
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 510
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 510
    functionName: OGRNGWLayer::OGRNGWLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - SetGeomType
    - OGRPGTableLayer::SetMetadataItem
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - begin
    - GetGeomFieldCount
    - SetDescription
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRNGWLayer::OGRNGWLayer(OGRNGWDataset *poDSIn, const std::string
      &osNameIn,\n                         OGRSpatialReference *poSpatialRef,\n                         OGRwkbGeometryType
      eGType, const std::string &osKeyIn,\n                         const std::string
      &osDescIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::FreeFeaturesCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:517,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: OGRNGWLayer::~OGRNGWLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FreeFeaturesCache
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::~OGRNGWLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:529,1
    - Dst: OGRNGWLayer::SyncFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:534,1
    - Dst: FreeMap
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 540
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 540
    functionName: OGRNGWLayer::FreeFeaturesCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - empty
    - FreeMap
    - OGRNGWLayer::SyncFeatures
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::FreeFeaturesCache(bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: OGRNGWLayer::GetResourceId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string OGRNGWLayer::GetResourceId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::DeleteResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:561,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:561,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 563
    functionName: OGRNGWLayer::Delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - NGWAPI::DeleteResource
    - GetUrl
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWLayer::Delete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NGWAPI::RenameResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:573,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:573,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:574,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:578,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:579,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:579,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 587
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 587
    functionName: OGRNGWLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - SetName
    - NGWAPI::RenameResource
    - CPLError
    - SetDescription
    - GetUrl
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::Rename(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:594,1
    - Dst: OGRNGWLayer::FreeFeaturesCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:595,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:596,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: OGRNGWLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::SyncToDisk
    - GetPageSize
    - begin
    - OGRNGWLayer::FreeFeaturesCache
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:605,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:606,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:607,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:610,1
    - Dst: NGWAPI::CheckRequestResult
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:611,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:614,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 619
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 619
    functionName: OGRNGWLayer::LoadUrl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - CPLErrorReset
    - CPLJSONObject
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    - NGWAPI::CheckRequestResult
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject OGRNGWLayer::LoadUrl(const std::string &osUrl) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:626,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:626,1
    - Dst: OGRNGWLayer::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:628,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:629,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:634,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:635,1
    - Dst: JSONToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:637,1
    - Dst: IsExtInNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:638,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - osUrl
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 643
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 643
    functionName: OGRNGWLayer::FillFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - CPLDebug
    - IsExtInNativeData
    - CPLJSONArray::Size
    - CPLJSONObject::IsValid
    - OGRNGWLayer::LoadUrl
    - CPLJSONObject::ToArray
    - std::string::c_str
    - JSONToFeature
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWLayer::FillFeatures(const std::string &osUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:650,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:653,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:658,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:661,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:663,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:664,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:664,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:666,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:670,1
    - Dst: std::advance
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:671,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:671,1
    - Dst: OGRNGWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:676,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:682,1
    - Dst: OGRNGWLayer::GetMaxFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:682,1
    - Dst: HasFeaturePaging
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:685,1
    - Dst: NGWAPI::GetFeaturePageURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:687,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:688,1
    - Dst: Extensions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:689,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:690,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:694,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:694,1
    - Dst: OGRNGWLayer::FillFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:697,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:703,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:704,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:704,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:706,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:710,1
    - Dst: std::advance
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:711,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:711,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 715
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 715
    functionName: OGRNGWLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<GIntBig>
    - end
    - IsGeometryIgnored
    - NGWAPI::GetFeaturePageURL
    - std::advance
    - HasFeaturePaging
    - OGRNGWLayer::GetMaxFeatureCount
    - Extensions
    - begin
    - OGRNGWLayer::SyncToDisk
    - OGRNGWLayer::ResetReading
    - size
    - GetPageSize
    - static_cast<size_t>
    - empty
    - NGWAPI::GetFeatureURL
    - GetUrl
    - OGRNGWLayer::FillFeatures
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:724,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:726,1
    - Dst: OGRNGWLayer::GetMaxFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:727,1
    - Dst: OGRNGWLayer::FreeFeaturesCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:729,1
    - Dst: NGWAPI::GetFeaturePageURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:731,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:732,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:732,1
    - Dst: Extensions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:733,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:734,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:735,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:738,1
    - Dst: OGRNGWLayer::GetMaxFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:738,1
    - Dst: HasFeaturePaging
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:740,1
    - Dst: NGWAPI::GetFeaturePageURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:742,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:743,1
    - Dst: Extensions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:744,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:745,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:749,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:749,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:754,1
    - Dst: OGRNGWLayer::FillFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:756,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:761,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:763,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:766,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:770,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:770,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:778,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:778,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:783,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:795,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:798,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:798,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:800,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:802,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:807,1
    - Dst: GetPageSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:811,1
    - Dst: OGRNGWLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:813,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 816
    functionName: OGRNGWLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRNGWLayer::FreeFeaturesCache
    - std::string::empty
    - end
    - IsGeometryIgnored
    - NGWAPI::GetFeaturePageURL
    - OGRNGWLayer::GetNextFeature
    - HasFeaturePaging
    - OGRFeature*::GetFID
    - OGRNGWLayer::GetMaxFeatureCount
    - Extensions
    - FilterGeometry
    - Evaluate
    - begin
    - OGRFeature*::GetGeometryRef
    - size
    - GetPageSize
    - OGRFeature*::Clone
    - empty
    - NGWAPI::GetFeatureURL
    - GetUrl
    - OGRNGWLayer::FillFeatures
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRNGWLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:826,1
    - Dst: NGWAPI::GetFeatureURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:828,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:828,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:829,1
    - Dst: OGRNGWLayer::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:830,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:831,1
    - Dst: JSONToFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:837,1
    - Dst: IsExtInNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 838
      start: 821
    functionDepth: 4
    functionLinenumber: 821
    functionLinenumberEnd: 838
    functionName: OGRNGWLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::Clone
    - std::to_string
    - NGWAPI::GetFeatureURL
    - IsExtInNativeData
    - OGRNGWLayer::LoadUrl
    - CPLJSONObject::IsValid
    - GetUrl
    - JSONToFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRNGWLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: OGRNGWLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRNGWLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:853,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:854,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:856,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:857,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:858,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:859,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:860,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:862,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:864,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:865,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:866,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:867,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:868,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:870,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:872,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:873,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:874,1
    - Dst: HasFeaturePaging
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:875,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:878,1
    - Dst: HasFeaturePaging
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:879,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:880,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:881,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:882,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 885
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 885
    functionName: OGRNGWLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FetchPermissions
    - EQUAL
    - HasFeaturePaging
    - IsUpdateMode
    linkageType: ''
    returnType: int
    signature: int OGRNGWLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:892,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:893,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:896,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:898,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:899,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:901,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:901,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:903,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:905,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:905,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:907,1
    - Dst: NGWAPI::NGWGeomTypeToOGRGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:907,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:908,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:912,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:912,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:913,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:915,1
    - Dst: NGWAPI::NGWGeomTypeToOGRGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:915,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:916,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:918,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:919,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:923,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:925,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:927,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:930,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:933,1
    - Dst: OGRNGWLayer::FillFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:934,1
    - Dst: OGRNGWLayer::FillMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:935,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:937,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:938,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - oRootObject
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 940
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 940
    functionName: OGRNGWLayer::Fill
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - CPLJSONObject::GetString
    - OGRSpatialReference*::Release
    - Reference
    - GetFieldDefn
    - GetGeomFieldCount
    - CPLStringList::CPLStringList
    - auto::c_str
    - OGRNGWLayer::FillFields
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRFieldDefn*::IsIgnored
    - SetGeomType
    - DeleteFieldDefn
    - SetName
    - OGRNGWLayer::FillMetadata
    - OGRSpatialReference*::importFromEPSG
    - CPLStringList::AddString
    - OGRFieldDefn*::GetNameRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - CPLJSONObject::GetArray
    - SetDescription
    - OGRSpatialReference::OGRSpatialReference
    - NGWAPI::NGWGeomTypeToOGRGeomType
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::Fill(const CPLJSONObject &oRootObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:947,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:948,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:950,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:950,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:952,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:953,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:955,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:955,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:957,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:958,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:960,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:960,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:962,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:963,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:965,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:965,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:968,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:969,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:971,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:971,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:973,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:973,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:976,1
    - Dst: NGWAPI::GetResmetaSuffix
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:980,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:980,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:981,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:981,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:981,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - oRootObject
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 984
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 984
    functionName: OGRNGWLayer::FillMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - c_str
    - ToString
    - OGRPGTableLayer::SetMetadataItem
    - CPLJSONObject::GetString
    - NGWAPI::GetResmetaSuffix
    - GetType
    - CPLJSONObject::GetObj
    - std::string::c_str
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::FillMetadata(const CPLJSONObject &oRootObject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:994,1
    - Dst: NGWAPI::NGWFieldTypeToOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:996,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:996,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:998,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:999,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1000,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1000,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1003,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1004,1
    - Dst: GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1004,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1005,1
    - Dst: GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1005,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1006,1
    - Dst: GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1006,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1007,1
    - Dst: GetBool
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1007,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1008,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1009,1
    - Dst: GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1012,1
    - Dst: GetDomainByID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1015,1
    - Dst: auto::ToFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1016,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1019,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1019,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1023,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - oFields
    - soIgnoredFieldsNames
    argTypes:
    - CPLJSONArray
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 1027
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1027
    functionName: OGRNGWLayer::FillFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - CPLJSONObject::CPLJSONObject
    - GetString
    - NGWAPI::NGWFieldTypeToOGRFieldType
    - GetBool
    - auto::ToFieldDomain
    - auto::GetName
    - GetDomainByID
    - GetLong
    - GetInteger
    - OGRLayer::SetIgnoredFields
    - AddFieldDefn
    - OGRFieldDefn::SetComment
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    - std::string::c_str
    - OGRFieldDefn::SetAlternativeName
    linkageType: ''
    returnType: void
    signature: "void OGRNGWLayer::FillFields(const CPLJSONArray &oFields,\n                             const
      CPLStringList &soIgnoredFieldsNames)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1037,1
    - Dst: NGWAPI::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1037,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1037,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1038,1
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1043,1
    - Dst: OGRNGWLayer::GetNewFeaturesCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1047
      start: 1032
    functionDepth: 4
    functionLinenumber: 1032
    functionLinenumberEnd: 1047
    functionName: OGRNGWLayer::GetMaxFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRNGWLayer::GetNewFeaturesCount
    - NGWAPI::GetFeatureCount
    - CPLJSONObject::GetLong
    - OGRNGWLayer::LoadUrl
    - CPLJSONObject::IsValid
    - GetUrl
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNGWLayer::GetMaxFeatureCount(bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::GetMaxFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1056,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1056,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 5
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: OGRNGWLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::GetMaxFeatureCount
    - OGRLayer::GetFeatureCount
    - CPL_TO_BOOL
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNGWLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1070,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1070,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1082
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1082
    functionName: OGRNGWLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - GetHeaders
    - IsInit
    - CPL_TO_BOOL
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRNGWLayer::IGetExtent(int /* iGeomField */, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1094,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1096,1
    - Dst: NGWAPI::CheckPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1097,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1098,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1087
    functionDepth: 4
    functionLinenumber: 1087
    functionLinenumberEnd: 1108
    functionName: OGRNGWLayer::FetchPermissions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - GetHeaders
    - NGWAPI::CheckPermissions
    - IsUpdateMode
    - GetUrl
    linkageType: ''
    returnType: void
    signature: void OGRNGWLayer::FetchPermissions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1116,1
    - Dst: CheckFieldNameUnique
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1118,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1118,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1127
      start: 1113
    functionDepth: 3
    functionLinenumber: 1113
    functionLinenumberEnd: 1127
    functionName: OGRNGWLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - CPLAssert
    - CheckFieldNameUnique
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRNGWLayer::CreateField(const OGRFieldDefn *poField,\n                                CPL_UNUSED
      int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1136,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1142,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1143,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1143,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1145,1
    - Dst: auto::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1146,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1149,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1154
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1154
    functionName: OGRNGWLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - auto::GetComment
    - DeleteFieldDefn
    - insert
    - CPLJSONDocument::GetRoot
    - GetFieldDefn
    - auto::GetLong
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReorderFieldDefns
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: OGRNGWLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - ReorderFieldDefns
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1170,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1171,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1175,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1182,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1188,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1192,1
    - Dst: CheckFieldNameUnique
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1194,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1195,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1206,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1206,1
    - Dst: OGRFieldDefn*::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1207,1
    - Dst: OGRFieldDefn::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1207,1
    - Dst: OGRFieldDefn*::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1208,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1208,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1209,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1209,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1210,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1210,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1211,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1211,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1212,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1212,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1219,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1219,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1224,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1224,1
    - Dst: OGRFieldDefn*::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1229,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1230,1
    - Dst: OGRFieldDefn*::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1235,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1235,1
    - Dst: OGRNGWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1240
      start: 1167
    functionDepth: 5
    functionLinenumber: 1167
    functionLinenumberEnd: 1240
    functionName: OGRNGWLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FetchPermissions
    - CPLDebug
    - OGRFieldDefn*::GetComment
    - OGRFieldDefn::GetAlternativeNameRef
    - OGRFieldDefn*::SetSubType
    - OGRFieldDefn*::GetDomainName
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn::GetComment
    - CheckFieldNameUnique
    - OGRFieldDefn*::SetAlternativeName
    - OGRFieldDefn::GetNameRef
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::SetDomainName
    - GetFieldCount
    - IsUpdateMode
    - CPLAssert
    - OGRFieldDefn::GetWidth
    - OGRNGWLayer::ResetReading
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - OGRFieldDefn*::GetAlternativeNameRef
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn::GetSubType
    - OGRFieldDefn::GetType
    - OGRFieldDefn*::SetComment
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRNGWLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                  int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1249
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1249
    functionName: OGRNGWLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRNGWLayer::SetMetadata(char **papszMetadata, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1259
      start: 1254
    functionDepth: 3
    functionLinenumber: 1254
    functionLinenumberEnd: 1259
    functionName: OGRNGWLayer::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadataItem
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRNGWLayer::SetMetadataItem(const char *pszName, const char
      *pszValue,\n                                    const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1266,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1270,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1272,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1273,1
    - Dst: std::stol
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1273,1
    - Dst: OGRNGWLayer::GetResourceId
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1273,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1274,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1274,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1278,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1283,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1290,1
    - Dst: OGRSpatialReference*::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1294,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1298,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1301,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1303,1
    - Dst: NGWAPI::OGRGeomTypeToNGWGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1304,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1304,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1307,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1308,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1310,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1311,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1312,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1313,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1315,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1316,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1318,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1321,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1321,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1322,1
    - Dst: NGWAPI::OGRFieldTypeToNGWFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1323,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1323,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1324,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1326,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1328,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1330,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1332,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1334,1
    - Dst: GetDomainIdByName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1339,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1339,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1340,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1343,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1347,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1348,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1349,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1350,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1354,1
    - Dst: NGWAPI::FillResmeta
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1357,1
    - Dst: GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1357,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1360
    functionName: OGRNGWLayer::CreateNGWResourceJson
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - GetMetadata
    - atoi
    - NGWAPI::OGRFieldTypeToNGWFieldType
    - NGWAPI::OGRGeomTypeToNGWGeomType
    - OGRFieldDefn*::GetComment
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - OGRFieldDefn*::GetDomainName
    - GetFieldDefn
    - CPLJSONObject::Format
    - std::stol
    - static_cast<GIntBig>
    - CPLJSONArray::CPLJSONArray
    - std::string::empty
    - GetGeomType
    - GetName
    - CPLJSONArray::Add
    - CPLJSONDocument::LoadMemory
    - OGRNGWLayer::GetResourceId
    - GetSpatialRef
    - CPLJSONObject::CPLJSONObject
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - auto::empty
    - OGRFieldDefn*::GetType
    - NGWAPI::FillResmeta
    - GetDomainIdByName
    - OGRFieldDefn*::GetAlternativeNameRef
    - OGRSpatialReference*::AutoIdentifyEPSG
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::string
    signature: std::string OGRNGWLayer::CreateNGWResourceJson()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1372,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1378,1
    - Dst: FeatureToJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1378,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1379,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1383,1
    - Dst: NGWAPI::PatchFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1385,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1386,1
    - Dst: CPLJSONArray::Format
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1387,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1388,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1389,1
    - Dst: OGRNGWLayer::GetNewFeaturesCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1392,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1393,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1394,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1395,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1397,1
    - Dst: FreeMap
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1399,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1408,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1409,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1365
    functionDepth: 4
    functionLinenumber: 1365
    functionLinenumberEnd: 1424
    functionName: OGRNGWLayer::SyncFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 1
    functionsReached:
    - FreeMap
    - std::vector::size
    - CPLDebug
    - std::vector::push_back
    - auto::size
    - NGWAPI::PatchFeatures
    - CPLJSONArray::CPLJSONArray
    - FeatureToJson
    - CPLJSONArray::Format
    - std::vector::empty
    - CPLJSONArray::Add
    - GetHeaders
    - auto::empty
    - CPLGetLastErrorNo
    - erase
    - OGRNGWLayer::GetNewFeaturesCount
    - GetUrl
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SyncFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1433,1
    - Dst: NGWAPI::CreateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1434,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1435,1
    - Dst: OGRNGWLayer::CreateNGWResourceJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1435,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1435,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1441,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1442,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1442,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1443,1
    - Dst: NGWAPI::UpdateResource
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1448,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1448,1
    - Dst: OGRNGWLayer::GetResourceId
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1448,1
    - Dst: OGRNGWLayer::CreateNGWResourceJson
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1449,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1450,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1456,1
    - Dst: OGRNGWLayer::LoadUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1459,1
    - Dst: NGWAPI::GetResourceURL
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1459,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1459,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1460,1
    - Dst: OGRNGWLayer::Fill
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1464,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1467,1
    - Dst: OGRNGWLayer::SyncFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1429
    functionDepth: 5
    functionLinenumber: 1429
    functionLinenumberEnd: 1471
    functionName: OGRNGWLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - GetHeaders
    - OGRNGWLayer::CreateNGWResourceJson
    - OGRNGWLayer::FetchPermissions
    - c_str
    - empty
    - OGRNGWLayer::GetResourceId
    - OGRNGWLayer::SyncFeatures
    - NGWAPI::UpdateResource
    - OGRPGTableLayer::SetMetadataItem
    - NGWAPI::GetResourceURL
    - NGWAPI::CreateResource
    - OGRNGWLayer::Fill
    - std::move
    - OGRNGWLayer::LoadUrl
    - auto::IsValid
    - GetUrl
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1478,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1483,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1486,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1489,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1495,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1496,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1505,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1509,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1519
      start: 1476
    functionDepth: 5
    functionLinenumber: 1476
    functionLinenumberEnd: 1519
    functionName: OGRNGWLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FetchPermissions
    - erase
    - CPLErrorReset
    - IsUpdateMode
    - CPLError
    - OGRFeature::DestroyFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1526,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1530,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1537,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1540,1
    - Dst: std::vector::erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1541,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1541,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1546,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1547,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1558,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1561,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1564,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - vFeaturesID
    argTypes:
    - std::vector<GIntBig>
    constantsTouched: []
    func_position:
      end: 1571
      start: 1524
    functionDepth: 5
    functionLinenumber: 1524
    functionLinenumberEnd: 1571
    functionName: OGRNGWLayer::DeleteFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FetchPermissions
    - std::vector::erase
    - erase
    - CPLErrorReset
    - std::vector::size
    - std::vector::begin
    - IsUpdateMode
    - CPLError
    - OGRFeature::DestroyFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::DeleteFeatures(const std::vector<GIntBig> &vFeaturesID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1580,1
    - Dst: OGRNGWLayer::FreeFeaturesCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1582,1
    - Dst: OGRNGWLayer::FetchPermissions
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1588,1
    - Dst: IsUpdateMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1589,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1595,1
    - Dst: OGRNGWLayer::FreeFeaturesCache
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1597,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1576
    functionDepth: 5
    functionLinenumber: 1576
    functionLinenumberEnd: 1607
    functionName: OGRNGWLayer::DeleteAllFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRNGWLayer::FetchPermissions
    - CPLErrorReset
    - CPLError
    - IsUpdateMode
    - OGRNGWLayer::FreeFeaturesCache
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWLayer::DeleteAllFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBatchMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1614,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1616,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1618,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1620,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1622,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1628,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1628,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1630,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1630,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1631,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1631,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1633,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1633,1
    - Dst: GetBatchSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1633,1
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1638,1
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1643,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1646,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1648,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1650,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1660,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1661,1
    - Dst: OGRFeature::DestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1663,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1663,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1664,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1678
      start: 1612
    functionDepth: 6
    functionLinenumber: 1612
    functionLinenumberEnd: 1678
    functionName: OGRNGWLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - size
    - static_cast<size_t>
    - OGRFeature*::GetFID
    - insert
    - IsBatchMode
    - GetBatchSize
    - CPLDebug
    - OGRNGWLayer::SyncToDisk
    - CPLError
    - OGRFeature::DestroyFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBatchMode
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1685,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1688,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1690,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1692,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1693,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1694,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1697,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1697,1
    - Dst: GetBatchSize
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1697,1
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1702,1
    - Dst: OGRNGWLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1707,1
    - Dst: NGWAPI::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1710,1
    - Dst: GetUrl
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1711,1
    - Dst: FeatureToJsonString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1711,1
    - Dst: GetHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1712,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1715,1
    - Dst: OGRFeature*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1731
      start: 1683
    functionDepth: 6
    functionLinenumber: 1683
    functionLinenumberEnd: 1731
    functionName: OGRNGWLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::Clone
    - size
    - static_cast<size_t>
    - GetHeaders
    - empty
    - FeatureToJsonString
    - insert
    - IsBatchMode
    - GetBatchSize
    - begin
    - NGWAPI::CreateFeature
    - OGRNGWLayer::SyncToDisk
    - GetUrl
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1738,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1744,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1746,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1748,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1749,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1751,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1752,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1756,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1758,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1762,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1762,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1767,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1772,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1775,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1776,1
    - Dst: OGRNGWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1780
      start: 1736
    functionDepth: 3
    functionLinenumber: 1736
    functionLinenumberEnd: 1780
    functionName: OGRNGWLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRFieldDefn*::IsIgnored
    - empty
    - std::string
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - CPLDebug
    - OGRLayer::SetIgnoredFields
    - GetFieldDefn
    - OGRNGWLayer::ResetReading
    - CPLFree
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1787,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1791,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1792,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1797,1
    - Dst: OGREnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1806,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1808,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1810,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1818,1
    - Dst: OGRGeometryToWKT
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1821,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1822,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1822,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1827,1
    - Dst: OGRNGWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - iGeomField
    - poGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1834
      start: 1785
    functionDepth: 2
    functionLinenumber: 1785
    functionLinenumberEnd: 1834
    functionName: OGRNGWLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryToWKT
    - c_str
    - getEnvelope
    - OGRLayer::ISetSpatialFilter
    - CPLDebug
    - OGRNGWLayer::ResetReading
    - InstallFilter
    - CPLFree
    - OGREnvelope::Contains
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::ISetSpatialFilter(int iGeomField, const OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1844,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1845,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1848,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1851,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1856,1
    - Dst: reinterpret_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1860,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1860,1
    - Dst: OGRNGWLayer::TranslateSQLToFilter
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1861,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1862,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1864,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1866,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1874,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1874,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1875,1
    - Dst: OGRNGWLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1882
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1882
    functionName: OGRNGWLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRNGWLayer::TranslateSQLToFilter
    - STARTS_WITH_CI
    - OGRLayer::SetAttributeFilter
    - reinterpret_cast<swq_expr_node *>
    - CPLDebug
    - std::move
    - strlen
    - GetSWQExpr
    - OGRNGWLayer::ResetReading
    - std::string::c_str
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1889,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1890,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1892,1
    - Dst: std::set<std::string>::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1893,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1893,1
    - Dst: std::set<std::string>::end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1893,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1897,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1897,1
    - Dst: OGRNGWLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1899,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - aosFields
    argTypes:
    - std::set<std::string>
    constantsTouched: []
    func_position:
      end: 1900
      start: 1887
    functionDepth: 4
    functionLinenumber: 1887
    functionLinenumberEnd: 1900
    functionName: OGRNGWLayer::SetSelectedFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - CPLStringList::AddString
    - GetFieldCount
    - std::set<std::string>::find
    - std::set<std::string>::end
    - OGRNGWLayer::SetIgnoredFields
    - GetFieldDefn
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRNGWLayer::SetSelectedFields(const std::set<std::string> &aosFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWLayer::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1908,1
    - Dst: OGRNGWLayer::OGRNGWLayer
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1909
    functionName: OGRNGWLayer::Clone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRNGWLayer::OGRNGWLayer
    - OGRNGWLayer::Clone
    linkageType: ''
    returnType: OGRNGWLayer
    signature: OGRNGWLayer *OGRNGWLayer::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1916,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1921,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp:1927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1928
    functionName: OGRNGWLayer::GetNewFeaturesCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp
    functionUses: 2
    functionsReached:
    - begin
    - empty
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNGWLayer::GetNewFeaturesCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: OGRNGWCodedFieldDomain::OGRNGWCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRNGWCodedFieldDomain()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: OGRNGWCodedFieldDomain::OGRNGWCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRNGWCodedFieldDomain(const OGRNGWCodedFieldDomain &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: '&operator=(const OGRNGWCodedFieldDomain &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRNGWCodedFieldDomain
    signature: OGRNGWCodedFieldDomain &operator=(const OGRNGWCodedFieldDomain &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: OGRNGWCodedFieldDomain::OGRNGWCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRNGWCodedFieldDomain(OGRNGWCodedFieldDomain &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '&operator=(OGRNGWCodedFieldDomain &&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRNGWCodedFieldDomain
    signature: OGRNGWCodedFieldDomain &operator=(OGRNGWCodedFieldDomain &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h:311,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: OGRNGWDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 4
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: OGRNGWDataset::GetUrl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetUrl() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: OGRNGWDataset::GetResourceId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetResourceId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: OGRNGWDataset::IsUpdateMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUpdateMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: OGRNGWDataset::IsBatchMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBatchMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: OGRNGWDataset::HasFeaturePaging
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasFeaturePaging() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: OGRNGWDataset::GetPageSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPageSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: OGRNGWDataset::GetBatchSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBatchSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: OGRNGWDataset::IsExtInNativeData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsExtInNativeData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:22,1
    - Dst: CPLJSONObject::GetLong
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:23,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:24,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:25,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:26,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:27,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:33,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:34,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:38,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:38,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:39,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:39,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:45,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:50,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:50,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:51,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:51,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:52,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:55,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:55,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:56,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:56,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:57,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:60,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:60,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:61,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:61,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:62,1
    - Dst: std::make_shared<OGRCodedFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:66,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:67,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:68,1
    - Dst: std::make_shared<OGRCodedFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:73,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:74,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:75,1
    - Dst: std::make_shared<OGRCodedFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:78,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:79,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - oResourceJsonObject
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 82
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 82
    functionName: OGRNGWCodedFieldDomain::OGRNGWCodedFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - std::make_shared<OGRCodedFieldDomain>
    - ToString
    - CPLAtoGIntBig
    - CPLJSONObject::GetString
    - std::set::insert
    - std::vector::emplace_back
    - std::set::find
    - CPLJSONObject::GetLong
    - std::move
    - CPLJSONObject::GetObj
    - emplace_back
    - GetName
    - auto::GetChildren
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void OGRNGWCodedFieldDomain::OGRNGWCodedFieldDomain(\n    const CPLJSONObject
      &oResourceJsonObject)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:90,1
    - Dst: GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:92,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - eFieldType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: OGRNGWCodedFieldDomain::ToFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetFieldType
    - get
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRNGWCodedFieldDomain::ToFieldDomain(OGRFieldType eFieldType) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: OGRNGWCodedFieldDomain::GetID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNGWCodedFieldDomain::GetID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:114,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:118,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:120,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: OGRNGWCodedFieldDomain::GetDomainsNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::string::empty
    - GetName
    linkageType: ''
    returnType: std::string
    signature: std::string OGRNGWCodedFieldDomain::GetDomainsNames() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:136,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:140,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: OGRNGWCodedFieldDomain::HasDomainName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/ngw/ogrngwfielddomain.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - size
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool OGRNGWCodedFieldDomain::HasDomainName(const std::string &osName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poGeom
    - geomColumnType
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: OGRMSSQLGeometryValidator::OGRMSSQLGeometryValidator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryValidator::OGRMSSQLGeometryValidator(OGRGeometry
      *poGeom,\n                                                     int geomColumnType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: OGRMSSQLGeometryValidator::~OGRMSSQLGeometryValidator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::~OGRMSSQLGeometryValidator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - latitude
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: MakeValidLatitude
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MakeValidLatitude(double latitude)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - longitude
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: MakeValidLongitude
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MakeValidLongitude(double longitude)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeValidLatitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:67,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:70,1
    - Dst: MakeValidLongitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:74,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - longitude
    - latitude
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: OGRMSSQLGeometryValidator::IsValidLatLon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - MakeValidLatitude
    - MakeValidLongitude
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValidLatLon(double longitude, double
      latitude)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - z1
    - z2
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: OGRMSSQLGeometryValidator::IsValidCircularZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValidCircularZ(double z1, double
      z2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: OGRMSSQLGeometryValidator::IsValidPolygonRingCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - OGRCurve*::getNumPoints
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValidPolygonRingCount(const OGRCurve
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurve*::get_IsClosed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:125,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurve*
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: OGRMSSQLGeometryValidator::IsValidPolygonRingClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRCurve*::get_IsClosed
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValidPolygonRingClosed(const OGRCurve
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:142,1
    - Dst: OGRMSSQLGeometryValidator::IsValidLatLon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:146,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:146,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 1
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValidLatLon
    - OGRPoint*::getX
    - OGRPoint*::IsEmpty
    - OGRPoint*::getY
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:153,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:158,1
    - Dst: MakeValidLongitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:158,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:158,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:159,1
    - Dst: MakeValidLatitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:159,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - MakeValidLatitude
    - OGRPoint*::getX
    - OGRPoint*::setX
    - OGRPoint*::getY
    - MakeValidLongitude
    - OGRPoint*::setY
    - OGRPoint*::IsEmpty
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 2
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 1
    functionsReached:
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRMultiPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValidLatLon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:202,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:202,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 2
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValidLatLon
    - OGRSimpleCurve*::getY
    - OGRSimpleCurve*::getX
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRSimpleCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:216,1
    - Dst: MakeValidLongitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:216,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:216,1
    - Dst: MakeValidLatitude
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:217,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 1
    functionsReached:
    - MakeValidLatitude
    - OGRSimpleCurve*::setPoint
    - MakeValidLongitude
    - OGRSimpleCurve*::getX
    - OGRSimpleCurve*::getY
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRSimpleCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:228,1
    - Dst: OGRCircularString*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:228,1
    - Dst: OGRCircularString*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:231,1
    - Dst: OGRMSSQLGeometryValidator::IsValidCircularZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:236,1
    - Dst: OGRCircularString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:236,1
    - Dst: OGRCircularString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCircularString*
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 3
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValidCircularZ
    - OGRCircularString*::toSimpleCurve
    - OGRCircularString*::getZ
    - OGRCircularString*::Is3D
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRCircularString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:247,1
    - Dst: OGRCircularString*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:247,1
    - Dst: OGRCircularString*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:249,1
    - Dst: OGRCircularString*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:254,1
    - Dst: OGRCircularString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCircularString*
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 2
    functionsReached:
    - OGRCircularString*::toSimpleCurve
    - OGRCircularString*::getZ
    - OGRCircularString*::setZ
    - OGRCircularString*::Is3D
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRCircularString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:267,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:267,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:270,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:270,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:275,1
    - Dst: toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 284
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 284
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 4
    functionsReached:
    - getGeometryType
    - toLineString
    - OGRMSSQLGeometryValidator::IsValid
    - wkbFlatten
    - toCircularString
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRCompoundCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:290,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:290,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:293,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:293,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:297,1
    - Dst: toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 304
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 304
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 3
    functionsReached:
    - getGeometryType
    - toLineString
    - wkbFlatten
    - toCircularString
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRCompoundCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 5
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRMultiLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 4
    functionsReached:
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRMultiLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:340,1
    - Dst: OGRPolygon*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:340,1
    - Dst: OGRPolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 5
    functionsReached:
    - OGRPolygon*::toCurvePolygon
    - OGRMSSQLGeometryValidator::MakeValid
    - OGRPolygon*::closeRings
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:351,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:356,1
    - Dst: OGRMSSQLGeometryValidator::IsValidPolygonRingCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:359,1
    - Dst: OGRMSSQLGeometryValidator::IsValidPolygonRingClosed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 6
    functionsReached:
    - OGRCurvePolygon*::IsEmpty
    - OGRMSSQLGeometryValidator::IsValidPolygonRingClosed
    - OGRMSSQLGeometryValidator::IsValidPolygonRingCount
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:371,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 6
    functionsReached:
    - OGRCurvePolygon*::IsEmpty
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPolygon*
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 7
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRMultiPolygon*
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 7
    functionsReached:
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRMultiPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 8
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRGeometryCollection
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 8
    functionsReached:
    - OGRMSSQLGeometryValidator::MakeValid
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRGeometryCollection *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:433,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:433,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:436,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:436,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:438,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:438,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:440,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:440,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:442,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:442,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:444,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:444,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:446,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:446,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:448,1
    - Dst: OGRGeometry*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:448,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:450,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:450,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:452,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:452,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:454,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 459
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 459
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 9
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRGeometry*::toCompoundCurve
    - OGRGeometry*::toMultiPolygon
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry*::toMultiPoint
    - OGRGeometry*::toCurvePolygon
    - OGRGeometry*::toPoint
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toCircularString
    - OGRGeometry*::toSimpleCurve
    - OGRMSSQLGeometryValidator::IsValid
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::IsValid(const OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:466,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:466,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:469,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:469,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:472,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:472,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:475,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:475,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:478,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:478,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:481,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:481,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:484,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:484,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:487,1
    - Dst: OGRGeometry*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:487,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:490,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:490,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:493,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:493,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:496,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:496,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 501
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 501
    functionName: OGRMSSQLGeometryValidator::MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 9
    functionsReached:
    - OGRGeometry*::toMultiLineString
    - OGRGeometry*::toCompoundCurve
    - OGRGeometry*::toMultiPolygon
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry*::toMultiPoint
    - OGRGeometry*::toCurvePolygon
    - OGRGeometry*::toCircularString
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toSimpleCurve
    - OGRGeometry*::toPoint
    - wkbFlatten
    - OGRMSSQLGeometryValidator::MakeValid
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryValidator::MakeValid(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:511,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:513,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 518
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 518
    functionName: OGRMSSQLGeometryValidator::ValidateGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryValidator::IsValid
    - OGRMSSQLGeometryValidator::MakeValid
    - OGRGeometry*::clone
    linkageType: ''
    returnType: bool
    signature: bool OGRMSSQLGeometryValidator::ValidateGeometry(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:530,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:532,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:537,1
    - Dst: getGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 543
    functionName: OGRMSSQLGeometryValidator::GetValidGeometryRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryvalidator.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - getGeometryName
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRMSSQLGeometryValidator::GetValidGeometryRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSPATIALDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:28,1
    - Dst: OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:31,1
    - Dst: OGRMSSQLSpatialDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: OGRMSSQLSpatialDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialDataSource*::Open
    - OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource
    - OGRMSSQLSPATIALDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMSSQLSpatialDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:51,1
    - Dst: OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:54,1
    - Dst: OGRMSSQLSpatialDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:55,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: OGRMSSQLSpatialDriverCreateDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialDataSource*::Open
    - OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource
    - STARTS_WITH_CI
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRMSSQLSpatialDriverCreateDataSource(\n    const char
      *pszName, CPL_UNUSED int nBands, CPL_UNUSED int nXSize,\n    CPL_UNUSED int
      nYSize, CPL_UNUSED GDALDataType eDT,\n    CPL_UNUSED char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:76,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:79,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:82,1
    - Dst: OGRMSSQLSPATIALDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:83,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: RegisterOGRMSSQLSpatial
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRMSSQLSPATIALDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMSSQLSpatial()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - nGeomColumnType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: OGRMSSQLGeometryParser::OGRMSSQLGeometryParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryParser::OGRMSSQLGeometryParser(int nGeomColumnType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:148,1
    - Dst: OGRPoint*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:150,1
    - Dst: OGRPoint*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:153,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:166,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:166,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:167,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:167,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:166,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:169,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:169,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:170,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:169,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:174,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:174,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:174,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:175,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:175,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:179,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:179,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:179,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:184,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:184,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:185,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:185,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:184,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:187,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:187,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:188,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:187,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:192,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:192,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:192,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:193,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:193,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:197,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:197,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:197,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - iFigure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 202
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 202
    functionName: OGRMSSQLGeometryParser::ReadPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - ReadM
    - OGRPoint*::setMeasured
    - ReadY
    - ReadX
    - OGRPoint*::setM
    - OGRPoint::OGRPoint
    - OGRPoint*::setCoordinateDimension
    - ReadZ
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *OGRMSSQLGeometryParser::ReadPoint(int iFigure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:210,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:216,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:218,1
    - Dst: OGRMSSQLGeometryParser::ReadPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:219,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:219,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 226
    functionName: OGRMSSQLGeometryParser::ReadMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - FigureOffset
    - OGRMultiPoint*::addGeometryDirectly
    - OGRMSSQLGeometryParser::ReadPoint
    - ParentOffset
    - ShapeType
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint *OGRMSSQLGeometryParser::ReadMultiPoint(int iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:238,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:245,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:245,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:245,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:246,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:246,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:248,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:248,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:248,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:249,1
    - Dst: OGRSimpleCurve*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:251,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:251,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:251,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:252,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:254,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:254,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:254,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:259,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:259,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:259,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:260,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:260,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:262,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:262,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:262,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:263,1
    - Dst: OGRSimpleCurve*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:265,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:265,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:265,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:266,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:268,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:268,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - poCurve
    - iPoint
    - iNextPoint
    argTypes:
    - OGRSimpleCurve*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 276
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 276
    functionName: OGRMSSQLGeometryParser::ReadSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::setPointM
    - OGRSimpleCurve*::setPoint
    - ReadM
    - OGRSimpleCurve*::setNumPoints
    - ReadX
    - ReadY
    - ReadZ
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMSSQLGeometryParser::ReadSimpleCurve(OGRSimpleCurve *poCurve,\n
      \                                              int iPoint, int iNextPoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:284,1
    - Dst: OGRLineString*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:288,1
    - Dst: OGRLineString*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:291,1
    - Dst: OGRMSSQLGeometryParser::ReadSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:294,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:294,1
    - Dst: NextPointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iFigure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 298
    functionName: OGRMSSQLGeometryParser::ReadLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::ReadSimpleCurve
    - OGRLineString*::setCoordinateDimension
    - NextPointOffset
    - OGRLineString*::setMeasured
    - PointOffset
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRMSSQLGeometryParser::ReadLineString(int iFigure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:306,1
    - Dst: OGRMSSQLGeometryParser::ReadSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:307,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:307,1
    - Dst: NextPointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iFigure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: OGRMSSQLGeometryParser::ReadLinearRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::ReadSimpleCurve
    - NextPointOffset
    - PointOffset
    - OGRLinearRing::OGRLinearRing
    linkageType: ''
    returnType: OGRLinearRing
    signature: OGRLinearRing *OGRMSSQLGeometryParser::ReadLinearRing(int iFigure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:318,1
    - Dst: OGRCircularString*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:322,1
    - Dst: OGRCircularString*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:325,1
    - Dst: OGRMSSQLGeometryParser::ReadSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:328,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:328,1
    - Dst: NextPointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - iFigure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: OGRMSSQLGeometryParser::ReadCircularString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString*::setMeasured
    - OGRMSSQLGeometryParser::ReadSimpleCurve
    - OGRCircularString*::setCoordinateDimension
    - NextPointOffset
    - PointOffset
    - OGRCircularString::OGRCircularString
    linkageType: ''
    returnType: OGRCircularString
    signature: OGRCircularString *OGRMSSQLGeometryParser::ReadCircularString(int iFigure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:340,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:346,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:348,1
    - Dst: OGRMSSQLGeometryParser::ReadLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:349,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:349,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 356
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 356
    functionName: OGRMSSQLGeometryParser::ReadMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - FigureOffset
    - ParentOffset
    - ShapeType
    - OGRMSSQLGeometryParser::ReadLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRMultiLineString*::addGeometryDirectly
    linkageType: ''
    returnType: OGRMultiLineString
    signature: OGRMultiLineString *OGRMSSQLGeometryParser::ReadMultiLineString(int
      iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:366,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:368,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:375,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:383,1
    - Dst: OGRMSSQLGeometryParser::ReadLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:383,1
    - Dst: OGRPolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 389
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 389
    functionName: OGRMSSQLGeometryParser::ReadPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::ReadLinearRing
    - FigureOffset
    - OGRPolygon*::closeRings
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *OGRMSSQLGeometryParser::ReadPolygon(int iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:397,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:403,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:405,1
    - Dst: OGRMSSQLGeometryParser::ReadPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:406,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 413
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 413
    functionName: OGRMSSQLGeometryParser::ReadMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRMSSQLGeometryParser::ReadPolygon
    - OGRMultiPolygon::OGRMultiPolygon
    - ParentOffset
    - ShapeType
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon *OGRMSSQLGeometryParser::ReadMultiPolygon(int iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryParser::ReadSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:427,1
    - Dst: OGRCompoundCurve*::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - poCompoundCurve
    - poCurve
    - iPoint
    - iNextPoint
    argTypes:
    - OGRCompoundCurve*
    - OGRSimpleCurve*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: OGRMSSQLGeometryParser::AddCurveSegment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::ReadSimpleCurve
    - OGRCompoundCurve*::addCurveDirectly
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryParser::AddCurveSegment(OGRCompoundCurve *poCompoundCurve,\n
      \                                            OGRSimpleCurve *poCurve,\n                                             int
      iPoint, int iNextPoint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCompoundCurve::OGRCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:442,1
    - Dst: OGRCompoundCurve*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:447,1
    - Dst: OGRCompoundCurve*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:450,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:455,1
    - Dst: NextPointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:456,1
    - Dst: SegmentType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:463,1
    - Dst: OGRMSSQLGeometryParser::AddCurveSegment
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:466,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:468,1
    - Dst: OGRMSSQLGeometryParser::AddCurveSegment
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:477,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:479,1
    - Dst: OGRMSSQLGeometryParser::AddCurveSegment
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:493,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - iFigure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 499
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 499
    functionName: OGRMSSQLGeometryParser::ReadCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::AddCurveSegment
    - OGRCompoundCurve*::setCoordinateDimension
    - NextPointOffset
    - PointOffset
    - OGRCompoundCurve*::setMeasured
    - OGRCircularString::OGRCircularString
    - OGRCompoundCurve::OGRCompoundCurve
    - SegmentType
    - OGRLineString::OGRLineString
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *OGRMSSQLGeometryParser::ReadCompoundCurve(int iFigure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon::OGRCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:509,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:511,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:518,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:526,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:529,1
    - Dst: OGRMSSQLGeometryParser::ReadLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:529,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:532,1
    - Dst: OGRMSSQLGeometryParser::ReadCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:532,1
    - Dst: OGRCurvePolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:535,1
    - Dst: OGRMSSQLGeometryParser::ReadCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:535,1
    - Dst: OGRCurvePolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:540,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 542
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 542
    functionName: OGRMSSQLGeometryParser::ReadCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - FigureAttribute
    - OGRCurvePolygon*::closeRings
    - FigureOffset
    - OGRCurvePolygon::OGRCurvePolygon
    - OGRCurvePolygon*::addRingDirectly
    - OGRMSSQLGeometryParser::ReadCompoundCurve
    - OGRMSSQLGeometryParser::ReadCircularString
    - OGRMSSQLGeometryParser::ReadLineString
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *OGRMSSQLGeometryParser::ReadCurvePolygon(int iShape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:551,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:557,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:559,1
    - Dst: OGRMSSQLGeometryParser::ReadPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:562,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:562,1
    - Dst: OGRMSSQLGeometryParser::ReadLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:565,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:565,1
    - Dst: OGRMSSQLGeometryParser::ReadPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:568,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:571,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:574,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:577,1
    - Dst: OGRMSSQLGeometryParser::ReadGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:580,1
    - Dst: OGRMSSQLGeometryParser::ReadCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:583,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:583,1
    - Dst: OGRMSSQLGeometryParser::ReadCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:586,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:586,1
    - Dst: OGRMSSQLGeometryParser::ReadCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:589,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:594,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - iShape
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 598
      start: 548
    functionDepth: 6
    functionLinenumber: 548
    functionLinenumberEnd: 598
    functionName: OGRMSSQLGeometryParser::ReadGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 1
    functionsReached:
    - OGRMSSQLGeometryParser::ReadMultiPolygon
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRMSSQLGeometryParser::ReadCurvePolygon
    - FigureOffset
    - OGRMSSQLGeometryParser::ReadGeometryCollection
    - OGRMSSQLGeometryParser::ReadPoint
    - OGRMSSQLGeometryParser::ReadCompoundCurve
    - OGRMSSQLGeometryParser::ReadPolygon
    - OGRMSSQLGeometryParser::ReadCircularString
    - ParentOffset
    - OGRMSSQLGeometryParser::ReadLineString
    - ShapeType
    - OGRMSSQLGeometryParser::ReadMultiLineString
    - OGRMSSQLGeometryParser::ReadMultiPoint
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: 'OGRGeometryCollection *

      OGRMSSQLGeometryParser::ReadGeometryCollection(int iShape)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:613,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:615,1
    - Dst: ReadByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:622,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:646,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:646,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:646,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:646,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:646,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:648,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:648,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:648,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:648,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:651,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:651,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:651,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:652,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:652,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:656,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:656,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:656,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:661,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:661,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:661,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:661,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:661,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:663,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:663,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:663,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:663,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:666,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:666,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:666,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:667,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:667,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:671,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:671,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:671,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:685,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:686,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:692,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:692,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:692,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:692,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:692,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:693,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:693,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:693,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:693,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:693,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:697,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:697,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:697,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:697,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:698,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:698,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:698,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:698,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:702,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:702,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:702,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:702,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:703,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:703,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:703,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:703,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:707,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:707,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:707,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:708,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:708,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:708,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:715,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:715,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:715,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:715,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:715,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:716,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:716,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:716,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:716,1
    - Dst: ReadM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:716,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:720,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:720,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:720,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:720,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:721,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:721,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:721,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:721,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:725,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:725,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:725,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:725,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:726,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:726,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:726,1
    - Dst: ReadZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:726,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:730,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:730,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:730,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:731,1
    - Dst: ReadX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:731,1
    - Dst: ReadY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:731,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:740,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:758,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:773,1
    - Dst: ReadInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:793,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:802,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:808,1
    - Dst: OGRMSSQLGeometryParser::ReadPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:811,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:811,1
    - Dst: OGRMSSQLGeometryParser::ReadLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:814,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:814,1
    - Dst: OGRMSSQLGeometryParser::ReadPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:817,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:820,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:823,1
    - Dst: OGRMSSQLGeometryParser::ReadMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:826,1
    - Dst: OGRMSSQLGeometryParser::ReadGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:829,1
    - Dst: OGRMSSQLGeometryParser::ReadCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:832,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:832,1
    - Dst: OGRMSSQLGeometryParser::ReadCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:835,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:835,1
    - Dst: OGRMSSQLGeometryParser::ReadCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp:838,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 158
    argCount: 3
    argNames:
    - pszInput
    - nLen
    - poGeom
    argTypes:
    - unsigned char*
    - int
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 846
      start: 604
    functionDepth: 7
    functionLinenumber: 604
    functionLinenumberEnd: 846
    functionName: OGRMSSQLGeometryParser::ParseSqlGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometryparser.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLGeometryParser::ReadLineString
    - OGRMSSQLGeometryParser::ReadMultiPoint
    - OGRMSSQLGeometryParser::ReadCurvePolygon
    - ReadY
    - OGRLineString*::setPointM
    - OGRPoint::OGRPoint
    - ReadByte
    - OGRMSSQLGeometryParser::ReadCircularString
    - ShapeType
    - OGRLineString::OGRLineString
    - OGRMSSQLGeometryParser::ReadMultiLineString
    - FigureOffset
    - OGRLineString*::setNumPoints
    - OGRMSSQLGeometryParser::ReadPoint
    - OGRMSSQLGeometryParser::ReadCompoundCurve
    - OGRMSSQLGeometryParser::ReadPolygon
    - ParentOffset
    - ReadZ
    - OGRMSSQLGeometryParser::ReadMultiPolygon
    - ReadM
    - ReadX
    - OGRPoint*::setM
    - OGRMSSQLGeometryParser::ReadGeometryCollection
    - ReadInt32
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMSSQLGeometryParser::ParseSqlGeometry(const unsigned char
      *pszInput,\n                                                int nLen, OGRGeometry
      **poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:40,1
    - Dst: CPLODBCStatement*::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:40,1
    - Dst: GetColCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:45,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:47,1
    - Dst: GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:47,1
    - Dst: SQLColAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:52,1
    - Dst: OGRMSSQLSpatialSelectLayer::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:52,1
    - Dst: static_cast<SQLSMALLINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:53,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:60,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:60,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:62,1
    - Dst: OGRLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:62,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:63,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:66,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:66,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:68,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:69,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:76,1
    - Dst: GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:76,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:79,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:82,1
    - Dst: GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:82,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:85,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:85,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:88,1
    - Dst: GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:88,1
    - Dst: SQLColAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:93,1
    - Dst: OGRMSSQLSpatialSelectLayer::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:94,1
    - Dst: static_cast<SQLSMALLINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:94,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:99,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:99,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:101,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:104,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:104,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:106,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:106,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:109,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:113,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:113,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:123,1
    - Dst: GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:123,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:126,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:128,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:128,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:129,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 2
    argNames:
    - poDSIn
    - poStmtIn
    argTypes:
    - OGRMSSQLSpatialDataSource*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 130
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 130
    functionName: OGRMSSQLSpatialSelectLayer::OGRMSSQLSpatialSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SQLSMALLINT>
    - GetColName
    - CPLStrdup
    - reinterpret_cast<char *>
    - GetLayerByName
    - GetSpatialRef
    - OGRLayer*::GetSpatialRef
    - GetGeomFieldDefn
    - GetColTypeName
    - memcmp
    - EQUAL
    - OGRLayer*::GetGeometryColumn
    - OGRMSSQLSpatialSelectLayer::GetStatement
    - GetColCount
    - CPLODBCStatement*::GetCommand
    - BuildFeatureDefn
    - GetGeomFieldCount
    - SQLColAttribute
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialSelectLayer::OGRMSSQLSpatialSelectLayer(\n    OGRMSSQLSpatialDataSource
      *poDSIn, CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: OGRMSSQLSpatialSelectLayer::~OGRMSSQLSpatialSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialSelectLayer::~OGRMSSQLSpatialSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:151,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:152,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:152,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:153,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: OGRMSSQLSpatialSelectLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - CPLDebug
    - ExecuteSQL
    - Append
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRMSSQLSpatialSelectLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: OGRMSSQLSpatialSelectLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialSelectLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: OGRMSSQLSpatialSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: OGRMSSQLSpatialSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMSSQLSpatialSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:134,1
    - Dst: IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:140,1
    - Dst: OGRMSSQLGeometryWriter::TrackGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:157,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:160,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 3
    argNames:
    - poGeometry
    - nGeomColumnType
    - nSRS
    argTypes:
    - OGRGeometry*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 188
    functionName: OGRMSSQLGeometryWriter::OGRMSSQLGeometryWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - getCoordinateDimension
    - getGeometryType
    - OGRMSSQLGeometryWriter::TrackGeometry
    - IsMeasured
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryWriter::OGRMSSQLGeometryWriter(OGRGeometry *poGeometry,\n
      \                                              int nGeomColumnType, int nSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:197,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:197,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:197,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:197,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:198,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:200,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:200,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:200,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:200,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:202,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:202,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:202,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:202,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:204,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:204,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 205
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 205
    functionName: OGRMSSQLGeometryWriter::WritePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - OGRMSSQLGeometryWriter::WritePoint
    - OGRPoint*::getZ
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WritePoint(OGRPoint *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:211,1
    - Dst: WriteX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:212,1
    - Dst: WriteX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:216,1
    - Dst: WriteY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: OGRMSSQLGeometryWriter::WritePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 1
    functionsReached:
    - WriteX
    - WriteY
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WritePoint(double x, double y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:224,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: OGRMSSQLGeometryWriter::WritePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 2
    functionsReached:
    - OGRMSSQLGeometryWriter::WritePoint
    - WriteZ
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WritePoint(double x, double y, double
      z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:230,1
    - Dst: WriteM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:231,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - x
    - y
    - z
    - m
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: OGRMSSQLGeometryWriter::WritePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 3
    functionsReached:
    - WriteM
    - OGRMSSQLGeometryWriter::WritePoint
    - WriteZ
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WritePoint(double x, double y, double
      z, double m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSimpleCurve*::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:245,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:251,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:251,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:251,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:251,1
    - Dst: OGRSimpleCurve*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:252,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:257,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:257,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:257,1
    - Dst: OGRSimpleCurve*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:257,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:262,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:262,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:262,1
    - Dst: OGRSimpleCurve*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:262,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:267,1
    - Dst: OGRSimpleCurve*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:267,1
    - Dst: OGRSimpleCurve*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:267,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - poGeom
    - iStartIndex
    - nCount
    - bReversePoints
    argTypes:
    - OGRSimpleCurve*
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 269
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 269
    functionName: OGRMSSQLGeometryWriter::WriteSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - OGRSimpleCurve*::reversePoints
    - OGRSimpleCurve*::getM
    - OGRMSSQLGeometryWriter::WritePoint
    - OGRSimpleCurve*::getZ
    - OGRSimpleCurve*::getX
    - OGRSimpleCurve*::getY
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryWriter::WriteSimpleCurve(OGRSimpleCurve *poGeom,\n
      \                                             int iStartIndex, int nCount,\n
      \                                             bool bReversePoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:275,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poGeom
    - iStartIndex
    - bReversePoints
    argTypes:
    - OGRSimpleCurve*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: OGRMSSQLGeometryWriter::WriteSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 1
    functionsReached:
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    - OGRSimpleCurve*::getNumPoints
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryWriter::WriteSimpleCurve(OGRSimpleCurve *poGeom,\n
      \                                             int iStartIndex,\n                                              bool
      bReversePoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:282,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poGeom
    - bReversePoints
    argTypes:
    - OGRSimpleCurve*
    - bool
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: OGRMSSQLGeometryWriter::WriteSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 2
    functionsReached:
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    - OGRSimpleCurve*::getNumPoints
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryWriter::WriteSimpleCurve(OGRSimpleCurve *poGeom,\n
      \                                             bool bReversePoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:292,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:292,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:293,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:293,1
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:294,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:296,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:297,1
    - Dst: OGRSimpleCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:297,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:301,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:303,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:304,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:307,1
    - Dst: SegmentType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:307,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:309,1
    - Dst: SegmentType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:309,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:315,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:317,1
    - Dst: OGRSimpleCurve*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:318,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:321,1
    - Dst: SegmentType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:321,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:323,1
    - Dst: SegmentType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCompoundCurve*
    constantsTouched: []
    func_position:
      end: 331
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 331
    functionName: OGRMSSQLGeometryWriter::WriteCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - FigureAttribute
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    - OGRSimpleCurve*::getNumPoints
    - OGRCompoundCurve*::getCurve
    - WriteInt32
    - SegmentType
    - OGRCompoundCurve*::getNumCurves
    - PointOffset
    - OGRSimpleCurve*::getGeometryType
    - wkbFlatten
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WriteCompoundCurve(OGRCompoundCurve *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:339,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:339,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:343,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:343,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:344,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:344,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:345,1
    - Dst: OGRCurve*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:345,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:350,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:350,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:351,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:351,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:352,1
    - Dst: OGRCurve*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:352,1
    - Dst: OGRMSSQLGeometryWriter::WriteCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:357,1
    - Dst: OGRCurve*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - poGeom
    - bReversePoints
    argTypes:
    - OGRCurve*
    - bool
    constantsTouched: []
    func_position:
      end: 364
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 364
    functionName: OGRMSSQLGeometryWriter::WriteCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - FigureAttribute
    - OGRMSSQLGeometryWriter::WriteCompoundCurve
    - OGRCurve*::toCompoundCurve
    - WriteInt32
    - PointOffset
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    - wkbFlatten
    - OGRCurve*::getGeometryType
    - OGRCurve*::toSimpleCurve
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WriteCurve(OGRCurve *poGeom, bool bReversePoints)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:373,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:379,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:379,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:381,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:381,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:383,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:383,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:384,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:384,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:387,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:390,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:392,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:392,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:394,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:394,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:396,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:396,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:397,1
    - Dst: OGRLinearRing*::isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: OGRMSSQLGeometryWriter::WritePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - FigureAttribute
    - OGRPolygon*::getInteriorRing
    - OGRLinearRing*::isClockwise
    - WriteInt32
    - OGRPolygon*::getExteriorRing
    - OGRPolygon*::getNumInteriorRings
    - PointOffset
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WritePolygon(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:409,1
    - Dst: OGRMSSQLGeometryWriter::WriteCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:412,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:412,1
    - Dst: OGRCurvePolygon*::getExteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:413,1
    - Dst: OGRCurvePolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:415,1
    - Dst: OGRMSSQLGeometryWriter::WriteCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:418,1
    - Dst: OGRCurvePolygon*::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:418,1
    - Dst: OGRCurvePolygon*::getInteriorRingCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRCurvePolygon*
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: OGRMSSQLGeometryWriter::WriteCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - OGRCurvePolygon*::getNumInteriorRings
    - OGRMSSQLGeometryWriter::WriteCurve
    - OGRCurvePolygon*::getInteriorRingCurve
    - OGRCurvePolygon*::getExteriorRingCurve
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WriteCurvePolygon(OGRCurvePolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:431,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:432,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - poGeom
    - iParent
    argTypes:
    - OGRGeometryCollection*
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: OGRMSSQLGeometryWriter::WriteGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometryCollection*::getNumGeometries
    - OGRMSSQLGeometryWriter::WriteGeometry
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLGeometryWriter::WriteGeometryCollection(\n    OGRGeometryCollection
      *poGeom, int iParent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:444,1
    - Dst: ParentOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:444,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:448,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:448,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:451,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:451,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:452,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:455,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:455,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:457,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:457,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:458,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:458,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:459,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:459,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:465,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:465,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:466,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:469,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:469,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:471,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:471,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:472,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:472,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:473,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:473,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:479,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:479,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:480,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:483,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:483,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:485,1
    - Dst: FigureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:485,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:486,1
    - Dst: PointOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:486,1
    - Dst: OGRMSSQLGeometryWriter::WriteSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:487,1
    - Dst: OGRGeometry*::toSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:487,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:493,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:493,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:494,1
    - Dst: OGRMSSQLGeometryWriter::WriteCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:496,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:496,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:502,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:502,1
    - Dst: OGRMSSQLGeometryWriter::WritePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:503,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:503,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:507,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:507,1
    - Dst: OGRMSSQLGeometryWriter::WriteCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:508,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:508,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:512,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:512,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:513,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:513,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:517,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:517,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:518,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:518,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:522,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:522,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:523,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:523,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:527,1
    - Dst: ShapeType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:527,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:528,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:528,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:535,1
    - Dst: FigureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:535,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 2
    argNames:
    - poGeom
    - iParent
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 537
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 537
    functionName: OGRMSSQLGeometryWriter::WriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 1
    functionsReached:
    - WriteByte
    - OGRGeometry*::toCompoundCurve
    - OGRMSSQLGeometryWriter::WritePolygon
    - OGRMSSQLGeometryWriter::WriteGeometryCollection
    - PointOffset
    - FigureAttribute
    - ShapeType
    - OGRMSSQLGeometryWriter::WriteSimpleCurve
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toGeometryCollection
    - FigureOffset
    - OGRGeometry*::toSimpleCurve
    - ParentOffset
    - OGRGeometry*::IsEmpty
    - OGRMSSQLGeometryWriter::WriteCurvePolygon
    - OGRMSSQLGeometryWriter::WriteCompoundCurve
    - OGRMSSQLGeometryWriter::WritePoint
    - OGRGeometry*::toCurvePolygon
    - WriteInt32
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::WriteGeometry(OGRGeometry *poGeom, int
      iParent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:545,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:545,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:548,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:556,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:559,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:565,1
    - Dst: OGRGeometry*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:568,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:576,1
    - Dst: OGRGeometry*::toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:578,1
    - Dst: OGRCompoundCurve*::getNumCurves
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:581,1
    - Dst: OGRCompoundCurve*::getCurve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:583,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:584,1
    - Dst: OGRCurve*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:584,1
    - Dst: OGRCurve*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:587,1
    - Dst: OGRCurve*::toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:599,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:606,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:620,1
    - Dst: OGRMSSQLGeometryWriter::TrackGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:622,1
    - Dst: OGRGeometry*::toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:629,1
    - Dst: OGRMSSQLGeometryWriter::TrackGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:631,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:640,1
    - Dst: OGRMSSQLGeometryWriter::TrackGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:643,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 652
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 652
    functionName: OGRMSSQLGeometryWriter::TrackGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 2
    functionsReached:
    - OGRCurve*::getGeometryType
    - static_cast<int>
    - OGRGeometry*::toCompoundCurve
    - OGRGeometry*::toGeometryCollection
    - OGRCurve*::toLineString
    - OGRCompoundCurve*::getCurve
    - OGRGeometry*::getGeometryType
    - OGRCurve*::toCircularString
    - OGRGeometry*::toCircularString
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toCurvePolygon
    - OGRMSSQLGeometryWriter::TrackGeometry
    - OGRCompoundCurve*::getNumCurves
    - wkbFlatten
    - OGRGeometry*::toLineString
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLGeometryWriter::TrackGeometry(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:666,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:666,1
    - Dst: toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:671,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:672,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:673,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:674,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:675,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:680,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:681,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:682,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:683,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:687,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:687,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:687,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:687,1
    - Dst: OGRLineString*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:687,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:688,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:688,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:688,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:688,1
    - Dst: OGRLineString*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:688,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:692,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:692,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:692,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:692,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:693,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:693,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:693,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:693,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:697,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:697,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:697,1
    - Dst: OGRLineString*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:697,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:698,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:698,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:698,1
    - Dst: OGRLineString*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:698,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:702,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:702,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:702,1
    - Dst: OGRMSSQLGeometryWriter::WritePoint
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:703,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:703,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:703,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:709,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:712,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:713,1
    - Dst: WriteByte
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:714,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:715,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:716,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:717,1
    - Dst: WriteInt32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:719,1
    - Dst: OGRMSSQLGeometryWriter::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp:721,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - pszBuffer
    - nBufLen
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 724
      start: 658
    functionDepth: 7
    functionLinenumber: 658
    functionLinenumberEnd: 724
    functionName: OGRMSSQLGeometryWriter::WriteSqlGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlgeometrywriter.cpp
    functionUses: 0
    functionsReached:
    - WriteByte
    - OGRLineString*::getX
    - getGeometryType
    - toLineString
    - IsValid
    - OGRMSSQLGeometryWriter::WriteGeometry
    - toPoint
    - OGRMSSQLGeometryWriter::WritePoint
    - WriteInt32
    - OGRLineString*::getM
    - OGRLineString*::getZ
    - wkbFlatten
    - OGRLineString*::getY
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMSSQLGeometryWriter::WriteSqlGeometry(unsigned char *pszBuffer,\n
      \                                               int nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:36,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:37,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:39,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:39,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:41,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:41,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:46,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:50,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:50,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 55
    functionName: OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - atoi
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialDataSource::OGRMSSQLSpatialDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:67,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:69,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: OGRMSSQLSpatialDataSource::~OGRMSSQLSpatialDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialDataSource::~OGRMSSQLSpatialDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:88,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:92,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:100,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:104,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:106,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:115,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:118,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:120,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:129,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:132,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:134,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:143,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:146,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:148,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - psVersion
    - pszVer
    argTypes:
    - MSSQLVer*
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 149
    functionName: OGRMSSQLSpatialDataSource::OGRMSSQLDecodeVersionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - strncpy
    - atoi
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialDataSource::OGRMSSQLDecodeVersionString(MSSQLVer
      *psVersion,\n                                                            const
      char *pszVer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:162,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 176
    functionName: OGRMSSQLSpatialDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: OGRMSSQLSpatialDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMSSQLSpatialDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:208,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:208,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:209,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:211,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:215,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:216,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:221,1
    - Dst: GetTableName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:221,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:222,1
    - Dst: GetSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:222,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:224,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:225,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:230,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 234
    functionName: OGRMSSQLSpatialDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - GetSchemaName
    - strncpy
    - EQUAL
    - GetTableName
    - static_cast<char *>
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMSSQLSpatialDataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:246,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:257,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:260,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:262,1
    - Dst: SetSpatialIndexFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:264,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:267,1
    - Dst: BeginTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:277,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:281,1
    - Dst: OGRMSSQLSpatialDataSource::GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:282,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:285,1
    - Dst: OGRMSSQLSpatialDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 294
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 294
    functionName: OGRMSSQLSpatialDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLSpatialDataSource::CommitTransaction
    - OGRMSSQLSpatialDataSource::RollbackTransaction
    - OGRMSSQLSpatialDataSource::EndCopy
    - OGRMSSQLSpatialDataSource::GetSession
    - CPLDebug
    - CPLODBCStatement::Appendf
    - CPLError
    - BeginTransaction
    - SetSpatialIndexFlag
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:313,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:315,1
    - Dst: OGRMSSQLSpatialDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:317,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:320,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:323,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:324,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:324,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:338,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:338,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:339,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:342,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:345,1
    - Dst: OGRMSSQLSpatialDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:346,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:348,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:352,1
    - Dst: OGRMSSQLSpatialDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:353,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:355,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:358,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:360,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:361,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:361,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:375,1
    - Dst: GetTableName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:376,1
    - Dst: GetSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:376,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:378,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:379,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:379,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:381,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:382,1
    - Dst: GetSchemaName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:382,1
    - Dst: OGRMSSQLSpatialDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:384,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:388,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:394,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:395,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:411,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:411,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:413,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:416,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:417,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:422,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:424,1
    - Dst: OGRMSSQLSpatialDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:435,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:437,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:438,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:448,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:449,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:449,1
    - Dst: OGRMSSQLSpatialDataSource::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:452,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:465,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:470,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:478,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:481,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:489,1
    - Dst: OGRMSSQLSpatialDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:490,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:492,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:499,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:507,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:516,1
    - Dst: BeginTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:520,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:522,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:524,1
    - Dst: OGRMSSQLSpatialDataSource::GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:529,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:532,1
    - Dst: OGRMSSQLSpatialDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:538,1
    - Dst: OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:545,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:548,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:550,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:552,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:552,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:553,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:553,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetUseCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:556,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetSpatialIndexFlag
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:563,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:569,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetUploadGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:570,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:571,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetUploadGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:572,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:576,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:578,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:583,1
    - Dst: OGRMSSQLSpatialTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:585,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:589,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:590,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:595,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:596,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:597,1
    - Dst: static_cast<OGRMSSQLSpatialTableLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:602,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:602,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 125
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 608
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 608
    functionName: OGRMSSQLSpatialDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer*::SetUploadGeometryFormat
    - atoi
    - OGRMSSQLSpatialTableLayer*::SetLaunderFlag
    - OGRMSSQLSpatialTableLayer*::SetLayerStatus
    - OGRMSSQLSpatialTableLayer*::SetMetadataItem
    - GetSchemaName
    - OGRMSSQLSpatialDataSource::GetSession
    - strncpy
    - static_cast<OGRMSSQLSpatialTableLayer **>
    - CPLError
    - OGRMSSQLSpatialTableLayer*::SetSpatialIndexFlag
    - CSLFetchNameValue
    - CPLStrdup
    - OGRMSSQLSpatialDataSource::FetchSRSId
    - OGRMSSQLSpatialDataSource::EndCopy
    - auto::exportToWkt
    - CPLODBCStatement::Appendf
    - CPLRealloc
    - CPLMalloc
    - wkbFlatten
    - CPLODBCStatement::ExecuteSQL
    - STARTS_WITH_CI
    - CPLFetchBool
    - OGRMSSQLSpatialDataSource::RollbackTransaction
    - OGRGeomFieldDefn*::GetType
    - OGRMSSQLSpatialDataSource::DeleteLayer
    - OGRMSSQLSpatialTableLayer*::SetPrecisionFlag
    - CPLAssert
    - OGRMSSQLSpatialTableLayer*::SetUseCopy
    - static_cast<char *>
    - OGRMSSQLSpatialDataSource::CommitTransaction
    - BeginTransaction
    - CPLFree
    - OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
    - OGRMSSQLSpatialDataSource::LaunderName
    - EQUAL
    - GetTableName
    - OGRMSSQLSpatialDataSource::InitializeMetadataTables
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRMSSQLSpatialTableLayer*::Initialize
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMSSQLSpatialDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                       const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                       CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:624,1
    - Dst: OGRMSSQLSpatialTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:626,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:632,1
    - Dst: OGRMSSQLSpatialTableLayer*::SetUseCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:635,1
    - Dst: static_cast<OGRMSSQLSpatialTableLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:640,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - pszSchemaName
    - pszTableName
    - pszGeomCol
    - nCoordDimension
    - nSRID
    - pszSRText
    - eType
    - bUpdate
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    - OGRwkbGeometryType
    - bool
    constantsTouched: []
    func_position:
      end: 645
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 645
    functionName: OGRMSSQLSpatialDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
    - OGRMSSQLSpatialTableLayer*::SetUpdate
    - OGRMSSQLSpatialTableLayer*::SetUseCopy
    - CPLRealloc
    - static_cast<OGRMSSQLSpatialTableLayer **>
    - OGRMSSQLSpatialTableLayer*::Initialize
    linkageType: ''
    returnType: int
    signature: "int OGRMSSQLSpatialDataSource::OpenTable(const char *pszSchemaName,\n
      \                                        const char *pszTableName,\n                                         const
      char *pszGeomCol,\n                                         int nCoordDimension,
      int nSRID,\n                                         const char *pszSRText,\n
      \                                        OGRwkbGeometryType eType, bool bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: OGRMSSQLSpatialDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:666,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:668,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:669,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:670,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:677,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 7
    argNames:
    - pszValue
    - pszSource
    - pszKey
    - nStart
    - nNext
    - nTerm
    - bRemove
    argTypes:
    - char**
    - char*
    - char*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 686
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 686
    functionName: OGRMSSQLSpatialDataSource::ParseValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - static_cast<char *>
    - EQUALN
    - CPLMalloc
    - memmove
    linkageType: ''
    returnType: int
    signature: "int OGRMSSQLSpatialDataSource::ParseValue(char **pszValue, char *pszSource,\n
      \                                         const char *pszKey, int nStart,\n
      \                                         int nNext, int nTerm, int bRemove)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:696,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:698,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:701,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:716,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:716,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:727,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:731,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:735,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:739,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:743,1
    - Dst: OGRMSSQLSpatialDataSource::ParseValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:747,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:750,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:752,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:754,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:756,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:760,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:765,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:766,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:767,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:768,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:769,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:770,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:774,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:783,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:786,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:787,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:788,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:789,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:790,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:791,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:808,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:810,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:815,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:818,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:833,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:837,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:840,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:842,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:844,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:846,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:848,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:851,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:854,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:857,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:863,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:865,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:867,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:869,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:871,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:873,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:875,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:876,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:877,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:880,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:887,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:893,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:893,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:894,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:901,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:907,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:907,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:908,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:911,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:912,1
    - Dst: EstablishSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:915,1
    - Dst: SQL_SUCCEEDED
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:919,1
    - Dst: SQLAllocEnv
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:919,1
    - Dst: SQL_SUCCEEDED
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:927,1
    - Dst: SQLDrivers
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:927,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:935,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:941,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:945,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:948,1
    - Dst: SQLFreeEnv
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:952,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:954,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:955,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:956,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:957,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:958,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:959,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:960,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:961,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:978,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:981,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:983,1
    - Dst: OGRMSSQLSpatialDataSource::OGRMSSQLDecodeVersionString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:985,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:986,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1002,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1011,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1013,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1016,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1017,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1020,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1022,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1022,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1025,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1026,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1028,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1028,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1030,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1030,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1031,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1032,1
    - Dst: OGRMSSQLSpatialDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1038,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1048,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1066,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1068,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1071,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1071,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1073,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1073,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1075,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1075,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1086,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1093,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1095,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1098,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1098,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1100,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1100,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1102,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1102,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1103,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1104,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1105,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1105,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1107,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1107,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1109,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1109,1
    - Dst: OGRMSSQLSpatialDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1115,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1124,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1135,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1137,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1140,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1140,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1142,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1142,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1144,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1144,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1157,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1162,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1167,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1171,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1172,1
    - Dst: OGRMSSQLSpatialDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1173,1
    - Dst: OGRMSSQLSpatialDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1178,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1184,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1185,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1186,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1187,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1188,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1189,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1190,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1192,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1194,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 230
    argCount: 3
    argNames:
    - pszNewName
    - bUpdate
    - bTestOpen
    argTypes:
    - char*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 1200
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 1200
    functionName: OGRMSSQLSpatialDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CSLAddString
    - SQLDrivers
    - GetLastError
    - CPLError
    - SQLFreeEnv
    - EstablishSession
    - OGRFromOGCGeomType
    - CPLStrdup
    - SQLAllocEnv
    - CPLODBCStatement::Append
    - OGRMSSQLSpatialDataSource::OpenTable
    - CPLODBCStatement::Fetch
    - OGRMSSQLSpatialDataSource::OGRMSSQLDecodeVersionString
    - CPLString::c_str
    - CPLODBCStatement::Appendf
    - strlen
    - CSLTokenizeString2
    - CSLCount
    - CPLODBCStatement::ExecuteSQL
    - SQL_SUCCEEDED
    - STARTS_WITH_CI
    - static_cast<int>
    - OGRMSSQLSpatialDataSource::ParseValue
    - CPLSPrintf
    - CPLAssert
    - CPLFree
    - CSLDestroy
    - OGRMSSQLSpatialDataSource::InitializeMetadataTables
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: int
    signature: "int OGRMSSQLSpatialDataSource::Open(const char *pszNewName, bool bUpdate,\n
      \                                   int bTestOpen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1214,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1215,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1221,1
    - Dst: OGRMSSQLSpatialDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1228,1
    - Dst: OGRMSSQLSpatialDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1234,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1241,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1243,1
    - Dst: OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1247,1
    - Dst: OGRMSSQLSpatialTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1254,1
    - Dst: OGRMSSQLSpatialTableLayer*::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1257,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1262,1
    - Dst: OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1266,1
    - Dst: OGRMSSQLSpatialTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1270,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1273,1
    - Dst: OGRMSSQLSpatialTableLayer*::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1276,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1283,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1284,1
    - Dst: CPLODBCStatement*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1288,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1288,1
    - Dst: CPLODBCStatement*::GetColCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1296,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1299,1
    - Dst: OGRMSSQLSpatialSelectLayer::OGRMSSQLSpatialSelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1309,1
    - Dst: OGRMSSQLSpatialSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1312,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 1315
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1315
    functionName: OGRMSSQLSpatialDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - OGRMSSQLSpatialTableLayer*::DropSpatialIndex
    - CPLODBCStatement*::ExecuteSQL
    - CPLDebug
    - IsGenericSQLDialect
    - GetLastError
    - CPLError
    - OGRMSSQLSpatialDataSource::GetLayerByName
    - CPLErrorReset
    - OGRMSSQLSpatialTableLayer*::CreateSpatialIndex
    - OGRMSSQLSpatialSelectLayer*::SetSpatialFilter
    - CPLODBCStatement*::Append
    - STARTS_WITH_CI
    - OGRMSSQLSpatialSelectLayer::OGRMSSQLSpatialSelectLayer
    - OGRMSSQLSpatialDataSource::DeleteLayer
    - CPLODBCStatement*::GetColCount
    - OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
    - GDALDataset::ExecuteSQL
    - OGRMSSQLSpatialTableLayer*::Initialize
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRMSSQLSpatialDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                               OGRGeometry *poSpatialFilter,\n
      \                                               const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 1325
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1325
    functionName: OGRMSSQLSpatialDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1339,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1340,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszSrcName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1346
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1346
    functionName: OGRMSSQLSpatialDataSource::LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLTolower
    - static_cast<char>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: char
    signature: char *OGRMSSQLSpatialDataSource::LaunderName(const char *pszSrcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1362,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1374,1
    - Dst: BeginTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1381,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1383,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1385,1
    - Dst: OGRMSSQLSpatialDataSource::GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1387,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1390,1
    - Dst: OGRMSSQLSpatialDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1400
    functionName: OGRMSSQLSpatialDataSource::InitializeMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLSpatialDataSource::CommitTransaction
    - OGRMSSQLSpatialDataSource::RollbackTransaction
    - CPLODBCStatement::Append
    - OGRMSSQLSpatialDataSource::GetSession
    - CPLError
    - BeginTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::InitializeMetadataTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1419,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1420,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1422,1
    - Dst: OGRMSSQLSpatialDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1425,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1433,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1436,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1436,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1438,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                             OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1440,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1442,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1443,1
    - Dst: auto::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1452,1
    - Dst: auto::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1455,1
    - Dst: auto::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1456,1
    - Dst: OGRMSSQLSpatialDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1459,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1459,1
    - Dst: std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1469,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1470,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1471,1
    - Dst: auto::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1472,1
    - Dst: OGRMSSQLSpatialDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1474,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1474,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1478
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1478
    functionName: OGRMSSQLSpatialDataSource::FetchSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - auto::importFromWkt
    - end
    - OGRSpatialReference::OGRSpatialReference
    - "std::unique_ptr<OGRSpatialReference,\n                                             OGRSpatialReferenceReleaser>"
    - OGRMSSQLSpatialDataSource::EndCopy
    - find
    - auto::Clear
    - auto::importFromEPSG
    - CPLODBCStatement::Fetch
    - OGRMSSQLSpatialDataSource::AddSRIDToCache
    - CPLODBCStatement::Appendf
    - EQUAL
    - std::move
    - std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    - auto::SetAxisMappingStrategy
    - auto::second::get
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRMSSQLSpatialDataSource::FetchSRS(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1494,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1494,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - nId
    - poSRS
    argTypes:
    - int
    - std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    constantsTouched: []
    func_position:
      end: 1496
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1496
    functionName: OGRMSSQLSpatialDataSource::AddSRIDToCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 1
    functionsReached:
    - emplace
    - std::move
    - auto::second::get
    linkageType: ''
    returnType: OGRSpatialReference
    signature: "OGRSpatialReference *OGRMSSQLSpatialDataSource::AddSRIDToCache(\n
      \   int nId,\n    std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      &&poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1519,1
    - Dst: second::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1524,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1532,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1534,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1541,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1543,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1544,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1547,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1550,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1550,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1552,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1561,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1566,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1566,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1569,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1573,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1573,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1573,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1575,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1575,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1581,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1581,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1583,1
    - Dst: OGRMSSQLSpatialDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1585,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1585,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1594,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1596,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1605,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1606,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1611,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1613,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1613,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1615,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1615,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1616,1
    - Dst: OGRMSSQLSpatialDataSource::InitializeMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1623,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1625,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1634,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1636,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1637,1
    - Dst: CPLODBCStatement::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1646,1
    - Dst: BeginTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1650,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1654,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1656,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1656,1
    - Dst: CPLODBCStatement::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1668,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1669,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1672,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1672,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1672,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1674,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1674,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1682,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1683,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1684,1
    - Dst: CPLODBCStatement::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1688,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1691,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1695,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1696,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1697,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1698,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1699,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1700,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1704,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1707,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1708,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1709,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1710,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1714,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1715,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1717,1
    - Dst: OGRMSSQLSpatialDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1720,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1725,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1729
      start: 1505
    functionDepth: 7
    functionLinenumber: 1505
    functionLinenumberEnd: 1729
    functionName: OGRMSSQLSpatialDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - CPLODBCStatement::Clear
    - atoi
    - OGRSpatialReference::GetAuthorityName
    - OGRMSSQLSpatialDataSource::AddSRIDToCache
    - OGRMSSQLAppendEscaped
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - CPLODBCStatement::Appendf
    - OGRSpatialReference::Clone
    - std::move
    - strlen
    - std::unique_ptr::reset
    - CPLODBCStatement::ExecuteSQL
    - OGRSpatialReference::importFromEPSG
    - std::unique_ptr::SetAxisMappingStrategy
    - OGRMSSQLSpatialDataSource::RollbackTransaction
    - OGRSpatialReference::exportToProj4
    - OGRSpatialReference::AutoIdentifyEPSG
    - OGRMSSQLSpatialDataSource::CommitTransaction
    - second::get
    - BeginTransaction
    - CPLFree
    - second::IsSame
    - EQUAL
    - OGRMSSQLSpatialDataSource::InitializeMetadataTables
    - OGRSpatialReference::GetAuthorityCode
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialDataSource::FetchSRSId(const OGRSpatialReference
      *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BeginTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1739,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1741,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1747
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1747
    functionName: OGRMSSQLSpatialDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - BeginTransaction
    - GetLastError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::StartTransaction(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1757,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1759,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1760,1
    - Dst: GetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1764,1
    - Dst: SetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1766,1
    - Dst: GetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1774,1
    - Dst: SetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1779
    functionName: OGRMSSQLSpatialDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 5
    functionsReached:
    - GetLayerStatus
    - CPLError
    - GetLastError
    - OGRMSSQLSpatialDataSource::CommitTransaction
    - SetLayerStatus
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1792,1
    - Dst: SetLayerStatus
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1793,1
    - Dst: OGRMSSQLSpatialDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1796,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1798,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1805
    functionName: OGRMSSQLSpatialDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 5
    functionsReached:
    - GetLayerStatus
    - OGRMSSQLSpatialDataSource::RollbackTransaction
    - GetLastError
    - CPLError
    - SetLayerStatus
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1816,1
    - Dst: OGRMSSQLSpatialDataSource::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poMSSQLSpatialLayer
    argTypes:
    - OGRMSSQLSpatialTableLayer*
    constantsTouched: []
    func_position:
      end: 1819
      start: 1811
    functionDepth: 1
    functionLinenumber: 1811
    functionLinenumberEnd: 1819
    functionName: OGRMSSQLSpatialDataSource::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRMSSQLSpatialDataSource::EndCopy
    - OGRMSSQLSpatialDataSource::StartCopy
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialDataSource::StartCopy(\n    OGRMSSQLSpatialTableLayer
      *poMSSQLSpatialLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1825
    functionDepth: 1
    functionLinenumber: 1825
    functionLinenumberEnd: 1836
    functionName: OGRMSSQLSpatialDataSource::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdatasource.cpp
    functionUses: 5
    functionsReached:
    - OGRMSSQLSpatialDataSource::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialDataSource::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: OGRMSSQLSPATIALDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSPATIALDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:32,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:50,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:52,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:55,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:108,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 119
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 119
    functionName: OGRMSSQLSPATIALDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSPATIALDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:128,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:132,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:134,1
    - Dst: OGRMSSQLSPATIALDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:137,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: DeclareDeferredOGRMSSQLSpatialPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRMSSQLSPATIALDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRMSSQLSpatialPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:34,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:62,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - poStatement
    - pszStrValue
    argTypes:
    - CPLODBCStatement*
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 65
    functionName: OGRMSSQLAppendEscaped
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLODBCStatement*::Append
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLAppendEscaped(CPLODBCStatement *poStatement,\n                           const
      char *pszStrValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:75,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRMSSQLSpatialDataSource*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 3
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialTableLayer::OGRMSSQLSpatialTableLayer(\n    OGRMSSQLSpatialDataSource
      *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:87,1
    - Dst: OGRMSSQLSpatialTableLayer::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:93,1
    - Dst: OGRMSSQLSpatialTableLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:94,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:97,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:98,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:99,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:101,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: OGRMSSQLSpatialTableLayer::~OGRMSSQLSpatialTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::CreateSpatialIndex
    - ClearStatement
    - OGRMSSQLSpatialTableLayer::DropSpatialIndex
    - OGRMSSQLSpatialTableLayer::CloseBCP
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialTableLayer::~OGRMSSQLSpatialTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: OGRMSSQLSpatialTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRMSSQLSpatialTableLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:123,1
    - Dst: CPLODBCStatement::GetPrimaryKeys
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:129,1
    - Dst: GetCatalog
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:129,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:131,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:133,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:134,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:134,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:136,1
    - Dst: CPLODBCStatement::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:138,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:139,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:142,1
    - Dst: CPLODBCStatement::GetColumns
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:154,1
    - Dst: GetCatalog
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:154,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:156,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:157,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:161,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:164,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:166,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:166,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:167,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:172,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:187,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:198,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:198,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:200,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:202,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:202,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:204,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:206,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:208,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:210,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:214,1
    - Dst: CPLODBCStatement::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:217,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:218,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 226
    functionName: OGRMSSQLSpatialTableLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::Clear
    - GetGeomFieldDefn
    - CPLDebug
    - Reference
    - CPLODBCStatement::GetPrimaryKeys
    - GetCatalog
    - CPLError
    - GetGeomFieldCount
    - CPLODBCStatement::GetColTypeName
    - CPLStrdup
    - SetGeomType
    - CPLODBCStatement::Fetch
    - GetSession
    - GetSpatialRef
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - BuildFeatureDefn
    - CPLFree
    - CPLODBCStatement::GetColumns
    - EQUAL
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMSSQLSpatialTableLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:239,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:250,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:253,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:257,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:259,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:263,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:264,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:266,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:267,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:271,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:273,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:273,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:276,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:281,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:283,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:285,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:299,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:300,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:301,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:311,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:314,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:315,1
    - Dst: OGRMSSQLSpatialTableLayer::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:323,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 7
    argNames:
    - pszSchema
    - pszLayerNameIn
    - pszGeomCol
    - nCoordDimension
    - nSRId
    - pszSRText
    - eType
    argTypes:
    - char*
    - char*
    - char*
    - CPL_UNUSED
    - int
    - char*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 332
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 332
    functionName: OGRMSSQLSpatialTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - OGRSpatialReference::OGRSpatialReference
    - CPLStrdup
    - importFromWkt
    - OGRMSSQLSpatialTableLayer::FetchSRSId
    - Clear
    - GetSpatialRef
    - CPLSPrintf
    - EQUAL
    - SetAxisMappingStrategy
    - SetDescription
    - CPLFree
    - importFromEPSG
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRMSSQLSpatialTableLayer::Initialize(const char *pszSchema,\n
      \                                            const char *pszLayerNameIn,\n                                             const
      char *pszGeomCol,\n                                             CPL_UNUSED int
      nCoordDimension,\n                                             int nSRId, const
      char *pszSRText,\n                                             OGRwkbGeometryType
      eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UseGeometryColumns
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:340,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:342,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:343,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:348,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:348,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:350,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:351,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 358
    functionName: OGRMSSQLSpatialTableLayer::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - UseGeometryColumns
    - GetSession
    - atoi
    - CPLODBCStatement::Fetch
    - CPLODBCStatement::Appendf
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialTableLayer::FetchSRSId()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:368,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:372,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:376,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:383,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:391,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:401,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:409,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:415,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:417,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 424
    functionName: OGRMSSQLSpatialTableLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - GetExtent
    - GetSession
    - CPLODBCStatement::Appendf
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::CreateSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:434,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:436,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:438,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:446,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:448,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 453
    functionName: OGRMSSQLSpatialTableLayer::DropSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - GetSession
    - CPLODBCStatement::Appendf
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialTableLayer::DropSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:462,1
    - Dst: std::string_view::size
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - osStr
    argTypes:
    - std::string_view
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: GetBracketEscapedIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string GetBracketEscapedIdentifier(const std::string_view &osStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:488,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:490,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:493,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:497,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:502,1
    - Dst: GetGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:506,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:509,1
    - Dst: GetGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:511,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:514,1
    - Dst: GetGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:516,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:520,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:527,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:530,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:531,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:532,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:532,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:534,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:536,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:544,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 553
    functionName: OGRMSSQLSpatialTableLayer::BuildFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - IsGeometryIgnored
    - static_cast<int *>
    - GetFieldCount
    - GetGeometryFormat
    - GetFieldDefn
    - GetFieldIndex
    - CPLMalloc
    - CPLFree
    - GetBracketEscapedIdentifier
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRMSSQLSpatialTableLayer::BuildFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::BuildStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:564,1
    - Dst: OGRMSSQLSpatialTableLayer::BuildFields
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 568
    functionName: OGRMSSQLSpatialTableLayer::GetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::BuildStatement
    - OGRMSSQLSpatialTableLayer::BuildFields
    linkageType: ''
    returnType: CPLODBCStatement
    signature: CPLODBCStatement *OGRMSSQLSpatialTableLayer::GetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:578,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:578,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:579,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:580,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:581,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:582,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:582,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:583,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:584,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:584,1
    - Dst: CPLODBCStatement*::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:588,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:596,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:597,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:598,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:599,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:602,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:604,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:606,1
    - Dst: GetBracketEscapedIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:606,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:607,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:610,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:612,1
    - Dst: CPLODBCStatement*::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:616,1
    - Dst: CPLODBCStatement*::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:620,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:632,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:641,1
    - Dst: CPLODBCStatement*::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:641,1
    - Dst: CPLODBCStatement*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:642,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - pszColumns
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 649
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 649
    functionName: OGRMSSQLSpatialTableLayer::BuildStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - CPLError
    - GetSession
    - CPLODBCStatement*::ExecuteSQL
    - CPLDebug
    - CPLODBCStatement*::Appendf
    - std::isinf
    - CPLODBCStatement*::GetCommand
    - CPLODBCStatement*::Append
    - GetBracketEscapedIdentifier
    linkageType: ''
    returnType: CPLODBCStatement
    signature: 'CPLODBCStatement *

      OGRMSSQLSpatialTableLayer::BuildStatement(const char *pszColumns)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:659,1
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:661,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:663,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:668,1
    - Dst: CPLODBCStatement::CPLODBCStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:668,1
    - Dst: OGRMSSQLSpatialTableLayer::BuildFields
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:669,1
    - Dst: Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:670,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:671,1
    - Dst: OGRMSSQLSpatialTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:671,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:674,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 682
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 682
    functionName: OGRMSSQLSpatialTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::CPLODBCStatement
    - GetSession
    - OGRMSSQLSpatialTableLayer::BuildFields
    - GetNextRawFeature
    - OGRMSSQLSpatialLayer::GetFeature
    - ClearStatement
    - CPLString::c_str
    - Appendf
    - OGRMSSQLSpatialTableLayer::GetName
    - OGRMSSQLSpatialTableLayer::EndCopy
    - ExecuteSQL
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:694,1
    - Dst: std::make_unique<CPLODBCStatement>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:702,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:702,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:710,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:717,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:723,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:725,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:733,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:740,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:745,1
    - Dst: auto::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:748,1
    - Dst: auto::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:756,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:757,1
    - Dst: auto::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:762,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:773,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:774,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:775,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:776,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:781,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:789,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 790
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 790
    functionName: OGRMSSQLSpatialTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - auto::Fetch
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - GetSession
    - auto::Appendf
    - std::make_unique<CPLODBCStatement>
    - CPLError
    - auto::ExecuteSQL
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMSSQLSpatialTableLayer::IGetExtent(int iGeomField,\n                                             OGREnvelope
      *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:799,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:800,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:804,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:807,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:808,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 813
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 813
    functionName: OGRMSSQLSpatialTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLFree
    - CPLStrdup
    - ClearStatement
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:821,1
    - Dst: OGRMSSQLSpatialLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: OGRMSSQLSpatialTableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialLayer::GetNextFeature
    - OGRMSSQLSpatialTableLayer::EndCopy
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialTableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:834,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:835,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:835,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:838,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:843,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:846,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:853,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:855,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:857,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:859,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:861,1
    - Dst: OGRMSSQLSpatialLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:864,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 865
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 865
    functionName: OGRMSSQLSpatialTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRMSSQLSpatialLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:874,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:876,1
    - Dst: OGRMSSQLSpatialTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:878,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:879,1
    - Dst: OGRMSSQLSpatialTableLayer::BuildStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:881,1
    - Dst: CPLODBCStatement*::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:883,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:886,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:889,1
    - Dst: CPLODBCStatement*::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 892
      start: 871
    functionDepth: 4
    functionLinenumber: 871
    functionLinenumberEnd: 892
    functionName: OGRMSSQLSpatialTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialTableLayer::TestCapability
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - OGRMSSQLSpatialTableLayer::BuildStatement
    - CPLODBCStatement*::GetColData
    - CPLAtoGIntBig
    - CPLODBCStatement*::Fetch
    - OGRMSSQLSpatialTableLayer::EndCopy
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMSSQLSpatialTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 902
    functionName: OGRMSSQLSpatialTableLayer::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::StartCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 915
    functionName: OGRMSSQLSpatialTableLayer::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRMSSQLSpatialTableLayer::CloseBCP
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:928,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:930,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:940,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:941,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:948,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:950,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:951,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:952,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:953,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:954,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:956,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:958,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:960,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:961,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:962,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:964,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:966,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:968,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:968,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:970,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:971,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:971,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:972,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:973,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:975,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:977,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:979,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:982,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:984,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:984,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:986,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:988,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:989,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:991,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:993,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:995,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:997,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:999,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1001,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1003,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1005,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1009,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1012,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1013,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1013,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1014,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1018,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1020,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1021,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1021,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1030,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1032,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1033,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1035,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1037,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1039,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1039,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1042,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1042,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1043,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1044,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1044,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1045,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1047,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1047,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1050,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1052,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1053,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1053,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1062,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1065
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 1065
    functionName: OGRMSSQLSpatialTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - CPLODBCStatement::Append
    - CPLODBCStatement::Appendf
    - OGRFieldDefn::IsDefaultDriverSpecific
    - OGRMSSQLSpatialTableLayer::EndCopy
    - AddFieldDefn
    - OGRFieldDefn::IsNullable
    - CPLODBCStatement::ExecuteSQL
    - OGRFieldDefn::GetNameRef
    - GetSession
    - OGRFieldDefn::GetWidth
    - OGRFieldDefn::SetName
    - snprintf
    - CPLFree
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn::GetSubType
    - EQUAL
    - strcpy
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMSSQLSpatialTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                             int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1078,1
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1085,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1087,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1091,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1096,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1105,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1111,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1116,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1118,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1120,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1124,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1127,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1130,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1143,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1149,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1149,1
    - Dst: OGRMSSQLGeometryWriter::WriteSqlGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1150,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1162,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1168,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1169,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1176,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1181,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1182,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1185,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1187,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1204,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1205,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1209,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1210,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1217,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1218,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1223,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1224,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1230,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1248,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1249,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1253,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1254,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1261,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1262,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1267,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1268,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1272,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1281,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1282,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1285,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1286,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1290,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1291,1
    - Dst: OGRMSSQLSpatialTableLayer::AppendFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1293,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1297,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1298,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1304,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1306,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1308,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1308,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1311,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1312,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1318,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1319,1
    - Dst: CPLODBCStatement::GetRowCountAffected
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1321,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 119
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1325
      start: 1073
    functionDepth: 8
    functionLinenumber: 1073
    functionLinenumberEnd: 1325
    functionName: OGRMSSQLSpatialTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - GetFieldDefn
    - CPLError
    - OGRMSSQLGeometryValidator::MakeValid
    - CPLODBCStatement::Append
    - CPLODBCStatement::Appendf
    - OGRMSSQLSpatialTableLayer::EndCopy
    - CPLODBCStatement::GetRowCountAffected
    - CPLMalloc
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLGeometryWriter::WriteSqlGeometry
    - GetSession
    - OGRFeature*::GetFID
    - OGRGeometry*::exportToWkb
    - ClearStatement
    - static_cast<GByte *>
    - OGRMSSQLGeometryValidator::IsValid
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::exportToWkt
    - OGRMSSQLSpatialTableLayer::AppendFieldValue
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1336,1
    - Dst: OGRMSSQLSpatialTableLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1341,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1343,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1347,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1354,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1359,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1364,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1366,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1371,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1374,1
    - Dst: CPLODBCStatement::GetRowCountAffected
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1383
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1383
    functionName: OGRMSSQLSpatialTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - GetSession
    - ClearStatement
    - CPLODBCStatement::Appendf
    - OGRMSSQLSpatialTableLayer::EndCopy
    - CPLError
    - CPLODBCStatement::GetRowCountAffected
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1405,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - nRetCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1411
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1411
    functionName: OGRMSSQLSpatialTableLayer::Failed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialTableLayer::Failed(int nRetCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1434,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nRetCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1440
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1440
    functionName: OGRMSSQLSpatialTableLayer::Failed2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialTableLayer::Failed2(int nRetCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1450,1
    - Dst: SQLAllocHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1450,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1454,1
    - Dst: SQLSetEnvAttr
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1454,1
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1457,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1461,1
    - Dst: SQLAllocHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1461,1
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1463,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1468,1
    - Dst: SQLSetConnectAttr
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1468,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1469,1
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1472,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1476,1
    - Dst: SQLSetConnectAttr
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1476,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1477,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1482,1
    - Dst: SQLDriverConnect
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1482,1
    - Dst: reinterpret_cast<SQLCHAR *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1484,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1484,1
    - Dst: static_cast<SQLSMALLINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1485,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1485,1
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pszDSN
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1493
      start: 1446
    functionDepth: 2
    functionLinenumber: 1446
    functionLinenumberEnd: 1493
    functionName: OGRMSSQLSpatialTableLayer::InitBCP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SQLSMALLINT>
    - SQLSetConnectAttr
    - const_cast<char *>
    - reinterpret_cast<SQLCHAR *>
    - SQLSetEnvAttr
    - strlen
    - OGRMSSQLSpatialTableLayer::Failed
    - OGRMSSQLSpatialTableLayer::CloseBCP
    - SQLAllocHandle
    - reinterpret_cast<void *>
    - SQLDriverConnect
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialTableLayer::InitBCP(const char *pszDSN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1512,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1523,1
    - Dst: SQLDisconnect
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1524,1
    - Dst: SQLFreeHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1525,1
    - Dst: SQLFreeHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1534
    functionName: OGRMSSQLSpatialTableLayer::CloseBCP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRMSSQLSpatialTableLayer::Failed2
    - SQLFreeHandle
    - CPLDebug
    - SQLDisconnect
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialTableLayer::CloseBCP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialTableLayer::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1551,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1553,1
    - Dst: CPLODBCSession*::IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1555,1
    - Dst: CPLODBCSession*::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1556,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1560,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1566,1
    - Dst: OGRMSSQLSpatialTableLayer::InitBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1572,1
    - Dst: GetConnectionString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1572,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1576,1
    - Dst: bcp_init
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1576,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1577,1
    - Dst: OGRMSSQLSpatialTableLayer::CloseBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1580,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1586,1
    - Dst: bcp_control
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1586,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1587,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1589,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1591,1
    - Dst: static_cast<BCPData **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1596,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1597,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1606,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1606,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1607,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1607,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1619,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1619,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1622,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1622,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1624,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1624,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1626,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1630,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1633,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1635,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1649,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1653,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1653,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1657,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1657,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1659,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1665,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1669,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1669,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1672,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1672,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1674,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1674,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1676,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1680,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1685,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1685,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1688,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1688,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1690,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1690,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1692,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1696,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1700,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1700,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1701,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1702,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1704,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1704,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1712,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1712,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1714,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1717,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1722,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1726,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1726,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1729,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1729,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1731,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1731,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1733,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1737,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1741,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1741,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1744,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1744,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1746,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1746,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1748,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1752,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1756,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1756,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1759,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1759,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1761,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1761,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1763,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1767,1
    - Dst: static_cast<BCPData *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1771,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1771,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1772,1
    - Dst: bcp_bind
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1772,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1780,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1784,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1785,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1785,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1803,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1811,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1813,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1814,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1817,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1826,1
    - Dst: OGRMSSQLSpatialTableLayer::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1828,1
    - Dst: OGRMSSQLGeometryWriter::GetDataLen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1834,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1835,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1836,1
    - Dst: OGRMSSQLGeometryWriter::WriteSqlGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1838,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1840,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1846,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1847,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1848,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1857,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1857,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1866,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1871,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1871,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1877,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1877,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1881,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1881,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1885,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1888,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1896,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1899,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1906,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1909,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1912,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1916,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1916,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1922,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1922,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1924,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1926,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1926,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1930,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1933,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1937,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1937,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1943,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1943,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1945,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1947,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1947,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1951,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1954,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1956,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1959,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1960,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1966,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1967,1
    - Dst: wcslen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1969,1
    - Dst: static_cast<SQLLEN>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1971,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1976,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1980,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1982,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1985,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1987,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1987,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1989,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1996,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:1999,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2003,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2003,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2016,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2021,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2021,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2025,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2025,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2029,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2032,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2036,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2036,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2049,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2054,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2054,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2058,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2058,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2062,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2065,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2069,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2069,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2082,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2087,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2087,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2092,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2092,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2096,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2098,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2102,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2102,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2110,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2114,1
    - Dst: bcp_collen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2114,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2116,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2124,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2127,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2128,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2128,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2138,1
    - Dst: bcp_sendrow
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2138,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2149,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2150,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2156,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2157,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2157,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2163,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2163,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2173,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2176,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2178,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2180,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2182,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2188,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2189,1
    - Dst: wcslen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2191,1
    - Dst: static_cast<SQLLEN>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2193,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2198,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2202,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2204,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2204,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2206,1
    - Dst: reinterpret_cast<LPCBYTE>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2208,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2212,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2215,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2215,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2221,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2222,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2228,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2234,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2234,1
    - Dst: static_cast<DBINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2236,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2244,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2244,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2249,1
    - Dst: bcp_moretext
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2249,1
    - Dst: OGRMSSQLSpatialTableLayer::Failed2
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2263,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 321
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2269
      start: 1540
    functionDepth: 8
    functionLinenumber: 1540
    functionLinenumberEnd: 2269
    functionName: OGRMSSQLSpatialTableLayer::CreateFeatureBCP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - OGRFeature*::GetFieldAsDateTime
    - OGRGeometry*::getSpatialReference
    - static_cast<DBINT>
    - OGRFeature*::GetFieldAsString
    - reinterpret_cast<LPCBYTE>
    - bcp_init
    - OGRFieldDefn::GetFieldTypeName
    - GetFieldDefn
    - CPLError
    - OGRFieldDefn*::GetWidth
    - reinterpret_cast<void *>
    - OGRMSSQLGeometryValidator::MakeValid
    - static_cast<GUInt16>
    - OGRFieldDefn*::IsIgnored
    - reinterpret_cast<char *>
    - OGRMSSQLSpatialTableLayer::StartCopy
    - OGRFeature*::GetFieldAsInteger
    - wcslen
    - CPLMalloc
    - bcp_sendrow
    - const_cast<char **>
    - bcp_moretext
    - OGRMSSQLGeometryWriter::WriteSqlGeometry
    - static_cast<int>
    - OGRMSSQLSpatialTableLayer::FetchSRSId
    - GetSession
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetFID
    - OGRFieldDefn*::GetNameRef
    - static_cast<SQLLEN>
    - GetFieldCount
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - snprintf
    - static_cast<GByte *>
    - bcp_control
    - OGRMSSQLSpatialTableLayer::CloseBCP
    - OGRMSSQLGeometryValidator::IsValid
    - reinterpret_cast<GUInt16 *>
    - CPLFree
    - bcp_bind
    - OGRMSSQLGeometryWriter::GetDataLen
    - OGRFeature*::GetGeometryRef
    - bcp_collen
    - OGRMSSQLSpatialTableLayer::Failed2
    - CPLRecodeToWChar
    - CPLODBCSession*::CommitTransaction
    - static_cast<BCPData *>
    - CPLODBCSession*::IsInTransaction
    - GetConnectionString
    - memcpy
    - static_cast<BCPData **>
    - OGRMSSQLSpatialTableLayer::InitBCP
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::CreateFeatureBCP(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2281,1
    - Dst: OGRMSSQLSpatialTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2290,1
    - Dst: OGRMSSQLSpatialTableLayer::CreateFeatureBCP
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2298,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2302,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2304,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2309,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2311,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2318,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2320,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2321,1
    - Dst: OGRMSSQLGeometryValidator::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2325,1
    - Dst: OGRMSSQLGeometryValidator::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2328,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2331,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2339,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2340,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2341,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2347,1
    - Dst: GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2352,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2360,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2363,1
    - Dst: static_cast<SQLLEN *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2375,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2375,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2381,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2385,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2386,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2389,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2390,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2396,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2396,1
    - Dst: CPLODBCStatement::GetCommand
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2396,1
    - Dst: AlwaysOutputFid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2401,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2402,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2403,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2405,1
    - Dst: AlwaysOutputFid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2411,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2412,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2413,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2415,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2427,1
    - Dst: OGRMSSQLSpatialTableLayer::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2429,1
    - Dst: OGRMSSQLGeometryWriter::GetDataLen
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2438,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2440,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2440,1
    - Dst: OGRMSSQLGeometryWriter::WriteSqlGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2441,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2442,1
    - Dst: CPLODBCSession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2446,1
    - Dst: SQLBindParameter
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2446,1
    - Dst: CPLODBCStatement::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2447,1
    - Dst: static_cast<SQLUSMALLINT>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2448,1
    - Dst: static_cast<SQLPOINTER>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2451,1
    - Dst: reinterpret_cast<SQLLEN *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2453,1
    - Dst: CPLODBCSession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2455,1
    - Dst: SQLGetStmtAttr
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2455,1
    - Dst: CPLODBCStatement::GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2456,1
    - Dst: CPLODBCSession*::Failed
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2458,1
    - Dst: SQLSetDescField
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2458,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2460,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2466,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2472,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2473,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2478,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2479,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2482,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2487,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2496,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2497,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2500,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2502,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2519,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2520,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2524,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2525,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2533,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2534,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2539,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2540,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2546,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2564,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2565,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2569,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2570,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2578,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2579,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2584,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2585,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2589,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2598,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2601,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2608,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2612,1
    - Dst: OGRMSSQLSpatialTableLayer::AppendFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2616,1
    - Dst: CPLODBCStatement::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2619,1
    - Dst: CPLODBCStatement::Appendf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2623,1
    - Dst: CPLODBCStatement::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2630,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2632,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2634,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2637,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2638,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2641,1
    - Dst: AlwaysOutputFid
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2647,1
    - Dst: CPLODBCStatement::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2650,1
    - Dst: atoll
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2652,1
    - Dst: CPLODBCStatement::GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2652,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2653,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2658,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2659,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2662,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 170
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2666
      start: 2276
    functionDepth: 9
    functionLinenumber: 2276
    functionLinenumberEnd: 2666
    functionName: OGRMSSQLSpatialTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRMSSQLSpatialTableLayer::GetLayerDefn
    - OGRGeometry*::getSpatialReference
    - static_cast<SQLPOINTER>
    - CPLODBCStatement::GetCommand
    - GetFieldDefn
    - CPLError
    - OGRMSSQLGeometryValidator::MakeValid
    - GetMetadataItem
    - CPLODBCStatement::Append
    - CPLODBCStatement::Fetch
    - SQLSetDescField
    - CPLODBCStatement::Appendf
    - strlen
    - CPLMalloc
    - reinterpret_cast<SQLLEN *>
    - AlwaysOutputFid
    - static_cast<SQLUSMALLINT>
    - CPLODBCStatement::ExecuteSQL
    - OGRMSSQLGeometryWriter::WriteSqlGeometry
    - static_cast<int>
    - OGRMSSQLSpatialTableLayer::FetchSRSId
    - GetSession
    - CPLODBCStatement::GetStatement
    - OGRFeature*::GetFID
    - CPLODBCSession*::Failed
    - OGRGeometry*::exportToWkb
    - GetFIDColumn
    - ClearStatement
    - SQLGetStmtAttr
    - static_cast<SQLLEN *>
    - static_cast<GByte *>
    - OGRMSSQLGeometryValidator::IsValid
    - OGRMSSQLSpatialTableLayer::CreateFeatureBCP
    - CPLFree
    - OGRMSSQLGeometryWriter::GetDataLen
    - OGRFeature*::GetGeometryRef
    - const_cast<char *>
    - CPL_INT64_FITS_ON_INT32
    - OGRGeometry*::exportToWkt
    - OGRMSSQLSpatialTableLayer::AppendFieldValue
    - atoll
    - SQLBindParameter
    - VSI_MALLOC_VERBOSE
    - OGRFeature*::SetFID
    - CPLODBCStatement::GetColData
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2687,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2695,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2703,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2711,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2713,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2714,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2734,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2738,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2738,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2740,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2754,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2784,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2785,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2790,1
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2797,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2808,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2812,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2818,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2820,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2830,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2836,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2837,1
    - Dst: OGRMSSQLAppendEscaped
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2842,1
    - Dst: CPLODBCStatement*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp:2846,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 5
    argNames:
    - poStatement
    - poFeature
    - i
    - bind_num
    - bind_buffer
    argTypes:
    - CPLODBCStatement*
    - OGRFeature*
    - int
    - int*
    - void**
    constantsTouched: []
    func_position:
      end: 2848
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2848
    functionName: OGRMSSQLSpatialTableLayer::AppendFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatialtablelayer.cpp
    functionUses: 2
    functionsReached:
    - CPLRecodeToWChar
    - static_cast<GUInt16>
    - STARTS_WITH_CI
    - CPLStrdup
    - OGRFeature*::GetFieldAsBinary
    - CPLSPrintf
    - OGRMSSQLAppendEscaped
    - GetFieldDefn
    - CPLError
    - CPLODBCStatement*::Append
    - reinterpret_cast<GUInt16 *>
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialTableLayer::AppendFieldValue(CPLODBCStatement
      *poStatement,\n                                                 OGRFeature *poFeature,
      int i,\n                                                 int *bind_num,\n                                                 void
      **bind_buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: OGRMSSQLGeometryValidator::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: OGRMSSQLGeometryParser::GetSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSRSId()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: OGRMSSQLGeometryWriter::GetDataLen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetDataLen()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 354
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OGRMSSQLSpatialLayer
    signature: class OGRMSSQLSpatialLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: OGRMSSQLSpatialTableLayer::GetTableName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetTableName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: OGRMSSQLSpatialTableLayer::GetLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetLayerName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: OGRMSSQLSpatialTableLayer::GetSchemaName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetSchemaName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: OGRMSSQLSpatialTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: OGRMSSQLSpatialTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: OGRMSSQLSpatialTableLayer::SetSpatialIndexFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSpatialIndexFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nGeometryFormat
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: OGRMSSQLSpatialTableLayer::SetUploadGeometryFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUploadGeometryFormat(int nGeometryFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bcpSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: OGRMSSQLSpatialTableLayer::SetUseCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseCopy(int bcpSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: OGRMSSQLSpatialTableLayer::SetUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUpdate(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 607
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 607
    functionName: OGRMSSQLSpatialDataSource::GetCatalog
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetCatalog()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: OGRMSSQLSpatialDataSource::GetGeometryFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetGeometryFormat()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: OGRMSSQLSpatialDataSource::UseGeometryColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UseGeometryColumns()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: OGRMSSQLSpatialDataSource::AlwaysOutputFid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AlwaysOutputFid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: OGRMSSQLSpatialDataSource::GetSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: CPLODBCSession
    signature: CPLODBCSession *GetSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 673
    functionName: OGRMSSQLSpatialDataSource::GetConnectionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetConnectionString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRMSSQLSpatialDataSource*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: OGRMSSQLSpatialLayer::OGRMSSQLSpatialLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialLayer::OGRMSSQLSpatialLayer(OGRMSSQLSpatialDataSource
      *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:34,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:35,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:35,1
    - Dst: OGRMSSQLSpatialLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:38,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:40,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:41,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:42,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:46,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: OGRMSSQLSpatialLayer::~OGRMSSQLSpatialLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    - OGRMSSQLSpatialLayer::ClearStatement
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialLayer::~OGRMSSQLSpatialLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:70,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:71,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:78,1
    - Dst: DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:83,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:85,1
    - Dst: CPLODBCStatement*::GetColCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:88,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:90,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:91,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:91,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:98,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:98,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:101,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:101,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:102,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:104,1
    - Dst: CPLODBCStatement*::GetColNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:105,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:106,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:111,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:111,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:114,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:114,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:115,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:117,1
    - Dst: CPLODBCStatement*::GetColNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:118,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:119,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:127,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:127,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:129,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:131,1
    - Dst: CPLODBCStatement*::GetColNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:132,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:142,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:142,1
    - Dst: CPLODBCStatement::GetTypeMapping
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:145,1
    - Dst: CPLODBCStatement*::GetColType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:146,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:161,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:165,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:170,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:170,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:174,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:174,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:175,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:188,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:188,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:190,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:197,1
    - Dst: CPLODBCStatement*::GetColTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:197,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:199,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:199,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:201,1
    - Dst: CPLODBCStatement*::GetColName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:209,1
    - Dst: CPLODBCStatement::GetTypeMapping
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:211,1
    - Dst: CPLODBCStatement*::GetColType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:211,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:214,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:215,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:221,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:226,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:230,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:231,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:231,1
    - Dst: CPLODBCStatement*::GetColSize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:231,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:235,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:236,1
    - Dst: CPLODBCStatement*::GetColPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:236,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:237,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:237,1
    - Dst: CPLODBCStatement*::GetColSize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:237,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:238,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:238,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:239,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:240,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:240,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:241,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:245,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:246,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:250,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:254,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:258,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:262,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:267,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:268,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:272,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:272,1
    - Dst: CPLODBCStatement*::GetColSize
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:272,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:276,1
    - Dst: CPLODBCStatement*::GetColNullable
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:276,1
    - Dst: CPLODBCStatement*::GetColColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:281,1
    - Dst: CPLODBCStatement*::GetColColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:281,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:282,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:283,1
    - Dst: CPLODBCStatement*::GetColColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:283,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:285,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:286,1
    - Dst: CPLODBCStatement*::GetColColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:286,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:288,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:303,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:308,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:312,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:314,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:318,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:319,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:330,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:331,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:335,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:336,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:338,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:339,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 176
    argCount: 2
    argNames:
    - pszLayerName
    - poStmtIn
    argTypes:
    - char*
    - CPLODBCStatement*
    constantsTouched: []
    func_position:
      end: 340
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 340
    functionName: OGRMSSQLSpatialLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - CPLODBCStatement::GetTypeMapping
    - DeleteGeomFieldDefn
    - CPLODBCStatement*::GetColColumnDef
    - GetGeomFieldDefn
    - CPLDebug
    - Reference
    - OGRFieldDefn::SetNullable
    - CPLODBCStatement*::GetColTypeName
    - GetFieldIndex
    - GetGeomFieldCount
    - CPLODBCStatement*::GetColName
    - CPLStrdup
    - CPLODBCStatement*::GetColPrecision
    - DeleteFieldDefn
    - SetName
    - MAX
    - CPLODBCStatement*::GetColSize
    - AddFieldDefn
    - CPLMalloc
    - SetMetadataItem
    - GetName
    - STARTS_WITH_CI
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::GetWidth
    - CPLODBCStatement*::GetColCount
    - CPLFree
    - CPLODBCStatement*::GetColType
    - static_cast<int *>
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::GetPrecision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CPLODBCStatement*::GetColNullable
    - OGRFieldDefn::SetType
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void OGRMSSQLSpatialLayer::BuildFeatureDefn(const char *pszLayerName,\n
      \                                           CPLODBCStatement *poStmtIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: OGRMSSQLSpatialLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: OGRMSSQLSpatialLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMSSQLSpatialLayer::ClearStatement
    linkageType: ''
    returnType: void
    signature: void OGRMSSQLSpatialLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMSSQLSpatialLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:386,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:394,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:394,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:395,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 400
    functionName: OGRMSSQLSpatialLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 1
    functionsReached:
    - FilterGeometry
    - OGRMSSQLSpatialLayer::GetNextRawFeature
    - Evaluate
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:410,1
    - Dst: Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:416,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:426,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:429,1
    - Dst: GetColData
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:430,1
    - Dst: GetColId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:430,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:432,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:432,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:434,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:442,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:444,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:451,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:452,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:453,1
    - Dst: GetColDataLength
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:453,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:454,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:456,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:462,1
    - Dst: GetGeometryFormat
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:477,1
    - Dst: OGRMSSQLGeometryParser::ParseSqlGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:482,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:483,1
    - Dst: OGRMSSQLGeometryParser::GetSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:486,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:491,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:495,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:525,1
    - Dst: OGRMSSQLSpatialLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:531,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:532,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:534,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 406
    functionDepth: 8
    functionLinenumber: 406
    functionLinenumberEnd: 539
    functionName: OGRMSSQLSpatialLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - GetColDataLength
    - reinterpret_cast<const unsigned char *>
    - GetFieldDefn
    - OGRMSSQLGeometryParser::GetSRSId
    - CPLError
    - IsGeometryIgnored
    - OGRGeometryFactory::createFromWkb
    - CPLAtoGIntBig
    - GetColData
    - OGRMSSQLSpatialLayer::GetSpatialRef
    - OGRFeature*::SetGeometryDirectly
    - GetColId
    - GetFieldCount
    - Fetch
    - OGRFeature::OGRFeature
    - OGRFeature*::GetFieldDefnRef
    - reinterpret_cast<const GByte *>
    - GetGeometryFormat
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - GetStatement
    - OGRMSSQLGeometryParser::ParseSqlGeometry
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: OGRMSSQLSpatialLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMSSQLSpatialLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: OGRMSSQLSpatialLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRMSSQLSpatialLayer::TestCapability(CPL_UNUSED const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:569,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:571,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 576
    functionName: OGRMSSQLSpatialLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetSession
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:585,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:587,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 593
    functionName: OGRMSSQLSpatialLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetSession
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:602,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:604,1
    - Dst: GetSession
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 610
    functionName: OGRMSSQLSpatialLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetSession
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMSSQLSpatialLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:621,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: OGRMSSQLSpatialLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 1
    functionsReached:
    - Reference
    - FetchSRS
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRMSSQLSpatialLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: OGRMSSQLSpatialLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRMSSQLSpatialLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: OGRMSSQLSpatialLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRMSSQLSpatialLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:677,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pabyData
    - nLen
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 691
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 691
    functionName: OGRMSSQLSpatialLayer::GByteArrayToHexString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *OGRMSSQLSpatialLayer::GByteArrayToHexString(const GByte *pabyData,\n
      \                                                 int nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: OGRMSSQLSpatialLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mssqlspatial/ogrmssqlspatiallayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMSSQLSpatialLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 94
    functionName: DefaultHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_C_END
    signature: CPL_C_END DefaultHandler
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: GMLReadState::GetPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: NASReader::IsClassListLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsClassListLocked() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: NASReader::SetClassListLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetClassListLocked(bool bFlag) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: NASReader::GetClassCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetClassCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: NASReader::ParseXSD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ParseXSD(const char * /* pszFile */)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: NASReader::GetState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLReadState
    signature: GMLReadState *GetState() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: NASReader::StopParsing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StopParsing()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: NASReader::HasStoppedParsing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasStoppedParsing() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: NASReader::GetGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetGlobalSRSName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: NASReader::CanUseGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanUseGlobalSRSName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: NASReader::GetFilteredClassName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFilteredClassName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:40,1
    - Dst: std::isspace
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:46,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:46,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:55,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:60,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:61,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:63,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:65,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:76,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:79,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:82,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:84,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 92
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 92
    functionName: OGRNASDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - GDALOpenInfo*::IsSingleAllowedDriver
    - reinterpret_cast<const char *>
    - static_cast<unsigned char>
    - CSLDestroy
    - memcmp
    - CPLDebug
    - CPL_IGNORE_RET_VAL
    - std::isspace
    - strstr
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int OGRNASDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNASDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:101,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:104,1
    - Dst: OGRNASDataSource::OGRNASDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:107,1
    - Dst: OGRNASDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: OGRNASDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRNASDriverIdentify
    - OGRNASDataSource::OGRNASDataSource
    - OGRNASDataSource*::Open
    - VSIFCloseL
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRNASDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:125,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:128,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:130,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:131,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:132,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:133,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:134,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:136,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: RegisterOGRNAS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRNAS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: OGRNASDataSource::OGRNASDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRNASDataSource::OGRNASDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: OGRNASDataSource::~OGRNASDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRNASDataSource::~OGRNASDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateNASReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:55,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:58,1
    - Dst: SetSourceFile
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:66,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:73,1
    - Dst: LoadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:76,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:78,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:85,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:95,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:97,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:103,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:106,1
    - Dst: LoadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:110,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:116,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:125,1
    - Dst: PrescanForSchema
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:126,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:127,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:137,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:138,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:139,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:140,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:141,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:142,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:143,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:148,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:150,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:150,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:151,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:151,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:153,1
    - Dst: SaveClasses
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:154,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:154,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:158,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:160,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:167,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:168,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:171,1
    - Dst: OGRNASDataSource::TranslateNASSchema
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:173,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:173,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 178
    functionName: OGRNASDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetSourceFile
    - OGRNASDataSource::TranslateNASSchema
    - SaveClasses
    - CPLDebug
    - CreateNASReader
    - CPLError
    - GetClassCount
    - std::string::c_str
    - CPLErrorReset
    - GetClass
    - LoadClasses
    - STARTS_WITH_CI
    - VSIFOpenL
    - CPLCalloc
    - VSIStatL
    - VSIFCloseL
    - CPLResetExtensionSafe
    - EQUAL
    - CPLGetLastErrorType
    - PrescanForSchema
    linkageType: ''
    returnType: int
    signature: int OGRNASDataSource::Open(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:199,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:200,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:215,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:220,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:222,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:225,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:235,1
    - Dst: OGRNASLayer::OGRNASLayer
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:235,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:240,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:242,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:245,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:247,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:249,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:251,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:253,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:255,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:257,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:262,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:263,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:263,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:264,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:264,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:265,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:266,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:266,1
    - Dst: OGRNASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:268,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:271,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:274,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:275,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:276,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:277,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:278,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:280,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:283,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:284,1
    - Dst: GMLGeometryPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:284,1
    - Dst: OGRNASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:285,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp:289,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - poClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 292
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 292
    functionName: OGRNASDataSource::TranslateNASSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetName
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLDebug
    - OGRGeomFieldDefn::SetSpatialRef
    - EQUALN
    - OGRGeomFieldDefn::SetType
    - OGRSpatialReference*::SetAxisMappingStrategy
    - GMLFeatureClass*::GetProperty
    - GMLPropertyDefn*::GetType
    - GMLFeatureClass*::GetFeatureCount
    - OGRFieldDefn::GetNameRef
    - STARTS_WITH_CI
    - OGRGeomFieldDefn::SetNullable
    - OGRSpatialReference*::Dereference
    - GMLFeatureClass*::GetGeometryPropertyCount
    - GMLFeatureClass*::GetPropertyCount
    - GMLGeometryPropertyDefn*::GetName
    - OGRFieldDefn::SetName
    - GMLGeometryPropertyDefn*::IsNullable
    - GMLFeatureClass*::GetName
    - OGRSpatialReference::OGRSpatialReference
    - OGRNASLayer*::GetLayerDefn
    - GMLPropertyDefn*::GetWidth
    - OGRFieldDefn::SetWidth
    - EQUAL
    - OGRSpatialReference*::SetFromUserInput
    - OGRNASLayer::OGRNASLayer
    - GMLFeatureClass*::GetGeometryProperty
    - GMLGeometryPropertyDefn*::GetType
    linkageType: ''
    returnType: OGRNASLayer
    signature: OGRNASLayer *OGRNASDataSource::TranslateNASSchema(GMLFeatureClass *poClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: OGRNASDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRNASDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::NASReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: CreateNASReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - NASReader::NASReader
    linkageType: ''
    returnType: IGMLReader
    signature: IGMLReader *CreateNASReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: NASReader::NASReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NASReader::NASReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::ClearClasses
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:64,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:66,1
    - Dst: NASReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:68,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:71,1
    - Dst: OGRDeinitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:74,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: NASReader::~NASReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - NASReader::ClearClasses
    - VSIFCloseL
    - OGRDeinitializeXerces
    - CPLFree
    - NASReader::CleanupParser
    linkageType: ''
    returnType: void
    signature: void NASReader::~NASReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:86,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: NASReader::SetSourceFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void NASReader::SetSourceFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: NASReader::GetSourceFileName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *NASReader::GetSourceFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:107,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:110,1
    - Dst: OGRInitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:114,1
    - Dst: NASReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:121,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:129,1
    - Dst: NASHandler::NASHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:131,1
    - Dst: setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:133,1
    - Dst: setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:134,1
    - Dst: setLexicalHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:135,1
    - Dst: setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:136,1
    - Dst: setDTDHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:137,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:138,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:142,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:144,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:147,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:148,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:150,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:151,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:156,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:158,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:161,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:162,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:166,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:169,1
    - Dst: NASReader::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:177,1
    - Dst: GMLReadState::GMLReadState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:177,1
    - Dst: OGRCreateXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 185
    functionName: NASReader::SetupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - OGRInitializeXerces
    - NASHandler::NASHandler
    - CPLError
    - setLexicalHandler
    - setFeature
    - VSIFSeekL
    - XMLReaderFactory::createXMLReader
    - setEntityResolver
    - setDTDHandler
    - GMLReadState::GMLReadState
    - OGRCreateXercesInputSource
    - VSIFOpenL
    - NASReader::PushState
    - setContentHandler
    - OGR::transcode
    - flatbuffers::vector_downward::release
    - setErrorHandler
    - NASReader::CleanupParser
    linkageType: ''
    returnType: bool
    signature: bool NASReader::SetupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::PopState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:198,1
    - Dst: OGRDestroyXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 213
    functionName: NASReader::CleanupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 2
    functionsReached:
    - OGRDestroyXercesInputSource
    - NASReader::PopState
    linkageType: ''
    returnType: void
    signature: void NASReader::CleanupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:229,1
    - Dst: parseFirst
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:234,1
    - Dst: parseNext
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:240,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:250,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:251,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:251,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:256,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:256,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:257,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 262
    functionName: NASReader::NextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - parseNext
    - CPLDebug
    - getMessage
    - CPLString::c_str
    - CPLError
    - NASReader::SetupParser
    - parseFirst
    - transcode
    linkageType: ''
    returnType: GMLFeature
    signature: GMLFeature *NASReader::NextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:281,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:283,1
    - Dst: NASReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:283,1
    - Dst: NASReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:291,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:293,1
    - Dst: NASReader::IsClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:293,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:297,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:315,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:318,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:320,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:322,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:324,1
    - Dst: NASReader::AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:328,1
    - Dst: NASReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:334,1
    - Dst: GMLFeature::GMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:334,1
    - Dst: GMLReadState::GMLReadState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:339,1
    - Dst: NASReader::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:341,1
    - Dst: NASReader::SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pszElement
    - attrs
    argTypes:
    - char*
    - Attributes
    constantsTouched: []
    func_position:
      end: 354
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 354
    functionName: NASReader::PushFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - GMLPropertyDefn*::SetWidth
    - GMLPropertyDefn::GMLPropertyDefn
    - GMLPropertyDefn*::SetType
    - NASReader::AddClass
    - GMLReadState::GMLReadState
    - GMLFeatureClass*::AddProperty
    - EQUAL
    - strcmp
    - CPLAssert
    - NASReader::PushState
    - NASReader::SetFeaturePropertyDirectly
    - NASReader::GetClassCount
    - NASReader::IsClassListLocked
    - NASReader::GetClass
    - GMLFeature::GMLFeature
    - GMLFeatureClass::GMLFeatureClass
    linkageType: ''
    returnType: void
    signature: void NASReader::PushFeature(const char *pszElement, const Attributes
      &attrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:366,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:374,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:376,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:382,1
    - Dst: NASReader::IsClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:385,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:388,1
    - Dst: NASReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:394,1
    - Dst: NASReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:394,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 1
    argNames:
    - pszElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 399
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 399
    functionName: NASReader::IsFeatureElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLAssert
    - NASReader::GetClassCount
    - NASReader::IsClassListLocked
    - NASReader::GetClass
    linkageType: ''
    returnType: bool
    signature: bool NASReader::IsFeatureElement(const char *pszElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:412,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:416,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:432,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:433,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:433,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:433,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:436,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:438,1
    - Dst: Attributes::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:438,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:445,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:446,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:446,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:446,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:452,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:453,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:453,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - pszElement
    - attrs
    argTypes:
    - char*
    - Attributes
    constantsTouched: []
    func_position:
      end: 458
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 458
    functionName: NASReader::IsAttributeElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GMLFeatureClass*::GetPropertyIndexBySrcElement
    - Attributes::getQName
    - GMLFeatureClass*::IsSchemaLocked
    - CPLString::c_str
    - CPLString::size
    - Attributes::getLength
    - transcode
    - m_poFeature::GetClass
    linkageType: ''
    returnType: bool
    signature: "bool NASReader::IsAttributeElement(const char *pszElement,\n                                   const
      Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 485
    functionName: NASReader::PopState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NASReader::PopState()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poState
    argTypes:
    - GMLReadState*
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: NASReader::PushState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NASReader::PushState(GMLReadState *poState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iClass
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: NASReader::GetClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: GMLFeatureClass
    signature: GMLFeatureClass *NASReader::GetClass(int iClass) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:520,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: NASReader::GetClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 2
    functionsReached:
    - strcmp
    - GetName
    linkageType: ''
    returnType: GMLFeatureClass
    signature: GMLFeatureClass *NASReader::GetClass(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:534,1
    - Dst: NASReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:535,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:535,1
    - Dst: static_cast<GMLFeatureClass **>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:538,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:539,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:543,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poNewClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 554
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 554
    functionName: NASReader::AddClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - GetName
    - EQUAL
    - CPLRealloc
    - CPLAssert
    - NASReader::GetClass
    - GMLFeatureClass*::GetName
    - static_cast<GMLFeatureClass **>
    linkageType: ''
    returnType: int
    signature: int NASReader::AddClass(GMLFeatureClass *poNewClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:563,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 571
    functionName: NASReader::ClearClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void NASReader::ClearClasses()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::GetState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:585,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:587,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:593,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:599,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:602,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:606,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:610,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:614,1
    - Dst: GMLFeatureClass*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:615,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:620,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:627,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:627,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:628,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:630,1
    - Dst: GMLPropertyDefn::IsSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:633,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:634,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:636,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:642,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:645,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:652,1
    - Dst: GMLFeature*::SetPropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:659,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:664,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:666,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:669,1
    - Dst: auto::AnalysePropertyValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:672,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:677,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - pszElement
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 680
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 680
    functionName: NASReader::SetFeaturePropertyDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLGetConfigOption
    - GMLPropertyDefn::IsSimpleType
    - GMLPropertyDefn::GMLPropertyDefn
    - GMLFeatureClass*::AddProperty
    - GMLFeatureClass*::GetProperty
    - GMLFeature*::SetPropertyDirectly
    - NASReader::GetState
    - GMLFeatureClass*::GetPropertyIndex
    - GMLPropertyDefn*::SetType
    - GMLFeatureClass*::GetPropertyCount
    - CPLAssert
    - strrchr
    - CPLFree
    - GMLFeatureClass*::GetName
    - GMLFeature*::GetClass
    - auto::AnalysePropertyValue
    - GMLFeature*::GetProperty
    - GMLFeatureClass*::IsSchemaLocked
    - strchr
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void NASReader::SetFeaturePropertyDirectly(const char *pszElement,\n
      \                                          char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:693,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:698,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:702,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:707,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:709,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:714,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:718,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:722,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:724,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:725,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:726,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:732,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:734,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:736,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:737,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:747,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:756,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:769,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:771,1
    - Dst: GMLFeatureClass*::InitializeFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:773,1
    - Dst: GMLFeatureClass*::SetSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:779,1
    - Dst: NASReader::AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:781,1
    - Dst: NASReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:785,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - pszFile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 788
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 788
    functionName: NASReader::LoadClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - NASReader::SetClassListLocked
    - VSIFCloseL
    - NASReader::AddClass
    - VSIFSeekL
    - CPLDebug
    - GMLFeatureClass*::SetSchemaLocked
    - EQUAL
    - VSIFOpenL
    - GMLFeatureClass*::InitializeFromXML
    - VSIFree
    - strstr
    - VSIFReadL
    - CPLXMLTreeCloser::get
    - CPLError
    - GMLFeatureClass::GMLFeatureClass
    linkageType: ''
    returnType: bool
    signature: bool NASReader::LoadClasses(const char *pszFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:805,1
    - Dst: NASReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:807,1
    - Dst: NASReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:809,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:811,1
    - Dst: GMLFeatureClass*::SerializeToXML
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:811,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:819,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:821,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:826,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:826,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:828,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:833,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:833,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:835,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pszFile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 841
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 841
    functionName: NASReader::SaveClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLAddXMLChild
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    - GMLFeatureClass*::SerializeToXML
    - NASReader::GetClassCount
    - NASReader::GetClass
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool NASReader::SaveClasses(const char *pszFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:857,1
    - Dst: NASReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:859,1
    - Dst: NASReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:861,1
    - Dst: NASReader::NextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:867,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:869,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:871,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:872,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:874,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:874,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:881,1
    - Dst: OGR_G_CreateFromGMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:885,1
    - Dst: NASReader::ConvertGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:886,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:893,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:894,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:894,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:898,1
    - Dst: GMLFeatureClass*::MergeSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:906,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:909,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:912,1
    - Dst: OGRMergeGeometryTypesEx
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:913,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:914,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:917,1
    - Dst: GMLFeatureClass*::GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:923,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:925,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:926,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:927,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:928,1
    - Dst: GMLFeatureClass*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:938,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:942,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:943,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:945,1
    - Dst: GMLFeatureClass*::ClearGeometryProperties
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:947,1
    - Dst: NASReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:955,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:961,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:967,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:967,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:975,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:979,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:980,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:980,1
    - Dst: NASReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:983,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - bGetExtents
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 984
      start: 852
    functionDepth: 6
    functionLinenumber: 852
    functionLinenumberEnd: 984
    functionName: NASReader::PrescanForSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - GMLFeatureClass*::SetFeatureCount
    - GMLFeatureClass*::GetExtents
    - CPLDebug
    - OGRMergeGeometryTypesEx
    - NASReader::GetClassCount
    - GMLFeatureClass*::SetExtents
    - NASReader::SetupParser
    - GMLFeatureClass*::ClearGeometryProperties
    - NASReader::CleanupParser
    - GetName
    - OGRGeometry*::getGeometryType
    - GMLFeatureClass*::GetFeatureCount
    - NASReader::ConvertGeometry
    - GMLFeatureClass*::GetGeometryPropertyCount
    - OGR_G_CreateFromGMLTree
    - min
    - GMLFeature*::GetGeometryList
    - OGRGeometry*::getEnvelope
    - NASReader::SetClassListLocked
    - GMLFeature*::GetClass
    - GMLFeatureClass*::AddGeometryProperty
    - GMLFeatureClass*::MergeSRSName
    - max
    - NASReader::NextFeature
    - GMLFeatureClass*::GetGeometryProperty
    - GetFeatureCount
    linkageType: ''
    returnType: bool
    signature: bool NASReader::PrescanForSchema(bool bGetExtents, bool /*bOnlyDetectSRS*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:993,1
    - Dst: NASReader::SetFilteredClassName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 995
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 995
    functionName: NASReader::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - NASReader::SetFilteredClassName
    - NASReader::CleanupParser
    linkageType: ''
    returnType: void
    signature: void NASReader::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1005,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1012,1
    - Dst: CPLString::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1017,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1018,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1019,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1020,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1021,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1021,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1029,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1029,1
    - Dst: CPLString::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1032,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1033,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1034,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1035,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1038,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1039,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1041,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - pszElement
    - nLen
    - pszAttrKey
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1046
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1046
    functionName: NASReader::GetAttributeElementIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLString::assign
    - GMLFeatureClass*::GetPropertyIndexBySrcElement
    - CPLString::c_str
    - strlen
    - m_poFeature::GetClass
    - CPLString::reserve
    - CPLString::append
    linkageType: ''
    returnType: int
    signature: "int NASReader::GetAttributeElementIndex(const char *pszElement, int
      nLen,\n                                        const char *pszAttrKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASReader::GetState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1056,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1057,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1059,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1061,1
    - Dst: Attributes::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1061,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1062,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1062,1
    - Dst: NASReader::GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1070,1
    - Dst: NASReader::GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1072,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1077,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1079,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1081,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1084,1
    - Dst: GMLFeature*::SetPropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1087,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1087,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attrs
    argTypes:
    - char*
    - int
    - Attributes
    constantsTouched: []
    func_position:
      end: 1091
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1091
    functionName: NASReader::DealWithAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - Attributes::getQName
    - EQUAL
    - GMLFeature*::SetPropertyDirectly
    - CPLAssert
    - Attributes::getLength
    - NASReader::GetState
    - strrchr
    - NASReader::GetAttributeElementIndex
    - Attributes::getValue
    - transcode
    linkageType: ''
    returnType: void
    signature: "void NASReader::DealWithAttributes(const char *pszName, int nLenName,\n
      \                                  const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1104
    functionName: NASReader::HugeFileResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: "bool NASReader::HugeFileResolver(const char * /*pszFile */,\n                                 bool
      /* bSqliteIsTempFile */,\n                                 int /* iSqliteCacheMB
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1116
    functionName: NASReader::PrescanForTemplate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: bool NASReader::PrescanForTemplate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1129
    functionName: NASReader::ResolveXlinks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: "bool NASReader::ResolveXlinks(const char * /*pszFile */,\n                              bool
      * /*pbOutIsTempFile */,\n                              char ** /*papszSkip */,
      const bool /*bStrict */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1137,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszClassName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1140
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1140
    functionName: NASReader::SetFilteredClassName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: bool
    signature: bool NASReader::SetFilteredClassName(const char *pszClassName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1151,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1151,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1146
    functionDepth: 6
    functionLinenumber: 1146
    functionLinenumberEnd: 1157
    functionName: NASReader::ConvertGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nasreader.cpp
    functionUses: 1
    functionsReached:
    - wkbFlatten
    - OGRGeometryFactory::forceTo
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *NASReader::ConvertGeometry(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poReader
    argTypes:
    - NASReader*
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: NASHandler::NASHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NASHandler::NASHandler(NASReader *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:125,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: NASHandler::~NASHandler()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void NASHandler::~NASHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Attributes*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:137,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:140,1
    - Dst: Attributes*::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:140,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:142,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - Attributes*
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: NASHandler::GetAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - Attributes*::getLength
    - Attributes*::getQName
    - Attributes*::getValue
    - transcode
    linkageType: ''
    returnType: CPLString
    signature: CPLString NASHandler::GetAttributes(const Attributes *attrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NASHandler::setDocumentLocator
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - locator
    argTypes:
    - Locator*
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: NASHandler::setDocumentLocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 1
    functionsReached:
    - NASHandler::setDocumentLocator
    linkageType: ''
    returnType: void
    signature: void NASHandler::setDocumentLocator(const Locator *locator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:170,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:172,1
    - Dst: NASDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:174,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:175,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:176,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:190,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:190,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:195,1
    - Dst: Attributes::getIndex
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:206,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:210,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:212,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:213,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:213,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:214,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:214,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:218,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:218,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:221,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:224,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:233,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:234,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:247,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:250,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:250,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:251,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:259,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:261,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:262,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:262,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:263,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:263,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:268,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:268,1
    - Dst: PushFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:270,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:271,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:272,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:273,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:274,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:275,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:282,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:285,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:286,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:286,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:287,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:287,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:291,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:292,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:293,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:294,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:300,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:301,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:303,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:304,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:306,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:307,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:311,1
    - Dst: IsFeatureElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:322,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:333,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:335,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:336,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:336,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:337,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:337,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:342,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:343,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:343,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:351,1
    - Dst: PushFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:354,1
    - Dst: NASHandler::IsGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:359,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:362,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:364,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:366,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:367,1
    - Dst: NASHandler::GetAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:371,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:379,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:382,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:383,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:386,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:387,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:389,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:391,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:392,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:395,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:396,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:396,1
    - Dst: IsAttributeElement
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:398,1
    - Dst: DealWithAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:400,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:401,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:401,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:402,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:403,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:406,1
    - Dst: GMLReadState*::osPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:408,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:410,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:412,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:413,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:413,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:414,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:414,1
    - Dst: StopParsing
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:415,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 2
    argNames:
    - localname
    - attrs
    argTypes:
    - XMLCh*
    - Attributes
    constantsTouched: []
    func_position:
      end: 417
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 417
    functionName: NASHandler::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - clear
    - GMLReadState*::osPath::size
    - getColumnNumber
    - StopParsing
    - DealWithAttributes
    - SetFeaturePropertyDirectly
    - CPLError
    - GMLReadState*::PushPath
    - CPLString::empty
    - transcode
    - end
    - IsAttributeElement
    - CPLStrdup
    - CPLString::size
    - CPLRealloc
    - strlen
    - GetSourceFileName
    - GMLReadState*::m_poFeature::GetClass
    - GMLReadState*::osPath::c_str
    - getLineNumber
    - c_str
    - static_cast<int>
    - strcat
    - CPLAssert
    - begin
    - Attributes::getIndex
    - PushFeature
    - NASHandler::IsGeometryElement
    - GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
    - CPLFree
    - Attributes::getValue
    - NASHandler::GetAttributes
    - NASDebug
    - length
    - EQUAL
    - IsFeatureElement
    - strcpy
    - GetState
    linkageType: ''
    returnType: void
    signature: "void NASHandler::startElement(const XMLCh *const /* uri */,\n                              const
      XMLCh *const localname,\n                              const XMLCh *const /*
      qname */,\n                              const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:429,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:431,1
    - Dst: NASDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:433,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:434,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:435,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:453,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:455,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:460,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:466,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:468,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:469,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:470,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:470,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:471,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:471,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:477,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:481,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:483,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:489,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:489,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:507,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:510,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:511,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:512,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:513,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:513,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:519,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:533,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:535,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:536,1
    - Dst: GMLReadState*::m_poFeature::GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:541,1
    - Dst: GMLReadState*::m_poFeature::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:542,1
    - Dst: GMLReadState*::m_poFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:549,1
    - Dst: NASDebug
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:555,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:563,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:564,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:564,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:565,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:565,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:567,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:569,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:576,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:577,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:577,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:578,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:578,1
    - Dst: GMLReadState*::m_poFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:583,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:587,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:589,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:591,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:594,1
    - Dst: GMLReadState*::m_poFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:601,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:605,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:606,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:607,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:608,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:608,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:609,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:609,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:610,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:614,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:616,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:617,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:617,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:618,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:618,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:621,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:623,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:624,1
    - Dst: getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:624,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:625,1
    - Dst: getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:625,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:627,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:636,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:637,1
    - Dst: PopState
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:642,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:645,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 87
    argCount: 1
    argNames:
    - localname
    argTypes:
    - XMLCh*
    constantsTouched: []
    func_position:
      end: 651
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 651
    functionName: NASHandler::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - GMLReadState*::m_poFeature::GetProperty
    - getColumnNumber
    - SetFeaturePropertyDirectly
    - GMLReadState*::m_poFeature::SetGeometryDirectly
    - CPLError
    - transcode
    - GMLReadState*::m_poFeature::GetGeometryCount
    - GMLReadState*::PopPath
    - CPLRealloc
    - strlen
    - GetSourceFileName
    - GMLReadState*::m_poFeature::GetClass
    - GMLReadState*::osPath::c_str
    - getLineNumber
    - c_str
    - static_cast<int>
    - CPLDestroyXMLNode
    - CPLSPrintf
    - strcat
    - CPLParseXMLString
    - CPLAssert
    - PopState
    - strstr
    - strrchr
    - CPLFree
    - NASDebug
    - EQUAL
    - push_back
    - strcpy
    - GMLReadState*::m_poFeature::GetGeometryList
    - CPLSetXMLValue
    - GetState
    linkageType: ''
    returnType: void
    signature: "void NASHandler::endElement(const XMLCh *const /* uri */,\n                            const
      XMLCh *const localname,\n                            const XMLCh *const /* qname
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasStoppedParsing
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:660,1
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: NASHandler::startEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - SAXNotSupportedException
    - HasStoppedParsing
    linkageType: ''
    returnType: void
    signature: void NASHandler::startEntity(const XMLCh *const /* name */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:686,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:687,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:689,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:689,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:690,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:691,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:691,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:692,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:706,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:707,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:714,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:717,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:717,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:718,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:719,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:719,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - chars
    - length
    argTypes:
    - XMLCh*
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 721
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 721
    functionName: NASHandler::characters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - static_cast<int>
    - CPLRealloc
    - strlen
    - static_cast<char *>
    - memcpy
    - transcode
    linkageType: ''
    returnType: void
    signature: void NASHandler::characters(const XMLCh *const chars, const XMLSize_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:731,1
    - Dst: SAXParseException::getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:732,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:734,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:734,1
    - Dst: SAXParseException::getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:734,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:735,1
    - Dst: SAXParseException::getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exception
    argTypes:
    - SAXParseException
    constantsTouched: []
    func_position:
      end: 736
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 736
    functionName: NASHandler::fatalError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 0
    functionsReached:
    - SAXParseException::getMessage
    - SAXParseException::getLineNumber
    - static_cast<int>
    - CPLString::c_str
    - CPLError
    - SAXParseException::getColumnNumber
    - transcode
    linkageType: ''
    returnType: void
    signature: void NASHandler::fatalError(const SAXParseException &exception)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:745,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:746,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:747,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:748,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:749,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:750,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:751,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:752,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:753,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:754,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:755,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:756,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp:757,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 1
    argNames:
    - pszElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 758
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 758
    functionName: NASHandler::IsGeometryElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/nashandler.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool NASHandler::IsGeometryElement(const char *pszElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:25,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:24,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:28,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:30,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:30,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:31,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - poDSIn
    argTypes:
    - char*
    - OGRNASDataSource*
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: OGRNASLayer::OGRNASLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - GetReader
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRNASLayer::OGRNASLayer(const char *pszName, OGRNASDataSource
      *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: OGRNASLayer::~OGRNASLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRNASLayer::~OGRNASLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:54,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:56,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: OGRNASLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetElementName
    - GetReader
    linkageType: ''
    returnType: void
    signature: void OGRNASLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNASLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:69,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:83,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:98,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:108,1
    - Dst: GMLFeature*::GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:110,1
    - Dst: GMLFeature*::GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:114,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:122,1
    - Dst: OGR_G_CreateFromGMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:125,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:126,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:128,1
    - Dst: NASReader::ConvertGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:129,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:131,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:131,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:139,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:144,1
    - Dst: GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:154,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:156,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:159,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:169,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:171,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:171,1
    - Dst: OGRNASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:190,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:190,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:192,1
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:194,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:197,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:201,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:205,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:206,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:218,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:220,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:221,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:233,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:235,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:236,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:242,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:248,1
    - Dst: GMLFeature*::GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:254,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:256,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:259,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:266,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 283
    functionName: OGRNASLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetPropertyIndex
    - GMLFeature*::GetGeometryCount
    - atoi
    - CPLError
    - std::vector::clear
    - OGRNASLayer::ResetReading
    - GetPropertyCount
    - GetProperty
    - OGRFeature*::SetGeomFieldDirectly
    - CPLGetLastErrorMsg
    - GetGeomType
    - CPLString::c_str
    - OGRNASLayer::GetLayerDefn
    - CPLPopErrorHandler
    - CPLAtof
    - NASReader::ConvertGeometry
    - CPLString::Printf
    - Evaluate
    - FilterGeometry
    - OGR_G_CreateFromGMLTree
    - OGRGeometryFactory::forceTo
    - GMLFeature*::GetGeometryList
    - OGRFeature::OGRFeature
    - CPLFree
    - GMLFeature*::GetClass
    - GMLFeature*::GetProperty
    - OGRFeature*::SetField
    - CPLPushErrorHandler
    - GetReader
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRNASLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:296,1
    - Dst: OGRNASLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: OGRNASLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRNASLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRNASLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:315,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 326
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 326
    functionName: OGRNASLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    - GetExtents
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRNASLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:335,1
    - Dst: GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:345,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:348,1
    - Dst: OGRNASLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 361
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 361
    functionName: OGRNASLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogrnaslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRNASLayer::GetFeatureCount
    - GetExtents
    linkageType: ''
    returnType: int
    signature: int OGRNASLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: OGRNASLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogr_nas.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OGRNASDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogr_nas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: OGRNASDataSource::GetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/nas/ogr_nas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IGMLReader
    signature: IGMLReader *GetReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:21,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: OGRAIVectorIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: int OGRAIVectorIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAIVectorIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:31,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:45,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:46,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:46,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:47,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:49,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:50,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:60,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:61,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:66,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:85,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:86,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:87,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:88,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:89,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:89,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:90,1
    - Dst: MyDataset::MyDataset
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 119
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 119
    functionName: OGRAIVectorOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - OGRFeature*::SetGeometryDirectly
    - OGRPoint*::assignSpatialReference
    - GetSpatialRef
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRSpatialReference*::Release
    - OGRPoint::OGRPoint
    - Reference
    - AddFieldDefn
    - OGRFeature*::SetField
    - SetDescription
    - OGRFeature::OGRFeature
    - MyDataset::MyDataset
    - Release
    - GetName
    - OGRFeature*::SetFID
    - OGRAIVectorIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRAIVectorOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:127,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:130,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:133,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:134,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:136,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:138,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:141,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: RegisterOGRAIVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/aivector/ograivectordriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRAIVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ogr_flatgeobuf::GeometryReader::GeometryReader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - part
    argTypes:
    - FlatGeobuf::Geometry*
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ogr_flatgeobuf::GeometryReader::readPart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h
    functionUses: 0
    functionsReached:
    - ogr_flatgeobuf::GeometryReader::GeometryReader
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *readPart(const FlatGeobuf::Geometry *part)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ogr_flatgeobuf::GeometryReader::GeometryReader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - part
    - geometryType
    argTypes:
    - FlatGeobuf::Geometry*
    - FlatGeobuf::GeometryType
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: ogr_flatgeobuf::GeometryReader::readPart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h
    functionUses: 0
    functionsReached:
    - ogr_flatgeobuf::GeometryReader::GeometryReader
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *readPart(const FlatGeobuf::Geometry *part,\n                          const
      FlatGeobuf::GeometryType geometryType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h:73,1
    - Dst: ogr_flatgeobuf::GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: ogr_flatgeobuf::GeometryReader::readSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h
    functionUses: 1
    functionsReached:
    - ogr_flatgeobuf::GeometryReader::readSimpleCurve
    - T::T
    linkageType: ''
    returnType: T
    signature: T *readSimpleCurve(const bool halfLength = false)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - geometry
    - geometryType
    - hasZ
    - hasM
    argTypes:
    - FlatGeobuf::Geometry*
    - FlatGeobuf::GeometryType
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: ogr_flatgeobuf::GeometryReader::GeometryReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GeometryReader(const FlatGeobuf::Geometry *geometry,\n                   const
      FlatGeobuf::GeometryType geometryType, const bool hasZ,\n                   const
      bool hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::Geometry*::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - geometry
    - hasZ
    - hasM
    argTypes:
    - FlatGeobuf::Geometry*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: ogr_flatgeobuf::GeometryReader::GeometryReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.h
    functionUses: 2
    functionsReached:
    - FlatGeobuf::Geometry*::type
    linkageType: ''
    returnType: void
    signature: "void GeometryReader(const FlatGeobuf::Geometry *geometry, const bool
      hasZ,\n                   const bool hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:30,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:48,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: OGRFlatGeobufDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - STARTS_WITH_CI
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRFlatGeobufDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:71,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:73,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:80,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:82,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:86,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:94,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:94,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:97,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:97,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:103,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pszDataSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 109
    functionName: OGRFlatGoBufDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - VSIUnlink
    - VSI_ISREG
    - VSI_ISDIR
    - CSLDestroy
    - EQUAL
    - VSIRmdir
    - CPLError
    - CPLFormFilenameSafe
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRFlatGoBufDriverDelete(const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:117,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:120,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:122,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:123,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:124,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:126,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:127,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:128,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:129,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:130,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:131,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:132,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:134,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:138,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:140,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:143,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:161,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:163,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 172
    functionName: RegisterOGRFlatGeobuf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRFlatGeobuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszName
    - bIsDir
    - bCreate
    - bUpdate
    argTypes:
    - char*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: OGRFlatGeobufDataset::OGRFlatGeobufDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufDataset::OGRFlatGeobufDataset(const char *pszName,
      bool bIsDir,\n                                           bool bCreate, bool
      bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OGRFlatGeobufDataset::~OGRFlatGeobufDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFlatGeobufDataset::Close
    linkageType: ''
    returnType: void
    signature: void OGRFlatGeobufDataset::~OGRFlatGeobufDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:203,1
    - Dst: OGRFlatGeobufDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:208,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: OGRFlatGeobufDataset::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 2
    functionsReached:
    - OGRFlatGeobufDataset::Close
    - GDALDataset::Close
    - OGRDGNV8DataSource::FlushCache
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRFlatGeobufDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:224,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:228,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:230,1
    - Dst: std::unique_ptr<OGRFlatGeobufDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:238,1
    - Dst: OGRFlatGeobufDataset::OGRFlatGeobufDataset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:238,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:243,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:246,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:248,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:248,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:250,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:250,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:261,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:263,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:263,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:265,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:267,1
    - Dst: auto::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:270,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:271,1
    - Dst: auto::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:280,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:289,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 290
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 290
    functionName: OGRFlatGeobufDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::OpenFile
    - std::unique_ptr<OGRFlatGeobufDataset>
    - auto::release
    - CPLFetchBool
    - VSIFCloseL
    - EQUAL
    - VSIFOpenL
    - strcmp
    - OGRFlatGeobufDataset::OGRFlatGeobufDataset
    - VSIReadDir
    - CPLStringList::size
    - OGRFlatGeobufDriverIdentify
    - CPLFormFilenameSafe
    - CPL_TO_BOOL
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRFlatGeobufDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:299,1
    - Dst: std::unique_ptr<OGRFlatGeobufLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:300,1
    - Dst: OGRFlatGeobufLayer::Open
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:301,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:307,1
    - Dst: std::unique_ptr<OGRFlatGeobufEditableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:308,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:309,1
    - Dst: OGRFlatGeobufEditableLayer::OGRFlatGeobufEditableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:309,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:311,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:311,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:315,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pszFilename
    - fp
    - bVerifyBuffers
    argTypes:
    - char*
    - VSILFILE*
    - bool
    constantsTouched: []
    func_position:
      end: 319
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 319
    functionName: OGRFlatGeobufDataset::OpenFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - auto::release
    - OGRFlatGeobufLayer::Open
    - OGRFlatGeobufEditableLayer::OGRFlatGeobufEditableLayer
    - std::unique_ptr<OGRFlatGeobufEditableLayer>
    - std::unique_ptr<OGRFlatGeobufLayer>
    - std::move
    - push_back
    linkageType: ''
    returnType: bool
    signature: "bool OGRFlatGeobufDataset::OpenFile(const char *pszFilename, VSILFILE
      *fp,\n                                    bool bVerifyBuffers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:330,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:332,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:340,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:340,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:342,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:344,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:346,1
    - Dst: OGRFlatGeobufDataset::OGRFlatGeobufDataset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pszName
    - nXSize
    - nYSize
    - GDALDataType
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 353
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 353
    functionName: OGRFlatGeobufDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - VSIMkdir
    - EQUAL
    - OGRFlatGeobufDataset::OGRFlatGeobufDataset
    - CPLError
    - VSIStrerror
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRFlatGeobufDataset::Create(const char *pszName, int
      /* nBands */,\n                                          CPL_UNUSED int nXSize,\n
      \                                         CPL_UNUSED int nYSize,\n                                          CPL_UNUSED
      GDALDataType eDT,\n                                          char ** /* papszOptions
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:357,1
    - Dst: OGRFlatGeobufDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: OGRFlatGeobufDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFlatGeobufDataset::GetLayerCount
    - OGRFlatGeobufDataset::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRFlatGeobufDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:364,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:366,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:368,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: OGRFlatGeobufDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - empty
    linkageType: ''
    returnType: int
    signature: int OGRFlatGeobufDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:387,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: LaunderLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: CPLString
    signature: CPLString LaunderLayerName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:402,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:405,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:409,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:411,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:418,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:420,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:429,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:430,1
    - Dst: LaunderLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:430,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:432,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:435,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:437,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:439,1
    - Dst: std::unique_ptr<OGRFlatGeobufLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:447,1
    - Dst: OGRFlatGeobufLayer::Create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:447,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:453,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:453,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 456
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 456
    functionName: OGRFlatGeobufDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - back
    - empty
    - VSIStatL
    - GetDescription
    - OGRGeomFieldDefn*::GetType
    - CPLString::c_str
    - LaunderLayerName
    - OGRFlatGeobufLayer::Create
    - std::unique_ptr<OGRFlatGeobufLayer>
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - std::move
    - CPLError
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRFlatGeobufDataset::ICreateLayer(const char *pszLayerName,\n
      \                                  const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:464,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:467,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:467,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: OGRFlatGeobufDataset::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::AddString
    - CPLStringList::StealList
    - CPLStringList::CPLStringList
    - GetFilename
    linkageType: ''
    returnType: char
    signature: char **OGRFlatGeobufDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: FlatGeobuf::width
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double width() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: FlatGeobuf::height
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double height() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeItem::expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - NodeItem
    - NodeItem
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: FlatGeobuf::sum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached:
    - NodeItem::expand
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem sum(NodeItem a, const NodeItem &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:88,1
    - Dst: std::deque<ITEM_TYPE>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:88,1
    - Dst: std::deque<ITEM_TYPE>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:88,1
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:88,1
    - Dst: expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::deque<ITEM_TYPE>
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: FlatGeobuf::calcExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached:
    - std::deque<ITEM_TYPE>::end
    - expand
    - std::deque<ITEM_TYPE>::begin
    - FlatGeobuf::NodeItem::create
    - std::accumulate
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem calcExtent(const std::deque<ITEM_TYPE> &items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::calcExtent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:95,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:100,1
    - Dst: std::deque<ITEM_TYPE>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:101,1
    - Dst: std::deque<ITEM_TYPE>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::deque<ITEM_TYPE>
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: FlatGeobuf::hilbertSort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached:
    - std::sort
    - std::deque<ITEM_TYPE>::begin
    - std::deque<ITEM_TYPE>::end
    - FlatGeobuf::calcExtent
    linkageType: ''
    returnType: void
    signature: void hilbertSort(std::deque<ITEM_TYPE> &items)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: ~PackedRTree()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PackedRTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - NodeItem
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: '&NodeItem::expand(const NodeItem &r)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem &NodeItem::expand(const NodeItem &r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:48,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:49,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:50,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: FlatGeobuf::NodeItem::create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 2
    functionsReached:
    - cpl::infinity
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem NodeItem::create(uint64_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - NodeItem
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: FlatGeobuf::NodeItem::intersects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NodeItem::intersects(const NodeItem &r) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: FlatGeobuf::NodeItem::toVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> NodeItem::toVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 130
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 130
    functionName: FlatGeobuf::hilbert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hilbert(uint32_t x, uint32_t y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:139,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:142,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:143,1
    - Dst: FlatGeobuf::hilbert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - r
    - hilbertMax
    - minX
    - minY
    - width
    - height
    argTypes:
    - NodeItem
    - uint32_t
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: FlatGeobuf::hilbert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 1
    functionsReached:
    - floor
    - FlatGeobuf::hilbert
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t hilbert(const NodeItem &r, uint32_t hilbertMax, const double
      minX,\n                 const double minY, const double width, const double
      height)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::calcExtent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:150,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:155,1
    - Dst: std::vector<std::shared_ptr<Item>>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:155,1
    - Dst: std::vector<std::shared_ptr<Item>>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::vector<std::shared_ptr<Item>>
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: FlatGeobuf::hilbertSort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - std::vector<std::shared_ptr<Item>>::begin
    - std::vector<std::shared_ptr<Item>>::end
    - FlatGeobuf::calcExtent
    linkageType: ''
    returnType: void
    signature: void hilbertSort(std::vector<std::shared_ptr<Item>> &items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::calcExtent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:169,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:174,1
    - Dst: std::vector<NodeItem>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:174,1
    - Dst: std::vector<NodeItem>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::vector<NodeItem>
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: FlatGeobuf::hilbertSort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - std::vector<NodeItem>::begin
    - std::vector<NodeItem>::end
    - FlatGeobuf::calcExtent
    linkageType: ''
    returnType: void
    signature: void hilbertSort(std::vector<NodeItem> &items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:187,1
    - Dst: std::vector<std::shared_ptr<Item>>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:188,1
    - Dst: std::vector<std::shared_ptr<Item>>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:188,1
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:188,1
    - Dst: expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::vector<std::shared_ptr<Item>>
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: FlatGeobuf::calcExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 3
    functionsReached:
    - std::vector<std::shared_ptr<Item>>::begin
    - expand
    - FlatGeobuf::NodeItem::create
    - std::accumulate
    - std::vector<std::shared_ptr<Item>>::end
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem calcExtent(const std::vector<std::shared_ptr<Item>> &items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:195,1
    - Dst: std::vector<NodeItem>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:195,1
    - Dst: std::vector<NodeItem>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:195,1
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:195,1
    - Dst: expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - std::vector<NodeItem>
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: FlatGeobuf::calcExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 3
    functionsReached:
    - expand
    - FlatGeobuf::NodeItem::create
    - std::accumulate
    - std::vector<NodeItem>::begin
    - std::vector<NodeItem>::end
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem calcExtent(const std::vector<NodeItem> &nodes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:203,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:205,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:206,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:206,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:206,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:207,1
    - Dst: FlatGeobuf::PackedRTree::generateLevelBounds
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:208,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:209,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:210,1
    - Dst: NodeItem::NodeItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - nodeSize
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: FlatGeobuf::PackedRTree::init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - front
    - std::invalid_argument
    - static_cast<uint16_t>
    - min
    - max
    - NodeItem::NodeItem
    - FlatGeobuf::PackedRTree::generateLevelBounds
    linkageType: ''
    returnType: void
    signature: void PackedRTree::init(const uint16_t nodeSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - U
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: FlatGeobuf::div_round_up
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T div_round_up(T a, U b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:223,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:225,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:227,1
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:228,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:234,1
    - Dst: div_round_up
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:237,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:239,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:246,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:248,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:249,1
    - Dst: std::pair<uint64_t, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - numItems
    - nodeSize
    argTypes:
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: FlatGeobuf::PackedRTree::generateLevelBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - std::overflow_error
    - std::invalid_argument
    - std::vector::size
    - std::pair<uint64_t, uint64_t>
    - div_round_up
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::pair<uint64_t, uint64_t>>
    signature: "std::vector<std::pair<uint64_t, uint64_t>> PackedRTree::generateLevelBounds(const
      uint64_t numItems,\n                                 const uint16_t nodeSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::PackedRTree::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:256,1
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:263,1
    - Dst: NodeItem::expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 269
    functionName: FlatGeobuf::PackedRTree::generateNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - FlatGeobuf::NodeItem::create
    - NodeItem::expand
    - FlatGeobuf::PackedRTree::size
    linkageType: ''
    returnType: void
    signature: void PackedRTree::generateNodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:273,1
    - Dst: reinterpret_cast<const NodeItem *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:274,1
    - Dst: expand
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: FlatGeobuf::PackedRTree::fromData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - expand
    - reinterpret_cast<const NodeItem *>
    linkageType: ''
    returnType: void
    signature: void PackedRTree::fromData(const void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::shared_ptr<Item>>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:285,1
    - Dst: FlatGeobuf::PackedRTree::init
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:287,1
    - Dst: FlatGeobuf::PackedRTree::generateNodes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - items
    - extent
    - nodeSize
    argTypes:
    - std::vector<std::shared_ptr<Item>>
    - NodeItem
    - uint16_t
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: FlatGeobuf::PackedRTree::PackedRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::shared_ptr<Item>>::size
    - FlatGeobuf::PackedRTree::generateNodes
    - FlatGeobuf::PackedRTree::init
    linkageType: ''
    returnType: void
    signature: "void PackedRTree::PackedRTree(const std::vector<std::shared_ptr<Item>>
      &items,\n                         const NodeItem &extent, const uint16_t nodeSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<NodeItem>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:295,1
    - Dst: FlatGeobuf::PackedRTree::init
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:297,1
    - Dst: FlatGeobuf::PackedRTree::generateNodes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nodes
    - extent
    - nodeSize
    argTypes:
    - std::vector<NodeItem>
    - NodeItem
    - uint16_t
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: FlatGeobuf::PackedRTree::PackedRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<NodeItem>::size
    - FlatGeobuf::PackedRTree::generateNodes
    - FlatGeobuf::PackedRTree::init
    linkageType: ''
    returnType: void
    signature: "void PackedRTree::PackedRTree(const std::vector<NodeItem> &nodes,\n
      \                        const NodeItem &extent, const uint16_t nodeSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::NodeItem::create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:305,1
    - Dst: FlatGeobuf::PackedRTree::init
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:307,1
    - Dst: FlatGeobuf::PackedRTree::fromData
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - numItems
    - nodeSize
    argTypes:
    - void*
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: FlatGeobuf::PackedRTree::PackedRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - FlatGeobuf::NodeItem::create
    - FlatGeobuf::PackedRTree::init
    - FlatGeobuf::PackedRTree::fromData
    linkageType: ''
    returnType: void
    signature: "void PackedRTree::PackedRTree(const void *data, const uint64_t numItems,\n
      \                        const uint16_t nodeSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::PackedRTree::init
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:316,1
    - Dst: fillNodeItems
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:317,1
    - Dst: FlatGeobuf::PackedRTree::generateNodes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fillNodeItems
    - numItems
    - extent
    - nodeSize
    argTypes:
    - std::function<void(NodeItem *)>
    - uint64_t
    - NodeItem
    - uint16_t
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: FlatGeobuf::PackedRTree::PackedRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - FlatGeobuf::PackedRTree::generateNodes
    - fillNodeItems
    - FlatGeobuf::PackedRTree::init
    linkageType: ''
    returnType: void
    signature: "void PackedRTree::PackedRTree(std::function<void(NodeItem *)> fillNodeItems,\n
      \                        const uint64_t numItems, const NodeItem &extent,\n
      \                        const uint16_t nodeSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:328,1
    - Dst: std::pair<uint64_t, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:328,1
    - Dst: FlatGeobuf::PackedRTree::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:328,1
    - Dst: std::unordered_map::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:329,1
    - Dst: std::unordered_map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:331,1
    - Dst: std::unordered_map::erase
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:334,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:343,1
    - Dst: NodeItem::intersects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:347,1
    - Dst: std::unordered_map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:349,1
    - Dst: std::pair<uint64_t, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - minX
    - minY
    - maxX
    - maxY
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 354
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 354
    functionName: FlatGeobuf::PackedRTree::search
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::unordered_map::erase
    - static_cast<size_t>
    - std::unordered_map::insert
    - std::pair<uint64_t, uint64_t>
    - std::unordered_map::begin
    - FlatGeobuf::PackedRTree::size
    - NodeItem::intersects
    - std::unordered_map::size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<SearchResultItem>
    signature: std::vector<SearchResultItem> PackedRTree::search(double minX, double
      minY, double maxX, double maxY) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::PackedRTree::generateLevelBounds
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:360,1
    - Dst: std::vector<NodeItem>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:363,1
    - Dst: std::map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:368,1
    - Dst: std::pair<uint64_t, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:368,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:368,1
    - Dst: std::map::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:369,1
    - Dst: std::map::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:371,1
    - Dst: std::map::erase
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:374,1
    - Dst: readNode
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:380,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:380,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:381,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:383,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:385,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:386,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:387,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:388,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:389,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:396,1
    - Dst: NodeItem::intersects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:397,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:400,1
    - Dst: std::map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:402,1
    - Dst: std::pair<uint64_t, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - numItems
    - nodeSize
    - item
    - readNode
    argTypes:
    - uint64_t
    - uint16_t
    - NodeItem
    - std::function<void(uint8_t *, size_t, size_t)>
    constantsTouched: []
    func_position:
      end: 407
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 407
    functionName: FlatGeobuf::PackedRTree::streamSearch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector<NodeItem>
    - std::map::size
    - static_cast<size_t>
    - CPL_LSBPTR64
    - std::pair<uint64_t, uint64_t>
    - std::map::begin
    - readNode
    - NodeItem::intersects
    - std::map::insert
    - std::map::erase
    - auto::size
    - FlatGeobuf::PackedRTree::generateLevelBounds
    linkageType: ''
    returnType: std::vector<SearchResultItem>
    signature: "std::vector<SearchResultItem> PackedRTree::streamSearch(\n    const
      uint64_t numItems, const uint16_t nodeSize, const NodeItem &item,\n    const
      std::function<void(uint8_t *, size_t, size_t)> &readNode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: FlatGeobuf::PackedRTree::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t PackedRTree::size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:417,1
    - Dst: std::invalid_argument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:419,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:424,1
    - Dst: std::overflow_error
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:425,1
    - Dst: div_round_up
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - numItems
    - nodeSize
    argTypes:
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: FlatGeobuf::PackedRTree::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 2
    functionsReached:
    - std::invalid_argument
    - div_round_up
    - std::overflow_error
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t PackedRTree::size(const uint64_t numItems, const uint16_t
      nodeSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:440,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:442,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:443,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:444,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:445,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:446,1
    - Dst: writeData
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:449,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:449,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:450,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:452,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:454,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:455,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:456,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:457,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - writeData
    argTypes:
    - std::function<void(uint8_t *, size_t)>
    constantsTouched: []
    func_position:
      end: 461
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 461
    functionName: FlatGeobuf::PackedRTree::streamWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - static_cast<size_t>
    - writeData
    - CPL_LSBPTR64
    linkageType: ''
    returnType: void
    signature: "void PackedRTree::streamWrite(\n    const std::function<void(uint8_t
      *, size_t)> &writeData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: FlatGeobuf::PackedRTree::getExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/packedrtree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NodeItem
    signature: NodeItem PackedRTree::getExtent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 72
    functionName: (&EnumValuesGeometryType())[18]
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeometryType
    signature: GeometryType (&EnumValuesGeometryType())[18]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: FlatGeobuf::EnumNamesGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *const *EnumNamesGeometryType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsOutRange
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:100,1
    - Dst: FlatGeobuf::EnumNamesGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - GeometryType
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: FlatGeobuf::EnumNameGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsOutRange
    - FlatGeobuf::EnumNamesGeometryType
    linkageType: ''
    returnType: char
    signature: char *EnumNameGeometryType(GeometryType e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: (&EnumValuesColumnType())[15]
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColumnType
    signature: ColumnType (&EnumValuesColumnType())[15]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: FlatGeobuf::EnumNamesColumnType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *const *EnumNamesColumnType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsOutRange
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:150,1
    - Dst: FlatGeobuf::EnumNamesColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ColumnType
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: FlatGeobuf::EnumNameColumnType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsOutRange
    - FlatGeobuf::EnumNamesColumnType
    linkageType: ''
    returnType: char
    signature: char *EnumNameColumnType(ColumnType e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:177,1
    - Dst: static_cast<FlatGeobuf::ColumnType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:182,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:183,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:188,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:193,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:198,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:203,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:208,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:213,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:218,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:223,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:228,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:233,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:234,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:235,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:235,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:236,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:237,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:238,1
    - Dst: title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:238,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:239,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:240,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:240,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:241,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:242,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:243,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:244,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:245,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:246,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:247,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:248,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:248,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:248,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 250
    functionName: FlatGeobuf::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - metadata
    - static_cast<FlatGeobuf::ColumnType>
    - VerifyField<int32_t>
    - title
    - GetField<int32_t>
    - GetPointer<const flatbuffers::String *>
    - VerifyOffset
    - VerifyOffsetRequired
    - VerifyTableStart
    - description
    - GetField<uint8_t>
    - name
    - EndTable
    - VerifyString
    - VerifyField<uint8_t>
    linkageType: ''
    returnType: struct Column
    signature: struct Column flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: FlatGeobuf::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:265,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - FlatGeobuf::ColumnType
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: FlatGeobuf::add_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_type(FlatGeobuf::ColumnType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - title
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: FlatGeobuf::add_title
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_title(flatbuffers::Offset<flatbuffers::String> title)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - description
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: FlatGeobuf::add_description
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_description(flatbuffers::Offset<flatbuffers::String> description)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - width
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: FlatGeobuf::add_width
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_width(int32_t width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - precision
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: FlatGeobuf::add_precision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_precision(int32_t precision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scale
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: FlatGeobuf::add_scale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_scale(int32_t scale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:296,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nullable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: FlatGeobuf::add_nullable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_nullable(bool nullable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:302,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unique
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: FlatGeobuf::add_unique
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_unique(bool unique)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - primary_key
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: FlatGeobuf::add_primary_key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_primary_key(bool primary_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: FlatGeobuf::add_metadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: FlatGeobuf::ColumnBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void ColumnBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:324,1
    - Dst: flatbuffers::Offset<Column>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:325,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: FlatGeobuf::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Column>
    - EndTable
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<Column>
    signature: flatbuffers::Offset<Column> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColumnBuilder::add_metadata
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:343,1
    - Dst: ColumnBuilder::add_scale
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:344,1
    - Dst: ColumnBuilder::add_precision
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:345,1
    - Dst: ColumnBuilder::add_width
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:346,1
    - Dst: ColumnBuilder::add_description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:347,1
    - Dst: ColumnBuilder::add_title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:348,1
    - Dst: ColumnBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:349,1
    - Dst: ColumnBuilder::add_primary_key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:350,1
    - Dst: ColumnBuilder::add_unique
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:351,1
    - Dst: ColumnBuilder::add_nullable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:352,1
    - Dst: ColumnBuilder::add_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:353,1
    - Dst: ColumnBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 355
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 355
    functionName: FlatGeobuf::CreateColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - ColumnBuilder::add_scale
    - ColumnBuilder::add_nullable
    - ColumnBuilder::add_description
    - ColumnBuilder::add_name
    - ColumnBuilder::add_unique
    - ColumnBuilder::add_width
    - ColumnBuilder::add_metadata
    - ColumnBuilder::Finish
    - ColumnBuilder::add_precision
    - ColumnBuilder::add_title
    - ColumnBuilder::add_type
    - ColumnBuilder::add_primary_key
    linkageType: ''
    returnType: flatbuffers::Offset<Column>
    signature: "flatbuffers::Offset<Column> CreateColumn(flatbuffers::FlatBufferBuilder
      &_fbb,\n             flatbuffers::Offset<flatbuffers::String> name = 0,\n             FlatGeobuf::ColumnType
      type = FlatGeobuf::ColumnType::Byte,\n             flatbuffers::Offset<flatbuffers::String>
      title = 0,\n             flatbuffers::Offset<flatbuffers::String> description
      = 0,\n             int32_t width = -1, int32_t precision = -1, int32_t scale
      = -1,\n             bool nullable = true, bool unique = false,\n             bool
      primary_key = false,\n             flatbuffers::Offset<flatbuffers::String>
      metadata = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:365,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:366,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:367,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:368,1
    - Dst: FlatGeobuf::CreateColumn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 372
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 372
    functionName: FlatGeobuf::CreateColumnDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - FlatGeobuf::CreateColumn
    linkageType: ''
    returnType: flatbuffers::Offset<Column>
    signature: "flatbuffers::Offset<Column> CreateColumnDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb, const char *name = nullptr,\n    FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,\n
      \   const char *title = nullptr, const char *description = nullptr,\n    int32_t
      width = -1, int32_t precision = -1, int32_t scale = -1,\n    bool nullable =
      true, bool unique = false, bool primary_key = false,\n    const char *metadata
      = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:390,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:395,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:400,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:405,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:410,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:415,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:420,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:420,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:421,1
    - Dst: org
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:421,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:422,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:423,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:424,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:424,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:425,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:426,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:426,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:427,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:427,1
    - Dst: wkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:427,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:428,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:429,1
    - Dst: code_string
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:429,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 431
    functionName: FlatGeobuf::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - VerifyField<int32_t>
    - GetField<int32_t>
    - GetPointer<const flatbuffers::String *>
    - wkt
    - VerifyOffset
    - code_string
    - VerifyTableStart
    - org
    - description
    - name
    - EndTable
    - VerifyString
    linkageType: ''
    returnType: struct Crs
    signature: struct Crs flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - org
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: FlatGeobuf::add_org
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_org(flatbuffers::Offset<flatbuffers::String> org)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: FlatGeobuf::add_code
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_code(int32_t code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: FlatGeobuf::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - description
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: FlatGeobuf::add_description
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_description(flatbuffers::Offset<flatbuffers::String> description)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wkt
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: FlatGeobuf::add_wkt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_wkt(flatbuffers::Offset<flatbuffers::String> wkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code_string
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: FlatGeobuf::add_code_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_code_string(flatbuffers::Offset<flatbuffers::String> code_string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: FlatGeobuf::CrsBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void CrsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:476,1
    - Dst: flatbuffers::Offset<Crs>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: FlatGeobuf::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Crs>
    - EndTable
    linkageType: ''
    returnType: flatbuffers::Offset<Crs>
    signature: flatbuffers::Offset<Crs> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CrsBuilder::add_code_string
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:491,1
    - Dst: CrsBuilder::add_wkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:492,1
    - Dst: CrsBuilder::add_description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:493,1
    - Dst: CrsBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:494,1
    - Dst: CrsBuilder::add_code
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:495,1
    - Dst: CrsBuilder::add_org
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:496,1
    - Dst: CrsBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 498
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 498
    functionName: FlatGeobuf::CreateCrs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - CrsBuilder::add_wkt
    - CrsBuilder::add_description
    - CrsBuilder::add_code_string
    - CrsBuilder::add_org
    - CrsBuilder::add_name
    - CrsBuilder::Finish
    - CrsBuilder::add_code
    linkageType: ''
    returnType: flatbuffers::Offset<Crs>
    signature: "flatbuffers::Offset<Crs> CreateCrs(flatbuffers::FlatBufferBuilder
      &_fbb,\n          flatbuffers::Offset<flatbuffers::String> org = 0, int32_t
      code = 0,\n          flatbuffers::Offset<flatbuffers::String> name = 0,\n          flatbuffers::Offset<flatbuffers::String>
      description = 0,\n          flatbuffers::Offset<flatbuffers::String> wkt = 0,\n
      \         flatbuffers::Offset<flatbuffers::String> code_string = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:506,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:507,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:508,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:509,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:510,1
    - Dst: FlatGeobuf::CreateCrs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: FlatGeobuf::CreateCrsDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - FlatGeobuf::CreateCrs
    linkageType: ''
    returnType: flatbuffers::Offset<Crs>
    signature: "flatbuffers::Offset<Crs> CreateCrsDirect(flatbuffers::FlatBufferBuilder
      &_fbb, const char *org = nullptr,\n                int32_t code = 0, const char
      *name = nullptr,\n                const char *description = nullptr, const char
      *wkt = nullptr,\n                const char *code_string = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:539,1
    - Dst: GetPointer<const flatbuffers::Vector<double> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:544,1
    - Dst: static_cast<FlatGeobuf::GeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:549,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:550,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:555,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:560,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:565,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:570,1
    - Dst: "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Column>>
        *>"
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:576,1
    - Dst: GetField<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:582,1
    - Dst: GetField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:587,1
    - Dst: GetPointer<const FlatGeobuf::Crs *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:592,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:597,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:602,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:607,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:612,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:612,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:613,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:613,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:614,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:615,1
    - Dst: envelope
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:615,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:616,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:617,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:618,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:619,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:620,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:621,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:622,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:622,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:623,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:623,1
    - Dst: VerifyField<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:624,1
    - Dst: VerifyField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:625,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:626,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:626,1
    - Dst: crs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:626,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:627,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:628,1
    - Dst: title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:628,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:629,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:630,1
    - Dst: description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:630,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:631,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:632,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:632,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:632,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 634
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 634
    functionName: FlatGeobuf::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - GetField<uint64_t>
    - VerifyVector
    - VerifyTable
    - GetField<uint8_t>
    - VerifyField<uint16_t>
    - crs
    - VerifyVectorOfTables
    - VerifyString
    - metadata
    - columns
    - GetPointer<const flatbuffers::Vector<double> *>
    - static_cast<FlatGeobuf::GeometryType>
    - "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Column>>
      *>"
    - VerifyOffset
    - VerifyTableStart
    - envelope
    - EndTable
    - name
    - VerifyField<uint8_t>
    - title
    - GetPointer<const FlatGeobuf::Crs *>
    - VerifyField<uint64_t>
    - GetPointer<const flatbuffers::String *>
    - GetField<uint16_t>
    - description
    linkageType: ''
    returnType: struct Header
    signature: struct Header flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: FlatGeobuf::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - envelope
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<double>>
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: FlatGeobuf::add_envelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_envelope(flatbuffers::Offset<flatbuffers::Vector<double>>
      envelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:654,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - geometry_type
    argTypes:
    - FlatGeobuf::GeometryType
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: FlatGeobuf::add_geometry_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_geometry_type(FlatGeobuf::GeometryType geometry_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:660,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_z
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: FlatGeobuf::add_has_z
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_has_z(bool has_z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:666,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_m
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: FlatGeobuf::add_has_m
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_has_m(bool has_m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:672,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_t
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: FlatGeobuf::add_has_t
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_has_t(bool has_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:678,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_tm
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 680
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 680
    functionName: FlatGeobuf::add_has_tm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_has_tm(bool has_tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - columns
    argTypes:
    - "flatbuffers::Offset<\n                flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>"
    constantsTouched: []
    func_position:
      end: 688
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 688
    functionName: FlatGeobuf::add_columns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: "void add_columns(flatbuffers::Offset<\n                flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>\n
      \                   columns)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - features_count
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: FlatGeobuf::add_features_count
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_features_count(uint64_t features_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index_node_size
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: FlatGeobuf::add_index_node_size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_index_node_size(uint16_t index_node_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crs
    argTypes:
    - flatbuffers::Offset<FlatGeobuf::Crs>
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: FlatGeobuf::add_crs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_crs(flatbuffers::Offset<FlatGeobuf::Crs> crs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - title
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: FlatGeobuf::add_title
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_title(flatbuffers::Offset<flatbuffers::String> title)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - description
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: FlatGeobuf::add_description
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_description(flatbuffers::Offset<flatbuffers::String> description)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: FlatGeobuf::add_metadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: FlatGeobuf::HeaderBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void HeaderBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:728,1
    - Dst: flatbuffers::Offset<Header>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 731
    functionName: FlatGeobuf::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Header>
    - EndTable
    linkageType: ''
    returnType: flatbuffers::Offset<Header>
    signature: flatbuffers::Offset<Header> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderBuilder::add_features_count
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:751,1
    - Dst: HeaderBuilder::add_metadata
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:752,1
    - Dst: HeaderBuilder::add_description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:753,1
    - Dst: HeaderBuilder::add_title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:754,1
    - Dst: HeaderBuilder::add_crs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:755,1
    - Dst: HeaderBuilder::add_columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:756,1
    - Dst: HeaderBuilder::add_envelope
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:757,1
    - Dst: HeaderBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:758,1
    - Dst: HeaderBuilder::add_index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:759,1
    - Dst: HeaderBuilder::add_has_tm
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:760,1
    - Dst: HeaderBuilder::add_has_t
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:761,1
    - Dst: HeaderBuilder::add_has_m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:762,1
    - Dst: HeaderBuilder::add_has_z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:763,1
    - Dst: HeaderBuilder::add_geometry_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:764,1
    - Dst: HeaderBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 766
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 766
    functionName: FlatGeobuf::CreateHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - HeaderBuilder::add_has_m
    - HeaderBuilder::add_has_tm
    - HeaderBuilder::Finish
    - HeaderBuilder::add_index_node_size
    - HeaderBuilder::add_crs
    - HeaderBuilder::add_has_z
    - HeaderBuilder::add_description
    - HeaderBuilder::add_envelope
    - HeaderBuilder::add_name
    - HeaderBuilder::add_geometry_type
    - HeaderBuilder::add_metadata
    - HeaderBuilder::add_has_t
    - HeaderBuilder::add_features_count
    - HeaderBuilder::add_title
    - HeaderBuilder::add_columns
    linkageType: ''
    returnType: flatbuffers::Offset<Header>
    signature: "flatbuffers::Offset<Header> CreateHeader(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<flatbuffers::Vector<double>>
      envelope = 0,\n    FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,\n
      \   bool has_z = false, bool has_m = false, bool has_t = false,\n    bool has_tm
      = false,\n    flatbuffers::Offset<\n        flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>\n
      \       columns = 0,\n    uint64_t features_count = 0, uint16_t index_node_size
      = 16,\n    flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,\n    flatbuffers::Offset<flatbuffers::String>
      title = 0,\n    flatbuffers::Offset<flatbuffers::String> description = 0,\n
      \   flatbuffers::Offset<flatbuffers::String> metadata = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:780,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:781,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:783,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:786,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:787,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:788,1
    - Dst: FlatGeobuf::CreateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 793
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 793
    functionName: FlatGeobuf::CreateHeaderDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - FlatGeobuf::CreateHeader
    linkageType: ''
    returnType: flatbuffers::Offset<Header>
    signature: "flatbuffers::Offset<Header> CreateHeaderDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb, const char *name = nullptr,\n    const std::vector<double> *envelope
      = nullptr,\n    FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,\n
      \   bool has_z = false, bool has_m = false, bool has_t = false,\n    bool has_tm
      = false,\n    const std::vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns
      =\n        nullptr,\n    uint64_t features_count = 0, uint16_t index_node_size
      = 16,\n    flatbuffers::Offset<FlatGeobuf::Crs> crs = 0, const char *title =
      nullptr,\n    const char *description = nullptr, const char *metadata = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot<FlatGeobuf::Header>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    functionName: FlatGeobuf::GetHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetRoot<FlatGeobuf::Header>
    linkageType: ''
    returnType: FlatGeobuf::Header
    signature: FlatGeobuf::Header *GetHeader(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Header>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 803
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 803
    functionName: FlatGeobuf::GetSizePrefixedHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Header>
    linkageType: ''
    returnType: FlatGeobuf::Header
    signature: FlatGeobuf::Header *GetSizePrefixedHeader(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: FlatGeobuf::VerifyHeaderBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: bool VerifyHeaderBuffer(flatbuffers::Verifier &verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifySizePrefixedBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: FlatGeobuf::VerifySizePrefixedHeaderBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Verifier::VerifySizePrefixedBuffer
    linkageType: ''
    returnType: bool
    signature: bool VerifySizePrefixedHeaderBuffer(flatbuffers::Verifier &verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<FlatGeobuf::Header>
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: FlatGeobuf::FinishHeaderBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finish
    linkageType: ''
    returnType: void
    signature: "void FinishHeaderBuffer(flatbuffers::FlatBufferBuilder &fbb,\n                               flatbuffers::Offset<FlatGeobuf::Header>
      root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::FinishSizePrefixed
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<FlatGeobuf::Header>
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: FlatGeobuf::FinishSizePrefixedHeaderBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::FinishSizePrefixed
    linkageType: ''
    returnType: void
    signature: "void FinishSizePrefixedHeaderBuffer(flatbuffers::FlatBufferBuilder
      &fbb,\n                               flatbuffers::Offset<FlatGeobuf::Header>
      root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::Vector<uint32_t> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:44,1
    - Dst: GetPointer<const flatbuffers::Vector<double> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:49,1
    - Dst: GetPointer<const flatbuffers::Vector<double> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:54,1
    - Dst: GetPointer<const flatbuffers::Vector<double> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:59,1
    - Dst: GetPointer<const flatbuffers::Vector<double> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:64,1
    - Dst: GetPointer<const flatbuffers::Vector<uint64_t> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:69,1
    - Dst: static_cast<FlatGeobuf::GeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:74,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:75,1
    - Dst: "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Geometry>>
        *>"
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:81,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:87,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:87,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:88,1
    - Dst: ends
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:88,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:88,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:89,1
    - Dst: xy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:89,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:89,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:90,1
    - Dst: z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:90,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:90,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:91,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:91,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:91,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:92,1
    - Dst: t
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:92,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:92,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:93,1
    - Dst: tm
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:93,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:94,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:95,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:96,1
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:96,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:97,1
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:97,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:97,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 99
    functionName: FlatGeobuf::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - t
    - "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Geometry>>
      *>"
    - VerifyVector
    - parts
    - GetField<uint8_t>
    - VerifyVectorOfTables
    - tm
    - GetPointer<const flatbuffers::Vector<double> *>
    - static_cast<FlatGeobuf::GeometryType>
    - GetPointer<const flatbuffers::Vector<uint64_t> *>
    - z
    - m
    - VerifyOffset
    - VerifyTableStart
    - GetPointer<const flatbuffers::Vector<uint32_t> *>
    - EndTable
    - VerifyField<uint8_t>
    - ends
    - xy
    linkageType: ''
    returnType: struct Geometry
    signature: struct Geometry flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ends
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<uint32_t>>
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: FlatGeobuf::add_ends
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_ends(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> ends)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xy
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<double>>
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: FlatGeobuf::add_xy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_xy(flatbuffers::Offset<flatbuffers::Vector<double>> xy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - z
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<double>>
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: FlatGeobuf::add_z
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_z(flatbuffers::Offset<flatbuffers::Vector<double>> z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<double>>
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: FlatGeobuf::add_m
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_m(flatbuffers::Offset<flatbuffers::Vector<double>> m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<double>>
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: FlatGeobuf::add_t
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_t(flatbuffers::Offset<flatbuffers::Vector<double>> t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<uint64_t>>
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: FlatGeobuf::add_tm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_tm(flatbuffers::Offset<flatbuffers::Vector<uint64_t>> tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - FlatGeobuf::GeometryType
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: FlatGeobuf::add_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_type(FlatGeobuf::GeometryType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parts
    argTypes:
    - "flatbuffers::Offset<\n              flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Geometry>>>"
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: FlatGeobuf::add_parts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: "void add_parts(flatbuffers::Offset<\n              flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Geometry>>>\n
      \                 parts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: FlatGeobuf::GeometryBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void GeometryBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:158,1
    - Dst: flatbuffers::Offset<Geometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: FlatGeobuf::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Geometry>
    - EndTable
    linkageType: ''
    returnType: flatbuffers::Offset<Geometry>
    signature: flatbuffers::Offset<Geometry> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryBuilder::add_parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:178,1
    - Dst: GeometryBuilder::add_tm
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:179,1
    - Dst: GeometryBuilder::add_t
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:180,1
    - Dst: GeometryBuilder::add_m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:181,1
    - Dst: GeometryBuilder::add_z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:182,1
    - Dst: GeometryBuilder::add_xy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:183,1
    - Dst: GeometryBuilder::add_ends
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:184,1
    - Dst: GeometryBuilder::add_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:185,1
    - Dst: GeometryBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 187
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 187
    functionName: FlatGeobuf::CreateGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - GeometryBuilder::add_ends
    - GeometryBuilder::add_t
    - GeometryBuilder::add_m
    - GeometryBuilder::add_z
    - GeometryBuilder::add_type
    - GeometryBuilder::Finish
    - GeometryBuilder::add_xy
    - GeometryBuilder::add_parts
    - GeometryBuilder::add_tm
    linkageType: ''
    returnType: flatbuffers::Offset<Geometry>
    signature: "flatbuffers::Offset<Geometry> CreateGeometry(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::Vector<uint32_t>> ends = 0,\n    flatbuffers::Offset<flatbuffers::Vector<double>>
      xy = 0,\n    flatbuffers::Offset<flatbuffers::Vector<double>> z = 0,\n    flatbuffers::Offset<flatbuffers::Vector<double>>
      m = 0,\n    flatbuffers::Offset<flatbuffers::Vector<double>> t = 0,\n    flatbuffers::Offset<flatbuffers::Vector<uint64_t>>
      tm = 0,\n    FlatGeobuf::GeometryType type = FlatGeobuf::GeometryType::Unknown,\n
      \   flatbuffers::Offset<\n        flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Geometry>>>\n
      \       parts = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:201,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:202,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:203,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:204,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:205,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:206,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:208,1
    - Dst: FlatGeobuf::CreateGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: FlatGeobuf::CreateGeometryDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - FlatGeobuf::CreateGeometry
    linkageType: ''
    returnType: flatbuffers::Offset<Geometry>
    signature: "flatbuffers::Offset<Geometry> CreateGeometryDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const std::vector<uint32_t> *ends = nullptr,\n    const std::vector<double>
      *xy = nullptr,\n    const std::vector<double> *z = nullptr,\n    const std::vector<double>
      *m = nullptr,\n    const std::vector<double> *t = nullptr,\n    const std::vector<uint64_t>
      *tm = nullptr,\n    FlatGeobuf::GeometryType type = FlatGeobuf::GeometryType::Unknown,\n
      \   const std::vector<flatbuffers::Offset<FlatGeobuf::Geometry>> *parts =\n
      \       nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const FlatGeobuf::Geometry *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:228,1
    - Dst: GetPointer<const flatbuffers::Vector<uint8_t> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:233,1
    - Dst: "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Column>>
        *>"
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:239,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:245,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:246,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:247,1
    - Dst: geometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:247,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:248,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:249,1
    - Dst: properties
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:249,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:250,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:251,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:251,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:252,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:252,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 254
    functionName: FlatGeobuf::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - properties
    - EndTable
    - VerifyVector
    - GetPointer<const FlatGeobuf::Geometry *>
    - VerifyTable
    - "GetPointer<const flatbuffers::Vector<\n            flatbuffers::Offset<FlatGeobuf::Column>>
      *>"
    - VerifyOffset
    - VerifyTableStart
    - columns
    - geometry
    - VerifyVectorOfTables
    - GetPointer<const flatbuffers::Vector<uint8_t> *>
    linkageType: ''
    returnType: struct Feature
    signature: struct Feature flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - flatbuffers::Offset<FlatGeobuf::Geometry>
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: FlatGeobuf::add_geometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_geometry(flatbuffers::Offset<FlatGeobuf::Geometry> geometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - properties
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<uint8_t>>
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: FlatGeobuf::add_properties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_properties(flatbuffers::Offset<flatbuffers::Vector<uint8_t>>
      properties)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - columns
    argTypes:
    - "flatbuffers::Offset<\n                flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>"
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: FlatGeobuf::add_columns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: "void add_columns(flatbuffers::Offset<\n                flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>\n
      \                   columns)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: FlatGeobuf::FeatureBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void FeatureBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:288,1
    - Dst: flatbuffers::Offset<Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: FlatGeobuf::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - flatbuffers::Offset<Feature>
    linkageType: ''
    returnType: flatbuffers::Offset<Feature>
    signature: flatbuffers::Offset<Feature> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeatureBuilder::add_columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:303,1
    - Dst: FeatureBuilder::add_properties
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:304,1
    - Dst: FeatureBuilder::add_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:305,1
    - Dst: FeatureBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: FlatGeobuf::CreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - FeatureBuilder::add_columns
    - FeatureBuilder::Finish
    - FeatureBuilder::add_geometry
    - FeatureBuilder::add_properties
    linkageType: ''
    returnType: flatbuffers::Offset<Feature>
    signature: "flatbuffers::Offset<Feature> CreateFeature(flatbuffers::FlatBufferBuilder
      &_fbb,\n              flatbuffers::Offset<FlatGeobuf::Geometry> geometry = 0,\n
      \             flatbuffers::Offset<flatbuffers::Vector<uint8_t>> properties =
      0,\n              flatbuffers::Offset<\n                  flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>\n
      \                 columns = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:317,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:319,1
    - Dst: FlatGeobuf::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: FlatGeobuf::CreateFeatureDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - FlatGeobuf::CreateFeature
    linkageType: ''
    returnType: flatbuffers::Offset<Feature>
    signature: "flatbuffers::Offset<Feature> CreateFeatureDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<FlatGeobuf::Geometry> geometry = 0,\n    const
      std::vector<uint8_t> *properties = nullptr,\n    const std::vector<flatbuffers::Offset<FlatGeobuf::Column>>
      *columns =\n        nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot<FlatGeobuf::Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: FlatGeobuf::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetRoot<FlatGeobuf::Feature>
    linkageType: ''
    returnType: FlatGeobuf::Feature
    signature: FlatGeobuf::Feature *GetFeature(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: FlatGeobuf::GetSizePrefixedFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Feature>
    linkageType: ''
    returnType: FlatGeobuf::Feature
    signature: FlatGeobuf::Feature *GetSizePrefixedFeature(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: FlatGeobuf::VerifyFeatureBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: bool VerifyFeatureBuffer(flatbuffers::Verifier &verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifySizePrefixedBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: FlatGeobuf::VerifySizePrefixedFeatureBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Verifier::VerifySizePrefixedBuffer
    linkageType: ''
    returnType: bool
    signature: bool VerifySizePrefixedFeatureBuffer(flatbuffers::Verifier &verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<FlatGeobuf::Feature>
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: FlatGeobuf::FinishFeatureBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finish
    linkageType: ''
    returnType: void
    signature: "void FinishFeatureBuffer(flatbuffers::FlatBufferBuilder &fbb,\n                                flatbuffers::Offset<FlatGeobuf::Feature>
      root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::FinishSizePrefixed
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<FlatGeobuf::Feature>
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: FlatGeobuf::FinishSizePrefixedFeatureBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/feature_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::FinishSizePrefixed
    linkageType: ''
    returnType: void
    signature: "void FinishSizePrefixedFeatureBuffer(flatbuffers::FlatBufferBuilder
      &fbb,\n                                flatbuffers::Offset<FlatGeobuf::Feature>
      root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: CPLErrorInvalidLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: std::nullptr_t
    signature: std::nullptr_t CPLErrorInvalidLength(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:35,1
    - Dst: z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:38,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:40,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:41,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:42,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:43,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:46,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:48,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:49,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:50,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:51,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:52,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:53,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:54,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:55,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:52,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:59,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:60,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:61,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:59,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:66,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:68,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:69,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:70,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:71,1
    - Dst: OGRPoint::createXYM
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:72,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:72,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:73,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:74,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:78,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:79,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:78,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 81
    functionName: GeometryReader::readPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - OGRPoint::createXYM
    - auto::data
    - z
    - m
    - EndianScalar
    - OGRPoint::OGRPoint
    - CPLErrorInvalidLength
    - auto::size
    linkageType: ''
    returnType: OGRPoint
    signature: OGRPoint *GeometryReader::readPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:87,1
    - Dst: std::make_unique<OGRMultiPoint>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:88,1
    - Dst: GeometryReader::readPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:92,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:95,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: GeometryReader::readMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - auto::addGeometryDirectly
    - CPLErrorInvalidLength
    - std::make_unique<OGRMultiPoint>
    - GeometryReader::readPoint
    linkageType: ''
    returnType: OGRMultiPoint
    signature: OGRMultiPoint *GeometryReader::readMultiPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ends
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:102,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:103,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:104,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:107,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:110,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:115,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:117,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:119,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:121,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:124,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 129
    functionName: GeometryReader::readMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - auto::addGeometryDirectly
    - ends
    - auto::Get
    - std::make_unique<OGRMultiLineString>
    - CPLErrorInvalidLength
    - GeometryReader::readSimpleCurve
    - auto::size
    linkageType: ''
    returnType: OGRMultiLineString
    signature: OGRMultiLineString *GeometryReader::readMultiLineString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:135,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:138,1
    - Dst: reinterpret_cast<const OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:139,1
    - Dst: z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:142,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:145,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:148,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:149,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:150,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:153,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:156,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:159,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:160,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:161,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:163,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:165,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:168,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:168,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:169,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:170,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:171,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:178,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:180,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:183,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:183,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:184,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:185,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:192,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:195,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:198,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:199,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:200,1
    - Dst: OGRSimpleCurve*::setPointsM
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:202,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:204,1
    - Dst: OGRSimpleCurve*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:207,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:207,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:207,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:208,1
    - Dst: OGRSimpleCurve*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:215,1
    - Dst: OGRSimpleCurve*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:217,1
    - Dst: OGRSimpleCurve*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:220,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:220,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:220,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - sc
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 225
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 225
    functionName: GeometryReader::readSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 2
    functionsReached:
    - CPLErrorInvalidPointer
    - CPLErrorInvalidSize
    - OGRSimpleCurve*::setPoint
    - z
    - auto::data
    - OGRSimpleCurve*::setPointsM
    - m
    - OGRSimpleCurve*::setPoints
    - OGRSimpleCurve*::setNumPoints
    - EndianScalar
    - reinterpret_cast<const OGRRawPoint *>
    - auto::size
    - OGRSimpleCurve*::setPointM
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GeometryReader::readSimpleCurve(OGRSimpleCurve *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ends
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:229,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:230,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:231,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:234,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:237,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:241,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:243,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:245,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:247,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:251,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:253,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 257
    functionName: GeometryReader::readPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - auto::IsEmpty
    - auto::release
    - ends
    - auto::Get
    - auto::addRingDirectly
    - CPLErrorInvalidLength
    - GeometryReader::readSimpleCurve
    - auto::size
    - std::make_unique<OGRPolygon>
    linkageType: ''
    returnType: OGRPolygon
    signature: OGRPolygon *GeometryReader::readPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:261,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:263,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:264,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:265,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:267,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:268,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:268,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:271,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:271,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: GeometryReader::readMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addGeometryDirectly
    - auto::Get
    - readPart
    - std::make_unique<OGRMultiPolygon>
    - parts
    - auto::size
    linkageType: ''
    returnType: OGRMultiPolygon
    signature: OGRMultiPolygon *GeometryReader::readMultiPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:278,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:280,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:281,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:282,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:284,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:284,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:284,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:287,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:287,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: GeometryReader::readGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addGeometryDirectly
    - auto::Get
    - readPart
    - parts
    - auto::size
    - std::make_unique<OGRGeometryCollection>
    linkageType: ''
    returnType: OGRGeometryCollection
    signature: OGRGeometryCollection *GeometryReader::readGeometryCollection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:294,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:296,1
    - Dst: std::make_unique<OGRCompoundCurve>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:297,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:298,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:300,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:300,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:300,1
    - Dst: dynamic_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:301,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:301,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:303,1
    - Dst: auto::addCurveDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:304,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: GeometryReader::readCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - std::make_unique<OGRCompoundCurve>
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addCurveDirectly
    - auto::Get
    - dynamic_cast<OGRCurve *>
    - auto::get
    - readPart
    - parts
    - auto::size
    linkageType: ''
    returnType: OGRCompoundCurve
    signature: OGRCompoundCurve *GeometryReader::readCompoundCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:315,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:317,1
    - Dst: std::make_unique<OGRCurvePolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:318,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:319,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:321,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:321,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:321,1
    - Dst: dynamic_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:322,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:322,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:324,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:325,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: GeometryReader::readCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - std::make_unique<OGRCurvePolygon>
    - auto::Get
    - dynamic_cast<OGRCurve *>
    - readPart
    - auto::get
    - parts
    - auto::addRingDirectly
    - auto::size
    linkageType: ''
    returnType: OGRCurvePolygon
    signature: OGRCurvePolygon *GeometryReader::readCurvePolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:336,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:338,1
    - Dst: std::make_unique<OGRMultiCurve>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:339,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:340,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:342,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:342,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:342,1
    - Dst: dynamic_cast<OGRCurve *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:343,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:343,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:345,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:345,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: GeometryReader::readMultiCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addGeometryDirectly
    - std::make_unique<OGRMultiCurve>
    - auto::Get
    - dynamic_cast<OGRCurve *>
    - readPart
    - auto::get
    - parts
    - auto::size
    linkageType: ''
    returnType: OGRMultiCurve
    signature: OGRMultiCurve *GeometryReader::readMultiCurve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:352,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:354,1
    - Dst: std::make_unique<OGRMultiSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:355,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:356,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:358,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:358,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:358,1
    - Dst: dynamic_cast<OGRSurface *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:359,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:359,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:361,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:362,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: GeometryReader::readMultiSurface
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addGeometryDirectly
    - auto::Get
    - dynamic_cast<OGRSurface *>
    - readPart
    - auto::get
    - parts
    - auto::size
    - std::make_unique<OGRMultiSurface>
    linkageType: ''
    returnType: OGRMultiSurface
    signature: OGRMultiSurface *GeometryReader::readMultiSurface()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parts
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:373,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:375,1
    - Dst: std::make_unique<OGRPolyhedralSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:376,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:377,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:379,1
    - Dst: readPart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:379,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:379,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:382,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:383,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 390
    functionName: GeometryReader::readPolyhedralSurface
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - auto::release
    - std::unique_ptr<OGRGeometry>
    - auto::addGeometryDirectly
    - auto::Get
    - readPart
    - parts
    - auto::size
    - std::make_unique<OGRPolyhedralSurface>
    linkageType: ''
    returnType: OGRPolyhedralSurface
    signature: OGRPolyhedralSurface *GeometryReader::readPolyhedralSurface()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ends
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:394,1
    - Dst: std::make_unique<OGRTriangulatedSurface>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:395,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:396,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:400,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:401,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:404,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:405,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:406,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:410,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:412,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:414,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:417,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:418,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:422,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:423,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:424,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:426,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 430
    functionName: GeometryReader::readTIN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - auto::IsEmpty
    - CPLErrorInvalidLength
    - auto::release
    - OGRTriangle::OGRTriangle
    - auto::addGeometryDirectly
    - ends
    - auto::Get
    - auto::addRingDirectly
    - std::make_unique<OGRTriangulatedSurface>
    - GeometryReader::readSimpleCurve
    - auto::size
    linkageType: ''
    returnType: OGRTriangulatedSurface
    signature: OGRTriangulatedSurface *GeometryReader::readTIN()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:436,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:437,1
    - Dst: OGRTriangle::OGRTriangle
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:440,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: GeometryReader::readTriangle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidLength
    - GeometryReader::readSimpleCurve
    - auto::addRingDirectly
    - OGRTriangle::OGRTriangle
    linkageType: ''
    returnType: OGRTriangle
    signature: OGRTriangle *GeometryReader::readTriangle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryReader::readGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:451,1
    - Dst: GeometryReader::readMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:453,1
    - Dst: GeometryReader::readCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:455,1
    - Dst: GeometryReader::readCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:457,1
    - Dst: GeometryReader::readMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:459,1
    - Dst: GeometryReader::readMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:461,1
    - Dst: GeometryReader::readPolyhedralSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:463,1
    - Dst: xy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:469,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:471,1
    - Dst: z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:472,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:473,1
    - Dst: m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:474,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:475,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:476,1
    - Dst: CPLErrorInvalidLength
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:478,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:481,1
    - Dst: GeometryReader::readPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:486,1
    - Dst: GeometryReader::readMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:488,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:490,1
    - Dst: GeometryReader::readMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:492,1
    - Dst: GeometryReader::readPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:494,1
    - Dst: GeometryReader::readSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:496,1
    - Dst: GeometryReader::readTriangle
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:498,1
    - Dst: GeometryReader::readTIN
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:500,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp:502,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 507
    functionName: GeometryReader::read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometryreader.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - GeometryReader::readTriangle
    - GeometryReader::readPolyhedralSurface
    - GeometryReader::readCurvePolygon
    - GeometryReader::readGeometryCollection
    - CPLError
    - auto::size
    - GeometryReader::readPolygon
    - GeometryReader::readMultiPolygon
    - GeometryReader::readTIN
    - GeometryReader::readPoint
    - xy
    - GeometryReader::readMultiLineString
    - GeometryReader::readMultiSurface
    - z
    - GeometryReader::readMultiPoint
    - m
    - GeometryReader::readSimpleCurve
    - auto::data
    - GeometryReader::readMultiCurve
    - CPLErrorInvalidLength
    - GeometryReader::readCompoundCurve
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *GeometryReader::read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - eGType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: GeometryWriter::translateOGRwkbGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    linkageType: ''
    returnType: GeometryType
    signature: GeometryType GeometryWriter::translateOGRwkbGeometryType(const OGRwkbGeometryType
      eGType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:31,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:31,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:32,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:32,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:34,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:34,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:36,1
    - Dst: OGRPoint*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPoint*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: GeometryWriter::writePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint*::getM
    - OGRPoint*::getX
    - OGRPoint*::getY
    - push_back
    - OGRPoint*::getZ
    linkageType: ''
    returnType: void
    signature: void GeometryWriter::writePoint(const OGRPoint *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:42,1
    - Dst: GeometryWriter::writePoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - mp
    argTypes:
    - OGRMultiPoint*
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: GeometryWriter::writeMultiPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GeometryWriter::writePoint
    linkageType: ''
    returnType: void
    signature: void GeometryWriter::writeMultiPoint(const OGRMultiPoint *mp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:49,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:50,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:51,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:55,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:56,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:58,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:62,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:63,1
    - Dst: OGRSimpleCurve*::getPoints
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:65,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:65,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:66,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:66,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:68,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:69,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sc
    argTypes:
    - OGRSimpleCurve*
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: GeometryWriter::writeSimpleCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - size
    - reinterpret_cast<OGRRawPoint *>
    - OGRSimpleCurve*::getPoints
    - resize
    - data
    - reinterpret_cast<double *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GeometryWriter::writeSimpleCurve(const OGRSimpleCurve *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:80,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:81,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - mls
    argTypes:
    - OGRMultiLineString*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: GeometryWriter::writeMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GeometryWriter::writeSimpleCurve
    - push_back
    linkageType: ''
    returnType: void
    signature: void GeometryWriter::writeMultiLineString(const OGRMultiLineString
      *mls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:86,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:87,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:92,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:94,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:94,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: GeometryWriter::writePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - GeometryWriter::writeSimpleCurve
    - OGRPolygon*::getInteriorRing
    - OGRPolygon*::getExteriorRing
    - OGRPolygon*::getNumInteriorRings
    - push_back
    linkageType: ''
    returnType: void
    signature: void GeometryWriter::writePolygon(const OGRPolygon *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:103,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:104,1
    - Dst: writePart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:104,1
    - Dst: CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mp
    - depth
    argTypes:
    - OGRMultiPolygon*
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: GeometryWriter::writeMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - IsEmpty
    - writePart
    - CreateGeometryDirect
    linkageType: ''
    returnType: Offset<Geometry>
    signature: Offset<Geometry> GeometryWriter::writeMultiPolygon(const OGRMultiPolygon
      *mp, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:116,1
    - Dst: writePart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:116,1
    - Dst: CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - depth
    argTypes:
    - OGRGeometryCollection*
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: GeometryWriter::writeGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - IsEmpty
    - writePart
    - CreateGeometryDirect
    linkageType: ''
    returnType: Offset<Geometry>
    signature: "Offset<Geometry> GeometryWriter::writeGeometryCollection(const OGRGeometryCollection
      *gc,\n                                        int depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:126,1
    - Dst: writePart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:126,1
    - Dst: CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - depth
    argTypes:
    - OGRCompoundCurve*
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: GeometryWriter::writeCompoundCurve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - CreateGeometryDirect
    - writePart
    linkageType: ''
    returnType: Offset<Geometry>
    signature: Offset<Geometry> GeometryWriter::writeCompoundCurve(const OGRCompoundCurve
      *cc, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:136,1
    - Dst: writePart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:136,1
    - Dst: CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cp
    - depth
    argTypes:
    - OGRCurvePolygon*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: GeometryWriter::writeCurvePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - CreateGeometryDirect
    - writePart
    linkageType: ''
    returnType: Offset<Geometry>
    signature: Offset<Geometry> GeometryWriter::writeCurvePolygon(const OGRCurvePolygon
      *cp, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:146,1
    - Dst: writePart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:146,1
    - Dst: CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - depth
    argTypes:
    - OGRPolyhedralSurface*
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: GeometryWriter::writePolyhedralSurface
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - CreateGeometryDirect
    - writePart
    linkageType: ''
    returnType: Offset<Geometry>
    signature: Offset<Geometry> GeometryWriter::writePolyhedralSurface(const OGRPolyhedralSurface
      *p, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRTriangulatedSurface*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:153,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:155,1
    - Dst: OGRTriangulatedSurface*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:155,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:158,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:158,1
    - Dst: getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ts
    argTypes:
    - OGRTriangulatedSurface*
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: GeometryWriter::writeTIN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - getExteriorRing
    - OGRTriangulatedSurface*::getNumGeometries
    - GeometryWriter::writeSimpleCurve
    - OGRTriangulatedSurface*::getGeometryRef
    - push_back
    linkageType: ''
    returnType: void
    signature: void GeometryWriter::writeTIN(const OGRTriangulatedSurface *ts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryWriter::translateOGRwkbGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:167,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:167,1
    - Dst: GeometryWriter::writePoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:173,1
    - Dst: toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:173,1
    - Dst: GeometryWriter::writeMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:176,1
    - Dst: toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:176,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:179,1
    - Dst: toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:179,1
    - Dst: GeometryWriter::writeMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:182,1
    - Dst: toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:182,1
    - Dst: GeometryWriter::writePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:185,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:185,1
    - Dst: GeometryWriter::writeMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:188,1
    - Dst: toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:188,1
    - Dst: GeometryWriter::writeGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:190,1
    - Dst: toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:191,1
    - Dst: GeometryWriter::writeSimpleCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:193,1
    - Dst: toCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:193,1
    - Dst: GeometryWriter::writeCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:196,1
    - Dst: toCompoundCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:196,1
    - Dst: GeometryWriter::writeCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:198,1
    - Dst: toCurvePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:198,1
    - Dst: GeometryWriter::writeGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:200,1
    - Dst: toMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:200,1
    - Dst: GeometryWriter::writeGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:203,1
    - Dst: toMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:203,1
    - Dst: GeometryWriter::writePolyhedralSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:206,1
    - Dst: toPolyhedralSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:206,1
    - Dst: GeometryWriter::writePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:209,1
    - Dst: toTriangle
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:209,1
    - Dst: GeometryWriter::writeTIN
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:212,1
    - Dst: toTriangulatedSurface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:212,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:215,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:220,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:221,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:222,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:223,1
    - Dst: FlatGeobuf::CreateGeometryDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp:227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 229
    functionName: GeometryWriter::write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp
    functionUses: 0
    functionsReached:
    - GeometryWriter::writeGeometryCollection
    - toMultiPolygon
    - toMultiPoint
    - toMultiCurve
    - toCurvePolygon
    - CPLError
    - toCircularString
    - toGeometryCollection
    - GeometryWriter::translateOGRwkbGeometryType
    - toPolygon
    - GeometryWriter::writePolygon
    - GeometryWriter::writeTIN
    - toMultiLineString
    - GeometryWriter::writePoint
    - getGeometryType
    - GeometryWriter::writeSimpleCurve
    - toLineString
    - toPoint
    - GeometryWriter::writeMultiPolygon
    - toCompoundCurve
    - GeometryWriter::writePolyhedralSurface
    - empty
    - toMultiSurface
    - GeometryWriter::writeCurvePolygon
    - toPolyhedralSurface
    - GeometryWriter::writeMultiPoint
    - FlatGeobuf::CreateGeometryDirect
    - toTriangle
    - GeometryWriter::writeMultiLineString
    - GeometryWriter::writeCompoundCurve
    - toTriangulatedSurface
    linkageType: ''
    returnType: Offset<Geometry>
    signature: Offset<Geometry> GeometryWriter::write(int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/cplerrors.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: ogr_flatgeobuf::CPLErrorInvalidPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/cplerrors.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: std::nullptr_t
    signature: std::nullptr_t CPLErrorInvalidPointer(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/cplerrors.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ogr_flatgeobuf::CPLErrorInvalidSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/cplerrors.h
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPLErrorInvalidSize(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufBaseLayerInterface
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached:
    - OGRFlatGeobufBaseLayerInterface
    linkageType: ''
    returnType: class OGRFlatGeobufBaseLayerInterface
    signature: class OGRFlatGeobufBaseLayerInterface CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: OGRFlatGeobufLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGRFlatGeobufLayer::VerifyBuffers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void VerifyBuffers(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OGRFlatGeobufLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: '&GetFilename() const override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetFilename() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: OGRFlatGeobufLayer::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OGRFlatGeobufLayer::GetIndexNodeSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t GetIndexNodeSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRFlatGeobufLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: '&GetFilename() const override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached:
    - static_cast<OGRFlatGeobufLayer *>
    linkageType: ''
    returnType: std::string
    signature: std::string &GetFilename() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: OGRFlatGeobufEditableLayer::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: OGRFlatGeobufEditableLayer::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr Close() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h:276,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: OGRFlatGeobufDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poFlatGeobufLayer
    - papszOpenOptions
    argTypes:
    - OGRFlatGeobufLayer*
    - char**
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: OGRFlatGeobufEditableLayerSynchronizer::OGRFlatGeobufEditableLayerSynchronizer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLDuplicate
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufEditableLayerSynchronizer(\n        OGRFlatGeobufLayer
      *poFlatGeobufLayer, char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: "OGRFlatGeobufEditableLayerSynchronizer::\n    ~OGRFlatGeobufEditableLayerSynchronizer()"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufEditableLayerSynchronizer::\n    ~OGRFlatGeobufEditableLayerSynchronizer()"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:60,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:62,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:64,1
    - Dst: GetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:65,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:68,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:72,1
    - Dst: getOGRwkbGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:73,1
    - Dst: GetIndexNodeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:74,1
    - Dst: OGRFlatGeobufLayer::Create
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:76,1
    - Dst: GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:77,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:77,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:78,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:84,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:85,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:88,1
    - Dst: OGRFlatGeobufLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:89,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:92,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:98,1
    - Dst: OGRLayer*::GetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:101,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:103,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:104,1
    - Dst: OGRFlatGeobufLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:107,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:108,1
    - Dst: auto::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:109,1
    - Dst: OGRFlatGeobufLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:117,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:117,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:118,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:118,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:118,1
    - Dst: OGRFlatGeobufLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:120,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:126,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:127,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:133,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:134,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:135,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:146,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:149,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:152,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:155,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:158,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:159,1
    - Dst: OGRFlatGeobufLayer::Open
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:164,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:164,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - poEditableLayer
    - ppoDecoratedLayer
    argTypes:
    - OGRLayer*
    - OGRLayer**
    constantsTouched: []
    func_position:
      end: 168
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 168
    functionName: OGRFlatGeobufEditableLayerSynchronizer::EditableSyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 0
    functionsReached:
    - getOGRwkbGeometryType
    - OGRLayer*::GetSpatialFilter
    - OGRLayer*::SetSpatialFilter
    - GetIndexNodeSize
    - OGRFlatGeobufLayer::Create
    - OGRLayer*::SetAttributeFilter
    - OGRFlatGeobufLayer*::CreateField
    - OGRFeature*::SetFrom
    - CPLError
    - OGRGeometry*::clone
    - GetDataset
    - CPLString::c_str
    - OGRLayer*::GetLayerDefn
    - VSIRename
    - GetName
    - OGRFeatureDefn*::GetFieldCount
    - GetSpatialRef
    - get
    - VSIUnlink
    - OGRFlatGeobufLayer::Open
    - VSIFOpenL
    - CPLAssert
    - OGRLayer*::ResetReading
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - CPLDebugOnly
    - OGRFlatGeobufLayer*::GetLayerDefn
    - auto::push_back
    - auto::data
    - VSIStatL
    - OGRFlatGeobufLayer*::CreateFeature
    - GetFilename
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFlatGeobufEditableLayerSynchronizer::EditableSyncToDisk(\n
      \   OGRLayer *poEditableLayer, OGRLayer **ppoDecoratedLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufEditableLayerSynchronizer::OGRFlatGeobufEditableLayerSynchronizer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poFlatGeobufLayer
    - papszOpenOptions
    argTypes:
    - OGRFlatGeobufLayer*
    - char**
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: OGRFlatGeobufEditableLayer::OGRFlatGeobufEditableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFlatGeobufEditableLayerSynchronizer::OGRFlatGeobufEditableLayerSynchronizer
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufEditableLayer::OGRFlatGeobufEditableLayer(\n    OGRFlatGeobufLayer
      *poFlatGeobufLayer, char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGREditableLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:181,1
    - Dst: static_cast<OGRFlatGeobufLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:185,1
    - Dst: SetNextFID
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: OGRFlatGeobufEditableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 0
    functionsReached:
    - SetNextFID
    - static_cast<OGRFlatGeobufLayer *>
    - OGREditableLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRFlatGeobufEditableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:199,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:202,1
    - Dst: OGREditableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 208
    functionName: OGRFlatGeobufEditableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobufeditablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGREditableLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRFlatGeobufEditableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: CPLErrorMemoryAllocation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPLErrorMemoryAllocation(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: CPLErrorIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CPLErrorIO(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:58,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:60,1
    - Dst: features_count
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:68,1
    - Dst: geometry_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:69,1
    - Dst: index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:70,1
    - Dst: has_z
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:71,1
    - Dst: has_m
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:72,1
    - Dst: has_t
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:73,1
    - Dst: envelope
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:74,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:75,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:75,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:76,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:76,1
    - Dst: std::isfinite
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:77,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:85,1
    - Dst: crs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:88,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:91,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:92,1
    - Dst: auto::org
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:93,1
    - Dst: auto::code
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:94,1
    - Dst: auto::wkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:95,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:96,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:98,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:98,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:105,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:111,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:111,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:111,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:112,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:113,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:117,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:117,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:119,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:124,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:124,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:125,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:126,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:127,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:129,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:131,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:131,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:134,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:136,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:136,1
    - Dst: SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:140,1
    - Dst: OGRFlatGeobufLayer::getOGRwkbGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:143,1
    - Dst: Header*::title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:145,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:146,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:146,1
    - Dst: Header*::description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:148,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:149,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:149,1
    - Dst: Header*::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:151,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:153,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:155,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:155,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:156,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:158,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:160,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:162,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:162,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:163,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:171,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:172,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:172,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:173,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:175,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:177,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:178,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:178,1
    - Dst: OGRFlatGeobufLayer::readColumns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:179,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:180,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 5
    argNames:
    - poHeader
    - headerBuf
    - pszFilename
    - poFp
    - offset
    argTypes:
    - Header*
    - GByte*
    - char*
    - VSILFILE*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 181
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 181
    functionName: OGRFlatGeobufLayer::OGRFlatGeobufLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - has_z
    - auto::org
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLJSONDocument::GetRoot
    - CPLString::ifind
    - Reference
    - crs
    - auto::size
    - CPLString::resize
    - CPLString::empty
    - auto::c_str
    - CPLString::substr
    - SetGeomType
    - CPLString::c_str
    - SetAxisMappingStrategy
    - features_count
    - strlen
    - Header*::title
    - std::move
    - OGRFlatGeobufLayer::readColumns
    - SetMetadataItem
    - SetCoordinateEpoch
    - GetName
    - SetFromUserInput
    - CPLAtof
    - OGRFlatGeobufLayer::getOGRwkbGeometryType
    - Header*::description
    - STARTS_WITH_CI
    - CPLJSONDocument::LoadMemory
    - importFromWkt
    - ToString
    - CPLString::Printf
    - OGRFeatureDefn::OGRFeatureDefn
    - has_m
    - auto::code
    - CPLAssert
    - envelope
    - auto::wkt
    - GetType
    - auto::SetSpatialRef
    - geometry_type
    - SetDescription
    - std::isfinite
    - CPLDebugOnly
    - OGRSpatialReference::OGRSpatialReference
    - index_node_size
    - AddGeomFieldDefn
    - has_t
    - EQUAL
    - CPLJSONDocument::CPLJSONDocument
    - std::make_unique<OGRGeomFieldDefn>
    - Header*::metadata
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufLayer::OGRFlatGeobufLayer(const Header *poHeader,
      GByte *headerBuf,\n                                       const char *pszFilename,
      VSILFILE *poFp,\n                                       uint64_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryWriter::translateOGRwkbGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:197,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:203,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:205,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:208,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:210,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:211,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:211,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:212,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 9
    argNames:
    - poDS
    - pszLayerName
    - pszFilename
    - poSpatialRef
    - eGType
    - bCreateSpatialIndexAtClose
    - poFpWrite
    - osTempFile
    - papszOptions
    argTypes:
    - GDALDataset*
    - char*
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - bool
    - VSILFILE*
    - std::string
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 214
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 214
    functionName: OGRFlatGeobufLayer::OGRFlatGeobufLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - CPLDebugOnly
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - SetMetadataItem
    - GeometryWriter::translateOGRwkbGeometryType
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufLayer::OGRFlatGeobufLayer(\n    GDALDataset *poDS,
      const char *pszLayerName, const char *pszFilename,\n    const OGRSpatialReference
      *poSpatialRef, OGRwkbGeometryType eGType,\n    bool bCreateSpatialIndexAtClose,
      VSILFILE *poFpWrite,\n    std::string &osTempFile, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:219,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:222,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: OGRFlatGeobufLayer::getOGRwkbGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - wkbSetM
    - static_cast<int>
    - wkbSetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRFlatGeobufLayer::getOGRwkbGeometryType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:253,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - pszFieldName
    - type
    - subType
    argTypes:
    - char*
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 259
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 259
    functionName: toColumnType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFieldDefn::GetFieldTypeName
    linkageType: ''
    returnType: ColumnType
    signature: "ColumnType toColumnType(const char *pszFieldName, OGRFieldType type,\n
      \                              OGRFieldSubType subType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - type
    - eSubType
    argTypes:
    - ColumnType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 301
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 301
    functionName: toOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType toOGRFieldType(ColumnType type, OGRFieldSubType &eSubType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:307,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:309,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:310,1
    - Dst: toColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:312,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:312,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:312,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:313,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:314,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:316,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:321,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:325,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:327,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:328,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:328,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:329,1
    - Dst: auto::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:329,1
    - Dst: CreateColumnDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:335,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:339,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:340,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - fbb
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 342
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 342
    functionName: OGRFlatGeobufLayer::writeColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - std::vector::size
    - auto::GetType
    - auto::GetAlternativeNameRef
    - GetFieldDefn
    - std::vector::push_back
    - CPL_TO_BOOL
    - static_cast<long unsigned int>
    - auto::GetWidth
    - auto::GetPrecision
    - auto::GetComment
    - GetFieldCount
    - toColumnType
    - auto::IsUnique
    - auto::GetNameRef
    - CPLDebugOnly
    - CreateColumnDirect
    - EQUAL
    - auto::GetSubType
    linkageType: ''
    returnType: std::vector<Offset<Column>>
    signature: std::vector<Offset<Column>> OGRFlatGeobufLayer::writeColumns(FlatBufferBuilder
      &fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:346,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:349,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:351,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:352,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:353,1
    - Dst: auto::title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:355,1
    - Dst: auto::title
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:355,1
    - Dst: auto::width
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:356,1
    - Dst: auto::precision
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:357,1
    - Dst: auto::scale
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:358,1
    - Dst: auto::nullable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:359,1
    - Dst: auto::unique
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:360,1
    - Dst: toOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:362,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:362,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:364,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:365,1
    - Dst: auto::description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:366,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:367,1
    - Dst: auto::description
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:367,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:370,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:372,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:373,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:374,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:375,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:376,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:380,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:382,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 383
    functionName: OGRFlatGeobufLayer::readColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn::SetNullable
    - OGRFieldDefn::SetUnique
    - auto::name
    - auto::size
    - static_cast<long unsigned int>
    - auto::unique
    - auto::type
    - auto::width
    - columns
    - AddFieldDefn
    - OGRFieldDefn::SetAlternativeName
    - auto::title
    - auto::Get
    - OGRFieldDefn::SetSubType
    - toOGRFieldType
    - auto::nullable
    - auto::precision
    - CPLDebugOnly
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - auto::scale
    - auto::description
    - OGRFieldDefn::SetComment
    linkageType: ''
    returnType: void
    signature: void OGRFlatGeobufLayer::readColumns()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:389,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:390,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:391,1
    - Dst: FlatBufferBuilder::TrackMinAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:395,1
    - Dst: OGRFlatGeobufLayer::writeColumns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:396,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:403,1
    - Dst: AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:406,1
    - Dst: GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:408,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:409,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:413,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:416,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:416,1
    - Dst: GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:418,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:422,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:426,1
    - Dst: GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:426,1
    - Dst: exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:435,1
    - Dst: GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:439,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:442,1
    - Dst: GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:442,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:443,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:445,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:446,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:454,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:455,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:455,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:461,1
    - Dst: CreateCrsDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:464,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:465,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:466,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:469,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:471,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:473,1
    - Dst: static_cast<GDALMajorObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:476,1
    - Dst: static_cast<GDALMajorObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:477,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:489,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:491,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:493,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:496,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:498,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:504,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:507,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:515,1
    - Dst: CreateHeaderDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:518,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:519,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:521,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:521,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:522,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:522,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:523,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:523,1
    - Dst: FlatBufferBuilder::FinishSizePrefixed
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:524,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:525,1
    - Dst: FlatBufferBuilder::GetBufferPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:525,1
    - Dst: FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:525,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:526,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:527,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 3
    argNames:
    - poFp
    - featuresCount
    - extentVector
    argTypes:
    - VSILFILE*
    - uint64_t
    - std::vector<double>*
    constantsTouched: []
    func_position:
      end: 529
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 529
    functionName: OGRFlatGeobufLayer::writeHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - FlatBufferBuilder::GetSize
    - std::string::c_str
    - CreateCrsDirect
    - std::string::empty
    - static_cast<long unsigned int>
    - CPLStrdup
    - GetLayerCount
    - std::string::find
    - FetchNameValueDef
    - OGRFlatGeobufLayer::writeColumns
    - CPLIsUTF8
    - strlen
    - static_cast<GDALMajorObject *>
    - FlatBufferBuilder::FinishSizePrefixed
    - GetName
    - std::string::back
    - c_str
    - AutoIdentifyEPSG
    - CPLJSONObject::CPLJSONObject
    - CPLSPrintf
    - FlatBufferBuilder::GetBufferPointer
    - CPLFree
    - CPLDebugOnly
    - CreateHeaderDirect
    - GetCoordinateEpoch
    - GetAuthorityName
    - CPLJSONObject::Add
    - FlatBufferBuilder::TrackMinAlign
    - EQUAL
    - VSIFWriteL
    - GetAuthorityCode
    - importFromEPSG
    - exportToWkt
    - CPLJSONObject::Format
    - std::string::pop_back
    linkageType: ''
    returnType: void
    signature: "void OGRFlatGeobufLayer::writeHeader(VSILFILE *poFp, uint64_t featuresCount,\n
      \                                    std::vector<double> *extentVector)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:533,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:533,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:534,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: SupportsSeekWhileWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool SupportsSeekWhileWriting(const std::string &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SupportsSeekWhileWriting
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:542,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:548,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:551,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:553,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:553,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:557,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:558,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:559,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:560,1
    - Dst: OGRFlatGeobufLayer::writeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:562,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:567,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:569,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:574,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:577,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:578,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:578,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:585,1
    - Dst: OGRFlatGeobufLayer::writeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:586,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:590,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:598,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:600,1
    - Dst: calcExtent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:605,1
    - Dst: NodeItem::toVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:606,1
    - Dst: OGRFlatGeobufLayer::writeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:608,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:610,1
    - Dst: hilbertSort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:611,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:612,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:619,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:632,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:633,1
    - Dst: PackedRTree::streamWrite
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:636,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:637,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:641,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:641,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:644,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:645,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:648,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:649,1
    - Dst: OGRFlatGeobufLayer::ensureFeatureBuf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:665,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:680,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:680,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:680,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:691,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:693,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:696,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:699,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:706,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:709,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:713,1
    - Dst: flushBatch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:725,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:734,1
    - Dst: flushBatch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:739,1
    - Dst: OGRFlatGeobufLayer::ensureFeatureBuf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:746,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:757,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:759,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:762,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:765,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:768,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:770,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:777,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:778,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:781,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:782,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 125
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 785
    functionName: OGRFlatGeobufLayer::CreateFinalFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorIO
    - std::vector::emplace_back
    - OGRFlatGeobufLayer::writeHeader
    - flushBatch
    - hilbertSort
    - CPLError
    - std::vector::push_back
    - std::vector::clear
    - simple_max
    - static_cast<long unsigned int>
    - std::vector::end
    - std::vector::begin
    - std::sort
    - IsInit
    - PackedRTree::streamWrite
    - c_str
    - OGRFlatGeobufLayer::ensureFeatureBuf
    - VSIFSeekL
    - SupportsSeekWhileWriting
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - calcExtent
    - VSIFReadL
    - cpl::quiet_NaN
    - what
    - VSIStrerror
    - std::vector::resize
    - size
    - CPLDebugOnly
    - VSIFWriteL
    - NodeItem::toVector
    linkageType: ''
    returnType: bool
    signature: bool OGRFlatGeobufLayer::CreateFinalFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:789,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:792,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:795,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:798,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 802
    functionName: OGRFlatGeobufLayer::~OGRFlatGeobufLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFlatGeobufLayer::Close
    - Release
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void OGRFlatGeobufLayer::~OGRFlatGeobufLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufLayer::CreateFinalFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:810,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:817,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:824,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:829,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:831,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:831,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 804
    functionDepth: 5
    functionLinenumber: 804
    functionLinenumberEnd: 836
    functionName: OGRFlatGeobufLayer::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - VSIFCloseL
    - OGRFlatGeobufLayer::CreateFinalFile
    - VSIUnlink
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRFlatGeobufLayer::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatGeobuf::PackedRTree::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:844,1
    - Dst: FlatGeobuf::PackedRTree::generateLevelBounds
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:846,1
    - Dst: auto::front
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:849,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:853,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:854,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:855,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:856,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:858,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:864,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - index
    - featureOffset
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 868
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 868
    functionName: OGRFlatGeobufLayer::readFeatureOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorIO
    - CPL_LSBPTR64
    - VSIFSeekL
    - FlatGeobuf::PackedRTree::size
    - auto::front
    - VSIFReadL
    - CPLError
    - what
    - FlatGeobuf::PackedRTree::generateLevelBounds
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFlatGeobufLayer::readFeatureOffset(uint64_t index,\n                                             uint64_t
      &featureOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:874,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:879,1
    - Dst: OGRFlatGeobufLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:883,1
    - Dst: OGRFlatGeobufLayer::readFeatureOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:887,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:890,1
    - Dst: OGRFlatGeobufLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:895,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:897,1
    - Dst: OGRFlatGeobufLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 901
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 901
    functionName: OGRFlatGeobufLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFlatGeobufLayer::ResetReading
    - OGRFlatGeobufLayer::readFeatureOffset
    - static_cast<uint64_t>
    - CPLError
    - OGRFlatGeobufLayer::GetNextFeature
    - OGRLayer::GetFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRFlatGeobufLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:907,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:907,1
    - Dst: index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:913,1
    - Dst: features_count
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:916,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:920,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:922,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:924,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:925,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:926,1
    - Dst: FlatGeobuf::PackedRTree::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:931,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:934,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:936,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:938,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:945,1
    - Dst: std::runtime_error
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:946,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:947,1
    - Dst: std::runtime_error
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:948,1
    - Dst: FlatGeobuf::PackedRTree::streamSearch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:950,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:952,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:953,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:955,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:962,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:963,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 968
    functionName: OGRFlatGeobufLayer::readIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLErrorIO
    - CPLDebugOnly
    - getEnvelope
    - FlatGeobuf::PackedRTree::streamSearch
    - index_node_size
    - static_cast<long unsigned int>
    - VSIFSeekL
    - FlatGeobuf::PackedRTree::size
    - std::runtime_error
    - features_count
    - VSIFReadL
    - CPLError
    - IsInit
    - what
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFlatGeobufLayer::readIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: OGRFlatGeobufLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRFlatGeobufLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParseDateTimeYYYYMMDDTHHMMSSZ
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:985,1
    - Dst: OGRParseDateTimeYYYYMMDDTHHMMSSsssZ
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - sInput
    - psField
    argTypes:
    - std::string_view
    - OGRField*
    constantsTouched: []
    func_position:
      end: 987
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 987
    functionName: ParseDateTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 3
    functionsReached:
    - OGRParseDateTimeYYYYMMDDTHHMMSSZ
    - OGRParseDateTimeYYYYMMDDTHHMMSSsssZ
    linkageType: ''
    returnType: bool
    signature: bool ParseDateTime(std::string_view sInput, OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:998,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:999,1
    - Dst: OGRFlatGeobufLayer::readIndex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1003,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1010,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1014,1
    - Dst: OGRFlatGeobufLayer::parseFeature
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1015,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1017,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1022,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1022,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1024,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1031,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1031,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1033,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1033,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1034,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 1036
    functionName: OGRFlatGeobufLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFlatGeobufLayer::readIndex
    - CPLDebugOnly
    - static_cast<long unsigned int>
    - VSIFEofL
    - auto::release
    - Evaluate
    - FilterGeometry
    - auto::get
    - CPLDebug
    - VSIFErrorL
    - auto::GetGeometryRef
    - CPLError
    - OGRFlatGeobufLayer::parseFeature
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRFlatGeobufLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1042,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1043,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1045,1
    - Dst: VSIMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1045,1
    - Dst: CPLErrorMemoryAllocation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1047,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1054,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1055,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1058,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1058,1
    - Dst: CPLErrorMemoryAllocation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - featureSize
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1065
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1065
    functionName: OGRFlatGeobufLayer::ensureFeatureBuf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebugOnly
    - CPLErrorMemoryAllocation
    - VSIMalloc
    - max
    - static_cast<GByte *>
    - VSIRealloc
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFlatGeobufLayer::ensureFeatureBuf(uint32_t featureSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1082,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1090,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1092,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1094,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1097,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1099,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1101,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1103,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1110,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1115,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1115,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1122,1
    - Dst: OGRFlatGeobufLayer::ensureFeatureBuf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1126,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1129,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1130,1
    - Dst: VerifyFeatureBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1136,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1139,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1140,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1141,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1142,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1143,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1144,1
    - Dst: GetRoot<Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1149,1
    - Dst: auto::geometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1150,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1151,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1155,1
    - Dst: GeometryReader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1160,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1170,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1171,1
    - Dst: auto::properties
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1174,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1177,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1178,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1188,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1192,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1194,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1200,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1203,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1206,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1208,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1212,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1213,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1214,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1215,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1218,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1227,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1237,1
    - Dst: reinterpret_cast<const signed char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1241,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1249,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1253,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1261,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1265,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1266,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1274,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1278,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1279,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1287,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1290,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1292,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1299,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1303,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1304,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1312,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1315,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1317,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1324,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1328,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1329,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1330,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1337,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1341,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1342,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1350,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1353,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1354,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1363,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1365,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1366,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1369,1
    - Dst: CPLErrorMemoryAllocation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1375,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1376,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1387,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1389,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1390,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1393,1
    - Dst: ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1396,1
    - Dst: std::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1397,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1397,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1403,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1405,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1407,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1418,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1420,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1421,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1423,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1425,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1428,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1429,1
    - Dst: CPLErrorMemoryAllocation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1431,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1432,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1433,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 242
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1443
    functionName: OGRFlatGeobufLayer::parseFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - CPLErrorInvalidPointer
    - CPLErrorIO
    - OGRGeometry*::assignSpatialReference
    - GetRoot<Feature>
    - OGR_RawField_SetUnset
    - ParseDateTime
    - static_cast<uint32_t>
    - reinterpret_cast<const unsigned char *>
    - CPLError
    - std::string_view
    - auto::size
    - CPLErrorInvalidSize
    - IsGeometryIgnored
    - static_cast<long unsigned int>
    - VSIFEofL
    - OGRFeature*::GetRawFieldRef
    - auto::type
    - columns
    - OGRFeature*::SetGeometryDirectly
    - GeometryReader
    - CPL_LSBPTR16
    - auto::properties
    - c_str
    - reinterpret_cast<const signed char *>
    - reinterpret_cast<const char *>
    - CPL_LSBPTR64
    - CPLErrorMemoryAllocation
    - VSI_MALLOC_VERBOSE
    - static_cast<int>
    - OGRFlatGeobufLayer::ensureFeatureBuf
    - VSIFSeekL
    - auto::Get
    - VSIFReadL
    - static_cast<GByte *>
    - OGRFeature*::GetFieldDefnRef
    - static_cast<double>
    - CPLDebugOnly
    - auto::data
    - VSIStatL
    - auto::geometry
    - VerifyFeatureBuffer
    - OGR_RawField_IsUnset
    - memcpy
    - CPL_LSBPTR32
    - OGRFeature*::SetFID
    - OGRParseDate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFlatGeobufLayer::parseFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_anQueriedFIDs::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1452,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1453,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1454,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1456,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1461,1
    - Dst: OGRFlatGeobufLayer::readIndex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1471,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1486,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1493,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1507,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1508,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1532,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1537,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1539,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1541,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1544,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1552,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1559,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1559,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1566,1
    - Dst: OGRFlatGeobufLayer::ensureFeatureBuf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1571,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1574,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1576,1
    - Dst: VerifyFeatureBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1587,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1589,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1590,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1591,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1592,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1593,1
    - Dst: GetRoot<Feature>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1598,1
    - Dst: auto::geometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1599,1
    - Dst: auto::properties
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1600,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1601,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1605,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1606,1
    - Dst: GeometryReader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1607,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1610,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1615,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1615,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1624,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1625,1
    - Dst: OGRArrowArrayHelper::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1635,1
    - Dst: auto::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1641,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1644,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1645,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1649,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1650,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1657,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1665,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1669,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1672,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1675,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1680,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1686,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1687,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1698,1
    - Dst: OGRArrowArrayHelper::SetBoolOn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1705,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1714,1
    - Dst: OGRArrowArrayHelper::SetInt8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1719,1
    - Dst: reinterpret_cast<const int8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1720,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1729,1
    - Dst: OGRArrowArrayHelper::SetUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1734,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1735,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1744,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1750,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1751,1
    - Dst: OGRArrowArrayHelper::SetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1752,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1760,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1766,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1767,1
    - Dst: OGRArrowArrayHelper::SetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1768,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1776,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1782,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1783,1
    - Dst: OGRArrowArrayHelper::SetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1784,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1792,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1798,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1799,1
    - Dst: OGRArrowArrayHelper::SetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1800,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1808,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1814,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1815,1
    - Dst: OGRArrowArrayHelper::SetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1816,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1824,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1830,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1831,1
    - Dst: OGRArrowArrayHelper::SetDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1832,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1833,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1841,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1847,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1848,1
    - Dst: OGRArrowArrayHelper::SetFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1849,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1857,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1863,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1864,1
    - Dst: OGRArrowArrayHelper::SetDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1865,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1876,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1880,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1881,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1885,1
    - Dst: ParseDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1891,1
    - Dst: std::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1892,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1893,1
    - Dst: OGRArrowArrayHelper::SetDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1898,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1905,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1907,1
    - Dst: OGRArrowArrayHelper::SetDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1909,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1930,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1934,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1935,1
    - Dst: CPLErrorInvalidSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1939,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1946,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1947,1
    - Dst: OGRArrowArrayHelper::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1957,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1964,1
    - Dst: OGRArrowArrayHelper::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1981,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1990,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1990,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:1992,1
    - Dst: OGRArrowArrayHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2003,1
    - Dst: struct ArrowArrayStream*::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2008,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2009,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2010,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2014,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2017,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2018,1
    - Dst: PostFilterArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2020,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2020,1
    - Dst: struct ArrowSchema::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2021,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2028,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2029,1
    - Dst: OGRArrowArrayHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2040,1
    CyclomaticComplexity: 147
    EdgeCount: 147
    ICount: 394
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 2042
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 2042
    functionName: OGRFlatGeobufLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFlatGeobufLayer::readIndex
    - CPLErrorIO
    - CPLErrorInvalidPointer
    - struct ArrowSchema::release
    - GetRoot<Feature>
    - std::unique_ptr<OGRGeometry>
    - memcpy
    - OGRArrowArrayHelper::SetBoolOn
    - OGRArrowArrayHelper::SetInt64
    - auto::get
    - OGRArrowArrayHelper::SetNull
    - CPLDebug
    - ParseDateTime
    - OGRArrowArrayHelper::GetPtrForStringOrBinary
    - struct ArrowArray*::release
    - std::string_view
    - CPLError
    - std::vector::clear
    - auto::size
    - CPLGetConfigOption
    - OGRArrowArrayHelper::SetInt16
    - OGRArrowArrayHelper::SetDouble
    - CPLStringList::CPLStringList
    - OGRArrowArrayHelper::SetDateTime
    - CPLStringList::List
    - CPLErrorInvalidSize
    - IsGeometryIgnored
    - static_cast<long unsigned int>
    - VSIFEofL
    - reinterpret_cast<const int8_t *>
    - auto::type
    - columns
    - const_cast<void *>
    - GeometryReader
    - PostFilterArrowArray
    - CPL_LSBPTR16
    - auto::properties
    - CPLTestBool
    - c_str
    - reinterpret_cast<const char *>
    - CPL_LSBPTR64
    - OGRArrowArrayHelper::SetFloat
    - OGRArrowArrayHelper::Shrink
    - OGRFlatGeobufLayer::ensureFeatureBuf
    - VSIFSeekL
    - FilterGeometry
    - auto::Get
    - CPLSPrintf
    - OGRArrowArrayHelper::ClearArray
    - m_anQueriedFIDs::empty
    - static_cast<int32_t *>
    - CPLAssert
    - VSIFReadL
    - CPLStringList::SetNameValue
    - std::vector::resize
    - static_cast<double>
    - reinterpret_cast<const uint8_t *>
    - CPLDebugOnly
    - struct ArrowArrayStream*::get_schema
    - auto::exportToWkb
    - VSIStatL
    - auto::data
    - OGRArrowArrayHelper::SetInt8
    - auto::geometry
    - OGRArrowArrayHelper::SetUInt8
    - memset
    - VSIFErrorL
    - OGRArrowArrayHelper::SetInt32
    - VerifyFeatureBuffer
    - OGRLayer::GetNextArrowArray
    - CPL_LSBPTR32
    - OGRParseDate
    linkageType: ''
    returnType: int
    signature: "int OGRFlatGeobufLayer::GetNextArrowArray(struct ArrowArrayStream
      *stream,\n                                          struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2049,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2051,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2056,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2056,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2058,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 2066
      start: 2044
    functionDepth: 2
    functionLinenumber: 2044
    functionLinenumberEnd: 2066
    functionName: OGRFlatGeobufLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - GetFieldCount
    - AddFieldDefn
    - CPLError
    - OGRFlatGeobufLayer::TestCapability
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFlatGeobufLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                      int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2072,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2077,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2080,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2081,1
    - Dst: FlatBufferBuilder::TrackMinAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2083,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2087,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2088,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2092,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2097,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2097,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2098,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2099,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2101,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2102,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2103,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2111,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2112,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2112,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2113,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2114,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2119,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2120,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2120,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2121,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2122,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2126,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2127,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2127,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2128,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2129,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2136,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2137,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2137,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2138,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2139,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2148,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2149,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2149,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2150,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2151,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2155,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2156,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2156,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2157,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2158,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2170,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2171,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2171,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2172,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2173,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2174,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2175,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2182,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2184,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2188,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2190,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2199,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2200,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2200,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2201,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2202,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2209,1
    - Dst: std::vector::capacity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2209,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2210,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2211,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2213,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2213,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2213,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2214,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2219,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2223,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2224,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2232,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2234,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2239,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2240,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2240,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2241,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2242,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2249,1
    - Dst: std::vector::capacity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2249,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2250,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2251,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2253,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2253,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2253,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2259,1
    - Dst: std::copy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2263,1
    - Dst: std::back_inserter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2264,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2269,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2280,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2287,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2289,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2295,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2297,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2301,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2301,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2302,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2313,1
    - Dst: auto::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2318,1
    - Dst: GeometryWriter::write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2324,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2326,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2327,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2329,1
    - Dst: CreateFeatureDirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2335,1
    - Dst: FlatBufferBuilder::FinishSizePrefixed
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2336,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2341,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2342,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2343,1
    - Dst: CPLErrorInvalidPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2352,1
    - Dst: SupportsSeekWhileWriting
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2355,1
    - Dst: OGRFlatGeobufLayer::writeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2357,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2362,1
    - Dst: OGRFlatGeobufLayer::writeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2366,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2370,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2371,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2375,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2375,1
    - Dst: FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2375,1
    - Dst: CPLErrorIO
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2379,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2383,1
    - Dst: FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2383,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2387,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2387,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2397,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 151
    argCount: 1
    argNames:
    - poNewFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2401
      start: 2068
    functionDepth: 4
    functionLinenumber: 2068
    functionLinenumberEnd: 2401
    functionName: OGRFlatGeobufLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorInvalidPointer
    - OGRFeature*::IsFieldSetAndNotNull
    - CPLErrorIO
    - std::vector::size
    - auto::GetType
    - GeometryWriter::write
    - OGRFlatGeobufLayer::writeHeader
    - static_cast<GByte>
    - std::vector::capacity
    - static_cast<uint32_t>
    - GetFieldDefn
    - CPLError
    - std::vector::clear
    - FlatBufferBuilder::GetSize
    - simple_max
    - static_cast<long unsigned int>
    - OGRFeature*::GetRawFieldRef
    - CPLIsUTF8
    - std::move
    - std::vector::reserve
    - IsInit
    - std::vector::empty
    - FlatBufferBuilder::FinishSizePrefixed
    - emplace_back
    - auto::WkbSize
    - CPL_LSBPTR16
    - static_cast<int>
    - CPL_LSBPTR64
    - std::copy
    - GetFieldCount
    - std::back_inserter
    - SupportsSeekWhileWriting
    - cpl::quiet_NaN
    - auto::getEnvelope
    - OGRFeature*::GetGeometryRef
    - auto::IsEmpty
    - reinterpret_cast<const uint8_t *>
    - CPLDebugOnly
    - OGRGeometryTypeToName
    - CreateFeatureDirect
    - FlatBufferBuilder::TrackMinAlign
    - auto::GetSubType
    - max
    - auto::getGeometryType
    - Merge
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRFlatGeobufLayer::ICreateFeature(OGRFeature *poNewFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2406,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 2412
      start: 2403
    functionDepth: 2
    functionLinenumber: 2403
    functionLinenumberEnd: 2412
    functionName: OGRFlatGeobufLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRFlatGeobufLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                      bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2420,1
    - Dst: index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2426,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2430,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2433,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2434,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2435,1
    - Dst: index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2436,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2439,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2443
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2443
    functionName: OGRFlatGeobufLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - IsInit
    - index_node_size
    linkageType: ''
    returnType: int
    signature: int OGRFlatGeobufLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2447,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2451,1
    - Dst: features_count
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2457
    functionName: OGRFlatGeobufLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebugOnly
    - features_count
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRFlatGeobufLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2462,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2462,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2463,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2463,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2466,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2467,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2467,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2468,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fileName
    - papszOptions
    argTypes:
    - CPLString
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2472
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2472
    functionName: OGRFlatGeobufLayer::GetTempFilePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - CPLString::c_str
    - STARTS_WITH
    - CPLFormFilenameSafe
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRFlatGeobufLayer::GetTempFilePath(const CPLString &fileName,\n
      \                                               CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2483,1
    - Dst: OGRFlatGeobufLayer::GetTempFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2485,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2486,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2486,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2490,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2490,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2494,1
    - Dst: SupportsSeekWhileWriting
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2496,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2497,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2499,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2504,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2505,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - osFilename
    - papszOptions
    - isTemp
    argTypes:
    - CPLString
    - CSLConstList
    - bool
    constantsTouched: []
    func_position:
      end: 2509
      start: 2474
    functionDepth: 2
    functionLinenumber: 2474
    functionLinenumberEnd: 2509
    functionName: OGRFlatGeobufLayer::CreateOutputFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - OGRFlatGeobufLayer::GetTempFilePath
    - CPLDebug
    - SupportsSeekWhileWriting
    - VSIFOpenL
    - CPLString::c_str
    - CPLError
    - std::string::c_str
    - VSIStrerror
    linkageType: ''
    returnType: VSILFILE
    signature: "VSILFILE *OGRFlatGeobufLayer::CreateOutputFile(const CPLString &osFilename,\n
      \                                              CSLConstList papszOptions,\n
      \                                              bool isTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufLayer::GetTempFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2516,1
    - Dst: OGRFlatGeobufLayer::CreateOutputFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2518,1
    - Dst: OGRFlatGeobufLayer::OGRFlatGeobufLayer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - poDS
    - pszLayerName
    - pszFilename
    - poSpatialRef
    - eGType
    - bCreateSpatialIndexAtClose
    - papszOptions
    argTypes:
    - GDALDataset*
    - char*
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2525
      start: 2511
    functionDepth: 3
    functionLinenumber: 2511
    functionLinenumberEnd: 2525
    functionName: OGRFlatGeobufLayer::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFlatGeobufLayer::CreateOutputFile
    - OGRFlatGeobufLayer::GetTempFilePath
    - OGRFlatGeobufLayer::OGRFlatGeobufLayer
    linkageType: ''
    returnType: OGRFlatGeobufLayer
    signature: "OGRFlatGeobufLayer *OGRFlatGeobufLayer::Create(\n    GDALDataset *poDS,
      const char *pszLayerName, const char *pszFilename,\n    const OGRSpatialReference
      *poSpatialRef, OGRwkbGeometryType eGType,\n    bool bCreateSpatialIndexAtClose,
      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFlatGeobufLayer::OGRFlatGeobufLayer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - poHeader
    - headerBuf
    - pszFilename
    - poFp
    - offset
    argTypes:
    - Header*
    - GByte*
    - char*
    - VSILFILE*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2535
      start: 2527
    functionDepth: 2
    functionLinenumber: 2527
    functionLinenumberEnd: 2535
    functionName: OGRFlatGeobufLayer::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFlatGeobufLayer::OGRFlatGeobufLayer
    linkageType: ''
    returnType: OGRFlatGeobufLayer
    signature: "OGRFlatGeobufLayer *OGRFlatGeobufLayer::Open(const Header *poHeader,\n
      \                                            GByte *headerBuf,\n                                             const
      char *pszFilename,\n                                             VSILFILE *poFp,
      uint64_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2541,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2542,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2543,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2545,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2549,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2551,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2554,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2555,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2566,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2570,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2570,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2572,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2577,1
    - Dst: VerifyHeaderBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2581,1
    - Dst: GetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2586,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2586,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2588,1
    - Dst: auto::features_count
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2591,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2594,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2594,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2594,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2595,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2597,1
    - Dst: auto::index_node_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2601,1
    - Dst: FlatGeobuf::PackedRTree::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2606,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2607,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2608,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2610,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2611,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2615,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2616,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2621,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2622,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2624,1
    - Dst: OGRFlatGeobufLayer::Open
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2625,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2625,1
    - Dst: auto::VerifyBuffers
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp:2627,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - pszFilename
    - fp
    - bVerifyBuffers
    argTypes:
    - char*
    - VSILFILE*
    - bool
    constantsTouched: []
    func_position:
      end: 2630
      start: 2537
    functionDepth: 1
    functionLinenumber: 2537
    functionLinenumberEnd: 2630
    functionName: OGRFlatGeobufLayer::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - auto::features_count
    - simple_max
    - static_cast<long unsigned int>
    - std::unique_ptr::release
    - GetHeader
    - VSIFSeekL
    - static_cast<uint64_t>
    - OGRFlatGeobufLayer::Open
    - FlatGeobuf::PackedRTree::size
    - min
    - auto::index_node_size
    - VSIFReadL
    - VerifyHeaderBuffer
    - what
    - std::unique_ptr::get
    - auto::VerifyBuffers
    - CPLDebugOnly
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRFlatGeobufLayer
    signature: "OGRFlatGeobufLayer *OGRFlatGeobufLayer::Open(const char *pszFilename,\n
      \                                            VSILFILE *fp, bool bVerifyBuffers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2632
    functionDepth: 0
    functionLinenumber: 2632
    functionLinenumberEnd: 2632
    functionName: OGRFlatGeobufBaseLayerInterface::~OGRFlatGeobufBaseLayerInterface()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFlatGeobufBaseLayerInterface::~OGRFlatGeobufBaseLayerInterface()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ogr_flatgeobuf::GeometryWriter::GeometryWriter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - part
    - depth
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: ogr_flatgeobuf::GeometryWriter::writePart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h
    functionUses: 0
    functionsReached:
    - ogr_flatgeobuf::GeometryWriter::GeometryWriter
    linkageType: ''
    returnType: flatbuffers::Offset<FlatGeobuf::Geometry>
    signature: flatbuffers::Offset<FlatGeobuf::Geometry> writePart(const OGRGeometry
      *part, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ogr_flatgeobuf::GeometryWriter::GeometryWriter
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - geometryType
    - depth
    argTypes:
    - OGRGeometry*
    - FlatGeobuf::GeometryType
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: ogr_flatgeobuf::GeometryWriter::writePart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h
    functionUses: 0
    functionsReached:
    - ogr_flatgeobuf::GeometryWriter::GeometryWriter
    linkageType: ''
    returnType: flatbuffers::Offset<FlatGeobuf::Geometry>
    signature: "flatbuffers::Offset<FlatGeobuf::Geometry> writePart(const OGRGeometry
      *part,\n              const FlatGeobuf::GeometryType geometryType, int depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - fbb
    - ogrGeometry
    - geometryType
    - hasZ
    - hasM
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - OGRGeometry*
    - FlatGeobuf::GeometryType
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: ogr_flatgeobuf::GeometryWriter::GeometryWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GeometryWriter(flatbuffers::FlatBufferBuilder &fbb,\n                   const
      OGRGeometry *ogrGeometry,\n                   const FlatGeobuf::GeometryType
      geometryType, const bool hasZ,\n                   const bool hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryWriter::translateOGRwkbGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h:89,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - fbb
    - ogrGeometry
    - hasZ
    - hasM
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - OGRGeometry*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: ogr_flatgeobuf::GeometryWriter::GeometryWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.h
    functionUses: 2
    functionsReached:
    - GeometryWriter::translateOGRwkbGeometryType
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void GeometryWriter(flatbuffers::FlatBufferBuilder &fbb,\n                   const
      OGRGeometry *ogrGeometry, const bool hasZ,\n                   const bool hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:43,1
    - Dst: auto::GetVTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:44,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:46,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:48,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:48,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:64,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:65,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - root
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: flatbuffers::GetBufferStartFromRootPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::ReadScalar
    - reinterpret_cast<uintptr_t>
    - auto::GetVTable
    - FLATBUFFERS_ASSERT
    - reinterpret_cast<const Table *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetBufferStartFromRootPointer(const void *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: flatbuffers::GetPrefixedSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached:
    - flatbuffers::ReadScalar
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t GetPrefixedSize(const uint8_t *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:109,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - T*
    - typename T::FlatBuffersVTableOffset
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: flatbuffers::IsFieldPresent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Table *>
    - static_cast<voffset_t>
    linkageType: ''
    returnType: bool
    signature: bool IsFieldPresent(const T *table, typename T::FlatBuffersVTableOffset
      field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:118,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - names
    - name
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: flatbuffers::LookupEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached:
    - strcmp
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int LookupEnum(const char **names, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: flatbuffers::ElementaryTypeNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * const *ElementaryTypeNames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:230,1
    - Dst: FLATBUFFERS_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:231,1
    - Dst: FLATBUFFERS_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: flatbuffers::flatbuffers_version_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffers.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_STRING
    linkageType: ''
    returnType: char
    signature: char *flatbuffers_version_string()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: flatbuffers::IsScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsScalar (BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: flatbuffers::IsInteger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInteger(BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: flatbuffers::IsFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat  (BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: flatbuffers::IsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLong   (BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: flatbuffers::IsBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBool   (BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: flatbuffers::IsOneByte
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsOneByte(BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: flatbuffers::IsUnsigned
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnsigned(BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: flatbuffers::SizeOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SizeOf(BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: flatbuffers::Type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Type(BaseType _base_type = BASE_TYPE_NONE, StructDef *_sd = nullptr,\n
      \               EnumDef *_ed = nullptr, uint16_t _fixed_length = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: operator==(const Type &o)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Type &o)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: flatbuffers::VectorType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Type
    linkageType: ''
    returnType: Type
    signature: Type VectorType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:192,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: flatbuffers::Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - static_cast<voffset_t>
    linkageType: ''
    returnType: void
    signature: void Value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:203,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: ~SymbolTable()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void ~SymbolTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:207,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:208,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - e
    argTypes:
    - std::string
    - T*
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: flatbuffers::SymbolTable::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - end
    - find
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool Add(const std::string &name, T *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:215,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:216,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:218,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - oldname
    - newname
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: flatbuffers::SymbolTable::Move
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - end
    - find
    - erase
    linkageType: ''
    returnType: void
    signature: void Move(const std::string &oldname, const std::string &newname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:226,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: flatbuffers::SymbolTable::Lookup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: T
    signature: T *Lookup(const std::string &name) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: flatbuffers::Namespace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Namespace()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Namespace::components::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:256,1
    - Dst: Namespace::components::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Namespace
    - Namespace
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: operator<(const Namespace &a, const Namespace &b)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - Namespace::components::size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Namespace &a, const Namespace &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: flatbuffers::Definition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Definition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: flatbuffers::FieldDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FieldDef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:307,1
    - Dst: flatbuffers::IsOptional
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: flatbuffers::IsScalarOptional
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsOptional
    - flatbuffers::IsScalar
    linkageType: ''
    returnType: bool
    signature: bool IsScalarOptional() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: flatbuffers::IsOptional
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsOptional() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: flatbuffers::IsRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsRequired() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: flatbuffers::IsDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDefault() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - optional
    - required
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: flatbuffers::MakeFieldPresence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: Presence
    signature: Presence MakeFieldPresence(bool optional, bool required)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: flatbuffers::StructDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StructDef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::PaddingBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:356,1
    - Dst: vec::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:358,1
    - Dst: vec::back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - min_align
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: flatbuffers::PadLastField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - vec::size
    - flatbuffers::PaddingBytes
    - vec::back
    linkageType: ''
    returnType: void
    signature: void PadLastField(size_t min_align)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    functionName: flatbuffers::GetAsUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GetAsUInt64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: flatbuffers::GetAsInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetAsInt64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: flatbuffers::IsZero
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsZero() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsZero
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: flatbuffers::IsNonZero
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsZero
    linkageType: ''
    returnType: bool
    signature: bool IsNonZero() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _name
    - _val
    argTypes:
    - std::string
    - int64_t
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: flatbuffers::EnumVal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumVal(const std::string &_name, int64_t _val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: flatbuffers::EnumVal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumVal()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    functionName: flatbuffers::EnumDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumDef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Distance
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:425,1
    - Dst: MinValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:425,1
    - Dst: MaxValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: flatbuffers::Distance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached:
    - MinValue
    - flatbuffers::Distance
    - MaxValue
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Distance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:432,1
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:432,1
    - Dst: EnumVal::GetAsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:432,1
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:433,1
    - Dst: EnumVal::GetAsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - EnumVal
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: flatbuffers::ToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    - EnumVal::GetAsUInt64
    - flatbuffers::IsUInt64
    - EnumVal::GetAsInt64
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const EnumVal &ev) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vec::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: flatbuffers::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - vec::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: '&Vals() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<EnumVal *>
    signature: std::vector<EnumVal *> &Vals() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Lookup
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enum_name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: flatbuffers::Lookup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Lookup
    linkageType: ''
    returnType: EnumVal
    signature: EnumVal *Lookup(const std::string &enum_name) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: flatbuffers::IsUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: flatbuffers::IsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsString(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 465
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: flatbuffers::IsStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsStruct(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: flatbuffers::IsUnion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnion(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsUnion
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:472,1
    - Dst: flatbuffers::IsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: flatbuffers::IsUnionType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsInteger
    - flatbuffers::IsUnion
    linkageType: ''
    returnType: bool
    signature: bool IsUnionType(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: flatbuffers::IsVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsVector(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: flatbuffers::IsArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsArray(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:484,1
    - Dst: flatbuffers::IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: flatbuffers::IsSeries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsArray
    - flatbuffers::IsVector
    linkageType: ''
    returnType: bool
    signature: bool IsSeries(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: flatbuffers::IsEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsInteger
    linkageType: ''
    returnType: bool
    signature: bool IsEnum(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsStruct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:492,1
    - Dst: flatbuffers::IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:494,1
    - Dst: flatbuffers::InlineSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:495,1
    - Dst: Type::VectorType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:495,1
    - Dst: flatbuffers::SizeOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: flatbuffers::InlineSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached:
    - flatbuffers::SizeOf
    - Type::VectorType
    - flatbuffers::InlineSize
    - flatbuffers::IsArray
    - flatbuffers::IsStruct
    linkageType: ''
    returnType: size_t
    signature: size_t InlineSize(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsStruct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:500,1
    - Dst: flatbuffers::IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:502,1
    - Dst: flatbuffers::IsStruct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:503,1
    - Dst: Type::VectorType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:503,1
    - Dst: flatbuffers::SizeOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:504,1
    - Dst: flatbuffers::SizeOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: flatbuffers::InlineAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsArray
    - flatbuffers::SizeOf
    - Type::VectorType
    - flatbuffers::IsStruct
    linkageType: ''
    returnType: size_t
    signature: size_t InlineAlignment(const Type &type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - EnumVal
    - EnumVal
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: operator==(const EnumVal &lhs, const EnumVal &rhs)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const EnumVal &lhs, const EnumVal &rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - EnumVal
    - EnumVal
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: operator!=(const EnumVal &lhs, const EnumVal &rhs)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EnumVal &lhs, const EnumVal &rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Type
    - Type
    constantsTouched: []
    func_position:
      end: 521
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 521
    functionName: flatbuffers::EqualByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EqualByName(const Type &a, const Type &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 711
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 711
    functionName: flatbuffers::IDLOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IDLOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: flatbuffers::ParserState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::MarkNewLine
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: flatbuffers::ResetState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - flatbuffers::MarkNewLine
    linkageType: ''
    returnType: void
    signature: void ResetState(const char *source)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: flatbuffers::MarkNewLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MarkNewLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:736,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: flatbuffers::CursorPosition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - static_cast<int64_t>
    linkageType: ''
    returnType: int64_t
    signature: int64_t CursorPosition() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - error
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: flatbuffers::CheckedError::CheckedError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CheckedError(bool error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - CheckedError
    constantsTouched: []
    func_position:
      end: 770
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 770
    functionName: '&operator=(const CheckedError &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CheckedError
    signature: CheckedError &operator=(const CheckedError &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - CheckedError
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: flatbuffers::CheckedError::CheckedError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CheckedError(const CheckedError &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    functionName: ~CheckedError()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: void
    signature: void ~CheckedError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: flatbuffers::CheckedError::Check
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IDLOptions
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:801,1
    - Dst: ForceDefaults
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:813,1
    - Dst: Namespace::Namespace
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:815,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 843
    functionName: flatbuffers::Parser::Parser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - Namespace::Namespace
    - IDLOptions
    - ForceDefaults
    - push_back
    linkageType: ''
    returnType: void
    signature: void Parser(const IDLOptions &options = IDLOptions())
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:846,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 849
    functionName: ~Parser()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void ~Parser()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: flatbuffers::FlatCompiler::InitParams
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitParams()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - InitParams
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: flatbuffers::FlatCompiler::FlatCompiler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FlatCompiler(const InitParams &params)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: flexbuffers::IsInline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInline(Type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: flexbuffers::IsTypedVectorElementType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTypedVectorElementType(Type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: flexbuffers::IsTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTypedVector(Type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: flexbuffers::IsFixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFixedTypedVector(Type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:104,1
    - Dst: flexbuffers::IsTypedVectorElementType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:104,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:106,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:107,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:108,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:109,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: flexbuffers::ToTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - flexbuffers::IsTypedVectorElementType
    - static_cast<Type>
    linkageType: ''
    returnType: Type
    signature: Type ToTypedVector(Type t, size_t fixed_len = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:115,1
    - Dst: flexbuffers::IsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:115,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - Type
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: flexbuffers::ToTypedVectorElementType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::IsTypedVector
    - FLATBUFFERS_ASSERT
    - static_cast<Type>
    linkageType: ''
    returnType: Type
    signature: Type ToTypedVectorElementType(Type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:120,1
    - Dst: flexbuffers::IsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:122,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - len
    argTypes:
    - Type
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: flexbuffers::ToFixedTypedVectorElementType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::IsFixedTypedVector
    - FLATBUFFERS_ASSERT
    - static_cast<Type>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Type
    signature: Type ToFixedTypedVectorElementType(Type t, uint8_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<R>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:141,1
    - Dst: flatbuffers::ReadScalar<T1>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:141,1
    - Dst: static_cast<R>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:142,1
    - Dst: flatbuffers::ReadScalar<T2>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:142,1
    - Dst: static_cast<R>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:144,1
    - Dst: flatbuffers::ReadScalar<T4>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:144,1
    - Dst: static_cast<R>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:145,1
    - Dst: flatbuffers::ReadScalar<T8>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: flexbuffers::ReadSizedScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<R>
    - flatbuffers::ReadScalar<T8>
    - flatbuffers::ReadScalar<T1>
    - flatbuffers::ReadScalar<T2>
    - flatbuffers::ReadScalar<T4>
    linkageType: ''
    returnType: R
    signature: R ReadSizedScalar(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::ReadSizedScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: flexbuffers::ReadInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::ReadSizedScalar
    linkageType: ''
    returnType: int64_t
    signature: int64_t ReadInt64(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __movsb
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:164,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:164,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:165,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:166,1
    - Dst: flexbuffers::ReadSizedScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: flexbuffers::ReadUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - reinterpret_cast<uint8_t *>
    - flatbuffers::EndianScalar
    - flexbuffers::ReadSizedScalar
    - __movsb
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ReadUInt64(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::ReadSizedScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: flexbuffers::ReadDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::ReadSizedScalar
    linkageType: ''
    returnType: double
    signature: double ReadDouble(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: flexbuffers::Indirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::ReadUInt64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Indirect(const uint8_t *offset, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::ReadScalar<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: flexbuffers::Indirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flatbuffers::ReadScalar<T>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Indirect(const uint8_t *offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_GET_FIELD_BIT_WIDTH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:192,1
    - Dst: FLATBUFFERS_GET_FIELD_BIT_WIDTH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:193,1
    - Dst: FLATBUFFERS_GET_FIELD_BIT_WIDTH
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: flexbuffers::WidthU
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_GET_FIELD_BIT_WIDTH
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth WidthU(uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:200,1
    - Dst: flexbuffers::WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: flexbuffers::WidthI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::WidthU
    - static_cast<uint64_t>
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth WidthI(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:205,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: flexbuffers::WidthF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - static_cast<float>
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth WidthF(double f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: flexbuffers::Object::Object
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Object(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Sized::read_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: flexbuffers::Sized::Sized
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Sized::read_size
    linkageType: ''
    returnType: void
    signature: void Sized(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - byte_width
    - sz
    argTypes:
    - uint8_t*
    - uint8_t
    - size_t
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: flexbuffers::Sized::Sized
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sized(const uint8_t *data, uint8_t byte_width, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: flexbuffers::Sized::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:233,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: flexbuffers::Sized::read_size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - ReadUInt64
    linkageType: ''
    returnType: size_t
    signature: size_t read_size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: flexbuffers::String::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - byte_width
    - sz
    argTypes:
    - uint8_t*
    - uint8_t
    - size_t
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: flexbuffers::String::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(const uint8_t *data, uint8_t byte_width, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: flexbuffers::String::length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t length() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: flexbuffers::String::c_str
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: char
    signature: char *c_str() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:250,1
    - Dst: flexbuffers::String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:250,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: flexbuffers::String::str
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - flexbuffers::String::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:254,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: flexbuffers::String::EmptyString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flexbuffers::String::String
    linkageType: ''
    returnType: String
    signature: String EmptyString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String::EmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: flexbuffers::String::IsTheEmptyString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::String::EmptyString
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data_buf
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: flexbuffers::Blob::Blob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blob(const uint8_t *data_buf, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Blob::Blob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: flexbuffers::Blob::EmptyBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Blob::Blob
    linkageType: ''
    returnType: Blob
    signature: Blob EmptyBlob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Blob::EmptyBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: flexbuffers::Blob::IsTheEmptyBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Blob::EmptyBlob
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyBlob() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: flexbuffers::Blob::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: flexbuffers::Vector::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Vector(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Vector::Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: flexbuffers::Vector::EmptyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Vector::Vector
    linkageType: ''
    returnType: Vector
    signature: Vector EmptyVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Vector::EmptyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: flexbuffers::Vector::IsTheEmptyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Vector::EmptyVector
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - byte_width
    - element_type
    argTypes:
    - uint8_t*
    - uint8_t
    - Type
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: flexbuffers::TypedVector::TypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypedVector(const uint8_t *data, uint8_t byte_width, Type element_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::TypedVector::TypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: flexbuffers::TypedVector::EmptyTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::TypedVector::TypedVector
    linkageType: ''
    returnType: TypedVector
    signature: TypedVector EmptyTypedVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::TypedVector::EmptyTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: flexbuffers::TypedVector::IsTheEmptyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::TypedVector::EmptyTypedVector
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: flexbuffers::TypedVector::ElementType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type ElementType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - data
    - byte_width
    - element_type
    - len
    argTypes:
    - uint8_t*
    - uint8_t
    - Type
    - uint8_t
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: flexbuffers::FixedTypedVector::FixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FixedTypedVector(const uint8_t *data, uint8_t byte_width, Type
      element_type,\n                   uint8_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::FixedTypedVector::FixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: flexbuffers::FixedTypedVector::EmptyFixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::FixedTypedVector::FixedTypedVector
    linkageType: ''
    returnType: FixedTypedVector
    signature: FixedTypedVector EmptyFixedTypedVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::FixedTypedVector::EmptyFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: flexbuffers::FixedTypedVector::IsTheEmptyFixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::FixedTypedVector::EmptyFixedTypedVector
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyFixedTypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: flexbuffers::FixedTypedVector::ElementType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type ElementType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    functionName: flexbuffers::FixedTypedVector::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: flexbuffers::Map::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Map(const uint8_t *data, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 341
    functionName: flexbuffers::Map::Values
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Vector
    linkageType: ''
    returnType: Vector
    signature: Vector Values() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:346,1
    - Dst: Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:346,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:347,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: flexbuffers::Map::Keys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Indirect
    - ReadUInt64
    - TypedVector
    - static_cast<uint8_t>
    linkageType: ''
    returnType: TypedVector
    signature: TypedVector Keys() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Map::Map
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: flexbuffers::Map::EmptyMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Map::Map
    linkageType: ''
    returnType: Map
    signature: Map EmptyMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Map::EmptyMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: flexbuffers::Map::IsTheEmptyMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Map::EmptyMap
    linkageType: ''
    returnType: bool
    signature: bool IsTheEmptyMap() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:365,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - v
    - keys_quoted
    argTypes:
    - std::string
    - T
    - bool
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: flexbuffers::AppendToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - T::size
    - ToString
    linkageType: ''
    returnType: void
    signature: void AppendToString(std::string &s, T &&v, bool keys_quoted)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: flexbuffers::Reference::Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reference()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - data
    - parent_width
    - byte_width
    - type
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t
    - Type
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: flexbuffers::Reference::Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Reference(const uint8_t *data, uint8_t parent_width, uint8_t
      byte_width,\n            Type type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BitWidth>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:386,1
    - Dst: static_cast<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - parent_width
    - packed_type
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: flexbuffers::Reference::Reference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<BitWidth>
    - static_cast<Type>
    linkageType: ''
    returnType: void
    signature: void Reference(const uint8_t *data, uint8_t parent_width, uint8_t packed_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: flexbuffers::Reference::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: flexbuffers::Reference::IsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: flexbuffers::Reference::IsBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: flexbuffers::Reference::IsInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInt() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: flexbuffers::Reference::IsUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUInt() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::IsInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:398,1
    - Dst: flexbuffers::Reference::IsUInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: flexbuffers::Reference::IsIntOrUint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::IsInt
    - flexbuffers::Reference::IsUInt
    linkageType: ''
    returnType: bool
    signature: bool IsIntOrUint() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: flexbuffers::Reference::IsFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::IsIntOrUint
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:402,1
    - Dst: flexbuffers::Reference::IsFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: flexbuffers::Reference::IsNumeric
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::IsIntOrUint
    - flexbuffers::Reference::IsFloat
    linkageType: ''
    returnType: bool
    signature: bool IsNumeric() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: flexbuffers::Reference::IsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: flexbuffers::Reference::IsKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: flexbuffers::Reference::IsVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: flexbuffers::Reference::IsUntypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUntypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::IsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: flexbuffers::Reference::IsTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::IsTypedVector
    linkageType: ''
    returnType: bool
    signature: bool IsTypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::IsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: flexbuffers::Reference::IsFixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::IsFixedTypedVector
    linkageType: ''
    returnType: bool
    signature: bool IsFixedTypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::IsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:412,1
    - Dst: flexbuffers::Reference::IsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:412,1
    - Dst: flexbuffers::Reference::IsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: flexbuffers::Reference::IsAnyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::IsFixedTypedVector
    - flexbuffers::Reference::IsVector
    - flexbuffers::Reference::IsTypedVector
    linkageType: ''
    returnType: bool
    signature: bool IsAnyVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: flexbuffers::Reference::IsMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsMap() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 415
    functionName: flexbuffers::Reference::IsBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBlob() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:417,1
    - Dst: flexbuffers::Reference::AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: flexbuffers::Reference::AsBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - ReadUInt64
    - flexbuffers::Reference::AsUInt64
    linkageType: ''
    returnType: bool
    signature: bool AsBool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:427,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:430,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:430,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:431,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:432,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:432,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:434,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:434,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:436,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:436,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:436,1
    - Dst: flatbuffers::StringToInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:438,1
    - Dst: flexbuffers::Reference::AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:438,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:439,1
    - Dst: flexbuffers::Reference::AsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:439,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 445
    functionName: flexbuffers::Reference::AsInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - ReadInt64
    - flexbuffers::Reference::AsString
    - flexbuffers::Reference::Indirect
    - ReadDouble
    - flatbuffers::StringToInt
    - flexbuffers::Reference::AsVector
    - ReadUInt64
    - static_cast<int64_t>
    linkageType: ''
    returnType: int64_t
    signature: int64_t AsInt64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:449,1
    - Dst: flexbuffers::Reference::AsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 449
    functionName: flexbuffers::Reference::AsInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::AsInt64
    - static_cast<int32_t>
    linkageType: ''
    returnType: int32_t
    signature: int32_t AsInt32() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:450,1
    - Dst: flexbuffers::Reference::AsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 450
    functionName: flexbuffers::Reference::AsInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - flexbuffers::Reference::AsInt64
    linkageType: ''
    returnType: int16_t
    signature: int16_t AsInt16() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:451,1
    - Dst: flexbuffers::Reference::AsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: flexbuffers::Reference::AsInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<int8_t>
    - flexbuffers::Reference::AsInt64
    linkageType: ''
    returnType: int8_t
    signature: int8_t AsInt8() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:456,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:459,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:459,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:460,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:461,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:461,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:463,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:463,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:465,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:465,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:465,1
    - Dst: flatbuffers::StringToUInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:467,1
    - Dst: flexbuffers::Reference::AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:467,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:468,1
    - Dst: flexbuffers::Reference::AsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:468,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: flexbuffers::Reference::AsUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - ReadInt64
    - flexbuffers::Reference::AsString
    - flexbuffers::Reference::Indirect
    - static_cast<uint64_t>
    - ReadDouble
    - flexbuffers::Reference::AsVector
    - ReadUInt64
    - flatbuffers::StringToUInt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t AsUInt64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:476,1
    - Dst: flexbuffers::Reference::AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 476
    functionName: flexbuffers::Reference::AsUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::AsUInt64
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t AsUInt32() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:477,1
    - Dst: flexbuffers::Reference::AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: flexbuffers::Reference::AsUInt16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::AsUInt64
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t AsUInt16() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:478,1
    - Dst: flexbuffers::Reference::AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: flexbuffers::Reference::AsUInt8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::AsUInt64
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t AsUInt8() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:483,1
    - Dst: ReadDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:486,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:486,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:488,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:488,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:490,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:490,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:492,1
    - Dst: ReadInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:492,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:492,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:494,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:494,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:494,1
    - Dst: flatbuffers::StringToNumber
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:498,1
    - Dst: flexbuffers::Reference::AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:498,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:501,1
    - Dst: flexbuffers::Reference::AsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:501,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:503,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 508
    functionName: flexbuffers::Reference::AsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - ReadInt64
    - flexbuffers::Reference::AsString
    - flexbuffers::Reference::Indirect
    - ReadDouble
    - flexbuffers::Reference::AsVector
    - ReadUInt64
    - flatbuffers::StringToNumber
    linkageType: ''
    returnType: double
    signature: double AsDouble() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:510,1
    - Dst: flexbuffers::Reference::AsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: flexbuffers::Reference::AsFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - flexbuffers::Reference::AsDouble
    linkageType: ''
    returnType: float
    signature: float AsFloat() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:514,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: flexbuffers::Reference::AsKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::Indirect
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: char
    signature: char *AsKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:524,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:524,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:526,1
    - Dst: String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:527,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:528,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:528,1
    - Dst: flexbuffers::String::EmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: flexbuffers::Reference::AsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - String
    - reinterpret_cast<const char *>
    - flexbuffers::Reference::Indirect
    - strlen
    - flexbuffers::String::EmptyString
    linkageType: ''
    returnType: String
    signature: String AsString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: flexbuffers::Reference::ToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Reference::ToString
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:549,1
    - Dst: String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:549,1
    - Dst: String::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:549,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:551,1
    - Dst: String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:551,1
    - Dst: String::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:551,1
    - Dst: flexbuffers::Reference::IsKey
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:553,1
    - Dst: flexbuffers::Reference::AsKey
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:554,1
    - Dst: flatbuffers::EscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:556,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:556,1
    - Dst: flexbuffers::Reference::IsInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:560,1
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:561,1
    - Dst: flexbuffers::Reference::AsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:561,1
    - Dst: flexbuffers::Reference::IsUInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:562,1
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:563,1
    - Dst: flexbuffers::Reference::AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:563,1
    - Dst: flexbuffers::Reference::IsFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:564,1
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:565,1
    - Dst: flexbuffers::Reference::AsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:565,1
    - Dst: flexbuffers::Reference::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:566,1
    - Dst: flexbuffers::Reference::IsBool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:568,1
    - Dst: flexbuffers::Reference::AsBool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:569,1
    - Dst: flexbuffers::Reference::IsMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:570,1
    - Dst: flexbuffers::Reference::AsMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:572,1
    - Dst: auto::Keys
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:573,1
    - Dst: auto::Values
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:574,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:575,1
    - Dst: flatbuffers::is_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:581,1
    - Dst: flatbuffers::is_alnum
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:585,1
    - Dst: flexbuffers::Reference::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:592,1
    - Dst: flexbuffers::Reference::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:594,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:595,1
    - Dst: flexbuffers::Reference::IsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:598,1
    - Dst: AppendToString<Vector>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:599,1
    - Dst: flexbuffers::Reference::AsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:599,1
    - Dst: flexbuffers::Reference::IsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:600,1
    - Dst: AppendToString<TypedVector>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:601,1
    - Dst: flexbuffers::Reference::AsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:601,1
    - Dst: flexbuffers::Reference::IsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:602,1
    - Dst: AppendToString<FixedTypedVector>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:603,1
    - Dst: flexbuffers::Reference::AsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:603,1
    - Dst: flexbuffers::Reference::IsBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:604,1
    - Dst: flexbuffers::Reference::AsBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:605,1
    - Dst: flatbuffers::EscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:606,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:606,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:606,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:607,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - strings_quoted
    - keys_quoted
    - s
    argTypes:
    - bool
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 611
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 611
    functionName: flexbuffers::Reference::ToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Reference::IsUInt
    - flexbuffers::Reference::AsMap
    - flexbuffers::Reference::AsTypedVector
    - flexbuffers::Reference::IsKey
    - AppendToString<TypedVector>
    - std::string::append
    - flexbuffers::Reference::IsVector
    - flexbuffers::Reference::IsTypedVector
    - flexbuffers::Reference::AsBlob
    - flexbuffers::Reference::AsFixedTypedVector
    - auto::size
    - flexbuffers::Reference::AsDouble
    - flexbuffers::Reference::IsNull
    - flexbuffers::Reference::IsFloat
    - flexbuffers::Reference::AsUInt64
    - flexbuffers::Reference::AsKey
    - flatbuffers::is_alnum
    - strlen
    - flexbuffers::Reference::ToString
    - reinterpret_cast<const char *>
    - AppendToString<FixedTypedVector>
    - flexbuffers::Reference::AsBool
    - flatbuffers::is_alpha
    - flexbuffers::Reference::AsInt64
    - flexbuffers::Reference::AsVector
    - String::c_str
    - flexbuffers::Reference::IsBool
    - auto::Keys
    - auto::Values
    - flexbuffers::Reference::IsFixedTypedVector
    - auto::data
    - flexbuffers::Reference::IsInt
    - flatbuffers::NumToString
    - flexbuffers::Reference::IsBlob
    - String::length
    - flatbuffers::EscapeString
    - AppendToString<Vector>
    - flexbuffers::Reference::IsMap
    linkageType: ''
    returnType: void
    signature: void ToString(bool strings_quoted, bool keys_quoted, std::string &s)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Blob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:617,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:617,1
    - Dst: flexbuffers::Blob::EmptyBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: flexbuffers::Reference::AsBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Reference::Indirect
    - flexbuffers::Blob::EmptyBlob
    - Blob
    linkageType: ''
    returnType: Blob
    signature: Blob AsBlob() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:627,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:627,1
    - Dst: flexbuffers::Vector::EmptyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: flexbuffers::Reference::AsVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 4
    functionsReached:
    - flexbuffers::Reference::Indirect
    - flexbuffers::Vector::EmptyVector
    - Vector
    linkageType: ''
    returnType: Vector
    signature: Vector AsVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::IsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:634,1
    - Dst: TypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:636,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:636,1
    - Dst: ToTypedVectorElementType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:636,1
    - Dst: flexbuffers::TypedVector::EmptyTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 650
    functionName: flexbuffers::Reference::AsTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Reference::Indirect
    - flexbuffers::Reference::IsTypedVector
    - flexbuffers::TypedVector::EmptyTypedVector
    - ToTypedVectorElementType
    - TypedVector
    linkageType: ''
    returnType: TypedVector
    signature: TypedVector AsTypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::IsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:653,1
    - Dst: ToFixedTypedVectorElementType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:655,1
    - Dst: FixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:656,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:656,1
    - Dst: flexbuffers::FixedTypedVector::EmptyFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: flexbuffers::Reference::AsFixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Reference::IsFixedTypedVector
    - flexbuffers::FixedTypedVector::EmptyFixedTypedVector
    - flexbuffers::Reference::Indirect
    - ToFixedTypedVectorElementType
    - FixedTypedVector
    linkageType: ''
    returnType: FixedTypedVector
    signature: FixedTypedVector AsFixedTypedVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Map
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:664,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:664,1
    - Dst: flexbuffers::Map::EmptyMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: flexbuffers::Reference::AsMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Map::EmptyMap
    - flexbuffers::Reference::Indirect
    - Map
    linkageType: ''
    returnType: Map
    signature: Map AsMap() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:680,1
    - Dst: WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:680,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:682,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:682,1
    - Dst: WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:682,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:684,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:685,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:685,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:687,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:688,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:688,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 692
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 692
    functionName: flexbuffers::Reference::MutateInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::Indirect
    - WidthU
    - static_cast<uint64_t>
    - WidthI
    - flexbuffers::Reference::Mutate
    linkageType: ''
    returnType: bool
    signature: bool MutateInt(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 696
    functionName: flexbuffers::Reference::MutateBool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::Mutate
    linkageType: ''
    returnType: bool
    signature: bool MutateBool(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:700,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:700,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:702,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:702,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:702,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:704,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:705,1
    - Dst: WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:705,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:707,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:708,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:708,1
    - Dst: WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 712
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 712
    functionName: flexbuffers::Reference::MutateUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - WidthU
    - flexbuffers::Reference::Indirect
    - WidthI
    - flexbuffers::Reference::Mutate
    - static_cast<int64_t>
    linkageType: ''
    returnType: bool
    signature: bool MutateUInt(uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::MutateF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:716,1
    - Dst: flexbuffers::Reference::MutateF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:718,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 722
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 722
    functionName: flexbuffers::Reference::MutateFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Reference::Indirect
    - flexbuffers::Reference::MutateF
    linkageType: ''
    returnType: bool
    signature: bool MutateFloat(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::MutateF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:726,1
    - Dst: WidthF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:726,1
    - Dst: flexbuffers::Reference::MutateF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:728,1
    - Dst: flexbuffers::Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:728,1
    - Dst: WidthF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: flexbuffers::Reference::MutateFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - WidthF
    - flexbuffers::Reference::Indirect
    - flexbuffers::Reference::MutateF
    linkageType: ''
    returnType: bool
    signature: bool MutateFloat(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:735,1
    - Dst: auto::IsTheEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:736,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:739,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:740,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:740,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 742
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 742
    functionName: flexbuffers::Reference::MutateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - auto::length
    - const_cast<char *>
    - flexbuffers::Reference::AsString
    - memcpy
    - auto::IsTheEmptyString
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: bool MutateString(const char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::MutateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:743,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: flexbuffers::Reference::MutateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Reference::MutateString
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool MutateString(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::MutateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:745,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:745,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 746
    functionName: flexbuffers::Reference::MutateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - std::string::length
    - flexbuffers::Reference::MutateString
    - std::string::data
    linkageType: ''
    returnType: bool
    signature: bool MutateString(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 751
    functionName: flexbuffers::Reference::Indirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 14
    functionsReached:
    - flexbuffers::Indirect
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Indirect() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:756,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:756,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:759,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:760,1
    - Dst: const_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dest
    - t
    - byte_width
    - value_width
    argTypes:
    - uint8_t*
    - T
    - size_t
    - BitWidth
    constantsTouched: []
    func_position:
      end: 763
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 763
    functionName: flexbuffers::Reference::Mutate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - static_cast<size_t>
    - memcpy
    - const_cast<uint8_t *>
    - flatbuffers::EndianScalar
    linkageType: ''
    returnType: bool
    signature: "bool Mutate(const uint8_t *dest, T t, size_t byte_width,\n              BitWidth
      value_width)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:769,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:769,1
    - Dst: flexbuffers::Reference::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:771,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:771,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - dest
    - t
    - byte_width
    - value_width
    argTypes:
    - uint8_t*
    - T
    - size_t
    - BitWidth
    constantsTouched: []
    func_position:
      end: 774
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 774
    functionName: flexbuffers::Reference::MutateF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - flexbuffers::Reference::Mutate
    - FLATBUFFERS_ASSERT
    - static_cast<float>
    linkageType: ''
    returnType: bool
    signature: "bool MutateF(const uint8_t *dest, T t, size_t byte_width,\n               BitWidth
      value_width)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsBool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 785
    functionName: Reference::As<bool>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsBool
    linkageType: ''
    returnType: bool
    signature: bool Reference::As<bool>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsInt8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 787
    functionName: Reference::As<int8_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsInt8
    linkageType: ''
    returnType: int8_t
    signature: int8_t Reference::As<int8_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsInt16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 788
    functionName: Reference::As<int16_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsInt16
    linkageType: ''
    returnType: int16_t
    signature: int16_t Reference::As<int16_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsInt32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 789
    functionName: Reference::As<int32_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsInt32
    linkageType: ''
    returnType: int32_t
    signature: int32_t Reference::As<int32_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 790
    functionName: Reference::As<int64_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsInt64
    linkageType: ''
    returnType: int64_t
    signature: int64_t Reference::As<int64_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsUInt8
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    functionName: Reference::As<uint8_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsUInt8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Reference::As<uint8_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsUInt16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 795
    functionName: Reference::As<uint16_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsUInt16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Reference::As<uint16_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsUInt32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Reference::As<uint32_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsUInt32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Reference::As<uint32_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: Reference::As<uint64_t>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsUInt64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Reference::As<uint64_t>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    functionName: Reference::As<double>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsDouble
    linkageType: ''
    returnType: double
    signature: double Reference::As<double>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    functionName: Reference::As<float>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsFloat
    linkageType: ''
    returnType: float
    signature: float Reference::As<float>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 806
    functionName: Reference::As<String>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsString
    linkageType: ''
    returnType: String
    signature: String Reference::As<String>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 809
    functionName: Reference::As<std::string>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsString
    linkageType: ''
    returnType: std::string
    signature: std::string Reference::As<std::string>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 811
    functionName: Reference::As<Blob>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsBlob
    linkageType: ''
    returnType: Blob
    signature: Blob Reference::As<Blob>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 812
    functionName: Reference::As<Vector>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsVector
    linkageType: ''
    returnType: Vector
    signature: Vector Reference::As<Vector>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 815
    functionName: Reference::As<TypedVector>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsTypedVector
    linkageType: ''
    returnType: TypedVector
    signature: TypedVector Reference::As<TypedVector>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsFixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: Reference::As<FixedTypedVector>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsFixedTypedVector
    linkageType: ''
    returnType: FixedTypedVector
    signature: FixedTypedVector Reference::As<FixedTypedVector>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 819
    functionName: Reference::As<Map>() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - AsMap
    linkageType: ''
    returnType: Map
    signature: Map Reference::As<Map>() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit_width
    - type
    argTypes:
    - BitWidth
    - Type
    constantsTouched: []
    func_position:
      end: 823
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 823
    functionName: flexbuffers::PackedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t PackedType(BitWidth bit_width, Type type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::PackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 825
    functionName: flexbuffers::NullPackedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::PackedType
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t NullPackedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:835,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:836,1
    - Dst: NullPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:836,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: Vector::operator[](size_t i) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - NullPackedType
    - Reference
    linkageType: ''
    returnType: Reference
    signature: Reference Vector::operator[](size_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:843,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:844,1
    - Dst: NullPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:844,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: TypedVector::operator[](size_t i) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - NullPackedType
    - Reference
    linkageType: ''
    returnType: Reference
    signature: Reference TypedVector::operator[](size_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:850,1
    - Dst: NullPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:850,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: FixedTypedVector::operator[](size_t i) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - NullPackedType
    - Reference
    linkageType: ''
    returnType: Reference
    signature: Reference FixedTypedVector::operator[](size_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:856,1
    - Dst: flexbuffers::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:857,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:857,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:858,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - elem
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 860
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 860
    functionName: flexbuffers::KeyCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flexbuffers::Indirect
    - strcmp
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: int
    signature: int KeyCompare(const void *key, const void *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Keys
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:863,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:872,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:872,1
    - Dst: std::bsearch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:874,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:874,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:875,1
    - Dst: NullPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:875,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:876,1
    - Dst: static_cast<const Vector *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 878
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 878
    functionName: Map::operator[](const char *key) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - NullPackedType
    - static_cast<const Vector *>
    - std::bsearch
    - Keys
    - Reference
    - FLATBUFFERS_ASSERT
    - auto::size
    linkageType: ''
    returnType: Reference
    signature: Reference Map::operator[](const char *key) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 882
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 882
    functionName: Map::operator[](const std::string &key) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    linkageType: ''
    returnType: Reference
    signature: Reference Map::operator[](const std::string &key) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 892
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 892
    functionName: flexbuffers::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Reference
    linkageType: ''
    returnType: Reference
    signature: Reference GetRoot(const uint8_t *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:895,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:895,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::vector<uint8_t>
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 896
    functionName: flexbuffers::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::GetRoot
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: Reference
    signature: Reference GetRoot(const std::vector<uint8_t> &buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Builder
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 929
    functionName: flexbuffers::FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Builder
    linkageType: ''
    returnType: class Builder
    signature: class Builder FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 932
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 932
    functionName: flexbuffers::Builder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Builder(Builder &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: flexbuffers::GetBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Finished
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> &GetBuffer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 944
    functionName: flexbuffers::GetSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t GetSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:948,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:949,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:953,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: flexbuffers::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:961,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 961
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 961
    functionName: flexbuffers::Null
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Value
    - push_back
    linkageType: ''
    returnType: void
    signature: void Null()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:963,1
    - Dst: flexbuffers::Null
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: flexbuffers::Null
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Null
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Null(const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:967,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:967,1
    - Dst: flexbuffers::WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 967
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 967
    functionName: flexbuffers::Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Value
    - flexbuffers::WidthI
    - push_back
    linkageType: ''
    returnType: void
    signature: void Int(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:969,1
    - Dst: flexbuffers::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - i
    argTypes:
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 971
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 971
    functionName: flexbuffers::Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Int
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Int(const char *key, int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:973,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:973,1
    - Dst: flexbuffers::WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 973
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 973
    functionName: flexbuffers::UInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::WidthU
    - Value
    - push_back
    linkageType: ''
    returnType: void
    signature: void UInt(uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:975,1
    - Dst: flexbuffers::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - u
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: flexbuffers::UInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::UInt
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void UInt(const char *key, uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:979,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 979
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 979
    functionName: flexbuffers::Float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Value
    - push_back
    linkageType: ''
    returnType: void
    signature: void Float(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:981,1
    - Dst: flexbuffers::Float
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - f
    argTypes:
    - char*
    - float
    constantsTouched: []
    func_position:
      end: 983
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 983
    functionName: flexbuffers::Float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Key
    - flexbuffers::Float
    linkageType: ''
    returnType: void
    signature: void Float(const char *key, float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:985,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 985
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 985
    functionName: flexbuffers::Double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Value
    - push_back
    linkageType: ''
    returnType: void
    signature: void Double(double f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:987,1
    - Dst: flexbuffers::Double
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - d
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: flexbuffers::Double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Key
    - flexbuffers::Double
    linkageType: ''
    returnType: void
    signature: void Double(const char *key, double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:991,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 991
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 991
    functionName: flexbuffers::Bool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Value
    - push_back
    linkageType: ''
    returnType: void
    signature: void Bool(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:993,1
    - Dst: flexbuffers::Bool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - b
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: flexbuffers::Bool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Bool
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Bool(const char *key, bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushIndirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:997,1
    - Dst: flexbuffers::WidthI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 997
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 997
    functionName: flexbuffers::IndirectInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::WidthI
    - PushIndirect
    linkageType: ''
    returnType: void
    signature: void IndirectInt(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:999,1
    - Dst: flexbuffers::IndirectInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - i
    argTypes:
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 1001
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1001
    functionName: flexbuffers::IndirectInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::IndirectInt
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void IndirectInt(const char *key, int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushIndirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1004,1
    - Dst: flexbuffers::WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1005
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1005
    functionName: flexbuffers::IndirectUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::WidthU
    - PushIndirect
    linkageType: ''
    returnType: void
    signature: void IndirectUInt(uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1007,1
    - Dst: flexbuffers::IndirectUInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - u
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: flexbuffers::IndirectUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::IndirectUInt
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void IndirectUInt(const char *key, uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushIndirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 1013
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1013
    functionName: flexbuffers::IndirectFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - PushIndirect
    linkageType: ''
    returnType: void
    signature: void IndirectFloat(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1015,1
    - Dst: flexbuffers::IndirectFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - f
    argTypes:
    - char*
    - float
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: flexbuffers::IndirectFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::IndirectFloat
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void IndirectFloat(const char *key, float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushIndirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1020,1
    - Dst: flexbuffers::WidthF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1021
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1021
    functionName: flexbuffers::IndirectDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::WidthF
    - PushIndirect
    linkageType: ''
    returnType: void
    signature: void IndirectDouble(double f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1023,1
    - Dst: flexbuffers::IndirectDouble
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - d
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 1025
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1025
    functionName: flexbuffers::IndirectDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::IndirectDouble
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void IndirectDouble(const char *key, double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1028,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1029,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1031,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1032,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1035,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1038,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1041,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1041,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1043
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1043
    functionName: flexbuffers::Key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 10
    functionsReached:
    - size
    - end
    - insert
    - find
    - Value
    - static_cast<uint64_t>
    - resize
    - push_back
    - WriteBytes
    linkageType: ''
    returnType: size_t
    signature: size_t Key(const char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1045,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1045
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1045
    functionName: flexbuffers::Key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 11
    functionsReached:
    - strlen
    - flexbuffers::Key
    linkageType: ''
    returnType: size_t
    signature: size_t Key(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1046,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1046,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1046
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1046
    functionName: flexbuffers::Key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 12
    functionsReached:
    - std::string::size
    - std::string::c_str
    - flexbuffers::Key
    linkageType: ''
    returnType: size_t
    signature: size_t Key(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1049,1
    - Dst: CreateBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1050,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1053,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1054,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1057,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1059,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1065
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1065
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - end
    - back
    - insert
    - find
    - CreateBlob
    - resize
    linkageType: ''
    returnType: size_t
    signature: size_t String(const char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1066,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1066
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1066
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - strlen
    - flexbuffers::String
    linkageType: ''
    returnType: size_t
    signature: size_t String(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1068,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1068,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - std::string::size
    - std::string::c_str
    - flexbuffers::String
    linkageType: ''
    returnType: size_t
    signature: size_t String(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1071,1
    - Dst: flexbuffers::String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1071,1
    - Dst: flexbuffers::String::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - flexbuffers::String
    constantsTouched: []
    func_position:
      end: 1072
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1072
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - flexbuffers::String::c_str
    - flexbuffers::String
    - flexbuffers::String::length
    linkageType: ''
    returnType: void
    signature: void String(const flexbuffers::String &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1075,1
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 4
    functionsReached:
    - flexbuffers::String
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void String(const char *key, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1079,1
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - char*
    - std::string
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 5
    functionsReached:
    - flexbuffers::String
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void String(const char *key, const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1083,1
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - char*
    - flexbuffers::String
    constantsTouched: []
    func_position:
      end: 1085
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1085
    functionName: flexbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 6
    functionsReached:
    - flexbuffers::String
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void String(const char *key, const flexbuffers::String &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1089
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1089
    functionName: flexbuffers::Blob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - CreateBlob
    linkageType: ''
    returnType: size_t
    signature: size_t Blob(const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateBlob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1091,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1091,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<uint8_t>
    constantsTouched: []
    func_position:
      end: 1092
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1092
    functionName: flexbuffers::Blob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - CreateBlob
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: size_t
    signature: size_t Blob(const std::vector<uint8_t> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1095,1
    - Dst: flexbuffers::Blob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - data
    - len
    argTypes:
    - char*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: flexbuffers::Blob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Blob
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Blob(const char *key, const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1099,1
    - Dst: flexbuffers::Blob
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - v
    argTypes:
    - char*
    - std::vector<uint8_t>
    constantsTouched: []
    func_position:
      end: 1101
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1101
    functionName: flexbuffers::Blob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Blob
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Blob(const char *key, const std::vector<uint8_t> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1107
    functionName: flexbuffers::StartVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t StartVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1109,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1111
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1111
    functionName: flexbuffers::StartVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - flexbuffers::Key
    linkageType: ''
    returnType: size_t
    signature: size_t StartVector(const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1112
    functionName: flexbuffers::StartMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t StartMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1114,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1116
    functionName: flexbuffers::StartMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - flexbuffers::Key
    linkageType: ''
    returnType: size_t
    signature: size_t StartMap(const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1121,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1121,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1123,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1124,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - start
    - typed
    - fixed
    argTypes:
    - size_t
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1126
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1126
    functionName: flexbuffers::EndVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - CreateVector
    - push_back
    - resize
    linkageType: ''
    returnType: size_t
    signature: size_t EndVector(size_t start, bool typed, bool fixed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1131,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1132,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1135,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1136,1
    - Dst: reinterpret_cast<TwoValue *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1153,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1153,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1154,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1156,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1156,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1157,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1157,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1158,1
    - Dst: CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1174,1
    - Dst: CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1175,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1177,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1178,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - start
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1180
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1180
    functionName: flexbuffers::EndMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - reinterpret_cast<TwoValue *>
    - static_cast<size_t>
    - CreateVector
    - reinterpret_cast<const char *>
    - std::sort
    - strcmp
    - FLATBUFFERS_ASSERT
    - push_back
    - resize
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EndMap(size_t start)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: flexbuffers::HasDuplicateKeys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasDuplicateKeys() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1187,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1188,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Vector(F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1192,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1193,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - state
    argTypes:
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1195
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1195
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Vector(F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1197,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1198,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - f
    argTypes:
    - char*
    - F
    constantsTouched: []
    func_position:
      end: 1200
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1200
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Vector(const char *key, F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1203,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1204,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - f
    - state
    argTypes:
    - char*
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1206
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1206
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Vector(const char *key, F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScalarVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1211,1
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1213,1
    - Dst: flexbuffers::Add
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1214,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - elems
    - len
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 1217
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1217
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::StartVector
    - flexbuffers::Add
    - flexbuffers::EndVector
    - ScalarVector
    linkageType: ''
    returnType: void
    signature: void Vector(const T *elems, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1220,1
    - Dst: flexbuffers::Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - elems
    - len
    argTypes:
    - char*
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::Vector
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Vector(const char *key, const T *elems, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1224,1
    - Dst: std::vector<T>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1224,1
    - Dst: std::vector<T>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<T>
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: flexbuffers::Vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Vector
    - std::vector<T>::data
    - std::vector<T>::size
    linkageType: ''
    returnType: void
    signature: void Vector(const std::vector<T> &vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1228,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1229,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 1231
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1231
    functionName: flexbuffers::TypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t TypedVector(F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1233,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1234,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - state
    argTypes:
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: flexbuffers::TypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t TypedVector(F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1238,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1239,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - f
    argTypes:
    - char*
    - F
    constantsTouched: []
    func_position:
      end: 1241
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1241
    functionName: flexbuffers::TypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t TypedVector(const char *key, F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1244,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1245,1
    - Dst: flexbuffers::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - f
    - state
    argTypes:
    - char*
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1247
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1247
    functionName: flexbuffers::TypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::EndVector
    - flexbuffers::StartVector
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t TypedVector(const char *key, F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1252,1
    - Dst: ScalarVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - elems
    - len
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 1256
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1256
    functionName: flexbuffers::FixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - ScalarVector
    linkageType: ''
    returnType: size_t
    signature: size_t FixedTypedVector(const T *elems, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1260,1
    - Dst: flexbuffers::FixedTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - elems
    - len
    argTypes:
    - char*
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 1262
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1262
    functionName: flexbuffers::FixedTypedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::FixedTypedVector
    - flexbuffers::Key
    linkageType: ''
    returnType: size_t
    signature: size_t FixedTypedVector(const char *key, const T *elems, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1265,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1266,1
    - Dst: flexbuffers::EndMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 1268
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1268
    functionName: flexbuffers::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::StartMap
    - flexbuffers::EndMap
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Map(F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1270,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1271,1
    - Dst: flexbuffers::EndMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - state
    argTypes:
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: flexbuffers::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::StartMap
    - flexbuffers::EndMap
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Map(F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1275,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1276,1
    - Dst: flexbuffers::EndMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - f
    argTypes:
    - char*
    - F
    constantsTouched: []
    func_position:
      end: 1278
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1278
    functionName: flexbuffers::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::StartMap
    - flexbuffers::EndMap
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Map(const char *key, F f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1280,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1281,1
    - Dst: flexbuffers::EndMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - f
    - state
    argTypes:
    - char*
    - F
    - T
    constantsTouched: []
    func_position:
      end: 1283
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1283
    functionName: flexbuffers::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::StartMap
    - flexbuffers::EndMap
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t Map(const char *key, F f, T &state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::StartMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1285,1
    - Dst: std::map<std::string, T>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1286,1
    - Dst: std::map<std::string, T>::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1286,1
    - Dst: flexbuffers::Add
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1287,1
    - Dst: auto::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1287,1
    - Dst: flexbuffers::EndMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - map
    argTypes:
    - std::map<std::string, T>
    constantsTouched: []
    func_position:
      end: 1289
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1289
    functionName: flexbuffers::Map
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - std::map<std::string, T>::end
    - flexbuffers::StartMap
    - flexbuffers::Add
    - std::map<std::string, T>::begin
    - auto::first::c_str
    - flexbuffers::EndMap
    linkageType: ''
    returnType: void
    signature: void Map(const std::map<std::string, T> &map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1302
    functionName: flexbuffers::LastValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - back
    linkageType: ''
    returnType: Value
    signature: Value LastValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1303
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1303
    functionName: flexbuffers::ReuseValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void ReuseValue(Value v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1305,1
    - Dst: flexbuffers::ReuseValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - v
    argTypes:
    - char*
    - Value
    constantsTouched: []
    func_position:
      end: 1307
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1307
    functionName: flexbuffers::ReuseValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - flexbuffers::ReuseValue
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void ReuseValue(const char *key, Value v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 1310
      start: 1310
    functionDepth: 3
    functionLinenumber: 1310
    functionLinenumberEnd: 1310
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Int
    linkageType: ''
    returnType: void
    signature: void Add(int8_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 1311
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1311
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Int
    linkageType: ''
    returnType: void
    signature: void Add(int16_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1312
      start: 1312
    functionDepth: 3
    functionLinenumber: 1312
    functionLinenumberEnd: 1312
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Int
    linkageType: ''
    returnType: void
    signature: void Add(int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 1313
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1313
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Int
    linkageType: ''
    returnType: void
    signature: void Add(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1314
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1314
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::UInt
    linkageType: ''
    returnType: void
    signature: void Add(uint8_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1315
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1315
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::UInt
    linkageType: ''
    returnType: void
    signature: void Add(uint16_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1316
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1316
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::UInt
    linkageType: ''
    returnType: void
    signature: void Add(uint32_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1317
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1317
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::UInt
    linkageType: ''
    returnType: void
    signature: void Add(uint64_t u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Float
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 1318
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1318
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Float
    linkageType: ''
    returnType: void
    signature: void Add(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Double
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1319
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1319
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Double
    linkageType: ''
    returnType: void
    signature: void Add(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Bool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1320
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1320
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Bool
    linkageType: ''
    returnType: void
    signature: void Add(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1321
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1321
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::String
    linkageType: ''
    returnType: void
    signature: void Add(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1322
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1322
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::String
    linkageType: ''
    returnType: void
    signature: void Add(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - flexbuffers::String
    constantsTouched: []
    func_position:
      end: 1323
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1323
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::String
    linkageType: ''
    returnType: void
    signature: void Add(const flexbuffers::String &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<T>
    constantsTouched: []
    func_position:
      end: 1325
      start: 1325
    functionDepth: 3
    functionLinenumber: 1325
    functionLinenumberEnd: 1325
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - flexbuffers::Vector
    linkageType: ''
    returnType: void
    signature: void Add(const std::vector<T> &vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1328,1
    - Dst: flexbuffers::Add
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - t
    argTypes:
    - char*
    - T
    constantsTouched: []
    func_position:
      end: 1330
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1330
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - flexbuffers::Add
    - flexbuffers::Key
    linkageType: ''
    returnType: void
    signature: void Add(const char *key, const T &t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Map
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - std::map<std::string, T>
    constantsTouched: []
    func_position:
      end: 1334
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1334
    functionName: flexbuffers::Add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - flexbuffers::Map
    linkageType: ''
    returnType: void
    signature: void Add(const std::map<std::string, T> &map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flexbuffers::Add
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1336
      start: 1336
    functionDepth: 4
    functionLinenumber: 1336
    functionLinenumberEnd: 1336
    functionName: operator+=(const T &t)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - flexbuffers::Add
    linkageType: ''
    returnType: void
    signature: void operator+=(const T &t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1344
    functionName: flexbuffers::ForceMinimumBitWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ForceMinimumBitWidth(BitWidth bw = BIT_WIDTH_8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1351,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1351,1
    - Dst: Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1354,1
    - Dst: ElemWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1354,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1354,1
    - Dst: WriteAny
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1355,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1357,1
    - Dst: StoredPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1357,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: flexbuffers::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - Write
    - WriteAny
    - StoredPackedType
    - Align
    - ElemWidth
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: void
    signature: void Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1375,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1375,1
    - Dst: flatbuffers::PaddingBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1375,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1375,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - BitWidth
    constantsTouched: []
    func_position:
      end: 1378
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1378
    functionName: Align
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - size
    - end
    - static_cast<uint8_t>
    - insert
    - flatbuffers::PaddingBytes
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Align(BitWidth alignment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1381,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1381,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1381,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1383
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1383
    functionName: WriteBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 32
    functionsReached:
    - end
    - reinterpret_cast<const uint8_t *>
    - insert
    linkageType: ''
    returnType: void
    signature: void WriteBytes(const void *val, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1386,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1387,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - val
    - byte_width
    argTypes:
    - T
    - size_t
    constantsTouched: []
    func_position:
      end: 1389
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1389
    functionName: Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 43
    functionsReached:
    - flatbuffers::EndianScalar
    - FLATBUFFERS_ASSERT
    - WriteBytes
    linkageType: ''
    returnType: void
    signature: void Write(T val, size_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1393,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1394,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1394,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - f
    - byte_width
    argTypes:
    - double
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1399
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1399
    functionName: WriteDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 9
    functionsReached:
    - Write
    - FLATBUFFERS_ASSERT
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void WriteDouble(double f, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1402,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1403,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - o
    - byte_width
    argTypes:
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1405
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1405
    functionName: WriteOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - size
    - FLATBUFFERS_ASSERT
    - Write
    linkageType: ''
    returnType: void
    signature: void WriteOffset(uint64_t o, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1408,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1409,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1410,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1411,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1411,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - type
    - bit_width
    argTypes:
    - T
    - Type
    - BitWidth
    constantsTouched: []
    func_position:
      end: 1412
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1412
    functionName: PushIndirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 4
    functionsReached:
    - size
    - Write
    - Value
    - static_cast<uint64_t>
    - Align
    - push_back
    linkageType: ''
    returnType: void
    signature: void PushIndirect(T val, Type type, BitWidth bit_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - byte_width
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    functionName: WidthB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth WidthB(size_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1432
    functionName: GetScalarType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type GetScalarType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1448
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1453
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1453
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Value(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - i
    - t
    - bw
    argTypes:
    - int64_t
    - Type
    - BitWidth
    constantsTouched: []
    func_position:
      end: 1456
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1456
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Value(int64_t i, Type t, BitWidth bw)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - u
    - t
    - bw
    argTypes:
    - uint64_t
    - Type
    - BitWidth
    constantsTouched: []
    func_position:
      end: 1458
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1458
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Value(uint64_t u, Type t, BitWidth bw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 1463
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1463
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void Value(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WidthF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1464
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1464
    functionName: Value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 329
    functionsReached:
    - WidthF
    linkageType: ''
    returnType: void
    signature: void Value(double f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1467,1
    - Dst: StoredWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1468
    functionName: StoredPackedType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - StoredWidth
    - PackedType
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t StoredPackedType(BitWidth parent_bit_width_ = BIT_WIDTH_8)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInline
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1471,1
    - Dst: flatbuffers::PaddingBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1484,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1489,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1490,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1490,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf_size
    - elem_index
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1497
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1497
    functionName: ElemWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - IsInline
    - WidthU
    - FLATBUFFERS_ASSERT
    - flatbuffers::PaddingBytes
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth ElemWidth(size_t buf_size, size_t elem_index) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInline
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1505
    functionName: StoredWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - IsInline
    linkageType: ''
    returnType: BitWidth
    signature: BitWidth StoredWidth(BitWidth parent_bit_width_ = BIT_WIDTH_8) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1521,1
    - Dst: Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1522,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1523,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1524,1
    - Dst: WriteBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1525,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1526,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1526,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - data
    - len
    - trailing
    - type
    argTypes:
    - void*
    - size_t
    - size_t
    - Type
    constantsTouched: []
    func_position:
      end: 1528
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1528
    functionName: CreateBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - Write
    - size
    - WidthU
    - Value
    - Align
    - static_cast<uint64_t>
    - push_back
    - WriteBytes
    linkageType: ''
    returnType: size_t
    signature: size_t CreateBlob(const void *data, size_t len, size_t trailing, Type
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetScalarType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1532,1
    - Dst: WidthB
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1534,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1540,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1540,1
    - Dst: Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1541,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1542,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1543,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1544,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1545,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1545,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1545,1
    - Dst: ToTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - elems
    - len
    - fixed
    argTypes:
    - T*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 1549
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1549
    functionName: ScalarVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 2
    functionsReached:
    - Write
    - size
    - WidthU
    - Value
    - Align
    - static_cast<uint64_t>
    - GetScalarType
    - FLATBUFFERS_ASSERT
    - push_back
    - WidthB
    - ToTypedVector
    linkageType: ''
    returnType: size_t
    signature: size_t ScalarVector(const T *elems, size_t len, bool fixed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1553,1
    - Dst: WidthU
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1557,1
    - Dst: ElemWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1562,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1562,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1567,1
    - Dst: ElemWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1569,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1569,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1577,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1583,1
    - Dst: IsTypedVectorElementType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1583,1
    - Dst: Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1584,1
    - Dst: WriteOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1587,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1588,1
    - Dst: Write
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1590,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1592,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1593,1
    - Dst: WriteAny
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1594,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1598,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1599,1
    - Dst: StoredPackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1599,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1602,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1602,1
    - Dst: ToTypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1604,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - start
    - vec_len
    - step
    - typed
    - fixed
    argTypes:
    - size_t
    - size_t
    - size_t
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1607
      start: 1551
    functionDepth: 2
    functionLinenumber: 1551
    functionLinenumberEnd: 1607
    functionName: CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 5
    functionsReached:
    - size
    - WriteOffset
    - Write
    - WriteAny
    - StoredPackedType
    - WidthU
    - Value
    - Align
    - static_cast<uint64_t>
    - IsTypedVectorElementType
    - ElemWidth
    - FLATBUFFERS_ASSERT
    - push_back
    - ToTypedVector
    linkageType: ''
    returnType: Value
    signature: "Value CreateVector(size_t start, size_t vec_len, size_t step, bool
      typed,\n                     bool fixed, const Value *keys = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::vector<uint8_t>
    constantsTouched: []
    func_position:
      end: 1624
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1624
    functionName: KeyOffsetCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyOffsetCompare(const std::vector<uint8_t> &buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1626,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1626,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1627,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1627,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1629
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1629
    functionName: operator()(size_t a, size_t b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - strcmp
    - reinterpret_cast<const char *>
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator()(size_t a, size_t b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::vector<uint8_t>
    constantsTouched: []
    func_position:
      end: 1636
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1636
    functionName: StringOffsetCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringOffsetCompare(const std::vector<uint8_t> &buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1638,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1639,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - StringOffset
    - StringOffset
    constantsTouched: []
    func_position:
      end: 1642
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1642
    functionName: operator()(const StringOffset &a, const StringOffset &b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - memcmp
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator()(const StringOffset &a, const StringOffset &b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1658,1
    - Dst: size_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1666,1
    - Dst: depth_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1667,1
    - Dst: max_depth_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1668,1
    - Dst: num_vectors_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1669,1
    - Dst: max_vectors_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1670,1
    - Dst: check_alignment_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1671,1
    - Dst: reuse_tracker_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1672,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1673,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1675,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1676,1
    - Dst: PackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1678
    functionName: FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - max_depth_
    - depth_
    - max_vectors_
    - reuse_tracker_
    - num_vectors_
    - size_
    - check_alignment_
    - FLATBUFFERS_ASSERT
    - Verifier
    - resize
    - PackedType
    - clear
    linkageType: ''
    returnType: class Verifier
    signature: class Verifier FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - elem
    - elem_len
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1694
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1694
    functionName: VerifyFrom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyFrom(size_t elem, size_t elem_len) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elem
    - elem_len
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1697
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1697
    functionName: VerifyBefore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyBefore(size_t elem, size_t elem_len) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1700,1
    - Dst: VerifyFrom
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 1702
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1702
    functionName: VerifyFromPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - VerifyFrom
    linkageType: ''
    returnType: bool
    signature: bool VerifyFromPointer(const uint8_t *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1704,1
    - Dst: VerifyBefore
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 1706
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1706
    functionName: VerifyBeforePointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - VerifyBefore
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool VerifyBeforePointer(const uint8_t *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - width
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1710
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1710
    functionName: VerifyByteWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyByteWidth(size_t width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1712
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1712
    functionName: VerifyType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyType(int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1715,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1715,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - 'off'
    - p
    argTypes:
    - uint64_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1717
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1717
    functionName: VerifyOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 5
    functionsReached:
    - static_cast<uint64_t>
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyOffset(uint64_t off, const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1720,1
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 1722
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1722
    functionName: VerifyAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyAlignment(const uint8_t *p, size_t size) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1740,1
    - Dst: FLEX_CHECK_VERIFIED
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1743,1
    - Dst: PackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1744,1
    - Dst: WidthB
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1744,1
    - Dst: VerifyBeforePointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1745,1
    - Dst: Sized
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1746,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1747,1
    - Dst: Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1752,1
    - Dst: VerifyFromPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1755,1
    - Dst: VerifyFromPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1758,1
    - Dst: Vector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1759,1
    - Dst: VerifyRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1761,1
    - Dst: TypedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1763,1
    - Dst: VerifyRef
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1765,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1767,1
    - Dst: IsInline
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1767,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - r
    - p
    - elem_type
    argTypes:
    - Reference
    - uint8_t*
    - Type
    constantsTouched: []
    func_position:
      end: 1771
      start: 1735
    functionDepth: 3
    functionLinenumber: 1735
    functionLinenumberEnd: 1771
    functionName: VerifyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - FLEX_CHECK_VERIFIED
    - Sized
    - IsInline
    - Vector
    - VerifyBeforePointer
    - Check
    - VerifyRef
    - FLATBUFFERS_ASSERT
    - TypedVector
    - auto::size
    - WidthB
    - VerifyFromPointer
    - PackedType
    linkageType: ''
    returnType: bool
    signature: bool VerifyVector(Reference r, const uint8_t *p, Type elem_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyBeforePointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1776,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1778,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1779,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1781,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1781,1
    - Dst: VerifyByteWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1782,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1783,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - byte_width
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1785
      start: 1773
    functionDepth: 4
    functionLinenumber: 1773
    functionLinenumberEnd: 1785
    functionName: VerifyKeys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - VerifyByteWidth
    - static_cast<uint8_t>
    - VerifyVector
    - VerifyBeforePointer
    - VerifyOffset
    - Reference
    - ReadUInt64
    linkageType: ''
    returnType: bool
    signature: bool VerifyKeys(const uint8_t *p, uint8_t byte_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_CHECK_VERIFIED
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1788,1
    - Dst: PackedType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1792
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1792
    functionName: VerifyKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - PackedType
    - FLEX_CHECK_VERIFIED
    linkageType: ''
    returnType: bool
    signature: bool VerifyKey(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyFromPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1797,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1797,1
    - Dst: String::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1797,1
    - Dst: String::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 1799
      start: 1796
    functionDepth: 3
    functionLinenumber: 1796
    functionLinenumberEnd: 1799
    functionName: VerifyTerminator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - String::size
    - VerifyFromPointer
    - String::c_str
    linkageType: ''
    returnType: bool
    signature: bool VerifyTerminator(const String &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyByteWidth
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1803,1
    - Dst: VerifyType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1803,1
    - Dst: IsInline
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1806,1
    - Dst: ReadUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1811,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1812,1
    - Dst: Reference::Indirect
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1813,1
    - Dst: VerifyAlignment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1814,1
    - Dst: VerifyFromPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1818,1
    - Dst: VerifyKey
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1819,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1821,1
    - Dst: VerifyKeys
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1821,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1822,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1823,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1825,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1826,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1827,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1830,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1831,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1833,1
    - Dst: VerifyTerminator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1834,1
    - Dst: String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1834,1
    - Dst: ToFixedTypedVectorElementType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1845,1
    - Dst: VerifyType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1846,1
    - Dst: VerifyFromPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1847,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 1
    argNames:
    - r
    argTypes:
    - Reference
    constantsTouched: []
    func_position:
      end: 1851
      start: 1801
    functionDepth: 5
    functionLinenumber: 1801
    functionLinenumberEnd: 1851
    functionName: VerifyRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 1
    functionsReached:
    - VerifyKey
    - String
    - VerifyByteWidth
    - VerifyType
    - IsInline
    - VerifyVector
    - VerifyTerminator
    - VerifyKeys
    - ToFixedTypedVectorElementType
    - VerifyOffset
    - Reference::Indirect
    - ReadUInt64
    - VerifyAlignment
    - VerifyFromPointer
    linkageType: ''
    returnType: bool
    signature: bool VerifyRef(Reference r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 1880
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1880
    functionName: VerifyBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flexbuffers.h
    functionUses: 3
    functionsReached:
    - Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: "bool VerifyBuffer(const uint8_t *buf, size_t buf_len,\n                         std::vector<uint8_t>
      *reuse_tracker = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: operator T*() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator T*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: IsConstTrue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR
    signature: FLATBUFFERS_CONSTEXPR IsConstTrue(T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - align
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: flatbuffers::VerifyAlignmentRequirements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VerifyAlignmentRequirements(size_t align, size_t min_align = 1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_BYTESWAP16
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:380,1
    - Dst: FLATBUFFERS_BYTESWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:384,1
    - Dst: FLATBUFFERS_BYTESWAP64
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:388,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 394
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 394
    functionName: flatbuffers::EndianSwap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_BYTESWAP64
    - FLATBUFFERS_BYTESWAP16
    - FLATBUFFERS_BYTESWAP32
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: T
    signature: T EndianSwap(T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EndianSwap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: flatbuffers::EndianScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 3
    functionsReached:
    - flatbuffers::EndianSwap
    linkageType: ''
    returnType: T
    signature: T EndianScalar(T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:413,1
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: flatbuffers::ReadScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 2
    functionsReached:
    - flatbuffers::EndianScalar
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T ReadScalar(const void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:427,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - void*
    - T
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: flatbuffers::WriteScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - flatbuffers::EndianScalar
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: void
    signature: void WriteScalar(void *p, T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uoffset_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:432,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - void*
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: flatbuffers::WriteScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - flatbuffers::EndianScalar
    - reinterpret_cast<uoffset_t *>
    linkageType: ''
    returnType: void
    signature: void WriteScalar(void *p, Offset<T> t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf_size
    - scalar_size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: flatbuffers::PaddingBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t PaddingBytes(size_t buf_size, size_t scalar_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - def
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 450
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 450
    functionName: flatbuffers::IsTheSameAs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTheSameAs(T e, T def)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - e
    - def
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: flatbuffers::IsFloatTheSameAs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloatTheSameAs(T e, T def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsFloatTheSameAs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - def
    argTypes:
    - float
    - float
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: flatbuffers::IsTheSameAs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsFloatTheSameAs
    linkageType: ''
    returnType: bool
    signature: bool IsTheSameAs<float>(float e, float def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsFloatTheSameAs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - def
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: flatbuffers::IsTheSameAs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsFloatTheSameAs
    linkageType: ''
    returnType: bool
    signature: bool IsTheSameAs<double>(double e, double def)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - v
    - low
    - high
    argTypes:
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: flatbuffers::IsOutRange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsOutRange(const T &v, const T &low, const T &high)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsOutRange
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - low
    - high
    argTypes:
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: flatbuffers::IsInRange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsOutRange
    linkageType: ''
    returnType: bool
    signature: bool IsInRange(const T &v, const T &low, const T &high)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: flatbuffers::HashFnv1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    linkageType: ''
    returnType: T
    signature: T HashFnv1(const char *input)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: flatbuffers::HashFnv1a
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    linkageType: ''
    returnType: T
    signature: T HashFnv1a(const char *input)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: flatbuffers::HashFnv1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t HashFnv1<uint16_t>(const char *input)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: flatbuffers::HashFnv1a
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t HashFnv1a<uint16_t>(const char *input)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: flatbuffers::FindHashFunction16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: NamedHashFunction<uint16_t>::HashFunction
    signature: "NamedHashFunction<uint16_t>::HashFunction FindHashFunction16(\n    const
      char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: flatbuffers::FindHashFunction32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: NamedHashFunction<uint32_t>::HashFunction
    signature: "NamedHashFunction<uint32_t>::HashFunction FindHashFunction32(\n    const
      char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: flatbuffers::FindHashFunction64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/hash.h
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: NamedHashFunction<uint64_t>::HashFunction
    signature: "NamedHashFunction<uint64_t>::HashFunction FindHashFunction64(\n    const
      char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ~Allocator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Allocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h:44,1
    - Dst: flatbuffers::Allocator::memcpy_downward
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h:46,1
    - Dst: deallocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - old_p
    - old_size
    - new_size
    - in_use_back
    - in_use_front
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: flatbuffers::Allocator::reallocate_downward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Allocator::memcpy_downward
    - FLATBUFFERS_ASSERT
    - deallocate
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *reallocate_downward(uint8_t *old_p, size_t old_size,\n                                       size_t
      new_size, size_t in_use_back,\n                                       size_t
      in_use_front)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h:60,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - old_p
    - old_size
    - new_p
    - new_size
    - in_use_back
    - in_use_front
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: flatbuffers::Allocator::memcpy_downward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/allocator.h
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void memcpy_downward(uint8_t *old_p, size_t old_size, uint8_t *new_p,\n
      \                      size_t new_size, size_t in_use_back,\n                       size_t
      in_use_front)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:26,1
    - Dst: Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: flatbuffers::c_str
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - Data
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: char
    signature: char *c_str() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:27,1
    - Dst: flatbuffers::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:27,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: flatbuffers::str
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - flatbuffers::size
    - flatbuffers::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:32,1
    - Dst: flatbuffers::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:32,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: flatbuffers::string_view
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 1
    functionsReached:
    - flatbuffers::size
    - flatbuffers::c_str
    - flatbuffers::string_view
    linkageType: ''
    returnType: flatbuffers::string_view
    signature: flatbuffers::string_view string_view() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringLessThan
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:38,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:38,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:38,1
    - Dst: String::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:38,1
    - Dst: String::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: operator<(const String &o) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - String::data
    - flatbuffers::size
    - flatbuffers::StringLessThan
    - String::size
    - flatbuffers::data
    linkageType: ''
    returnType: bool
    signature: bool operator<(const String &o) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String*::str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: flatbuffers::GetString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - String*::str
    linkageType: ''
    returnType: std::string
    signature: std::string GetString(const String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: flatbuffers::GetCstring
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - String*::c_str
    linkageType: ''
    returnType: char
    signature: char *GetCstring(const String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String*::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:58,1
    - Dst: flatbuffers::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: flatbuffers::GetStringView
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/string.h
    functionUses: 0
    functionsReached:
    - flatbuffers::string_view
    - String*::string_view
    linkageType: ''
    returnType: flatbuffers::string_view
    signature: flatbuffers::string_view GetStringView(const String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: flatbuffers::BufferRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BufferRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _buf
    - _len
    argTypes:
    - uint8_t*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: flatbuffers::BufferRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BufferRef(uint8_t *_buf, uoffset_t _len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: ~BufferRef()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ~BufferRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: flatbuffers::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetRoot<T>
    linkageType: ''
    returnType: T
    signature: T *GetRoot() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: flatbuffers::Verify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer_ref.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: bool Verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: flatbuffers::Array::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR
    signature: FLATBUFFERS_CONSTEXPR size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:49,1
    - Dst: flatbuffers::Array::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:49,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:50,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: flatbuffers::Array::Get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::Data
    - FLATBUFFERS_ASSERT
    - OGRPMTilesDataset::Read
    - flatbuffers::Array::size
    linkageType: ''
    returnType: return_type
    signature: return_type Get(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: operator[](uoffset_t i) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - Get
    linkageType: ''
    returnType: return_type
    signature: return_type operator[](uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<E>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:59,1
    - Dst: flatbuffers::Array::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: flatbuffers::Array::GetEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - static_cast<E>
    - flatbuffers::Array::Get
    linkageType: ''
    returnType: E
    signature: E GetEnum(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:62,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: flatbuffers::Array::begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::Data
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:63,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:63,1
    - Dst: flatbuffers::Array::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: flatbuffers::Array::end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::Data
    - flatbuffers::Array::size
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:66,1
    - Dst: flatbuffers::Array::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: flatbuffers::Array::rbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::end
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:69,1
    - Dst: flatbuffers::Array::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: flatbuffers::Array::rend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::begin
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: flatbuffers::Array::cbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: flatbuffers::Array::cend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: flatbuffers::Array::crbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::rbegin
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::rend
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: flatbuffers::Array::crend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::rend
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:85,1
    - Dst: flatbuffers::Array::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:85,1
    - Dst: const_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:86,1
    - Dst: flatbuffers::Array::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: flatbuffers::Array::GetMutablePointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - const_cast<T *>
    - FLATBUFFERS_ASSERT
    - flatbuffers::Array::data
    - flatbuffers::Array::size
    linkageType: ''
    returnType: typename flatbuffers::conditional<scalar_tag::value, void, T *>::type
    signature: typename flatbuffers::conditional<scalar_tag::value, void, T *>::type
      GetMutablePointer(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::MutateImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:90,1
    - Dst: scalar_tag
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - uoffset_t
    - T
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: flatbuffers::Array::Mutate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Array::MutateImpl
    - scalar_tag
    linkageType: ''
    returnType: void
    signature: void Mutate(uoffset_t i, const T &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: flatbuffers::Array::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: flatbuffers::Array::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:98,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: flatbuffers::Array::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Array::Data
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:99,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: flatbuffers::Array::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Array::Data
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T *data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:104,1
    - Dst: flatbuffers::span<const T, length>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:104,1
    - Dst: flatbuffers::Array::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:105,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:106,1
    - Dst: flatbuffers::Array::CopyFromSpanImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:110,1
    - Dst: flatbuffers::bool_constant<is_span_observable>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - flatbuffers::span<const T, length>
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: flatbuffers::Array::CopyFromSpan
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::span<const T, length>::data
    - FLATBUFFERS_ASSERT
    - flatbuffers::Array::CopyFromSpanImpl
    - flatbuffers::Array::Data
    - flatbuffers::bool_constant<is_span_observable>
    linkageType: ''
    returnType: void
    signature: void CopyFromSpan(flatbuffers::span<const T, length> src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:115,1
    - Dst: flatbuffers::Array::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:115,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:116,1
    - Dst: flatbuffers::Array::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - uoffset_t
    - T
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: flatbuffers::Array::MutateImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - FLATBUFFERS_ASSERT
    - flatbuffers::Array::data
    - flatbuffers::Array::size
    - WriteScalar
    linkageType: ''
    returnType: void
    signature: void MutateImpl(flatbuffers::true_type, uoffset_t i, const T &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::GetMutablePointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - uoffset_t
    - T
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: flatbuffers::Array::MutateImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Array::GetMutablePointer
    linkageType: ''
    returnType: void
    signature: void MutateImpl(flatbuffers::false_type, uoffset_t i, const T &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:128,1
    - Dst: flatbuffers::Array::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:128,1
    - Dst: flatbuffers::span<const T, length>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - flatbuffers::span<const T, length>
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: flatbuffers::Array::CopyFromSpanImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - std::memcpy
    - flatbuffers::Array::data
    - flatbuffers::span<const T, length>::data
    linkageType: ''
    returnType: void
    signature: "void CopyFromSpanImpl(flatbuffers::true_type,\n                        flatbuffers::span<const
      T, length> src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::Mutate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - flatbuffers::span<const T, length>
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: flatbuffers::Array::CopyFromSpanImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Array::Mutate
    linkageType: ''
    returnType: void
    signature: "void CopyFromSpanImpl(flatbuffers::false_type,\n                        flatbuffers::span<const
      T, length> src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: flatbuffers::Array<Offset<T>, length>::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: operator[](uoffset_t) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: return_type
    signature: return_type operator[](uoffset_t) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:188,1
    - Dst: Array<U, N>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - Array<U, N>
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: flatbuffers::span<U, N> make_span(Array<U, N> &arr)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - span<U, N>
    - Array<U, N>::data
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<U, N> make_span(Array<U,
      N> &arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:197,1
    - Dst: Array<U, N>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - Array<U, N>
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: "flatbuffers::span<const U, N> make_span(\n    const Array<U, N>
      &arr)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - span<const U, N>
    - Array<U, N>::data
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: "FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const U, N> make_span(\n
      \   const Array<U, N> &arr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<uint8_t, sizeof(U) * N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:205,1
    - Dst: Array<U, N>::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - Array<U, N>
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: 'flatbuffers::span<uint8_t, sizeof(U) * N>

      make_bytes_span(Array<U, N> &arr)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - Array<U, N>::Data
    - span<uint8_t, sizeof(U) * N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: 'FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<uint8_t, sizeof(U) *
      N>

      make_bytes_span(Array<U, N> &arr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const uint8_t, sizeof(U) * N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:213,1
    - Dst: Array<U, N>::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - Array<U, N>
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: 'flatbuffers::span<const uint8_t, sizeof(U) * N>

      make_bytes_span(const Array<U, N> &arr)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - Array<U, N>::Data
    - span<const uint8_t, sizeof(U) * N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: 'FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const uint8_t, sizeof(U)
      * N>

      make_bytes_span(const Array<U, N> &arr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Array<T, length> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: flatbuffers::CastToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Array<T, length> *>
    linkageType: ''
    returnType: Array<T, length>
    signature: Array<T, length> &CastToArray(T (&arr)[length])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Array<T, length> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: flatbuffers::CastToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Array<T, length> *>
    linkageType: ''
    returnType: Array<T, length>
    signature: Array<T, length> &CastToArray(const T (&arr)[length])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Array<E, length> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: flatbuffers::CastToArrayOfEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Array<E, length> *>
    linkageType: ''
    returnType: Array<E, length>
    signature: Array<E, length> &CastToArrayOfEnum(T (&arr)[length])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Array<E, length> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: flatbuffers::CastToArrayOfEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/array.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Array<E, length> *>
    linkageType: ''
    returnType: Array<E, length>
    signature: Array<E, length> &CastToArrayOfEnum(const T (&arr)[length])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: flatbuffers::grpc::Message::Message
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - slice
    argTypes:
    - ::grpc::Slice
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: flatbuffers::grpc::Message::Message
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message(::grpc::Slice slice)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - Message
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '&operator=(const Message &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Message
    signature: Message &operator=(const Message &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - Message
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: flatbuffers::grpc::Message::Message
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message(Message &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - Message
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: flatbuffers::grpc::Message::Message
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message(const Message &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - Message
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '&operator=(Message &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Message
    signature: Message &operator=(Message &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: flatbuffers::grpc::Message::mutable_data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *mutable_data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: flatbuffers::grpc::Message::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::grpc::Message::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: flatbuffers::grpc::Message::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 1
    functionsReached:
    - flatbuffers::grpc::Message::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: flatbuffers::grpc::Message::Verify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: bool Verify() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableRoot<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:59,1
    - Dst: flatbuffers::grpc::Message::mutable_data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: flatbuffers::grpc::Message::GetMutableRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - flatbuffers::grpc::Message::mutable_data
    - flatbuffers::GetMutableRoot<T>
    linkageType: ''
    returnType: T
    signature: T *GetMutableRoot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:61,1
    - Dst: flatbuffers::grpc::Message::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: flatbuffers::grpc::Message::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - flatbuffers::grpc::Message::data
    - flatbuffers::GetRoot<T>
    linkageType: ''
    returnType: T
    signature: T *GetRoot() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '&BorrowSlice() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::grpc::Slice
    signature: ::grpc::Slice &BorrowSlice() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: flatbuffers::grpc::SliceAllocator::SliceAllocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SliceAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - SliceAllocator
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: flatbuffers::grpc::SliceAllocator::SliceAllocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SliceAllocator(const SliceAllocator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - SliceAllocator
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '&operator=(const SliceAllocator &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SliceAllocator
    signature: SliceAllocator &operator=(const SliceAllocator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::grpc::SliceAllocator::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - SliceAllocator
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: flatbuffers::grpc::SliceAllocator::SliceAllocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - flatbuffers::grpc::SliceAllocator::swap
    linkageType: ''
    returnType: void
    signature: void SliceAllocator(SliceAllocator &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - SliceAllocator
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: '&operator=(SliceAllocator &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: SliceAllocator
    signature: SliceAllocator &operator=(SliceAllocator &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::grpc::SliceAllocator::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - SliceAllocator
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: flatbuffers::grpc::SliceAllocator::swap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 2
    functionsReached:
    - flatbuffers::grpc::SliceAllocator::swap
    linkageType: ''
    returnType: void
    signature: void swap(SliceAllocator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: ~SliceAllocator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SliceAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:102,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:102,1
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:103,1
    - Dst: const_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:104,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: flatbuffers::grpc::SliceAllocator::allocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - size
    - const_cast<uint8_t *>
    - ::grpc::Slice
    - FLATBUFFERS_ASSERT
    - begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *allocate(size_t size) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:108,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:108,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:109,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:109,1
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: flatbuffers::grpc::SliceAllocator::deallocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - size
    - FLATBUFFERS_ASSERT
    - begin
    - ::grpc::Slice
    linkageType: ''
    returnType: void
    signature: void deallocate(uint8_t *p, size_t size) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:116,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:116,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:117,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:117,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:118,1
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:120,1
    - Dst: memcpy_downward
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - old_p
    - old_size
    - new_size
    - in_use_back
    - in_use_front
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: flatbuffers::grpc::SliceAllocator::reallocate_downward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - size
    - ::grpc::Slice
    - FLATBUFFERS_ASSERT
    - begin
    - memcpy_downward
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *reallocate_downward(uint8_t *old_p, size_t old_size,\n                                       size_t
      new_size, size_t in_use_back,\n                                       size_t
      in_use_front) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:130,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:130,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:131,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: '&get_slice(uint8_t *p, size_t size)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - size
    - FLATBUFFERS_ASSERT
    - begin
    linkageType: ''
    returnType: ::grpc::Slice
    signature: ::grpc::Slice &get_slice(uint8_t *p, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: flatbuffers::grpc::MessageBuilder::MessageBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MessageBuilder(uoffset_t initial_size = 1024)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - MessageBuilder
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: flatbuffers::grpc::MessageBuilder::MessageBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MessageBuilder(const MessageBuilder &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - MessageBuilder
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: '&operator=(const MessageBuilder &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageBuilder
    signature: MessageBuilder &operator=(const MessageBuilder &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::grpc::MessageBuilder::Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - MessageBuilder
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: flatbuffers::grpc::MessageBuilder::MessageBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - flatbuffers::grpc::MessageBuilder::Swap
    linkageType: ''
    returnType: void
    signature: void MessageBuilder(MessageBuilder &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatBufferBuilder::Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:171,1
    - Dst: FlatBufferBuilder::SwapBufAllocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:172,1
    - Dst: capacity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:173,1
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:176,1
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: flatbuffers::grpc::MessageBuilder::MessageBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - FlatBufferBuilder::Swap
    - capacity
    - FlatBufferBuilder::SwapBufAllocator
    - ::grpc::Slice
    linkageType: ''
    returnType: void
    signature: "void MessageBuilder(FlatBufferBuilder &&src,\n                          void
      (*dealloc)(void *,\n                                          size_t) = &DefaultAllocator::dealloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: '&operator=(FlatBufferBuilder &&src)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - Swap
    linkageType: ''
    returnType: MessageBuilder
    signature: MessageBuilder &operator=(FlatBufferBuilder &&src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - MessageBuilder
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: '&operator=(MessageBuilder &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - Swap
    linkageType: ''
    returnType: MessageBuilder
    signature: MessageBuilder &operator=(MessageBuilder &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:200,1
    - Dst: flatbuffers::FlatBufferBuilder::Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:201,1
    - Dst: swap_allocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - MessageBuilder
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: flatbuffers::grpc::MessageBuilder::Swap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 1
    functionsReached:
    - swap_allocator
    - swap
    - flatbuffers::FlatBufferBuilder::Swap
    linkageType: ''
    returnType: void
    signature: void Swap(MessageBuilder &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::grpc::Slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - size
    - offset
    - slice
    argTypes:
    - size_t
    - size_t
    - ::grpc::Slice
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: flatbuffers::grpc::MessageBuilder::ReleaseRaw
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - ::grpc::Slice
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *ReleaseRaw(size_t &size, size_t &offset, ::grpc::Slice &slice)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: ~MessageBuilder()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MessageBuilder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scratch_data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:226,1
    - Dst: capacity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:227,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:228,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:229,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:231,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:232,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:233,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:234,1
    - Dst: get_slice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:239,1
    - Dst: ::grpc::Slice::sub
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 245
    functionName: flatbuffers::grpc::MessageBuilder::GetMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - size
    - ::grpc::Slice::sub
    - capacity
    - FLATBUFFERS_ASSERT
    - get_slice
    - scratch_data
    - data
    linkageType: ''
    returnType: Message<T>
    signature: Message<T> GetMessage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::grpc::MessageBuilder::GetMessage
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:248,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: flatbuffers::grpc::MessageBuilder::ReleaseMessage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - Reset
    - flatbuffers::grpc::MessageBuilder::GetMessage
    linkageType: ''
    returnType: Message<T>
    signature: Message<T> ReleaseMessage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ByteBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:268,1
    - Dst: flatbuffers::grpc::Message<T>::BorrowSlice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - msg
    - buffer
    - own_buffer
    argTypes:
    - flatbuffers::grpc::Message<T>
    - ByteBuffer*
    - bool*
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: grpc::SerializationTraits<flatbuffers::grpc::Message<T>>::Serialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - ByteBuffer
    - flatbuffers::grpc::Message<T>::BorrowSlice
    linkageType: ''
    returnType: grpc::Status
    signature: "grpc::Status Serialize(const flatbuffers::grpc::Message<T> &msg,\n
      \                               ByteBuffer *buffer, bool *own_buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ByteBuffer*::TrySingleSlice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:277,1
    - Dst: ByteBuffer*::DumpToSingleSlice
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:278,1
    - Dst: ByteBuffer*::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:279,1
    - Dst: GDALGPKGMBTilesLikeRasterBand::IGetDataCoverageStatus
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:280,1
    - Dst: flatbuffers::grpc::Message<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:283,1
    - Dst: ByteBuffer*::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:284,1
    - Dst: flatbuffers::grpc::Message<T>*::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:288,1
    - Dst: GDALGPKGMBTilesLikeRasterBand::IGetDataCoverageStatus
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - msg
    argTypes:
    - ByteBuffer*
    - flatbuffers::grpc::Message<T>*
    constantsTouched: []
    func_position:
      end: 295
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 295
    functionName: grpc::SerializationTraits<flatbuffers::grpc::Message<T>>::Deserialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h
    functionUses: 0
    functionsReached:
    - ByteBuffer*::TrySingleSlice
    - flatbuffers::grpc::Message<T>
    - ByteBuffer*::Clear
    - ByteBuffer*::DumpToSingleSlice
    - GDALGPKGMBTilesLikeRasterBand::IGetDataCoverageStatus
    - flatbuffers::grpc::Message<T>*::Verify
    linkageType: ''
    returnType: grpc::Status
    signature: "grpc::Status Deserialize(ByteBuffer *buf,\n                                  flatbuffers::grpc::Message<T>
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - i
    argTypes:
    - uint8_t*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: flatbuffers::VectorIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorIterator(const uint8_t *data, uoffset_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: flatbuffers::VectorIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorIterator(const VectorIterator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: flatbuffers::VectorIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: '&operator=(const VectorIterator &other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator=(const VectorIterator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '&operator=(VectorIterator &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator=(VectorIterator &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: operator==(const VectorIterator &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const VectorIterator &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: operator<(const VectorIterator &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const VectorIterator &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator!=(const VectorIterator &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const VectorIterator &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - VectorIterator
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: operator-(const VectorIterator &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const VectorIterator &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator*() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::Read
    linkageType: ''
    returnType: IT
    signature: IT operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: operator->() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::Read
    linkageType: ''
    returnType: IT
    signature: IT operator->() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: '&operator++()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: operator++(int)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator operator++(int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VectorIterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator+(const uoffset_t &offset) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::VectorIterator
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator operator+(const uoffset_t &offset) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: '&operator+=(const uoffset_t &offset)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator+=(const uoffset_t &offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: '&operator--()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator--()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator--(int)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator operator--(int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VectorIterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator-(const uoffset_t &offset) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::VectorIterator
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator operator-(const uoffset_t &offset) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: '&operator-=(const uoffset_t &offset)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VectorIterator
    signature: VectorIterator &operator-=(const uoffset_t &offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iter
    argTypes:
    - Iterator
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: flatbuffers::VectorReverseIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorReverseIterator(Iterator iter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: operator*() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Iterator::value_type
    signature: typename Iterator::value_type operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: operator->() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Iterator::value_type
    signature: typename Iterator::value_type operator->() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: flatbuffers::Vector::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - EndianScalar
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Length
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: flatbuffers::Vector::FLATBUFFERS_ATTRIBUTE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::size
    linkageType: ''
    returnType: void
    signature: "void FLATBUFFERS_ATTRIBUTE([[deprecated(\"use size() instead\")]])\n
      \ uoffset_t Length() const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:170,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:170,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:171,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: flatbuffers::Vector::Get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::Data
    - FLATBUFFERS_ASSERT
    - OGRPMTilesDataset::Read
    - flatbuffers::Vector::size
    linkageType: ''
    returnType: return_type
    signature: return_type Get(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: operator[](uoffset_t i) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - Get
    linkageType: ''
    returnType: return_type
    signature: return_type operator[](uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<E>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:180,1
    - Dst: flatbuffers::Vector::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: flatbuffers::Vector::GetEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<E>
    - flatbuffers::Vector::Get
    linkageType: ''
    returnType: E
    signature: E GetEnum(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const U *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:186,1
    - Dst: flatbuffers::Vector::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: flatbuffers::Vector::GetAs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const U *>
    - flatbuffers::Vector::Get
    linkageType: ''
    returnType: U
    signature: U *GetAs(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:192,1
    - Dst: flatbuffers::Vector::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: flatbuffers::Vector::GetAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const String *>
    - flatbuffers::Vector::Get
    linkageType: ''
    returnType: String
    signature: String *GetAsString(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const void *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:196,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: flatbuffers::Vector::GetStructFromOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const void *>
    - flatbuffers::Vector::Data
    linkageType: ''
    returnType: void
    signature: void *GetStructFromOffset(size_t o) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:199,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: flatbuffers::Vector::begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::Data
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:200,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: flatbuffers::Vector::begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::Data
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:202,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:202,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: flatbuffers::Vector::end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::Data
    - iterator
    - flatbuffers::Vector::size
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:203,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:203,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: flatbuffers::Vector::end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::Data
    - const_iterator
    - flatbuffers::Vector::size
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:205,1
    - Dst: flatbuffers::Vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: flatbuffers::Vector::rbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - flatbuffers::Vector::end
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:207,1
    - Dst: flatbuffers::Vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: flatbuffers::Vector::rbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::end
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:210,1
    - Dst: flatbuffers::Vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: flatbuffers::Vector::rend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reverse_iterator
    - flatbuffers::Vector::begin
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:212,1
    - Dst: flatbuffers::Vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: flatbuffers::Vector::rend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::begin
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: flatbuffers::Vector::cbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: flatbuffers::Vector::cend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Vector::rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: flatbuffers::Vector::crbegin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::rbegin
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crbegin() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Vector::rend
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: flatbuffers::Vector::crend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector::rend
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:226,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:226,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:227,1
    - Dst: flatbuffers::Vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - uoffset_t
    - T
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: flatbuffers::Vector::Mutate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - WriteScalar
    - FLATBUFFERS_ASSERT
    - flatbuffers::Vector::data
    - flatbuffers::Vector::size
    linkageType: ''
    returnType: void
    signature: void Mutate(uoffset_t i, const T &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:234,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:234,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:236,1
    - Dst: flatbuffers::Vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:236,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:237,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - uoffset_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: flatbuffers::Vector::MutateOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - static_cast<uoffset_t>
    - flatbuffers::Vector::Data
    - WriteScalar
    - flatbuffers::Vector::data
    - flatbuffers::Vector::size
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: void
    signature: void MutateOffset(uoffset_t i, const uint8_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:242,1
    - Dst: flatbuffers::Vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:242,1
    - Dst: const_cast<mutable_return_type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:243,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:243,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: flatbuffers::Vector::GetMutableObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::Read
    - flatbuffers::Vector::Data
    - flatbuffers::Vector::size
    - FLATBUFFERS_ASSERT
    - const_cast<mutable_return_type>
    linkageType: ''
    returnType: mutable_return_type
    signature: mutable_return_type GetMutableObject(uoffset_t i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: flatbuffers::Vector::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 8
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: flatbuffers::Vector::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 8
    functionsReached:
    - reinterpret_cast<uint8_t *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:254,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: flatbuffers::Vector::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 2
    functionsReached:
    - flatbuffers::Vector::Data
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:255,1
    - Dst: flatbuffers::Vector::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: flatbuffers::Vector::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 2
    functionsReached:
    - flatbuffers::Vector::Data
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T *data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - K
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 268
    functionName: flatbuffers::Vector::LookupByKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - OGRPMTilesDataset::Read
    linkageType: ''
    returnType: return_type
    signature: return_type LookupByKey(K key) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<mutable_return_type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:271,1
    - Dst: flatbuffers::Vector::LookupByKey
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - K
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: flatbuffers::Vector::MutableLookupByKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - const_cast<mutable_return_type>
    - flatbuffers::Vector::LookupByKey
    linkageType: ''
    returnType: mutable_return_type
    signature: mutable_return_type MutableLookupByKey(K key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const K *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:288,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:290,1
    - Dst: auto::KeyCompareWithValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: flatbuffers::Vector::KeyCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - auto::KeyCompareWithValue
    - OGRPMTilesDataset::Read
    - reinterpret_cast<const K *>
    linkageType: ''
    returnType: int
    signature: int KeyCompare(const void *ap, const void *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<U>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:303,1
    - Dst: Vector<U>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:303,1
    - Dst: Vector<U>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<U>
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: flatbuffers::span<U> make_span(Vector<U> &vec)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - span<U>
    - Vector<U>::size
    - Vector<U>::data
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<U> make_span(Vector<U>
      &vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const U>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:311,1
    - Dst: Vector<U>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:311,1
    - Dst: Vector<U>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<U>
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: "flatbuffers::span<const U> make_span(\n    const Vector<U> &vec)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - Vector<U>::size
    - Vector<U>::data
    - span<const U>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: "FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const U> make_span(\n
      \   const Vector<U> &vec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:319,1
    - Dst: Vector<U>::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:319,1
    - Dst: Vector<U>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<U>
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: "flatbuffers::span<uint8_t> make_bytes_span(\n    Vector<U> &vec)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - Vector<U>::Data
    - Vector<U>::size
    - span<uint8_t>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: "FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<uint8_t> make_bytes_span(\n
      \   Vector<U> &vec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:327,1
    - Dst: Vector<U>::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:327,1
    - Dst: Vector<U>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<U>
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: "flatbuffers::span<const uint8_t> make_bytes_span(\n    const Vector<U>
      &vec)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - span<const uint8_t>
    - Vector<U>::Data
    - Vector<U>::size
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: "FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const uint8_t> make_bytes_span(\n
      \   const Vector<U> &vec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: flatbuffers::VectorOfAny::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - EndianScalar
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: flatbuffers::VectorOfAny::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: flatbuffers::VectorOfAny::Data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Vector<Offset<T>> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - Vector<Offset<U>>*
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: flatbuffers::VectorCast
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Vector<Offset<T>> *>
    linkageType: ''
    returnType: Vector<Offset<T>>
    signature: Vector<Offset<T>> *VectorCast(Vector<Offset<U>> *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Vector<Offset<T>> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - Vector<Offset<U>>*
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: flatbuffers::VectorCast
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Vector<Offset<T>> *>
    linkageType: ''
    returnType: Vector<Offset<T>>
    signature: Vector<Offset<T>> *VectorCast(const Vector<Offset<U>> *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector<T>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vector<T>*
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: flatbuffers::VectorLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector.h
    functionUses: 0
    functionsReached:
    - Vector<T>*::size
    linkageType: ''
    returnType: size_t
    signature: size_t VectorLength(const Vector<T> *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:43,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:46,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - a
    - b
    argTypes:
    - char
    - char
    - char
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: flatbuffers::check_ascii_range
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool check_ascii_range(char x, char a, char b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::check_ascii_range
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: flatbuffers::is_alpha
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::check_ascii_range
    linkageType: ''
    returnType: bool
    signature: bool is_alpha(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::check_ascii_range
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: flatbuffers::is_alpha_upper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::check_ascii_range
    linkageType: ''
    returnType: bool
    signature: bool is_alpha_upper(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:60,1
    - Dst: flatbuffers::is_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - alpha
    argTypes:
    - char
    - char
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: flatbuffers::is_alpha_char
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::is_alpha
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool is_alpha_char(char c, char alpha)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::check_ascii_range
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: flatbuffers::is_digit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::check_ascii_range
    linkageType: ''
    returnType: bool
    signature: bool is_digit(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::is_digit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:74,1
    - Dst: flatbuffers::check_ascii_range
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: flatbuffers::is_xdigit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::is_digit
    - flatbuffers::check_ascii_range
    linkageType: ''
    returnType: bool
    signature: bool is_xdigit(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::is_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:78,1
    - Dst: flatbuffers::is_digit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: flatbuffers::is_alnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::is_alpha
    - flatbuffers::is_digit
    linkageType: ''
    returnType: bool
    signature: bool is_alnum(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:81,1
    - Dst: ::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:81,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: flatbuffers::CharToUpper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - ::toupper
    - static_cast<char>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: char
    signature: char CharToUpper(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:85,1
    - Dst: ::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:85,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: flatbuffers::CharToLower
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - ::tolower
    - static_cast<char>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: char
    signature: char CharToLower(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::epsilon
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: flatbuffers::IntToDigitCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - cpl::epsilon
    linkageType: ''
    returnType: size_t
    signature: size_t IntToDigitCount(T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: flatbuffers::NumToStringWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t NumToStringWidth(T t, int precision = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:118,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:118,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:118,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - fmt
    argTypes:
    - T
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: flatbuffers::NumToStringImplWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - std::string::size
    - snprintf
    - const_cast<char *>
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string NumToStringImplWrapper(T t, const char *fmt, int precision
      = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:132,1
    - Dst: static_cast<long long>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:134,1
    - Dst: flatbuffers::NumToStringImplWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 2
    functionsReached:
    - static_cast<long long>
    - std::stringstream::str
    - flatbuffers::NumToStringImplWrapper
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString(T t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:141,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - signed char
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 3
    functionsReached:
    - flatbuffers::NumToString
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString<signed char>(signed char t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 4
    functionsReached:
    - flatbuffers::NumToString
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString<unsigned char>(unsigned char t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:147,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 5
    functionsReached:
    - flatbuffers::NumToString
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString<char>(char t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:161,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:163,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:165,1
    - Dst: flatbuffers::NumToStringImplWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:166,1
    - Dst: auto::find_last_not_of
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:170,1
    - Dst: auto::resize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - t
    - precision
    argTypes:
    - T
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: flatbuffers::FloatToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - auto::resize
    - auto::find_last_not_of
    - std::setprecision
    - std::stringstream::str
    - flatbuffers::NumToStringImplWrapper
    linkageType: ''
    returnType: std::string
    signature: std::string FloatToString(T t, int precision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FloatToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 5
    functionsReached:
    - flatbuffers::FloatToString
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString<double>(double t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FloatToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: flatbuffers::NumToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 5
    functionsReached:
    - flatbuffers::FloatToString
    linkageType: ''
    returnType: std::string
    signature: std::string NumToString<float>(float t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:189,1
    - Dst: std::setw
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:194,1
    - Dst: std::setfill
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:194,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:196,1
    - Dst: flatbuffers::NumToStringImplWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - i
    - xdigits
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: flatbuffers::IntToStringHex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - std::setw
    - std::setfill
    - FLATBUFFERS_ASSERT
    - std::stringstream::str
    - flatbuffers::NumToStringImplWrapper
    linkageType: ''
    returnType: std::string
    signature: std::string IntToStringHex(int i, int xdigits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: flatbuffers::ClassicLocale::Get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: locale_type
    signature: locale_type Get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __strtoll_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - val
    - str
    - endptr
    - base
    argTypes:
    - int64_t*
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: flatbuffers::strtoval_impl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - __strtoll_impl
    linkageType: ''
    returnType: void
    signature: "void strtoval_impl(int64_t *val, const char *str, char **endptr,\n
      \                                int base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __strtoull_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - val
    - str
    - endptr
    - base
    argTypes:
    - uint64_t*
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: flatbuffers::strtoval_impl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - __strtoull_impl
    linkageType: ''
    returnType: void
    signature: "void strtoval_impl(uint64_t *val, const char *str, char **endptr,\n
      \                                int base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __strtod_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - str
    - endptr
    argTypes:
    - double*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: flatbuffers::strtoval_impl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - __strtod_impl
    linkageType: ''
    returnType: void
    signature: void strtoval_impl(double *val, const char *str, char **endptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __strtof_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - str
    - endptr
    argTypes:
    - float*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: flatbuffers::strtoval_impl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - __strtof_impl
    linkageType: ''
    returnType: void
    signature: void strtoval_impl(float *val, const char *str, char **endptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:285,1
    - Dst: flatbuffers::is_digit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:288,1
    - Dst: flatbuffers::is_alpha_char
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:289,1
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:290,1
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:292,1
    - Dst: flatbuffers::strtoval_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:296,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - T*
    - char*
    constantsTouched: []
    func_position:
      end: 305
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 305
    functionName: flatbuffers::StringToIntegerImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    - const_cast<char **>
    - flatbuffers::is_alpha_char
    - FLATBUFFERS_ASSERT
    - flatbuffers::strtoval_impl
    - flatbuffers::is_digit
    linkageType: ''
    returnType: bool
    signature: "bool StringToIntegerImpl(T *val, const char *const str,\n                                const
      int base = 0,\n                                const bool check_errno = true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:310,1
    - Dst: flatbuffers::strtoval_impl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:312,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - T*
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: flatbuffers::StringToFloatImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::strtoval_impl
    - FLATBUFFERS_ASSERT
    - const_cast<char **>
    linkageType: ''
    returnType: bool
    signature: bool StringToFloatImpl(T *val, const char *const str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:328,1
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:331,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:335,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:341,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - char*
    - T*
    constantsTouched: []
    func_position:
      end: 349
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 349
    functionName: flatbuffers::StringToNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    - FLATBUFFERS_ASSERT
    - static_cast<T>
    linkageType: ''
    returnType: bool
    signature: bool StringToNumber(const char *s, T *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - char*
    - int64_t*
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: flatbuffers::StringToNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    linkageType: ''
    returnType: bool
    signature: bool StringToNumber<int64_t>(const char *str, int64_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:357,1
    - Dst: flatbuffers::is_digit
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - char*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 375
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 375
    functionName: flatbuffers::StringToNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    - flatbuffers::is_digit
    linkageType: ''
    returnType: bool
    signature: bool StringToNumber<uint64_t>(const char *str, uint64_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToFloatImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - char*
    - float*
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: flatbuffers::StringToNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToFloatImpl
    linkageType: ''
    returnType: bool
    signature: bool StringToNumber(const char *s, float *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToFloatImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - char*
    - double*
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: flatbuffers::StringToNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToFloatImpl
    linkageType: ''
    returnType: bool
    signature: bool StringToNumber(const char *s, double *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: flatbuffers::StringToInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    linkageType: ''
    returnType: int64_t
    signature: int64_t StringToInt(const char *s, int base = 10)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::StringToIntegerImpl
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: flatbuffers::StringToUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - flatbuffers::StringToIntegerImpl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t StringToUInt(const char *s, int base = 10)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::SaveFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:428,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:428,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - buf
    - binary
    argTypes:
    - char*
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: flatbuffers::SaveFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - std::string::size
    - flatbuffers::SaveFile
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool SaveFile(const char *name, const std::string &buf, bool binary)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:477,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:486,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:490,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ucc
    - out
    argTypes:
    - uint32_t
    - std::string*
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: flatbuffers::ToUTF8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - static_cast<char>
    linkageType: ''
    returnType: int
    signature: int ToUTF8(uint32_t ucc, std::string *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:514,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - in
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 545
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 545
    functionName: flatbuffers::FromUTF8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    linkageType: ''
    returnType: int
    signature: int FromUTF8(const char **in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:562,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:562,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - in
    - max_length
    - wrapped_line_prefix
    - wrapped_line_suffix
    argTypes:
    - std::string
    - size_t
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 573
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 573
    functionName: flatbuffers::WordWrap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - std::string::length
    - length
    linkageType: ''
    returnType: std::string
    signature: "std::string WordWrap(const std::string in, size_t max_length,\n                            const
      std::string wrapped_line_prefix,\n                            const std::string
      wrapped_line_suffix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IntToStringHex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:600,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:600,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:619,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:619,1
    - Dst: flatbuffers::IntToStringHex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:623,1
    - Dst: flatbuffers::IntToStringHex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:631,1
    - Dst: flatbuffers::IntToStringHex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:633,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:636,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 5
    argNames:
    - s
    - length
    - _text
    - allow_non_utf8
    - natural_utf8
    argTypes:
    - char*
    - size_t
    - std::string*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 644
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 644
    functionName: flatbuffers::EscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - static_cast<uoffset_t>
    - static_cast<uint8_t>
    - std::string::append
    - flatbuffers::IntToStringHex
    linkageType: ''
    returnType: bool
    signature: "bool EscapeString(const char *s, size_t length, std::string *_text,\n
      \                        bool allow_non_utf8, bool natural_utf8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IntToStringHex
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:657,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:657,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:661,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:661,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - buffer
    - buffer_size
    - max_length
    - wrapped_line_prefix
    - wrapped_line_suffix
    argTypes:
    - void*
    - size_t
    - size_t
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: flatbuffers::BufferToHexText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h
    functionUses: 0
    functionsReached:
    - std::string::size
    - flatbuffers::IntToStringHex
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::string
    signature: "std::string BufferToHexText(const void *buffer, size_t buffer_size,\n
      \                                  size_t max_length,\n                                   const
      std::string &wrapped_line_prefix,\n                                   const
      std::string &wrapped_line_suffix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: (&EnumValuesBaseType())[19]
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BaseType
    signature: BaseType (&EnumValuesBaseType())[19]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: reflection::EnumNamesBaseType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * const *EnumNamesBaseType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsOutRange
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:122,1
    - Dst: reflection::EnumNamesBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - BaseType
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: reflection::EnumNameBaseType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IsOutRange
    - reflection::EnumNamesBaseType
    linkageType: ''
    returnType: char
    signature: char *EnumNameBaseType(BaseType e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: (&EnumValuesAdvancedFeatures())[4]
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AdvancedFeatures
    signature: AdvancedFeatures (&EnumValuesAdvancedFeatures())[4]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: reflection::EnumNamesAdvancedFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * const *EnumNamesAdvancedFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IsOutRange
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:161,1
    - Dst: reflection::EnumNamesAdvancedFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - AdvancedFeatures
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: reflection::EnumNameAdvancedFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - reflection::EnumNamesAdvancedFeatures
    - flatbuffers::IsOutRange
    linkageType: ''
    returnType: char
    signature: char *EnumNameAdvancedFeatures(AdvancedFeatures e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<reflection::BaseType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:177,1
    - Dst: GetField<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:177,1
    - Dst: static_cast<reflection::BaseType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:180,1
    - Dst: GetField<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:180,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:183,1
    - Dst: GetField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:186,1
    - Dst: GetField<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:190,1
    - Dst: GetField<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:194,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:197,1
    - Dst: VerifyField<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:198,1
    - Dst: VerifyField<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:199,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:200,1
    - Dst: VerifyField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:201,1
    - Dst: VerifyField<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:202,1
    - Dst: VerifyField<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:203,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 206
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - VerifyField<int32_t>
    - EndTable
    - GetField<int32_t>
    - GetField<int8_t>
    - GetField<uint32_t>
    - GetField<uint16_t>
    - VerifyTableStart
    - VerifyField<int8_t>
    - VerifyField<uint16_t>
    - static_cast<reflection::BaseType>
    - VerifyField<uint32_t>
    linkageType: ''
    returnType: struct Type
    signature: struct Type flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:213,1
    - Dst: static_cast<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base_type
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: reflection::add_base_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<int8_t>
    linkageType: ''
    returnType: void
    signature: void add_base_type(reflection::BaseType base_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:216,1
    - Dst: static_cast<int8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: reflection::add_element
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<int8_t>
    linkageType: ''
    returnType: void
    signature: void add_element(reflection::BaseType element)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: reflection::add_index
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_index(int32_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixed_length
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: reflection::add_fixed_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_fixed_length(uint16_t fixed_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base_size
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: reflection::add_base_size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_base_size(uint32_t base_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element_size
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: reflection::add_element_size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_element_size(uint32_t element_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: reflection::TypeBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void TypeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:235,1
    - Dst: flatbuffers::Offset<Type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Type>
    - EndTable
    linkageType: ''
    returnType: flatbuffers::Offset<Type>
    signature: flatbuffers::Offset<Type> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TypeBuilder::add_element_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:250,1
    - Dst: TypeBuilder::add_base_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:251,1
    - Dst: TypeBuilder::add_index
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:252,1
    - Dst: TypeBuilder::add_fixed_length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:253,1
    - Dst: TypeBuilder::add_element
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:254,1
    - Dst: TypeBuilder::add_base_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:255,1
    - Dst: TypeBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: reflection::CreateType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - TypeBuilder::add_fixed_length
    - TypeBuilder::add_element
    - TypeBuilder::add_base_type
    - TypeBuilder::Finish
    - TypeBuilder::add_index
    - TypeBuilder::add_element_size
    - TypeBuilder::add_base_size
    linkageType: ''
    returnType: flatbuffers::Offset<Type>
    signature: "flatbuffers::Offset<Type> CreateType(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    reflection::BaseType base_type = reflection::None,\n    reflection::BaseType
      element = reflection::None,\n    int32_t index = -1,\n    uint16_t fixed_length
      = 0,\n    uint32_t base_size = 4,\n    uint32_t element_size = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:266,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:269,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:269,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:272,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:272,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:275,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:278,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:279,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:280,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:280,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:281,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:282,1
    - Dst: value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:282,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 285
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - GetPointer<const flatbuffers::String *>
    - strcmp
    - VerifyOffsetRequired
    - VerifyTableStart
    - VerifyOffset
    - value
    - EndTable
    - VerifyString
    - key
    linkageType: ''
    returnType: struct KeyValue
    signature: struct KeyValue flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: reflection::add_key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_key(flatbuffers::Offset<flatbuffers::String> key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: reflection::add_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_value(flatbuffers::Offset<flatbuffers::String> value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: reflection::KeyValueBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void KeyValueBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:302,1
    - Dst: flatbuffers::Offset<KeyValue>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:303,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<KeyValue>
    - EndTable
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<KeyValue>
    signature: flatbuffers::Offset<KeyValue> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyValueBuilder::add_value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:314,1
    - Dst: KeyValueBuilder::add_key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:315,1
    - Dst: KeyValueBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: reflection::CreateKeyValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - KeyValueBuilder::add_value
    - KeyValueBuilder::Finish
    - KeyValueBuilder::add_key
    linkageType: ''
    returnType: flatbuffers::Offset<KeyValue>
    signature: "flatbuffers::Offset<KeyValue> CreateKeyValue(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> key = 0,\n    flatbuffers::Offset<flatbuffers::String>
      value = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:323,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:324,1
    - Dst: reflection::CreateKeyValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: reflection::CreateKeyValueDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateKeyValue
    linkageType: ''
    returnType: flatbuffers::Offset<KeyValue>
    signature: "flatbuffers::Offset<KeyValue> CreateKeyValueDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *key = nullptr,\n    const char *value = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:340,1
    - Dst: GetField<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:343,1
    - Dst: value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:346,1
    - Dst: value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:346,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:349,1
    - Dst: value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:349,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:349,1
    - Dst: value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:349,1
    - Dst: GetPointer<const reflection::Type *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:352,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:355,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:358,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:359,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:360,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:360,1
    - Dst: VerifyField<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:361,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:362,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:363,1
    - Dst: union_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:363,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:364,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:365,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:365,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:366,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:366,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:367,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 369
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - documentation
    - static_cast<int>
    - GetPointer<const reflection::Type *>
    - GetField<int64_t>
    - VerifyVector
    - VerifyVectorOfStrings
    - union_type
    - VerifyTable
    - VerifyField<int64_t>
    - GetPointer<const flatbuffers::String *>
    - VerifyOffset
    - VerifyOffsetRequired
    - VerifyTableStart
    - value
    - name
    - EndTable
    - VerifyString
    linkageType: ''
    returnType: struct EnumVal
    signature: struct EnumVal flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: reflection::add_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_value(int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - union_type
    argTypes:
    - flatbuffers::Offset<reflection::Type>
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: reflection::add_union_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_union_type(flatbuffers::Offset<reflection::Type> union_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: reflection::EnumValBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void EnumValBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:392,1
    - Dst: flatbuffers::Offset<EnumVal>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:393,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - flatbuffers::Offset<EnumVal>
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<EnumVal>
    signature: flatbuffers::Offset<EnumVal> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumValBuilder::add_value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:406,1
    - Dst: EnumValBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:407,1
    - Dst: EnumValBuilder::add_union_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:408,1
    - Dst: EnumValBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:409,1
    - Dst: EnumValBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: reflection::CreateEnumVal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EnumValBuilder::add_documentation
    - EnumValBuilder::add_union_type
    - EnumValBuilder::Finish
    - EnumValBuilder::add_value
    - EnumValBuilder::add_name
    linkageType: ''
    returnType: flatbuffers::Offset<EnumVal>
    signature: "flatbuffers::Offset<EnumVal> CreateEnumVal(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    int64_t
      value = 0,\n    flatbuffers::Offset<reflection::Type> union_type = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:419,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:420,1
    - Dst: reflection::CreateEnumVal
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: reflection::CreateEnumValDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateEnumVal
    linkageType: ''
    returnType: flatbuffers::Offset<EnumVal>
    signature: "flatbuffers::Offset<EnumVal> CreateEnumValDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    int64_t value = 0,\n    flatbuffers::Offset<reflection::Type>
      union_type = 0,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:441,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:444,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:444,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:447,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:447,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::EnumVal>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:450,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:453,1
    - Dst: GetPointer<const reflection::Type *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:456,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:459,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:462,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:466,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:469,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:470,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:471,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:471,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:472,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:473,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:473,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:474,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:474,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:475,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:476,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:477,1
    - Dst: underlying_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:477,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:478,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:479,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:479,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:480,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:480,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:481,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:482,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:482,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:483,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:483,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:484,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:485,1
    - Dst: declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:485,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:486,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 488
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - values
    - VerifyVector
    - VerifyTable
    - strcmp
    - GetField<uint8_t>
    - VerifyVectorOfTables
    - VerifyString
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
      *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - documentation
    - VerifyOffsetRequired
    - VerifyOffset
    - VerifyTableStart
    - declaration_file
    - EndTable
    - attributes
    - name
    - VerifyField<uint8_t>
    - underlying_type
    - GetPointer<const reflection::Type *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::EnumVal>>
      *>
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    linkageType: ''
    returnType: struct Enum
    signature: struct Enum flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::EnumVal>>>
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: reflection::add_values
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_values(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::EnumVal>>>
      values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:501,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_union
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: reflection::add_is_union
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_is_union(bool is_union)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - underlying_type
    argTypes:
    - flatbuffers::Offset<reflection::Type>
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: reflection::add_underlying_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_underlying_type(flatbuffers::Offset<reflection::Type> underlying_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: reflection::add_attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - declaration_file
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: reflection::add_declaration_file
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_declaration_file(flatbuffers::Offset<flatbuffers::String>
      declaration_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: reflection::EnumBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void EnumBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:520,1
    - Dst: flatbuffers::Offset<Enum>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:521,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:522,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:523,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - flatbuffers::Offset<Enum>
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<Enum>
    signature: flatbuffers::Offset<Enum> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumBuilder::add_declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:539,1
    - Dst: EnumBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:540,1
    - Dst: EnumBuilder::add_attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:541,1
    - Dst: EnumBuilder::add_underlying_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:542,1
    - Dst: EnumBuilder::add_values
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:543,1
    - Dst: EnumBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:544,1
    - Dst: EnumBuilder::add_is_union
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:545,1
    - Dst: EnumBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 547
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 547
    functionName: reflection::CreateEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EnumBuilder::add_values
    - EnumBuilder::add_attributes
    - EnumBuilder::add_is_union
    - EnumBuilder::add_declaration_file
    - EnumBuilder::Finish
    - EnumBuilder::add_documentation
    - EnumBuilder::add_underlying_type
    - EnumBuilder::add_name
    linkageType: ''
    returnType: flatbuffers::Offset<Enum>
    signature: "flatbuffers::Offset<Enum> CreateEnum(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::EnumVal>>>
      values = 0,\n    bool is_union = false,\n    flatbuffers::Offset<reflection::Type>
      underlying_type = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0,\n    flatbuffers::Offset<flatbuffers::String> declaration_file
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:558,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:559,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:560,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:561,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:562,1
    - Dst: reflection::CreateEnum
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 572
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 572
    functionName: reflection::CreateEnumDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    - reflection::CreateEnum
    linkageType: ''
    returnType: flatbuffers::Offset<Enum>
    signature: "flatbuffers::Offset<Enum> CreateEnumDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    std::vector<flatbuffers::Offset<reflection::EnumVal>>
      *values = nullptr,\n    bool is_union = false,\n    flatbuffers::Offset<reflection::Type>
      underlying_type = 0,\n    std::vector<flatbuffers::Offset<reflection::KeyValue>>
      *attributes = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr,\n    const char *declaration_file = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:592,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:595,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:595,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:598,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:598,1
    - Dst: GetPointer<const reflection::Type *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:601,1
    - Dst: GetField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:604,1
    - Dst: GetField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:607,1
    - Dst: GetField<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:610,1
    - Dst: GetField<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:613,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:616,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:619,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:622,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:625,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:628,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:631,1
    - Dst: GetField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:635,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:638,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:639,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:640,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:640,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:641,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:642,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:642,1
    - Dst: VerifyField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:643,1
    - Dst: VerifyField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:644,1
    - Dst: VerifyField<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:645,1
    - Dst: VerifyField<double>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:646,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:647,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:648,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:649,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:650,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:651,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:651,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:652,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:652,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:653,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:654,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:654,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:655,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:655,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:656,1
    - Dst: VerifyField<uint16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:657,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:658,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 660
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - VerifyVector
    - VerifyTable
    - VerifyField<int64_t>
    - strcmp
    - GetField<uint8_t>
    - type
    - VerifyField<uint16_t>
    - VerifyVectorOfTables
    - VerifyString
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
      *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - documentation
    - VerifyOffsetRequired
    - GetField<int64_t>
    - VerifyOffset
    - VerifyTableStart
    - EndTable
    - name
    - attributes
    - VerifyField<uint8_t>
    - GetPointer<const reflection::Type *>
    - GetField<double>
    - VerifyField<double>
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    - GetField<uint16_t>
    linkageType: ''
    returnType: struct Field
    signature: struct Field flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - flatbuffers::Offset<reflection::Type>
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: reflection::add_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_type(flatbuffers::Offset<reflection::Type> type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 674
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 674
    functionName: reflection::add_id
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_id(uint16_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 677
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 677
    functionName: reflection::add_offset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_offset(uint16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - default_integer
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 680
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 680
    functionName: reflection::add_default_integer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_default_integer(int64_t default_integer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - default_real
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 683
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 683
    functionName: reflection::add_default_real
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_default_real(double default_real)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:685,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deprecated
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: reflection::add_deprecated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_deprecated(bool deprecated)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:688,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - required
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 689
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 689
    functionName: reflection::add_required
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_required(bool required)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:691,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: reflection::add_key
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_key(bool key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: reflection::add_attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 698
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:700,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - optional
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 701
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 701
    functionName: reflection::add_optional
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_optional(bool optional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - padding
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: reflection::add_padding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_padding(uint16_t padding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: reflection::FieldBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void FieldBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:710,1
    - Dst: flatbuffers::Offset<Field>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:711,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:712,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - Required
    - flatbuffers::Offset<Field>
    linkageType: ''
    returnType: flatbuffers::Offset<Field>
    signature: flatbuffers::Offset<Field> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldBuilder::add_default_real
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:734,1
    - Dst: FieldBuilder::add_default_integer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:735,1
    - Dst: FieldBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:736,1
    - Dst: FieldBuilder::add_attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:737,1
    - Dst: FieldBuilder::add_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:738,1
    - Dst: FieldBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:739,1
    - Dst: FieldBuilder::add_padding
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:740,1
    - Dst: FieldBuilder::add_offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:741,1
    - Dst: FieldBuilder::add_id
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:742,1
    - Dst: FieldBuilder::add_optional
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:743,1
    - Dst: FieldBuilder::add_key
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:744,1
    - Dst: FieldBuilder::add_required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:745,1
    - Dst: FieldBuilder::add_deprecated
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:746,1
    - Dst: FieldBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 748
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 748
    functionName: reflection::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - FieldBuilder::add_key
    - FieldBuilder::add_default_integer
    - FieldBuilder::add_optional
    - FieldBuilder::add_default_real
    - FieldBuilder::add_offset
    - FieldBuilder::Finish
    - FieldBuilder::add_name
    - FieldBuilder::add_type
    - FieldBuilder::add_deprecated
    - FieldBuilder::add_padding
    - FieldBuilder::add_required
    - FieldBuilder::add_id
    - FieldBuilder::add_attributes
    - FieldBuilder::add_documentation
    linkageType: ''
    returnType: flatbuffers::Offset<Field>
    signature: "flatbuffers::Offset<Field> CreateField(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<reflection::Type>
      type = 0,\n    uint16_t id = 0,\n    uint16_t offset = 0,\n    int64_t default_integer
      = 0,\n    double default_real = 0.0,\n    bool deprecated = false,\n    bool
      required = false,\n    bool key = false,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0,\n    bool optional = false,\n    uint16_t padding = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:765,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:766,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:767,1
    - Dst: reflection::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 783
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 783
    functionName: reflection::CreateFieldDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateField
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    linkageType: ''
    returnType: flatbuffers::Offset<Field>
    signature: "flatbuffers::Offset<Field> CreateFieldDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    flatbuffers::Offset<reflection::Type>
      type = 0,\n    uint16_t id = 0,\n    uint16_t offset = 0,\n    int64_t default_integer
      = 0,\n    double default_real = 0.0,\n    bool deprecated = false,\n    bool
      required = false,\n    bool key = false,\n    std::vector<flatbuffers::Offset<reflection::KeyValue>>
      *attributes = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr,\n    bool optional = false,\n    uint16_t padding
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:798,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:801,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:801,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:804,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:804,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Field>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:807,1
    - Dst: GetField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:810,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:813,1
    - Dst: GetField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:816,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:819,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:822,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:826,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:829,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:830,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:831,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:831,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:832,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:833,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:833,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:834,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:834,1
    - Dst: VerifyField<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:835,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:836,1
    - Dst: VerifyField<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:837,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:838,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:839,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:839,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:840,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:840,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:841,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:842,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:842,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:843,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:843,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:844,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:845,1
    - Dst: declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:845,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:846,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 848
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 848
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - VerifyVector
    - strcmp
    - GetField<uint8_t>
    - VerifyVectorOfTables
    - VerifyString
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
      *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - documentation
    - VerifyField<int32_t>
    - GetField<int32_t>
    - VerifyOffsetRequired
    - VerifyOffset
    - VerifyTableStart
    - declaration_file
    - EndTable
    - attributes
    - name
    - VerifyField<uint8_t>
    - fields
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Field>>
      *>
    linkageType: ''
    returnType: struct Object
    signature: struct Object flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 856
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 856
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fields
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Field>>>
    constantsTouched: []
    func_position:
      end: 859
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 859
    functionName: reflection::add_fields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_fields(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Field>>>
      fields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:861,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_struct
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: reflection::add_is_struct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void add_is_struct(bool is_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - minalign
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 865
    functionName: reflection::add_minalign
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_minalign(int32_t minalign)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytesize
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: reflection::add_bytesize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    linkageType: ''
    returnType: void
    signature: void add_bytesize(int32_t bytesize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: reflection::add_attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - declaration_file
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: reflection::add_declaration_file
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_declaration_file(flatbuffers::Offset<flatbuffers::String>
      declaration_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 881
    functionName: reflection::ObjectBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void ObjectBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:883,1
    - Dst: flatbuffers::Offset<Object>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:884,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:885,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 888
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 888
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Object>
    - EndTable
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<Object>
    signature: flatbuffers::Offset<Object> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ObjectBuilder::add_declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:902,1
    - Dst: ObjectBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:903,1
    - Dst: ObjectBuilder::add_attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:904,1
    - Dst: ObjectBuilder::add_bytesize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:905,1
    - Dst: ObjectBuilder::add_minalign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:906,1
    - Dst: ObjectBuilder::add_fields
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:907,1
    - Dst: ObjectBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:908,1
    - Dst: ObjectBuilder::add_is_struct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:909,1
    - Dst: ObjectBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 911
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 911
    functionName: reflection::CreateObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - ObjectBuilder::add_name
    - ObjectBuilder::add_minalign
    - ObjectBuilder::add_is_struct
    - ObjectBuilder::add_declaration_file
    - ObjectBuilder::add_attributes
    - ObjectBuilder::add_bytesize
    - ObjectBuilder::add_documentation
    - ObjectBuilder::add_fields
    - ObjectBuilder::Finish
    linkageType: ''
    returnType: flatbuffers::Offset<Object>
    signature: "flatbuffers::Offset<Object> CreateObject(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Field>>>
      fields = 0,\n    bool is_struct = false,\n    int32_t minalign = 0,\n    int32_t
      bytesize = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0,\n    flatbuffers::Offset<flatbuffers::String> declaration_file
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:923,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:924,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:925,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:926,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:927,1
    - Dst: reflection::CreateObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 938
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 938
    functionName: reflection::CreateObjectDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateObject
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    linkageType: ''
    returnType: flatbuffers::Offset<Object>
    signature: "flatbuffers::Offset<Object> CreateObjectDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    std::vector<flatbuffers::Offset<reflection::Field>>
      *fields = nullptr,\n    bool is_struct = false,\n    int32_t minalign = 0,\n
      \   int32_t bytesize = 0,\n    std::vector<flatbuffers::Offset<reflection::KeyValue>>
      *attributes = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr,\n    const char *declaration_file = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:950,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:953,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:953,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:956,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:956,1
    - Dst: GetPointer<const reflection::Object *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:959,1
    - Dst: GetPointer<const reflection::Object *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:962,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:965,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:968,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:971,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:972,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:973,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:973,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:974,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:975,1
    - Dst: request
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:975,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:976,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:977,1
    - Dst: response
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:977,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:978,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:979,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:979,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:980,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:980,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:981,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:982,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:982,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:983,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:983,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:984,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 986
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - VerifyVector
    - VerifyTable
    - strcmp
    - VerifyVectorOfTables
    - VerifyString
    - response
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
      *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - documentation
    - request
    - VerifyOffsetRequired
    - VerifyOffset
    - VerifyTableStart
    - GetPointer<const reflection::Object *>
    - EndTable
    - attributes
    - name
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    linkageType: ''
    returnType: struct RPCCall
    signature: struct RPCCall flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 994
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 994
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - flatbuffers::Offset<reflection::Object>
    constantsTouched: []
    func_position:
      end: 997
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 997
    functionName: reflection::add_request
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_request(flatbuffers::Offset<reflection::Object> request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - response
    argTypes:
    - flatbuffers::Offset<reflection::Object>
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: reflection::add_response
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_response(flatbuffers::Offset<reflection::Object> response)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
    constantsTouched: []
    func_position:
      end: 1003
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1003
    functionName: reflection::add_attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 1006
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1006
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1010
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1010
    functionName: reflection::RPCCallBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void RPCCallBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1012,1
    - Dst: flatbuffers::Offset<RPCCall>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1013,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1014,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1015,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1018
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - Required
    - flatbuffers::Offset<RPCCall>
    linkageType: ''
    returnType: flatbuffers::Offset<RPCCall>
    signature: flatbuffers::Offset<RPCCall> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RPCCallBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1029,1
    - Dst: RPCCallBuilder::add_attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1030,1
    - Dst: RPCCallBuilder::add_response
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1031,1
    - Dst: RPCCallBuilder::add_request
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1032,1
    - Dst: RPCCallBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1033,1
    - Dst: RPCCallBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1035
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1035
    functionName: reflection::CreateRPCCall
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - RPCCallBuilder::Finish
    - RPCCallBuilder::add_attributes
    - RPCCallBuilder::add_response
    - RPCCallBuilder::add_documentation
    - RPCCallBuilder::add_name
    - RPCCallBuilder::add_request
    linkageType: ''
    returnType: flatbuffers::Offset<RPCCall>
    signature: "flatbuffers::Offset<RPCCall> CreateRPCCall(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<reflection::Object>
      request = 0,\n    flatbuffers::Offset<reflection::Object> response = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1044,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1045,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1046,1
    - Dst: reflection::CreateRPCCall
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1054
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1054
    functionName: reflection::CreateRPCCallDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateRPCCall
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    linkageType: ''
    returnType: flatbuffers::Offset<RPCCall>
    signature: "flatbuffers::Offset<RPCCall> CreateRPCCallDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    flatbuffers::Offset<reflection::Object>
      request = 0,\n    flatbuffers::Offset<reflection::Object> response = 0,\n    std::vector<flatbuffers::Offset<reflection::KeyValue>>
      *attributes = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1066,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1069,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1069,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1072,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1072,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::RPCCall>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1075,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1078,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1081,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1085,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1088,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1089,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1090,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1090,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1091,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1092,1
    - Dst: calls
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1092,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1093,1
    - Dst: calls
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1093,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1094,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1095,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1095,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1096,1
    - Dst: attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1096,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1097,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1098,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1098,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1099,1
    - Dst: documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1099,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1100,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1101,1
    - Dst: declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1101,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1056
    functionDepth: 4
    functionLinenumber: 1056
    functionLinenumberEnd: 1104
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - attributes
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - VerifyString
    - documentation
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::RPCCall>>
      *>
    - EndTable
    - VerifyVector
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    - calls
    - strcmp
    - VerifyOffsetRequired
    - VerifyTableStart
    - VerifyOffset
    - declaration_file
    - VerifyVectorOfTables
    - name
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>
      *>
    linkageType: ''
    returnType: struct Service
    signature: struct Service flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 1112
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1112
    functionName: reflection::add_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_name(flatbuffers::Offset<flatbuffers::String> name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - calls
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::RPCCall>>>
    constantsTouched: []
    func_position:
      end: 1115
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    functionName: reflection::add_calls
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_calls(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::RPCCall>>>
      calls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
    constantsTouched: []
    func_position:
      end: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    functionName: reflection::add_attributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - documentation
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 1121
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1121
    functionName: reflection::add_documentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_documentation(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - declaration_file
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 1124
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1124
    functionName: reflection::add_declaration_file
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_declaration_file(flatbuffers::Offset<flatbuffers::String>
      declaration_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1128
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1128
    functionName: reflection::ServiceBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void ServiceBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1130,1
    - Dst: flatbuffers::Offset<Service>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1131,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1134
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset<Service>
    - EndTable
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<Service>
    signature: flatbuffers::Offset<Service> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServiceBuilder::add_declaration_file
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1145,1
    - Dst: ServiceBuilder::add_documentation
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1146,1
    - Dst: ServiceBuilder::add_attributes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1147,1
    - Dst: ServiceBuilder::add_calls
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1148,1
    - Dst: ServiceBuilder::add_name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1149,1
    - Dst: ServiceBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1151
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1151
    functionName: reflection::CreateService
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - ServiceBuilder::Finish
    - ServiceBuilder::add_declaration_file
    - ServiceBuilder::add_attributes
    - ServiceBuilder::add_documentation
    - ServiceBuilder::add_name
    - ServiceBuilder::add_calls
    linkageType: ''
    returnType: flatbuffers::Offset<Service>
    signature: "flatbuffers::Offset<Service> CreateService(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> name = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::RPCCall>>>
      calls = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::KeyValue>>>
      attributes = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      documentation = 0,\n    flatbuffers::Offset<flatbuffers::String> declaration_file
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1160,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1161,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1162,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1163,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1164,1
    - Dst: reflection::CreateService
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1172
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1172
    functionName: reflection::CreateServiceDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    - reflection::CreateService
    linkageType: ''
    returnType: flatbuffers::Offset<Service>
    signature: "flatbuffers::Offset<Service> CreateServiceDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *name = nullptr,\n    std::vector<flatbuffers::Offset<reflection::RPCCall>>
      *calls = nullptr,\n    std::vector<flatbuffers::Offset<reflection::KeyValue>>
      *attributes = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *documentation = nullptr,\n    const char *declaration_file = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1185,1
    - Dst: filename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1188,1
    - Dst: filename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1188,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1191,1
    - Dst: filename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1191,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1195,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1198,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1199,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1200,1
    - Dst: filename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1200,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1201,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1202,1
    - Dst: included_filenames
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1202,1
    - Dst: VerifyVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1203,1
    - Dst: included_filenames
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1203,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1177
    functionDepth: 4
    functionLinenumber: 1177
    functionLinenumberEnd: 1206
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - included_filenames
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>
      *>
    - VerifyVector
    - VerifyVectorOfStrings
    - GetPointer<const flatbuffers::String *>
    - strcmp
    - VerifyOffsetRequired
    - VerifyTableStart
    - VerifyOffset
    - filename
    - EndTable
    - VerifyString
    linkageType: ''
    returnType: struct SchemaFile
    signature: struct SchemaFile flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 1214
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1214
    functionName: reflection::add_filename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_filename(flatbuffers::Offset<flatbuffers::String> filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - included_filenames
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
    constantsTouched: []
    func_position:
      end: 1217
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1217
    functionName: reflection::add_included_filenames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_included_filenames(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      included_filenames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1221
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1221
    functionName: reflection::SchemaFileBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void SchemaFileBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1223,1
    - Dst: flatbuffers::Offset<SchemaFile>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1224,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1227
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - flatbuffers::Offset<SchemaFile>
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<SchemaFile>
    signature: flatbuffers::Offset<SchemaFile> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SchemaFileBuilder::add_included_filenames
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1235,1
    - Dst: SchemaFileBuilder::add_filename
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1236,1
    - Dst: SchemaFileBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1238
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1238
    functionName: reflection::CreateSchemaFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - SchemaFileBuilder::Finish
    - SchemaFileBuilder::add_filename
    - SchemaFileBuilder::add_included_filenames
    linkageType: ''
    returnType: flatbuffers::Offset<SchemaFile>
    signature: "flatbuffers::Offset<SchemaFile> CreateSchemaFile(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::String> filename = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>>
      included_filenames = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1244,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1245,1
    - Dst: reflection::CreateSchemaFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1250
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1250
    functionName: reflection::CreateSchemaFileDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::CreateString
    - reflection::CreateSchemaFile
    linkageType: ''
    returnType: flatbuffers::Offset<SchemaFile>
    signature: "flatbuffers::Offset<SchemaFile> CreateSchemaFileDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    const char *filename = nullptr,\n    const std::vector<flatbuffers::Offset<flatbuffers::String>>
      *included_filenames = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Object>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1265,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Enum>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1268,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1271,1
    - Dst: GetPointer<const flatbuffers::String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1274,1
    - Dst: GetPointer<const reflection::Object *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1277,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Service>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1280,1
    - Dst: static_cast<reflection::AdvancedFeatures>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1283,1
    - Dst: GetField<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1283,1
    - Dst: GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::SchemaFile>>
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1288,1
    - Dst: VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1291,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1292,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1293,1
    - Dst: objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1293,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1294,1
    - Dst: objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1294,1
    - Dst: VerifyOffsetRequired
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1295,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1296,1
    - Dst: enums
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1296,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1297,1
    - Dst: enums
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1297,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1298,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1299,1
    - Dst: file_ident
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1299,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1300,1
    - Dst: VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1301,1
    - Dst: file_ext
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1301,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1302,1
    - Dst: VerifyTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1303,1
    - Dst: root_table
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1303,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1304,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1305,1
    - Dst: services
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1305,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1306,1
    - Dst: services
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1306,1
    - Dst: VerifyField<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1307,1
    - Dst: VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1308,1
    - Dst: VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1309,1
    - Dst: fbs_files
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1309,1
    - Dst: VerifyVectorOfTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1310,1
    - Dst: fbs_files
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1310,1
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1311,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1252
    functionDepth: 4
    functionLinenumber: 1252
    functionLinenumberEnd: 1313
    functionName: reflection::flatbuffers::Table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - GetField<uint64_t>
    - VerifyVector
    - services
    - enums
    - VerifyTable
    - VerifyVectorOfTables
    - VerifyString
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Enum>>
      *>
    - fbs_files
    - objects
    - VerifyOffsetRequired
    - static_cast<reflection::AdvancedFeatures>
    - root_table
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Service>>
      *>
    - VerifyOffset
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::Object>>
      *>
    - VerifyTableStart
    - GetPointer<const reflection::Object *>
    - EndTable
    - file_ident
    - file_ext
    - VerifyField<uint64_t>
    - GetPointer<const flatbuffers::String *>
    - GetPointer<const flatbuffers::Vector<flatbuffers::Offset<reflection::SchemaFile>>
      *>
    linkageType: ''
    returnType: struct Schema
    signature: struct Schema flatbuffers::Table
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - objects
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Object>>>
    constantsTouched: []
    func_position:
      end: 1321
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1321
    functionName: reflection::add_objects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_objects(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Object>>>
      objects)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enums
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Enum>>>
    constantsTouched: []
    func_position:
      end: 1324
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1324
    functionName: reflection::add_enums
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_enums(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Enum>>>
      enums)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file_ident
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 1327
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1327
    functionName: reflection::add_file_ident
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_file_ident(flatbuffers::Offset<flatbuffers::String> file_ident)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file_ext
    argTypes:
    - flatbuffers::Offset<flatbuffers::String>
    constantsTouched: []
    func_position:
      end: 1330
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1330
    functionName: reflection::add_file_ext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_file_ext(flatbuffers::Offset<flatbuffers::String> file_ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root_table
    argTypes:
    - flatbuffers::Offset<reflection::Object>
    constantsTouched: []
    func_position:
      end: 1333
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1333
    functionName: reflection::add_root_table
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_root_table(flatbuffers::Offset<reflection::Object> root_table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - services
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Service>>>
    constantsTouched: []
    func_position:
      end: 1336
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1336
    functionName: reflection::add_services
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_services(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Service>>>
      services)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1338,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - advanced_features
    argTypes:
    - reflection::AdvancedFeatures
    constantsTouched: []
    func_position:
      end: 1339
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1339
    functionName: reflection::add_advanced_features
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddElement
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void add_advanced_features(reflection::AdvancedFeatures advanced_features)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fbs_files
    argTypes:
    - flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::SchemaFile>>>
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: reflection::add_fbs_files
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - AddOffset
    linkageType: ''
    returnType: void
    signature: void add_fbs_files(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::SchemaFile>>>
      fbs_files)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1346
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1346
    functionName: reflection::SchemaBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - StartTable
    linkageType: ''
    returnType: void
    signature: void SchemaBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1348,1
    - Dst: flatbuffers::Offset<Schema>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1349,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1350,1
    - Dst: Required
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    functionName: reflection::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - EndTable
    - flatbuffers::Offset<Schema>
    - Required
    linkageType: ''
    returnType: flatbuffers::Offset<Schema>
    signature: flatbuffers::Offset<Schema> Finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<reflection::AdvancedFeatures>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1364,1
    - Dst: SchemaBuilder::add_advanced_features
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1367,1
    - Dst: SchemaBuilder::add_fbs_files
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1368,1
    - Dst: SchemaBuilder::add_services
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1369,1
    - Dst: SchemaBuilder::add_root_table
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1370,1
    - Dst: SchemaBuilder::add_file_ext
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1371,1
    - Dst: SchemaBuilder::add_file_ident
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1372,1
    - Dst: SchemaBuilder::add_enums
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1373,1
    - Dst: SchemaBuilder::add_objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1374,1
    - Dst: SchemaBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1376
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1376
    functionName: reflection::CreateSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - SchemaBuilder::Finish
    - SchemaBuilder::add_root_table
    - SchemaBuilder::add_fbs_files
    - SchemaBuilder::add_enums
    - SchemaBuilder::add_file_ident
    - SchemaBuilder::add_services
    - SchemaBuilder::add_objects
    - SchemaBuilder::add_advanced_features
    - SchemaBuilder::add_file_ext
    - static_cast<reflection::AdvancedFeatures>
    linkageType: ''
    returnType: flatbuffers::Offset<Schema>
    signature: "flatbuffers::Offset<Schema> CreateSchema(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Object>>>
      objects = 0,\n    flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Enum>>>
      enums = 0,\n    flatbuffers::Offset<flatbuffers::String> file_ident = 0,\n    flatbuffers::Offset<flatbuffers::String>
      file_ext = 0,\n    flatbuffers::Offset<reflection::Object> root_table = 0,\n
      \   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::Service>>>
      services = 0,\n    reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),\n
      \   flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<reflection::SchemaFile>>>
      fbs_files = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<reflection::AdvancedFeatures>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1386,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1388,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1389,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1390,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1391,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1392,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1393,1
    - Dst: reflection::CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _fbb
    argTypes:
    - flatbuffers::FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1404
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1404
    functionName: reflection::CreateSchemaDirect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - static_cast<reflection::AdvancedFeatures>
    - flatbuffers::FlatBufferBuilder::CreateString
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    - reflection::CreateSchema
    linkageType: ''
    returnType: flatbuffers::Offset<Schema>
    signature: "flatbuffers::Offset<Schema> CreateSchemaDirect(\n    flatbuffers::FlatBufferBuilder
      &_fbb,\n    std::vector<flatbuffers::Offset<reflection::Object>> *objects =
      nullptr,\n    std::vector<flatbuffers::Offset<reflection::Enum>> *enums = nullptr,\n
      \   const char *file_ident = nullptr,\n    const char *file_ext = nullptr,\n
      \   flatbuffers::Offset<reflection::Object> root_table = 0,\n    std::vector<flatbuffers::Offset<reflection::Service>>
      *services = nullptr,\n    reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),\n
      \   std::vector<flatbuffers::Offset<reflection::SchemaFile>> *fbs_files = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot<reflection::Schema>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1408
    functionName: reflection::GetSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetRoot<reflection::Schema>
    linkageType: ''
    returnType: reflection::Schema
    signature: reflection::Schema *GetSchema(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetSizePrefixedRoot<reflection::Schema>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1412
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1412
    functionName: reflection::GetSizePrefixedSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetSizePrefixedRoot<reflection::Schema>
    linkageType: ''
    returnType: reflection::Schema
    signature: reflection::Schema *GetSizePrefixedSchema(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1416
    functionName: reflection::SchemaIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SchemaIdentifier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::BufferHasIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1419,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1421
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1421
    functionName: reflection::SchemaBufferHasIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::BufferHasIdentifier
    - reflection::SchemaIdentifier
    linkageType: ''
    returnType: bool
    signature: bool SchemaBufferHasIdentifier(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::BufferHasIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1424,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: reflection::SizePrefixedSchemaBufferHasIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - flatbuffers::BufferHasIdentifier
    - reflection::SchemaIdentifier
    linkageType: ''
    returnType: bool
    signature: bool SizePrefixedSchemaBufferHasIdentifier(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1430,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: reflection::VerifySchemaBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - reflection::SchemaIdentifier
    - flatbuffers::Verifier::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: "bool VerifySchemaBuffer(\n    flatbuffers::Verifier &verifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::VerifySizePrefixedBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1435,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 1436
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1436
    functionName: reflection::VerifySizePrefixedSchemaBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - reflection::SchemaIdentifier
    - flatbuffers::Verifier::VerifySizePrefixedBuffer
    linkageType: ''
    returnType: bool
    signature: "bool VerifySizePrefixedSchemaBuffer(\n    flatbuffers::Verifier &verifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: reflection::SchemaExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SchemaExtension()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1445,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<reflection::Schema>
    constantsTouched: []
    func_position:
      end: 1446
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1446
    functionName: reflection::FinishSchemaBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - reflection::SchemaIdentifier
    - flatbuffers::FlatBufferBuilder::Finish
    linkageType: ''
    returnType: void
    signature: "void FinishSchemaBuffer(\n    flatbuffers::FlatBufferBuilder &fbb,\n
      \   flatbuffers::Offset<reflection::Schema> root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::FinishSizePrefixed
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1451,1
    - Dst: reflection::SchemaIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - root
    argTypes:
    - flatbuffers::FlatBufferBuilder
    - flatbuffers::Offset<reflection::Schema>
    constantsTouched: []
    func_position:
      end: 1452
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1452
    functionName: reflection::FinishSizePrefixedSchemaBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection_generated.h
    functionUses: 0
    functionsReached:
    - reflection::SchemaIdentifier
    - flatbuffers::FlatBufferBuilder::FinishSizePrefixed
    linkageType: ''
    returnType: void
    signature: "void FinishSizePrefixedSchemaBuffer(\n    flatbuffers::FlatBufferBuilder
      &fbb,\n    flatbuffers::Offset<reflection::Schema> root)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadScalar<soffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: flatbuffers::Table::GetVTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - ReadScalar<soffset_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetVTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetVTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:37,1
    - Dst: ReadScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:39,1
    - Dst: ReadScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: flatbuffers::Table::GetOptionalFieldOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Table::GetVTable
    - ReadScalar<voffset_t>
    linkageType: ''
    returnType: voffset_t
    signature: voffset_t GetOptionalFieldOffset(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:46,1
    - Dst: ReadScalar<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - field
    - defaultval
    argTypes:
    - voffset_t
    - T
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: flatbuffers::Table::GetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - ReadScalar<T>
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: T
    signature: T GetField(voffset_t field, T defaultval) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:51,1
    - Dst: reinterpret_cast<P>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:53,1
    - Dst: ReadScalar<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: flatbuffers::Table::GetPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - ReadScalar<uoffset_t>
    - reinterpret_cast<P>
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: P
    signature: P GetPointer(voffset_t field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: flatbuffers::Table::GetPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - const_cast<Table *>
    linkageType: ''
    returnType: P
    signature: P GetPointer(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:61,1
    - Dst: const_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:62,1
    - Dst: reinterpret_cast<P>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: flatbuffers::Table::GetStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<P>
    - const_cast<uint8_t *>
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: P
    signature: P GetStruct(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:68,1
    - Dst: Optional<Face>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:70,1
    - Dst: static_cast<Face>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:70,1
    - Dst: ReadScalar<Raw>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:70,1
    - Dst: Optional<Face>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: flatbuffers::Table::GetOptional
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Optional<Face>
    - ReadScalar<Raw>
    - static_cast<Face>
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: flatbuffers::Optional<Face>
    signature: flatbuffers::Optional<Face> GetOptional(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:75,1
    - Dst: IsTheSameAs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:76,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - field
    - val
    - def
    argTypes:
    - voffset_t
    - T
    - T
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: flatbuffers::Table::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - IsTheSameAs
    - WriteScalar
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: bool SetField(voffset_t field, T val, T def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:81,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - field
    - val
    argTypes:
    - voffset_t
    - T
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: flatbuffers::Table::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - WriteScalar
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: bool SetField(voffset_t field, T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:88,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:90,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - field
    - val
    argTypes:
    - voffset_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: flatbuffers::Table::SetPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - WriteScalar
    - static_cast<uoffset_t>
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: bool SetPointer(voffset_t field, const uint8_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: flatbuffers::Table::GetAddressOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetAddressOf(voffset_t field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: flatbuffers::Table::GetAddressOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - const_cast<Table *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetAddressOf(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: flatbuffers::Table::CheckField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: bool CheckField(voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier::VerifyTableStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verifier
    argTypes:
    - Verifier
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: flatbuffers::Table::VerifyTableStart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyTableStart
    linkageType: ''
    returnType: bool
    signature: bool VerifyTableStart(Verifier &verifier) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:119,1
    - Dst: Verifier::VerifyField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - verifier
    - field
    - align
    argTypes:
    - Verifier
    - voffset_t
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: flatbuffers::Table::VerifyField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyField
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: "bool VerifyField(const Verifier &verifier, voffset_t field,\n                   size_t
      align) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:128,1
    - Dst: Verifier::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:129,1
    - Dst: Verifier::VerifyField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - verifier
    - field
    - align
    argTypes:
    - Verifier
    - voffset_t
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: flatbuffers::Table::VerifyFieldRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyField
    - flatbuffers::Table::GetOptionalFieldOffset
    - Verifier::Check
    linkageType: ''
    returnType: bool
    signature: "bool VerifyFieldRequired(const Verifier &verifier, voffset_t field,\n
      \                          size_t align) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:135,1
    - Dst: Verifier::VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - verifier
    - field
    argTypes:
    - Verifier
    - voffset_t
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: flatbuffers::Table::VerifyOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyOffset
    - flatbuffers::Table::GetOptionalFieldOffset
    linkageType: ''
    returnType: bool
    signature: bool VerifyOffset(const Verifier &verifier, voffset_t field) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Table::GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:140,1
    - Dst: Verifier::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:141,1
    - Dst: Verifier::VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - verifier
    - field
    argTypes:
    - Verifier
    - voffset_t
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: flatbuffers::Table::VerifyOffsetRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyOffset
    - flatbuffers::Table::GetOptionalFieldOffset
    - Verifier::Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyOffsetRequired(const Verifier &verifier, voffset_t field)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOptionalFieldOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:160,1
    - Dst: Optional<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:162,1
    - Dst: ReadScalar<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:162,1
    - Dst: Optional<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: "Table::GetOptional<uint8_t, bool>(\n    voffset_t field) const"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/table.h
    functionUses: 0
    functionsReached:
    - Optional<bool>
    - ReadScalar<uint8_t>
    - GetOptionalFieldOffset
    linkageType: ''
    returnType: flatbuffers::Optional<bool>
    signature: "flatbuffers::Optional<bool> Table::GetOptional<uint8_t, bool>(\n    voffset_t
      field) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verifier::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h:30,1
    - Dst: VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h:30,1
    - Dst: flatbuffers::Vector<uint8_t>*::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h:31,1
    - Dst: flatbuffers::Vector<uint8_t>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h:31,1
    - Dst: flatbuffers::Verifier::GetFlexReuseTracker
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nested
    - verifier
    argTypes:
    - flatbuffers::Vector<uint8_t>*
    - flatbuffers::Verifier
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: flexbuffers::VerifyNestedFlexBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flex_flat_util.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Vector<uint8_t>*::size
    - VerifyBuffer
    - flatbuffers::Vector<uint8_t>*::data
    - flatbuffers::Verifier::Check
    - flatbuffers::Verifier::GetFlexReuseTracker
    linkageType: ''
    returnType: bool
    signature: "bool VerifyNestedFlexBuffer(\n    const flatbuffers::Vector<uint8_t>
      *const nested,\n    flatbuffers::Verifier &verifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - file_identifier
    - schema_path
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: flatbuffers::Registry::Register
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Register(const char *file_identifier, const char *schema_path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:49,1
    - Dst: flatbuffers::Registry::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:53,1
    - Dst: GenerateText
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - flatbuf
    - len
    - dest
    argTypes:
    - uint8_t*
    - size_t
    - std::string*
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: flatbuffers::Registry::FlatBufferToText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Registry::LoadSchema
    - GenerateText
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: bool
    signature: bool FlatBufferToText(const uint8_t *flatbuf, size_t len, std::string
      *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Registry::LoadSchema
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:69,1
    - Dst: DetachedBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:69,1
    - Dst: Parser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:71,1
    - Dst: DetachedBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:73,1
    - Dst: Parser::builder_::Release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - text
    - file_identifier
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: flatbuffers::Registry::TextToFlatBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Registry::LoadSchema
    - Parser::Parse
    - DetachedBuffer
    - Parser::builder_::Release
    linkageType: ''
    returnType: DetachedBuffer
    signature: "DetachedBuffer TextToFlatBuffer(const char *text,\n                                  const
      char *file_identifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - IDLOptions
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: flatbuffers::Registry::SetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOptions(const IDLOptions &opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: flatbuffers::Registry::AddIncludeDirectory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddIncludeDirectory(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: '&GetLastError()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetLastError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:92,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:93,1
    - Dst: LoadFile
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:101,1
    - Dst: auto::path_::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:101,1
    - Dst: Parser*::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:107,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:107,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:107,1
    - Dst: auto::path_::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ident
    - parser
    argTypes:
    - std::string
    - Parser*
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: flatbuffers::Registry::LoadSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/registry.h
    functionUses: 2
    functionsReached:
    - end
    - find
    - LoadFile
    - Parser*::Parse
    - auto::path_::c_str
    - std::string::c_str
    - data
    linkageType: ''
    returnType: bool
    signature: bool LoadSchema(const std::string &ident, Parser *parser)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~BfbsGenerator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/bfbs_generator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BfbsGenerator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/struct.h:31,1
    - Dst: reinterpret_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/struct.h:35,1
    - Dst: Struct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/struct.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: flatbuffers::FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/struct.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T>
    - flatbuffers::ReadScalar
    - Struct
    linkageType: ''
    returnType: class Struct
    signature: class Struct FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: flatbuffers::unique_ptr::unique_ptr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: flatbuffers::unique_ptr::unique_ptr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(T* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' u'
    argTypes:
    - std::unique_ptr<T>
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: flatbuffers::unique_ptr::unique_ptr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void unique_ptr(std::unique_ptr<T>&& u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' u'
    argTypes:
    - unique_ptr
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: flatbuffers::unique_ptr::unique_ptr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr&& u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:122,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' u'
    argTypes:
    - std::unique_ptr<T>
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: '& operator=(std::unique_ptr<T>&& u)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - swq_expr_node::reset
    - release
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(std::unique_ptr<T>&& u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swq_expr_node::reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:126,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' u'
    argTypes:
    - unique_ptr
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: '& operator=(unique_ptr&& u)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - swq_expr_node::reset
    - release
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr&& u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T>::operator=
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: '& operator=(T* p)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<T>::operator=
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(T* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: flatbuffers::FLATBUFFERS_CONSTEXPR_CPP11::nullopt_t
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FLATBUFFERS_CONSTEXPR_CPP11 nullopt_t(int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Optional
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:181,1
    - Dst: value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:184,1
    - Dst: has_value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:184,1
    - Dst: value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:187,1
    - Dst: has_value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:187,1
    - Dst: value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:190,1
    - Dst: has_value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:190,1
    - Dst: value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:193,1
    - Dst: has_value_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:193,1
    - Dst: T
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:202,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:218,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:219,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:235,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:235,1
    - Dst: has_value
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 246
    functionName: flatbuffers::FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - has_value_
    - Optional
    - has_value
    - T
    - FLATBUFFERS_ASSERT
    - swap
    - value_
    linkageType: ''
    returnType: class Optional
    signature: class Optional FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:269,1
    - Dst: static_cast<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:269,1
    - Dst: static_cast<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - pointer
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: flatbuffers::internal::SpanIterator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SpanIterator(pointer ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: operator*() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: operator->()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: '& operator++()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpanIterator
    signature: SpanIterator & operator++()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: operator++(int)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpanIterator
    signature: SpanIterator operator++(int)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SpanIterator
    - SpanIterator
    constantsTouched: []
    func_position:
      end: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: operator== (const SpanIterator& lhs, const SpanIterator& rhs)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator== (const SpanIterator& lhs, const SpanIterator& rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SpanIterator
    - SpanIterator
    constantsTouched: []
    func_position:
      end: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    functionName: operator!= (const SpanIterator& lhs, const SpanIterator& rhs)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!= (const SpanIterator& lhs, const SpanIterator& rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:354,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:359,1
    - Dst: Iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:370,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:370,1
    - Dst: Iterator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:371,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:371,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:371,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:377,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:381,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:381,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:398,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:399,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:406,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:407,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:418,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:419,1
    - Dst: element_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:431,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:437,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:437,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:437,1
    - Dst: data_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:447,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:447,1
    - Dst: count_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:447,1
    - Dst: span
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:457,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:457,1
    - Dst: flatbuffers::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 466
    functionName: flatbuffers::FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - data_
    - count_
    - flatbuffers::size
    - Iterator
    - span
    - element_type
    - flatbuffers::data
    linkageType: ''
    returnType: class span
    signature: class span FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:472,1
    - Dst: span<U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: flatbuffers::FLATBUFFERS_NOEXCEPT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - U
    - span<U, N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 FLATBUFFERS_NOEXCEPT
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - U[]
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: flatbuffers::span<const U, N> make_span(const U(&arr)[N])
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - span<const U, N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const U, N> make_span(const
      U(&arr)[N])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::array<U, N>
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: flatbuffers::span<U, N> make_span(std::array<U, N> &arr)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - span<U, N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<U, N> make_span(std::array<U,
      N> &arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const U, N>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::array<U, N>
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: flatbuffers::span<const U, N> make_span(const std::array<U, N> &arr)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - span<const U, N>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const U, N> make_span(const
      std::array<U, N> &arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<U, dynamic_extent>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - count
    argTypes:
    - U*
    - std::size_t
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: flatbuffers::span<U, dynamic_extent> make_span(U *first, std::size_t
      count)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - span<U, dynamic_extent>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<U, dynamic_extent> make_span(U
      *first, std::size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: span<const U, dynamic_extent>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - count
    argTypes:
    - U*
    - std::size_t
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: flatbuffers::span<const U, dynamic_extent> make_span(const U *first,
      std::size_t count)
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/stl_emulation.h
    functionUses: 0
    functionsReached:
    - span<const U, dynamic_extent>
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR_CPP11
    signature: FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span<const U, dynamic_extent>
      make_span(const U *first, std::size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: flatbuffers::StartSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartSequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: flatbuffers::EndSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndSequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: flatbuffers::Field
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Field(size_t /*field_idx*/, size_t /*set_idx*/,\n                     ElementaryType
      /*type*/, bool /*is_vector*/,\n                     const TypeTable * /*type_table*/,
      const char * /*name*/,\n                     const uint8_t * /*val*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: flatbuffers::UType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UType(uint8_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: flatbuffers::Bool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(bool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: flatbuffers::Char
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Char(int8_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: flatbuffers::UChar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UChar(uint8_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: flatbuffers::Short
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Short(int16_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: flatbuffers::UShort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UShort(uint16_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: flatbuffers::Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Int(int32_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: flatbuffers::UInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UInt(uint32_t, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: flatbuffers::Long
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Long(int64_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: flatbuffers::ULong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ULong(uint64_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: flatbuffers::Float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Float(float)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: flatbuffers::Double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Double(double)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: flatbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(const String *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: flatbuffers::Unknown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unknown(const uint8_t *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: flatbuffers::StartVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: flatbuffers::EndVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: flatbuffers::Element
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Element(size_t /*i*/, ElementaryType /*type*/,\n                       const
      TypeTable * /*type_table*/,\n                       const uint8_t * /*val*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ~IterationVisitor()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IterationVisitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:92,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:93,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - type
    - type_table
    argTypes:
    - ElementaryType
    - TypeTable*
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: flatbuffers::InlineSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t InlineSize(ElementaryType type, const TypeTable *type_table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - enum_val
    - values
    - num_values
    argTypes:
    - int64_t
    - int64_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: flatbuffers::LookupEnum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: int64_t
    signature: "int64_t LookupEnum(int64_t enum_val, const int64_t *values,\n                          size_t
      num_values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::LookupEnum
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:110,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:110,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - tval
    - type_table
    argTypes:
    - T
    - TypeTable*
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: flatbuffers::EnumName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - flatbuffers::LookupEnum
    linkageType: ''
    returnType: char
    signature: char *EnumName(T tval, const TypeTable *type_table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:126,1
    - Dst: IterationVisitor*::UType
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:127,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:127,1
    - Dst: IterationVisitor*::Bool
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:131,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:131,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:135,1
    - Dst: IterationVisitor*::Char
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:136,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:136,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:140,1
    - Dst: IterationVisitor*::UChar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:141,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:141,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:145,1
    - Dst: IterationVisitor*::Short
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:146,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:146,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:150,1
    - Dst: IterationVisitor*::UShort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:151,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:151,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:155,1
    - Dst: IterationVisitor*::Int
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:156,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:156,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:160,1
    - Dst: IterationVisitor*::UInt
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:161,1
    - Dst: flatbuffers::EnumName
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:161,1
    - Dst: IterationVisitor*::Long
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:165,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:165,1
    - Dst: IterationVisitor*::ULong
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:169,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:169,1
    - Dst: IterationVisitor*::Float
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:173,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:173,1
    - Dst: IterationVisitor*::Double
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:177,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:177,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:181,1
    - Dst: IterationVisitor*::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:182,1
    - Dst: reinterpret_cast<const String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:182,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:188,1
    - Dst: flatbuffers::IterateObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:189,1
    - Dst: flatbuffers::IterateObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:191,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:193,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:194,1
    - Dst: reinterpret_cast<const Vector<uint8_t> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:197,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:198,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:198,1
    - Dst: flatbuffers::LookupEnum
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:201,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:203,1
    - Dst: flatbuffers::IterateObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:208,1
    - Dst: IterationVisitor*::String
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:212,1
    - Dst: reinterpret_cast<const String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:212,1
    - Dst: IterationVisitor*::Unknown
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:214,1
    - Dst: IterationVisitor*::Unknown
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:217,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:221,1
    - Dst: IterationVisitor*::Unknown
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:226,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 98
    argCount: 6
    argNames:
    - type
    - val
    - type_table
    - prev_val
    - vector_index
    - visitor
    argTypes:
    - ElementaryType
    - uint8_t*
    - TypeTable*
    - uint8_t*
    - soffset_t
    - IterationVisitor*
    constantsTouched: []
    func_position:
      end: 230
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 230
    functionName: flatbuffers::IterateValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - IterationVisitor*::Bool
    - IterationVisitor*::ULong
    - IterationVisitor*::UChar
    - IterationVisitor*::UInt
    - IterationVisitor*::Short
    - IterationVisitor*::UType
    - IterationVisitor*::Int
    - IterationVisitor*::Char
    - reinterpret_cast<const String *>
    - IterationVisitor*::Double
    - flatbuffers::IterateObject
    - FLATBUFFERS_ASSERT
    - IterationVisitor*::Float
    - flatbuffers::ReadScalar
    - IterationVisitor*::Long
    - IterationVisitor*::Unknown
    - auto::Get
    - flatbuffers::EnumName
    - static_cast<uoffset_t>
    - IterationVisitor*::UShort
    - flatbuffers::LookupEnum
    - reinterpret_cast<const Vector<uint8_t> *>
    - IterationVisitor*::String
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: "void IterateValue(ElementaryType type, const uint8_t *val,\n                         const
      TypeTable *type_table, const uint8_t *prev_val,\n                         soffset_t
      vector_index, IterationVisitor *visitor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IterationVisitor*::StartSequence
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:234,1
    - Dst: static_cast<ElementaryType>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:240,1
    - Dst: reinterpret_cast<const Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:248,1
    - Dst: flatbuffers::FieldIndexToOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:249,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:249,1
    - Dst: IterationVisitor*::Field
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:253,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:261,1
    - Dst: reinterpret_cast<const Vector<uint8_t> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:262,1
    - Dst: auto::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:263,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:264,1
    - Dst: IterationVisitor*::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:270,1
    - Dst: IterationVisitor*::Element
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:272,1
    - Dst: flatbuffers::IterateValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:273,1
    - Dst: static_cast<soffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:273,1
    - Dst: flatbuffers::InlineSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:275,1
    - Dst: IterationVisitor*::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:277,1
    - Dst: flatbuffers::IterateValue
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:279,1
    - Dst: IterationVisitor*::EndSequence
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - obj
    - type_table
    - visitor
    argTypes:
    - uint8_t*
    - TypeTable*
    - IterationVisitor*
    constantsTouched: []
    func_position:
      end: 285
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 285
    functionName: flatbuffers::IterateObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 1
    functionsReached:
    - flatbuffers::ReadScalar
    - static_cast<soffset_t>
    - IterationVisitor*::EndVector
    - IterationVisitor*::EndSequence
    - static_cast<ElementaryType>
    - static_cast<voffset_t>
    - flatbuffers::IterateValue
    - flatbuffers::InlineSize
    - IterationVisitor*::Field
    - IterationVisitor*::StartSequence
    - reinterpret_cast<const Vector<uint8_t> *>
    - IterationVisitor*::Element
    - auto::size
    - flatbuffers::FieldIndexToOffset
    - reinterpret_cast<const Table *>
    - auto::Data
    - IterationVisitor*::StartVector
    linkageType: ''
    returnType: void
    signature: "void IterateObject(const uint8_t *obj, const TypeTable *type_table,\n
      \                         IterationVisitor *visitor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IterateObject
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:290,1
    - Dst: flatbuffers::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - type_table
    - callback
    argTypes:
    - uint8_t*
    - TypeTable*
    - IterationVisitor*
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: flatbuffers::IterateFlatBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IterateObject
    - flatbuffers::GetRoot
    linkageType: ''
    returnType: void
    signature: "void IterateFlatBuffer(const uint8_t *buffer,\n                              const
      TypeTable *type_table,\n                              IterationVisitor *callback)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - delimiter
    - quotes
    - indent
    argTypes:
    - std::string
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: flatbuffers::ToStringVisitor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ToStringVisitor(std::string delimiter, bool quotes, std::string
      indent,\n                  bool vdelimited = true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - delimiter
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: flatbuffers::ToStringVisitor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ToStringVisitor(std::string delimiter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: flatbuffers::append_indent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void append_indent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: flatbuffers::StartSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartSequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::append_indent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: flatbuffers::EndSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::append_indent
    linkageType: ''
    returnType: void
    signature: void EndSequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::append_indent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - set_idx
    - name
    - val
    argTypes:
    - size_t
    - char*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: flatbuffers::Field
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::append_indent
    linkageType: ''
    returnType: void
    signature: "void Field(size_t /*field_idx*/, size_t set_idx, ElementaryType /*type*/,\n
      \            bool /*is_vector*/, const TypeTable * /*type_table*/,\n             const
      char *name, const uint8_t *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - T
    - char*
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: flatbuffers::Named
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    linkageType: ''
    returnType: void
    signature: void Named(T x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: flatbuffers::UType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void UType(uint8_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    functionName: flatbuffers::Bool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(bool x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - int8_t
    - char*
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: flatbuffers::Char
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void Char(int8_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: flatbuffers::UChar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void UChar(uint8_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - int16_t
    - char*
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: flatbuffers::Short
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void Short(int16_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: flatbuffers::UShort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void UShort(uint16_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: flatbuffers::Int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void Int(int32_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Named
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: flatbuffers::UInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Named
    linkageType: ''
    returnType: void
    signature: void UInt(uint32_t x, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: flatbuffers::Long
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    linkageType: ''
    returnType: void
    signature: void Long(int64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: flatbuffers::ULong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    linkageType: ''
    returnType: void
    signature: void ULong(uint64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: flatbuffers::Float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    linkageType: ''
    returnType: void
    signature: void Float(float x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::NumToString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 368
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 368
    functionName: flatbuffers::Double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::NumToString
    linkageType: ''
    returnType: void
    signature: void Double(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:370,1
    - Dst: struct String*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:370,1
    - Dst: struct String*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct String*
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: flatbuffers::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - struct String*::c_str
    - flatbuffers::EscapeString
    - struct String*::size
    linkageType: ''
    returnType: void
    signature: void String(const struct String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: flatbuffers::Unknown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unknown(const uint8_t *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::append_indent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: flatbuffers::StartVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::append_indent
    linkageType: ''
    returnType: void
    signature: void StartVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::append_indent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: flatbuffers::EndVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::append_indent
    linkageType: ''
    returnType: void
    signature: void EndVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::append_indent
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: flatbuffers::Element
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::append_indent
    linkageType: ''
    returnType: void
    signature: "void Element(size_t i, ElementaryType /*type*/,\n               const
      TypeTable * /*type_table*/, const uint8_t * /*val*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::IterateFlatBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - type_table
    argTypes:
    - uint8_t*
    - TypeTable*
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: flatbuffers::FlatBufferToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/minireflect.h
    functionUses: 0
    functionsReached:
    - flatbuffers::IterateFlatBuffer
    linkageType: ''
    returnType: std::string
    signature: "std::string FlatBufferToString(const uint8_t *buffer,\n                                      const
      TypeTable *type_table,\n                                      bool multi_line
      = false,\n                                      bool vector_delimited = true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: flatbuffers::DefaultAllocator::allocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached:
    - uint8_t::uint8_t
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *allocate(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: flatbuffers::DefaultAllocator::deallocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void deallocate(uint8_t *p, size_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: flatbuffers::DefaultAllocator::dealloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void dealloc(void *p, size_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Allocator*::allocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:42,1
    - Dst: DefaultAllocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - allocator
    - size
    argTypes:
    - Allocator*
    - size_t
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: flatbuffers::Allocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached:
    - DefaultAllocator
    - Allocator*::allocate
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Allocate(Allocator *allocator, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Allocator*::deallocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:48,1
    - Dst: DefaultAllocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - allocator
    - p
    - size
    argTypes:
    - Allocator*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: flatbuffers::Deallocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached:
    - DefaultAllocator
    - Allocator*::deallocate
    linkageType: ''
    returnType: void
    signature: void Deallocate(Allocator *allocator, uint8_t *p, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Allocator*::reallocate_downward
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:56,1
    - Dst: DefaultAllocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - allocator
    - old_p
    - old_size
    - new_size
    - in_use_back
    - in_use_front
    argTypes:
    - Allocator*
    - uint8_t*
    - size_t
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: flatbuffers::ReallocateDownward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/default_allocator.h
    functionUses: 0
    functionsReached:
    - DefaultAllocator
    - Allocator*::reallocate_downward
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *ReallocateDownward(Allocator *allocator, uint8_t *old_p,\n
      \                                  size_t old_size, size_t new_size,\n                                   size_t
      in_use_back, size_t in_use_front)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:28,1
    - Dst: buf_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:30,1
    - Dst: size_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:31,1
    - Dst: depth_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:32,1
    - Dst: max_depth_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:33,1
    - Dst: num_tables_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:34,1
    - Dst: max_tables_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:35,1
    - Dst: upper_bound_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:36,1
    - Dst: check_alignment_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:37,1
    - Dst: flex_reuse_tracker_
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:38,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: flatbuffers::FLATBUFFERS_FINAL_CLASS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - upper_bound_
    - flex_reuse_tracker_
    - max_depth_
    - depth_
    - size_
    - check_alignment_
    - FLATBUFFERS_ASSERT
    - Verifier
    - num_tables_
    - buf_
    - max_tables_
    linkageType: ''
    returnType: class Verifier
    signature: class Verifier FLATBUFFERS_FINAL_CLASS
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ok
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: flatbuffers::Check
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool Check(bool ok) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - elem
    - elem_len
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: flatbuffers::Verify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Check
    linkageType: ''
    returnType: bool
    signature: bool Verify(size_t elem, size_t elem_len) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - elem
    - align
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: flatbuffers::VerifyAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyAlignment(size_t elem, size_t align) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyAlignment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:74,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: flatbuffers::Verify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - flatbuffers::VerifyAlignment
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: bool Verify(size_t elem) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:78,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: flatbuffers::VerifyFromPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: bool VerifyFromPointer(const uint8_t *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:85,1
    - Dst: flatbuffers::VerifyAlignment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:86,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - base
    - elem_off
    - elem_len
    - align
    argTypes:
    - uint8_t*
    - voffset_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: flatbuffers::VerifyFieldStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - flatbuffers::VerifyAlignment
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: "bool VerifyFieldStruct(const uint8_t *base, voffset_t elem_off,\n
      \                        size_t elem_len, size_t align) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:92,1
    - Dst: flatbuffers::VerifyAlignment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:93,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - base
    - elem_off
    - align
    argTypes:
    - uint8_t*
    - voffset_t
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: flatbuffers::VerifyField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - flatbuffers::VerifyAlignment
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: "bool VerifyField(const uint8_t *base, voffset_t elem_off,\n                   size_t
      align) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T*::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: flatbuffers::VerifyTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - T*::Verify
    linkageType: ''
    returnType: bool
    signature: bool VerifyTable(const T *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyVectorOrString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:103,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<T>*
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: flatbuffers::VerifyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::VerifyVectorOrString
    linkageType: ''
    returnType: bool
    signature: bool VerifyVector(const Vector<T> *vec) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:109,1
    - Dst: reinterpret_cast<const Vector<T> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<const T *>*
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: flatbuffers::VerifyVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const Vector<T> *>
    - flatbuffers::VerifyVector
    linkageType: ''
    returnType: bool
    signature: bool VerifyVector(const Vector<const T *> *vec) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyVectorOrString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:115,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:115,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:117,1
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: flatbuffers::VerifyString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::VerifyVectorOrString
    - flatbuffers::Check
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: bool VerifyString(const String *str) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:124,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:126,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:129,1
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:131,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - vec
    - elem_size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: flatbuffers::VerifyVectorOrString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 2
    functionsReached:
    - flatbuffers::ReadScalar
    - static_cast<size_t>
    - flatbuffers::Check
    - flatbuffers::Verify
    linkageType: ''
    returnType: bool
    signature: "bool VerifyVectorOrString(const uint8_t *vec, size_t elem_size,\n
      \                           size_t *end = nullptr) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector<Offset<String>>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:141,1
    - Dst: flatbuffers::VerifyString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:142,1
    - Dst: Vector<Offset<String>>*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<Offset<String>>*
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: flatbuffers::VerifyVectorOfStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - Vector<Offset<String>>*::Get
    - flatbuffers::VerifyString
    - Vector<Offset<String>>*::size
    linkageType: ''
    returnType: bool
    signature: bool VerifyVectorOfStrings(const Vector<Offset<String>> *vec) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector<Offset<T>>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:151,1
    - Dst: Vector<Offset<T>>*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vector<Offset<T>>*
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: flatbuffers::VerifyVectorOfTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - Vector<Offset<T>>*::Get
    - Vector<Offset<T>>*::size
    linkageType: ''
    returnType: bool
    signature: bool VerifyVectorOfTables(const Vector<Offset<T>> *vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:161,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:162,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:165,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:165,1
    - Dst: flatbuffers::VerifyComplexity
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:167,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:167,1
    - Dst: flatbuffers::VerifyAlignment
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:168,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:168,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:170,1
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:171,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - table
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: flatbuffers::VerifyTableStart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - flatbuffers::ReadScalar
    - static_cast<size_t>
    - flatbuffers::VerifyAlignment
    - flatbuffers::Check
    - flatbuffers::Verify
    - flatbuffers::VerifyComplexity
    linkageType: ''
    returnType: bool
    signature: "bool VerifyTableStart(\n      const uint8_t *table)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:176,1
    - Dst: flatbuffers::BufferHasIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:177,1
    - Dst: flatbuffers::VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:182,1
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - identifier
    - start
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: flatbuffers::VerifyBufferFromStart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    - flatbuffers::BufferHasIdentifier
    - flatbuffers::Check
    - flatbuffers::VerifyOffset
    linkageType: ''
    returnType: bool
    signature: bool VerifyBufferFromStart(const char *identifier, size_t start)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vector<uint8_t>*::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:196,1
    - Dst: Vector<uint8_t>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:196,1
    - Dst: Verifier::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - identifier
    argTypes:
    - Vector<uint8_t>*
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: flatbuffers::VerifyNestedFlatBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - Verifier::VerifyBuffer
    - Vector<uint8_t>*::size
    - Vector<uint8_t>*::data
    linkageType: ''
    returnType: bool
    signature: "bool VerifyNestedFlatBuffer(const Vector<uint8_t> *buf,\n                              const
      char *identifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: flatbuffers::VerifyBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - flatbuffers::VerifyBuffer
    linkageType: ''
    returnType: bool
    signature: bool VerifyBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyBufferFromStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - identifier
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: flatbuffers::VerifyBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - flatbuffers::VerifyBufferFromStart
    linkageType: ''
    returnType: bool
    signature: bool VerifyBuffer(const char *identifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:208,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:209,1
    - Dst: flatbuffers::VerifyBufferFromStart
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - identifier
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: flatbuffers::VerifySizePrefixedBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - flatbuffers::ReadScalar
    - flatbuffers::Verify
    - flatbuffers::VerifyBufferFromStart
    linkageType: ''
    returnType: bool
    signature: bool VerifySizePrefixedBuffer(const char *identifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:214,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:215,1
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:217,1
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:219,1
    - Dst: static_cast<soffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:219,1
    - Dst: flatbuffers::Verify
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - start
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: flatbuffers::VerifyOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - flatbuffers::ReadScalar
    - static_cast<soffset_t>
    - flatbuffers::Check
    - flatbuffers::Verify
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t VerifyOffset(size_t start) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::VerifyOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:227,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - start
    argTypes:
    - uint8_t*
    - voffset_t
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: flatbuffers::VerifyOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - flatbuffers::VerifyOffset
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t VerifyOffset(const uint8_t *base, voffset_t start) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Check
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: flatbuffers::VerifyComplexity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 1
    functionsReached:
    - flatbuffers::Check
    linkageType: ''
    returnType: bool
    signature: bool VerifyComplexity()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: flatbuffers::EndTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EndTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: flatbuffers::GetComputedSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t GetComputedSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: flatbuffers::GetFlexReuseTracker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> *GetFlexReuseTracker()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - std::vector<uint8_t>*
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: flatbuffers::SetFlexReuseTracker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/verifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFlexReuseTracker(std::vector<uint8_t> *rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: flatbuffers::DetachedBuffer::DetachedBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DetachedBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - allocator
    - own_allocator
    - buf
    - reserved
    - cur
    - sz
    argTypes:
    - Allocator*
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: flatbuffers::DetachedBuffer::DetachedBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DetachedBuffer(Allocator *allocator, bool own_allocator, uint8_t
      *buf,\n                 size_t reserved, uint8_t *cur, size_t sz)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DetachedBuffer::reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - DetachedBuffer
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: flatbuffers::DetachedBuffer::DetachedBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached:
    - DetachedBuffer::reset
    linkageType: ''
    returnType: void
    signature: void DetachedBuffer(DetachedBuffer &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:61,1
    - Dst: DetachedBuffer::reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - DetachedBuffer
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: '&operator=(DetachedBuffer &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached:
    - destroy
    - DetachedBuffer::reset
    linkageType: ''
    returnType: DetachedBuffer
    signature: DetachedBuffer &operator=(DetachedBuffer &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: ~DetachedBuffer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void ~DetachedBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: flatbuffers::DetachedBuffer::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: flatbuffers::DetachedBuffer::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: flatbuffers::DetachedBuffer::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deallocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:97,1
    - Dst: flatbuffers::DetachedBuffer::reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: flatbuffers::DetachedBuffer::destroy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 0
    functionsReached:
    - flatbuffers::DetachedBuffer::reset
    - Deallocate
    linkageType: ''
    returnType: void
    signature: void destroy()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: flatbuffers::DetachedBuffer::reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/detached_buffer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field_id
    argTypes:
    - voffset_t
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: flatbuffers::FieldIndexToOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - static_cast<voffset_t>
    linkageType: ''
    returnType: voffset_t
    signature: voffset_t FieldIndexToOffset(voffset_t field_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<T, Alloc>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:51,1
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:51,1
    - Dst: std::vector<T, Alloc>::front
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<T, Alloc>
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: flatbuffers::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - std::vector<T, Alloc>::empty
    - std::vector<T, Alloc>::front
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T *data(const std::vector<T, Alloc> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<T, Alloc>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:58,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:58,1
    - Dst: std::vector<T, Alloc>::front
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<T, Alloc>
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: flatbuffers::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - std::vector<T, Alloc>::empty
    - std::vector<T, Alloc>::front
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T *data(std::vector<T, Alloc> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AlignOf<largest_scalar_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:86,1
    - Dst: EndianCheck
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: flatbuffers::FlatBufferBuilder::FlatBufferBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - AlignOf<largest_scalar_t>
    - EndianCheck
    linkageType: ''
    returnType: void
    signature: "void FlatBufferBuilder(\n      size_t initial_size = 1024, Allocator
      *allocator = nullptr,\n      bool own_allocator = false,\n      size_t buffer_minalign
      = AlignOf<largest_scalar_t>())"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AlignOf<largest_scalar_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:101,1
    - Dst: EndianCheck
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:110,1
    - Dst: flatbuffers::FlatBufferBuilder::Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: flatbuffers::FlatBufferBuilder::FlatBufferBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Swap
    - AlignOf<largest_scalar_t>
    - EndianCheck
    linkageType: ''
    returnType: void
    signature: void FlatBufferBuilder(FlatBufferBuilder &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: '&operator=(FlatBufferBuilder &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - Swap
    linkageType: ''
    returnType: FlatBufferBuilder
    signature: FlatBufferBuilder &operator=(FlatBufferBuilder &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:127,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:128,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:129,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:130,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:131,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:132,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:133,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:134,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: flatbuffers::FlatBufferBuilder::Swap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void Swap(FlatBufferBuilder &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: ~FlatBufferBuilder()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FlatBufferBuilder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:143,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: flatbuffers::FlatBufferBuilder::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Clear
    - reset
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::ClearOffsets
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:150,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:151,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: flatbuffers::FlatBufferBuilder::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::ClearOffsets
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: flatbuffers::FlatBufferBuilder::GetSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t GetSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:166,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: flatbuffers::FlatBufferBuilder::GetBufferPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetBufferPointer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:174,1
    - Dst: flatbuffers::span<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:175,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:175,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: flatbuffers::FlatBufferBuilder::GetBufferSpan
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    - size
    - flatbuffers::span<uint8_t>
    - data
    linkageType: ''
    returnType: flatbuffers::span<uint8_t>
    signature: flatbuffers::span<uint8_t> GetBufferSpan() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: flatbuffers::FlatBufferBuilder::GetCurrentBufferPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *GetCurrentBufferPointer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:188,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ReleaseBufferPointer
    argTypes:
    - DetachedBuffer
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: flatbuffers::FlatBufferBuilder::FLATBUFFERS_ATTRIBUTE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    - release
    linkageType: ''
    returnType: void
    signature: "void FLATBUFFERS_ATTRIBUTE([[deprecated(\"use Release() instead\")]])\n
      \ DetachedBuffer ReleaseBufferPointer()"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:195,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: flatbuffers::FlatBufferBuilder::Release
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    - release
    linkageType: ''
    returnType: DetachedBuffer
    signature: DetachedBuffer Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:209,1
    - Dst: release_raw
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - offset
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: flatbuffers::FlatBufferBuilder::ReleaseRaw
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    - release_raw
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *ReleaseRaw(size_t &size, size_t &offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finished
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: flatbuffers::FlatBufferBuilder::GetBufferMinAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finished
    linkageType: ''
    returnType: size_t
    signature: size_t GetBufferMinAlignment() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: flatbuffers::FlatBufferBuilder::Finished
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 6
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: void
    signature: void Finished() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: flatbuffers::FlatBufferBuilder::ForceDefaults
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ForceDefaults(bool fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dedup
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: flatbuffers::FlatBufferBuilder::DedupVtables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DedupVtables(bool dedup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_bytes
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: flatbuffers::FlatBufferBuilder::Pad
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - fill
    linkageType: ''
    returnType: void
    signature: void Pad(size_t num_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - elem_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: flatbuffers::FlatBufferBuilder::TrackMinAlign
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackMinAlign(size_t elem_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::TrackMinAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:253,1
    - Dst: fill
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:254,1
    - Dst: PaddingBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:254,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elem_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: flatbuffers::FlatBufferBuilder::Align
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::TrackMinAlign
    - size
    - fill
    - PaddingBytes
    linkageType: ''
    returnType: void
    signature: void Align(size_t elem_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: flatbuffers::FlatBufferBuilder::PushFlatBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::PushBytes
    linkageType: ''
    returnType: void
    signature: void PushFlatBuffer(const uint8_t *bytes, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: flatbuffers::FlatBufferBuilder::PushBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void PushBytes(const uint8_t *bytes, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - amount
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: flatbuffers::FlatBufferBuilder::PopBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - pop
    linkageType: ''
    returnType: void
    signature: void PopBytes(size_t amount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: flatbuffers::FlatBufferBuilder::AssertScalarT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertScalarT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:273,1
    - Dst: flatbuffers::FlatBufferBuilder::Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:274,1
    - Dst: push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:275,1
    - Dst: EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:275,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - element
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: flatbuffers::FlatBufferBuilder::PushElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - push_small
    - flatbuffers::FlatBufferBuilder::Align
    - EndianScalar
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::AssertScalarT
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t PushElement(T element)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:281,1
    - Dst: flatbuffers::FlatBufferBuilder::ReferTo
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - 'off'
    argTypes:
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: flatbuffers::FlatBufferBuilder::PushElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::ReferTo
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t PushElement(Offset<T> off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scratch_push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - field
    - 'off'
    argTypes:
    - voffset_t
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: flatbuffers::FlatBufferBuilder::TrackField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - scratch_push_small
    linkageType: ''
    returnType: void
    signature: void TrackField(voffset_t field, uoffset_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTheSameAs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:296,1
    - Dst: flatbuffers::FlatBufferBuilder::TrackField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:297,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - field
    - e
    - def
    argTypes:
    - voffset_t
    - T
    - T
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: flatbuffers::FlatBufferBuilder::AddElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::TrackField
    - IsTheSameAs
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: void
    signature: void AddElement(voffset_t field, T e, T def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::TrackField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:301,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - field
    - e
    argTypes:
    - voffset_t
    - T
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: flatbuffers::FlatBufferBuilder::AddElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::TrackField
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: void
    signature: void AddElement(voffset_t field, T e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Offset<T>::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:305,1
    - Dst: flatbuffers::FlatBufferBuilder::AddElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:306,1
    - Dst: flatbuffers::FlatBufferBuilder::ReferTo
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:306,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - field
    - 'off'
    argTypes:
    - voffset_t
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: flatbuffers::FlatBufferBuilder::AddOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - static_cast<uoffset_t>
    - Offset<T>::IsNull
    - flatbuffers::FlatBufferBuilder::ReferTo
    - flatbuffers::FlatBufferBuilder::AddElement
    linkageType: ''
    returnType: void
    signature: void AddOffset(voffset_t field, Offset<T> off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:311,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:311,1
    - Dst: push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:312,1
    - Dst: flatbuffers::FlatBufferBuilder::TrackField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:313,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - field
    - structptr
    argTypes:
    - voffset_t
    - T*
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: flatbuffers::FlatBufferBuilder::AddStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - push_small
    - flatbuffers::FlatBufferBuilder::TrackField
    - flatbuffers::FlatBufferBuilder::Align
    - flatbuffers::FlatBufferBuilder::GetSize
    - AlignOf<T>
    linkageType: ''
    returnType: void
    signature: void AddStruct(voffset_t field, const T *structptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::TrackField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - field
    - 'off'
    argTypes:
    - voffset_t
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: flatbuffers::FlatBufferBuilder::AddStructOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::TrackField
    linkageType: ''
    returnType: void
    signature: void AddStructOffset(voffset_t field, uoffset_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:325,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:327,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:328,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - 'off'
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: flatbuffers::FlatBufferBuilder::ReferTo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - static_cast<uoffset_t>
    - FLATBUFFERS_ASSERT
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::Align
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t ReferTo(uoffset_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:341,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: flatbuffers::FlatBufferBuilder::NotNested
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: void
    signature: void NotNested()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:349,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: flatbuffers::FlatBufferBuilder::StartTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::NotNested
    - flatbuffers::FlatBufferBuilder::GetSize
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t StartTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:359,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:362,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:369,1
    - Dst: FieldIndexToOffset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:370,1
    - Dst: fill_big
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:371,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:374,1
    - Dst: WriteScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:375,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:375,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:376,1
    - Dst: WriteScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:377,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:377,1
    - Dst: scratch_end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:379,1
    - Dst: scratch_end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:380,1
    - Dst: reinterpret_cast<FieldLoc *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:381,1
    - Dst: static_cast<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:382,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:384,1
    - Dst: ReadScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:385,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:385,1
    - Dst: WriteScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:386,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:386,1
    - Dst: flatbuffers::FlatBufferBuilder::ClearOffsets
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:388,1
    - Dst: reinterpret_cast<voffset_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:389,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:389,1
    - Dst: ReadScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:390,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:391,1
    - Dst: scratch_data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:395,1
    - Dst: scratch_end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:395,1
    - Dst: reinterpret_cast<uoffset_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:397,1
    - Dst: reinterpret_cast<voffset_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:398,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:398,1
    - Dst: ReadScalar<voffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:399,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:400,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:402,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:402,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:407,1
    - Dst: scratch_push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:407,1
    - Dst: WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:413,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:413,1
    - Dst: static_cast<soffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:414,1
    - Dst: static_cast<soffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - start
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 419
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 419
    functionName: flatbuffers::FlatBufferBuilder::EndTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data_at
    - static_cast<voffset_t>
    - scratch_push_small
    - ReadScalar<voffset_t>
    - memcmp
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::PushElement
    - WriteScalar<voffset_t>
    - FieldIndexToOffset
    - FLATBUFFERS_ASSERT
    - flatbuffers::FlatBufferBuilder::ClearOffsets
    - reinterpret_cast<voffset_t *>
    - static_cast<soffset_t>
    - reinterpret_cast<FieldLoc *>
    - scratch_end
    - data
    - fill_big
    - WriteScalar
    - scratch_data
    - pop
    - reinterpret_cast<uoffset_t *>
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t EndTable(uoffset_t start)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::EndTable
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - EndTable
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: flatbuffers::FlatBufferBuilder::FLATBUFFERS_ATTRIBUTE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndTable
    linkageType: ''
    returnType: void
    signature: "void FLATBUFFERS_ATTRIBUTE([[deprecated(\"call the version above instead\")]])\n
      \ uoffset_t EndTable(uoffset_t start, voffset_t /*numfields*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:431,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: flatbuffers::FlatBufferBuilder::StartStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::Align
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t StartStruct(size_t alignment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: flatbuffers::FlatBufferBuilder::EndStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::GetSize
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t EndStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scratch_pop
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: flatbuffers::FlatBufferBuilder::ClearOffsets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - scratch_pop
    linkageType: ''
    returnType: void
    signature: void ClearOffsets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::TrackMinAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:447,1
    - Dst: fill
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:448,1
    - Dst: PaddingBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:448,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - alignment
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: flatbuffers::FlatBufferBuilder::PreAlign
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::TrackMinAlign
    - fill
    - PaddingBytes
    - flatbuffers::FlatBufferBuilder::GetSize
    linkageType: ''
    returnType: void
    signature: void PreAlign(size_t len, size_t alignment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:451,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: flatbuffers::FlatBufferBuilder::PreAlign
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::PreAlign
    - flatbuffers::FlatBufferBuilder::AssertScalarT
    linkageType: ''
    returnType: void
    signature: void PreAlign(size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:461,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:462,1
    - Dst: fill
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:463,1
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:464,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:464,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:465,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:465,1
    - Dst: Offset<String>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:466,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 12
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - fill
    - flatbuffers::FlatBufferBuilder::PreAlign
    - flatbuffers::FlatBufferBuilder::PushBytes
    - static_cast<uoffset_t>
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::PushElement
    - flatbuffers::FlatBufferBuilder::NotNested
    - Offset<String>
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(const char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:473,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 13
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - strlen
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:480,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 14
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - strlen
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:487,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:487,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 488
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 488
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 15
    functionsReached:
    - std::string::length
    - flatbuffers::FlatBufferBuilder::CreateString
    - std::string::c_str
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:496,1
    - Dst: flatbuffers::string_view::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:496,1
    - Dst: flatbuffers::string_view::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - flatbuffers::string_view
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 16
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - flatbuffers::string_view::size
    - flatbuffers::string_view::data
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(flatbuffers::string_view str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:505,1
    - Dst: String*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:505,1
    - Dst: String*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 506
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 17
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - String*::size
    - String*::c_str
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(const String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:513,1
    - Dst: T::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:513,1
    - Dst: T::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: flatbuffers::FlatBufferBuilder::CreateString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 18
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateString
    - T::c_str
    - T::length
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateString(const T &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:524,1
    - Dst: flatbuffers::FlatBufferBuilder::StringOffsetCompare
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:526,1
    - Dst: StringOffsetMap::StringOffsetMap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:526,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:527,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:530,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:531,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:533,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:535,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:535,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: flatbuffers::FlatBufferBuilder::CreateSharedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - size
    - end
    - StringOffsetMap::StringOffsetMap
    - find
    - insert
    - flatbuffers::FlatBufferBuilder::StringOffsetCompare
    - FLATBUFFERS_ASSERT
    - flatbuffers::FlatBufferBuilder::CreateString
    - pop
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateSharedString(const char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateSharedString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:551,1
    - Dst: flatbuffers::string_view::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:551,1
    - Dst: flatbuffers::string_view::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - flatbuffers::string_view
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: flatbuffers::FlatBufferBuilder::CreateSharedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateSharedString
    - flatbuffers::string_view::size
    - flatbuffers::string_view::data
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateSharedString(const flatbuffers::string_view str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateSharedString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:561,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 562
    functionName: flatbuffers::FlatBufferBuilder::CreateSharedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateSharedString
    - strlen
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateSharedString(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateSharedString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:571,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:571,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: flatbuffers::FlatBufferBuilder::CreateSharedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 3
    functionsReached:
    - std::string::length
    - flatbuffers::FlatBufferBuilder::CreateSharedString
    - std::string::c_str
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateSharedString(const std::string &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateSharedString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:582,1
    - Dst: String*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:582,1
    - Dst: String*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - String*
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: flatbuffers::FlatBufferBuilder::CreateSharedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 4
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateSharedString
    - String*::size
    - String*::c_str
    linkageType: ''
    returnType: Offset<String>
    signature: Offset<String> CreateSharedString(const String *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:587,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:589,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: flatbuffers::FlatBufferBuilder::EndVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - static_cast<uoffset_t>
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t EndVector(size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:593,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:595,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - len
    - elemsize
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: flatbuffers::FlatBufferBuilder::StartVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::PreAlign
    - flatbuffers::FlatBufferBuilder::NotNested
    linkageType: ''
    returnType: void
    signature: void StartVector(size_t len, size_t elemsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:606,1
    - Dst: VerifyAlignmentRequirements
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:606,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - len
    - elemsize
    - alignment
    argTypes:
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: flatbuffers::FlatBufferBuilder::ForceVectorAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::PreAlign
    - FLATBUFFERS_ASSERT
    - VerifyAlignmentRequirements
    linkageType: ''
    returnType: void
    signature: void ForceVectorAlignment(size_t len, size_t elemsize, size_t alignment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:613,1
    - Dst: VerifyAlignmentRequirements
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:613,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - alignment
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: flatbuffers::FlatBufferBuilder::ForceStringAlignment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::PreAlign
    - FLATBUFFERS_ASSERT
    - VerifyAlignmentRequirements
    linkageType: ''
    returnType: void
    signature: void ForceStringAlignment(size_t len, size_t alignment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:629,1
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:630,1
    - Dst: Offset<Vector<T>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:631,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:631,1
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:634,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:634,1
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:637,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:637,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:640,1
    - Dst: Offset<Vector<T>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:645,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 646
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 646
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 10
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndVector
    - reinterpret_cast<const uint8_t *>
    - Offset<Vector<T>>
    - flatbuffers::FlatBufferBuilder::PushBytes
    - flatbuffers::FlatBufferBuilder::StartVector
    - flatbuffers::FlatBufferBuilder::AssertScalarT
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVector(const T *v, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:656,1
    - Dst: C::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:656,1
    - Dst: C::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 11
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - C::data
    - C::size
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVector(const C &array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:666,1
    - Dst: std::initializer_list<T>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:666,1
    - Dst: std::initializer_list<T>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::initializer_list<T>
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 12
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - std::initializer_list<T>::size
    - std::initializer_list<T>::begin
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVector(std::initializer_list<T> v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:671,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:672,1
    - Dst: Offset<Vector<Offset<T>>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:673,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - Offset<T>*
    - size_t
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 12
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndVector
    - flatbuffers::FlatBufferBuilder::StartVector
    - Offset<Vector<Offset<T>>>
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: Offset<Vector<Offset<T>>>
    signature: Offset<Vector<Offset<T>>> CreateVector(const Offset<T> *v, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:684,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:684,1
    - Dst: std::vector<T, Alloc>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<T, Alloc>
    constantsTouched: []
    func_position:
      end: 685
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 685
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 13
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - std::vector<T, Alloc>::size
    - data
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVector(const std::vector<T, Alloc> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:691,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:691,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:692,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:693,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:693,1
    - Dst: Offset<Vector<uint8_t>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:695,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:695,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<bool>
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 13
    functionsReached:
    - Offset<Vector<uint8_t>>
    - flatbuffers::FlatBufferBuilder::EndVector
    - static_cast<uint8_t>
    - flatbuffers::FlatBufferBuilder::StartVector
    - std::vector<bool>::size
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: Offset<Vector<uint8_t>>
    signature: Offset<Vector<uint8_t>> CreateVector(const std::vector<bool> &v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:708,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:710,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vector_size
    - f
    argTypes:
    - size_t
    - std::function<T(size_t i)>
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 14
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - FLATBUFFERS_ASSERT
    - f
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: "Offset<Vector<T>> CreateVector(size_t vector_size,\n                                 const
      std::function<T(size_t i)> &f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:727,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:729,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - vector_size
    - f
    - state
    argTypes:
    - size_t
    - F
    - S*
    constantsTouched: []
    func_position:
      end: 731
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 731
    functionName: flatbuffers::FlatBufferBuilder::CreateVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 15
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - FLATBUFFERS_ASSERT
    - f
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVector(size_t vector_size, F f, S *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfStrings
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:745,1
    - Dst: std::vector<StringType, Alloc>::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:745,1
    - Dst: std::vector<StringType, Alloc>::cend
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<StringType, Alloc>
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - std::vector<StringType, Alloc>::cend
    - flatbuffers::FlatBufferBuilder::CreateVectorOfStrings
    - std::vector<StringType, Alloc>::cbegin
    linkageType: ''
    returnType: Offset<Vector<Offset<String>>>
    signature: "Offset<Vector<Offset<String>>> CreateVectorOfStrings(\n      const
      std::vector<StringType, Alloc> &v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:756,1
    - Dst: ensure_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:761,1
    - Dst: scratch_push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:763,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateString
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:763,1
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:765,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:769,1
    - Dst: reinterpret_cast<Offset<String> *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:769,1
    - Dst: scratch_end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:770,1
    - Dst: scratch_pop
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:772,1
    - Dst: Offset<Vector<Offset<String>>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:773,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - It
    - It
    constantsTouched: []
    func_position:
      end: 774
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 774
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndVector
    - std::distance
    - scratch_pop
    - flatbuffers::FlatBufferBuilder::StartVector
    - scratch_push_small
    - Offset<Vector<Offset<String>>>
    - scratch_end
    - reinterpret_cast<Offset<String> *>
    - ensure_space
    - flatbuffers::FlatBufferBuilder::PushElement
    - flatbuffers::FlatBufferBuilder::CreateString
    linkageType: ''
    returnType: Offset<Vector<Offset<String>>>
    signature: Offset<Vector<Offset<String>>> CreateVectorOfStrings(It begin, It end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:785,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:785,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:785,1
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:787,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:787,1
    - Dst: Offset<Vector<const T *>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:789,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::FlatBufferBuilder::EndVector
    - flatbuffers::FlatBufferBuilder::PushBytes
    - flatbuffers::FlatBufferBuilder::StartVector
    - Offset<Vector<const T *>>
    - AlignOf<T>
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: Offset<Vector<const T *>> CreateVectorOfStructs(const T *v, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:805,1
    - Dst: flatbuffers::FlatBufferBuilder::StartVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:806,1
    - Dst: pack_func
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:807,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - S*
    - size_t
    constantsTouched: []
    func_position:
      end: 809
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 809
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - pack_func
    - FLATBUFFERS_ASSERT
    - flatbuffers::FlatBufferBuilder::StartVectorOfStructs
    - flatbuffers::FlatBufferBuilder::EndVectorOfStructs
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfNativeStructs(\n      const
      S *v, size_t len, T (*const pack_func)(const S &))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - S*
    - size_t
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 824
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfNativeStructs(const S *v,\n
      \                                                       size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:837,1
    - Dst: filler
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:839,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vector_size
    - filler
    argTypes:
    - size_t
    - std::function<void(size_t i, T *)>
    constantsTouched: []
    func_position:
      end: 843
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 843
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - filler
    - flatbuffers::FlatBufferBuilder::StartVectorOfStructs
    - flatbuffers::FlatBufferBuilder::EndVectorOfStructs
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfStructs(\n      size_t vector_size,
      const std::function<void(size_t i, T *)> &filler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:857,1
    - Dst: f
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:859,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vector_size
    - f
    - state
    argTypes:
    - size_t
    - F
    - S*
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::StartVectorOfStructs
    - flatbuffers::FlatBufferBuilder::EndVectorOfStructs
    - f
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfStructs(size_t vector_size,
      F f,\n                                                  S *state)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:874,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:874,1
    - Dst: std::vector<T, Alloc>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<T, Alloc>
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - std::vector<T, Alloc>::size
    - flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    - data
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfStructs(\n      const std::vector<T,
      Alloc> &v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:890,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:890,1
    - Dst: std::vector<S, Alloc>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<S, Alloc>
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 2
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    - std::vector<S, Alloc>::size
    - data
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfNativeStructs(\n      const
      std::vector<S, Alloc> &v, T (*const pack_func)(const S &))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:904,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:904,1
    - Dst: std::vector<S, Alloc>::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<S, Alloc>
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 3
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs
    - std::vector<S, Alloc>::size
    - data
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfNativeStructs(\n      const
      std::vector<S, Alloc> &v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::KeyCompareLessThan
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: operator()(const T &a, const T &b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - T::KeyCompareLessThan
    linkageType: ''
    returnType: bool
    signature: bool operator()(const T &a, const T &b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:925,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:925,1
    - Dst: std::vector<T, Alloc>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<T, Alloc>*
    constantsTouched: []
    func_position:
      end: 926
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 926
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs
    - std::vector<T, Alloc>*::size
    - data
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfSortedStructs(\n      std::vector<T,
      Alloc> *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:939,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:939,1
    - Dst: std::vector<S, Alloc>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<S, Alloc>*
    constantsTouched: []
    func_position:
      end: 940
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 940
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs
    - std::vector<S, Alloc>*::size
    - data
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfSortedNativeStructs(\n      std::vector<S,
      Alloc> *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::stable_sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:952,1
    - Dst: StructKeyComparator<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:952,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 954
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 954
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - StructKeyComparator<T>
    - std::stable_sort
    - flatbuffers::FlatBufferBuilder::CreateVectorOfStructs
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: Offset<Vector<const T *>> CreateVectorOfSortedStructs(T *v, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:969,1
    - Dst: Pack
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:970,1
    - Dst: std::stable_sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:971,1
    - Dst: StructKeyComparator<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:971,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVectorOfStructs
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - S*
    - size_t
    constantsTouched: []
    func_position:
      end: 973
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 973
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - flatbuffers::FlatBufferBuilder::StartVectorOfStructs
    - StructKeyComparator<T>
    - flatbuffers::FlatBufferBuilder::EndVectorOfStructs
    - std::stable_sort
    - Pack
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateVectorOfSortedNativeStructs(S *v,\n
      \                                                             size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 977
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 977
    functionName: flatbuffers::FlatBufferBuilder::TableKeyComparator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableKeyComparator(vector_downward &buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - other
    argTypes:
    - TableKeyComparator
    constantsTouched: []
    func_position:
      end: 978
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 978
    functionName: flatbuffers::FlatBufferBuilder::TableKeyComparator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableKeyComparator(const TableKeyComparator &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:980,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:980,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:981,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:981,1
    - Dst: auto::KeyCompareLessThan
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Offset<T>
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 983
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 983
    functionName: operator()(const Offset<T> &a, const Offset<T> &b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data_at
    - auto::KeyCompareLessThan
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: bool
    signature: bool operator()(const Offset<T> &a, const Offset<T> &b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::stable_sort
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1003,1
    - Dst: flatbuffers::FlatBufferBuilder::TableKeyComparator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1003,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - Offset<T>*
    - size_t
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 6
    functionsReached:
    - flatbuffers::FlatBufferBuilder::CreateVector
    - flatbuffers::FlatBufferBuilder::TableKeyComparator
    - std::stable_sort
    linkageType: ''
    returnType: Offset<Vector<Offset<T>>>
    signature: "Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(Offset<T> *v,\n
      \                                                      size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1017,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1017,1
    - Dst: std::vector<Offset<T>, Alloc>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<Offset<T>, Alloc>*
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 7
    functionsReached:
    - std::vector<Offset<T>, Alloc>*::size
    - flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables
    - data
    linkageType: ''
    returnType: Offset<Vector<Offset<T>>>
    signature: "Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(\n      std::vector<Offset<T>,
      Alloc> *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1029,1
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1030,1
    - Dst: make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1031,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1032,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1033,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - len
    - elemsize
    - buf
    argTypes:
    - size_t
    - size_t
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 1036
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1036
    functionName: flatbuffers::FlatBufferBuilder::CreateUninitializedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data_at
    - flatbuffers::FlatBufferBuilder::EndVector
    - flatbuffers::FlatBufferBuilder::StartVector
    - make_space
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::NotNested
    linkageType: ''
    returnType: uoffset_t
    signature: "uoffset_t CreateUninitializedVector(size_t len, size_t elemsize,\n
      \                                     uint8_t **buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1048,1
    - Dst: flatbuffers::FlatBufferBuilder::CreateUninitializedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1049,1
    - Dst: reinterpret_cast<uint8_t **>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - len
    - buf
    argTypes:
    - size_t
    - T**
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: flatbuffers::FlatBufferBuilder::CreateUninitializedVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<uint8_t **>
    - flatbuffers::FlatBufferBuilder::AssertScalarT
    - flatbuffers::FlatBufferBuilder::CreateUninitializedVector
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateUninitializedVector(size_t len, T **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::CreateUninitializedVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1056,1
    - Dst: reinterpret_cast<uint8_t **>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - len
    - buf
    argTypes:
    - size_t
    - T**
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: flatbuffers::FlatBufferBuilder::CreateUninitializedVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t **>
    - flatbuffers::FlatBufferBuilder::CreateUninitializedVector
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: "Offset<Vector<const T *>> CreateUninitializedVectorOfStructs(size_t
      len,\n                                                               T **buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1065,1
    - Dst: flatbuffers::FlatBufferBuilder::AssertScalarT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1066,1
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1067,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1068,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1068,1
    - Dst: Offset<Vector<T>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1069,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - U*
    - size_t
    constantsTouched: []
    func_position:
      end: 1070
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1070
    functionName: flatbuffers::FlatBufferBuilder::CreateVectorScalarCast
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndVector
    - Offset<Vector<T>>
    - flatbuffers::FlatBufferBuilder::StartVector
    - static_cast<T>
    - flatbuffers::FlatBufferBuilder::AssertScalarT
    - flatbuffers::FlatBufferBuilder::PushElement
    linkageType: ''
    returnType: Offset<Vector<T>>
    signature: Offset<Vector<T>> CreateVectorScalarCast(const U *v, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1074,1
    - Dst: flatbuffers::FlatBufferBuilder::Align
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1075,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1075,1
    - Dst: push_small
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1076,1
    - Dst: Offset<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1077,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - structobj
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1078
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1078
    functionName: flatbuffers::FlatBufferBuilder::CreateStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - push_small
    - flatbuffers::FlatBufferBuilder::Align
    - Offset<const T *>
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::NotNested
    - AlignOf<T>
    linkageType: ''
    returnType: Offset<const T *>
    signature: Offset<const T *> CreateStruct(const T &structobj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 1086
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    functionName: flatbuffers::FlatBufferBuilder::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 4
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finish
    linkageType: ''
    returnType: void
    signature: void Finish(Offset<T> root, const char *file_identifier = nullptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: flatbuffers::FlatBufferBuilder::FinishSizePrefixed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 3
    functionsReached:
    - flatbuffers::FlatBufferBuilder::Finish
    linkageType: ''
    returnType: void
    signature: "void FinishSizePrefixed(Offset<T> root,\n                          const
      char *file_identifier = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap_allocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - FlatBufferBuilder
    constantsTouched: []
    func_position:
      end: 1103
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1103
    functionName: flatbuffers::FlatBufferBuilder::SwapBufAllocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - swap_allocator
    linkageType: ''
    returnType: void
    signature: void SwapBufAllocator(FlatBufferBuilder &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::NotNested
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1115,1
    - Dst: clear_scratch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1116,1
    - Dst: flatbuffers::FlatBufferBuilder::PreAlign
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1118,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1122,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1122,1
    - Dst: flatbuffers::FlatBufferBuilder::PushBytes
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1123,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1123,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1126,1
    - Dst: flatbuffers::FlatBufferBuilder::ReferTo
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1126,1
    - Dst: flatbuffers::FlatBufferBuilder::PushElement
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1127,1
    - Dst: flatbuffers::FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - root
    - file_identifier
    - size_prefix
    argTypes:
    - uoffset_t
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1129
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1129
    functionName: flatbuffers::FlatBufferBuilder::Finish
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 5
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::FlatBufferBuilder::PreAlign
    - flatbuffers::FlatBufferBuilder::PushBytes
    - flatbuffers::FlatBufferBuilder::ReferTo
    - clear_scratch
    - FLATBUFFERS_ASSERT
    - strlen
    - flatbuffers::FlatBufferBuilder::GetSize
    - flatbuffers::FlatBufferBuilder::PushElement
    - flatbuffers::FlatBufferBuilder::NotNested
    linkageType: ''
    returnType: void
    signature: void Finish(uoffset_t root, const char *file_identifier, bool size_prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 1158
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1158
    functionName: flatbuffers::FlatBufferBuilder::StringOffsetCompare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringOffsetCompare(const vector_downward &buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1160,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1160,1
    - Dst: reinterpret_cast<const String *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1161,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1161,1
    - Dst: flatbuffers::StringLessThan
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1162,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1162,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1162,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1162,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Offset<String>
    - Offset<String>
    constantsTouched: []
    func_position:
      end: 1164
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1164
    functionName: operator()(const Offset<String> &a, const Offset<String> &b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data_at
    - reinterpret_cast<const String *>
    - auto::data
    - flatbuffers::StringLessThan
    - auto::size
    linkageType: ''
    returnType: bool
    signature: bool operator()(const Offset<String> &a, const Offset<String> &b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::FlatBufferBuilder::StartVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1176,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1176,1
    - Dst: AlignOf<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1176,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1177,1
    - Dst: make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vector_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1178
      start: 1175
    functionDepth: 3
    functionLinenumber: 1175
    functionLinenumberEnd: 1178
    functionName: flatbuffers::FlatBufferBuilder::StartVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 4
    functionsReached:
    - flatbuffers::FlatBufferBuilder::StartVector
    - reinterpret_cast<T *>
    - AlignOf<T>
    - make_space
    linkageType: ''
    returnType: T
    signature: T *StartVectorOfStructs(size_t vector_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Offset<Vector<const T *>>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1184,1
    - Dst: flatbuffers::FlatBufferBuilder::EndVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1185
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1185
    functionName: flatbuffers::FlatBufferBuilder::EndVectorOfStructs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 4
    functionsReached:
    - flatbuffers::FlatBufferBuilder::EndVector
    - Offset<Vector<const T *>>
    linkageType: ''
    returnType: Offset<Vector<const T *>>
    signature: Offset<Vector<const T *>> EndVectorOfStructs(size_t vector_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1194,1
    - Dst: FlatBufferBuilder::GetCurrentBufferPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1194,1
    - Dst: FlatBufferBuilder::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - offset
    argTypes:
    - FlatBufferBuilder
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 1196
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1196
    functionName: flatbuffers::GetMutableTemporaryPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - FlatBufferBuilder::GetSize
    - reinterpret_cast<T *>
    - FlatBufferBuilder::GetCurrentBufferPointer
    linkageType: ''
    returnType: T
    signature: T *GetMutableTemporaryPointer(FlatBufferBuilder &fbb, Offset<T> offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableTemporaryPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fbb
    - offset
    argTypes:
    - FlatBufferBuilder
    - Offset<T>
    constantsTouched: []
    func_position:
      end: 1201
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    functionName: flatbuffers::GetTemporaryPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetMutableTemporaryPointer
    linkageType: ''
    returnType: T
    signature: T *GetTemporaryPointer(FlatBufferBuilder &fbb, Offset<T> offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const Table *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1205,1
    - Dst: data_at
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1205,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Offset<T>
    - voffset_t
    constantsTouched: []
    func_position:
      end: 1210
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1210
    functionName: flatbuffers::FlatBufferBuilder::Required
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/flatbuffer_builder.h
    functionUses: 0
    functionsReached:
    - data_at
    - FLATBUFFERS_ASSERT
    - reinterpret_cast<const Table *>
    linkageType: ''
    returnType: void
    signature: void FlatBufferBuilder::Required(Offset<T> table, voffset_t field)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - initial_size
    - allocator
    - own_allocator
    - buffer_minalign
    argTypes:
    - size_t
    - Allocator*
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: flatbuffers::vector_downward::vector_downward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vector_downward(size_t initial_size, Allocator *allocator,\n
      \                          bool own_allocator, size_t buffer_minalign)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: flatbuffers::vector_downward::vector_downward
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vector_downward(vector_downward &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: '&operator=(vector_downward &&other)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: vector_downward
    signature: vector_downward &operator=(vector_downward &&other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_buffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:75,1
    - Dst: clear_allocator
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: ~vector_downward()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - clear_allocator
    - clear_buffer
    linkageType: ''
    returnType: void
    signature: void ~vector_downward()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::clear_buffer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:80,1
    - Dst: flatbuffers::vector_downward::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: flatbuffers::vector_downward::reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - flatbuffers::vector_downward::clear_buffer
    - flatbuffers::vector_downward::clear
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::clear_scratch
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: flatbuffers::vector_downward::clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached:
    - flatbuffers::vector_downward::clear_scratch
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: flatbuffers::vector_downward::clear_scratch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_scratch()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: flatbuffers::vector_downward::clear_allocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_allocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deallocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: flatbuffers::vector_downward::clear_buffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached:
    - Deallocate
    linkageType: ''
    returnType: void
    signature: void clear_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:112,1
    - Dst: flatbuffers::vector_downward::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - allocated_bytes
    - offset
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: flatbuffers::vector_downward::release_raw
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - flatbuffers::vector_downward::clear
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *release_raw(size_t &allocated_bytes, size_t &offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: flatbuffers::vector_downward::release
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 12
    functionsReached:
    - flatbuffers::vector_downward::clear
    linkageType: ''
    returnType: DetachedBuffer
    signature: DetachedBuffer release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:136,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:137,1
    - Dst: flatbuffers::vector_downward::reallocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:137,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:140,1
    - Dst: flatbuffers::vector_downward::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: flatbuffers::vector_downward::ensure_space
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - flatbuffers::vector_downward::size
    - static_cast<size_t>
    - FLATBUFFERS_ASSERT
    - flatbuffers::vector_downward::reallocate
    linkageType: ''
    returnType: size_t
    signature: size_t ensure_space(size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::ensure_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:146,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: flatbuffers::vector_downward::make_space
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - static_cast<uoffset_t>
    - flatbuffers::vector_downward::ensure_space
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *make_space(size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: flatbuffers::vector_downward::get_custom_allocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Allocator
    signature: Allocator *get_custom_allocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: flatbuffers::vector_downward::size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: flatbuffers::vector_downward::scratch_size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - static_cast<uoffset_t>
    linkageType: ''
    returnType: uoffset_t
    signature: uoffset_t scratch_size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: flatbuffers::vector_downward::capacity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: flatbuffers::vector_downward::data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: flatbuffers::vector_downward::scratch_data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *scratch_data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: flatbuffers::vector_downward::scratch_end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *scratch_end() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: flatbuffers::vector_downward::data_at
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data_at(size_t offset) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:182,1
    - Dst: flatbuffers::vector_downward::make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bytes
    - num
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: flatbuffers::vector_downward::push
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - memcpy
    - flatbuffers::vector_downward::make_space
    linkageType: ''
    returnType: void
    signature: void push(const uint8_t *bytes, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:187,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - little_endian_t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: flatbuffers::vector_downward::push_small
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    - flatbuffers::vector_downward::make_space
    linkageType: ''
    returnType: void
    signature: void push_small(const T &little_endian_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::ensure_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:192,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: flatbuffers::vector_downward::scratch_push_small
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    - flatbuffers::vector_downward::ensure_space
    linkageType: ''
    returnType: void
    signature: void scratch_push_small(const T &t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - zero_pad_bytes
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: flatbuffers::vector_downward::fill
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - flatbuffers::vector_downward::make_space
    linkageType: ''
    returnType: void
    signature: void fill(size_t zero_pad_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:207,1
    - Dst: flatbuffers::vector_downward::make_space
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zero_pad_bytes
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: flatbuffers::vector_downward::fill_big
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - memset
    - flatbuffers::vector_downward::make_space
    linkageType: ''
    returnType: void
    signature: void fill_big(size_t zero_pad_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes_to_remove
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: flatbuffers::vector_downward::pop
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - static_cast<uoffset_t>
    linkageType: ''
    returnType: void
    signature: void pop(size_t bytes_to_remove)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes_to_remove
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: flatbuffers::vector_downward::scratch_pop
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scratch_pop(size_t bytes_to_remove)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:219,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:220,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:221,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:222,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:223,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:224,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:225,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:226,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: flatbuffers::vector_downward::swap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached:
    - flatbuffers::vector_downward::swap
    linkageType: ''
    returnType: void
    signature: void swap(vector_downward &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:232,1
    - Dst: flatbuffers::vector_downward::swap
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - vector_downward
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: flatbuffers::vector_downward::swap_allocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 0
    functionsReached:
    - flatbuffers::vector_downward::swap
    linkageType: ''
    returnType: void
    signature: void swap_allocator(vector_downward &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::vector_downward::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:253,1
    - Dst: flatbuffers::vector_downward::scratch_size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:254,1
    - Dst: ReallocateDownward
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:259,1
    - Dst: Allocate
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: flatbuffers::vector_downward::reallocate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/vector_downward.h
    functionUses: 1
    functionsReached:
    - Allocate
    - flatbuffers::vector_downward::size
    - ReallocateDownward
    - flatbuffers::vector_downward::scratch_size
    linkageType: ''
    returnType: void
    signature: void reallocate(size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: flatbuffers::CodeWriter::CodeWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void CodeWriter(std::string pad = std::string())
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:47,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: flatbuffers::CodeWriter::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached:
    - str
    - clear
    linkageType: ''
    returnType: void
    signature: void Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: flatbuffers::CodeWriter::SetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetValue(const std::string &key, const std::string &value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:59,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: flatbuffers::CodeWriter::GetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string GetValue(const std::string &key) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: flatbuffers::CodeWriter::ToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached:
    - str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: flatbuffers::CodeWriter::IncrementIdentLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncrementIdentLevel()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: flatbuffers::CodeWriter::DecrementIdentLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecrementIdentLevel()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: flatbuffers::CodeWriter::SetPadding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPadding(const std::string &padding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parser
    - path
    - file_name
    - qualifying_start
    - qualifying_separator
    - default_extension
    argTypes:
    - Parser
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: flatbuffers::BaseGenerator::BaseGenerator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BaseGenerator(const Parser &parser, const std::string &path,\n
      \               const std::string &file_name, std::string qualifying_start,\n
      \               std::string qualifying_separator, std::string default_extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: ~BaseGenerator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BaseGenerator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: flatbuffers::BaseGenerator::CurrentNameSpace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Namespace
    signature: Namespace *CurrentNameSpace() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: ~FloatConstantGenerator()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/code_generators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FloatConstantGenerator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: flatbuffers::IsScalar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsScalar(reflection::BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: flatbuffers::IsInteger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInteger(reflection::BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: flatbuffers::IsFloat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFloat(reflection::BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: flatbuffers::IsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLong(reflection::BaseType t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base_type
    argTypes:
    - reflection::BaseType
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: flatbuffers::GetTypeSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetTypeSize(reflection::BaseType base_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reflection::Schema::objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:83,1
    - Dst: reflection::Schema::objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:84,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - base_type
    - type_index
    - schema
    argTypes:
    - reflection::BaseType
    - int
    - reflection::Schema
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: flatbuffers::GetTypeSizeInline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - reflection::Schema::objects
    linkageType: ''
    returnType: size_t
    signature: "size_t GetTypeSizeInline(reflection::BaseType base_type, int type_index,\n
      \                               const reflection::Schema &schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flatbuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: flatbuffers::GetAnyRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetMutableRoot
    linkageType: ''
    returnType: Table
    signature: Table *GetAnyRoot(uint8_t *const flatbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flatbuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: flatbuffers::GetAnyRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetRoot
    linkageType: ''
    returnType: Table
    signature: Table *GetAnyRoot(const uint8_t *const flatbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableSizePrefixedRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flatbuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: flatbuffers::GetAnySizePrefixedRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetMutableSizePrefixedRoot
    linkageType: ''
    returnType: Table
    signature: Table *GetAnySizePrefixedRoot(uint8_t *const flatbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetSizePrefixedRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flatbuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: flatbuffers::GetAnySizePrefixedRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetSizePrefixedRoot
    linkageType: ''
    returnType: Table
    signature: Table *GetAnySizePrefixedRoot(const uint8_t *const flatbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:109,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:109,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:109,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:110,1
    - Dst: reflection::Field::default_integer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - field
    argTypes:
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: flatbuffers::GetFieldDefaultI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - reflection::Field::default_integer
    - FLATBUFFERS_ASSERT
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T GetFieldDefaultI(const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:115,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:115,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:115,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:116,1
    - Dst: reflection::Field::default_real
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - field
    argTypes:
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: flatbuffers::GetFieldDefaultF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - reflection::Field::default_real
    - FLATBUFFERS_ASSERT
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T GetFieldDefaultF(const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:122,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:122,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:122,1
    - Dst: Table::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:123,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:123,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:124,1
    - Dst: reflection::Field::default_integer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: flatbuffers::GetFieldI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - reflection::Field::default_integer
    - Table::GetField
    - FLATBUFFERS_ASSERT
    - static_cast<T>
    - reflection::Field::offset
    linkageType: ''
    returnType: T
    signature: T GetFieldI(const Table &table, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:130,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:130,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:130,1
    - Dst: Table::GetField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:131,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:131,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:132,1
    - Dst: reflection::Field::default_real
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: flatbuffers::GetFieldF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - reflection::Field::default_real
    - Table::GetField
    - FLATBUFFERS_ASSERT
    - static_cast<T>
    - reflection::Field::offset
    linkageType: ''
    returnType: T
    signature: T GetFieldF(const Table &table, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:138,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:138,1
    - Dst: Table::GetPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:139,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: flatbuffers::GetFieldS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - FLATBUFFERS_ASSERT
    - Table::GetPointer
    - reflection::Field::offset
    linkageType: ''
    returnType: String
    signature: "String *GetFieldS(const Table &table,\n                               const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:145,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:145,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:146,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:146,1
    - Dst: Table::GetPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:147,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: flatbuffers::GetFieldV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - Table::GetPointer
    - FLATBUFFERS_ASSERT
    - reflection::Field::offset
    linkageType: ''
    returnType: Vector<T>
    signature: Vector<T> *GetFieldV(const Table &table, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table::GetPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:155,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: flatbuffers::GetFieldAnyV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - Table::GetPointer
    - reflection::Field::offset
    linkageType: ''
    returnType: VectorOfAny
    signature: "VectorOfAny *GetFieldAnyV(const Table &table,\n                                 const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:160,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:160,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:161,1
    - Dst: Table::GetPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:162,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: flatbuffers::GetFieldT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - FLATBUFFERS_ASSERT
    - Table::GetPointer
    - reflection::Field::offset
    linkageType: ''
    returnType: Table
    signature: Table *GetFieldT(const Table &table, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:170,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:170,1
    - Dst: Table::GetStruct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:171,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: flatbuffers::GetFieldStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Table::GetStruct
    - FLATBUFFERS_ASSERT
    - reflection::Field::offset
    linkageType: ''
    returnType: Struct
    signature: "Struct *GetFieldStruct(const Table &table,\n                                    const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:177,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:177,1
    - Dst: Struct::GetStruct
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:178,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - structure
    - field
    argTypes:
    - Struct
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: flatbuffers::GetFieldStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - FLATBUFFERS_ASSERT
    - Struct::GetStruct
    - reflection::Field::offset
    linkageType: ''
    returnType: Struct
    signature: "Struct *GetFieldStruct(const Struct &structure,\n                                    const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:197,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:197,1
    - Dst: GetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:198,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:198,1
    - Dst: reflection::Field::default_integer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: flatbuffers::GetAnyFieldI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - reflection::Field::default_integer
    - GetAnyValueI
    - Table::GetAddressOf
    - reflection::Field::offset
    linkageType: ''
    returnType: int64_t
    signature: "int64_t GetAnyFieldI(const Table &table,\n                            const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:204,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:204,1
    - Dst: GetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:205,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:205,1
    - Dst: reflection::Field::default_real
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: flatbuffers::GetAnyFieldF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - reflection::Field::default_real
    - Table::GetAddressOf
    - GetAnyValueF
    - reflection::Field::offset
    linkageType: ''
    returnType: double
    signature: double GetAnyFieldF(const Table &table, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:215,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:215,1
    - Dst: GetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:216,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:216,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - table
    - field
    - schema
    argTypes:
    - Table
    - reflection::Field
    - reflection::Schema*
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: flatbuffers::GetAnyFieldS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Table::GetAddressOf
    - GetAnyValueS
    - reflection::Field::offset
    linkageType: ''
    returnType: std::string
    signature: "std::string GetAnyFieldS(const Table &table,\n                                const
      reflection::Field &field,\n                                const reflection::Schema
      *schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:223,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:223,1
    - Dst: Struct::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:224,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - field
    argTypes:
    - Struct
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: flatbuffers::GetAnyFieldI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Struct::GetAddressOf
    - GetAnyValueI
    - reflection::Field::offset
    linkageType: ''
    returnType: int64_t
    signature: int64_t GetAnyFieldI(const Struct &st, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:229,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:229,1
    - Dst: Struct::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:230,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - field
    argTypes:
    - Struct
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: flatbuffers::GetAnyFieldF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Struct::GetAddressOf
    - GetAnyValueF
    - reflection::Field::offset
    linkageType: ''
    returnType: double
    signature: double GetAnyFieldF(const Struct &st, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:236,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:236,1
    - Dst: Struct::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:237,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - field
    argTypes:
    - Struct
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: flatbuffers::GetAnyFieldS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Struct::GetAddressOf
    - reflection::Field::offset
    - GetAnyValueS
    linkageType: ''
    returnType: std::string
    signature: "std::string GetAnyFieldS(const Struct &st,\n                                const
      reflection::Field &field)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:243,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:243,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vec
    - elem_type
    - i
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: flatbuffers::GetAnyVectorElemI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - VectorOfAny*::Data
    - GetAnyValueI
    linkageType: ''
    returnType: int64_t
    signature: "int64_t GetAnyVectorElemI(const VectorOfAny *vec,\n                                 reflection::BaseType
      elem_type, size_t i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:249,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:249,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vec
    - elem_type
    - i
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: flatbuffers::GetAnyVectorElemF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - VectorOfAny*::Data
    - GetAnyValueF
    linkageType: ''
    returnType: double
    signature: "double GetAnyVectorElemF(const VectorOfAny *vec,\n                                reflection::BaseType
      elem_type, size_t i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:255,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:255,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vec
    - elem_type
    - i
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: flatbuffers::GetAnyVectorElemS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - VectorOfAny*::Data
    - GetAnyValueS
    linkageType: ''
    returnType: std::string
    signature: "std::string GetAnyVectorElemS(const VectorOfAny *vec,\n                                     reflection::BaseType
      elem_type, size_t i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:264,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:265,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vec
    - i
    argTypes:
    - VectorOfAny*
    - size_t
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: flatbuffers::GetAnyVectorElemPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::ReadScalar
    - reinterpret_cast<T *>
    - VectorOfAny*::Data
    linkageType: ''
    returnType: T
    signature: T *GetAnyVectorElemPointer(const VectorOfAny *vec, size_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:276,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vec
    - i
    - elem_size
    argTypes:
    - VectorOfAny*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: flatbuffers::GetAnyVectorElemAddressOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    - VectorOfAny*::Data
    linkageType: ''
    returnType: T
    signature: "T *GetAnyVectorElemAddressOf(const VectorOfAny *vec, size_t i,\n                             size_t
      elem_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:282,1
    - Dst: Table::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:282,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - field
    argTypes:
    - Table
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: flatbuffers::GetAnyFieldAddressOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - Table::GetAddressOf
    - reinterpret_cast<T *>
    - reflection::Field::offset
    linkageType: ''
    returnType: T
    signature: T *GetAnyFieldAddressOf(const Table &table, const reflection::Field
      &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:288,1
    - Dst: Struct::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:288,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - field
    argTypes:
    - Struct
    - reflection::Field
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: flatbuffers::GetAnyFieldAddressOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - Struct::GetAddressOf
    - reinterpret_cast<T *>
    - reflection::Field::offset
    linkageType: ''
    returnType: T
    signature: T *GetAnyFieldAddressOf(const Struct &st, const reflection::Field &field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:302,1
    - Dst: flatbuffers::IsScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:303,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:304,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:304,1
    - Dst: flatbuffers::IsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:306,1
    - Dst: flatbuffers::GetFieldDefaultI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:307,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:309,1
    - Dst: flatbuffers::IsFloat
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:309,1
    - Dst: flatbuffers::GetFieldDefaultF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:310,1
    - Dst: Table*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:312,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - table
    - field
    - val
    argTypes:
    - Table*
    - reflection::Field
    - T
    constantsTouched: []
    func_position:
      end: 313
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 313
    functionName: flatbuffers::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - Table*::SetField
    - flatbuffers::GetFieldDefaultF
    - flatbuffers::IsScalar
    - flatbuffers::IsFloat
    - FLATBUFFERS_ASSERT
    - flatbuffers::GetFieldDefaultI
    - flatbuffers::IsInteger
    - reflection::Field::offset
    linkageType: ''
    returnType: bool
    signature: bool SetField(Table *table, const reflection::Field &field, T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:326,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:326,1
    - Dst: flatbuffers::GetFieldDefaultI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:327,1
    - Dst: SetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:328,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - field
    - val
    argTypes:
    - Table*
    - reflection::Field
    - int64_t
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: flatbuffers::SetAnyFieldI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - Table*::GetAddressOf
    - flatbuffers::GetFieldDefaultI
    - SetAnyValueI
    - reflection::Field::offset
    linkageType: ''
    returnType: bool
    signature: "bool SetAnyFieldI(Table *table, const reflection::Field &field,\n
      \                        int64_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:335,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:335,1
    - Dst: flatbuffers::GetFieldDefaultF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:336,1
    - Dst: SetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:337,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - field
    - val
    argTypes:
    - Table*
    - reflection::Field
    - double
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: flatbuffers::SetAnyFieldF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetFieldDefaultF
    - Table*::GetAddressOf
    - SetAnyValueF
    - reflection::Field::offset
    linkageType: ''
    returnType: bool
    signature: "bool SetAnyFieldF(Table *table, const reflection::Field &field,\n
      \                        double val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Table*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:344,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:344,1
    - Dst: SetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:346,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - field
    - val
    argTypes:
    - Table*
    - reflection::Field
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: flatbuffers::SetAnyFieldS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - SetAnyValueS
    - Table*::GetAddressOf
    - reflection::Field::type
    - reflection::Field::offset
    linkageType: ''
    returnType: bool
    signature: "bool SetAnyFieldS(Table *table, const reflection::Field &field,\n
      \                        const char *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:353,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:353,1
    - Dst: Struct*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:353,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - field
    - val
    argTypes:
    - Struct*
    - reflection::Field
    - int64_t
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: flatbuffers::SetAnyFieldI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - SetAnyValueI
    - Struct*::GetAddressOf
    - reflection::Field::offset
    linkageType: ''
    returnType: void
    signature: "void SetAnyFieldI(Struct *st, const reflection::Field &field,\n                         int64_t
      val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:360,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:360,1
    - Dst: Struct*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:360,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - field
    - val
    argTypes:
    - Struct*
    - reflection::Field
    - double
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: flatbuffers::SetAnyFieldF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - SetAnyValueF
    - Struct*::GetAddressOf
    - reflection::Field::offset
    linkageType: ''
    returnType: void
    signature: "void SetAnyFieldF(Struct *st, const reflection::Field &field,\n                         double
      val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:367,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:367,1
    - Dst: Struct*::GetAddressOf
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:367,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - field
    - val
    argTypes:
    - Struct*
    - reflection::Field
    - char*
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: flatbuffers::SetAnyFieldS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - SetAnyValueS
    - reflection::Field::offset
    - Struct*::GetAddressOf
    - reflection::Field::type
    linkageType: ''
    returnType: void
    signature: "void SetAnyFieldS(Struct *st, const reflection::Field &field,\n                         const
      char *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:374,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:374,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - vec
    - elem_type
    - i
    - val
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: flatbuffers::SetAnyVectorElemI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - SetAnyValueI
    - VectorOfAny*::Data
    linkageType: ''
    returnType: void
    signature: "void SetAnyVectorElemI(VectorOfAny *vec, reflection::BaseType elem_type,\n
      \                             size_t i, int64_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueF
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:380,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:380,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - vec
    - elem_type
    - i
    - val
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: flatbuffers::SetAnyVectorElemF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - flatbuffers::GetTypeSize
    - SetAnyValueF
    - VectorOfAny*::Data
    linkageType: ''
    returnType: void
    signature: "void SetAnyVectorElemF(VectorOfAny *vec, reflection::BaseType elem_type,\n
      \                             size_t i, double val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAnyValueS
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:386,1
    - Dst: VectorOfAny*::Data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:386,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - vec
    - elem_type
    - i
    - val
    argTypes:
    - VectorOfAny*
    - reflection::BaseType
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: flatbuffers::SetAnyVectorElemS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - SetAnyValueS
    - flatbuffers::GetTypeSize
    - VectorOfAny*::Data
    linkageType: ''
    returnType: void
    signature: "void SetAnyVectorElemS(VectorOfAny *vec, reflection::BaseType elem_type,\n
      \                             size_t i, const char *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:396,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:397,1
    - Dst: std::vector<U>::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ptr
    - vec
    argTypes:
    - T*
    - std::vector<U>
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: flatbuffers::pointer_inside_vector::pointer_inside_vector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - std::vector<U>::data
    linkageType: ''
    returnType: void
    signature: void pointer_inside_vector(T *ptr, std::vector<U> &vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:401,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:401,1
    - Dst: flatbuffers::data
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: '*operator*() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - reinterpret_cast<T *>
    - flatbuffers::data
    linkageType: ''
    returnType: T
    signature: T *operator*() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: '*operator->() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *operator->() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pointer_inside_vector<T, U>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - vec
    argTypes:
    - T*
    - std::vector<U>
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: flatbuffers::piv
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - pointer_inside_vector<T, U>
    linkageType: ''
    returnType: pointer_inside_vector<T, U>
    signature: pointer_inside_vector<T, U> piv(T *ptr, std::vector<U> &vec)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    functionName: flatbuffers::UnionTypeFieldSuffix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UnionTypeFieldSuffix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reflection::Schema::enums
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:423,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:423,1
    - Dst: reflection::Object::fields
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:425,1
    - Dst: reflection::Field::name
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:426,1
    - Dst: flatbuffers::UnionTypeFieldSuffix
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:426,1
    - Dst: flatbuffers::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:426,1
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:427,1
    - Dst: flatbuffers::GetFieldI
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:428,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:429,1
    - Dst: reflection::Schema::objects
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:430,1
    - Dst: auto::union_type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - schema
    - parent
    - unionfield
    - table
    argTypes:
    - reflection::Schema
    - reflection::Object
    - reflection::Field
    - Table
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: flatbuffers::GetUnionType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - auto::union_type
    - reflection::Object::fields
    - flatbuffers::GetFieldI
    - reflection::Field::name
    - flatbuffers::UnionTypeFieldSuffix
    - flatbuffers::c_str
    - FLATBUFFERS_ASSERT
    - reflection::Schema::enums
    - auto::values
    - reflection::Schema::objects
    linkageType: ''
    returnType: reflection::Object
    signature: "reflection::Object &GetUnionType(\n    const reflection::Schema &schema,
      const reflection::Object &parent,\n    const reflection::Field &unionfield,
      const Table &table)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:456,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:456,1
    - Dst: Vector<T>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:456,1
    - Dst: ResizeAnyVector
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:457,1
    - Dst: reinterpret_cast<const VectorOfAny *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:458,1
    - Dst: Vector<T>*::size
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:458,1
    - Dst: static_cast<uoffset_t>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:459,1
    - Dst: flatbuffers::WriteScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:465,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - schema
    - newsize
    - val
    - vec
    - flatbuf
    argTypes:
    - reflection::Schema
    - uoffset_t
    - T
    - Vector<T>*
    - std::vector<uint8_t>*
    constantsTouched: []
    func_position:
      end: 470
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: flatbuffers::ResizeVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<uoffset_t>
    - flatbuffers::WriteScalar
    - reinterpret_cast<const VectorOfAny *>
    - reinterpret_cast<T *>
    - ResizeAnyVector
    - Vector<T>*::size
    linkageType: ''
    returnType: void
    signature: "void ResizeVector(const reflection::Schema &schema, uoffset_t newsize,
      T val,\n                  const Vector<T> *vec, std::vector<uint8_t> *flatbuf,\n
      \                 const reflection::Object *root_table = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:485,1
    - Dst: flatbuffers::GetTypeSize
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:486,1
    - Dst: reflection::Field::type
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:486,1
    - Dst: Table*::SetPointer
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:487,1
    - Dst: reflection::Field::offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - table
    - field
    - val
    argTypes:
    - Table*
    - reflection::Field
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: flatbuffers::SetFieldT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/reflection.h
    functionUses: 0
    functionsReached:
    - reflection::Field::type
    - flatbuffers::GetTypeSize
    - Table*::SetPointer
    - FLATBUFFERS_ASSERT
    - reflection::Field::offset
    linkageType: ''
    returnType: bool
    signature: "bool SetFieldT(Table *table, const reflection::Field &field,\n                      const
      uint8_t *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: flatbuffers::Offset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _o
    argTypes:
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: flatbuffers::Offset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Offset(uoffset_t _o)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Offset
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: flatbuffers::Union
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - flatbuffers::Offset
    linkageType: ''
    returnType: Offset<void>
    signature: Offset<void> Union() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: flatbuffers::IsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FLATBUFFERS_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:37,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: flatbuffers::EndianCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - FLATBUFFERS_ASSERT
    - reinterpret_cast<char *>
    linkageType: ''
    returnType: void
    signature: void EndianCheck()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: flatbuffers::AlignOf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLATBUFFERS_CONSTEXPR
    signature: FLATBUFFERS_CONSTEXPR AlignOf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_data
    - a_size
    - b_data
    - b_size
    argTypes:
    - char*
    - uoffset_t
    - char*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: flatbuffers::StringLessThan
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool StringLessThan(const char *a_data, uoffset_t a_size,\n                                  const
      char *b_data, uoffset_t b_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:77,1
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - uint8_t*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: flatbuffers::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - flatbuffers::EndianScalar
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: return_type
    signature: return_type Read(const uint8_t *p, uoffset_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<return_type>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:86,1
    - Dst: flatbuffers::ReadScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - uint8_t*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: flatbuffers::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<return_type>
    - flatbuffers::ReadScalar
    linkageType: ''
    returnType: return_type
    signature: return_type Read(const uint8_t *p, uoffset_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - uint8_t*
    - uoffset_t
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: flatbuffers::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: return_type
    signature: return_type Read(const uint8_t *p, uoffset_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: flatbuffers::GetBufferIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: char
    signature: "char *GetBufferIdentifier(const void *buf,\n                                       bool
      size_prefixed = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:114,1
    - Dst: flatbuffers::GetBufferIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - identifier
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: flatbuffers::BufferHasIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 3
    functionsReached:
    - flatbuffers::GetBufferIdentifier
    - strncmp
    linkageType: ''
    returnType: bool
    signature: "bool BufferHasIdentifier(const void *buf, const char *identifier,\n
      \                               bool size_prefixed = false)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::EndianCheck
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:121,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:122,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:123,1
    - Dst: flatbuffers::EndianScalar
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:124,1
    - Dst: reinterpret_cast<uoffset_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: flatbuffers::GetMutableRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - flatbuffers::EndianCheck
    - flatbuffers::EndianScalar
    - reinterpret_cast<T *>
    - reinterpret_cast<uoffset_t *>
    linkageType: ''
    returnType: T
    signature: T *GetMutableRoot(void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:128,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: flatbuffers::GetMutableSizePrefixedRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - flatbuffers::GetMutableRoot
    linkageType: ''
    returnType: T
    signature: T *GetMutableSizePrefixedRoot(void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetMutableRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:133,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: flatbuffers::GetRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 2
    functionsReached:
    - flatbuffers::GetMutableRoot
    - const_cast<void *>
    linkageType: ''
    returnType: T
    signature: T *GetRoot(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:137,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: flatbuffers::GetSizePrefixedRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/buffer.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - flatbuffers::GetRoot
    linkageType: ''
    returnType: T
    signature: T *GetSizePrefixedRoot(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: OGRXLSLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogr_xls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: OGRXLSLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogr_xls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeomType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRXLSLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogr_xls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: OGRXLSDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogr_xls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRXLSDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRXLSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: OGRXLSDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRXLSDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:54,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:58,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:60,1
    - Dst: OGRXLSDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:63,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: DeclareDeferredOGRXLSPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRXLSDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRXLSPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:29,1
    - Dst: OGRXLSDataSource::OGRXLSDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:34,1
    - Dst: OGRXLSDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: OGRXLSDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSDataSource*::Open
    - GDALOpenInfo*::IsExtensionEqualToCI
    - OGRXLSDataSource::OGRXLSDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRXLSDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:52,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:55,1
    - Dst: OGRXLSDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:56,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: RegisterOGRXLS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRXLS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: OGRXLSDataSource::OGRXLSDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXLSDataSource::OGRXLSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:41,1
    - Dst: freexl_close
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:44,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:46,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: OGRXLSDataSource::~OGRXLSDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp
    functionUses: 0
    functionsReached:
    - empty
    - VSIUnlink
    - CPLFree
    - freexl_close
    linkageType: ''
    returnType: void
    signature: void OGRXLSDataSource::~OGRXLSDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: OGRXLSDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRXLSDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:80,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:80,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:82,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:83,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:86,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:88,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:92,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:94,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:98,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:101,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:102,1
    - Dst: OGRXLSDataSource::GetXLSHandle
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:113,1
    - Dst: freexl_get_info
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:117,1
    - Dst: freexl_select_active_worksheet
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:123,1
    - Dst: freexl_get_worksheet_name
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:126,1
    - Dst: freexl_worksheet_dimensions
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:131,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:138,1
    - Dst: OGRXLSLayer::OGRXLSLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:141,1
    - Dst: freexl_close
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 148
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 148
    functionName: OGRXLSDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSLayer::OGRXLSLayer
    - CPLCopyFile
    - CPLDebug
    - freexl_get_info
    - CPLGetConfigOption
    - CPLErrorReset
    - OGRXLSDataSource::GetXLSHandle
    - freexl_worksheet_dimensions
    - CPLRealloc
    - CPLPopErrorHandler
    - CPLGenerateTempFilenameSafe
    - CPLTestBool
    - c_str
    - freexl_close
    - freexl_get_worksheet_name
    - CPLFree
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - freexl_select_active_worksheet
    linkageType: ''
    returnType: int
    signature: int OGRXLSDataSource::Open(const char *pszFilename, int bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freexl_open
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: OGRXLSDataSource::GetXLSHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlsdatasource.cpp
    functionUses: 1
    functionsReached:
    - freexl_open
    linkageType: ''
    returnType: void
    signature: void *OGRXLSDataSource::GetXLSHandle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:25,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - poDSIn
    - pszSheetname
    - iSheetIn
    - nRowsIn
    - nColsIn
    argTypes:
    - OGRXLSDataSource*
    - char*
    - int
    - int
    - unsigned short
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: OGRXLSLayer::OGRXLSLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 1
    functionsReached:
    - SetDescription
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void OGRXLSLayer::OGRXLSLayer(OGRXLSDataSource *poDSIn, const char
      *pszSheetname,\n                         int iSheetIn, int nRowsIn, unsigned
      short nColsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:39,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: OGRXLSLayer::~OGRXLSLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRXLSLayer::~OGRXLSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: OGRXLSLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXLSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freexl_get_cell_value
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:69,1
    - Dst: freexl_get_cell_value
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:93,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - xlshandle
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 99
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 99
    functionName: OGRXLSLayer::DetectHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - freexl_get_cell_value
    linkageType: ''
    returnType: void
    signature: void OGRXLSLayer::DetectHeaderLine(const void *xlshandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freexl_get_cell_value
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:113,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 2
    argNames:
    - xlshandle
    - paeFieldTypes
    argTypes:
    - void*
    - int*
    constantsTouched: []
    func_position:
      end: 166
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 166
    functionName: OGRXLSLayer::DetectColumnTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - freexl_get_cell_value
    linkageType: ''
    returnType: void
    signature: void OGRXLSLayer::DetectColumnTypes(const void *xlshandle, int *paeFieldTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:177,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:178,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:179,1
    - Dst: freexl_select_active_worksheet
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:185,1
    - Dst: OGRXLSLayer::DetectHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:202,1
    - Dst: OGRXLSLayer::DetectColumnTypes
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:203,1
    - Dst: freexl_get_cell_value
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:211,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:217,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:221,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:222,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:226,1
    - Dst: OGRXLSLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:229,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 232
    functionName: OGRXLSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - OGRXLSLayer::DetectHeaderLine
    - EQUAL
    - freexl_get_cell_value
    - Reference
    - AddFieldDefn
    - OGRXLSLayer::ResetReading
    - freexl_select_active_worksheet
    - OGRXLSLayer::DetectColumnTypes
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRXLSLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:243,1
    - Dst: OGRXLSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:246,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: OGRXLSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRLayer::GetFeatureCount
    - OGRXLSLayer::GetLayerDefn
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRXLSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:259,1
    - Dst: freexl_select_active_worksheet
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:268,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:270,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:274,1
    - Dst: freexl_get_cell_value
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:276,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:282,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:285,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:289,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:294,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:299,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:305,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 309
    functionName: OGRXLSLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSLayer::GetLayerDefn
    - GetFieldCount
    - CPLDebug
    - freexl_get_cell_value
    - OGRFeature*::SetField
    - freexl_select_active_worksheet
    - OGRFeature::OGRFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXLSLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:318,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: OGRXLSLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXLSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: OGRXLSLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRXLSLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:27,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:27,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:28,1
    - Dst: OGRVFKDataSource*::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:29,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:31,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:36,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:43,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:43,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:44,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:46,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pszName
    - poSRSIn
    - eReqType
    - poDSIn
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - OGRVFKDataSource*
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: OGRVFKLayer::OGRVFKLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRVFKDataSource*::GetReader
    - SetAxisMappingStrategy
    - Reference
    - SetDescription
    - GetName
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: "void OGRVFKLayer::OGRVFKLayer(const char *pszName, OGRSpatialReference
      *poSRSIn,\n                         OGRwkbGeometryType eReqType, OGRVFKDataSource
      *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:56,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: OGRVFKLayer::~OGRVFKLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRVFKLayer::~OGRVFKLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:69,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: OGRVFKLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRVFKLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVFKLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: OGRVFKLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVFKLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRVFKLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poVfkFeature
    argTypes:
    - IVFKFeature*
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OGRVFKLayer::GetGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 0
    functionsReached:
    - IVFKFeature*::GetGeometry
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *OGRVFKLayer::GetGeometry(IVFKFeature *poVfkFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:120,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:123,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: OGRVFKLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - GetName
    - CPLDebug
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRVFKLayer::GetFeatureCount(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:144,1
    - Dst: OGRVFKLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:148,1
    - Dst: CleanProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:152,1
    - Dst: IVFKFeature*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:157,1
    - Dst: OGRVFKLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: OGRVFKLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVFKLayer::GetNextFeature
    - IVFKFeature*::GetGeometryType
    - CleanProperties
    - OGRVFKLayer::GetFeature
    - LoadProperties
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVFKLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVFKLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:175,1
    - Dst: OGRVFKLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:184,1
    - Dst: CleanProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:185,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:188,1
    - Dst: IVFKFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:188,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:189,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:190,1
    - Dst: OGRVFKLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 193
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 193
    functionName: OGRVFKLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 2
    functionsReached:
    - IVFKFeature*::GetFID
    - CPLDebug
    - CleanProperties
    - CPLAssert
    - OGRVFKLayer::GetFeature
    - OGRVFKLayer::ResetReading
    - GetName
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVFKLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKFeature*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:203,1
    - Dst: OGRVFKLayer::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:207,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:210,1
    - Dst: OGRVFKLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:216,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:216,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:217,1
    - Dst: IVFKFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:217,1
    - Dst: IVFKFeature*::LoadProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:218,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:221,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:229,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:230,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - poVFKFeature
    argTypes:
    - IVFKFeature*
    constantsTouched: []
    func_position:
      end: 237
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 237
    functionName: OGRVFKLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfklayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFeature*::SetGeometryDirectly
    - IVFKFeature*::GetFID
    - FilterGeometry
    - IVFKFeature*::LoadProperties
    - Evaluate
    - OGRGeometry*::clone
    - auto::assignSpatialReference
    - OGRVFKLayer::GetLayerDefn
    - OGRFeature::OGRFeature
    - IVFKFeature*::GetGeometryType
    - OGRVFKLayer::GetGeometry
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVFKLayer::GetFeature(IVFKFeature *poVFKFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVFKDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:24,1
    - Dst: OGRVFKDataSource::OGRVFKDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:27,1
    - Dst: OGRVFKDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:29,1
    - Dst: OGRVFKDataSource*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: OGRVFKDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRVFKDataSource*::Open
    - OGRVFKDataSource*::GetLayerCount
    - OGRVFKDataSource::OGRVFKDataSource
    - OGRVFKDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRVFKDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:43,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:46,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:49,1
    - Dst: OGRVFKDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:50,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: RegisterOGRVFK
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - OGRVFKDriverSetCommonMetadata
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRVFK()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:29,1
    - Dst: const_cast<IVFKReader *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - poReader
    argTypes:
    - char*
    - IVFKReader*
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: IVFKDataBlock::IVFKDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - const_cast<IVFKReader *>
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::IVFKDataBlock(const char *pszName, const IVFKReader
      *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:53,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: IVFKDataBlock::~IVFKDataBlock()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::~IVFKDataBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: IVFKDataBlock::GetProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VFKPropertyDefn
    signature: VFKPropertyDefn *IVFKDataBlock::GetProperty(int iIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:101,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:102,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:112,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:113,1
    - Dst: IVFKDataBlock::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:118,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:129,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:131,1
    - Dst: IVFKDataBlock::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:136,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:138,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - poLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 140
    functionName: IVFKDataBlock::SetProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - IVFKDataBlock::AddProperty
    - CPLRealloc
    - CPLFree
    - strncpy
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::SetProperties(const char *poLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:155,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:155,1
    - Dst: GetEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:159,1
    - Dst: VFKPropertyDefn::VFKPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:159,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pszName
    - pszType
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: IVFKDataBlock::AddProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLRealloc
    - VFKPropertyDefn::VFKPropertyDefn
    - GetEncoding
    linkageType: ''
    returnType: int
    signature: int IVFKDataBlock::AddProperty(const char *pszName, const char *pszType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:181,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: IVFKDataBlock::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig IVFKDataBlock::GetFeatureCount(bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nNewCount
    - bIncrement
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: IVFKDataBlock::SetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::SetFeatureCount(int nNewCount, bool bIncrement)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: IVFKDataBlock::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::ResetReading(int iIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:241,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:246,1
    - Dst: IVFKDataBlock::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: IVFKDataBlock::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - IVFKDataBlock::ResetReading
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:267,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:272,1
    - Dst: IVFKDataBlock::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: IVFKDataBlock::GetPreviousFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - IVFKDataBlock::ResetReading
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetPreviousFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:293,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: IVFKDataBlock::GetFirstFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetFirstFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:316,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 328
    functionName: IVFKDataBlock::GetLastFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetLastFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:340,1
    - Dst: IVFKDataBlock::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: IVFKDataBlock::GetPropertyIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - IVFKDataBlock::GetName
    linkageType: ''
    returnType: int
    signature: int IVFKDataBlock::GetPropertyIndex(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:364,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:364,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:368,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:368,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:373,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:373,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 13
    argCount: 1
    argNames:
    - bSuppressGeometry
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: IVFKDataBlock::SetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType IVFKDataBlock::SetGeometryType(bool bSuppressGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: IVFKDataBlock::GetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType IVFKDataBlock::GetGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: IVFKDataBlock::GetFeatureByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetFeatureByIndex(int iIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:417,1
    - Dst: IVFKDataBlock::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:425,1
    - Dst: IVFKDataBlock::GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: IVFKDataBlock::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - IVFKDataBlock::GetFeatureByIndex
    - ReadDataRecords
    - IVFKDataBlock::LoadGeometry
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *IVFKDataBlock::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:454,1
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:459,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:464,1
    - Dst: LoadGeometryPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:467,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:469,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:469,1
    - Dst: LoadGeometryLineStringSBP
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:475,1
    - Dst: LoadGeometryLineStringHP
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:480,1
    - Dst: LoadGeometryPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:483,1
    - Dst: clock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:492,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:498,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 503
    functionName: IVFKDataBlock::LoadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 6
    functionsReached:
    - LoadGeometryPoint
    - clock
    - LoadGeometryLineStringHP
    - LoadGeometryLineStringSBP
    - CPLDebug
    - EQUAL
    - ReadDataRecords
    - CPLError
    - LoadGeometryPolygon
    linkageType: ''
    returnType: int
    signature: int IVFKDataBlock::LoadGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointList*::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:508,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:508,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:511,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:513,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:514,1
    - Dst: PointList*::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:515,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poList
    - poLine
    argTypes:
    - PointList*
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 517
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 517
    functionName: IVFKDataBlock::FillPointList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - PointList*::reserve
    - OGRLineString*::getPoint
    - PointList*::emplace_back
    - OGRLineString*::getNumPoints
    - OGRPoint::OGRPoint
    - std::move
    linkageType: ''
    returnType: void
    signature: "void IVFKDataBlock::FillPointList(PointList *poList,\n                                  const
      OGRLineString *poLine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointList::PointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:536,1
    - Dst: IVFKDataBlock::FillPointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:537,1
    - Dst: PointListArray*::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:538,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:542,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:544,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:545,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:546,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:547,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:551,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:552,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:554,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:554,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:555,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:555,1
    - Dst: IVFKDataBlock::FillPointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:558,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:560,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:560,1
    - Dst: PointList::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:560,1
    - Dst: PointList::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:560,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:564,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:564,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:565,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:565,1
    - Dst: IVFKDataBlock::FillPointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:568,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:570,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:570,1
    - Dst: PointList::rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:570,1
    - Dst: PointList::rend
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:570,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:574,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:574,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:574,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:574,1
    - Dst: IVFKDataBlock::FillPointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:577,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:579,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:579,1
    - Dst: PointList::rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:579,1
    - Dst: PointList::rend
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:579,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:583,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:583,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:584,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:584,1
    - Dst: IVFKDataBlock::FillPointList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:587,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:589,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:589,1
    - Dst: PointList::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:589,1
    - Dst: PointList::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - papoRing
    - poLine
    - bNewRing
    - bBackward
    argTypes:
    - PointListArray*
    - OGRLineString*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 595
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 595
    functionName: IVFKDataBlock::AppendLineToRing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - end
    - back
    - OGRPoint::getY
    - front
    - PointList::PointList
    - IVFKDataBlock::FillPointList
    - PointListArray*::emplace_back
    - insert
    - OGRPoint::getX
    - PointList::begin
    - OGRLineString*::EndPoint
    - OGRLineString*::getNumPoints
    - OGRPoint::OGRPoint
    - begin
    - OGRLineString*::StartPoint
    - PointList::rbegin
    - PointList::end
    - PointList::rend
    linkageType: ''
    returnType: bool
    signature: "bool IVFKDataBlock::AppendLineToRing(PointListArray *papoRing,\n                                     const
      OGRLineString *poLine, bool bNewRing,\n                                     bool
      bBackward)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - IVFKFeature*
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: IVFKDataBlock::SetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IVFKDataBlock::SetNextFeature(const IVFKFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poNewFeature
    argTypes:
    - IVFKFeature*
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: IVFKDataBlock::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::AddFeature(IVFKFeature *poNewFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRec
    argTypes:
    - RecordType
    constantsTouched: []
    func_position:
      end: 642
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 642
    functionName: IVFKDataBlock::GetRecordCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IVFKDataBlock::GetRecordCount(RecordType iRec) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRec
    argTypes:
    - RecordType
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: IVFKDataBlock::SetIncRecordCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKDataBlock::SetIncRecordCount(RecordType iRec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKFeatureList*::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:670,1
    - Dst: VFKFeatureList*::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:670,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:674,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:675,1
    - Dst: VFKFeatureList*::erase
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:678,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:688,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:688,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:689,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - idx
    - value
    - poList
    argTypes:
    - int
    - GUIntBig
    - VFKFeatureList*
    constantsTouched: []
    func_position:
      end: 700
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 700
    functionName: VFKDataBlock::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKFeature*::GetProperty
    - GetFeatureByIndex
    - VFKFeatureList*::begin
    - VFKFeatureList*::erase
    - cpl::down_cast<VFKFeature *>
    - VFKFeatureList*::end
    - strtoul
    linkageType: ''
    returnType: VFKFeature
    signature: "VFKFeature *VFKDataBlock::GetFeature(int idx, GUIntBig value,\n                                     VFKFeatureList
      *poList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:717,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:717,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:719,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:719,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - idx
    - value
    argTypes:
    - int
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 727
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 727
    functionName: VFKDataBlock::GetFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKFeature*::GetProperty
    - GetFeatureByIndex
    - std::vector::push_back
    - cpl::down_cast<VFKFeature *>
    - strtoul
    linkageType: ''
    returnType: VFKFeatureList
    signature: VFKFeatureList VFKDataBlock::GetFeatures(int idx, GUIntBig value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:745,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:745,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:747,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:747,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:752,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:757,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - idx1
    - idx2
    - value
    argTypes:
    - int
    - int
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 767
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 767
    functionName: VFKDataBlock::GetFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKFeature*::GetProperty
    - GetFeatureByIndex
    - std::vector::push_back
    - cpl::down_cast<VFKFeature *>
    - strtoul
    linkageType: ''
    returnType: VFKFeatureList
    signature: VFKFeatureList VFKDataBlock::GetFeatures(int idx1, int idx2, GUIntBig
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:784,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:786,1
    - Dst: VFKDataBlock::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:787,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:790,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pszName
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 795
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 795
    functionName: VFKDataBlock::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 1
    functionsReached:
    - VFKDataBlock::GetFeature
    - VFKFeature*::GetProperty
    - EQUAL
    - VFKDataBlock::GetFeatureCount
    - cpl::down_cast<VFKFeature *>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig VFKDataBlock::GetFeatureCount(const char *pszName, const char
      *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:809,1
    - Dst: VFKDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:814,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:817,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:817,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 826
    functionName: VFKDataBlock::LoadGeometryPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - GetFeatureByIndex
    - VFKFeature*::SetGeometry
    - CPLError
    - VFKDataBlock::GetFeatureCount
    - cpl::down_cast<VFKFeature *>
    linkageType: ''
    returnType: int
    signature: int VFKDataBlock::LoadGeometryPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:836,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:839,1
    - Dst: VFKDataBlock*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:844,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:850,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:855,1
    - Dst: VFKDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:859,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:862,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:862,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:863,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:865,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:867,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:867,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:869,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:869,1
    - Dst: OGRLineString::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:872,1
    - Dst: OGRLineString::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:874,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:875,1
    - Dst: OGRLineString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:877,1
    - Dst: VFKFeature*::SetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:883,1
    - Dst: VFKDataBlock*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:885,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:888,1
    - Dst: OGRLineString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:889,1
    - Dst: OGRLineString::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:892,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:895,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:898,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 901
    functionName: VFKDataBlock::LoadGeometryLineStringSBP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKDataBlock*::ResetReading
    - OGRLineString::empty
    - VFKFeature*::SetGeometryType
    - CPLError
    - GetDataBlock
    - GetFeatureByIndex
    - OGRLineString::OGRLineString
    - VFKFeature*::GetGeometry
    - VFKDataBlock::GetFeatureCount
    - OGRLineString::setCoordinateDimension
    - OGRLineString::IsEmpty
    - OGRLineString::addPoint
    - VFKFeature*::GetProperty
    - CPLAssert
    - VFKFeature*::SetGeometry
    - VFKDataBlock*::GetFeature
    - cpl::down_cast<VFKFeature *>
    - VFKDataBlock*::LoadGeometry
    - cpl::down_cast<VFKDataBlock *>
    - strtoul
    linkageType: ''
    returnType: int
    signature: int VFKDataBlock::LoadGeometryLineStringSBP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:913,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:913,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:916,1
    - Dst: VFKDataBlock*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:921,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:924,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:930,1
    - Dst: VFKDataBlock*::GetFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:936,1
    - Dst: VFKDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:937,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:940,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:940,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:941,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:943,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:943,1
    - Dst: VFKDataBlock*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:945,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:946,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:948,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:948,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 954
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 954
    functionName: VFKDataBlock::LoadGeometryLineStringHP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKDataBlock*::ResetReading
    - CPLString::Printf
    - VFKFeature*::GetProperty
    - VFKDataBlock*::LoadGeometry
    - GetDataBlock
    - cpl::down_cast<VFKDataBlock *>
    - GetFeatureByIndex
    - VFKFeature*::GetGeometry
    - CPLAssert
    - VFKDataBlock*::GetFeature
    - VFKFeature*::SetGeometry
    - CPLError
    - VFKDataBlock*::GetFeatures
    - VFKDataBlock::GetFeatureCount
    - cpl::down_cast<VFKFeature *>
    - strtoul
    linkageType: ''
    returnType: int
    signature: int VFKDataBlock::LoadGeometryLineStringHP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:967,1
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:970,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:970,1
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:977,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:977,1
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:979,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:979,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:986,1
    - Dst: VFKDataBlock*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:991,1
    - Dst: VFKDataBlock*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:992,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:996,1
    - Dst: VFKDataBlock*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1008,1
    - Dst: VFKDataBlock*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1009,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1012,1
    - Dst: VFKDataBlock*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1019,1
    - Dst: VFKDataBlock*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1020,1
    - Dst: VFKDataBlock*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1024,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1032,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1033,1
    - Dst: VFKDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1035,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1038,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1038,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1039,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1041,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1041,1
    - Dst: VFKDataBlock*::GetFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1044,1
    - Dst: VFKDataBlock*::GetFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1050,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1052,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1053,1
    - Dst: strtoul
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1057,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1058,1
    - Dst: VFKDataBlock*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1059,1
    - Dst: VFKFeatureList::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1061,1
    - Dst: VFKFeatureList::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1064,1
    - Dst: OGRPolygon::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1068,1
    - Dst: PointListArray::clear
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1069,1
    - Dst: VFKFeatureList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1075,1
    - Dst: VFKFeatureList::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1079,1
    - Dst: VFKFeatureList::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1080,1
    - Dst: GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1083,1
    - Dst: AppendLineToRing
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1084,1
    - Dst: auto::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1085,1
    - Dst: VFKFeatureList::erase
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1088,1
    - Dst: PointListArray::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1095,1
    - Dst: PointListArray::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1096,1
    - Dst: OGRLinearRing::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1100,1
    - Dst: PointList*::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1101,1
    - Dst: PointList*::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1102,1
    - Dst: OGRLinearRing::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1105,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1107,1
    - Dst: OGRPolygon::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1110,1
    - Dst: VFKFeature*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1111,1
    - Dst: PointListArray::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1116,1
    - Dst: PointListArray::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1117,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1123,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp:1124,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 1127
    functionName: VFKDataBlock::LoadGeometryPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp
    functionUses: 0
    functionsReached:
    - VFKDataBlock*::ResetReading
    - auto::toLineString
    - VFKFeatureList::erase
    - OGRPolygon::setCoordinateDimension
    - PointList*::begin
    - CPLError
    - OGRPolygon::OGRPolygon
    - PointListArray::clear
    - VFKFeatureList::push_back
    - std::vector::end
    - OGRPolygon::empty
    - VFKFeatureList::empty
    - std::vector::begin
    - GetDataBlock
    - VFKDataBlock*::GetPropertyIndex
    - GetFeatureByIndex
    - VFKFeatureList::size
    - VFKFeatureList::begin
    - AppendLineToRing
    - PointList*::end
    - VFKDataBlock::GetFeatureCount
    - OGRLinearRing::addPoint
    - OGRLinearRing::OGRLinearRing
    - OGRLinearRing::empty
    - PointListArray::end
    - VFKFeature*::GetProperty
    - OGRPolygon::addRing
    - CPLAssert
    - VFKDataBlock*::GetFeature
    - VFKFeature*::SetGeometry
    - cpl::down_cast<VFKFeature *>
    - PointListArray::begin
    - GetGeometry
    - VFKDataBlock*::LoadGeometry
    - cpl::down_cast<VFKDataBlock *>
    - EQUAL
    - VFKFeatureList::end
    - VFKDataBlock*::GetFeatures
    - strtoul
    linkageType: ''
    returnType: int
    signature: int VFKDataBlock::LoadGeometryPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: OGRVFKDataSource::OGRVFKDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVFKDataSource::OGRVFKDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: OGRVFKDataSource::~OGRVFKDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRVFKDataSource::~OGRVFKDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateVFKReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:49,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:50,1
    - Dst: ReadDataBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:64,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:67,1
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:68,1
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:71,1
    - Dst: OGRVFKDataSource::CreateLayerFromBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:74,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:74,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:78,1
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:81,1
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:85,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 95
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 95
    functionName: OGRVFKDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDataBlockCount
    - CPLTestBool
    - IsValid
    - CreateVFKReader
    - GetDataBlock
    - ReadDataBlocks
    - ReadDataRecords
    - OGRVFKDataSource::CreateLayerFromBlock
    - CPLCalloc
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int OGRVFKDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: OGRVFKDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRVFKDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:121,1
    - Dst: IsPreProcessed
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: OGRVFKDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - IsPreProcessed
    linkageType: ''
    returnType: int
    signature: int OGRVFKDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:142,1
    - Dst: IVFKDataBlock*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:142,1
    - Dst: OGRVFKLayer::OGRVFKLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:141,1
    - Dst: IVFKDataBlock*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:145,1
    - Dst: IVFKDataBlock*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:147,1
    - Dst: VFKPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:148,1
    - Dst: VFKPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:148,1
    - Dst: VFKPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:150,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:151,1
    - Dst: VFKPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:151,1
    - Dst: VFKPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:152,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:153,1
    - Dst: VFKPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:153,1
    - Dst: OGRVFKLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:155,1
    - Dst: IVFKDataBlock*::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:158,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:163,1
    - Dst: OGRVFKLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poDataBlock
    argTypes:
    - IVFKDataBlock*
    constantsTouched: []
    func_position:
      end: 168
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 168
    functionName: OGRVFKDataSource::CreateLayerFromBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdatasource.cpp
    functionUses: 1
    functionsReached:
    - VFKPropertyDefn*::GetName
    - VFKPropertyDefn*::GetPrecision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - IVFKDataBlock*::GetPropertyCount
    - IVFKDataBlock*::GetProperty
    - IVFKDataBlock*::GetReader
    - OGRVFKLayer*::GetLayerDefn
    - IVFKDataBlock*::GetName
    - OGRVFKLayer::OGRVFKLayer
    - VFKPropertyDefn*::GetType
    - VFKPropertyDefn*::GetWidth
    - IVFKDataBlock*::GetGeometryType
    linkageType: ''
    returnType: OGRVFKLayer
    signature: 'OGRVFKLayer *

      OGRVFKDataSource::CreateLayerFromBlock(const IVFKDataBlock *poDataBlock)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:28,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:28,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:38,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:41,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:42,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:50,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:66,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - pszName
    - pszType
    - pszEncoding
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 81
    functionName: VFKPropertyDefn::VFKPropertyDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp
    functionUses: 1
    functionsReached:
    - strncpy
    - CPLFree
    - CPLStrdup
    - atoi
    linkageType: ''
    returnType: void
    signature: "void VFKPropertyDefn::VFKPropertyDefn(const char *pszName, const char
      *pszType,\n                                 const char *pszEncoding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:88,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:89,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: VFKPropertyDefn::~VFKPropertyDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void VFKPropertyDefn::~VFKPropertyDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:104,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:106,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:108,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:110,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: VFKPropertyDefn::GetTypeSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkpropertydefn.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString VFKPropertyDefn::GetTypeSQL() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - other
    argTypes:
    - VFKProperty
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty(VFKProperty const &other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '&operator=(VFKProperty const &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VFKProperty
    signature: VFKProperty &operator=(VFKProperty const &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '&operator=(VFKProperty &&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VFKProperty
    signature: VFKProperty &operator=(VFKProperty &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: VFKProperty::IsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: VFKProperty::GetValueI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetValueI() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: VFKProperty::GetValueI64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetValueI64() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: VFKProperty::GetValueD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetValueD() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: IVFKFeature::GetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: IVFKFeature::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: IVFKFeature::GetDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IVFKDataBlock
    signature: IVFKDataBlock *GetDataBlock() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: IVFKFeature::GetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeometryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: VFKPropertyDefn::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: VFKPropertyDefn::GetWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: VFKPropertyDefn::GetPrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPrecision() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: VFKPropertyDefn::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFieldType
    signature: OGRFieldType GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: VFKPropertyDefn::GetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: IVFKDataBlock::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: IVFKDataBlock::GetPropertyCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPropertyCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: IVFKDataBlock::GetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IVFKReader
    signature: IVFKReader *GetReader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszName
    - poReader
    argTypes:
    - char*
    - IVFKReader*
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: VFKDataBlock::VFKDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKDataBlock(const char *pszName, const IVFKReader *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: VFKDataBlock::LoadProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr LoadProperties() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: VFKDataBlock::CleanProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr CleanProperties() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: VFKReader::GetFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFilename() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: VFKReader::GetEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetEncoding() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: VFKReader::IsSpatial
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSpatial() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: VFKReader::IsPreProcessed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPreProcessed() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: VFKReader::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValid() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: VFKReader::HasFileField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasFileField() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: VFKReader::GetDataBlockCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetDataBlockCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: VFKReaderSQLite::IsSpatial
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSpatial() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: VFKReaderSQLite::IsPreProcessed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPreProcessed() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: VFKReaderSQLite::IsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValid() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:29,1
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:29,1
    - Dst: VFKFeatureSQLite::SetFIDFromDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDataBlock
    argTypes:
    - IVFKDataBlock*
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: VFKFeatureSQLite::VFKFeatureSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - IVFKDataBlock*::GetFeatureCount
    - VFKFeatureSQLite::SetFIDFromDB
    linkageType: ''
    returnType: void
    signature: void VFKFeatureSQLite::VFKFeatureSQLite(IVFKDataBlock *poDataBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDataBlock
    - iRowId
    - nFID
    argTypes:
    - IVFKDataBlock*
    - int
    - GIntBig
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: VFKFeatureSQLite::VFKFeatureSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VFKFeatureSQLite::VFKFeatureSQLite(IVFKDataBlock *poDataBlock,
      int iRowId,\n                                   GIntBig nFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:57,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:58,1
    - Dst: VFKFeatureSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:59,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:59,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:62,1
    - Dst: VFKFeatureSQLite::FinalizeSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: VFKFeatureSQLite::SetFIDFromDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 1
    functionsReached:
    - CPLString::Printf
    - CPLString::c_str
    - sqlite3_column_int
    - VFKFeatureSQLite::FinalizeSQL
    - GetName
    - VFKFeatureSQLite::ExecuteSQL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKFeatureSQLite::SetFIDFromDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iRowId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: VFKFeatureSQLite::SetRowId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKFeatureSQLite::SetRowId(int iRowId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: VFKFeatureSQLite::FinalizeSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void VFKFeatureSQLite::FinalizeSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:98,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:98,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:104,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:106,1
    - Dst: VFKFeatureSQLite::FinalizeSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:110,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:117,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:119,1
    - Dst: VFKFeatureSQLite::FinalizeSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pszSQLCommand
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: VFKFeatureSQLite::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_step
    - VFKFeatureSQLite::FinalizeSQL
    - sqlite3_errmsg
    - CPLError
    - GetReader
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKFeatureSQLite::ExecuteSQL(const char *pszSQLCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:141,1
    - Dst: VFKFeature*::m_poDataBlock::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poVFKFeature
    argTypes:
    - VFKFeature*
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: VFKFeatureSQLite::VFKFeatureSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached:
    - VFKFeature*::m_poDataBlock::GetFeatureCount
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void VFKFeatureSQLite::VFKFeatureSQLite(const VFKFeature *poVFKFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: VFKFeatureSQLite::LoadGeometryPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VFKFeatureSQLite::LoadGeometryPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: VFKFeatureSQLite::LoadGeometryLineStringSBP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VFKFeatureSQLite::LoadGeometryLineStringSBP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: VFKFeatureSQLite::LoadGeometryLineStringHP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VFKFeatureSQLite::LoadGeometryLineStringHP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: VFKFeatureSQLite::LoadGeometryPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VFKFeatureSQLite::LoadGeometryPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:205,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:211,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:212,1
    - Dst: VFKFeatureSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:213,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:213,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:222,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:222,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:223,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:225,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:234,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:238,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:242,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:242,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:245,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:246,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:249,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:250,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:253,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:254,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:259,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:263,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:265,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:265,1
    - Dst: VFKFeatureSQLite::FinalizeSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 271
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 271
    functionName: VFKFeatureSQLite::LoadProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeaturesqlite.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetDefnRef
    - sqlite3_column_int64
    - sqlite3_column_type
    - CPLGetFilename
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - CPLString::c_str
    - cpl::down_cast<VFKReaderSQLite *>
    - GetReader
    - sqlite3_column_double
    - OGRFeature*::SetField
    - sqlite3_column_int
    - sqlite3_column_text
    - VFKFeatureSQLite::FinalizeSQL
    - cpl::down_cast<VFKDataBlockSQLite *>
    - GetName
    - VFKFeatureSQLite::ExecuteSQL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKFeatureSQLite::LoadProperties(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKDataBlock*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:27,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDataBlock
    argTypes:
    - IVFKDataBlock*
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: IVFKFeature::IVFKFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - IVFKDataBlock*::GetGeometryType
    linkageType: ''
    returnType: void
    signature: void IVFKFeature::IVFKFeature(IVFKDataBlock *poDataBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: IVFKFeature::~IVFKFeature()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKFeature::~IVFKFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: IVFKFeature::SetGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKFeature::SetGeometryType(OGRwkbGeometryType nGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: IVFKFeature::SetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - GetFeatureCount
    linkageType: ''
    returnType: void
    signature: void IVFKFeature::SetFID(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double[]
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: IVFKFeature::GetDeterminatOfMatrixDim3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double IVFKFeature::GetDeterminatOfMatrixDim3(double x[3], double
      y[3],\n                                              double z[3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:127,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - c_xy
    - x
    - y
    argTypes:
    - double[]
    - double[]
    - double[]
    constantsTouched: []
    func_position:
      end: 139
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 139
    functionName: IVFKFeature::GetCircleCenterFrom3Points
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - std::fabs
    linkageType: ''
    returnType: void
    signature: "void IVFKFeature::GetCircleCenterFrom3Points(double c_xy[2], double
      x[3],\n                                             double y[3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:152,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:155,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:156,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:157,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:160,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:161,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:162,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:165,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:166,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:167,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:170,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:171,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:172,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:175,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:176,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - poGeomString
    - c_x
    - c_y
    - r
    argTypes:
    - OGRCircularString
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 178
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 178
    functionName: IVFKFeature::AddCirclePointsToGeomString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::OGRPoint
    - OGRPoint::setX
    - OGRCircularString::addPoint
    - OGRPoint::setY
    linkageType: ''
    returnType: void
    signature: "void IVFKFeature::AddCirclePointsToGeomString(OGRCircularString &poGeomString,\n
      \                                             double c_x, double c_y, double
      r)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:204,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:206,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:213,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:218,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:219,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:227,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:228,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:230,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:231,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:241,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:245,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:247,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:249,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:253,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:254,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:257,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:261,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:266,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:280,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:281,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:282,1
    - Dst: IVFKFeature::GetCircleCenterFrom3Points
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:293,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:300,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:300,1
    - Dst: pow
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:300,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:303,1
    - Dst: IVFKFeature::AddCirclePointsToGeomString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:308,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:312,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:312,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:317,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:319,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:322,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:327,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:328,1
    - Dst: IVFKFeature::AddCirclePointsToGeomString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:332,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:335,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:337,1
    - Dst: auto::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:343,1
    - Dst: OGRCircularString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:344,1
    - Dst: OGRCircularString::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:349,1
    - Dst: OGRCircularString::CurveToLine
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:350,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:356,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:359,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:361,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:361,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:375,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:378,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:384,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:384,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:388,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 95
    argCount: 2
    argNames:
    - poGeom
    - ftype
    argTypes:
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 391
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 391
    functionName: IVFKFeature::SetGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRCircularString::IsEmpty
    - CPLDebug
    - OGRCircularString::OGRCircularString
    - CPLError
    - OGRGeometry*::clone
    - OGRCircularString::CurveToLine
    - sscanf
    - OGRPoint::getY
    - pow
    - IVFKFeature::AddCirclePointsToGeomString
    - OGRPoint::OGRPoint
    - std::move
    - strlen
    - std::unique_ptr::reset
    - GetName
    - OGRLinearRing*::getNumPoints
    - STARTS_WITH_CI
    - OGRPoint::getX
    - OGRCircularString::addPoint
    - OGRGeometry*::toLineString
    - OGRGeometry*::IsEmpty
    - IVFKFeature::GetCircleCenterFrom3Points
    - auto::getPoint
    - EQUAL
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: bool
    signature: bool IVFKFeature::SetGeometry(const OGRGeometry *poGeom, const char
      *ftype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKFeature::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:401,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: IVFKFeature::GetGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - IVFKFeature::LoadGeometry
    - get
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *IVFKFeature::GetGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:420,1
    - Dst: LoadGeometryPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:426,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:426,1
    - Dst: LoadGeometryLineStringSBP
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:429,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:432,1
    - Dst: LoadGeometryLineStringHP
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:435,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:437,1
    - Dst: LoadGeometryPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 444
    functionName: IVFKFeature::LoadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 1
    functionsReached:
    - LoadGeometryPoint
    - LoadGeometryLineStringHP
    - LoadGeometryLineStringSBP
    - EQUAL
    - LoadGeometryPolygon
    linkageType: ''
    returnType: bool
    signature: bool IVFKFeature::LoadGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:455,1
    - Dst: IVFKDataBlock*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:455,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:455,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:456,1
    - Dst: IVFKDataBlock*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:456,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poDataBlock
    - iFID
    argTypes:
    - IVFKDataBlock*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: VFKFeature::VFKFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - size
    - IVFKDataBlock*::GetPropertyCount
    - assign
    - CPLAssert
    - VFKProperty
    linkageType: ''
    returnType: void
    signature: void VFKFeature::VFKFeature(IVFKDataBlock *poDataBlock, GIntBig iFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:560,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:562,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:565,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:587,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:589,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:591,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:594,1
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:597,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:599,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:599,1
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:600,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:601,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:605,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:606,1
    - Dst: VFKFeature::SetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:608,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:608,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:628,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 81
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 631
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 631
    functionName: VFKFeature::SetProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLError
    - std::vector::end
    - VFKFeature::SetProperty
    - std::vector::size
    - strncpy
    - std::vector::begin
    - CPLRealloc
    - std::vector::push_back
    - GetPropertyCount
    - CPLFree
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::SetProperties(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:643,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:644,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:647,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:649,1
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:653,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:665,1
    - Dst: strtol
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:665,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:668,1
    - Dst: CPLAtoGIntBigEx
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:668,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:672,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:673,1
    - Dst: GetValueI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:679,1
    - Dst: GetValueI64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:680,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:684,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:684,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:693,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:694,1
    - Dst: VFKProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:698,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 2
    argNames:
    - iIndex
    - pszValue
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 704
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 704
    functionName: VFKFeature::SetProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLAtof
    - static_cast<int>
    - CPLError
    - strtol
    - CPLAtoGIntBigEx
    - GetValueI
    - strlen
    - VFKProperty
    - GetPropertyCount
    - VFKFeature::GetProperty
    - CPLFree
    - GetValueI64
    - CPLGetValueType
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::SetProperty(int iIndex, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:715,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 721
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 721
    functionName: VFKFeature::GetProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 1
    functionsReached:
    - size
    - GetPropertyCount
    linkageType: ''
    returnType: VFKProperty
    signature: VFKProperty *VFKFeature::GetProperty(int iIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:732,1
    - Dst: GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: VFKFeature::GetProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 2
    functionsReached:
    - VFKFeature::GetProperty
    - GetPropertyIndex
    linkageType: ''
    returnType: VFKProperty
    signature: VFKProperty *VFKFeature::GetProperty(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:749,1
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:750,1
    - Dst: SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 759
    functionName: VFKFeature::LoadGeometryPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - SetGeometry
    - VFKFeature::GetProperty
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::LoadGeometryPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:770,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:771,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:782,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:785,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:788,1
    - Dst: OGRLineString::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:794,1
    - Dst: GetPreviousFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:796,1
    - Dst: VFKDataBlock*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:800,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:805,1
    - Dst: OGRLineString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:806,1
    - Dst: cpl::down_cast<VFKFeature *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:808,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:808,1
    - Dst: OGRLineString::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:813,1
    - Dst: SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:814,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:817,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 820
    functionName: VFKFeature::LoadGeometryLineStringSBP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - VFKDataBlock*::ResetReading
    - OGRLineString::addPoint
    - GetNextFeature
    - VFKFeature*::GetProperty
    - cpl::down_cast<VFKDataBlock *>
    - GetPreviousFeature
    - SetGeometry
    - VFKDataBlock*::GetFeature
    - OGRLineString::getNumPoints
    - GetReader
    - OGRLineString::OGRLineString
    - VFKFeature*::GetGeometry
    - cpl::down_cast<VFKFeature *>
    - OGRLineString::setCoordinateDimension
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::LoadGeometryLineStringSBP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlock *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:831,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:832,1
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:841,1
    - Dst: VFKDataBlock*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:845,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:846,1
    - Dst: SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:849,1
    - Dst: VFKFeature*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:849,1
    - Dst: VFKDataBlock*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 853
    functionName: VFKFeature::LoadGeometryLineStringHP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - VFKDataBlock*::ResetReading
    - VFKFeature::GetProperty
    - cpl::down_cast<VFKDataBlock *>
    - SetGeometry
    - VFKDataBlock*::GetFeature
    - GetReader
    - VFKFeature*::GetGeometry
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::LoadGeometryLineStringHP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: VFKFeature::LoadGeometryPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VFKFeature::LoadGeometryPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:869,1
    - Dst: VFKFeature::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:871,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:872,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:876,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:878,1
    - Dst: auto::GetValueI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:878,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:880,1
    - Dst: auto::GetValueD
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:880,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:882,1
    - Dst: auto::GetValueS
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp:882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 886
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 886
    functionName: VFKFeature::LoadProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkfeature.cpp
    functionUses: 0
    functionsReached:
    - auto::GetValueI
    - OGRFeature*::GetDefnRef
    - auto::IsNull
    - auto::GetValueS
    - auto::GetValueD
    - OGRFeature*::SetField
    - GetPropertyCount
    - VFKFeature::GetProperty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKFeature::LoadProperties(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:28,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:34,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:35,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:38,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:42,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:43,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: OGRVFKDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH
    - VSI_ISREG
    - GDALOpenInfo*::IsExtensionEqualToCI
    - VSIStatL
    linkageType: ''
    returnType: int
    signature: int OGRVFKDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:60,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:63,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:64,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:66,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: OGRVFKDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRVFKDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:86,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:90,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:92,1
    - Dst: OGRVFKDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:95,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: DeclareDeferredOGRVFKPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogrvfkdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRVFKDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRVFKPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: IVFKReader::~IVFKReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IVFKReader::~IVFKReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKReaderSQLite::VFKReaderSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: CreateVFKReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - VFKReaderSQLite::VFKReaderSQLite
    linkageType: ''
    returnType: IVFKReader
    signature: IVFKReader *CreateVFKReader(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:50,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:51,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:55,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:59,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:61,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:62,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:64,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: VFKReader::VFKReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - VSIStatL
    - CPLFetchBool
    - VSI_ISREG
    - VSIFOpenL
    - CPLAssert
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void VFKReader::VFKReader(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:81,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:84,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:85,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: VFKReader::~VFKReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void VFKReader::~VFKReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: GetDataBlockName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *GetDataBlockName(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: VFKReader::ReadLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *VFKReader::ReadLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:148,1
    - Dst: VFKReader::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:150,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:152,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:157,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:161,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:167,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:178,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:193,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:195,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:197,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:201,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 203
    functionName: VFKReader::ReadEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - VFKReader::ReadLine
    - VSIFSeekL
    - EQUAL
    - strlen
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void VFKReader::ReadEncoding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:217,1
    - Dst: VFKReader::ReadEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:220,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:222,1
    - Dst: VFKReader::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:225,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:241,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:243,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:249,1
    - Dst: VFKReader::CreateDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:252,1
    - Dst: IVFKDataBlock*::SetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:253,1
    - Dst: IVFKDataBlock*::SetProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:254,1
    - Dst: VFKReader::AddDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:257,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:264,1
    - Dst: VFKReader::AddInfo
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:270,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:272,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:275,1
    - Dst: VFKReader::AddInfo
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:281,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:284,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - bSuppressGeometry
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 288
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 288
    functionName: VFKReader::ReadDataBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - VFKReader::GetDataBlock
    - VFKReader::AddDataBlock
    - VFKReader::ReadLine
    - VFKReader::ReadEncoding
    - VSIFSeekL
    - EQUAL
    - CPLAssert
    - IVFKDataBlock*::SetGeometryType
    - strlen
    - VFKReader::AddInfo
    - CPLError
    - VFKReader::CreateDataBlock
    - IVFKDataBlock*::SetProperties
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int VFKReader::ReadDataBlocks(bool bSuppressGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:307,1
    - Dst: IVFKDataBlock*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:308,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:309,1
    - Dst: VFKReader::GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:313,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:315,1
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:316,1
    - Dst: IVFKDataBlock*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:317,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:322,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:334,1
    - Dst: VFKReader::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:338,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:344,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:357,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:370,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:379,1
    - Dst: VFKReader::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:381,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:383,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:391,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:399,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:400,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:402,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:416,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:418,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:421,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:424,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:425,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:425,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:432,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:432,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:434,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:435,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:441,1
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:447,1
    - Dst: VFKFeature::VFKFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:446,1
    - Dst: VFKFeature*::SetProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:448,1
    - Dst: VFKReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:450,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:453,1
    - Dst: IVFKDataBlock*::SetIncRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:457,1
    - Dst: IVFKDataBlock*::SetIncRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:462,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:468,1
    - Dst: IVFKDataBlock*::SetIncRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:471,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:475,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:477,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:480,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:484,1
    - Dst: VFKReader::GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:487,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:489,1
    - Dst: IVFKDataBlock*::GetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:494,1
    - Dst: IVFKDataBlock*::GetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:495,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:497,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:499,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:501,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:503,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:505,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:506,1
    - Dst: IVFKDataBlock*::GetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:507,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 115
    argCount: 1
    argNames:
    - poDataBlock
    argTypes:
    - IVFKDataBlock*
    constantsTouched: []
    func_position:
      end: 511
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 511
    functionName: VFKReader::ReadDataRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - VFKFeature::VFKFeature
    - IVFKDataBlock*::SetFeatureCount
    - strncpy
    - CPLDebug
    - IVFKDataBlock*::GetRecordCount
    - CPLString
    - CPLError
    - VFKReader::GetDataBlock
    - CPLString::empty
    - CPLString::c_str
    - CPLString::size
    - IVFKDataBlock*::SetIncRecordCount
    - IVFKDataBlock*::GetName
    - strlen
    - CPLMalloc
    - VFKFeature*::SetProperties
    - IVFKDataBlock*::GetFeatureCount
    - VFKReader::ReadLine
    - VSIFSeekL
    - CPLFree
    - EQUAL
    - VFKReader::AddFeature
    - VFKReader::GetDataBlockCount
    linkageType: ''
    returnType: int64_t
    signature: int64_t VFKReader::ReadDataRecords(IVFKDataBlock *poDataBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKDataBlock::VFKDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszBlockName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: VFKReader::CreateDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - VFKDataBlock::VFKDataBlock
    linkageType: ''
    returnType: IVFKDataBlock
    signature: IVFKDataBlock *VFKReader::CreateDataBlock(const char *pszBlockName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - poNewDataBlock
    - pszDefn
    argTypes:
    - IVFKDataBlock*
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: VFKReader::AddDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: "void VFKReader::AddDataBlock(IVFKDataBlock *poNewDataBlock,\n                             CPL_UNUSED
      const char *pszDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKDataBlock*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poDataBlock
    - poFeature
    argTypes:
    - IVFKDataBlock*
    - VFKFeature*
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: VFKReader::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - IVFKDataBlock*::AddFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKReader::AddFeature(IVFKDataBlock *poDataBlock, VFKFeature
      *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: VFKReader::GetDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: IVFKDataBlock
    signature: IVFKDataBlock *VFKReader::GetDataBlock(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:572,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:572,1
    - Dst: VFKReader::GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: VFKReader::GetDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 3
    functionsReached:
    - EQUAL
    - VFKReader::GetDataBlock
    linkageType: ''
    returnType: IVFKDataBlock
    signature: IVFKDataBlock *VFKReader::GetDataBlock(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKReader::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:589,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:592,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: VFKReader::LoadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - VFKReader::LoadGeometry
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int VFKReader::LoadGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:618,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:655,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:655,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:666,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:667,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:671,1
    - Dst: std::map<CPLString, CPLString>::iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:671,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:675,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:677,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:680,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:681,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:682,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 683
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 683
    functionName: VFKReader::AddInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    - strncpy
    - begin
    - snprintf
    - std::map<CPLString, CPLString>::iterator::first::c_str
    - EQUALN
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void VFKReader::AddInfo(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:694,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:694,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: VFKReader::GetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreader.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - c_str
    linkageType: ''
    returnType: char
    signature: char *VFKReader::GetInfo(const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: OGRVFKLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogr_vfk.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: OGRVFKDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogr_vfk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: OGRVFKDataSource::GetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/ogr_vfk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IVFKReader
    signature: IVFKReader *GetReader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iValue
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty(int iValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iValue
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty(GIntBig iValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty(double dValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty(const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - strValue
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: VFKProperty::VFKProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::VFKProperty(CPLString const &strValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: VFKProperty::~VFKProperty()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFKProperty::~VFKProperty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp:84,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp:88,1
    - Dst: CPLString::replace
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp:90,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp:94,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - escape
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: VFKProperty::GetValueS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkproperty.cpp
    functionUses: 0
    functionsReached:
    - CPLString::replace
    - c_str
    - CPLSPrintf
    - CPLString::c_str
    - CPLString::find
    linkageType: ''
    returnType: char
    signature: char *VFKProperty::GetValueS(bool escape) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszName
    - poReader
    argTypes:
    - char*
    - IVFKReader*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: VFKDataBlockSQLite::VFKDataBlockSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VFKDataBlockSQLite::VFKDataBlockSQLite(const char *pszName,\n
      \                                      const IVFKReader *poReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKDataBlockSQLite::LoadGeometryFromDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:41,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:49,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:52,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:53,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:53,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:55,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:56,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:60,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:67,1
    - Dst: dynamic_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:71,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:71,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:72,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:79,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:86,1
    - Dst: VFKDataBlockSQLite::SaveGeometryToDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:87,1
    - Dst: VFKDataBlockSQLite::UpdateVfkBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:92,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:94,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 98
    functionName: VFKDataBlockSQLite::LoadGeometryPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_int64
    - CPLString::Printf
    - VFKDataBlockSQLite::LoadGeometryFromDB
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - VFKReaderSQLite*::IsSpatial
    - VFKFeatureSQLite*::SetGeometry
    - VFKDataBlockSQLite::SaveGeometryToDB
    - dynamic_cast<VFKFeatureSQLite *>
    - VFKDataBlockSQLite::UpdateVfkBlocks
    - VFKFeatureSQLite*::GetFID
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: int
    signature: int VFKDataBlockSQLite::LoadGeometryPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:116,1
    - Dst: OGRLineString*::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:134,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:141,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:149,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:154,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:157,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:160,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:160,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:162,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:166,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:169,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:169,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:171,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:174,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:177,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:177,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:184,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:191,1
    - Dst: VFKDataBlockSQLite::UpdateFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:195,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:195,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:198,1
    - Dst: std::vector<int>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:198,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:199,1
    - Dst: VFKDataBlockSQLite::SaveGeometryToDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:200,1
    - Dst: VFKFeatureSQLite*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:200,1
    - Dst: std::vector<int>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:205,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:206,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 6
    argNames:
    - poLine
    - oOGRLine
    - bValid
    - ftype
    - rowIdFeat
    - nGeometries
    argTypes:
    - VFKFeatureSQLite*
    - OGRLineString*
    - bool
    - char*
    - std::vector<int>
    - int
    constantsTouched: []
    func_position:
      end: 209
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 209
    functionName: VFKDataBlockSQLite::SetGeometryLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::setCoordinateDimension
    - STARTS_WITH_CI
    - std::vector<int>::empty
    - CPLDebug
    - EQUAL
    - OGRLineString*::getNumPoints
    - VFKDataBlockSQLite::UpdateFID
    - CPLAssert
    - VFKFeatureSQLite*::SetGeometry
    - strlen
    - VFKReaderSQLite*::IsSpatial
    - VFKDataBlockSQLite::SaveGeometryToDB
    - CPLError
    - VFKFeatureSQLite*::GetGeometry
    - OGRLineString*::empty
    - std::vector<int>::clear
    - VFKFeatureSQLite*::GetFID
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: bool
    signature: "bool VFKDataBlockSQLite::SetGeometryLineString(VFKFeatureSQLite *poLine,\n
      \                                              OGRLineString *oOGRLine,\n                                               bool
      &bValid, const char *ftype,\n                                               std::vector<int>
      &rowIdFeat,\n                                               int &nGeometries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:221,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:224,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:230,1
    - Dst: VFKDataBlockSQLite*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:232,1
    - Dst: VFKDataBlockSQLite::LoadGeometryFromDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:234,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:238,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:239,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:239,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:250,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:258,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:266,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:266,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:268,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:269,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:273,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:275,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:278,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:279,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:287,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:287,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:290,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:292,1
    - Dst: VFKFeatureSQLite*::SetRowId
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:295,1
    - Dst: VFKDataBlockSQLite::SetGeometryLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:298,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:299,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:311,1
    - Dst: VFKDataBlockSQLite*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:312,1
    - Dst: VFKFeatureSQLite*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:315,1
    - Dst: OGRLineString::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:318,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:318,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:322,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:338,1
    - Dst: VFKDataBlockSQLite::SetGeometryLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:343,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:343,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:350,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:351,1
    - Dst: VFKDataBlockSQLite::UpdateVfkBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:355,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 358
    functionName: VFKDataBlockSQLite::LoadGeometryLineStringSBP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - VFKDataBlockSQLite::SetGeometryLineString
    - sqlite3_finalize
    - CPLError
    - std::vector::push_back
    - sqlite3_column_int64
    - cpl::down_cast<VFKFeatureSQLite *>
    - GetDataBlock
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::IsSpatial
    - cpl::down_cast<VFKDataBlockSQLite *>
    - OGRLineString::OGRLineString
    - cpl::down_cast<VFKReaderSQLite *>
    - VFKDataBlockSQLite*::GetFeature
    - OGRLineString::addPoint
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - VFKReaderSQLite*::PrepareStatement
    - VFKDataBlockSQLite::LoadGeometryFromDB
    - VFKFeatureSQLite*::GetGeometry
    - VFKFeatureSQLite*::SetRowId
    - OGRGeometry*::toPoint
    - VFKDataBlockSQLite::UpdateVfkBlocks
    - VFKDataBlockSQLite*::LoadGeometry
    linkageType: ''
    returnType: int
    signature: int VFKDataBlockSQLite::LoadGeometryLineStringSBP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:368,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:371,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:374,1
    - Dst: VFKDataBlockSQLite*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:379,1
    - Dst: VFKDataBlockSQLite::LoadGeometryFromDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:381,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:385,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:393,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:395,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:395,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:397,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:398,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:402,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:405,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:406,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:410,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:410,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:411,1
    - Dst: VFKDataBlockSQLite*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:417,1
    - Dst: VFKFeatureSQLite*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:420,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:421,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:423,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:434,1
    - Dst: VFKDataBlockSQLite::SaveGeometryToDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:435,1
    - Dst: VFKDataBlockSQLite::UpdateVfkBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:440,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:442,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:443,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 446
    functionName: VFKDataBlockSQLite::LoadGeometryLineStringHP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - CPLError
    - VFKFeatureSQLite*::GetFID
    - sqlite3_column_int64
    - cpl::down_cast<VFKFeatureSQLite *>
    - GetDataBlock
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::IsSpatial
    - VFKFeatureSQLite*::SetGeometry
    - cpl::down_cast<VFKDataBlockSQLite *>
    - cpl::down_cast<VFKReaderSQLite *>
    - VFKDataBlockSQLite*::GetFeature
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - VFKReaderSQLite*::PrepareStatement
    - VFKDataBlockSQLite::SaveGeometryToDB
    - VFKDataBlockSQLite::LoadGeometryFromDB
    - EQUAL
    - VFKFeatureSQLite*::GetGeometry
    - VFKDataBlockSQLite::UpdateVfkBlocks
    - VFKDataBlockSQLite*::LoadGeometry
    linkageType: ''
    returnType: int
    signature: int VFKDataBlockSQLite::LoadGeometryLineStringHP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:457,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:469,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:471,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:472,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:478,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:479,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:480,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:486,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:493,1
    - Dst: VFKDataBlockSQLite*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:499,1
    - Dst: VFKDataBlockSQLite*::LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:500,1
    - Dst: VFKDataBlockSQLite::LoadGeometryFromDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:502,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:520,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:521,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:521,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:523,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:524,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:530,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:533,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:538,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:538,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:539,1
    - Dst: VFKDataBlockSQLite*::GetFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:549,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:553,1
    - Dst: VFKDataBlockSQLite*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:554,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:555,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:559,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:562,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:562,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:564,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:566,1
    - Dst: VFKDataBlockSQLite*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:569,1
    - Dst: VFKFeatureSQLiteList::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:571,1
    - Dst: VFKFeatureSQLiteList::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:574,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:576,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:582,1
    - Dst: GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:585,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:588,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:594,1
    - Dst: OGRMultiLineString::BuildArea
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:594,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:596,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:597,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:597,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:599,1
    - Dst: auto::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:606,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:607,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:607,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:614,1
    - Dst: VFKDataBlockSQLite::SaveGeometryToDB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:615,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:615,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:619,1
    - Dst: VFKDataBlockSQLite::UpdateVfkBlocks
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:623,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:625,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:626,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 630
    functionName: VFKDataBlockSQLite::LoadGeometryPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<OGRGeometry>
    - CPLDebug
    - auto::get
    - OGRMultiLineString::addGeometry
    - CPLError
    - VFKFeatureSQLite*::GetFID
    - sqlite3_column_int64
    - VFKDataBlockSQLite*::LoadGeometry
    - cpl::down_cast<VFKFeatureSQLite *>
    - GetDataBlock
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::IsSpatial
    - VFKFeatureSQLite*::SetGeometry
    - cpl::down_cast<VFKDataBlockSQLite *>
    - wkbFlatten
    - OGRMultiLineString::OGRMultiLineString
    - cpl::down_cast<VFKReaderSQLite *>
    - VFKDataBlockSQLite*::GetFeature
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - VFKReaderSQLite*::PrepareStatement
    - VFKFeatureSQLiteList::push_back
    - VFKDataBlockSQLite::SaveGeometryToDB
    - auto::IsEmpty
    - GetGeometry
    - auto::setCoordinateDimension
    - VFKDataBlockSQLite::LoadGeometryFromDB
    - OGRMultiLineString::BuildArea
    - EQUAL
    - auto::getGeometryType
    - VFKDataBlockSQLite*::GetFeatures
    - VFKFeatureSQLiteList::empty
    - VFKDataBlockSQLite::UpdateVfkBlocks
    - VFKDataBlockSQLite*::GetName
    linkageType: ''
    returnType: int
    signature: int VFKDataBlockSQLite::LoadGeometryPolygon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDataRecords
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:645,1
    - Dst: LoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:653,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:656,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:661,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:661,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:665,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:665,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:668,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:670,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:672,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 675
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 675
    functionName: VFKDataBlockSQLite::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - LoadGeometry
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - EQUAL
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - ReadDataRecords
    - sqlite3_column_int
    - sqlite3_finalize
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: IVFKFeature
    signature: IVFKFeature *VFKDataBlockSQLite::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:689,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:692,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:698,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:702,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:702,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:703,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:707,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:712,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - column
    - value
    - bGeom
    argTypes:
    - char*
    - GUIntBig
    - bool
    constantsTouched: []
    func_position:
      end: 713
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 713
    functionName: VFKDataBlockSQLite::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<VFKFeatureSQLite *>
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - sqlite3_finalize
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: VFKFeatureSQLite
    signature: "VFKFeatureSQLite *VFKDataBlockSQLite::GetFeature(const char *column,\n
      \                                                GUIntBig value, bool bGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:729,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:732,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:738,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:740,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:745,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:749,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:749,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:750,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:754,1
    - Dst: cpl::down_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:759,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - column
    - value
    - num
    - bGeom
    argTypes:
    - char**
    - GUIntBig*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 760
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 760
    functionName: VFKDataBlockSQLite::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<VFKFeatureSQLite *>
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - sqlite3_finalize
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: VFKFeatureSQLite
    signature: "VFKFeatureSQLite *VFKDataBlockSQLite::GetFeature(const char **column,\n
      \                                                GUIntBig *value, int num,\n
      \                                                bool bGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:774,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:778,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:782,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:784,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:792,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:792,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:793,1
    - Dst: dynamic_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:797,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:797,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:800,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:802,1
    - Dst: VFKFeatureSQLiteList
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:803,1
    - Dst: VFKFeatureSQLiteList::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - column
    - value
    - num
    argTypes:
    - char**
    - GUIntBig*
    - int
    constantsTouched: []
    func_position:
      end: 809
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 809
    functionName: VFKDataBlockSQLite::GetFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - VFKFeatureSQLiteList::push_back
    - sqlite3_finalize
    - CPLError
    - dynamic_cast<VFKFeatureSQLite *>
    - VFKFeatureSQLiteList
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: VFKFeatureSQLiteList
    signature: "VFKFeatureSQLiteList VFKDataBlockSQLite::GetFeatures(const char **column,\n
      \                                                    GUIntBig *value, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:827,1
    - Dst: VFKDataBlockSQLite::AddGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:831,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:837,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:837,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:839,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:842,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:845,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:847,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:849,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:849,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:851,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:851,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:855,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:856,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:864,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:866,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:866,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - poGeom
    - iRowId
    argTypes:
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 870
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 870
    functionName: VFKDataBlockSQLite::SaveGeometryToDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 4
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<int>
    - VFKDataBlockSQLite::AddGeometryColumn
    - sqlite3_bind_blob
    - CPLString::Printf
    - OGRGeometry*::exportToWkb
    - VFKReaderSQLite*::ExecuteSQL
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - sqlite3_finalize
    - CPLError
    - VSI_MALLOC_VERBOSE
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr VFKDataBlockSQLite::SaveGeometryToDB(const OGRGeometry *poGeom,\n
      \                                           int iRowId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:879,1
    - Dst: VFKReaderSQLite*::IsSpatial
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:881,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:885,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:887,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:887,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:888,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:891,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:901,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:903,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:903,1
    - Dst: VFKReaderSQLite*::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:907,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:907,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:913,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:916,1
    - Dst: dynamic_cast<VFKFeatureSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:918,1
    - Dst: GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:918,1
    - Dst: VFKFeatureSQLite*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:919,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:927,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:928,1
    - Dst: VFKFeatureSQLite*::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:932,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:944,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:956,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 962
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 962
    functionName: VFKDataBlockSQLite::LoadGeometryFromDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 4
    functionsReached:
    - sqlite3_column_int64
    - OGRGeometryFactory::createFromWkb
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - GetFeatureByIndex
    - CPLDebug
    - EQUAL
    - CPLString::c_str
    - VFKReaderSQLite*::PrepareStatement
    - VFKReaderSQLite*::IsSpatial
    - sqlite3_column_blob
    - VFKFeatureSQLite*::SetGeometry
    - sqlite3_finalize
    - CPLError
    - dynamic_cast<VFKFeatureSQLite *>
    - VFKFeatureSQLite*::GetFID
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: bool
    signature: bool VFKDataBlockSQLite::LoadGeometryFromDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:973,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:979,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:981,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:981,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:987,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:992,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:995,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nGeometries
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 997
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 997
    functionName: VFKDataBlockSQLite::UpdateVfkBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 4
    functionsReached:
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - CPLDebug
    - CPLString::c_str
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: void
    signature: void VFKDataBlockSQLite::UpdateVfkBlocks(int nGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1008,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1011,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1013,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1016,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1018,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1023,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - iFID
    - rowId
    argTypes:
    - GIntBig
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 1024
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1024
    functionName: VFKDataBlockSQLite::UpdateFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 1
    functionsReached:
    - std::vector<int>::size
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - Printf
    - CPLString::c_str
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: void
    signature: void VFKDataBlockSQLite::UpdateFID(GIntBig iFID, const std::vector<int>
      &rowId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1039,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1039,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1040,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poRing
    argTypes:
    - OGRLinearRing*
    constantsTouched: []
    func_position:
      end: 1044
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1044
    functionName: VFKDataBlockSQLite::IsRingClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getX
    - OGRLinearRing*::getY
    linkageType: ''
    returnType: bool
    signature: bool VFKDataBlockSQLite::IsRingClosed(const OGRLinearRing *poRing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1053,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1055,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: VFKDataBlockSQLite::GetKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetPropertyCount
    - GetProperty
    linkageType: ''
    returnType: char
    signature: char *VFKDataBlockSQLite::GetKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1079
    functionName: VFKDataBlockSQLite::GetGeometrySQLType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VFKDataBlockSQLite::GetGeometrySQLType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1090,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1092,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1093,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1093,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1096,1
    - Dst: VFKReaderSQLite*::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1098,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1102
    functionName: VFKDataBlockSQLite::AddGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 1
    functionsReached:
    - CPLString::c_str
    - CPLString::Printf
    - VFKReaderSQLite*::ExecuteSQL
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKDataBlockSQLite::AddGeometryColumn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1116,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1120,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1120,1
    - Dst: cpl::down_cast<VFKReaderSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1123,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1130
    functionName: VFKDataBlockSQLite::LoadProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - CPLString::Printf
    - EQUAL
    - CPLString::c_str
    - sqlite3_finalize
    - cpl::down_cast<VFKReaderSQLite *>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKDataBlockSQLite::LoadProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp:1141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1150
    functionName: VFKDataBlockSQLite::CleanProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKDataBlockSQLite::CleanProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:33,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:33,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:41,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:57,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:59,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:63,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:69,1
    - Dst: char::char
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:73,1
    - Dst: std::strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:74,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:74,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:77,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:79,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:82,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:82,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:85,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:88,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:95,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:98,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:109,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:112,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:114,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:115,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:127,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:130,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:130,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:132,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:133,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:138,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:152,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:153,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:153,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:155,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:164,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:170,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:172,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:174,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:175,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:177,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:179,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:181,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:190,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:190,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:192,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:199,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:204,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:204,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:207,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:209,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:209,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:212,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:217,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:217,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:220,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:224,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:224,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:227,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:228,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:229,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:232,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:233,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:236,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:236,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 93
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 241
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 241
    functionName: VFKReaderSQLite::VFKReaderSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 1
    functionsReached:
    - VFKReaderSQLite::ExecuteSQL
    - CPLDebug
    - sqlite3_close
    - std::strncpy
    - CPLError
    - CPLString::resize
    - STARTS_WITH
    - CPLGetConfigOption
    - sqlite3_free_table
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLString::c_str
    - strlen
    - OGRSpatialReference*::importFromEPSG
    - CPLString::length
    - sqlite3_open
    - CPLTestBool
    - OGRSpatialReference*::exportToWkt
    - CPLString::Printf
    - VSIUnlink
    - CPL_IGNORE_RET_VAL
    - char::char
    - sqlite3_errmsg
    - sqlite3_exec
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - VSIStatL
    - CPLResetExtensionSafe
    - sqlite3_get_table
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void VFKReaderSQLite::VFKReaderSQLite(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CleanProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:250,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:253,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:255,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:256,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:258,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:261,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:261,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:263,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: VFKReaderSQLite::~VFKReaderSQLite()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - VSIUnlink
    - sqlite3_close
    - CPLDebug
    - CleanProperties
    - sqlite3_errmsg
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void VFKReaderSQLite::~VFKReaderSQLite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:279,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:280,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:280,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:281,1
    - Dst: VFKReaderSQLite::CreateDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:288,1
    - Dst: IVFKDataBlock*::SetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:289,1
    - Dst: IVFKDataBlock*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:290,1
    - Dst: cpl::down_cast<VFKDataBlockSQLite *>
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:297,1
    - Dst: IVFKDataBlock*::SetProperties
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:300,1
    - Dst: VFKReader::AddDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:301,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:305,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:306,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:309,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - bSuppressGeometry
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: VFKReaderSQLite::ReadDataBlocks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 0
    functionsReached:
    - VFKReaderSQLite::PrepareStatement
    - VFKReader::AddDataBlock
    - VFKReaderSQLite::ExecuteSQL
    - CPLString::Printf
    - sqlite3_exec
    - CPLString::c_str
    - IVFKDataBlock*::SetGeometryType
    - CPL_IGNORE_RET_VAL
    - cpl::down_cast<VFKDataBlockSQLite *>
    - IVFKDataBlock*::GetGeometryType
    - VFKReaderSQLite::CreateDataBlock
    - IVFKDataBlock*::SetProperties
    linkageType: ''
    returnType: int
    signature: int VFKReaderSQLite::ReadDataBlocks(bool bSuppressGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:337,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:340,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:343,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:343,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:344,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:346,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:352,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:357,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:359,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:359,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:360,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:361,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:363,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:367,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:369,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:371,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:371,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:372,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:373,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:376,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:380,1
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:389,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:391,1
    - Dst: IVFKDataBlock*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:396,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:398,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:399,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:401,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:402,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:406,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:406,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:408,1
    - Dst: VFKFeatureSQLite::VFKFeatureSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:413,1
    - Dst: IVFKDataBlock*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:414,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:419,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:421,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:421,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:422,1
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:426,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:427,1
    - Dst: IVFKDataBlock*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:430,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:433,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:440,1
    - Dst: VFKReaderSQLite::StoreInfo2DB
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:443,1
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:453,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:456,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:462,1
    - Dst: IVFKDataBlock*::GetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:464,1
    - Dst: IVFKDataBlock*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:465,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:467,1
    - Dst: VFKReaderSQLite::CreateIndices
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:472,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:475,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 1
    argNames:
    - poDataBlock
    argTypes:
    - IVFKDataBlock*
    constantsTouched: []
    func_position:
      end: 479
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 479
    functionName: VFKReaderSQLite::ReadDataRecords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 0
    functionsReached:
    - GetDataBlockCount
    - IVFKDataBlock*::SetFeatureCount
    - VFKReaderSQLite::ExecuteSQL
    - CPLGetFilename
    - CPLDebug
    - IVFKDataBlock*::GetRecordCount
    - IVFKDataBlock*::AddFeature
    - sqlite3_finalize
    - CPLError
    - sqlite3_column_int64
    - GetDataBlock
    - CPLString::c_str
    - IVFKDataBlock*::GetName
    - sqlite3_column_int
    - VFKReaderSQLite::PrepareStatement
    - IVFKDataBlock*::GetFeatureCount
    - CPLString::Printf
    - VFKReaderSQLite::CreateIndices
    - CPLAssert
    - VFKFeatureSQLite::VFKFeatureSQLite
    - EQUAL
    - VFKReaderSQLite::StoreInfo2DB
    linkageType: ''
    returnType: int64_t
    signature: int64_t VFKReaderSQLite::ReadDataRecords(IVFKDataBlock *poDataBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:486,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:487,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:494,1
    - Dst: std::map<CPLString, CPLString>::iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:495,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: VFKReaderSQLite::StoreInfo2DB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 1
    functionsReached:
    - end
    - VFKReaderSQLite::ExecuteSQL
    - CPLString::Printf
    - begin
    - std::map<CPLString, CPLString>::iterator::first::c_str
    linkageType: ''
    returnType: void
    signature: void VFKReaderSQLite::StoreInfo2DB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDataBlockCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:511,1
    - Dst: GetDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:513,1
    - Dst: VFKDataBlockSQLite*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:514,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:517,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:520,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:522,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:523,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:523,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:525,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:526,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:530,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:533,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:536,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:537,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:538,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:538,1
    - Dst: VFKDataBlockSQLite*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:540,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:547,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:547,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:548,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:548,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:549,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:549,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:550,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:550,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:552,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:559,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:560,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:566,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:569,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:570,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:571,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:572,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:574,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:576,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:578,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:581,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:584,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:585,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:587,1
    - Dst: VFKReaderSQLite::CreateIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:590,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 593
    functionName: VFKReaderSQLite::CreateIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 1
    functionsReached:
    - GetDataBlockCount
    - VFKReaderSQLite::PrepareStatement
    - c_str
    - VFKDataBlockSQLite*::GetGeometryType
    - VFKReaderSQLite::ExecuteSQL
    - CPLString::Printf
    - VFKReaderSQLite::CreateIndex
    - GetDataBlock
    - Printf
    - CPLString::c_str
    - EQUAL
    - sqlite3_column_int
    - sqlite3_finalize
    - VFKDataBlockSQLite*::GetName
    linkageType: ''
    returnType: void
    signature: void VFKReaderSQLite::CreateIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:612,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:613,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:613,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:619,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:620,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - name
    - table
    - column
    - unique
    argTypes:
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 621
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 621
    functionName: VFKReaderSQLite::CreateIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 1
    functionsReached:
    - CPLString::c_str
    - CPLString::Printf
    - VFKReaderSQLite::ExecuteSQL
    linkageType: ''
    returnType: void
    signature: "void VFKReaderSQLite::CreateIndex(const char *name, const char *table,\n
      \                                 const char *column, bool unique)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VFKDataBlockSQLite::VFKDataBlockSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszBlockName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: VFKReaderSQLite::CreateDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 1
    functionsReached:
    - VFKDataBlockSQLite::VFKDataBlockSQLite
    linkageType: ''
    returnType: IVFKDataBlock
    signature: IVFKDataBlock *VFKReaderSQLite::CreateDataBlock(const char *pszBlockName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:650,1
    - Dst: VFKReaderSQLite::PrepareStatement
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:653,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:653,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:655,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:657,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:660,1
    - Dst: IVFKDataBlock*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:661,1
    - Dst: IVFKDataBlock*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:663,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:666,1
    - Dst: VFKPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:666,1
    - Dst: VFKPropertyDefn*::GetTypeSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:667,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:670,1
    - Dst: IVFKDataBlock*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:672,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:674,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:678,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:678,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:681,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:685,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:687,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:687,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:692,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:698,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:698,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:700,1
    - Dst: VFKReader::AddDataBlock
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - poDataBlock
    - pszDefn
    argTypes:
    - IVFKDataBlock*
    - char*
    constantsTouched: []
    func_position:
      end: 704
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 704
    functionName: VFKReaderSQLite::AddDataBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 0
    functionsReached:
    - VFKReaderSQLite::PrepareStatement
    - VFKPropertyDefn*::GetName
    - VFKReader::AddDataBlock
    - VFKReaderSQLite::ExecuteSQL
    - CPLGetFilename
    - CPLString::Printf
    - IVFKDataBlock*::GetGeometryType
    - IVFKDataBlock*::GetPropertyCount
    - IVFKDataBlock*::GetProperty
    - CPLString::c_str
    - sqlite3_column_int
    - sqlite3_finalize
    - VFKPropertyDefn*::GetTypeSQL
    linkageType: ''
    returnType: void
    signature: "void VFKReaderSQLite::AddDataBlock(IVFKDataBlock *poDataBlock,\n                                   const
      char *pszDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:715,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:725,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:727,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszSQLCommand
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 738
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 738
    functionName: VFKReaderSQLite::PrepareStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 4
    functionsReached:
    - CPLError
    - sqlite3_errmsg
    - CPLDebug
    - sqlite3_finalize
    linkageType: ''
    returnType: sqlite3_stmt
    signature: sqlite3_stmt *VFKReaderSQLite::PrepareStatement(const char *pszSQLCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:759,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:761,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - hStmt
    argTypes:
    - sqlite3_stmt*
    constantsTouched: []
    func_position:
      end: 771
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 771
    functionName: VFKReaderSQLite::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 7
    functionsReached:
    - CPLError
    - sqlite3_errmsg
    - sqlite3_finalize
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKReaderSQLite::ExecuteSQL(sqlite3_stmt *&hStmt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:787,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:791,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pszSQLCommand
    - eErrLevel
    argTypes:
    - char*
    - CPLErr
    constantsTouched: []
    func_position:
      end: 800
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 800
    functionName: VFKReaderSQLite::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 7
    functionsReached:
    - CPLError
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr VFKReaderSQLite::ExecuteSQL(const char *pszSQLCommand, CPLErr
      eErrLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:817,1
    - Dst: IVFKDataBlock*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:819,1
    - Dst: IVFKDataBlock*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:821,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:822,1
    - Dst: VFKProperty*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:826,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:828,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:835,1
    - Dst: VFKProperty*::GetValueI
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:835,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:838,1
    - Dst: VFKProperty*::GetValueI64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:838,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:841,1
    - Dst: VFKProperty*::GetValueD
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:841,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:844,1
    - Dst: VFKProperty*::GetValueS
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:844,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:847,1
    - Dst: VFKProperty*::GetValueS
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:847,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:853,1
    - Dst: VFKFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:853,1
    - Dst: IVFKDataBlock*::GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:854,1
    - Dst: VFKReaderSQLite::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:861,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:861,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:864,1
    - Dst: VFKFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:866,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:869,1
    - Dst: VFKProperty*::GetValueI64
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:873,1
    - Dst: IVFKDataBlock*::GetRecordCount
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:878,1
    - Dst: VFKFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:879,1
    - Dst: VFKFeatureSQLite::VFKFeatureSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:877,1
    - Dst: IVFKDataBlock*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp:880,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - poDataBlock
    - poFeature
    argTypes:
    - IVFKDataBlock*
    - VFKFeature*
    constantsTouched: []
    func_position:
      end: 883
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 883
    functionName: VFKReaderSQLite::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vfk/vfkreadersqlite.cpp
    functionUses: 0
    functionsReached:
    - VFKProperty*::GetValueI
    - VFKReaderSQLite::ExecuteSQL
    - CPLString::Printf
    - IVFKDataBlock*::GetGeometryType
    - VFKFeature*::GetProperty
    - IVFKDataBlock*::GetPropertyCount
    - IVFKDataBlock*::GetProperty
    - VFKProperty*::IsNull
    - VFKProperty*::GetValueS
    - VFKFeature*::GetFID
    - CPLString::c_str
    - VFKProperty*::GetValueI64
    - EQUAL
    - IVFKDataBlock*::GetRecordCount
    - VFKFeatureSQLite::VFKFeatureSQLite
    - IVFKDataBlock*::AddFeature
    - CPLError
    - VFKProperty*::GetValueD
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr VFKReaderSQLite::AddFeature(IVFKDataBlock *poDataBlock,\n                                   VFKFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:27,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:37,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:41,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:41,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:46,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:57,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:63,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:68,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:73,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:74,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:75,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:80,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 85
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 85
    functionName: OGRFeatherDriverIsArrowIPCStreamBasic
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIFSeekL
    - memcmp
    - EQUAL
    - strcmp
    - VSIFTellL
    linkageType: ''
    returnType: int
    signature: int OGRFeatherDriverIsArrowIPCStreamBasic(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: constexpr_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int constexpr_length(const char (&)[N])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:108,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:110,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:111,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:112,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:117,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:118,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:120,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:121,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: OGRFeatherDriverIsArrowFileFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - memcmp
    - VSIFTellL
    - VSIFReadL
    - CPL_LSBPTR32
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherDriverIsArrowFileFormat(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:134,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:136,1
    - Dst: OGRFeatherDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:138,1
    - Dst: OGRFeatherDriverIsArrowFileFormat
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: OGRFeatherDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatherDriverIsArrowFileFormat
    - STARTS_WITH
    - strlen
    - OGRFeatherDriverIdentify
    linkageType: ''
    returnType: int
    signature: int OGRFeatherDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:153,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:155,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:163,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:164,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:171,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:173,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:178,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: OGRFeatherDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRFeatherDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:189,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:193,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:195,1
    - Dst: OGRFeatherDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:198,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: DeclareDeferredOGRArrowPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - auto::SetMetadataItem
    - GetGDALDriverManager
    - OGRFeatherDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRArrowPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMemoryPool
    argTypes:
    - std::shared_ptr<arrow::MemoryPool>
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: OGRFeatherDataset::OGRFeatherDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherDataset::OGRFeatherDataset(\n    const std::shared_ptr<arrow::MemoryPool>
      &poMemoryPool)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdataset.cpp:34,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdataset.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: OGRFeatherDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRFeatherDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:35,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:45,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:49,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:49,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:54,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:56,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:72,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:78,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:79,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:80,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:83,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:83,1
    - Dst: flatbuffers::FlatBufferBuilder::ForceDefaults
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:84,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:86,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:87,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:88,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:89,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:90,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:93,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:94,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:95,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:101,1
    - Dst: flatbuffers::FlatBufferBuilder::ForceDefaults
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:103,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:105,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:106,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 110
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 110
    functionName: IsArrowIPCStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::status
    - memcmp
    - CPLDebug
    - strcmp
    - VSIFTellL
    - std::string::c_str
    - GDALOpenInfo*::TryToIngest
    - GDALOpenInfo*::IsSingleAllowedDriver
    - auto::ok
    - OGRAPISpyOpen
    - std::move
    - std::make_shared<OGRArrowRandomAccessFile>
    - STARTS_WITH_CI
    - flatbuffers::FlatBufferBuilder::ForceDefaults
    - VSIUnlink
    - VSIFSeekL
    - VSIFileFromMemBuffer
    - EQUAL
    - VSIVirtualHandleUniquePtr
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: bool
    signature: bool IsArrowIPCStream(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:125,1
    - Dst: std::make_unique<GDALOpenInfo>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:127,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:128,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:130,1
    - Dst: OGRFeatherDriverIsArrowFileFormat
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:135,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:141,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:144,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:146,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:146,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:149,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:150,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:153,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:153,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:154,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:156,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:157,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:157,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:161,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:162,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:169,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:169,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:174,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:175,1
    - Dst: arrow::fs::FileSystemFromUriOrPath
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:180,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:180,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:183,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:185,1
    - Dst: OpenInputFile
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:188,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:189,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:191,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:193,1
    - Dst: std::shared_ptr<arrow::MemoryPool>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:199,1
    - Dst: arrow::MemoryPool::CreateDefault
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:200,1
    - Dst: flatbuffers::FlatBufferBuilder::ForceDefaults
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:201,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:202,1
    - Dst: std::make_unique<OGRFeatherDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:204,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:208,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:209,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:211,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:213,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:220,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:221,1
    - Dst: std::make_unique<OGRFeatherLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:223,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:224,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:224,1
    - Dst: auto::SetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:226,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:226,1
    - Dst: auto::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:229,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:230,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:232,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:234,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:235,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:236,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:241,1
    - Dst: auto::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:242,1
    - Dst: auto::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:244,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:250,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:253,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:255,1
    - Dst: std::make_unique<OGRFeatherLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:259,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:260,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:260,1
    - Dst: auto::SetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:262,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:262,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:264,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 265
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 265
    functionName: OGRFeatherDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::SetLayer
    - auto::GetLayer
    - auto::status
    - auto::get
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - auto::ResetReading
    - arrow::fs::FileSystemFromUriOrPath
    - OGRFeatherDriverIsArrowFileFormat
    - std::string::empty
    - auto::GetLayerDefn
    - std::make_unique<OGRFeatherLayer>
    - auto::ok
    - auto::GetFieldDomain
    - CPLIsFilenameRelative
    - OGRAPISpyOpen
    - std::shared_ptr<arrow::MemoryPool>
    - std::move
    - strlen
    - std::make_shared<OGRArrowRandomAccessFile>
    - std::make_unique<OGRFeatherDataset>
    - STARTS_WITH_CI
    - CPLTestBool
    - auto::GetFieldDefn
    - flatbuffers::FlatBufferBuilder::ForceDefaults
    - auto::empty
    - std::make_unique<GDALOpenInfo>
    - VSIFOpenL
    - arrow::MemoryPool::CreateDefault
    - auto::GetNextFeature
    - OpenInputFile
    - CPLFree
    - CPLFormFilenameSafe
    - std::unique_ptr::get
    - auto::release
    - CPLGetBasenameSafe
    - auto::GetFieldCount
    - VSIVirtualHandleUniquePtr
    - auto::GetDomainName
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRFeatherDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:280,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:281,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:281,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:286,1
    - Dst: std::make_shared<OGRArrowWritableFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:289,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:293,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:296,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:297,1
    - Dst: OGRFeatherWriterDataset::OGRFeatherWriterDataset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 5
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - eType
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 304
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 304
    functionName: OGRFeatherDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<OGRArrowWritableFile>
    - CPLTestBool
    - auto::ok
    - auto::status
    - VSIFOpenL
    - OGRAPISpyOpen
    - OGRFeatherWriterDataset::OGRFeatherWriterDataset
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRFeatherDriverCreate(const char *pszName, int nXSize,\n
      \                                          int nYSize, int nBands,\n                                           GDALDataType
      eType,\n                                           char ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherDriver::InitMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:323,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: OGRFeatherDriver::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadata
    - OGRFeatherDriver::InitMetadata
    linkageType: ''
    returnType: char
    signature: char **GetMetadata(const char *pszDomain) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:332,1
    - Dst: OGRFeatherDriver::InitMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:334,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 337
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 337
    functionName: OGRFeatherDriver::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - OGRFeatherDriver::InitMetadata
    linkageType: ''
    returnType: char
    signature: "char *OGRFeatherDriver::GetMetadataItem(const char *pszName,\n                                              const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:346,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:352,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:353,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:354,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:356,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:358,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:363,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:363,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:364,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:365,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:366,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:370,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:371,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:376,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:376,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:377,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:378,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:379,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:381,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:384,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:385,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:386,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:390,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:391,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:396,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:396,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:397,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:398,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:399,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:401,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:405,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:407,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:408,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:414,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:414,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:415,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:416,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:417,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:419,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:423,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:423,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:424,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:425,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:426,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:428,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:432,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:432,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:433,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:434,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:435,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 442
    functionName: OGRFeatherDriver::InitMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 2
    functionsReached:
    - RMFDataset::GetCompressionType
    - CPLCreateXMLNode
    - auto::ok
    - std::vector::emplace_back
    - arrow::util::Codec::IsAvailable
    - EQUAL
    - CPLString
    - CPLXMLTreeCloser::get
    - GDALDriver::SetMetadataItem
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: void OGRFeatherDriver::InitMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:450,1
    - Dst: std::make_unique<OGRFeatherDriver>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:453,1
    - Dst: OGRFeatherDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:455,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:455,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:460,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:462,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:462,1
    - Dst: arrow::fs::LoadFileSystemFactories
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:470,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:471,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:473,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 479
    functionName: RegisterOGRArrow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - OGRFeatherDriverSetCommonMetadata
    - auto::release
    - auto::ok
    - auto::message
    - std::make_unique<OGRFeatherDriver>
    - auto::get
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - CPLError
    - arrow::fs::LoadFileSystemFactories
    linkageType: ''
    returnType: void
    signature: void RegisterOGRArrow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:40,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:41,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:41,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:41,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - poDS
    - pszLayerName
    - poRecordBatchFileReader
    argTypes:
    - OGRFeatherDataset*
    - char*
    - std::shared_ptr<arrow::ipc::RecordBatchFileReader>
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: OGRFeatherLayer::OGRFeatherLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRFeatherLayer::EstablishFeatureDefn
    - CPLAssert
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherLayer::OGRFeatherLayer(\n    OGRFeatherDataset *poDS,
      const char *pszLayerName,\n    std::shared_ptr<arrow::ipc::RecordBatchFileReader>
      &poRecordBatchFileReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:56,1
    - Dst: OGRFeatherLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:59,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:60,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:60,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:60,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - poDS
    - pszLayerName
    - poFile
    - bSeekable
    - oOptions
    - poRecordBatchStreamReader
    argTypes:
    - OGRFeatherDataset*
    - char*
    - std::shared_ptr<arrow::io::RandomAccessFile>
    - bool
    - arrow::ipc::IpcReadOptions
    - std::shared_ptr<arrow::ipc::RecordBatchStreamReader>
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: OGRFeatherLayer::OGRFeatherLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRFeatherLayer::EstablishFeatureDefn
    - CPLAssert
    - std::move
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherLayer::OGRFeatherLayer(\n    OGRFeatherDataset *poDS,
      const char *pszLayerName,\n    std::shared_ptr<arrow::io::RandomAccessFile>
      poFile, bool bSeekable,\n    const arrow::ipc::IpcReadOptions &oOptions,\n    std::shared_ptr<arrow::ipc::RecordBatchStreamReader>\n
      \       &poRecordBatchStreamReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OGRFeatherLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRFeatherLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::KeyValueMetadata*::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:80,1
    - Dst: arrow::KeyValueMetadata*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:82,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:83,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:85,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:86,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:88,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:89,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:92,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:95,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:97,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:98,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:100,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - kv_metadata
    - key
    argTypes:
    - arrow::KeyValueMetadata*
    - std::string
    constantsTouched: []
    func_position:
      end: 113
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 113
    functionName: OGRFeatherLayer::LoadGeoMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - arrow::KeyValueMetadata*::Get
    - CPLJSONDocument::LoadMemory
    - auto::GetString
    - auto::GetChildren
    - auto::GetObj
    - auto::ok
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - arrow::KeyValueMetadata*::Contains
    - auto::IsValid
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - GetName
    - auto::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherLayer::LoadGeoMetadata(\n    const arrow::KeyValueMetadata
      *kv_metadata, const std::string &key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:121,1
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:122,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:123,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:128,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:130,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:130,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:131,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:137,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:139,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:140,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:140,1
    - Dst: OGRFeatherLayer::LoadGeoMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:142,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:142,1
    - Dst: OGRFeatherLayer::LoadGeoMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:146,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:146,1
    - Dst: LoadGDALSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:149,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:149,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:151,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:152,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:155,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:157,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:162,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:163,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:168,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:168,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:169,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:171,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:171,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:172,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:177,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:184,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:185,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:185,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:187,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:188,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:190,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:191,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:191,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:192,1
    - Dst: IsValidGeometryEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:196,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:197,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:201,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:203,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:207,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:209,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:214,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:215,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:217,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:217,1
    - Dst: OGRSpatialReference*::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:221,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:223,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:225,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:230,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:233,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:234,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:235,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:236,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:237,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:237,1
    - Dst: OGRFeatherLayer::ComputeGeometryColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:240,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:241,1
    - Dst: OGRFeatherLayer::ResetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:243,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:246,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:249,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:250,1
    - Dst: auto::nullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:250,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:251,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:252,1
    - Dst: CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:258,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:263,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:263,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:264,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:265,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:265,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:265,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:266,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 267
    functionName: OGRFeatherLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 2
    functionsReached:
    - CPLJSONObject::GetString
    - OGRSpatialReference*::importFromWkt
    - CPLDebug
    - auto::get
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - OGRFeatherLayer::ResetRecordBatchReader
    - CPLError
    - auto::name
    - CPLGetConfigOption
    - GetGeomFieldCount
    - auto::c_str
    - OGRGeomFieldDefn::SetType
    - std::string::empty
    - metadata
    - auto::sorted_pairs
    - end
    - OGRSpatialReference*::SetAxisMappingStrategy
    - auto::Contains
    - auto::ok
    - find
    - OGRFeatherLayer::ComputeGeometryColumnType
    - std::move
    - second::c_str
    - auto::metadata
    - CPLTestBool
    - static_cast<int>
    - OGRGeomFieldDefn::SetNullable
    - CPLJSONObject::CPLJSONObject
    - CreateFieldFromSchema
    - LoadGDALSchema
    - auto::Get
    - auto::empty
    - GetGeometryTypeFromString
    - GetFieldCount
    - first::c_str
    - CPLAssert
    - auto::nullable
    - OGRFeatherLayer::LoadGeoMetadata
    - OGRSpatialReference*::SetCoordinateEpoch
    - size
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - fields
    - AddGeomFieldDefn
    - IsValidGeometryEncoding
    - schema
    - num_fields
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRFeatherLayer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:275,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:276,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:276,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:278,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:279,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:281,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:283,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:284,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: OGRFeatherLayer::ResetRecordBatchReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 1
    functionsReached:
    - Tell
    - Seek
    - auto::ok
    - auto::status
    - OGRAPISpyOpen
    - CPL_IGNORE_RET_VAL
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherLayer::ResetRecordBatchReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:311,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:312,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:314,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:315,1
    - Dst: ComputeGeometryColumnTypeProcessBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:320,1
    - Dst: num_record_batches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:329,1
    - Dst: ReadRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:331,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:334,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:336,1
    - Dst: ComputeGeometryColumnTypeProcessBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:339,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - iGeomCol
    - iCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 347
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 347
    functionName: OGRFeatherLayer::ComputeGeometryColumnType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 1
    functionsReached:
    - ComputeGeometryColumnTypeProcessBatch
    - ReadNext
    - auto::ok
    - auto::message
    - auto::status
    - ReadRecordBatch
    - num_record_batches
    - CPLError
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRFeatherLayer::ComputeGeometryColumnType(int
      iGeomCol,\n                                                              int
      iCol) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:358,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:358,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:358,1
    - Dst: BuildDomainFromBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:365,1
    - Dst: ReadRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:370,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:373,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:375,1
    - Dst: BuildDomainFromBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - osDomainName
    - iFieldIndex
    argTypes:
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 385
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 385
    functionName: OGRFeatherLayer::BuildDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - fields
    - auto::ok
    - auto::status
    - BuildDomainFromBatch
    - CPLAssert
    - ReadRecordBatch
    - type
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDomain>
    signature: "std::unique_ptr<OGRFieldDomain> OGRFeatherLayer::BuildDomain(const
      std::string &osDomainName,\n                             int iFieldIndex) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: OGRFeatherLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRArrowLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRFeatherLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherLayer::ReadNextBatchStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:415,1
    - Dst: OGRFeatherLayer::ReadNextBatchFile
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: OGRFeatherLayer::ReadNextBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatherLayer::ReadNextBatchStream
    - OGRFeatherLayer::ReadNextBatchFile
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherLayer::ReadNextBatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_record_batches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:432,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:437,1
    - Dst: ReadRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:444,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:447,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:449,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:450,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:453,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 461
    functionName: OGRFeatherLayer::ReadNextBatchFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 1
    functionsReached:
    - auto::ok
    - auto::status
    - SetBatch
    - ReadRecordBatch
    - num_record_batches
    - reset
    - CPLError
    - num_rows
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherLayer::ReadNextBatchFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:476,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:483,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:490,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:499,1
    - Dst: OGRFeatherLayer::ResetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:503,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:508,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:512,1
    - Dst: ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:513,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:516,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:517,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:518,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:529,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:530,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:534,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:536,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 539
    functionName: OGRFeatherLayer::ReadNextBatchStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::reset
    - ReadNext
    - auto::ok
    - auto::message
    - SetBatch
    - CPLAssert
    - std::shared_ptr::num_rows
    - OGRFeatherLayer::ResetRecordBatchReader
    - reset
    - CPLError
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherLayer::ReadNextBatchStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:550,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:553,1
    - Dst: OGRFeatherLayer::ReadNextBatchStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:553,1
    - Dst: OGRFeatherLayer::ReadNextBatchStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:558,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:560,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:563,1
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:564,1
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 545
    functionDepth: 6
    functionLinenumber: 545
    functionLinenumberEnd: 569
    functionName: OGRFeatherLayer::TryToCacheFirstTwoBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatherLayer::ResetReading
    - SetBatch
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OGRFeatherLayer::ReadNextBatchStream
    linkageType: ''
    returnType: void
    signature: void OGRFeatherLayer::TryToCacheFirstTwoBatches()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::CanPostFilterArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 5
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: OGRFeatherLayer::CanPostFilterArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::CanPostFilterArrowArray
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeatherLayer::CanPostFilterArrowArray(\n    const struct ArrowSchema
      *schema) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 594
    functionName: OGRFeatherLayer::InvalidateCachedBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatherLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRFeatherLayer::InvalidateCachedBatches()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CountRows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:605,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:606,1
    - Dst: OGRFeatherLayer::TryToCacheFirstTwoBatches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:615,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:620,1
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:631,1
    - Dst: OGRFeatherLayer::ReadNextBatchStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:633,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:636,1
    - Dst: OGRFeatherLayer::ReadNextBatchStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:637,1
    - Dst: OGRFeatherLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:640,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:644,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 600
    functionDepth: 7
    functionLinenumber: 600
    functionLinenumberEnd: 645
    functionName: OGRFeatherLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatherLayer::ResetReading
    - auto::ok
    - OGRLayer::GetFeatureCount
    - OGRFeatherLayer::ReadNextBatchStream
    - CPLError
    - CountRows
    - num_rows
    - OGRFeatherLayer::TryToCacheFirstTwoBatches
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRFeatherLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherLayer::TryToCacheFirstTwoBatches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:655,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 7
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: OGRFeatherLayer::CanRunNonForcedGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRFeatherLayer::TryToCacheFirstTwoBatches
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherLayer::CanRunNonForcedGetExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:672,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:678,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:680,1
    - Dst: OGRArrowLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:683,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 684
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 684
    functionName: OGRFeatherLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRArrowLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRFeatherLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:694,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:696,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:703,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:705,1
    - Dst: num_record_batches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:706,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:708,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:709,1
    - Dst: ReadRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:712,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:713,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:717,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:717,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:722,1
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:725,1
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:726,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:725,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:728,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:730,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:731,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:733,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:733,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:739,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:741,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:742,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:744,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:745,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:747,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:747,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:752,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 753
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 753
    functionName: OGRFeatherLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - metadata
    - OGRDGNV8DataSource::GetMetadataItem
    - auto::ok
    - auto::Contains
    - auto::Get
    - schema
    - CPLSPrintf
    - EQUAL
    - ReadRecordBatch
    - strstr
    - num_record_batches
    - num_rows
    - auto::c_str
    linkageType: ''
    returnType: char
    signature: "char *OGRFeatherLayer::GetMetadataItem(const char *pszName,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:762,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:764,1
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:766,1
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:767,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:766,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:771,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:773,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:773,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:774,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:780,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:782,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:783,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:786,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:788,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:788,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:789,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:792,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp:794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 795
    functionName: OGRFeatherLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherlayer.cpp
    functionUses: 0
    functionsReached:
    - SetNameValue
    - metadata
    - auto::sorted_pairs
    - Clear
    - schema
    - EQUAL
    - first::c_str
    - List
    - OGRWFSDataSource::GetMetadata
    - second::c_str
    linkageType: ''
    returnType: char
    signature: char **OGRFeatherLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::MemoryPool::CreateDefault
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszFilename
    - poOutputStream
    argTypes:
    - char*
    - std::shared_ptr<arrow::io::OutputStream>
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: OGRFeatherWriterDataset::OGRFeatherWriterDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - arrow::MemoryPool::CreateDefault
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherWriterDataset::OGRFeatherWriterDataset(\n    const
      char *pszFilename,\n    const std::shared_ptr<arrow::io::OutputStream> &poOutputStream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OGRFeatherWriterDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRFeatherWriterDataset::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: OGRFeatherWriterDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRFeatherWriterDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:54,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: OGRFeatherWriterDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRFeatherWriterDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:72,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:77,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:79,1
    - Dst: std::make_unique<OGRFeatherWriterLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:81,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:82,1
    - Dst: SetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:83,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:86,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 90
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 90
    functionName: OGRFeatherWriterDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRFeatherWriterLayer>
    - OGRGeomFieldDefn*::GetType
    - get
    - SetOptions
    - OGRGeomFieldDefn*::GetSpatialRef
    - reset
    - CPLError
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRFeatherWriterDataset::ICreateLayer(const char *pszName,\n
      \                                     const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherWriterDataset::AddFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:104,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: OGRFeatherWriterDataset::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatherWriterDataset::AddFieldDomain
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeatherWriterDataset::AddFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherWriterDataset::GetFieldDomainNames
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:114,1
    - Dst: std::vector<std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: OGRFeatherWriterDataset::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatherWriterDataset::GetFieldDomainNames
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRFeatherWriterDataset::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatherWriterDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: OGRFeatherWriterDataset::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatherWriterDataset::GetFieldDomain
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRFeatherWriterDataset::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poDS
    - poMemoryPool
    - poOutputStream
    - pszLayerName
    argTypes:
    - GDALDataset*
    - arrow::MemoryPool*
    - std::shared_ptr<arrow::io::OutputStream>
    - char*
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: OGRFeatherWriterLayer::OGRFeatherWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRFeatherWriterLayer::OGRFeatherWriterLayer(\n    GDALDataset
      *poDS, arrow::MemoryPool *poMemoryPool,\n    const std::shared_ptr<arrow::io::OutputStream>
      &poOutputStream,\n    const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FinalizeWriting
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: OGRFeatherWriterLayer::~OGRFeatherWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - FinalizeWriting
    linkageType: ''
    returnType: void
    signature: void OGRFeatherWriterLayer::~OGRFeatherWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:48,1
    - Dst: OGRFeatherWriterLayer::GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:51,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:52,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:52,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:54,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - eGType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: OGRFeatherWriterLayer::IsSupportedGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGRFeatherWriterLayer::GetDriverUCName
    - CPLError
    - wkbFlatten
    - CPLGetConfigOption
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeatherWriterLayer::IsSupportedGeometryType(\n    OGRwkbGeometryType
      eGType) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:79,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:87,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:91,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:93,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:94,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:98,1
    - Dst: OGRFeatherWriterLayer::IsSupportedGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:113,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:117,1
    - Dst: GetPreciseArrowGeomEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:123,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:127,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:128,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:129,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:132,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:133,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:134,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:138,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:143,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:144,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:154,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:156,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:157,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:160,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:165,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:167,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:177,1
    - Dst: atoll
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:177,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 4
    argNames:
    - osFilename
    - papszOptions
    - poSpatialRef
    - eGType
    argTypes:
    - std::string
    - CSLConstList
    - OGRSpatialReference*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 188
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 188
    functionName: OGRFeatherWriterLayer::SetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - RMFDataset::GetCompressionType
    - SetGeomType
    - OGRFeatherWriterLayer::IsSupportedGeometryType
    - auto::ok
    - CSLFetchNameValueDef
    - GetGeomFieldDefn
    - GetPreciseArrowGeomEncoding
    - EQUAL
    - arrow::util::Codec::IsAvailable
    - atoll
    - CPLString
    - push_back
    - auto::Release
    - CPLError
    - static_cast<int64_t>
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeatherWriterLayer::SetOptions(const std::string &osFilename,\n
      \                                      CSLConstList papszOptions,\n                                       const
      OGRSpatialReference *poSpatialRef,\n                                       OGRwkbGeometryType
      eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:196,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:197,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:199,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:201,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: OGRFeatherWriterLayer::CloseFileWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::ok
    - auto::message
    - CPLError
    - Close
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherWriterLayer::CloseFileWriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateSchemaCommon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:212,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:214,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:215,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:215,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:217,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:218,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:219,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:220,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:221,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:222,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:223,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:225,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:226,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:227,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:227,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:228,1
    - Dst: GetGeomEncodingAsString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:229,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:231,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:237,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:239,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:240,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:244,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:248,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:249,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:249,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:252,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:253,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:254,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:255,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:256,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:257,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:260,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:261,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:261,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:263,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:283,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:287,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:288,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:289,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:290,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:291,1
    - Dst: WithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:292,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:293,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 295
    functionName: OGRFeatherWriterLayer::CreateSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<arrow::KeyValueMetadata>
    - GetGeomFieldDefn
    - auto::GetType
    - GetGeomFieldCount
    - CPLGetConfigOption
    - CPLJSONArray::CPLJSONArray
    - metadata
    - GetGeomEncodingAsString
    - auto::exportToWkt
    - IsInit
    - wkbFlatten
    - CreateSchemaCommon
    - CPLJSONArray::Add
    - CPLTestBool
    - auto::GetSpatialRef
    - CPLJSONObject::CPLJSONObject
    - CPLAssert
    - WithMetadata
    - auto::Append
    - auto::GetNameRef
    - CPLFree
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    linkageType: ''
    returnType: void
    signature: void OGRFeatherWriterLayer::CreateSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:303,1
    - Dst: OGRFeatherWriterLayer::CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:307,1
    - Dst: FinalizeSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:311,1
    - Dst: flatbuffers::FlatBufferBuilder::ForceDefaults
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:314,1
    - Dst: OGR_F_Create
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:318,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:319,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:321,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:323,1
    - Dst: auto::codec::reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:327,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:327,1
    - Dst: arrow::ipc::MakeStreamWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:334,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:335,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:337,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:339,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:349,1
    - Dst: arrow::ipc::MakeFileWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:350,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:352,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:354,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 363
    functionName: OGRFeatherWriterLayer::CreateWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatherWriterLayer::CreateSchema
    - std::make_shared<arrow::KeyValueMetadata>
    - FinalizeSchema
    - auto::release
    - auto::ok
    - flatbuffers::FlatBufferBuilder::ForceDefaults
    - OGR_F_Create
    - auto::status
    - auto::codec::reset
    - arrow::ipc::MakeStreamWriter
    - CPLAssert
    - CPLError
    - arrow::ipc::MakeFileWriter
    linkageType: ''
    returnType: void
    signature: void OGRFeatherWriterLayer::CreateWriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:373,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:374,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:374,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:376,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:377,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:378,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:379,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:380,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:381,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:383,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:384,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:385,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:385,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:386,1
    - Dst: GetGeomEncodingAsString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:387,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:389,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:395,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:398,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:402,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:405,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:407,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:408,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:409,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:410,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:411,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:412,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:416,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 420
    functionName: OGRFeatherWriterLayer::PerformStepsBeforeFinalFlushGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONArray::CPLJSONArray
    - CPLTestBool
    - CPLJSONObject::Format
    - GetGeomEncodingAsString
    - auto::GetSpatialRef
    - CPLJSONObject::CPLJSONObject
    - GetGeomFieldDefn
    - auto::exportToWkt
    - Append
    - GetGeomFieldCount
    - CPLJSONObject::Add
    - auto::GetNameRef
    - IsInit
    - CPLGetConfigOption
    - CPLFree
    - CPLJSONArray::Add
    linkageType: ''
    returnType: void
    signature: void OGRFeatherWriterLayer::PerformStepsBeforeFinalFlushGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteArrays
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:429,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:433,1
    - Dst: arrow::RecordBatch::Make
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:439,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:440,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:440,1
    - Dst: WriteRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:441,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:442,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:444,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:446,1
    - Dst: ClearArrayBuilers
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 453
    functionName: OGRFeatherWriterLayer::FlushGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::ok
    - arrow::RecordBatch::Make
    - auto::message
    - ClearArrayBuilers
    - WriteArrays
    - std::vector::emplace_back
    - length
    - WriteRecordBatch
    - CPLError
    - std::vector::empty
    linkageType: ''
    returnType: bool
    signature: bool OGRFeatherWriterLayer::FlushGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteArrowBatchInternal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:464,1
    - Dst: WriteRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:468,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:471,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - schema
    - array
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 479
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 479
    functionName: OGRFeatherWriterLayer::WriteArrowBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogrfeatherwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - WriteArrowBatchInternal
    - auto::ok
    - auto::message
    - WriteRecordBatch
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool OGRFeatherWriterLayer::WriteArrowBatch(const struct ArrowSchema
      *schema,\n                                       struct ArrowArray *array,\n
      \                                      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: OGRFeatherLayer::OGRFeatherLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeatherLayer(const OGRFeatherLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '&operator=(const OGRFeatherLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatherLayer
    signature: OGRFeatherLayer &operator=(const OGRFeatherLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: OGRFeatherLayer::GetDriverUCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetDriverUCName() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: OGRFeatherWriterLayer::OGRFeatherWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFeatherWriterLayer(const OGRFeatherWriterLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '&operator=(const OGRFeatherWriterLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatherWriterLayer
    signature: OGRFeatherWriterLayer &operator=(const OGRFeatherWriterLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: OGRFeatherWriterLayer::IsFileWriterCreated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFileWriterCreated() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: OGRFeatherWriterLayer::GetDriverUCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetDriverUCName() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: OGRFeatherWriterLayer::IsSRSRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSRSRequired() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: OGRFeatherWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: OGRFeatherWriterDataset::GetMemoryPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow/ogr_feather.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: arrow::MemoryPool
    signature: arrow::MemoryPool *GetMemoryPool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osCacheDirectory
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: GMLASResourceCache::SetCacheDirectory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASResourceCache::SetCacheDirectory(const std::string &osCacheDirectory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:37,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:37,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:42,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:42,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:43,1
    - Dst: GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:45,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:45,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:48,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - osDirname
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - VSIStatL
    - CPLGetDirnameSafe
    - VSIMkdir
    - GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded(\n    const
      std::string &osDirname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:56,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:58,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:59,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - c_str
    - clear
    - GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded
    linkageType: ''
    returnType: bool
    signature: bool GMLASResourceCache::RecursivelyCreateDirectoryIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:74,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:75,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:75,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:76,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:76,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:77,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:77,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:78,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:80,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:80,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:101,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:104,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:104,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:105,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:105,1
    - Dst: CPL_SHA256
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:108,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:108,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:108,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:110,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:110,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:113,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:114,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:115,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:118,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:118,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - osResource
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 120
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 120
    functionName: GMLASResourceCache::GetCachedFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - static_cast<unsigned char>
    - std::string::size
    - CPLFormFilenameSafe
    - CPLDebug
    - CPLAssert
    - std::string::resize
    - strlen
    - CPL_SHA256
    - std::string::substr
    - STARTS_WITH
    - std::string::c_str
    - CPLFree
    - isalnum
    linkageType: ''
    returnType: std::string
    signature: std::string GMLASResourceCache::GetCachedFilename(const std::string
      &osResource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:136,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:140,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:142,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:142,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:146,1
    - Dst: VSIReadDirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:150,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:150,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:151,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:153,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:156,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:157,1
    - Dst: GetCachedFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:159,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:159,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:162,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:163,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:164,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:167,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:167,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:168,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:174,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:174,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:176,1
    - Dst: CPLDebugOnce
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: GMLASXSDCache::CacheAllGML321
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - CPLHTTPDestroyResult
    - CPLGetFilename
    - VSIFCloseL
    - CPLHTTPFetch
    - VSIUnlink
    - CPLStringList::size
    - VSIRename
    - GetCachedFilename
    - CPLDebugOnce
    - strstr
    - std::string
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - std::string::c_str
    - VSIReadDirRecursive
    linkageType: ''
    returnType: bool
    signature: bool GMLASXSDCache::CacheAllGML321()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:200,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:204,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:206,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:206,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:210,1
    - Dst: VSIReadDirRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:216,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:216,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:217,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:219,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:220,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:223,1
    - Dst: GetCachedFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:226,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:226,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:229,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:230,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:231,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:234,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:234,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:235,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:241,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:241,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:243,1
    - Dst: CPLDebugOnce
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 249
    functionName: GMLASXSDCache::CacheAllISO20070417
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - CPLHTTPDestroyResult
    - VSIFCloseL
    - CPLHTTPFetch
    - VSIUnlink
    - CPLStringList::size
    - VSIRename
    - STARTS_WITH
    - GetCachedFilename
    - CPLDebugOnce
    - strstr
    - std::string
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - std::string::c_str
    - VSIReadDirRecursive
    linkageType: ''
    returnType: bool
    signature: bool GMLASXSDCache::CacheAllISO20070417()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:260,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:260,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:261,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:261,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:262,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:262,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:262,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:267,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:267,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:268,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:268,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:269,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:271,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:271,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:272,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:275,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:276,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:276,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:280,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:280,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:285,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:286,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:286,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:287,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:287,1
    - Dst: RecursivelyCreateDirectoryIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:288,1
    - Dst: GetCachedFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:291,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:292,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:293,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:295,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:299,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:299,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:304,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:307,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:307,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:309,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:309,1
    - Dst: GMLASXSDCache::CacheAllGML321
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:313,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:318,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:318,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:320,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:320,1
    - Dst: GMLASXSDCache::CacheAllISO20070417
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:324,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:329,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:329,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:332,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:333,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:334,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:339,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:339,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:342,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:344,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:347,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:347,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:347,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:348,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:348,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:352,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:357,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:357,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:358,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:358,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:363,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:363,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:366,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:367,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:368,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:372,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:381,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:386,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:392,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp:393,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 72
    argCount: 3
    argNames:
    - osResource
    - osBasePath
    - osOutFilename
    argTypes:
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 397
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 397
    functionName: GMLASXSDCache::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxsdcache.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - RecursivelyCreateDirectoryIfNeeded
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - GetCachedFilename
    - std::string::c_str
    - std::string::empty
    - end
    - CPLGetDirnameSafe
    - find
    - insert
    - CPLIsFilenameRelative
    - VSIRename
    - CPLTestBool
    - GMLASXSDCache::CacheAllISO20070417
    - CPLHTTPFetch
    - VSIFOpenL
    - strstr
    - VSIFileFromMemBuffer
    - CPLFormFilenameSafe
    - empty
    - VSIFCloseL
    - GMLASXSDCache::CacheAllGML321
    - VSIFWriteL
    - CPLHTTPDestroyResult
    - std::string::substr
    linkageType: ''
    returnType: VSILFILE
    signature: "VSILFILE *GMLASXSDCache::Open(const std::string &osResource,\n                              const
      std::string &osBasePath,\n                              std::string &osOutFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:27,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:30,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:37,1
    - Dst: std::isspace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:43,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: OGRGMLASDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - static_cast<unsigned char>
    - memcmp
    - std::isspace
    linkageType: ''
    returnType: int
    signature: int OGRGMLASDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:60,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:64,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:65,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:115,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:117,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:222,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:223,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:226,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 228
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 228
    functionName: OGRGMLASDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - c_str
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:237,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:241,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:243,1
    - Dst: OGRGMLASDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:246,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: DeclareDeferredOGRGMLASPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - OGRGMLASDriverSetCommonMetadata
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRGMLASPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:79,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:80,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 47
    argCount: 1
    argNames:
    - osType
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 83
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 83
    functionName: GMLASField::GetTypeFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLString::c_str
    linkageType: ''
    returnType: GMLASFieldType
    signature: GMLASFieldType GMLASField::GetTypeFromString(const CPLString &osType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - eType
    - pszTypeName
    argTypes:
    - GMLASFieldType
    - char*
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: GMLASField::SetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASField::SetType(GMLASFieldType eType, const char *pszTypeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: GMLASFeatureClass::SetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::SetName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: GMLASFeatureClass::SetXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::SetXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oField
    argTypes:
    - GMLASField
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: GMLASFeatureClass::AddField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::AddField(const GMLASField &oField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:128,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:128,1
    - Dst: std::vector<GMLASField>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:128,1
    - Dst: std::vector<GMLASField>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aoFields
    argTypes:
    - std::vector<GMLASField>
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: GMLASFeatureClass::PrependFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - insert
    - begin
    - std::vector<GMLASField>::end
    - std::vector<GMLASField>::begin
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::PrependFields(const std::vector<GMLASField>
      &aoFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:137,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:137,1
    - Dst: std::vector<GMLASField>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:137,1
    - Dst: std::vector<GMLASField>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aoFields
    argTypes:
    - std::vector<GMLASField>
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: GMLASFeatureClass::AppendFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    - std::vector<GMLASField>::end
    - std::vector<GMLASField>::begin
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::AppendFields(const std::vector<GMLASField>
      &aoFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oNestedClass
    argTypes:
    - GMLASFeatureClass
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: GMLASFeatureClass::AddNestedClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasfeatureclass.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass::AddNestedClass(const GMLASFeatureClass &oNestedClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: GMLASConfXSDGetFileContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GMLASConfXSDGetFileContent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: GMLASConfXMLGetFileContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GMLASConfXMLGetFileContent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bRefresh
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: GMLASResourceCache::SetRefreshMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRefreshMode(bool bRefresh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bVal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: GMLASResourceCache::SetAllowDownload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAllowDownload(bool bVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: '&GetGMLVersionFound() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetGMLVersionFound() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: '&GetSchemaURLS() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<CPLString>
    signature: std::set<CPLString> &GetSchemaURLS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: GMLASBaseEntityResolver::SetSubstituteWithOGCSchemaLocation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSubstituteWithOGCSchemaLocation(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: GMLASBaseEntityResolver::GetFoundNonOfficialGMLSchemaLocation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetFoundNonOfficialGMLSchemaLocation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: GMLASErrorHandler::GMLASErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASErrorHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: GMLASErrorHandler::SetSchemaFullCheckingEnabled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSchemaFullCheckingEnabled(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: GMLASErrorHandler::SetHandleMultipleImportsEnabled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHandleMultipleImportsEnabled(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: GMLASErrorHandler::SetHideGMLTypeNotFound
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHideGMLTypeNotFound(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: '&GetGMLTypeNotFoundError() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetGMLTypeNotFoundError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: GMLASErrorHandler::hasFailed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hasFailed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: GMLASErrorHandler::resetErrors
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void resetErrors() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: GMLASXLinkResolutionConf::GMLASXLinkResolutionConf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASXLinkResolutionConf()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: GMLASConfiguration::GMLASConfiguration
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASConfiguration()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: '&GetConf() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASXLinkResolutionConf
    signature: GMLASXLinkResolutionConf &GetConf() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: '&GetMapPrefixToURI() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> &GetMapPrefixToURI() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: GMLASField::GMLASField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASField()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 670
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 670
    functionName: GMLASField::SetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eGeomType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: GMLASField::SetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGeomType(OGRwkbGeometryType eGeomType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nWidth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: GMLASField::SetWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetWidth(int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bNotNullable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 687
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 687
    functionName: GMLASField::SetNotNullable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetNotNullable(bool bNotNullable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bArray
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: GMLASField::SetArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetArray(bool bArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bList
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: GMLASField::SetList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetList(bool bList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 702
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 702
    functionName: GMLASField::SetXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: GMLASField::AddAlternateXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddAlternateXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osFixedValue
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: GMLASField::SetFixedValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFixedValue(const CPLString &osFixedValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osDefaultValue
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: GMLASField::SetDefaultValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDefaultValue(const CPLString &osDefaultValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eCategory
    argTypes:
    - Category
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: GMLASField::SetCategory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCategory(Category eCategory)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nMinOccurs
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: GMLASField::SetMinOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMinOccurs(int nMinOccurs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nMaxOccurs
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: GMLASField::SetMaxOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMaxOccurs(int nMaxOccurs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: GMLASField::SetRepetitionOnSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRepetitionOnSequence(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: GMLASField::SetIncludeThisEltInBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIncludeThisEltInBlob(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: GMLASField::SetAbstractElementXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAbstractElementXPath(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: GMLASField::SetRelatedClassXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRelatedClassXPath(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: GMLASField::SetJunctionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetJunctionLayer(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: GMLASField::SetIgnored
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIgnored()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osDoc
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: GMLASField::SetDocumentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDocumentation(const CPLString &osDoc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: GMLASField::SetMayAppearOutOfOrder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMayAppearOutOfOrder(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osBaseXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 778
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 778
    functionName: GMLASField::MakePKIDFieldXPathFromXLinkHrefXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString MakePKIDFieldXPathFromXLinkHrefXPath(const CPLString &osBaseXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osBaseXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 784
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 784
    functionName: GMLASField::MakeXLinkRawContentFieldXPathFromXLinkHrefXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: "CPLString MakeXLinkRawContentFieldXPathFromXLinkHrefXPath(\n        const
      CPLString &osBaseXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osBaseXPath
    - osName
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 791
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 791
    functionName: GMLASField::MakeXLinkDerivedFieldXPathFromXLinkHrefXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: "CPLString MakeXLinkDerivedFieldXPathFromXLinkHrefXPath(const CPLString
      &osBaseXPath,\n                                                 const CPLString
      &osName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: '&GetName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 801
    functionName: '&GetXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 806
    functionName: '&GetAlternateXPaths() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<CPLString>
    signature: std::vector<CPLString> &GetAlternateXPaths() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 811
    functionName: GMLASField::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASFieldType
    signature: GMLASFieldType GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 816
    functionName: GMLASField::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeomType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: '&GetTypeName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetTypeName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: GMLASField::GetWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: GMLASField::IsNotNullable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNotNullable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 836
    functionName: GMLASField::IsArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsArray() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: GMLASField::IsList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: '&GetFixedValue() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetFixedValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: '&GetDefaultValue() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetDefaultValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: GMLASField::GetCategory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Category
    signature: Category GetCategory() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: GMLASField::GetMinOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMinOccurs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: GMLASField::GetMaxOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxOccurs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: GMLASField::GetRepetitionOnSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetRepetitionOnSequence() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: GMLASField::GetIncludeThisEltInBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetIncludeThisEltInBlob() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 881
    functionName: '&GetAbstractElementXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetAbstractElementXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: '&GetJunctionLayer() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetJunctionLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: '&GetRelatedClassXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetRelatedClassXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: GMLASField::IsIgnored
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsIgnored() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: '&GetDocumentation() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetDocumentation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 906
    functionName: GMLASField::MayAppearOutOfOrder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MayAppearOutOfOrder() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 950
    functionName: GMLASFeatureClass::GMLASFeatureClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASFeatureClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIsRepeatedSequence
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 962
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 962
    functionName: GMLASFeatureClass::SetIsRepeatedSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIsRepeatedSequence(bool bIsRepeatedSequence)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIsGroup
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: GMLASFeatureClass::SetIsGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIsGroup(bool bIsGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: GMLASFeatureClass::SetParentXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetParentXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: GMLASFeatureClass::SetChildXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetChildXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIsTopLevelElt
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: GMLASFeatureClass::SetIsTopLevelElt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIsTopLevelElt(bool bIsTopLevelElt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osDoc
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 987
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 987
    functionName: GMLASFeatureClass::SetDocumentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDocumentation(const CPLString &osDoc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 992
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 992
    functionName: '&GetName() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 997
    functionName: '&GetXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1002
    functionName: '&GetFields() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GMLASField>
    signature: std::vector<GMLASField> &GetFields() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1007
    functionName: '&GetFields()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GMLASField>
    signature: std::vector<GMLASField> &GetFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1012
    functionName: '&GetNestedClasses() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GMLASFeatureClass>
    signature: std::vector<GMLASFeatureClass> &GetNestedClasses() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: '&GetNestedClasses()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GMLASFeatureClass>
    signature: std::vector<GMLASFeatureClass> &GetNestedClasses()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1022
    functionName: GMLASFeatureClass::IsRepeatedSequence
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsRepeatedSequence() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1027
    functionName: GMLASFeatureClass::IsGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsGroup() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    functionName: '&GetParentXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetParentXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1037
    functionName: '&GetChildXPath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetChildXPath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1042
    functionName: GMLASFeatureClass::IsTopLevelElt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTopLevelElt() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1047
    functionName: '&GetDocumentation() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetDocumentation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: GMLASSchemaAnalyzer::SetUseArrays
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseArrays(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1218
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1218
    functionName: GMLASSchemaAnalyzer::SetUseNullState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseNullState(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: GMLASSchemaAnalyzer::SetInstantiateGMLFeaturesOnly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetInstantiateGMLFeaturesOnly(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLength
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1228
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1228
    functionName: GMLASSchemaAnalyzer::SetIdentifierMaxLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIdentifierMaxLength(int nLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1233
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1233
    functionName: GMLASSchemaAnalyzer::SetCaseInsensitiveIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCaseInsensitiveIdentifier(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1238
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1238
    functionName: GMLASSchemaAnalyzer::SetPGIdentifierLaundering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPGIdentifierLaundering(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1243
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1243
    functionName: GMLASSchemaAnalyzer::SetMaximumFieldsForFlattening
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMaximumFieldsForFlattening(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 1248
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1248
    functionName: GMLASSchemaAnalyzer::SetMapDocNSURIToPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMapDocNSURIToPrefix(const std::map<CPLString, CPLString> &oMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1253
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1253
    functionName: GMLASSchemaAnalyzer::SetAlwaysGenerateOGRId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAlwaysGenerateOGRId(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1262
    functionName: '&GetClasses() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<GMLASFeatureClass>
    signature: std::vector<GMLASFeatureClass> &GetClasses() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1267
    functionName: '&GetMapURIToPrefix() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> &GetMapURIToPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1272
    functionName: '&GetGMLVersionFound() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetGMLVersionFound() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1277
    functionName: '&GetSchemaURLS() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<CPLString>
    signature: std::set<CPLString> &GetSchemaURLS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osEltXPath
    - osSubEltXPath
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1283
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1283
    functionName: GMLASSchemaAnalyzer::BuildJunctionTableXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: "CPLString BuildJunctionTableXPath(const CPLString &osEltXPath,\n                                             const
      CPLString &osSubEltXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1420
    functionName: '&GetLayers()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<OGRGMLASLayer>>
    signature: std::vector<std::unique_ptr<OGRGMLASLayer>> &GetLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1425
    functionName: '&GetMapURIToPrefix() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> &GetMapURIToPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1427
    functionDepth: 0
    functionLinenumber: 1427
    functionLinenumberEnd: 1430
    functionName: '&GetGMLFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetGMLFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1435
    functionName: '&GetGMLVersionFound() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetGMLVersionFound() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1440
    functionName: OGRGMLASDataSource::GetFieldsMetadataLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetFieldsMetadataLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1445
    functionName: OGRGMLASDataSource::GetLayersMetadataLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayersMetadataLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1450
    functionName: OGRGMLASDataSource::GetRelationshipsLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetRelationshipsLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1461
    functionName: '&GetCache()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASXSDCache
    signature: GMLASXSDCache &GetCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1469
    functionName: OGRGMLASDataSource::IsLayerInitFinished
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLayerInitFinished() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1474
    functionName: OGRGMLASDataSource::GetSwapCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASSwapCoordinatesEnum
    signature: GMLASSwapCoordinatesEnum GetSwapCoordinates() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1479
    functionName: '&GetMapIgnoredXPathToWarn() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, bool>
    signature: std::map<CPLString, bool> &GetMapIgnoredXPathToWarn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1484
    functionName: '&GetIgnoredXPathMatcher() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASXPathMatcher
    signature: GMLASXPathMatcher &GetIgnoredXPathMatcher() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1489
    functionName: '&GetConf() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASConfiguration
    signature: GMLASConfiguration &GetConf() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1494
    functionName: '&GetXSDsManuallyPassed() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PairURIFilename>
    signature: std::vector<PairURIFilename> &GetXSDsManuallyPassed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bVal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1548
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1548
    functionName: OGRGMLASLayer::SetLayerDefnFinalized
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLayerDefnFinalized(bool bVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1565
    functionName: OGRGMLASLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1574
    functionName: OGRGMLASLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRGMLASDataSource*
    constantsTouched: []
    func_position:
      end: 1579
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1579
    functionName: OGRGMLASLayer::SetDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDataSource(OGRGMLASDataSource *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1597
    functionName: '&GetFeatureClass() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLASFeatureClass
    signature: GMLASFeatureClass &GetFeatureClass() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1602
    functionDepth: 0
    functionLinenumber: 1602
    functionLinenumberEnd: 1605
    functionName: OGRGMLASLayer::GetIDFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetIDFieldIdx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: OGRGMLASLayer::IsGeneratedIDField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsGeneratedIDField() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1615
    functionName: OGRGMLASLayer::GetParent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGMLASLayer
    signature: OGRGMLASLayer *GetParent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1620
    functionName: OGRGMLASLayer::GetParentIDFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetParentIDFieldIdx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1642
    functionName: '&GetMapFieldXPathToOGRFieldIdx() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, int>
    signature: std::map<CPLString, int> &GetMapFieldXPathToOGRFieldIdx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1944
    functionName: GMLASReader::FillTextContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FillTextContent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<CPLString, bool>
    constantsTouched: []
    func_position:
      end: 1970
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1970
    functionName: GMLASReader::SetMapIgnoredXPathToWarn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMapIgnoredXPathToWarn(const std::map<CPLString, bool> &oMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eVal
    argTypes:
    - GMLASSwapCoordinatesEnum
    constantsTouched: []
    func_position:
      end: 1975
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1975
    functionName: GMLASReader::SetSwapCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSwapCoordinates(GMLASSwapCoordinatesEnum eVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1980
    functionName: '&GetFP() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<VSIVirtualHandle>
    signature: std::shared_ptr<VSIVirtualHandle> &GetFP() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1985
    functionName: '&GetMapSRSNameToInvertedAxis() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, bool>
    signature: std::map<CPLString, bool> &GetMapSRSNameToInvertedAxis() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<CPLString, bool>
    constantsTouched: []
    func_position:
      end: 1990
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1990
    functionName: GMLASReader::SetMapSRSNameToInvertedAxis
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMapSRSNameToInvertedAxis(const std::map<CPLString, bool> &oMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 1996
    functionName: "&\n    GetMapGeomFieldDefnToSRSName() const"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<OGRGeomFieldDefn *, CPLString>
    signature: "std::map<OGRGeomFieldDefn *, CPLString> &\n    GetMapGeomFieldDefnToSRSName()
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<OGRGeomFieldDefn *, CPLString>
    constantsTouched: []
    func_position:
      end: 2002
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2002
    functionName: GMLASReader::SetMapGeomFieldDefnToSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetMapGeomFieldDefnToSRSName(\n        const std::map<OGRGeomFieldDefn
      *, CPLString> &oMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2007
    functionName: '&GetMapElementIdToLayer() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, OGRGMLASLayer *>
    signature: std::map<CPLString, OGRGMLASLayer *> &GetMapElementIdToLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<CPLString, OGRGMLASLayer *>
    constantsTouched: []
    func_position:
      end: 2013
      start: 2009
    functionDepth: 0
    functionLinenumber: 2009
    functionLinenumberEnd: 2013
    functionName: GMLASReader::SetMapElementIdToLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMapElementIdToLayer(const std::map<CPLString, OGRGMLASLayer
      *> &oMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2018
    functionName: '&GetMapElementIdToPKID() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> &GetMapElementIdToPKID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oMap
    argTypes:
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 2023
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2023
    functionName: GMLASReader::SetMapElementIdToPKID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMapElementIdToPKID(const std::map<CPLString, CPLString> &oMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2028
    functionName: GMLASReader::GetDefaultSrsDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetDefaultSrsDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nDim
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2033
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2033
    functionName: GMLASReader::SetDefaultSrsDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDefaultSrsDimension(int nDim)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osHash
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2038
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2038
    functionName: GMLASReader::SetHash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHash(const CPLString &osHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFileSize
    argTypes:
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 2043
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2043
    functionName: GMLASReader::SetFileSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFileSize(vsi_l_offset nFileSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2082
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2082
    functionName: GMLASReader::SetProcessDataRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetProcessDataRecord(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2087
    functionName: GMLASReader::StealSWEDataArrayLayersOwned
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogr_gmlas.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: std::vector<std::unique_ptr<OGRGMLASLayer>>
    signature: std::vector<std::unique_ptr<OGRGMLASLayer>> StealSWEDataArrayLayersOwned()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: IGMLASInputSourceClosing::~IGMLASInputSourceClosing()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IGMLASInputSourceClosing::~IGMLASInputSourceClosing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: GMLASBinInputStream::GMLASBinInputStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void GMLASBinInputStream::GMLASBinInputStream(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: GMLASBinInputStream::~GMLASBinInputStream()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASBinInputStream::~GMLASBinInputStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XMLFilePos>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:69,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: GMLASBinInputStream::curPos
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMLFilePos>
    - VSIFTellL
    linkageType: ''
    returnType: XMLFilePos
    signature: XMLFilePos GMLASBinInputStream::curPos() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XMLSize_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:79,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - toFill
    - maxToRead
    argTypes:
    - XMLByte*
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: GMLASBinInputStream::readBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMLSize_t>
    - VSIFReadL
    linkageType: ''
    returnType: XMLSize_t
    signature: "XMLSize_t GMLASBinInputStream::readBytes(XMLByte *const toFill,\n
      \                                        const XMLSize_t maxToRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: GMLASBinInputStream::getContentType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMLCh
    signature: XMLCh *GMLASBinInputStream::getContentType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:103,1
    - Dst: setPublicId
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:104,1
    - Dst: setSystemId
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:105,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:110,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:111,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pszFilename
    - fp
    - manager
    argTypes:
    - char*
    - std::shared_ptr<VSIVirtualHandle>
    - MemoryManager*
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: GMLASInputSource::GMLASInputSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - setPublicId
    - getMessage
    - CPLError
    - OGR::transcode
    - flatbuffers::vector_downward::release
    - setSystemId
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLASInputSource::GMLASInputSource(const char *pszFilename,\n
      \                                  const std::shared_ptr<VSIVirtualHandle> &fp,\n
      \                                  MemoryManager *const manager)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cbk
    argTypes:
    - IGMLASInputSourceClosing*
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: GMLASInputSource::SetClosingCallback
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASInputSource::SetClosingCallback(IGMLASInputSourceClosing
      *cbk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notifyClosing
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: GMLASInputSource::~GMLASInputSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - notifyClosing
    linkageType: ''
    returnType: void
    signature: void GMLASInputSource::~GMLASInputSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:145,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:152,1
    - Dst: GMLASBinInputStream::GMLASBinInputStream
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: GMLASInputSource::makeStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - get
    - GMLASBinInputStream::GMLASBinInputStream
    linkageType: ''
    returnType: BinInputStream
    signature: BinInputStream *GMLASInputSource::makeStream() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASErrorHandler::handle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - SAXParseException
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: GMLASErrorHandler::warning
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - GMLASErrorHandler::handle
    linkageType: ''
    returnType: void
    signature: void GMLASErrorHandler::warning(const SAXParseException &e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASErrorHandler::handle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - SAXParseException
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: GMLASErrorHandler::error
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - GMLASErrorHandler::handle
    linkageType: ''
    returnType: void
    signature: void GMLASErrorHandler::error(const SAXParseException &e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASErrorHandler::handle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - SAXParseException
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: GMLASErrorHandler::fatalError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - GMLASErrorHandler::handle
    linkageType: ''
    returnType: void
    signature: void GMLASErrorHandler::fatalError(const SAXParseException &e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SAXParseException::getSystemId
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:193,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:195,1
    - Dst: SAXParseException::getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:195,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:197,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:201,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:205,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:208,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:213,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:213,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:214,1
    - Dst: SAXParseException::getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:215,1
    - Dst: SAXParseException::getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:215,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:216,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:218,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:219,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:223,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:231,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - e
    - eErr
    argTypes:
    - SAXParseException
    - CPLErr
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: GMLASErrorHandler::handle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 3
    functionsReached:
    - SAXParseException::getMessage
    - SAXParseException::getLineNumber
    - static_cast<int>
    - empty
    - CPLError
    - CPLString::Printf
    - SAXParseException::getSystemId
    - CPLString::c_str
    - std::move
    - CPLString
    - CPLString::find
    - SAXParseException::getColumnNumber
    - transcode
    linkageType: ''
    returnType: void
    signature: void GMLASErrorHandler::handle(const SAXParseException &e, CPLErr eErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osBasePath
    - oCache
    argTypes:
    - CPLString
    - GMLASXSDCache
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: GMLASBaseEntityResolver::GMLASBaseEntityResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void GMLASBaseEntityResolver::GMLASBaseEntityResolver(const CPLString
      &osBasePath,\n                                                 GMLASXSDCache
      &oCache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:252,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: GMLASBaseEntityResolver::~GMLASBaseEntityResolver()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void GMLASBaseEntityResolver::~GMLASBaseEntityResolver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:264,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:264,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:266,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:266,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:267,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:267,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: GMLASBaseEntityResolver::notifyClosing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - back
    - CPLGetDirnameSafe
    - CPLDebug
    - CPLString::c_str
    - CPLAssert
    - CPLString
    - pop_back
    linkageType: ''
    returnType: void
    signature: void GMLASBaseEntityResolver::notifyClosing(const CPLString &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:277,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - osBasePath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: GMLASBaseEntityResolver::SetBasePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void GMLASBaseEntityResolver::SetBasePath(const CPLString &osBasePath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: GMLASBaseEntityResolver::DoExtraSchemaProcessing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASBaseEntityResolver::DoExtraSchemaProcessing(\n    const
      CPLString & /*osFilename*/,\n    const std::shared_ptr<VSIVirtualHandle> & /*fp*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:306,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:308,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:310,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:316,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:316,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:317,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:317,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:317,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:318,1
    - Dst: std::shared_ptr<VSIVirtualHandle>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:328,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:329,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:329,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:334,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:336,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:336,1
    - Dst: GMLASBaseEntityResolver::DoExtraSchemaProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:337,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:340,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:340,1
    - Dst: GMLASInputSource::GMLASInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:341,1
    - Dst: GMLASInputSource*::SetClosingCallback
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - systemId
    argTypes:
    - XMLCh*
    constantsTouched: []
    func_position:
      end: 344
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 344
    functionName: GMLASBaseEntityResolver::resolveEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - GMLASInputSource*::SetClosingCallback
    - back
    - Open
    - GMLASInputSource::GMLASInputSource
    - insert
    - CPLGetDirnameSafe
    - CPLDebug
    - CPLString::c_str
    - CPLString::size
    - strcmp
    - strlen
    - std::shared_ptr<VSIVirtualHandle>
    - push_back
    - CPLString::find
    - GMLASBaseEntityResolver::DoExtraSchemaProcessing
    linkageType: ''
    returnType: InputSource
    signature: "InputSource *\nGMLASBaseEntityResolver::resolveEntity(const XMLCh
      *const /*publicId*/,\n                                       const XMLCh *const
      systemId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:352,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:353,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:354,1
    - Dst: CPLIsDebugEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:355,1
    - Dst: DumpReadable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:358,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:360,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:361,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:362,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:363,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:364,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:365,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:367,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: GMLASReader::Context::Dump() const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLDebug
    - CPLIsDebugEnabled
    - DumpReadable
    - GetName
    linkageType: ''
    returnType: void
    signature: void GMLASReader::Context::Dump() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:379,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:379,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:380,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:381,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:381,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:383,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - oCache
    - oIgnoredXPathMatcher
    - oXLinkResolver
    argTypes:
    - GMLASXSDCache
    - GMLASXPathMatcher
    - GMLASXLinkResolver
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: GMLASReader::GMLASReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLGetConfigOption
    - CPLTestBool
    - atoi
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::GMLASReader(GMLASXSDCache &oCache,\n                         const
      GMLASXPathMatcher &oIgnoredXPathMatcher,\n                         GMLASXLinkResolver
      &oXLinkResolver)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:393,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:394,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:396,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:400,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:405,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:407,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:412,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 416
    functionName: GMLASReader::~GMLASReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - back
    - static_cast<int>
    - empty
    - CPLDestroyXMLNode
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void GMLASReader::~GMLASReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRGMLASLayer*
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: GMLASReader::SetLayerOfInterest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASReader::SetLayerOfInterest(OGRGMLASLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<OGRGMLASLayer *>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ar
    argTypes:
    - std::vector<OGRGMLASLayer *>
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: GMLASReader::SetSWEDataArrayLayersRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - std::vector<OGRGMLASLayer *>::empty
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::SetSWEDataArrayLayersRef(\n    const std::vector<OGRGMLASLayer
      *> &ar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:452,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:453,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:454,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:455,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:456,1
    - Dst: std::shared_ptr<VSIVirtualHandle>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:462,1
    - Dst: GMLASXSDCache::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:463,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:463,1
    - Dst: SAX2XMLReader*::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:470,1
    - Dst: SAX2XMLReader*::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:472,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:477,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:478,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:480,1
    - Dst: CPLString::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:480,1
    - Dst: GMLASBaseEntityResolver::SetBasePath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:482,1
    - Dst: GMLASBaseEntityResolver::DoExtraSchemaProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:483,1
    - Dst: GMLASBaseEntityResolver::SetSubstituteWithOGCSchemaLocation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:485,1
    - Dst: SAX2XMLReader*::getEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:487,1
    - Dst: SAX2XMLReader*::setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:488,1
    - Dst: GMLASErrorHandler::GMLASErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:491,1
    - Dst: GMLASErrorHandler::SetSchemaFullCheckingEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:492,1
    - Dst: GMLASErrorHandler::SetHandleMultipleImportsEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:493,1
    - Dst: GMLASErrorHandler::SetHideGMLTypeNotFound
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:495,1
    - Dst: SAX2XMLReader*::getErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:496,1
    - Dst: SAX2XMLReader*::setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:497,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:507,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:516,1
    - Dst: OGRStartXercesLimitsForThisThread
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:523,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:524,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:524,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:525,1
    - Dst: SAX2XMLReader*::loadGrammar
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:528,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:533,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:533,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:537,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:537,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:541,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:541,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:543,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:543,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:550,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:550,1
    - Dst: OGRStopXercesLimitsForThisThread
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:552,1
    - Dst: SAX2XMLReader*::setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:555,1
    - Dst: SAX2XMLReader*::setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:556,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:560,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:562,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:563,1
    - Dst: GMLASErrorHandler::hasFailed
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:567,1
    - Dst: GMLASErrorHandler::GetGMLTypeNotFoundError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:569,1
    - Dst: GMLASBaseEntityResolver::GetFoundNonOfficialGMLSchemaLocation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:571,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:573,1
    - Dst: GMLASErrorHandler::GetGMLTypeNotFoundError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:577,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:582,1
    - Dst: GMLASErrorHandler::GetGMLTypeNotFoundError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:583,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 8
    argNames:
    - poParser
    - oCache
    - oXSDEntityResolver
    - osBaseDirname
    - osXSDFilename
    - ppoGrammar
    - bSchemaFullChecking
    - bHandleMultipleImports
    argTypes:
    - SAX2XMLReader*
    - GMLASXSDCache
    - GMLASBaseEntityResolver
    - CPLString
    - CPLString
    - Grammar**
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 596
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 596
    functionName: GMLASReader::LoadXSDInParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - SAX2XMLReader*::setFeature
    - GMLASBaseEntityResolver::SetSubstituteWithOGCSchemaLocation
    - CPLString::rfind
    - GMLASErrorHandler::GetGMLTypeNotFoundError
    - CPLDebug
    - getMessage
    - GMLASBaseEntityResolver::GetFoundNonOfficialGMLSchemaLocation
    - CPLString
    - SAX2XMLReader*::getEntityResolver
    - GMLASXSDCache::Open
    - CPLError
    - std::string::c_str
    - OGRStartXercesLimitsForThisThread
    - transcode
    - std::string::empty
    - SAX2XMLReader*::setEntityResolver
    - CPLString::substr
    - GMLASErrorHandler::SetHideGMLTypeNotFound
    - CPLGetLastErrorMsg
    - GMLASErrorHandler::SetSchemaFullCheckingEnabled
    - SAX2XMLReader*::setErrorHandler
    - CPLIsFilenameRelative
    - GMLASErrorHandler::GMLASErrorHandler
    - SAX2XMLReader*::getErrorHandler
    - OGRStopXercesLimitsForThisThread
    - CPLSPrintf
    - strstr
    - std::shared_ptr<VSIVirtualHandle>
    - CPLString::find
    - GMLASBaseEntityResolver::DoExtraSchemaProcessing
    - CPLFormFilenameSafe
    - static_cast<size_t>
    - SAX2XMLReader*::loadGrammar
    - GMLASErrorHandler::hasFailed
    - GMLASErrorHandler::SetHandleMultipleImportsEnabled
    - GMLASBaseEntityResolver::SetBasePath
    linkageType: ''
    returnType: bool
    signature: "bool GMLASReader::LoadXSDInParser(\n    SAX2XMLReader *poParser, GMLASXSDCache
      &oCache,\n    GMLASBaseEntityResolver &oXSDEntityResolver, const CPLString &osBaseDirname,\n
      \   const CPLString &osXSDFilename, Grammar **ppoGrammar,\n    bool bSchemaFullChecking,
      bool bHandleMultipleImports)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:614,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:614,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:618,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:619,1
    - Dst: setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:621,1
    - Dst: setLexicalHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:622,1
    - Dst: setDTDHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:623,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:624,1
    - Dst: SetSchemaFullCheckingEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:627,1
    - Dst: SetHandleMultipleImportsEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:628,1
    - Dst: setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:629,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:631,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:633,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:639,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:640,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:644,1
    - Dst: std::vector<PairURIFilename>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:651,1
    - Dst: std::vector<PairURIFilename>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:654,1
    - Dst: GMLASReader::LoadXSDInParser
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:657,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:658,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:667,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:673,1
    - Dst: std::make_unique<GMLASBaseEntityResolver>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:678,1
    - Dst: setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:679,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:679,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:686,1
    - Dst: setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:687,1
    - Dst: std::make_unique<GMLASInputSource>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:691,1
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:697,1
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:698,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:704,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:712,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:713,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:714,1
    - Dst: GetMapFieldXPathToOGRFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:719,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:721,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:722,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:723,1
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:727,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:728,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:729,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 8
    argNames:
    - pszFilename
    - fp
    - oMapURIToPrefix
    - apoLayers
    - bValidate
    - aoXSDs
    - bSchemaFullChecking
    - bHandleMultipleImports
    argTypes:
    - char*
    - std::shared_ptr<VSIVirtualHandle>
    - std::map<CPLString, CPLString>
    - std::vector<std::unique_ptr<OGRGMLASLayer>>
    - bool
    - std::vector<PairURIFilename>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 733
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 733
    functionName: GMLASReader::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - SetHandleMultipleImportsEnabled
    - setContentHandler
    - setDTDHandler
    - end
    - SetSchemaFullCheckingEnabled
    - find
    - XMLReaderFactory::createXMLReader
    - setFeature
    - resize
    - GMLASReader::LoadXSDInParser
    - std::vector<PairURIFilename>::empty
    - get
    - GetFeatureClass
    - setEntityResolver
    - setLexicalHandler
    - std::make_unique<GMLASBaseEntityResolver>
    - std::vector<PairURIFilename>::size
    - push_back
    - reset
    - std::make_unique<GMLASInputSource>
    - GetMapFieldXPathToOGRFieldIdx
    - setErrorHandler
    linkageType: ''
    returnType: bool
    signature: "bool GMLASReader::Init(const char *pszFilename,\n                       const
      std::shared_ptr<VSIVirtualHandle> &fp,\n                       const std::map<CPLString,
      CPLString> &oMapURIToPrefix,\n                       std::vector<std::unique_ptr<OGRGMLASLayer>>
      &apoLayers,\n                       bool bValidate,\n                       const
      std::vector<PairURIFilename> &aoXSDs,\n                       bool bSchemaFullChecking,
      bool bHandleMultipleImports)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: IsArrayType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsArrayType(OGRFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:752,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:753,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:756,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:758,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:764,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:765,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:768,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:773,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:776,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:778,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:791,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:793,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:796,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:796,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:798,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:799,1
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:804,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:805,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:806,1
    - Dst: IsArrayType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:810,1
    - Dst: OGRGMLASLayer*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:815,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:815,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:820,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:826,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:831,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:838,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:839,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:843,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:844,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:846,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:846,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:851,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:852,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:857,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:858,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:861,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:862,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:867,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:868,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:872,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:872,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:876,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:877,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:881,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:881,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:888,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:888,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:894,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:894,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:898,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:899,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:900,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:903,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:904,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:909,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:910,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:914,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:914,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:919,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:919,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 4
    argNames:
    - poFeature
    - poLayer
    - nAttrIdx
    - osAttrValue
    argTypes:
    - OGRFeature*
    - OGRGMLASLayer*
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 921
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 921
    functionName: GMLASReader::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - IsArrayType
    - atoi
    - reinterpret_cast<GByte *>
    - OGRParseXMLDateTime
    - CSLAddString
    - strcmp
    - static_cast<GIntBig *>
    - CPLHexToBinary
    - CPLString::empty
    - CPLStrdup
    - OGRFeature*::GetRawFieldRef
    - CPLAtoGIntBig
    - CPLString::c_str
    - CPLRealloc
    - static_cast<double *>
    - CPLMalloc
    - CPLAtof
    - IsList
    - CPLAssert
    - GetType
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - static_cast<int *>
    - OGRGMLASLayer*::GetFeatureClass
    - CSLDestroy
    - OGRFeature*::SetField
    - OGR_RawField_IsUnset
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::SetField(OGRFeature *poFeature, OGRGMLASLayer *poLayer,\n
      \                          int nAttrIdx, const CPLString &osAttrValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:931,1
    - Dst: std::unique_ptr<OGRFeature>::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:932,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:932,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:935,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:936,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - poFeature
    - poLayer
    argTypes:
    - std::unique_ptr<OGRFeature>
    - OGRGMLASLayer*
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: GMLASReader::PushFeatureReady
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - CPLDebug
    - std::move
    - std::unique_ptr<OGRFeature>::GetDefnRef
    - OGRGMLASLayer*::GetName
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::PushFeatureReady(std::unique_ptr<OGRFeature> &&poFeature,\n
      \                                  OGRGMLASLayer *poLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:946,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:946,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:948,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:949,1
    - Dst: m_poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:949,1
    - Dst: m_poFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:956,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:960,1
    - Dst: m_poLayer::GetParentIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:961,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:963,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:963,1
    - Dst: GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:963,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:964,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:964,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:965,1
    - Dst: GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:965,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:966,1
    - Dst: m_poLayer::GetParentIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:967,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:967,1
    - Dst: m_poLayer::IsGeneratedIDField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:971,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:981,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:983,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:984,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:984,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - osLocalname
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 989
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 989
    functionName: GMLASReader::CreateNewFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - back
    - GetIDFieldIdx
    - empty
    - m_poFeature::SetField
    - m_poLayer::GetIDFieldIdx
    - CPLDebug
    - CPLSPrintf
    - CPLString::c_str
    - CPLAssert
    - m_poLayer::IsGeneratedIDField
    - m_poLayer::GetName
    - m_poLayer::GetParentIDFieldIdx
    - m_poLayer::GetLayerDefn
    - OGRFeature::OGRFeature
    - m_poFeature::SetFID
    - CPLString::empty
    - GetFieldAsString
    linkageType: ''
    returnType: void
    signature: void GMLASReader::CreateNewFeature(const CPLString &osLocalname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:998,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1011
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1011
    functionName: GMLASReader::AttachAsLastChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - back
    linkageType: ''
    returnType: void
    signature: void GMLASReader::AttachAsLastChild(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1020,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1030,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1031,1
    - Dst: GMLASReader::AttachAsLastChild
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1033,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1038,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1042,1
    - Dst: Attributes::getURI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1042,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1048,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1050,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1050,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1051,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1064,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1065,1
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1078,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1087,1
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1091,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1100,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1102,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1108,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - osXPath
    - attrs
    argTypes:
    - CPLString
    - Attributes
    constantsTouched: []
    func_position:
      end: 1112
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1112
    functionName: GMLASReader::BuildXMLBlobStartElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - CPLError
    - CPLCreateXMLNode
    - CPLDebug
    - GMLASReader::AttachAsLastChild
    - Attributes::getLength
    - push_back
    - reserve
    - transcode
    - Attributes::getURI
    - CPLFree
    - GMLASReader::FillTextContent
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::BuildXMLBlobStartElement(const CPLString &osXPath,\n
      \                                          const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1122,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1128
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1128
    functionName: GMLASReader::GetLayerByXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - GetFeatureClass
    - get
    linkageType: ''
    returnType: OGRGMLASLayer
    signature: OGRGMLASLayer *GMLASReader::GetLayerByXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1136,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1138,1
    - Dst: Context::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oContext
    argTypes:
    - Context
    constantsTouched: []
    func_position:
      end: 1141
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1141
    functionName: GMLASReader::PushContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - Context::Dump
    - push_back
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void GMLASReader::PushContext(const Context &oContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1150,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1152,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1153,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1156,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1158,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1160,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1164
    functionName: GMLASReader::PopContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void GMLASReader::PopContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1236,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1240,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1240,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1240,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1247,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1247,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1248,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1250,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1250,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1251,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1258,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1273,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1278,1
    - Dst: GMLASReader::BuildXMLBlobStartElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1287,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1298,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1309,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1317,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1317,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1325,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1325,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1332,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1333,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1344,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1351,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1354,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1362,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1363,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1364,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1382,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1394,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1403,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1403,1
    - Dst: OGRGMLASLayer*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1404,1
    - Dst: OGRGMLASLayer*::GetParent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1407,1
    - Dst: OGRGMLASLayer*::GetParent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1408,1
    - Dst: OGRGMLASLayer*::GetParent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1409,1
    - Dst: OGRGMLASLayer*::GetParent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1431,1
    - Dst: GMLASReader::CreateNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1435,1
    - Dst: m_poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1435,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1455,1
    - Dst: IsArrayType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1468,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1469,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1473,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1485,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1502,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1514,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1515,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1517,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1518,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1532,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1538,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1541,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1542,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1546,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1546,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1547,1
    - Dst: Context::Dump
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1557,1
    - Dst: GMLASReader::PushContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1558,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1566,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1573,1
    - Dst: GMLASReader::CreateNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1574,1
    - Dst: GMLASReader::PushContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1582,1
    - Dst: m_oMapCounter::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1583,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1590,1
    - Dst: m_poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1590,1
    - Dst: m_poLayer::GetOGRFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1605,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1606,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1609,1
    - Dst: m_poLayer::GetOGRGeomFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1626,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1627,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1635,1
    - Dst: m_poFeature::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1636,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1638,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1673,1
    - Dst: IsArrayType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1694,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1695,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1699,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1699,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1709,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1712,1
    - Dst: MayAppearOutOfOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1712,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1717,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1718,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1724,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1725,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1727,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1728,1
    - Dst: GMLASReader::CreateNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1729,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1731,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1731,1
    - Dst: m_oMapCounter::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1732,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1737,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1743,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1750,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1751,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1757,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1758,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1769,1
    - Dst: GetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1773,1
    - Dst: GMLASReader::BuildXMLBlobStartElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1776,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1783,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1788,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1788,1
    - Dst: GMLASReader::GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1789,1
    - Dst: GMLASReader::CreateNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1796,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1809,1
    - Dst: Context::m_osCurSubXPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1811,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1812,1
    - Dst: GMLASReader::PushContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1814,1
    - Dst: m_oMapCounter::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1815,1
    - Dst: GMLASReader::ProcessAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1819,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1823,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1824,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1825,1
    - Dst: GMLASReader::BuildXMLBlobStartElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1834,1
    - Dst: m_poLayer::GetOGRFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1844,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1850,1
    - Dst: GMLASReader::BuildXMLBlobStartElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1853,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1859,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1864,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1865,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1867,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1869,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1875,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1875,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1876,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1876,1
    - Dst: GMLASReader::GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1878,1
    - Dst: GMLASSchemaAnalyzer::BuildJunctionTableXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1879,1
    - Dst: GMLASReader::GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1881,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1886,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1887,1
    - Dst: GMLASReader::CreateNewFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1891,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1912,1
    - Dst: Context::m_osCurSubXPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1914,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1915,1
    - Dst: GMLASReader::PushContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1917,1
    - Dst: m_oMapCounter::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1918,1
    - Dst: GMLASReader::ProcessAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1922,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1926,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1927,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1930,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1931,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1932,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1933,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1934,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1935,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1936,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1936,1
    - Dst: m_poLayer::GetFCFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1952,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1954,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1955,1
    - Dst: Attributes::getURI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1955,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1957,1
    - Dst: Attributes::getLocalName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1957,1
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1965,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1968,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1972,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1975,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1983,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1986,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1986,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1990,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1993,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:1993,1
    - Dst: GMLASReader::ProcessAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2005,1
    CyclomaticComplexity: 127
    EdgeCount: 127
    ICount: 307
    argCount: 4
    argNames:
    - uri
    - localname
    - qname
    - attrs
    argTypes:
    - XMLCh*
    - XMLCh*
    - XMLCh*
    - Attributes
    constantsTouched: []
    func_position:
      end: 2006
      start: 1222
    functionDepth: 4
    functionLinenumber: 1222
    functionLinenumberEnd: 2006
    functionName: GMLASReader::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - IsArrayType
    - GetMaxOccurs
    - OGRGMLASLayer*::GetLayerDefn
    - atoi
    - std::vector::size
    - auto::SetField
    - CPLDebug
    - GMLASReader::ProcessAttributes
    - reserve
    - CPLError
    - MatchesRefXPath
    - m_poLayer::GetFeatureClass
    - transcode
    - GMLASReader::BuildXMLBlobStartElement
    - end
    - Context::Dump
    - GMLASReader::PushFeatureReady
    - m_poFeature::GetFieldDefnRef
    - Clear
    - m_poLayer::GetOGRGeomFieldIndexFromXPath
    - find
    - std::move
    - m_oMapCounter::clear
    - Context::m_osCurSubXPath::c_str
    - GMLASReader::CreateNewFeature
    - std::make_unique<OGRFeature>
    - c_str
    - m_poLayer::GetOGRFieldIndexFromXPath
    - GetIncludeThisEltInBlob
    - get
    - GMLASReader::PushContext
    - m_poFeature::GetFieldAsString
    - CPLAssert
    - GetType
    - Attributes::getLength
    - m_poLayer::GetName
    - GMLASReader::GetLayerByXPath
    - GMLASSchemaAnalyzer::BuildJunctionTableXPath
    - OGRGMLASLayer*::GetParent
    - Attributes::getURI
    - m_poLayer::GetIDFieldIdx
    - size
    - GetXPath
    - m_poLayer::GetFCFieldIndexFromXPath
    - std::unique_ptr<OGRFeature>
    - OGRGMLASLayer*::GetFeatureClass
    - empty
    - back
    - pop_back
    - GMLASReader::SetField
    - auto::SetFID
    - GetCategory
    - m_poFeature::GetDefnRef
    - push_back
    - MayAppearOutOfOrder
    - m_poLayer::GetLayerDefn
    - Attributes::getLocalName
    - OGRGMLASLayer*::GetName
    - clear
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::startElement(const XMLCh *const uri,\n                               const
      XMLCh *const localname,\n                               const XMLCh *const\n#ifdef
      DEBUG_VERBOSE\n                                   qname\n#endif\n                               ,\n
      \                              const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2030,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2034,1
    - Dst: Attributes::getURI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2034,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2040,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2042,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2042,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2043,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2044,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2053,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2053,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2054,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2069,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2070,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2072,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2076,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2081,1
    - Dst: GMLASReader::ProcessXLinkHref
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2083,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2086,1
    - Dst: m_poLayer::GetFCFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2090,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2091,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2091,1
    - Dst: m_poLayer::IsGeneratedIDField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2101,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2104,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2104,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2105,1
    - Dst: m_poFeature::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2120,1
    - Dst: m_poFeature::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2130,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2152,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2154,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2158,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2159,1
    - Dst: m_poLayer::GetFCFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2162,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2164,1
    - Dst: GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2164,1
    - Dst: m_poLayer::GetFCFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2173,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2175,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2175,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2179,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2179,1
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2186,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2191,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2194,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2198,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2201,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2208,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2210,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2215,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2217,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2226,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2227,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2228,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2237,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2243,1
    - Dst: GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2250,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2251,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2252,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2253,1
    - Dst: m_poFeature::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2254,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2256,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 91
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - Attributes
    constantsTouched: []
    func_position:
      end: 2262
      start: 2020
    functionDepth: 3
    functionLinenumber: 2020
    functionLinenumberEnd: 2262
    functionName: GMLASReader::ProcessAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - GMLASReader::ProcessXLinkHref
    - CPLDebug
    - m_poLayer::IsGeneratedIDField
    - CPLString
    - reserve
    - json_object_object_add
    - MatchesRefXPath
    - GetDefaultValue
    - m_poLayer::GetFeatureClass
    - CPLError
    - CPLString::empty
    - transcode
    - m_poFeature::GetFieldDefnRef
    - m_poFeature::IsFieldSetAndNotNull
    - m_poFeature::SetField
    - m_poFeature::SetFieldNull
    - GetFixedValue
    - c_str
    - json_object_new_string
    - m_poFeature::GetFieldAsString
    - GetType
    - Attributes::getLength
    - json_object_get_string
    - Attributes::getURI
    - m_poLayer::GetIDFieldIdx
    - size
    - m_poLayer::GetFCFieldIndexFromXPath
    - json_object_new_object
    - GetXPath
    - empty
    - GMLASReader::SetField
    - GetConf
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void GMLASReader::ProcessAttributes(const Attributes &attrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2280,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2281,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2283,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2286,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2289,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2294,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2295,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2299,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2300,1
    - Dst: m_poLayer::GetXPathOfFieldLinkForAttrToOtherLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2304,1
    - Dst: OGRGMLASLayer*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2307,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2313,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2314,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2316,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2321,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2339,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2350,1
    - Dst: GetRawContentForRule
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2353,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2355,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2357,1
    - Dst: GetRawContentForRule
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2365,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2367,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2369,1
    - Dst: m_aoFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2374,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2378,1
    - Dst: GMLASXPathMatcher::SetRefXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2382,1
    - Dst: std::map<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2382,1
    - Dst: GMLASXPathMatcher::SetDocumentMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2384,1
    - Dst: std::map<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2385,1
    - Dst: GMLASReader::ExploreXMLDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2393,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2394,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2399,1
    - Dst: IsRawContentResolutionEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2403,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2409,1
    - Dst: GetRawContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2412,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2413,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2415,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - nAttrIdx
    - osAttrXPath
    - osAttrValue
    argTypes:
    - int
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 2420
      start: 2268
    functionDepth: 3
    functionLinenumber: 2268
    functionLinenumberEnd: 2420
    functionName: GMLASReader::ProcessXLinkHref
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - IsRawContentResolutionEnabled
    - GMLASXPathMatcher::SetRefXPaths
    - CPLString
    - std::vector::push_back
    - CPLString::empty
    - end
    - m_poLayer::GetXPathOfFieldLinkForAttrToOtherLayer
    - CPLString::substr
    - m_poFeature::SetField
    - find
    - insert
    - std::map<CPLString, CPLString>
    - std::move
    - GetRawContent
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - CPLAssert
    - m_aoFields::size
    - OGRGMLASLayer*::GetFeatureClass
    - GMLASReader::SetField
    - GetConf
    - GMLASReader::ExploreXMLDoc
    - push_back
    - m_poLayer::GetLayerDefn
    - GMLASXPathMatcher::SetDocumentMapURIToPrefix
    - GetRawContentForRule
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::ProcessXLinkHref(int nAttrIdx, const CPLString &osAttrXPath,\n
      \                                  const CPLString &osAttrValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2434,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2440,1
    - Dst: GMLASXPathMatcher::MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2445,1
    - Dst: std::map<CPLString, size_t>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2447,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2448,1
    - Dst: std::map<CPLString, size_t>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2448,1
    - Dst: GMLASField::MakeXLinkDerivedFieldXPathFromXLinkHrefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2451,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2455,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2471,1
    - Dst: m_poFeature::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2473,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2474,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2477,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2478,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2480,1
    - Dst: GMLASReader::ExploreXMLDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2488,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 6
    argNames:
    - osAttrXPath
    - oRule
    - psNode
    - osParentXPath
    - oMatcher
    - oMapFieldXPathToIdx
    argTypes:
    - CPLString
    - GMLASXLinkResolutionConf::URLSpecificResolution
    - CPLXMLNode*
    - CPLString
    - GMLASXPathMatcher
    - std::map<CPLString, size_t>
    constantsTouched: []
    func_position:
      end: 2492
      start: 2426
    functionDepth: 3
    functionLinenumber: 2426
    functionLinenumberEnd: 2492
    functionName: GMLASReader::ExploreXMLDoc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 2
    functionsReached:
    - std::map<CPLString, size_t>::end
    - GMLASReader::SetField
    - m_poFeature::GetFieldDefnRef
    - m_poFeature::IsFieldSetAndNotNull
    - std::map<CPLString, size_t>::find
    - GMLASXPathMatcher::MatchesRefXPath
    - m_poFeature::GetFieldAsString
    - CPLAssert
    - GMLASReader::ExploreXMLDoc
    - CPLString
    - CPLFree
    - CPLString::empty
    - GMLASField::MakeXLinkDerivedFieldXPathFromXLinkHrefXPath
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::ExploreXMLDoc(\n    const CPLString &osAttrXPath,\n
      \   const GMLASXLinkResolutionConf::URLSpecificResolution &oRule,\n    CPLXMLNode
      *psNode, const CPLString &osParentXPath,\n    const GMLASXPathMatcher &oMatcher,\n
      \   const std::map<CPLString, size_t> &oMapFieldXPathToIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2511,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2518,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2519,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2523,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2523,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2523,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2529,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2529,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2530,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2542,1
    - Dst: IsArrayType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2545,1
    - Dst: m_poLayer::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2550,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2550,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2554,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2559,1
    - Dst: m_poFeature::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2567,1
    - Dst: AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2576,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2579,1
    - Dst: m_poFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2580,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2581,1
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2586,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2591,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2594,1
    - Dst: GMLASReader::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2603,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2611,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2613,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2613,1
    - Dst: GMLASReader::ProcessGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2615,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2616,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2617,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2632,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2635,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2637,1
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2641,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2645,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2648,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2656,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2658,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2666,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2673,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2673,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2674,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2678,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2678,1
    - Dst: GMLASReader::ProcessSWEDataArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2680,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2682,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2683,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2689,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2690,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2692,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2693,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2693,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2696,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2697,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2698,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2698,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2700,1
    - Dst: GMLASReader::PopContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2705,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2706,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2706,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2707,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2720,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2721,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2724,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2724,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2725,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2726,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2731,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2732,1
    - Dst: GMLASReader::PopContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2735,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2736,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2738,1
    - Dst: m_osCurSubXPath::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2739,1
    - Dst: GMLASReader::PopContext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2742,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2743,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2743,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2744,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2757,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2760,1
    - Dst: Dump
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2761,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2766,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2767,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2768,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2770,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2770,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2772,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2773,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2773,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2774,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2775,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2781,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2781,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2782,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2786,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2786,1
    - Dst: GMLASReader::ProcessSWEDataRecord
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2788,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2790,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2791,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 152
    argCount: 3
    argNames:
    - uri
    - localname
    - qname
    argTypes:
    - XMLCh*
    - XMLCh*
    - XMLCh*
    constantsTouched: []
    func_position:
      end: 2794
      start: 2498
    functionDepth: 3
    functionLinenumber: 2498
    functionLinenumberEnd: 2794
    functionName: GMLASReader::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - IsArrayType
    - CPLDebug
    - GMLASReader::ProcessGeometry
    - List
    - reserve
    - CPLError
    - AddString
    - m_poLayer::GetFeatureClass
    - transcode
    - GMLASReader::PushFeatureReady
    - m_poFeature::GetFieldDefnRef
    - GMLASReader::ProcessSWEDataRecord
    - m_poFeature::SetField
    - std::move
    - resize
    - c_str
    - IsList
    - CPLDestroyXMLNode
    - CPLAssert
    - GMLASReader::PopContext
    - GMLASReader::FillTextContent
    - size
    - back
    - std::unique_ptr<OGRFeature>
    - empty
    - GMLASReader::SetField
    - Dump
    - GMLASReader::ProcessSWEDataArray
    - pop_back
    - m_osCurSubXPath::clear
    - clear
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::endElement(const XMLCh *const uri,\n                             const
      XMLCh *const localname,\n                             const XMLCh *const\n#ifdef
      DEBUG_VERBOSE\n                                 qname\n#endif\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2808
    functionName: GMLASReader::startEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - SAXNotSupportedException
    linkageType: ''
    returnType: void
    signature: void GMLASReader::startEntity(const XMLCh *const /* name */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2816,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2818,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2819,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2820,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2823,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2827,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2827,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2830,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - poFeature
    - iField
    - osValue
    argTypes:
    - OGRFeature*
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 2832
      start: 2814
    functionDepth: 3
    functionLinenumber: 2814
    functionLinenumberEnd: 2832
    functionName: SetSWEValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - EQUAL
    - CPLString::c_str
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - OGRFeature*::SetField
    - CPLString::Trim
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void SetSWEValue(OGRFeature *poFeature, int iField, CPLString &osValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2840,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszValues
    - i
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2843
      start: 2838
    functionDepth: 0
    functionLinenumber: 2838
    functionLinenumberEnd: 2843
    functionName: SkipSpace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - isspace
    - static_cast<unsigned char>
    linkageType: ''
    returnType: size_t
    signature: size_t SkipSpace(const char *pszValues, size_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2854,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2855,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2858,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2864,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2870,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2872,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2873,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2873,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2879,1
    - Dst: CPLString::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2887,1
    - Dst: std::make_unique<OGRGMLASLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2888,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2893,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2894,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2895,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2899,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2900,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2902,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2903,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2904,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2905,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2911,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2912,1
    - Dst: m_poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2913,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2914,1
    - Dst: m_poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2916,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2917,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2919,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2921,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2924,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2925,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2926,1
    - Dst: auto::ProcessDataRecordOfDataArrayCreateFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2929,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2931,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2931,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2935,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2936,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2936,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2953,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2953,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2954,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2955,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2956,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2957,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2961,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2962,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2966,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2966,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2968,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2968,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2969,1
    - Dst: std::unique_ptr::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2970,1
    - Dst: m_poFeature::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2971,1
    - Dst: m_poLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2972,1
    - Dst: SetSWEValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2981,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2981,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2984,1
    - Dst: SkipSpace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2985,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2988,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2989,1
    - Dst: SetSWEValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2995,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2995,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2998,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2998,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:2999,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3000,1
    - Dst: SkipSpace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3001,1
    - Dst: SetSWEValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3016,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3016,1
    - Dst: GMLASReader::PushFeatureReady
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3019,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3019,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3023
      start: 2849
    functionDepth: 3
    functionLinenumber: 2849
    functionLinenumberEnd: 3023
    functionName: GMLASReader::ProcessSWEDataArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - OGRGMLASLayer*::GetLayerDefn
    - strncmp
    - CPLGetXMLValue
    - std::unique_ptr::SetFID
    - CPLString::empty
    - GMLASReader::PushFeatureReady
    - std::unique_ptr::SetField
    - CPLString::c_str
    - CPLString::size
    - std::move
    - std::unique_ptr::reset
    - CreateFeature
    - emplace_back
    - std::make_unique<OGRFeature>
    - GetLayerDefn
    - static_cast<int>
    - OGRFeature::SetField
    - CPLString::Printf
    - m_poFeature::GetFieldAsString
    - CPLStripXMLNamespace
    - CPLAssert
    - CPLString::tolower
    - CPL_IGNORE_RET_VAL
    - m_poLayer::GetName
    - m_poLayer::GetIDFieldIdx
    - SetSWEValue
    - std::unique_ptr::get
    - size
    - empty
    - auto::ProcessDataRecordOfDataArrayCreateFields
    - CPLGetXMLNode
    - SkipSpace
    - m_poLayer::GetLayerDefn
    - std::make_unique<OGRGMLASLayer>
    linkageType: ''
    returnType: void
    signature: void GMLASReader::ProcessSWEDataArray(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3031,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3037,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3041,1
    - Dst: first::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3041,1
    - Dst: m_poLayer::ProcessDataRecordCreateFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3043,1
    - Dst: m_poLayer::ProcessDataRecordFillFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3051
      start: 3029
    functionDepth: 1
    functionLinenumber: 3029
    functionLinenumberEnd: 3051
    functionName: GMLASReader::ProcessSWEDataRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - m_poLayer::ProcessDataRecordCreateFields
    - m_poLayer::ProcessDataRecordFillFeature
    - CPLStripXMLNamespace
    - std::vector::push_back
    - first::get
    linkageType: ''
    returnType: void
    signature: void GMLASReader::ProcessSWEDataRecord(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3066
      start: 3057
    functionDepth: 1
    functionLinenumber: 3057
    functionLinenumberEnd: 3066
    functionName: GMLASGetSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    linkageType: ''
    returnType: char
    signature: char *GMLASGetSRSName(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3078,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3080,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3082,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3084,1
    - Dst: AddMissingSRSDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - psRoot
    - nDefaultSrsDimension
    argTypes:
    - CPLXMLNode*
    - int
    constantsTouched: []
    func_position:
      end: 3093
      start: 3072
    functionDepth: 1
    functionLinenumber: 3072
    functionLinenumberEnd: 3093
    functionName: AddMissingSRSDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - AddMissingSRSDimension
    - CPLSPrintf
    - strcmp
    - CPLGetXMLValue
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: void AddMissingSRSDimension(CPLXMLNode *psRoot, int nDefaultSrsDimension)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poFeature::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3102,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3111,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3112,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3113,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3115,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3116,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3118,1
    - Dst: "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3120,1
    - Dst: OGRGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3125,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3127,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3128,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3135,1
    - Dst: AddMissingSRSDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3137,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3143,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3144,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3148,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3149,1
    - Dst: OGR_G_CreateFromGMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3149,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3159,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3160,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3162,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3163,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3165,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3166,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3167,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3167,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3168,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3168,1
    - Dst: auto::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3179,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3184,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3188,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3189,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3191,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3194,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3195,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3196,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3200,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3200,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3205,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3207,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3208,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3213,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3215,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3226,1
    - Dst: m_poFeature::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3227,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3230,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3232,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3233,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3234,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3238,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3239,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3239,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3240,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3240,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3241,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3244,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3244,1
    - Dst: m_poFeature::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3245,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3246,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3252,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3253,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3255
      start: 3099
    functionDepth: 7
    functionLinenumber: 3099
    functionLinenumberEnd: 3255
    functionName: GMLASReader::ProcessGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<OGRGeometry>
    - auto::assignSpatialReference
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - CPLDebug
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - OGRSpatialReference*::Release
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - auto::get
    - CPLGetXMLValue
    - CPLError
    - CPL_TO_BOOL
    - end
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRGeomFieldDefn*::SetSpatialRef
    - m_poFeature::StealGeometry
    - find
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::unique_ptr<OGRCoordinateTransformation>
    - std::move
    - std::make_unique<OGRGeometryCollection>
    - OGRSpatialReference::SetFromUserInput
    - STARTS_WITH_CI
    - c_str
    - FromHandle
    - auto::addGeometryDirectly
    - OGR_G_CreateFromGMLTree
    - m_poFeature::GetGeomFieldDefnRef
    - OGRCreateCoordinateTransformation
    - CPLFree
    - auto::toGeometryCollection
    - erase
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - AddMissingSRSDimension
    - auto::release
    - "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - auto::getGeometryType
    - OGRSpatialReference*::SetFromUserInput
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::transform
    - m_poFeature::SetGeomFieldDirectly
    - auto::reset
    - auto::swapXY
    linkageType: ''
    returnType: void
    signature: void GMLASReader::ProcessGeometry(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3268,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3275,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3286,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3286,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3287,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3291,1
    - Dst: reinterpret_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3299,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3299,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3302,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3302,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3302,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3303,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3303,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3303,1
    - Dst: GMLASReader::AttachAsLastChild
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3306,1
    - Dst: GMLASReader::FillTextContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3333,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3336,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3350,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3355,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3357,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - chars
    - length
    argTypes:
    - XMLCh*
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 3361
      start: 3261
    functionDepth: 1
    functionLinenumber: 3261
    functionLinenumberEnd: 3361
    functionName: GMLASReader::characters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - back
    - empty
    - reinterpret_cast<char *>
    - GMLASReader::AttachAsLastChild
    - reinterpret_cast<CPLXMLNode *>
    - CPLError
    - CPLMalloc
    - memcpy
    - CPLFree
    - GMLASReader::FillTextContent
    linkageType: ''
    returnType: void
    signature: void GMLASReader::characters(const XMLCh *const chars, const XMLSize_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3371,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3373,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3373,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3374,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3375,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3375,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3382,1
    - Dst: parseFirst
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3394,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3394,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3403,1
    - Dst: parseNext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3404,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3406,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3408,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3412,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3421,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3424,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3424,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3426,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3427,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3427,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3437,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3441,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3449,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3458,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3459,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3459,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3465,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3466,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3466,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 3
    argNames:
    - ppoBelongingLayer
    - pfnProgress
    - pProgressData
    argTypes:
    - OGRGMLASLayer**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3472
      start: 3367
    functionDepth: 1
    functionLinenumber: 3367
    functionLinenumberEnd: 3472
    functionName: GMLASReader::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - Tell
    - erase
    - empty
    - front
    - auto::release
    - get
    - parseNext
    - getMessage
    - pfnProgress
    - begin
    - std::move
    - CPLError
    - parseFirst
    - transcode
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *GMLASReader::GetNextFeature(OGRGMLASLayer **ppoBelongingLayer,\n
      \                                       GDALProgressFunc pfnProgress,\n                                        void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3495,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3496,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3496,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3497,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3499,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3499,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3501,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3503,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3503,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3504,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3508,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3521,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3523,1
    - Dst: GMLASReader::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3524,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3528,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3533,1
    - Dst: auto::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3537,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3538,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3539,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3544,1
    - Dst: GMLASReader::ProcessInternalXLinkFirstPass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3546,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3553,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3553,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3554,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3556,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3556,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3560,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3560,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3563,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3569,1
    - Dst: RemoveField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3571,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3572,1
    - Dst: CreateCompoundFoldedMappings
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3579,1
    - Dst: GMLASReader::CreateFieldsForURLSpecificRules
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3586,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3590,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 9
    argNames:
    - pfnProgress
    - pProgressData
    - bRemoveUnusedLayers
    - bRemoveUnusedFields
    - bProcessSWEDataArray
    - poFieldsMetadataLayer
    - poLayersMetadataLayer
    - poRelationshipsLayer
    - aoSetRemovedLayerNames
    argTypes:
    - GDALProgressFunc
    - void*
    - bool
    - bool
    - bool
    - OGRLayer*
    - OGRLayer*
    - OGRLayer*
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 3593
      start: 3478
    functionDepth: 2
    functionLinenumber: 3478
    functionLinenumberEnd: 3593
    functionName: GMLASReader::RunFirstPass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLASLayer*::GetLayerDefn
    - clear
    - std::set::insert
    - std::set::erase
    - CPLDebug
    - std::vector::emplace_back
    - std::set<CPLString>::insert
    - OGRFeatureDefn*::GetGeomFieldDefn
    - insert
    - std::move
    - auto::IsFieldSetAndNotNull
    - GetName
    - GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - get
    - CreateCompoundFoldedMappings
    - std::set::find
    - RemoveField
    - GMLASReader::CreateFieldsForURLSpecificRules
    - GMLASReader::ProcessInternalXLinkFirstPass
    - GMLASReader::GetNextFeature
    - OGRFeatureDefn*::GetFieldDefn
    - std::unique_ptr<OGRFeature>
    - empty
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool GMLASReader::RunFirstPass(\n    GDALProgressFunc pfnProgress,
      void *pProgressData, bool bRemoveUnusedLayers,\n    bool bRemoveUnusedFields,
      bool bProcessSWEDataArray,\n    OGRLayer *poFieldsMetadataLayer, OGRLayer *poLayersMetadataLayer,\n
      \   OGRLayer *poRelationshipsLayer, std::set<CPLString> &aoSetRemovedLayerNames)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3609,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3611,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3612,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3614,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3617,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3617,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3618,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3620,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3621,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3624,1
    - Dst: OGRGMLASLayer*::CreateLinkForAttrToOtherLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3626,1
    - Dst: OGRGMLASLayer*::GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3628,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - bRemoveUnusedFields
    - oMapUnusedFields
    argTypes:
    - bool
    - std::map<OGRGMLASLayer *, std::set<CPLString>>
    constantsTouched: []
    func_position:
      end: 3636
      start: 3599
    functionDepth: 1
    functionLinenumber: 3599
    functionLinenumberEnd: 3636
    functionName: GMLASReader::ProcessInternalXLinkFirstPass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - end
    - c_str
    - OGRGMLASLayer*::GetFeatureClass
    - erase
    - OGRGMLASLayer*::CreateLinkForAttrToOtherLayer
    - std::vector::size
    - find
    - std::set::insert
    - std::set::find
    - CPLString::c_str
    - CPLError
    - OGRGMLASLayer*::GetName
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::ProcessInternalXLinkFirstPass(\n    bool bRemoveUnusedFields,\n
      \   std::map<OGRGMLASLayer *, std::set<CPLString>> &oMapUnusedFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3656,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3662,1
    - Dst: GMLASReader::CreateFieldsForURLSpecificRule
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3642
    functionDepth: 1
    functionLinenumber: 3642
    functionLinenumberEnd: 3668
    functionName: GMLASReader::CreateFieldsForURLSpecificRules
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - GetConf
    - CPLAssert
    - GMLASReader::CreateFieldsForURLSpecificRule
    linkageType: ''
    returnType: void
    signature: void GMLASReader::CreateFieldsForURLSpecificRules()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASLayer*::GetOGRFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3684,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3687,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3690,1
    - Dst: OGRGMLASLayer*::InsertNewField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3693,1
    - Dst: GMLASXLinkResolutionConf::URLSpecificResolution::m_aoFields::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3701,1
    - Dst: GMLASField::MakeXLinkDerivedFieldXPathFromXLinkHrefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3704,1
    - Dst: OGRGMLASLayer*::GetOGRFieldIndexFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3706,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3708,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3713,1
    - Dst: OGRGMLASLayer*::InsertNewField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp:3728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - poLayer
    - nFieldIdx
    - osFieldXPath
    - nInsertFieldIdx
    - oRule
    argTypes:
    - OGRGMLASLayer*
    - int
    - CPLString
    - int
    - GMLASXLinkResolutionConf::URLSpecificResolution
    constantsTouched: []
    func_position:
      end: 3734
      start: 3674
    functionDepth: 1
    functionLinenumber: 3674
    functionLinenumberEnd: 3734
    functionName: GMLASReader::CreateFieldsForURLSpecificRule
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp
    functionUses: 1
    functionsReached:
    - OGRGMLASLayer*::GetLayerDefn
    - OGRGMLASLayer*::InsertNewField
    - GMLASXLinkResolutionConf::URLSpecificResolution::m_aoFields::size
    - OGRGMLASLayer*::GetOGRFieldIndexFromXPath
    - CPLString::resize
    - GMLASField::MakeXLinkDerivedFieldXPathFromXLinkHrefXPath
    linkageType: ''
    returnType: void
    signature: "void GMLASReader::CreateFieldsForURLSpecificRule(\n    OGRGMLASLayer
      *poLayer, int nFieldIdx, const CPLString &osFieldXPath,\n    int &nInsertFieldIdx,\n
      \   const GMLASXLinkResolutionConf::URLSpecificResolution &oRule)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: GMLAS::LayerDescription::LayerDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LayerDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:60,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osFieldName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: GMLAS::LayerDescription::GetOGRIdxFromFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int GetOGRIdxFromFieldName(const CPLString &osFieldName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: GMLAS::GMLASWriter::IncIndent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncIndent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: GMLAS::GMLASWriter::DecIndent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecIndent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    argTypes:
    - char*
    - GDALDataset*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: GMLAS::GMLASWriter::GMLASWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASWriter::GMLASWriter(const char *pszFilename, GDALDataset
      *poSrcDS,\n                         CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:217,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: GMLAS::GMLASWriter::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void GMLASWriter::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:227,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:230,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:236,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:238,1
    - Dst: GMLASConfiguration::GetDefaultConfFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:240,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:242,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:244,1
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:246,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:252,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:252,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:255,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:262,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:267,1
    - Dst: std::make_unique<OGRGMLASDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:270,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:272,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:275,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:283,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:291,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:299,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:300,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:302,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:305,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:317,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:329,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:331,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:333,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:335,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:337,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:341,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:343,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:346,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:348,1
    - Dst: std::map::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:348,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:350,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:350,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:353,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:353,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:354,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:354,1
    - Dst: GMLAS::GMLASWriter::CollectLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:361,1
    - Dst: GMLAS::GMLASWriter::CollectFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:364,1
    - Dst: GMLAS::GMLASWriter::CollectRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:367,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:382,1
    - Dst: second::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:392,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:405,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:408,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:412,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:422,1
    - Dst: GMLAS::GMLASWriter::ComputeTopLevelFIDs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:426,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:443,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:446,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:448,1
    - Dst: LayerDescription::aoSetReferencedFIDs::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:448,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:451,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:462,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:464,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:464,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:466,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:466,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:473,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:476,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:479,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:481,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:483,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:485,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:490,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:498,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:498,1
    - Dst: GMLAS::GMLASWriter::WriteXSD
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:499,1
    - Dst: GMLAS::GMLASWriter::WriteXMLHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:503,1
    - Dst: GMLAS::GMLASWriter::WriteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:516,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:523,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:529,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:529,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:534,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:534,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:534,1
    - Dst: GMLAS::GMLASWriter::Close
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:538,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 148
    argCount: 2
    argNames:
    - pfnProgress
    - pProgressData
    argTypes:
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 540
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 540
    functionName: GMLAS::GMLASWriter::Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRGMLASDataSource>
    - GMLAS::GMLASWriter::ComputeTopLevelFIDs
    - GMLAS::GMLASWriter::WriteXMLHeader
    - std::map::end
    - GMLAS::GMLASWriter::CollectFields
    - GDALDataset*::GetLayerByName
    - CPLDebug
    - GMLAS::GMLASWriter::CollectRelationships
    - CPLError
    - std::vector::push_back
    - CPLString::empty
    - GMLAS::GMLASWriter::GetLayerByName
    - sscanf
    - end
    - static_cast<GIntBig>
    - PairURIFilename
    - GetLayerCount
    - FetchNameValueDef
    - GMLAS::GMLASWriter::WriteXSD
    - find
    - CPLString::c_str
    - GetFieldAsString
    - std::map::size
    - c_str
    - static_cast<int>
    - second::GetType
    - VSIUnlink
    - get
    - assign
    - OGRLayer*::GetFeatureCount
    - std::map::find
    - CPL_IGNORE_RET_VAL
    - GMLASConfiguration::GetDefaultConfFile
    - OGRLayer*::ResetReading
    - GMLAS::GMLASWriter::Close
    - Finalize
    - CPLResetExtensionSafe
    - GMLAS::GMLASWriter::WriteLayer
    - CSLDestroy
    - LayerDescription::aoSetReferencedFIDs::size
    - GMLAS::GMLASWriter::PrintLine
    - EQUAL
    - CSLSetNameValue
    - GMLAS::GMLASWriter::CollectLayers
    linkageType: ''
    returnType: bool
    signature: bool GMLASWriter::Write(GDALProgressFunc pfnProgress, void *pProgressData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:550,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:551,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 558
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 558
    functionName: GMLAS::GMLASWriter::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 2
    functionsReached:
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - find
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GMLASWriter::GetLayerByName(const CPLString &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - osStr
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: GMLAS::XMLEscape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: CPLString XMLEscape(const CPLString &osStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:580,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:582,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:582,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:586,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:587,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:591,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:592,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:593,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:594,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:595,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:595,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:596,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:597,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:598,1
    - Dst: std::vector<PairURIFilename>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:604,1
    - Dst: second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:606,1
    - Dst: first::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:608,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:610,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:612,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:613,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:617,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:618,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:623,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:626,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:629,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:630,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:631,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:635,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:636,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:637,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:638,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:639,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:640,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:641,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:642,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:643,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - osXSDFilenameIn
    - aoXSDs
    argTypes:
    - CPLString
    - std::vector<PairURIFilename>
    constantsTouched: []
    func_position:
      end: 648
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 648
    functionName: GMLAS::GMLASWriter::WriteXSD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - second::empty
    - VSIFCloseL
    - CPLResetExtensionSafe
    - std::vector<PairURIFilename>::size
    - GMLAS::GMLASWriter::PrintLine
    - first::empty
    - VSIFOpenL
    - CPLString::c_str
    - XMLEscape
    - CPLString
    - CPLError
    - CPLString::empty
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteXSD(const CPLString &osXSDFilenameIn,\n                           const
      std::vector<PairURIFilename> &aoXSDs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:660,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:660,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:663,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:664,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:669,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:669,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:674,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:674,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:677,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:677,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:679,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:681,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:684,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:684,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:685,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:685,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:692,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:692,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:693,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:695,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:695,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:696,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:696,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:698,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:698,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:704,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:704,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:704,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:706,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:706,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:707,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:708,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:710,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:710,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:715,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:721,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:724,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:726,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:726,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:727,1
    - Dst: std::vector<PairURIFilename>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:733,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:739,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:741,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:742,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:747,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:749,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:750,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:754,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:757,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:757,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:758,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:765,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:767,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:769,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:769,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:771,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:776,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:778,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:778,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:781,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:781,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:781,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:782,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:784,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:786,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:795,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:797,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:797,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:798,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:803,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:804,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:809,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:810,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:813,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:813,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:813,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 6
    argNames:
    - bWFS2FeatureCollection
    - nTotalFeatures
    - bGenerateXSD
    - osXSDFilenameIn
    - aoXSDs
    - oMapURIToPrefix
    argTypes:
    - bool
    - GIntBig
    - bool
    - CPLString
    - std::vector<PairURIFilename>
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 817
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 817
    functionName: GMLAS::GMLASWriter::WriteXMLHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - CPLGetFilename
    - std::map::end
    - CPLDebug
    - XMLEscape
    - CPLString
    - CPLError
    - CPLString::empty
    - FetchNameValueDef
    - CPLString::c_str
    - CPLString::size
    - CPLUnixTimeToYMDHMS
    - c_str
    - static_cast<int>
    - VSIUnlink
    - get
    - CPLSPrintf
    - VSIFOpenL
    - std::map::find
    - CPLString::replaceAll
    - time
    - std::map<CPLString, CPLString>::find
    - auto::second::c_str
    - empty
    - CPLResetExtensionSafe
    - std::vector<PairURIFilename>::size
    - GMLAS::GMLASWriter::PrintLine
    - reset
    - std::map<CPLString, CPLString>::end
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteXMLHeader(\n    bool bWFS2FeatureCollection,
      GIntBig nTotalFeatures, bool bGenerateXSD,\n    const CPLString &osXSDFilenameIn,\n
      \   const std::vector<PairURIFilename> &aoXSDs,\n    const std::map<CPLString,
      CPLString> &oMapURIToPrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:825,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:829,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:831,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:833,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:835,1
    - Dst: SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:840,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:841,1
    - Dst: LayerDescription::LayerDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:844,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:845,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:846,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:847,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:849,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:850,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:853,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:853,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:856,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:859,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:861,1
    - Dst: LayerDescription::osParentPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:862,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:864,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:867,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:868,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:869,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:871,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:873,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:877,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:877,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:879,1
    - Dst: LayerDescription::osXPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:881,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:889,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 892
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 892
    functionName: GMLAS::GMLASWriter::CollectLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - CPL_ARRAYSIZE
    - SetAttributeFilter
    - LayerDescription::osPKIDName::empty
    - OGRFeatureDefn*::GetFieldIndex
    - CPLError
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - ResetReading
    - find
    - OGRLayer*::GetLayerDefn
    - LayerDescription::osParentPKIDName::empty
    - GetName
    - GetFieldAsString
    - GetLayerDefn
    - LayerDescription::osName::c_str
    - LayerDescription::LayerDescription
    - EQUAL
    - push_back
    - LayerDescription::osXPath::c_str
    linkageType: ''
    returnType: bool
    signature: bool GMLASWriter::CollectLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:900,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:909,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:913,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:915,1
    - Dst: SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:920,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:921,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:921,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:922,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:925,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:927,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:927,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:929,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:930,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:931,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:934,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:937,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:938,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:946,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:947,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:949,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:950,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:953,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:956,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:961,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:962,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:965,1
    - Dst: GMLASField::GetTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:965,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:968,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:971,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:975,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:979,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:983,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:987,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:988,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:991,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:993,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:994,1
    - Dst: GMLASField::SetJunctionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:997,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1001,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1006,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1008,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1008,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1009,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1014,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1015,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1016,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1017,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1019,1
    - Dst: GMLASField::SetList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1023,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1024,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1024,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1026,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1026,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1027,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1027,1
    - Dst: GMLASField::SetRepetitionOnSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1028,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1028,1
    - Dst: GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1029,1
    - Dst: GMLASField::SetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1030,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1031,1
    - Dst: LayerDescription::oMapIdxToField::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1037,1
    - Dst: LayerDescription::oMapIdxToField::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1038,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1041,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1043,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1043,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1044,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1049,1
    - Dst: LayerDescription::oMapFieldXPathToIdx::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1051,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1051,1
    - Dst: LayerDescription::oMapFieldXPathToIdx::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1052,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1055,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1058,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1058,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1061,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1059,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1066,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1069,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1072,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1073,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1073,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1074,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1076,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1077,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1078,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1078,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1082,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 1085
    functionName: GMLAS::GMLASWriter::CollectFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - CPL_ARRAYSIZE
    - SetAttributeFilter
    - GMLASField::SetCategory
    - GMLASField::SetDefaultValue
    - OGRFeatureDefn*::GetFieldIndex
    - GMLASField::GMLASField
    - CPLString
    - CPLError
    - GMLASField::GetName
    - CPLString::resize
    - CPLString::empty
    - CPL_TO_BOOL
    - LayerDescription::oMapIdxToField::find
    - GMLAS::GMLASWriter::GetLayerByName
    - GMLASField::SetMinOccurs
    - end
    - GMLASField::GetType
    - ResetReading
    - GMLASField::SetType
    - find
    - CPLString::c_str
    - OGRLayer*::GetLayerDefn
    - GetName
    - GetFieldAsString
    - GetLayerDefn
    - c_str
    - LayerDescription::oMapFieldXPathToIdx::find
    - GMLASField::GetXPath
    - GMLASField::SetName
    - GMLASField::SetMaxOccurs
    - GetFieldAsInteger
    - GMLASField::SetJunctionLayer
    - GMLASField::SetRelatedClassXPath
    - GMLASField::SetRepetitionOnSequence
    - GMLASField::SetXPath
    - GMLASField::GetTypeFromString
    - LayerDescription::oMapFieldXPathToIdx::end
    - LayerDescription::oMapIdxToField::end
    - GMLASField::SetList
    linkageType: ''
    returnType: bool
    signature: bool GMLASWriter::CollectFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1093,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1096,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1100,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1102,1
    - Dst: SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1107,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1108,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1113,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1114,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1115,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1118,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1120,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1126,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1127,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1131,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1133,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1142,1
    - Dst: aoReferencingLayers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1144,1
    - Dst: PairLayerNameColName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1145,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1151
    functionName: GMLAS::GMLASWriter::CollectRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - aoReferencingLayers::push_back
    - GetLayerDefn
    - CPL_ARRAYSIZE
    - end
    - PairLayerNameColName
    - SetAttributeFilter
    - ResetReading
    - find
    - OGRFeatureDefn*::GetFieldIndex
    - CPLString::c_str
    - CPLError
    - GetName
    - GetFieldAsString
    linkageType: ''
    returnType: bool
    signature: bool GMLASWriter::CollectRelationships()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1162,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1165,1
    - Dst: LayerDescription::aoReferencingLayers::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1167,1
    - Dst: LayerDescription::aoReferencingLayers::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1169,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1174,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1174,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1176,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1181,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1183,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1191,1
    - Dst: GMLASField::GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1194,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1198,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1202,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1202,1
    - Dst: GMLASField::GetJunctionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1203,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1204,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1213,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1215,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1218,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1218,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1219,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1220,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1221,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1224,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1224,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1226,1
    - Dst: GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1231,1
    - Dst: LayerDescription::aoSetReferencedFIDs::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1232,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1234,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1239
    functionName: GMLAS::GMLASWriter::ComputeTopLevelFIDs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - LayerDescription::osPKIDName::c_str
    - CPLDebug
    - LayerDescription::aoReferencingLayers::empty
    - GMLASField::GetName
    - CPLString::empty
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - LayerDescription::aoReferencingLayers::size
    - find
    - CPLString::c_str
    - GMLASField::GetJunctionLayer
    - second::c_str
    - OGRLayer*::GetFIDColumn
    - GetFieldAsInteger64
    - LayerDescription::osName::c_str
    - CPLString::Printf
    - ReleaseResultSet
    - first::c_str
    - ExecuteSQL
    - size
    - GMLASField::GetCategory
    - LayerDescription::aoSetReferencedFIDs::insert
    - EQUAL
    linkageType: ''
    returnType: void
    signature: void GMLASWriter::ComputeTopLevelFIDs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1262,1
    - Dst: XPathComponents::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1263,1
    - Dst: PairNSElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1263,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1264,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1264,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1271,1
    - Dst: XPathComponents::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1272,1
    - Dst: PairNSElement
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1272,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1273,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1273,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1275,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1279
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1279
    functionName: GMLAS::SplitXPathInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - PairNSElement
    - XPathComponents::push_back
    - CPLString
    - CPLString::resize
    linkageType: ''
    returnType: XPathComponents
    signature: XPathComponents SplitXPathInternal(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1283,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1284,1
    - Dst: SplitXPathInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1289
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1289
    functionName: '&GMLASWriter::SplitXPath(const CPLString &osXPath)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - SplitXPathInternal
    linkageType: ''
    returnType: XPathComponents
    signature: XPathComponents &GMLASWriter::SplitXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PairNSElement::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - PairNSElement
    constantsTouched: []
    func_position:
      end: 1298
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1298
    functionName: GMLAS::IsAttr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - PairNSElement::second::empty
    linkageType: ''
    returnType: bool
    signature: bool IsAttr(const PairNSElement &pair)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PairNSElement::first::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1306,1
    - Dst: GMLAS::IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1308,1
    - Dst: PairNSElement::second::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1309,1
    - Dst: GMLAS::IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1313,1
    - Dst: PairNSElement::second::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pair
    argTypes:
    - PairNSElement
    constantsTouched: []
    func_position:
      end: 1317
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1317
    functionName: GMLAS::MakeXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - PairNSElement::first::empty
    - PairNSElement::second::substr
    - GMLAS::IsAttr
    linkageType: ''
    returnType: CPLString
    signature: CPLString MakeXPath(const PairNSElement &pair)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1329,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1333,1
    - Dst: GMLAS::GMLASWriter::IncIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1334,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1336,1
    - Dst: LayerDescription::aoSetReferencedFIDs::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1340,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1340,1
    - Dst: LayerDescription::aoSetReferencedFIDs::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1341,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1343,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1343,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1346,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1346,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1350,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1350,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1351,1
    - Dst: GMLAS::GMLASWriter::WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1354,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1354,1
    - Dst: XPathComponents
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1355,1
    - Dst: XPathComponents
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1355,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1357,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1357,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1360,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1360,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1364,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1364,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1365,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1373,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1382,1
    - Dst: GMLAS::GMLASWriter::DecIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 6
    argNames:
    - bWFS2FeatureCollection
    - oDesc
    - nFeaturesWritten
    - nTotalTopLevelFeatures
    - pfnProgress
    - pProgressData
    argTypes:
    - bool
    - LayerDescription
    - GIntBig
    - GIntBig
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1386
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1386
    functionName: GMLAS::GMLASWriter::WriteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - GMLAS::GMLASWriter::GetLayerByName
    - GetFID
    - c_str
    - XPathComponents
    - LayerDescription::aoSetReferencedFIDs::end
    - GMLAS::GMLASWriter::WriteFeature
    - std::set::insert
    - get
    - GMLAS::GMLASWriter::PrintLine
    - pfnProgress
    - GMLAS::GMLASWriter::IncIndent
    - GMLAS::GMLASWriter::DecIndent
    - OGRLayer*::ResetReading
    - GMLAS::GMLASWriter::PrintIndent
    - LayerDescription::aoSetReferencedFIDs::find
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteLayer(bool bWFS2FeatureCollection,\n                             const
      LayerDescription &oDesc,\n                             GIntBig &nFeaturesWritten,\n
      \                            GIntBig nTotalTopLevelFeatures,\n                             GDALProgressFunc
      pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1396,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - XPathComponents
    - XPathComponents
    constantsTouched: []
    func_position:
      end: 1402
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1402
    functionName: GMLAS::FindCommonPrefixLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - XPathComponents::size
    linkageType: ''
    returnType: size_t
    signature: "size_t FindCommonPrefixLength(const XPathComponents &a,\n                                     const
      XPathComponents &b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1414,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1421,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1421,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1423,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1424,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1425,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1425,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1449,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1452,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1452,1
    - Dst: GMLAS::GMLASWriter::DecIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1459,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1459,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1460,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1464,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1465,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1468,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1468,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1480,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1480,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1483,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1483,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1484,1
    - Dst: GMLAS::GMLASWriter::DecIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1485,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 5
    argNames:
    - nCommonLength
    - aoCurComponents
    - aoNewComponents
    - bCurIsRegularField
    - bNewIsRegularField
    argTypes:
    - size_t
    - XPathComponents
    - XPathComponents
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1491
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1491
    functionName: GMLAS::GMLASWriter::WriteClosingTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - get
    - GMLAS::GMLASWriter::PrintLine
    - MakeXPath
    - XPathComponents::size
    - CPLAssert
    - GMLAS::GMLASWriter::DecIndent
    - GMLAS::GMLASWriter::PrintIndent
    - XPathComponents::back
    - IsAttr
    linkageType: ''
    returnType: void
    signature: "void GMLASWriter::WriteClosingTags(size_t nCommonLength,\n                                   const
      XPathComponents &aoCurComponents,\n                                   const
      XPathComponents &aoNewComponents,\n                                   bool bCurIsRegularField,\n
      \                                  bool bNewIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLAS::GMLASWriter::WriteClosingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1505,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1507,1
    - Dst: GMLAS::GMLASWriter::IncIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1509,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1510,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1510,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1511,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1511,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aoCurComponents
    - aoNewComponents
    - bCurIsRegularField
    argTypes:
    - XPathComponents
    - XPathComponents
    - bool
    constantsTouched: []
    func_position:
      end: 1513
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1513
    functionName: GMLAS::GMLASWriter::WriteClosingAndStartingTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - GMLAS::GMLASWriter::WriteClosingTags
    - get
    - GMLAS::GMLASWriter::PrintLine
    - MakeXPath
    - XPathComponents::size
    - GMLAS::GMLASWriter::IncIndent
    - GMLAS::GMLASWriter::PrintIndent
    linkageType: ''
    returnType: void
    signature: "void GMLASWriter::WriteClosingAndStartingTags(\n    const XPathComponents
      &aoCurComponents,\n    const XPathComponents &aoNewComponents, bool bCurIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1528,1
    - Dst: GMLASField::GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1540,1
    - Dst: GMLAS::GMLASWriter::WriteFieldRegular
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1543,1
    - Dst: GMLAS::GMLASWriter::WriteFieldNoLink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1552,1
    - Dst: GMLAS::GMLASWriter::WriteFieldWithLink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1562,1
    - Dst: GMLAS::GMLASWriter::WriteFieldJunctionTable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1573,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1583,1
    - Dst: LayerDescription::osXPath::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1584,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1586,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1587,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1587,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1588,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1588,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1589,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1589,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1589,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1590,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1590,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1590,1
    - Dst: GMLAS::GMLASWriter::WriteClosingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1596,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 6
    argNames:
    - poFeature
    - oLayerDesc
    - oSetLayersInIteration
    - aoInitialComponents
    - aoPrefixComponents
    - nRecLevel
    argTypes:
    - OGRFeature*
    - LayerDescription
    - std::set<CPLString>
    - XPathComponents
    - XPathComponents
    - int
    constantsTouched: []
    func_position:
      end: 1601
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1601
    functionName: GMLAS::GMLASWriter::WriteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - GMLASField::GetCategory
    - GMLAS::GMLASWriter::WriteFieldJunctionTable
    - GMLAS::GMLASWriter::WriteFieldWithLink
    - GMLAS::GMLASWriter::WriteFieldRegular
    - VSIFPrintfL
    - c_str
    - GMLAS::GMLASWriter::WriteClosingTags
    - SplitXPath
    - XPathComponents::empty
    - MakeXPath
    - get
    - GMLAS::GMLASWriter::PrintLine
    - CPLString::c_str
    - LayerDescription::osXPath::empty
    - CPLError
    - GMLAS::GMLASWriter::WriteFieldNoLink
    - GMLAS::GMLASWriter::PrintIndent
    - XPathComponents::back
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteFeature(OGRFeature *poFeature,\n                               const
      LayerDescription &oLayerDesc,\n                               const std::set<CPLString>
      &oSetLayersInIteration,\n                               const XPathComponents
      &aoInitialComponents,\n                               const XPathComponents
      &aoPrefixComponents,\n                               int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASField::IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1610,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1612,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1612,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1616,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1616,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1617,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1617,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1618,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1618,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1619,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1619,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1620,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - oField
    - aoFieldComponents
    argTypes:
    - GMLASField
    - XPathComponents
    constantsTouched: []
    func_position:
      end: 1622
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1622
    functionName: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - GMLASField::IsList
    - get
    - MakeXPath
    - GMLAS::GMLASWriter::PrintLine
    - GMLAS::GMLASWriter::PrintIndent
    - XPathComponents::back
    linkageType: ''
    returnType: void
    signature: "void GMLASWriter::PrintMultipleValuesSeparator(\n    const GMLASField
      &oField, const XPathComponents &aoFieldComponents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1630,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1633,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1635,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1637,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1638,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - dfVal
    argTypes:
    - VSILFILE*
    - double
    constantsTouched: []
    func_position:
      end: 1641
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1641
    functionName: GMLAS::PrintXMLDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - std::isinf
    - VSIFPrintfL
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void PrintXMLDouble(VSILFILE *fp, double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1650,1
    - Dst: OGRGeometry*::swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1652,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1653,1
    - Dst: OGRGeometry*::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poGeomRef
    - poGeomModifiable
    argTypes:
    - OGRGeometry*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1654
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1654
    functionName: GMLAS::AreGeomsEqualAxisOrderInsensitive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::swapXY
    - CPL_TO_BOOL
    - OGRGeometry*::Equals
    linkageType: ''
    returnType: bool
    signature: "bool AreGeomsEqualAxisOrderInsensitive(const OGRGeometry *poGeomRef,\n
      \                                             OGRGeometry *poGeomModifiable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1662,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1663,1
    - Dst: OGRSpatialReference*::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1669,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1677
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1677
    functionName: GMLAS::GMLASWriter::GetCoordSwap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::size
    - OGRSpatialReference*::GetDataAxisToSRSAxisMapping
    linkageType: ''
    returnType: bool
    signature: bool GMLASWriter::GetCoordSwap(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1700,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1700,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1701,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1701,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1702,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1703,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1706,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1706,1
    - Dst: XPathComponents::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1708,1
    - Dst: GMLASField::GetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1722,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1723,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1724,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1724,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1725,1
    - Dst: LayerDescription::oMapFieldXPathToIdx::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1726,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1726,1
    - Dst: LayerDescription::oMapFieldXPathToIdx::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1728,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1733,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1741,1
    - Dst: GMLASField::GetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1741,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1742,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1742,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1747,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1749,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1757,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1766,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1767,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1767,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1768,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1771,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1771,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1772,1
    - Dst: GMLAS::GMLASWriter::WriteClosingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1779,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1787,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1789,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1789,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1793,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1793,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1794,1
    - Dst: GMLAS::GMLASWriter::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1801,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1801,1
    - Dst: GMLAS::GMLASWriter::IncIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1802,1
    - Dst: GMLAS::GMLASWriter::PrintIndent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1803,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1803,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1805,1
    - Dst: IsAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1806,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1810,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1810,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1811,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1818,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1818,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1819,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1823,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1823,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1824,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1832,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1832,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1834,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1837,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1837,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1839,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1848,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1850,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1851,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1852,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1852,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1856,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1862,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1869,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1871,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1874,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1874,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1877,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1884,1
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1885,1
    - Dst: OGRGeometryCollection::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1887,1
    - Dst: AreGeomsEqualAxisOrderInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1889,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1896,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1898,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1898,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1907,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1908,1
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1908,1
    - Dst: AreGeomsEqualAxisOrderInsensitive
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1912,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1913,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1915,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1915,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1929,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1929,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1934,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1934,1
    - Dst: MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1939,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1939,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1951,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1958,1
    - Dst: GMLAS::GMLASWriter::GetCoordSwap
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1959,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1961,1
    - Dst: GMLASField::GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1965,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1966,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1966,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1968,1
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1969,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1974,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1975,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1977,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1980,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1985,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1985,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1986,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1994,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1995,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:1997,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2003,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2009,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2009,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2012,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2016,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2022,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2023,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2026,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2029,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2035,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2035,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2036,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2041,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2041,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2044,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2046,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2049,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2051,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2054,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2057,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2057,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2057,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2058,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2063,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2063,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2063,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2069,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2070,1
    - Dst: GMLASField::GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2074,1
    - Dst: GMLASField::IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2074,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2083,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2085,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2085,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2091,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2091,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2092,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2109,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2111,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2111,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2115,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2120,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2120,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2122,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2126,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2128,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2129,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2130,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2141,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2143,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2143,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2148,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2150,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2151,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2152,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2163,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2165,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2165,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2169,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2171,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2172,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2173,1
    - Dst: GMLASField::GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2180,1
    - Dst: GMLASField::IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2180,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2194,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2196,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2196,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2197,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2208,1
    - Dst: PrintXMLDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2210,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2210,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2221,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2223,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2223,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2230,1
    - Dst: GMLAS::GMLASWriter::PrintMultipleValuesSeparator
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2235,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2237,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2237,1
    - Dst: PrintXMLDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2244,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2244,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2245,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2249,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2250,1
    - Dst: XMLEscape
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2251,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2251,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2260,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2260,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2262,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 261
    argCount: 7
    argNames:
    - poFeature
    - oField
    - oLayerDesc
    - aoCurComponents
    - aoPrefixComponents
    - bAtLeastOneFieldWritten
    - bCurIsRegularField
    argTypes:
    - OGRFeature*
    - GMLASField
    - LayerDescription
    - XPathComponents
    - XPathComponents
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2266
      start: 1683
    functionDepth: 3
    functionLinenumber: 1683
    functionLinenumberEnd: 2266
    functionName: GMLAS::GMLASWriter::WriteFieldRegular
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::getSpatialReference
    - std::unique_ptr<OGRGeometry>
    - GMLASField::IsList
    - OGRFeature*::GetFieldAsString
    - XPathComponents::empty
    - auto::get
    - XPathComponents::insert
    - XMLEscape
    - CPLError
    - GMLASField::GetName
    - STARTS_WITH
    - GMLASField::GetType
    - GMLASField::GetMinOccurs
    - OGRGeometryCollection::addGeometryDirectly
    - OGRFeature*::GetFieldAsInteger
    - SplitXPath
    - OGRGeometryCollection*::getNumGeometries
    - XPathComponents::end
    - OGRFeature*::GetFieldAsDouble
    - CPLString::c_str
    - XPathComponents::size
    - std::move
    - GMLAS::GMLASWriter::IncIndent
    - OGR_G_CreateFromGML
    - strlen
    - wkbFlatten
    - XPathComponents::back
    - OGRJSonParse
    - OGRGeometry*::getGeometryType
    - LayerDescription::oMapFieldXPathToIdx::find
    - VSIFPrintfL
    - FromHandle
    - GMLASField::GetXPath
    - OGRGeometry*::toGeometryCollection
    - OGRFeature*::GetGeomFieldRef
    - CPLDestroyXMLNode
    - get
    - json_object_get_type
    - XPathComponents::begin
    - CPLSPrintf
    - OGRFeature*::GetFieldAsBinary
    - CPLParseXMLString
    - json_object_get_string
    - GMLAS::GMLASWriter::GetCoordSwap
    - GMLAS::GMLASWriter::PrintIndent
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - XPathComponents::pop_back
    - AreGeomsEqualAxisOrderInsensitive
    - GMLASField::GetTypeName
    - empty
    - GMLAS::GMLASWriter::WriteClosingTags
    - OGRGeometryCollection::OGRGeometryCollection
    - GMLASField::GetMaxOccurs
    - LayerDescription::oMapFieldXPathToIdx::end
    - MakeXPath
    - GMLAS::GMLASWriter::PrintLine
    - json_object_put
    - CSLDestroy
    - GMLAS::GMLASWriter::PrintMultipleValuesSeparator
    - PrintXMLDouble
    - VSIFree
    - CSLSetNameValue
    - IsAttr
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteFieldRegular(\n    OGRFeature *poFeature, const
      GMLASField &oField,\n    const LayerDescription &oLayerDesc,\n    /*XPathComponents&
      aoLayerComponents,*/\n    XPathComponents &aoCurComponents, const XPathComponents
      &aoPrefixComponents,\n    /*const std::set<CPLString>& oSetLayersInIteration,*/\n
      \   bool &bAtLeastOneFieldWritten, bool &bCurIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2279,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2279,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2280,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2284,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2285,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2286,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2291,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2296,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2297,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2297,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2301,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2303,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2304,1
    - Dst: LayerDescription::GetOGRIdxFromFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2309,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2311,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2313,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2313,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2316,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2318,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2321,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2321,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2322,1
    - Dst: LayerDescription::osParentPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2325,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2327,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2328,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2330,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2331,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2333,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2338,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2340,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2342,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2343,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2343,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2344,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2345,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2348,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2348,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2349,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2349,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2350,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2351,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2353,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2354,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2355,1
    - Dst: LayerDescription::osParentPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2355,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2356,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2357,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2360,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2360,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2364,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2364,1
    - Dst: GMLASField::GetRepetitionOnSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2365,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2377,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2379,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2379,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2392,1
    - Dst: XPathComponents::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2393,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2408,1
    - Dst: GMLAS::GMLASWriter::WriteClosingAndStartingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2411,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2428,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2428,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2430,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 10
    argNames:
    - poFeature
    - oField
    - oLayerDesc
    - aoLayerComponents
    - aoCurComponents
    - aoPrefixComponents
    - oSetLayersInIteration
    - nRecLevel
    - bAtLeastOneFieldWritten
    - bCurIsRegularField
    argTypes:
    - OGRFeature*
    - GMLASField
    - LayerDescription
    - XPathComponents
    - XPathComponents
    - XPathComponents
    - std::set<CPLString>
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2433
      start: 2272
    functionDepth: 3
    functionLinenumber: 2272
    functionLinenumberEnd: 2433
    functionName: GMLAS::GMLASWriter::WriteFieldNoLink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - LayerDescription::osPKIDName::c_str
    - LayerDescription::osPKIDName::empty
    - std::set::insert
    - XPathComponents::empty
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - XPathComponents::insert
    - OGRLayer*::GetNextFeature
    - OGRLayer*::SetAttributeFilter
    - CPLError
    - std::set<CPLString>::end
    - LayerDescription::osParentPKIDName::c_str
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - find
    - SplitXPath
    - XPathComponents::end
    - CPLString::c_str
    - XPathComponents::size
    - std::move
    - LayerDescription::osParentPKIDName::empty
    - GMLASField::GetRepetitionOnSequence
    - LayerDescription::osName::c_str
    - GMLASField::GetXPath
    - GMLASField::GetRelatedClassXPath
    - OGRFeature*::GetFID
    - XPathComponents::begin
    - CPLSPrintf
    - OGRLayer*::ResetReading
    - XPathComponents::pop_back
    - std::set<CPLString>::find
    - std::unique_ptr<OGRFeature>
    - LayerDescription::GetOGRIdxFromFieldName
    - GMLAS::GMLASWriter::WriteClosingAndStartingTags
    - auto::reset
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteFieldNoLink(\n    OGRFeature *poFeature, const
      GMLASField &oField,\n    const LayerDescription &oLayerDesc, XPathComponents
      &aoLayerComponents,\n    XPathComponents &aoCurComponents, const XPathComponents
      &aoPrefixComponents,\n    const std::set<CPLString> &oSetLayersInIteration,
      int nRecLevel,\n    bool &bAtLeastOneFieldWritten, bool &bCurIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2443,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2443,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2444,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2446,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2447,1
    - Dst: GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2453,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2455,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2455,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2456,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2456,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2459,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2459,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2460,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2461,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2465,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - poSrcLayer
    - osFilter
    - oSetLayersInIteration
    argTypes:
    - OGRLayer*
    - CPLString
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 2468
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2468
    functionName: GMLAS::GMLASWriter::GetFilteredLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - std::set<CPLString>::find
    - OGRLayer*::GetName
    - CPLString::Printf
    - CPLDebug
    - EQUAL
    - CPLString::c_str
    - OGRLayer*::SetAttributeFilter
    - GetDriver
    - ExecuteSQL
    - GDALDriver*::GetDescription
    - OGRLayer*::ResetReading
    - std::set<CPLString>::end
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nGMLASWriter::GetFilteredLayer(OGRLayer *poSrcLayer, const
      CPLString &osFilter,\n                              const std::set<CPLString>
      &oSetLayersInIteration)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2478,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poSrcLayer
    - poIterLayer
    argTypes:
    - OGRLayer*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 2481
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2481
    functionName: GMLAS::GMLASWriter::ReleaseFilteredLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - ReleaseResultSet
    - OGRLayer*::ResetReading
    linkageType: ''
    returnType: void
    signature: "void GMLASWriter::ReleaseFilteredLayer(OGRLayer *poSrcLayer,\n                                       OGRLayer
      *poIterLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2494,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2494,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2495,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2499,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2500,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2501,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2506,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2511,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2512,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2512,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2517,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2517,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2518,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2518,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2519,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2520,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2524,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2525,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2525,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2528,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2535,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2536,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2541,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2542,1
    - Dst: XPathComponents::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2545,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2548,1
    - Dst: LayerDescription::osXPath::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2551,1
    - Dst: XPathComponents::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2552,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2552,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2555,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2559,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2560,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2561,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2561,1
    - Dst: GMLAS::GMLASWriter::GetFilteredLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2563,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2570,1
    - Dst: XPathComponents::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2573,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2575,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2577,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2578,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2578,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2579,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2580,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2584,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2584,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2589,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2590,1
    - Dst: XPathComponents::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2591,1
    - Dst: GMLAS::GMLASWriter::WriteClosingAndStartingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2592,1
    - Dst: GMLAS::GMLASWriter::WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2599,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2599,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2604,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2604,1
    - Dst: GMLAS::GMLASWriter::ReleaseFilteredLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2606,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2611,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 10
    argNames:
    - poFeature
    - oField
    - oLayerDesc
    - aoLayerComponents
    - aoCurComponents
    - aoPrefixComponents
    - oSetLayersInIteration
    - nRecLevel
    - bAtLeastOneFieldWritten
    - bCurIsRegularField
    argTypes:
    - OGRFeature*
    - GMLASField
    - LayerDescription
    - XPathComponents
    - XPathComponents
    - XPathComponents
    - std::set<CPLString>
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2616
      start: 2487
    functionDepth: 3
    functionLinenumber: 2487
    functionLinenumberEnd: 2616
    functionName: GMLAS::GMLASWriter::WriteFieldWithLink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - LayerDescription::osPKIDName::c_str
    - LayerDescription::osPKIDName::empty
    - OGRFeature*::GetFieldAsString
    - std::set::insert
    - XPathComponents::empty
    - CPLDebug
    - XPathComponents::insert
    - OGRLayer*::GetNextFeature
    - auto::get
    - CPLError
    - GMLASField::GetName
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - find
    - SplitXPath
    - XPathComponents::end
    - GMLAS::GMLASWriter::ReleaseFilteredLayer
    - CPLString::c_str
    - XPathComponents::size
    - std::move
    - XPathComponents::back
    - LayerDescription::osName::c_str
    - GMLASField::GetXPath
    - GMLASField::GetRelatedClassXPath
    - GMLAS::GMLASWriter::WriteFeature
    - XPathComponents::begin
    - CPLSPrintf
    - LayerDescription::osXPath::empty
    - XPathComponents::pop_back
    - std::unique_ptr<OGRFeature>
    - GMLAS::GMLASWriter::GetFilteredLayer
    - GMLAS::GMLASWriter::WriteClosingAndStartingTags
    - auto::reset
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteFieldWithLink(\n    OGRFeature *poFeature,
      const GMLASField &oField,\n    const LayerDescription &oLayerDesc, XPathComponents
      &aoLayerComponents,\n    XPathComponents &aoCurComponents, const XPathComponents
      &aoPrefixComponents,\n    const std::set<CPLString> &oSetLayersInIteration,
      int nRecLevel,\n    bool &bAtLeastOneFieldWritten, bool &bCurIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2630,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2630,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2631,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2635,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2636,1
    - Dst: GMLASField::GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2637,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2642,1
    - Dst: GMLAS::GMLASWriter::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2643,1
    - Dst: GMLASField::GetJunctionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2643,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2648,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2649,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2649,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2656,1
    - Dst: GMLASField::GetJunctionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2657,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2664,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2665,1
    - Dst: LayerDescription::GetOGRIdxFromFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2669,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2671,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2672,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2673,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2676,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2678,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2681,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2681,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2682,1
    - Dst: LayerDescription::osPKIDName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2685,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2687,1
    - Dst: LayerDescription::osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2688,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2691,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2692,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2700,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2702,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2702,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2703,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2704,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2708,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2709,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2711,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2716,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2719,1
    - Dst: LayerDescription::osPKIDName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2719,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2720,1
    - Dst: GMLAS::GMLASWriter::GetFilteredLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2722,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2729,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2729,1
    - Dst: SplitXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2736,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2736,1
    - Dst: XPathComponents::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2737,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2737,1
    - Dst: XPathComponents::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2738,1
    - Dst: XPathComponents::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2739,1
    - Dst: XPathComponents::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2741,1
    - Dst: XPathComponents::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2742,1
    - Dst: GMLAS::GMLASWriter::WriteClosingAndStartingTags
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2743,1
    - Dst: GMLAS::GMLASWriter::WriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2747,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2747,1
    - Dst: XPathComponents
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2748,1
    - Dst: XPathComponents
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2749,1
    - Dst: GMLAS::GMLASWriter::ReleaseFilteredLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2751,1
    - Dst: GMLAS::GMLASWriter::ReleaseFilteredLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2755,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2762,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 9
    argNames:
    - poFeature
    - oField
    - oLayerDesc
    - aoCurComponents
    - aoPrefixComponents
    - oSetLayersInIteration
    - nRecLevel
    - bAtLeastOneFieldWritten
    - bCurIsRegularField
    argTypes:
    - OGRFeature*
    - GMLASField
    - LayerDescription
    - XPathComponents
    - XPathComponents
    - std::set<CPLString>
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2767
      start: 2622
    functionDepth: 3
    functionLinenumber: 2622
    functionLinenumberEnd: 2767
    functionName: GMLAS::GMLASWriter::WriteFieldJunctionTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - LayerDescription::osPKIDName::c_str
    - std::vector::size
    - LayerDescription::osPKIDName::empty
    - std::set::insert
    - OGRFeature*::GetFieldAsString
    - OGRLayer*::GetNextFeature
    - CPLDebug
    - XPathComponents::insert
    - XPathComponents::empty
    - auto::get
    - OGRLayer*::SetAttributeFilter
    - CPLError
    - std::set<CPLString>::end
    - std::vector::push_back
    - GMLAS::GMLASWriter::GetLayerByName
    - end
    - find
    - SplitXPath
    - XPathComponents::end
    - GMLAS::GMLASWriter::ReleaseFilteredLayer
    - std::move
    - GMLASField::GetJunctionLayer
    - GetFieldAsString
    - c_str
    - LayerDescription::osName::c_str
    - GMLASField::GetXPath
    - GMLASField::GetRelatedClassXPath
    - OGRFeature*::GetFID
    - CPLString::Printf
    - GMLAS::GMLASWriter::WriteFeature
    - XPathComponents::begin
    - CPLSPrintf
    - OGRLayer*::ResetReading
    - XPathComponents::pop_back
    - std::set<CPLString>::find
    - std::unique_ptr<OGRFeature>
    - XPathComponents
    - GMLAS::GMLASWriter::GetFilteredLayer
    - LayerDescription::GetOGRIdxFromFieldName
    - GMLAS::GMLASWriter::WriteClosingAndStartingTags
    linkageType: ''
    returnType: bool
    signature: "bool GMLASWriter::WriteFieldJunctionTable(\n    OGRFeature *poFeature,
      const GMLASField &oField,\n    const LayerDescription &oLayerDesc,\n    XPathComponents
      & /*aoLayerComponents */, XPathComponents &aoCurComponents,\n    const XPathComponents
      &aoPrefixComponents,\n    const std::set<CPLString> &oSetLayersInIteration,
      int nRecLevel,\n    bool &bAtLeastOneFieldWritten, bool &bCurIsRegularField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2777,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2777,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 2779
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2779
    functionName: GMLAS::GMLASWriter::PrintIndent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 6
    functionsReached:
    - size
    - c_str
    - VSIFWriteL
    linkageType: ''
    returnType: void
    signature: void GMLASWriter::PrintIndent(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2790,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2791,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2792,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2794,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2794,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2794,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2795,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2795,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fp
    - fmt
    argTypes:
    - VSILFILE*
    - char*
    constantsTouched: []
    func_position:
      end: 2796
      start: 2785
    functionDepth: 1
    functionLinenumber: 2785
    functionLinenumberEnd: 2796
    functionName: GMLAS::GMLASWriter::PrintLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 9
    functionsReached:
    - size
    - c_str
    - va_start
    - va_end
    - CPLString::c_str
    - CPLString::size
    - VSIFWriteL
    - CPLString::vPrintf
    linkageType: ''
    returnType: void
    signature: void GMLASWriter::PrintLine(VSILFILE *fp, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2807
    functionDepth: 0
    functionLinenumber: 2807
    functionLinenumberEnd: 2807
    functionName: GMLASFakeDataset::GMLASFakeDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASFakeDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2811
    functionDepth: 0
    functionLinenumber: 2811
    functionLinenumberEnd: 2811
    functionName: GMLASFakeDataset::~GMLASFakeDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASFakeDataset::~GMLASFakeDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2823,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2823,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2825,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2830,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2831,1
    - Dst: GMLAS::GMLASWriter::Write
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2834,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2837,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2840,1
    - Dst: GMLASFakeDataset::GMLASFakeDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2842,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2847,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2847,1
    - Dst: std::make_unique<OGRGMLASDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2848,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2849,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2851,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp:2853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2855
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2855
    functionName: OGRGMLASDriverCreateCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaswriter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRGMLASDataSource>
    - STARTS_WITH_CI
    - c_str
    - auto::release
    - GMLAS::GMLASWriter::Write
    - CPLFetchBool
    - auto::Open
    - auto::reset
    - strcmp
    - strlen
    - CPLString
    - GMLASFakeDataset::GMLASFakeDataset
    - CPLError
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGMLASDriverCreateCopy(const char *pszFilename,\n                                      GDALDataset
      *poSrcDS, int /*bStrict*/,\n                                      char **papszOptions,\n
      \                                     GDALProgressFunc pfnProgress,\n                                      void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:27,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: GMLASXLinkResolver::GMLASXLinkResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - atoi
    linkageType: ''
    returnType: void
    signature: void GMLASXLinkResolver::GMLASXLinkResolver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCacheDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - oConf
    argTypes:
    - GMLASXLinkResolutionConf
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: GMLASXLinkResolver::SetConf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - SetCacheDirectory
    linkageType: ''
    returnType: void
    signature: void GMLASXLinkResolver::SetConf(const GMLASXLinkResolutionConf &oConf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:52,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:55,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:74,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:75,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:80,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:81,1
    - Dst: m_osProxyServerPort::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:83,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:86,1
    - Dst: m_osProxyUserPassword::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:88,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:90,1
    - Dst: m_osProxyAuth::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:93,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:96,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:100,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:102,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:103,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:104,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:105,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:106,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:108,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:112,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:113,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:117,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:117,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:119,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - osURL
    - pszHeaders
    argTypes:
    - CPLString
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 121
    functionName: GMLASXLinkResolver::FetchRawContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - m_osProxyServerPort::empty
    - CPLHTTPDestroyResult
    - static_cast<int>
    - reinterpret_cast<char *>
    - CPLHTTPFetch
    - CPLString::assign
    - CSLDestroy
    - CPLSPrintf
    - m_osProxyUserPassword::empty
    - time
    - CPLString
    - m_osProxyAuth::empty
    - CPLError
    - CSLSetNameValue
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GMLASXLinkResolver::FetchRawContent(const CPLString &osURL,\n
      \                                             const char *pszHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:133,1
    - Dst: RecursivelyCreateDirectoryIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:133,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:139,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:140,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:142,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:146,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:146,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:150,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:152,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:152,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:153,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:155,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:156,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:162,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:162,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:166,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:169,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:170,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:176,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:177,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:183,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:187,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:192,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:194,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:198,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:198,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:201,1
    - Dst: rbegin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:204,1
    - Dst: std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::front
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:207,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:208,1
    - Dst: std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:209,1
    - Dst: std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:209,1
    - Dst: std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:210,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:211,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:214,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:214,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:215,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 4
    argNames:
    - osURL
    - pszHeaders
    - bAllowRemoteDownload
    - bCacheResults
    argTypes:
    - CPLString
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 218
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 218
    functionName: GMLASXLinkResolver::GetRawContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::erase
    - CPLDebug
    - RecursivelyCreateDirectoryIfNeeded
    - CPLString
    - CPLString::empty
    - end
    - insert
    - find
    - CPLString::c_str
    - CPLString::size
    - std::move
    - std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::front
    - std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::empty
    - VSIRename
    - reinterpret_cast<const char *>
    - rbegin
    - VSIFOpenL
    - VSIIngestFile
    - static_cast<size_t>
    - erase
    - empty
    - CPLString::assign
    - VSIFCloseL
    - VSIFree
    - push_back
    - std::map<size_t, std::vector<CPLString>>::reverse_iterator::second::begin
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GMLASXLinkResolver::GetRawContent(const CPLString &osURL,\n
      \                                           const char *pszHeaders,\n                                            bool
      bAllowRemoteDownload,\n                                            bool bCacheResults)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: GMLASXLinkResolver::IsRawContentResolutionEnabled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GMLASXLinkResolver::IsRawContentResolutionEnabled() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_aoURLSpecificRules::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:237,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:239,1
    - Dst: m_osURLPrefix::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:240,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: GMLASXLinkResolver::GetMatchingResolutionRule
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - m_osURLPrefix::size
    - CPLString::compare
    - static_cast<int>
    - m_aoURLSpecificRules::size
    linkageType: ''
    returnType: int
    signature: int GMLASXLinkResolver::GetMatchingResolutionRule(const CPLString &osURL)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASXLinkResolver::GetRawContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: GMLASXLinkResolver::GetRawContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 1
    functionsReached:
    - GMLASXLinkResolver::GetRawContent
    linkageType: ''
    returnType: CPLString
    signature: CPLString GMLASXLinkResolver::GetRawContent(const CPLString &osURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_aosNameValueHTTPHeaders::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:272,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:274,1
    - Dst: GMLASXLinkResolver::GetRawContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:280,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:280,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - osURL
    - nIdxRule
    argTypes:
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 282
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 282
    functionName: GMLASXLinkResolver::GetRawContentForRule
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxlinkresolver.cpp
    functionUses: 0
    functionsReached:
    - m_aosNameValueHTTPHeaders::size
    - GMLASXLinkResolver::GetRawContent
    - CPLString::empty
    - CPLString::c_str
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GMLASXLinkResolver::GetRawContentForRule(const CPLString
      &osURL,\n                                                   int nIdxRule)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRInitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: OGRGMLASDataSource::XercesInitializer::XercesInitializer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRInitializeXerces
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::XercesInitializer::XercesInitializer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDeinitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: OGRGMLASDataSource::XercesInitializer::~XercesInitializer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRDeinitializeXerces
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::XercesInitializer::~XercesInitializer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:45,1
    - Dst: std::make_unique<OGRMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:47,1
    - Dst: std::make_unique<OGRMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:49,1
    - Dst: std::make_unique<OGRMemLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:52,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:57,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:61,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:65,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:69,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:73,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:77,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:78,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:82,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:86,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:90,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:91,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:95,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:99,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:103,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:107,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:111,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:115,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:121,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:125,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:129,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:133,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:137,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:141,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:147,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:151,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:155,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:159,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:163,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:169,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 175
    functionName: OGRGMLASDataSource::OGRGMLASDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRMemLayer>
    - CreateField
    - OGRFieldDefn::SetSubType
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::OGRGMLASDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:185,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: OGRGMLASDataSource::~OGRGMLASDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIUnlink
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::~OGRGMLASDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:195,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:195,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: OGRGMLASDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int OGRGMLASDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASDataSource::RunFirstPassIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:208,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:210,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:210,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: OGRGMLASDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRGMLASDataSource::RunFirstPassIfNeeded
    - static_cast<int>
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGMLASDataSource::GetLayer(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:225,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:229,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:229,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:230,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:230,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:233,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:233,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:235,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:235,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:236,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:237,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:239,1
    - Dst: OGRGMLASDataSource::RunFirstPassIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 247
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 247
    functionName: OGRGMLASDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - end
    - OGRLayer*::GetName
    - get
    - OGRGMLASDataSource::RunFirstPassIfNeeded
    - EQUAL
    - begin
    - std::find
    - push_back
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGMLASDataSource::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASFeatureClass::GetNestedClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:256,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:261,1
    - Dst: std::make_unique<OGRGMLASLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:261,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:263,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:265,1
    - Dst: OGRGMLASDataSource::TranslateClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poParentLayer
    - oFC
    argTypes:
    - OGRGMLASLayer*
    - GMLASFeatureClass
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: OGRGMLASDataSource::TranslateClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 1
    functionsReached:
    - back
    - std::vector::size
    - OGRGMLASDataSource::TranslateClasses
    - GMLASFeatureClass::GetNestedClasses
    - emplace_back
    - std::make_unique<OGRGMLASLayer>
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASDataSource::TranslateClasses(OGRGMLASLayer *poParentLayer,\n
      \                                         const GMLASFeatureClass &oFC)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: GMLASTopElementParser::GMLASTopElementParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASTopElementParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: '&GetXSDs() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PairURIFilename>
    signature: std::vector<PairURIFilename> &GetXSDs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: GMLASTopElementParser::GetSWE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetSWE() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: '&GetMapDocNSURIToPrefix() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> &GetMapDocNSURIToPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<SAX2XMLReader>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:318,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:318,1
    - Dst: auto::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:320,1
    - Dst: auto::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:321,1
    - Dst: auto::setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:323,1
    - Dst: auto::setLexicalHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:324,1
    - Dst: auto::setDTDHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:325,1
    - Dst: auto::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:327,1
    - Dst: GMLASErrorHandler::GMLASErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:329,1
    - Dst: auto::setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:330,1
    - Dst: auto::parseFirst
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:337,1
    - Dst: auto::parseNext
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:347,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:348,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:352,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:353,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - osFilename
    - fp
    argTypes:
    - CPLString
    - std::shared_ptr<VSIVirtualHandle>
    constantsTouched: []
    func_position:
      end: 355
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 355
    functionName: GMLASTopElementParser::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::setLexicalHandler
    - auto::setErrorHandler
    - auto::setDTDHandler
    - auto::parseNext
    - XMLReaderFactory::createXMLReader
    - GMLASErrorHandler::GMLASErrorHandler
    - getMessage
    - auto::setContentHandler
    - CPLError
    - auto::parseFirst
    - std::unique_ptr<SAX2XMLReader>
    - auto::setFeature
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLASTopElementParser::Parse(const CPLString &osFilename,\n                                  const
      std::shared_ptr<VSIVirtualHandle> &fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:368,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:370,1
    - Dst: Attributes::getURI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:370,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:371,1
    - Dst: Attributes::getLocalName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:371,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:372,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:372,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:377,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:377,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:380,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:380,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:386,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:387,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:388,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:389,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:389,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:391,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:393,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:394,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:402,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:403,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:404,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:404,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:408,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:411,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:412,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:416,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - Attributes
    constantsTouched: []
    func_position:
      end: 424
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 424
    functionName: GMLASTopElementParser::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - c_str
    - PairURIFilename
    - CPLDebug
    - EQUAL
    - std::string::c_str
    - Attributes::getLength
    - CPLString
    - push_back
    - CSLTokenizeString2
    - Attributes::getLocalName
    - STARTS_WITH
    - Attributes::getURI
    - Attributes::getValue
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLASTopElementParser::startElement(const XMLCh *const /*uri*/,\n
      \                                        const XMLCh *const /*localname*/,\n
      \                                        const XMLCh *const /*qname*/,\n                                         const
      Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:448,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:450,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:452,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:455,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:456,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:456,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:457,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:458,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:464,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:467,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:469,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:471,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:476,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:476,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:478,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:479,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:480,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:484,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:487,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:488,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:488,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:489,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:490,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:492,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:499,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:507,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:508,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:509,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:510,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:515,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:518,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:521,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:524,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:528,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:528,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:529,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:530,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:530,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:535,1
    - Dst: std::vector<PairURIFilename>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:535,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:540,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:547,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:547,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:548,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:548,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:549,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:550,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:555,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:556,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:559,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:560,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:561,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:561,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:562,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:564,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:566,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:566,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:567,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:568,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:571,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:571,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:574,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:575,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:576,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:576,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:577,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:578,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:589,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:589,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:595,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:596,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:597,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:597,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:598,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:599,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:604,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:605,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:606,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:606,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:607,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:608,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:615,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:618,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:619,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:620,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:620,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:629,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:629,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:630,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:630,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:631,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:632,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 84
    argCount: 4
    argNames:
    - poOpenInfo
    - osConfigFile
    - aoXSDs
    - oSetSchemaURLs
    argTypes:
    - GDALOpenInfo*
    - CPLString
    - std::vector<PairURIFilename>
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 637
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 637
    functionName: OGRGMLASDataSource::FillOtherMetadataLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - std::set::insert
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - end
    - reinterpret_cast<char *>
    - std::string::find
    - CPLGetDirnameSafe
    - find
    - CPLIsFilenameRelative
    - CPLString::c_str
    - CreateFeature
    - GetLayerDefn
    - c_str
    - static_cast<int>
    - OGRFeature::SetField
    - CPLSPrintf
    - std::set::find
    - CPL_IGNORE_RET_VAL
    - VSIIngestFile
    - CPLFree
    - CPLFormFilenameSafe
    - empty
    - std::vector<PairURIFilename>::size
    - VSIFree
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASDataSource::FillOtherMetadataLayer(\n    GDALOpenInfo
      *poOpenInfo, const CPLString &osConfigFile,\n    const std::vector<PairURIFilename>
      &aoXSDs,\n    const std::set<CPLString> &oSetSchemaURLs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:651,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:652,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:653,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:655,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:655,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:656,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:661,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:661,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:664,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - osXSDFilenames
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 667
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 667
    functionName: OGRGMLASDataSource::BuildXSDVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - PairURIFilename
    - CSLDestroy
    - CPLIsFilenameRelative
    - std::vector::push_back
    - STARTS_WITH
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::vector<PairURIFilename>
    signature: std::vector<PairURIFilename> OGRGMLASDataSource::BuildXSDVector(const
      CPLString &osXSDFilenames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:675,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:677,1
    - Dst: GMLASConfiguration::GetDefaultConfFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:680,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:682,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:684,1
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:686,1
    - Dst: Load
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:690,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:690,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:692,1
    - Dst: SetCacheDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:698,1
    - Dst: SetRefreshMode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:701,1
    - Dst: SetAllowDownload
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:702,1
    - Dst: SetRefXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:704,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:710,1
    - Dst: SetRefXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:711,1
    - Dst: SetRefXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:715,1
    - Dst: SetRefXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:719,1
    - Dst: GMLASSchemaAnalyzer::SetUseArrays
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:727,1
    - Dst: GMLASSchemaAnalyzer::SetUseNullState
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:728,1
    - Dst: GMLASSchemaAnalyzer::SetInstantiateGMLFeaturesOnly
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:729,1
    - Dst: GMLASSchemaAnalyzer::SetIdentifierMaxLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:731,1
    - Dst: GMLASSchemaAnalyzer::SetCaseInsensitiveIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:732,1
    - Dst: GMLASSchemaAnalyzer::SetPGIdentifierLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:734,1
    - Dst: GMLASSchemaAnalyzer::SetMaximumFieldsForFlattening
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:735,1
    - Dst: GMLASSchemaAnalyzer::SetAlwaysGenerateOGRId
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:737,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:739,1
    - Dst: CPLExpandTildeSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:740,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:741,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:745,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:748,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:750,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:750,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:753,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:754,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:758,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:760,1
    - Dst: GMLASTopElementParser::GMLASTopElementParser
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:767,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:768,1
    - Dst: GMLASTopElementParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:770,1
    - Dst: GMLASTopElementParser::GetSWE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:774,1
    - Dst: GMLASSchemaAnalyzer::SetMapDocNSURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:781,1
    - Dst: GMLASTopElementParser::GetMapDocNSURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:782,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:785,1
    - Dst: GMLASTopElementParser::GetXSDs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:787,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:788,1
    - Dst: GMLASTopElementParser::GetMapDocNSURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:841,1
    - Dst: GMLASTopElementParser::GetMapDocNSURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:848,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:850,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:851,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:853,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:853,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:857,1
    - Dst: PairURIFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:857,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:863,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:865,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:865,1
    - Dst: OGRGMLASDataSource::BuildXSDVector
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:874,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:879,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:880,1
    - Dst: std::shared_ptr::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:882,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:884,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:886,1
    - Dst: std::string::replace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:893,1
    - Dst: CPL_SHA256Init
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:897,1
    - Dst: CPL_SHA256Update
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:898,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:898,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:898,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:901,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:905,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:906,1
    - Dst: CPL_SHA256Update
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:907,1
    - Dst: CPL_SHA256Final
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:912,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:916,1
    - Dst: std::shared_ptr::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:919,1
    - Dst: OGRGMLASDataSource::PushUnusedGMLFilePointer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:920,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:923,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:927,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:934,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:939,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:943,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:955,1
    - Dst: GMLASSchemaAnalyzer::GetMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:958,1
    - Dst: GMLASSchemaAnalyzer::GetGMLVersionFound
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:960,1
    - Dst: GMLASSchemaAnalyzer::GetSchemaURLS
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:962,1
    - Dst: OGRGMLASDataSource::FillOtherMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:964,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:966,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:970,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:970,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:971,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:971,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:972,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:972,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:973,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:973,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:978,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:982,1
    - Dst: GMLASSchemaAnalyzer::GetClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:991,1
    - Dst: GetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:996,1
    - Dst: OGRGMLASDataSource::TranslateClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:997,1
    - Dst: GetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1002,1
    - Dst: OGRGMLASDataSource::TranslateClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1003,1
    - Dst: PostInit
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1010,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1015,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1018,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1022,1
    - Dst: SetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1026,1
    - Dst: SetRefreshMode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1027,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1033,1
    - Dst: OGRGMLASDataSource::RunFirstPassIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1034,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1035,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1038,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1040,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1045,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1046,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 155
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1049
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 1049
    functionName: OGRGMLASDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - GMLASSchemaAnalyzer::SetCaseInsensitiveIdentifier
    - std::map::end
    - std::string::data
    - GMLASSchemaAnalyzer::GetMapURIToPrefix
    - SetCacheDirectory
    - CPLDebug
    - OGRGMLASDataSource::PushUnusedGMLFilePointer
    - GetParentXPath
    - GMLASSchemaAnalyzer::SetIdentifierMaxLength
    - std::vector::push_back
    - CPLError
    - CPLExpandTildeSafe
    - CPLString::empty
    - CPL_SHA256Update
    - CPL_SHA256Final
    - CPLErrorReset
    - PairURIFilename
    - OGRGMLASDataSource::TranslateClasses
    - SetRefXPaths
    - strlen
    - GMLASSchemaAnalyzer::SetPGIdentifierLaundering
    - GMLASTopElementParser::GMLASTopElementParser
    - std::vector::empty
    - GMLASSchemaAnalyzer::SetInstantiateGMLFeaturesOnly
    - c_str
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRGMLASDataSource::BuildXSDVector
    - GMLASSchemaAnalyzer::SetUseNullState
    - GMLASTopElementParser::GetMapDocNSURIToPrefix
    - CPL_LSBPTR64
    - CPLFetchBool
    - get
    - VSIFOpenL
    - Load
    - GMLASTopElementParser::GetXSDs
    - std::map::find
    - std::shared_ptr::Seek
    - std::string::resize
    - GMLASConfiguration::GetDefaultConfFile
    - GMLASSchemaAnalyzer::SetAlwaysGenerateOGRId
    - GMLASSchemaAnalyzer::SetMaximumFieldsForFlattening
    - GMLASSchemaAnalyzer::GetGMLVersionFound
    - OGRGMLASDataSource::FillOtherMetadataLayer
    - CPLFree
    - PostInit
    - SetRefreshMode
    - static_cast<GUInt64>
    - GMLASSchemaAnalyzer::SetMapDocNSURIToPrefix
    - GMLASSchemaAnalyzer::GetClasses
    - Finalize
    - empty
    - GMLASTopElementParser::Parse
    - VSIStatL
    - std::string::replace
    - std::string::size
    - CSLFetchNameValueDef
    - OGRGMLASDataSource::RunFirstPassIfNeeded
    - EQUAL
    - CPL_SHA256Init
    - GMLASSchemaAnalyzer::GetSchemaURLS
    - push_back
    - SetConf
    - CPLGetLastErrorType
    - SetAllowDownload
    - GMLASTopElementParser::GetSWE
    - GMLASSchemaAnalyzer::SetUseArrays
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLASDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1058
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1058
    functionName: OGRGMLASDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGMLASDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASDataSource::PopUnusedGMLFilePointer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1072,1
    - Dst: std::shared_ptr<VSIVirtualHandle>::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1074,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1074,1
    - Dst: GetGMLFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1074,1
    - Dst: std::make_unique<GMLASReader>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1080,1
    - Dst: GetCache
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1081,1
    - Dst: GetIgnoredXPathMatcher
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1081,1
    - Dst: auto::Init
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1082,1
    - Dst: GetGMLFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1082,1
    - Dst: GetMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1082,1
    - Dst: GetLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1082,1
    - Dst: std::vector<PairURIFilename>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1083,1
    - Dst: auto::SetSwapCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1086,1
    - Dst: OGRGMLASDataSource::GetSwapCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1086,1
    - Dst: auto::SetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1088,1
    - Dst: OGRGMLASDataSource::RunFirstPassIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1090,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1090,1
    - Dst: auto::SetMapIgnoredXPathToWarn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1095,1
    - Dst: GetMapIgnoredXPathToWarn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1095,1
    - Dst: auto::SetHash
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1097,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - fpGML
    - pfnProgress
    - pProgressData
    argTypes:
    - std::shared_ptr<VSIVirtualHandle>
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1100
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1100
    functionName: OGRGMLASDataSource::CreateReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<VSIVirtualHandle>::reset
    - auto::SetFileSize
    - std::vector<PairURIFilename>
    - auto::get
    - GetMapIgnoredXPathToWarn
    - auto::SetSwapCoordinates
    - OGRGMLASDataSource::PopUnusedGMLFilePointer
    - auto::SetHash
    - std::make_unique<GMLASReader>
    - GetMapURIToPrefix
    - GetIgnoredXPathMatcher
    - OGRGMLASDataSource::GetSwapCoordinates
    - auto::SetMapIgnoredXPathToWarn
    - auto::Init
    - VSIFOpenL
    - auto::release
    - OGRGMLASDataSource::RunFirstPassIfNeeded
    - GetGMLFilename
    - GetLayers
    - GetCache
    linkageType: ''
    returnType: GMLASReader
    signature: "GMLASReader *\nOGRGMLASDataSource::CreateReader(std::shared_ptr<VSIVirtualHandle>
      &fpGML,\n                                 GDALProgressFunc pfnProgress,\n                                 void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1108,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1113
    functionName: OGRGMLASDataSource::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGMLASDataSource::ResetReading
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1128,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1128,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1134,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1144,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1144,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1169,1
    - Dst: OGRGMLASDataSource::CreateReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1169,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1173,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1182,1
    - Dst: OGRGMLASDataSource::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1185,1
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1201,1
    - Dst: OGRGMLASDataSource::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1201,1
    - Dst: OGRGMLASLayer*::EvaluateFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1205,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1205,1
    - Dst: Tell
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1211,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1219,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1223,1
    - Dst: OGRGMLASDataSource::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1226,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1235,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 4
    argNames:
    - ppoBelongingLayer
    - pdfProgressPct
    - pfnProgress
    - pProgressData
    argTypes:
    - OGRLayer**
    - double*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1238
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1238
    functionName: OGRGMLASDataSource::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - Tell
    - GDALDestroyScaledProgress
    - std::unique_ptr<OGRFeature>
    - static_cast<int>
    - empty
    - auto::release
    - OGRLayer*::GetNextFeature
    - OGRGMLASDataSource::CreateReader
    - OGRGMLASDataSource::GetNextFeature
    - auto::get
    - OGRGMLASLayer*::EvaluateFilter
    - reset
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRGMLASDataSource::GetNextFeature(OGRLayer **ppoBelongingLayer,\n
      \                                              double *pdfProgressPct,\n                                               GDALProgressFunc
      pfnProgress,\n                                               void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1248,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1254
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1254
    functionName: OGRGMLASDataSource::GetLayerByXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetFeatureClass
    - get
    linkageType: ''
    returnType: OGRGMLASLayer
    signature: OGRGMLASLayer *OGRGMLASDataSource::GetLayerByXPath(const CPLString
      &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1265,1
    - Dst: std::shared_ptr<VSIVirtualHandle>::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fpGML
    argTypes:
    - std::shared_ptr<VSIVirtualHandle>
    constantsTouched: []
    func_position:
      end: 1271
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1271
    functionName: OGRGMLASDataSource::PushUnusedGMLFilePointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<VSIVirtualHandle>::reset
    - swap
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASDataSource::PushUnusedGMLFilePointer(\n    std::shared_ptr<VSIVirtualHandle>
      &fpGML)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1282
    functionName: OGRGMLASDataSource::PopUnusedGMLFilePointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 1
    functionsReached:
    - swap
    linkageType: ''
    returnType: std::shared_ptr<VSIVirtualHandle>
    signature: std::shared_ptr<VSIVirtualHandle> OGRGMLASDataSource::PopUnusedGMLFilePointer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASReader*::SetMapSRSNameToInvertedAxis
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1292,1
    - Dst: GMLASReader*::SetMapGeomFieldDefnToSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1293,1
    - Dst: GMLASReader*::SetProcessDataRecord
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1294,1
    - Dst: GMLASReader*::SetSWEDataArrayLayersRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1296,1
    - Dst: GMLASReader*::SetMapElementIdToLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1297,1
    - Dst: GMLASReader*::SetMapElementIdToPKID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1298,1
    - Dst: GMLASReader*::SetDefaultSrsDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poReader
    argTypes:
    - GMLASReader*
    constantsTouched: []
    func_position:
      end: 1301
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1301
    functionName: OGRGMLASDataSource::InitReaderWithFirstPassElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 0
    functionsReached:
    - GMLASReader*::SetMapSRSNameToInvertedAxis
    - GMLASReader*::SetSWEDataArrayLayersRef
    - GMLASReader*::SetDefaultSrsDimension
    - GMLASReader*::SetMapElementIdToPKID
    - GMLASReader*::SetMapElementIdToLayer
    - GMLASReader*::SetProcessDataRecord
    - GMLASReader*::SetMapGeomFieldDefnToSRSName
    linkageType: ''
    returnType: void
    signature: void OGRGMLASDataSource::InitReaderWithFirstPassElements(GMLASReader
      *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASDataSource::InitReaderWithFirstPassElements
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1313,1
    - Dst: SetLayerDefnFinalized
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1324,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1325,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1337,1
    - Dst: GMLASReader*::GetFP
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1344,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1347,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1347,1
    - Dst: GetGMLFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1347,1
    - Dst: std::make_unique<GMLASReader>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1356,1
    - Dst: auto::Init
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1358,1
    - Dst: GetGMLFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1358,1
    - Dst: GetMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1358,1
    - Dst: GetLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1359,1
    - Dst: auto::SetProcessDataRecord
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1363,1
    - Dst: auto::SetFileSize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1366,1
    - Dst: auto::SetMapIgnoredXPathToWarn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1368,1
    - Dst: auto::SetHash
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1371,1
    - Dst: m_oMapIgnoredXPathToWarn::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1374,1
    - Dst: auto::RunFirstPass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1377,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1381,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1381,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1382,1
    - Dst: auto::StealSWEDataArrayLayersOwned
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1385,1
    - Dst: SetDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1388,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1389,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1389,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1390,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1390,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1395,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1399,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1404,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1405,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1407,1
    - Dst: DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1407,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1408,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1411,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1413,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1420,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1421,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1422,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1423,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1425,1
    - Dst: DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1425,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1426,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1429,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1431,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1438,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1439,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1440,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1441,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1443,1
    - Dst: DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1443,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1444,1
    - Dst: OGRGMLASDataSource::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1447,1
    - Dst: auto::GetMapSRSNameToInvertedAxis
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1452,1
    - Dst: auto::GetMapGeomFieldDefnToSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1454,1
    - Dst: auto::GetMapElementIdToLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1456,1
    - Dst: auto::GetMapElementIdToPKID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1457,1
    - Dst: auto::GetDefaultSrsDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1458,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1460,1
    - Dst: std::shared_ptr::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1462,1
    - Dst: OGRGMLASDataSource::PushUnusedGMLFilePointer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1464,1
    - Dst: OGRGMLASDataSource::InitReaderWithFirstPassElements
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp:1466,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 3
    argNames:
    - poReader
    - pfnProgress
    - pProgressData
    argTypes:
    - GMLASReader*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1470
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1470
    functionName: OGRGMLASDataSource::RunFirstPassIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdatasource.cpp
    functionUses: 4
    functionsReached:
    - std::shared_ptr::reset
    - auto::GetMapElementIdToLayer
    - auto::GetMapElementIdToPKID
    - auto::SetFileSize
    - auto::GetMapGeomFieldDefnToSRSName
    - OGRGMLASDataSource::InitReaderWithFirstPassElements
    - OGRGMLASDataSource::PushUnusedGMLFilePointer
    - SetDataSource
    - GetFID
    - auto::GetDefaultSrsDimension
    - auto::SetHash
    - DeleteFeature
    - SetLayerDefnFinalized
    - std::make_unique<GMLASReader>
    - GetMapURIToPrefix
    - GMLASReader*::GetFP
    - std::move
    - emplace_back
    - GetLayerDefn
    - auto::SetMapIgnoredXPathToWarn
    - get
    - OGRGMLASDataSource::ResetReading
    - auto::Init
    - std::set::find
    - VSIFOpenL
    - std::shared_ptr::Seek
    - CPL_IGNORE_RET_VAL
    - auto::RunFirstPass
    - std::set::empty
    - auto::StealSWEDataArrayLayersOwned
    - auto::GetMapSRSNameToInvertedAxis
    - GetConf
    - GetGMLFilename
    - GetLayers
    - auto::SetProcessDataRecord
    - m_oMapIgnoredXPathToWarn::clear
    - push_back
    - auto::reset
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool OGRGMLASDataSource::RunFirstPassIfNeeded(GMLASReader *poReader,\n
      \                                             GDALProgressFunc pfnProgress,\n
      \                                             void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:38,1
    - Dst: OGRGMLASDataSource::OGRGMLASDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:41,1
    - Dst: OGRGMLASDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: OGRGMLASDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLASDriverIdentify
    - OGRGMLASDataSource*::Open
    - OGRGMLASDataSource::OGRGMLASDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGMLASDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:59,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:62,1
    - Dst: OGRGMLASDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:63,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: RegisterOGRGMLAS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRGMLASDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGMLAS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XMLGrammarPool*::getXSModel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - XMLGrammarPool*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: getGrammarPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XMLGrammarPool*::getXSModel
    linkageType: ''
    returnType: XSModel
    signature: XSModel *getGrammarPool(XMLGrammarPool *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - eType
    argTypes:
    - GMLASFieldType
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: IsCompatibleOfArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsCompatibleOfArray(GMLASFieldType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - oMapURIToPrefix
    - oMapDocNSURIToPrefix
    - osGMLVersionFound
    argTypes:
    - std::map<CPLString, CPLString>
    - std::map<CPLString, CPLString>
    - CPLString
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: GMLASPrefixMappingHander::GMLASPrefixMappingHander
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASPrefixMappingHander(\n        std::map<CPLString, CPLString>
      &oMapURIToPrefix,\n        const std::map<CPLString, CPLString> &oMapDocNSURIToPrefix,\n
      \       CPLString &osGMLVersionFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:84,1
    - Dst: Attributes::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:93,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:95,1
    - Dst: Attributes::getLocalName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:95,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:98,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:98,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:102,1
    - Dst: Attributes::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:102,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:105,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - uri
    - localname
    - attrs
    argTypes:
    - XMLCh*
    - XMLCh*
    - Attributes
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: GMLASPrefixMappingHander::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - empty
    - std::move
    - Attributes::getLength
    - Attributes::getLocalName
    - Attributes::getValue
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLASPrefixMappingHander::startElement(const XMLCh *const uri,\n
      \                                           const XMLCh *const localname,\n
      \                                           const XMLCh *const /*qname*/,\n
      \                                           const Attributes &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:121,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:123,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:124,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:129,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:131,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:132,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:135,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:136,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:136,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:140,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:142,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:142,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - prefix
    - uri
    argTypes:
    - XMLCh*
    - XMLCh*
    constantsTouched: []
    func_position:
      end: 145
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 145
    functionName: GMLASPrefixMappingHander::startPrefixMapping
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - CPLDebug
    - CPLString::c_str
    - CPLString::empty
    - auto::second::c_str
    linkageType: ''
    returnType: void
    signature: "void GMLASPrefixMappingHander::startPrefixMapping(const XMLCh *const
      prefix,\n                                                  const XMLCh *const
      uri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:161,1
    - Dst: SAX2XMLReader*::setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:165,1
    - Dst: GMLASErrorHandler::GMLASErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:167,1
    - Dst: SAX2XMLReader*::setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:168,1
    - Dst: SAX2XMLReader*::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:170,1
    - Dst: SAX2XMLReader*::parse
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:175,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:179,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:179,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:183,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:183,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:187,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:187,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:189,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:189,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:194,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:194,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:196,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:198,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - pszXSDFilename
    - fpXSD
    - oMapURIToPrefix
    - oMapDocNSURIToPrefix
    - osGMLVersionFound
    argTypes:
    - char*
    - std::shared_ptr<VSIVirtualHandle>
    - std::map<CPLString, CPLString>
    - std::map<CPLString, CPLString>
    - CPLString
    constantsTouched: []
    func_position:
      end: 201
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 201
    functionName: CollectNamespacePrefixes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - SAX2XMLReader*::setFeature
    - std::string::empty
    - SAX2XMLReader*::parse
    - CPLGetLastErrorMsg
    - SAX2XMLReader*::setContentHandler
    - XMLReaderFactory::createXMLReader
    - SAX2XMLReader*::setErrorHandler
    - GMLASErrorHandler::GMLASErrorHandler
    - getMessage
    - strstr
    - CPLError
    - std::string::c_str
    - transcode
    linkageType: ''
    returnType: void
    signature: "void CollectNamespacePrefixes(\n    const char *pszXSDFilename, const
      std::shared_ptr<VSIVirtualHandle> &fpXSD,\n    std::map<CPLString, CPLString>
      &oMapURIToPrefix,\n    const std::map<CPLString, CPLString> &oMapDocNSURIToPrefix,\n
      \   CPLString &osGMLVersionFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - osBasePath
    - oMapURIToPrefix
    - oMapDocNSURIToPrefix
    - oCache
    argTypes:
    - CPLString
    - std::map<CPLString, CPLString>
    - std::map<CPLString, CPLString>
    - GMLASXSDCache
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: GMLASAnalyzerEntityResolver::GMLASAnalyzerEntityResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASAnalyzerEntityResolver(\n        const CPLString &osBasePath,\n
      \       std::map<CPLString, CPLString> &oMapURIToPrefix,\n        const std::map<CPLString,
      CPLString> &oMapDocNSURIToPrefix,\n        GMLASXSDCache &oCache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CollectNamespacePrefixes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:236,1
    - Dst: std::shared_ptr<VSIVirtualHandle>::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - osFilename
    - fp
    argTypes:
    - CPLString
    - std::shared_ptr<VSIVirtualHandle>
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: GMLASAnalyzerEntityResolver::DoExtraSchemaProcessing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CollectNamespacePrefixes
    - std::shared_ptr<VSIVirtualHandle>::Seek
    linkageType: ''
    returnType: void
    signature: "void GMLASAnalyzerEntityResolver::DoExtraSchemaProcessing(\n    const
      CPLString &osFilename, const std::shared_ptr<VSIVirtualHandle> &fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - oIgnoredXPathMatcher
    - oChildrenElementsConstraintsXPathMatcher
    - oMapChildrenElementsConstraints
    - oForcedFlattenedXPathMatcher
    - oDisabledFlattenedXPathMatcher
    argTypes:
    - GMLASXPathMatcher
    - GMLASXPathMatcher
    - std::map<CPLString, std::vector<CPLString>>
    - GMLASXPathMatcher
    - GMLASXPathMatcher
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: GMLASSchemaAnalyzer::GMLASSchemaAnalyzer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::GMLASSchemaAnalyzer(\n    GMLASXPathMatcher
      &oIgnoredXPathMatcher,\n    GMLASXPathMatcher &oChildrenElementsConstraintsXPathMatcher,\n
      \   const std::map<CPLString, std::vector<CPLString>>\n        &oMapChildrenElementsConstraints,\n
      \   GMLASXPathMatcher &oForcedFlattenedXPathMatcher,\n    GMLASXPathMatcher
      &oDisabledFlattenedXPathMatcher)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:276,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:278,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:279,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:281,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:286,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:287,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:287,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:288,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:289,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:289,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:292,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:294,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:294,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:298,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:299,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:299,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:304,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - osNamespaceURI
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 308
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 308
    functionName: GMLASSchemaAnalyzer::GetPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLString::substr
    - static_cast<unsigned char>
    - find
    - CPLDebug
    - CPLString::c_str
    - CPLString::size
    - strlen
    - CPLString::find
    - CPLString::empty
    - isalnum
    linkageType: ''
    returnType: CPLString
    signature: CPLString GMLASSchemaAnalyzer::GetPrefix(const CPLString &osNamespaceURI)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - osNamespaceURI
    - osName
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: GMLASSchemaAnalyzer::MakeXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GMLASSchemaAnalyzer::MakeXPath(const CPLString &osNamespaceURI,\n
      \                                        const CPLString &osName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:335,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:343,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:344,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 345
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 345
    functionName: GetNSOfLastXPathComponent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::rfind
    - CPLString
    - CPLString::substr
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetNSOfLastXPathComponent(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:354,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:362,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:362,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:364,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:366,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:366,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:377,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:381,1
    - Dst: std::set::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:384,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:385,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:390,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:391,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:391,1
    - Dst: GetNSOfLastXPathComponent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:395,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:395,1
    - Dst: auto::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:398,1
    - Dst: auto::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:406,1
    - Dst: auto::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:408,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:409,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:410,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:413,1
    - Dst: GetNSOfLastXPathComponent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:422,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:422,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:425,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:426,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:426,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:426,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:429,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:430,1
    - Dst: updateSetAndMapWithNewName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:431,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:436,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:437,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:438,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:441,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:442,1
    - Dst: updateSetAndMapWithNewName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:443,1
    - Dst: auto::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:455,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:456,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:466,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:467,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:467,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:468,1
    - Dst: updateSetAndMapWithNewName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:469,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:479,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:481,1
    - Dst: std::map::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:483,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:485,1
    - Dst: GMLASField::GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:498,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:500,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:501,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:501,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:501,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:502,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:518,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:525,1
    - Dst: OGRGMLASTruncateIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:525,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:526,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:533,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:537,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:538,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:544,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:544,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:546,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:548,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:550,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:551,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:565,1
    - Dst: OGRGMLASAddSerialNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:565,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:566,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:566,1
    - Dst: GMLASFeatureClass::GetNestedClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:573,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:574,1
    - Dst: GMLASSchemaAnalyzer::LaunderFieldNames
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:576,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 97
    argCount: 1
    argNames:
    - oClass
    argTypes:
    - GMLASFeatureClass
    constantsTouched: []
    func_position:
      end: 580
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 580
    functionName: GMLASSchemaAnalyzer::LaunderFieldNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::toupper
    - std::map::end
    - std::vector::size
    - std::set::insert
    - std::set::erase
    - CPLError
    - GMLASField::GetName
    - auto::size
    - STARTS_WITH
    - auto::begin
    - CPLString::empty
    - auto::end
    - SetName
    - GetName
    - c_str
    - static_cast<int>
    - GMLASField::GetXPath
    - GMLASField::SetName
    - OGRGMLASAddSerialNumber
    - CPLSPrintf
    - auto::empty
    - std::set::find
    - std::map::find
    - CPLAssert
    - std::set::empty
    - updateSetAndMapWithNewName
    - std::map::erase
    - GMLASFeatureClass::GetXPath
    - CPLFree
    - GMLASField::GetCategory
    - GMLASFeatureClass::GetFields
    - auto::push_back
    - auto::erase
    - GMLASSchemaAnalyzer::LaunderFieldNames
    - GetCategory
    - OGRGMLASTruncateIdentifier
    - GMLASFeatureClass::GetNestedClasses
    - push_back
    - std::set::begin
    - GetNSOfLastXPathComponent
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: bool GMLASSchemaAnalyzer::LaunderFieldNames(GMLASFeatureClass &oClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GMLASFeatureClass *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:589,1
    - Dst: GMLASFeatureClass::GetNestedClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:590,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:591,1
    - Dst: GMLASSchemaAnalyzer::CollectClassesReferences
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - oClass
    - aoClasses
    argTypes:
    - GMLASFeatureClass
    - std::vector<GMLASFeatureClass *>
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: GMLASSchemaAnalyzer::CollectClassesReferences
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 1
    functionsReached:
    - GMLASFeatureClass::GetNestedClasses
    - GMLASSchemaAnalyzer::CollectClassesReferences
    - std::vector<GMLASFeatureClass *>::push_back
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::CollectClassesReferences(\n    GMLASFeatureClass
      &oClass, std::vector<GMLASFeatureClass *> &aoClasses)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:604,1
    - Dst: GMLASSchemaAnalyzer::CollectClassesReferences
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:606,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:611,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:616,1
    - Dst: OGRGMLASTruncateIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:616,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:617,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:624,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:628,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:629,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:638,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:638,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:640,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:642,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:643,1
    - Dst: GMLASFeatureClass*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:656,1
    - Dst: OGRGMLASAddSerialNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:656,1
    - Dst: GMLASFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:657,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:657,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 662
    functionName: GMLASSchemaAnalyzer::LaunderClassNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - size
    - GMLASSchemaAnalyzer::CollectClassesReferences
    - static_cast<int>
    - CPLString::toupper
    - std::vector::size
    - SetName
    - OGRGMLASAddSerialNumber
    - OGRGMLASTruncateIdentifier
    - GMLASFeatureClass*::GetName
    - push_back
    - CPLFree
    - GetName
    - GMLASFeatureClass*::SetName
    linkageType: ''
    returnType: void
    signature: void GMLASSchemaAnalyzer::LaunderClassNames()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: GMLASUniquePtr::GMLASUniquePtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLASUniquePtr(T *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: ~GMLASUniquePtr()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GMLASUniquePtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: '*operator->() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: T
    signature: T *operator->() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: GMLASUniquePtr::get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *get() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: GMLASUniquePtr::release
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T *release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:719,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:737,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:738,1
    - Dst: XSModel*::getElementDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:739,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:743,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:744,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:744,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:746,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:747,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:753,1
    - Dst: XSModel*::getElementDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:754,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:759,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:760,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - osXPath
    - poModel
    argTypes:
    - CPLString
    - XSModel*
    constantsTouched: []
    func_position:
      end: 764
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 764
    functionName: GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSModel*::getElementDeclaration
    - getMessage
    - CPLError
    - CPLString::resize
    - OGR::transcode
    - flatbuffers::vector_downward::release
    - transcode
    linkageType: ''
    returnType: XSElementDeclaration
    signature: "XSElementDeclaration *\nGMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath(const
      CPLString &osXPath,\n                                                       XSModel
      *poModel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:773,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:774,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:775,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:775,1
    - Dst: reinterpret_cast<XSComplexTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:778,1
    - Dst: XSComplexTypeDefinition*::getContentType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - poEltDecl
    argTypes:
    - XSElementDeclaration*
    constantsTouched: []
    func_position:
      end: 788
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 788
    functionName: IsEltCompatibleOfFC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSComplexTypeDefinition*::getContentType
    - XSElementDeclaration*::getName
    - XSTypeDefinition*::getTypeCategory
    - XSElementDeclaration*::getTypeDefinition
    - reinterpret_cast<XSComplexTypeDefinition *>
    - transcode
    linkageType: ''
    returnType: XSComplexTypeDefinition
    signature: 'XSComplexTypeDefinition *

      IsEltCompatibleOfFC(XSElementDeclaration *poEltDecl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSElementDeclaration*::getSubstitutionGroupAffiliation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:800,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:803,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:803,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:804,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:804,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:805,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:809,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - poEltDecl
    argTypes:
    - XSElementDeclaration*
    constantsTouched: []
    func_position:
      end: 817
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 817
    functionName: GMLASSchemaAnalyzer::DerivesFromGMLFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSElementDeclaration*::getName
    - GMLASSchemaAnalyzer::IsGMLNamespace
    - XSElementDeclaration*::getNamespace
    - XSElementDeclaration*::getSubstitutionGroupAffiliation
    - transcode
    linkageType: ''
    returnType: bool
    signature: bool GMLASSchemaAnalyzer::DerivesFromGMLFeature(XSElementDeclaration
      *poEltDecl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XMLGrammarPoolImpl::XMLGrammarPoolImpl
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:830,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:841,1
    - Dst: std::vector<PairURIFilename>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:842,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:848,1
    - Dst: GMLASUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:849,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:853,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:854,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:855,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:859,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:862,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:866,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:871,1
    - Dst: GMLASUniquePtr::setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:873,1
    - Dst: GMLASReader::LoadXSDInParser
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:877,1
    - Dst: GMLASUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:878,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:890,1
    - Dst: Grammar*::getTargetNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:890,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:891,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:893,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:896,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:902,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:902,1
    - Dst: GMLASAnalyzerEntityResolver::GetGMLVersionFound
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:906,1
    - Dst: GMLASAnalyzerEntityResolver::GetSchemaURLS
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:907,1
    - Dst: SetDocumentMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:909,1
    - Dst: SetDocumentMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:910,1
    - Dst: SetDocumentMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:912,1
    - Dst: SetDocumentMapURIToPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:913,1
    - Dst: getGrammarPool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:916,1
    - Dst: GMLASUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:916,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:917,1
    - Dst: XSModel*::getNamespaceItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:920,1
    - Dst: getTargetNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:921,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:924,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:926,1
    - Dst: getTargetNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:926,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:949,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:953,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:954,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:954,1
    - Dst: XSModel*::getComponentsByNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:959,1
    - Dst: XSNamedMap*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:964,1
    - Dst: reinterpret_cast<XSModelGroupDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:968,1
    - Dst: XSNamedMap*::item
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:969,1
    - Dst: XSModelGroupDefinition*::getModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:970,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:974,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:975,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:975,1
    - Dst: XSModel*::getComponentsByNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:977,1
    - Dst: XSNamedMap*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:981,1
    - Dst: reinterpret_cast<XSElementDeclaration *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:984,1
    - Dst: XSNamedMap*::item
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:985,1
    - Dst: XSElementDeclaration*::getSubstitutionGroupAffiliation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:987,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:989,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:989,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:989,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:990,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:990,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:994,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:997,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:997,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:997,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:998,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:998,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:999,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1000,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1000,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1006,1
    - Dst: GMLASSchemaAnalyzer::DerivesFromGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1007,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1009,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1014,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1020,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1028,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1034,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1034,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1038,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1039,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1039,1
    - Dst: XSModel*::getComponentsByNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1043,1
    - Dst: XSNamedMap*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1046,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1047,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1051,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1053,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1065,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1084,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1089,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1089,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1093,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1095,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1095,1
    - Dst: XSModel*::getComponentsByNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1100,1
    - Dst: XSNamedMap*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1104,1
    - Dst: reinterpret_cast<XSElementDeclaration *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1108,1
    - Dst: XSNamedMap*::item
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1109,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1110,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1111,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1114,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1114,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1114,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1115,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1115,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1116,1
    - Dst: GMLASSchemaAnalyzer::DerivesFromGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1119,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1126,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1130,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1131,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1132,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1135,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1136,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1137,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1139,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1140,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1141,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1142,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1149,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1152,1
    - Dst: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1153,1
    - Dst: auto::getModelGroupTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1155,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1167,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1175,1
    - Dst: getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1175,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1183,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1183,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1183,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1184,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1195,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1197,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1198,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1198,1
    - Dst: GMLASSchemaAnalyzer::LaunderClassNames
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1203,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 126
    argCount: 5
    argNames:
    - oCache
    - osBaseDirname
    - aoXSDs
    - bSchemaFullChecking
    - bHandleMultipleImports
    argTypes:
    - GMLASXSDCache
    - CPLString
    - std::vector<PairURIFilename>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1206
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 1206
    functionName: GMLASSchemaAnalyzer::Analyze
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSNamedMap*::item
    - XSElementDeclaration*::getName
    - std::vector::size
    - std::set::insert
    - CPLDebug
    - SetDocumentMapURIToPrefix
    - getMessage
    - GMLASSchemaAnalyzer::MakeXPath
    - CPLError
    - std::vector::push_back
    - std::vector::clear
    - GMLASSchemaAnalyzer::IsIgnoredXPath
    - CPLString::empty
    - flatbuffers::vector_downward::release
    - transcode
    - auto::getModelGroupTerm
    - insert
    - XMLReaderFactory::createXMLReader
    - CPLString::c_str
    - std::move
    - XSElementDeclaration*::getAbstract
    - second::c_str
    - XSModel*::getComponentsByNamespace
    - c_str
    - getName
    - XMLGrammarPoolImpl::XMLGrammarPoolImpl
    - XSElementDeclaration*::getTypeDefinition
    - GMLASSchemaAnalyzer::DerivesFromGMLFeature
    - IsEltCompatibleOfFC
    - XSComplexTypeDefinition*::getParticle
    - std::set::find
    - CPLAssert
    - GMLASUniquePtr::get
    - getGrammarPool
    - XSElementDeclaration*::getNamespace
    - CPL_IGNORE_RET_VAL
    - XSNamedMap*::getLength
    - XSModelGroupDefinition*::getModelGroup
    - reinterpret_cast<XSElementDeclaration *>
    - OGR::transcode
    - XSElementDeclaration*::getSubstitutionGroupAffiliation
    - std::vector<PairURIFilename>::size
    - XSModel*::getNamespaceItem
    - GMLASAnalyzerEntityResolver::GetGMLVersionFound
    - GMLASSchemaAnalyzer::IsGMLNamespace
    - GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
    - GMLASSchemaAnalyzer::LaunderClassNames
    - reinterpret_cast<XSModelGroupDefinition *>
    - Grammar*::getTargetNamespace
    - getTargetNamespace
    - GMLASUniquePtr::setFeature
    - push_back
    - GMLASReader::LoadXSDInParser
    - GMLASAnalyzerEntityResolver::GetSchemaURLS
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::Analyze(GMLASXSDCache &oCache,\n                                  const
      CPLString &osBaseDirname,\n                                  std::vector<PairURIFilename>
      &aoXSDs,\n                                  bool bSchemaFullChecking,\n                                  bool
      bHandleMultipleImports)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1215,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1216,1
    - Dst: XSAnnotation*::getAnnotationString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1216,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1217,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1218,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1219,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1220,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - annotation
    argTypes:
    - XSAnnotation*
    constantsTouched: []
    func_position:
      end: 1222
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1222
    functionName: GetAnnotationDoc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - CPLString::Trim
    - CPLString
    - CPLGetXMLValue
    - XSAnnotation*::getAnnotationString
    - transcode
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetAnnotationDoc(const XSAnnotation *annotation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1231,1
    - Dst: XSAnnotationList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1233,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1235,1
    - Dst: XSAnnotationList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1235,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1236,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - annotationList
    argTypes:
    - XSAnnotationList*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1244
    functionName: GetAnnotationDoc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 1
    functionsReached:
    - GetAnnotationDoc
    - CPLString
    - XSAnnotationList*::size
    - CPLString::empty
    - XSAnnotationList*::elementAt
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetAnnotationDoc(const XSAnnotationList *annotationList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1252,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1253,1
    - Dst: XSElementDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1253,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1257,1
    - Dst: reinterpret_cast<XSComplexTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1260,1
    - Dst: XSComplexTypeDefinition*::getAnnotations
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1261,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1263,1
    - Dst: reinterpret_cast<XSSimpleTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1266,1
    - Dst: XSSimpleTypeDefinition*::getAnnotations
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1267,1
    - Dst: XSTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1271,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1276,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1277,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1277,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1282,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - poEltDecl
    argTypes:
    - XSElementDeclaration*
    constantsTouched: []
    func_position:
      end: 1285
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1285
    functionName: GetAnnotationDoc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 2
    functionsReached:
    - XSTypeDefinition*::getTypeCategory
    - XSElementDeclaration*::getTypeDefinition
    - reinterpret_cast<XSSimpleTypeDefinition *>
    - CPLString::empty
    - XSTypeDefinition*::getBaseType
    - GetAnnotationDoc
    - XSSimpleTypeDefinition*::getAnnotations
    - XSElementDeclaration*::getAnnotation
    - std::move
    - reinterpret_cast<XSComplexTypeDefinition *>
    - XSComplexTypeDefinition*::getAnnotations
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetAnnotationDoc(const XSElementDeclaration *poEltDecl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1295,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1296,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1298,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1299,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1299,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1301,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1301,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1301,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1303,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1306,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1306,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1314,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1315,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1318,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1321,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1321,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1323,1
    - Dst: GMLASFeatureClass::SetIsTopLevelElt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1324,1
    - Dst: GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1325,1
    - Dst: GMLASFeatureClass::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1329,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1329,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1332,1
    - Dst: GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1335,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1336,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1340,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1340,1
    - Dst: XSComplexTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1340,1
    - Dst: GetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1341,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1343,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1344,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1345,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1346,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1347,1
    - Dst: GMLASField::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1348,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1349,1
    - Dst: GMLASField::SetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1350,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1352,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1354,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1355,1
    - Dst: XSComplexTypeDefinition*::getAttributeUses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1356,1
    - Dst: GMLASSchemaAnalyzer::LaunderFieldNames
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1369,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1372,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - poEltDecl
    - poModel
    - bError
    argTypes:
    - XSElementDeclaration*
    - XSModel*
    - bool
    constantsTouched: []
    func_position:
      end: 1376
      start: 1291
    functionDepth: 4
    functionLinenumber: 1291
    functionLinenumberEnd: 1376
    functionName: GMLASSchemaAnalyzer::InstantiateClassFromEltDeclaration
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - GMLASFeatureClass::AddField
    - XSElementDeclaration*::getName
    - GMLASSchemaAnalyzer::ExploreModelGroup
    - CPLDebug
    - GMLASField::SetIncludeThisEltInBlob
    - GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
    - GMLASSchemaAnalyzer::MakeXPath
    - GMLASField::GMLASField
    - GMLASSchemaAnalyzer::IsIgnoredXPath
    - GMLASFeatureClass::SetXPath
    - transcode
    - GMLASField::SetMinOccurs
    - GMLASField::SetGeomType
    - GMLASField::SetType
    - CPLString::c_str
    - std::move
    - XSComplexTypeDefinition*::getNamespace
    - XSComplexTypeDefinition*::getAttributeUses
    - GMLASField::SetName
    - IsEltCompatibleOfFC
    - XSComplexTypeDefinition*::getParticle
    - GMLASField::SetMaxOccurs
    - CPLString::replaceAll
    - XSElementDeclaration*::getNamespace
    - GMLASFeatureClass::SetIsTopLevelElt
    - GMLASSchemaAnalyzer::LaunderFieldNames
    - GMLASFeatureClass::GMLASFeatureClass
    - GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
    - GMLASFeatureClass::SetName
    - GetAnnotationDoc
    - GMLASSchemaAnalyzer::IsGMLNamespace
    - GMLASField::SetXPath
    - GetOGRGeometryType
    - push_back
    - XSElementDeclaration*::getAbstract
    - GMLASFeatureClass::SetDocumentation
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::InstantiateClassFromEltDeclaration(\n    XSElementDeclaration
      *poEltDecl, XSModel *poModel, bool &bError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSSimpleTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1387,1
    - Dst: XSSimpleTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1388,1
    - Dst: XMLString::equals
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1390,1
    - Dst: XSSimpleTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1390,1
    - Dst: XSSimpleTypeDefinition*::getLexicalFacetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1393,1
    - Dst: XSSimpleTypeDefinition*::getLexicalFacetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1396,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1400,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1400,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1400,1
    - Dst: reinterpret_cast<XSSimpleTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1401,1
    - Dst: XSSimpleTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1401,1
    - Dst: XMLString::equals
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1404,1
    - Dst: XSSimpleTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1404,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1406,1
    - Dst: XSSimpleTypeDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1406,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1407,1
    - Dst: GMLASField::GetTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1407,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1411,1
    - Dst: GMLASField::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - poST
    - oField
    argTypes:
    - XSSimpleTypeDefinition*
    - GMLASField
    constantsTouched: []
    func_position:
      end: 1415
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1415
    functionName: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - XSSimpleTypeDefinition*::getNamespace
    - atoi
    - reinterpret_cast<XSSimpleTypeDefinition *>
    - XSSimpleTypeDefinition*::getBaseType
    - XSSimpleTypeDefinition*::getName
    - GMLASField::SetType
    - GMLASField::GetTypeFromString
    - MAX
    - GMLASField::SetWidth
    - transcode
    - XMLString::equals
    - XSSimpleTypeDefinition*::getLexicalFacetValue
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition(\n    XSSimpleTypeDefinition
      *poST, GMLASField &oField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSModelGroup*::getCompositor
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1427,1
    - Dst: XSModelGroup*::getCompositor
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1427,1
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1430,1
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1431,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1432,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1432,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1435,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1437,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1438,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1439,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1439,1
    - Dst: XSParticle*::getMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1440,1
    - Dst: XSParticle*::getMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1440,1
    - Dst: XSParticle*::getMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1441,1
    - Dst: XSParticle*::getMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1441,1
    - Dst: XSParticle*::getMaxOccursUnbounded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1442,1
    - Dst: XSParticle*::getMaxOccursUnbounded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1443,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1447,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1455,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1457,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1467,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1469,1
    - Dst: GMLASSchemaAnalyzer::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1470,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1479,1
    - Dst: const_cast<XSParticle *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1481,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1489,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - poModelGroup1
    - poModelGroup2
    argTypes:
    - XSModelGroup*
    - XSModelGroup*
    constantsTouched: []
    func_position:
      end: 1496
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1496
    functionName: GMLASSchemaAnalyzer::IsSame
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 1
    functionsReached:
    - XSParticleList*::elementAt
    - XSModelGroup*::getCompositor
    - XSParticle*::getTermType
    - GMLASSchemaAnalyzer::IsSame
    - XSParticle*::getMaxOccurs
    - XSParticleList*::size
    - CPLAssert
    - XSParticle*::getMaxOccursUnbounded
    - XSParticle*::getMinOccurs
    - XSModelGroup*::getParticles
    - const_cast<XSParticle *>
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::IsSame(const XSModelGroup *poModelGroup1,\n
      \                                const XSModelGroup *poModelGroup2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASSchemaAnalyzer::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poModelGroup
    argTypes:
    - XSModelGroup*
    constantsTouched: []
    func_position:
      end: 1519
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1519
    functionName: GMLASSchemaAnalyzer::GetGroupDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - GMLASSchemaAnalyzer::IsSame
    linkageType: ''
    returnType: XSModelGroupDefinition
    signature: 'XSModelGroupDefinition *

      GMLASSchemaAnalyzer::GetGroupDefinition(const XSModelGroup *poModelGroup)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XMLString::equals
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1527,1
    - Dst: XSComplexTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1527,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1529,1
    - Dst: XSComplexTypeDefinition*::getBaseType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1529,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1531,1
    - Dst: XSParticle*::getModelGroupTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1534,1
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1537,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1540,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1541,1
    - Dst: XSComplexTypeDefinition*::getDerivationMethod
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - poType
    argTypes:
    - XSComplexTypeDefinition*
    constantsTouched: []
    func_position:
      end: 1554
      start: 1525
    functionDepth: 0
    functionLinenumber: 1525
    functionLinenumberEnd: 1554
    functionName: IsAnyType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSParticleList*::elementAt
    - XSParticleList*::size
    - XSComplexTypeDefinition*::getParticle
    - XSComplexTypeDefinition*::getDerivationMethod
    - XSParticle*::getModelGroupTerm
    - XSModelGroup*::getParticles
    - XSComplexTypeDefinition*::getBaseType
    - XMLString::equals
    - transcode
    linkageType: ''
    returnType: bool
    signature: bool IsAnyType(XSComplexTypeDefinition *poType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSAttributeUse*::getAttrDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1565,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1566,1
    - Dst: XSAttributeDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1566,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1567,1
    - Dst: XSAttributeDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1567,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1569,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1570,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1572,1
    - Dst: XSAttributeDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1577,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1579,1
    - Dst: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1583,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1585,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1585,1
    - Dst: XSAttributeUse*::getRequired
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1586,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1588,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1590,1
    - Dst: GMLASField::IsNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1590,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1591,1
    - Dst: XSAttributeUse*::getConstraintType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1592,1
    - Dst: GMLASField::SetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1594,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1594,1
    - Dst: XSAttributeUse*::getConstraintValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1594,1
    - Dst: XSAttributeUse*::getConstraintType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1596,1
    - Dst: GMLASField::SetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1599,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1599,1
    - Dst: XSAttributeUse*::getConstraintValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1599,1
    - Dst: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1606,1
    - Dst: XSSimpleTypeDefinition*::getItemType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1606,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1607,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1607,1
    - Dst: GMLASField::SetList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1609,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1610,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1616,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1620,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1620,1
    - Dst: XSAttributeDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1620,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - oField
    - poAttr
    - osXPathPrefix
    - osNamePrefix
    argTypes:
    - GMLASField
    - XSAttributeUse*
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1623
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1623
    functionName: GMLASSchemaAnalyzer::SetFieldFromAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - XSAttributeDeclaration*::getName
    - XSAttributeUse*::getRequired
    - GMLASField::SetDefaultValue
    - GMLASSchemaAnalyzer::MakeXPath
    - CPLError
    - GMLASField::GetName
    - CPLString::empty
    - transcode
    - GMLASField::GetType
    - GMLASField::SetMinOccurs
    - GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
    - GMLASField::SetType
    - XSAttributeUse*::getAttrDeclaration
    - GMLASField::IsNotNullable
    - XSAttributeUse*::getConstraintValue
    - GMLASField::SetName
    - GMLASField::SetArray
    - GMLASField::SetMaxOccurs
    - IsCompatibleOfArray
    - GMLASField::SetXPath
    - XSSimpleTypeDefinition*::getItemType
    - GetAnnotationDoc
    - GMLASField::SetNotNullable
    - GMLASField::SetFixedValue
    - XSAttributeUse*::getConstraintType
    - GMLASField::SetDocumentation
    - GMLASField::SetList
    - XSAttributeDeclaration*::getAnnotation
    - XSAttributeDeclaration*::getNamespace
    - XSAttributeDeclaration*::getTypeDefinition
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::SetFieldFromAttribute(GMLASField &oField,\n
      \                                               XSAttributeUse *poAttr,\n                                                const
      CPLString &osXPathPrefix,\n                                                const
      CPLString &osNamePrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1633,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1634,1
    - Dst: auto::second::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1636,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1639,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1641,1
    - Dst: std::vector<XSElementDeclaration *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1643,1
    - Dst: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - poParentElt
    - apoImplEltList
    argTypes:
    - XSElementDeclaration*
    - std::vector<XSElementDeclaration *>
    constantsTouched: []
    func_position:
      end: 1649
      start: 1629
    functionDepth: 1
    functionLinenumber: 1629
    functionLinenumberEnd: 1649
    functionName: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    - IsEltCompatibleOfFC
    - XSElementDeclaration*::getAbstract
    - auto::second::size
    - std::vector<XSElementDeclaration *>::push_back
    - GMLASSchemaAnalyzer::GetConcreteImplementationTypes
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::GetConcreteImplementationTypes(\n    XSElementDeclaration
      *poParentElt,\n    std::vector<XSElementDeclaration *> &apoImplEltList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1661,1
    - Dst: GetMapPrefixToURI
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1667,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1668,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1677,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1678,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1680,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1681,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1687,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1689,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1694,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1695,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1698,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1705,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1708,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - osFullXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1713
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1713
    functionName: GMLASSchemaAnalyzer::GetConstraintChildrenElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - end
    - c_str
    - std::map::end
    - std::vector::size
    - find
    - IsEltCompatibleOfFC
    - std::map::find
    - substr
    - CPLError
    - MatchesRefXPath
    - GetMapPrefixToURI
    linkageType: ''
    returnType: std::vector<XSElementDeclaration *>
    signature: std::vector<XSElementDeclaration *> GMLASSchemaAnalyzer::GetConstraintChildrenElements(const
      CPLString &osFullXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1750,1
    - Dst: XSTypeDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1750,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1751,1
    - Dst: GetOGRGeometryTypeFromGMLEltName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1775,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - poTypeDef
    argTypes:
    - XSTypeDefinition*
    constantsTouched: []
    func_position:
      end: 1807
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1807
    functionName: GetOGRGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 4
    functionsReached:
    - XSTypeDefinition*::getName
    - CPL_ARRAYSIZE
    - GetOGRGeometryTypeFromGMLEltName
    - transcode
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetOGRGeometryType(XSTypeDefinition *poTypeDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASSchemaAnalyzer::GetPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1819,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1819,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1819,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1820,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1820,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1822,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1822,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1822,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1823,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1826,1
    - Dst: std::vector<XSElementDeclaration *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1828,1
    - Dst: std::vector<XSElementDeclaration *>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1828,1
    - Dst: std::vector<XSElementDeclaration *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1837,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1840,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1840,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1842,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1842,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1842,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1845,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1845,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1849,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1851,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1854,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1857,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1860,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1861,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1866,1
    - Dst: std::vector<XSElementDeclaration *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1867,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1872,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1873,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1874,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1875,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1875,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1880,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1881,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1882,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1882,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1888,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1888,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1888,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1890,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1891,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1892,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1893,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1894,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1895,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1896,1
    - Dst: std::vector<XSElementDeclaration *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1903,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1906,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1906,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1908,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1908,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1908,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1911,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1911,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1915,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1918,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1923,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1924,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1924,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1925,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1925,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1930,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1930,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1931,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1931,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1936,1
    - Dst: GMLASSchemaAnalyzer::BuildJunctionTableXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1937,1
    - Dst: GMLASFeatureClass::SetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1938,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1938,1
    - Dst: GMLASFeatureClass::SetChildXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1939,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1940,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1940,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1943,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1944,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1945,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1947,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1947,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1950,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1952,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1953,1
    - Dst: GMLASField::SetAbstractElementXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1954,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1955,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1956,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1958,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1963,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1964,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1964,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1964,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1965,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1966,1
    - Dst: getMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1966,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1967,1
    - Dst: getMaxOccursUnbounded
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1967,1
    - Dst: getMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1968,1
    - Dst: std::vector<XSElementDeclaration *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1970,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1974,1
    - Dst: reinterpret_cast<XSComplexTypeDefinition*>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1976,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1978,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1979,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1979,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1980,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1980,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1981,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1981,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1982,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1982,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1982,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1983,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1983,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1987,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1988,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:1997,1
    - Dst: std::vector<XSElementDeclaration *>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2000,1
    - Dst: GMLASField::SetAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2002,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2006,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2007,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2007,1
    - Dst: GMLASField::SetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2008,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2010,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 7
    argNames:
    - poElt
    - apoImplEltList
    - oClass
    - nMaxOccurs
    - bEltNameWillNeedPrefix
    - bForceJunctionTable
    - bCaseOfConstraintChildren
    argTypes:
    - XSElementDeclaration*
    - std::vector<XSElementDeclaration *>
    - GMLASFeatureClass
    - int
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2012
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 2012
    functionName: GMLASSchemaAnalyzer::CreateNonNestedRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached:
    - GMLASFeatureClass::AddField
    - XSElementDeclaration*::getName
    - GMLASField::SetCategory
    - std::vector<XSElementDeclaration *>::insert
    - GMLASSchemaAnalyzer::ExploreModelGroup
    - std::set::insert
    - CPLDebug
    - GMLASField::SetIncludeThisEltInBlob
    - GMLASSchemaAnalyzer::MakeXPath
    - GMLASField::GMLASField
    - getMaxOccursUnbounded
    - CPLString
    - GMLASSchemaAnalyzer::IsIgnoredXPath
    - GMLASFeatureClass::SetXPath
    - transcode
    - GMLASField::SetMinOccurs
    - GMLASField::SetType
    - std::vector<XSElementDeclaration *>::size
    - getMaxOccurs
    - GMLASField::SetAbstractElementXPath
    - getMinOccurs
    - CPLString::c_str
    - reinterpret_cast<XSComplexTypeDefinition*>
    - std::move
    - std::vector<XSElementDeclaration *>::empty
    - GMLASField::SetName
    - XSElementDeclaration*::getTypeDefinition
    - GMLASField::SetMaxOccurs
    - XSComplexTypeDefinition*::getParticle
    - std::set::find
    - CPLString::replaceAll
    - GMLASSchemaAnalyzer::GetPrefix
    - XSElementDeclaration*::getNamespace
    - GMLASSchemaAnalyzer::BuildJunctionTableXPath
    - GMLASFeatureClass::GetXPath
    - GMLASFeatureClass::GetName
    - GMLASField::SetAbstract
    - GMLASField::SetRelatedClassXPath
    - GMLASFeatureClass::SetChildXPath
    - GMLASFeatureClass::AddNestedClass
    - GMLASField::SetXPath
    - GMLASFeatureClass::GMLASFeatureClass
    - GMLASFeatureClass::SetName
    - std::vector<XSElementDeclaration *>::begin
    - GMLASFeatureClass::SetParentXPath
    - XSElementDeclaration*::getAbstract
    - push_back
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::CreateNonNestedRelationship(\n    XSElementDeclaration
      *poElt,\n    std::vector<XSElementDeclaration *> &apoImplEltList,\n    GMLASFeatureClass
      &oClass, int nMaxOccurs, bool bEltNameWillNeedPrefix,\n    bool bForceJunctionTable,
      bool bCaseOfConstraintChildren)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2022
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2022
    functionName: GMLASSchemaAnalyzer::IsIgnoredXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 3
    functionsReached:
    - MatchesRefXPath
    linkageType: ''
    returnType: bool
    signature: bool GMLASSchemaAnalyzer::IsIgnoredXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<XSModelGroup *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2039,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2044,1
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2051,1
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2058,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2059,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2061,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2066,1
    - Dst: XSParticle*::getElementTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2068,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2069,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2070,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2070,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2071,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2071,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2076,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2077,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2080,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2083,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2084,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2094,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2095,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2095,1
    - Dst: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2105,1
    - Dst: GMLASSchemaAnalyzer::GetConstraintChildrenElements
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2108,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2111,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2111,1
    - Dst: XSTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2111,1
    - Dst: GetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2112,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2116,1
    - Dst: GetOGRGeometryTypeFromGMLEltName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2117,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2122,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2122,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2130,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2130,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2132,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2134,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2136,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2138,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2138,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2140,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2144,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2144,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2144,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2145,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2145,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2147,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2150,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2151,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2157,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2158,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2159,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2160,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2163,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2167,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2168,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2168,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2170,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2172,1
    - Dst: std::set<XSElementDeclaration *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2175,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2176,1
    - Dst: std::vector<XSElementDeclaration *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2177,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2178,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2181,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2183,1
    - Dst: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2187,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2189,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2204,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2205,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2210,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2218,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2220,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2220,1
    - Dst: std::set<XSElementDeclaration *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2225,1
    - Dst: std::set<XSElementDeclaration *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2226,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2228,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2229,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2230,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2231,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2232,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2233,1
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2236,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2240,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2243,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2244,1
    - Dst: XSTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2244,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2247,1
    - Dst: std::vector<XSElementDeclaration *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2248,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2249,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2250,1
    - Dst: std::set<XSElementDeclaration *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2256,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2259,1
    - Dst: XSComplexTypeDefinition*::getAttributeUses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2265,1
    - Dst: XSAttributeUseList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2272,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2273,1
    - Dst: GMLASSchemaAnalyzer::SetFieldFromAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2274,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2279,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2279,1
    - Dst: GMLASField::GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2280,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2283,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2286,1
    - Dst: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2293,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2295,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2307,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2308,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2310,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2317,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2320,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2321,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2330,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2330,1
    - Dst: reinterpret_cast<XSComplexTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2332,1
    - Dst: XSComplexTypeDefinition*::getAttributeUses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2336,1
    - Dst: XSAttributeUseList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2342,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2343,1
    - Dst: GMLASSchemaAnalyzer::SetFieldFromAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2344,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2349,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2349,1
    - Dst: GMLASField::GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2350,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2353,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2355,1
    - Dst: XSElementDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2364,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2366,1
    - Dst: XSElementDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2367,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2370,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2370,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2372,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2373,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2374,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2376,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2378,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2379,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2380,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2387,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2387,1
    - Dst: XSTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2387,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2388,1
    - Dst: XSTypeDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2388,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2389,1
    - Dst: GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2392,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2396,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2399,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2399,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2399,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2400,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2400,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2402,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2405,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2406,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2413,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2414,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2415,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2416,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2419,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2421,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2422,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2423,1
    - Dst: std::set<XSElementDeclaration *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2426,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2427,1
    - Dst: std::vector<XSElementDeclaration *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2428,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2429,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2433,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2435,1
    - Dst: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2439,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2441,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2457,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2464,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2467,1
    - Dst: XSParticle*::getModelGroupTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2472,1
    - Dst: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2473,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2489,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2492,1
    - Dst: MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2502,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2506,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2508,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 163
    argCount: 10
    argNames:
    - osParentXPath
    - poModelGroup
    - nRecursionCounter
    - oSetVisitedEltDecl
    - oSetVisitedModelGroups
    - oVectorEltsForTopClass
    - aoSetXPathEltsForTopClass
    - poModel
    - bSimpleEnoughOut
    - nCountSubEltsOut
    argTypes:
    - CPLString
    - XSModelGroup*
    - int
    - std::set<XSElementDeclaration *>
    - std::set<XSModelGroup *>
    - std::vector<XSElementDeclaration *>
    - std::set<CPLString>
    - XSModel*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 2515
      start: 2028
    functionDepth: 4
    functionLinenumber: 2028
    functionLinenumberEnd: 2515
    functionName: GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 2
    functionsReached:
    - XSElementDeclaration*::getName
    - XSTypeDefinition*::getTypeCategory
    - std::vector::size
    - CPLDebug
    - GMLASSchemaAnalyzer::MakeXPath
    - GMLASField::GMLASField
    - GetOGRGeometryTypeFromGMLEltName
    - CPLError
    - GMLASSchemaAnalyzer::IsIgnoredXPath
    - MatchesRefXPath
    - std::set<CPLString>::end
    - GMLASSchemaAnalyzer::GetConcreteImplementationTypes
    - std::set<XSElementDeclaration *>::insert
    - std::set<XSElementDeclaration *>::find
    - transcode
    - reinterpret_cast<XSComplexTypeDefinition *>
    - CPLGetXMLValue
    - XSTypeDefinition*::getNamespace
    - end
    - std::set<CPLString>::insert
    - std::set<XSElementDeclaration *>::end
    - CPLString::empty
    - XSParticle*::getTermType
    - insert
    - find
    - XSParticle*::getElementTerm
    - std::vector::begin
    - XSAttributeUseList*::elementAt
    - XSTypeDefinition*::getName
    - CPLString::c_str
    - std::move
    - std::vector::empty
    - std::vector::insert
    - c_str
    - GMLASField::GetFixedValue
    - XSComplexTypeDefinition*::getAttributeUses
    - GMLASField::GetXPath
    - std::set<XSModelGroup *>::insert
    - XSElementDeclaration*::getTypeDefinition
    - CPLDestroyXMLNode
    - IsEltCompatibleOfFC
    - XSComplexTypeDefinition*::getParticle
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - XSElementDeclaration*::getAnnotation
    - XSElementDeclaration*::getNamespace
    - GMLASSchemaAnalyzer::GetConstraintChildrenElements
    - XSParticle*::getModelGroupTerm
    - std::vector<XSElementDeclaration *>::push_back
    - std::set<CPLString>::find
    - XSParticleList*::elementAt
    - GMLASSchemaAnalyzer::SetFieldFromAttribute
    - GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel
    - XSParticleList*::size
    - GMLASSchemaAnalyzer::IsGMLNamespace
    - GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
    - GetOGRGeometryType
    - XSElementDeclaration*::getAbstract
    - XSModelGroup*::getParticles
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::FindElementsWithMustBeToLevel(\n    const
      CPLString &osParentXPath, XSModelGroup *poModelGroup,\n    int nRecursionCounter,
      std::set<XSElementDeclaration *> &oSetVisitedEltDecl,\n    std::set<XSModelGroup
      *> &oSetVisitedModelGroups,\n    std::vector<XSElementDeclaration *> &oVectorEltsForTopClass,\n
      \   std::set<CPLString> &aoSetXPathEltsForTopClass, XSModel *poModel,\n    bool
      &bSimpleEnoughOut, int &nCountSubEltsOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2523,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2526,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - osURI
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 2528
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2528
    functionName: GMLASSchemaAnalyzer::IsGMLNamespace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 4
    functionsReached:
    - CPLString::find
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool GMLASSchemaAnalyzer::IsGMLNamespace(const CPLString &osURI)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2538,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2539,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2541,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2542,1
    - Dst: XSParticle*::getElementTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2544,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2545,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2545,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2548,1
    - Dst: XSParticle*::getModelGroupTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2550,1
    - Dst: GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - poModelGroup
    - oMapCountOccurrencesOfSameName
    argTypes:
    - XSModelGroup*
    - std::map<CPLString, int>
    constantsTouched: []
    func_position:
      end: 2555
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2555
    functionName: GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 2
    functionsReached:
    - XSParticleList*::elementAt
    - XSElementDeclaration*::getName
    - XSParticle*::getTermType
    - XSParticle*::getElementTerm
    - XSParticleList*::size
    - GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
    - XSParticle*::getModelGroupTerm
    - XSModelGroup*::getParticles
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName(\n    XSModelGroup
      *poModelGroup,\n    std::map<CPLString, int> &oMapCountOccurrencesOfSameName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nVal1
    - nVal2
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2564
      start: 2561
    functionDepth: 0
    functionLinenumber: 2561
    functionLinenumberEnd: 2564
    functionName: ComposeMinOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ComposeMinOccurs(int nVal1, int nVal2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nVal1
    - nVal2
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2575
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2575
    functionName: ComposeMaxOccurs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ComposeMaxOccurs(int nVal1, int nVal2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<XSModelGroup *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2587,1
    - Dst: std::set<XSModelGroup *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2590,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2591,1
    - Dst: std::set<XSModelGroup *>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2599,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2609,1
    - Dst: XSAttributeUseList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2610,1
    - Dst: GMLASSchemaAnalyzer::SetFieldFromAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2611,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2611,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2616,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2616,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2619,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2620,1
    - Dst: GMLASField::GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2622,1
    - Dst: GMLASField::GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2623,1
    - Dst: GMLASField::SetIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2625,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2633,1
    - Dst: XSModelGroup*::getParticles
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2637,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2642,1
    - Dst: XSModelGroup*::getCompositor
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2643,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2644,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2645,1
    - Dst: GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2648,1
    - Dst: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2652,1
    - Dst: GMLASSchemaAnalyzer::CreateNonNestedRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2653,1
    - Dst: XSParticleList*::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2668,1
    - Dst: XSParticleList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2670,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2679,1
    - Dst: XSParticle*::getElementTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2681,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2682,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2682,1
    - Dst: std::map<CPLString, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2684,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2688,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2688,1
    - Dst: GMLASSchemaAnalyzer::GetPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2690,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2691,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2694,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2697,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2697,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2700,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2703,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2704,1
    - Dst: XSElementDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2710,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2713,1
    - Dst: XSElementDeclaration*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2713,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2716,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2716,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2718,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2719,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2720,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2722,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2724,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2725,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2726,1
    - Dst: XSElementDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2730,1
    - Dst: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2733,1
    - Dst: GMLASSchemaAnalyzer::GetConstraintChildrenElements
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2736,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2741,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2743,1
    - Dst: GMLASSchemaAnalyzer::CreateNonNestedRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2745,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2753,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2753,1
    - Dst: XSTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2753,1
    - Dst: GetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2754,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2756,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2757,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2758,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2759,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2760,1
    - Dst: GMLASField::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2768,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2769,1
    - Dst: GMLASField::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2772,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2773,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2774,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2774,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2776,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2779,1
    - Dst: GetOGRGeometryTypeFromGMLEltName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2780,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2783,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2784,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2785,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2786,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2788,1
    - Dst: GMLASField::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2789,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2790,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2793,1
    - Dst: GMLASField::SetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2794,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2795,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2795,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2797,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2801,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2801,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2806,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2807,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2808,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2809,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2812,1
    - Dst: GMLASField::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2813,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2814,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2819,1
    - Dst: GMLASField::SetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2821,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2822,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2822,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2824,1
    - Dst: GMLASField::AddAlternateXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2827,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2828,1
    - Dst: GMLASSchemaAnalyzer::MakeXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2829,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2829,1
    - Dst: XSElementDeclaration*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2829,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2830,1
    - Dst: XSElementDeclaration*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2830,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2833,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2838,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2839,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2840,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2841,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2842,1
    - Dst: GMLASSchemaAnalyzer::CreateNonNestedRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2844,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2853,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2857,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2859,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2863,1
    - Dst: reinterpret_cast<XSSimpleTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2867,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2868,1
    - Dst: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2869,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2870,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2871,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2872,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2872,1
    - Dst: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2879,1
    - Dst: XSSimpleTypeDefinition*::getItemType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2879,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2882,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2882,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2885,1
    - Dst: GMLASField::SetList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2889,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2890,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2895,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2895,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2897,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2905,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2906,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2906,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2908,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2909,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2910,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2911,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2912,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2913,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2914,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2914,1
    - Dst: GMLASField::GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2915,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2916,1
    - Dst: GMLASFeatureClass::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2917,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2917,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2919,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2921,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2922,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2923,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2924,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2926,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2926,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2927,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2931,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2932,1
    - Dst: XSElementDeclaration*::getNillable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2933,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2935,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2937,1
    - Dst: XSElementDeclaration*::getNillable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2943,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2946,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2947,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2948,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2949,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2950,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2951,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2952,1
    - Dst: XSTypeDefinition*::getTypeCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2958,1
    - Dst: reinterpret_cast<XSComplexTypeDefinition *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2962,1
    - Dst: XSComplexTypeDefinition*::getAttributeUses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2987,1
    - Dst: XSAttributeUseList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2992,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2993,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2996,1
    - Dst: GMLASSchemaAnalyzer::SetFieldFromAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:2997,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3004,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3005,1
    - Dst: GMLASSchemaAnalyzer::IsIgnoredXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3008,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3008,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3011,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3012,1
    - Dst: GMLASField::GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3014,1
    - Dst: GMLASField::GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3015,1
    - Dst: GMLASField::SetIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3017,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3025,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3025,1
    - Dst: XSComplexTypeDefinition*::getAttributeWildcard
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3029,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3032,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3033,1
    - Dst: GMLASField::GetTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3033,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3037,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3041,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3043,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3044,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3045,1
    - Dst: XSWildcard*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3045,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3047,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3047,1
    - Dst: XSComplexTypeDefinition*::getSimpleType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3050,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3055,1
    - Dst: GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3056,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3058,1
    - Dst: GMLASField::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3058,1
    - Dst: GMLASField::GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3059,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3064,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3065,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3066,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3067,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3071,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3072,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3073,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3074,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3080,1
    - Dst: SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3082,1
    - Dst: SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3083,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3087,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3088,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3089,1
    - Dst: XSElementDeclaration*::getNillable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3095,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3098,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3099,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3100,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3102,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3103,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3104,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3105,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3105,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3108,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3109,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3109,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3111,1
    - Dst: GMLASField::IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3112,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3114,1
    - Dst: IsAnyType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3118,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3120,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3121,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3124,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3125,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3126,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3127,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3133,1
    - Dst: SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3135,1
    - Dst: SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3136,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3140,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3141,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3142,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3144,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3145,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3145,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3147,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3147,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3151,1
    - Dst: std::set<XSModelGroup *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3152,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3153,1
    - Dst: std::set<XSModelGroup *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3154,1
    - Dst: GMLASSchemaAnalyzer::CreateNonNestedRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3156,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3169,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3170,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3170,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3172,1
    - Dst: GMLASFeatureClass::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3173,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3173,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3177,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3180,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3181,1
    - Dst: GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3188,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3189,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3192,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3193,1
    - Dst: GMLASSchemaAnalyzer::IsGMLNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3205,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3205,1
    - Dst: XSTypeDefinition*::getNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3205,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3206,1
    - Dst: XSTypeDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3206,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3207,1
    - Dst: GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3210,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3215,1
    - Dst: IsEltCompatibleOfFC
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3219,1
    - Dst: XSComplexTypeDefinition*::getAttributeUses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3223,1
    - Dst: XSAttributeUseList*::elementAt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3231,1
    - Dst: XSAttributeUse*::getAttrDeclaration
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3233,1
    - Dst: XSAttributeDeclaration*::getTypeDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3235,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3236,1
    - Dst: XSSimpleTypeDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3236,1
    - Dst: XSAttributeUse*::getRequired
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3238,1
    - Dst: XSElementDeclaration*::getNillable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3251,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3253,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3254,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3256,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3258,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3260,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3261,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3262,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3262,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3265,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3267,1
    - Dst: "GMLASField::\n                                        MakePKIDFieldXPathFromXLinkHrefXPath"
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3268,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3272,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3274,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3275,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3276,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3277,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3280,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3281,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3281,1
    - Dst: XSElementDeclaration*::getAbstract
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3285,1
    - Dst: XSElementDeclaration*::getNillable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3291,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3293,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3294,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3296,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3298,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3299,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3300,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3301,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3301,1
    - Dst: GMLASSchemaAnalyzer::GetConcreteImplementationTypes
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3311,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3313,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3315,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3318,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3319,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3327,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3330,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3331,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3344,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3345,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3348,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3349,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3351,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3352,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3354,1
    - Dst: GMLASField::SetNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3355,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3357,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3357,1
    - Dst: GMLASFeatureClass::GetNestedClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3360,1
    - Dst: GMLASFeatureClass::GetNestedClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3377,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3378,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3379,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3380,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3380,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3381,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3381,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3388,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3389,1
    - Dst: GMLASField::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3390,1
    - Dst: GMLASField::GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3391,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3393,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3395,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3397,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3398,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3402,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3417,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3418,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3419,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3420,1
    - Dst: GMLASFeatureClass::PrependFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3423,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3426,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3426,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3429,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3429,1
    - Dst: GMLASFeatureClass::SetIsRepeatedSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3432,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3434,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3435,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3436,1
    - Dst: GMLASField::SetRepetitionOnSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3439,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3440,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3441,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3442,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3443,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3444,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3446,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3449,1
    - Dst: GMLASFeatureClass::SetIsRepeatedSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3453,1
    - Dst: GMLASFeatureClass::PrependFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3455,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3457,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3460,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3461,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3462,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3465,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3467,1
    - Dst: ComposeMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3467,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3469,1
    - Dst: ComposeMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3469,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3474,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3475,1
    - Dst: XSComplexTypeDefinition*::getParticle
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3478,1
    - Dst: GMLASField::SetRepetitionOnSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3481,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3482,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3483,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3485,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3487,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3487,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3488,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3501,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3502,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3502,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3504,1
    - Dst: GMLASFeatureClass::AppendFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3505,1
    - Dst: GMLASFeatureClass::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3506,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3506,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3507,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3509,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3510,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3511,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3512,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3513,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3514,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3516,1
    - Dst: GMLASField::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3516,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3517,1
    - Dst: GMLASFeatureClass::AppendFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3521,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3522,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3524,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3529,1
    - Dst: XSParticle*::getModelGroupTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3531,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3534,1
    - Dst: GMLASSchemaAnalyzer::GetGroupDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3537,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3540,1
    - Dst: XSModelGroupDefinition*::getName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3540,1
    - Dst: GMLASFeatureClass::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3541,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3542,1
    - Dst: XSModelGroupDefinition*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3542,1
    - Dst: XSModelGroup*::getCompositor
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3547,1
    - Dst: GMLASFeatureClass::GMLASFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3552,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3553,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3553,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3554,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3554,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3555,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3565,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3566,1
    - Dst: IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3568,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3576,1
    - Dst: SetMayAppearOutOfOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3578,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3579,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3586,1
    - Dst: GMLASFeatureClass::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3588,1
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3588,1
    - Dst: GMLASFeatureClass::SetIsGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3589,1
    - Dst: GMLASFeatureClass::SetIsRepeatedSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3590,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3592,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3592,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3595,1
    - Dst: GMLASFeatureClass::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3605,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3605,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3608,1
    - Dst: IsCompatibleOfArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3609,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3609,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3609,1
    - Dst: GMLASFeatureClass::GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3611,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3612,1
    - Dst: ComposeMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3613,1
    - Dst: GMLASField::GetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3613,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3614,1
    - Dst: ComposeMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3615,1
    - Dst: GMLASField::GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3615,1
    - Dst: GMLASField::SetArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3616,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3617,1
    - Dst: GMLASFeatureClass::AddNestedClass
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3621,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3623,1
    - Dst: GMLASField::SetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3624,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3625,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3626,1
    - Dst: GMLASField::SetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3627,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3627,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3628,1
    - Dst: GMLASSchemaAnalyzer::ExploreModelGroup
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3635,1
    - Dst: XSParticle*::getTermType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3644,1
    - Dst: XSParticle*::getWildcardTerm
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3648,1
    - Dst: GMLASField::GMLASField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3649,1
    - Dst: GMLASField::SetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3650,1
    - Dst: GMLASFeatureClass::GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3650,1
    - Dst: GMLASField::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3651,1
    - Dst: GMLASField::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3652,1
    - Dst: GMLASField::SetIncludeThisEltInBlob
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3653,1
    - Dst: GMLASField::SetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3654,1
    - Dst: GMLASField::SetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3655,1
    - Dst: GMLASField::SetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3656,1
    - Dst: GetAnnotationDoc
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3657,1
    - Dst: XSWildcard*::getAnnotation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3657,1
    - Dst: GMLASFeatureClass::AddField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp:3658,1
    CyclomaticComplexity: 151
    EdgeCount: 151
    ICount: 465
    argCount: 7
    argNames:
    - poModelGroup
    - poMainAttrList
    - oClass
    - nRecursionCounter
    - oSetVisitedModelGroups
    - poModel
    - oMapCountOccurrencesOfSameName
    argTypes:
    - XSModelGroup*
    - XSAttributeUseList*
    - GMLASFeatureClass
    - int
    - std::set<XSModelGroup *>
    - XSModel*
    - std::map<CPLString, int>
    constantsTouched: []
    func_position:
      end: 3663
      start: 2581
    functionDepth: 4
    functionLinenumber: 2581
    functionLinenumberEnd: 3663
    functionName: GMLASSchemaAnalyzer::ExploreModelGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasschemaanalyzer.cpp
    functionUses: 3
    functionsReached:
    - std::set<XSModelGroup *>::find
    - std::vector::size
    - GMLASSchemaAnalyzer::ExploreModelGroup
    - CPLDebug
    - GMLASField::GetDefaultValue
    - GMLASField::GMLASField
    - CPLGetXMLValue
    - GMLASSchemaAnalyzer::GetConcreteImplementationTypes
    - GMLASField::SetGeomType
    - ComposeMaxOccurs
    - XSComplexTypeDefinition*::getSimpleType
    - reinterpret_cast<XSSimpleTypeDefinition *>
    - SetMayAppearOutOfOrder
    - GMLASFeatureClass::PrependFields
    - GMLASField::GetXPath
    - std::set<XSModelGroup *>::insert
    - XSElementDeclaration*::getTypeDefinition
    - GMLASField::SetName
    - GMLASField::SetArray
    - XSComplexTypeDefinition*::getParticle
    - CPLParseXMLString
    - CPLStripXMLNamespace
    - GMLASField::GetCategory
    - XSModelGroup*::getCompositor
    - GMLASSchemaAnalyzer::SetFieldFromAttribute
    - GMLASField::GetMaxOccurs
    - GMLASSchemaAnalyzer::GetTopElementDeclarationFromXPath
    - GMLASSchemaAnalyzer::IsGMLNamespace
    - GetCategory
    - XSComplexTypeDefinition*::getAttributeWildcard
    - XSElementDeclaration*::getAbstract
    - XSModelGroup*::getParticles
    - GMLASFeatureClass::SetDocumentation
    - GMLASFeatureClass::AddField
    - XSElementDeclaration*::getName
    - GMLASSchemaAnalyzer::CreateNonNestedRelationship
    - XSAttributeUse*::getRequired
    - GMLASSchemaAnalyzer::MakeXPath
    - reinterpret_cast<XSComplexTypeDefinition *>
    - GMLASField::GetName
    - XSElementDeclaration*::getNillable
    - GMLASField::SetMinOccurs
    - XSWildcard*::getAnnotation
    - GMLASField::GetMinOccurs
    - XSAttributeUseList*::elementAt
    - XSSimpleTypeDefinition*::getName
    - find
    - std::set<XSModelGroup *>::end
    - std::move
    - XSAttributeUse*::getAttrDeclaration
    - std::vector::empty
    - GMLASField::GetFixedValue
    - GMLASSchemaAnalyzer::GetGroupDefinition
    - XSElementDeclaration*::getAnnotation
    - GetType
    - XSParticle*::getModelGroupTerm
    - GMLASField::SetRelatedClassXPath
    - GMLASField::GetTypeFromString
    - XSAttributeDeclaration*::getTypeDefinition
    - GMLASFeatureClass::AppendFields
    - GMLASField::SetCategory
    - XSTypeDefinition*::getTypeCategory
    - "GMLASField::\n                                        MakePKIDFieldXPathFromXLinkHrefXPath"
    - CPLString
    - std::vector::push_back
    - CPLString::empty
    - XSParticle*::getWildcardTerm
    - XSTypeDefinition*::getNamespace
    - XSParticle*::getTermType
    - XSTypeDefinition*::getName
    - IsArray
    - XSModelGroupDefinition*::getAnnotation
    - CPLString::c_str
    - ComposeMinOccurs
    - XSModelGroupDefinition*::getName
    - std::map<CPLString, int>::find
    - XSComplexTypeDefinition*::getAttributeUses
    - CPLDestroyXMLNode
    - CPLSPrintf
    - GMLASFeatureClass::AddNestedClass
    - GMLASFeatureClass::GetFields
    - GMLASField::GetTypeName
    - XSParticleList*::elementAt
    - SetMinOccurs
    - GMLASFeatureClass::SetName
    - GetAnnotationDoc
    - GMLASField::SetIncludeThisEltInBlob
    - GMLASSchemaAnalyzer::BuildMapCountOccurrencesOfSameName
    - GetOGRGeometryTypeFromGMLEltName
    - CPLError
    - GMLASSchemaAnalyzer::IsIgnoredXPath
    - GMLASField::AddAlternateXPath
    - GMLASFeatureClass::SetXPath
    - transcode
    - GMLASField::GetType
    - end
    - GMLASSchemaAnalyzer::SetFieldTypeAndWidthFromDefinition
    - GMLASField::SetType
    - GMLASFeatureClass::SetIsGroup
    - XSParticle*::getElementTerm
    - IsAnyType
    - GMLASField::SetMaxOccurs
    - IsEltCompatibleOfFC
    - GMLASFeatureClass::SetIsRepeatedSequence
    - GMLASSchemaAnalyzer::GetPrefix
    - XSElementDeclaration*::getNamespace
    - GMLASSchemaAnalyzer::GetConstraintChildrenElements
    - CPL_IGNORE_RET_VAL
    - GMLASField::IsArray
    - GMLASFeatureClass::GetXPath
    - IsCompatibleOfArray
    - GMLASFeatureClass::GetName
    - SetNotNullable
    - GMLASField::SetRepetitionOnSequence
    - GMLASField::SetXPath
    - XSParticleList*::size
    - XSSimpleTypeDefinition*::getItemType
    - GMLASFeatureClass::GMLASFeatureClass
    - GMLASFeatureClass::GetNestedClasses
    - GMLASField::SetNotNullable
    - GetOGRGeometryType
    - GMLASField::SetIgnored
    - GMLASField::SetDocumentation
    - GMLASField::SetList
    linkageType: ''
    returnType: bool
    signature: "bool GMLASSchemaAnalyzer::ExploreModelGroup(\n    XSModelGroup *poModelGroup,
      XSAttributeUseList *poMainAttrList,\n    GMLASFeatureClass &oClass, int nRecursionCounter,\n
      \   std::set<XSModelGroup *> &oSetVisitedModelGroups, XSModel *poModel,\n    const
      std::map<CPLString, int> &oMapCountOccurrencesOfSameName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:31,1
    - Dst: GDALGetCacheDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:33,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:34,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:36,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:41,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:43,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: GMLASConfiguration::Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - GDALGetCacheDirectory
    - CPLDebug
    - CPLError
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void GMLASConfiguration::Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - psNode
    - pszKey
    - bDefault
    argTypes:
    - CPLXMLNode*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: CPLGetXMLBoolValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    linkageType: ''
    returnType: bool
    signature: "bool CPLGetXMLBoolValue(CPLXMLNode *psNode, const char *pszKey,\n
      \                              bool bDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:72,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:80,1
    - Dst: isalpha
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:81,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:81,1
    - Dst: isalpha
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:85,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:85,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:89,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:89,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:90,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:90,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:96,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:96,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:98,1
    - Dst: isalpha
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:99,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:99,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 17
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 110
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 110
    functionName: IsValidXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - static_cast<unsigned char>
    - CPLString::size
    - isalpha
    - isalnum
    linkageType: ''
    returnType: bool
    signature: bool IsValidXPath(const CPLString &osXPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::vector<CPLString> *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:121,1
    - Dst: CPL_STDCALL::CPLGetErrorHandlerUserData
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:121,1
    - Dst: std::vector*::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszMsg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: CPL_STDCALL::GMLASConfigurationErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - CPL_STDCALL::CPLGetErrorHandlerUserData
    - std::vector*::push_back
    - static_cast<std::vector<CPLString> *>
    linkageType: ''
    returnType: void
    signature: "void CPL_STDCALL GMLASConfigurationErrorHandler(CPLErr /*eErr*/,\n
      \                                                      CPLErrorNum /*nType*/,\n
      \                                                      const char *pszMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:132,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:139,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:142,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:143,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:144,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:144,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:146,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:152,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:155,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:155,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - psContainerNode
    - oMap
    argTypes:
    - CPLXMLNode*
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 162
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 162
    functionName: ParseNamespaces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - c_str
    - CPLError
    - CPLGetXMLNode
    - EQUAL
    - CPLGetXMLValue
    - std::map<CPLString, CPLString>::find
    - std::string::c_str
    - std::map<CPLString, CPLString>::end
    linkageType: ''
    returnType: void
    signature: "void ParseNamespaces(CPLXMLNode *psContainerNode,\n                            std::map<CPLString,
      CPLString> &oMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:185,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:186,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:186,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:187,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:188,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:189,1
    - Dst: GMLASConfXMLGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:189,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:190,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:190,1
    - Dst: GMLASConfXMLGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:190,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bUnlinkAfterUse
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 196
    functionName: GMLASConfiguration::GetDefaultConfFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - VSIFCloseL
    - const_cast<GByte *>
    - reinterpret_cast<const GByte *>
    - GMLASConfXMLGetFileContent
    - strlen
    - std::string
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string GMLASConfiguration::GetDefaultConfFile(bool &bUnlinkAfterUse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:205,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:206,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:207,1
    - Dst: GMLASConfiguration::Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:210,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:214,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:217,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:217,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:236,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:237,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:238,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:238,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:239,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:240,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:240,1
    - Dst: GMLASConfXSDGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:241,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:242,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:242,1
    - Dst: GMLASConfXSDGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:242,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:250,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:251,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:252,1
    - Dst: CPLPushErrorHandlerEx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:253,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:255,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:256,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:257,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:257,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:260,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:262,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:263,1
    - Dst: CPLErrorSetState
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:268,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:273,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:274,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:274,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:279,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:282,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:287,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:290,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:294,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:298,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:304,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:309,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:312,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:316,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:320,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:324,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:327,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:330,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:333,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:337,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:337,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:339,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:342,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:347,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:351,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:351,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:353,1
    - Dst: ParseNamespaces
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:361,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:363,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:364,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:367,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:369,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:378,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:380,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:384,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:384,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:388,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:388,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:394,1
    - Dst: ParseNamespaces
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:403,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:408,1
    - Dst: IsValidXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:409,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:417,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:419,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:420,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:426,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:427,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:434,1
    - Dst: ParseNamespaces
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:441,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:447,1
    - Dst: IsValidXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:450,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:452,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:462,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:463,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:470,1
    - Dst: LoadFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:472,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:476,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:480,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:480,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:481,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:483,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:483,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:485,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:487,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:489,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:491,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:494,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:496,1
    - Dst: GMLASConfiguration::Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:500,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 114
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 503
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 503
    functionName: GMLASConfiguration::Load
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - std::vector::size
    - CPLError
    - CPLGetXMLValue
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - LoadFromXML
    - std::string::empty
    - IsValidXPath
    - CPLGetLastErrorMsg
    - CPLPushErrorHandlerEx
    - CPLPopErrorHandler
    - strlen
    - std::vector::empty
    - CPLTestBool
    - static_cast<int>
    - c_str
    - VSIUnlink
    - CPLSPrintf
    - const_cast<GByte *>
    - CPLParseXMLString
    - CPLGetLastErrorNo
    - min
    - CPL_IGNORE_RET_VAL
    - strstr
    - VSIFileFromMemBuffer
    - GMLASConfXSDGetFileContent
    - CPLGetXMLBoolValue
    - CPLParseXMLFile
    - VSIFCloseL
    - CPLGetXMLNode
    - ParseNamespaces
    - GMLASConfiguration::Finalize
    - reinterpret_cast<const GByte *>
    - EQUAL
    - max
    - CPLGetLastErrorType
    - push_back
    - VSIMemGenerateHiddenFilename
    - CPLErrorSetState
    linkageType: ''
    returnType: bool
    signature: bool GMLASConfiguration::Load(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:511,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:511,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:513,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:513,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:514,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:517,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:517,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:519,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:520,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:521,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:523,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:524,1
    - Dst: GDALGetCacheDirectory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:526,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:527,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:529,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:535,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:539,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:546,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:546,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:548,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:555,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:558,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:561,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:566,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:572,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:572,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:574,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:581,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:583,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:584,1
    - Dst: GMLASXLinkResolutionConf::URLSpecificResolution::m_aosNameValueHTTPHeaders::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:585,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:586,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:589,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:592,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:593,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:594,1
    - Dst: GMLASXLinkResolutionConf::URLSpecificResolution::m_aoFields::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:595,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:595,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:599,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:599,1
    - Dst: CPLGetXMLBoolValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp:603,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 607
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 607
    functionName: GMLASXLinkResolutionConf::LoadFromXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasconf.cpp
    functionUses: 0
    functionsReached:
    - std::pair<CPLString, CPLString>
    - empty
    - atoi
    - CPLGetXMLBoolValue
    - GDALGetCacheDirectory
    - CPLSPrintf
    - GMLASXLinkResolutionConf::URLSpecificResolution::m_aosNameValueHTTPHeaders::push_back
    - EQUAL
    - strcmp
    - std::move
    - GMLASXLinkResolutionConf::URLSpecificResolution::m_aoFields::push_back
    - push_back
    - CPLGetXMLValue
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: bool GMLASXLinkResolutionConf::LoadFromXML(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLASFeatureClass::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:28,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:28,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:31,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:32,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:34,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:34,1
    - Dst: GetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:37,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:42,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:43,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:45,1
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:53,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:54,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:54,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:56,1
    - Dst: IsNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:57,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:58,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:60,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:61,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:65,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:67,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:68,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:79,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:80,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:82,1
    - Dst: GetLayersMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:86,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:88,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:88,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:89,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:89,1
    - Dst: GetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:90,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:92,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:96,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:96,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:98,1
    - Dst: IsTopLevelElt
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:98,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:104,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:106,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:113,1
    - Dst: OGRGMLASLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:114,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:116,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:117,1
    - Dst: GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:120,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:122,1
    - Dst: GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:123,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:126,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:127,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - poDS
    - oFC
    - poParentLayer
    - bAlwaysGenerateOGRPKId
    argTypes:
    - OGRGMLASDataSource*
    - GMLASFeatureClass
    - OGRGMLASLayer*
    - bool
    constantsTouched: []
    func_position:
      end: 129
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 129
    functionName: OGRGMLASLayer::OGRGMLASLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLASLayer::GetIDFieldIdx
    - std::vector::size
    - GetParentXPath
    - Reference
    - OGRFieldDefn::SetNullable
    - GetFieldDefn
    - SetGeomType
    - CPLString::c_str
    - GetDocumentation
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - GetFields
    - static_cast<int>
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - IsTopLevelElt
    - GetType
    - CPL_IGNORE_RET_VAL
    - SetDescription
    - OGRFeature::OGRFeature
    - GMLASFeatureClass::GetName
    - GetXPath
    - OGRGMLASLayer::GetLayerDefn
    - IsNotNullable
    - OGRGMLASLayer::GetName
    - OGRFeature*::SetField
    - GetLayersMetadataLayer
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASLayer::OGRGMLASLayer(OGRGMLASDataSource *poDS,\n                             const
      GMLASFeatureClass &oFC,\n                             OGRGMLASLayer *poParentLayer,\n
      \                            bool bAlwaysGenerateOGRPKId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:137,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:140,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:141,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:143,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: OGRGMLASLayer::OGRGMLASLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRGMLASLayer::GetName
    - Reference
    - SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRGMLASLayer::OGRGMLASLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:156,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:160,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:164,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:168,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:172,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - psNode
    - eType
    - eSubType
    argTypes:
    - CPLXMLNode*
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: GetSWEChildAndType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *GetSWEChildAndType(CPLXMLNode *psNode, OGRFieldType &eType,\n
      \                                     OGRFieldSubType &eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:194,1
    - Dst: OGRGMLASLayer*::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:195,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:198,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:199,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:206,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:209,1
    - Dst: GetSWEChildAndType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:212,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:213,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:214,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:215,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:219,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:219,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:220,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:220,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:221,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:222,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:223,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:223,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:226,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:228,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:229,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:230,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:231,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:235,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:236,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:238,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - poParentLayer
    - psDataRecord
    - poFieldsMetadataLayer
    argTypes:
    - OGRGMLASLayer*
    - CPLXMLNode*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 243
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 243
    functionName: OGRGMLASLayer::ProcessDataRecordOfDataArrayCreateFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - OGRGMLASLayer*::GetLayerDefn
    - GetSWEChildAndType
    - OGRGMLASLayer*::GetIDFieldIdx
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - strcmp
    - OGRGMLASLayer::GetName
    - OGRFieldDefn::SetNullable
    - AddFieldDefn
    - CPLString
    - OGRLayer*::GetLayerDefn
    - OGRFeature*::SetField
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - OGRLayer*::CreateFeature
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASLayer::ProcessDataRecordOfDataArrayCreateFields(\n    OGRGMLASLayer
      *poParentLayer, CPLXMLNode *psDataRecord,\n    OGRLayer *poFieldsMetadataLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:257,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:260,1
    - Dst: GetSWEChildAndType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:265,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:266,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:267,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:269,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:270,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:275,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:278,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:278,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:279,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:283,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:283,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:284,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:284,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:286,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:287,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:288,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:289,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:291,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:292,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:293,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:294,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:296,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:297,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:300,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:301,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:304,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:305,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:306,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:308,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:309,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:316,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:319,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:331,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:334,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:339,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:347,1
    - Dst: std::vector<OGRFeature *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:355,1
    - Dst: RemapFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:357,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:360,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 3
    argNames:
    - psDataRecord
    - apoFeatures
    - poFieldsMetadataLayer
    argTypes:
    - CPLXMLNode*
    - std::vector<OGRFeature *>
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 364
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 364
    functionName: OGRGMLASLayer::ProcessDataRecordCreateFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - RemapFields
    - strcmp
    - CPLString
    - GetFieldIndex
    - std::vector<OGRFeature *>::size
    - end
    - CPLCloneXMLTree
    - find
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - OGRFieldDefn::GetNameRef
    - c_str
    - CPLRemoveXMLChild
    - GetSWEChildAndType
    - CPLDestroyXMLNode
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetName
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - CPLFree
    - CPLGetXMLNode
    - OGRFieldDefn::SetType
    - OGRGMLASLayer::GetName
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASLayer::ProcessDataRecordCreateFields(\n    CPLXMLNode
      *psDataRecord, const std::vector<OGRFeature *> &apoFeatures,\n    OGRLayer *poFieldsMetadataLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:374,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:375,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:376,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:379,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:380,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:380,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - poFeature
    - osFieldName
    - pszValue
    argTypes:
    - OGRFeature*
    - CPLString
    - char*
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: SetSWEValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - EQUAL
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: "void SetSWEValue(OGRFeature *poFeature, const CPLString &osFieldName,\n
      \                       const char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:399,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:402,1
    - Dst: GetSWEChildAndType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:407,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:408,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:409,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:412,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:413,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:413,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:421,1
    - Dst: SetSWEValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:431,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:433,1
    - Dst: SetSWEValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:438,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - psDataRecord
    - poFeature
    argTypes:
    - CPLXMLNode*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 445
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 445
    functionName: OGRGMLASLayer::ProcessDataRecordFillFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - GetSWEChildAndType
    - find
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - strcmp
    - CPLAssert
    - CPLString
    - SetSWEValue
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASLayer::ProcessDataRecordFillFeature(CPLXMLNode *psDataRecord,\n
      \                                                OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:453,1
    - Dst: GetFieldsMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:455,1
    - Dst: GetRelationshipsLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:456,1
    - Dst: GetParentXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:459,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:463,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:464,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:467,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:467,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:468,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:468,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:469,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:469,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:470,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:471,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:477,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:478,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:481,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:481,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:482,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:482,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:483,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:483,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:484,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:485,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:490,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:491,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:494,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:494,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:495,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:495,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:496,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:496,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:497,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:498,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:509,1
    - Dst: OGRGMLASLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:510,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:513,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:514,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:515,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:519,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:519,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:524,1
    - Dst: IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:525,1
    - Dst: GetCategory
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:528,1
    - Dst: GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:529,1
    - Dst: GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:532,1
    - Dst: GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:532,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:536,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:536,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:537,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:537,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:538,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:539,1
    - Dst: OGRGMLASLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:540,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:542,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:544,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:545,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:547,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:548,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:553,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:555,1
    - Dst: OGRGMLASLayer*::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:556,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:561,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:565,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:566,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:567,1
    - Dst: OGRGMLASLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:568,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:566,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:572,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:572,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:578,1
    - Dst: GetRelatedClassXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:579,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:584,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:584,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:585,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:585,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:589,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:591,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:593,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:598,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:599,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:601,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:603,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:604,1
    - Dst: GetAlternateXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:606,1
    - Dst: GetAlternateXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:610,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:611,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:617,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:617,1
    - Dst: GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:619,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:621,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:629,1
    - Dst: GetTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:630,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:632,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:633,1
    - Dst: IsList
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:633,1
    - Dst: GetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:634,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:636,1
    - Dst: GetMinOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:637,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:639,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:641,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:643,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:645,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:646,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:648,1
    - Dst: GetMaxOccurs
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:649,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:651,1
    - Dst: GetRepetitionOnSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:652,1
    - Dst: GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:655,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:657,1
    - Dst: GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:658,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:660,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:662,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:663,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:668,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:671,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:675,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:679,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:684,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:687,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:692,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:693,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:701,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:701,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:702,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:702,1
    - Dst: GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:704,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:708,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:709,1
    - Dst: GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:713,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:715,1
    - Dst: GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:716,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:719,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:720,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:734,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:735,1
    - Dst: IsNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:743,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:805,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:806,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:810,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:812,1
    - Dst: GetAlternateXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:818,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:819,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:834,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:835,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:839,1
    - Dst: IsArray
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:844,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:861,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:867,1
    - Dst: IsNotNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:868,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:869,1
    - Dst: GetDefaultValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:870,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:871,1
    - Dst: GetFixedValue
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:872,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:873,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:876,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:877,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:877,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:877,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:878,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:880,1
    - Dst: GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:880,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:881,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:884,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:886,1
    - Dst: GetAlternateXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:891,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:892,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:901,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:902,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:903,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:909,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:912,1
    - Dst: GMLASField::MakeXLinkRawContentFieldXPathFromXLinkHrefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:915,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:916,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:916,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:919,1
    - Dst: OGRGMLASLayer::CreateCompoundFoldedMappings
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:922,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 270
    argCount: 1
    argNames:
    - bIncludeGeometryXML
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 923
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 923
    functionName: OGRGMLASLayer::PostInit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetMaxOccurs
    - OGRGMLASLayer::GetIDFieldIdx
    - OGRGMLASLayer*::GetLayerDefn
    - OGRGMLASLayer::CreateCompoundFoldedMappings
    - std::vector::size
    - OGRGMLASLayer*::GetIDFieldIdx
    - CPLDebug
    - GetParentXPath
    - GetMinOccurs
    - OGRFieldDefn::SetNullable
    - CPLString
    - CPLError
    - GetDefaultValue
    - CPLString::resize
    - CPLString::empty
    - GetFieldsMetadataLayer
    - GetRepetitionOnSequence
    - IsArray
    - GetFixedValue
    - CPLString::c_str
    - GetDocumentation
    - GetGeomType
    - GetTypeName
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - GetFields
    - GMLASField::MakeXLinkRawContentFieldXPathFromXLinkHrefXPath
    - GetLayerByXPath
    - OGRFieldDefn::GetNameRef
    - c_str
    - static_cast<int>
    - IsList
    - GetWidth
    - GetRelationshipsLayer
    - GetFieldCount
    - IsIgnored
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - GetType
    - GetAlternateXPaths
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRGMLASLayer::GetLayerDefn
    - GetXPath
    - OGRFieldDefn::SetDefault
    - empty
    - GetRelatedClassXPath
    - IsNotNullable
    - AddGeomFieldDefn
    - OGRFieldDefn::SetWidth
    - GetConf
    - GetCategory
    - OGRGMLASLayer::GetName
    - OGRFeature*::SetField
    - OGRGMLASLayer*::GetName
    linkageType: ''
    returnType: void
    signature: void OGRGMLASLayer::PostInit(bool bIncludeGeometryXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:934,1
    - Dst: IsRepeatedSequence
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:935,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:940,1
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:944,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:945,1
    - Dst: GetAlternateXPaths
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:947,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:949,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:949,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:950,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:952,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:952,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:964,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:965,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 975
    functionName: OGRGMLASLayer::CreateCompoundFoldedMappings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - GetXPath
    - std::vector::push_back
    - end
    - std::vector::size
    - find
    - IsRepeatedSequence
    - CSLDestroy
    - CPLString::size
    - GetAlternateXPaths
    - CPLString::resize
    - GetFields
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void OGRGMLASLayer::CreateCompoundFoldedMappings()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 984
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 984
    functionName: OGRGMLASLayer::~OGRGMLASLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGMLASLayer::~OGRGMLASLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<CPLString, int>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:994,1
    - Dst: std::map<CPLString, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:995,1
    - Dst: std::map<CPLString, int>::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - oMap
    - nIdx
    argTypes:
    - std::map<CPLString, int>
    - int
    constantsTouched: []
    func_position:
      end: 1007
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1007
    functionName: DeleteTargetIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - std::map<CPLString, int>::erase
    - std::map<CPLString, int>::end
    - std::map<CPLString, int>::begin
    linkageType: ''
    returnType: void
    signature: void DeleteTargetIndex(std::map<CPLString, int> &oMap, int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1018,1
    - Dst: DeleteTargetIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1021,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1032,1
    - Dst: GetFieldsMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1035,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1037,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1038,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1040,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1040,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1040,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1041,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1043,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1044,1
    - Dst: OGRLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1044,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1053
      start: 1013
    functionDepth: 3
    functionLinenumber: 1013
    functionLinenumberEnd: 1053
    functionName: OGRGMLASLayer::RemoveField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldsMetadataLayer
    - OGRLayer*::SetFeature
    - DeleteFieldDefn
    - DeleteTargetIndex
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - OGRFeature*::GetFieldAsInteger
    - strcmp
    - OGRGMLASLayer::GetName
    - std::move
    - OGRFeature*::SetField
    - CPL_IGNORE_RET_VAL
    - OGRLayer*::ResetReading
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLASLayer::RemoveField(int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - oMap
    - nIdx
    argTypes:
    - std::map<CPLString, int>
    - int
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: InsertTargetIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InsertTargetIndex(std::map<CPLString, int> &oMap, int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1076,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1077,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1078,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1084,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1085,1
    - Dst: ReorderFieldDefns
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1089,1
    - Dst: InsertTargetIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1093,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1105,1
    - Dst: GetFieldsMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1108,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1110,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1111,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1113,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1113,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1113,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1118,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1119,1
    - Dst: OGRLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1120,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - nInsertPos
    - oFieldDefn
    - osXPath
    argTypes:
    - int
    - OGRFieldDefn
    - CPLString
    constantsTouched: []
    func_position:
      end: 1126
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1126
    functionName: OGRGMLASLayer::InsertNewField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldsMetadataLayer
    - ReorderFieldDefns
    - OGRLayer*::SetFeature
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - GetFieldCount
    - CPLAssert
    - strcmp
    - std::move
    - AddFieldDefn
    - OGRGMLASLayer::GetName
    - OGRFeature*::SetField
    - OGRLayer*::ResetReading
    - CPL_IGNORE_RET_VAL
    - InsertTargetIndex
    linkageType: ''
    returnType: void
    signature: "void OGRGMLASLayer::InsertNewField(int nInsertPos,\n                                   const
      OGRFieldDefn &oFieldDefn,\n                                   const CPLString
      &osXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1134,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: OGRGMLASLayer::GetOGRFieldIndexFromXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGRGMLASLayer::GetOGRFieldIndexFromXPath(const CPLString &osXPath)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1148,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1148,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1156
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1156
    functionName: OGRGMLASLayer::GetXPathFromOGRFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetXPath
    - GetFields
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRGMLASLayer::GetXPathFromOGRFieldIndex(int nIdx) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1164,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1168
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1168
    functionName: OGRGMLASLayer::GetOGRGeomFieldIndexFromXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGRGMLASLayer::GetOGRGeomFieldIndexFromXPath(const CPLString &osXPath)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1176,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iOGRFieldIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: OGRGMLASLayer::GetFCFieldIndexFromOGRFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGRGMLASLayer::GetFCFieldIndexFromOGRFieldIdx(int iOGRFieldIdx)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1188,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osXPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1192
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1192
    functionName: OGRGMLASLayer::GetFCFieldIndexFromXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGRGMLASLayer::GetFCFieldIndexFromXPath(const CPLString &osXPath)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1201,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iOGRGeomFieldIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1205
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1205
    functionName: OGRGMLASLayer::GetFCFieldIndexFromOGRGeomFieldIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: "int OGRGMLASLayer::GetFCFieldIndexFromOGRGeomFieldIdx(\n    int iOGRGeomFieldIdx)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1215,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1217,1
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1218,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1218,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1220,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1221,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1221,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1221,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - osFieldName
    - osTargetLayerXPath
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1224
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1224
    functionName: OGRGMLASLayer::GetXPathOfFieldLinkForAttrToOtherLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - GetXPath
    - CPLString::substr
    - CPLString::size
    - CPLAssert
    - strlen
    - GetFields
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGMLASLayer::GetXPathOfFieldLinkForAttrToOtherLayer(\n
      \   const CPLString &osFieldName, const CPLString &osTargetLayerXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1234,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1237,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1242,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1242,1
    - Dst: OGRGMLASTruncateIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1245,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1248,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1253,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1256,1
    - Dst: OGRGMLASAddSerialNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1263,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1266,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1266,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - osFieldName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1271
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1271
    functionName: OGRGMLASLayer::LaunderFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - GetConf
    - OGRGMLASAddSerialNumber
    - CPLSPrintf
    - OGRGMLASTruncateIdentifier
    - CPLString::size
    - std::move
    - GetFieldIndex
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRGMLASLayer::LaunderFieldName(const CPLString &osFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASLayer::GetXPathOfFieldLinkForAttrToOtherLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1285,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1290,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1296,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1298,1
    - Dst: GetFields
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1299,1
    - Dst: GetXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1299,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1301,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1307,1
    - Dst: OGRGMLASLayer::GetXPathFromOGRFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1309,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1318,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1321,1
    - Dst: GetLayerByXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1324,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1325,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1326,1
    - Dst: OGRGMLASLayer::LaunderFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1328,1
    - Dst: OGRGMLASLayer::InsertNewField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1330,1
    - Dst: GetFieldsMetadataLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1332,1
    - Dst: GetRelationshipsLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1333,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1339,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1341,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1343,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1343,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1343,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1345,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1350,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1359,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1362,1
    - Dst: OGRLayer*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1365,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1368,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1369,1
    - Dst: OGRLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1369,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1375,1
    - Dst: OGRLayer*::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1376,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1381,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1381,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1382,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1382,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1383,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1384,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1385,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1385,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1386,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1387,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1388,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1389,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1390,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1392,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1393,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1395,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1396,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1397,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1402,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1402,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1403,1
    - Dst: OGRGMLASLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1403,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1404,1
    - Dst: OGRGMLASLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1406,1
    - Dst: OGRGMLASLayer::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1406,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1407,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1408,1
    - Dst: OGRGMLASLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1408,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1409,1
    - Dst: OGRGMLASLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1410,1
    - Dst: OGRGMLASLayer*::GetIDFieldIdx
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1411,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1413,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1414,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 2
    argNames:
    - osFieldName
    - osTargetLayerXPath
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1418
      start: 1281
    functionDepth: 4
    functionLinenumber: 1281
    functionLinenumberEnd: 1418
    functionName: OGRGMLASLayer::CreateLinkForAttrToOtherLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLASLayer::GetIDFieldIdx
    - OGRGMLASLayer*::GetLayerDefn
    - OGRGMLASLayer*::GetIDFieldIdx
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - strcmp
    - OGRGMLASLayer::InsertNewField
    - CPLString::resize
    - GetFieldsMetadataLayer
    - CPLString::substr
    - OGRLayer*::SetFeature
    - OGRFeature*::GetFieldAsInteger
    - OGRGMLASLayer::LaunderFieldName
    - OGRLayer*::DeleteFeature
    - OGRGMLASLayer::GetXPathFromOGRFieldIndex
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::CreateFeature
    - GetFields
    - GetLayerByXPath
    - OGRFieldDefn::GetNameRef
    - GetRelationshipsLayer
    - OGRFeature*::GetFID
    - GetFieldCount
    - OGRLayer*::GetFeatureCount
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - OGRLayer*::ResetReading
    - CPLString::find
    - OGRFeature::OGRFeature
    - OGRLayer*::GetFeature
    - OGRGMLASLayer::GetLayerDefn
    - GetXPath
    - OGRGMLASLayer::GetXPathOfFieldLinkForAttrToOtherLayer
    - OGRGMLASLayer::GetName
    - OGRFeature*::SetField
    - OGRGMLASLayer*::GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGMLASLayer::CreateLinkForAttrToOtherLayer(\n    const
      CPLString &osFieldName, const CPLString &osTargetLayerXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLayerInitFinished
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1426,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1430,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1431,1
    - Dst: GetConf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1432,1
    - Dst: m_aoURLSpecificRules::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1432,1
    - Dst: OGRGMLASLayer::InitReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1436,1
    - Dst: PushUnusedGMLFilePointer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1439,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1445
    functionName: OGRGMLASLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 3
    functionsReached:
    - GetConf
    - reset
    - m_aoURLSpecificRules::empty
    - IsLayerInitFinished
    - PushUnusedGMLFilePointer
    - OGRGMLASLayer::InitReader
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRGMLASLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1455
    functionName: OGRGMLASLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRGMLASLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1463,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1466,1
    - Dst: CreateReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1466,1
    - Dst: SetLayerOfInterest
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1473
    functionName: OGRGMLASLayer::InitReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 1
    functionsReached:
    - SetLayerOfInterest
    - CPLAssert
    - CreateReader
    - reset
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLASLayer::InitReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASLayer::InitReader
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1481,1
    - Dst: OGRGMLASLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1485
    functionName: OGRGMLASLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLASLayer::GetNextFeature
    - OGRGMLASLayer::InitReader
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGMLASLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1494,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1494,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1496
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1496
    functionName: OGRGMLASLayer::EvaluateFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLASLayer::EvaluateFilter(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLASLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1509,1
    - Dst: PushUnusedGMLFilePointer
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1514,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1515,1
    - Dst: OGRGMLASLayer::EvaluateFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp:1520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1527
    functionName: OGRGMLASLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlaslayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGMLASLayer::EvaluateFilter
    - OGRGMLASLayer::GetNextRawFeature
    - PushUnusedGMLFilePointer
    - reset
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGMLASLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oMapPrefixToURIReferenceXPaths
    - aosReferenceXPaths
    argTypes:
    - std::map<CPLString, CPLString>
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: GMLASXPathMatcher::SetRefXPaths
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GMLASXPathMatcher::SetRefXPaths(\n    const std::map<CPLString,
      CPLString> &oMapPrefixToURIReferenceXPaths,\n    const std::vector<CPLString>
      &aosReferenceXPaths)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:36,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:39,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:47,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:51,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:57,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:70,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:72,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:82,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:84,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:88,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:89,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:92,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:93,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:95,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:98,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:100,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:101,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:102,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:103,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:109,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:109,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:112,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:119,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:120,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:121,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:121,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - oMapURIToPrefix
    argTypes:
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 123
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 123
    functionName: GMLASXPathMatcher::SetDocumentMapURIToPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp
    functionUses: 1
    functionsReached:
    - size
    - end
    - CPLString::append
    - CPLString::assign
    - find
    - CPLString::clear
    - std::vector::clear
    - std::move
    - push_back
    - std::vector::push_back
    - std::map<CPLString, CPLString>::find
    - std::map<CPLString, CPLString>::end
    - clear
    linkageType: ''
    returnType: void
    signature: "void GMLASXPathMatcher::SetDocumentMapURIToPrefix(\n    const std::map<CPLString,
      CPLString> &oMapURIToPrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:139,1
    - Dst: std::vector<XPathComponent>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:139,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:147,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:152,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:168,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:175,1
    - Dst: std::vector<XPathComponent>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - osXPath
    - oRefXPath
    argTypes:
    - CPLString
    - std::vector<XPathComponent>
    constantsTouched: []
    func_position:
      end: 177
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 177
    functionName: GMLASXPathMatcher::MatchesRefXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp
    functionUses: 1
    functionsReached:
    - CPLString::size
    - CPLString::compare
    - std::vector<XPathComponent>::size
    linkageType: ''
    returnType: bool
    signature: "bool GMLASXPathMatcher::MatchesRefXPath(\n    const CPLString &osXPath,
      const std::vector<XPathComponent> &oRefXPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:186,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:188,1
    - Dst: GMLASXPathMatcher::MatchesRefXPath
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - osXPath
    - osOutMatchedXPath
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: GMLASXPathMatcher::MatchesRefXPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasxpatchmatcher.cpp
    functionUses: 2
    functionsReached:
    - size
    - empty
    - GMLASXPathMatcher::MatchesRefXPath
    linkageType: ''
    returnType: bool
    signature: "bool GMLASXPathMatcher::MatchesRefXPath(const CPLString &osXPath,\n
      \                                       CPLString &osOutMatchedXPath) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:28,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:56,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:57,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:69,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:69,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:72,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:73,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:80,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:83,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:88,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:91,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:94,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:98,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:108,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:114,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:123,1
    - Dst: auto::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:126,1
    - Dst: auto::second::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:126,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:127,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:130,1
    - Dst: std::map::erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:132,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:143,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:153,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:155,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:155,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:155,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 2
    argNames:
    - osName
    - nIdentMaxLength
    argTypes:
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 157
    functionName: OGRGMLASTruncateIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp
    functionUses: 3
    functionsReached:
    - auto::second::empty
    - std::map::end
    - std::vector::size
    - auto::second::erase
    - std::vector::push_back
    - CPLString::empty
    - CPLString::substr
    - insert
    - CPLString::size
    - std::move
    - resize
    - static_cast<int>
    - CPLString::clear
    - CPLAssert
    - std::map::erase
    - auto::second::begin
    - CSLDestroy
    - std::vector::back
    - std::map::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGMLASTruncateIdentifier(const CPLString &osName,\n                                     int
      nIdentMaxLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:171,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:174,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:174,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:176,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:176,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:182,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - osNameIn
    - iOccurrence
    - nOccurrences
    - nIdentMaxLength
    argTypes:
    - CPLString
    - int
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 200
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 200
    functionName: OGRGMLASAddSerialNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasutils.cpp
    functionUses: 3
    functionsReached:
    - CPLString::size
    - static_cast<int>
    - snprintf
    - CPLString::resize
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGMLASAddSerialNumber(const CPLString &osNameIn, int iOccurrence,\n
      \                                 size_t nOccurrences, int nIdentMaxLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlFactory*::CreateCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:70,1
    - Dst: CameraPtr::set_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:71,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:71,1
    - Dst: CameraPtr::set_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:72,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:72,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:76,1
    - Dst: CameraPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:80,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:82,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:83,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:85,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:90,1
    - Dst: CameraPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:92,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:92,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:94,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:95,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:97,1
    - Dst: CameraPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:99,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:102,1
    - Dst: CameraPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:103,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:103,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:104,1
    - Dst: CameraPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:105,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:105,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:106,1
    - Dst: CameraPtr::set_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:107,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:107,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 25
    argCount: 6
    argNames:
    - oFC
    - iHeading
    - iTilt
    - iRoll
    - poOgrFeat
    - poKmlFactory
    argTypes:
    - struct fieldconfig
    - int
    - int
    - int
    - OGRFeature*
    - KmlFactory*
    constantsTouched: []
    func_position:
      end: 110
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 110
    functionName: feat2kmlcamera
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - OGRFeature*::IsFieldSetAndNotNull
    - CameraPtr::set_tilt
    - CPLTestBool
    - CameraPtr::set_altitude
    - CameraPtr::set_latitude
    - CameraPtr::set_roll
    - OGRFeature*::GetFieldAsDouble
    - CameraPtr::set_altitudemode
    - CameraPtr::set_heading
    - CPLError
    - CameraPtr::set_longitude
    - KmlFactory*::CreateCamera
    linkageType: ''
    returnType: CameraPtr
    signature: "CameraPtr feat2kmlcamera(const struct fieldconfig &oFC, int iHeading,\n
      \                               int iTilt, int iRoll, OGRFeature *poOgrFeat,\n
      \                               KmlFactory *poKmlFactory)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:121,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:122,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:122,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:124,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:125,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:125,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:126,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:126,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:128,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:129,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:129,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:130,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pszURL
    - level
    - x
    - y
    argTypes:
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: OGRLIBKMLReplaceLevelXYInURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find
    - CPLSPrintf
    - strlen
    - CPLString::substr
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRLIBKMLReplaceLevelXYInURL(const char *pszURL, int level,\n
      \                                             int x, int y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: IsPowerOf2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPowerOf2(int nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLReplaceLevelXYInURL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:162,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:163,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:165,1
    - Dst: OGRLIBKMLReplaceLevelXYInURL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:181,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:182,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:184,1
    - Dst: OGRLIBKMLReplaceLevelXYInURL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:194,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:195,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - pszURL
    - nTileSize
    - panMaxWidth
    - panMaxHeight
    argTypes:
    - char*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 201
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 201
    functionName: OGRLIBKMLGetMaxDimensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLReplaceLevelXYInURL
    - strstr
    - VSIStatL
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLGetMaxDimensions(const char *pszURL, int nTileSize,\n
      \                                     int *panMaxWidth, int *panMaxHeight)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLLayer*::GetFieldConfig
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:212,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:215,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:225,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:226,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:227,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:227,1
    - Dst: feat2kmlcamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:228,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:254,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:254,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:255,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:260,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:262,1
    - Dst: OGRLIBKMLReplaceLevelXYInURL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:264,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:265,1
    - Dst: GDALOpen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:267,1
    - Dst: GDALGetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:270,1
    - Dst: GDALGetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:271,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:273,1
    - Dst: GDALGetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:275,1
    - Dst: GDALGetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:276,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:280,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:284,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:285,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:291,1
    - Dst: IsPowerOf2
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:295,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:303,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:305,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:307,1
    - Dst: OGRLIBKMLGetMaxDimensions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:310,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:316,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:323,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:331,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:335,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:345,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:356,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:358,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:360,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:362,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:364,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:377,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:379,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:381,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:383,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:384,1
    - Dst: KmlFactory*::CreatePhotoOverlay
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:387,1
    - Dst: KmlFactory*::CreateIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:390,1
    - Dst: PhotoOverlayPtr::set_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:391,1
    - Dst: IconPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:392,1
    - Dst: KmlFactory*::CreateViewVolume
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:395,1
    - Dst: PhotoOverlayPtr::set_viewvolume
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:396,1
    - Dst: ViewVolumePtr::set_leftfov
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:405,1
    - Dst: ViewVolumePtr::set_rightfov
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:406,1
    - Dst: ViewVolumePtr::set_bottomfov
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:407,1
    - Dst: ViewVolumePtr::set_topfov
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:408,1
    - Dst: ViewVolumePtr::set_near
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:409,1
    - Dst: KmlFactory*::CreateImagePyramid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:414,1
    - Dst: PhotoOverlayPtr::set_imagepyramid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:415,1
    - Dst: ImagePyramidPtr::set_tilesize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:417,1
    - Dst: ImagePyramidPtr::set_maxwidth
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:418,1
    - Dst: ImagePyramidPtr::set_maxheight
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:419,1
    - Dst: ImagePyramidPtr::set_gridorigin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:420,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:432,1
    - Dst: PhotoOverlayPtr::set_shape
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:433,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:434,1
    - Dst: PhotoOverlayPtr::set_shape
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:435,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:436,1
    - Dst: PhotoOverlayPtr::set_shape
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:437,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:440,1
    - Dst: PhotoOverlayPtr::set_point
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:444,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:444,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:444,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:450,1
    - Dst: KmlFactory*::CreateNetworkLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:453,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:460,1
    - Dst: NetworkLinkPtr::set_refreshvisibility
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:462,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:463,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:463,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:469,1
    - Dst: NetworkLinkPtr::set_flytoview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:470,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:471,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:471,1
    - Dst: KmlFactory*::CreateLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:473,1
    - Dst: LinkPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:474,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:474,1
    - Dst: NetworkLinkPtr::set_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:475,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:494,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:496,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:503,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:505,1
    - Dst: LinkPtr::set_refreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:511,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:513,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:517,1
    - Dst: LinkPtr::set_refreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:518,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:519,1
    - Dst: LinkPtr::set_refreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:520,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:521,1
    - Dst: LinkPtr::set_refreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:522,1
    - Dst: LinkPtr::set_refreshinterval
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:526,1
    - Dst: LinkPtr::set_viewrefreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:529,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:535,1
    - Dst: LinkPtr::set_viewrefreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:536,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:537,1
    - Dst: LinkPtr::set_viewrefreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:538,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:540,1
    - Dst: LinkPtr::set_viewrefreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:541,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:542,1
    - Dst: LinkPtr::set_viewrefreshmode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:543,1
    - Dst: LinkPtr::set_viewrefreshtime
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:548,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:551,1
    - Dst: LinkPtr::set_viewboundscale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:556,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:559,1
    - Dst: LinkPtr::set_viewformat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:564,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:567,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:571,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:572,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:573,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:574,1
    - Dst: LinkPtr::set_httpquery
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:576,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:583,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:584,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:585,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:585,1
    - Dst: KmlFactory*::CreatePlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:587,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:590,1
    - Dst: KmlFactory*::CreateModel
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:591,1
    - Dst: KmlFactory*::CreateLocation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:593,1
    - Dst: ModelPtr::set_location
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:594,1
    - Dst: LocationPtr::set_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:595,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:595,1
    - Dst: LocationPtr::set_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:596,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:596,1
    - Dst: OGRPoint*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:597,1
    - Dst: LocationPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:598,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:598,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:603,1
    - Dst: ModelPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:607,1
    - Dst: OGRPoint*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:611,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:613,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:615,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:620,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:621,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:622,1
    - Dst: KmlFactory*::CreateOrientation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:625,1
    - Dst: ModelPtr::set_orientation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:626,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:627,1
    - Dst: OrientationPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:628,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:628,1
    - Dst: OrientationPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:630,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:631,1
    - Dst: OrientationPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:632,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:632,1
    - Dst: OrientationPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:634,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:635,1
    - Dst: OrientationPtr::set_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:636,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:636,1
    - Dst: OrientationPtr::set_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:638,1
    - Dst: KmlFactory*::CreateScale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:644,1
    - Dst: ModelPtr::set_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:645,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:646,1
    - Dst: ScalePtr::set_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:647,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:647,1
    - Dst: ScalePtr::set_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:649,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:650,1
    - Dst: ScalePtr::set_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:651,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:651,1
    - Dst: ScalePtr::set_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:653,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:654,1
    - Dst: ScalePtr::set_z
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:655,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:655,1
    - Dst: ScalePtr::set_z
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:657,1
    - Dst: KmlFactory*::CreateLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:659,1
    - Dst: ModelPtr::set_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:660,1
    - Dst: LinkPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:665,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:665,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:666,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:666,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:670,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:671,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:674,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:674,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:676,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:678,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:678,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:682,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:688,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:693,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:699,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:701,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:702,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:702,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:703,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:703,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:704,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:704,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:705,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:705,1
    - Dst: KmlFactory*::CreateResourceMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:709,1
    - Dst: KmlFactory*::CreateAlias
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:711,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:712,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:714,1
    - Dst: AliasPtr::set_targethref
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:715,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:715,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:717,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:718,1
    - Dst: AliasPtr::set_targethref
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:720,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:721,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:722,1
    - Dst: AliasPtr::set_targethref
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:726,1
    - Dst: AliasPtr::set_sourcehref
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:727,1
    - Dst: ResourceMapPtr::add_alias
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:728,1
    - Dst: ModelPtr::set_resourcemap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:734,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:735,1
    - Dst: PlacemarkPtr::set_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:739,1
    - Dst: AsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:739,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:743,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:744,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:744,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:745,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:746,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:747,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:748,1
    - Dst: KmlFactory*::CreatePlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:750,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:753,1
    - Dst: KmlFactory*::CreateCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:754,1
    - Dst: CameraPtr::set_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:755,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:755,1
    - Dst: CameraPtr::set_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:756,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:756,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:760,1
    - Dst: CameraPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:764,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:766,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:767,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:769,1
    - Dst: OGRPoint*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:773,1
    - Dst: CameraPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:775,1
    - Dst: OGRPoint*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:775,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:777,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:780,1
    - Dst: CameraPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:782,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:785,1
    - Dst: CameraPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:786,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:786,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:787,1
    - Dst: CameraPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:788,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:788,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:789,1
    - Dst: CameraPtr::set_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:790,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:790,1
    - Dst: PlacemarkPtr::set_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:791,1
    - Dst: KmlFactory*::CreatePlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:795,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:800,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:803,1
    - Dst: OGRFeature*::DumpReadableAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:805,1
    - Dst: PlacemarkPtr::set_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:809,1
    - Dst: AsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:809,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:809,1
    - Dst: feat2kmlcamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:814,1
    - Dst: FeaturePtr::set_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:817,1
    - Dst: featurestyle2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:820,1
    - Dst: field2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:824,1
    CyclomaticComplexity: 170
    EdgeCount: 170
    ICount: 262
    argCount: 5
    argNames:
    - poOgrDS
    - poOgrLayer
    - poOgrFeat
    - poKmlFactory
    - bUseSimpleField
    argTypes:
    - OGRLIBKMLDataSource*
    - OGRLIBKMLLayer*
    - OGRFeature*
    - KmlFactory*
    - int
    constantsTouched: []
    func_position:
      end: 828
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 828
    functionName: feat2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - ViewVolumePtr::set_near
    - CPLDebug
    - CameraPtr::set_altitude
    - OGRFeature*::GetFieldAsInteger
    - ModelPtr::set_scale
    - LinkPtr::set_viewformat
    - OGRGeometry*::getGeometryType
    - AliasPtr::set_sourcehref
    - NetworkLinkPtr::set_flytoview
    - KmlFactory*::CreateNetworkLink
    - feat2kmlcamera
    - OGRPoint*::getZ
    - field2kml
    - ModelPtr::set_link
    - GDALGetRasterXSize
    - PhotoOverlayPtr::set_viewvolume
    - KmlFactory*::CreateResourceMap
    - PhotoOverlayPtr::set_imagepyramid
    - ImagePyramidPtr::set_maxheight
    - KmlFactory*::CreateLink
    - std::string::c_str
    - CPLGetExtensionSafe
    - LinkPtr::set_viewrefreshmode
    - KmlFactory*::CreateViewVolume
    - LocationPtr::set_longitude
    - CameraPtr::set_latitude
    - CameraPtr::set_heading
    - std::move
    - wkbFlatten
    - ViewVolumePtr::set_rightfov
    - AliasPtr::set_targethref
    - LinkPtr::set_httpquery
    - PlacemarkPtr::set_geometry
    - OGRPoint*::getX
    - PhotoOverlayPtr::set_shape
    - LocationPtr::set_altitude
    - OGRFeature*::GetFieldIndex
    - OGRGeometry*::IsEmpty
    - LinkPtr::set_href
    - OrientationPtr::set_heading
    - CPLGetPathSafe
    - OrientationPtr::set_roll
    - LinkPtr::set_refreshinterval
    - GDALGetRasterYSize
    - EQUAL
    - OGRGeometry*::toPoint
    - IconPtr::set_href
    - KmlFactory*::CreateScale
    - GDALOpen
    - OGRFeature*::IsFieldSetAndNotNull
    - LinkPtr::set_viewboundscale
    - OGRPoint*::getY
    - OrientationPtr::set_tilt
    - AsPoint
    - OGRFeature*::GetFieldAsString
    - PlacemarkPtr::set_abstractview
    - OGRLIBKMLReplaceLevelXYInURL
    - geom2kml
    - ImagePyramidPtr::set_maxwidth
    - CPLString::resize
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - PhotoOverlayPtr::set_icon
    - ModelPtr::set_location
    - OGRFeature*::GetFieldAsDouble
    - CPLString::c_str
    - strlen
    - NetworkLinkPtr::set_refreshvisibility
    - KmlFactory*::CreateLocation
    - KmlFactory*::CreateAlias
    - KmlFactory*::CreatePlacemark
    - CPLSPrintf
    - ImagePyramidPtr::set_tilesize
    - strstr
    - IsPowerOf2
    - OGRFeature*::GetGeometryRef
    - ViewVolumePtr::set_leftfov
    - VSIFCloseL
    - OGRLIBKMLGetMaxDimensions
    - featurestyle2kml
    - ViewVolumePtr::set_topfov
    - LinkPtr::set_viewrefreshtime
    - CameraPtr::set_altitudemode
    - KmlFactory*::CreateModel
    - AsGeometry
    - CPLError
    - STARTS_WITH
    - KmlFactory*::CreateCamera
    - KmlFactory*::CreateIcon
    - LinkPtr::set_refreshmode
    - KmlFactory*::CreateOrientation
    - GDALClose
    - ScalePtr::set_y
    - CameraPtr::set_tilt
    - CameraPtr::set_roll
    - FeaturePtr::set_abstractview
    - ImagePyramidPtr::set_gridorigin
    - CPLIsFilenameRelative
    - ModelPtr::set_orientation
    - OGRLIBKMLLayer*::GetFieldConfig
    - ResourceMapPtr::add_alias
    - KmlFactory*::CreatePhotoOverlay
    - ModelPtr::set_altitudemode
    - ModelPtr::set_resourcemap
    - CPLTestBool
    - STARTS_WITH_CI
    - ViewVolumePtr::set_bottomfov
    - ScalePtr::set_z
    - VSIFOpenL
    - ScalePtr::set_x
    - CameraPtr::set_longitude
    - CPLFormFilenameSafe
    - PhotoOverlayPtr::set_point
    - CPLReadLineL
    - OGRPoint*::getCoordinateDimension
    - NetworkLinkPtr::set_link
    - LocationPtr::set_latitude
    - OGRFeature*::DumpReadableAsString
    - KmlFactory*::CreateImagePyramid
    linkageType: ''
    returnType: FeaturePtr
    signature: "FeaturePtr feat2kml(OGRLIBKMLDataSource *poOgrDS, OGRLIBKMLLayer *poOgrLayer,\n
      \                   OGRFeature *poOgrFeat, KmlFactory *poKmlFactory,\n                    int
      bUseSimpleField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:834,1
    - Dst: kml2featurestyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:837,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:840,1
    - Dst: kml2geom
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:843,1
    - Dst: PlacemarkPtr::get_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:843,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:844,1
    - Dst: PlacemarkPtr::has_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:846,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:847,1
    - Dst: AsCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:849,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:849,1
    - Dst: CameraPtr::has_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:850,1
    - Dst: CameraPtr::has_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:850,1
    - Dst: CameraPtr::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:852,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:853,1
    - Dst: CameraPtr::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:854,1
    - Dst: CameraPtr::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:854,1
    - Dst: CameraPtr::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:855,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:853,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:857,1
    - Dst: CameraPtr::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:858,1
    - Dst: CameraPtr::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:858,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:857,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:859,1
    - Dst: kml2field
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:864,1
    - Dst: AsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:864,1
    - Dst: OGRLIBKMLLayer*::GetFieldConfig
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - poKmlPlacemark
    - poOgrDS
    - poOgrLayer
    - poOgrFeatDefn
    - poOgrSRS
    argTypes:
    - PlacemarkPtr
    - OGRLIBKMLDataSource*
    - OGRLIBKMLLayer*
    - OGRFeatureDefn*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 868
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 868
    functionName: kml2feat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - PlacemarkPtr::has_geometry
    - CameraPtr::has_latitude
    - AsFeature
    - CameraPtr::get_altitude
    - PlacemarkPtr::get_abstractview
    - CameraPtr::get_latitude
    - PlacemarkPtr::get_geometry
    - OGRPoint::OGRPoint
    - OGRLIBKMLLayer*::GetFieldConfig
    - kml2field
    - PlacemarkPtr::has_abstractview
    - OGRFeature*::SetGeometryDirectly
    - CameraPtr::get_longitude
    - AsCamera
    - kml2geom
    - OGRFeature::OGRFeature
    - CameraPtr::has_altitude
    - OGRFeature*::GetGeometryRef
    - kml2featurestyle
    - CameraPtr::has_longitude
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *kml2feat(PlacemarkPtr poKmlPlacemark, OGRLIBKMLDataSource
      *poOgrDS,\n                     OGRLIBKMLLayer *poOgrLayer, OGRFeatureDefn *poOgrFeatDefn,\n
      \                    OGRSpatialReference *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:876,1
    - Dst: GroundOverlayPtr::has_latlonbox
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:879,1
    - Dst: kml2geom_latlonbox
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:882,1
    - Dst: GroundOverlayPtr::get_latlonbox
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:882,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:883,1
    - Dst: GroundOverlayPtr::has_gx_latlonquad
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:885,1
    - Dst: kml2geom_latlonquad
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:888,1
    - Dst: GroundOverlayPtr::get_gx_latlonquad
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:888,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:889,1
    - Dst: kml2field
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:893,1
    - Dst: AsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:893,1
    - Dst: OGRLIBKMLLayer*::GetFieldConfig
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - poKmlOverlay
    - poOgrLayer
    - poOgrFeatDefn
    - poOgrSRS
    argTypes:
    - GroundOverlayPtr
    - OGRLIBKMLLayer*
    - OGRFeatureDefn*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 896
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 896
    functionName: kmlgroundoverlay2feat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp
    functionUses: 0
    functionsReached:
    - GroundOverlayPtr::get_gx_latlonquad
    - kml2geom_latlonbox
    - GroundOverlayPtr::has_gx_latlonquad
    - OGRLIBKMLLayer*::GetFieldConfig
    - kml2geom_latlonquad
    - kml2field
    - GroundOverlayPtr::get_latlonbox
    - AsFeature
    - OGRFeature::OGRFeature
    - GroundOverlayPtr::has_latlonbox
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *kmlgroundoverlay2feat(GroundOverlayPtr poKmlOverlay,\n
      \                                 OGRLIBKMLDataSource * /* poOgrDS */,\n                                  OGRLIBKMLLayer
      *poOgrLayer,\n                                  OGRFeatureDefn *poOgrFeatDefn,\n
      \                                 OGRSpatialReference *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:75,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:77,1
    - Dst: OGRStyleMgr*::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:80,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:82,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:89,1
    - Dst: KmlFactory*::CreateLineStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:93,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:96,1
    - Dst: OGRStylePen*::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:107,1
    - Dst: LineStylePtr::set_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:109,1
    - Dst: Color32
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:109,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:110,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:110,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:111,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:111,1
    - Dst: OGRStylePen*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:113,1
    - Dst: LineStylePtr::set_width
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:119,1
    - Dst: cpl::down_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:126,1
    - Dst: OGRStyleBrush*::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:137,1
    - Dst: KmlFactory*::CreatePolyStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:139,1
    - Dst: PolyStylePtr::set_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:140,1
    - Dst: Color32
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:140,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:141,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:141,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:142,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:142,1
    - Dst: cpl::down_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:149,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:158,1
    - Dst: KmlFactory*::CreateIconStyleIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:173,1
    - Dst: IconStyleIconPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:174,1
    - Dst: IconStylePtr::set_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:175,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:178,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:188,1
    - Dst: IconStylePtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:189,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:198,1
    - Dst: IconStylePtr::set_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:200,1
    - Dst: OGRStyleTool*::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:211,1
    - Dst: IconStylePtr::set_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:213,1
    - Dst: Color32
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:213,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:214,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:214,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:215,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:215,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:227,1
    - Dst: KmlFactory*::CreateHotSpot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:229,1
    - Dst: HotSpotPtr::set_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:232,1
    - Dst: HotSpotPtr::set_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:233,1
    - Dst: IconStylePtr::set_hotspot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:235,1
    - Dst: cpl::down_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:247,1
    - Dst: OGRStyleLabel*::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:257,1
    - Dst: KmlFactory*::CreateLabelStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:260,1
    - Dst: LabelStylePtr::set_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:261,1
    - Dst: Color32
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:261,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:262,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:262,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:263,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:263,1
    - Dst: KmlFactory*::CreateLabelStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:273,1
    - Dst: LabelStylePtr::set_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:274,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:284,1
    - Dst: KmlFactory*::CreateIconStyleIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:286,1
    - Dst: IconStylePtr::set_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:287,1
    - Dst: IconStylePtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:290,1
    - Dst: KmlFactory*::CreateIconStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:301,1
    - Dst: KmlFactory*::CreateIconStyleIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:303,1
    - Dst: IconStylePtr::set_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:304,1
    - Dst: KmlFactory*::CreateHotSpot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:307,1
    - Dst: HotSpotPtr::set_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:310,1
    - Dst: HotSpotPtr::set_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:311,1
    - Dst: IconStylePtr::set_hotspot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:313,1
    - Dst: FeaturePtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:322,1
    - Dst: KmlFactory*::CreateStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:340,1
    - Dst: StylePtr::set_linestyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:343,1
    - Dst: StylePtr::set_polystyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:346,1
    - Dst: StylePtr::set_iconstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:349,1
    - Dst: StylePtr::set_labelstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:352,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 120
    argCount: 4
    argNames:
    - pszStyleString
    - poKmlStyle
    - poKmlFactory
    - poKmlFeature
    argTypes:
    - char*
    - StylePtr
    - KmlFactory*
    - FeaturePtr
    constantsTouched: []
    func_position:
      end: 358
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 358
    functionName: addstylestring2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRStyleSymbol *>
    - HotSpotPtr::set_y
    - OGRStyleBrush*::GetRGBFromString
    - IconStyleIconPtr::set_href
    - KmlFactory*::CreateHotSpot
    - IconStylePtr::set_hotspot
    - static_cast<GByte>
    - OGRStyleMgr::OGRStyleMgr
    - StylePtr::set_labelstyle
    - PolyStylePtr::set_color
    - StylePtr::set_iconstyle
    - KmlFactory*::CreatePolyStyle
    - LineStylePtr::set_width
    - OGRStyleMgr*::GetPart
    - Color32
    - OGRStyleTool*::GetRGBFromString
    - cpl::down_cast<OGRStyleBrush *>
    - KmlFactory*::CreateIconStyleIcon
    - LabelStylePtr::set_scale
    - cpl::down_cast<OGRStylePen *>
    - IconStylePtr::set_heading
    - IconStylePtr::set_color
    - StylePtr::set_linestyle
    - cpl::down_cast<OGRStyleLabel *>
    - StylePtr::set_polystyle
    - IconStylePtr::set_scale
    - FeaturePtr::set_name
    - LabelStylePtr::set_color
    - IconStylePtr::set_icon
    - KmlFactory*::CreateIconStyle
    - KmlFactory*::CreateLineStyle
    - KmlFactory*::CreateLabelStyle
    - OGRStyleMgr*::InitStyleString
    - CSLDestroy
    - OGRStyleTool*::GetType
    - OGRStyleLabel*::GetRGBFromString
    - HotSpotPtr::set_x
    - OGRStylePen*::SetUnit
    - LineStylePtr::set_color
    - KmlFactory*::CreateStyle
    - OGRStylePen*::GetRGBFromString
    - OGRStyleMgr*::GetPartCount
    linkageType: ''
    returnType: StylePtr
    signature: "StylePtr addstylestring2kml(const char *pszStyleString, StylePtr poKmlStyle,\n
      \                           KmlFactory *poKmlFactory, FeaturePtr poKmlFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStylePen::OGRStylePen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:368,1
    - Dst: OGRStylePen*::SetUnit
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:371,1
    - Dst: LineStylePtr::has_width
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:374,1
    - Dst: OGRStylePen*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:375,1
    - Dst: LineStylePtr::get_width
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:375,1
    - Dst: LineStylePtr::has_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:378,1
    - Dst: LineStylePtr::get_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:380,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:382,1
    - Dst: Color32::get_red
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:383,1
    - Dst: Color32::get_green
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:383,1
    - Dst: Color32::get_blue
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:384,1
    - Dst: Color32::get_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:384,1
    - Dst: OGRStylePen*::SetColor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - poKmlLineStyle
    - poOgrStylePen
    argTypes:
    - LineStylePtr
    - OGRStylePen*
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: kml2pen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - LineStylePtr::get_width
    - LineStylePtr::has_color
    - OGRStylePen*::SetColor
    - Color32::get_alpha
    - OGRStylePen::OGRStylePen
    - Color32::get_blue
    - snprintf
    - LineStylePtr::has_width
    - OGRStylePen*::SetWidth
    - OGRStylePen*::SetUnit
    - Color32::get_green
    - LineStylePtr::get_color
    - Color32::get_red
    linkageType: ''
    returnType: OGRStylePen
    signature: "OGRStylePen *kml2pen(LineStylePtr poKmlLineStyle,\n                            OGRStylePen
      *poOgrStylePen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleBrush::OGRStyleBrush
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:399,1
    - Dst: PolyStylePtr::has_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:402,1
    - Dst: PolyStylePtr::get_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:404,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:406,1
    - Dst: Color32::get_red
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:407,1
    - Dst: Color32::get_green
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:407,1
    - Dst: Color32::get_blue
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:408,1
    - Dst: Color32::get_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:408,1
    - Dst: OGRStyleBrush*::SetForeColor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - poKmlPolyStyle
    - poOgrStyleBrush
    argTypes:
    - PolyStylePtr
    - OGRStyleBrush*
    constantsTouched: []
    func_position:
      end: 413
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 413
    functionName: kml2brush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleBrush::OGRStyleBrush
    - PolyStylePtr::has_color
    - Color32::get_alpha
    - PolyStylePtr::get_color
    - snprintf
    - Color32::get_blue
    - OGRStyleBrush*::SetForeColor
    - Color32::get_green
    - Color32::get_red
    linkageType: ''
    returnType: OGRStyleBrush
    signature: "OGRStyleBrush *kml2brush(PolyStylePtr poKmlPolyStyle,\n                                OGRStyleBrush
      *poOgrStyleBrush)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleSymbol::OGRStyleSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:423,1
    - Dst: IconStylePtr::has_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:426,1
    - Dst: IconStylePtr::get_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:428,1
    - Dst: IconStyleIconPtr::has_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:430,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:433,1
    - Dst: IconStyleIconPtr::get_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:433,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:434,1
    - Dst: OGRStyleSymbol*::SetId
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:435,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:435,1
    - Dst: IconStylePtr::has_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:440,1
    - Dst: OGRStyleSymbol*::SetAngle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:441,1
    - Dst: IconStylePtr::get_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:441,1
    - Dst: IconStylePtr::has_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:444,1
    - Dst: OGRStyleSymbol*::SetSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:445,1
    - Dst: IconStylePtr::get_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:445,1
    - Dst: IconStylePtr::has_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:448,1
    - Dst: IconStylePtr::get_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:450,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:452,1
    - Dst: Color32::get_red
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:453,1
    - Dst: Color32::get_green
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:453,1
    - Dst: Color32::get_blue
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:454,1
    - Dst: Color32::get_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:454,1
    - Dst: OGRStyleSymbol*::SetColor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:455,1
    - Dst: IconStylePtr::has_hotspot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:459,1
    - Dst: IconStylePtr::get_hotspot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:461,1
    - Dst: HotSpotPtr::has_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:463,1
    - Dst: OGRStyleSymbol*::SetSpacingX
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:464,1
    - Dst: HotSpotPtr::get_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:464,1
    - Dst: HotSpotPtr::has_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:465,1
    - Dst: OGRStyleSymbol*::SetSpacingY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:466,1
    - Dst: HotSpotPtr::get_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:466,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - poKmlIconStyle
    - poOgrStyleSymbol
    argTypes:
    - IconStylePtr
    - OGRStyleSymbol*
    constantsTouched: []
    func_position:
      end: 470
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 470
    functionName: kml2symbol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - HotSpotPtr::has_y
    - HotSpotPtr::get_y
    - std::string::append
    - OGRStyleSymbol*::SetSize
    - IconStylePtr::get_icon
    - OGRStyleSymbol::OGRStyleSymbol
    - IconStylePtr::has_scale
    - std::string::c_str
    - IconStylePtr::get_hotspot
    - IconStylePtr::get_scale
    - OGRStyleSymbol*::SetId
    - OGRStyleSymbol*::SetSpacingY
    - IconStylePtr::has_icon
    - Color32::get_alpha
    - OGRStyleSymbol*::SetColor
    - Color32::get_blue
    - IconStylePtr::get_heading
    - Color32::get_green
    - IconStylePtr::has_color
    - HotSpotPtr::get_x
    - IconStyleIconPtr::has_href
    - snprintf
    - HotSpotPtr::has_x
    - IconStylePtr::get_color
    - IconStylePtr::has_heading
    - OGRStyleSymbol*::SetAngle
    - IconStyleIconPtr::get_href
    - OGRStyleSymbol*::SetSpacingX
    - IconStylePtr::has_hotspot
    - Color32::get_red
    linkageType: ''
    returnType: OGRStyleSymbol
    signature: "OGRStyleSymbol *kml2symbol(IconStylePtr poKmlIconStyle,\n                                  OGRStyleSymbol
      *poOgrStyleSymbol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleLabel::OGRStyleLabel
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:480,1
    - Dst: LabelStylePtr::has_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:483,1
    - Dst: LabelStylePtr::get_color
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:485,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:487,1
    - Dst: Color32::get_red
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:488,1
    - Dst: Color32::get_green
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:488,1
    - Dst: Color32::get_blue
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:489,1
    - Dst: Color32::get_alpha
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:489,1
    - Dst: OGRStyleLabel*::SetForColor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:490,1
    - Dst: LabelStylePtr::has_scale
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:493,1
    - Dst: OGRStyleLabel*::SetStretch
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - poKmlLabelStyle
    - poOgrStyleLabel
    argTypes:
    - LabelStylePtr
    - OGRStyleLabel*
    constantsTouched: []
    func_position:
      end: 502
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 502
    functionName: kml2label
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleLabel*::SetForColor
    - LabelStylePtr::has_color
    - Color32::get_alpha
    - LabelStylePtr::has_scale
    - Color32::get_blue
    - snprintf
    - OGRStyleLabel*::SetStretch
    - OGRStyleLabel::OGRStyleLabel
    - Color32::get_green
    - LabelStylePtr::get_color
    - Color32::get_red
    linkageType: ''
    returnType: OGRStyleLabel
    signature: "OGRStyleLabel *kml2label(LabelStylePtr poKmlLabelStyle,\n                                OGRStyleLabel
      *poOgrStyleLabel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StylePtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:513,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:517,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:519,1
    - Dst: kml2stylestring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:522,1
    - Dst: StylePtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:525,1
    - Dst: OGRStyleMgr*::AddStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:527,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:527,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - poOgrStyleTable
    - poKmlStyle
    argTypes:
    - OGRStyleTable*
    - StylePtr
    constantsTouched: []
    func_position:
      end: 531
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 531
    functionName: kml2styletable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - StylePtr::has_id
    - OGRStyleMgr*::InitStyleString
    - OGRStyleMgr*::AddStyle
    - StylePtr::get_id
    - OGRStyleMgr::OGRStyleMgr
    - kml2stylestring
    - CPLString
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void kml2styletable(OGRStyleTable *poOgrStyleTable, StylePtr poKmlStyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:542,1
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:547,1
    - Dst: StyleFromStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:548,1
    - Dst: kmldom::AsStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - poKmlStyleSelector
    - poStyleTable
    argTypes:
    - StyleSelectorPtr
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 553
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 553
    functionName: StyleFromStyleSelector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - StyleFromStyleMap
    - StyleSelectorPtr::IsA
    - kmldom::AsStyleMap
    linkageType: ''
    returnType: StyleSelectorPtr
    signature: "StyleSelectorPtr StyleFromStyleSelector(const StyleSelectorPtr &poKmlStyleSelector,\n
      \                      OGRStyleTable *poStyleTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:562,1
    - Dst: StylePtr::has_linestyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:565,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:567,1
    - Dst: StylePtr::get_linestyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:569,1
    - Dst: OGRStyleMgr*::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:572,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:574,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:579,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:585,1
    - Dst: kml2pen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:591,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:591,1
    - Dst: cpl::down_cast<OGRStylePen *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:592,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:594,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:597,1
    - Dst: OGRStyleMgr*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:597,1
    - Dst: StylePtr::has_polystyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:601,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:603,1
    - Dst: StylePtr::get_polystyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:605,1
    - Dst: OGRStyleMgr*::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:608,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:610,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:615,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:621,1
    - Dst: kml2brush
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:627,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:627,1
    - Dst: cpl::down_cast<OGRStyleBrush *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:628,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:630,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:633,1
    - Dst: OGRStyleMgr*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:633,1
    - Dst: StylePtr::has_iconstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:637,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:639,1
    - Dst: StylePtr::get_iconstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:641,1
    - Dst: OGRStyleMgr*::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:644,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:646,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:651,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:657,1
    - Dst: kml2symbol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:663,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:663,1
    - Dst: cpl::down_cast<OGRStyleSymbol *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:664,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:666,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:669,1
    - Dst: OGRStyleMgr*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:669,1
    - Dst: StylePtr::has_labelstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:673,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:675,1
    - Dst: StylePtr::get_labelstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:677,1
    - Dst: OGRStyleMgr*::GetPartCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:680,1
    - Dst: OGRStyleMgr*::GetPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:682,1
    - Dst: OGRStyleTool*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:687,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:693,1
    - Dst: kml2label
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:699,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:699,1
    - Dst: cpl::down_cast<OGRStyleLabel *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:700,1
    - Dst: OGRStyleMgr*::AddPart
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:702,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:705,1
    - Dst: OGRStyleMgr*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:705,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - poKmlStyle
    - poOgrSM
    argTypes:
    - StylePtr
    - OGRStyleMgr*
    constantsTouched: []
    func_position:
      end: 709
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 709
    functionName: kml2stylestring
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<OGRStyleSymbol *>
    - StylePtr::get_labelstyle
    - StylePtr::has_linestyle
    - OGRStyleMgr::OGRStyleMgr
    - kml2symbol
    - StylePtr::has_polystyle
    - kml2pen
    - OGRStyleMgr*::GetPart
    - std::move
    - cpl::down_cast<OGRStyleBrush *>
    - cpl::down_cast<OGRStylePen *>
    - StylePtr::has_iconstyle
    - kml2label
    - OGRStyleMgr*::GetStyleString
    - StylePtr::get_iconstyle
    - cpl::down_cast<OGRStyleLabel *>
    - OGRStyleMgr*::AddPart
    - StylePtr::has_labelstyle
    - StylePtr::get_linestyle
    - StylePtr::get_polystyle
    - OGRStyleMgr*::InitStyleString
    - OGRStyleTool*::GetType
    - kml2brush
    - OGRStyleMgr*::GetPartCount
    linkageType: ''
    returnType: void
    signature: void kml2stylestring(StylePtr poKmlStyle, OGRStyleMgr *poOgrSM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ElementPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:729,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:731,1
    - Dst: KmlPtr::has_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:733,1
    - Dst: KmlPtr::get_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:735,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:737,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:739,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:741,1
    - Dst: KmlFactory*::CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:743,1
    - Dst: ContainerPtr::add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:744,1
    - Dst: kmldom::AsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:745,1
    - Dst: OGRFeature::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:745,1
    - Dst: ElementPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:749,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:751,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - poKmlFactory
    - poKmlRoot
    argTypes:
    - KmlFactory*
    - ElementPtr
    constantsTouched: []
    func_position:
      end: 756
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 756
    functionName: MyGetContainerFromRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - KmlFactory*::CreateDocument
    - kmldom::AsFeature
    - ContainerPtr::add_feature
    - ElementPtr::IsA
    - KmlPtr::has_feature
    - KmlPtr::get_feature
    - std::move
    - AsKml
    - AsContainer
    - OGRFeature::Clone
    - FeaturePtr::IsA
    linkageType: ''
    returnType: ContainerPtr
    signature: "ContainerPtr MyGetContainerFromRoot(KmlFactory *poKmlFactory,\n                                           ElementPtr
      poKmlRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable*::AddStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:774,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:780,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:784,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:799,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:800,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:803,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:818,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:819,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:819,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:821,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:825,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:829,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:831,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:832,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:833,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:834,1
    - Dst: kmldom::KmlFactory::GetFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:841,1
    - Dst: MyGetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:843,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:844,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:846,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:847,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:848,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:854,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:854,1
    - Dst: OGRStyleTable*::AddStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:861,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:863,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:868,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:869,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - stylemap
    - styleurl
    - poStyleTable
    argTypes:
    - StyleMapPtr
    - string
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 872
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 872
    functionName: StyleFromStyleURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLFree
    - VSIFEofL
    - ParseStyles
    - VSIFCloseL
    - OGRStyleTable*::AddStyle
    - kmldom::KmlFactory::GetFactory
    - MyGetContainerFromRoot
    - std::string::append
    - strchr
    - VSIFOpenL
    - AsDocument
    - VSIFErrorL
    - std::move
    - CPLError
    - std::string::c_str
    - CPLFormFilenameSafe
    - OGRJSonParse
    linkageType: ''
    returnType: StyleSelectorPtr
    signature: "StyleSelectorPtr StyleFromStyleURL(const StyleMapPtr &stylemap,\n
      \                                         const string &styleurl,\n                                          OGRStyleTable
      *poStyleTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StyleMapPtr::get_pair_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:886,1
    - Dst: StyleMapPtr::get_pair_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:888,1
    - Dst: PairPtr::get_key
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:891,1
    - Dst: PairPtr::has_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:893,1
    - Dst: StyleFromStyleSelector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:894,1
    - Dst: PairPtr::get_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:894,1
    - Dst: PairPtr::has_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:896,1
    - Dst: StyleFromStyleURL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:897,1
    - Dst: PairPtr::get_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - poKmlStyleMap
    - poStyleTable
    argTypes:
    - StyleMapPtr
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 903
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 903
    functionName: StyleFromStyleMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 1
    functionsReached:
    - PairPtr::get_styleselector
    - PairPtr::get_styleurl
    - StyleFromStyleSelector
    - StyleFromStyleURL
    - PairPtr::get_key
    - StyleMapPtr::get_pair_array_at
    - StyleMapPtr::get_pair_array_size
    - PairPtr::has_styleurl
    - PairPtr::has_styleselector
    linkageType: ''
    returnType: StyleSelectorPtr
    signature: "StyleSelectorPtr StyleFromStyleMap(const StyleMapPtr &poKmlStyleMap,\n
      \                                  OGRStyleTable *poStyleTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DocumentPtr::get_styleselector_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:923,1
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:926,1
    - Dst: OGRStyleTable::OGRStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:933,1
    - Dst: kml2styletable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:935,1
    - Dst: AsStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:935,1
    - Dst: AsElement
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:935,1
    - Dst: DocumentPtr::get_styleselector_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:946,1
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:949,1
    - Dst: OGRStyleTable::OGRStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:955,1
    - Dst: StyleFromStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:961,1
    - Dst: kmldom::AsStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:961,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:964,1
    - Dst: kml2styletable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:969,1
    - Dst: AsStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:969,1
    - Dst: AsElement
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:969,1
    - Dst: AddStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:977,1
    - Dst: RemoveStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:978,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:980,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:981,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - poKmlDocument
    - poStyleTable
    argTypes:
    - DocumentPtr
    - OGRStyleTable**
    constantsTouched: []
    func_position:
      end: 983
      start: 909
    functionDepth: 4
    functionLinenumber: 909
    functionLinenumberEnd: 983
    functionName: ParseStyles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 1
    functionsReached:
    - RemoveStyle
    - StyleFromStyleMap
    - kmldom::AsStyleMap
    - AddStyle
    - AsElement
    - kml2styletable
    - OGRStyleTable::OGRStyleTable
    - DocumentPtr::get_styleselector_array_at
    - AsStyle
    - StyleSelectorPtr::IsA
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ParseStyles(DocumentPtr poKmlDocument, OGRStyleTable **poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRStyleTable*::ResetStyleStringReading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:998,1
    - Dst: OGRStyleTable*::GetNextStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1001,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1005,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1005,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1006,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1006,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1006,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1010,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1010,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1010,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1011,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1011,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1013,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1013,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1014,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1014,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1015,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1019,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1019,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1019,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1020,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1020,1
    - Dst: OGRStyleTable*::ResetStyleStringReading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1025,1
    - Dst: OGRStyleTable*::GetNextStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1028,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1032,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1032,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1033,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1034,1
    - Dst: KmlFactory*::CreateStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1040,1
    - Dst: StylePtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1042,1
    - Dst: addstylestring2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1045,1
    - Dst: OGRStylePen::OGRStylePen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1056,1
    - Dst: OGRStylePen::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1058,1
    - Dst: KmlFactory*::CreateBalloonStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1063,1
    - Dst: OGRStylePen::GetRGBFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1065,1
    - Dst: BalloonStylePtr::set_bgcolor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1067,1
    - Dst: Color32
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1068,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1068,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1068,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1069,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1069,1
    - Dst: BalloonStylePtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1071,1
    - Dst: StylePtr::set_balloonstyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1072,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1076,1
    - Dst: DocumentPtr::add_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1077,1
    - Dst: std::set::begin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1083,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1084,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1088,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1089,1
    - Dst: KmlFactory*::CreateStyleMap
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1091,1
    - Dst: StyleMapPtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1092,1
    - Dst: KmlFactory*::CreatePair
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1094,1
    - Dst: PairPtr::set_key
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1095,1
    - Dst: PairPtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1096,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1097,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1097,1
    - Dst: StyleMapPtr::add_pair
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1098,1
    - Dst: KmlFactory*::CreatePair
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1100,1
    - Dst: PairPtr::set_key
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1101,1
    - Dst: PairPtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1102,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1103,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1103,1
    - Dst: StyleMapPtr::add_pair
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1104,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1107,1
    - Dst: DocumentPtr::add_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - poOgrStyleTable
    - poKmlFactory
    - poKmlContainer
    - papszOptions
    argTypes:
    - OGRStyleTable*
    - KmlFactory*
    - ContainerPtr
    - char**
    constantsTouched: []
    func_position:
      end: 1111
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1111
    functionName: styletable2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - PairPtr::set_key
    - StyleMapPtr::set_id
    - OGRStyleTable*::GetNextStyle
    - std::set::insert
    - addstylestring2kml
    - KmlFactory*::CreateStyleMap
    - OGRStylePen::OGRStylePen
    - static_cast<GByte>
    - AsDocument
    - StyleMapPtr::add_pair
    - CPLString::resize
    - BalloonStylePtr::set_bgcolor
    - StylePtr::set_balloonstyle
    - Color32
    - CPLString::c_str
    - std::move
    - strlen
    - PairPtr::set_styleurl
    - BalloonStylePtr::set_text
    - KmlFactory*::CreateBalloonStyle
    - OGRStylePen::GetRGBFromString
    - StylePtr::set_id
    - KmlFactory*::CreatePair
    - CPLSPrintf
    - std::set::find
    - DocumentPtr::add_styleselector
    - EQUAL
    - OGRStyleTable*::ResetStyleStringReading
    - std::set::begin
    - KmlFactory*::CreateStyle
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void styletable2kml(OGRStyleTable *poOgrStyleTable, KmlFactory *poKmlFactory,\n
      \                   ContainerPtr poKmlContainer, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1123,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1123,1
    - Dst: KmlFactory*::CreateStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1125,1
    - Dst: StylePtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1129,1
    - Dst: KmlFactory*::CreateListStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1131,1
    - Dst: StylePtr::set_liststyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1132,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1135,1
    - Dst: ListStylePtr::set_listitemtype
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1136,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1137,1
    - Dst: ListStylePtr::set_listitemtype
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1140,1
    - Dst: ListStylePtr::set_listitemtype
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1143,1
    - Dst: ListStylePtr::set_listitemtype
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1148,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1151,1
    - Dst: ListStylePtr::set_listitemtype
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1152,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1156,1
    - Dst: KmlFactory*::CreateItemIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1158,1
    - Dst: ItemIconPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1159,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1159,1
    - Dst: ListStylePtr::add_itemicon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1160,1
    - Dst: DocumentPtr::add_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1163,1
    - Dst: ContainerPtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1164,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp:1164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - poKmlFactory
    - pszBaseName
    - poKmlLayerContainer
    - poKmlDocument
    - osListStyleType
    - osListStyleIconHref
    argTypes:
    - KmlFactory*
    - char*
    - ContainerPtr
    - DocumentPtr
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1166
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1166
    functionName: createkmlliststyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp
    functionUses: 0
    functionsReached:
    - ListStylePtr::add_itemicon
    - StylePtr::set_liststyle
    - StylePtr::set_id
    - ContainerPtr::set_styleurl
    - CPLSPrintf
    - EQUAL
    - CPLString::c_str
    - ListStylePtr::set_listitemtype
    - ItemIconPtr::set_href
    - DocumentPtr::add_styleselector
    - CPLError
    - KmlFactory*::CreateItemIcon
    - KmlFactory*::CreateStyle
    - KmlFactory*::CreateListStyle
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void createkmlliststyle(KmlFactory *poKmlFactory, const char *pszBaseName,\n
      \                       ContainerPtr poKmlLayerContainer,\n                        DocumentPtr
      poKmlDocument,\n                        const CPLString &osListStyleType,\n
      \                       const CPLString &osListStyleIconHref)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: OGRLIBKMLDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDriverUnload(GDALDriver * /* poDriver */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:44,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:48,1
    - Dst: KmlFactory::GetFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:50,1
    - Dst: OGRLIBKMLDataSource::OGRLIBKMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:53,1
    - Dst: OGRLIBKMLDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: OGRLIBKMLDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLDriverIdentify
    - CPLMutexHolderD
    - OGRLIBKMLDataSource*::Open
    - KmlFactory::GetFactory
    - OGRLIBKMLDataSource::OGRLIBKMLDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRLIBKMLDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:74,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:75,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:78,1
    - Dst: KmlFactory::GetFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:80,1
    - Dst: OGRLIBKMLDataSource::OGRLIBKMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:83,1
    - Dst: OGRLIBKMLDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 93
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 93
    functionName: OGRLIBKMLDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - OGRLIBKMLDataSource*::Create
    - CPLDebug
    - CPLAssert
    - KmlFactory::GetFactory
    - OGRLIBKMLDataSource::OGRLIBKMLDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRLIBKMLDriverCreate(const char *pszName, int /* nBands
      */,\n                                          int /* nXSize */, int /* nYSize
      */,\n                                          GDALDataType /* eDT */,\n                                          char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:107,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:107,1
    - Dst: OGRLIBKMLDriverDelete
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:113,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:115,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:119,1
    - Dst: VSIRmdir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:121,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:128,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:128,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:130,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:135,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:135,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 149
    functionName: OGRLIBKMLDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp
    functionUses: 1
    functionsReached:
    - VSIStatL
    - VSIUnlink
    - CSLDestroy
    - VSI_ISDIR
    - EQUAL
    - OGRLIBKMLDriverDelete
    - VSIRmdir
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRLIBKMLDriverDelete(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:157,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:160,1
    - Dst: OGRLIBKMLDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:161,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: RegisterOGRLIBKML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRLIBKMLDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRLIBKML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:63,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:71,1
    - Dst: FeaturePtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:72,1
    - Dst: OGRLIBKMLDataSource*::GetStylePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:80,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:81,1
    - Dst: OGRLIBKMLDataSource*::GetStylePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:81,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:82,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:83,1
    - Dst: FeaturePtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:85,1
    - Dst: addstylestring2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:92,1
    - Dst: FeaturePtr::set_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:97,1
    - Dst: OGRFeature*::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:101,1
    - Dst: OGRStyleTable*::ResetStyleStringReading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:104,1
    - Dst: OGRStyleTable*::GetNextStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:106,1
    - Dst: OGRLayer*::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:115,1
    - Dst: OGRStyleTable*::Find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:117,1
    - Dst: OGRLIBKMLDataSource*::GetStylePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:124,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:125,1
    - Dst: OGRLIBKMLDataSource*::GetStylePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:125,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:126,1
    - Dst: string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:127,1
    - Dst: FeaturePtr::set_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:129,1
    - Dst: addstylestring2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:134,1
    - Dst: FeaturePtr::set_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - poOgrDS
    - poOgrLayer
    - poOgrFeat
    - poKmlFactory
    - poKmlFeature
    argTypes:
    - OGRLIBKMLDataSource*
    - OGRLayer*
    - OGRFeature*
    - KmlFactory*
    - FeaturePtr
    constantsTouched: []
    func_position:
      end: 144
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 144
    functionName: featurestyle2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - OGRStyleTable*::Find
    - OGRLIBKMLDataSource*::GetStylePath
    - FeaturePtr::set_styleselector
    - OGRStyleTable*::GetNextStyle
    - addstylestring2kml
    - string::append
    - OGRFeature*::GetStyleTable
    - FeaturePtr::set_styleurl
    - OGRStyleTable*::ResetStyleStringReading
    - OGRLayer*::GetStyleTable
    linkageType: ''
    returnType: void
    signature: "void featurestyle2kml(OGRLIBKMLDataSource *poOgrDS, OGRLayer *poOgrLayer,\n
      \                     OGRFeature *poOgrFeat, KmlFactory *poKmlFactory,\n                      FeaturePtr
      poKmlFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeaturePtr::get_styleurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:158,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:164,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:164,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:165,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:165,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:165,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:167,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:167,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:177,1
    - Dst: std::string::front
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:177,1
    - Dst: OGRLayer*::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:178,1
    - Dst: OGRStyleTable*::Find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:180,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:180,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:189,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:195,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:195,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:202,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:204,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:204,1
    - Dst: OGRLIBKMLDataSource*::GetStylePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:204,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:211,1
    - Dst: OGRLIBKMLDataSource*::GetStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:212,1
    - Dst: OGRStyleTable*::Find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:213,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:213,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:221,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:221,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:226,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:231,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:235,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:238,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:242,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:242,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:243,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:243,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:246,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:248,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:248,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:250,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:251,1
    - Dst: OGRLIBKMLDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:251,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:253,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:255,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:256,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:258,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:258,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:276,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:277,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:277,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:279,1
    - Dst: OGRLIBKMLDataSource*::ParseIntoStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:283,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:284,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:295,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:300,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:300,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:304,1
    - Dst: FeaturePtr::has_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:311,1
    - Dst: FeaturePtr::get_styleselector
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:313,1
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:316,1
    - Dst: AsStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:318,1
    - Dst: OGRStyleMgr::OGRStyleMgr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:320,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:326,1
    - Dst: OGRStyleMgr*::InitFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:328,1
    - Dst: OGRStyleMgr*::InitStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:334,1
    - Dst: kml2stylestring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:338,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:338,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:341,1
    - Dst: OGRStyleMgr*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:341,1
    - Dst: StyleSelectorPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp:346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 72
    argCount: 4
    argNames:
    - poKmlFeature
    - poOgrDS
    - poOgrLayer
    - poOgrFeat
    argTypes:
    - FeaturePtr
    - OGRLIBKMLDataSource*
    - OGRLayer*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 351
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 351
    functionName: kml2featurestyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp
    functionUses: 1
    functionsReached:
    - std::string::data
    - strncmp
    - std::string::append
    - memcmp
    - CPLDebug
    - OGRStyleMgr::OGRStyleMgr
    - kml2stylestring
    - STARTS_WITH
    - std::string::c_str
    - std::string::empty
    - FeaturePtr::get_styleurl
    - OGRStyleTable*::Find
    - OGRLIBKMLDataSource*::GetStyleTable
    - VSIFEofL
    - std::string::find
    - CPLGetDirnameSafe
    - OGRFeature*::SetStyleString
    - CPLIsFilenameRelative
    - FeaturePtr::has_styleselector
    - strlen
    - std::move
    - OGRLayer*::GetStyleTable
    - OGRLIBKMLDataSource*::GetDescription
    - OGRStyleMgr*::GetStyleString
    - CPLTestBool
    - OGRLIBKMLDataSource*::GetStylePath
    - OGRLIBKMLDataSource*::ParseIntoStyleTable
    - VSIFOpenL
    - std::string::resize
    - FeaturePtr::get_styleselector
    - AsStyle
    - OGRStyleMgr*::InitFromFeature
    - StyleSelectorPtr::IsA
    - CPLFormFilenameSafe
    - OGRStyleMgr*::InitStyleString
    - VSIFCloseL
    - std::string::size
    - std::string::front
    - VSIFErrorL
    - std::string
    - std::string::substr
    linkageType: ''
    returnType: void
    signature: "void kml2featurestyle(FeaturePtr poKmlFeature, OGRLIBKMLDataSource
      *poOgrDS,\n                      OGRLayer *poOgrLayer, OGRFeature *poOgrFeat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:51,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:74,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 80
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 80
    functionName: NormalizeLongLat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool NormalizeLongLat(double &x, double &y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:110,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:116,1
    - Dst: OGRPoint*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:118,1
    - Dst: KmlFactory*::CreatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:120,1
    - Dst: NormalizeLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:128,1
    - Dst: KmlFactory*::CreateCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:131,1
    - Dst: CoordinatesPtr::add_latlng
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:132,1
    - Dst: KmlFactory*::CreatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:133,1
    - Dst: PointPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:135,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:142,1
    - Dst: NormalizeLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:148,1
    - Dst: KmlFactory*::CreateCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:151,1
    - Dst: CoordinatesPtr::add_latlngalt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:152,1
    - Dst: KmlFactory*::CreatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:153,1
    - Dst: PointPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:155,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:161,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:165,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:168,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:171,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:171,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:174,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:181,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:184,1
    - Dst: KmlFactory*::CreateCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:190,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:192,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:196,1
    - Dst: NormalizeLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:201,1
    - Dst: CoordinatesPtr::add_latlng
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:204,1
    - Dst: KmlFactory*::CreateLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:211,1
    - Dst: LineStringPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:213,1
    - Dst: KmlFactory*::CreateLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:223,1
    - Dst: LinearRingPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:224,1
    - Dst: KmlFactory*::CreateOuterBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:229,1
    - Dst: OuterBoundaryIsPtr::set_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:230,1
    - Dst: KmlFactory*::CreateInnerBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:236,1
    - Dst: InnerBoundaryIsPtr::set_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:238,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:245,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:249,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:252,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:255,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:255,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:258,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:265,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:265,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:268,1
    - Dst: KmlFactory*::CreateCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:274,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:275,1
    - Dst: OGRLineString*::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:279,1
    - Dst: NormalizeLongLat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:285,1
    - Dst: CoordinatesPtr::add_latlngalt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:288,1
    - Dst: KmlFactory*::CreateLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:295,1
    - Dst: LineStringPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:297,1
    - Dst: KmlFactory*::CreateLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:305,1
    - Dst: LinearRingPtr::set_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:306,1
    - Dst: KmlFactory*::CreateOuterBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:311,1
    - Dst: OuterBoundaryIsPtr::set_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:313,1
    - Dst: KmlFactory*::CreateInnerBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:318,1
    - Dst: InnerBoundaryIsPtr::set_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:320,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:327,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:328,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:329,1
    - Dst: CPLErrorStateBackuper::CPLErrorStateBackuper
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:333,1
    - Dst: OGRGeometry*::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:338,1
    - Dst: KmlFactory*::CreatePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:343,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:346,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:348,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:348,1
    - Dst: PolygonPtr::set_outerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:351,1
    - Dst: AsOuterBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:352,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:357,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:357,1
    - Dst: PolygonPtr::add_innerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:361,1
    - Dst: AsInnerBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:362,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:369,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:370,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:371,1
    - Dst: CPLErrorStateBackuper::CPLErrorStateBackuper
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:375,1
    - Dst: OGRGeometry*::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:376,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:380,1
    - Dst: KmlFactory*::CreatePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:385,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:388,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:390,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:390,1
    - Dst: PolygonPtr::set_outerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:393,1
    - Dst: AsOuterBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:394,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:399,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:399,1
    - Dst: PolygonPtr::add_innerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:403,1
    - Dst: AsInnerBoundaryIs
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:404,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:419,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:423,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:423,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:426,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:428,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:428,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:435,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:435,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:438,1
    - Dst: KmlFactory*::CreateMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:443,1
    - Dst: geom2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:448,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:449,1
    - Dst: MultiGeometryPtr::add_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:452,1
    - Dst: AsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:453,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:453,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 183
    argCount: 3
    argNames:
    - poOgrGeom
    - extra
    - poKmlFactory
    argTypes:
    - OGRGeometry*
    - int
    - KmlFactory*
    constantsTouched: []
    func_position:
      end: 466
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 466
    functionName: geom2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - KmlFactory*::CreateLinearRing
    - OGRGeometry*::IsValid
    - MultiGeometryPtr::add_geometry
    - CPLDebug
    - OGRLineString*::getPoint
    - OGRLineString*::getNumPoints
    - geom2kml
    - AsGeometry
    - PolygonPtr::add_innerboundaryis
    - PolygonPtr::set_outerboundaryis
    - CPLError
    - NormalizeLongLat
    - CPLGetConfigOption
    - InnerBoundaryIsPtr::set_linearring
    - KmlFactory*::CreateMultiGeometry
    - LineStringPtr::set_coordinates
    - AsInnerBoundaryIs
    - KmlFactory*::CreateLineString
    - OuterBoundaryIsPtr::set_linearring
    - KmlFactory*::CreatePoint
    - OGRPoint::OGRPoint
    - std::move
    - KmlFactory*::CreateInnerBoundaryIs
    - OGRGeometry*::getGeometryType
    - CPLTestBool
    - AsOuterBoundaryIs
    - OGRGeometry*::toGeometryCollection
    - OGRPolygon*::getInteriorRing
    - LinearRingPtr::set_coordinates
    - KmlFactory*::CreatePolygon
    - KmlFactory*::CreateCoordinates
    - CoordinatesPtr::add_latlng
    - PointPtr::set_coordinates
    - OGRGeometry*::toLinearRing
    - OGRGeometry*::toLineString
    - KmlFactory*::CreateOuterBoundaryIs
    - OGRPoint*::getCoordinateDimension
    - OGRGeometryCollection*::getGeometryRef
    - CoordinatesPtr::add_latlngalt
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    - CPLErrorStateBackuper::CPLErrorStateBackuper
    linkageType: ''
    returnType: ElementPtr
    signature: ElementPtr geom2kml(OGRGeometry *poOgrGeom, int extra, KmlFactory *poKmlFactory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:492,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:496,1
    - Dst: PointPtr::has_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:497,1
    - Dst: PointPtr::get_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:499,1
    - Dst: CoordinatesPtr::get_coordinates_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:505,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:507,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:508,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:509,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:510,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:508,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:512,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:513,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:512,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:519,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:524,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:531,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:532,1
    - Dst: LineStringPtr::has_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:533,1
    - Dst: LineStringPtr::get_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:536,1
    - Dst: CoordinatesPtr::get_coordinates_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:543,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:544,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:545,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:545,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:546,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:547,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:549,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:549,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:550,1
    - Dst: AsLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:559,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:560,1
    - Dst: LinearRingPtr::has_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:561,1
    - Dst: LinearRingPtr::get_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:564,1
    - Dst: CoordinatesPtr::get_coordinates_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:571,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:572,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:573,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:573,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:574,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:575,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:577,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:577,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:578,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:587,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:589,1
    - Dst: PolygonPtr::has_outerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:590,1
    - Dst: PolygonPtr::get_outerboundaryis
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:593,1
    - Dst: OuterBoundaryIsPtr::get_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:595,1
    - Dst: kml2geom_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:598,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:600,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:601,1
    - Dst: PolygonPtr::get_innerboundaryis_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:609,1
    - Dst: InnerBoundaryIsPtr::get_linearring
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:611,1
    - Dst: kml2geom_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:614,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:616,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:617,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:627,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:636,1
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:639,1
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:641,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:649,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:651,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:653,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:655,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:660,1
    - Dst: kml2geom_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:661,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:663,1
    - Dst: AsGxTrack
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:670,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:672,1
    - Dst: GxTrackPtr::get_gx_coord_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:675,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:676,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:677,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:677,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:678,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:679,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:681,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:681,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:682,1
    - Dst: AsGxMultiTrack
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:689,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:691,1
    - Dst: GxMultiTrackPtr::get_gx_track_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:695,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:697,1
    - Dst: GxTrackPtr::get_gx_coord_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:700,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:701,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:702,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:702,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:703,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:704,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:706,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:706,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:707,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:709,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:722,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 113
    argCount: 2
    argNames:
    - poKmlGeometry
    - poOgrSRS
    argTypes:
    - GeometryPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 725
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 725
    functionName: kml2geom_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRMultiPoint::OGRMultiPoint
    - PolygonPtr::get_innerboundaryis_array_at
    - AsPoint
    - Vec3::get_latitude
    - CoordinatesPtr::get_coordinates_array_at
    - LinearRingPtr::get_coordinates
    - AsLineString
    - GxTrackPtr::get_gx_coord_array_at
    - Vec3::has_altitude
    - AsGxTrack
    - GxMultiTrackPtr::get_gx_track_array_at
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - MultiGeometryPtr::get_geometry_array_at
    - PointPtr::get_coordinates
    - OGRGeometryCollection*::addGeometryDirectly
    - Vec3::get_altitude
    - Vec3::get_longitude
    - OGRPoint::OGRPoint
    - PolygonPtr::has_outerboundaryis
    - PolygonPtr::get_outerboundaryis
    - OGRLineString::OGRLineString
    - AsPolygon
    - OGRMultiLineString::OGRMultiLineString
    - LineStringPtr::get_coordinates
    - PointPtr::has_coordinates
    - OGRLinearRing::OGRLinearRing
    - kml2geom_rec
    - AsLinearRing
    - AsGxMultiTrack
    - AsMultiGeometry
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRGeometry*::toLinearRing
    - InnerBoundaryIsPtr::get_linearring
    - OGRLineString*::addPoint
    - OGRGeometryCollection::OGRGeometryCollection
    - LineStringPtr::has_coordinates
    - GeometryPtr::Type
    - OuterBoundaryIsPtr::get_linearring
    - LinearRingPtr::has_coordinates
    - OGRLinearRing*::addPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *kml2geom_rec(const GeometryPtr &poKmlGeometry,\n                                 OGRSpatialReference
      *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LatLonBoxPtr::has_north
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:730,1
    - Dst: LatLonBoxPtr::has_south
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:730,1
    - Dst: LatLonBoxPtr::has_east
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:731,1
    - Dst: LatLonBoxPtr::has_west
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:731,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:740,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:741,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:742,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:743,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:744,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:745,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:747,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:748,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - poKmlLatLonBox
    - poOgrSRS
    argTypes:
    - LatLonBoxPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 752
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 752
    functionName: kml2geom_latlonbox_int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - LatLonBoxPtr::has_west
    - OGRLinearRing::OGRLinearRing
    - OGRPolygon*::assignSpatialReference
    - LatLonBoxPtr::has_north
    - LatLonBoxPtr::has_east
    - LatLonBoxPtr::has_south
    - OGRLinearRing*::addPoint
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *kml2geom_latlonbox_int(const LatLonBoxPtr &poKmlLatLonBox,\n
      \                                          OGRSpatialReference *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GxLatLonQuadPtr::has_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:758,1
    - Dst: GxLatLonQuadPtr::get_coordinates
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:761,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:763,1
    - Dst: CoordinatesPtr::get_coordinates_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:768,1
    - Dst: Vec3::has_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:769,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:770,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:770,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:771,1
    - Dst: Vec3::get_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:772,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:774,1
    - Dst: Vec3::get_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:774,1
    - Dst: Vec3::get_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:775,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:777,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:779,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:780,1
    - Dst: OGRPolygon*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - poKmlLatLonQuad
    - poOgrSRS
    argTypes:
    - GxLatLonQuadPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 784
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 784
    functionName: kml2geom_latlonquad_int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 0
    functionsReached:
    - Vec3::get_altitude
    - OGRLinearRing::OGRLinearRing
    - GxLatLonQuadPtr::has_coordinates
    - GxLatLonQuadPtr::get_coordinates
    - Vec3::get_longitude
    - Vec3::get_latitude
    - CoordinatesPtr::get_coordinates_array_at
    - OGRPolygon*::assignSpatialReference
    - Vec3::has_altitude
    - OGRLinearRing*::addPoint
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRLinearRing*::closeRings
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nkml2geom_latlonquad_int(const GxLatLonQuadPtr &poKmlLatLonQuad,\n
      \                       OGRSpatialReference *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kml2geom_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:802,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:802,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:806,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:812,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poKmlGeometry
    - poOgrSRS
    argTypes:
    - GeometryPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 825
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 825
    functionName: kml2geom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - kml2geom_rec
    - CSLDestroy
    - OGRGeometryFactory::transformWithOptions
    - std::move
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *kml2geom(GeometryPtr poKmlGeometry, OGRSpatialReference
      *poOgrSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kml2geom_latlonbox_int
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:832,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:837,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:843,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poKmlLatLonBox
    - poOgrSRS
    argTypes:
    - LatLonBoxPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 856
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 856
    functionName: kml2geom_latlonbox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryFactory::transformWithOptions
    - CPLTestBool
    - CSLDestroy
    - kml2geom_latlonbox_int
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *kml2geom_latlonbox(LatLonBoxPtr poKmlLatLonBox,\n                                OGRSpatialReference
      *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kml2geom_latlonquad_int
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:863,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:867,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:873,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - poKmlLatLonQuad
    - poOgrSRS
    argTypes:
    - GxLatLonQuadPtr
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 886
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 886
    functionName: kml2geom_latlonquad
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlgeometry.cpp
    functionUses: 1
    functionsReached:
    - kml2geom_latlonquad_int
    - OGRGeometryFactory::transformWithOptions
    - CPLTestBool
    - CSLDestroy
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *kml2geom_latlonquad(GxLatLonQuadPtr poKmlLatLonQuad,\n
      \                                OGRSpatialReference *poOgrSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:71,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 12
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 86
    functionName: OGRLIBKMLGetSanitizedNCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::size
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRLIBKMLGetSanitizedNCName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:109,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:110,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:111,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:113,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:114,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:115,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:116,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:118,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:118,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:120,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:120,1
    - Dst: get_fieldconfig
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:127,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:131,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:132,1
    - Dst: IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:137,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:139,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:140,1
    - Dst: OGRLIBKMLDataSource*::IsFirstCTError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:141,1
    - Dst: OGRSpatialReference*::exportToPrettyWkt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:149,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:159,1
    - Dst: OGRLIBKMLDataSource*::IssuedFirstCTError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:160,1
    - Dst: OGRLIBKMLGetSanitizedNCName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:166,1
    - Dst: OGRLIBKMLLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:166,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:168,1
    - Dst: OGRLIBKMLLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:168,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:169,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:170,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:171,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:172,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:178,1
    - Dst: get_feature_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:178,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:182,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:186,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:190,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:194,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:198,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:202,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:207,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:212,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:216,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:221,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:226,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:230,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:233,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:234,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:234,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:239,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:241,1
    - Dst: DocumentPtr::get_schema_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:243,1
    - Dst: DocumentPtr::get_schema_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:245,1
    - Dst: DocumentPtr::get_schema_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:248,1
    - Dst: kml2FeatureDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:258,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:258,1
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:279,1
    - Dst: FeaturePtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:281,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:283,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:284,1
    - Dst: PlacemarkPtr::has_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:285,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:286,1
    - Dst: AsCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:290,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:290,1
    - Dst: CameraPtr::has_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:291,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:296,1
    - Dst: CameraPtr::has_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:298,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:303,1
    - Dst: CameraPtr::has_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:305,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:310,1
    - Dst: FeaturePtr::has_extendeddata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:314,1
    - Dst: FeaturePtr::get_extendeddata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:317,1
    - Dst: ExtendedDataPtr::get_schemadata_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:319,1
    - Dst: ExtendedDataPtr::get_schemadata_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:322,1
    - Dst: SchemaDataPtr::has_schemaurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:324,1
    - Dst: SchemaDataPtr::get_schemaurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:327,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:328,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:330,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:332,1
    - Dst: FindSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:334,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:335,1
    - Dst: kml2FeatureDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:347,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:347,1
    - Dst: ExtendedDataPtr::get_data_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:353,1
    - Dst: ExtendedDataPtr::get_data_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:360,1
    - Dst: DataPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:361,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:364,1
    - Dst: DataPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:364,1
    - Dst: OGRLIBKMLLayer::LaunderFieldNames
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:366,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:367,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:372,1
    - Dst: FeaturePtr::has_snippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:380,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:385,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 107
    argCount: 10
    argNames:
    - pszLayerName
    - eGType
    - poSRSIn
    - poOgrDS
    - poKmlRoot
    - poKmlContainer
    - poKmlUpdate
    - pszFileName
    - bNew
    - bUpdateIn
    argTypes:
    - char*
    - OGRwkbGeometryType
    - OGRSpatialReference*
    - OGRLIBKMLDataSource*
    - ElementPtr
    - ContainerPtr
    - UpdatePtr
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 392
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 392
    functionName: OGRLIBKMLLayer::OGRLIBKMLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - PlacemarkPtr::has_geometry
    - CameraPtr::has_tilt
    - IsSame
    - get_fieldconfig
    - ParseStyles
    - kml2FeatureDef
    - SchemaDataPtr::has_schemaurl
    - GetGeomFieldDefn
    - std::set::insert
    - Reference
    - SetWellKnownGeogCS
    - AsDocument
    - OGRLIBKMLLayer::GetName
    - CPLError
    - IsA
    - FindSchema
    - CPLGetConfigOption
    - GetGeomFieldCount
    - FeaturePtr::has_extendeddata
    - std::string::c_str
    - GetFieldIndex
    - PlacemarkPtr::get_abstractview
    - FeaturePtr::has_snippet
    - ExtendedDataPtr::get_schemadata_array_size
    - CPLStrdup
    - SetGeomType
    - get_feature_array_size
    - SetAxisMappingStrategy
    - SchemaDataPtr::get_schemaurl
    - std::move
    - AddFieldDefn
    - DataPtr::get_name
    - PlacemarkPtr::has_abstractview
    - DocumentPtr::get_schema_array_at
    - FeaturePtr::Type
    - CPLTestBool
    - static_cast<int>
    - AsCamera
    - OGRFeatureDefn::OGRFeatureDefn
    - std::set::find
    - DataPtr::has_name
    - CameraPtr::has_heading
    - OGRCreateCoordinateTransformation
    - SetDescription
    - CPLFree
    - AsPlacemark
    - OGRLIBKMLDataSource*::IssuedFirstCTError
    - ExtendedDataPtr::get_data_array_at
    - OGRSpatialReference::OGRSpatialReference
    - OGRLIBKMLLayer::LaunderFieldNames
    - FeaturePtr::get_extendeddata
    - ExtendedDataPtr::get_schemadata_array_at
    - OGRLIBKMLGetSanitizedNCName
    - std::string
    - ExtendedDataPtr::get_data_array_size
    - CameraPtr::has_roll
    - OGRSpatialReference*::exportToPrettyWkt
    - DocumentPtr::get_schema_array_size
    - OGRLIBKMLDataSource*::IsFirstCTError
    - reset
    - get_feature_array_at
    - std::set::end
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::OGRLIBKMLLayer(\n    const char *pszLayerName,
      OGRwkbGeometryType eGType,\n    const OGRSpatialReference *poSRSIn, OGRLIBKMLDataSource
      *poOgrDS,\n    ElementPtr poKmlRoot, ContainerPtr poKmlContainer, UpdatePtr
      poKmlUpdate,\n    const char *pszFileName, bool bNew, bool bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:405,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:405,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:406,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:406,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:407,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: OGRLIBKMLLayer::~OGRLIBKMLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - const_cast<char *>
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLLayer::~OGRLIBKMLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:441,1
    - Dst: FeaturePtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:442,1
    - Dst: FeaturePtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:443,1
    - Dst: FeaturePtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:446,1
    - Dst: kml2feat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:449,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:449,1
    - Dst: kmlgroundoverlay2feat
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:456,1
    - Dst: AsGroundOverlay
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:457,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:471,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:471,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:471,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:472,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:473,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:473,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:473,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:476,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:476,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:476,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:479,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:480,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:483,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:484,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:486,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:488,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:489,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:491,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:495,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:496,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 502
    functionName: OGRLIBKMLLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - std::string::c_str
    - AsGroundOverlay
    - std::string::empty
    - end
    - kml2feat
    - CPLAtoGIntBig
    - find
    - FeaturePtr::get_id
    - FeaturePtr::Type
    - FeaturePtr::has_id
    - c_str
    - OGRFeature*::GetFID
    - kmlgroundoverlay2feat
    - AsPlacemark
    - size
    - std::string::size
    - max
    - get_feature_array_at
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLIBKMLLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:515,1
    - Dst: OGRLIBKMLLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: OGRLIBKMLLayer::ScanAllFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLLayer::GetNextRawFeature
    - std::unique_ptr<OGRFeature>
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLLayer::ScanAllFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:543,1
    - Dst: OGRLIBKMLLayer::ScanAllFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:545,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:547,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:550,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:552,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:561,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:564,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:565,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:565,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:566,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:570,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:571,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:574,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:575,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:576,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:577,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:578,1
    - Dst: feat2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:582,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:582,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:588,1
    - Dst: add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:592,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:596,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:597,1
    - Dst: KmlFactory*::CreateCreate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:598,1
    - Dst: KmlFactory*::CreateFolder
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:601,1
    - Dst: KmlFactory*::CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:603,1
    - Dst: ContainerPtr::set_targetid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:604,1
    - Dst: ContainerPtr::add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:605,1
    - Dst: CreatePtr::add_container
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:606,1
    - Dst: add_updateoperation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:607,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:615,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:617,1
    - Dst: FeaturePtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:619,1
    - Dst: FeaturePtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:624,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:626,1
    - Dst: FeaturePtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:626,1
    - Dst: FeaturePtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:627,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:627,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:631,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:637,1
    - Dst: FeaturePtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:644,1
    - Dst: FeaturePtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:649,1
    - Dst: Updated
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:655,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - poOgrFeat
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 658
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 658
    functionName: OGRLIBKMLLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetKmlFactory
    - OGRFeature*::GetFieldAsString
    - CPLError
    - cpl::contains
    - KmlFactory*::CreateCreate
    - OGRGeometry*::clone
    - ContainerPtr::set_targetid
    - ContainerPtr::add_feature
    - CreatePtr::add_container
    - FeaturePtr::set_id
    - Updated
    - FeaturePtr::get_id
    - OGRFeature*::SetGeometryDirectly
    - add_feature
    - KmlFactory*::CreateFolder
    - FeaturePtr::has_id
    - KmlFactory*::CreateDocument
    - OGRFeature*::GetFID
    - get
    - min
    - feat2kml
    - CPLAssert
    - OGRFeature*::GetGeometryRef
    - OGRLIBKMLLayer::ScanAllFeatures
    - OGRFeature*::IsFieldSet
    - add_updateoperation
    - OGRFeature*::StealGeometry
    - max
    - auto::transform
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLLayer::ICreateFeature(OGRFeature *poOgrFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:676,1
    - Dst: feat2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:682,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:682,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:685,1
    - Dst: KmlFactory*::CreateChange
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:686,1
    - Dst: ChangePtr::add_object
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:687,1
    - Dst: add_updateoperation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:688,1
    - Dst: FeaturePtr::set_targetid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:693,1
    - Dst: OGRLIBKMLLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:697,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:697,1
    - Dst: OGRLIBKMLLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:699,1
    - Dst: Updated
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - poOgrFeat
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 706
      start: 672
    functionDepth: 6
    functionLinenumber: 672
    functionLinenumberEnd: 706
    functionName: OGRLIBKMLLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLLayer::DeleteFeature
    - GetKmlFactory
    - OGRFeature*::GetFID
    - add_updateoperation
    - feat2kml
    - ChangePtr::add_object
    - KmlFactory*::CreateChange
    - OGRLIBKMLLayer::ICreateFeature
    - Updated
    - FeaturePtr::set_targetid
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLLayer::ISetFeature(OGRFeature *poOgrFeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:727,1
    - Dst: KmlFactory*::CreateDelete
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:728,1
    - Dst: add_updateoperation
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:729,1
    - Dst: KmlFactory*::CreatePlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:730,1
    - Dst: DeletePtr::add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:731,1
    - Dst: PlacemarkPtr::set_targetid
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:735,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:739,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:740,1
    - Dst: OGRLIBKMLLayer::ScanAllFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:742,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:744,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:745,1
    - Dst: DeleteFeatureById
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:749,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:753,1
    - Dst: get_feature_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:753,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:754,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:755,1
    - Dst: Updated
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - nFIDIn
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 762
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 762
    functionName: OGRLIBKMLLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 1
    functionsReached:
    - DeleteFeatureById
    - KmlFactory*::CreateDelete
    - end
    - erase
    - OGRLIBKMLLayer::ScanAllFeatures
    - GetKmlFactory
    - static_cast<int>
    - add_updateoperation
    - find
    - get_feature_array_size
    - KmlFactory*::CreatePlacemark
    - PlacemarkPtr::set_targetid
    - DeletePtr::add_feature
    - Updated
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLLayer::DeleteFeature(GIntBig nFIDIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:780,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:780,1
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:794,1
    - Dst: FeaturePtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:797,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 814
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 814
    functionName: OGRLIBKMLLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - FeaturePtr::Type
    - OGRLayer::GetFeatureCount
    - static_cast<int>
    - get_feature_array_at
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRLIBKMLLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoLocQuadTreeGetFeatureBounds
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:832,1
    - Dst: AsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:832,1
    - Dst: Bbox::get_west
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:834,1
    - Dst: Bbox::get_south
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:835,1
    - Dst: Bbox::get_east
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:836,1
    - Dst: Bbox::get_north
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:837,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 843
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 843
    functionName: OGRLIBKMLLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - Bbox::get_west
    - Bbox::get_north
    - Bbox::get_south
    - Bbox::get_east
    - GDALGeoLocQuadTreeGetFeatureBounds
    - AsFeature
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRLIBKMLLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                 bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldDef2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:866,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:866,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:867,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:872,1
    - Dst: KmlFactory*::CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:874,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:878,1
    - Dst: set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:879,1
    - Dst: add_simplefield
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:882,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:886,1
    - Dst: Updated
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:889,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 892
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 892
    functionName: OGRLIBKMLLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetKmlFactory
    - KmlFactory*::CreateSchema
    - std::string::append
    - FieldDef2kml
    - AddFieldDefn
    - add_simplefield
    - Updated
    - CPL_TO_BOOL
    - set_id
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: OGRLIBKMLLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - FlushCache
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: OGRLIBKMLLayer::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRLIBKMLLayer::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:939,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:946,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:949,1
    - Dst: DocumentPtr::DeleteStyleSelectorAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:955,1
    - Dst: styletable2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:959,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:959,1
    - Dst: Updated
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:963,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 964
      start: 934
    functionDepth: 3
    functionLinenumber: 934
    functionLinenumberEnd: 964
    functionName: OGRLIBKMLLayer::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetKmlFactory
    - AsDocument
    - styletable2kml
    - DocumentPtr::DeleteStyleSelectorAt
    - IsA
    - AsContainer
    - Updated
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLLayer::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLLayer::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:983,1
    - Dst: OGRStyleTable*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:983,1
    - Dst: OGRLIBKMLLayer::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 986
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 986
    functionName: OGRLIBKMLLayer::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable*::Clone
    - OGRLIBKMLLayer::SetStyleTableDirectly
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLLayer::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1002,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1004,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1006,1
    - Dst: get_feature_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1010,1
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1011,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1012,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1014,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1016,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1018,1
    - Dst: get_feature_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1022,1
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1023,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1024,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1026,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 20
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1030
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1030
    functionName: OGRLIBKMLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - get_feature_array_at
    - get_feature_array_size
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1039,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1039,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - osName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1049
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1049
    functionName: OGRLIBKMLLayer::LaunderFieldNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 1
    functionsReached:
    - CPLString::size
    - static_cast<int>
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRLIBKMLLayer::LaunderFieldNames(CPLString osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1063,1
    - Dst: KmlFactory*::CreateLookAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1064,1
    - Dst: LookAtPtr::set_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1065,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1065,1
    - Dst: LookAtPtr::set_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1066,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1066,1
    - Dst: LookAtPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1068,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1068,1
    - Dst: LookAtPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1070,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1070,1
    - Dst: LookAtPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1075,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1077,1
    - Dst: LookAtPtr::set_range
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1080,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1089,1
    - Dst: LookAtPtr::set_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1095,1
    - Dst: LookAtPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1099,1
    - Dst: set_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 7
    argNames:
    - pszLookatLongitude
    - pszLookatLatitude
    - pszLookatAltitude
    - pszLookatHeading
    - pszLookatTilt
    - pszLookatRange
    - pszLookatAltitudeMode
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1104
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1104
    functionName: OGRLIBKMLLayer::SetLookAt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - GetKmlFactory
    - CPLError
    - LookAtPtr::set_altitudemode
    - LookAtPtr::set_heading
    - LookAtPtr::set_latitude
    - LookAtPtr::set_tilt
    - set_abstractview
    - LookAtPtr::set_altitude
    - LookAtPtr::set_range
    - KmlFactory*::CreateLookAt
    - LookAtPtr::set_longitude
    - LookAtPtr::set_gx_altitudemode
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetLookAt(const char *pszLookatLongitude,\n                               const
      char *pszLookatLatitude,\n                               const char *pszLookatAltitude,\n
      \                              const char *pszLookatHeading,\n                               const
      char *pszLookatTilt,\n                               const char *pszLookatRange,\n
      \                              const char *pszLookatAltitudeMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1122,1
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1127,1
    - Dst: KmlFactory*::CreateCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1128,1
    - Dst: CameraPtr::set_latitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1129,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1129,1
    - Dst: CameraPtr::set_longitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1130,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1130,1
    - Dst: CameraPtr::set_altitude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1131,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1131,1
    - Dst: CameraPtr::set_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1133,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1133,1
    - Dst: CameraPtr::set_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1141,1
    - Dst: CameraPtr::set_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1146,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1146,1
    - Dst: CameraPtr::set_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1148,1
    - Dst: CameraPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1150,1
    - Dst: set_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 7
    argNames:
    - pszCameraLongitude
    - pszCameraLatitude
    - pszCameraAltitude
    - pszCameraHeading
    - pszCameraTilt
    - pszCameraRoll
    - pszCameraAltitudeMode
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1153
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1153
    functionName: OGRLIBKMLLayer::SetCamera
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CameraPtr::set_tilt
    - CameraPtr::set_altitude
    - GetKmlFactory
    - CameraPtr::set_latitude
    - CameraPtr::set_roll
    - CameraPtr::set_altitudemode
    - CameraPtr::set_gx_altitudemode
    - set_abstractview
    - CameraPtr::set_heading
    - CPLError
    - CameraPtr::set_longitude
    - KmlFactory*::CreateCamera
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetCamera(const char *pszCameraLongitude,\n                               const
      char *pszCameraLatitude,\n                               const char *pszCameraAltitude,\n
      \                              const char *pszCameraHeading,\n                               const
      char *pszCameraTilt,\n                               const char *pszCameraRoll,\n
      \                              const char *pszCameraAltitudeMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dfMinLodPixels
    - dfMaxLodPixels
    - dfMinFadeExtent
    - dfMaxFadeExtent
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1170
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1170
    functionName: OGRLIBKMLLayer::SetWriteRegion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetWriteRegion(double dfMinLodPixels,\n                                    double
      dfMaxLodPixels,\n                                    double dfMinFadeExtent,\n
      \                                   double dfMaxFadeExtent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1184
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1184
    functionName: OGRLIBKMLLayer::SetRegionBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetRegionBounds(double dfMinX, double dfMinY,\n
      \                                    double dfMaxX, double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1192,1
    - Dst: KmlFactory*::CreateRegion
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1196,1
    - Dst: KmlFactory*::CreateLatLonAltBox
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1198,1
    - Dst: LatLonAltBoxPtr::set_west
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1199,1
    - Dst: LatLonAltBoxPtr::set_east
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1200,1
    - Dst: LatLonAltBoxPtr::set_south
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1201,1
    - Dst: LatLonAltBoxPtr::set_north
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1202,1
    - Dst: RegionPtr::set_latlonaltbox
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1203,1
    - Dst: KmlFactory*::CreateLod
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1205,1
    - Dst: LodPtr::set_minlodpixels
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1206,1
    - Dst: LodPtr::set_maxlodpixels
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1207,1
    - Dst: LodPtr::set_minfadeextent
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1212,1
    - Dst: LodPtr::set_maxfadeextent
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1213,1
    - Dst: RegionPtr::set_lod
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1216,1
    - Dst: set_region
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1217,1
    - Dst: createkmlliststyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1220,1
    - Dst: OGRLIBKMLLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1220,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - poKmlDocument
    argTypes:
    - DocumentPtr
    constantsTouched: []
    func_position:
      end: 1223
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1223
    functionName: OGRLIBKMLLayer::Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - RegionPtr::set_latlonaltbox
    - LatLonAltBoxPtr::set_east
    - LatLonAltBoxPtr::set_south
    - GetKmlFactory
    - KmlFactory*::CreateRegion
    - LodPtr::set_minfadeextent
    - set_region
    - createkmlliststyle
    - KmlFactory*::CreateLatLonAltBox
    - KmlFactory*::CreateLod
    - RegionPtr::set_lod
    - LatLonAltBoxPtr::set_west
    - std::move
    - LodPtr::set_maxfadeextent
    - OGRLIBKMLLayer::GetName
    - LodPtr::set_minlodpixels
    - LodPtr::set_maxlodpixels
    - LatLonAltBoxPtr::set_north
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLLayer::Finalize(DocumentPtr poKmlDocument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1231,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1233,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszUnits
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1238
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1238
    functionName: LIBKMLGetUnits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int LIBKMLGetUnits(const char *pszUnits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kmldom::Vec2Ptr::set_x
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1250,1
    - Dst: kmldom::Vec2Ptr::set_y
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1251,1
    - Dst: kmldom::Vec2Ptr::set_xunits
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1266,1
    - Dst: LIBKMLGetUnits
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1266,1
    - Dst: kmldom::Vec2Ptr::set_yunits
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1267,1
    - Dst: LIBKMLGetUnits
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - vec2
    - pszX
    - pszY
    - pszXUnits
    - pszYUnits
    argTypes:
    - kmldom::Vec2Ptr
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1268
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1268
    functionName: LIBKMLSetVec2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - kmldom::Vec2Ptr::set_x
    - kmldom::Vec2Ptr::set_y
    - LIBKMLGetUnits
    - kmldom::Vec2Ptr::set_xunits
    - kmldom::Vec2Ptr::set_yunits
    linkageType: ''
    returnType: void
    signature: "void LIBKMLSetVec2(kmldom::Vec2Ptr vec2, const char *pszX,\n                          const
      char *pszY, const char *pszXUnits,\n                          const char *pszYUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetKmlFactory
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1283,1
    - Dst: KmlFactory*::CreateScreenOverlay
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1284,1
    - Dst: ScreenOverlayPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1287,1
    - Dst: ScreenOverlayPtr::set_description
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1289,1
    - Dst: KmlFactory*::CreateIcon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1291,1
    - Dst: IconPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1292,1
    - Dst: ScreenOverlayPtr::set_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1293,1
    - Dst: KmlFactory*::CreateOverlayXY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1297,1
    - Dst: LIBKMLSetVec2
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1298,1
    - Dst: ScreenOverlayPtr::set_overlayxy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1300,1
    - Dst: KmlFactory*::CreateScreenXY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1305,1
    - Dst: LIBKMLSetVec2
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1306,1
    - Dst: ScreenOverlayPtr::set_screenxy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1308,1
    - Dst: KmlFactory*::CreateScreenXY
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1312,1
    - Dst: LIBKMLSetVec2
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1313,1
    - Dst: ScreenOverlayPtr::set_screenxy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1314,1
    - Dst: KmlFactory*::CreateSize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1319,1
    - Dst: LIBKMLSetVec2
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1320,1
    - Dst: ScreenOverlayPtr::set_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1322,1
    - Dst: add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp:1325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 15
    argNames:
    - pszSOHref
    - pszSOName
    - pszSODescription
    - pszSOOverlayX
    - pszSOOverlayY
    - pszSOOverlayXUnits
    - pszSOOverlayYUnits
    - pszSOScreenX
    - pszSOScreenY
    - pszSOScreenXUnits
    - pszSOScreenYUnits
    - pszSOSizeX
    - pszSOSizeY
    - pszSOSizeXUnits
    - pszSOSizeYUnits
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1326
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1326
    functionName: OGRLIBKMLLayer::SetScreenOverlay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached:
    - KmlFactory*::CreateScreenOverlay
    - ScreenOverlayPtr::set_overlayxy
    - ScreenOverlayPtr::set_size
    - GetKmlFactory
    - KmlFactory*::CreateOverlayXY
    - ScreenOverlayPtr::set_icon
    - LIBKMLSetVec2
    - KmlFactory*::CreateScreenXY
    - KmlFactory*::CreateSize
    - add_feature
    - ScreenOverlayPtr::set_description
    - ScreenOverlayPtr::set_screenxy
    - IconPtr::set_href
    - KmlFactory*::CreateIcon
    - ScreenOverlayPtr::set_name
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetScreenOverlay(\n    const char *pszSOHref,
      const char *pszSOName, const char *pszSODescription,\n    const char *pszSOOverlayX,
      const char *pszSOOverlayY,\n    const char *pszSOOverlayXUnits, const char *pszSOOverlayYUnits,\n
      \   const char *pszSOScreenX, const char *pszSOScreenY,\n    const char *pszSOScreenXUnits,
      const char *pszSOScreenYUnits,\n    const char *pszSOSizeX, const char *pszSOSizeY,
      const char *pszSOSizeXUnits,\n    const char *pszSOSizeYUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszListStyleType
    - pszListStyleIconHref
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1337
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1337
    functionName: OGRLIBKMLLayer::SetListStyle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLLayer::SetListStyle(const char *pszListStyleType,\n
      \                                 const char *pszListStyleIconHref)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1346
    functionName: OGRLIBKMLLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRLIBKMLLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:30,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:30,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:36,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:36,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:38,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:38,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: OGRLIBKMLDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - reinterpret_cast<char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:53,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:54,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:55,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:56,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:57,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:63,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:65,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:132,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:294,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:295,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:298,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:299,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:300,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:301,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:302,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:305,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:306,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:308,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 310
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 310
    functionName: OGRLIBKMLDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:319,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:323,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:325,1
    - Dst: OGRLIBKMLDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:328,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 330
    functionName: DeclareDeferredOGRLIBKMLPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRLIBKMLDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRLIBKMLPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:50,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:54,1
    - Dst: PointPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:57,1
    - Dst: PointPtr::set_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:59,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:65,1
    - Dst: LineStringPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:68,1
    - Dst: LineStringPtr::set_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:70,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:80,1
    - Dst: PolygonPtr::set_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:83,1
    - Dst: PolygonPtr::set_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:85,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:92,1
    - Dst: ogr2altitudemode_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:97,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - poKmlGeometry
    - iAltitudeMode
    - isGX
    argTypes:
    - GeometryPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 109
    functionName: ogr2altitudemode_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - MultiGeometryPtr::get_geometry_array_at
    - PointPtr::set_altitudemode
    - AsPoint
    - LineStringPtr::set_gx_altitudemode
    - AsLineString
    - GeometryPtr::Type
    - PolygonPtr::set_altitudemode
    - LineStringPtr::set_altitudemode
    - AsMultiGeometry
    - PolygonPtr::set_gx_altitudemode
    - ogr2altitudemode_rec
    - PointPtr::set_gx_altitudemode
    - AsPolygon
    linkageType: ''
    returnType: void
    signature: "void ogr2altitudemode_rec(const GeometryPtr &poKmlGeometry,\n                                 int
      iAltitudeMode, int isGX)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:113,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:117,1
    - Dst: PointPtr::set_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:118,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:123,1
    - Dst: LineStringPtr::set_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:124,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:133,1
    - Dst: PolygonPtr::set_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:134,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:140,1
    - Dst: ogr2extrude_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:145,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - bExtrude
    - poKmlGeometry
    argTypes:
    - bool
    - GeometryPtr
    constantsTouched: []
    func_position:
      end: 155
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 155
    functionName: ogr2extrude_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - MultiGeometryPtr::get_geometry_array_at
    - AsPoint
    - ogr2extrude_rec
    - AsLineString
    - GeometryPtr::Type
    - PointPtr::set_extrude
    - AsMultiGeometry
    - PolygonPtr::set_extrude
    - LineStringPtr::set_extrude
    - AsPolygon
    linkageType: ''
    returnType: void
    signature: void ogr2extrude_rec(bool bExtrude, const GeometryPtr &poKmlGeometry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:160,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:168,1
    - Dst: LineStringPtr::set_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:169,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:178,1
    - Dst: PolygonPtr::set_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:180,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:186,1
    - Dst: ogr2tessellate_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:191,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - bTessellate
    - poKmlGeometry
    argTypes:
    - bool
    - GeometryPtr
    constantsTouched: []
    func_position:
      end: 202
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 202
    functionName: ogr2tessellate_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - MultiGeometryPtr::get_geometry_array_at
    - LineStringPtr::set_tessellate
    - AsLineString
    - GeometryPtr::Type
    - AsMultiGeometry
    - ogr2tessellate_rec
    - PolygonPtr::set_tessellate
    - AsPolygon
    linkageType: ''
    returnType: void
    signature: "void ogr2tessellate_rec(bool bTessellate,\n                               const
      GeometryPtr &poKmlGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:210,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:211,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:211,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:217,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:227,1
    - Dst: CPLForceToASCII
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:231,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 235
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 235
    functionName: OGRLIBKMLSanitizeUTF8String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLStrdup
    - CPLForceToASCII
    - CPLDebug
    - CPLIsUTF8
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: char
    signature: char *OGRLIBKMLSanitizeUTF8String(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlFactory*::CreateSchemaData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:266,1
    - Dst: OGRLIBKMLLayer*::GetKmlSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:267,1
    - Dst: SchemaPtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:270,1
    - Dst: SchemaPtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:272,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:274,1
    - Dst: SchemaDataPtr::set_schemaurl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:276,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:297,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:300,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:301,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:322,1
    - Dst: FeaturePtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:324,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:325,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:329,1
    - Dst: FeaturePtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:331,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:332,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:336,1
    - Dst: FeaturePtr::set_description
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:338,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:343,1
    - Dst: kmlAltitudeModeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:348,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:350,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:353,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:354,1
    - Dst: PlacemarkPtr::get_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:357,1
    - Dst: ogr2altitudemode_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:359,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:364,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:369,1
    - Dst: KmlFactory*::CreateTimeStamp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:372,1
    - Dst: TimeStampPtr::set_when
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:373,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:374,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:376,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:381,1
    - Dst: KmlFactory*::CreateTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:385,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:386,1
    - Dst: TimeSpanPtr::set_begin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:389,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:396,1
    - Dst: KmlFactory*::CreateTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:400,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:401,1
    - Dst: TimeSpanPtr::set_end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:404,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:411,1
    - Dst: KmlFactory*::CreateSnippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:413,1
    - Dst: SnippetPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:414,1
    - Dst: FeaturePtr::set_snippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:415,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:417,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:425,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:426,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:427,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:429,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:430,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:434,1
    - Dst: KmlFactory*::CreateSimpleData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:443,1
    - Dst: SimpleDataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:444,1
    - Dst: SimpleDataPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:445,1
    - Dst: KmlFactory*::CreateData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:449,1
    - Dst: DataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:450,1
    - Dst: DataPtr::set_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:451,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:454,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:464,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:464,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:473,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:479,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:480,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:483,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:504,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:504,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:513,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:514,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:517,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:518,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:520,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:523,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:540,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:540,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:545,1
    - Dst: KmlFactory*::CreateTimeStamp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:550,1
    - Dst: TimeStampPtr::set_when
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:551,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:552,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:553,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:559,1
    - Dst: KmlFactory*::CreateTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:565,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:566,1
    - Dst: TimeSpanPtr::set_begin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:569,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:576,1
    - Dst: KmlFactory*::CreateTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:582,1
    - Dst: FeaturePtr::set_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:583,1
    - Dst: TimeSpanPtr::set_end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:586,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:587,1
    - Dst: KmlFactory*::CreateSimpleData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:599,1
    - Dst: SimpleDataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:600,1
    - Dst: SimpleDataPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:601,1
    - Dst: KmlFactory*::CreateData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:605,1
    - Dst: DataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:606,1
    - Dst: DataPtr::set_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:607,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:616,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:618,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:620,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:621,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:622,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:629,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:629,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:632,1
    - Dst: PlacemarkPtr::get_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:640,1
    - Dst: ogr2extrude_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:641,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:641,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:650,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:652,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:654,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:655,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:656,1
    - Dst: static_cast<kmldom::AltitudeModeEnum>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:662,1
    - Dst: static_cast<kmldom::GxAltitudeModeEnum>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:666,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:670,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:673,1
    - Dst: PlacemarkPtr::get_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:681,1
    - Dst: ogr2tessellate_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:682,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:682,1
    - Dst: ogr2altitudemode_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:687,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:697,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:699,1
    - Dst: FeaturePtr::set_visibility
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:700,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:701,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:701,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:706,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:707,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:708,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:709,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:711,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:714,1
    - Dst: KmlFactory*::CreateSimpleData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:726,1
    - Dst: SimpleDataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:727,1
    - Dst: SimpleDataPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:728,1
    - Dst: KmlFactory*::CreateData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:732,1
    - Dst: DataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:733,1
    - Dst: DataPtr::set_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:734,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:742,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:744,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:745,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:747,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:748,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:749,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:750,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:751,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:752,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:754,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:755,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:756,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:757,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:758,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:759,1
    - Dst: KmlFactory*::CreateSimpleData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:768,1
    - Dst: SimpleDataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:769,1
    - Dst: SimpleDataPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:770,1
    - Dst: KmlFactory*::CreateData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:774,1
    - Dst: DataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:775,1
    - Dst: DataPtr::set_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:776,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:779,1
    - Dst: KmlFactory*::CreateSimpleData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:795,1
    - Dst: SimpleDataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:796,1
    - Dst: SimpleDataPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:797,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:797,1
    - Dst: KmlFactory*::CreateData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:801,1
    - Dst: DataPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:802,1
    - Dst: DataPtr::set_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:803,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:803,1
    - Dst: SchemaDataPtr::add_simpledata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:811,1
    - Dst: KmlFactory*::CreateExtendedData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:816,1
    - Dst: ExtendedDataPtr::add_data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:821,1
    - Dst: SchemaDataPtr::get_simpledata_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:829,1
    - Dst: KmlFactory*::CreateExtendedData
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:831,1
    - Dst: ExtendedDataPtr::add_schemadata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:832,1
    - Dst: FeaturePtr::set_extendeddata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:836,1
    CyclomaticComplexity: 145
    EdgeCount: 145
    ICount: 259
    argCount: 6
    argNames:
    - poOgrFeat
    - poOgrLayer
    - poKmlFactory
    - poKmlFeature
    - bUseSimpleFieldIn
    - oFC
    argTypes:
    - OGRFeature*
    - OGRLIBKMLLayer*
    - KmlFactory*
    - FeaturePtr
    - int
    - fieldconfig
    constantsTouched: []
    func_position:
      end: 838
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 838
    functionName: field2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - PlacemarkPtr::has_geometry
    - static_cast<kmldom::AltitudeModeEnum>
    - SimpleDataPtr::set_name
    - ogr2extrude_rec
    - KmlFactory*::CreateSimpleData
    - std::string::append
    - ogr2altitudemode_rec
    - SimpleDataPtr::set_text
    - OGRFeature*::GetFieldAsString
    - SchemaDataPtr::add_simpledata
    - FeaturePtr::set_description
    - SchemaDataPtr::set_schemaurl
    - CPLError
    - SchemaDataPtr::get_simpledata_array_size
    - SchemaPtr::get_id
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - TimeSpanPtr::set_begin
    - FeaturePtr::set_visibility
    - KmlFactory*::CreateSnippet
    - PlacemarkPtr::get_geometry
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::GetFieldAsInteger
    - SchemaPtr::has_id
    - FeaturePtr::set_id
    - TimeSpanPtr::set_end
    - FeaturePtr::set_snippet
    - kmlAltitudeModeFromString
    - KmlFactory*::CreateTimeStamp
    - ExtendedDataPtr::add_schemadata
    - CPLTestBool
    - OGRLIBKMLLayer*::GetKmlSchema
    - ExtendedDataPtr::add_data
    - FeaturePtr::set_name
    - DataPtr::set_name
    - OGRFieldDefn*::GetType
    - ogr2tessellate_rec
    - FeaturePtr::set_timeprimitive
    - FeaturePtr::set_extendeddata
    - FeaturePtr::IsA
    - CPLFree
    - AsPlacemark
    - OGRFeature*::GetFieldDefnRef
    - static_cast<kmldom::GxAltitudeModeEnum>
    - TimeStampPtr::set_when
    - KmlFactory*::CreateTimeSpan
    - KmlFactory*::CreateExtendedData
    - KmlFactory*::CreateSchemaData
    - EQUAL
    - DataPtr::set_value
    - memcpy
    - SnippetPtr::set_text
    - KmlFactory*::CreateData
    linkageType: ''
    returnType: void
    signature: "void field2kml(OGRFeature *poOgrFeat, OGRLIBKMLLayer *poOgrLayer,\n
      \              KmlFactory *poKmlFactory, FeaturePtr poKmlFeature,\n               int
      bUseSimpleFieldIn, const fieldconfig &oFC)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:847,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:851,1
    - Dst: PointPtr::has_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:853,1
    - Dst: PointPtr::get_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:855,1
    - Dst: PointPtr::has_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:858,1
    - Dst: PointPtr::get_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:860,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:869,1
    - Dst: LineStringPtr::has_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:871,1
    - Dst: LineStringPtr::get_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:873,1
    - Dst: LineStringPtr::has_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:876,1
    - Dst: LineStringPtr::get_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:878,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:890,1
    - Dst: PolygonPtr::has_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:892,1
    - Dst: PolygonPtr::get_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:894,1
    - Dst: PolygonPtr::has_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:897,1
    - Dst: PolygonPtr::get_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:899,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:909,1
    - Dst: kml2altitudemode_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:914,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:915,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - poKmlGeometry
    - pnAltitudeMode
    - pbIsGX
    argTypes:
    - GeometryPtr
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 929
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 929
    functionName: kml2altitudemode_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - PolygonPtr::has_altitudemode
    - AsPoint
    - AsLineString
    - PointPtr::has_altitudemode
    - PointPtr::has_gx_altitudemode
    - MultiGeometryPtr::get_geometry_array_at
    - PointPtr::get_altitudemode
    - AsPolygon
    - PolygonPtr::get_gx_altitudemode
    - LineStringPtr::has_gx_altitudemode
    - PolygonPtr::get_altitudemode
    - AsMultiGeometry
    - LineStringPtr::has_altitudemode
    - LineStringPtr::get_gx_altitudemode
    - LineStringPtr::get_altitudemode
    - PolygonPtr::has_gx_altitudemode
    - kml2altitudemode_rec
    - PointPtr::get_gx_altitudemode
    - GeometryPtr::Type
    linkageType: ''
    returnType: bool
    signature: "bool kml2altitudemode_rec(GeometryPtr poKmlGeometry, int *pnAltitudeMode,\n
      \                                int *pbIsGX)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:937,1
    - Dst: AsPoint
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:941,1
    - Dst: PointPtr::has_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:943,1
    - Dst: PointPtr::get_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:945,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:953,1
    - Dst: LineStringPtr::has_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:955,1
    - Dst: LineStringPtr::get_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:957,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:969,1
    - Dst: PolygonPtr::has_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:971,1
    - Dst: PolygonPtr::get_extrude
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:973,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:982,1
    - Dst: kml2extrude_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:987,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:988,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - poKmlGeometry
    - pbExtrude
    argTypes:
    - GeometryPtr
    - bool*
    constantsTouched: []
    func_position:
      end: 1002
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 1002
    functionName: kml2extrude_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - LineStringPtr::has_extrude
    - MultiGeometryPtr::get_geometry_array_at
    - PolygonPtr::get_extrude
    - kml2extrude_rec
    - AsPoint
    - LineStringPtr::get_extrude
    - AsLineString
    - PointPtr::has_extrude
    - GeometryPtr::Type
    - PolygonPtr::has_extrude
    - AsMultiGeometry
    - PointPtr::get_extrude
    - AsPolygon
    linkageType: ''
    returnType: bool
    signature: bool kml2extrude_rec(GeometryPtr poKmlGeometry, bool *pbExtrude)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1010,1
    - Dst: AsLineString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1018,1
    - Dst: LineStringPtr::has_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1020,1
    - Dst: LineStringPtr::get_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1022,1
    - Dst: AsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1034,1
    - Dst: PolygonPtr::has_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1036,1
    - Dst: PolygonPtr::get_tessellate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1038,1
    - Dst: AsMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1047,1
    - Dst: kml2tessellate_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1052,1
    - Dst: MultiGeometryPtr::get_geometry_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1053,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - poKmlGeometry
    - pnTessellate
    argTypes:
    - GeometryPtr
    - int*
    constantsTouched: []
    func_position:
      end: 1065
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1065
    functionName: kml2tessellate_rec
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - MultiGeometryPtr::get_geometry_array_at
    - LineStringPtr::has_tessellate
    - kml2tessellate_rec
    - PolygonPtr::has_tessellate
    - AsLineString
    - GeometryPtr::Type
    - AsMultiGeometry
    - LineStringPtr::get_tessellate
    - PolygonPtr::get_tessellate
    - AsPolygon
    linkageType: ''
    returnType: bool
    signature: bool kml2tessellate_rec(GeometryPtr poKmlGeometry, int *pnTessellate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1079,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1083,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1087,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1096,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - poOgrFeat
    - iField
    - nAltitudeMode
    - bIsGX
    argTypes:
    - OGRFeature*
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1104
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1104
    functionName: ogrkmlSetAltitudeMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: "void ogrkmlSetAltitudeMode(OGRFeature *poOgrFeat, int iField,\n                                  int
      nAltitudeMode, bool bIsGX)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1117,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1117,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - oText
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1128
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1128
    functionName: TrimSpaces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 0
    functionsReached:
    - CPLString::back
    - CPLString::pop_back
    - CPLString::empty
    linkageType: ''
    returnType: char
    signature: char *TrimSpaces(CPLString &oText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1143,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1143,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - poOgrFeat
    - pszOGRField
    - osKmlDateTime
    argTypes:
    - OGRFeature*
    - char*
    - std::string
    constantsTouched: []
    func_position:
      end: 1146
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1146
    functionName: kmldatetime2ogr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 0
    functionsReached:
    - OGRParseXMLDateTime
    - std::string::c_str
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: "void kmldatetime2ogr(OGRFeature *poOgrFeat, const char *pszOGRField,\n
      \                           const std::string &osKmlDateTime)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FeaturePtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1157,1
    - Dst: FeaturePtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1159,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1163,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1163,1
    - Dst: FeaturePtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1167,1
    - Dst: FeaturePtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1169,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1173,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1173,1
    - Dst: FeaturePtr::has_description
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1178,1
    - Dst: FeaturePtr::get_description
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1180,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1184,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1184,1
    - Dst: FeaturePtr::has_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1187,1
    - Dst: FeaturePtr::get_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1189,1
    - Dst: TimePrimitivePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1193,1
    - Dst: AsTimeStamp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1197,1
    - Dst: AsGxTimeStamp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1199,1
    - Dst: TimeStampPtr::has_when
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1201,1
    - Dst: TimeStampPtr::get_when
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1203,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1204,1
    - Dst: TimePrimitivePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1210,1
    - Dst: AsTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1214,1
    - Dst: AsGxTimeSpan
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1216,1
    - Dst: TimeSpanPtr::has_begin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1220,1
    - Dst: TimeSpanPtr::get_begin
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1222,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1223,1
    - Dst: TimeSpanPtr::has_end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1228,1
    - Dst: TimeSpanPtr::get_end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1230,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1231,1
    - Dst: AsPlacemark
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1237,1
    - Dst: AsGroundOverlay
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1238,1
    - Dst: PlacemarkPtr::has_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1239,1
    - Dst: PlacemarkPtr::get_geometry
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1241,1
    - Dst: kml2altitudemode_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1251,1
    - Dst: ogrkmlSetAltitudeMode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1253,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1254,1
    - Dst: kml2tessellate_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1261,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1263,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1265,1
    - Dst: kml2extrude_rec
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1271,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1273,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1275,1
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1279,1
    - Dst: FeaturePtr::has_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1280,1
    - Dst: AsGxTrack
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1282,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1288,1
    - Dst: GxTrackPtr::get_when_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1289,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1290,1
    - Dst: GxTrackPtr::get_when_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1292,1
    - Dst: GeometryPtr::Type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1299,1
    - Dst: FeaturePtr::has_timeprimitive
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1300,1
    - Dst: AsGxMultiTrack
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1302,1
    - Dst: GxMultiTrackPtr::get_gx_track_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1311,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1316,1
    - Dst: GxTrackPtr::get_when_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1318,1
    - Dst: GxMultiTrackPtr::get_gx_track_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1324,1
    - Dst: kmldatetime2ogr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1329,1
    - Dst: GxTrackPtr::get_when_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1331,1
    - Dst: PlacemarkPtr::has_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1342,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1343,1
    - Dst: AsCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1345,1
    - Dst: PlacemarkPtr::get_abstractview
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1345,1
    - Dst: CameraPtr::has_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1347,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1351,1
    - Dst: CameraPtr::get_heading
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1351,1
    - Dst: CameraPtr::has_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1354,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1358,1
    - Dst: CameraPtr::get_tilt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1358,1
    - Dst: CameraPtr::has_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1361,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1365,1
    - Dst: CameraPtr::get_roll
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1365,1
    - Dst: CameraPtr::has_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1372,1
    - Dst: ogrkmlSetAltitudeMode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1375,1
    - Dst: CameraPtr::has_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1377,1
    - Dst: ogrkmlSetAltitudeMode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1380,1
    - Dst: GroundOverlayPtr::has_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1391,1
    - Dst: GroundOverlayPtr::get_icon
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1393,1
    - Dst: IconPtr::has_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1394,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1396,1
    - Dst: IconPtr::get_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1396,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1402,1
    - Dst: GroundOverlayPtr::has_draworder
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1405,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1407,1
    - Dst: GroundOverlayPtr::get_draworder
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1408,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1414,1
    - Dst: GroundOverlayPtr::has_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1418,1
    - Dst: GroundOverlayPtr::get_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1420,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1423,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1427,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1431,1
    - Dst: GroundOverlayPtr::has_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1435,1
    - Dst: GroundOverlayPtr::get_gx_altitudemode
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1437,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1440,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1444,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1458,1
    - Dst: FeaturePtr::has_snippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1462,1
    - Dst: FeaturePtr::get_snippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1464,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1466,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1469,1
    - Dst: TrimSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1469,1
    - Dst: FeaturePtr::has_extendeddata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1475,1
    - Dst: FeaturePtr::get_extendeddata
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1477,1
    - Dst: ExtendedDataPtr::get_schemadata_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1487,1
    - Dst: SchemaDataPtr::get_simpledata_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1498,1
    - Dst: SimpleDataPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1504,1
    - Dst: SimpleDataPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1506,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1509,1
    - Dst: SimpleDataPtr::has_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1514,1
    - Dst: SimpleDataPtr::get_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1516,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1518,1
    - Dst: TrimSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1518,1
    - Dst: ExtendedDataPtr::get_data_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1523,1
    - Dst: ExtendedDataPtr::get_data_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1531,1
    - Dst: DataPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1532,1
    - Dst: DataPtr::has_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1532,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1534,1
    - Dst: DataPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1534,1
    - Dst: OGRLIBKMLLayer::LaunderFieldNames
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1536,1
    - Dst: OGRFeature*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1537,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1540,1
    - Dst: DataPtr::get_value
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1540,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 165
    argCount: 3
    argNames:
    - poOgrFeat
    - poKmlFeature
    - oFC
    argTypes:
    - OGRFeature*
    - FeaturePtr
    - fieldconfig
    constantsTouched: []
    func_position:
      end: 1546
      start: 1152
    functionDepth: 4
    functionLinenumber: 1152
    functionLinenumberEnd: 1546
    functionName: kml2field
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 2
    functionsReached:
    - PlacemarkPtr::has_geometry
    - GroundOverlayPtr::get_icon
    - FeaturePtr::has_snippet
    - GroundOverlayPtr::has_draworder
    - TimeSpanPtr::get_begin
    - TimeSpanPtr::has_end
    - SimpleDataPtr::has_text
    - FeaturePtr::has_id
    - AsTimeSpan
    - AsGxTimeSpan
    - CameraPtr::has_altitudemode
    - FeaturePtr::has_name
    - ExtendedDataPtr::get_data_array_at
    - GroundOverlayPtr::has_gx_altitudemode
    - FeaturePtr::has_description
    - std::string
    - GroundOverlayPtr::has_altitudemode
    - CameraPtr::has_heading
    - kmldatetime2ogr
    - TimeSpanPtr::has_begin
    - TimeSpanPtr::get_end
    - CameraPtr::has_tilt
    - CameraPtr::get_heading
    - AsGxTrack
    - GxMultiTrackPtr::get_gx_track_array_at
    - std::string::c_str
    - CameraPtr::get_tilt
    - FeaturePtr::get_timeprimitive
    - SimpleDataPtr::get_name
    - ogrkmlSetAltitudeMode
    - AsCamera
    - AsGxMultiTrack
    - SchemaDataPtr::get_simpledata_array_at
    - OGRFeature*::GetFieldIndex
    - TimePrimitivePtr::IsA
    - IconPtr::has_href
    - SimpleDataPtr::get_text
    - AsGxTimeStamp
    - CPL_TO_BOOL
    - FeaturePtr::get_snippet
    - kml2tessellate_rec
    - IconPtr::get_href
    - GxTrackPtr::get_when_array_at
    - GroundOverlayPtr::has_icon
    - AsPlacemark
    - TrimSpaces
    - OGRLIBKMLLayer::LaunderFieldNames
    - FeaturePtr::get_name
    - kml2extrude_rec
    - ExtendedDataPtr::get_schemadata_array_at
    - ExtendedDataPtr::get_data_array_size
    - kml2altitudemode_rec
    - GeometryPtr::Type
    - SimpleDataPtr::has_name
    - AsTimeStamp
    - DataPtr::has_value
    - FeaturePtr::get_description
    - TimeStampPtr::has_when
    - FeaturePtr::has_extendeddata
    - AsGroundOverlay
    - PlacemarkPtr::get_abstractview
    - PlacemarkPtr::get_geometry
    - CameraPtr::has_gx_altitudemode
    - DataPtr::get_name
    - PlacemarkPtr::has_abstractview
    - CameraPtr::get_roll
    - GroundOverlayPtr::get_altitudemode
    - FeaturePtr::get_id
    - GroundOverlayPtr::get_gx_altitudemode
    - DataPtr::has_name
    - FeaturePtr::has_timeprimitive
    - DataPtr::get_value
    - FeaturePtr::get_extendeddata
    - CameraPtr::has_roll
    - OGRFeature*::SetField
    - TimeStampPtr::get_when
    - GroundOverlayPtr::get_draworder
    linkageType: ''
    returnType: void
    signature: "void kml2field(OGRFeature *poOgrFeat, FeaturePtr poKmlFeature,\n               const
      fieldconfig &oFC)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1558,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1559,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1561,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1562,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1563,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1564,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1565,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1566,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1567,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1571,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1572,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1573,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1574,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1575,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1578,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1580,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1581,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1582,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1583,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1584,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1585,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1586,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1588,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1590,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1591,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1592,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1593,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1594,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1595,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1596,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1597,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1598,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1600,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1601,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1602,1
    - Dst: KmlFactory*::CreateSimpleField
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1607,1
    - Dst: SimpleFieldPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1608,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1610,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1614,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1615,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1620,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1621,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1627,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1633,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1644,1
    - Dst: SimpleFieldPtr::set_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1650,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 37
    argCount: 4
    argNames:
    - poOgrFieldDef
    - poKmlFactory
    - bApproxOK
    - oFC
    argTypes:
    - OGRFieldDefn*
    - KmlFactory*
    - bool
    - fieldconfig
    constantsTouched: []
    func_position:
      end: 1655
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1655
    functionName: FieldDef2kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - KmlFactory*::CreateSimpleField
    - SimpleFieldPtr::set_name
    - EQUAL
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - SimpleFieldPtr::set_type
    linkageType: ''
    returnType: SimpleFieldPtr
    signature: "SimpleFieldPtr FieldDef2kml(const OGRFieldDefn *poOgrFieldDef,\n                            KmlFactory
      *poKmlFactory, bool bApproxOK,\n                            const fieldconfig
      &oFC)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SchemaPtr::get_simplefield_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1668,1
    - Dst: SimpleFieldPtr::has_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1674,1
    - Dst: SimpleFieldPtr::get_type
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1676,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1678,1
    - Dst: SimpleFieldPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1694,1
    - Dst: SimpleFieldPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1696,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1698,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1698,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1700,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1700,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1702,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1703,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1704,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1706,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1706,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1707,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1709,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1712,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1714,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1715,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1717,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1717,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1722,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1723,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1727,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1728,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - poKmlSchema
    - poOgrFeatureDefn
    argTypes:
    - SchemaPtr
    - OGRFeatureDefn*
    constantsTouched: []
    func_position:
      end: 1732
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1732
    functionName: kml2FeatureDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - OGRFeatureDefn*::AddFieldDefn
    - SimpleFieldPtr::has_type
    - SimpleFieldPtr::get_name
    - SimpleFieldPtr::has_name
    - OGRFieldDefn::SetSubType
    - SimpleFieldPtr::get_type
    - OGRFeatureDefn*::GetFieldIndex
    - EQUAL
    - SchemaPtr::get_simplefield_array_at
    - string::c_str
    linkageType: ''
    returnType: void
    signature: void kml2FeatureDef(SchemaPtr poKmlSchema, OGRFeatureDefn *poOgrFeatureDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1741,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1742,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1744,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1745,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1746,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1747,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1749,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1751,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1752,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1754,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1756,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1757,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1758,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1759,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1760,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1761,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1762,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1763,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1764,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1765,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1767,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1769,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1771,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1773,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1776,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1779,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1782,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1785,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1787,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1789,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1792,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1794,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1796,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1797,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1800,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1801,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1803,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1805,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1806,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1807,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1808,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1810,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1812,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1814,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 1
    argNames:
    - oFC
    argTypes:
    - struct fieldconfig*
    constantsTouched: []
    func_position:
      end: 1818
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1818
    functionName: get_fieldconfig
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void get_fieldconfig(struct fieldconfig *oFC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1829,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1831,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1833,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1835,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1837,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1839,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1841,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1844,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1847,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp:1855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pszAltitudeMode
    - isGX
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1860
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1860
    functionName: kmlAltitudeModeFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfield.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - static_cast<int>
    - CPLError
    linkageType: ''
    returnType: int
    signature: int kmlAltitudeModeFromString(const char *pszAltitudeMode, int &isGX)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:51,1
    - Dst: kmldom::ParseNS
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:53,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:58,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - oKml
    - posError
    argTypes:
    - std::string
    - std::string*
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: OGRLIBKMLParse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - what
    - OGRJSonParse
    - kmldom::ParseNS
    linkageType: ''
    returnType: ElementPtr
    signature: ElementPtr OGRLIBKMLParse(const std::string &oKml, std::string *posError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poKmlFactory
    argTypes:
    - KmlFactory*
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: OGRLIBKMLDataSource::OGRLIBKMLDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::OGRLIBKMLDataSource(KmlFactory *poKmlFactory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:94,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:100,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:118,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:128,1
    - Dst: std::string::replace
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:141,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:142,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:145,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:157,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:158,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:166,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:174,1
    - Dst: std::string::replace
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:182,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:182,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:183,1
    - Dst: std::string::replace
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:186,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:186,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 1
    argNames:
    - oKml
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 188
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 188
    functionName: OGRLIBKMLPreProcessInput
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - CPL_IGNORE_RET_VAL
    - strlen
    - std::string::replace
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLPreProcessInput(std::string &oKml)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:198,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:203,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:206,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:210,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:211,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:213,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:217,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:221,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:229,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:232,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:236,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:240,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - osKml
    - osNeedle
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 245
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 245
    functionName: OGRLIBKMLRemoveSpaces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - std::string::size
    - std::string::append
    - std::string::clear
    - std::move
    - std::string
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLRemoveSpaces(std::string &osKml,\n                                  const
      std::string &osNeedle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:257,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:263,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:269,1
    - Dst: OGRLIBKMLRemoveSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:278,1
    - Dst: OGRLIBKMLRemoveSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:279,1
    - Dst: OGRLIBKMLRemoveSpaces
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - oKml
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 281
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 281
    functionName: OGRLIBKMLPostProcessOutput
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - OGRLIBKMLRemoveSpaces
    - std::string::find
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLPostProcessOutput(std::string &oKml)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:294,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:296,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:298,1
    - Dst: OGRLIBKMLDataSource::ParseDocumentOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:300,1
    - Dst: GetKmlSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:306,1
    - Dst: DocumentPtr::get_schema_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:316,1
    - Dst: DocumentPtr::add_schema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:322,1
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:325,1
    - Dst: OGRLIBKMLDataSource::ParseDocumentOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:330,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:334,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:335,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:338,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:340,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:340,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:343,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:344,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:344,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:348,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:348,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:348,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:348,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 354
    functionName: OGRLIBKMLDataSource::WriteKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - GetDescription
    - AsDocument
    - CPLError
    - IsA
    - kmldom::SerializePretty
    - std::string::c_str
    - std::string::empty
    - DocumentPtr::get_schema_array_at
    - DocumentPtr::add_schema
    - OGRLIBKMLDataSource::ParseDocumentOptions
    - GetKmlSchema
    - Finalize
    - VSIFCloseL
    - OGRLIBKMLPostProcessOutput
    - std::string::size
    - VSIFOpenExL
    - VSIGetLastErrorMsg
    - VSIFWriteL
    linkageType: ''
    returnType: bool
    signature: bool OGRLIBKMLDataSource::WriteKml()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlFactory*::CreateKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:372,1
    - Dst: KmlPtr::AddUnknownAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:378,1
    - Dst: OGR_F_Create
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:378,1
    - Dst: KmlPtr::AddUnknownAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:384,1
    - Dst: OGR_F_Create
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - poFactory
    argTypes:
    - KmlFactory*
    constantsTouched: []
    func_position:
      end: 387
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 387
    functionName: OGRLIBKMLCreateOGCKml22
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Create
    - KmlPtr::AddUnknownAttributes
    - KmlFactory*::CreateKml
    linkageType: ''
    returnType: KmlPtr
    signature: "KmlPtr OGRLIBKMLCreateOGCKml22(KmlFactory *poFactory,\n                                      char
      **papszOptions = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSISupportsRandomWrite
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:401,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:401,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:402,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:402,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:405,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:406,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:415,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:416,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:416,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:425,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:432,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:434,1
    - Dst: auto::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:439,1
    - Dst: OGRLIBKMLDataSource::ParseDocumentOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:443,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:443,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:443,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:446,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:447,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:449,1
    - Dst: CPLWriteFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:450,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:450,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:451,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:454,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:455,1
    - Dst: CPLCloseFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:457,1
    - Dst: GetKmlLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:463,1
    - Dst: ContainerPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:465,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:467,1
    - Dst: GetKmlSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:468,1
    - Dst: DocumentPtr::get_schema_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:470,1
    - Dst: SchemaPtr::get_simplefield_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:471,1
    - Dst: DocumentPtr::add_schema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:473,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:473,1
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:476,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:476,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:483,1
    - Dst: GetKmlLayerRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:483,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:485,1
    - Dst: KmlPtr::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:487,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:490,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:491,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:493,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:495,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:495,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:499,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:501,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:501,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:503,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:505,1
    - Dst: CPLWriteFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:506,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:506,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:507,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:507,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:508,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:509,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:509,1
    - Dst: CPLCloseFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:510,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:516,1
    - Dst: KmlPtr::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:518,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:519,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:520,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:522,1
    - Dst: CPLCreateFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:523,1
    - Dst: CPLWriteFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:524,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:524,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:525,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:525,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:528,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:529,1
    - Dst: CPLCloseFileInZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:531,1
    - Dst: CPLCloseZip
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:534,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:536,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:540,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:540,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:540,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:542,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:543,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:545,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:545,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 549
    functionName: OGRLIBKMLDataSource::WriteKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLCloseZip
    - VSISupportsRandomWrite
    - CPLCopyFile
    - std::string::data
    - GetDescription
    - CPLCreateFileInZip
    - AsDocument
    - CPLError
    - CPLCloseFileInZip
    - kmldom::SerializePretty
    - CPLGetConfigOption
    - KmlPtr::set_feature
    - std::string::c_str
    - std::string::empty
    - GetFileName
    - std::move
    - GetKmlLayer
    - CPLGenerateTempFilenameSafe
    - CPLTestBool
    - static_cast<int>
    - ContainerPtr::IsA
    - DocumentPtr::add_schema
    - VSIUnlink
    - CPLSPrintf
    - OGRLIBKMLDataSource::ParseDocumentOptions
    - CPL_IGNORE_RET_VAL
    - AsKml
    - CPLWriteFileInZip
    - OGRLIBKMLCreateOGCKml22
    - GetKmlSchema
    - Finalize
    - OGRLIBKMLPostProcessOutput
    - std::string::size
    - CPLGetBasenameSafe
    - DocumentPtr::get_schema_array_size
    - EQUAL
    - VSIGetLastErrorMsg
    - SchemaPtr::get_simplefield_array_size
    - GetKmlLayerRoot
    - auto::set_feature
    linkageType: ''
    returnType: bool
    signature: bool OGRLIBKMLDataSource::WriteKmz()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:566,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:573,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:574,1
    - Dst: auto::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:578,1
    - Dst: OGRLIBKMLDataSource::ParseDocumentOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:581,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:581,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:581,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:584,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:585,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:588,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:588,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:590,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:593,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:594,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:594,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:598,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:598,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:598,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:598,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:600,1
    - Dst: GetKmlLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:607,1
    - Dst: ContainerPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:609,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:611,1
    - Dst: GetKmlSchema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:612,1
    - Dst: DocumentPtr::get_schema_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:614,1
    - Dst: SchemaPtr::get_simplefield_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:615,1
    - Dst: DocumentPtr::add_schema
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:617,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:617,1
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:620,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:620,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:627,1
    - Dst: GetKmlLayerRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:627,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:629,1
    - Dst: KmlPtr::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:631,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:634,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:635,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:637,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:638,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:638,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:640,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:643,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:644,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:644,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:648,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:648,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:648,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:648,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:650,1
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:657,1
    - Dst: KmlPtr::set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:659,1
    - Dst: kmldom::SerializePretty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:660,1
    - Dst: OGRLIBKMLPostProcessOutput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:661,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:664,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:664,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:666,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:666,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:669,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:670,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:674,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:674,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:674,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:674,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:676,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 680
    functionName: OGRLIBKMLDataSource::WriteDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - GetDescription
    - AsDocument
    - CPLError
    - kmldom::SerializePretty
    - std::string::c_str
    - KmlPtr::set_feature
    - GetFileName
    - std::move
    - GetKmlLayer
    - CPLTestBool
    - ContainerPtr::IsA
    - DocumentPtr::add_schema
    - VSIFOpenL
    - OGRLIBKMLDataSource::ParseDocumentOptions
    - AsKml
    - OGRLIBKMLCreateOGCKml22
    - CPLFormFilenameSafe
    - GetKmlSchema
    - Finalize
    - VSIFCloseL
    - OGRLIBKMLPostProcessOutput
    - std::string::size
    - VSIFOpenExL
    - DocumentPtr::get_schema_array_size
    - VSIGetLastErrorMsg
    - SchemaPtr::get_simplefield_array_size
    - VSIFWriteL
    - GetKmlLayerRoot
    - auto::set_feature
    linkageType: ''
    returnType: bool
    signature: bool OGRLIBKMLDataSource::WriteDir()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:697,1
    - Dst: OGRLIBKMLDataSource::WriteKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:699,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:702,1
    - Dst: OGRLIBKMLDataSource::WriteKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:704,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:707,1
    - Dst: OGRLIBKMLDataSource::WriteDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:709,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 691
    functionDepth: 4
    functionLinenumber: 691
    functionLinenumberEnd: 715
    functionName: OGRLIBKMLDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLDataSource::WriteKml
    - OGRLIBKMLDataSource::WriteDir
    - OGRLIBKMLDataSource::WriteKmz
    - OGRLIBKMLDataSource::IsKml
    - OGRLIBKMLDataSource::IsKmz
    - OGRLIBKMLDataSource::IsDir
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRLIBKMLDataSource::FlushCache(bool /* bAtClosing */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:729,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:734,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 5
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: OGRLIBKMLDataSource::~OGRLIBKMLDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    - OGRLIBKMLDataSource::FlushCache
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::~OGRLIBKMLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:761,1
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:764,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:764,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:765,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:768,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:768,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:769,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:770,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:774,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:775,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:780,1
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:783,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:783,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:784,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:788,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:788,1
    - Dst: IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:789,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:790,1
    - Dst: DocumentPtr::get_schema_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:800,1
    - Dst: SchemaPtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:801,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:803,1
    - Dst: SchemaPtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:803,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:805,1
    - Dst: SchemaPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:810,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:812,1
    - Dst: SchemaPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:812,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:814,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:821,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:822,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:823,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 41
    argCount: 1
    argNames:
    - pszSchemaUrl
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 826
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 826
    functionName: OGRLIBKMLDataSource::FindSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - SchemaPtr::get_id
    - CPLStrdup
    - SchemaPtr::get_name
    - EQUAL
    - SchemaPtr::has_id
    - AsDocument
    - std::move
    - DocumentPtr::get_schema_array_at
    - SchemaPtr::has_name
    - IsA
    - OGRLIBKMLDataSource::IsKml
    - OGRLIBKMLDataSource::IsKmz
    - OGRLIBKMLDataSource::IsDir
    linkageType: ''
    returnType: SchemaPtr
    signature: SchemaPtr OGRLIBKMLDataSource::FindSchema(const char *pszSchemaUrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:856,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:858,1
    - Dst: static_cast<OGRLIBKMLLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:866,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:867,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:872,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:873,1
    - Dst: OGRLIBKMLLayer::OGRLIBKMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:871,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:878,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 10
    argNames:
    - pszLayerName
    - eGType
    - poSRS
    - poOgrDS
    - poKmlRoot
    - poKmlContainer
    - pszFileName
    - bNew
    - bUpdateIn
    - nGuess
    argTypes:
    - char*
    - OGRwkbGeometryType
    - OGRSpatialReference*
    - OGRLIBKMLDataSource*
    - ElementPtr
    - ContainerPtr
    - char*
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 882
      start: 845
    functionDepth: 6
    functionLinenumber: 845
    functionLinenumberEnd: 882
    functionName: OGRLIBKMLDataSource::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::toupper
    - static_cast<OGRLIBKMLLayer **>
    - OGRLIBKMLLayer::OGRLIBKMLLayer
    - CPLSPrintf
    - CPLRealloc
    - std::move
    - OGRLIBKMLDataSource::GetLayerByName
    linkageType: ''
    returnType: OGRLIBKMLLayer
    signature: "OGRLIBKMLLayer *OGRLIBKMLDataSource::AddLayer(\n    const char *pszLayerName,
      OGRwkbGeometryType eGType,\n    const OGRSpatialReference *poSRS, OGRLIBKMLDataSource
      *poOgrDS,\n    ElementPtr poKmlRoot, ContainerPtr poKmlContainer, const char
      *pszFileName,\n    bool bNew, bool bUpdateIn, int nGuess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContainerPtr::get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:908,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:912,1
    - Dst: FeaturePtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:919,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:934,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:944,1
    - Dst: std::stringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:944,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:949,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:949,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:950,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:951,1
    - Dst: OGRLIBKMLDataSource::ParseLayers
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:954,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:954,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - poKmlContainer
    - bRecurse
    argTypes:
    - ContainerPtr
    - bool
    constantsTouched: []
    func_position:
      end: 964
      start: 894
    functionDepth: 7
    functionLinenumber: 894
    functionLinenumberEnd: 964
    functionName: OGRLIBKMLDataSource::ParseLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - ContainerPtr::get_feature_array_at
    - OGRLIBKMLDataSource::ParseLayers
    - std::string::append
    - std::string::resize
    - OGRLIBKMLDataSource::AddLayer
    - std::string::c_str
    - std::stringstream::str
    - AsContainer
    - FeaturePtr::IsA
    - FeaturePtr::has_name
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::ParseLayers(ContainerPtr poKmlContainer, bool
      bRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ElementPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:987,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:989,1
    - Dst: KmlPtr::has_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:991,1
    - Dst: KmlPtr::get_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:993,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:995,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:996,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:997,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:999,1
    - Dst: KmlFactory*::CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1001,1
    - Dst: ContainerPtr::add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1002,1
    - Dst: kmldom::AsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1003,1
    - Dst: OGRFeature::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1003,1
    - Dst: ElementPtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1007,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1009,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1009,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - poKmlFactory
    - poKmlRoot
    argTypes:
    - KmlFactory*
    - ElementPtr
    constantsTouched: []
    func_position:
      end: 1014
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 1014
    functionName: GetContainerFromRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 1
    functionsReached:
    - KmlFactory*::CreateDocument
    - kmldom::AsFeature
    - ContainerPtr::add_feature
    - ElementPtr::IsA
    - KmlPtr::has_feature
    - KmlPtr::get_feature
    - std::move
    - AsKml
    - AsContainer
    - OGRFeature::Clone
    - FeaturePtr::IsA
    linkageType: ''
    returnType: ContainerPtr
    signature: "ContainerPtr GetContainerFromRoot(KmlFactory *poKmlFactory,\n                                         ElementPtr
      poKmlRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1025,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1029,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1030,1
    - Dst: GetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1037,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1037,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1042,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1042,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poKmlStyleKml
    - pszMyStylePath
    argTypes:
    - std::string*
    - char*
    constantsTouched: []
    func_position:
      end: 1046
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1046
    functionName: OGRLIBKMLDataSource::ParseIntoStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - GetContainerFromRoot
    - ParseStyles
    - OGRLIBKMLParse
    - AsDocument
    - std::move
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: "int OGRLIBKMLDataSource::ParseIntoStyleTable(std::string *poKmlStyleKml,\n
      \                                            const char *pszMyStylePath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1062,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1064,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1067,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1071,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1072,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1072,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1076,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1076,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1080,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1081,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1082,1
    - Dst: OGRLIBKMLPreProcessInput
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1086,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1087,1
    - Dst: CPLLocaleC::CPLLocaleC
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1089,1
    - Dst: AsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1094,1
    - Dst: OGRLIBKMLParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1094,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1098,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1099,1
    - Dst: GetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1106,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1108,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1118,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1118,1
    - Dst: has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1128,1
    - Dst: get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1130,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1133,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1133,1
    - Dst: OGRLIBKMLDataSource::ParseLayers
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1141
      start: 1058
    functionDepth: 8
    functionLinenumber: 1058
    functionLinenumberEnd: 1141
    functionName: OGRLIBKMLDataSource::OpenKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - ParseStyles
    - std::string::append
    - CPLDebug
    - OGRLIBKMLDataSource::AddLayer
    - AsDocument
    - CPLError
    - std::string::c_str
    - OGRLIBKMLPreProcessInput
    - static_cast<int>
    - OGRLIBKMLDataSource::ParseLayers
    - VSIFOpenL
    - std::string::resize
    - VSIFReadL
    - AsKml
    - get_name
    - what
    - GetContainerFromRoot
    - VSIFCloseL
    - std::string::size
    - CPLLocaleC::CPLLocaleC
    - OGRLIBKMLParse
    - has_name
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::OpenKml(const char *pszFilename, int bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1165,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1165,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1169,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1173,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1177,1
    - Dst: KmzFile::OpenFromString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1183,1
    - Dst: CPLLocaleC::CPLLocaleC
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1188,1
    - Dst: KmzFile*::ReadKmlAndGetPath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1193,1
    - Dst: OGRLIBKMLParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1200,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1204,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1205,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1206,1
    - Dst: GetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1215,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1217,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1218,1
    - Dst: ContainerPtr::get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1232,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1235,1
    - Dst: AsNetworkLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1238,1
    - Dst: NetworkLinkPtr::has_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1241,1
    - Dst: NetworkLinkPtr::get_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1244,1
    - Dst: LinkPtr::has_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1247,1
    - Dst: LinkPtr::get_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1250,1
    - Dst: kmlengine::Href::IsRelativePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1253,1
    - Dst: KmzFile*::ReadFile
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1258,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1258,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1261,1
    - Dst: OGRLIBKMLParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1266,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1268,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1269,1
    - Dst: GetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1280,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1282,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1283,1
    - Dst: NetworkLinkPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1290,1
    - Dst: NetworkLinkPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1291,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1292,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1292,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1294,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1294,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1295,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1296,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1297,1
    - Dst: OGRLIBKMLDataSource::ParseLayers
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1300,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1300,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1309,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1310,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1321,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1321,1
    - Dst: ContainerPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1331,1
    - Dst: ContainerPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1333,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1336,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1336,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1337,1
    - Dst: OGRLIBKMLDataSource::ParseLayers
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1341,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1341,1
    - Dst: KmzFile*::ReadFile
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1346,1
    - Dst: OGRLIBKMLDataSource::ParseIntoStyleTable
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1347,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1354
      start: 1153
    functionDepth: 8
    functionLinenumber: 1153
    functionLinenumberEnd: 1354
    functionName: OGRLIBKMLDataSource::OpenKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - LinkPtr::get_href
    - ParseStyles
    - std::string::append
    - NetworkLinkPtr::has_link
    - NetworkLinkPtr::get_link
    - OGRLIBKMLDataSource::AddLayer
    - AsDocument
    - ContainerPtr::get_name
    - CPLError
    - std::string::c_str
    - NetworkLinkPtr::get_name
    - ContainerPtr::get_feature_array_at
    - KmzFile::OpenFromString
    - LinkPtr::has_href
    - std::move
    - AsNetworkLink
    - static_cast<int>
    - KmzFile*::ReadKmlAndGetPath
    - NetworkLinkPtr::has_name
    - OGRLIBKMLDataSource::ParseIntoStyleTable
    - OGRLIBKMLDataSource::ParseLayers
    - std::string::clear
    - VSIFOpenL
    - VSIFReadL
    - FeaturePtr::IsA
    - kmlengine::Href::get_path
    - GetContainerFromRoot
    - VSIFCloseL
    - CPLLocaleC::CPLLocaleC
    - kmlengine::Href::IsRelativePath
    - KmzFile*::ReadFile
    - CPLGetBasenameSafe
    - OGRLIBKMLParse
    - ContainerPtr::has_name
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::OpenKmz(const char *pszFilename, int bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1378,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1378,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1386,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1388,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1391,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1392,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1397,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1397,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1402,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1406,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1407,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1411,1
    - Dst: CPLLocaleC::CPLLocaleC
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1413,1
    - Dst: OGRLIBKMLParse
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1417,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1421,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1423,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1423,1
    - Dst: GetContainerFromRoot
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1431,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1433,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1440,1
    - Dst: ParseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1442,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1442,1
    - Dst: ContainerPtr::has_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1448,1
    - Dst: ContainerPtr::get_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1448,1
    - Dst: ContainerPtr::has_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1454,1
    - Dst: ContainerPtr::get_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1455,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1456,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1456,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1456,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1459,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1459,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1460,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1460,1
    - Dst: OGRLIBKMLDataSource::ParseLayers
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1464,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1464,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1467,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1476
      start: 1366
    functionDepth: 8
    functionLinenumber: 1366
    functionLinenumberEnd: 1476
    functionName: OGRLIBKMLDataSource::OpenDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - ParseStyles
    - std::string::append
    - OGRLIBKMLDataSource::AddLayer
    - AsDocument
    - ContainerPtr::get_name
    - CPLError
    - std::string::c_str
    - CPLGetExtensionSafe
    - CPLString::c_str
    - ContainerPtr::has_id
    - std::move
    - static_cast<int>
    - ContainerPtr::get_id
    - OGRLIBKMLDataSource::ParseLayers
    - VSIFOpenL
    - VSIFReadL
    - CPLFormFilenameSafe
    - GetContainerFromRoot
    - VSIFCloseL
    - CPLLocaleC::CPLLocaleC
    - CPLGetBasenameSafe
    - CSLDestroy
    - OGRLIBKMLParse
    - EQUAL
    - ContainerPtr::has_name
    - std::string
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::OpenDir(const char *pszFilename, int bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1495,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1495,1
    - Dst: CheckIsKMZ
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1505,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1515
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1515
    functionName: CheckIsKMZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CSLDestroy
    - CheckIsKMZ
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: bool CheckIsKMZ(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1519,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1523,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1524,1
    - Dst: OGRLIBKMLDataSource::OpenDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1526,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1530,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1530,1
    - Dst: OGRLIBKMLDataSource::OpenKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1532,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1536,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1536,1
    - Dst: OGRLIBKMLDataSource::OpenKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1538,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1541,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1549,1
    - Dst: CheckIsKMZ
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1557,1
    - Dst: OGRLIBKMLDataSource::OpenKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1560,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1563,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1563,1
    - Dst: OGRLIBKMLDataSource::OpenKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1564,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - pszFilename
    - bUpdateIn
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1567
      start: 1517
    functionDepth: 9
    functionLinenumber: 1517
    functionLinenumberEnd: 1567
    functionName: OGRLIBKMLDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLDataSource::OpenDir
    - CheckIsKMZ
    - OGRLIBKMLDataSource::OpenKmz
    - VSIFCloseL
    - VSI_ISDIR
    - OGRLIBKMLDataSource::OpenKml
    - EQUAL
    - VSIFOpenL
    - strstr
    - VSIStatExL
    - CPL_TO_BOOL
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::Open(const char *pszFilename, bool bUpdateIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1576,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1577,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - pszPhoneNumber
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1593
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1593
    functionName: IsValidPhoneNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool IsValidPhoneNumber(const char *pszPhoneNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContainerPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1604,1
    - Dst: ContainerPtr::set_visibility
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1608,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1608,1
    - Dst: ContainerPtr::set_open
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1612,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1612,1
    - Dst: CreateSnippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1617,1
    - Dst: SnippetPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1618,1
    - Dst: ContainerPtr::set_snippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1619,1
    - Dst: ContainerPtr::set_description
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - poKmlContainer
    - papszOptions
    argTypes:
    - ContainerPtr
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1625
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1625
    functionName: OGRLIBKMLDataSource::SetCommonOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - ContainerPtr::set_description
    - CreateSnippet
    - CPLTestBool
    - ContainerPtr::set_open
    - ContainerPtr::set_snippet
    - ContainerPtr::set_name
    - ContainerPtr::set_visibility
    - SnippetPtr::set_text
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLDataSource::SetCommonOptions(ContainerPtr poKmlContainer,\n
      \                                          CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DocumentPtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1638,1
    - Dst: CreateAtomAuthor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1651,1
    - Dst: kmldom::AtomAuthorPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1653,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1658,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1659,1
    - Dst: kmldom::AtomAuthorPtr::set_uri
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1661,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1665,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1673,1
    - Dst: kmldom::AtomAuthorPtr::set_email
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1679,1
    - Dst: DocumentPtr::set_atomauthor
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1683,1
    - Dst: CreateAtomLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1688,1
    - Dst: kmldom::AtomLinkPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1689,1
    - Dst: kmldom::AtomLinkPtr::set_rel
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1690,1
    - Dst: DocumentPtr::set_atomlink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1691,1
    - Dst: IsValidPhoneNumber
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1698,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1700,1
    - Dst: DocumentPtr::set_phonenumber
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1701,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1702,1
    - Dst: DocumentPtr::set_phonenumber
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1708,1
    - Dst: OGRLIBKMLDataSource::SetCommonOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1712,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1715,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1717,1
    - Dst: createkmlliststyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1718,1
    - Dst: CreateNetworkLinkControl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1727,1
    - Dst: KmlPtr::set_networklinkcontrol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1728,1
    - Dst: get_updateoperation_array_size
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1729,1
    - Dst: NetworkLinkControlPtr::set_update
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1731,1
    - Dst: KmlPtr::has_networklinkcontrol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1759,1
    - Dst: KmlPtr::get_networklinkcontrol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1761,1
    - Dst: CreateNetworkLinkControl
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1765,1
    - Dst: KmlPtr::set_networklinkcontrol
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1766,1
    - Dst: NetworkLinkControlPtr::set_minrefreshperiod
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1772,1
    - Dst: NetworkLinkControlPtr::set_maxsessionlength
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1777,1
    - Dst: NetworkLinkControlPtr::set_cookie
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1781,1
    - Dst: NetworkLinkControlPtr::set_message
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1785,1
    - Dst: NetworkLinkControlPtr::set_linkname
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1789,1
    - Dst: NetworkLinkControlPtr::set_linkdescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1793,1
    - Dst: CreateLinkSnippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1798,1
    - Dst: LinkSnippetPtr::set_text
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1799,1
    - Dst: NetworkLinkControlPtr::set_linksnippet
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1800,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1800,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1805,1
    - Dst: NetworkLinkControlPtr::set_expires
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1808,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1809,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 84
    argCount: 2
    argNames:
    - poKml
    - poKmlDocument
    argTypes:
    - KmlPtr
    - DocumentPtr
    constantsTouched: []
    func_position:
      end: 1814
      start: 1631
    functionDepth: 2
    functionLinenumber: 1631
    functionLinenumberEnd: 1814
    functionName: OGRLIBKMLDataSource::ParseDocumentOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 3
    functionsReached:
    - OGRParseXMLDateTime
    - OGRLIBKMLDataSource::SetCommonOptions
    - CreateNetworkLinkControl
    - kmldom::AtomLinkPtr::set_rel
    - DocumentPtr::set_phonenumber
    - CPLError
    - kmldom::AtomAuthorPtr::set_name
    - STARTS_WITH
    - NetworkLinkControlPtr::set_linksnippet
    - NetworkLinkControlPtr::set_message
    - CreateLinkSnippet
    - KmlPtr::get_networklinkcontrol
    - NetworkLinkControlPtr::set_expires
    - NetworkLinkControlPtr::set_update
    - std::move
    - IsValidPhoneNumber
    - DocumentPtr::set_atomauthor
    - NetworkLinkControlPtr::set_minrefreshperiod
    - NetworkLinkControlPtr::set_maxsessionlength
    - CreateAtomAuthor
    - CPLSPrintf
    - KmlPtr::set_networklinkcontrol
    - kmldom::AtomAuthorPtr::set_email
    - NetworkLinkControlPtr::set_cookie
    - kmldom::AtomAuthorPtr::set_uri
    - NetworkLinkControlPtr::set_linkname
    - CPLFree
    - DocumentPtr::set_id
    - KmlPtr::has_networklinkcontrol
    - LinkSnippetPtr::set_text
    - CreateAtomLink
    - NetworkLinkControlPtr::set_linkdescription
    - createkmlliststyle
    - get_updateoperation_array_size
    - CSLFetchNameValueDef
    - strchr
    - kmldom::AtomLinkPtr::set_href
    - DocumentPtr::set_atomlink
    linkageType: ''
    returnType: void
    signature: "void OGRLIBKMLDataSource::ParseDocumentOptions(KmlPtr poKml,\n                                               DocumentPtr
      poKmlDocument)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLCreateOGCKml22
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1829,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1830,1
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1832,1
    - Dst: set_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1841
      start: 1826
    functionDepth: 3
    functionLinenumber: 1826
    functionLinenumberEnd: 1841
    functionName: OGRLIBKMLDataSource::CreateKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLCreateOGCKml22
    - CreateDocument
    - set_feature
    - empty
    linkageType: ''
    returnType: int
    signature: "int OGRLIBKMLDataSource::CreateKml(const char * /* pszFilename */,\n
      \                                  char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1857,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1862,1
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1876
    functionName: OGRLIBKMLDataSource::CreateKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateDocument
    - CPLTestBool
    - empty
    linkageType: ''
    returnType: int
    signature: "int OGRLIBKMLDataSource::CreateKmz(const char * /* pszFilename */,\n
      \                                  char ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1891,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1893,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1901,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1906,1
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1915
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1915
    functionName: OGRLIBKMLDataSource::CreateDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateDocument
    - CPLTestBool
    - empty
    - VSIMkdir
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int OGRLIBKMLDataSource::CreateDir(const char *pszFilename,\n                                   char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1932,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1935,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1939,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1940,1
    - Dst: CreateUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1942,1
    - Dst: set_targethref
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1943,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1943,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1946,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1949,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1950,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1951,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1951,1
    - Dst: OGRLIBKMLDataSource::CreateKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1952,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1955,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1955,1
    - Dst: OGRLIBKMLDataSource::CreateKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1956,1
    - Dst: OGRLIBKMLDataSource::CreateDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1960
      start: 1930
    functionDepth: 4
    functionLinenumber: 1930
    functionLinenumberEnd: 1960
    functionName: OGRLIBKMLDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateUpdate
    - c_str
    - empty
    - OGRLIBKMLDataSource::CreateKml
    - CSLFetchNameValueDef
    - OGRLIBKMLDataSource::CreateKmz
    - EQUAL
    - strcmp
    - set_targethref
    - CSLDuplicate
    - SetDescription
    - STARTS_WITH
    - OGRLIBKMLDataSource::CreateDir
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::Create(const char *pszFilename, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1977
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1977
    functionName: OGRLIBKMLDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRLIBKMLDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1990,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1990,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:1991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1995
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1995
    functionName: OGRLIBKMLDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    - CPLString
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRLIBKMLDataSource::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2017,1
    - Dst: OGRLIBKMLLayer*::GetKmlLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2019,1
    - Dst: DeleteFeatureAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2027
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2027
    functionName: OGRLIBKMLDataSource::DeleteLayerKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - DeleteFeatureAt
    - get_feature_array_at
    - OGRLIBKMLLayer*::GetKmlLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLDataSource::DeleteLayerKml(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2044,1
    - Dst: get_feature_array_at
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2052,1
    - Dst: FeaturePtr::IsA
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2054,1
    - Dst: AsNetworkLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2056,1
    - Dst: NetworkLinkPtr::has_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2059,1
    - Dst: NetworkLinkPtr::get_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2061,1
    - Dst: LinkPtr::has_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2064,1
    - Dst: LinkPtr::get_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2066,1
    - Dst: kmlengine::Href::IsRelativePath
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2069,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2071,1
    - Dst: kmlengine::Href::get_path
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2071,1
    - Dst: OGRLIBKMLLayer*::GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2072,1
    - Dst: DeleteFeatureAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2074,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2085
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2085
    functionName: OGRLIBKMLDataSource::DeleteLayerKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - LinkPtr::get_href
    - kmlengine::Href::get_path
    - CPLTestBool
    - kmlengine::Href::IsRelativePath
    - NetworkLinkPtr::has_link
    - NetworkLinkPtr::get_link
    - DeleteFeatureAt
    - EQUAL
    - get_feature_array_at
    - LinkPtr::has_href
    - AsNetworkLink
    - FeaturePtr::IsA
    - OGRLIBKMLLayer*::GetFileName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLDataSource::DeleteLayerKmz(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2104,1
    - Dst: OGRLIBKMLDataSource::DeleteLayerKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2106,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2108,1
    - Dst: OGRLIBKMLDataSource::DeleteLayerKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2110,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2112,1
    - Dst: OGRLIBKMLDataSource::DeleteLayerKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2114,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2117,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2118,1
    - Dst: GetFileName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2118,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2120,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2120,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2122,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2122,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2124,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2126,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2126,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2131,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2131,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2131,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2139
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2139
    functionName: OGRLIBKMLDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - erase
    - GetFileName
    - OGRLIBKMLDataSource::DeleteLayerKmz
    - VSIStatL
    - OGRLIBKMLDataSource::DeleteLayerKml
    - CPLFormFilenameSafe
    - GetDescription
    - VSIUnlink
    - std::string::c_str
    - memmove
    - CPLString
    - CPLError
    - OGRLIBKMLDataSource::IsKml
    - OGRLIBKMLDataSource::IsKmz
    - GetName
    - OGRLIBKMLDataSource::IsDir
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRLIBKMLDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2161,1
    - Dst: CreateFolder
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2162,1
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2164,1
    - Dst: ContainerPtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2165,1
    - Dst: OGRLIBKMLGetSanitizedNCName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2166,1
    - Dst: add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2168,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2173,1
    - Dst: ContainerPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2178,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2179,1
    - Dst: OGRLIBKMLLayer*::SetUpdateIsFolder
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pszLayerName
    - poSRS
    - eGType
    - papszOptions
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2185
      start: 2153
    functionDepth: 7
    functionLinenumber: 2153
    functionLinenumberEnd: 2185
    functionName: OGRLIBKMLDataSource::CreateLayerKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CreateDocument
    - CPLFetchBool
    - OGRLIBKMLLayer*::SetUpdateIsFolder
    - OGRLIBKMLGetSanitizedNCName
    - ContainerPtr::set_name
    - OGRLIBKMLDataSource::AddLayer
    - ContainerPtr::set_id
    - CreateFolder
    - add_feature
    linkageType: ''
    returnType: OGRLIBKMLLayer
    signature: "OGRLIBKMLLayer *OGRLIBKMLDataSource::CreateLayerKml(\n    const char
      *pszLayerName, const OGRSpatialReference *poSRS,\n    OGRwkbGeometryType eGType,
      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2211,1
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2213,1
    - Dst: CreateNetworkLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2215,1
    - Dst: NetworkLinkPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2216,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2217,1
    - Dst: CreateLink
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2219,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2222,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2223,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2224,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2225,1
    - Dst: LinkPtr::set_href
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2226,1
    - Dst: NetworkLinkPtr::set_link
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2228,1
    - Dst: DocumentPtr::add_feature
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2229,1
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2234,1
    - Dst: DocumentPtr::set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2235,1
    - Dst: OGRLIBKMLGetSanitizedNCName
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2236,1
    - Dst: OGRLIBKMLDataSource::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2240,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2241,1
    - Dst: DocumentPtr::set_name
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - pszLayerName
    - poSRS
    - eGType
    - papszOptions
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2251
      start: 2199
    functionDepth: 7
    functionLinenumber: 2199
    functionLinenumberEnd: 2251
    functionName: OGRLIBKMLDataSource::CreateLayerKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - LinkPtr::set_href
    - DocumentPtr::add_feature
    - CPLTestBool
    - CreateDocument
    - DocumentPtr::set_name
    - NetworkLinkPtr::set_link
    - OGRLIBKMLGetSanitizedNCName
    - CSLFetchNameValueDef
    - CreateNetworkLink
    - CreateLink
    - std::string::append
    - CPLFormFilenameSafe
    - OGRLIBKMLDataSource::AddLayer
    - AsDocument
    - OGRLIBKMLDataSource::IsKmz
    - DocumentPtr::set_id
    - NetworkLinkPtr::set_name
    linkageType: ''
    returnType: OGRLIBKMLLayer
    signature: "OGRLIBKMLLayer *OGRLIBKMLDataSource::CreateLayerKmz(\n    const char
      *pszLayerName, const OGRSpatialReference *poSRS,\n    OGRwkbGeometryType eGType,
      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2273,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2273,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2275,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2280,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2282,1
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2287,1
    - Dst: OGRLIBKMLDataSource::CreateLayerKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2290,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2292,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2292,1
    - Dst: OGRLIBKMLDataSource::CreateLayerKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2295,1
    - Dst: OGRLIBKMLLayer*::SetLookAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2314,1
    - Dst: OGRLIBKMLLayer*::SetCamera
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2339,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2360,1
    - Dst: OGRLIBKMLLayer*::SetWriteRegion
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2362,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2363,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2363,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2364,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2364,1
    - Dst: OGRLIBKMLLayer*::SetRegionBounds
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2373,1
    - Dst: OGRLIBKMLLayer*::SetScreenOverlay
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2401,1
    - Dst: OGRLIBKMLLayer*::SetListStyle
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2414,1
    - Dst: OGRLIBKMLLayer*::GetKmlLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2417,1
    - Dst: OGRLIBKMLDataSource::SetCommonOptions
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2419,1
    - Dst: OGRLIBKMLLayer*::GetKmlLayer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2419,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 39
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2427
      start: 2265
    functionDepth: 8
    functionLinenumber: 2265
    functionLinenumberEnd: 2427
    functionName: OGRLIBKMLDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLDataSource::SetCommonOptions
    - OGRLIBKMLLayer*::SetRegionBounds
    - CPLError
    - OGRLIBKMLLayer*::GetKmlLayer
    - OGRLIBKMLDataSource::IsKml
    - OGRLIBKMLDataSource::IsDir
    - CPLAtof
    - CPLTestBool
    - OGRLIBKMLLayer*::SetWriteRegion
    - OGRLIBKMLLayer*::SetListStyle
    - OGRGeomFieldDefn*::GetType
    - OGRLIBKMLDataSource::CreateLayerKmz
    - OGRLIBKMLLayer*::SetScreenOverlay
    - OGRLIBKMLDataSource::IsKmz
    - OGRLIBKMLDataSource::CreateLayerKml
    - OGRLIBKMLLayer*::SetCamera
    - OGRLIBKMLLayer*::SetLookAt
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRLIBKMLDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2442
    functionName: OGRLIBKMLDataSource::GetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRStyleTable
    signature: OGRStyleTable *OGRLIBKMLDataSource::GetStyleTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2460,1
    - Dst: DocumentPtr::DeleteStyleSelectorAt
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2466,1
    - Dst: styletable2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2471,1
    - Dst: AsContainer
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2473
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2473
    functionName: OGRLIBKMLDataSource::SetStyleTable2Kml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - styletable2kml
    - AsContainer
    - AsDocument
    - DocumentPtr::DeleteStyleSelectorAt
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::SetStyleTable2Kml(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateDocument
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2490,1
    - Dst: set_id
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2491,1
    - Dst: styletable2kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2495
      start: 2484
    functionDepth: 3
    functionLinenumber: 2484
    functionLinenumberEnd: 2495
    functionName: OGRLIBKMLDataSource::SetStyleTable2Kmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - styletable2kml
    - CreateDocument
    - set_id
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::SetStyleTable2Kmz(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::IsKml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2519,1
    - Dst: OGRLIBKMLDataSource::SetStyleTable2Kml
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2520,1
    - Dst: OGRLIBKMLDataSource::IsKmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2522,1
    - Dst: OGRLIBKMLDataSource::IsDir
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2522,1
    - Dst: OGRLIBKMLDataSource::SetStyleTable2Kmz
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2526
      start: 2508
    functionDepth: 4
    functionLinenumber: 2508
    functionLinenumberEnd: 2526
    functionName: OGRLIBKMLDataSource::SetStyleTableDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLIBKMLDataSource::SetStyleTable2Kml
    - OGRLIBKMLDataSource::SetStyleTable2Kmz
    - OGRLIBKMLDataSource::IsKml
    - OGRLIBKMLDataSource::IsKmz
    - OGRLIBKMLDataSource::IsDir
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::SetStyleTableDirectly(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLIBKMLDataSource::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2546,1
    - Dst: OGRStyleTable*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2546,1
    - Dst: OGRLIBKMLDataSource::SetStyleTableDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poStyleTable
    argTypes:
    - OGRStyleTable*
    constantsTouched: []
    func_position:
      end: 2549
      start: 2540
    functionDepth: 5
    functionLinenumber: 2540
    functionLinenumberEnd: 2549
    functionName: OGRLIBKMLDataSource::SetStyleTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRStyleTable*::Clone
    - OGRLIBKMLDataSource::SetStyleTableDirectly
    linkageType: ''
    returnType: void
    signature: void OGRLIBKMLDataSource::SetStyleTable(OGRStyleTable *poStyleTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2565,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2567,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2569,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp:2571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2575
      start: 2563
    functionDepth: 0
    functionLinenumber: 2563
    functionLinenumberEnd: 2575
    functionName: OGRLIBKMLDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRLIBKMLDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: OGRLIBKMLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: OGRLIBKMLLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: OGRLIBKMLLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: OGRLIBKMLLayer::GetKmlLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kmldom::ContainerPtr
    signature: kmldom::ContainerPtr GetKmlLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: OGRLIBKMLLayer::GetKmlLayerRoot
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kmldom::ElementPtr
    signature: kmldom::ElementPtr GetKmlLayerRoot()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: OGRLIBKMLLayer::GetKmlSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kmldom::SchemaPtr
    signature: kmldom::SchemaPtr GetKmlSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: OGRLIBKMLLayer::GetFileName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: '&GetFieldConfig() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fieldconfig
    signature: fieldconfig &GetFieldConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bUpdateIsFolder
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRLIBKMLLayer::SetUpdateIsFolder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void SetUpdateIsFolder(int bUpdateIsFolder)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: OGRLIBKMLDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: OGRLIBKMLDataSource::GetKmlFactory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kmldom::KmlFactory
    signature: kmldom::KmlFactory *GetKmlFactory()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: '&GetStylePath() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetStylePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: OGRLIBKMLDataSource::IsKml
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsKml() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: OGRLIBKMLDataSource::IsKmz
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsKmz() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: OGRLIBKMLDataSource::IsDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsDir() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: OGRLIBKMLDataSource::Updated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Updated()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: OGRLIBKMLDataSource::IsFirstCTError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFirstCTError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: OGRLIBKMLDataSource::IssuedFirstCTError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/libkml/ogr_libkml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuedFirstCTError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESRIJSONDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:32,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:37,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: OGRESRIJSONDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp
    functionUses: 0
    functionsReached:
    - ESRIJSONDriverGetSourceType
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: int OGRESRIJSONDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESRIJSONDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:53,1
    - Dst: OGRGeoJSONDriverOpenInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: OGRESRIJSONDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp
    functionUses: 0
    functionsReached:
    - ESRIJSONDriverGetSourceType
    - OGRGeoJSONDriverOpenInternal
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRESRIJSONDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:65,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:68,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:71,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:77,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:93,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:94,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: RegisterOGRESRIJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsondriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRESRIJSON()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: GetValidLayerName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetValidLayerName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: IncFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: UnsetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnsetReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: InvalidateFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvalidateFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - OGRGeoJSONWriteOptions
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: SetWriteOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetWriteOptions(const OGRGeoJSONWriteOptions &options)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsMGeometries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: SetSupportsMGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSupportsMGeometries(bool bSupportsMGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsZGeometries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: SetSupportsZGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSupportsZGeometries(bool bSupportsZGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: OGRGeoJSONWriteLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: OGRGeoJSONWriteLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: OGRGeoJSONWriteLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRGeoJSONWriteLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: GetOutputFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFile() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: GetFpOutputIsSeekable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFpOutputIsSeekable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: GetBBOXInsertLocation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBBOXInsertLocation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: HasOtherPages
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasOtherPages() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: IsUpdatable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUpdatable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: '&GetJSonFlavor() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetJSonFlavor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsMGeometries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: SetSupportsMGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSupportsMGeometries(bool bSupportsMGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSupportsZGeometries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: SetSupportsZGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSupportsZGeometries(bool bSupportsZGeometries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: OGRGeoJSONDataSource::OGRGeoJSONDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::OGRGeoJSONDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: OGRGeoJSONDataSource::~OGRGeoJSONDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::~OGRGeoJSONDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:79,1
    - Dst: OGRGeoJSONDataSource::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:82,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: OGRGeoJSONDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALDataset::Close
    - OGRGeoJSONDataSource::FlushCache
    - OGRGeoJSONDataSource::Clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGeoJSONDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:100,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:107,1
    - Dst: OGRSchemaOverride::LoadFromJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:113,1
    - Dst: OGRSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:114,1
    - Dst: OGRSchemaOverride::GetLayerOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:119,1
    - Dst: auto::GetFieldOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:125,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:128,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:129,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:132,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:132,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:135,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:137,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:142,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:143,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:145,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:147,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:147,1
    - Dst: auto::cend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:148,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:150,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:151,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:153,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:154,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:155,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:157,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:158,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:159,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:161,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:163,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:164,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:166,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:168,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:169,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:170,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:176,1
    - Dst: auto::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:178,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:185,1
    - Dst: auto::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:187,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:187,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:188,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:197,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:198,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:198,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:198,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:199,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:201,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 208
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 208
    functionName: OGRGeoJSONDataSource::DealWithOgrSchemaOpenOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFieldOverrides
    - auto::second::GetFieldWidth
    - CPLDebug
    - CPLError
    - auto::second::GetFieldName
    - std::vector::push_back
    - auto::c_str
    - std::string::empty
    - auto::GetLayerDefn
    - std::vector::end
    - auto::find
    - auto::second::GetFieldSubType
    - std::vector::begin
    - GetLayerByName
    - c_str
    - OGRSchemaOverride::IsValid
    - auto::cend
    - auto::GetFieldDefn
    - auto::second::GetFieldType
    - auto::second::GetFieldPrecision
    - auto::empty
    - OGRSchemaOverride::GetLayerOverrides
    - auto::cbegin
    - auto::GetNameRef
    - whileUnsealing
    - OGRSchemaOverride::LoadFromJSON
    - auto::erase
    - CSLFetchNameValueDef
    - auto::GetFieldCount
    - std::find
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONDataSource::DealWithOgrSchemaOpenOption(\n    const
      GDALOpenInfo *poOpenInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:221,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:222,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:224,1
    - Dst: OGRGeoJSONDataSource::ReadFromService
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:233,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:242,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:246,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:253,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:257,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:260,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:266,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:266,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:272,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:273,1
    - Dst: OGRGeoJSONDataSource::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:278,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:287,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:288,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:289,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:290,1
    - Dst: OGRGeoJSONDataSource::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:292,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:296,1
    - Dst: OGRGeoJSONDataSource::LoadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:297,1
    - Dst: OGRGeoJSONDataSource::DealWithOgrSchemaOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:299,1
    - Dst: OGRGeoJSONDataSource::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:301,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:311,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:311,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:312,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:313,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:313,1
    - Dst: GDALIdentifyDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:316,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:318,1
    - Dst: OGRGeoJSONDataSource::Clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:324,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 3
    argNames:
    - poOpenInfo
    - nSrcType
    - pszJSonFlavor
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    - char*
    constantsTouched: []
    func_position:
      end: 331
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 331
    functionName: OGRGeoJSONDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - OGRGeoJSONDataSource::LoadLayers
    - CPLError
    - STARTS_WITH
    - OGRGeoJSONDataSource::Clear
    - CPLStrdup
    - GDALIdentifyDriver
    - strlen
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - OGRGeoJSONDataSource::DealWithOgrSchemaOpenOption
    - VSIUnlink
    - CPLSPrintf
    - SetDescription
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - OGRGeoJSONDataSource::ReadFromService
    - EQUAL
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONDataSource::Open(GDALOpenInfo *poOpenInfo,\n                               GeoJSONSourceType
      nSrcType,\n                               const char *pszJSonFlavor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: OGRGeoJSONDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - nLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: OGRGeoJSONDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGeoJSONDataSource::GetLayer(int nLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:370,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:378,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:384,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:386,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:396,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:402,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:409,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:416,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:417,1
    - Dst: std::string::front
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:419,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:420,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:422,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:428,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:428,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:430,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:432,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:433,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:435,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:441,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:445,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:446,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:462,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:465,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:466,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:476,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:477,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:481,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:483,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:488,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:495,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:496,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:497,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:498,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:503,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:506,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:507,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:515,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:516,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:521,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:522,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:527,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:528,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:528,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:529,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:530,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:531,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:533,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:539,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:541,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:542,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:543,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:544,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:547,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:548,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:549,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:551,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:552,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:553,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:554,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:560,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:561,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:562,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:563,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:571,1
    - Dst: auto::GetAxesCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:575,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:577,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:578,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:579,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:580,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:586,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:597,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:598,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:599,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:600,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:602,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:620,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:622,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:623,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:624,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:625,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:626,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:628,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:630,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:632,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:636,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:637,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:641,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:643,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:645,1
    - Dst: std::pow
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:656,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:656,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:658,1
    - Dst: auto::GetAxesCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:660,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:662,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:668,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:669,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:670,1
    - Dst: auto::ConvertToOtherSRS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:672,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:679,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:681,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:682,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:684,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:692,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:694,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:695,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:697,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:704,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:704,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:707,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:707,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:710,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:713,1
    - Dst: OGRGeoJSONWriteLayer::OGRGeoJSONWriteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:712,1
    - Dst: OGRGeoJSONWriteLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:718,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:720,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:722,1
    - Dst: OGRGeoJSONWriteLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:728,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:730,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:732,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:738,1
    - Dst: static_cast<OGRGeoJSONWriteLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:739,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:739,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 173
    argCount: 3
    argNames:
    - pszNameIn
    - poSrcGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 745
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 745
    functionName: OGRGeoJSONDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetAxisMappingStrategy
    - strcmp
    - OGRGeoJSONWriteLayer*::GetLayerDefn
    - VSIFTellL
    - auto::SetCoordinatePrecision
    - CPLError
    - json_object_object_add
    - std::string::c_str
    - static_cast<OGRGeoJSONWriteLayer **>
    - CSLFetchNameValue
    - CPLStringList::List
    - std::string::empty
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - json_object_to_json_string
    - OGRGeoJSONWriteLayer::OGRGeoJSONWriteLayer
    - CPLRealloc
    - strlen
    - OGRJSonParse
    - std::string::back
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - std::pow
    - VSIFPrintfL
    - auto::ConvertToOtherSRS
    - static_cast<int>
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - json_object_get_type
    - std::string::clear
    - json_object_new_string
    - CPLSPrintf
    - CPLAssert
    - CPLStringList::SetNameValue
    - OGRCreateCoordinateTransformation
    - auto::GetCoordinatePrecision
    - auto::IsSame
    - CPLFree
    - auto::GetAxesCount
    - json_object_new_object
    - OGRSpatialReference::OGRSpatialReference
    - std::string::front
    - CSLFetchNameValueDef
    - json_object_put
    - EQUAL
    - VSIFWriteL
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRGeoJSONDataSource::ICreateLayer(const char *pszNameIn,\n
      \                                  const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:753,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:755,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 761
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 761
    functionName: OGRGeoJSONDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:770,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:772,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:775,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:776,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:777,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:785,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:793,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:796,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:798,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 805
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 805
    functionName: OGRGeoJSONDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - VSIStatL
    - VSIFOpenExL
    - CPLAssert
    - strcmp
    - VSIGetLastErrorMsg
    - CPLError
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONDataSource::Create(const char *pszName,\n                                 char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - GeometryTranslation
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: OGRGeoJSONDataSource::SetGeometryTranslation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::SetGeometryTranslation(GeometryTranslation
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - AttributesTranslation
    constantsTouched: []
    func_position:
      end: 823
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 823
    functionName: OGRGeoJSONDataSource::SetAttributesTranslation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::SetAttributesTranslation(AttributesTranslation
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:839,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:841,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:845,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:848,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 860
    functionName: OGRGeoJSONDataSource::Clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONDataSource::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:870,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:875,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:876,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:885,1
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:886,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:892,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:896,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:897,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:899,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - poOpenInfo
    - pszUnprefixed
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 902
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 902
    functionName: OGRGeoJSONDataSource::ReadFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char *>
    - VSIFCloseL
    - VSIFSeekL
    - EQUAL
    - CPLAssert
    - VSIIngestFile
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONDataSource::ReadFromFile(GDALOpenInfo *poOpenInfo,\n
      \                                      const char *pszUnprefixed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:911,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:912,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:914,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:922,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:924,1
    - Dst: TopoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:926,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:929,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:931,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:935,1
    - Dst: GeoJSONHTTPFetchWithContentTypeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:942,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:959,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:964,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:966,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:972,1
    - Dst: GeoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:974,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:976,1
    - Dst: TopoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:977,1
    - Dst: GeoJSONSeqIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:978,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:979,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:981,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:987,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:988,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - poOpenInfo
    - pszSource
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 995
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 995
    functionName: OGRGeoJSONDataSource::ReadFromService
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - GeoJSONSeqIsObject
    - CPLErrorReset
    - CPLStrdup
    - JSONFGIsObject
    - GeoJSONIsObject
    - EQUAL
    - ESRIJSONIsObject
    - CPLAssert
    - strlen
    - CPLHTTPDestroyResult
    - GeoJSONHTTPFetchWithContentTypeHeader
    - TopoJSONIsObject
    - OGRGeoJSONDriverStoreContent
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONDataSource::ReadFromService(GDALOpenInfo *poOpenInfo,\n
      \                                         const char *pszSource)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1004,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1006,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1006,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1009,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1009,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1020
    functionName: OGRGeoJSONDataSource::RemoveJSonPStuff
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - CPL_ARRAYSIZE
    - strncmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::RemoveJSonPStuff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1033,1
    - Dst: OGRGeoJSONDataSource::RemoveJSonPStuff
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1040,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1046,1
    - Dst: OGRESRIJSONReader::OGRESRIJSONReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1048,1
    - Dst: OGRGeoJSONDataSource::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1051,1
    - Dst: OGRESRIJSONReader::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1054,1
    - Dst: OGRESRIJSONReader::GetJSonObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1057,1
    - Dst: OGRGeoJSONDataSource::CheckExceededTransferLimit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1058,1
    - Dst: OGRESRIJSONReader::ReadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1059,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1067,1
    - Dst: OGRTopoJSONReader::OGRTopoJSONReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1069,1
    - Dst: OGRGeoJSONDataSource::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1072,1
    - Dst: OGRTopoJSONReader::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1075,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1078,1
    - Dst: OGRTopoJSONReader::ReadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1081,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1088,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1093,1
    - Dst: GDALOpenInfo::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1093,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1094,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1096,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1096,1
    - Dst: GeoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1101,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1103,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1106,1
    - Dst: OGRGeoJSONReader::OGRGeoJSONReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1113,1
    - Dst: OGRGeoJSONDataSource::SetOptionsOnReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1114,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1120,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1121,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1123,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1129,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1130,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1130,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1135,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1135,1
    - Dst: OGRGeoJSONReader*::FirstPassReadLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1148,1
    - Dst: OGRGeoJSONDataSource::CheckExceededTransferLimit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1155,1
    - Dst: OGRGeoJSONReader*::GetJSonObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1155,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1164,1
    - Dst: OGRGeoJSONReader::OGRGeoJSONReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1168,1
    - Dst: OGRGeoJSONDataSource::SetOptionsOnReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1169,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1173,1
    - Dst: OGRGeoJSONDataSource::ReadFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1176,1
    - Dst: OGRGeoJSONDataSource::RemoveJSonPStuff
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1181,1
    - Dst: OGRGeoJSONReader*::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1183,1
    - Dst: OGRGeoJSONDataSource::CheckExceededTransferLimit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1186,1
    - Dst: OGRGeoJSONReader*::GetJSonObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1186,1
    - Dst: OGRGeoJSONReader*::ReadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1189,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 91
    argCount: 4
    argNames:
    - poOpenInfo
    - nSrcType
    - pszUnprefixed
    - pszJSonFlavor
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1191
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1191
    functionName: OGRGeoJSONDataSource::LoadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONDataSource::RemoveJSonPStuff
    - OGRTopoJSONReader::OGRTopoJSONReader
    - GeoJSONIsObject
    - CPLDebug
    - OGRESRIJSONReader::OGRESRIJSONReader
    - OGRESRIJSONReader::GetJSonObject
    - CPLError
    - STARTS_WITH
    - OGRGeoJSONDataSource::SetOptionsOnReader
    - CPLGetConfigOption
    - CPLStrdup
    - static_cast<unsigned char>
    - isspace
    - CPLAtoGIntBig
    - OGRGeoJSONDataSource::CheckExceededTransferLimit
    - OGRGeoJSONReader*::Parse
    - OGRTopoJSONReader::Parse
    - strlen
    - OGRGeoJSONReader*::ReadLayers
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - OGRESRIJSONReader::ReadLayers
    - GDALOpenInfo::TryToIngest
    - OGRGeoJSONReader*::FirstPassReadLayer
    - CPL_IGNORE_RET_VAL
    - OGRGeoJSONReader*::GetJSonObject
    - CPLFree
    - OGRESRIJSONReader::Parse
    - VSIFCloseL
    - OGRTopoJSONReader::ReadLayers
    - EQUAL
    - OGRGeoJSONDataSource::ReadFromFile
    - OGRGeoJSONReader::OGRGeoJSONReader
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONDataSource::LoadLayers(GDALOpenInfo *poOpenInfo,\n
      \                                     GeoJSONSourceType nSrcType,\n                                      const
      char *pszUnprefixed,\n                                      const char *pszJSonFlavor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONReader*::SetPreserveGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1202,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1203,1
    - Dst: OGRGeoJSONReader*::SetSkipAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1208,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1209,1
    - Dst: OGRGeoJSONReader*::SetFlattenNestedAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1212,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1213,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1215,1
    - Dst: OGRGeoJSONReader*::SetStoreNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1219,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1219,1
    - Dst: OGRGeoJSONReader*::SetArrayAsString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1222,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1222,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1222,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1224,1
    - Dst: OGRGeoJSONReader*::SetDateAsString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1226,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1226,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1226,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1228,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1232,1
    - Dst: OGRGeoJSONReader*::SetForeignMemberProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1234,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1237,1
    - Dst: OGRGeoJSONReader*::SetForeignMemberProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1239,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1242,1
    - Dst: OGRGeoJSONReader*::SetForeignMemberProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1244,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1247,1
    - Dst: OGRGeoJSONReader*::SetForeignMemberProcessing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - poOpenInfo
    - poReader
    argTypes:
    - GDALOpenInfo*
    - OGRGeoJSONReader*
    constantsTouched: []
    func_position:
      end: 1252
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1252
    functionName: OGRGeoJSONDataSource::SetOptionsOnReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONReader*::SetStoreNativeData
    - CPLTestBool
    - CPLFetchBool
    - OGRGeoJSONReader*::SetPreserveGeometryType
    - CSLFetchNameValueDef
    - CPLDebug
    - EQUAL
    - OGRGeoJSONReader*::SetForeignMemberProcessing
    - OGRGeoJSONReader*::SetSkipAttributes
    - OGRGeoJSONReader*::SetArrayAsString
    - OGRGeoJSONReader*::SetFlattenNestedAttributes
    - OGRGeoJSONReader*::SetDateAsString
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONDataSource::SetOptionsOnReader(GDALOpenInfo *poOpenInfo,\n
      \                                             OGRGeoJSONReader *poReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1264,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1266,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1269,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1272,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1274,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1277,1
    - Dst: json_object_get_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 1283
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1283
    functionName: OGRGeoJSONDataSource::CheckExceededTransferLimit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - json_object_get_boolean
    - json_object_get_type
    - CPL_TO_BOOL
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::CheckExceededTransferLimit(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1291,1
    - Dst: OGRGeoJSONLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1294,1
    - Dst: static_cast<OGRGeoJSONLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1296,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRGeoJSONLayer*
    constantsTouched: []
    func_position:
      end: 1300
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1300
    functionName: OGRGeoJSONDataSource::AddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    - CPLAssert
    - static_cast<OGRGeoJSONLayer **>
    - OGRGeoJSONLayer*::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDataSource::AddLayer(OGRGeoJSONLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1310,1
    - Dst: HasBeenUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1317,1
    - Dst: SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1319,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1333,1
    - Dst: GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1334,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1336,1
    - Dst: GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1337,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1340,1
    - Dst: OGRGeoJSONWriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1345,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1346,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1349,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1351,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1352,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1354,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1364,1
    - Dst: GDALVectorTranslateOptionsNew
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1366,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1367,1
    - Dst: GDALVectorTranslate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1371,1
    - Dst: GDALVectorTranslateOptionsFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1373,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1377,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1378,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1379,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1396,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1403,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1410,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1414,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1418,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1420,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1428,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1430,1
    - Dst: VSIRename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1433,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1435,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1437,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp:1441,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1306
    functionDepth: 6
    functionLinenumber: 1306
    functionLinenumberEnd: 1455
    functionName: OGRGeoJSONDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
    functionUses: 1
    functionsReached:
    - GetMetadata
    - SetUpdated
    - CSLAddString
    - CPLError
    - GDALClose
    - json_object_to_json_string
    - CPLErrorReset
    - ResetReading
    - CPLString::c_str
    - OGRGeoJSONWriteFeature
    - VSIRename
    - VSIFPrintfL
    - VSIUnlink
    - VSIFOpenL
    - GDALVectorTranslateOptionsFree
    - CPLSleep
    - GDALVectorTranslate
    - VSIFCloseL
    - GDALVectorTranslateOptionsNew
    - SyncToDisk
    - HasBeenUpdated
    - CSLDestroy
    - json_object_put
    - OGRFeature*::GetNativeData
    - CPLGetLastErrorType
    - GetNextFeature
    - GetFeatureCount
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGeoJSONDataSource::FlushCache(bool /*bAtClosing*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - bFirstPass
    - bStoreNativeData
    - nMaxObjectSize
    argTypes:
    - bool
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: OGRJSONCollectionStreamingParser::OGRJSONCollectionStreamingParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRJSONCollectionStreamingParser::OGRJSONCollectionStreamingParser(\n
      \   bool bFirstPass, bool bStoreNativeData, size_t nMaxObjectSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:68,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: OGRJSONCollectionStreamingParser::~OGRJSONCollectionStreamingParser()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::~OGRJSONCollectionStreamingParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: OGRJSONCollectionStreamingParser::StealRootObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRJSONCollectionStreamingParser::StealRootObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:94,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:94,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:94,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:95,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:95,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:95,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:97,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:102,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:102,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:102,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:103,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - poNewObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: OGRJSONCollectionStreamingParser::AppendObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - back
    - c_str
    - json_object_get_type
    - json_object_array_add
    - CPLAssert
    - json_object_object_add
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::AppendObject(json_object *poNewObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:115,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:121,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:122,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:126,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:135,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:140,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:141,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:142,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:146,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 152
    functionName: OGRJSONCollectionStreamingParser::StartObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONCollectionStreamingParser::AppendObject
    - json_object_new_object
    - TooComplex
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::StartObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:162,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:172,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:175,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:175,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:179,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:181,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:184,1
    - Dst: GotFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:186,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:190,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:192,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:196,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:197,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:204,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 214
    functionName: OGRJSONCollectionStreamingParser::EndObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - size
    - GotFeature
    - clear
    - json_object_get_type
    - json_object_put
    - strcmp
    - strlen
    - TooComplex
    - pop_back
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::EndObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:225,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:231,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:233,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:237,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:243,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:244,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:250,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:251,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:258,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:260,1
    - Dst: CPLJSonStreamingParser::GetSerializedString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:262,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:266,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - pszKey
    - nKeyLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 269
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 269
    functionName: OGRJSONCollectionStreamingParser::StartObjectMember
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - back
    - assign
    - strcmp
    - CPLJSonStreamingParser::GetSerializedString
    - TooComplex
    - push_back
    - clear
    linkageType: ''
    returnType: void
    signature: "void OGRJSONCollectionStreamingParser::StartObjectMember(const char
      *pszKey,\n                                                         size_t nKeyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:279,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:292,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:297,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:298,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: OGRJSONCollectionStreamingParser::StartArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONCollectionStreamingParser::AppendObject
    - TooComplex
    - push_back
    - json_object_new_array
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::StartArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:316,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: OGRJSONCollectionStreamingParser::StartArrayMember
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - back
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::StartArrayMember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:331,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:344,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: OGRJSONCollectionStreamingParser::EndArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - TooComplex
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::EndArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:360,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:367,1
    - Dst: CPLJSonStreamingParser::GetSerializedString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:381,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:383,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - pszValue
    - nLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 385
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 385
    functionName: OGRJSONCollectionStreamingParser::String
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - OGRJSONCollectionStreamingParser::AppendObject
    - strcmp
    - CPLJSonStreamingParser::GetSerializedString
    - TooComplex
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::String(const char *pszValue,
      size_t nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:395,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:415,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:418,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:420,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:420,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:420,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:422,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:424,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:424,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:425,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:427,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:427,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:429,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:429,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:430,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:432,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:434,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:434,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:435,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:439,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:439,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:439,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - pszValue
    - nLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 442
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 442
    functionName: OGRJSONCollectionStreamingParser::Number
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - cpl::infinity
    - CPLGetValueType
    - CPLAtoGIntBig
    - OGRJSONCollectionStreamingParser::AppendObject
    - EQUAL
    - json_object_new_int64
    - TooComplex
    - append
    - strlen
    - cpl::quiet_NaN
    - json_object_new_double
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::Number(const char *pszValue,
      size_t nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:452,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:470,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - bVal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 472
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 472
    functionName: OGRJSONCollectionStreamingParser::Boolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONCollectionStreamingParser::AppendObject
    - TooComplex
    - json_object_new_boolean
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::Boolean(bool bVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TooComplex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:482,1
    - Dst: OGRJSONCollectionStreamingParser::AppendObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 496
    functionName: OGRJSONCollectionStreamingParser::Null
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - OGRJSONCollectionStreamingParser::AppendObject
    - TooComplex
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::Null()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszMessage
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: OGRJSONCollectionStreamingParser::Exception
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRJSONCollectionStreamingParser::Exception(const char *pszMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TopoJSONDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:32,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:37,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: OGRTopoJSONDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - TopoJSONDriverGetSourceType
    linkageType: ''
    returnType: int
    signature: int OGRTopoJSONDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TopoJSONDriverGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:53,1
    - Dst: OGRGeoJSONDriverOpenInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: OGRTopoJSONDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONDriverOpenInternal
    - TopoJSONDriverGetSourceType
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRTopoJSONDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:65,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:68,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:71,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:77,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:85,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: RegisterOGRTopoJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsondriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRTopoJSON()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: SkipUTF8BOM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: void
    signature: void SkipUTF8BOM(const char *&pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SkipUTF8BOM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:52,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:57,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:57,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:63,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:63,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: IsJSONObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - isspace
    - strncmp
    - strlen
    - SkipUTF8BOM
    linkageType: ''
    returnType: bool
    signature: bool IsJSONObject(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:82,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:83,1
    - Dst: SkipUTF8BOM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:85,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:96,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:96,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:107,1
    - Dst: StopParsing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:108,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:120,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:121,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:133,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:134,1
    - Dst: MyParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:140,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 142
    functionName: GetTopLevelType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - empty
    - MyParser::Parse
    - assign
    - StopParsing
    - strcmp
    - strlen
    - strstr
    - std::string
    - pop_back
    - SkipUTF8BOM
    linkageType: ''
    returnType: std::string
    signature: std::string GetTopLevelType(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:151,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:157,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:184,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:184,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - pszText
    - nMaxSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 190
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 190
    functionName: GetCompactJSon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - isspace
    - static_cast<unsigned char>
    - CPLString::size
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetCompactJSon(const char *pszText, size_t nMaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:203,1
    - Dst: GetTopLevelType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:206,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:210,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:211,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:217,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:218,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:218,1
    - Dst: GetCompactJSon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:228,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:228,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:229,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:230,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:231,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:242,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:244,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:248,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:250,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:252,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:254,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:256,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:258,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:260,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:263,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:266,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:283,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 35
    argCount: 5
    argNames:
    - pszText
    - bMightBeSequence
    - bReadMoreBytes
    - poOpenInfo
    - pszExpectedDriverName
    argTypes:
    - char*
    - bool
    - bool
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 291
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 291
    functionName: IsGeoJSONLikeObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GetCompactJSon
    - GDALOpenInfo*::IsSingleAllowedDriver
    - JSONFGIsObject
    - std::string::find
    - IsJSONObject
    - ESRIJSONIsObject
    - CSLFindString
    - strlen
    - GetTopLevelType
    linkageType: ''
    returnType: bool
    signature: "bool IsGeoJSONLikeObject(const char *pszText, bool &bMightBeSequence,\n
      \                               bool &bReadMoreBytes, GDALOpenInfo *poOpenInfo,\n
      \                               const char *pszExpectedDriverName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszText
    - poOpenInfo
    - pszExpectedDriverName
    argTypes:
    - char*
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: IsGeoJSONLikeObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 1
    functionsReached:
    - IsGeoJSONLikeObject
    linkageType: ''
    returnType: bool
    signature: "bool IsGeoJSONLikeObject(const char *pszText, GDALOpenInfo *poOpenInfo,\n
      \                               const char *pszExpectedDriverName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:308,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:311,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:312,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:318,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:319,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:322,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:325,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:326,1
    - Dst: GetCompactJSon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:331,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:331,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:332,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:333,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - pszText
    - poOpenInfo
    argTypes:
    - char*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 341
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 341
    functionName: ESRIJSONIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 2
    functionsReached:
    - GDALGetDriverByName
    - GetCompactJSon
    - GDALOpenInfo*::IsSingleAllowedDriver
    - std::string::find
    - IsJSONObject
    - strstr
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ESRIJSONIsObject(const char *pszText, GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:349,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:352,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:353,1
    - Dst: GetTopLevelType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pszText
    - poOpenInfo
    argTypes:
    - char*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: TopoJSONIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GetTopLevelType
    - IsJSONObject
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: bool
    signature: bool TopoJSONIsObject(const char *pszText, GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:371,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:388,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:389,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:389,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:390,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:390,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:394,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:399,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:399,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:419,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:419,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 3
    argNames:
    - fpL
    - pabyHeader
    - pszFileContent
    argTypes:
    - VSILFILE*
    - GByte*
    - char*
    constantsTouched: []
    func_position:
      end: 458
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 458
    functionName: IsLikelyNewlineSequenceGeoJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - isspace
    - assert
    - VSIFSeekL
    - min
    - strlen
    - VSIFReadL
    - memcpy
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: GDALIdentifyEnum
    signature: "GDALIdentifyEnum IsLikelyNewlineSequenceGeoJSON(VSILFILE *fpL, const
      GByte *pabyHeader,\n                               const char *pszFileContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:470,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:477,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:478,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:482,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:483,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:484,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 494
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 494
    functionName: GeoJSONFileIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - IsGeoJSONLikeObject
    - GDALOpenInfo*::TryToIngest
    - reinterpret_cast<const char *>
    - IsLikelyNewlineSequenceGeoJSON
    linkageType: ''
    returnType: bool
    signature: bool GeoJSONFileIsObject(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:504,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pszText
    - poOpenInfo
    argTypes:
    - char*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: GeoJSONIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 2
    functionsReached:
    - IsGeoJSONLikeObject
    - IsLikelyNewlineSequenceGeoJSON
    linkageType: ''
    returnType: bool
    signature: bool GeoJSONIsObject(const char *pszText, GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:525,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:533,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:537,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:541,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:542,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:543,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:550,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:551,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:553,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:558,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 561
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 561
    functionName: GeoJSONSeqFileIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - GDALGetDriverByName
    - GDALOpenInfo*::IsSingleAllowedDriver
    - reinterpret_cast<const char *>
    - IsLikelyNewlineSequenceGeoJSON
    - IsGeoJSONLikeObject
    linkageType: ''
    returnType: bool
    signature: bool GeoJSONSeqFileIsObject(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:566,1
    - Dst: IsGeoJSONLikeObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:570,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:576,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:577,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:579,1
    - Dst: IsLikelyNewlineSequenceGeoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:585,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - pszText
    - poOpenInfo
    argTypes:
    - char*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 587
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 587
    functionName: GeoJSONSeqIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - IsGeoJSONLikeObject
    - GDALOpenInfo*::IsSingleAllowedDriver
    - IsLikelyNewlineSequenceGeoJSON
    linkageType: ''
    returnType: bool
    signature: bool GeoJSONSeqIsObject(const char *pszText, GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:596,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: JSONFGFileIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - JSONFGIsObject
    linkageType: ''
    returnType: bool
    signature: bool JSONFGFileIsObject(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:608,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:611,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:612,1
    - Dst: GetCompactJSon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:617,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:617,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:621,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:626,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:627,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:629,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:630,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:641,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:642,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:644,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:645,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:646,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:651,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:652,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:664,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:665,1
    - Dst: StopParsing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:671,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:673,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:674,1
    - Dst: StopParsing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:680,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:691,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:692,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:702,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:703,1
    - Dst: MyParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:708,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:708,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 44
    argCount: 2
    argNames:
    - pszText
    - poOpenInfo
    argTypes:
    - char*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 717
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 717
    functionName: JSONFGIsObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 4
    functionsReached:
    - GDALGetDriverByName
    - GetCompactJSon
    - GDALOpenInfo*::IsSingleAllowedDriver
    - empty
    - MyParser::Parse
    - std::string::find
    - IsJSONObject
    - StopParsing
    - CPLSPrintf
    - strcmp
    - strlen
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool JSONFGIsObject(const char *pszText, GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:727,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:728,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:729,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 731
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 731
    functionName: IsLikelyESRIJSONURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool IsLikelyESRIJSONURL(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:744,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:745,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:746,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:750,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:751,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:752,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:754,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:758,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:759,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:760,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:761,1
    - Dst: IsLikelyESRIJSONURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:765,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:771,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:774,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:774,1
    - Dst: GeoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:779,1
    - Dst: GeoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:783,1
    - Dst: GeoJSONFileIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:787,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 793
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 793
    functionName: GeoJSONGetSourceType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - GeoJSONFileIsObject
    - IsLikelyESRIJSONURL
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIStatL
    - GeoJSONIsObject
    - strstr
    - strlen
    linkageType: ''
    returnType: GeoJSONSourceType
    signature: GeoJSONSourceType GeoJSONGetSourceType(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:801,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:802,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:803,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:807,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:808,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:809,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:811,1
    - Dst: IsLikelyESRIJSONURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:815,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:822,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:825,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:825,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:831,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:839,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:847,1
    - Dst: ESRIJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:853,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:853,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 859
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 859
    functionName: ESRIJSONDriverGetSourceType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 2
    functionsReached:
    - IsLikelyESRIJSONURL
    - STARTS_WITH_CI
    - GDALOpenInfo*::TryToIngest
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIStatL
    - reinterpret_cast<const char *>
    - ESRIJSONIsObject
    - strlen
    - STARTS_WITH
    linkageType: ''
    returnType: GeoJSONSourceType
    signature: GeoJSONSourceType ESRIJSONDriverGetSourceType(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:867,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:868,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:869,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:873,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:874,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:875,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:877,1
    - Dst: IsLikelyESRIJSONURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:881,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:888,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:891,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:891,1
    - Dst: TopoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:897,1
    - Dst: TopoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:905,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:913,1
    - Dst: TopoJSONIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:919,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:919,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 925
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 925
    functionName: TopoJSONDriverGetSourceType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 2
    functionsReached:
    - IsLikelyESRIJSONURL
    - STARTS_WITH_CI
    - GDALOpenInfo*::TryToIngest
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIStatL
    - reinterpret_cast<const char *>
    - TopoJSONIsObject
    - strlen
    - STARTS_WITH
    linkageType: ''
    returnType: GeoJSONSourceType
    signature: GeoJSONSourceType TopoJSONDriverGetSourceType(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:935,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:936,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:937,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:941,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:942,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:943,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:945,1
    - Dst: IsLikelyESRIJSONURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:949,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:955,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:958,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:958,1
    - Dst: GeoJSONSeqIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:964,1
    - Dst: GeoJSONSeqIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:968,1
    - Dst: GeoJSONSeqFileIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:972,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 978
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 978
    functionName: GeoJSONSeqGetSourceType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - GeoJSONSeqIsObject
    - IsLikelyESRIJSONURL
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIStatL
    - GeoJSONSeqFileIsObject
    - strlen
    linkageType: ''
    returnType: GeoJSONSourceType
    signature: GeoJSONSourceType GeoJSONSeqGetSourceType(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:988,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:989,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:990,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:994,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:995,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:996,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:998,1
    - Dst: IsLikelyESRIJSONURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1002,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1008,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1012,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1017,1
    - Dst: JSONFGIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1021,1
    - Dst: JSONFGFileIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1025,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1031
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1031
    functionName: JSONFGDriverGetSourceType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 2
    functionsReached:
    - IsLikelyESRIJSONURL
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - VSIStatL
    - JSONFGFileIsObject
    - JSONFGIsObject
    linkageType: ''
    returnType: GeoJSONSourceType
    signature: GeoJSONSourceType JSONFGDriverGetSourceType(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1048,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1050,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - poObject
    - nTZFlag
    argTypes:
    - json_object*
    - int
    constantsTouched: []
    func_position:
      end: 1067
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1067
    functionName: GeoJSONStringPropertyToFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 0
    functionsReached:
    - CPLPopErrorHandler
    - CPLErrorReset
    - CPLPushErrorHandler
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType GeoJSONStringPropertyToFieldType(json_object *poObject,\n
      \                                             int &nTZFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1083,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1086,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1090,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1099,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1100,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1101,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1103,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1105,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1109,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1116,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1121,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1122,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1122,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1123,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1123,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1126,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1134,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp:1136,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1141
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1141
    functionName: GeoJSONHTTPFetchWithContentTypeHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - STARTS_WITH_CI
    - CPLError
    - CPLHTTPFetch
    - CPLGetLastErrorNo
    - strchr
    - strstr
    - CPLStringList::SetNameValue
    - CPLHTTPDestroyResult
    - CSLTokenizeString2
    - CPLStringList::size
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: CPLHTTPResult
    signature: CPLHTTPResult *GeoJSONHTTPFetchWithContentTypeHeader(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: OGRESRIJSONReader::OGRESRIJSONReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRESRIJSONReader::OGRESRIJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: OGRESRIJSONReader::~OGRESRIJSONReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRESRIJSONReader::~OGRESRIJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: OGRESRIJSONReader::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - OGRJSonParse
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRESRIJSONReader::Parse(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:88,1
    - Dst: OGRGeoJSONDataSource*::SetSupportsMGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:90,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:94,1
    - Dst: OGRESRIJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:99,1
    - Dst: OGRGeoJSONDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:104,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:105,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:105,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:106,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:106,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:107,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:107,1
    - Dst: OGRESRIJSONGetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:110,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:120,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:122,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:124,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:128,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:130,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:132,1
    - Dst: OGRESRIJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:137,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:147,1
    - Dst: OGRGeoJSONLayer::OGRGeoJSONLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:147,1
    - Dst: SetSupportsMGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:148,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:150,1
    - Dst: OGRESRIJSONReader::GenerateLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:152,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:154,1
    - Dst: OGRESRIJSONReader::ReadFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:161,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:168,1
    - Dst: DetectGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:170,1
    - Dst: OGRGeoJSONDataSource*::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:171,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - poDS
    - eSourceType
    argTypes:
    - OGRGeoJSONDataSource*
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 172
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: OGRESRIJSONReader::ReadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - OGRSpatialReference*::Release
    - CPLError
    - OGRESRIJSONGetGeometryType
    - std::string::c_str
    - CPLErrorReset
    - strlen
    - DetectGeometryType
    - OGRESRIJSONReader::GenerateLayerDefn
    - OGRESRIJSONReadSpatialReference
    - json_object_array_get_idx
    - STARTS_WITH_CI
    - json_object_array_length
    - OGRGeoJSONDataSource*::GetDescription
    - OGRGeoJSONDataSource*::AddLayer
    - json_object_get_type
    - CPLAssert
    - OGRESRIJSONReader::ReadFeatureCollection
    - OGRGeoJSONLayer::OGRGeoJSONLayer
    - CPLGetBasenameSafe
    - OGRGeoJSONDataSource*::SetSupportsMGeometries
    - OGRGeoJSONFindMemberByName
    - std::string::substr
    - SetSupportsMGeometries
    linkageType: ''
    returnType: void
    signature: "void OGRESRIJSONReader::ReadLayers(OGRGeoJSONDataSource *poDS,\n                                   GeoJSONSourceType
      eSourceType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:180,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:184,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:185,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:186,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:186,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:187,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:192,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:194,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:196,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:199,1
    - Dst: OGRESRIJSONReader::ParseField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:200,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:202,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:207,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:209,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:218,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:226,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:228,1
    - Dst: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:230,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:236,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:240,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:242,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:247,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:249,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:257,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:258,1
    - Dst: gdal::DirectedAcyclicGraph::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:268,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:269,1
    - Dst: gdal::DirectedAcyclicGraph::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:272,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:281,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:282,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:282,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:282,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:286,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:286,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 292
    functionName: OGRESRIJSONReader::GenerateLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - OGRGeoJSONReaderAddOrUpdateField
    - CPLDebug
    - std::vector::clear
    - auto::size
    - OGRESRIJSONReader::ParseField
    - OGRFeatureDefn*::AddFieldDefn
    - GetNameRef
    - json_object_array_get_idx
    - GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - json_object_array_length
    - get
    - json_object_get_type
    - CPLAssert
    - gdal::DirectedAcyclicGraph::addNode
    - gdal::DirectedAcyclicGraph::addEdge
    - gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    - OGRGeoJSONFindMemberByName
    - gdal::DirectedAcyclicGraph::getTopologicalOrdering
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIJSONReader::GenerateLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:300,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:301,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:308,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:316,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:320,1
    - Dst: SetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:323,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:325,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:330,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:339,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:343,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:349,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:355,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:360,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:362,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:369,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:373,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:374,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:377,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:378,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:381,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 386
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 386
    functionName: OGRESRIJSONReader::ParseField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - OGRFeatureDefn*::AddFieldDefn
    - OGRFieldDefn::SetWidth
    - SetFIDColumn
    - json_object_get_type
    - CPLDebug
    - OGRFieldDefn::SetSubType
    - EQUAL
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - strcmp
    - OGRFieldDefn::SetAlternativeName
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIJSONReader::ParseField(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRESRIJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: OGRESRIJSONReader::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - OGRESRIJSONReader::AddFeature
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIJSONReader::AddFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:410,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:413,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:415,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:416,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:417,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:418,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:419,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - nVal
    - psField
    argTypes:
    - int64_t
    - OGRField*
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: EsriDateToOGRDate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<float>
    - static_cast<GInt16>
    - static_cast<GByte>
    - CPLUnixTimeToYMDHMS
    linkageType: ''
    returnType: void
    signature: void EsriDateToOGRDate(int64_t nVal, OGRField *psField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:432,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:433,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:435,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:435,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:440,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:442,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:444,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:459,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:459,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:460,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:460,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:461,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:467,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:468,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:473,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:474,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:479,1
    - Dst: EsriDateToOGRDate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:480,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:481,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:486,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:487,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:496,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:511,1
    - Dst: OGRESRIJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:523,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:526,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 531
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 531
    functionName: OGRESRIJSONReader::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRESRIJSONReadGeometry
    - OGRFeature*::GetRawFieldRef
    - GetGeomType
    - json_object_get_double
    - OGRFeature*::SetGeometryDirectly
    - GetLayerDefn
    - json_object_get_type
    - GetFIDColumn
    - CPLAssert
    - json_object_get_string
    - OGRFeature::OGRFeature
    - OGRFeature*::GetFieldDefnRef
    - EsriDateToOGRDate
    - EQUAL
    - OGRGeoJSONFindMemberByName
    - json_object_get_int
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRESRIJSONReader::ReadFeature(json_object *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:539,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:541,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:544,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:550,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:552,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:556,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:558,1
    - Dst: OGRESRIJSONReader::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:561,1
    - Dst: OGRESRIJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:562,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp:569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - poObj
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 571
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 571
    functionName: OGRESRIJSONReader::ReadFeatureCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - OGRESRIJSONReader::ReadFeature
    - json_object_get_type
    - CPLAssert
    - OGRGeoJSONFindMemberByName
    - CPLError
    - OGRESRIJSONReader::AddFeature
    - json_object_array_get_idx
    linkageType: ''
    returnType: OGRGeoJSONLayer
    signature: OGRGeoJSONLayer *OGRESRIJSONReader::ReadFeatureCollection(json_object
      *poObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectedAcyclicGraph()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::DirectedAcyclicGraph::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:44,1
    - Dst: gdal::DirectedAcyclicGraph::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:45,1
    - Dst: gdal::DirectedAcyclicGraph::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:46,1
    - Dst: gdal::DirectedAcyclicGraph::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: gdal::DirectedAcyclicGraph::clear
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 1
    functionsReached:
    - gdal::DirectedAcyclicGraph::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - s
    argTypes:
    - T
    - V
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: gdal::DirectedAcyclicGraph::addNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 1
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void addNode(const T &i, const V &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:67,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:68,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:71,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:72,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:76,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:77,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:77,1
    - Dst: auto::second::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:78,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:79,1
    - Dst: auto::second::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:79,1
    - Dst: auto::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:80,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:81,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:82,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:84,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:89,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:90,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:94,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:95,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:95,1
    - Dst: auto::second::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:96,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:97,1
    - Dst: auto::second::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:97,1
    - Dst: auto::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:98,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:99,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:100,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - i
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: gdal::DirectedAcyclicGraph<T, V>::removeNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 0
    functionsReached:
    - end
    - erase
    - auto::second::empty
    - auto::second::end
    - find
    - assert
    - auto::second::erase
    - auto::second::find
    linkageType: ''
    returnType: void
    signature: void DirectedAcyclicGraph<T, V>::removeNode(const T &i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:114,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:115,1
    - Dst: auto::second::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:116,1
    - Dst: auto::second::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:116,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:121,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:125,1
    - Dst: gdal::DirectedAcyclicGraph<T, V>::isTherePathFromTo
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:130,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:135,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 138
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 138
    functionName: gdal::DirectedAcyclicGraph<T, V>::addEdge
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 0
    functionsReached:
    - end
    - auto::second::end
    - insert
    - find
    - gdal::DirectedAcyclicGraph<T, V>::isTherePathFromTo
    - auto::second::find
    - cpl::contains
    linkageType: ''
    returnType: char
    signature: char *DirectedAcyclicGraph<T, V>::addEdge(const T &i, const T &j)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:143,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:144,1
    - Dst: auto::second::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:146,1
    - Dst: auto::second::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:147,1
    - Dst: auto::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:149,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:150,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:151,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:153,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:154,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:154,1
    - Dst: auto::second::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:155,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:156,1
    - Dst: auto::second::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:156,1
    - Dst: auto::second::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:157,1
    - Dst: auto::second::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:158,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: gdal::DirectedAcyclicGraph<T, V>::removeEdge
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 0
    functionsReached:
    - end
    - erase
    - auto::second::empty
    - auto::second::end
    - find
    - assert
    - auto::second::erase
    - auto::second::find
    linkageType: ''
    returnType: char
    signature: char *DirectedAcyclicGraph<T, V>::removeEdge(const T &i, const T &j)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::stack::push
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:169,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:170,1
    - Dst: std::stack::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:171,1
    - Dst: std::stack::top
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:173,1
    - Dst: std::stack::pop
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:174,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:177,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:178,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:182,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:184,1
    - Dst: std::stack::push
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 191
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 191
    functionName: gdal::DirectedAcyclicGraph<T, V>::isTherePathFromTo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 1
    functionsReached:
    - end
    - std::stack::top
    - std::stack::pop
    - std::stack::push
    - std::set::insert
    - find
    - std::stack::empty
    - cpl::contains
    linkageType: ''
    returnType: bool
    signature: bool DirectedAcyclicGraph<T, V>::isTherePathFromTo(const T &i, const
      T &j) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: gdal::DirectedAcyclicGraph<T, V>::findStartingNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 0
    functionsReached:
    - cpl::contains
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> DirectedAcyclicGraph<T, V>::findStartingNodes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:211,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:211,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:214,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:214,1
    - Dst: gdal::DirectedAcyclicGraph<T, V>::findStartingNodes
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:217,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:219,1
    - Dst: std::set::begin
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:223,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:224,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:227,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:228,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:230,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:231,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:239,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:240,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:242,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:249,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:249,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:250,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 253
    functionName: gdal::DirectedAcyclicGraph<T, V>::getTopologicalOrdering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/directedacyclicgraph.hpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - gdal::DirectedAcyclicGraph<T, V>::findStartingNodes
    - empty
    - find
    - std::set::insert
    - std::set::erase
    - std::vector::emplace_back
    - assert
    - std::set::begin
    - std::vector::reserve
    - cpl::contains
    - std::set::end
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> DirectedAcyclicGraph<T, V>::getTopologicalOrdering()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.h:56,1
    - Dst: OGRJSONCollectionStreamingParser
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 125
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrjsoncollectionstreamingparser.h
    functionUses: 0
    functionsReached:
    - OGRJSONCollectionStreamingParser
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class OGRJSONCollectionStreamingParser
    signature: class OGRJSONCollectionStreamingParser CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:31,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:32,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:33,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:35,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:36,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:38,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:38,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:39,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:40,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:42,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:45,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:48,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:48,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:49,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:49,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:51,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:51,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:53,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:54,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:55,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:55,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:60,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:61,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:65,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:65,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:67,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:67,1
    - Dst: SetRFC7946Settings
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:74,1
    - Dst: SetIDOptions
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:76,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:77,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:78,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:79,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - pszName
    - eGType
    - papszOptions
    - bWriteFC_BBOXIn
    - poCT
    - poDS
    argTypes:
    - char*
    - OGRwkbGeometryType
    - CSLConstList
    - bool
    - OGRCoordinateTransformation*
    - OGRGeoJSONDataSource*
    constantsTouched: []
    func_position:
      end: 81
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 81
    functionName: OGRGeoJSONWriteLayer::OGRGeoJSONWriteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLTestBool
    - back
    - empty
    - atoi
    - front
    - SetGeomType
    - CSLFetchNameValueDef
    - OGRFeatureDefn::OGRFeatureDefn
    - SetRFC7946Settings
    - CPLAssert
    - Reference
    - substr
    - SetDescription
    - SetIDOptions
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONWriteLayer::OGRGeoJSONWriteLayer(const char *pszName,\n
      \                                          OGRwkbGeometryType eGType,\n                                           CSLConstList
      papszOptions,\n                                           bool bWriteFC_BBOXIn,\n
      \                                          OGRCoordinateTransformation *poCT,\n
      \                                          OGRGeoJSONDataSource *poDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONWriteLayer::FinishWriting
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:89,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: OGRGeoJSONWriteLayer::~OGRGeoJSONWriteLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - OGRGeoJSONWriteLayer::FinishWriting
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONWriteLayer::~OGRGeoJSONWriteLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:107,1
    - Dst: VSILFILE*::Tell
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:109,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:111,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:113,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:118,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:123,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:125,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:129,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:132,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:134,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:138,1
    - Dst: GetFpOutputIsSeekable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:142,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:143,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:145,1
    - Dst: GetBBOXInsertLocation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:145,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:146,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:146,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:147,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:151,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:151,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:155,1
    - Dst: VSILFILE*::Flush
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 158
    functionName: OGRGeoJSONWriteLayer::FinishWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFPrintfL
    - GetOutputFile
    - VSILFILE*::Tell
    - VSILFILE*::Flush
    - VSIFSeekL
    - CPLSPrintf
    - GetFpOutputIsSeekable
    - CPLString::c_str
    - CPLString::size
    - snprintf
    - GetBBOXInsertLocation
    - IsInit
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONWriteLayer::FinishWriting()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFpOutputIsSeekable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:166,1
    - Dst: OGRGeoJSONWriteLayer::FinishWriting
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: OGRGeoJSONWriteLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONWriteLayer::FinishWriting
    - GetFpOutputIsSeekable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONWriteLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFile
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:180,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:185,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:186,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:187,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:187,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:188,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:193,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:194,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:207,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:214,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:225,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:235,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:236,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:238,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:238,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:239,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:243,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:244,1
    - Dst: auto::roundCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:247,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:248,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:248,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:253,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:256,1
    - Dst: OGRGeometry*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:257,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:261,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:263,1
    - Dst: auto::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:263,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:267,1
    - Dst: std::unique_ptr::clone
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:267,1
    - Dst: auto::roundCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:268,1
    - Dst: IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:269,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:271,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:274,1
    - Dst: std::unique_ptr::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:275,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:278,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:286,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:287,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:288,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:288,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:290,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:290,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:295,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:297,1
    - Dst: OGRGeoJSONWriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:300,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:301,1
    - Dst: VSILFILE*::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:306,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:313,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:333,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:336,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:341,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:344,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:345,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:346,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:346,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:346,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:350,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:354,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:358,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:359,1
    - Dst: OGRGeoJSONGetBBox
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:361,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:362,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:365,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:379,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:381,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:388,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:394,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:409,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:414,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:425,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:427,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:430,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:431,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:435,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 129
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 443
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 443
    functionName: OGRGeoJSONWriteLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - std::unique_ptr<OGRGeometry>
    - auto::get
    - CPLDebug
    - CPLError
    - OGRFeature*::SetFrom
    - std::unique_ptr::clone
    - IsValid
    - std::unique_ptr::release
    - std::move
    - OGRGeoJSONWriteFeature
    - std::unique_ptr::reset
    - wkbFlatten
    - IsInit
    - OGRFeature*::SetGeometryDirectly
    - OGRGeometry*::getGeometryType
    - const_cast<char **>
    - VSIFPrintfL
    - c_str
    - GetOutputFile
    - OGRFeature*::GetFID
    - OGRGeometry*::getCoordinateDimension
    - OGRGeoJSONGetBBox
    - min
    - OGRGeometryFactory::transformWithOptions
    - CPLAssert
    - OGRFeature::OGRFeature
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetGeometryRef
    - auto::MakeValid
    - size
    - OGRGeometry*::IsEmpty
    - VSILFILE*::Seek
    - empty
    - OGRGeometry*::SetPrecision
    - std::unique_ptr::SetPrecision
    - json_object_put
    - max
    - VSIFWriteL
    - auto::roundCoordinates
    - Merge
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONWriteLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndexCaseSensitive
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:452,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:452,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:454,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:455,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 464
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 464
    functionName: OGRGeoJSONWriteLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - GetFieldIndexCaseSensitive
    - AddFieldDefn
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONWriteLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                        int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: OGRGeoJSONWriteLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONWriteLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: OGRGeoJSONWriteLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONWriteLayer::IGetExtent(int /*iGeomField*/,\n                                        OGREnvelope
      *psExtent, bool)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: OGRGeoJSONWriteLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwritelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoJSONWriteLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eForeignMemberProcessing
    argTypes:
    - ForeignMemberProcessing
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: SetForeignMemberProcessing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetForeignMemberProcessing(ForeignMemberProcessing eForeignMemberProcessing)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: OGRGeoJSONReader::GetJSonObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_object
    signature: json_object *GetJSonObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: OGRGeoJSONReader::GetFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: OGRGeoJSONReader::CanEasilyAppend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanEasilyAppend() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: OGRGeoJSONReader::FCHasBBOX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FCHasBBOX() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: OGRESRIJSONReader::GetJSonObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: json_object
    signature: json_object *GetJSonObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAdvertizeUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:56,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:57,1
    - Dst: OGRGeoJSONDataSource*::IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - pszName
    - poSRSIn
    - eGType
    - poDS
    - poReader
    argTypes:
    - char*
    - OGRSpatialReference*
    - OGRwkbGeometryType
    - OGRGeoJSONDataSource*
    - OGRGeoJSONReader*
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: OGRGeoJSONLayer::OGRGeoJSONLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 1
    functionsReached:
    - SetAdvertizeUTF8
    - SetUpdatable
    - OGRGeoJSONDataSource*::IsUpdatable
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONLayer::OGRGeoJSONLayer(const char *pszName,\n                                 OGRSpatialReference
      *poSRSIn,\n                                 OGRwkbGeometryType eGType,\n                                 OGRGeoJSONDataSource
      *poDS,\n                                 OGRGeoJSONReader *poReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::TerminateAppendSession
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: OGRGeoJSONLayer::~OGRGeoJSONLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::TerminateAppendSession
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::~OGRGeoJSONLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:82,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:86,1
    - Dst: VSIFFlushL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: OGRGeoJSONLayer::TerminateAppendSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFFlushL
    - VSIFPrintfL
    - GetFP
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::TerminateAppendSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: OGRGeoJSONLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *OGRGeoJSONLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFIDColumn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: OGRGeoJSONLayer::SetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::SetFIDColumn(const char *pszFIDColumn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::TerminateAppendSession
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:119,1
    - Dst: OGRGeoJSONLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:120,1
    - Dst: OGRMemLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: OGRGeoJSONLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONLayer::TerminateAppendSession
    - OGRGeoJSONLayer::ResetReading
    - OGRMemLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:136,1
    - Dst: OGRGeoJSONLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:140,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:144,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:145,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:147,1
    - Dst: OGRMemLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 164
    functionName: OGRGeoJSONLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONLayer::ResetReading
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    - OGRMemLayer::GetNextFeature
    - OGRGeoJSONLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:179,1
    - Dst: OGRMemLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: OGRGeoJSONLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::GetFeatureCount
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoJSONLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:195,1
    - Dst: OGRGeoJSONLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:197,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:199,1
    - Dst: OGRMemLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: OGRGeoJSONLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONLayer::GetFeature
    - OGRLayer::GetFeature
    - OGRMemLayer::GetFeature
    - IsUpdatable
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::TerminateAppendSession
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: OGRGeoJSONLayer::IngestAll
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::TerminateAppendSession
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONLayer::IngestAll()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:237,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:242,1
    - Dst: SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: OGRGeoJSONLayer::SetOrUpdateFeaturePreparation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - SetNextByIndex
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONLayer::SetOrUpdateFeaturePreparation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::SetOrUpdateFeaturePreparation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:255,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: OGRGeoJSONLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::SetOrUpdateFeaturePreparation
    - OGRMemLayer::ISetFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::SetOrUpdateFeaturePreparation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:271,1
    - Dst: OGRMemLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: OGRGeoJSONLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::IUpdateFeature
    - OGRGeoJSONLayer::SetOrUpdateFeaturePreparation
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONLayer::IUpdateFeature(OGRFeature *poFeature,\n                                       int
      nUpdatedFieldsCount,\n                                       const int *panUpdatedFieldsIdx,\n
      \                                      int nUpdatedGeomFieldsCount,\n                                       const
      int *panUpdatedGeomFieldsIdx,\n                                       bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:284,1
    - Dst: CanEasilyAppend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:300,1
    - Dst: FCHasBBOX
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:301,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:301,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:302,1
    - Dst: GetFP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:305,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:309,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:310,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:312,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:314,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:318,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:318,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:329,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:329,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:339,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:339,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:351,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:354,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:356,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:361,1
    - Dst: OGRGeoJSONWriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:364,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:365,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:365,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:366,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:368,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:370,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:376,1
    - Dst: OGRMemLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:386,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 60
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 387
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 387
    functionName: OGRGeoJSONLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - IsUpdatable
    - FCHasBBOX
    - VSIFTellL
    - json_object_to_json_string
    - static_cast<unsigned char>
    - isspace
    - OGRMemLayer::ICreateFeature
    - OGRGeoJSONWriteFeature
    - GetLayerDefn
    - VSIFPrintfL
    - OGRFeature*::GetFID
    - VSIFSeekL
    - OGRGeoJSONLayer::IngestAll
    - VSIFReadL
    - CanEasilyAppend
    - empty
    - GetFP
    - json_object_put
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:395,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:395,1
    - Dst: OGRMemLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 398
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 398
    functionName: OGRGeoJSONLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::DeleteFeature
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:406,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:406,1
    - Dst: OGRMemLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: OGRGeoJSONLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::CreateField
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:417,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:417,1
    - Dst: OGRMemLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: OGRGeoJSONLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::DeleteField
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::DeleteField(int iField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:428,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:428,1
    - Dst: OGRMemLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: OGRGeoJSONLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::ReorderFields
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:440,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:440,1
    - Dst: OGRMemLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: OGRGeoJSONLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::AlterFieldDefn
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONLayer::AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                      int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:452,1
    - Dst: OGRGeoJSONLayer::IngestAll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:452,1
    - Dst: OGRMemLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - poGeomField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: OGRGeoJSONLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::CreateGeomField
    - IsUpdatable
    - OGRGeoJSONLayer::IngestAll
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONLayer::CreateGeomField(const OGRGeomFieldDefn *poGeomField,\n
      \                                       int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtentRead
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:465,1
    - Dst: OGRGeoJSONLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:466,1
    - Dst: GetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:468,1
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: OGRGeoJSONLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudTableLayer::IGetExtent
    - OGRGeoJSONLayer::TestCapability
    - ExtentRead
    - GetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                  bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtentRead
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:486,1
    - Dst: OGRGeoJSONLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:487,1
    - Dst: GetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:489,1
    - Dst: OGROpenFileGDBSimpleSQLLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: OGRGeoJSONLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::TestCapability
    - OGROpenFileGDBSimpleSQLLayer::IGetExtent3D
    - ExtentRead
    - GetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONLayer::IGetExtent3D(int iGeomField, OGREnvelope3D
      *psExtent3D,\n                                     bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:505,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:507,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:509,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:513,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:514,1
    - Dst: OGRMemLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 517
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 517
    functionName: OGRGeoJSONLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - OGRMemLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer::TerminateAppendSession
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:525,1
    - Dst: FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: OGRGeoJSONLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::TerminateAppendSession
    - FlushCache
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:537,1
    - Dst: OGRGeoJSONLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:543,1
    - Dst: OGRGeoJSONLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:545,1
    - Dst: OGRGeoJSONLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:554,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:558,1
    - Dst: OGRGeoJSONLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:567,1
    - Dst: OGRGeoJSONLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:568,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:575,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:577,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:578,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:581,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:582,1
    - Dst: OGRAPISpy_L_SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:582,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:583,1
    - Dst: SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 585
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 585
    functionName: OGRGeoJSONLayer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONLayer::GetFeature
    - OGRGeoJSONLayer::GetFeatureCount
    - SetUpdatable
    - OGRAPISpy_L_SetFeature
    - OGRFeature*::GetFID
    - CPL_INT64_FITS_ON_INT32
    - CPL_IGNORE_RET_VAL
    - CPLError
    - SetMetadataItem
    - SetUpdated
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::AddFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:593,1
    - Dst: OGRGeoJSONLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:596,1
    - Dst: GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:601,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:604,1
    - Dst: OGRGeoJSONUpdateLayerGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:605,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:614,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:615,1
    - Dst: auto::SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:616,1
    - Dst: OGRGeoJSONLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 620
    functionName: OGRGeoJSONLayer::DetectGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - OGRGeoJSONLayer::ResetReading
    - OGRGeoJSONUpdateLayerGeomType
    - auto::SetGeomType
    - GetGeometryRef
    - auto::GetTemporaryUnsealer
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONLayer::DetectGeometryType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 629
    functionName: OGRGeoJSONLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoJSONLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:50,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: OGRGeoJSONSeqDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: OGRGeoJSONSeqLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: OGRGeoJSONSeqLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: OGRGeoJSONSeqLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:148,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:150,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: OGRGeoJSONSeqDataSource::~OGRGeoJSONSeqDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - empty
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONSeqDataSource::~OGRGeoJSONSeqDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:162,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: OGRGeoJSONSeqDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONSeqDataSource::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGeoJSONSeqDataSource::GetLayer(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqDataSource::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:175,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:184,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:190,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:191,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:192,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:195,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:197,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:197,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:200,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:213,1
    - Dst: std::pow
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:223,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:223,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:228,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:229,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:230,1
    - Dst: auto::ConvertToOtherSRS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:232,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:238,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:240,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:241,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:248,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:250,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:251,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:256,1
    - Dst: std::make_unique<OGRGeoJSONSeqLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:256,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:257,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:257,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:259,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:260,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:263,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:265,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:267,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:270,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:273,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:275,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - pszNameIn
    - poSrcGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 281
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 281
    functionName: OGRGeoJSONSeqDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetAxisMappingStrategy
    - auto::SetCoordinatePrecision
    - CPLError
    - CPLStringList::List
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - auto::GetLayerDefn
    - std::move
    - std::unique_ptr::reset
    - emplace_back
    - CPLAtof
    - auto::ConvertToOtherSRS
    - std::pow
    - OGRGeoJSONSeqDataSource::TestCapability
    - CPLTestBool
    - std::make_unique<OGRGeoJSONSeqLayer>
    - CPLSPrintf
    - CPLStringList::SetNameValue
    - auto::GetGeomType
    - OGRCreateCoordinateTransformation
    - auto::GetCoordinatePrecision
    - auto::IsSame
    - OGRSpatialReference::OGRSpatialReference
    - back
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRGeoJSONSeqDataSource::ICreateLayer(\n    const char *pszNameIn,
      const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: OGRGeoJSONSeqDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONSeqDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:303,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:304,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:305,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:307,1
    - Dst: OGRSpatialReference*::SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:308,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:309,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:310,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:311,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - poDS
    - pszName
    argTypes:
    - OGRGeoJSONSeqDataSource*
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference*::SetWellKnownGeogCS
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRSpatialReference*::Release
    - Reference
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer(OGRGeoJSONSeqDataSource
      *poDS,\n                                       const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:331,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:332,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:333,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:334,1
    - Dst: OGRSpatialReference::GetWGS84SRS
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:335,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:336,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:339,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:339,1
    - Dst: SetRFC7946Settings
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:340,1
    - Dst: SetIDOptions
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:341,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:347,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:348,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:353,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:353,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:355,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:355,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:359,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:359,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:360,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:361,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:362,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - poDS
    - pszName
    - papszOptions
    - poCT
    argTypes:
    - OGRGeoJSONSeqDataSource*
    - char*
    - CSLConstList
    - std::unique_ptr<OGRCoordinateTransformation>
    constantsTouched: []
    func_position:
      end: 364
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 364
    functionName: OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - atoi
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - CSLFetchNameValueDef
    - SetRFC7946Settings
    - Reference
    - std::move
    - OGRSpatialReference::GetWGS84SRS
    - SetDescription
    - SetIDOptions
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer(\n    OGRGeoJSONSeqDataSource
      *poDS, const char *pszName,\n    CSLConstList papszOptions,\n    std::unique_ptr<OGRCoordinateTransformation>
      &&poCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: OGRGeoJSONSeqLayer::~OGRGeoJSONSeqLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONSeqLayer::~OGRGeoJSONSeqLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: OGRGeoJSONSeqLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONSeqLayer::Init
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRGeoJSONSeqLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:396,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:396,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:397,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:397,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:399,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:400,1
    - Dst: OGRGeoJSONSeqLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:408,1
    - Dst: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:412,1
    - Dst: OGRGeoJSONSeqLayer::GetNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:417,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:420,1
    - Dst: GenerateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:423,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:426,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:439,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:440,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:440,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:440,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:443,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:443,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:445,1
    - Dst: FinalizeLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:446,1
    - Dst: OGRGeoJSONSeqLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:449,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - bLooseIdentification
    - bEstablishLayerDefn
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 455
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 455
    functionName: OGRGeoJSONSeqLayer::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 1
    functionsReached:
    - FinalizeLayerDefn
    - OGRGeoJSONSeqLayer::ResetReading
    - gdal::DirectedAcyclicGraph::getTopologicalOrdering
    - GetDescription
    - VSIFSeekL
    - GenerateFeatureDefn
    - std::vector::size
    - get
    - json_object_put
    - CPLAssert
    - auto::size
    - VSIFTellL
    - AddFieldDefn
    - STARTS_WITH
    - gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    - OGRGeoJSONGetType
    - Seal
    - OGRGeoJSONSeqLayer::GetNextObject
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONSeqLayer::Init(bool bLooseIdentification,\n                              bool
      bEstablishLayerDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_apoLayers::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:464,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:470,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:478,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 483
    functionName: OGRGeoJSONSeqLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - m_apoLayers::size
    - resize
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONSeqLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:491,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:497,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:502,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:502,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:504,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:515,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:518,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:519,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:532,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:532,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:539,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:539,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:544,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:549,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:549,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:554,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:560,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:561,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:562,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:564,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:566,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:569,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:570,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:570,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:571,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:572,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:576,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 1
    argNames:
    - bLooseIdentification
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 583
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 583
    functionName: OGRGeoJSONSeqLayer::GetNextObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 1
    functionsReached:
    - size
    - back
    - pop_back
    - static_cast<unsigned>
    - empty
    - c_str
    - json_object_get_type
    - CPLDebug
    - json_object_put
    - VSIFTellL
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    - append
    - CPLError
    - OGRJSonParse
    - data
    - clear
    linkageType: ''
    returnType: json_object
    signature: json_object *OGRGeoJSONSeqLayer::GetNextObject(bool bLooseIdentification)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_apoLayers::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:595,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:597,1
    - Dst: OGRGeoJSONSeqLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:602,1
    - Dst: OGRGeoJSONSeqLayer::GetNextObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:605,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:609,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:612,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:613,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:614,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:619,1
    - Dst: ReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:625,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:625,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:626,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:631,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:632,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:635,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:637,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:641,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:641,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:642,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 648
    functionName: OGRGeoJSONSeqLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - m_apoLayers::size
    - c_str
    - GetSpatialRef
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    - json_object_put
    - OGRGeoJSONSeqLayer::GetLayerDefn
    - ReadGeometry
    - ReadFeature
    - CPLError
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRGeoJSONGetType
    - OGRFeature*::SetFID
    - OGRGeoJSONSeqLayer::GetNextObject
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONSeqLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:658,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: OGRGeoJSONSeqLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRGeoJSONSeqLayer::GetLayerDefn
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoJSONSeqLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:670,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:677,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:677,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 683
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 683
    functionName: OGRGeoJSONSeqLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONSeqLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:691,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:697,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:703,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:703,1
    - Dst: std::unique_ptr::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:704,1
    - Dst: std::unique_ptr::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:705,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:705,1
    - Dst: std::unique_ptr::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:706,1
    - Dst: OGRGeometryFactory::transformWithOptions
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:710,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:711,1
    - Dst: const_cast<char **>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:711,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:719,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:723,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:729,1
    - Dst: OGRGeoJSONWriteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:735,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:736,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:736,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:738,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:745,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:746,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:746,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:747,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:749,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:753,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 756
      start: 689
    functionDepth: 6
    functionLinenumber: 689
    functionLinenumberEnd: 756
    functionName: OGRGeoJSONSeqLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::unique_ptr::SetFID
    - OGRGeoJSONWriteFeature
    - strlen
    - std::unique_ptr::reset
    - const_cast<char **>
    - GetAccess
    - std::unique_ptr::SetGeometryDirectly
    - OGRFeature*::GetFID
    - VSIFSeekL
    - get
    - std::unique_ptr::GetGeometryRef
    - OGRGeometryFactory::transformWithOptions
    - CPLAssert
    - OGRFeature::OGRFeature
    - std::unique_ptr::get
    - OGRGeometry*::getEnvelope
    - json_object_put
    - VSIFWriteL
    - std::unique_ptr::SetFrom
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONSeqLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:765,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 769
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 769
    functionName: OGRGeoJSONSeqLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    - GetAccess
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoJSONSeqLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                      int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:778,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:783,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:785,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:792,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:793,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:798,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:799,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:807,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:808,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:809,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:810,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:810,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:811,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:822,1
    - Dst: GeoJSONSeqIsObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:823,1
    - Dst: OGRGeoJSONDriverStoreContent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:825,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:831,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:832,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:833,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:834,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:835,1
    - Dst: GeoJSONHTTPFetchWithContentTypeHeader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:841,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:847,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:848,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:848,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:852,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:859,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:860,1
    - Dst: OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:860,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:866,1
    - Dst: auto::Init
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:869,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:872,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:873,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:880,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:880,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 2
    argNames:
    - poOpenInfo
    - nSrcType
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 883
      start: 775
    functionDepth: 4
    functionLinenumber: 775
    functionLinenumberEnd: 883
    functionName: OGRGeoJSONSeqDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - OGRGeoJSONSeqLayer::OGRGeoJSONSeqLayer
    - CPLErrorReset
    - CPLStrdup
    - CPLString::c_str
    - CPLPopErrorHandler
    - swap
    - strlen
    - std::move
    - OGRGeoJSONDriverStoreContent
    - emplace_back
    - GeoJSONSeqIsObject
    - STARTS_WITH_CI
    - c_str
    - auto::Init
    - VSIFOpenL
    - CPLAssert
    - GeoJSONHTTPFetchWithContentTypeHeader
    - SetDescription
    - VSIFileFromMemBuffer
    - CPLGetBasenameSafe
    - EQUAL
    - CPLPushErrorHandler
    - CPLHTTPDestroyResult
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONSeqDataSource::Open(GDALOpenInfo *poOpenInfo,\n                                   GeoJSONSourceType
      nSrcType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:892,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:894,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:901,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:902,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:905,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:908,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:909,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:915,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 918
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 918
    functionName: OGRGeoJSONSeqDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenExL
    - EQUAL
    - CPLAssert
    - strcmp
    - VSIGetLastErrorMsg
    - CPLError
    - CPLGetExtensionSafe
    - VSIFileManager::GetHandler
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONSeqDataSource::Create(const char *pszName,\n                                     char
      ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeoJSONSeqGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:927,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:932,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - poOpenInfo
    - nSrcType
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 940
      start: 924
    functionDepth: 5
    functionLinenumber: 924
    functionLinenumberEnd: 940
    functionName: OGRGeoJSONSeqDriverIdentifyInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GeoJSONSeqGetSourceType
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONSeqDriverIdentifyInternal(GDALOpenInfo *poOpenInfo,\n
      \                                              GeoJSONSourceType &nSrcType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 950
      start: 946
    functionDepth: 6
    functionLinenumber: 946
    functionLinenumberEnd: 950
    functionName: OGRGeoJSONSeqDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONSeqDriverIdentifyInternal
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONSeqDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:959,1
    - Dst: OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:964,1
    - Dst: OGRGeoJSONSeqDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 6
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: OGRGeoJSONSeqDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource
    - OGRGeoJSONSeqDataSource*::Open
    - OGRGeoJSONSeqDriverIdentifyInternal
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoJSONSeqDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:984,1
    - Dst: OGRGeoJSONSeqDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 993
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 993
    functionName: OGRGeoJSONSeqDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONSeqDataSource::OGRGeoJSONSeqDataSource
    - OGRGeoJSONSeqDataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRGeoJSONSeqDriverCreate(const char *pszName, int
      /* nBands */,\n                          int /* nXSize */, int /* nYSize */,\n
      \                         GDALDataType /* eDT */, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1001,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1004,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1006,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1007,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1008,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1009,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1010,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1011,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1012,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1013,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1016,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1038,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1039,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1042,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1043,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1044,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1051
    functionName: RegisterOGRGeoJSONSeq
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonseqdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGeoJSONSeq()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: OGRESRIFeatureServiceLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: OGRESRIFeatureServiceDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: OGRESRIFeatureServiceDataset::GetUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRESRIFeatureServiceDataset::GetLayer
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: '&GetURL() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetURL() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: OGRESRIFeatureServiceDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRESRIFeatureServiceDataset::GetLayer(int nLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:128,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:129,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:129,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:130,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:130,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:131,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:132,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:134,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:135,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:135,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:137,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:138,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRESRIFeatureServiceDataset*
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: OGRESRIFeatureServiceLayer::OGRESRIFeatureServiceLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldDefn
    - AddGeomFieldDefn
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - GetUnderlyingLayer
    - SetDescription
    - OGRFeatureDefn*::GetName
    - GetName
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRESRIFeatureServiceLayer::OGRESRIFeatureServiceLayer(\n    OGRESRIFeatureServiceDataset
      *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: OGRESRIFeatureServiceLayer::~OGRESRIFeatureServiceLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRESRIFeatureServiceLayer::~OGRESRIFeatureServiceLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MyResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: OGRESRIFeatureServiceLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - MyResetReading
    linkageType: ''
    returnType: void
    signature: void OGRESRIFeatureServiceLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:176,1
    - Dst: LoadNextPage
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:182,1
    - Dst: GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:188,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:195,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:196,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:199,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:203,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:210,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:212,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:213,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:215,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:217,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:217,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:218,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:223,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:223,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 230
    functionName: OGRESRIFeatureServiceLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - Evaluate
    - FilterGeometry
    - CPLDebug
    - LoadNextPage
    - GetUnderlyingLayer
    - OGRFeature*::SetFrom
    - OGRFeature::OGRFeature
    - OGRFeature*::SetFID
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRESRIFeatureServiceLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:238,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:240,1
    - Dst: GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:246,1
    - Dst: auto::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: OGRESRIFeatureServiceLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - auto::TestCapability
    - GetUnderlyingLayer
    linkageType: ''
    returnType: int
    signature: int OGRESRIFeatureServiceLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:263,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:263,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:264,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:265,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:266,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:268,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:274,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:278,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:282,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 287
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 287
    functionName: OGRESRIFeatureServiceLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - GetURL
    - CPLErrorReset
    - CPLHTTPFetch
    - OGRLayer::GetFeatureCount
    - CPLAtoGIntBig
    - CPLGetLastErrorNo
    - strchr
    - CPLURLAddKVP
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRESRIFeatureServiceLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:299,1
    - Dst: GetURL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:299,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:300,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:301,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:302,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:303,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:305,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:311,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:316,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:318,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:319,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:320,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:321,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:324,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:328,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 332
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 332
    functionName: OGRESRIFeatureServiceLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - GetURL
    - CPLErrorReset
    - CPLHTTPFetch
    - CSLDestroy
    - CPLGetLastErrorNo
    - CPLURLAddKVP
    - strstr
    - CPLHTTPDestroyResult
    - CSLCount
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRESRIFeatureServiceLayer::IGetExtent(int iGeomField,\n                                              OGREnvelope
      *psExtent,\n                                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:341,1
    - Dst: std::make_unique<OGRESRIFeatureServiceLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:343,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:344,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:350,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:352,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:352,1
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:353,1
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:359,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:361,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:366,1
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:366,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:369,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - osURL
    - poFirst
    - nSrcType
    argTypes:
    - std::string
    - std::unique_ptr<OGRGeoJSONDataSource>
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 371
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 371
    functionName: OGRESRIFeatureServiceDataset::OGRESRIFeatureServiceDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLAtoGIntBig
    - CPLSPrintf
    - OGRESRIFeatureServiceDataset::GetLayer
    - CPLURLAddKVP
    - std::move
    - std::make_unique<OGRESRIFeatureServiceLayer>
    - CPLError
    - CPLURLGetValue
    linkageType: ''
    returnType: void
    signature: "void OGRESRIFeatureServiceDataset::OGRESRIFeatureServiceDataset(\n
      \   const std::string &osURL, std::unique_ptr<OGRGeoJSONDataSource> &&poFirst,\n
      \   GeoJSONSourceType nSrcType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRESRIFeatureServiceDataset::LoadPage
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:382,1
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: OGRESRIFeatureServiceDataset::MyResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRESRIFeatureServiceDataset::GetLayer
    - OGRESRIFeatureServiceDataset::LoadPage
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIFeatureServiceDataset::MyResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasOtherPages
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:402,1
    - Dst: OGRESRIFeatureServiceDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:408,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:412,1
    - Dst: OGRESRIFeatureServiceDataset::LoadPage
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 416
    functionName: OGRESRIFeatureServiceDataset::LoadNextPage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - OGRESRIFeatureServiceDataset::LoadPage
    - HasOtherPages
    - OGRESRIFeatureServiceDataset::GetLayer
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIFeatureServiceDataset::LoadNextPage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:424,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:425,1
    - Dst: std::make_unique<OGRGeoJSONDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:426,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:428,1
    - Dst: GetJSonFlavor
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:428,1
    - Dst: auto::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:429,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 435
    functionName: OGRESRIFeatureServiceDataset::LoadPage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 2
    functionsReached:
    - auto::GetLayerCount
    - auto::Open
    - GetJSonFlavor
    - CPLSPrintf
    - std::make_unique<OGRGeoJSONDataSource>
    - CPLURLAddKVP
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool OGRESRIFeatureServiceDataset::LoadPage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeoJSONGetSourceType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:449,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:454,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:462,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:464,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:475,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:476,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:477,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - poOpenInfo
    - nSrcType
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    constantsTouched: []
    func_position:
      end: 485
      start: 441
    functionDepth: 5
    functionLinenumber: 441
    functionLinenumberEnd: 485
    functionName: OGRGeoJSONDriverIdentifyInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - GeoJSONGetSourceType
    - GDALGetDriverByName
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - strstr
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: "int OGRGeoJSONDriverIdentifyInternal(GDALOpenInfo *poOpenInfo,\n                                            GeoJSONSourceType
      &nSrcType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: OGRGeoJSONDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONDriverIdentifyInternal
    linkageType: ''
    returnType: int
    signature: int OGRGeoJSONDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:504,1
    - Dst: OGRGeoJSONDriverOpenInternal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 6
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: OGRGeoJSONDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONDriverOpenInternal
    - OGRGeoJSONDriverIdentifyInternal
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoJSONDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRGeoJSONDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:519,1
    - Dst: auto::SetGeometryTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:529,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:531,1
    - Dst: auto::SetGeometryTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:533,1
    - Dst: auto::SetAttributesTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:537,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:538,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:539,1
    - Dst: auto::SetAttributesTranslation
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:541,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:547,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:549,1
    - Dst: auto::HasOtherPages
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:552,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:555,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:556,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:557,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:558,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:565,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:566,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:569,1
    - Dst: OGRESRIFeatureServiceDataset::OGRESRIFeatureServiceDataset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:568,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:574,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 3
    argNames:
    - poOpenInfo
    - nSrcType
    - pszJSonFlavor
    argTypes:
    - GDALOpenInfo*
    - GeoJSONSourceType
    - char*
    constantsTouched: []
    func_position:
      end: 575
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 575
    functionName: OGRGeoJSONDriverOpenInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 3
    functionsReached:
    - STARTS_WITH_CI
    - CPLTestBool
    - auto::release
    - OGRESRIFeatureServiceDataset::OGRESRIFeatureServiceDataset
    - auto::Open
    - auto::SetAttributesTranslation
    - std::make_unique<OGRGeoJSONDataSource>
    - auto::SetGeometryTranslation
    - std::move
    - strlen
    - STARTS_WITH
    - CPLGetConfigOption
    - auto::reset
    - auto::HasOtherPages
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGeoJSONDriverOpenInternal(GDALOpenInfo *poOpenInfo,\n
      \                                         GeoJSONSourceType nSrcType,\n                                          const
      char *pszJSonFlavor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONDataSource::OGRGeoJSONDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:587,1
    - Dst: OGRGeoJSONDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 596
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 596
    functionName: OGRGeoJSONDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONDataSource::OGRGeoJSONDataSource
    - OGRGeoJSONDataSource*::Create
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGeoJSONDriverCreate(const char *pszName,\n                                           int
      /* nBands */, int /* nXSize */,\n                                           int
      /* nYSize */,\n                                           GDALDataType /* eDT
      */,\n                                           char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:604,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 612
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 612
    functionName: OGRGeoJSONDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - CPLDebug
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGeoJSONDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:620,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:621,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:622,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:624,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:625,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pszSource
    - pszText
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: OGRGeoJSONDriverStoreContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 3
    functionsReached:
    - CPLAssert
    - CPLFree
    - CPLStrdup
    - CPLMutexHolderD
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDriverStoreContent(const char *pszSource, char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:636,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:637,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: OGRGeoJSONDriverStealStoredContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLFree
    - CPLMutexHolderD
    linkageType: ''
    returnType: char
    signature: char *OGRGeoJSONDriverStealStoredContent(const char *pszSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:655,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:657,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 661
    functionName: OGRGeoJSONDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONDriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:669,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:672,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:675,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:677,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:678,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:679,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:680,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:681,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:682,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:683,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:684,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:685,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:686,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:687,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:690,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:726,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:729,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:780,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:781,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:785,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:786,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:788,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:789,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:791,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:792,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:800,1
    - Dst: RegisterOGRTopoJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:803,1
    - Dst: RegisterOGRESRIJSON
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:804,1
    - Dst: RegisterOGRGeoJSONSeq
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 807
    functionName: RegisterOGRGeoJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp
    functionUses: 1
    functionsReached:
    - RegisterOGRGeoJSONSeq
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - RegisterOGRTopoJSON
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - RegisterOGRESRIJSON
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGeoJSON()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: OGRTopoJSONReader::OGRTopoJSONReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRTopoJSONReader::OGRTopoJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: OGRTopoJSONReader::~OGRTopoJSONReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRTopoJSONReader::~OGRTopoJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:52,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:57,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pszText
    - bLooseIdentification
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: OGRTopoJSONReader::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 1
    functionsReached:
    - CPLPopErrorHandler
    - CPLErrorReset
    - CPLPushErrorHandler
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRTopoJSONReader::Parse(const char *pszText, bool bLooseIdentification)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:87,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:88,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:90,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:91,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:93,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:94,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:96,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:97,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:99,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 3
    argNames:
    - poPoint
    - pdfX
    - pdfY
    argTypes:
    - json_object*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: ParsePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_double
    - json_object_array_length
    - json_object_get_type
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: bool ParsePoint(json_object *poPoint, double *pdfX, double *pdfY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:114,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:115,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:117,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:123,1
    - Dst: ParsePoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:126,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:142,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:144,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:149,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:151,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:151,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:158,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:158,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:162,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:162,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:164,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:164,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 5
    argNames:
    - poLS
    - poArcsDB
    - nArcID
    - bReverse
    - psParams
    argTypes:
    - OGRLineString*
    - json_object*
    - int
    - bool
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 169
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 169
    functionName: ParseArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - static_cast<int>
    - ParsePoint
    - json_object_get_type
    - OGRLineString*::setNumPoints
    - OGRLineString*::getNumPoints
    - OGRLineString*::setPoint
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void ParseArc(OGRLineString *poLS, json_object *poArcsDB, int nArcID,\n
      \                    bool bReverse, ScalingParams *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:178,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:180,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:183,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:185,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:194,1
    - Dst: ParseArc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - poLS
    - poRing
    - poArcsDB
    - psParams
    argTypes:
    - OGRLineString*
    - json_object*
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: ParseLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - json_object_array_length
    - static_cast<int>
    - json_object_get_type
    - ParseArc
    linkageType: ''
    returnType: void
    signature: "void ParseLineString(OGRLineString *poLS, json_object *poRing,\n                            json_object
      *poArcsDB, ScalingParams *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:209,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:212,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:214,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:216,1
    - Dst: ParseLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:218,1
    - Dst: OGRLinearRing*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:220,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:221,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:223,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:224,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - poPoly
    - poArcsObj
    - poArcsDB
    - psParams
    argTypes:
    - OGRPolygon*
    - json_object*
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 232
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 232
    functionName: ParsePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRLinearRing*::getNumPoints
    - json_object_array_length
    - OGRLinearRing::OGRLinearRing
    - json_object_get_type
    - CPLDebug
    - ParseLineString
    - OGRLinearRing*::closeRings
    - OGRPolygon*::addRingDirectly
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void ParsePolygon(OGRPolygon *poPoly, json_object *poArcsObj,\n                         json_object
      *poArcsDB, ScalingParams *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:242,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:245,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:246,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:248,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:250,1
    - Dst: ParseLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - poMLS
    - poArcsObj
    - poArcsDB
    - psParams
    argTypes:
    - OGRMultiLineString*
    - json_object*
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 255
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 255
    functionName: ParseMultiLineString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - json_object_get_type
    - OGRMultiLineString*::addGeometryDirectly
    - ParseLineString
    - OGRLineString::OGRLineString
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void ParseMultiLineString(OGRMultiLineString *poMLS,\n                                 json_object
      *poArcsObj, json_object *poArcsDB,\n                                 ScalingParams
      *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:265,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:268,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:270,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:272,1
    - Dst: ParsePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:274,1
    - Dst: OGRPolygon*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:277,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - poMultiPoly
    - poArcsObj
    - poArcsDB
    - psParams
    argTypes:
    - OGRMultiPolygon*
    - json_object*
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 286
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 286
    functionName: ParseMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon*::IsEmpty
    - json_object_array_length
    - OGRMultiPolygon*::addGeometryDirectly
    - ParsePolygon
    - json_object_get_type
    - OGRPolygon::OGRPolygon
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void ParseMultiPolygon(OGRMultiPolygon *poMultiPoly,\n                              json_object
      *poArcsObj, json_object *poArcsDB,\n                              ScalingParams
      *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:296,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:297,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:301,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:303,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:304,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:304,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:307,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:313,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:319,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:321,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:322,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:324,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:328,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:328,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:330,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:332,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:334,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:343,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:349,1
    - Dst: ParsePoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:353,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:357,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:361,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:364,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:366,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:368,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:372,1
    - Dst: ParsePoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:375,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:379,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:379,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:383,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:385,1
    - Dst: ParseLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:387,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:389,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:391,1
    - Dst: ParseMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:393,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:395,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:397,1
    - Dst: ParsePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:399,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:401,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:403,1
    - Dst: ParseMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:405,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:409,1
    - Dst: OGRGeoJSONLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:410,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 5
    argNames:
    - pszId
    - poObj
    - poLayer
    - poArcsDB
    - psParams
    argTypes:
    - char*
    - json_object*
    - OGRGeoJSONLayer*
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 412
      start: 292
    functionDepth: 6
    functionLinenumber: 292
    functionLinenumberEnd: 412
    functionName: ParseObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - OGRGeoJSONLayer*::AddFeature
    - OGRMultiPoint*::addGeometryDirectly
    - strcmp
    - OGRGeoJSONLayer*::GetLayerDefn
    - ParseLineString
    - OGRPolygon::OGRPolygon
    - ParseMultiLineString
    - ParsePoint
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRFeature*::SetGeometryDirectly
    - json_object_array_get_idx
    - json_object_array_length
    - ParsePolygon
    - json_object_get_type
    - OGRMultiPolygon::OGRMultiPolygon
    - json_object_get_string
    - ParseMultiPolygon
    - OGRFeature::OGRFeature
    - OGRGeoJSONReaderSetField
    - OGRGeoJSONFindMemberByName
    - OGRFeature*::SetField
    linkageType: ''
    returnType: void
    signature: "void ParseObject(const char *pszId, json_object *poObj,\n                        OGRGeoJSONLayer
      *poLayer, json_object *poArcsDB,\n                        ScalingParams *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:426,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:428,1
    - Dst: std::vector<int>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:437,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:438,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:443,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:443,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - nPrevFieldIdx
    - anCurFieldIndices
    - oMapFieldNameToIdx
    - apoFieldDefn
    - dag
    - poObj
    - aoSetUndeterminedTypeFields
    argTypes:
    - int
    - std::vector<int>
    - std::map<std::string, int>
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - gdal::DirectedAcyclicGraph<int, std::string>
    - json_object*
    - std::set<int>
    constantsTouched: []
    func_position:
      end: 452
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 452
    functionName: EstablishLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 8
    functionsReached:
    - gdal::DirectedAcyclicGraph<int, std::string>::addEdge
    - GetNameRef
    - gdal::DirectedAcyclicGraph<int, std::string>::addNode
    - json_object_get_type
    - OGRGeoJSONReaderAddOrUpdateField
    - OGRGeoJSONFindMemberByName
    - std::vector<int>::clear
    linkageType: ''
    returnType: void
    signature: "void EstablishLayerDefn(int nPrevFieldIdx, std::vector<int> &anCurFieldIndices,\n
      \                  std::map<std::string, int> &oMapFieldNameToIdx,\n                   std::vector<std::unique_ptr<OGRFieldDefn>>
      &apoFieldDefn,\n                   gdal::DirectedAcyclicGraph<int, std::string>
      &dag,\n                   json_object *poObj,\n                   std::set<int>
      &aoSetUndeterminedTypeFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:470,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:472,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:474,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:477,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:480,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:482,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:487,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:489,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:490,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:492,1
    - Dst: OGRGeoJSONLayer::OGRGeoJSONLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:497,1
    - Dst: OGRGeoJSONLayer*::SetSupportsZGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:499,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:500,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:502,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:506,1
    - Dst: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:513,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:516,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:517,1
    - Dst: gdal::DirectedAcyclicGraph::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:519,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:526,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:528,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:530,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:538,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:539,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:539,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:539,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:541,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:544,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:544,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:553,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:555,1
    - Dst: ParseObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:557,1
    - Dst: OGRGeoJSONLayer*::DetectGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:562,1
    - Dst: OGRGeoJSONDataSource*::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:563,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:566,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:567,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:568,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:569,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:570,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:571,1
    - Dst: OGRGeoJSONLayer::OGRGeoJSONLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:575,1
    - Dst: SetSupportsZGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:578,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:580,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:580,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:584,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:585,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:587,1
    - Dst: EstablishLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:591,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 48
    argCount: 12
    argNames:
    - pszId
    - poObj
    - poSRS
    - poDS
    - ppoMainLayer
    - poArcs
    - psParams
    - anCurFieldIndices
    - oMapFieldNameToIdx
    - apoFieldDefn
    - dag
    - aoSetUndeterminedTypeFields
    argTypes:
    - char*
    - json_object*
    - OGRSpatialReference*
    - OGRGeoJSONDataSource*
    - OGRGeoJSONLayer**
    - json_object*
    - ScalingParams*
    - std::vector<int>
    - std::map<std::string, int>
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - gdal::DirectedAcyclicGraph<int, std::string>
    - std::set<int>
    constantsTouched: []
    func_position:
      end: 600
      start: 458
    functionDepth: 7
    functionLinenumber: 458
    functionLinenumberEnd: 600
    functionName: ParseObjectMain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::emplace_back
    - strcmp
    - OGRGeoJSONLayer*::GetLayerDefn
    - auto::size
    - std::make_unique<OGRFieldDefn>
    - OGRFeatureDefn*::AddFieldDefn
    - gdal::DirectedAcyclicGraph<int, std::string>::addNode
    - std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
    - EstablishLayerDefn
    - json_object_array_get_idx
    - GetLayerDefn
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - json_object_array_length
    - SetSupportsZGeometries
    - ParseObject
    - get
    - json_object_get_type
    - OGRGeoJSONLayer*::DetectGeometryType
    - OGRGeoJSONDataSource*::AddLayer
    - CPLAssert
    - gdal::DirectedAcyclicGraph::addNode
    - json_object_get_string
    - whileUnsealing
    - OGRGeoJSONLayer::OGRGeoJSONLayer
    - gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    - OGRGeoJSONFindMemberByName
    - OGRGeoJSONLayer*::SetSupportsZGeometries
    - gdal::DirectedAcyclicGraph::getTopologicalOrdering
    linkageType: ''
    returnType: bool
    signature: "bool ParseObjectMain(const char *pszId, json_object *poObj,\n                const
      OGRSpatialReference *poSRS, OGRGeoJSONDataSource *poDS,\n                OGRGeoJSONLayer
      **ppoMainLayer, json_object *poArcs,\n                ScalingParams *psParams,
      std::vector<int> &anCurFieldIndices,\n                std::map<std::string,
      int> &oMapFieldNameToIdx,\n                std::vector<std::unique_ptr<OGRFieldDefn>>
      &apoFieldDefn,\n                gdal::DirectedAcyclicGraph<int, std::string>
      &dag,\n                std::set<int> &aoSetUndeterminedTypeFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:611,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:613,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:615,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:618,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:619,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:620,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:621,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:622,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:623,1
    - Dst: ParseObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:625,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 5
    argNames:
    - pszId
    - poObj
    - ppoMainLayer
    - poArcs
    - psParams
    argTypes:
    - char*
    - json_object*
    - OGRGeoJSONLayer**
    - json_object*
    - ScalingParams*
    constantsTouched: []
    func_position:
      end: 629
      start: 606
    functionDepth: 7
    functionLinenumber: 606
    functionLinenumberEnd: 629
    functionName: ParseObjectMainSecondPass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - OGRGeoJSONFindMemberByName
    - json_object_get_type
    - ParseObject
    linkageType: ''
    returnType: void
    signature: "void ParseObjectMainSecondPass(const char *pszId, json_object *poObj,\n
      \                                     OGRGeoJSONLayer **ppoMainLayer,\n                                      json_object
      *poArcs,\n                                      ScalingParams *psParams)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:639,1
    - Dst: OGRGeoJSONDataSource*::SetSupportsZGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:644,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:653,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:655,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:658,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:660,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:661,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:663,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:664,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:666,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:667,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:669,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:670,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:672,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:673,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:679,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:681,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:682,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:685,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:687,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:689,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:690,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:692,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:693,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:695,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:696,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:702,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:703,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:708,1
    - Dst: OGRGeoJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:712,1
    - Dst: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:717,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:720,1
    - Dst: ParseObjectMain
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:730,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:737,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:738,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:739,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:739,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:739,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:740,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:743,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:743,1
    - Dst: ParseObjectMainSecondPass
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:752,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:757,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:759,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:763,1
    - Dst: ParseObjectMain
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:764,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:771,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:772,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:773,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:773,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:773,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:774,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:777,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:777,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:782,1
    - Dst: ParseObjectMainSecondPass
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:783,1
    - Dst: OGRGeoJSONLayer*::DetectGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:791,1
    - Dst: OGRGeoJSONDataSource*::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:792,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp:796,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 67
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRGeoJSONDataSource*
    constantsTouched: []
    func_position:
      end: 797
      start: 635
    functionDepth: 8
    functionLinenumber: 635
    functionLinenumberEnd: 797
    functionName: OGRTopoJSONReader::ReadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONDataSource*::SetSupportsZGeometries
    - std::vector::size
    - CPLDebug
    - OGRSpatialReference*::Release
    - OGRGeoJSONLayer*::GetLayerDefn
    - auto::size
    - ParseObjectMainSecondPass
    - OGRFeatureDefn*::AddFieldDefn
    - json_object_get_double
    - json_object_array_get_idx
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - json_object_array_length
    - get
    - json_object_get_type
    - OGRGeoJSONLayer*::DetectGeometryType
    - OGRGeoJSONDataSource*::AddLayer
    - CPLAssert
    - gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    - OGRGeoJSONFindMemberByName
    - OGRGeoJSONReadSpatialReference
    - ParseObjectMain
    - gdal::DirectedAcyclicGraph::getTopologicalOrdering
    linkageType: ''
    returnType: void
    signature: void OGRTopoJSONReader::ReadLayers(OGRGeoJSONDataSource *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: OGRGeoJSONReaderStreamingParser::GetOriginalIdModifiedEmitted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetOriginalIdModifiedEmitted() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: OGRGeoJSONReaderStreamingParser::SetOriginalIdModifiedEmitted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOriginalIdModifiedEmitted(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: OGRGeoJSONBaseReader::OGRGeoJSONBaseReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::OGRGeoJSONBaseReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bPreserve
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: OGRGeoJSONBaseReader::SetPreserveGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::SetPreserveGeometryType(bool bPreserve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bSkip
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: OGRGeoJSONBaseReader::SetSkipAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::SetSkipAttributes(bool bSkip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bFlatten
    - chSeparator
    argTypes:
    - bool
    - char
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: OGRGeoJSONBaseReader::SetFlattenNestedAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONBaseReader::SetFlattenNestedAttributes(bool bFlatten,\n
      \                                                     char chSeparator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bStoreNativeData
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: OGRGeoJSONBaseReader::SetStoreNativeData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::SetStoreNativeData(bool bStoreNativeData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bArrayAsString
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: OGRGeoJSONBaseReader::SetArrayAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::SetArrayAsString(bool bArrayAsString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bDateAsString
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: OGRGeoJSONBaseReader::SetDateAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONBaseReader::SetDateAsString(bool bDateAsString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: OGRGeoJSONReader::OGRGeoJSONReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReader::OGRGeoJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:158,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:162,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: OGRGeoJSONReader::~OGRGeoJSONReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - CPLFree
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReader::~OGRGeoJSONReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:182,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:188,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 199
    functionName: OGRGeoJSONReader::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRJSonParse
    - CPLDebug
    - json_object_put
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoJSONReader::Parse(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:209,1
    - Dst: OGRGeoJSONReader::ReadLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - OGRGeoJSONDataSource*
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: OGRGeoJSONReader::ReadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReader::ReadLayer
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReader::ReadLayers(OGRGeoJSONDataSource *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: OGRGeoJSONReaderStreamingParserGetMaxObjectSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t OGRGeoJSONReaderStreamingParserGetMaxObjectSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONReaderStreamingParserGetMaxObjectSize
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - oReader
    - poLayer
    - bFirstPass
    - bStoreNativeData
    argTypes:
    - OGRGeoJSONReader
    - OGRGeoJSONLayer*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: OGRGeoJSONReaderStreamingParser::OGRGeoJSONReaderStreamingParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReaderStreamingParserGetMaxObjectSize
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReaderStreamingParser::OGRGeoJSONReaderStreamingParser(\n
      \   OGRGeoJSONReader &oReader, OGRGeoJSONLayer *poLayer, bool bFirstPass,\n
      \   bool bStoreNativeData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: OGRGeoJSONReaderStreamingParser::~OGRGeoJSONReaderStreamingParser()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReaderStreamingParser::~OGRGeoJSONReaderStreamingParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:258,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: OGRGeoJSONReaderStreamingParser::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONReaderStreamingParser::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:280,1
    - Dst: IncFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:284,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:289,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:289,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:292,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:295,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:295,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:296,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:301,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:305,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:313,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:313,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:314,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:319,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:320,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - poObj
    - bFirstPass
    - osJson
    argTypes:
    - json_object*
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 325
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 325
    functionName: OGRGeoJSONReaderStreamingParser::GotFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - size
    - OGRFeature*::GetFID
    - insert
    - GenerateFeatureDefn
    - cpl::contains
    - IncFeatureCount
    - push_back
    - CPLError
    - std::string::c_str
    - ReadFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReaderStreamingParser::GotFeature(json_object *poObj,\n
      \                                                bool bFirstPass,\n                                                 const
      std::string &osJson)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:333,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:334,1
    - Dst: getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:335,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:336,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:336,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:336,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:339,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:339,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:341,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:342,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 344
    functionName: OGRGeoJSONReaderStreamingParser::FinalizeLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetLayerDefn
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - OGRFeatureDefn*::AddFieldDefn
    - gdal::DirectedAcyclicGraph<int, std::string>
    - get
    - getTopologicalOrdering
    - CPLAssert
    - auto::size
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReaderStreamingParser::FinalizeLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:352,1
    - Dst: EmitException
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: OGRGeoJSONReaderStreamingParser::TooComplex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - EmitException
    - ExceptionOccurred
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReaderStreamingParser::TooComplex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:366,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:371,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:372,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:373,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:375,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:377,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:378,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:379,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:382,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:387,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:388,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:389,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:391,1
    - Dst: auto::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:393,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:394,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:395,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:398,1
    - Dst: OGRGeoJSONLayer*::SetWriteOptions
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - poRootObj
    - poLayer
    argTypes:
    - json_object*
    - OGRGeoJSONLayer*
    constantsTouched: []
    func_position:
      end: 404
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 404
    functionName: SetCoordinatePrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 8
    functionsReached:
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - OGRGeoJSONLayer*::SetWriteOptions
    - json_object_get_type
    - OGRGeoJSONLayer*::GetLayerDefn
    - auto::GetCoordinatePrecision
    - json_object_get_double
    - whileUnsealing
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void SetCoordinatePrecision(json_object *poRootObj,\n                                   OGRGeoJSONLayer
      *poLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:415,1
    - Dst: OGRGeoJSONDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:418,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:419,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:419,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:420,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:420,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:421,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:421,1
    - Dst: GetValidLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:425,1
    - Dst: OGRGeoJSONLayer::OGRGeoJSONLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:425,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:431,1
    - Dst: OGRGeoJSONDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:431,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:432,1
    - Dst: OGRGeoJSONDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:432,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:435,1
    - Dst: OGRGeoJSONDataSource*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:435,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:442,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:442,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:445,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:446,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:447,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:448,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:454,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:454,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:457,1
    - Dst: OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:469,1
    - Dst: OGRGeoJSONReaderStreamingParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:473,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:473,1
    - Dst: OGRGeoJSONReaderStreamingParser::ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:475,1
    - Dst: OGRGeoJSONLayer*::UnsetReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:478,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:488,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:492,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:494,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:495,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:501,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:502,1
    - Dst: OGRGeoJSONLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:506,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:508,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsTypeKnown
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:513,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:513,1
    - Dst: OGRGeoJSONLayer*::InvalidateFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:521,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsTypeKnown
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:523,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:523,1
    - Dst: OGRGeoJSONLayer*::UnsetReader
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:526,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:529,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:529,1
    - Dst: OGRGeoJSONReaderStreamingParser::FinalizeLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:539,1
    - Dst: FinalizeLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:542,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:543,1
    - Dst: OGRGeoJSONLayer*::SetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:544,1
    - Dst: OGRGeoJSONReaderStreamingParser::CanEasilyAppend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:546,1
    - Dst: OGRGeoJSONLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:547,1
    - Dst: OGRGeoJSONReaderStreamingParser::GetTotalOGRFeatureMemEstimate
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:548,1
    - Dst: OGRGeoJSONReaderStreamingParser::StealRootObject
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:550,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:553,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:557,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:558,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:561,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:561,1
    - Dst: OGRGeoJSONLayer*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:562,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:566,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:568,1
    - Dst: OGRGeoJSONLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:571,1
    - Dst: OGRGeoJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:574,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:575,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:579,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:580,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:581,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:583,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:584,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:586,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:590,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:591,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:594,1
    - Dst: SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:596,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:601,1
    - Dst: OGRGeoJSONLayer*::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:609,1
    - Dst: OGRGeoJSONDataSource*::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:616,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 104
    argCount: 3
    argNames:
    - poDS
    - fp
    - bTryStandardReading
    argTypes:
    - OGRGeoJSONDataSource*
    - VSILFILE*
    - bool
    constantsTouched: []
    func_position:
      end: 618
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 618
    functionName: OGRGeoJSONReader::FirstPassReadLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPLDebug
    - OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
    - OGRGeoJSONReaderStreamingParser::IsFeatureCollection
    - OGRSpatialReference*::Release
    - OGRGeoJSONLayer*::GetLayerDefn
    - VSIFTellL
    - SetCoordinatePrecision
    - static_cast<vsi_l_offset>
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - CPLString::empty
    - OGRGeoJSONReaderStreamingParser::CanEasilyAppend
    - CPL_json_object_object_get
    - static_cast<GIntBig>
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLErrorReset
    - OGRGeoJSONLayer*::InvalidateFeatureCount
    - CPLAtoGIntBig
    - OGR_GT_HasZ
    - strlen
    - OGRSpatialReference*::importFromEPSG
    - OGRGeoJSONReaderStreamingParser::Parse
    - CPLMalloc
    - OGRGeoJSONReaderStreamingParser::FinalizeLayerDefn
    - STARTS_WITH_CI
    - OGRGeoJSONDataSource*::GetDescription
    - reinterpret_cast<const char *>
    - OGRGeoJSONLayer*::SetDescription
    - GetValidLayerName
    - VSIFSeekL
    - json_object_get_type
    - OGRGeoJSONDataSource*::AddLayer
    - OGRGeoJSONReaderStreamingParser::StealRootObject
    - OGRGeoJSONReaderStreamingParser::GetTotalOGRFeatureMemEstimate
    - static_cast<GByte *>
    - CPLGetUsablePhysicalRAM
    - OGRGeoJSONLayer*::SetFIDColumn
    - json_object_get_string
    - whileUnsealing
    - OGRGeoJSONReaderStreamingParser::IsTypeKnown
    - OGRGeoJSONLayer*::SetMetadata
    - OGRSpatialReference::OGRSpatialReference
    - FinalizeLayerDefn
    - VSIStatL
    - OGRGeoJSONLayer::OGRGeoJSONLayer
    - CPLGetBasenameSafe
    - OGRGeoJSONLayer*::UnsetReader
    - OGRSpatialReference*::SetFromUserInput
    - OGRGeoJSONReadSpatialReference
    - OGRGeoJSONReaderStreamingParser::ExceptionOccurred
    - std::string::substr
    - OGRGeoJSONLayer*::GetFeatureCount
    - OGRGeoJSONLayer*::SetMetadataItem
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONReader::FirstPassReadLayer(OGRGeoJSONDataSource *poDS,\n
      \                                         VSILFILE *fp,\n                                          bool
      &bTryStandardReading)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:630,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:635,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:637,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:638,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:638,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - nRead
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 648
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 648
    functionName: OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - CPL_ARRAYSIZE
    - memcmp
    - strlen
    - CPLDebug
    linkageType: ''
    returnType: size_t
    signature: size_t OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper(size_t
      nRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:656,1
    - Dst: GetOriginalIdModifiedEmitted
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: OGRGeoJSONReader::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - GetOriginalIdModifiedEmitted
    linkageType: ''
    returnType: void
    signature: void OGRGeoJSONReader::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:670,1
    - Dst: OGRGeoJSONReaderStreamingParser::OGRGeoJSONReaderStreamingParser
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:673,1
    - Dst: SetOriginalIdModifiedEmitted
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:675,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:677,1
    - Dst: OGRGeoJSONReader::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:682,1
    - Dst: OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:694,1
    - Dst: OGRGeoJSONReader::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:698,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:699,1
    - Dst: ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:701,1
    - Dst: OGRGeoJSONReader::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:706,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRGeoJSONLayer*
    constantsTouched: []
    func_position:
      end: 715
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 715
    functionName: OGRGeoJSONReader::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - SetOriginalIdModifiedEmitted
    - reinterpret_cast<const char *>
    - VSIFSeekL
    - ExceptionOccurred
    - OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
    - CPLAssert
    - OGRGeoJSONReader::Parse
    - OGRGeoJSONReader::GetNextFeature
    - OGRGeoJSONReaderStreamingParser::OGRGeoJSONReaderStreamingParser
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONReader::GetNextFeature(OGRGeoJSONLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:723,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:725,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:727,1
    - Dst: GetOriginalIdModifiedEmitted
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:732,1
    - Dst: OGRGeoJSONReaderStreamingParser::SetOriginalIdModifiedEmitted
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:738,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:739,1
    - Dst: OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:752,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:756,1
    - Dst: OGRGeoJSONReaderStreamingParser::ResetFeatureDetectionState
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:759,1
    - Dst: OGRGeoJSONReaderStreamingParser::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:760,1
    - Dst: OGRGeoJSONReaderStreamingParser::ExceptionOccurred
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:762,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsStartFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:766,1
    - Dst: OGRGeoJSONReaderStreamingParser::IsEndFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:770,1
    - Dst: OGRGeoJSONReaderStreamingParser::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:774,1
    - Dst: auto::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:777,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:778,1
    - Dst: std::pair<vsi_l_offset, vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:781,1
    - Dst: OGRGeoJSONReaderStreamingParser::GetOriginalIdModifiedEmitted
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:794,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:797,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:798,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:803,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:814,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:816,1
    - Dst: OGRJSonParse
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:821,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:823,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:827,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:828,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:829,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:834,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - poLayer
    - nFID
    argTypes:
    - OGRGeoJSONLayer*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 836
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 836
    functionName: OGRGeoJSONReader::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReaderStreamingParser::GetOriginalIdModifiedEmitted
    - std::pair<vsi_l_offset, vsi_l_offset>
    - CPLDebug
    - OGRGeoJSONReader::SkipPrologEpilogAndUpdateJSonPLikeWrapper
    - OGRGeoJSONReaderStreamingParser::SetOriginalIdModifiedEmitted
    - OGRGeoJSONReaderStreamingParser::IsEndFeature
    - cpl::contains
    - ReadFeature
    - end
    - find
    - OGRGeoJSONReaderStreamingParser::Parse
    - OGRJSonParse
    - GetOriginalIdModifiedEmitted
    - reinterpret_cast<const char *>
    - auto::GetFID
    - OGRGeoJSONReaderStreamingParser::IsStartFeature
    - VSIFSeekL
    - CPLAssert
    - VSIFReadL
    - OGRGeoJSONReaderStreamingParser::GetNextFeature
    - empty
    - json_object_put
    - VSIFree
    - OGRGeoJSONReaderStreamingParser::ExceptionOccurred
    - OGRGeoJSONReaderStreamingParser::ResetFeatureDetectionState
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoJSONReader::GetFeature(OGRGeoJSONLayer *poLayer,
      GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:845,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:848,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:855,1
    - Dst: OGRGeoJSONReader::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:859,1
    - Dst: OGRGeoJSONReader::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:863,1
    - Dst: OGRGeoJSONLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:866,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:872,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRGeoJSONLayer*
    constantsTouched: []
    func_position:
      end: 877
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 877
    functionName: OGRGeoJSONReader::IngestAll
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReader::ResetReading
    - CPLError
    - OGRGeoJSONLayer*::AddFeature
    - CPLDebug
    - CPLGetUsablePhysicalRAM
    - static_cast<vsi_l_offset>
    - OGRGeoJSONReader::GetNextFeature
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONReader::IngestAll(OGRGeoJSONLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:886,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:892,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:900,1
    - Dst: OGRGeoJSONReader::ReadLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:902,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:912,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:924,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:926,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:928,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:938,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:939,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:941,1
    - Dst: GetValidLayerName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:945,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:945,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:948,1
    - Dst: OGRGeoJSONLayer::OGRGeoJSONLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:947,1
    - Dst: OGRGeoJSONReadSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:951,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:956,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:960,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:961,1
    - Dst: OGRGeoJSONReader::GenerateLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:964,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:966,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:970,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:977,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:979,1
    - Dst: OGRGeoJSONLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:981,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:982,1
    - Dst: SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:985,1
    - Dst: ReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1000,1
    - Dst: OGRGeoJSONLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1000,1
    - Dst: OGRGeoJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1001,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1003,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1005,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1014,1
    - Dst: OGRGeoJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1015,1
    - Dst: OGRGeoJSONReader::ReadFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1022,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1024,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1025,1
    - Dst: OGRGeoJSONLayer*::DetectGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1028,1
    - Dst: OGRGeoJSONLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1030,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1032,1
    - Dst: OGRGeoJSONLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1032,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1033,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1035,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1036,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1038,1
    - Dst: OGRGeoJSONDataSource*::AddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1040,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 3
    argNames:
    - poDS
    - pszName
    - poObj
    argTypes:
    - OGRGeoJSONDataSource*
    - char*
    - json_object*
    constantsTouched: []
    func_position:
      end: 1041
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 1041
    functionName: OGRGeoJSONReader::ReadLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 2
    functionsReached:
    - OGRGeoJSONLayer*::GetSpatialRef
    - CPLDebug
    - OGRGeoJSONReader::ReadFeatureCollection
    - OGRSpatialReference*::Release
    - OGRGeoJSONLayer*::GetLayerDefn
    - SetCoordinatePrecision
    - CPLError
    - std::string::c_str
    - ReadFeature
    - CPL_json_object_object_get
    - CPLErrorReset
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGR_GT_HasZ
    - OGRGeoJSONReader::GenerateLayerDefn
    - OGRGeoJSONReader::ReadLayer
    - OGRSpatialReference*::importFromEPSG
    - GetValidLayerName
    - OGRGeoJSONReader::AddFeature
    - json_object_get_type
    - OGRGeoJSONLayer*::DetectGeometryType
    - OGRGeoJSONDataSource*::AddLayer
    - ReadGeometry
    - json_object_get_string
    - whileUnsealing
    - OGRSpatialReference::OGRSpatialReference
    - OGRGeoJSONLayer::OGRGeoJSONLayer
    - OGRGeoJSONLayer*::GetGeomType
    - CPLGetBasenameSafe
    - strchr
    - OGRSpatialReference*::SetFromUserInput
    - OGRGeoJSONReadSpatialReference
    - CPLGetLastErrorType
    - OGRGeoJSONGetType
    - OGRGeoJSONLayer*::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReader::ReadLayer(OGRGeoJSONDataSource *poDS,\n                                 const
      char *pszName, json_object *poObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1050,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1051,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1051,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1052,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1052,1
    - Dst: gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1064,1
    - Dst: OGRGeoJSONGetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1066,1
    - Dst: GenerateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1069,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1075,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1077,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1079,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1083,1
    - Dst: GenerateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1084,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1087,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1094,1
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1105,1
    - Dst: gdal::DirectedAcyclicGraph::getTopologicalOrdering
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1106,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1107,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1107,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1107,1
    - Dst: OGRFeatureDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1109,1
    - Dst: OGRFeatureDefn*::AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1112,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1112,1
    - Dst: FinalizeLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1117,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1118,1
    - Dst: OGRGeoJSONLayer*::SetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - poLayer
    - poGJObject
    argTypes:
    - OGRGeoJSONLayer*
    - json_object*
    constantsTouched: []
    func_position:
      end: 1122
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1122
    functionName: OGRGeoJSONReader::GenerateLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - CPLDebug
    - OGRGeoJSONLayer*::GetLayerDefn
    - CPLError
    - auto::size
    - CPLString::empty
    - OGRFeatureDefn*::AddFieldDefn
    - GenerateFeatureDefn
    - json_object_array_get_idx
    - OGRFeatureDefn*::GetTemporaryUnsealer
    - json_object_array_length
    - get
    - json_object_get_type
    - CPLAssert
    - OGRGeoJSONLayer*::SetFIDColumn
    - FinalizeLayerDefn
    - gdal::DirectedAcyclicGraph::DirectedAcyclicGraph
    - OGRGeoJSONFindMemberByName
    - gdal::DirectedAcyclicGraph::getTopologicalOrdering
    - OGRGeoJSONGetType
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONReader::GenerateLayerDefn(OGRGeoJSONLayer *poLayer,\n
      \                                        json_object *poGJObject)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1134,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1135,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1136,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1138,1
    - Dst: OGRLayer*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1142,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1150,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1151,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1152,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - poLayer
    - osFIDColumn
    argTypes:
    - OGRLayer*
    - CPLString
    constantsTouched: []
    func_position:
      end: 1158
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1158
    functionName: OGRGeoJSONBaseReader::FinalizeLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - CPLString::clear
    - CPLAssert
    - OGRLayer*::SetMetadataItem
    - OGRFieldDefn*::GetType
    - OGRLayer*::GetLayerDefn
    - whileUnsealing
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONBaseReader::FinalizeLayerDefn(OGRLayer *poLayer,\n
      \                                            CPLString &osFIDColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1172,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1185,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1187,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1189,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1196,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1205,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1206,1
    - Dst: GeoJSONPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1210,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1211,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1212,1
    - Dst: auto::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1214,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1215,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1218,1
    - Dst: GeoJSONStringPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1219,1
    - Dst: auto::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1220,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1222,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1222,1
    - Dst: std::vector<int>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1224,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1227,1
    - Dst: std::vector<int>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1232,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1234,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1235,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1236,1
    - Dst: GeoJSONPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1239,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1242,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1244,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1245,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1246,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1249,1
    - Dst: GeoJSONStringPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1250,1
    - Dst: OGRFieldDefn*::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1251,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1253,1
    - Dst: std::set<int>::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1254,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1261,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1267,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1268,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1274,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1276,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1280,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1281,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1282,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1289,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1290,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1294,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1295,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1299,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1300,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1304,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1305,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1306,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1314,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1315,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1319,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1320,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1325,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1326,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1327,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1336,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1340,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1350,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1351,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1352,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1358,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1359,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1363,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1364,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1368,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1369,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1375,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1380,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1381,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1382,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1391,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1392,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1393,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1399,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1400,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1404,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1405,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1410,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1411,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1412,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1421,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1422,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1423,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1428,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1429,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1435,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1436,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1437,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1446,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1447,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1448,1
    - Dst: GeoJSONStringPropertyToFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1458,1
    - Dst: OGRFieldDefn*::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1459,1
    - Dst: OGRFieldDefn*::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1460,1
    - Dst: OGRFieldDefn*::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1463,1
    - Dst: OGRFieldDefn*::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1465,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1470,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1473,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1474,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1478,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1482,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1483,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1488,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1488,1
    - Dst: std::vector<int>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1493,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 210
    argCount: 10
    argNames:
    - retIndices
    - oMapFieldNameToIdx
    - apoFieldDefn
    - pszKey
    - poVal
    - bFlattenNestedAttributes
    - chNestedAttributeSeparator
    - bArrayAsString
    - bDateAsString
    - aoSetUndeterminedTypeFields
    argTypes:
    - std::vector<int>
    - std::map<std::string, int>
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - char*
    - json_object*
    - bool
    - char
    - bool
    - bool
    - std::set<int>
    constantsTouched: []
    func_position:
      end: 1495
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1495
    functionName: OGRGeoJSONReaderAddOrUpdateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 4
    functionsReached:
    - auto::SetType
    - OGRGeoJSONReaderAddOrUpdateField
    - auto::GetType
    - std::set<int>::insert
    - auto::SetTZFlag
    - OGRFieldDefn*::SetSubType
    - std::make_unique<OGRFieldDefn>
    - cpl::contains
    - std::map<std::string, int>::end
    - auto::SetSubType
    - std::move
    - OGRFieldDefn*::GetSubType
    - OGRFieldDefn*::SetTZFlag
    - std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
    - std::map<std::string, int>::find
    - GeoJSONPropertyToFieldType
    - get
    - json_object_get_type
    - OGRFieldDefn*::GetTZFlag
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - std::vector<int>::emplace_back
    - auto::SetWidth
    - OGRFieldDefn*::SetType
    - GeoJSONStringPropertyToFieldType
    - OGRFieldDefn*::SetWidth
    - std::set<int>::erase
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReaderAddOrUpdateField(\n    std::vector<int> &retIndices,\n
      \   std::map<std::string, int> &oMapFieldNameToIdx,\n    std::vector<std::unique_ptr<OGRFieldDefn>>
      &apoFieldDefn,\n    const char *pszKey, json_object *poVal, bool bFlattenNestedAttributes,\n
      \   char chNestedAttributeSeparator, bool bArrayAsString, bool bDateAsString,\n
      \   std::set<int> &aoSetUndeterminedTypeFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1509,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1512,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1513,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1515,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1522,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1537,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1540,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1545,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1547,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1548,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1553,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1554,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1558,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1568,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1570,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1572,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1573,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1574,1
    - Dst: SetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1579,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1586,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1590,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1592,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1595,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1597,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1598,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 9
    argNames:
    - poObj
    - poObjProps
    - nPrevFieldIdx
    - oMapFieldNameToIdx
    - apoFieldDefn
    - dag
    - bFeatureLevelIdAsFID
    - bFeatureLevelIdAsAttribute
    - bNeedFID64
    argTypes:
    - json_object*
    - json_object*
    - int
    - std::map<std::string, int>
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - gdal::DirectedAcyclicGraph<int, std::string>
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1604
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1604
    functionName: OGRGeoJSONGenerateFeatureDefnDealWithID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_get_int64
    - std::map<std::string, int>::find
    - CPL_INT64_FITS_ON_INT32
    - gdal::DirectedAcyclicGraph<int, std::string>::addNode
    - json_object_get_type
    - SetType
    - OGRGeoJSONFindMemberByName
    - GetType
    - std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
    - std::make_unique<OGRFieldDefn>
    - std::map<std::string, int>::end
    - CPL_json_object_object_get
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONGenerateFeatureDefnDealWithID(\n    json_object *poObj,
      json_object *poObjProps, int &nPrevFieldIdx,\n    std::map<std::string, int>
      &oMapFieldNameToIdx,\n    std::vector<std::unique_ptr<OGRFieldDefn>> &apoFieldDefn,\n
      \   gdal::DirectedAcyclicGraph<int, std::string> &dag,\n    bool &bFeatureLevelIdAsFID,
      bool &bFeatureLevelIdAsAttribute,\n    bool &bNeedFID64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberEntryByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1619,1
    - Dst: const_cast<json_object *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1621,1
    - Dst: static_cast<const json_object *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1621,1
    - Dst: OGRGeoJSONGenerateFeatureDefnDealWithID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1627,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1631,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1632,1
    - Dst: OGRGeoJSONGetOGRGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1634,1
    - Dst: OGRGeoJSONUpdateLayerGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1636,1
    - Dst: OGRGeoJSONGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1643,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1650,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1654,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1656,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1669,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1674,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1678,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1682,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1684,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1685,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1685,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1690,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1692,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1696,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1696,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1700,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1701,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1704,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1704,1
    - Dst: std::map<std::string, int>::erase
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1705,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::removeNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1706,1
    - Dst: OGRGeoJSONBaseReader::GenerateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1710,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1717,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1718,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1724,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1724,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1727,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1736,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1750,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1751,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1757,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1759,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1765,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1767,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1768,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1771,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1782,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1783,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1786,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1794,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1795,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1796,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1797,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1798,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1800,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1801,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1808,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1808,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1811,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1823,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1824,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1830,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1838,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1839,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1840,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1841,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1841,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1843,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1845,1
    - Dst: OGRGeoJSONReaderAddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1846,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addNode
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1853,1
    - Dst: GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1853,1
    - Dst: gdal::DirectedAcyclicGraph<int, std::string>::addEdge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1856,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 119
    argCount: 5
    argNames:
    - oMapFieldNameToIdx
    - apoFieldDefn
    - dag
    - poLayer
    - poObj
    argTypes:
    - std::map<std::string, int>
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - gdal::DirectedAcyclicGraph<int, std::string>
    - OGRLayer*
    - json_object*
    constantsTouched: []
    func_position:
      end: 1871
      start: 1609
    functionDepth: 4
    functionLinenumber: 1609
    functionLinenumberEnd: 1871
    functionName: OGRGeoJSONBaseReader::GenerateFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - const_cast<json_object *>
    - std::map<std::string, int>::erase
    - OGRGeoJSONReaderAddOrUpdateField
    - OGRGeoJSONBaseReader::GenerateFeatureDefn
    - OGRGeoJSONGetOGRGeometryType
    - strcmp
    - std::vector::clear
    - CPLGetConfigOption
    - cpl::contains
    - std::map<std::string, int>::end
    - CPL_json_object_object_get
    - OGRGeoJSONGenerateFeatureDefnDealWithID
    - json_object_object_foreachC
    - GetNameRef
    - gdal::DirectedAcyclicGraph<int, std::string>::addNode
    - std::map<std::string, int>::find
    - OGRGeoJSONGetExtent3D
    - CPLTestBool
    - json_object_array_length
    - gdal::DirectedAcyclicGraph<int, std::string>::addEdge
    - json_object_get_type
    - gdal::DirectedAcyclicGraph<int, std::string>::removeNode
    - json_object_get_string
    - std::vector<std::unique_ptr<OGRFieldDefn>>::erase
    - OGRGeoJSONUpdateLayerGeomType
    - static_cast<const json_object *>
    - std::vector<std::unique_ptr<OGRFieldDefn>>::begin
    - std::string
    - OGRGeoJSONFindMemberEntryByName
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONBaseReader::GenerateFeatureDefn(\n    std::map<std::string,
      int> &oMapFieldNameToIdx,\n    std::vector<std::unique_ptr<OGRFieldDefn>> &apoFieldDefn,\n
      \   gdal::DirectedAcyclicGraph<int, std::string> &dag, OGRLayer *poLayer,\n
      \   json_object *poObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1886,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1886,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1887,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1887,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1891,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1891,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1892,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1892,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1898,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - bFirstGeom
    - eGeomType
    - eLayerGeomType
    argTypes:
    - bool
    - OGRwkbGeometryType
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 1903
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1903
    functionName: OGRGeoJSONUpdateLayerGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 3
    functionsReached:
    - wkbFlatten
    - OGR_GT_HasZ
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONUpdateLayerGeomType(bool &bFirstGeom,\n                                   OGRwkbGeometryType
      eGeomType,\n                                   OGRwkbGeometryType &eLayerGeomType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1918,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1918,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1919,1
    - Dst: OGRGeoJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poLayer
    - poGeometry
    argTypes:
    - OGRGeoJSONLayer*
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1925
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 1925
    functionName: OGRGeoJSONReader::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 2
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRGeoJSONLayer*::GetLayerDefn
    - OGRFeature*::SetGeometryDirectly
    - OGRGeoJSONReader::AddFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONReader::AddFeature(OGRGeoJSONLayer *poLayer,\n                                  OGRGeometry
      *poGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONLayer*::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poLayer
    - poFeature
    argTypes:
    - OGRGeoJSONLayer*
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1941
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 1941
    functionName: OGRGeoJSONReader::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 2
    functionsReached:
    - OGRGeoJSONLayer*::AddFeature
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoJSONReader::AddFeature(OGRGeoJSONLayer *poLayer,\n                                  OGRFeature
      *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1950,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1962,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1964,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - poObj
    - poLayerSRS
    argTypes:
    - json_object*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1971
      start: 1947
    functionDepth: 3
    functionLinenumber: 1947
    functionLinenumberEnd: 1971
    functionName: OGRGeoJSONBaseReader::ReadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoJSONReadGeometry
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRGeoJSONBaseReader::ReadGeometry(json_object *poObj,\n
      \                                               OGRSpatialReference *poLayerSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1991,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1993,1
    - Dst: OGRGeoJSONReaderSetFieldNestedAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:1995,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - poLayer
    - poFeature
    - pszAttrPrefix
    - chSeparator
    - poVal
    argTypes:
    - OGRLayer*
    - OGRFeature*
    - char*
    - char
    - json_object*
    constantsTouched: []
    func_position:
      end: 2006
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 2006
    functionName: OGRGeoJSONReaderSetFieldNestedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONReaderSetField
    - OGRGeoJSONReaderSetFieldNestedAttribute
    - json_object_get_type
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReaderSetFieldNestedAttribute(OGRLayer *poLayer,\n
      \                                                   OGRFeature *poFeature,\n
      \                                                   const char *pszAttrPrefix,\n
      \                                                   char chSeparator,\n                                                    json_object
      *poVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2018,1
    - Dst: OGRGeoJSONReaderSetFieldNestedAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2020,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2028,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2029,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2030,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2034,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2038,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2038,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2041,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2041,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2041,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2042,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2042,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2046,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2046,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2049,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2049,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2049,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2050,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2051,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2051,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2055,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2055,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2062,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2066,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2067,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2069,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2069,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2070,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2074,1
    - Dst: json_object_get_int
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2074,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2082,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2084,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2084,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2087,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2088,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2088,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2090,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2090,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2091,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2095,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2096,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2096,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2104,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2109,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2110,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2112,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2112,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2113,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2118,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2118,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2126,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2132,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2136,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2139,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2140,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2144,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2144,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2149,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2149,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 7
    argNames:
    - poLayer
    - poFeature
    - nField
    - pszAttrPrefix
    - poVal
    - bFlattenNestedAttributes
    - chNestedAttributeSeparator
    argTypes:
    - OGRLayer*
    - OGRFeature*
    - int
    - char*
    - json_object*
    - bool
    - char
    constantsTouched: []
    func_position:
      end: 2151
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2151
    functionName: OGRGeoJSONReaderSetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 3
    functionsReached:
    - json_object_get_int64
    - OGRFeature*::SetFieldNull
    - OGRGeoJSONReaderSetFieldNestedAttribute
    - static_cast<GIntBig *>
    - static_cast<GIntBig>
    - CPLStrdup
    - json_object_get_double
    - CPLMalloc
    - OGRLayer*::GetFIDColumn
    - json_object_array_get_idx
    - json_object_array_length
    - static_cast<int>
    - OGRFieldDefn*::GetNameRef
    - json_object_get_type
    - OGRFieldDefn*::GetType
    - CPLAssert
    - json_object_get_string
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - CSLDestroy
    - EQUAL
    - OGRFeature*::SetField
    - json_object_get_int
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReaderSetField(OGRLayer *poLayer, OGRFeature *poFeature,\n
      \                             int nField, const char *pszAttrPrefix,\n                              json_object
      *poVal, bool bFlattenNestedAttributes,\n                              char chNestedAttributeSeparator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2161,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2163,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2164,1
    - Dst: OGRFeature*::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2168,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2170,1
    - Dst: OGRFeature*::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2171,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2177,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2179,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2181,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2185,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2187,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2188,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2188,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2190,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2192,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2194,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2194,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2197,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2199,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2214,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2216,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2220,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2238,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2239,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2245,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2247,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2253,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2256,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2266,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2269,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2270,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2274,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2276,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2284,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2284,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2285,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2286,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2287,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2292,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2294,1
    - Dst: OGRGeoJSONReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2298,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2318,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2319,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2321,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2331,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2334,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2334,1
    - Dst: json_object_get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2334,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2343,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2345,1
    - Dst: json_object_get_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2345,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2360,1
    - Dst: OGRGeoJSONBaseReader::ReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2376,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2376,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2379,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2388,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    argCount: 3
    argNames:
    - poLayer
    - poObj
    - pszSerializedObj
    argTypes:
    - OGRLayer*
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 2395
      start: 2157
    functionDepth: 4
    functionLinenumber: 2157
    functionLinenumberEnd: 2395
    functionName: OGRGeoJSONBaseReader::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached:
    - json_object_get_int64
    - OGRFeature*::SetFieldNull
    - CPLDebug
    - strcmp
    - std::string::c_str
    - CPL_json_object_object_get
    - static_cast<GIntBig>
    - json_object_to_json_string
    - json_object_object_foreachC
    - OGRFeature*::SetNativeMediaType
    - OGRLayer*::GetLayerDefn
    - OGRFeature*::SetGeometryDirectly
    - OGRLayer*::GetSpatialRef
    - json_object_get_type
    - CPLAssert
    - json_object_get_string
    - OGRFeature::OGRFeature
    - OGRFeature*::SetNativeData
    - OGRGeoJSONReaderSetField
    - OGRFeature*::IsFieldSet
    - EQUAL
    - OGRGeoJSONFindMemberByName
    - OGRFeature*::SetField
    - std::string
    - OGRGeoJSONBaseReader::ReadGeometry
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRGeoJSONBaseReader::ReadFeature(OGRLayer *poLayer,\n
      \                                             json_object *poObj,\n                                              const
      char *pszSerializedObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2404
    functionName: OGRGeoJSONBaseReader::ExtentRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONBaseReader::ExtentRead() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2406
    functionDepth: 0
    functionLinenumber: 2406
    functionLinenumberEnd: 2409
    functionName: OGRGeoJSONBaseReader::GetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGREnvelope3D
    signature: OGREnvelope3D OGRGeoJSONBaseReader::GetExtent3D() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2418,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2421,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2427,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2429,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2433,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2434,1
    - Dst: OGRGeoJSONReader::AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2435,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2449,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2449,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2453,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2457,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2458,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2459,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2461,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2463,1
    - Dst: OGRGeoJSONLayer*::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - poLayer
    - poObj
    argTypes:
    - OGRGeoJSONLayer*
    - json_object*
    constantsTouched: []
    func_position:
      end: 2478
      start: 2415
    functionDepth: 3
    functionLinenumber: 2415
    functionLinenumberEnd: 2478
    functionName: OGRGeoJSONReader::ReadFeatureCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoJSONLayer*::SetMetadata
    - json_object_array_length
    - json_object_to_json_string
    - OGRGeoJSONReader::AddFeature
    - CPLString::empty
    - json_object_get_type
    - json_object_new_string
    - json_object_put
    - strcmp
    - OGRGeoJSONFindMemberByName
    - CPLError
    - ReadFeature
    - json_object_array_get_idx
    linkageType: ''
    returnType: void
    signature: "void OGRGeoJSONReader::ReadFeatureCollection(OGRGeoJSONLayer *poLayer,\n
      \                                            json_object *poObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2497,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2499,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2510,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2512,1
    - Dst: fParseCoords
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2517,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2528,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2533,1
    - Dst: json_object_get_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2538,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2551,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2551,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2553,1
    - Dst: static_cast<OGREnvelope *>
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2555,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2560,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2581,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2584,1
    - Dst: fParseCoords
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2590,1
    - Dst: OGRGeoJSONFindMemberByName
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2596,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2601,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2608,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2612,1
    - Dst: fParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2615,1
    - Dst: fParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp:2624,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 2
    argNames:
    - poObj
    - poEnvelope
    argTypes:
    - json_object*
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 2625
      start: 2484
    functionDepth: 3
    functionLinenumber: 2484
    functionLinenumberEnd: 2625
    functionName: OGRGeoJSONGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_get_type
    - fParseCoords
    - fParseGeometry
    - static_cast<OGREnvelope *>
    - Merge
    - OGRGeoJSONFindMemberByName
    - json_object_get_double
    - std::isnan
    - json_object_array_get_idx
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoJSONGetExtent3D(json_object *poObj, OGREnvelope3D *poEnvelope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_list_new2
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - free_fn
    argTypes:
    - array_list_free_fn*
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: array_list_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - array_list_new2
    linkageType: ''
    returnType: struct array_list
    signature: struct array_list *array_list_new(array_list_free_fn *free_fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:48,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:54,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - free_fn
    - initial_size
    argTypes:
    - array_list_free_fn*
    - int
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: array_list_new2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 1
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: struct array_list
    signature: struct array_list *array_list_new2(array_list_free_fn *free_fn, int
      initial_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct array_list*::free_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:67,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:68,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - arr
    argTypes:
    - struct array_list*
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: array_list_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - struct array_list*::free_fn
    - free
    linkageType: ''
    returnType: void
    signature: void array_list_free(struct array_list *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - i
    argTypes:
    - struct array_list*
    - size_t
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: array_list_get_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *array_list_get_idx(struct array_list *arr, size_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - arr
    - max
    argTypes:
    - struct array_list*
    - size_t
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: array_list_expand_internal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int array_list_expand_internal(struct array_list *arr, size_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_list_expand_internal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:113,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - arr
    - empty_slots
    argTypes:
    - struct array_list*
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: array_list_shrink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - realloc
    - array_list_expand_internal
    linkageType: ''
    returnType: int
    signature: int array_list_shrink(struct array_list *arr, size_t empty_slots)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_list_expand_internal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:129,1
    - Dst: struct array_list*::free_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:132,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - arr
    - idx
    - data
    argTypes:
    - struct array_list*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: array_list_put_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - struct array_list*::free_fn
    - array_list_expand_internal
    - memset
    linkageType: ''
    returnType: int
    signature: int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_list_expand_internal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - arr
    - data
    argTypes:
    - struct array_list*
    - void*
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: array_list_add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - array_list_expand_internal
    linkageType: ''
    returnType: int
    signature: int array_list_add(struct array_list *arr, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - struct array_list*
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: array_list_sort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void array_list_sort(struct array_list *arr, int (*compar)(const void
      *, const void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - arr
    argTypes:
    - void**
    - struct array_list*
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: array_list_bsearch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: void
    signature: "void *array_list_bsearch(const void **key, struct array_list *arr,\n
      \                        int (*compar)(const void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - struct array_list*
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: array_list_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t array_list_length(struct array_list *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct array_list*::free_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:196,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - arr
    - idx
    - count
    argTypes:
    - struct array_list*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: array_list_del_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/arraylist.c
    functionUses: 0
    functionsReached:
    - struct array_list*::free_fn
    - memmove
    linkageType: ''
    returnType: int
    signature: int array_list_del_idx(struct array_list *arr, size_t idx, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:69,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: json_object_iter_begin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - JASSERT
    - json_object_get_object
    linkageType: ''
    returnType: struct json_object_iterator
    signature: struct json_object_iterator json_object_iter_begin(struct json_object
      *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:86,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:87,1
    - Dst: json_object_is_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: json_object_iter_end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - json_object_is_type
    - JASSERT
    linkageType: ''
    returnType: struct json_object_iterator
    signature: struct json_object_iterator json_object_iter_end(const struct json_object
      *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:99,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct json_object_iterator*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: json_object_iter_next
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - JASSERT
    linkageType: ''
    returnType: void
    signature: void json_object_iter_next(struct json_object_iterator *iter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:110,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct json_object_iterator*
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: json_object_iter_peek_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - JASSERT
    linkageType: ''
    returnType: char
    signature: char *json_object_iter_peek_name(const struct json_object_iterator
      *iter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:121,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:122,1
    - Dst: lh_entry_v
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct json_object_iterator*
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: json_object_iter_peek_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - JASSERT
    - lh_entry_v
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_iter_peek_value(const struct json_object_iterator
      *iter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:133,1
    - Dst: JASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - iter1
    - iter2
    argTypes:
    - struct json_object_iterator*
    - struct json_object_iterator*
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: json_object_iter_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached:
    - JASSERT
    linkageType: ''
    returnType: json_bool
    signature: "json_bool json_object_iter_equal(const struct json_object_iterator
      *iter1,\n                                 const struct json_object_iterator
      *iter2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: json_object_iter_init_default
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object_iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_iterator
    signature: struct json_object_iterator json_object_iter_init_default(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - debug
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: mc_set_debug
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mc_set_debug(int debug)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: mc_get_debug
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mc_get_debug(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - syslog
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: mc_set_syslog
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mc_set_syslog(int syslog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:55,1
    - Dst: vsyslog
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:59,1
    - Dst: vprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:63,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: mc_debug
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - vsyslog
    - va_start
    - vprintf
    linkageType: ''
    returnType: void
    signature: void mc_debug(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:71,1
    - Dst: vsyslog
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:75,1
    - Dst: vfprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:79,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: mc_error
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - vsyslog
    - va_start
    linkageType: ''
    returnType: void
    signature: void mc_error(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:86,1
    - Dst: vsyslog
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:90,1
    - Dst: vfprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:94,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: mc_info
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - vsyslog
    - va_start
    linkageType: ''
    returnType: void
    signature: void mc_info(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - h
    argTypes:
    - int[]
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: do_cpuid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_cpuid(int regs[], int h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_cpuid
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: has_rdrand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - do_cpuid
    linkageType: ''
    returnType: int
    signature: int has_rdrand(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: get_rdrand_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - DEBUG_SEED
    linkageType: ''
    returnType: int
    signature: int get_rdrand_seed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:141,1
    - Dst: _rdrand32_step
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: get_rdrand_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - _rdrand32_step
    - DEBUG_SEED
    linkageType: ''
    returnType: int
    signature: int get_rdrand_seed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: get_rdrand_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - DEBUG_SEED
    linkageType: ''
    returnType: int
    signature: int get_rdrand_seed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:181,1
    - Dst: getrandom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:187,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:197,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - seed
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 205
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 205
    functionName: get_getrandom_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - getrandom
    - strerror
    - fprintf
    - DEBUG_SEED
    linkageType: ''
    returnType: int
    signature: int get_getrandom_seed(int *seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:224,1
    - Dst: stat
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:227,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:236,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:236,1
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:242,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:246,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - seed
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: get_dev_random_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - close
    - strerror
    - fprintf
    - DEBUG_SEED
    - stat
    linkageType: ''
    returnType: int
    signature: int get_dev_random_seed(int *seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:278,1
    - Dst: CryptAcquireContextA
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:285,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:287,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:287,1
    - Dst: CryptGenRandom
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:292,1
    - Dst: CryptReleaseContext
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:293,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:296,1
    - Dst: GetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - seed
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 302
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 302
    functionName: get_cryptgenrandom_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContextA
    - CryptReleaseContext
    - fprintf
    - DEBUG_SEED
    - GetLastError
    - CryptGenRandom
    linkageType: ''
    returnType: int
    signature: int get_cryptgenrandom_seed(int *seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_SEED
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:315,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: get_time_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - time
    - DEBUG_SEED
    linkageType: ''
    returnType: int
    signature: int get_time_seed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_rdrand
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:329,1
    - Dst: get_rdrand_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:330,1
    - Dst: arc4random
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:334,1
    - Dst: get_getrandom_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:339,1
    - Dst: get_dev_random_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:346,1
    - Dst: get_cryptgenrandom_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:353,1
    - Dst: get_time_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: json_c_get_random_seed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/random_seed.c
    functionUses: 0
    functionsReached:
    - arc4random
    - has_rdrand
    - get_getrandom_seed
    - get_dev_random_seed
    - get_time_seed
    - get_cryptgenrandom_seed
    - get_rdrand_seed
    linkageType: ''
    returnType: int
    signature: int json_c_get_random_seed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:40,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:45,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: printbuf_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - calloc
    linkageType: ''
    returnType: struct printbuf
    signature: struct printbuf *printbuf_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:80,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - min_size
    argTypes:
    - struct printbuf*
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 89
    functionName: printbuf_extend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached:
    - realloc
    - MC_DEBUG
    linkageType: ''
    returnType: int
    signature: int printbuf_extend(struct printbuf *p, int min_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_extend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:98,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - buf
    - size
    argTypes:
    - struct printbuf*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: printbuf_memappend
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 3
    functionsReached:
    - memcpy
    - printbuf_extend
    linkageType: ''
    returnType: int
    signature: int printbuf_memappend(struct printbuf *p, const char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_extend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:119,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - pb
    - offset
    - charvalue
    - len
    argTypes:
    - struct printbuf*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: printbuf_memset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - printbuf_extend
    linkageType: ''
    returnType: int
    signature: int printbuf_memset(struct printbuf *pb, int offset, int charvalue,
      int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:138,1
    - Dst: CPLVASPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:139,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:140,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:144,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - msg
    argTypes:
    - struct printbuf*
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: sprintbuf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached:
    - va_start
    - printbuf_memappend
    - va_end
    - strcmp
    - CPLVASPrintf
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int sprintbuf(struct printbuf *p, const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct printbuf*
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: printbuf_reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printbuf_reset(struct printbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:166,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct printbuf*
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: printbuf_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/printbuf.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void printbuf_free(struct printbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _vscprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h:29,1
    - Dst: vsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h:34,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h:41,1
    - Dst: vsprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h:47,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 57
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 57
    functionName: vasprintf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/vasprintf_compat.h
    functionUses: 0
    functionsReached:
    - free
    - vsprintf
    - malloc
    - vsnprintf
    - _vscprintf
    linkageType: ''
    returnType: int
    signature: int vasprintf(char **buf, const char *fmt, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - jerr
    argTypes:
    - enum json_tokener_error
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: json_tokener_error_desc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *json_tokener_error_desc(enum json_tokener_error jerr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct json_tokener*
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: json_tokener_get_error
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum json_tokener_error
    signature: enum json_tokener_error json_tokener_get_error(struct json_tokener
      *tok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:129,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:132,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:135,1
    - Dst: printbuf_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:138,1
    - Dst: json_tokener_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: json_tokener_new_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached:
    - free
    - printbuf_new
    - calloc
    - json_tokener_reset
    linkageType: ''
    returnType: struct json_tokener
    signature: struct json_tokener *json_tokener_new_ex(int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_new_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: json_tokener_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached:
    - json_tokener_new_ex
    linkageType: ''
    returnType: struct json_tokener
    signature: struct json_tokener *json_tokener_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:151,1
    - Dst: printbuf_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:153,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:154,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct json_tokener*
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: json_tokener_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached:
    - free
    - json_tokener_reset
    - printbuf_free
    linkageType: ''
    returnType: void
    signature: void json_tokener_free(struct json_tokener *tok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:162,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - tok
    - depth
    argTypes:
    - struct json_tokener*
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: json_tokener_reset_level
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached:
    - free
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void json_tokener_reset_level(struct json_tokener *tok, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_reset_level
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct json_tokener*
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: json_tokener_reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 2
    functionsReached:
    - json_tokener_reset_level
    linkageType: ''
    returnType: void
    signature: void json_tokener_reset(struct json_tokener *tok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_parse_verbose
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: json_tokener_parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached:
    - json_tokener_parse_verbose
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_tokener_parse(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:193,1
    - Dst: json_tokener_parse_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:196,1
    - Dst: json_tokener_get_parse_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:205,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:205,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:211,1
    - Dst: json_tokener_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - char*
    - enum json_tokener_error*
    constantsTouched: []
    func_position:
      end: 217
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 217
    functionName: json_tokener_parse_verbose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached:
    - json_tokener_get_parse_end
    - json_tokener_parse_ex
    - json_tokener_free
    - json_object_put
    - strlen
    - json_tokener_new
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_tokener_parse_verbose(const char *str, enum
      json_tokener_error *error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uselocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:270,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:285,1
    - Dst: duplocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:293,1
    - Dst: newlocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:294,1
    - Dst: freelocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:297,1
    - Dst: uselocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:300,1
    - Dst: setlocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:305,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:307,1
    - Dst: setlocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:308,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:312,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:321,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:323,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:323,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:328,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:329,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:345,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:352,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:359,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:365,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:378,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:386,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:401,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:411,1
    - Dst: json_tokener_reset_level
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:412,1
    - Dst: tolower
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:435,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:442,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:443,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:453,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:457,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:469,1
    - Dst: json_min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:470,1
    - Dst: json_min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:471,1
    - Dst: strncasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:473,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:474,1
    - Dst: strncasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:485,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:486,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:490,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:521,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:530,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:530,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:532,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:537,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:548,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:548,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:550,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:555,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:556,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:562,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:565,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:582,1
    - Dst: json_object_new_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:585,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:594,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:600,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:600,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:602,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:616,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:625,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:627,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:629,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:631,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:633,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:652,1
    - Dst: jt_hexdigit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:658,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:663,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:664,1
    - Dst: IS_LOW_SURROGATE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:682,1
    - Dst: DECODE_SURROGATE_PAIR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:685,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:693,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:703,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:710,1
    - Dst: IS_HIGH_SURROGATE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:712,1
    - Dst: IS_LOW_SURROGATE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:733,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:736,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:744,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:753,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:758,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:773,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:792,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:807,1
    - Dst: json_min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:808,1
    - Dst: json_min
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:809,1
    - Dst: strncasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:811,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:812,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:816,1
    - Dst: strncasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:825,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:826,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:830,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:855,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:862,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:910,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:910,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:912,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:925,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:931,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:944,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:952,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:953,1
    - Dst: json_parse_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:962,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:964,1
    - Dst: json_parse_uint64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:969,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:980,1
    - Dst: json_object_new_uint64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:986,1
    - Dst: json_tokener_parse_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:992,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:993,1
    - Dst: json_object_new_double_s
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:995,1
    - Dst: json_object_array_shrink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1015,1
    - Dst: json_tokener_reset_level
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1035,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1041,1
    - Dst: json_object_array_shrink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1051,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1084,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1102,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1104,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1111,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1117,1
    - Dst: PEEK_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1117,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1119,1
    - Dst: json_tokener_reset_level
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1148,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1152,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1153,1
    - Dst: ADVANCE_CHAR
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1178,1
    - Dst: uselocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1203,1
    - Dst: freelocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1204,1
    - Dst: setlocale
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1206,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1207,1
    - Dst: json_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1212,1
    - Dst: json_tokener_reset_level
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1217,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1221,1
    CyclomaticComplexity: 267
    EdgeCount: 267
    ICount: 678
    argCount: 3
    argNames:
    - tok
    - str
    - len
    argTypes:
    - struct json_tokener*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1224
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 1224
    functionName: json_tokener_parse_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 2
    functionsReached:
    - setlocale
    - json_object_new_boolean
    - printbuf_reset
    - json_parse_int64
    - strncmp
    - MC_DEBUG
    - IS_LOW_SURROGATE
    - json_object_object_add
    - isspace
    - duplocale
    - DECODE_SURROGATE_PAIR
    - strncasecmp
    - json_object_get
    - tolower
    - json_object_new_int64
    - strlen
    - strdup
    - IS_HIGH_SURROGATE
    - json_object_new_string_len
    - free
    - json_object_new_uint64
    - json_object_new_array
    - json_parse_uint64
    - json_object_new_double_s
    - json_object_array_add
    - newlocale
    - json_object_new_double
    - printbuf_memappend_fast
    - json_object_new_object
    - ADVANCE_CHAR
    - PEEK_CHAR
    - json_min
    - json_tokener_reset_level
    - json_object_array_shrink
    - uselocale
    - strchr
    - freelocale
    - jt_hexdigit
    - json_tokener_parse_double
    - printbuf_length
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_tokener_parse_ex(struct json_tokener *tok,
      const char *str, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - c
    - nBytes
    argTypes:
    - char
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1250
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1250
    functionName: json_tokener_validate_utf8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_bool
    signature: json_bool json_tokener_validate_utf8(const char c, unsigned int *nBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tok
    - flags
    argTypes:
    - struct json_tokener*
    - int
    constantsTouched: []
    func_position:
      end: 1255
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1255
    functionName: json_tokener_set_flags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_tokener_set_flags(struct json_tokener *tok, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct json_tokener*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1261
    functionName: json_tokener_get_parse_end
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t json_tokener_get_parse_end(struct json_tokener *tok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c:1266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - len
    - retval
    argTypes:
    - char*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1270
    functionName: json_tokener_parse_double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_tokener.c
    functionUses: 1
    functionsReached:
    - CPLStrtod
    linkageType: ''
    returnType: int
    signature: int json_tokener_parse_double(const char *buf, int len, double *retval)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: JC_OBJECT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_object
    signature: struct json_object_object *JC_OBJECT(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: JC_OBJECT_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_object
    signature: struct json_object_object *JC_OBJECT_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: JC_ARRAY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_array
    signature: struct json_object_array *JC_ARRAY(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: JC_ARRAY_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_array
    signature: struct json_object_array *JC_ARRAY_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: JC_BOOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_boolean
    signature: struct json_object_boolean *JC_BOOL(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: JC_BOOL_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_boolean
    signature: struct json_object_boolean *JC_BOOL_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: JC_DOUBLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_double
    signature: struct json_object_double *JC_DOUBLE(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: JC_DOUBLE_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_double
    signature: struct json_object_double *JC_DOUBLE_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: JC_INT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_int
    signature: struct json_object_int *JC_INT(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: JC_INT_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_int
    signature: struct json_object_int *JC_INT_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: JC_STRING
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_string
    signature: struct json_object_string *JC_STRING(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: JC_STRING_C
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object_string
    signature: struct json_object_string *JC_STRING_C(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:175,1
    - Dst: lh_kptr_table_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: json_object_init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - lh_kptr_table_new
    - MC_DEBUG
    linkageType: ''
    returnType: void
    signature: void json_object_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MC_GET_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:183,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:187,1
    - Dst: lh_entry_v
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:191,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:192,1
    - Dst: json_type_to_name
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:192,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:196,1
    - Dst: lh_table_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: json_object_fini
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - MC_GET_DEBUG
    - json_type_to_name
    - MC_DEBUG
    - lh_entry_v
    - lh_table_free
    linkageType: ''
    returnType: void
    signature: void json_object_fini(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_STRING_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:205,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:208,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: get_string_component_mutable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_STRING
    - JC_STRING_C
    linkageType: ''
    returnType: char
    signature: char *get_string_component_mutable(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_string_component_mutable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: get_string_component
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - get_string_component_mutable
    linkageType: ''
    returnType: char
    signature: char *get_string_component(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:244,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:247,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:249,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:251,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:253,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:255,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:257,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:259,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:261,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:270,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:272,1
    - Dst: printbuf_memappend_fast
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:274,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:282,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - pb
    - str
    - len
    - flags
    argTypes:
    - struct printbuf*
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 284
    functionName: json_escape_str
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - printbuf_memappend_fast
    - snprintf
    - printbuf_memappend
    linkageType: ''
    returnType: int
    signature: int json_escape_str(struct printbuf *pb, const char *str, size_t len,
      int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:294,1
    - Dst: __sync_add_and_fetch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 303
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 303
    functionName: json_object_get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 7
    functionsReached:
    - assert
    - __sync_add_and_fetch
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_get(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:313,1
    - Dst: __sync_sub_and_fetch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:322,1
    - Dst: struct json_object*::_user_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:330,1
    - Dst: json_object_object_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:333,1
    - Dst: json_object_array_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:334,1
    - Dst: json_object_string_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:335,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:336,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 339
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 339
    functionName: json_object_put
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 110
    functionsReached:
    - json_object_array_delete
    - assert
    - json_object_string_delete
    - json_object_generic_delete
    - __sync_sub_and_fetch
    - struct json_object*::_user_delete
    - json_object_object_delete
    linkageType: ''
    returnType: int
    signature: int json_object_put(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:346,1
    - Dst: json_type_to_name
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:346,1
    - Dst: lh_table_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:347,1
    - Dst: printbuf_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:349,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: json_object_generic_delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - free
    - json_type_to_name
    - printbuf_free
    - lh_table_delete
    - MC_DEBUG
    linkageType: ''
    returnType: void
    signature: void json_object_generic_delete(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:358,1
    - Dst: lh_table_insert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:371,1
    - Dst: MC_DEBUG
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:372,1
    - Dst: json_type_to_name
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - o_type
    - alloc_size
    - to_json_string
    argTypes:
    - enum json_type
    - size_t
    - json_object_to_json_string_fn*
    constantsTouched: []
    func_position:
      end: 375
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 375
    functionName: json_object_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_type_to_name
    - lh_table_insert
    - malloc
    - MC_DEBUG
    linkageType: ''
    returnType: struct json_object
    signature: "struct json_object *json_object_new(enum json_type o_type, size_t
      alloc_size,\n                                                  json_object_to_json_string_fn
      *to_json_string)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - jso
    - type
    argTypes:
    - struct json_object*
    - enum json_type
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: json_object_is_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int json_object_is_type(const struct json_object *jso, enum json_type
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: json_object_get_type
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 113
    functionsReached: []
    linkageType: ''
    returnType: enum json_type
    signature: enum json_type json_object_get_type(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - json_object*
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: json_object_get_userdata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *json_object_get_userdata(json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:401,1
    - Dst: json_object*::_user_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - jso
    - userdata
    - user_delete
    argTypes:
    - json_object*
    - void*
    - json_object_delete_fn*
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 409
    functionName: json_object_set_userdata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object*::_user_delete
    - assert
    linkageType: ''
    returnType: void
    signature: void json_object_set_userdata(json_object *jso, void *userdata, json_object_delete_fn
      *user_delete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_userdata
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - jso
    - to_string_func
    - userdata
    - user_delete
    argTypes:
    - json_object*
    - json_object_to_json_string_fn*
    - void*
    - json_object_delete_fn*
    constantsTouched: []
    func_position:
      end: 445
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 445
    functionName: json_object_set_serializer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 3
    functionsReached:
    - json_object_set_userdata
    linkageType: ''
    returnType: void
    signature: "void json_object_set_serializer(json_object *jso, json_object_to_json_string_fn
      *to_string_func,\n                                void *userdata, json_object_delete_fn
      *user_delete)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:459,1
    - Dst: printbuf_reset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:461,1
    - Dst: struct json_object*::_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - jso
    - flags
    - length
    argTypes:
    - struct json_object*
    - int
    - size_t*
    constantsTouched: []
    func_position:
      end: 473
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 473
    functionName: json_object_to_json_string_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - printbuf_reset
    - printbuf_new
    - struct json_object*::_to_json_string
    linkageType: ''
    returnType: char
    signature: char *json_object_to_json_string_length(struct json_object *jso, int
      flags, size_t *length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_to_json_string_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jso
    - flags
    argTypes:
    - struct json_object*
    - int
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: json_object_to_json_string_ext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 7
    functionsReached:
    - json_object_to_json_string_length
    linkageType: ''
    returnType: char
    signature: char *json_object_to_json_string_ext(struct json_object *jso, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: json_object_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 21
    functionsReached:
    - json_object_to_json_string_ext
    linkageType: ''
    returnType: char
    signature: char *json_object_to_json_string(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_memset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:493,1
    - Dst: printbuf_memset
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pb
    - level
    - flags
    argTypes:
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 500
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 500
    functionName: indent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 5
    functionsReached:
    - printbuf_memset
    linkageType: ''
    returnType: void
    signature: void indent(struct printbuf *pb, int level, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:510,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:512,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:517,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:519,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:523,1
    - Dst: indent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:524,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:525,1
    - Dst: json_escape_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:526,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:526,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:528,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:530,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:532,1
    - Dst: struct json_object_iter::val::_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:533,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:539,1
    - Dst: indent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:540,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:543,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:545,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 546
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 546
    functionName: json_object_object_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - struct json_object_iter::val::_to_json_string
    - printbuf_strappend
    - indent
    - strlen
    - json_escape_str
    linkageType: ''
    returnType: int
    signature: "int json_object_object_to_json_string(struct json_object *jso, struct
      printbuf *pb,\n                                             int level, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:551,1
    - Dst: lh_entry_k
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:551,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:552,1
    - Dst: lh_entry_v
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct lh_entry*
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: json_object_lh_entry_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - lh_entry_k
    - free
    - lh_entry_v
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void json_object_lh_entry_free(struct lh_entry *ent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:557,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:557,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jso_base
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: json_object_object_delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - JC_OBJECT
    - json_object_generic_delete
    - lh_table_free
    linkageType: ''
    returnType: void
    signature: void json_object_object_delete(struct json_object *jso_base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:563,1
    - Dst: lh_kchar_table_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:567,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 575
    functionName: json_object_new_object
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 23
    functionsReached:
    - lh_kchar_table_new
    - json_object_generic_delete
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_object(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_OBJECT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: json_object_get_object
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 2
    functionsReached:
    - JC_OBJECT_C
    linkageType: ''
    returnType: struct lh_table
    signature: struct lh_table *json_object_get_object(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:595,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:595,1
    - Dst: lh_get_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:599,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:599,1
    - Dst: lh_table_lookup_entry_w_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:603,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:603,1
    - Dst: lh_table_insert_w_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:616,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:616,1
    - Dst: lh_entry_v
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:618,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - jso
    - key
    - val
    - opts
    argTypes:
    - struct json_object*
    - char*
    - struct json_object*
    - unsigned
    constantsTouched: []
    func_position:
      end: 623
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 623
    functionName: json_object_object_add_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - lh_table_insert_w_hash
    - lh_get_hash
    - assert
    - json_object_get_type
    - json_object_put
    - lh_entry_v
    - lh_table_lookup_entry_w_hash
    - JC_OBJECT
    linkageType: ''
    returnType: int
    signature: "int json_object_object_add_ex(struct json_object *jso, const char
      *const key,\n                              struct json_object *const val, const
      unsigned opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_add_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - jso
    - key
    - val
    argTypes:
    - struct json_object*
    - char*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: json_object_object_add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 25
    functionsReached:
    - json_object_object_add_ex
    linkageType: ''
    returnType: int
    signature: int json_object_object_add(struct json_object *jso, const char *key,
      struct json_object *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:632,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:632,1
    - Dst: lh_table_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:633,1
    - Dst: JC_OBJECT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: json_object_object_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 2
    functionsReached:
    - assert
    - json_object_get_type
    - lh_table_length
    - JC_OBJECT_C
    linkageType: ''
    returnType: int
    signature: int json_object_object_length(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: json_c_object_sizeof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t json_c_object_sizeof(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jso
    - key
    argTypes:
    - struct json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: json_object_object_get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 67
    functionsReached:
    - json_object_object_get_ex
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_object_get(const struct json_object
      *jso, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_lookup_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:660,1
    - Dst: JC_OBJECT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - jso
    - key
    - value
    argTypes:
    - struct json_object*
    - char*
    - struct json_object**
    constantsTouched: []
    func_position:
      end: 667
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 667
    functionName: json_object_object_get_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 3
    functionsReached:
    - lh_table_lookup_ex
    - JC_OBJECT_C
    linkageType: ''
    returnType: json_bool
    signature: "json_bool json_object_object_get_ex(const struct json_object *jso,
      const char *key,\n                                    struct json_object **value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:671,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:671,1
    - Dst: lh_table_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:672,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jso
    - key
    argTypes:
    - struct json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: json_object_object_del
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - JC_OBJECT
    - assert
    - json_object_get_type
    - lh_table_delete
    linkageType: ''
    returnType: void
    signature: void json_object_object_del(struct json_object *jso, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:682,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:683,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: json_object_boolean_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - printbuf_strappend
    - JC_BOOL
    linkageType: ''
    returnType: int
    signature: "int json_object_boolean_to_json_string(struct json_object *jso, struct
      printbuf *pb,\n                                              int level, int
      flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - json_bool
    constantsTouched: []
    func_position:
      end: 694
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 694
    functionName: json_object_new_boolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 5
    functionsReached:
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_boolean(json_bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_BOOL_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:702,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:704,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:706,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:707,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:708,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:710,1
    - Dst: JC_STRING_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 714
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 714
    functionName: json_object_get_boolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 4
    functionsReached:
    - json_abort
    - JC_INT_C
    - JC_BOOL_C
    - JC_STRING_C
    - JC_DOUBLE_C
    linkageType: ''
    returnType: json_bool
    signature: json_bool json_object_get_boolean(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - jso
    - new_value
    argTypes:
    - struct json_object*
    - json_bool
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: json_object_set_boolean
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_BOOL
    linkageType: ''
    returnType: int
    signature: int json_object_set_boolean(struct json_object *jso, json_bool new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:733,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:734,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:734,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:736,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:736,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:737,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 738
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 738
    functionName: json_object_int_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - strlen
    - snprintf
    - JC_INT
    - printbuf_memappend
    linkageType: ''
    returnType: int
    signature: "int json_object_int_to_json_string(struct json_object *jso, struct
      printbuf *pb, int level,\n                                          int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 743
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 743
    functionName: json_object_new_int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 3
    functionsReached:
    - json_object_new_int64
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_int(int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:757,1
    - Dst: json_parse_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:776,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:776,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:791,1
    - Dst: JC_BOOL_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:797,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 800
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 800
    functionName: json_object_get_int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 6
    functionsReached:
    - json_parse_int64
    - JC_INT_C
    - JC_BOOL_C
    - get_string_component
    - JC_DOUBLE_C
    linkageType: ''
    returnType: int32_t
    signature: int32_t json_object_get_int(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jso
    - new_value
    argTypes:
    - struct json_object*
    - int
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: json_object_set_int
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_set_int64
    linkageType: ''
    returnType: int
    signature: int json_object_set_int(struct json_object *jso, int new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 815
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 815
    functionName: json_object_new_int64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 10
    functionsReached:
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_int64(int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: json_object_new_uint64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_uint64(uint64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:837,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:845,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:851,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:853,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:855,1
    - Dst: JC_BOOL_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:856,1
    - Dst: json_parse_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:858,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 863
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 863
    functionName: json_object_get_int64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 20
    functionsReached:
    - json_abort
    - json_parse_int64
    - JC_INT_C
    - JC_BOOL_C
    - get_string_component
    - JC_DOUBLE_C
    linkageType: ''
    returnType: int64_t
    signature: int64_t json_object_get_int64(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:875,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:883,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:889,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:891,1
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:893,1
    - Dst: JC_BOOL_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:894,1
    - Dst: json_parse_uint64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:896,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 901
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 901
    functionName: json_object_get_uint64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_abort
    - json_parse_uint64
    - JC_INT_C
    - JC_BOOL_C
    - get_string_component
    - JC_DOUBLE_C
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t json_object_get_uint64(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:907,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - jso
    - new_value
    argTypes:
    - struct json_object*
    - int64_t
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: json_object_set_int64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - JC_INT
    linkageType: ''
    returnType: int
    signature: int json_object_set_int64(struct json_object *jso, int64_t new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:916,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - jso
    - new_value
    argTypes:
    - struct json_object*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: json_object_set_uint64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_INT
    linkageType: ''
    returnType: int
    signature: int json_object_set_uint64(struct json_object *jso, uint64_t new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:926,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:963,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - jso
    - val
    argTypes:
    - struct json_object*
    - int64_t
    constantsTouched: []
    func_position:
      end: 965
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 965
    functionName: json_object_int_inc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_INT
    - json_abort
    linkageType: ''
    returnType: int
    signature: int json_object_int_inc(struct json_object *jso, int64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:982,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:987,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:988,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:995,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:998,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1000,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - double_format
    - global_or_thread
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1011
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1011
    functionName: json_c_set_serialization_double_format
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - free
    - _json_c_set_last_err
    - strdup
    linkageType: ''
    returnType: int
    signature: int json_c_set_serialization_double_format(const char *double_format,
      int global_or_thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1017,1
    - Dst: isnan
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1025,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1027,1
    - Dst: isinf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1029,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1032,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1034,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1054,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1059,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1063,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1065,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1069,1
    - Dst: isdigit
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1070,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1073,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1078,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1104,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 48
    argCount: 5
    argNames:
    - jso
    - pb
    - level
    - flags
    - format
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1106
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1106
    functionName: json_object_double_to_json_string_format
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - isinf
    - isdigit
    - printbuf_memappend
    - JC_DOUBLE
    - strchr
    - strcat
    - isnan
    - snprintf
    - strstr
    linkageType: ''
    returnType: int
    signature: "int json_object_double_to_json_string_format(struct json_object *jso,
      struct printbuf *pb,\n                                                    int
      level, int flags, const char *format)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_double_to_json_string_format
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1112
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1112
    functionName: json_object_double_to_json_string_default
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_double_to_json_string_format
    linkageType: ''
    returnType: int
    signature: "int json_object_double_to_json_string_default(struct json_object *jso,
      struct printbuf *pb,\n                                                     int
      level, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_double_to_json_string_format
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1119
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1119
    functionName: json_object_double_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_double_to_json_string_format
    linkageType: ''
    returnType: int
    signature: "int json_object_double_to_json_string(struct json_object *jso, struct
      printbuf *pb, int level,\n                                      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1129
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1129
    functionName: json_object_new_double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 10
    functionsReached:
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_double(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1134,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1138,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1141,1
    - Dst: json_object_set_serializer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - d
    - ds
    argTypes:
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 1148
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1148
    functionName: json_object_new_double_s
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - json_object_set_serializer
    - json_object_generic_delete
    - strdup
    - json_object_new_double
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_double_s(double d, const char *ds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_userdata_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: _json_object_userdata_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_userdata_to_json_string
    linkageType: ''
    returnType: int
    signature: "int _json_object_userdata_to_json_string(struct json_object *jso,
      struct printbuf *pb,\n                                                int level,
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1169
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1169
    functionName: json_object_userdata_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - printbuf_memappend
    linkageType: ''
    returnType: int
    signature: "int json_object_userdata_to_json_string(struct json_object *jso, struct
      printbuf *pb, int level,\n                                        int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jso
    - userdata
    argTypes:
    - struct json_object*
    - void*
    constantsTouched: []
    func_position:
      end: 1175
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1175
    functionName: json_object_free_userdata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void json_object_free_userdata(struct json_object *jso, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_DOUBLE_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1186,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1188,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1190,1
    - Dst: JC_INT_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1191,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1192,1
    - Dst: JC_BOOL_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1194,1
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1197,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1197,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1177
    functionDepth: 3
    functionLinenumber: 1177
    functionLinenumberEnd: 1233
    functionName: json_object_get_double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 16
    functionsReached:
    - json_abort
    - CPLStrtod
    - JC_INT_C
    - JC_BOOL_C
    - get_string_component
    - JC_DOUBLE_C
    linkageType: ''
    returnType: double
    signature: double json_object_get_double(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1239,1
    - Dst: json_object_set_serializer
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - jso
    - new_value
    argTypes:
    - struct json_object*
    - double
    constantsTouched: []
    func_position:
      end: 1243
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1243
    functionName: json_object_set_double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_DOUBLE
    - json_object_set_serializer
    linkageType: ''
    returnType: int
    signature: int json_object_set_double(struct json_object *jso, double new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1252,1
    - Dst: json_escape_str
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1253,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1253,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1256
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1256
    functionName: json_object_string_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - get_string_component
    - printbuf_strappend
    - json_escape_str
    linkageType: ''
    returnType: int
    signature: "int json_object_string_to_json_string(struct json_object *jso, struct
      printbuf *pb,\n                                             int level, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1260,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1261,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1261,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1263
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1263
    functionName: json_object_string_delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - JC_STRING
    - free
    - json_object_generic_delete
    linkageType: ''
    returnType: void
    signature: void json_object_string_delete(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1291,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1299,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1303
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1303
    functionName: _json_object_new_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - memcpy
    - json_object_new
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *_json_object_new_string(const char *s, const size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1307,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1308
      start: 1305
    functionDepth: 3
    functionLinenumber: 1305
    functionLinenumberEnd: 1308
    functionName: json_object_new_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 25
    functionsReached:
    - _json_object_new_string
    - strlen
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_string(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1313
      start: 1310
    functionDepth: 3
    functionLinenumber: 1310
    functionLinenumberEnd: 1313
    functionName: json_object_new_string_len
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - _json_object_new_string
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_string_len(const char *s, const
      int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1321,1
    - Dst: json_object_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1324
      start: 1315
    functionDepth: 5
    functionLinenumber: 1315
    functionLinenumberEnd: 1324
    functionName: json_object_get_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 42
    functionsReached:
    - get_string_component
    - json_object_to_json_string
    linkageType: ''
    returnType: char
    signature: char *json_object_get_string(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_STRING_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1339
    functionName: json_object_get_string_len
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_STRING_C
    linkageType: ''
    returnType: int
    signature: int json_object_get_string_len(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_string_component_mutable
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1354,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1355,1
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1365,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1368,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1369,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1369,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1370,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1373,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1380,1
    - Dst: JC_STRING
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - jso
    - s
    - len
    argTypes:
    - json_object*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1384
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1384
    functionName: _json_object_set_string_len
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_STRING
    - free
    - get_string_component_mutable
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _json_object_set_string_len(json_object *jso, const char *s, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_object_set_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1388,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jso
    - s
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 1389
      start: 1386
    functionDepth: 3
    functionLinenumber: 1386
    functionLinenumberEnd: 1389
    functionName: json_object_set_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - _json_object_set_string_len
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_object_set_string(json_object *jso, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_object_set_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - jso
    - s
    - len
    argTypes:
    - json_object*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1394
      start: 1391
    functionDepth: 3
    functionLinenumber: 1391
    functionLinenumberEnd: 1394
    functionName: json_object_set_string_len
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 2
    functionsReached:
    - _json_object_set_string_len
    linkageType: ''
    returnType: int
    signature: int json_object_set_string_len(json_object *jso, const char *s, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1404,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1406,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1407,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1412,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1414,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1418,1
    - Dst: indent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1419,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1420,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1422,1
    - Dst: struct json_object*::_to_json_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1423,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1429,1
    - Dst: indent
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1430,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1434,1
    - Dst: printbuf_strappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - jso
    - pb
    - level
    - flags
    argTypes:
    - struct json_object*
    - struct printbuf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1436
      start: 1398
    functionDepth: 3
    functionLinenumber: 1398
    functionLinenumberEnd: 1436
    functionName: json_object_array_to_json_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - printbuf_strappend
    - struct json_object*::_to_json_string
    - indent
    - json_object_array_get_idx
    linkageType: ''
    returnType: int
    signature: "int json_object_array_to_json_string(struct json_object *jso, struct
      printbuf *pb, int level,\n                                            int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: json_object_array_entry_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_put
    linkageType: ''
    returnType: void
    signature: void json_object_array_entry_free(void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_list_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1445,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1445,1
    - Dst: json_object_generic_delete
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1447
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1447
    functionName: json_object_array_delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - json_object_generic_delete
    - JC_ARRAY
    - array_list_free
    linkageType: ''
    returnType: void
    signature: void json_object_array_delete(struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array_ext
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1452
    functionName: json_object_new_array
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 25
    functionsReached:
    - json_object_new_array_ext
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_array(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JSON_OBJECT_NEW
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1455,1
    - Dst: array_list_new2
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1458,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - initial_size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1465
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1465
    functionName: json_object_new_array_ext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - array_list_new2
    - free
    - JSON_OBJECT_NEW
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_array_ext(int initial_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_ARRAY_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1476
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1476
    functionName: json_object_get_array
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_ARRAY_C
    linkageType: ''
    returnType: struct array_list
    signature: struct array_list *json_object_get_array(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1480,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1480,1
    - Dst: array_list_sort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1481,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1482
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1482
    functionName: json_object_array_sort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - assert
    - json_object_get_type
    - JC_ARRAY
    - array_list_sort
    linkageType: ''
    returnType: void
    signature: void json_object_array_sort(struct json_object *jso, int (*sort_fn)(const
      void *, const void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1490,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1490,1
    - Dst: array_list_bsearch
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1491,1
    - Dst: JC_ARRAY_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - jso
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1497
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1497
    functionName: json_object_array_bsearch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - JC_ARRAY_C
    - assert
    - json_object_get_type
    - array_list_bsearch
    linkageType: ''
    returnType: struct json_object
    signature: "struct json_object *json_object_array_bsearch(const struct json_object
      *key,\n                                              const struct json_object
      *jso,\n                                              int (*sort_fn)(const void
      *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1501,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1501,1
    - Dst: array_list_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1502,1
    - Dst: JC_ARRAY_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jso
    argTypes:
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1503
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1503
    functionName: json_object_array_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 65
    functionsReached:
    - JC_ARRAY_C
    - assert
    - json_object_get_type
    - array_list_length
    linkageType: ''
    returnType: size_t
    signature: size_t json_object_array_length(const struct json_object *jso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1507,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1507,1
    - Dst: array_list_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1508,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jso
    - val
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1509
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1509
    functionName: json_object_array_add
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 26
    functionsReached:
    - assert
    - json_object_get_type
    - JC_ARRAY
    - array_list_add
    linkageType: ''
    returnType: int
    signature: int json_object_array_add(struct json_object *jso, struct json_object
      *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1513,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1513,1
    - Dst: array_list_put_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1514,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jso
    - idx
    - val
    argTypes:
    - struct json_object*
    - size_t
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    functionName: json_object_array_put_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - assert
    - json_object_get_type
    - array_list_put_idx
    - JC_ARRAY
    linkageType: ''
    returnType: int
    signature: int json_object_array_put_idx(struct json_object *jso, size_t idx,
      struct json_object *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1519,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1519,1
    - Dst: array_list_del_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1520,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jso
    - idx
    - count
    argTypes:
    - struct json_object*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1521
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1521
    functionName: json_object_array_del_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - array_list_del_idx
    - assert
    - json_object_get_type
    - JC_ARRAY
    linkageType: ''
    returnType: int
    signature: int json_object_array_del_idx(struct json_object *jso, size_t idx,
      size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1525,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1525,1
    - Dst: array_list_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1526,1
    - Dst: JC_ARRAY_C
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jso
    - idx
    argTypes:
    - struct json_object*
    - size_t
    constantsTouched: []
    func_position:
      end: 1527
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1527
    functionName: json_object_array_get_idx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 64
    functionsReached:
    - array_list_get_idx
    - assert
    - json_object_get_type
    - JC_ARRAY_C
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_array_get_idx(const struct json_object
      *jso, size_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1533,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1534,1
    - Dst: json_object_equal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1539,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1539,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - jso1
    - jso2
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1544
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1544
    functionName: json_array_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_equal
    - json_object_array_length
    - json_object_array_get_idx
    linkageType: ''
    returnType: int
    signature: int json_array_equal(struct json_object *jso1, struct json_object *jso2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1549,1
    - Dst: array_list_shrink
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1550,1
    - Dst: JC_ARRAY
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - jso
    - empty_slots
    argTypes:
    - struct json_object*
    - int
    constantsTouched: []
    func_position:
      end: 1551
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1551
    functionName: json_object_array_shrink
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - array_list_shrink
    - JC_ARRAY
    - json_abort
    linkageType: ''
    returnType: int
    signature: int json_object_array_shrink(struct json_object *jso, int empty_slots)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1556
    functionName: json_object_new_null
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_new_null(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1563,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1563,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1564,1
    - Dst: json_object_get_type
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1564,1
    - Dst: lh_table_lookup_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1568,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1568,1
    - Dst: json_object_equal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1571,1
    - Dst: lh_table_lookup_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1578,1
    - Dst: JC_OBJECT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - jso1
    - jso2
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1584
    functionName: json_object_all_values_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - assert
    - json_object_get_type
    - lh_table_lookup_ex
    - json_object_equal
    - JC_OBJECT
    linkageType: ''
    returnType: int
    signature: int json_object_all_values_equal(struct json_object *jso1, struct json_object
      *jso2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JC_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1599,1
    - Dst: JC_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1599,1
    - Dst: JC_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1601,1
    - Dst: JC_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1601,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1605,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1606,1
    - Dst: json_object_get_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1625,1
    - Dst: json_object_get_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1625,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1626,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1626,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1626,1
    - Dst: json_object_get_string_len
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1627,1
    - Dst: json_object_all_values_equal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1630,1
    - Dst: json_array_equal
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1632,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - jso1
    - jso2
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1638
      start: 1586
    functionDepth: 3
    functionLinenumber: 1586
    functionLinenumberEnd: 1638
    functionName: json_object_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 2
    functionsReached:
    - JC_BOOL
    - json_array_equal
    - JC_DOUBLE
    - memcmp
    - json_object_all_values_equal
    - get_string_component
    - json_object_get_string_len
    - JC_INT
    linkageType: ''
    returnType: int
    signature: int json_object_equal(struct json_object *jso1, struct json_object
      *jso2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1648,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1649,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1655,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct json_object*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1663
    functionName: json_object_copy_serializer_data
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - assert
    - _json_c_set_last_err
    - strdup
    - memcpy
    linkageType: ''
    returnType: int
    signature: int json_object_copy_serializer_data(struct json_object *src, struct
      json_object *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1681,1
    - Dst: JC_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1681,1
    - Dst: json_object_new_double
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1683,1
    - Dst: JC_DOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1683,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1686,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1689,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1689,1
    - Dst: json_object_new_uint64
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1692,1
    - Dst: JC_INT
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1692,1
    - Dst: json_abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1694,1
    - Dst: json_object_new_string
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1698,1
    - Dst: get_string_component
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1698,1
    - Dst: json_object_new_object
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1700,1
    - Dst: json_object_new_array
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1702,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - src
    - parent
    - key
    - index
    - dst
    argTypes:
    - json_object*
    - json_object*
    - char*
    - size_t
    - json_object**
    constantsTouched: []
    func_position:
      end: 1715
      start: 1673
    functionDepth: 4
    functionLinenumber: 1673
    functionLinenumberEnd: 1715
    functionName: json_c_shallow_copy_default
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_new_uint64
    - JC_BOOL
    - json_abort
    - json_object_new_boolean
    - json_object_new_array
    - JC_DOUBLE
    - json_object_new_string
    - json_object_new_int64
    - get_string_component
    - JC_INT
    - json_object_new_double
    linkageType: ''
    returnType: int
    signature: "int json_c_shallow_copy_default(json_object *src, json_object *parent,
      const char *key,\n                                size_t index, json_object
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shallow_copy
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1732,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1739,1
    - Dst: json_object_object_foreachC
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1744,1
    - Dst: json_object_deep_copy_recursive
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1750,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1753,1
    - Dst: json_object_object_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1757,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1759,1
    - Dst: json_object_array_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1766,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1770,1
    - Dst: json_object_deep_copy_recursive
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1774,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1777,1
    - Dst: json_object_array_add
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1781,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1783,1
    - Dst: json_object_copy_serializer_data
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1795,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 6
    argNames:
    - src
    - parent
    - key_in_parent
    - index_in_parent
    - dst
    - shallow_copy
    argTypes:
    - struct json_object*
    - struct json_object*
    - char*
    - size_t
    - struct json_object**
    - json_c_shallow_copy_fn*
    constantsTouched: []
    func_position:
      end: 1798
      start: 1723
    functionDepth: 4
    functionLinenumber: 1723
    functionLinenumberEnd: 1798
    functionName: json_object_deep_copy_recursive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 1
    functionsReached:
    - json_object_array_length
    - json_object_copy_serializer_data
    - json_object_object_foreachC
    - assert
    - json_object_put
    - shallow_copy
    - json_object_array_add
    - json_object_deep_copy_recursive
    - json_object_object_add
    - json_object_array_get_idx
    linkageType: ''
    returnType: int
    signature: "int json_object_deep_copy_recursive(struct json_object *src, struct
      json_object *parent,\n                                           const char
      *key_in_parent, size_t index_in_parent,\n                                           struct
      json_object **dst,\n                                           json_c_shallow_copy_fn
      *shallow_copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_deep_copy_recursive
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1815,1
    - Dst: json_object_put
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - src
    - dst
    - shallow_copy
    argTypes:
    - struct json_object*
    - struct json_object**
    - json_c_shallow_copy_fn*
    constantsTouched: []
    func_position:
      end: 1823
      start: 1800
    functionDepth: 5
    functionLinenumber: 1800
    functionLinenumberEnd: 1823
    functionName: json_object_deep_copy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 0
    functionsReached:
    - json_object_deep_copy_recursive
    - json_object_put
    linkageType: ''
    returnType: int
    signature: "int json_object_deep_copy(struct json_object *src, struct json_object
      **dst,\n                          json_c_shallow_copy_fn *shallow_copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1828,1
    - Dst: abort
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1830
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1830
    functionName: json_abort
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_object.c
    functionUses: 7
    functionsReached:
    - fprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void json_abort(const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: json_util_get_last_err
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *json_util_get_last_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:77,1
    - Dst: vsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:79,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err_fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: _json_c_set_last_err
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 2
    functionsReached:
    - va_end
    - vsnprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void _json_c_set_last_err(const char *err_fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_from_fd_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: json_object_from_fd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - json_object_from_fd_ex
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_from_fd(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printbuf_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:96,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:98,1
    - Dst: json_tokener_new_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:104,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:107,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:109,1
    - Dst: printbuf_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:110,1
    - Dst: read
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:114,1
    - Dst: printbuf_memappend
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:116,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:120,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:121,1
    - Dst: json_tokener_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:122,1
    - Dst: printbuf_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:123,1
    - Dst: json_tokener_parse_ex
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:127,1
    - Dst: printbuf_length
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:127,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:129,1
    - Dst: json_tokener_error_desc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:130,1
    - Dst: json_tokener_get_error
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:130,1
    - Dst: json_tokener_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:132,1
    - Dst: printbuf_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - fd
    - in_depth
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 135
    functionName: json_object_from_fd_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 1
    functionsReached:
    - json_tokener_error_desc
    - printbuf_memappend
    - read
    - json_tokener_parse_ex
    - strerror
    - json_tokener_free
    - printbuf_free
    - json_tokener_new_ex
    - _json_c_set_last_err
    - json_tokener_get_error
    - printbuf_length
    - printbuf_new
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_from_fd_ex(int fd, int in_depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:142,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:144,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:145,1
    - Dst: json_object_from_fd
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:148,1
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: json_object_from_file
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - strerror
    - _json_c_set_last_err
    - json_object_from_fd
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_object_from_file(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:162,1
    - Dst: open
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:166,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:168,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:169,1
    - Dst: _json_object_to_fd
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:172,1
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - filename
    - obj
    - flags
    argTypes:
    - char*
    - struct json_object*
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 177
    functionName: json_object_to_file_ext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - strerror
    - _json_c_set_last_err
    - _json_object_to_fd
    linkageType: ''
    returnType: int
    signature: int json_object_to_file_ext(const char *filename, struct json_object
      *obj, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:183,1
    - Dst: _json_object_to_fd
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - obj
    - flags
    argTypes:
    - int
    - struct json_object*
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: json_object_to_fd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 2
    functionsReached:
    - _json_c_set_last_err
    - _json_object_to_fd
    linkageType: ''
    returnType: int
    signature: int json_object_to_fd(int fd, struct json_object *obj, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_to_json_string_ext
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:197,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:203,1
    - Dst: write
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:208,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:210,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - obj
    - flags
    - filename
    argTypes:
    - int
    - struct json_object*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 220
    functionName: _json_object_to_fd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 2
    functionsReached:
    - json_object_to_json_string_ext
    - write
    - strerror
    - _json_c_set_last_err
    - strlen
    linkageType: ''
    returnType: int
    signature: int _json_object_to_fd(int fd, struct json_object *obj, int flags,
      const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_to_file_ext
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - obj
    argTypes:
    - char*
    - struct json_object*
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: json_object_to_file
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - json_object_to_file_ext
    linkageType: ''
    returnType: int
    signature: int json_object_to_file(const char *filename, struct json_object *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - retval
    argTypes:
    - char*
    - double*
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: json_parse_double
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - CPLStrtod
    linkageType: ''
    returnType: int
    signature: int json_parse_double(const char *buf, double *retval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - retval
    argTypes:
    - char*
    - int64_t*
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: json_parse_int64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 3
    functionsReached:
    - strtoll
    linkageType: ''
    returnType: int
    signature: int json_parse_int64(const char *buf, int64_t *retval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - retval
    argTypes:
    - char*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: json_parse_uint64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 2
    functionsReached:
    - strtoull
    linkageType: ''
    returnType: int
    signature: int json_parse_uint64(const char *buf, uint64_t *retval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:272,1
    - Dst: realloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: rpl_realloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 0
    functionsReached:
    - realloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void *rpl_realloc(void *p, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NELEM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:294,1
    - Dst: _json_c_set_last_err
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:296,1
    - Dst: NELEM
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - o_type
    argTypes:
    - enum json_type
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: json_type_to_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_util.c
    functionUses: 3
    functionsReached:
    - NELEM
    - _json_c_set_last_err
    linkageType: ''
    returnType: char
    signature: char *json_type_to_name(enum json_type o_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/strerror_override.c:74,1
    - Dst: strerror
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/strerror_override.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - errno_in
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 109
    functionName: _json_c_strerror
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/strerror_override.c
    functionUses: 0
    functionsReached:
    - strerror
    - getenv
    linkageType: ''
    returnType: char
    signature: char *_json_c_strerror(int errno_in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - str
    - size
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: json_c_vsnprintf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h
    functionUses: 0
    functionsReached:
    - _vsnprintf
    linkageType: ''
    returnType: int
    signature: int json_c_vsnprintf(char *str, size_t size, const char *format, va_list
      ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h:30,1
    - Dst: json_c_vsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h:31,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: json_c_snprintf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/snprintf_compat.h
    functionUses: 0
    functionsReached:
    - va_end
    - json_c_vsnprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int json_c_snprintf(char *str, size_t size, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct lh_table*::hash_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - struct lh_table*
    - void*
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: lh_get_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.h
    functionUses: 1
    functionsReached:
    - struct lh_table*::hash_fn
    linkageType: ''
    returnType: _LH_INLINE unsigned long
    signature: _LH_INLINE unsigned long lh_get_hash(const struct lh_table *t, const
      void *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: json_c_version
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_c_version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *json_c_version(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: json_c_version_num
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/json_c_version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int json_c_version_num(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: json_global_set_string_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int json_global_set_string_hash(const int h)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: lh_ptr_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long lh_ptr_hash(const void *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k1
    - k2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: lh_ptr_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lh_ptr_equal(const void *k1, const void *k2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:279,1
    - Dst: __has_feature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:303,1
    - Dst: __has_feature
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:305,1
    - Dst: mix
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:362,1
    - Dst: mix
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:420,1
    - Dst: final
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:445,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 201
    argCount: 3
    argNames:
    - key
    - length
    - initval
    argTypes:
    - void*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 447
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 447
    functionName: hashlittle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - __has_feature
    - mix
    - final
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW hashlittle(const void *key, size_t
      length, uint32_t initval)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: lh_perllike_str_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long lh_perllike_str_hash(const void *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_c_get_random_seed
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:477,1
    - Dst: __sync_val_compare_and_swap
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:488,1
    - Dst: InterlockedCompareExchange
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:490,1
    - Dst: hashlittle
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:497,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - k
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 498
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 498
    functionName: lh_char_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - hashlittle
    - strlen
    - json_c_get_random_seed
    - __sync_val_compare_and_swap
    - InterlockedCompareExchange
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long lh_char_hash(const void *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k1
    - k2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: lh_char_equal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int lh_char_equal(const void *k1, const void *k2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:512,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:513,1
    - Dst: calloc
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:519,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - size
    - free_fn
    - hash_fn
    - equal_fn
    argTypes:
    - int
    - lh_entry_free_fn*
    - lh_hash_fn*
    - lh_equal_fn*
    constantsTouched: []
    func_position:
      end: 531
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 531
    functionName: lh_table_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - free
    - assert
    - calloc
    linkageType: ''
    returnType: struct lh_table
    signature: "struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn,
      lh_hash_fn *hash_fn,\n                              lh_equal_fn *equal_fn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - free_fn
    argTypes:
    - int
    - lh_entry_free_fn*
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: lh_kchar_table_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 1
    functionsReached:
    - lh_table_new
    linkageType: ''
    returnType: struct lh_table
    signature: struct lh_table *lh_kchar_table_new(int size, lh_entry_free_fn *free_fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - free_fn
    argTypes:
    - int
    - lh_entry_free_fn*
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: lh_kptr_table_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 1
    functionsReached:
    - lh_table_new
    linkageType: ''
    returnType: struct lh_table
    signature: struct lh_table *lh_kptr_table_new(int size, lh_entry_free_fn *free_fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_new
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:548,1
    - Dst: lh_table_insert_w_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:558,1
    - Dst: lh_table_free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:560,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:564,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - t
    - new_size
    argTypes:
    - struct lh_table*
    - int
    constantsTouched: []
    func_position:
      end: 572
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 572
    functionName: lh_table_resize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - lh_table_insert_w_hash
    - lh_table_new
    - free
    - lh_table_free
    linkageType: ''
    returnType: int
    signature: int lh_table_resize(struct lh_table *t, int new_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct lh_table*::free_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:580,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:582,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct lh_table*
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: lh_table_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 3
    functionsReached:
    - struct lh_table*::free_fn
    - free
    linkageType: ''
    returnType: void
    signature: void lh_table_free(struct lh_table *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_resize
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - t
    - k
    - v
    - h
    - opts
    argTypes:
    - struct lh_table*
    - void*
    - void*
    - unsigned long
    - unsigned
    constantsTouched: []
    func_position:
      end: 628
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 628
    functionName: lh_table_insert_w_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 2
    functionsReached:
    - lh_table_resize
    linkageType: ''
    returnType: int
    signature: "int lh_table_insert_w_hash(struct lh_table *t, const void *k, const
      void *v, const unsigned long h,\n                           const unsigned opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_insert_w_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:631,1
    - Dst: lh_get_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - k
    - v
    argTypes:
    - struct lh_table*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: lh_table_insert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 1
    functionsReached:
    - lh_table_insert_w_hash
    - lh_get_hash
    linkageType: ''
    returnType: int
    signature: int lh_table_insert(struct lh_table *t, const void *k, const void *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct lh_table*::equal_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - t
    - k
    - h
    argTypes:
    - struct lh_table*
    - void*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 651
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 651
    functionName: lh_table_lookup_entry_w_hash
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 1
    functionsReached:
    - struct lh_table*::equal_fn
    linkageType: ''
    returnType: struct lh_entry
    signature: "struct lh_entry *lh_table_lookup_entry_w_hash(struct lh_table *t,
      const void *k,\n                                              const unsigned
      long h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_lookup_entry_w_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:655,1
    - Dst: lh_get_hash
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - struct lh_table*
    - void*
    constantsTouched: []
    func_position:
      end: 656
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 656
    functionName: lh_table_lookup_entry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - lh_table_lookup_entry_w_hash
    - lh_get_hash
    linkageType: ''
    returnType: struct lh_entry
    signature: struct lh_entry *lh_table_lookup_entry(struct lh_table *t, const void
      *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_lookup_entry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:660,1
    - Dst: lh_entry_v
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - t
    - k
    - v
    argTypes:
    - struct lh_table*
    - void*
    - void**
    constantsTouched: []
    func_position:
      end: 670
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 670
    functionName: lh_table_lookup_ex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 2
    functionsReached:
    - lh_table_lookup_entry
    - lh_entry_v
    linkageType: ''
    returnType: json_bool
    signature: json_bool lh_table_lookup_ex(struct lh_table *t, const void *k, void
      **v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct lh_table*::free_fn
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - t
    - e
    argTypes:
    - struct lh_table*
    - struct lh_entry*
    constantsTouched: []
    func_position:
      end: 711
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 711
    functionName: lh_table_delete_entry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 0
    functionsReached:
    - struct lh_table*::free_fn
    linkageType: ''
    returnType: int
    signature: int lh_table_delete_entry(struct lh_table *t, struct lh_entry *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_table_lookup_entry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:715,1
    - Dst: lh_table_delete_entry
      Src: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - struct lh_table*
    - void*
    constantsTouched: []
    func_position:
      end: 719
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 719
    functionName: lh_table_delete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 2
    functionsReached:
    - lh_table_lookup_entry
    - lh_table_delete_entry
    linkageType: ''
    returnType: int
    signature: int lh_table_delete(struct lh_table *t, const void *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct lh_table*
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: lh_table_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/geojson/libjson/linkhash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lh_table_length(struct lh_table *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:39,1
    - Dst: MMReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:40,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:42,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:47,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:49,1
    - Dst: MMGetVectorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:55,1
    - Dst: MMInitLayerByType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:115,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:120,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:130,1
    - Dst: ReturnEPSGCodeSRSFromMMIDSRS
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:138,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:140,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:143,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:150,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:152,1
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:160,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - hMiraMonLayer
    - m_fp
    - pszFilename
    argTypes:
    - struct MiraMonVectLayerInfo*
    - VSILFILE*
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 164
    functionName: MMInitLayerToRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLStrdup
    - atoi
    - MMGetVectorVersion
    - ReturnEPSGCodeSRSFromMMIDSRS
    - MMReadHeader
    - MMIsEmptyString
    - strcmp
    - MMResizeStringToOperateIfNeeded
    - strcpy
    - memset
    - MMInitLayerByType
    - MMReturnValueFromSectionINIFile
    linkageType: ''
    returnType: CPL_C_START
    signature: "CPL_C_START MMInitLayerToRead(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                     VSILFILE *m_fp, const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:188,1
    - Dst: MMResizeMM_POINT2DPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:196,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:206,1
    - Dst: MMResizeDoublePointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:216,1
    - Dst: MM_GetArcHeights
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:223,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:243,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:251,1
    - Dst: MMResizeMM_POINT2DPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:263,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:270,1
    - Dst: MMResizeDoublePointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:280,1
    - Dst: MM_GetArcHeights
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:287,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 6
    argNames:
    - hMiraMonLayer
    - i_elem
    - flag_z
    - nStartVertice
    - bAvoidFirst
    - VFG
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    - uint32_t
    - MM_N_VERTICES_TYPE
    - MM_BOOLEAN
    - unsigned char
    constantsTouched: []
    func_position:
      end: 309
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 309
    functionName: MMAddStringLineCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - MMResizeDoublePointer
    - MM_GetArcHeights
    - MMResizeMM_POINT2DPointer
    - VSIFReadL
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MMAddStringLineCoordinates(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                          MM_INTERNAL_FID i_elem, uint32_t flag_z,\n                           MM_N_VERTICES_TYPE
      nStartVertice,\n                           MM_BOOLEAN bAvoidFirst, unsigned
      char VFG)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMResetFeatureGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:327,1
    - Dst: MMResetFeatureRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:328,1
    - Dst: MMResizeMiraMonPolygonArcs
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:340,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:345,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:351,1
    - Dst: MMReadFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:356,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:359,1
    - Dst: MMResize_MM_N_VERTICES_TYPE_Pointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:365,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:370,1
    - Dst: MMResizeVFGPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:374,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:379,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:392,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:395,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:400,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:405,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:412,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:420,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:431,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:439,1
    - Dst: MMResizeMM_POINT2DPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:447,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:454,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:469,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:472,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:477,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:482,1
    - Dst: MMAddStringLineCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:492,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:497,1
    - Dst: MMResize_MM_N_VERTICES_TYPE_Pointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:501,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:507,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:515,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:536,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 114
    argCount: 3
    argNames:
    - hMiraMonLayer
    - i_pol
    - flag_z
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 539
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 539
    functionName: MMGetMultiPolygonCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c
    functionUses: 0
    functionsReached:
    - MMReadBlockFromBuffer
    - MMAddStringLineCoordinates
    - MMResetFeatureGeometry
    - MMInitFlush
    - VSIFree
    - MMResizeMM_POINT2DPointer
    - MMResizeVFGPointer
    - MMResetFeatureRecord
    - MMReadGUInt64DependingOnVersion
    - MMResizeMiraMonPolygonArcs
    - MMReadFlush
    - MMResize_MM_N_VERTICES_TYPE_Pointer
    linkageType: ''
    returnType: int
    signature: "int MMGetMultiPolygonCoordinates(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                            MM_INTERNAL_FID i_pol, uint32_t flag_z)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:563,1
    - Dst: MMResizeMM_POINT2DPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:569,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:575,1
    - Dst: MMResize_MM_N_VERTICES_TYPE_Pointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:583,1
    - Dst: MM_ARC_TOTAL_N_HEIGHTS_DISK
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:596,1
    - Dst: MMResizeDoublePointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:598,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:614,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:616,1
    - Dst: MMAddStringLineCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:638,1
    - Dst: MMResize_MM_N_VERTICES_TYPE_Pointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:642,1
    - Dst: MMGetMultiPolygonCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:654,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - hMiraMonLayer
    - i_elem
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    constantsTouched: []
    func_position:
      end: 658
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 658
    functionName: MMGetGeoFeatureFromVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c
    functionUses: 0
    functionsReached:
    - MM_ARC_TOTAL_N_HEIGHTS_DISK
    - MMAddStringLineCoordinates
    - VSIFSeekL
    - MMGetMultiPolygonCoordinates
    - MMResizeDoublePointer
    - MMResizeMM_POINT2DPointer
    - VSIFReadL
    - MMResize_MM_N_VERTICES_TYPE_Pointer
    linkageType: ''
    returnType: int
    signature: "int MMGetGeoFeatureFromVector(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             MM_INTERNAL_FID i_elem)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:674,1
    - Dst: MM_ReadExtendedDBFHeaderFromFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:697,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:699,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c:704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 706
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 706
    functionName: MM_ReadExtendedDBFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_rdlayr.c
    functionUses: 0
    functionsReached:
    - CPLError
    - MM_ReadExtendedDBFHeaderFromFile
    - VSICalloc
    - fclose_and_nullify
    linkageType: ''
    returnType: int
    signature: int MM_ReadExtendedDBFHeader(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:74,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:76,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:79,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:83,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:85,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:87,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:93,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:94,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:95,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:97,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:98,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:99,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:101,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:102,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:103,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:105,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:107,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:109,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:113,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:114,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:115,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:117,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:119,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:121,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:129,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:131,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:133,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:141,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:142,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:143,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:147,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:149,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 157
    functionName: MM_FillFieldDescriptorByLanguage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - CPLStrlcpy
    linkageType: ''
    returnType: void
    signature: void MM_FillFieldDescriptorByLanguage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pFunc
    argTypes:
    - VSILFILE**
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: fclose_and_nullify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void fclose_and_nullify(VSILFILE **pFunc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pField
    argTypes:
    - struct MM_FIELD*
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: MM_InitializeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MM_InitializeField(struct MM_FIELD *pField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:192,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:205,1
    - Dst: MM_InitializeField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nFields
    argTypes:
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 211
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 211
    functionName: MM_CreateAllFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - CPLError
    - MM_InitializeField
    - VSICalloc
    linkageType: ''
    returnType: struct MM_FIELD
    signature: struct MM_FIELD *MM_CreateAllFields(MM_EXT_DBF_N_FIELDS nFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:217,1
    - Dst: MM_CreateAllFields
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:227,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - nFields
    argTypes:
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: MM_CreateEmptyHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - VSIFree
    - VSICalloc
    - MM_CreateAllFields
    linkageType: ''
    returnType: struct MM_DATA_BASE_XP
    signature: struct MM_DATA_BASE_XP *MM_CreateEmptyHeader(MM_EXT_DBF_N_FIELDS nFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_CreateEmptyHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:245,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:250,1
    - Dst: MM_InitializeField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:260,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:262,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - n_camps
    - charset
    argTypes:
    - MM_EXT_DBF_N_FIELDS
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 272
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 272
    functionName: MM_CreateDBFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strcpy
    - MM_InitializeField
    - MM_CreateEmptyHeader
    - snprintf
    linkageType: ''
    returnType: struct MM_DATA_BASE_XP
    signature: "struct MM_DATA_BASE_XP *MM_CreateDBFHeader(MM_EXT_DBF_N_FIELDS n_camps,\n
      \                                          MM_BYTE charset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:278,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - camp
    argTypes:
    - struct MM_FIELD*
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: MM_GetDefaultDesiredDBFFieldWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: MM_BYTE
    signature: MM_BYTE MM_GetDefaultDesiredDBFFieldWidth(const struct MM_FIELD *camp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: MM_is_field_name_lowercase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: MM_BOOLEAN MM_is_field_name_lowercase(const char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 321
    functionName: MM_Is_classical_DBF_field_name_or_lowercase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: MM_BOOLEAN MM_Is_classical_DBF_field_name_or_lowercase(const char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - valor
    - valor_substitut
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: MM_Is_character_valid_for_extended_DBF_field_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: "MM_BOOLEAN MM_Is_character_valid_for_extended_DBF_field_name(int valor,\n
      \                                                 int *valor_substitut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:364,1
    - Dst: MM_Is_character_valid_for_extended_DBF_field_name
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:370,1
    - Dst: MM_Is_classical_DBF_field_name_or_lowercase
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:378,1
    - Dst: MM_is_field_name_lowercase
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - nom_camp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 385
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 385
    functionName: MM_ISExtendedNameBD_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_is_field_name_lowercase
    - MM_Is_character_valid_for_extended_DBF_field_name
    - strlen
    - MM_Is_classical_DBF_field_name_or_lowercase
    linkageType: ''
    returnType: int
    signature: int MM_ISExtendedNameBD_XP(const char *nom_camp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:390,1
    - Dst: MM_DonaBytesNomEstesCamp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - camp
    argTypes:
    - struct MM_FIELD*
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: MM_CalculateBytesExtendedFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_DonaBytesNomEstesCamp
    - strlen
    linkageType: ''
    returnType: MM_BYTE
    signature: MM_BYTE MM_CalculateBytesExtendedFieldName(struct MM_FIELD *camp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:403,1
    - Dst: MM_CalculateBytesExtendedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bd_xp
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: MM_CalculateBytesExtendedFieldNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_ISExtendedNameBD_XP
    - MM_CalculateBytesExtendedFieldName
    linkageType: ''
    returnType: MM_ACCUMULATED_BYTES_TYPE_DBF
    signature: MM_ACCUMULATED_BYTES_TYPE_DBF MM_CalculateBytesExtendedFieldNames(const
      struct MM_DATA_BASE_XP *bd_xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_CalculateBytesExtendedFieldNames
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bd_xp
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: MM_CalculateBytesFirstRecordOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_CalculateBytesExtendedFieldNames
    linkageType: ''
    returnType: MM_FIRST_RECORD_OFFSET_TYPE
    signature: MM_FIRST_RECORD_OFFSET_TYPE MM_CalculateBytesFirstRecordOffset(struct
      MM_DATA_BASE_XP *bd_xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_GetDefaultDesiredDBFFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:433,1
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:438,1
    - Dst: MM_CalculateBytesFirstRecordOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - bd_xp
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 449
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 449
    functionName: MM_CheckDBFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_ISExtendedNameBD_XP
    - MM_CalculateBytesFirstRecordOffset
    - MM_GetDefaultDesiredDBFFieldWidth
    linkageType: ''
    returnType: void
    signature: void MM_CheckDBFHeader(struct MM_DATA_BASE_XP *bd_xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bd_xp
    - i_camp
    argTypes:
    - struct MM_DATA_BASE_XP*
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: MM_InitializeOffsetExtendedFieldNameFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void MM_InitializeOffsetExtendedFieldNameFields(struct MM_DATA_BASE_XP
      *bd_xp,\n                                           MM_EXT_DBF_N_FIELDS i_camp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bd_xp
    - i_camp
    argTypes:
    - struct MM_DATA_BASE_XP*
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: MM_InitializeBytesExtendedFieldNameFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void MM_InitializeBytesExtendedFieldNameFields(struct MM_DATA_BASE_XP
      *bd_xp,\n                                          MM_EXT_DBF_N_FIELDS i_camp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 496
    functionName: MM_return_common_valid_DBF_field_name_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - toupper
    linkageType: ''
    returnType: short int
    signature: short int MM_return_common_valid_DBF_field_name_string(char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:503,1
    - Dst: MM_return_common_valid_DBF_field_name_string
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: MM_ReturnValidClassicDBFFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strlen
    - MM_return_common_valid_DBF_field_name_string
    linkageType: ''
    returnType: short int
    signature: short int MM_ReturnValidClassicDBFFieldName(char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:522,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data_base_XP
    - classical_name
    argTypes:
    - struct MM_DATA_BASE_XP*
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: MM_CheckClassicFieldNameEqual
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: "MM_BOOLEAN MM_CheckClassicFieldNameEqual(const struct MM_DATA_BASE_XP
      *data_base_XP,\n                              const char *classical_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:540,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:541,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - text
    - character
    argTypes:
    - char*
    - char
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: MM_GiveNewStringWithCharacterInFront
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - VSICalloc
    linkageType: ''
    returnType: char
    signature: "char *MM_GiveNewStringWithCharacterInFront(const char *text,\n                                                  char
      character)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:559,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:563,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:566,1
    - Dst: MM_GiveNewStringWithCharacterInFront
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:568,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:571,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:575,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:576,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:579,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:580,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:582,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - nom_camp
    - index
    - ampladamax
    argTypes:
    - char*
    - MM_EXT_DBF_N_FIELDS
    - size_t
    constantsTouched: []
    func_position:
      end: 587
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 587
    functionName: MM_SetSubIndexFieldNam
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - CPLStrlcpy
    - VSICalloc
    - strcat
    - snprintf
    - VSIFree
    - strlen
    - MM_GiveNewStringWithCharacterInFront
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *MM_SetSubIndexFieldNam(const char *nom_camp,\n                                    MM_EXT_DBF_N_FIELDS
      index,\n                                    size_t ampladamax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - camp
    argTypes:
    - struct MM_FIELD*
    constantsTouched: []
    func_position:
      end: 598
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 598
    functionName: MM_GiveOffsetExtendedFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: MM_FIRST_RECORD_OFFSET_TYPE
    signature: MM_FIRST_RECORD_OFFSET_TYPE MM_GiveOffsetExtendedFieldName(const struct
      MM_FIELD *camp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:606,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:621,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:626,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:633,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:638,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:644,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - MMAdmDB
    argTypes:
    - struct MMAdmDatabase*
    constantsTouched: []
    func_position:
      end: 650
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 650
    functionName: MM_WriteNRecordsMMBD_XPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int MM_WriteNRecordsMMBD_XPFile(struct MMAdmDatabase *MMAdmDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:671,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:672,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:674,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:684,1
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:705,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:714,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:717,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:720,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:727,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:729,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:733,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:735,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:739,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:741,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:750,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:752,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:759,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:762,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:767,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:769,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:773,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:781,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:784,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:789,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:792,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:798,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:801,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:806,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:809,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:819,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:822,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:828,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:831,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:839,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:842,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:848,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:851,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:857,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:860,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:866,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:868,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:871,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:878,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:881,1
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:894,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:898,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:900,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:904,1
    - Dst: MM_InitializeOffsetExtendedFieldNameFields
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:908,1
    - Dst: MM_InitializeBytesExtendedFieldNameFields
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:909,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:917,1
    - Dst: MM_ReturnValidClassicDBFFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:919,1
    - Dst: MM_CheckClassicFieldNameEqual
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:921,1
    - Dst: MM_SetSubIndexFieldNam
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:926,1
    - Dst: MM_CheckClassicFieldNameEqual
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:932,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:936,1
    - Dst: MM_SetSubIndexFieldNam
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:937,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:943,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:948,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:953,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:960,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:963,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:967,1
    - Dst: MM_CalculateBytesExtendedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:973,1
    - Dst: MM_EscriuOffsetNomEstesBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:974,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:979,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:984,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:987,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:992,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:995,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1000,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1003,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1008,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1011,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1014,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1021,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1024,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1033,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1036,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1043,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1045,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1050,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1054,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1057,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1063,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1067,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1073,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1076,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1084,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1088,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1091,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1097,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1100,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1107,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1109,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1116,1
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1125,1
    - Dst: MM_GiveOffsetExtendedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1128,1
    - Dst: MM_DonaBytesNomEstesCamp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1129,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1131,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1133,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1137,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1141,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 278
    argCount: 1
    argNames:
    - data_base_XP
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 1149
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 1149
    functionName: MM_OpenIfNeededAndUpdateEntireHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_DonaBytesNomEstesCamp
    - MM_ES_DBF_ESTESA
    - MM_CalculateBytesExtendedFieldName
    - MM_CheckClassicFieldNameEqual
    - CPLStrlcpy
    - MM_SetSubIndexFieldNam
    - MM_InitializeBytesExtendedFieldNameFields
    - strlen
    - MM_ISExtendedNameBD_XP
    - VSIFSeekL
    - VSIFOpenL
    - MM_ReturnValidClassicDBFFieldName
    - VSIFCloseL
    - MM_EscriuOffsetNomEstesBD_XP
    - MM_InitializeOffsetExtendedFieldNameFields
    - MM_GiveOffsetExtendedFieldName
    - VSIFWriteL
    - VSIFree
    - strcpy
    - memset
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: MM_BOOLEAN MM_OpenIfNeededAndUpdateEntireHeader(struct MM_DATA_BASE_XP
      *data_base_XP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1156,1
    - Dst: MM_CheckDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1159,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1162,1
    - Dst: VSILocalTime
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1165,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1171,1
    - Dst: MM_OpenIfNeededAndUpdateEntireHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bd_xp
    - NomFitxer
    argTypes:
    - struct MM_DATA_BASE_XP*
    - char*
    constantsTouched: []
    func_position:
      end: 1173
      start: 1151
    functionDepth: 5
    functionLinenumber: 1151
    functionLinenumberEnd: 1173
    functionName: MM_CreateAndOpenDBFFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - VSILocalTime
    - MM_OpenIfNeededAndUpdateEntireHeader
    - CPLStrlcpy
    - MMIsEmptyString
    - MM_CheckDBFHeader
    - time
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: "MM_BOOLEAN MM_CreateAndOpenDBFFile(struct MM_DATA_BASE_XP *bd_xp,\n
      \                                  const char *NomFitxer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1190,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - data_base_XP
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 1200
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1200
    functionName: MM_ReleaseMainFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void MM_ReleaseMainFields(struct MM_DATA_BASE_XP *data_base_XP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1230,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1231,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1234,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1239,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1243,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1244,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1245,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1246,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1248,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1252,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1254,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1258,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1260,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1269,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1276,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1278,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1279,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1280,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1281,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1282,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1284,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1287,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1291,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1296,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1307,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1308,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1309,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1311,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1314,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1324,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1325,1
    - Dst: CPLResetExtension
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1325,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1327,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1332,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1333,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1336,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1339,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1342,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1346,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1349,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1355,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1356,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1362,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1365,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1373,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1374,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1403,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1404,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1406,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1410,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1414,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1415,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1416,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1419,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1422,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1426,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1437,1
    - Dst: MM_CreateAllFields
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1438,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1442,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1448,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1452,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1455,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1457,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1458,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1459,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1461,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1463,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1465,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1467,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1470,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1480,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1488,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1491,1
    - Dst: MM_ES_DBF_ESTESA
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1498,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1500,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1503,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1509,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1512,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1517,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1528,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1531,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1553,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1557,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1561,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1565,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1572,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1576,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1583,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1587,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1593,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1600,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1604,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1611,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1616,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1622,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1629,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1633,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1640,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1645,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1651,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1670,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1673,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1687,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1695,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1698,1
    - Dst: MM_GiveOffsetExtendedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1715,1
    - Dst: MM_DonaBytesNomEstesCamp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1716,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1721,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1724,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1725,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1728,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1731,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1740,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1742,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1744,1
    - Dst: MM_oemansi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1748,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1749,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1751,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1753,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 290
    argCount: 3
    argNames:
    - szFileName
    - pMMBDXP
    - pszRelFile
    argTypes:
    - char*
    - struct MM_DATA_BASE_XP*
    - char*
    constantsTouched: []
    func_position:
      end: 1761
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1761
    functionName: MM_ReadExtendedDBFHeaderFromFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 1
    functionsReached:
    - MM_DonaBytesNomEstesCamp
    - VSIFTellL
    - MM_ES_DBF_ESTESA
    - MM_stristr
    - CPLStrlcpy
    - VSIFSeekL
    - CPLResetExtension
    - VSIFOpenL
    - snprintf
    - VSIFReadL
    - CPLRecode
    - CPLFree
    - MMReturnValueFromSectionINIFile
    - MM_oemansi
    - fclose_and_nullify
    - VSIFCloseL
    - MM_CreateAllFields
    - EQUAL
    - MM_GiveOffsetExtendedFieldName
    - VSIFree
    - strcpy
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MM_ReadExtendedDBFHeaderFromFile(const char *szFileName,\n                                     struct
      MM_DATA_BASE_XP *pMMBDXP,\n                                     const char *pszRelFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_ReleaseMainFields
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1770,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data_base_XP
    argTypes:
    - struct MM_DATA_BASE_XP**
    constantsTouched: []
    func_position:
      end: 1775
      start: 1763
    functionDepth: 2
    functionLinenumber: 1763
    functionLinenumberEnd: 1775
    functionName: MM_ReleaseDBFHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_ReleaseMainFields
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void MM_ReleaseDBFHeader(struct MM_DATA_BASE_XP **data_base_XP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1792,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1798,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1800,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1803,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1803,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1804,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1810,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1822,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1823,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1825,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1828,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1828,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1829,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1835,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1847,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1848,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1850,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1853,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1853,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1854,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1861,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1888,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1897,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1901,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1901,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1903,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1909,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1918,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1921,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1923,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1928,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1928,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1930,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1936,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 111
    argCount: 4
    argNames:
    - camp
    - bd_xp
    - no_modifica_descriptor
    - mida_nom
    argTypes:
    - struct MM_FIELD*
    - struct MM_DATA_BASE_XP*
    - MM_BOOLEAN
    - size_t
    constantsTouched: []
    func_position:
      end: 1943
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1943
    functionName: MM_ModifyFieldNameAndDescriptorIfPresentBD_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strcat
    - snprintf
    - strlen
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int MM_ModifyFieldNameAndDescriptorIfPresentBD_XP(\n    struct MM_FIELD
      *camp, struct MM_DATA_BASE_XP *bd_xp,\n    MM_BOOLEAN no_modifica_descriptor,
      size_t mida_nom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1962
    functionName: MM_DuplicateMultilingualString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: "int MM_DuplicateMultilingualString(\n    char *(szChain_final[MM_NUM_IDIOMES_MD_MULTIDIOMA]),\n
      \   const char *const(szChain_inicial[MM_NUM_IDIOMES_MD_MULTIDIOMA]))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_DuplicateMultilingualString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - camp_final
    - camp_inicial
    argTypes:
    - struct MM_FIELD*
    - struct MM_FIELD*
    constantsTouched: []
    func_position:
      end: 1975
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1975
    functionName: MM_DuplicateFieldDBXP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_DuplicateMultilingualString
    linkageType: ''
    returnType: int
    signature: "int MM_DuplicateFieldDBXP(struct MM_FIELD *camp_final,\n                          const
      struct MM_FIELD *camp_inicial)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - szszChain
    - n_bytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2013
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 2013
    functionName: MM_oemansi_n
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MM_oemansi_n(char *szszChain, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2028,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2028,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2035
      start: 2016
    functionDepth: 0
    functionLinenumber: 2016
    functionLinenumberEnd: 2035
    functionName: MM_stristr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 1
    functionsReached:
    - EQUALN
    - strlen
    linkageType: ''
    returnType: char
    signature: char *MM_stristr(const char *haystack, const char *needle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_oemansi_n
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - szszChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2040
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2040
    functionName: MM_oemansi
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 1
    functionsReached:
    - MM_oemansi_n
    linkageType: ''
    returnType: char
    signature: char *MM_oemansi(char *szszChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_ISExtendedNameBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2053,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2056,1
    - Dst: MM_CalculateBytesExtendedFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2060,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2061,1
    - Dst: MM_ReturnValidClassicDBFFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2062,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2064,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2070,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2073,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2076,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2079,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2082,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2085,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2088,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2091,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 8
    argNames:
    - camp
    - FieldName
    - FieldDescriptionEng
    - FieldDescriptionCat
    - FieldDescriptionSpa
    - FieldType
    - BytesPerField
    - DecimalsIfFloat
    argTypes:
    - struct MM_FIELD*
    - char*
    - char*
    - char*
    - char*
    - char
    - MM_BYTES_PER_FIELD_TYPE_DBF
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 2097
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2097
    functionName: MM_FillFieldDB_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_ReturnValidClassicDBFFieldName
    - CPLStrlcpy
    - strcpy
    - MM_ISExtendedNameBD_XP
    - MM_CalculateBytesExtendedFieldName
    linkageType: ''
    returnType: MM_BOOLEAN
    signature: "MM_BOOLEAN MM_FillFieldDB_XP(\n    struct MM_FIELD *camp, const char
      *FieldName,\n    const char *FieldDescriptionEng, const char *FieldDescriptionCat,\n
      \   const char *FieldDescriptionSpa, char FieldType,\n    MM_BYTES_PER_FIELD_TYPE_DBF
      BytesPerField, MM_BYTE DecimalsIfFloat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2105,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2113,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2119,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2126,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2133,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - bd_xp
    - n_perimeter_decimals
    - n_area_decimals_decimals
    argTypes:
    - struct MM_DATA_BASE_XP*
    - MM_BYTE
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 2147
      start: 2099
    functionDepth: 3
    functionLinenumber: 2099
    functionLinenumberEnd: 2147
    functionName: MM_DefineFirstPolygonFieldsDB_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_FillFieldDB_XP
    linkageType: ''
    returnType: size_t
    signature: "size_t MM_DefineFirstPolygonFieldsDB_XP(struct MM_DATA_BASE_XP *bd_xp,\n
      \                                       MM_BYTE n_perimeter_decimals,\n                                        MM_BYTE
      n_area_decimals_decimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2155,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2163,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2169,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2175,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - bd_xp
    - n_decimals
    argTypes:
    - struct MM_DATA_BASE_XP*
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 2188
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2188
    functionName: MM_DefineFirstArcFieldsDB_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_FillFieldDB_XP
    linkageType: ''
    returnType: size_t
    signature: "size_t MM_DefineFirstArcFieldsDB_XP(struct MM_DATA_BASE_XP *bd_xp,\n
      \                                   MM_BYTE n_decimals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2196,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2204,1
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - bd_xp
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 2217
      start: 2190
    functionDepth: 3
    functionLinenumber: 2190
    functionLinenumberEnd: 2217
    functionName: MM_DefineFirstNodeFieldsDB_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_FillFieldDB_XP
    linkageType: ''
    returnType: size_t
    signature: size_t MM_DefineFirstNodeFieldsDB_XP(struct MM_DATA_BASE_XP *bd_xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_FillFieldDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bd_xp
    argTypes:
    - struct MM_DATA_BASE_XP*
    constantsTouched: []
    func_position:
      end: 2232
      start: 2219
    functionDepth: 3
    functionLinenumber: 2219
    functionLinenumberEnd: 2232
    functionName: MM_DefineFirstPointFieldsDB_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_FillFieldDB_XP
    linkageType: ''
    returnType: size_t
    signature: size_t MM_DefineFirstPointFieldsDB_XP(struct MM_DATA_BASE_XP *bd_xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2292,1
    - Dst: MM_IsNANDouble
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2294,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2295,1
    - Dst: MM_IsDoubleInfinite
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2297,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2298,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2301,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2304,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2309,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2322,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2325,1
    - Dst: sprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - szChain
    - size_szChain
    - nSignifFigures
    - dfRealValue
    argTypes:
    - char*
    - size_t
    - int
    - double
    constantsTouched: []
    func_position:
      end: 2333
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2333
    functionName: MM_SprintfDoubleSignifFigures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - atoi
    - MM_IsDoubleInfinite
    - MM_IsNANDouble
    - sprintf
    - strchr
    - snprintf
    - memset
    linkageType: ''
    returnType: int
    signature: "int MM_SprintfDoubleSignifFigures(char *szChain, size_t size_szChain,\n
      \                                 int nSignifFigures, double dfRealValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2349,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2353,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2359,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pszStringDst
    - pszStringSrc
    - nStringCurrentLength
    argTypes:
    - char**
    - char*
    - MM_EXT_DBF_N_FIELDS*
    constantsTouched: []
    func_position:
      end: 2363
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2363
    functionName: MM_SecureCopyStringFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int MM_SecureCopyStringFieldValue(char **pszStringDst, const char
      *pszStringSrc,\n                                  MM_EXT_DBF_N_FIELDS *nStringCurrentLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2395,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2401,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2403,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2406,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2412,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2418,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2419,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2423,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2426,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2427,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2432,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2439,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2440,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2444,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2446,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2447,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2455,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2459,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2464,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2465,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2473,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2476,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2481,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2482,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2509,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2513,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2514,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2521,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2522,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2527,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2531,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2532,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2551,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2552,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2554,1
    - Dst: MM_OpenIfNeededAndUpdateEntireHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2574,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 118
    argCount: 4
    argNames:
    - data_base_XP
    - nIField
    - nNewWidth
    - nNewPrecision
    argTypes:
    - struct MM_DATA_BASE_XP*
    - MM_EXT_DBF_N_FIELDS
    - MM_BYTES_PER_FIELD_TYPE_DBF
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 2578
      start: 2366
    functionDepth: 4
    functionLinenumber: 2366
    functionLinenumberEnd: 2578
    functionName: MM_ChangeDBFWidthField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_OpenIfNeededAndUpdateEntireHeader
    - VSIFSeekL
    - VSICalloc
    - VSIFTruncateL
    - VSIFree
    - VSIFWriteL
    - VSIFReadL
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MM_ChangeDBFWidthField(struct MM_DATA_BASE_XP *data_base_XP,\n
      \                          MM_EXT_DBF_N_FIELDS nIField,\n                           MM_BYTES_PER_FIELD_TYPE_DBF
      nNewWidth,\n                           MM_BYTE nNewPrecision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - desti
    - proposta
    - flag
    argTypes:
    - double*
    - double*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2601
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2601
    functionName: MM_AdoptHeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MM_AdoptHeight(double *desti, const double *proposta, uint32_t
      flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_ARC_HEIGHT_TYPE
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2620,1
    - Dst: MM_ARC_N_HEIGHTS
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2629,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2641,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2644,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2648,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2651,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2655,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2658,1
    - Dst: MM_AdoptHeight
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2669,1
    - Dst: MM_AdoptHeight
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2677,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2688,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 5
    argNames:
    - coord_z
    - pF
    - n_vrt
    - pZDescription
    - flag
    argTypes:
    - double*
    - VSILFILE*
    - MM_N_VERTICES_TYPE
    - struct MM_ZD*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2690
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2690
    functionName: MM_GetArcHeights
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 1
    functionsReached:
    - MM_ARC_HEIGHT_TYPE
    - VSIFSeekL
    - MM_AdoptHeight
    - VSICalloc
    - VSIFree
    - MMCheckSize_t
    - VSIFReadL
    - CPLError
    - MM_ARC_N_HEIGHTS
    linkageType: ''
    returnType: int
    signature: "int MM_GetArcHeights(double *coord_z, VSILFILE *pF, MM_N_VERTICES_TYPE
      n_vrt,\n                     struct MM_ZD *pZDescription, uint32_t flag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - punter
    - l_szChain
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2706
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2706
    functionName: MM_l_RemoveWhitespacesFromEndOfString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *MM_l_RemoveWhitespacesFromEndOfString(char *punter,\n                                                   size_t
      l_szChain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2732
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2732
    functionName: MM_RemoveInitial_and_FinalQuotationMarks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MM_RemoveInitial_and_FinalQuotationMarks(char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - szChain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2757
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2757
    functionName: MM_RemoveLeadingWhitespaceOfString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MM_RemoveLeadingWhitespaceOfString(char *szChain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_l_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2763,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2764
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2764
    functionName: MM_RemoveWhitespacesFromEndOfString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - strlen
    - MM_l_RemoveWhitespacesFromEndOfString
    linkageType: ''
    returnType: char
    signature: char *MM_RemoveWhitespacesFromEndOfString(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2786,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2788,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2794,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2795,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2799,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2801,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2806,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2815,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2817,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2818,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2823,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2831,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2832,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2838,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2853,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2856,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2857,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2860,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2861,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2864,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2868,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 8
    argNames:
    - f
    - nNumberOfRecords
    - offset_1era
    - bytes_per_fitxa
    - bytes_acumulats_id_grafic
    - bytes_id_grafic
    - isListField
    - nMaxN
    argTypes:
    - VSILFILE*
    - MM_EXT_DBF_N_RECORDS
    - MM_FIRST_RECORD_OFFSET_TYPE
    - MM_ACCUMULATED_BYTES_TYPE_DBF
    - MM_ACCUMULATED_BYTES_TYPE_DBF
    - MM_BYTES_PER_FIELD_TYPE_DBF
    - MM_BOOLEAN*
    - MM_EXT_DBF_N_RECORDS*
    constantsTouched: []
    func_position:
      end: 2874
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2874
    functionName: MMCreateExtendedDBFIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - sscanf
    - VSIFSeekL
    - VSICalloc
    - VSIFree
    - MMCheckSize_t
    - VSIFReadL
    - CPLError
    linkageType: ''
    returnType: struct MM_ID_GRAFIC_MULTIPLE_RECORD
    signature: "struct MM_ID_GRAFIC_MULTIPLE_RECORD *MMCreateExtendedDBFIndex(\n    VSILFILE
      *f, MM_EXT_DBF_N_RECORDS nNumberOfRecords,\n    MM_FIRST_RECORD_OFFSET_TYPE
      offset_1era,\n    MM_ACCUMULATED_BYTES_TYPE_DBF bytes_per_fitxa,\n    MM_ACCUMULATED_BYTES_TYPE_DBF
      bytes_acumulats_id_grafic,\n    MM_BYTES_PER_FIELD_TYPE_DBF bytes_id_grafic,
      MM_BOOLEAN *isListField,\n    MM_EXT_DBF_N_RECORDS *nMaxN)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2887,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2890,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2896,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2898,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2900,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2906,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2919,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2920,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2922,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2930,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2933,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2946,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2954,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2963,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2964,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2965,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2966,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2975,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2983,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2984,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2987,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2991,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:2992,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 3
    argNames:
    - filename
    - section
    - key
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2994
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2994
    functionName: MMReturnValueFromSectionINIFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 2
    functionsReached:
    - CPLReadLine2L
    - CPLStrdup
    - VSIFCloseL
    - strncmp
    - VSIFOpenL
    - strcmp
    - VSIFree
    - strlen
    - strstr
    - CPLError
    - CPLRecode
    linkageType: ''
    returnType: char
    signature: "char *MMReturnValueFromSectionINIFile(const char *filename, const
      char *section,\n                                      const char *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3018,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3020,1
    - Dst: MiraMonGetMM_m_idofic_csv
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3021,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3022,1
    - Dst: MiraMonGetMM_m_idofic_csv
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3022,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3029,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3039,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3045,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3047,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3048,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3052,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3056,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3061,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3062,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3066,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3069,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3070,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3074,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3075,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3078,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3079,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3083,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3086,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3086,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3088,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3089,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3094,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3094,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3095,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3097,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3098,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3104,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3106,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3109,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3110,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3115,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3118,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3119,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3125,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3132,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3134,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3138,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3139,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3140,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3144,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3145,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3146,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3151,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3153,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3161,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3162,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3163,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3167,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3169,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3170,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3171,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3177,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3180,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 108
    argCount: 3
    argNames:
    - pMMSRS_or_pSRS
    - szResult
    - direction
    argTypes:
    - char*
    - char*
    - MM_BYTE
    constantsTouched: []
    func_position:
      end: 3182
      start: 2997
    functionDepth: 1
    functionLinenumber: 2997
    functionLinenumberEnd: 3182
    functionName: MMReturnCodeFromMM_m_idofic
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - MM_stristr
    - MiraMonGetMM_m_idofic_csv
    - CPLStrdup
    - CPLReadLine2L
    - VSIFCloseL
    - strncmp
    - EQUAL
    - VSIFOpenL
    - strcmp
    - VSIFree
    - strlen
    - strstr
    - strcpy
    - CPLError
    - VSIFileFromMemBuffer
    linkageType: ''
    returnType: int
    signature: "int MMReturnCodeFromMM_m_idofic(char *pMMSRS_or_pSRS, char *szResult,\n
      \                               MM_BYTE direction)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3194,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3198,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3205,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3213,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3218,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3223,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3226,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3229,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3233,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3240,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3244,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3246,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3250,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3253,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3257,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3264,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3270,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3273,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3276,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3280,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3287,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3291,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3293,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3296,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c:3303,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - szREL_file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3309
      start: 3185
    functionDepth: 2
    functionLinenumber: 3185
    functionLinenumberEnd: 3309
    functionName: MMCheck_REL_FILE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_functions.c
    functionUses: 0
    functionsReached:
    - atoi
    - VSIFCloseL
    - VSIFOpenL
    - VSIFree
    - CPLError
    - MMReturnValueFromSectionINIFile
    linkageType: ''
    returnType: int
    signature: int MMCheck_REL_FILE(const char *szREL_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:29,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:30,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:34,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:39,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:39,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:40,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:40,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:41,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:53,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:55,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:73,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:91,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:93,1
    - Dst: MMInitFeature
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:105,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:113,1
    - Dst: MMInitLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:114,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:122,1
    - Dst: MMInitLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:123,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:131,1
    - Dst: MMInitLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:132,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:142,1
    - Dst: MMInitLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:143,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:154,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:164,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:170,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:173,1
    - Dst: IsAlmostEqual
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:173,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:175,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:176,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:177,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:181,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:182,1
    - Dst: strdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:183,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:189,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:191,1
    - Dst: OGRSpatialReference*::IsDerivedGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:191,1
    - Dst: OGRSpatialReference*::IsGeocentric
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:193,1
    - Dst: OGRSpatialReference*::IsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:195,1
    - Dst: OGRSpatialReference*::IsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:198,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:200,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:201,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:205,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:207,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:209,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:210,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:211,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:216,1
    - Dst: MMInitLayerToRead
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:246,1
    - Dst: MMGetVectorVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:254,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:257,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:265,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:267,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:272,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:274,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:282,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:284,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:289,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:291,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:308,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:310,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:328,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:330,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:340,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:341,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:342,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:349,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:357,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:360,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:371,1
    - Dst: MMCreateExtendedDBFIndex
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:379,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:396,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:396,1
    - Dst: static_cast<GInt64 *>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:399,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:399,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:409,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:411,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:414,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:422,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:425,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:443,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:445,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:447,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:452,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:454,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:461,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:462,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:465,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:476,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:484,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:490,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:500,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:501,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:507,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:509,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:516,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:519,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:520,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:524,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:526,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:529,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 250
    argCount: 7
    argNames:
    - poDS
    - pszFilename
    - fp
    - poSRS
    - bUpdateIn
    - papszOpenOptions
    - MMMap
    argTypes:
    - GDALDataset*
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    - int
    - CSLConstList
    - struct MiraMonVectMapInfo*
    constantsTouched: []
    func_position:
      end: 535
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 535
    functionName: OGRMiraMonLayer::OGRMiraMonLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::IsGeocentric
    - MMInitFeature
    - atoi
    - MMGetVectorVersion
    - OGRSpatialReference*::GetAuthorityCode
    - GetGeomFieldDefn
    - IsAlmostEqual
    - CPLDebug
    - strcmp
    - Reference
    - MMCreateExtendedDBFIndex
    - CPLError
    - std::fabs
    - CPL_TO_BOOL
    - MMInitLayer
    - CPLStrdup
    - SetGeomType
    - SetName
    - SetAxisMappingStrategy
    - static_cast<double *>
    - static_cast<GInt64 *>
    - AddFieldDefn
    - strdup
    - GetName
    - OGRSpatialReference*::IsLocal
    - OGRFieldDefn::SetAlternativeName
    - OGRSpatialReference*::GetAuthorityName
    - OGRSpatialReference*::IsProjected
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRFieldDefn::SetSubType
    - VSIFOpenL
    - OGRFieldDefn::SetName
    - OGRSpatialReference*::IsDerivedGeographic
    - SetDescription
    - MMInitLayerToRead
    - CPLCalloc
    - CPLDebugOnly
    - OGRSpatialReference::OGRSpatialReference
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CPLGetBasenameSafe
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - OGRFieldDefn::SetType
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: "void OGRMiraMonLayer::OGRMiraMonLayer(GDALDataset *poDS, const char
      *pszFilename,\n                                 VSILFILE *fp, const OGRSpatialReference
      *poSRS,\n                                 int bUpdateIn, CSLConstList papszOpenOptions,\n
      \                                struct MiraMonVectMapInfo *MMMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:546,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:547,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:548,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:553,1
    - Dst: MMCloseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:554,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:556,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:559,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:563,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:568,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:572,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:577,1
    - Dst: MMCloseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:578,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:580,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:583,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:587,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:593,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:597,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:602,1
    - Dst: MMCloseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:603,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:605,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:608,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:612,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:617,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:621,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:630,1
    - Dst: MMCloseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:632,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:635,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:639,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:644,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:651,1
    - Dst: MMCloseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:653,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:656,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:660,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:666,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:668,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:671,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:676,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:678,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:681,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:686,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:688,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:691,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:696,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:700,1
    - Dst: MMDestroyLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:703,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:706,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:710,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:713,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:714,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:715,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:716,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:718,1
    - Dst: MMDestroyFeature
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:719,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:720,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:721,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:728,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:731,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:734,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:737,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:740,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 741
    functionName: OGRMiraMonLayer::~OGRMiraMonLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - CPLFree
    - static_cast<int>
    - VSIFCloseL
    - MMCloseLayer
    - MMDestroyFeature
    - memset
    - MMDestroyLayer
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMiraMonLayer::~OGRMiraMonLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:761,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:767,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 775
    functionName: OGRMiraMonLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRMiraMonLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iFID
    - nIRecord
    - nIField
    argTypes:
    - MM_INTERNAL_FID
    - MM_EXT_DBF_N_RECORDS
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 796
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 796
    functionName: OGRMiraMonLayer::GoToFieldOfMultipleRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: "void OGRMiraMonLayer::GoToFieldOfMultipleRecord(MM_INTERNAL_FID iFID,\n
      \                                               MM_EXT_DBF_N_RECORDS nIRecord,\n
      \                                               MM_EXT_DBF_N_FIELDS nIField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMiraMonLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 817
    functionName: OGRMiraMonLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRMiraMonLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMiraMonLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:859,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:860,1
    - Dst: MMGetGeoFeatureFromVector
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:863,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:865,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:870,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:871,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:873,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:878,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:879,1
    - Dst: MMGetGeoFeatureFromVector
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:882,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:884,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:893,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:898,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:907,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:915,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:916,1
    - Dst: MMGetGeoFeatureFromVector
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:921,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:930,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:939,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:948,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:957,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:973,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:973,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:974,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:974,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:975,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:978,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:978,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:985,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:986,1
    - Dst: MMGetGeoFeatureFromVector
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:989,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:991,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1003,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1012,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1021,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1032,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1042,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1042,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1056,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1057,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1058,1
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1070,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1077,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1079,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1081,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1087,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1092,1
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1096,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1111,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1113,1
    - Dst: MM_RemoveLeadingWhitespaceOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1121,1
    - Dst: MM_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1123,1
    - Dst: MM_oemansi_n
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1128,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1141,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1147,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1149,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1155,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1159,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1162,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1162,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1166,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1172,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1173,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1176,1
    - Dst: MM_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1184,1
    - Dst: MM_oemansi_n
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1189,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1202,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1208,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1210,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1212,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1212,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1215,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1222,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1231,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1238,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1245,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1252,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1254,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1256,1
    - Dst: MM_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1263,1
    - Dst: MM_oemansi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1268,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1276,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1280,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1282,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1284,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1287,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1294,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1304,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1305,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1308,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1317,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1319,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1322,1
    - Dst: atof
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1336,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1342,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1344,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1351,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1361,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1362,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1365,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1374,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1377,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1382,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1384,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1387,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1390,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1397,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1407,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1416,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1424,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1431,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1433,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1435,1
    - Dst: MM_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1442,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1445,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1448,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1450,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1454,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1457,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1464,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1466,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1470,1
    - Dst: atof
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1471,1
    - Dst: auto::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1475,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1482,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1491,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1498,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1505,1
    - Dst: OGRMiraMonLayer::GoToFieldOfMultipleRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1512,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1514,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1516,1
    - Dst: MM_RemoveWhitespacesFromEndOfString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1524,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1526,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1532,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1534,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1536,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1539,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1541,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1544,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1546,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1549,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1557,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1560,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 299
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1561
      start: 823
    functionDepth: 4
    functionLinenumber: 823
    functionLinenumberEnd: 1561
    functionName: OGRMiraMonLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRPoint*::setX
    - atoi
    - std::string::append
    - auto::SetField
    - atof
    - MMResizeStringToOperateIfNeeded
    - OGRPoint*::setY
    - auto::addRingDirectly
    - MM_RemoveWhitespacesFromEndOfString
    - CPLError
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - OGRGeometry*::toMultiPolygon
    - CPLStrlcpy
    - MM_oemansi_n
    - CPLAtoGIntBig
    - MMIsEmptyString
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - OGRLineString::OGRLineString
    - std::make_unique<OGRLinearRing>
    - std::make_unique<OGRFeature>
    - OGRMultiPolygon*::addGeometryDirectly
    - CPLStringList::AddString
    - OGRMultiPolygon::OGRMultiPolygon
    - MM_RemoveLeadingWhitespaceOfString
    - VSIFReadL
    - CPLFree
    - std::make_unique<OGRPolygon>
    - OGRGeometry*::toLineString
    - auto::GetDefnRef
    - auto::SetGeometryDirectly
    - OGRMiraMonLayer::GoToFieldOfMultipleRecord
    - OGRLineString*::addPoint
    - auto::release
    - auto::addPoint
    - MM_oemansi
    - auto::SetFID
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    - memset
    - MMGetGeoFeatureFromVector
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMiraMonLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1570,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1578
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1578
    functionName: OGRMiraMonLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - max
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMiraMonLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1592,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1598,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1598,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1604,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1604,1
    - Dst: OGRMiraMonLayer::MMProcessMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1605,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1612,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1612,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1613,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1613,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1619,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1619,1
    - Dst: OGRMiraMonLayer::MMProcessGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1620,1
    - Dst: OGRMiraMonLayer::MMProcessGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1628,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - hGeom
    - poFeature
    argTypes:
    - OGRGeometryH
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1629
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1629
    functionName: OGRMiraMonLayer::MMProcessMultiGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - FromHandle
    - OGR_G_GetGeometryRef
    - ToHandle
    - OGRMiraMonLayer::MMProcessMultiGeometry
    - CPLError
    - wkbFlatten
    - OGRMiraMonLayer::MMProcessGeometry
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMiraMonLayer::MMProcessMultiGeometry(OGRGeometryH hGeom,\n
      \                                              OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1643,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1647,1
    - Dst: OGR_G_Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1651,1
    - Dst: OGR_G_Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1658,1
    - Dst: OGR_G_Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1669,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1677,1
    - Dst: MMResetFeatureGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1696,1
    - Dst: MMResetFeatureRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1699,1
    - Dst: OGRMiraMonLayer::TranslateFieldsToMM
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1702,1
    - Dst: OGRMiraMonLayer::TranslateFieldsValuesToMM
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1707,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1710,1
    - Dst: OGRMiraMonLayer::MMLoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1722,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1722,1
    - Dst: MMInitLayerByType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1729,1
    - Dst: OGRMiraMonLayer::MMWriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1738,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1739,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - hGeom
    - poFeature
    - bcalculateRecord
    argTypes:
    - OGRGeometryH
    - OGRFeature*
    - MM_BOOLEAN
    constantsTouched: []
    func_position:
      end: 1741
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1741
    functionName: OGRMiraMonLayer::MMProcessGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRMiraMonLayer::MMWriteGeometry
    - CPLDebugOnly
    - FromHandle
    - OGRMiraMonLayer::TranslateFieldsToMM
    - MMResetFeatureGeometry
    - ToHandle
    - OGRMiraMonLayer::TranslateFieldsValuesToMM
    - OGR_G_Is3D
    - MMResetFeatureRecord
    - CPLError
    - wkbFlatten
    - OGRMiraMonLayer::MMLoadGeometry
    - MMInitLayerByType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMiraMonLayer::MMProcessGeometry(OGRGeometryH hGeom,\n                                          OGRFeature
      *poFeature,\n                                          MM_BOOLEAN bcalculateRecord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1754,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1762,1
    - Dst: OGRMiraMonLayer::MMProcessGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1767,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1769,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1775,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1775,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1781,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1781,1
    - Dst: OGRMiraMonLayer::MMProcessMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1782,1
    - Dst: OGRMiraMonLayer::MMProcessMultiGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1791,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1791,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1798,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1801,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1805
      start: 1747
    functionDepth: 3
    functionLinenumber: 1747
    functionLinenumberEnd: 1805
    functionName: OGRMiraMonLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::getGeometryType
    - OGR_G_GetGeometryRef
    - ToHandle
    - OGRMiraMonLayer::MMProcessMultiGeometry
    - CPLError
    - wkbFlatten
    - OGRMiraMonLayer::MMProcessGeometry
    - OGRFeature*::SetFID
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitLayerByType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1822,1
    - Dst: MMResize_MM_N_VERTICES_TYPE_Pointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1826,1
    - Dst: MMResizeVFGPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1834,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1844,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1845,1
    - Dst: OGRGeometry*::toLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1846,1
    - Dst: OGR_G_GetPointCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1850,1
    - Dst: MMResizeMM_POINT2DPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1852,1
    - Dst: MMResizeDoublePointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1857,1
    - Dst: OGR_G_GetX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1868,1
    - Dst: OGR_G_GetY
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1869,1
    - Dst: OGR_G_GetCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1870,1
    - Dst: OGR_G_GetZ
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1875,1
    - Dst: CPLIsEqual
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1884,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - hGeom
    - bExternalRing
    - bUseVFG
    argTypes:
    - OGRGeometryH
    - MM_BOOLEAN
    - MM_BOOLEAN
    constantsTouched: []
    func_position:
      end: 1893
      start: 1811
    functionDepth: 4
    functionLinenumber: 1811
    functionLinenumberEnd: 1893
    functionName: OGRMiraMonLayer::MMDumpVertices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - OGR_G_GetPointCount
    - OGR_G_GetZ
    - MMResizeDoublePointer
    - OGR_G_GetX
    - OGR_G_GetY
    - CPLIsEqual
    - MMResizeMM_POINT2DPointer
    - MMResizeVFGPointer
    - MMResize_MM_N_VERTICES_TYPE_Pointer
    - OGRGeometry*::toLinearRing
    - OGR_G_GetCoordinateDimension
    - MMInitLayerByType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMiraMonLayer::MMDumpVertices(OGRGeometryH hGeom,\n                                       MM_BOOLEAN
      bExternalRing,\n                                       MM_BOOLEAN bUseVFG)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1918,1
    - Dst: OGRMiraMonLayer::MMLoadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1921,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1930,1
    - Dst: OGRMiraMonLayer::MMDumpVertices
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1933,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1942,1
    - Dst: OGRMiraMonLayer::MMDumpVertices
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1949,1
    - Dst: OGRMiraMonLayer::MMDumpVertices
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1957,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1964,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 1
    argNames:
    - hGeom
    argTypes:
    - OGRGeometryH
    constantsTouched: []
    func_position:
      end: 1971
      start: 1901
    functionDepth: 5
    functionLinenumber: 1901
    functionLinenumberEnd: 1971
    functionName: OGRMiraMonLayer::MMLoadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - OGRMiraMonLayer::MMLoadGeometry
    - OGR_G_GetGeometryRef
    - OGRMiraMonLayer::MMDumpVertices
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::MMLoadGeometry(OGRGeometryH hGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMAddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1982,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1986,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1988,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1989,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1994,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:1996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 2005
    functionName: OGRMiraMonLayer::MMWriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLDebugOnly
    - VSIStrerror
    - MMAddFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::MMWriteGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2016,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2019,1
    - Dst: static_cast<struct MiraMonDataBase *>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2024,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2025,1
    - Dst: static_cast<struct MiraMonDataBaseField *>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2030,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2031,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2031,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2039,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2040,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2043,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2046,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2050,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2082,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2108,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2110,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2112,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2114,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2128,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2130,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2132,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2143,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2151,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2160,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2163,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2166,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2175,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2175,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2189,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2201,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2204,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2208,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2210,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2214,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2222,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2225,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2229,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2231,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2240,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2013
    functionDepth: 2
    functionLinenumber: 2013
    functionLinenumberEnd: 2242
    functionName: OGRMiraMonLayer::TranslateFieldsToMM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebugOnly
    - static_cast<struct MiraMonDataBaseField *>
    - CPLStrlcpy
    - GetFieldCount
    - VSICalloc
    - EQUAL
    - static_cast<struct MiraMonDataBase *>
    - GetFieldDefn
    - memset
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::TranslateFieldsToMM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2253,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2261,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2268,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2270,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2276,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2279,1
    - Dst: MMResizeMiraMonRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2280,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2289,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2291,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2314,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2323,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2326,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2330,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2352,1
    - Dst: MMResizeMiraMonRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2353,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2362,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2384,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2396,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2409,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2413,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2427,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2432,1
    - Dst: MMResizeMiraMonRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2433,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2442,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2463,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2465,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2484,1
    - Dst: MMResizeMiraMonRecord
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2485,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2494,1
    - Dst: MM_SprintfDoubleSignifFigures
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2513,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2518,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2530,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2532,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2539,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2547,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2554,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2557,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2561,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2578,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2580,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2587,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2591,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2593,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2597,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2599,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2609,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2611,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2618,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2623,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2634,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2636,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2643,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2649,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2651,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2663,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2676,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2689,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2691,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2698,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2703,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2705,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2715,1
    - Dst: MMResizeMiraMonFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2717,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2724,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2735,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2738,1
    - Dst: MM_SprintfDoubleSignifFigures
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2742,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2746,1
    - Dst: MM_SecureCopyStringFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2749,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2759,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 205
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2767
      start: 2250
    functionDepth: 3
    functionLinenumber: 2250
    functionLinenumberEnd: 2767
    functionName: OGRMiraMonLayer::TranslateFieldsValuesToMM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetFieldAsInteger64
    - MMResizeMiraMonRecord
    - strcmp
    - GetFieldDefn
    - CPLError
    - MM_SecureCopyStringFieldValue
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetRawFieldRef
    - MAX
    - MMIsEmptyString
    - MM_SprintfDoubleSignifFigures
    - CSLCount
    - MMResizeMiraMonFieldValue
    - GetFieldCount
    - CPLSPrintf
    - snprintf
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - CPLsnprintf
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::TranslateFieldsValuesToMM(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2773
    functionDepth: 0
    functionLinenumber: 2773
    functionLinenumberEnd: 2776
    functionName: OGRMiraMonLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMiraMonLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 2816
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2816
    functionName: OGRMiraMonLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMiraMonLayer::IGetExtent(int /* iGeomField*/, OGREnvelope
      *psExtent,\n                                   bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2825,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2828,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2831,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2834,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2837,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2840,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2843,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2847
      start: 2822
    functionDepth: 0
    functionLinenumber: 2822
    functionLinenumberEnd: 2847
    functionName: OGRMiraMonLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMiraMonLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2858,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2865,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2871,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2882,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2887,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2889,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2890,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2890,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2896,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2901
      start: 2853
    functionDepth: 2
    functionLinenumber: 2853
    functionLinenumberEnd: 2901
    functionName: OGRMiraMonLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetFieldTypeName
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn::SetType
    - OGRFieldDefn*::GetType
    - AddFieldDefn
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMiraMonLayer::CreateField(const OGRFieldDefn *poField, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2914,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2915,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2924,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2925,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2927,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2929,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2929,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2930,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2931,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2936,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2937,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2939,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2941,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2941,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2942,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2943,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2952,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2953,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2955,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2957,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2957,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2958,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2959,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2964,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2965,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2967,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2969,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2969,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2970,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2971,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2976,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2977,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2979,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2981,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2981,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2982,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2983,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2988,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2989,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2991,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2993,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2993,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2994,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:2995,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3000,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3001,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3003,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3005,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3005,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3006,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3007,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3017,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3018,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3020,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3022,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3022,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3023,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3024,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3037,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3040,1
    - Dst: MM_RemoveInitial_and_FinalQuotationMarks
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3042,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3045,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3045,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3046,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3049,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3051,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3052,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3056,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3057,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3057,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3060,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3061,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3063,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3065,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3065,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3066,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3067,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3073,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3073,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3074,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3074,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3075,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3077,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3077,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3078,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3079,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3079,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3084,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3084,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3085,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3087,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3087,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3088,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3089,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3089,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3094,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3094,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3095,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3097,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3097,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3098,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3099,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3099,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3104,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3104,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3105,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3107,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3107,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3108,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3109,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3109,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3114,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3114,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3115,1
    - Dst: CPLStringList::AddStringDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3117,1
    - Dst: VSIGetCanonicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3118,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3119,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3119,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp:3123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 1
    argNames:
    - oFileList
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 3124
      start: 2907
    functionDepth: 1
    functionLinenumber: 2907
    functionLinenumberEnd: 3124
    functionName: OGRMiraMonLayer::AddToFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramonlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::AddStringDirectly
    - CPLFree
    - CPLStrlcpy
    - CPLGetBasenameSafe
    - CPLGetDirnameSafe
    - MM_RemoveInitial_and_FinalQuotationMarks
    - MMIsEmptyString
    - CPLStrlcat
    - std::string::c_str
    - CPLFormFilenameSafe
    - VSIGetCanonicalFilename
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: void
    signature: void OGRMiraMonLayer::AddToFileList(CPLStringList &oFileList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: MiraMonGetMM_m_idofic_csv
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/embedded_resources.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MiraMonGetMM_m_idofic_csv(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OGRMiraMonLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramon.h:126,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramon.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: OGRMiraMonDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramon.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 62
    functionName: MM_FIELD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_gdal_structures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_C_START
    signature: CPL_C_START MM_FIELD
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: OGRMiraMonDataSource::OGRMiraMonDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void OGRMiraMonDataSource::OGRMiraMonDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:29,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: OGRMiraMonDataSource::~OGRMiraMonDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRMiraMonDataSource::~OGRMiraMonDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRMiraMonLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:44,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:51,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:54,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:54,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:55,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:55,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:56,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:56,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:57,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:57,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:59,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:60,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:61,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:62,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:62,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:68,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:79,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:80,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:81,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:82,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:83,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:84,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:85,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:86,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:86,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:87,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:97,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - pszFilename
    - fp
    - poSRS
    - papszOpenOptionsUsr
    argTypes:
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 100
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 100
    functionName: OGRMiraMonDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSIFPrintfL
    - empty
    - CPLStrlcpy
    - CPLGetBasenameSafe
    - CPLFormFilenameSafe
    - auto::GetName
    - EQUAL
    - VSIFOpenL
    - std::move
    - std::string::c_str
    - std::make_unique<OGRMiraMonLayer>
    - emplace_back
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: "bool OGRMiraMonDataSource::Open(const char *pszFilename, VSILFILE
      *fp,\n                                const OGRSpatialReference *poSRS,\n                                CSLConstList
      papszOpenOptionsUsr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszDataSetName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: OGRMiraMonDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool OGRMiraMonDataSource::Create(const char *pszDataSetName,\n                                  CSLConstList
      /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:128,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:130,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:132,1
    - Dst: srand
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:136,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:136,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:140,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:149,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:149,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:151,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:152,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:152,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:152,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:154,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:154,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:155,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:156,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:160,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:160,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:161,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:161,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:164,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:164,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:165,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:167,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:168,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:176,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:176,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:182,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:182,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:185,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:185,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:186,1
    - Dst: VSIMkdir
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:188,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:190,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:192,1
    - Dst: OGRMiraMonDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:202,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:202,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:204,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 208
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 208
    functionName: OGRMiraMonDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - STARTS_WITH
    - srand
    - std::string::c_str
    - CPLGetExtensionSafe
    - std::string::empty
    - CPLGetDirnameSafe
    - VSI_ISDIR
    - VSIMkdir
    - OGRMiraMonDataSource::Open
    - c_str
    - OGRGeomFieldDefn*::GetType
    - CPLAssert
    - time
    - OGR_GT_HasM
    - CPLFormFilenameSafe
    - back
    - VSIStatL
    - CPLResetExtensionSafe
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - std::string::pop_back
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMiraMonDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                  const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                  CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:217,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: OGRMiraMonDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMiraMonDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:232,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:232,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: OGRMiraMonDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMiraMonDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:244,1
    - Dst: AddToFileList
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:247,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: OGRMiraMonDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::StealList
    - AddToFileList
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **OGRMiraMonDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: MM_IsNANDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 1
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool MM_IsNANDouble(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: MM_IsDoubleInfinite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 1
    functionsReached:
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool MM_IsDoubleInfinite(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:35,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:36,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:37,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 66
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 66
    functionName: OGRMiraMonDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRMiraMonDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMiraMonDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:75,1
    - Dst: std::make_unique<OGRMiraMonDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:78,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:79,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:82,1
    - Dst: GDALDataset::ReportUpdateNotSupportedByDriver
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:87,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: OGRMiraMonDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 0
    functionsReached:
    - OGRMiraMonDriverIdentify
    - std::make_unique<OGRMiraMonDataSource>
    - GDALDataset::ReportUpdateNotSupportedByDriver
    - auto::release
    - auto::Open
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMiraMonDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRMiraMonDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:103,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:105,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:107,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - pszName
    - int
    - int
    - int
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: OGRMiraMonDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 0
    functionsReached:
    - auto::Create
    - auto::release
    - std::make_unique<OGRMiraMonDataSource>
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRMiraMonDriverCreate(const char *pszName, CPL_UNUSED
      int /*nBands*/,\n                       CPL_UNUSED int /*nXSize*/, CPL_UNUSED
      int /*nYSize*/,\n                       CPL_UNUSED GDALDataType /*eDT*/, char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:120,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:123,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:124,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:126,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:127,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:128,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:130,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:131,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:133,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:134,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:136,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:161,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:193,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 202
    functionName: RegisterOGRMiraMon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/ogrmiramondriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMiraMon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - nCount
    - nSize
    argTypes:
    - GUInt64
    - GUInt64
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: MMCheckSize_t
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: int MMCheckSize_t(GUInt64 nCount, GUInt64 nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - pTopHeader
    argTypes:
    - struct MM_TH*
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: MMGetVectorVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MMGetVectorVersion(struct MM_TH *pTopHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pTopHeader
    argTypes:
    - struct MM_TH*
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: MMSet1_1Version
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMSet1_1Version(struct MM_TH *pTopHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pTopHeader
    argTypes:
    - struct MM_TH*
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: MMSet2_0Version
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMSet2_0Version(struct MM_TH *pTopHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:161,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:163,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:165,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:167,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:169,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:171,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:173,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:176,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:179,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:182,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:188,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:193,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:199,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:203,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:205,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 2
    argNames:
    - pF
    - pMMHeader
    argTypes:
    - VSILFILE*
    - struct MM_TH*
    constantsTouched: []
    func_position:
      end: 216
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 216
    functionName: MMReadHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int MMReadHeader(VSILFILE *pF, struct MM_TH *pMMHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:239,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:241,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:243,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:245,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:247,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:249,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:251,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:254,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:257,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:260,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:267,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:270,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:276,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:281,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:283,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:287,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:289,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 50
    argCount: 2
    argNames:
    - pF
    - pMMHeader
    argTypes:
    - VSILFILE*
    - struct MM_TH*
    constantsTouched: []
    func_position:
      end: 293
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 293
    functionName: MMWriteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int MMWriteHeader(VSILFILE *pF, struct MM_TH *pMMHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:308,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:323,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:340,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:355,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:358,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:361,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:364,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:367,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:371,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:376,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 3
    argNames:
    - hMiraMonLayer
    - pF
    - pZSection
    argTypes:
    - struct MiraMonVectLayerInfo*
    - VSILFILE*
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 382
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 382
    functionName: MMReadZSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - MMCheckSize_t
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: "int MMReadZSection(struct MiraMonVectLayerInfo *hMiraMonLayer, VSILFILE
      *pF,\n                   struct MM_ZSection *pZSection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:388,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:391,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:393,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:395,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:397,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:402,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pF
    - pZSection
    argTypes:
    - VSILFILE*
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 411
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 411
    functionName: MMWriteZSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int MMWriteZSection(VSILFILE *pF, struct MM_ZSection *pZSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:436,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:440,1
    - Dst: MMReadFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:445,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:448,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:457,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:460,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:467,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:470,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:477,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:480,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:488,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:491,1
    - Dst: MMReadOffsetDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:496,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:500,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:505,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 4
    argNames:
    - hMiraMonLayer
    - pF
    - nElements
    - pZSection
    argTypes:
    - struct MiraMonVectLayerInfo*
    - VSILFILE*
    - MM_INTERNAL_FID
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 508
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 508
    functionName: MMReadZDescriptionHeaders
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMReadOffsetDependingOnVersion
    - MMReadBlockFromBuffer
    - MMInitFlush
    - VSIFree
    - MMReadFlush
    linkageType: ''
    returnType: int
    signature: "int MMReadZDescriptionHeaders(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             VSILFILE *pF, MM_INTERNAL_FID nElements,\n                              struct
      MM_ZSection *pZSection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:536,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:540,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:550,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:553,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:560,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:563,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:570,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:573,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:581,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:594,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:598,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:603,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:608,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:611,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:617,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - hMiraMonLayer
    - pF
    - nElements
    - pZSection
    argTypes:
    - struct MiraMonVectLayerInfo*
    - VSILFILE*
    - MM_INTERNAL_FID
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 620
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 620
    functionName: MMWriteZDescriptionHeaders
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMAppendIntegerDependingOnVersion
    - MMAppendBlockToBuffer
    - MMInitFlush
    - VSIFree
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int MMWriteZDescriptionHeaders(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                          VSILFILE *pF, MM_INTERNAL_FID nElements,\n                           struct
      MM_ZSection *pZSection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:626,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pZSection
    argTypes:
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 635
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 635
    functionName: MMDestroyZSectionDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void MMDestroyZSectionDescription(struct MM_ZSection *pZSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:639,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pZSection
    argTypes:
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 654
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 654
    functionName: MMInitZSectionDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMCheckSize_t
    - VSICalloc
    linkageType: ''
    returnType: int
    signature: int MMInitZSectionDescription(struct MM_ZSection *pZSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitZSectionDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:684,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:691,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:701,1
    - Dst: MMInitZSectionDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:708,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:722,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - hMiraMonLayer
    - pF3d
    - pZSection
    argTypes:
    - struct MiraMonVectLayerInfo*
    - VSILFILE*
    - struct MM_ZSection*
    constantsTouched: []
    func_position:
      end: 727
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 727
    functionName: MMInitZSectionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMInitZSectionDescription
    - MMCheckSize_t
    - MMInitFlush
    linkageType: ''
    returnType: int
    signature: "int MMInitZSectionLayer(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                              VSILFILE *pF3d, struct MM_ZSection *pZSection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:752,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:752,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:753,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:756,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:756,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:756,1
    - Dst: MM_stristr
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:763,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:766,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:772,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - pszName
    - nMaxSizeOfName
    - pszFinalPart
    - pszNewPart
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 775
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 775
    functionName: MMChangeFinalPartOfTheName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMIsEmptyString
    - MM_stristr
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int MMChangeFinalPartOfTheName(char *pszName, size_t nMaxSizeOfName,\n
      \                                     const char *pszFinalPart,\n                                      const
      char *pszNewPart)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:792,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:802,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:807,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:810,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:815,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:820,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:825,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:828,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:833,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:835,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:843,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:848,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:851,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:856,1
    - Dst: MMInitZSectionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:862,1
    - Dst: MMReadZSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:868,1
    - Dst: MMReadZDescriptionHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:872,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:883,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:889,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:892,1
    - Dst: MMCheck_REL_FILE
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:903,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:911,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:917,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:921,1
    - Dst: MM_ReadExtendedDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:929,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 934
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 934
    functionName: MMInitPointLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_ReadExtendedDBFHeader
    - MMChangeFinalPartOfTheName
    - MMReadZSection
    - CPLStrlcpy
    - VSIFSeekL
    - MMInitZSectionLayer
    - MMReadZDescriptionHeaders
    - MMInitFlush
    - MMCheck_REL_FILE
    - VSIFOpenL
    - snprintf
    - CPLError
    - MMInitBoundingBox
    linkageType: ''
    returnType: int
    signature: int MMInitPointLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:956,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:961,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:962,1
    - Dst: CPLResetExtension
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:963,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:967,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:971,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:976,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:982,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:988,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:995,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:999,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1011,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1012,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1017,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1021,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1026,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1028,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1033,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1035,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1041,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1043,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1048
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1048
    functionName: MMInitNodeLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMChangeFinalPartOfTheName
    - CPLError
    - CPLStrlcpy
    - VSIFSeekL
    - VSICalloc
    - CPLResetExtension
    - MMInitFlush
    - VSIFOpenL
    - MMCheckSize_t
    - strcpy
    - MMInitBoundingBox
    linkageType: ''
    returnType: int
    signature: int MMInitNodeLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1075,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1083,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1089,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1095,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1098,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1107,1
    - Dst: MMReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1111,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1134,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1137,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1141,1
    - Dst: MMReadAHArcSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1150,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1167,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1172,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1176,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1179,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1184,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1186,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1198,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1204,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1213,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1218,1
    - Dst: MMInitZSectionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1224,1
    - Dst: MMReadZSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1232,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1235,1
    - Dst: MMReadZDescriptionHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1241,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1245,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1257,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1263,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1264,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1274,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1280,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1283,1
    - Dst: MMCheck_REL_FILE
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1293,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1306,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1312,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1314,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1324,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1330,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1333,1
    - Dst: MM_ReadExtendedDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1342,1
    - Dst: MMInitNodeLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1347,1
    - Dst: MMSet1_1Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1350,1
    - Dst: MMSet2_0Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1352,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 149
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1355
      start: 1050
    functionDepth: 4
    functionLinenumber: 1050
    functionLinenumberEnd: 1355
    functionName: MMInitArcLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMSet2_0Version
    - MMInitZSectionLayer
    - VSICalloc
    - CPLError
    - MM_ReadExtendedDBFHeader
    - MMReadZSection
    - CPLStrlcpy
    - MMCheck_REL_FILE
    - MMSet1_1Version
    - MMCheckSize_t
    - MMInitBoundingBox
    - MMChangeFinalPartOfTheName
    - VSIFSeekL
    - MMReadZDescriptionHeaders
    - MMInitFlush
    - VSIFOpenL
    - MMReadAHArcSection
    - snprintf
    - MMInitNodeLayer
    - MMReadHeader
    - strcpy
    linkageType: ''
    returnType: int
    signature: int MMInitArcLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1372,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1378,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1385,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1387,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1401,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1405,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1408,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1413,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1415,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1434,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1437,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1441,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1459,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1464,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1472,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1477,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1479,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1488,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1494,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1498,1
    - Dst: MMCheck_REL_FILE
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1507,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1517,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1523,1
    - Dst: MMChangeFinalPartOfTheName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1526,1
    - Dst: MM_ReadExtendedDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1534,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1357
    functionDepth: 3
    functionLinenumber: 1357
    functionLinenumberEnd: 1539
    functionName: MMInitPolygonLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_ReadExtendedDBFHeader
    - MMChangeFinalPartOfTheName
    - CPLStrlcpy
    - VSIFSeekL
    - VSICalloc
    - MMInitFlush
    - MMCheck_REL_FILE
    - VSIFOpenL
    - snprintf
    - MMCheckSize_t
    - CPLError
    - memset
    - MMInitBoundingBox
    linkageType: ''
    returnType: int
    signature: int MMInitPolygonLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1551,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1557,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1564,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1566,1
    - Dst: CPLGetBasename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1567,1
    - Dst: MMInitPointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1570,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1584,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1590,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1598,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1600,1
    - Dst: CPLGetBasename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1601,1
    - Dst: MMInitArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1604,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1618,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1624,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1632,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1634,1
    - Dst: CPLGetBasename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1635,1
    - Dst: MMInitPolygonLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1638,1
    - Dst: MMReturnValueFromSectionINIFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1649,1
    - Dst: MM_RemoveInitial_and_FinalQuotationMarks
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1654,1
    - Dst: CPLGetExtension
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1657,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1658,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1664,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1667,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1670,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1670,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1673,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1677,1
    - Dst: CPLFormFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1679,1
    - Dst: CPLGetPath
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1679,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1683,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1688,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1695,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1698,1
    - Dst: MMReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1707,1
    - Dst: MMReadPHPolygonSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1713,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1715,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1721,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1726,1
    - Dst: MMInitArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1731,1
    - Dst: MMSet1_1Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1742,1
    - Dst: MMSet2_0Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1744,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1749,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1755
      start: 1541
    functionDepth: 5
    functionLinenumber: 1541
    functionLinenumberEnd: 1755
    functionName: MMInitLayerByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - MMSet2_0Version
    - CPLGetPath
    - CPLError
    - CPLStrlcpy
    - MM_RemoveInitial_and_FinalQuotationMarks
    - MMIsEmptyString
    - MMInitPolygonLayer
    - MMSet1_1Version
    - CPLGetBasename
    - strlen
    - CPLGetExtension
    - MMInitArcLayer
    - VSIFPrintfL
    - MMReadPHPolygonSection
    - VSIFOpenL
    - snprintf
    - CPLFormFilename
    - MMReturnValueFromSectionINIFile
    - fclose_and_nullify
    - MMInitPointLayer
    - MMReadHeader
    - VSIFree
    linkageType: ''
    returnType: int
    signature: int MMInitLayerByType(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_FillFieldDescriptorByLanguage
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1766,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1768,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1779,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1783,1
    - Dst: MMSet1_1Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1789,1
    - Dst: MMSet1_1Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1795,1
    - Dst: MMSet2_0Version
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1801,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1806,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1807,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1807,1
    - Dst: MMInitLayerByType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1812,1
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1822,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 8
    argNames:
    - hMiraMonLayer
    - pzFileName
    - LayerVersion
    - nMMRecode
    - nMMLanguage
    - pLayerDB
    - ReadOrWrite
    - MMMap
    argTypes:
    - struct MiraMonVectLayerInfo*
    - char*
    - int
    - char
    - char
    - struct MiraMonDataBase*
    - MM_BOOLEAN
    - struct MiraMonVectMapInfo*
    constantsTouched: []
    func_position:
      end: 1837
      start: 1757
    functionDepth: 6
    functionLinenumber: 1757
    functionLinenumberEnd: 1837
    functionName: MMInitLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLStrdup
    - MMSet2_0Version
    - CPLGetFilename
    - MMResizeStringToOperateIfNeeded
    - MMSet1_1Version
    - MM_FillFieldDescriptorByLanguage
    - strcpy
    - memset
    - MMInitLayerByType
    linkageType: ''
    returnType: int
    signature: "int MMInitLayer(struct MiraMonVectLayerInfo *hMiraMonLayer,\n                const
      char *pzFileName, int LayerVersion, char nMMRecode,\n                char nMMLanguage,
      struct MiraMonDataBase *pLayerDB,\n                MM_BOOLEAN ReadOrWrite, struct
      MiraMonVectMapInfo *MMMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteZSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1860,1
    - Dst: MMWriteZDescriptionHeaders
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1864,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1869,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1872,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1878,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1880,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 7
    argNames:
    - hMiraMonLayer
    - nElements
    - pF
    - pF3d
    - pszF3d
    - pZSection
    - FinalOffset
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    - VSILFILE*
    - VSILFILE*
    - char*
    - struct MM_ZSection*
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 1883
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1883
    functionName: MMClose3DSectionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMWriteZSection
    - fclose_and_nullify
    - MMMoveFromFileToFile
    - VSIUnlink
    - MMWriteZDescriptionHeaders
    - MMAppendBlockToBuffer
    linkageType: ''
    returnType: int
    signature: "int MMClose3DSectionLayer(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                MM_INTERNAL_FID nElements, VSILFILE *pF,\n
      \                                VSILFILE *pF3d, const char *pszF3d,\n                                 struct
      MM_ZSection *pZSection,\n                                 MM_FILE_OFFSET FinalOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1898,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1906,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1908,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1912,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1916,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1921,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1924,1
    - Dst: MMClose3DSectionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1926,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1932,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1940,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1942
      start: 1885
    functionDepth: 3
    functionLinenumber: 1885
    functionLinenumberEnd: 1942
    functionName: MMClosePointLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - fclose_and_nullify
    - MMClose3DSectionLayer
    - MMMoveFromFileToFile
    - VSIUnlink
    - MMWriteHeader
    - MMAppendBlockToBuffer
    - CPLError
    linkageType: ''
    returnType: int
    signature: int MMClosePointLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1961,1
    - Dst: MMWriteNHNodeSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1966,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1971,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1973,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1978,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1980,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1985,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:1987,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 1990
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1990
    functionName: MMCloseNodeLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - fclose_and_nullify
    - MMMoveFromFileToFile
    - VSIUnlink
    - MMWriteHeader
    - MMAppendBlockToBuffer
    - MMWriteNHNodeSection
    linkageType: ''
    returnType: int
    signature: int MMCloseNodeLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2017,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2019,1
    - Dst: MMWriteAHArcSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2026,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2028,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2035,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2037,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2041,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2044,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2048,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2051,1
    - Dst: MMClose3DSectionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2054,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2059,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2067,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2069,1
    - Dst: MMCloseNodeLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2071,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2075
      start: 1992
    functionDepth: 3
    functionLinenumber: 1992
    functionLinenumberEnd: 2075
    functionName: MMCloseArcLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMCloseNodeLayer
    - fclose_and_nullify
    - MMClose3DSectionLayer
    - MMMoveFromFileToFile
    - VSIUnlink
    - MMWriteHeader
    - MMAppendBlockToBuffer
    - MMWriteAHArcSection
    - CPLError
    linkageType: ''
    returnType: int
    signature: int MMCloseArcLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCloseArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2087,1
    - Dst: MMWriteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2094,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2096,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2106,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2113,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2118,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2120,1
    - Dst: MMWritePHPolygonSection
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2123,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2125,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2132,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2134,1
    - Dst: MMMoveFromFileToFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2141,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2145,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2148,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2154,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2156,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2159
      start: 2077
    functionDepth: 4
    functionLinenumber: 2077
    functionLinenumberEnd: 2159
    functionName: MMClosePolygonLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - fclose_and_nullify
    - MMCloseArcLayer
    - MMMoveFromFileToFile
    - VSIUnlink
    - MMWriteHeader
    - MMAppendBlockToBuffer
    - MMWritePHPolygonSection
    - CPLError
    linkageType: ''
    returnType: int
    signature: int MMClosePolygonLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMClosePointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2171,1
    - Dst: MMCloseArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2175,1
    - Dst: MMClosePolygonLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2179,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2185,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2187,1
    - Dst: MMWriteVectorMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2195,1
    - Dst: MMCloseMMBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2202,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2209
      start: 2161
    functionDepth: 5
    functionLinenumber: 2161
    functionLinenumberEnd: 2209
    functionName: MMCloseLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCloseMMBD_XP
    - MMCloseArcLayer
    - VSIUnlink
    - MMClosePointLayer
    - MMClosePolygonLayer
    - CPLError
    - MMWriteVectorMetadata
    linkageType: ''
    returnType: int
    signature: int MMCloseLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2218,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pMMAdmDB
    argTypes:
    - struct MMAdmDatabase*
    constantsTouched: []
    func_position:
      end: 2228
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2228
    functionName: MMDestroyMMAdmDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void MMDestroyMMAdmDB(struct MMAdmDatabase *pMMAdmDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2237,1
    - Dst: MMDestroyZSectionDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2241,1
    - Dst: MMDestroyMMAdmDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2245
      start: 2230
    functionDepth: 2
    functionLinenumber: 2230
    functionLinenumberEnd: 2245
    functionName: MMDestroyPointLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMDestroyMMAdmDB
    - VSIFree
    - MMDestroyZSectionDescription
    linkageType: ''
    returnType: int
    signature: int MMDestroyPointLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2261,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2267,1
    - Dst: MMDestroyMMAdmDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2273
      start: 2247
    functionDepth: 2
    functionLinenumber: 2247
    functionLinenumberEnd: 2273
    functionName: MMDestroyNodeLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMDestroyMMAdmDB
    - VSIFree
    linkageType: ''
    returnType: int
    signature: int MMDestroyNodeLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2289,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2294,1
    - Dst: MMDestroyZSectionDescription
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2298,1
    - Dst: MMDestroyMMAdmDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2299,1
    - Dst: MMDestroyNodeLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2303
      start: 2275
    functionDepth: 3
    functionLinenumber: 2275
    functionLinenumberEnd: 2303
    functionName: MMDestroyArcLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMDestroyMMAdmDB
    - VSIFree
    - MMDestroyNodeLayer
    - MMDestroyZSectionDescription
    linkageType: ''
    returnType: int
    signature: int MMDestroyArcLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDestroyArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2314,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2318,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2324,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2330,1
    - Dst: MMDestroyMMAdmDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2337
      start: 2305
    functionDepth: 4
    functionLinenumber: 2305
    functionLinenumberEnd: 2337
    functionName: MMDestroyPolygonLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMDestroyArcLayer
    - VSIFree
    - MMDestroyMMAdmDB
    linkageType: ''
    returnType: int
    signature: int MMDestroyPolygonLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDestroyPointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2347,1
    - Dst: MMDestroyArcLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2349,1
    - Dst: MMDestroyPolygonLayer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2351,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2355,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2360,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2365,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2371,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2377,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2383,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2388,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2393,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2398,1
    - Dst: free
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2403,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2409,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2415,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2424,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2427,1
    - Dst: MMDestroyMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2432,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2435
      start: 2339
    functionDepth: 5
    functionLinenumber: 2339
    functionLinenumberEnd: 2435
    functionName: MMDestroyLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMDestroyMMDB
    - free
    - MMDestroyPolygonLayer
    - MMDestroyArcLayer
    - MMDestroyPointLayer
    - VSIFree
    linkageType: ''
    returnType: int
    signature: int MMDestroyLayer(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2447,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2454,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2459,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2465,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 6
    argNames:
    - pFlush
    - pF
    - nBlockSize
    - pBuffer
    - DiskOffsetWhereToFlush
    - nMyDiskSize
    argTypes:
    - struct MM_FLUSH_INFO*
    - VSILFILE*
    - GUInt64
    - char**
    - MM_FILE_OFFSET
    - GInt32
    constantsTouched: []
    func_position:
      end: 2475
      start: 2443
    functionDepth: 2
    functionLinenumber: 2443
    functionLinenumberEnd: 2475
    functionName: MMInitFlush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 8
    functionsReached:
    - CPLError
    - memset
    - MMCheckSize_t
    - VSICalloc
    linkageType: ''
    returnType: int
    signature: "int MMInitFlush(struct MM_FLUSH_INFO *pFlush, VSILFILE *pF, GUInt64
      nBlockSize,\n                char **pBuffer, MM_FILE_OFFSET DiskOffsetWhereToFlush,\n
      \               GInt32 nMyDiskSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2480,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pFlush
    argTypes:
    - struct MM_FLUSH_INFO*
    constantsTouched: []
    func_position:
      end: 2486
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2486
    functionName: MMReadFlush
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - VSIFSeekL
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int MMReadFlush(struct MM_FLUSH_INFO *pFlush)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2494,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - FlushInfo
    argTypes:
    - struct MM_FLUSH_INFO*
    constantsTouched: []
    func_position:
      end: 2506
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2506
    functionName: MMFlushToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: int MMFlushToDisk(struct MM_FLUSH_INFO *FlushInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - FlushInfo
    argTypes:
    - struct MM_FLUSH_INFO*
    constantsTouched: []
    func_position:
      end: 2524
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2524
    functionName: MMReadBlockFromBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int MMReadBlockFromBuffer(struct MM_FLUSH_INFO *FlushInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMFlushToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2537,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2548,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2556,1
    - Dst: MMFlushToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2566,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2569,1
    - Dst: MMFlushToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2575,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - FlushInfo
    argTypes:
    - struct MM_FLUSH_INFO*
    constantsTouched: []
    func_position:
      end: 2576
      start: 2528
    functionDepth: 2
    functionLinenumber: 2528
    functionLinenumberEnd: 2576
    functionName: MMAppendBlockToBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 7
    functionsReached:
    - MMAppendBlockToBuffer
    - memcpy
    - MMFlushToDisk
    linkageType: ''
    returnType: int
    signature: int MMAppendBlockToBuffer(struct MM_FLUSH_INFO *FlushInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2590,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2595,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2596,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2597,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2601,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2604,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pSrcFile
    - pDestFile
    - pnOffset
    argTypes:
    - VSILFILE*
    - VSILFILE*
    - MM_FILE_OFFSET*
    constantsTouched: []
    func_position:
      end: 2611
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2611
    functionName: MMMoveFromFileToFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 5
    functionsReached:
    - VSIFSeekL
    - VSICalloc
    - VSIFree
    - VSIFWriteL
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: "int MMMoveFromFileToFile(VSILFILE *pSrcFile, VSILFILE *pDestFile,\n
      \                        MM_FILE_OFFSET *pnOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Offset
    argTypes:
    - MM_FILE_OFFSET*
    constantsTouched: []
    func_position:
      end: 2627
      start: 2618
    functionDepth: 0
    functionLinenumber: 2618
    functionLinenumberEnd: 2627
    functionName: MMGetOffsetAlignedTo8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMGetOffsetAlignedTo8(MM_FILE_OFFSET *Offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2643,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - hMiraMonLayer
    - FlushInfo
    - pnUI64
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MM_FLUSH_INFO*
    - GUInt64*
    constantsTouched: []
    func_position:
      end: 2662
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2662
    functionName: MMReadGUInt64DependingOnVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMReadBlockFromBuffer
    linkageType: ''
    returnType: int
    signature: "int MMReadGUInt64DependingOnVersion(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                   struct MM_FLUSH_INFO *FlushInfo,\n                                    GUInt64
      *pnUI64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2678,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - hMiraMonLayer
    - FlushInfo
    - pnUI64
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MM_FLUSH_INFO*
    - MM_FILE_OFFSET*
    constantsTouched: []
    func_position:
      end: 2697
      start: 2665
    functionDepth: 1
    functionLinenumber: 2665
    functionLinenumberEnd: 2697
    functionName: MMReadOffsetDependingOnVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMReadBlockFromBuffer
    linkageType: ''
    returnType: int
    signature: "int MMReadOffsetDependingOnVersion(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                  struct MM_FLUSH_INFO *FlushInfo,\n                                   MM_FILE_OFFSET
      *pnUI64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - hMiraMonLayer
    - FlushInfo
    - nUL32
    - nUI64
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MM_FLUSH_INFO*
    - uint32_t*
    - GUInt64
    constantsTouched: []
    func_position:
      end: 2725
      start: 2700
    functionDepth: 3
    functionLinenumber: 2700
    functionLinenumberEnd: 2725
    functionName: MMAppendIntegerDependingOnVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMAppendBlockToBuffer
    linkageType: ''
    returnType: int
    signature: "int MMAppendIntegerDependingOnVersion(\n    struct MiraMonVectLayerInfo
      *hMiraMonLayer, struct MM_FLUSH_INFO *FlushInfo,\n    uint32_t *nUL32, GUInt64
      nUI64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2756,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2763,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2767,1
    - Dst: MMReadFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2771,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2774,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2785,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2788,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2795,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2798,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2805,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2808,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2815,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2818,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2824,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2828,1
    - Dst: MMReadOffsetDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2834,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2839,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2843,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2848,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2852,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2857,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2865,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2868,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2874,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 2876
      start: 2733
    functionDepth: 3
    functionLinenumber: 2733
    functionLinenumberEnd: 2876
    functionName: MMReadAHArcSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMReadOffsetDependingOnVersion
    - MMReadBlockFromBuffer
    - MMInitFlush
    - VSIFree
    - MMCheckSize_t
    - MMReadGUInt64DependingOnVersion
    - MMReadFlush
    linkageType: ''
    returnType: int
    signature: int MMReadAHArcSection(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2900,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2904,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2917,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2920,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2926,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2929,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2935,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2938,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2944,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2947,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2952,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2957,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2962,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2967,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2971,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2976,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2980,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2985,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2994,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:2997,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3002,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3005,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3010,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 2
    argNames:
    - hMiraMonLayer
    - DiskOffset
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 3012
      start: 2878
    functionDepth: 4
    functionLinenumber: 2878
    functionLinenumberEnd: 3012
    functionName: MMWriteAHArcSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMAppendIntegerDependingOnVersion
    - VSIFree
    - MMAppendBlockToBuffer
    - MMInitFlush
    linkageType: ''
    returnType: int
    signature: "int MMWriteAHArcSection(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                       MM_FILE_OFFSET DiskOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3032,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3036,1
    - Dst: MMReadFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3041,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3044,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3055,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3058,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3066,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3069,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3074,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3077,1
    - Dst: MMReadOffsetDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3082,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3087,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3093,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 3095
      start: 3015
    functionDepth: 3
    functionLinenumber: 3015
    functionLinenumberEnd: 3095
    functionName: MMReadNHNodeSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMReadOffsetDependingOnVersion
    - MMReadBlockFromBuffer
    - MMInitFlush
    - VSIFree
    - MMReadFlush
    linkageType: ''
    returnType: int
    signature: int MMReadNHNodeSection(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3120,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3124,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3137,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3140,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3149,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3152,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3158,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3161,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3166,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3171,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3176,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3179,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3184,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - hMiraMonLayer
    - DiskOffset
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 3186
      start: 3098
    functionDepth: 4
    functionLinenumber: 3098
    functionLinenumberEnd: 3186
    functionName: MMWriteNHNodeSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMAppendIntegerDependingOnVersion
    - VSIFree
    - MMAppendBlockToBuffer
    - MMInitFlush
    linkageType: ''
    returnType: int
    signature: "int MMWriteNHNodeSection(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                        MM_FILE_OFFSET DiskOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3201,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3203,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3211,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3218,1
    - Dst: MMReadFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3222,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3225,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3236,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3239,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3246,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3249,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3256,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3259,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3266,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3269,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3274,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3279,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3284,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3289,1
    - Dst: MMReadGUInt64DependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3294,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3299,1
    - Dst: MMReadOffsetDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3304,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3309,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3318,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3321,1
    - Dst: MMReadBlockFromBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3330,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3333,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3339,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 3341
      start: 3188
    functionDepth: 3
    functionLinenumber: 3188
    functionLinenumberEnd: 3341
    functionName: MMReadPHPolygonSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMReadOffsetDependingOnVersion
    - MMReadBlockFromBuffer
    - MMInitFlush
    - VSIFree
    - MMCheckSize_t
    - MMReadGUInt64DependingOnVersion
    - MMReadFlush
    linkageType: ''
    returnType: int
    signature: int MMReadPHPolygonSection(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3367,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3371,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3384,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3387,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3393,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3396,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3402,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3405,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3411,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3414,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3419,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3424,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3429,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3434,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3439,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3444,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3449,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3454,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3464,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3467,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3477,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3480,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3485,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3488,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3493,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - hMiraMonLayer
    - DiskOffset
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 3495
      start: 3343
    functionDepth: 4
    functionLinenumber: 3343
    functionLinenumberEnd: 3495
    functionName: MMWritePHPolygonSection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMAppendIntegerDependingOnVersion
    - VSIFree
    - MMAppendBlockToBuffer
    - MMInitFlush
    linkageType: ''
    returnType: int
    signature: "int MMWritePHPolygonSection(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                           MM_FILE_OFFSET DiskOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3502,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3505,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3512,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3519,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - hMMFeature
    argTypes:
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 3528
      start: 3500
    functionDepth: 2
    functionLinenumber: 3500
    functionLinenumberEnd: 3528
    functionName: MMInitFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - memset
    - MMCheckSize_t
    - VSICalloc
    linkageType: ''
    returnType: int
    signature: int MMInitFeature(struct MiraMonFeature *hMMFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3535,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3541,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3547,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - hMMFeature
    argTypes:
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 3559
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3559
    functionName: MMResetFeatureGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MMResetFeatureGeometry(struct MiraMonFeature *hMMFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - hMMFeature
    argTypes:
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 3585
      start: 3562
    functionDepth: 0
    functionLinenumber: 3562
    functionLinenumberEnd: 3585
    functionName: MMResetFeatureRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMResetFeatureRecord(struct MiraMonFeature *hMMFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3592,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3597,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3602,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3608,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3625,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3629,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - hMMFeature
    argTypes:
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 3638
      start: 3588
    functionDepth: 1
    functionLinenumber: 3588
    functionLinenumberEnd: 3638
    functionName: MMDestroyFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void MMDestroyFeature(struct MiraMonFeature *hMMFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMResizePolHeaderPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3705,1
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3713,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3744,1
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3745,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3747,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3755,1
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3756,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3758,1
    - Dst: MMAddPolygonRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3762,1
    - Dst: MMCloseMMBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3768,1
    - Dst: MMDestroyMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3769,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3793,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3796,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3802,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3804,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3810,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3812,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3820,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3822,1
    - Dst: MMCheckVersionOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3830,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3832,1
    - Dst: MMCheckVersionOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3845,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3847,1
    - Dst: MMCheckVersionOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3855,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3857,1
    - Dst: MMCheckVersionFor3DOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3879,1
    - Dst: MMCheckVersionFor3DOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3887,1
    - Dst: MMCheckVersionFor3DOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3896,1
    - Dst: MMCloseMMBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3921,1
    - Dst: MMDestroyMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3922,1
    - Dst: MMResizeArcHeaderPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3933,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3937,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3938,1
    - Dst: MMResizeNodeHeaderPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3943,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3950,1
    - Dst: MMResizeZSectionDescrPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3958,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3963,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3965,1
    - Dst: MMInitBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:3975,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4013,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4015,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4020,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4022,1
    - Dst: MMUpdateBoundingBoxXY
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4027,1
    - Dst: MMUpdateBoundingBoxXY
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4030,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4036,1
    - Dst: MMUpdateBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4053,1
    - Dst: MMUpdateBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4055,1
    - Dst: MMAddArcRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4073,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4076,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4089,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4093,1
    - Dst: MMGetOffsetAlignedTo8
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4100,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4107,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4109,1
    - Dst: MMAddNodeRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4113,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4116,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4131,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4135,1
    - Dst: MMGetOffsetAlignedTo8
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4142,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4149,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4151,1
    - Dst: MMAddNodeRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4155,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4159,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4186,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4188,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4243,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4246,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4251,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4255,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4286,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4288,1
    - Dst: MMAppendIntegerDependingOnVersion
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4292,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4296,1
    - Dst: MMGetOffsetAlignedTo8
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4305,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4314,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4316,1
    - Dst: MMUpdateBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4323,1
    - Dst: MMAddPolygonRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4333,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4337,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 360
    argCount: 2
    argNames:
    - hMiraMonLayer
    - hMMFeature
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 4347
      start: 3641
    functionDepth: 4
    functionLinenumber: 3641
    functionLinenumberEnd: 4347
    functionName: MMCreateFeaturePolOrArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMAppendIntegerDependingOnVersion
    - MMAppendBlockToBuffer
    - CPLError
    - MMResizePolHeaderPointer
    - MMResizeZSectionDescrPointer
    - MMCreateMMDB
    - MMResizeNodeHeaderPointer
    - MMResizeArcHeaderPointer
    - MMCheckVersionFor3DOffset
    - MMCheckVersionOffset
    - MMInitBoundingBox
    - MMDestroyMMDB
    - MMCheckVersionForFID
    - MMCloseMMBD_XP
    - MMAddNodeRecordToMMDB
    - MMUpdateBoundingBox
    - MMAddArcRecordToMMDB
    - MMAddPolygonRecordToMMDB
    - CPLDebugOnly
    - sqrt
    - MMUpdateBoundingBoxXY
    - MMGetOffsetAlignedTo8
    linkageType: ''
    returnType: int
    signature: "int MMCreateFeaturePolOrArc(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                  struct MiraMonFeature *hMMFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4360,1
    - Dst: MMDestroyMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4362,1
    - Dst: MMAddDBFRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - hMiraMonLayer
    - hMMFeature
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 4374
      start: 4350
    functionDepth: 1
    functionLinenumber: 4350
    functionLinenumberEnd: 4374
    functionName: MMCreateRecordDBF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMDestroyMMDB
    - MMCreateMMDB
    - MMAddDBFRecordToMMDB
    linkageType: ''
    returnType: int
    signature: "int MMCreateRecordDBF(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                            struct MiraMonFeature *hMMFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4405,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4408,1
    - Dst: MMCheckVersionFor3DOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4417,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4426,1
    - Dst: MMCheckVersionFor3DOffset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4431,1
    - Dst: MMResizeZSectionDescrPointer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4442,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4447,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4456,1
    - Dst: MMUpdateBoundingBoxXY
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4489,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4496,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4500,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4510,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4516,1
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4537,1
    - Dst: MMAddPointRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4541,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 91
    argCount: 2
    argNames:
    - hMiraMonLayer
    - hMMFeature
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 4551
      start: 4377
    functionDepth: 3
    functionLinenumber: 4377
    functionLinenumberEnd: 4551
    functionName: MMCreateFeaturePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMCheckVersionForFID
    - MMCreateMMDB
    - MMUpdateBoundingBoxXY
    - MMAppendBlockToBuffer
    - MMAddPointRecordToMMDB
    - MMCheckVersionFor3DOffset
    - CPLError
    - MMResizeZSectionDescrPointer
    linkageType: ''
    returnType: int
    signature: "int MMCreateFeaturePoint(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                               struct MiraMonFeature *hMMFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hMiraMonLayer
    - FID
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    constantsTouched: []
    func_position:
      end: 4567
      start: 4555
    functionDepth: 0
    functionLinenumber: 4555
    functionLinenumberEnd: 4567
    functionName: MMCheckVersionForFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int MMCheckVersionForFID(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                        MM_INTERNAL_FID FID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hMiraMonLayer
    - OffsetToCheck
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 4586
      start: 4571
    functionDepth: 0
    functionLinenumber: 4571
    functionLinenumberEnd: 4586
    functionName: MMCheckVersionOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int MMCheckVersionOffset(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                        MM_FILE_OFFSET OffsetToCheck)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - hMiraMonLayer
    - nElemCount
    - nOffsetAL
    - nZLOffset
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    - MM_FILE_OFFSET
    - MM_FILE_OFFSET
    constantsTouched: []
    func_position:
      end: 4621
      start: 4590
    functionDepth: 0
    functionLinenumber: 4590
    functionLinenumberEnd: 4621
    functionName: MMCheckVersionFor3DOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int MMCheckVersionFor3DOffset(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             MM_INTERNAL_FID nElemCount,\n                              MM_FILE_OFFSET
      nOffsetAL,\n                              MM_FILE_OFFSET nZLOffset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMInitLayerByType
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4635,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4637,1
    - Dst: MMCreateFeaturePoint
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4648,1
    - Dst: MMCreateFeaturePolOrArc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4658,1
    - Dst: MMCreateRecordDBF
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4669,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - hMiraMonLayer
    - hMiraMonFeature
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 4679
      start: 4624
    functionDepth: 6
    functionLinenumber: 4624
    functionLinenumberEnd: 4679
    functionName: MMAddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCreateRecordDBF
    - CPLDebugOnly
    - MMCreateFeaturePoint
    - MMCreateFeaturePolOrArc
    - MMInitLayerByType
    linkageType: ''
    returnType: int
    signature: "int MMAddFeature(struct MiraMonVectLayerInfo *hMiraMonLayer,\n                 struct
      MiraMonFeature *hMiraMonFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dfBB
    argTypes:
    - struct MMBoundingBox*
    constantsTouched: []
    func_position:
      end: 4693
      start: 4685
    functionDepth: 0
    functionLinenumber: 4685
    functionLinenumberEnd: 4693
    functionName: MMInitBoundingBox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MMInitBoundingBox(struct MMBoundingBox *dfBB)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - dfBBToBeAct
    - dfBBWithData
    argTypes:
    - struct MMBoundingBox*
    - struct MMBoundingBox*
    constantsTouched: []
    func_position:
      end: 4712
      start: 4695
    functionDepth: 0
    functionLinenumber: 4695
    functionLinenumberEnd: 4712
    functionName: MMUpdateBoundingBox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MMUpdateBoundingBox(struct MMBoundingBox *dfBBToBeAct,\n                         struct
      MMBoundingBox *dfBBWithData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - dfBB
    - pCoord
    argTypes:
    - struct MMBoundingBox*
    - struct MM_POINT_2D*
    constantsTouched: []
    func_position:
      end: 4731
      start: 4714
    functionDepth: 0
    functionLinenumber: 4714
    functionLinenumberEnd: 4731
    functionName: MMUpdateBoundingBoxXY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MMUpdateBoundingBoxXY(struct MMBoundingBox *dfBB,\n                           struct
      MM_POINT_2D *pCoord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4750,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4751,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4758,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - pFieldValue
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MiraMonFieldValue**
    - MM_EXT_DBF_N_MULTIPLE_RECORDS*
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    constantsTouched: []
    func_position:
      end: 4769
      start: 4736
    functionDepth: 2
    functionLinenumber: 4736
    functionLinenumberEnd: 4769
    functionName: MMResizeMiraMonFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeMiraMonFieldValue(struct MiraMonFieldValue **pFieldValue,\n
      \                             MM_EXT_DBF_N_MULTIPLE_RECORDS *nMax,\n                              MM_EXT_DBF_N_MULTIPLE_RECORDS
      nNum,\n                              MM_EXT_DBF_N_MULTIPLE_RECORDS nIncr,\n
      \                             MM_EXT_DBF_N_MULTIPLE_RECORDS nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4785,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4786,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4792,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4794,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pFID
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_PAL_MEM**
    - MM_POLYGON_ARCS_COUNT*
    - MM_POLYGON_ARCS_COUNT
    - MM_POLYGON_ARCS_COUNT
    - MM_POLYGON_ARCS_COUNT
    constantsTouched: []
    func_position:
      end: 4804
      start: 4771
    functionDepth: 2
    functionLinenumber: 4771
    functionLinenumberEnd: 4804
    functionName: MMResizeMiraMonPolygonArcs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeMiraMonPolygonArcs(struct MM_PAL_MEM **pFID,\n                               MM_POLYGON_ARCS_COUNT
      *nMax,\n                               MM_POLYGON_ARCS_COUNT nNum,\n                               MM_POLYGON_ARCS_COUNT
      nIncr,\n                               MM_POLYGON_ARCS_COUNT nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4820,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4821,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4827,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4831,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pMiraMonRecord
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MiraMonRecord**
    - MM_EXT_DBF_N_MULTIPLE_RECORDS*
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    constantsTouched: []
    func_position:
      end: 4842
      start: 4806
    functionDepth: 2
    functionLinenumber: 4806
    functionLinenumberEnd: 4842
    functionName: MMResizeMiraMonRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeMiraMonRecord(struct MiraMonRecord **pMiraMonRecord,\n
      \                         MM_EXT_DBF_N_MULTIPLE_RECORDS *nMax,\n                          MM_EXT_DBF_N_MULTIPLE_RECORDS
      nNum,\n                          MM_EXT_DBF_N_MULTIPLE_RECORDS nIncr,\n                          MM_EXT_DBF_N_MULTIPLE_RECORDS
      nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4855,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4856,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4862,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4866,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pZDescription
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_ZD**
    - GUInt64*
    - GUInt64
    - GUInt64
    - GUInt64
    constantsTouched: []
    func_position:
      end: 4877
      start: 4844
    functionDepth: 2
    functionLinenumber: 4844
    functionLinenumberEnd: 4877
    functionName: MMResizeZSectionDescrPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeZSectionDescrPointer(struct MM_ZD **pZDescription, GUInt64
      *nMax,\n                                 GUInt64 nNum, GUInt64 nIncr,\n                                 GUInt64
      nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4889,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4890,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4899,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pNodeHeader
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_NH**
    - GUInt64*
    - GUInt64
    - GUInt64
    - GUInt64
    constantsTouched: []
    func_position:
      end: 4910
      start: 4879
    functionDepth: 2
    functionLinenumber: 4879
    functionLinenumberEnd: 4910
    functionName: MMResizeNodeHeaderPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeNodeHeaderPointer(struct MM_NH **pNodeHeader, GUInt64
      *nMax,\n                              GUInt64 nNum, GUInt64 nIncr, GUInt64 nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4922,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4923,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4929,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4932,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pArcHeader
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_AH**
    - GUInt64*
    - GUInt64
    - GUInt64
    - GUInt64
    constantsTouched: []
    func_position:
      end: 4943
      start: 4912
    functionDepth: 2
    functionLinenumber: 4912
    functionLinenumberEnd: 4943
    functionName: MMResizeArcHeaderPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeArcHeaderPointer(struct MM_AH **pArcHeader, GUInt64 *nMax,\n
      \                            GUInt64 nNum, GUInt64 nIncr, GUInt64 nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4955,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4956,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4962,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4965,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4973,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pPolHeader
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_PH**
    - GUInt64*
    - GUInt64
    - GUInt64
    - GUInt64
    constantsTouched: []
    func_position:
      end: 4976
      start: 4945
    functionDepth: 2
    functionLinenumber: 4945
    functionLinenumberEnd: 4976
    functionName: MMResizePolHeaderPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizePolHeaderPointer(struct MM_PH **pPolHeader, GUInt64 *nMax,\n
      \                            GUInt64 nNum, GUInt64 nIncr, GUInt64 nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4991,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4992,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:4998,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5000,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pVrt
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - MM_N_VERTICES_TYPE**
    - MM_N_VERTICES_TYPE*
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    constantsTouched: []
    func_position:
      end: 5010
      start: 4978
    functionDepth: 2
    functionLinenumber: 4978
    functionLinenumberEnd: 5010
    functionName: MMResize_MM_N_VERTICES_TYPE_Pointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResize_MM_N_VERTICES_TYPE_Pointer(MM_N_VERTICES_TYPE **pVrt,\n
      \                                       MM_N_VERTICES_TYPE *nMax,\n                                        MM_N_VERTICES_TYPE
      nNum,\n                                        MM_N_VERTICES_TYPE nIncr,\n                                        MM_N_VERTICES_TYPE
      nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5022,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5023,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5029,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5031,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5039,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pInt
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - char**
    - MM_INTERNAL_FID*
    - MM_INTERNAL_FID
    - MM_INTERNAL_FID
    - MM_INTERNAL_FID
    constantsTouched: []
    func_position:
      end: 5041
      start: 5012
    functionDepth: 2
    functionLinenumber: 5012
    functionLinenumberEnd: 5041
    functionName: MMResizeVFGPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeVFGPointer(char **pInt, MM_INTERNAL_FID *nMax, MM_INTERNAL_FID
      nNum,\n                       MM_INTERNAL_FID nIncr, MM_INTERNAL_FID nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5055,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5056,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5062,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5065,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pPoint2D
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - struct MM_POINT_2D**
    - MM_N_VERTICES_TYPE*
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    constantsTouched: []
    func_position:
      end: 5076
      start: 5043
    functionDepth: 2
    functionLinenumber: 5043
    functionLinenumberEnd: 5076
    functionName: MMResizeMM_POINT2DPointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 4
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeMM_POINT2DPointer(struct MM_POINT_2D **pPoint2D,\n                              MM_N_VERTICES_TYPE
      *nMax, MM_N_VERTICES_TYPE nNum,\n                              MM_N_VERTICES_TYPE
      nIncr,\n                              MM_N_VERTICES_TYPE nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5089,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5090,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5096,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5099,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pDouble
    - nMax
    - nNum
    - nIncr
    - nProposedMax
    argTypes:
    - MM_COORD_TYPE**
    - MM_N_VERTICES_TYPE*
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    - MM_N_VERTICES_TYPE
    constantsTouched: []
    func_position:
      end: 5110
      start: 5078
    functionDepth: 2
    functionLinenumber: 5078
    functionLinenumberEnd: 5110
    functionName: MMResizeDoublePointer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - MAX
    - MMCheckSize_t
    - CPLError
    - memset
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeDoublePointer(MM_COORD_TYPE **pDouble, MM_N_VERTICES_TYPE
      *nMax,\n                          MM_N_VERTICES_TYPE nNum, MM_N_VERTICES_TYPE
      nIncr,\n                          MM_N_VERTICES_TYPE nProposedMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5121,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5123,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5126,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - hMiraMonLayer
    - nNewSize
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 5136
      start: 5112
    functionDepth: 2
    functionLinenumber: 5112
    functionLinenumberEnd: 5136
    functionName: MMResizeStringToOperateIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - CPLError
    - VSIFree
    - MMCheckSize_t
    - VSICalloc
    linkageType: ''
    returnType: int
    signature: "int MMResizeStringToOperateIfNeeded(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                   MM_EXT_DBF_N_FIELDS nNewSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5148
      start: 5139
    functionDepth: 0
    functionLinenumber: 5139
    functionLinenumberEnd: 5148
    functionName: MMIsEmptyString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MMIsEmptyString(const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5165,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5168,1
    - Dst: rand
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5172,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5178,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pMMFN
    - aFileIdentifier
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 5181
      start: 5157
    functionDepth: 1
    functionLinenumber: 5157
    functionLinenumberEnd: 5181
    functionName: MMGenerateFileIdentifierFromMetadataFileName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - CPLStrlcpy
    - strcat
    - strlen
    - memset
    - rand
    linkageType: ''
    returnType: void
    signature: "void MMGenerateFileIdentifierFromMetadataFileName(char *pMMFN,\n                                                         char
      *aFileIdentifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5194,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5197,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5201,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5206,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5207,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5208,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5209,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - hMMMD
    - pF
    - pszEng
    - pszCat
    - pszEsp
    argTypes:
    - struct MiraMonVectorMetaData*
    - VSILFILE*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 5212
      start: 5184
    functionDepth: 1
    functionLinenumber: 5184
    functionLinenumberEnd: 5212
    functionName: MMWrite_ANSI_MetadataKeyDescriptor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - CPLRecode
    - VSIFPrintfL
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void MMWrite_ANSI_MetadataKeyDescriptor(struct MiraMonVectorMetaData
      *hMMMD,\n                                   VSILFILE *pF, const char *pszEng,\n
      \                                  const char *pszCat, const char *pszEsp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5234,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5236,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5242,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5244,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5245,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5247,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5249,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5253,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5254,1
    - Dst: MMGenerateFileIdentifierFromMetadataFileName
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5255,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5256,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5257,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5258,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5259,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5263,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5264,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5265,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5266,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5269,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5272,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5275,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5278,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5284,1
    - Dst: ReturnMMIDSRSFromEPSGCodeSRS
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5286,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5287,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5292,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5295,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5297,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5300,1
    - Dst: strcasecmp
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5303,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5304,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5313,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5315,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5323,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5325,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5331,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5333,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5337,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5338,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5345,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5346,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5347,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5348,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5352,1
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5354,1
    - Dst: VSILocalTime
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5357,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5358,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5361,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5362,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5365,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5366,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5367,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5369,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5370,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5372,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5373,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5375,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5381,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5382,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5384,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5385,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5386,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5390,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5391,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5393,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5396,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5397,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5399,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5400,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5401,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5404,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5405,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5407,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5408,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5409,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5412,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5413,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5414,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5416,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5418,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5420,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5425,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5426,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5428,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5429,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5433,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5434,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5436,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5437,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5440,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5441,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5442,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5444,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5449,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5450,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5452,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5453,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5458,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5459,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5461,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5465,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5466,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5468,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5472,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5473,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5475,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5476,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5477,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5480,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5481,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5483,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5484,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5485,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5489,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5490,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5491,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5493,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5495,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5496,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5497,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5506,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5510,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5512,1
    - Dst: MMWrite_ANSI_MetadataKeyDescriptor
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5527,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5529,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5534,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5538,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 165
    argCount: 1
    argNames:
    - hMMMD
    argTypes:
    - struct MiraMonVectorMetaData*
    constantsTouched: []
    func_position:
      end: 5540
      start: 5222
    functionDepth: 2
    functionLinenumber: 5222
    functionLinenumberEnd: 5540
    functionName: MMWriteMetadataFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSILocalTime
    - VSIFCloseL
    - ReturnMMIDSRSFromEPSGCodeSRS
    - CPLStrlcpy
    - MMIsEmptyString
    - VSIFOpenL
    - MMWrite_ANSI_MetadataKeyDescriptor
    - EQUAL
    - time
    - snprintf
    - CPLError
    - MMGenerateFileIdentifierFromMetadataFileName
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int MMWriteMetadataFile(struct MiraMonVectorMetaData *hMMMD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5552,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5562,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5564,1
    - Dst: MMWriteMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5566,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5576,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5578,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5587,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5590,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5593,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5594,1
    - Dst: MMWriteMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5596,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5597,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5606,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5609,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5611,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5612,1
    - Dst: MMWriteMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5613,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5614,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5623,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5625,1
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5632,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5634,1
    - Dst: MMWriteMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5639,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 3
    argNames:
    - hMiraMonLayer
    - layerPlainType
    - layerMainPlainType
    argTypes:
    - struct MiraMonVectLayerInfo*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5642
      start: 5543
    functionDepth: 3
    functionLinenumber: 5543
    functionLinenumberEnd: 5642
    functionName: MMWriteVectorMetadataFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - CPLGetFilename
    - MMWriteMetadataFile
    - MMIsEmptyString
    - VSIFree
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MMWriteVectorMetadataFile(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                    int layerPlainType, int layerMainPlainType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5650,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5654,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5657,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5662,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5665,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5668,1
    - Dst: MMWriteVectorMetadataFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5673,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 5677
      start: 5644
    functionDepth: 4
    functionLinenumber: 5644
    functionLinenumberEnd: 5677
    functionName: MMWriteVectorMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMWriteVectorMetadataFile
    linkageType: ''
    returnType: int
    signature: int MMWriteVectorMetadata(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMIsEmptyString
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5692,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5695,1
    - Dst: MM_CreateAndOpenDBFFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5696,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5699,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5705,1
    - Dst: MMInitFlush
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5708,1
    - Dst: MMCheckSize_t
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5715,1
    - Dst: VSICalloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5718,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - hMiraMonLayer
    - pMMAdmDB
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MMAdmDatabase*
    constantsTouched: []
    func_position:
      end: 5727
      start: 5686
    functionDepth: 6
    functionLinenumber: 5686
    functionLinenumberEnd: 5727
    functionName: MMInitMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_CreateAndOpenDBFFile
    - VSIFSeekL
    - VSICalloc
    - MMInitFlush
    - MMIsEmptyString
    - strcpy
    - MMCheckSize_t
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int MMInitMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n                      struct
      MMAdmDatabase *pMMAdmDB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5769,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5772,1
    - Dst: MM_DefineFirstPointFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5777,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5792,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5795,1
    - Dst: MM_DefineFirstArcFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5800,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5810,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5813,1
    - Dst: MM_DefineFirstNodeFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5818,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5832,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5835,1
    - Dst: MM_DefineFirstPolygonFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5841,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5853,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5857,1
    - Dst: MM_DefineFirstArcFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5862,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5872,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5876,1
    - Dst: MM_DefineFirstNodeFieldsDB_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5881,1
    - Dst: MM_CreateDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5893,1
    - Dst: MM_InitializeField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5907,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5908,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5913,1
    - Dst: MM_DuplicateFieldDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5955,1
    - Dst: MM_ModifyFieldNameAndDescriptorIfPresentBD_XP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5956,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5965,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5970,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5973,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5978,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5981,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5984,1
    - Dst: MMInitMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:5990,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 139
    argCount: 2
    argNames:
    - hMiraMonLayer
    - pFirstCoord
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MM_POINT_2D*
    constantsTouched: []
    func_position:
      end: 5994
      start: 5734
    functionDepth: 7
    functionLinenumber: 5734
    functionLinenumberEnd: 5994
    functionName: MMCreateMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - MM_DuplicateFieldDBXP
    - MM_DefineFirstArcFieldsDB_XP
    - MM_CreateDBFHeader
    - CPLStrlcpy
    - MM_ModifyFieldNameAndDescriptorIfPresentBD_XP
    - MM_DefineFirstPointFieldsDB_XP
    - MM_DefineFirstPolygonFieldsDB_XP
    - MM_DefineFirstNodeFieldsDB_XP
    - MMInitMMDB
    - MM_InitializeField
    - MM_ReleaseDBFHeader
    linkageType: ''
    returnType: int
    signature: "int MMCreateMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n                 struct
      MM_POINT_2D *pFirstCoord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6021,1
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6022,1
    - Dst: MM_WriteNRecordsMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6027,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6032,1
    - Dst: MM_ChangeDBFWidthField
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6035,1
    - Dst: VSIRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6045,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6049,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6059,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6061,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 4
    argNames:
    - hMiraMonLayer
    - pMMAdmDB
    - nIField
    - szValue
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MMAdmDatabase*
    - MM_EXT_DBF_N_FIELDS
    - char*
    constantsTouched: []
    func_position:
      end: 6064
      start: 6004
    functionDepth: 5
    functionLinenumber: 6004
    functionLinenumberEnd: 6064
    functionName: MMTestAndFixValueToRecordDBXP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_WriteNRecordsMMBD_XPFile
    - VSIFSeekL
    - MMAppendBlockToBuffer
    - MM_ChangeDBFWidthField
    - MMResizeStringToOperateIfNeeded
    - VSIFTellL
    - strlen
    - CPLError
    - VSIRealloc
    linkageType: ''
    returnType: int
    signature: "int MMTestAndFixValueToRecordDBXP(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             struct MMAdmDatabase *pMMAdmDB,\n                              MM_EXT_DBF_N_FIELDS
      nIField, char *szValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6077,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6089,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6096,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - hMiraMonLayer
    - camp
    - valor
    - is_64
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MM_FIELD*
    - void*
    - MM_BOOLEAN
    constantsTouched: []
    func_position:
      end: 6110
      start: 6066
    functionDepth: 3
    functionLinenumber: 6066
    functionLinenumberEnd: 6110
    functionName: MMWriteValueToszStringToOperate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMResizeStringToOperateIfNeeded
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int MMWriteValueToszStringToOperate(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                               const struct MM_FIELD *camp, const void *valor,\n
      \                               MM_BOOLEAN is_64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMResizeStringToOperateIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6122,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6127,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6130,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - hMiraMonLayer
    - registre
    - camp
    - valor
    argTypes:
    - struct MiraMonVectLayerInfo*
    - char*
    - struct MM_FIELD*
    - char*
    constantsTouched: []
    func_position:
      end: 6138
      start: 6112
    functionDepth: 3
    functionLinenumber: 6112
    functionLinenumberEnd: 6138
    functionName: MMWritePreformatedNumberValueToRecordDBXP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - memset
    - MMResizeStringToOperateIfNeeded
    - snprintf
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MMWritePreformatedNumberValueToRecordDBXP(\n    struct MiraMonVectLayerInfo
      *hMiraMonLayer, char *registre,\n    const struct MM_FIELD *camp, const char
      *valor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6150,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - hMiraMonLayer
    - registre
    - camp
    - valor
    - is_64
    argTypes:
    - struct MiraMonVectLayerInfo*
    - char*
    - struct MM_FIELD*
    - void*
    - MM_BOOLEAN
    constantsTouched: []
    func_position:
      end: 6156
      start: 6140
    functionDepth: 4
    functionLinenumber: 6140
    functionLinenumberEnd: 6156
    functionName: MMWriteValueToRecordDBXP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MMWriteValueToszStringToOperate
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MMWriteValueToRecordDBXP(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                            char *registre, const struct MM_FIELD *camp,\n
      \                            const void *valor, MM_BOOLEAN is_64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6185,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6198,1
    - Dst: MMWritePreformatedNumberValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6211,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6224,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6236,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 7
    argNames:
    - hMiraMonLayer
    - hMMFeature
    - pMMAdmDB
    - pszRecordOnCourse
    - pFlushRecList
    - nNumRecords
    - nNumPrivateMMField
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    - struct MMAdmDatabase*
    - char*
    - struct MM_FLUSH_INFO*
    - MM_EXT_DBF_N_RECORDS*
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 6242
      start: 6158
    functionDepth: 5
    functionLinenumber: 6158
    functionLinenumberEnd: 6242
    functionName: MMAddFeatureRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - memset
    - MMAppendBlockToBuffer
    - MMWritePreformatedNumberValueToRecordDBXP
    - MMWriteValueToRecordDBXP
    linkageType: ''
    returnType: int
    signature: "int MMAddFeatureRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                                   struct MiraMonFeature *hMMFeature,\n                                    struct
      MMAdmDatabase *pMMAdmDB,\n                                    char *pszRecordOnCourse,\n
      \                                   struct MM_FLUSH_INFO *pFlushRecList,\n                                    MM_EXT_DBF_N_RECORDS
      *nNumRecords,\n                                    MM_EXT_DBF_N_FIELDS nNumPrivateMMField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6263,1
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6273,1
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - hMiraMonLayer
    - hMMFeature
    - pMMAdmDB
    - nNumPrivateMMField
    - nIRecord
    - nIField
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    - struct MMAdmDatabase*
    - MM_EXT_DBF_N_FIELDS
    - MM_EXT_DBF_N_MULTIPLE_RECORDS
    - MM_EXT_DBF_N_FIELDS
    constantsTouched: []
    func_position:
      end: 6294
      start: 6245
    functionDepth: 6
    functionLinenumber: 6245
    functionLinenumberEnd: 6294
    functionName: MMDetectAndFixDBFWidthChange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMTestAndFixValueToRecordDBXP
    - MMDetectAndFixDBFWidthChange
    linkageType: ''
    returnType: int
    signature: "int MMDetectAndFixDBFWidthChange(\n    struct MiraMonVectLayerInfo
      *hMiraMonLayer,\n    struct MiraMonFeature *hMMFeature, struct MMAdmDatabase
      *pMMAdmDB,\n    MM_EXT_DBF_N_FIELDS nNumPrivateMMField,\n    MM_EXT_DBF_N_MULTIPLE_RECORDS
      nIRecord, MM_EXT_DBF_N_FIELDS nIField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6316,1
    - Dst: MMAddFeatureRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - hMiraMonLayer
    - hMMFeature
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    constantsTouched: []
    func_position:
      end: 6344
      start: 6300
    functionDepth: 7
    functionLinenumber: 6300
    functionLinenumberEnd: 6344
    functionName: MMAddDBFRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMAddFeatureRecordToMMDB
    - MMDetectAndFixDBFWidthChange
    linkageType: ''
    returnType: int
    signature: "int MMAddDBFRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                        struct MiraMonFeature *hMMFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6362,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6366,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6376,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6379,1
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6387,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6394,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6396,1
    - Dst: MMAddFeatureRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - hMiraMonLayer
    - hMMFeature
    - nElemCount
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    - MM_INTERNAL_FID
    constantsTouched: []
    func_position:
      end: 6417
      start: 6347
    functionDepth: 7
    functionLinenumber: 6347
    functionLinenumberEnd: 6417
    functionName: MMAddPointRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCheckVersionForFID
    - MMDetectAndFixDBFWidthChange
    - MMWriteValueToRecordDBXP
    - MMWriteValueToszStringToOperate
    - MMAddFeatureRecordToMMDB
    - MMTestAndFixValueToRecordDBXP
    - CPLError
    - memset
    linkageType: ''
    returnType: int
    signature: "int MMAddPointRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                          struct MiraMonFeature *hMMFeature,\n                           MM_INTERNAL_FID
      nElemCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6443,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6454,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6465,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6468,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6473,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6476,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6481,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6484,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6489,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6492,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6497,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6500,1
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6509,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6517,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6518,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6522,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6526,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6530,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6534,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6550,1
    - Dst: MMAddFeatureRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6557,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 4
    argNames:
    - hMiraMonLayer
    - hMMFeature
    - nElemCount
    - pArcHeader
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    - MM_INTERNAL_FID
    - struct MM_AH*
    constantsTouched: []
    func_position:
      end: 6563
      start: 6420
    functionDepth: 7
    functionLinenumber: 6420
    functionLinenumberEnd: 6563
    functionName: MMAddArcRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCheckVersionForFID
    - MMDetectAndFixDBFWidthChange
    - MMWriteValueToRecordDBXP
    - MMWriteValueToszStringToOperate
    - MMAppendBlockToBuffer
    - MMAddFeatureRecordToMMDB
    - MMTestAndFixValueToRecordDBXP
    - CPLError
    - memset
    linkageType: ''
    returnType: int
    signature: "int MMAddArcRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                        struct MiraMonFeature *hMMFeature,\n                         MM_INTERNAL_FID
      nElemCount, struct MM_AH *pArcHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6583,1
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6591,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6599,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6603,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6609,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6613,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6619,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6623,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6639,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6640,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6645,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6650,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6654,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - hMiraMonLayer
    - nElemCount
    - pNodeHeader
    argTypes:
    - struct MiraMonVectLayerInfo*
    - MM_INTERNAL_FID
    - struct MM_NH*
    constantsTouched: []
    func_position:
      end: 6658
      start: 6566
    functionDepth: 6
    functionLinenumber: 6566
    functionLinenumberEnd: 6658
    functionName: MMAddNodeRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCheckVersionForFID
    - MMWriteValueToRecordDBXP
    - MMWriteValueToszStringToOperate
    - MMAppendBlockToBuffer
    - MMTestAndFixValueToRecordDBXP
    - CPLError
    - memset
    linkageType: ''
    returnType: int
    signature: "int MMAddNodeRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                         MM_INTERNAL_FID nElemCount, struct MM_NH *pNodeHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCheckVersionForFID
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6676,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6686,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6689,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6699,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6702,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6708,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6711,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6717,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6720,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6726,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6729,1
    - Dst: MMWriteValueToszStringToOperate
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6735,1
    - Dst: MMTestAndFixValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6738,1
    - Dst: MMDetectAndFixDBFWidthChange
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6748,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6765,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6767,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6774,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6782,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6786,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6790,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6794,1
    - Dst: MMWriteValueToRecordDBXP
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6798,1
    - Dst: MMAddFeatureRecordToMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6804,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 5
    argNames:
    - hMiraMonLayer
    - hMMFeature
    - nElemCount
    - nVerticesCount
    - pPolHeader
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MiraMonFeature*
    - MM_INTERNAL_FID
    - MM_N_VERTICES_TYPE
    - struct MM_PH*
    constantsTouched: []
    func_position:
      end: 6811
      start: 6662
    functionDepth: 7
    functionLinenumber: 6662
    functionLinenumberEnd: 6811
    functionName: MMAddPolygonRecordToMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 1
    functionsReached:
    - MMCheckVersionForFID
    - MMDetectAndFixDBFWidthChange
    - MMWriteValueToRecordDBXP
    - MMWriteValueToszStringToOperate
    - MMAppendBlockToBuffer
    - MMTestAndFixValueToRecordDBXP
    - MMAddFeatureRecordToMMDB
    - memset
    linkageType: ''
    returnType: int
    signature: "int MMAddPolygonRecordToMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                            struct MiraMonFeature *hMMFeature,\n                             MM_INTERNAL_FID
      nElemCount,\n                             MM_N_VERTICES_TYPE nVerticesCount,\n
      \                            struct MM_PH *pPolHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6832,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6834,1
    - Dst: MMCreateMMDB
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6847,1
    - Dst: MM_WriteNRecordsMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6856,1
    - Dst: MMAppendBlockToBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6861,1
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6869,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 2
    argNames:
    - hMiraMonLayer
    - MMAdmDB
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MMAdmDatabase*
    constantsTouched: []
    func_position:
      end: 6872
      start: 6814
    functionDepth: 8
    functionLinenumber: 6814
    functionLinenumberEnd: 6872
    functionName: MMCloseMMBD_XPFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_WriteNRecordsMMBD_XPFile
    - MMCreateMMDB
    - fclose_and_nullify
    - MMAppendBlockToBuffer
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int MMCloseMMBD_XPFile(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             struct MMAdmDatabase *MMAdmDB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose_and_nullify
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6882,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6887,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6890,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6892,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6898,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6901,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6904,1
    - Dst: MMCloseMMBD_XPFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6910,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 6913
      start: 6874
    functionDepth: 9
    functionLinenumber: 6874
    functionLinenumberEnd: 6913
    functionName: MMCloseMMBD_XP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 2
    functionsReached:
    - MMCloseMMBD_XPFile
    - fclose_and_nullify
    linkageType: ''
    returnType: int
    signature: int MMCloseMMBD_XP(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6925,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6930,1
    - Dst: MM_ReleaseDBFHeader
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6937,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - hMiraMonLayer
    - pMMAdmDB
    argTypes:
    - struct MiraMonVectLayerInfo*
    - struct MMAdmDatabase*
    constantsTouched: []
    func_position:
      end: 6945
      start: 6917
    functionDepth: 3
    functionLinenumber: 6917
    functionLinenumberEnd: 6945
    functionName: MMDestroyMMDBFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 0
    functionsReached:
    - MM_ReleaseDBFHeader
    - VSIFree
    linkageType: ''
    returnType: void
    signature: "void MMDestroyMMDBFile(struct MiraMonVectLayerInfo *hMiraMonLayer,\n
      \                             struct MMAdmDatabase *pMMAdmDB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6954,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6959,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6960,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6965,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6966,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6968,1
    - Dst: MMDestroyMMDBFile
      Src: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c:6972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - hMiraMonLayer
    argTypes:
    - struct MiraMonVectLayerInfo*
    constantsTouched: []
    func_position:
      end: 6973
      start: 6947
    functionDepth: 4
    functionLinenumber: 6947
    functionLinenumberEnd: 6973
    functionName: MMDestroyMMDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/miramon/mm_wrlayr.c
    functionUses: 3
    functionsReached:
    - MMDestroyMMDBFile
    linkageType: ''
    returnType: void
    signature: void MMDestroyMMDB(struct MiraMonVectLayerInfo *hMiraMonLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBLayer
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogr_idb.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 74
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogr_idb.h
    functionUses: 0
    functionsReached:
    - OGRIDBLayer
    linkageType: ''
    returnType: class OGRIDBLayer
    signature: class OGRIDBLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRIDBDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogr_idb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: OGRIDBDataSource::GetConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogr_idb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITConnection
    signature: ITConnection *GetConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: OGRIDBDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRIDBDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:34,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: OGRIDBDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRIDBDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:52,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:56,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:58,1
    - Dst: OGRIDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:61,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: DeclareDeferredOGRIDBPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRIDBDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRIDBPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:33,1
    - Dst: ITCursor*::Command
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:33,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - poDSIn
    - poCurrIn
    argTypes:
    - OGRIDBDataSource*
    - ITCursor*
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: OGRIDBSelectLayer::OGRIDBSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - BuildFeatureDefn
    - CPLStrdup
    - ITCursor*::Command
    linkageType: ''
    returnType: void
    signature: "void OGRIDBSelectLayer::OGRIDBSelectLayer(OGRIDBDataSource *poDSIn,\n
      \                                    ITCursor *poCurrIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBSelectLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: OGRIDBSelectLayer::~OGRIDBSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBSelectLayer::ClearQuery
    linkageType: ''
    returnType: void
    signature: void OGRIDBSelectLayer::~OGRIDBSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: OGRIDBSelectLayer::ClearQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBSelectLayer::ClearQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBSelectLayer::ResetQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: OGRIDBSelectLayer::GetQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBSelectLayer::ResetQuery
    linkageType: ''
    returnType: ITCursor
    signature: ITCursor *OGRIDBSelectLayer::GetQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBSelectLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:82,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:86,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:87,1
    - Dst: ITCursor::ITCursor
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:87,1
    - Dst: Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:89,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: OGRIDBSelectLayer::ResetQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRIDBSelectLayer::ClearQuery
    - Open
    - Prepare
    - ITCursor::ITCursor
    - CPLDebug
    - GetConnection
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBSelectLayer::ResetQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBSelectLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:107,1
    - Dst: OGRIDBLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: OGRIDBSelectLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBSelectLayer::ClearQuery
    - OGRIDBLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRIDBSelectLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: OGRIDBSelectLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIDBSelectLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: OGRIDBSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRIDBSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: OGRIDBSelectLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBSelectLayer::IGetExtent(int, OGREnvelope *, bool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: OGRIDBSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRIDBSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRIDBDataSource*
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: OGRIDBTableLayer::OGRIDBTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBTableLayer::OGRIDBTableLayer(OGRIDBDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:44,1
    - Dst: OGRIDBTableLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: OGRIDBTableLayer::~OGRIDBTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - OGRIDBTableLayer::ClearQuery
    linkageType: ''
    returnType: void
    signature: void OGRIDBTableLayer::~OGRIDBTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:58,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:62,1
    - Dst: ITCursor::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:84,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:84,1
    - Dst: ITCursor::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:84,1
    - Dst: ITCursor::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:86,1
    - Dst: ITValue*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:87,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:89,1
    - Dst: ITValue*::Printable
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:89,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:90,1
    - Dst: ITCursor::Fetch
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:93,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:95,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:98,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:109,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:113,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:122,1
    - Dst: ITCursor::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:123,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:123,1
    - Dst: ITCursor::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:123,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:126,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:132,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:142,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:143,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:144,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:145,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:160,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - pszTableName
    - pszGeomCol
    - bUpdate
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 176
    functionName: OGRIDBTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - ITValue*::Printable
    - CPLStrdup
    - ITValue*::IsNull
    - ITCursor::Open
    - CPLString::Printf
    - GetFieldCount
    - CPLDebug
    - CPLString::c_str
    - ITCursor::Fetch
    - ITCursor::Prepare
    - BuildFeatureDefn
    - CPLError
    - GetFieldIndex
    - ITValue*::Release
    - CPLFree
    - GetConnection
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRIDBTableLayer::Initialize(const char *pszTableName,\n                                    const
      char *pszGeomCol, int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: OGRIDBTableLayer::ClearQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 1
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: void OGRIDBTableLayer::ClearQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBTableLayer::ResetQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: OGRIDBTableLayer::GetQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBTableLayer::ResetQuery
    linkageType: ''
    returnType: ITCursor
    signature: ITCursor *OGRIDBTableLayer::GetQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBTableLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:213,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:217,1
    - Dst: ITCursor::ITCursor
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:217,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:224,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:233,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:235,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:238,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:246,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:264,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:266,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:281,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:283,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:292,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:292,1
    - Dst: Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:293,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:293,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:293,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 303
    functionName: OGRIDBTableLayer::ResetQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetFieldDefn
    - Open
    - CPLString::Printf
    - Prepare
    - GetFieldCount
    - ITCursor::ITCursor
    - CPLDebug
    - CPLString::c_str
    - OGRIDBTableLayer::ClearQuery
    - GetName
    - CPLString::empty
    - GetConnection
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBTableLayer::ResetQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBTableLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:312,1
    - Dst: OGRIDBLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: OGRIDBTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBLayer::ResetReading
    - OGRIDBTableLayer::ClearQuery
    linkageType: ''
    returnType: void
    signature: void OGRIDBTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:324,1
    - Dst: OGRIDBTableLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:326,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:330,1
    - Dst: ITCursor::ITCursor
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:330,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:335,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:340,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:349,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:351,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:354,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:359,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:359,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:360,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:362,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:362,1
    - Dst: Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:363,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:363,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:363,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 371
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 371
    functionName: OGRIDBTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldDefn
    - Open
    - GetNextRawFeature
    - CPLString::Printf
    - OGRIDBLayer::GetFeature
    - Prepare
    - GetFieldCount
    - ITCursor::ITCursor
    - CPLDebug
    - CPLString::c_str
    - OGRIDBTableLayer::ClearQuery
    - GetFieldIndex
    - GetName
    - CPLString::empty
    - GetConnection
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIDBTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:380,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:381,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:385,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:388,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:389,1
    - Dst: OGRIDBTableLayer::ClearQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszQueryIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: OGRIDBTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLFree
    - CPLStrdup
    - OGRIDBTableLayer::ClearQuery
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBTableLayer::SetAttributeFilter(const char *pszQueryIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:403,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:403,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:406,1
    - Dst: OGRIDBLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 411
    functionName: OGRIDBTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRIDBLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRIDBTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: OGRIDBTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRIDBTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:447,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:450,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:452,1
    - Dst: ITCursor::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:454,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:454,1
    - Dst: ITCursor::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:455,1
    - Dst: static_cast<ITRow *>
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:457,1
    - Dst: ITCursor::NextRow
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:457,1
    - Dst: ITRow*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:458,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:460,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:460,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:468,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:469,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:470,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:472,1
    - Dst: OGRIDBLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:481,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 482
    functionName: OGRIDBTableLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - ITRow*::IsNull
    - ITCursor::NextRow
    - OGRSpatialReference::OGRSpatialReference
    - importFromWkt
    - atoi
    - ITCursor::Open
    - CPLString::Printf
    - static_cast<ITRow *>
    - ITRow*::Column
    - OGRIDBLayer::GetSpatialRef
    - CPLString::c_str
    - SetAxisMappingStrategy
    - CPLError
    - ITCursor::Prepare
    - GetName
    - GetConnection
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRIDBTableLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:491,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:498,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:503,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:505,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:510,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:513,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:539,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:548,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:548,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:556,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:559,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:568,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:569,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:570,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:572,1
    - Dst: ITStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:574,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:576,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:577,1
    - Dst: ITStatement::Param
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:585,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:588,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:593,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:595,1
    - Dst: ITValue*::FromPrintable
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:599,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:601,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:605,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:606,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:611,1
    - Dst: ITStatement::Param
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:613,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:616,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:621,1
    - Dst: ITValue*::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:623,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:625,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:627,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:630,1
    - Dst: ITValue*::QueryInterface
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:637,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:640,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:642,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:646,1
    - Dst: ITConversions*::ConvertFrom
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:649,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:649,1
    - Dst: ITConversions*::ConvertFrom
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:653,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:653,1
    - Dst: ITConversions*::ConvertFrom
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:670,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:673,1
    - Dst: ITConversions*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:675,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:676,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:680,1
    - Dst: ITConversions*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:682,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:683,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:686,1
    - Dst: ITStatement::QueryText
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:686,1
    - Dst: ITStatement::Exec
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:687,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:689,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 694
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 694
    functionName: OGRIDBTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - ITValue*::SetNull
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - CPLString::empty
    - GetConnection
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - ITValue*::FromPrintable
    - CPLString::c_str
    - ITStatement::Exec
    - ITConversions*::ConvertFrom
    - ITValue*::QueryInterface
    - GetName
    - ITStatement::Prepare
    - OGRFeature*::GetFID
    - CPLString::Printf
    - GetFieldCount
    - ITStatement::Param
    - ITConversions*::Release
    - ITStatement::QueryText
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::exportToWkt
    - EQUAL
    - ITValue*::Release
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBTableLayer::ISetFeature( OGRFeature *poFeature )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:704,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:711,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:718,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:723,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:728,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:731,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:755,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:770,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:772,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:774,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:775,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:777,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:780,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:785,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:788,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:796,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:804,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:807,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:807,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:811,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:815,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:816,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:817,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:818,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:818,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:819,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:822,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:822,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:840,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:840,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:846,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:847,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:847,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:848,1
    - Dst: ITStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:850,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:852,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:853,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:857,1
    - Dst: ITStatement::QueryText
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:857,1
    - Dst: ITStatement::Exec
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:858,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:860,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 865
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 865
    functionName: OGRIDBTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - CPLString::empty
    - GetConnection
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - CPLString::c_str
    - ITStatement::Exec
    - GetName
    - ITStatement::Prepare
    - OGRFeature*::GetFID
    - CPLString::Printf
    - GetFieldCount
    - ITStatement::QueryText
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::exportToWkt
    - EQUAL
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:873,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:880,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:885,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:887,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:896,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:899,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:923,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:937,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:939,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:942,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:942,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:944,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:947,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:952,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:957,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:967,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:970,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:970,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:974,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:978,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:979,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:980,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:981,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:981,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:982,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:985,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:985,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1003,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1003,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1009,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1009,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1010,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1010,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1012,1
    - Dst: ITStatement::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1014,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1014,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1016,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1017,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1021,1
    - Dst: ITStatement::QueryText
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1021,1
    - Dst: ITStatement::Exec
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1022,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1024,1
    - Dst: GetConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1028,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1029,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1030,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1032,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1032,1
    - Dst: ITQuery::ExecOneRow
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1034,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1034,1
    - Dst: ITRow*::NumColumns
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1035,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1037,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1044,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp:1047,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 101
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1053
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 1053
    functionName: OGRIDBTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbtablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - CPLString::empty
    - GetConnection
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - CPLString::c_str
    - ITStatement::Exec
    - GetName
    - ITStatement::Prepare
    - OGRFeature*::GetFID
    - CPLString::Printf
    - GetFieldCount
    - ITStatement::QueryText
    - CPLFree
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::exportToWkt
    - ITRow*::NumColumns
    - ITQuery::ExecOneRow
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRIDBTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: OGRIDBLayer::OGRIDBLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBLayer::OGRIDBLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:50,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:59,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:63,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: OGRIDBLayer::~OGRIDBLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Close
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRIDBLayer::~OGRIDBLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:81,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:82,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:82,1
    - Dst: ITCursor*::RowType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:83,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:86,1
    - Dst: ITTypeInfo*::ColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:91,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:96,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:96,1
    - Dst: ITTypeInfo*::Bound
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:96,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:98,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:101,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:104,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:106,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:108,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:109,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:110,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:111,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:112,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:114,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:115,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:116,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:117,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:124,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:125,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:126,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:127,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:128,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:130,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:136,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:140,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:142,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:144,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:146,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:148,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:148,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:149,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:149,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:151,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:152,1
    - Dst: MAX
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:152,1
    - Dst: ITTypeInfo*::Scale
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:154,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:156,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:160,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:162,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:164,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:173,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:183,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:184,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:188,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:189,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:191,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:192,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 60
    argCount: 2
    argNames:
    - pszLayerName
    - poCurr
    argTypes:
    - char*
    - ITCursor*
    constantsTouched: []
    func_position:
      end: 195
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 195
    functionName: OGRIDBLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - ITTypeInfo*::Scale
    - Reference
    - ITTypeInfo*::ColumnType
    - GetFieldIndex
    - CPLStrdup
    - SetGeomType
    - ITTypeInfo*::Bound
    - MAX
    - AddFieldDefn
    - GetName
    - STARTS_WITH_CI
    - ITCursor*::RowType
    - OGRFeatureDefn::OGRFeatureDefn
    - SetDescription
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - EQUAL
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRIDBLayer::BuildFeatureDefn(const char *pszLayerName, ITCursor
      *poCurr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: OGRIDBLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:218,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:223,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:223,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: OGRIDBLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBLayer::GetNextRawFeature
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIDBLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetQuery
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:238,1
    - Dst: NextRow
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:244,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:259,1
    - Dst: RowType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:261,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:272,1
    - Dst: ITTypeInfo*::ColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:272,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:273,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:273,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:281,1
    - Dst: ITTypeInfo*::ColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:281,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:286,1
    - Dst: ITValue*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:288,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:292,1
    - Dst: ITValue*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:295,1
    - Dst: ITValue*::QueryInterface
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:298,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:304,1
    - Dst: ITDatum*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:306,1
    - Dst: ITValue*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:310,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:330,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:336,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:358,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:359,1
    - Dst: ITTypeInfo*::ColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:360,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:363,1
    - Dst: ITRow*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:366,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 368
    functionName: OGRIDBLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - ITRow*::Column
    - ITTypeInfo*::ColumnType
    - GetFieldDefn
    - CPLError
    - RowType
    - OGRGeometryFactory::createFromWkb
    - NextRow
    - OGRFeature*::SetGeometryDirectly
    - ITValue*::QueryInterface
    - ITDatum*::Release
    - GetQuery
    - OGRFeature::OGRFeature
    - ITRow*::Release
    - ITValue*::IsNull
    - EQUAL
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - ITTypeInfo*::ColumnName
    - ITValue*::Release
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIDBLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: OGRIDBLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 2
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRIDBLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: OGRIDBLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRIDBLayer::TestCapability(const char * /*pszCap*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: OGRIDBLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRIDBLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: OGRIDBLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRIDBLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: OGRIDBLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridblayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRIDBLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: OGRIDBDataSource::OGRIDBDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBDataSource::OGRIDBDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:43,1
    - Dst: IsOpen
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:45,1
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:47,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: OGRIDBDataSource::~OGRIDBDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached:
    - IsOpen
    - CPLFree
    - Close
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRIDBDataSource::~OGRIDBDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:62,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:81,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:82,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:83,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:84,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:85,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:86,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:87,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:88,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:89,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:91,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:92,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:100,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:104,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:105,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:107,1
    - Dst: ITConnection::ITConnection
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:109,1
    - Dst: AddCallback
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:111,1
    - Dst: OGRIDBDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:115,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:117,1
    - Dst: ITCursor::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:131,1
    - Dst: ITCursor::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:133,1
    - Dst: ITCursor::NextRow
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:136,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:139,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:139,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:141,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:141,1
    - Dst: ITRow*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:142,1
    - Dst: ITCursor::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:155,1
    - Dst: ITCursor::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:157,1
    - Dst: ITCursor::NextRow
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:160,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:163,1
    - Dst: ITRow*::Column
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:163,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:164,1
    - Dst: ITRow*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:165,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:169,1
    - Dst: ITCursor::QueryText
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:171,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:183,1
    - Dst: OGRIDBDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:186,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:189,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:190,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - pszNewName
    - bUpdate
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 193
    functionName: OGRIDBDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 1
    functionsReached:
    - ITCursor::NextRow
    - CSLAddString
    - CPLDebug
    - ITRow*::Column
    - CPLError
    - ITConnection::ITConnection
    - CPLStrdup
    - strlen
    - ITCursor::Prepare
    - STARTS_WITH_CI
    - OGRIDBDataSource::Open
    - ITCursor::QueryText
    - ITCursor::Open
    - CPLAssert
    - CPLFree
    - OGRIDBDataSource::OpenTable
    - ITRow*::Release
    - AddCallback
    - CSLDestroy
    linkageType: ''
    returnType: int
    signature: "int OGRIDBDataSource::Open(const char *pszNewName, int bUpdate,\n
      \                          int /* bTestOpen */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRIDBTableLayer::OGRIDBTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:208,1
    - Dst: OGRIDBTableLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:210,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pszNewName
    - pszGeomCol
    - bUpdate
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: OGRIDBDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    - OGRIDBTableLayer*::Initialize
    - OGRIDBTableLayer::OGRIDBTableLayer
    linkageType: ''
    returnType: int
    signature: "int OGRIDBDataSource::OpenTable(const char *pszNewName, const char
      *pszGeomCol,\n                                int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: OGRIDBDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRIDBDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: OGRIDBDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRIDBDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:264,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:265,1
    - Dst: ITCursor::ITCursor
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:271,1
    - Dst: ITCursor*::Prepare
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:273,1
    - Dst: ITCursor*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:274,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:276,1
    - Dst: ITCursor*::RowType
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:284,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:287,1
    - Dst: OGRIDBSelectLayer::OGRIDBSelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:295,1
    - Dst: OGRIDBSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 301
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 301
    functionName: OGRIDBDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - ITCursor*::RowType
    - OGRIDBSelectLayer::OGRIDBSelectLayer
    - ITCursor::ITCursor
    - ITCursor*::Open
    - IsGenericSQLDialect
    - GDALDataset::ExecuteSQL
    - OGRIDBSelectLayer*::SetSpatialFilter
    - CPLError
    - ITCursor*::Prepare
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRIDBDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: OGRIDBDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRIDBDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITErrorManager::Error
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:316,1
    - Dst: ITErrorManager::ErrorText
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - ITErrorManager
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: IDBErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - ITErrorManager::ErrorText
    - ITErrorManager::Error
    linkageType: ''
    returnType: ITCallbackResult
    signature: ITCallbackResult IDBErrorHandler(const ITErrorManager &err, void *,
      long)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:28,1
    - Dst: OGRIDBDataSource::OGRIDBDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:31,1
    - Dst: OGRIDBDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: OGRIDBDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRIDBDataSource::OGRIDBDataSource
    - STARTS_WITH_CI
    - OGRIDBDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRIDBDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:55,1
    - Dst: OGRIDBDataSource::OGRIDBDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:58,1
    - Dst: OGRIDBDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:60,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: OGRIDBDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRIDBDataSource::OGRIDBDataSource
    - STARTS_WITH_CI
    - OGRIDBDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRIDBDriverCreate(const char *pszName, int /* nBands
      */,\n                                       int /* nXSize */, int /* nYSize
      */,\n                                       GDALDataType /* eDT */,\n                                       char
      ** /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:78,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:80,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:83,1
    - Dst: OGRIDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:84,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: RegisterOGRIDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/idb/ogridbdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRIDBDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRIDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - poFDefn
    - pszFieldName
    argTypes:
    - OGRFeatureDefn*
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: GetFieldIndexCaseSensitiveFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldIndex
    linkageType: ''
    returnType: int
    signature: "int GetFieldIndexCaseSensitiveFirst(OGRFeatureDefn *poFDefn,\n                                           const
      char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVRTGeomFieldProps::OGRVRTGeomFieldProps()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: OGRVRTGeomFieldProps::~OGRVRTGeomFieldProps()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - const_cast<OGRSpatialReference *>
    linkageType: ''
    returnType: void
    signature: void OGRVRTGeomFieldProps::~OGRVRTGeomFieldProps()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRVRTDataSource*
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: OGRVRTLayer::OGRVRTLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVRTLayer::OGRVRTLayer(OGRVRTDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:105,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:106,1
    - Dst: OGRVRTLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:106,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:109,1
    - Dst: OGRVRTLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:116,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:117,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:118,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:122,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:124,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:128,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 131
    functionName: OGRVRTLayer::~OGRVRTLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLFree
    - static_cast<int>
    - OGRVRTLayer::SetIgnoredFields
    - CPLDebug
    - OGRVRTLayer::SetAttributeFilter
    - ReleaseResultSet
    - SetSpatialFilter
    - OGRVRTLayer::GetName
    - Release
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void OGRVRTLayer::~OGRVRTLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: OGRVRTLayer::GetSrcLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRVRTLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRVRTLayer::GetSrcLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:160,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:168,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:174,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:177,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:180,1
    - Dst: OGRVRTGetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:185,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:188,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:194,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:194,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:202,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:205,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:207,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:207,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:209,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:211,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:212,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:214,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:219,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:223,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:232,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:243,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:245,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:247,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:249,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:254,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:256,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:256,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:257,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:257,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:259,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:260,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:261,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:262,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 3
    argNames:
    - psLTreeIn
    - pszVRTDirectory
    - bUpdateIn
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 266
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 266
    functionName: OGRVRTLayer::FastInitialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - CPLGetXMLNode
    - CPLGetXMLValue
    - CPLAtoGIntBig
    - assert
    - OGRSpatialReference::SetAxisMappingStrategy
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - EQUAL
    - OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
    - OGRSpatialReference::Clone
    - push_back
    - CPLError
    - SetDescription
    - OGRVRTGetGeometryType
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: "bool OGRVRTLayer::FastInitialize(CPLXMLNode *psLTreeIn,\n                                 const
      char *pszVRTDirectory, int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:278,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:281,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:289,1
    - Dst: OGRVRTGetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:305,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:309,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:311,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:313,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:315,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:318,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:319,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:321,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:322,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:322,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:323,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:324,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:324,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:325,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:326,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:326,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:327,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:328,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:328,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:332,1
    - Dst: OGR_GT_SetZ
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:342,1
    - Dst: OGR_GT_SetM
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:349,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:361,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:361,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:365,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:376,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:385,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:392,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:398,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:405,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:405,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:410,1
    - Dst: OGRVRTLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:411,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:415,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:424,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:428,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:430,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:435,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:440,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:444,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:446,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:447,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:449,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:454,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:458,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:463,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:465,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:470,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:474,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:479,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:479,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:490,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:491,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:492,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:493,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:497,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:497,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:499,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:502,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:507,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:514,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:519,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:524,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 133
    argCount: 3
    argNames:
    - psNode
    - psNodeParent
    - poProps
    argTypes:
    - CPLXMLNode*
    - CPLXMLNode*
    - OGRVRTGeomFieldProps*
    constantsTouched: []
    func_position:
      end: 528
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 528
    functionName: OGRVRTLayer::ParseGeometryField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGR_GT_SetZ
    - OGRSpatialReference::SetAxisMappingStrategy
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLError
    - OGR_GT_SetM
    - CPLGetXMLValue
    - GetFieldIndexCaseSensitiveFirst
    - OGRVRTLayer::GetGeomType
    - OGRVRTLayer::GetSrcLayerDefn
    - OGRSpatialReference::Clone
    - OGRVRTGetGeometryType
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - CPLTestBool
    - GetSpatialRef
    - size
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetXMLNode
    - EQUAL
    - OGRGeometryFactory::createFromWkt
    linkageType: ''
    returnType: bool
    signature: "bool OGRVRTLayer::ParseGeometryField(CPLXMLNode *psNode,\n                                     CPLXMLNode
      *psNodeParent,\n                                     OGRVRTGeomFieldProps *poProps)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:548,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:549,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:551,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:556,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:560,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:561,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:565,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:566,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:574,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:574,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:574,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:576,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:583,1
    - Dst: CPLProjectRelativeFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:584,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:586,1
    - Dst: CPLProjectRelativeFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:593,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:594,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:602,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:605,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:611,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:614,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:619,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:620,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:620,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:622,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:623,1
    - Dst: IsInForbiddenNames
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:627,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:627,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:629,1
    - Dst: SetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:631,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:640,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:641,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:643,1
    - Dst: GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:645,1
    - Dst: GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:645,1
    - Dst: cpl::down_cast<OGRVRTDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:648,1
    - Dst: OGRVRTDataSource*::AddForbiddenNames
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:649,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:649,1
    - Dst: GetCallLevel
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:655,1
    - Dst: GDALOpenEx
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:662,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:663,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:665,1
    - Dst: GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:667,1
    - Dst: GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:667,1
    - Dst: dynamic_cast<OGRVRTDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:670,1
    - Dst: OGRVRTDataSource*::SetCallLevel
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:673,1
    - Dst: GetCallLevel
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:673,1
    - Dst: OGRVRTDataSource*::SetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:674,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:680,1
    - Dst: SetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:684,1
    - Dst: GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:686,1
    - Dst: OGRVRTDataSource*::SetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:689,1
    - Dst: OGRVRTDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:690,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:699,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:702,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:706,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:706,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:707,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:708,1
    - Dst: XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:713,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:716,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:724,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:727,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:744,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:759,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:767,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:770,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:774,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:774,1
    - Dst: OGRVRTLayer::ParseGeometryField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:775,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:775,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:783,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:785,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:785,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:788,1
    - Dst: OGRVRTLayer::ParseGeometryField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:791,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:795,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:796,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:801,1
    - Dst: OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:803,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:804,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:806,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:807,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:808,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:809,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:810,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:812,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:812,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:817,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:818,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:822,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:823,1
    - Dst: OGRGeomFieldDefn::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:824,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:826,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:833,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:838,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:840,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:840,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:844,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:853,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:854,1
    - Dst: OGRVRTLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:854,1
    - Dst: OGRVRTLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:861,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:866,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:870,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:879,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:889,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:895,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:909,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:911,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:911,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:912,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:914,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:914,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:921,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:928,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:934,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:936,1
    - Dst: OGRFieldDefn::GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:936,1
    - Dst: static_cast<OGRFieldSubType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:937,1
    - Dst: static_cast<OGRFieldSubType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:939,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:944,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:946,1
    - Dst: OGR_AreTypeSubTypeCompatible
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:951,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:951,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:954,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:957,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:957,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:961,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:968,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:972,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:977,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:981,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:986,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:991,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:994,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:994,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:999,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1004,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1007,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1009,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1015,1
    - Dst: GetFieldIndexCaseSensitiveFirst
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1020,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1020,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1023,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1030,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1037,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1038,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1038,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1042,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1046,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1046,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1047,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1047,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1050,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1057,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1074,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1075,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1076,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1077,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1085,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1086,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1089,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1092,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1100,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1102,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1103,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1104,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1105,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1108,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1112,1
    - Dst: const_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1114,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1121,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1121,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1122,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1122,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1126,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1127,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1128,1
    - Dst: OGRVRTLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1130,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1136,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1137,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1138,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1139,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1140,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1142,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 316
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 1144
    functionName: OGRVRTLayer::FullInitialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRVRTDataSource *>
    - OGRGeomFieldDefn*::IsNullable
    - CPLDebug
    - OGRFieldDefn::GetFieldTypeName
    - CPLGetXMLValue
    - GetFieldIndexCaseSensitiveFirst
    - std::string::empty
    - SetGeomType
    - OGRVRTLayer::GetSrcLayerDefn
    - AddFieldDefn
    - resize
    - OGRVRTDataSource*::AddForbiddenNames
    - OGRVRTLayer::GetFIDColumn
    - GetParentDS
    - GetCallLevel
    - ExecuteSQL
    - Release
    - back
    - OGRFieldDefn::SetWidth
    - CPLGetXMLNode
    - CSLDestroy
    - static_cast<OGRFieldType>
    - OGRVRTGeomFieldProps::OGRVRTGeomFieldProps
    - OGRVRTLayer::ParseGeometryField
    - GetGeomFieldDefn
    - OGRFieldDefn::SetUnique
    - OGR_AreTypeSubTypeCompatible
    - std::string::c_str
    - CPLErrorReset
    - XMLInit
    - OGRVRTLayer::SetIgnoredFields
    - CPLGetLastErrorMsg
    - static_cast<int>
    - OGRVRTDataSource*::SetCallLevel
    - OGRFieldDefn*::GetType
    - CPLAssert
    - size
    - GDALOpenEx
    - AddGeomFieldDefn
    - EQUAL
    - GetDriver
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - GetDescription
    - strcmp
    - Reference
    - OGRFieldDefn::SetNullable
    - CPLProjectRelativeFilenameSafe
    - EQUALN
    - CPLString::resize
    - SetRecursionDetected
    - OGRGeomFieldDefn::SetCoordinatePrecision
    - CPL_TO_BOOL
    - std::string::find
    - OGRGeomFieldDefn*::GetNameRef
    - OGRVRTDataSource*::SetRecursionDetected
    - strlen
    - GetLayerByName
    - OGRFieldDefn::SetAlternativeName
    - c_str
    - OGRGeomFieldDefn::SetNullable
    - MEMDataset::Create
    - IsInForbiddenNames
    - const_cast<OGRSpatialReference *>
    - GetRecursionDetected
    - empty
    - OGRFieldDefn::GetType
    - clear
    - OGRGeomFieldDefn::SetSpatialRef
    - CPLError
    - GetGeomFieldCount
    - dynamic_cast<OGRVRTDataSource *>
    - CreateLayer
    - OGRVRTDataSource*::GetParentDS
    - CPLTestBool
    - OGRFieldDefn::GetFieldSubTypeName
    - OGRGeomFieldDefn*::GetType
    - OGRFeatureDefn::OGRFeatureDefn
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - static_cast<OGRFieldSubType>
    - OGRVRTDataSource*::SetParentDS
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetComment
    linkageType: ''
    returnType: bool
    signature: bool OGRVRTLayer::FullInitialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1153
    functionName: OGRVRTLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVRTLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1166,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1172,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1174,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1180,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1187,1
    - Dst: poSrcRegion::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1205,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1210,1
    - Dst: poSrcRegion::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1211,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1213,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1215,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1228,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1229,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1232,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1234,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1238,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1240,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1243,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1247,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1252,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1254,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1257,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1261,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1266,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1268,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1271,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1275,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1280,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1282,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1294,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1298,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1302,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1312,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1315,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1321,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1321,1
    - Dst: poSrcRegion::get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1327,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1344,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1345,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1345,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1346,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1346,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1356,1
    - Dst: Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1356,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1357,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1362,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1368,1
    - Dst: OGRVRTLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1370,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1374
    functionName: OGRVRTLayer::ResetSourceReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - getEnvelope
    - std::unique_ptr<OGRGeometry>
    - OGRVRTLayer::ResetReading
    - SetSpatialFilter
    - CPLError
    - CPLString::empty
    - poSrcRegion::Intersection
    - poSrcRegion::getEnvelope
    - CPLStrdup
    - std::isinf
    - std::unique_ptr::reset
    - Intersection
    - static_cast<int>
    - poSrcRegion::get
    - CPLSPrintf
    - OGRVRTLayer::SetAttributeFilter
    - OGRFieldDefn*::GetType
    - CPLAssert
    - CPLFree
    - auto::getEnvelope
    - std::unique_ptr::get
    - size
    - auto::IsEmpty
    - OGRVRTLayer::GetLayerDefn
    linkageType: ''
    returnType: bool
    signature: bool OGRVRTLayer::ResetSourceReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1386,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1387,1
    - Dst: OGRVRTLayer::ResetSourceReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1394,1
    - Dst: OGRVRTLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1400,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1405,1
    - Dst: OGRVRTLayer::ClipAndAssignSRS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1408,1
    - Dst: OGRVRTLayer::TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1412,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1419,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1419,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1423,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1423,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1424,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1380
    functionDepth: 5
    functionLinenumber: 1380
    functionLinenumberEnd: 1429
    functionName: OGRVRTLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - GetRecursionDetected
    - OGRVRTLayer::ResetSourceReading
    - OGRVRTLayer::TranslateFeature
    - OGRFeature*::GetGeomFieldRef
    - OGRVRTLayer::ClipAndAssignSRS
    - FilterGeometry
    - Evaluate
    - OGRVRTLayer::GetNextFeature
    - OGRVRTLayer::FullInitialize
    - OGRVRTLayer::GetSrcLayerDefn
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVRTLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1437,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1440,1
    - Dst: OGRGeometry*::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1445,1
    - Dst: poSrcRegion::get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1445,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1447,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1448,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1450,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1453,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1456
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1456
    functionName: OGRVRTLayer::ClipAndAssignSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRVRTLayer::GetLayerDefn
    - OGRGeometry*::Intersection
    - OGRFeature*::GetGeomFieldRef
    - poSrcRegion::get
    - GetGeomFieldCount
    - OGRFeature*::SetGeomFieldDirectly
    linkageType: ''
    returnType: void
    signature: void OGRVRTLayer::ClipAndAssignSRS(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1469,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1475,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1475,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1477,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1477,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1482,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1483,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1483,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1487,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1488,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1488,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1491,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1500,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1512,1
    - Dst: OGRFeature*::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1514,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1514,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1523,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1525,1
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1531,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1539,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1541,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1545,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1553,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1555,1
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1561,1
    - Dst: OGRCreateFromShapeBin
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1569,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1571,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1575,1
    - Dst: OGRFeature*::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1579,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1579,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1586,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1588,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1590,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1586,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1595,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1597,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1595,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1602,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1602,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1605,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1618,1
    - Dst: OGRGeometry*::Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1620,1
    - Dst: poSrcRegion::get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1620,1
    - Dst: OGRVRTLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1626,1
    - Dst: OGRVRTLayer::ClipAndAssignSRS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1635,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1638,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1644,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1646,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1648,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1649,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1653,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1653,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1655,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1656,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1662,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1663,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1663,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1666,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1666,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 94
    argCount: 2
    argNames:
    - poSrcFeat
    - bUseSrcRegion
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 1672
      start: 1464
    functionDepth: 4
    functionLinenumber: 1464
    functionLinenumberEnd: 1672
    functionName: OGRVRTLayer::TranslateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::SetGeomField
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldDefn
    - GetGeomFieldCount
    - CPLHexToBinary
    - OGRFeature*::SetGeomFieldDirectly
    - OGRFieldDefn*::IsIgnored
    - OGRGeometryFactory::createFromWkb
    - OGRFeature*::SetStyleString
    - OGRFeature*::GetFieldAsDouble
    - OGRVRTLayer::ClipAndAssignSRS
    - OGRFeature*::GetStyleString
    - OGRFeature*::GetRawFieldRef
    - OGRPoint::OGRPoint
    - std::move
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - poSrcRegion::get
    - GetFieldCount
    - OGRVRTLayer::GetNextFeature
    - OGRFieldDefn*::GetType
    - OGRGeometry*::Intersects
    - OGRFeature::OGRFeature
    - OGRCreateFromShapeBin
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - OGRVRTLayer::GetLayerDefn
    - OGRPoint*::setM
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRVRTLayer::TranslateFeature(OGRFeature *&poSrcFeat,\n
      \                                         int bUseSrcRegion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1682,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1683,1
    - Dst: OGRVRTLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1696,1
    - Dst: OGRVRTLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1704,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1705,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1705,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1707,1
    - Dst: OGRVRTLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1708,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1709,1
    - Dst: OGRVRTLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1711,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1718,1
    - Dst: OGRVRTLayer::ClipAndAssignSRS
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1721,1
    - Dst: OGRVRTLayer::TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1725,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1730
      start: 1678
    functionDepth: 5
    functionLinenumber: 1678
    functionLinenumberEnd: 1730
    functionName: OGRVRTLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - GetRecursionDetected
    - OGRVRTLayer::GetFeature
    - OGRVRTLayer::TranslateFeature
    - OGRVRTLayer::ClipAndAssignSRS
    - OGRVRTLayer::SetAttributeFilter
    - OGRVRTLayer::ResetReading
    - SetSpatialFilter
    - OGRVRTLayer::FullInitialize
    - snprintf
    - strlen
    - OGRVRTLayer::GetNextFeature
    - OGRVRTLayer::GetSrcLayerDefn
    - CPLFree
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVRTLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1739,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1740,1
    - Dst: OGRVRTLayer::ResetSourceReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1745,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1749,1
    - Dst: OGRVRTLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1750,1
    - Dst: OGRLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1753
      start: 1736
    functionDepth: 5
    functionLinenumber: 1736
    functionLinenumberEnd: 1753
    functionName: OGRVRTLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - GetRecursionDetected
    - OGRVRTLayer::ResetSourceReading
    - OGRLayer::SetNextByIndex
    - OGRVRTLayer::SetNextByIndex
    - OGRVRTLayer::FullInitialize
    - OGRVRTLayer::TestCapability
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1764,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1764,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1766,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1766,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1771,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1772,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1772,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1776,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1777,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1777,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1782,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1794,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1798,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1800,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1802,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1807,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1812,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1812,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1818,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1818,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1820,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1822,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1825,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1826,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1832,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1833,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1836,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1842,1
    - Dst: OGRFeature*::SetGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1846,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1847,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1851,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1854,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1854,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1856,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1862,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1863,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1864,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1865,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1866,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1869,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1870,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1874,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1875,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1885,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1887,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1888,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1892,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1896,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1913,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1915,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1918,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1918,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1920,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1921,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1927,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1928,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 78
    argCount: 1
    argNames:
    - poVRTFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1933
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1933
    functionName: OGRVRTLayer::TranslateVRTFeatureToSrcFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::SetGeomField
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - GetGeomFieldCount
    - simple_max
    - OGRFeature*::SetStyleString
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::GetStyleString
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - auto::getZ
    - static_cast<int>
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - OGRGeometry*::exportToWkb
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - static_cast<GByte *>
    - auto::getM
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - static_cast<size_t>
    - OGRVRTLayer::GetLayerDefn
    - auto::getX
    - OGRGeometry*::exportToWkt
    - auto::getY
    - OGRFeature*::SetField
    - OGRGeometry*::toPoint
    - VSI_MALLOC_VERBOSE
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: 'OGRFeature *

      OGRVRTLayer::TranslateVRTFeatureToSrcFeature(OGRFeature *poVRTFeature)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1942,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1943,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1948,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1955,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1961,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1962,1
    - Dst: OGRVRTLayer::TranslateVRTFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1964,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1965,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1966,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1969,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1969,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - poVRTFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1973
      start: 1939
    functionDepth: 5
    functionLinenumber: 1939
    functionLinenumberEnd: 1973
    functionName: OGRVRTLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - GetRecursionDetected
    - OGRVRTLayer::TranslateVRTFeatureToSrcFeature
    - OGRFeature*::GetFID
    - OGRVRTLayer::GetSrcLayerDefn
    - OGRVRTLayer::FullInitialize
    - CPLError
    - CreateFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::ICreateFeature(OGRFeature *poVRTFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1982,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1983,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1988,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:1995,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2001,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2002,1
    - Dst: OGRVRTLayer::TranslateVRTFeatureToSrcFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2004,1
    - Dst: SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - poVRTFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2008
      start: 1979
    functionDepth: 5
    functionLinenumber: 1979
    functionLinenumberEnd: 2008
    functionName: OGRVRTLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - GetRecursionDetected
    - OGRVRTLayer::TranslateVRTFeatureToSrcFeature
    - SetFeature
    - OGRVRTLayer::GetSrcLayerDefn
    - OGRVRTLayer::FullInitialize
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::ISetFeature(OGRFeature *poVRTFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2018,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2019,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2024,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2031,1
    - Dst: OGRVRTLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2037,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2038
      start: 2014
    functionDepth: 5
    functionLinenumber: 2014
    functionLinenumberEnd: 2038
    functionName: OGRVRTLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    - OGRVRTLayer::DeleteFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2048,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2049,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2054,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2055,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2058,1
    - Dst: OGRVRTLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2060,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - pszNewQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2068
      start: 2044
    functionDepth: 5
    functionLinenumber: 2044
    functionLinenumberEnd: 2068
    functionName: OGRVRTLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 3
    functionsReached:
    - GetRecursionDetected
    - CPLStrdup
    - OGRLayer::SetAttributeFilter
    - OGRVRTLayer::ResetReading
    - OGRVRTLayer::FullInitialize
    - strlen
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::SetAttributeFilter(const char *pszNewQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2077,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2081,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2081,1
    - Dst: sStaticEnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2082,1
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2086,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2087,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2090,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2091,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2096,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2108,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2114,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2115,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2117,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2119,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2120,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2125,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2127,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2128,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2130,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2131,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2132,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2134,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2135,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2137,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2138,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2140,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2142,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2143,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2144,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 38
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2147
      start: 2074
    functionDepth: 5
    functionLinenumber: 2074
    functionLinenumberEnd: 2147
    functionName: OGRVRTLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 2
    functionsReached:
    - size
    - GetRecursionDetected
    - sStaticEnvelope::IsInit
    - EQUAL
    - OGRVRTLayer::FullInitialize
    - OGRVRTLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRVRTLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2156,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2156,1
    - Dst: sStaticEnvelope::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2159,1
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2166,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2167,1
    - Dst: OGRVRTLayer::ResetSourceReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2176,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2178,1
    - Dst: poSrcRegion::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2185,1
    - Dst: OGREnvelope*::Intersect
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2188,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 2193
      start: 2153
    functionDepth: 5
    functionLinenumber: 2153
    functionLinenumberEnd: 2193
    functionName: OGRVRTLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - GetExtent
    - GetRecursionDetected
    - OGRVRTLayer::ResetSourceReading
    - poSrcRegion::getEnvelope
    - OGREnvelope*::Intersect
    - sStaticEnvelope::IsInit
    - OGRVRTLayer::FullInitialize
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRVRTLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2211,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2212,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2215,1
    - Dst: OGRVRTLayer::ResetSourceReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2218,1
    - Dst: OGRVRTLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2220,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2224
      start: 2199
    functionDepth: 6
    functionLinenumber: 2199
    functionLinenumberEnd: 2224
    functionName: OGRVRTLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - GetRecursionDetected
    - OGRVRTLayer::ResetSourceReading
    - OGRLayer::GetFeatureCount
    - OGRVRTLayer::FullInitialize
    - OGRVRTLayer::GetFeatureCount
    - OGRVRTLayer::TestCapability
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRVRTLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2234,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2235,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2238,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2243,1
    - Dst: OGRVRTLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2246
      start: 2230
    functionDepth: 5
    functionLinenumber: 2230
    functionLinenumberEnd: 2246
    functionName: OGRVRTLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRVRTLayer::GetLayerDefn
    - GetRecursionDetected
    - OGRVRTLayer::ResetReading
    - OGRVRTLayer::FullInitialize
    - InstallFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRVRTLayer::ISetSpatialFilter(int iGeomField,\n                                      const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2255,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2256,1
    - Dst: OGRVRTLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2252
    functionDepth: 5
    functionLinenumber: 2252
    functionLinenumberEnd: 2260
    functionName: OGRVRTLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    - OGRVRTLayer::SyncToDisk
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2266
    functionDepth: 5
    functionLinenumber: 2266
    functionLinenumberEnd: 2272
    functionName: OGRVRTLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 6
    functionsReached:
    - OGRVRTLayer::FullInitialize
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRVRTLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2280,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2281,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2284,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2278
    functionDepth: 1
    functionLinenumber: 2278
    functionLinenumberEnd: 2290
    functionName: OGRVRTLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLGetXMLValue
    - size
    - OGRVRTLayer::GetLayerDefn
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRVRTLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2299,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2296
    functionDepth: 5
    functionLinenumber: 2296
    functionLinenumberEnd: 2304
    functionName: OGRVRTLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    linkageType: ''
    returnType: char
    signature: char *OGRVRTLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2313,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2314,1
    - Dst: OGRVRTLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2310
    functionDepth: 5
    functionLinenumber: 2310
    functionLinenumberEnd: 2318
    functionName: OGRVRTLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVRTLayer::StartTransaction
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2327,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2328,1
    - Dst: OGRVRTLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2324
    functionDepth: 5
    functionLinenumber: 2324
    functionLinenumberEnd: 2332
    functionName: OGRVRTLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVRTLayer::CommitTransaction
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2341,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2342,1
    - Dst: OGRVRTLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2338
    functionDepth: 5
    functionLinenumber: 2338
    functionLinenumberEnd: 2346
    functionName: OGRVRTLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRVRTLayer::FullInitialize
    - OGRVRTLayer::RollbackTransaction
    - GetRecursionDetected
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2355,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2356,1
    - Dst: OGRVRTLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2359,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2362,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2366,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2372,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2373,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2375,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2391,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2410,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2411,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2411,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2417,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2425,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2426,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2426,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2434,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2435,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2442,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2477,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2483,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2484,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2484,1
    - Dst: std::vector::clear
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2489,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2490,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2490,1
    - Dst: OGRVRTLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2491,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2501,1
    - Dst: OGRVRTLayer::GetSrcLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2507,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2508,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2508,1
    - Dst: OGRVRTLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2512,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2512,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 80
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2513
      start: 2352
    functionDepth: 6
    functionLinenumber: 2352
    functionLinenumberEnd: 2513
    functionName: OGRVRTLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 3
    functionsReached:
    - OGRVRTLayer::GetLayerDefn
    - GetRecursionDetected
    - OGRVRTLayer::SetIgnoredFields
    - cpl::Iterate
    - CPLStringList::AddString
    - OGRFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetNameRef
    - EQUAL
    - OGRVRTLayer::GetSrcLayerDefn
    - OGRLayer::SetIgnoredFields
    - OGRVRTLayer::FullInitialize
    - std::vector::clear
    - OGRVRTLayer::TestCapability
    - CPLStringList::CPLStringList
    - std::vector::resize
    - CPLStringList::List
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRVRTLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTLayer::FullInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2522,1
    - Dst: GetRecursionDetected
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp:2523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2519
    functionDepth: 5
    functionLinenumber: 2519
    functionLinenumberEnd: 2526
    functionName: OGRVRTLayer::GetSrcDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRVRTLayer::FullInitialize
    - GetRecursionDetected
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRVRTLayer::GetSrcDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::vector<CPLString> *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:42,1
    - Dst: CPL_STDCALL::CPLGetErrorHandlerUserData
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:42,1
    - Dst: std::vector*::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - CPLErr
    - CPLErrorNum
    - pszMsg
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: CPL_STDCALL::OGRVRTErrorHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp
    functionUses: 0
    functionsReached:
    - CPL_STDCALL::CPLGetErrorHandlerUserData
    - std::vector*::push_back
    - static_cast<std::vector<CPLString> *>
    linkageType: ''
    returnType: void
    signature: "void CPL_STDCALL OGRVRTErrorHandler(CPL_UNUSED CPLErr eErr,\n                                           CPL_UNUSED
      CPLErrorNum nType,\n                                           const char *pszMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:58,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:58,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:60,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:68,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: OGRVRTDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - reinterpret_cast<char *>
    - static_cast<unsigned char>
    - isspace
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRVRTDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:80,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:88,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:88,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:92,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:94,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:105,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:110,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:112,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:118,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:119,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:127,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:127,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:132,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:133,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:135,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:138,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:143,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:147,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:152,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:152,1
    - Dst: CPLPushErrorHandlerEx
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:158,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:160,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:163,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:164,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:164,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:169,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:170,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:177,1
    - Dst: static_cast<GDALDriver *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:181,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:181,1
    - Dst: OGRVRTDataSource::OGRVRTDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:180,1
    - Dst: OGRVRTDataSource*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:184,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 192
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 192
    functionName: OGRVRTDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRVRTDataSource::OGRVRTDataSource
    - std::vector::size
    - CPLError
    - CPLGetConfigOption
    - simple_max
    - CPLErrorReset
    - CPLStrdup
    - static_cast<unsigned char>
    - isspace
    - CPLPushErrorHandlerEx
    - CPLPopErrorHandler
    - static_cast<GDALDriver *>
    - std::vector::empty
    - STARTS_WITH_CI
    - OGRVRTDriverIdentify
    - CPLTestBool
    - c_str
    - static_cast<uint64_t>
    - VSIFSeekL
    - CPLParseXMLString
    - strstr
    - VSIFReadL
    - static_cast<char *>
    - CPLFree
    - GDALGetDriverByName
    - VSIStatL
    - VSIFCloseL
    - OGRVRTDataSource*::Initialize
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRVRTDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:201,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:204,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:206,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:207,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:208,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:209,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:210,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:211,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:212,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:213,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:214,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:215,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:216,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:217,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:218,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:220,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: RegisterOGRVRT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRVRT()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poDriverIn
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: OGRVRTDataSource::OGRVRTDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRVRTDataSource::OGRVRTDataSource(GDALDriver *poDriverIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVRTDataSource::CloseDependentDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:56,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:58,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: OGRVRTDataSource::~OGRVRTDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - CPLFree
    - OGRVRTDataSource::CloseDependentDatasets
    linkageType: ''
    returnType: void
    signature: void OGRVRTDataSource::~OGRVRTDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: OGRVRTDataSource::CloseDependentDatasets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGRVRTDataSource::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:91,1
    - Dst: OGRVRTDataSource::InstantiateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:118,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:133,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:146,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:148,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:152,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:157,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:158,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:159,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:174,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:179,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:180,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:181,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:183,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:192,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:198,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:206,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:209,1
    - Dst: OGRWarpedLayer::OGRWarpedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:223,1
    - Dst: OGRWarpedLayer*::SetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:233,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:233,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:233,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:234,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:234,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 4
    argNames:
    - psLTree
    - pszVRTDirectory
    - bUpdate
    - nRecLevel
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 238
    functionName: OGRVRTDataSource::InstantiateWarpedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - CPLAtof
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRWarpedLayer*::SetExtent
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - EQUAL
    - OGRSpatialReference*::SetFromUserInput
    - OGRSpatialReference*::IsSame
    - OGRVRTDataSource::InstantiateLayer
    - OGRLayer*::GetLayerDefn
    - CPLError
    - OGRCreateCoordinateTransformation
    - OGRWarpedLayer::OGRWarpedLayer
    - auto::SetAxisMappingStrategy
    - auto::SetFromUserInput
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRVRTDataSource::InstantiateWarpedLayer(CPLXMLNode *psLTree,\n
      \                                                  const char *pszVRTDirectory,\n
      \                                                  int bUpdate, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:248,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:256,1
    - Dst: OGRVRTGetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:270,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:286,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:288,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:289,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:291,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:296,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:316,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:322,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:336,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:338,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:338,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:339,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:341,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:346,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:348,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:358,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:362,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:368,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:372,1
    - Dst: static_cast<OGRFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:374,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:375,1
    - Dst: OGRFieldDefn::OGRFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:376,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:379,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:384,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:389,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:391,1
    - Dst: OGRVRTGetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:397,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:401,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:409,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:415,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:417,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:418,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:420,1
    - Dst: "OGRSpatialReference::\n                                SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:426,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:430,1
    - Dst: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:435,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:438,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:439,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:455,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:456,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:457,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:458,1
    - Dst: static_cast<OGRUnionLayerGeomFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:462,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:462,1
    - Dst: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:482,1
    - Dst: OGRUnionLayerGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:485,1
    - Dst: OGRSpatialReference*::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:486,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:494,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:495,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:496,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:497,1
    - Dst: static_cast<OGRUnionLayerGeomFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:500,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:501,1
    - Dst: OGRVRTDataSource::InstantiateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:522,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:526,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:526,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:535,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:538,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:541,1
    - Dst: OGRUnionLayer::OGRUnionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:547,1
    - Dst: OGRUnionLayer*::SetSourceLayerFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:552,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:559,1
    - Dst: OGRUnionLayer*::SetPreserveSrcFID
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:560,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:572,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:576,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:584,1
    - Dst: OGRUnionLayer*::SetFields
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:590,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:597,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:600,1
    - Dst: OGRUnionLayer*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:607,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:607,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 176
    argCount: 4
    argNames:
    - psLTree
    - pszVRTDirectory
    - bUpdate
    - nRecLevel
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 611
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 611
    functionName: OGRVRTDataSource::InstantiateUnionLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRUnionLayer*::SetFields
    - OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    - atoi
    - OGRUnionLayer::OGRUnionLayer
    - OGRSpatialReference::SetAxisMappingStrategy
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - OGRFieldDefn::OGRFieldDefn
    - OGRFieldDefn::GetFieldTypeName
    - OGRUnionLayerGeomFieldDefn*::SetSpatialRef
    - CPLGetXMLValue
    - CPLError
    - static_cast<OGRFieldDefn **>
    - OGRUnionLayer*::SetFeatureCount
    - OGRSpatialReference::Clone
    - CPLRealloc
    - OGRVRTGetGeometryType
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - CPLTestBool
    - static_cast<int>
    - OGRSpatialReference*::Dereference
    - OGRVRTDataSource::InstantiateLayer
    - "OGRSpatialReference::\n                                SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLFree
    - OGRUnionLayer*::SetSourceLayerFieldName
    - OGRSpatialReference::OGRSpatialReference
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRUnionLayer*::SetPreserveSrcFID
    - static_cast<OGRFieldType>
    - OGRFieldDefn::SetType
    - EQUAL
    - static_cast<OGRLayer **>
    - static_cast<OGRUnionLayerGeomFieldDefn **>
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRVRTDataSource::InstantiateUnionLayer(CPLXMLNode *psLTree,\n
      \                                                 const char *pszVRTDirectory,\n
      \                                                 int bUpdate, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:623,1
    - Dst: OGRVRTLayer::OGRVRTLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:625,1
    - Dst: OGRVRTLayer*::FastInitialize
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:627,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:635,1
    - Dst: OGRVRTDataSource::InstantiateWarpedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:637,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:640,1
    - Dst: OGRVRTDataSource::InstantiateUnionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - psLTree
    - pszVRTDirectory
    - bUpdate
    - nRecLevel
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 647
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 647
    functionName: OGRVRTDataSource::InstantiateLayerInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRVRTDataSource::InstantiateWarpedLayer
    - EQUAL
    - OGRVRTLayer::OGRVRTLayer
    - OGRVRTLayer*::FastInitialize
    - OGRVRTDataSource::InstantiateUnionLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRVRTDataSource::InstantiateLayerInternal(CPLXMLNode
      *psLTree,\n                                           const char *pszVRTDirectory,\n
      \                                          int bUpdate, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PooledInitData *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:663,1
    - Dst: PooledInitData*::poDS::InstantiateLayerInternal
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 666
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 666
    functionName: OGRVRTOpenProxiedLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<PooledInitData *>
    - PooledInitData*::poDS::InstantiateLayerInternal
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRVRTOpenProxiedLayer(void *pUserData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PooledInitData *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:674,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:675,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 677
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 677
    functionName: OGRVRTFreeProxiedLayerUserData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<PooledInitData *>
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRVRTFreeProxiedLayerUserData(void *pUserData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:687,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:690,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:693,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:694,1
    - Dst: OGRProxiedLayer::OGRProxiedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:695,1
    - Dst: OGRVRTDataSource::InstantiateLayerInternal
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - psLTree
    - pszVRTDirectory
    - bUpdate
    - nRecLevel
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 701
      start: 683
    functionDepth: 4
    functionLinenumber: 683
    functionLinenumberEnd: 701
    functionName: OGRVRTDataSource::InstantiateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRProxiedLayer::OGRProxiedLayer
    - CPLStrdup
    - OGRVRTDataSource::InstantiateLayerInternal
    - EQUAL
    - CPLMalloc
    - CPL_TO_BOOL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRVRTDataSource::InstantiateLayer(CPLXMLNode *psLTree,\n
      \                                            const char *pszVRTDirectory,\n
      \                                            int bUpdate, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:713,1
    - Dst: CountOGRVRTLayers
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - psTree
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: CountOGRVRTLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CountOGRVRTLayers
    linkageType: ''
    returnType: int
    signature: int CountOGRVRTLayers(CPLXMLNode *psTree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:733,1
    - Dst: OGRVRTDataSource::AddForbiddenNames
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:735,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:741,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:747,1
    - Dst: OGRLayerPool::OGRLayerPool
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:759,1
    - Dst: XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:762,1
    - Dst: OGRVRTDataSource::InstantiateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:772,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:778,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:779,1
    - Dst: static_cast<OGRLayerType *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:782,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:783,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:784,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - psTreeIn
    - pszNewName
    - bUpdate
    argTypes:
    - CPLXMLNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 799
      start: 729
    functionDepth: 5
    functionLinenumber: 729
    functionLinenumberEnd: 799
    functionName: OGRVRTDataSource::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRLayerType *>
    - CPLGetPathSafe
    - XMLInit
    - CPLGetXMLNode
    - static_cast<OGRLayer **>
    - EQUAL
    - CPLAssert
    - CPLRealloc
    - OGRLayerPool::OGRLayerPool
    - OGRVRTDataSource::InstantiateLayer
    - CPLError
    - OGRVRTDataSource::AddForbiddenNames
    linkageType: ''
    returnType: bool
    signature: "bool OGRVRTDataSource::Initialize(CPLXMLNode *psTreeIn, const char
      *pszNewName,\n                                  int bUpdate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:807,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:809,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 815
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 815
    functionName: OGRVRTDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRVRTDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 828
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 828
    functionName: OGRVRTDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRVRTDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszOtherDSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: OGRVRTDataSource::AddForbiddenNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 1
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void OGRVRTDataSource::AddForbiddenNames(const char *pszOtherDSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:845,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszOtherDSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: OGRVRTDataSource::IsInForbiddenNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool OGRVRTDataSource::IsInForbiddenNames(const char *pszOtherDSName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:854,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:855,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:855,1
    - Dst: cpl::down_cast<OGRVRTLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:863,1
    - Dst: cpl::down_cast<OGRProxiedLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:864,1
    - Dst: cpl::down_cast<OGRVRTLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:868,1
    - Dst: OGRVRTLayer*::GetSrcDataset
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:875,1
    - Dst: CPLStringList::FindString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:883,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:884,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:886,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp:890,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 891
    functionName: OGRVRTDataSource::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRVRTLayer *>
    - CPLStringList::AddString
    - GetDescription
    - CSLDestroy
    - CPLStringList::StealList
    - cpl::down_cast<OGRProxiedLayer *>
    - CPLStringList::FindString
    - OGRVRTLayer*::GetSrcDataset
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **OGRVRTDataSource::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: OGRVRTLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 1
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: OGRVRTDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCallLevelIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: OGRVRTDataSource::SetCallLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCallLevel(int nCallLevelIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: OGRVRTDataSource::GetCallLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetCallLevel()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poParentDSIn
    argTypes:
    - OGRVRTDataSource*
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: OGRVRTDataSource::SetParentDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetParentDS(OGRVRTDataSource *poParentDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: OGRVRTDataSource::GetParentDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRVRTDataSource
    signature: OGRVRTDataSource *GetParentDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: OGRVRTDataSource::SetRecursionDetected
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRecursionDetected()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: OGRVRTDataSource::GetRecursionDetected
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/vrt/ogr_vrt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetRecursionDetected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: GDALGeoPackageDataset::IncrementReadTableDefCounter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncrementReadTableDefCounter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: GDALGeoPackageDataset::GetReadTableDefCounter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetReadTableDefCounter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:322,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: GDALGeoPackageDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: GDALGeoPackageDataset::IsInTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool IsInTransaction() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: GDALGeoPackageDataset::SetMetadataDirty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMetadataDirty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: GDALGeoPackageDataset::HasNonSpatialTablesNonRegisteredInGpkgContents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasNonSpatialTablesNonRegisteredInGpkgContents() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: GDALGeoPackageDataset::IGetRasterCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IGetRasterCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nBand
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: GDALGeoPackageDataset::IGetRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - GetRasterBand
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *IGetRasterBand(int nBand) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: GDALGeoPackageDataset::IGetDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - GetDB
    linkageType: ''
    returnType: sqlite3
    signature: sqlite3 *IGetDB() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: GDALGeoPackageDataset::IGetUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - GetUpdate
    linkageType: ''
    returnType: bool
    signature: bool IGetUpdate() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: GDALGeoPackageDataset::IStartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - SoftStartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr IStartTransaction() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: GDALGeoPackageDataset::ICommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - SoftCommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr ICommitTransaction() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: GDALGeoPackageDataset::IGetFilename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *IGetFilename() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nRow
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: GDALGeoPackageDataset::GetRowFromIntoTopConvention
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetRowFromIntoTopConvention(int nRow) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:483,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:484,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:488,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:489,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALGeoPackageDataset*
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: GPKGTemporaryForeignKeyCheckDisabler::GPKGTemporaryForeignKeyCheckDisabler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - SQLCommand
    - CPL_IGNORE_RET_VAL
    - GetDB
    linkageType: ''
    returnType: void
    signature: void GPKGTemporaryForeignKeyCheckDisabler(GDALGeoPackageDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:497,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:498,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: ~GPKGTemporaryForeignKeyCheckDisabler()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - GetDB
    - CPL_IGNORE_RET_VAL
    - SQLCommand
    linkageType: ''
    returnType: void
    signature: void ~GPKGTemporaryForeignKeyCheckDisabler()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: GDALGeoPackageRasterBand::AddImplicitStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddImplicitStatistics(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: GDALGeoPackageRasterBand::HaveStatsMetadataBeenSetInThisSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HaveStatsMetadataBeenSetInThisSession() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 291
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: HasFastSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasFastSpatialFilter(int /*iGeomCol*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: GetSpatialWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetSpatialWhere(int /*iGeomCol*/,\n                                      OGRGeometry
      * /*poFilterGeom*/) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: OGRGeoPackageTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - eASpatialVariant
    argTypes:
    - GPKGASpatialVariant
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 922
    functionName: OGRGeoPackageTableLayer::SetASpatialVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetASpatialVariant(GPKGASpatialVariant eASpatialVariant)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ePrecision
    argTypes:
    - OGRISO8601Precision
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: OGRGeoPackageTableLayer::SetDateTimePrecision
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDateTimePrecision(OGRISO8601Precision ePrecision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: OGRGeoPackageTableLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: OGRGeoPackageTableLayer::SetTruncateFieldsFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: void SetTruncateFieldsFlag(int bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 971
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 971
    functionName: OGRGeoPackageTableLayer::SetLaunder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunder(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 983
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 983
    functionName: OGRGeoPackageTableLayer::GetAddOGRFeatureCountTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetAddOGRFeatureCountTriggers() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 988
    functionName: OGRGeoPackageTableLayer::SetAddOGRFeatureCountTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAddOGRFeatureCountTriggers(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 993
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 993
    functionName: OGRGeoPackageTableLayer::GetOGRFeatureCountTriggersDeletedInTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetOGRFeatureCountTriggersDeletedInTransaction() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 998
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 998
    functionName: OGRGeoPackageTableLayer::SetOGRFeatureCountTriggersEnabled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOGRFeatureCountTriggersEnabled(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1075
    functionDepth: 4
    functionLinenumber: 1075
    functionLinenumberEnd: 1078
    functionName: OGRGeoPackageSelectLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1083
    functionName: '*&GetAttrQueryString() override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *&GetAttrQueryString() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1088
    functionName: '*&GetFeatureQuery() override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureQuery
    signature: OGRFeatureQuery *&GetFeatureQuery() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1093
    functionName: '*&GetFilterGeom() override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *&GetFilterGeom() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1098
    functionName: '&GetIGeomFieldFilter() override'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int &GetIGeomFieldFilter() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: OGRGeoPackageSelectLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1108
    functionName: OGRGeoPackageSelectLayer::InstallFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRLayer::InstallFilter
    linkageType: ''
    returnType: int
    signature: int InstallFilter(const OGRGeometry *poGeomIn) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1113
    functionName: OGRGeoPackageSelectLayer::HasReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasReadFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: OGRGeoPackageSelectLayer::BaseResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRGeoPackageLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void BaseResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: OGRGeoPackageSelectLayer::BaseGetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRGeoPackageLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *BaseGetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1128
    functionName: OGRGeoPackageSelectLayer::BaseSetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr BaseSetAttributeFilter(const char *pszQuery) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 4
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: OGRGeoPackageSelectLayer::BaseGetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig BaseGetFeatureCount(int bForce) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1138
    functionName: OGRGeoPackageSelectLayer::BaseTestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRGeoPackageLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int BaseTestCapability(const char *pszCap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1144
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1144
    functionName: OGRGeoPackageSelectLayer::BaseGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudTableLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr BaseGetExtent(int iGeomField, OGREnvelope *psExtent,\n                                 bool
      bForce) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::ValidateGeometryFieldIndexForSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - poGeomIn
    - bIsSelectLayer
    argTypes:
    - int
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 1154
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1154
    functionName: OGRGeoPackageSelectLayer::ValidateGeometryFieldIndexForSetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::ValidateGeometryFieldIndexForSetSpatialFilter
    linkageType: ''
    returnType: bool
    signature: "bool ValidateGeometryFieldIndexForSetSpatialFilter(int iGeomField,\n
      \                                                 const OGRGeometry *poGeomIn,\n
      \                                                 bool bIsSelectLayer) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:45,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:48,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:62,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: OGRGeoPackageTableLayer::SaveExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLCommand
    - GetUpdate
    - sqlite3_free
    - GetDB
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::SaveExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:76,1
    - Dst: UpdateGpkgContentsLastChange
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:81,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:88,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:93,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:93,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: OGRGeoPackageTableLayer::SaveTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - SQLCommand
    - CPLString::Printf
    - sqlite3_free
    - UpdateGpkgContentsLastChange
    - GetUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::SaveTimestamp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGREnvelope>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:111,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: OGRGeoPackageTableLayer::UpdateExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - Merge
    - std::make_unique<OGREnvelope>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::UpdateExtent(const OGREnvelope *poExtent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:126,1
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:130,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:132,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:132,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:141,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:148,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:150,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:151,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:157,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:160,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:160,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:168,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:170,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:171,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:177,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:180,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:180,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:187,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 194
    functionName: OGRGeoPackageTableLayer::BuildColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - SQLEscapeName
    - GetFieldCount
    - GetGeomFieldDefn
    - auto::IsIgnored
    - OGRGeoPackageTableLayer::GetLayerDefn
    - std::move
    - GetFieldDefn
    - auto::GetNameRef
    - resize
    - GetGeomFieldCount
    - CPLString::empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::BuildColumns()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:204,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: OGRGeoPackageTableLayer::IsGeomFieldSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetDefnRef
    - OGRFeature*::GetGeomFieldRef
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::IsGeomFieldSet(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:214,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:222,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:236,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:239,1
    - Dst: GPkgGeometryFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:253,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:258,1
    - Dst: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:263,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:271,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:282,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:283,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:292,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:293,1
    - Dst: auto::IsGenerated
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:294,1
    - Dst: OGRFeature*::IsFieldSetUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:303,1
    - Dst: OGRFeatureDefn*::GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:312,1
    - Dst: OGRFeature*::IsFieldNullUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:315,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:317,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:322,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:324,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:329,1
    - Dst: OGRFeature*::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:331,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:336,1
    - Dst: OGRFeature*::GetFieldAsDoubleUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:338,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:345,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:346,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:353,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:367,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:383,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:400,1
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:407,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:429,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:433,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:434,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:436,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:439,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:441,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:443,1
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:447,1
    - Dst: OGRFeature*::GetFieldAsStringUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:454,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:455,1
    - Dst: CPLIsUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:457,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:459,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:462,1
    - Dst: CPLForceToASCII
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:469,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:474,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:474,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:476,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:480,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:482,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:483,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:500,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:516,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:519,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:527,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:531,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:533,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:534,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:534,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 159
    argCount: 8
    argNames:
    - poFeature
    - poStmt
    - pnColCount
    - bAddFID
    - bBindUnsetFields
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    argTypes:
    - OGRFeature*
    - sqlite3_stmt*
    - int*
    - bool
    - bool
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 542
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 542
    functionName: OGRGeoPackageTableLayer::FeatureBindParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLForceToASCII
    - GPkgGeometryFromOGR
    - assert
    - auto::IsGenerated
    - OGRFeature*::GetFieldAsString
    - static_cast<GByte>
    - OGRGetISO8601DateTime
    - CPLError
    - OGRFieldDefn*::GetWidth
    - OGRFeatureDefn*::GetFieldDefnUnsafe
    - OGRFeature*::GetDefnRef
    - GetDB
    - OGRFeature*::GetRawFieldRef
    - CPLUnixTimeToYMDHMS
    - sqlite3_bind_int64
    - CPLIsUTF8
    - resize
    - OGRFeature*::IsFieldNullUnsafe
    - sqlite3_bind_double
    - sqlite3_bind_text
    - OGRFeatureDefn*::GetGeomFieldCount
    - CPLStrlenUTF8
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetGeomFieldRef
    - OGRFieldDefn*::GetNameRef
    - static_cast<GInt16>
    - OGRFieldDefn*::GetType
    - CPL_IGNORE_RET_VAL
    - sqlite3_errmsg
    - OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetFieldAsIntegerUnsafe
    - empty
    - static_cast<char>
    - OGRFeature*::GetFieldAsInteger64Unsafe
    - sqlite3_bind_blob
    - OGRFeature*::GetFieldAsStringUnsafe
    - CPLYMDHMSToUnixTime
    - OGRFeature*::GetFieldAsDoubleUnsafe
    - sqlite3_bind_int
    - OGRFeature*::IsFieldSetUnsafe
    - sqlite3_bind_null
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::FeatureBindParameters(\n    OGRFeature
      *poFeature, sqlite3_stmt *poStmt, int *pnColCount, bool bAddFID,\n    bool bBindUnsetFields,
      int nUpdatedFieldsCount,\n    const int *panUpdatedFieldsIdx, int nUpdatedGeomFieldsCount,\n
      \   const int * /*panUpdatedGeomFieldsIdx*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::FeatureBindParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:568,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:570,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:570,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - poFeature
    - poStmt
    argTypes:
    - OGRFeature*
    - sqlite3_stmt*
    constantsTouched: []
    func_position:
      end: 575
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: OGRGeoPackageTableLayer::FeatureBindUpdateParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - OGRFeature*::GetFID
    - OGRGeoPackageTableLayer::FeatureBindParameters
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::FeatureBindUpdateParameters(OGRFeature
      *poFeature,\n                                                     sqlite3_stmt
      *poStmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::FeatureBindParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poFeature
    - poStmt
    - bAddFID
    - bBindUnsetFields
    argTypes:
    - OGRFeature*
    - sqlite3_stmt*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: OGRGeoPackageTableLayer::FeatureBindInsertParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::FeatureBindParameters
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::FeatureBindInsertParameters(\n    OGRFeature
      *poFeature, sqlite3_stmt *poStmt, bool bAddFID,\n    bool bBindUnsetFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:608,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:610,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:612,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:613,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:614,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:618,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:621,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:621,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:630,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:630,1
    - Dst: OGRGeoPackageTableLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:630,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:636,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:644,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:646,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:646,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:654,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:656,1
    - Dst: auto::IsGenerated
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:657,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:659,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:672,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:674,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:674,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:683,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:684,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:686,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:691,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:691,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:696,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:698,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:700,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:700,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:702,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:702,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:706,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:710,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:722,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:724,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:724,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:726,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:726,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:731,1
    - Dst: OGRGeoPackageTableLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:731,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 5
    argNames:
    - poFeature
    - bAddFID
    - bBindUnsetFields
    - bUpsert
    - osUpsertUniqueColumnName
    argTypes:
    - OGRFeature*
    - bool
    - bool
    - bool
    - std::string
    constantsTouched: []
    func_position:
      end: 737
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 737
    functionName: OGRGeoPackageTableLayer::FeatureGenerateInsertSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRFeature*::GetDefnRef
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeature*::IsFieldSet
    - CPLString::Printf
    - SQLEscapeName
    - auto::IsGenerated
    - CPLSPrintf
    - OGRGeoPackageTableLayer::GetFIDColumn
    - std::string::c_str
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeoPackageTableLayer::FeatureGenerateInsertSQL(\n    OGRFeature
      *poFeature, bool bAddFID, bool bBindUnsetFields, bool bUpsert,\n    const std::string
      &osUpsertUniqueColumnName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:754,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:758,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:761,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:765,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:765,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:774,1
    - Dst: auto::IsGenerated
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:775,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:777,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:785,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:785,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:789,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:792,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 796
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 796
    functionName: OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetDefnRef
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeature*::IsFieldSet
    - SQLEscapeName
    - auto::IsGenerated
    - CPLString
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL(\n    const
      OGRFeature *poFeature) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::ReadTableDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:807,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 811
    functionName: OGRGeoPackageTableLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::ReadTableDefinition
    - Seal
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRGeoPackageTableLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:820,1
    - Dst: OGRGeoPackageLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 822
    functionName: OGRGeoPackageTableLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageLayer::GetFIDColumn
    linkageType: ''
    returnType: char
    signature: char *OGRGeoPackageTableLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: OGRGeoPackageTableLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRGeoPackageTableLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:840,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 844
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 844
    functionName: OGRGeoPackageTableLayer::GetGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldCount
    - GetGeomFieldDefn
    linkageType: ''
    returnType: char
    signature: char *OGRGeoPackageTableLayer::GetGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IncrementReadTableDefCounter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:857,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:860,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:871,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:873,1
    - Dst: GetNameTypeMapFromSQliteMaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:875,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:876,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:876,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:877,1
    - Dst: CPLString::toupper
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:877,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:883,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:902,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:903,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:904,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:906,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:914,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:915,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:918,1
    - Dst: std::max<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:924,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:924,1
    - Dst: GetContents
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:938,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:940,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:940,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:943,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:952,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:953,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:956,1
    - Dst: GPKGContentsDesc::osMinX::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:961,1
    - Dst: GPKGContentsDesc::osMinY::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:961,1
    - Dst: GPKGContentsDesc::osMaxX::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:962,1
    - Dst: GPKGContentsDesc::osMaxY::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:962,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:964,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:965,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:966,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:967,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:984,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:985,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:986,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:988,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:998,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:999,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1003,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1005,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1014,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1015,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1022,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1023,1
    - Dst: auto::GetValueAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1041,1
    - Dst: auto::GetValueAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1042,1
    - Dst: auto::GetValueAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1043,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1044,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1046,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1047,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1052,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1058,1
    - Dst: GetReadTableDefCounter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1075,1
    - Dst: SQLGetUniqueFieldUCConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1077,1
    - Dst: GetSqliteMasterContent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1078,1
    - Dst: SQLGetUniqueFieldUCConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1083,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1092,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1093,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1095,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1098,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1107,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1115,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1121,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1124,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1138,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1138,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1139,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1140,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1140,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1141,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1144,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1144,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1144,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1154,1
    - Dst: GPkgFieldToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1156,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1162,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1169,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1169,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1170,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1171,1
    - Dst: GPkgGeometryTypeToWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1176,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1176,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1183,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1183,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1185,1
    - Dst: GPkgGeometryTypeToWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1188,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1188,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1191,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1195,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1200,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1201,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1201,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1207,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1211,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1215,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1218,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1219,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1222,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1223,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1224,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1224,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1226,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1234,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1236,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1243,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1246,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1254,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1259,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1260,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1262,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1264,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1264,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1266,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1277,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1278,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1279,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1281,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1287,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1289,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1292,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1296,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1297,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1298,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1300,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1302,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1302,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1306,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1307,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1308,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1309,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1312,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1317,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1319,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1321,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1325,1
    - Dst: OGRFieldDefn::SetGenerated
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1328,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1329,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1337,1
    - Dst: std::make_unique<OGREnvelope>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1343,1
    - Dst: HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1347,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1349,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1354,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1355,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1369,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1377,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1388,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1396,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1400,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1403,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1412,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1421,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1421,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1423,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1435,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1435,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1436,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1438,1
    - Dst: CPLXMLTreeCloser
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1449,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1449,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1456,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1461,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1466,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1468,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1470,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1470,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1471,1
    - Dst: SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1473,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1475,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1475,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1476,1
    - Dst: OGRGeoPackageTableLayer::BuildColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1487,1
    - Dst: OGRGeoPackageTableLayer::CheckUnknownExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1489,1
    - Dst: OGRGeoPackageTableLayer::InitView
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1491,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 249
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1494
    functionName: OGRGeoPackageTableLayer::ReadTableDefinition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - std::map::end
    - GPKGContentsDesc::osMaxY::empty
    - CPLDebug
    - std::make_unique<OGREnvelope>
    - CPLGetXMLValue
    - std::string::empty
    - GPkgFieldToOGR
    - sscanf
    - CPLAtoGIntBig
    - sqlite3_mprintf
    - AddFieldDefn
    - CPLParseXMLString
    - std::map::find
    - OGRFieldDefn::SetWidth
    - std::max<GIntBig>
    - sqlite3_free
    - OGRGeoPackageTableLayer::CheckUnknownExtensions
    - std::string
    - GetGeomFieldDefn
    - OGRFieldDefn::SetUnique
    - std::string::c_str
    - auto::RowCount
    - CPLStrdup
    - GetSqliteMasterContent
    - GetNameTypeMapFromSQliteMaster
    - wkbFlatten
    - CPLAtof
    - static_cast<int>
    - std::string::resize
    - GetContents
    - CPLFree
    - AddGeomFieldDefn
    - std::string::size
    - EQUAL
    - CPLString::toupper
    - GPKGContentsDesc::osMinY::empty
    - GPKGContentsDesc::osMaxX::empty
    - HasMetadataTables
    - IncrementReadTableDefCounter
    - strcmp
    - OGRFieldDefn::SetNullable
    - CPLString
    - OGRGeoPackageTableLayer::InitView
    - CPL_TO_BOOL
    - CPLString::empty
    - SQLQuery
    - CPLString::c_str
    - strlen
    - c_str
    - GetSpatialRef
    - CPLSPrintf
    - OGRFieldDefn::SetGenerated
    - OGRGeoPackageTableLayer::GetName
    - GPkgGeometryTypeToWKB
    - CPLGetValueType
    - OGRFieldDefn::GetType
    - auto::GetValue
    - SetFrom
    - auto::get
    - GetFieldDefn
    - CPLError
    - STARTS_WITH
    - GetGeomFieldCount
    - cpl::contains
    - GetDB
    - GPKGContentsDesc::osMinX::empty
    - CPLXMLTreeCloser
    - STARTS_WITH_CI
    - CPLTestBool
    - SQLGetUniqueFieldUCConstraints
    - OGRFieldDefn::SetSubType
    - OGRGeoPackageTableLayer::BuildColumns
    - GetReadTableDefCounter
    - OGRFieldDefn::SetDefault
    - OGRPGTableLayer::SetMetadataItem
    - strchr
    - HasDataColumnsTable
    - auto::GetValueAsInteger
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ReadTableDefinition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1502,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1504,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1506,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1507,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1507,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1508,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDS
    - pszTableName
    argTypes:
    - GDALGeoPackageDataset*
    - char*
    constantsTouched: []
    func_position:
      end: 1510
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1510
    functionName: OGRGeoPackageTableLayer::OGRGeoPackageTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::GetName
    - CPLStrdup
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - memset
    - Reference
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTableLayer::OGRGeoPackageTableLayer(GDALGeoPackageDataset
      *poDS,\n                                                 const char *pszTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1518,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1522,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1525,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1528,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1531,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1534
    functionName: OGRGeoPackageTableLayer::~OGRGeoPackageTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - CPLFree
    - OGRGeoPackageTableLayer::SyncToDisk
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::~OGRGeoPackageTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1546,1
    - Dst: joinable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1549,1
    - Dst: join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1551,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1554,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1556,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1558,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1558,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1559,1
    - Dst: auto::m_oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1564,1
    - Dst: auto::m_oThread::joinable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1566,1
    - Dst: auto::m_oThread::join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1567,1
    - Dst: auto::m_psArrowArray::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1572,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1572,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1575
    functionName: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - auto::m_oCV::notify_one
    - joinable
    - oCV::notify_one
    - empty
    - front
    - auto::m_psArrowArray::release
    - auto::m_oThread::joinable
    - auto::m_psArrowArray::get
    - std::move
    - auto::m_oThread::join
    - reset
    - pop
    - join
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::CancelAsyncNextArrowArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1590,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1591,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1591,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1592,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1595,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1607,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1618,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1619,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1620,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1621,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1624,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1628,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1629,1
    - Dst: DeleteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1630,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1631,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1637,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1638,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1640,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1641,1
    - Dst: OGRGeoPackageTableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1642,1
    - Dst: OGRGeoPackageTableLayer*::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1649,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1662,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1663,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1665,1
    - Dst: OGRGeoPackageTableLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1666,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1677,1
    - Dst: OGRGeoPackageTableLayer::BuildColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1681,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1684
    functionName: OGRGeoPackageTableLayer::InitView
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_prepare_v2
    - dynamic_cast<OGRGeoPackageTableLayer *>
    - OGRGeoPackageTableLayer::GetGeometryColumn
    - strcmp
    - sqlite3_finalize
    - GetFieldIndex
    - CPLStrdup
    - sqlite3_column_type
    - GetDB
    - DeleteFieldDefn
    - OGRGeoPackageTableLayer*::GetGeometryColumn
    - OGRGeoPackageTableLayer*::GetFIDColumn
    - GetLayerByName
    - OGRGeoPackageTableLayer::BuildColumns
    - CPL_IGNORE_RET_VAL
    - CPLFree
    - EQUAL
    - OGRGeoPackageTableLayer*::HasSpatialIndex
    - sqlite3_step
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::InitView()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1692,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1694,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszOperation
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1708
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1708
    functionName: OGRGeoPackageTableLayer::CheckUpdatableTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetUpdate
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::CheckUpdatableTable(const char *pszOperation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1718,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1719,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1724,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1725,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1727,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1728,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1731,1
    - Dst: GDALGeoPackageDataset::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1732,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1732,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1735,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1737,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1740,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1744,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1744,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1746,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1749,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1754,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1754,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1755,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1756,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1759,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1759,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1762,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1763,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1770,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1771,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1774,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1776,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1787,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1788,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1789,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1789,1
    - Dst: GPkgFieldFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1790,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1790,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1791,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1792,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1794,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1801,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1802,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1811,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1812,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1812,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1815,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1816,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1818,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1821,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1827,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1830,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1837,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1837,1
    - Dst: OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1842,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1848,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1850,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1852,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1853,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1854,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1855,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1859,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1859,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1861,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1866,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1870
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1870
    functionName: OGRGeoPackageTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - CPLError
    - GetFieldIndex
    - OGRFieldDefn*::GetWidth
    - GetGeomFieldCount
    - std::make_unique<OGRFieldDefn>
    - sscanf
    - OGRGeoPackageTableLayer::ResetReading
    - GetDB
    - GetCurrentSavepoint
    - OGRFieldDefn*::GetDefault
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - GetGeomFieldIndex
    - OGRFieldDefn*::IsNullable
    - emplace_back
    - OGRFieldDefn::GetNameRef
    - IsInTransaction
    - static_cast<int>
    - GPkgFieldFromOGR
    - SQLCommand
    - CPLString::Printf
    - GDALGeoPackageDataset::LaunderName
    - GetFieldCount
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - OGRFieldDefn::SetName
    - OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
    - whileUnsealing
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - SQLEscapeName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - EQUAL
    - strchr
    - OGRFieldDefn*::IsUnique
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                           int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1880,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1884,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1884,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1889,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1889,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1889,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1890,1
    - Dst: CreateColumnsTableAndColumnConstraintsTablesIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1896,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1901,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1908,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1909,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1913,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1920,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1921,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1925,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1932,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1933,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1937,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1945,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1946,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1958,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1960
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1960
    functionName: OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - OGRFieldDefn*::GetAlternativeNameRef
    - empty
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - sqlite3_free
    - std::string
    - CreateColumnsTableAndColumnConstraintsTablesIfNecessary
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation(\n
      \   const OGRFieldDefn *poField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1971,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1972,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1975,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1977,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1982,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1985,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1991,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1994,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1995,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1996,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1997,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1999,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:1999,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2001,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2004,1
    - Dst: GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2005,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2022,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2024,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2024,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2029,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2031,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2032,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2033,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2036,1
    - Dst: OGRGeoPackageTableLayer::RegisterGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2040,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2044,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - poGeomFieldIn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 2048
      start: 1966
    functionDepth: 2
    functionLinenumber: 1966
    functionLinenumberEnd: 2048
    functionName: OGRGeoPackageTableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn::SetSpatialRef
    - CPLError
    - GetGeomFieldCount
    - OGRGeoPackageTableLayer::ResetReading
    - GetDB
    - GetSrsId
    - auto::Clone
    - emplace_back
    - IsInTransaction
    - SQLCommand
    - OGRGeoPackageTableLayer::RegisterGeometryColumn
    - OGRGeomFieldDefn*::GetType
    - OGRGeomFieldDefn::GetNameRef
    - whileUnsealing
    - auto::SetAxisMappingStrategy
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - OGRGeomFieldDefn::SetName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - OGRGeomFieldDefn::GetSpatialRef
    - sqlite3_free
    - std::make_unique<OGRGeomFieldDefn>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::CreateGeomField(const OGRGeomFieldDefn
      *poGeomFieldIn,\n                                         int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2059
    functionName: OGRGeoPackageTableLayer::DisableFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::DisableFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2077,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2084,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2084,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2085,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2087,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2093,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2093,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2096
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2096
    functionName: OGRGeoPackageTableLayer::CreateFeatureCountTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - SQLCommand
    - CPLDebug
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTableLayer::CreateFeatureCountTriggers(\n    const
      char *pszTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2109,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2111,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2115,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2115,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2116,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2118,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2120,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2120,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2121,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2125,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2129,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2129,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - bNullifyFeatureCount
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2133
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2133
    functionName: OGRGeoPackageTableLayer::DisableFeatureCountTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - IsInTransaction
    - GetDB
    - SQLCommand
    - CPLDebug
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTableLayer::DisableFeatureCountTriggers(\n    bool
      bNullifyFeatureCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2149,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2150,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2151,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2157,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2157,1
    - Dst: OGR_GT_IsSubClassOf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2158,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2159,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2161,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2171,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2171,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2172,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2173,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2185,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2186,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2190,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2195,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2196,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2201,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2205,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2210,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2211,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2223,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2223,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2223,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2224,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2228
      start: 2147
    functionDepth: 2
    functionLinenumber: 2147
    functionLinenumberEnd: 2228
    functionName: OGRGeoPackageTableLayer::CheckGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::GetName
    - wkbHasZ
    - CPLError
    - SQLCommand
    - GetDB
    - insert
    - CPL_IGNORE_RET_VAL
    - OGRToOGCGeomType
    - OGRFeature*::GetGeometryRef
    - sqlite3_free
    - OGRGeoPackageTableLayer::GetGeomType
    - OGR_GT_IsSubClassOf
    - wkbFlatten
    - cpl::contains
    - wkbHasM
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::CheckGeometryType(const OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2238,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2242,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2248,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2250,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2251,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2254,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2257,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2258,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2262,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2263,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2266,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2269,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - poFeature
    - iFIDAsRegularColumnIndex
    argTypes:
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 2273
      start: 2234
    functionDepth: 3
    functionLinenumber: 2234
    functionLinenumberEnd: 2273
    functionName: CheckFIDAndFIDColumnConsistency
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<GIntBig>
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetDefnRef
    - OGRFeature*::GetFieldAsInteger64
    - GDALIsValueInRange
    - OGRFeature*::GetFID
    - OGRFeature*::GetFieldAsDouble
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool CheckFIDAndFIDColumnConsistency(const OGRFeature *poFeature,\n
      \                                           int iFIDAsRegularColumnIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2301
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2301
    functionName: rtreeValueDown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float rtreeValueDown(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2311
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2311
    functionName: rtreeValueUp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float rtreeValueUp(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2317,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2318,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2320,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2325,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2328,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2331,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2337,1
    - Dst: auto::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2338,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2340,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2341,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2355,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2356,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2358,1
    - Dst: OGRGeoPackageTableLayer::WorkaroundUpdate1TriggerIssue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2359,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2378,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2378,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2379,1
    - Dst: OGRGeoPackageTableLayer::CreateFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2384,1
    - Dst: OGRGeoPackageTableLayer::DisableFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2392,1
    - Dst: OGRGeoPackageTableLayer::CheckGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2397,1
    - Dst: OGRFeature*::FillUnsetWithDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2402,1
    - Dst: OGRFeature*::IsFieldSetUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2407,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2420,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2422,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2424,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2430,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2431,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2432,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2433,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2435,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2436,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2444,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2453,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2453,1
    - Dst: CheckFIDAndFIDColumnConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2458,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2469,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2473,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2483,1
    - Dst: OGRGeoPackageTableLayer::FeatureGenerateInsertSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2486,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2491,1
    - Dst: OGRGeoPackageTableLayer::FeatureBindInsertParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2501,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2506,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2507,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2508,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2521,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2522,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2522,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2523,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2523,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2525,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2526,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2527,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2533,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2536,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2540,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2540,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2542,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2543,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2547,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2553,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2555,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2559,1
    - Dst: OGRGeoPackageTableLayer::IsGeomFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2563,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2565,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2566,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2569,1
    - Dst: OGRGeoPackageTableLayer::UpdateExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2570,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2573,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2573,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2579,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2579,1
    - Dst: OGRGeoPackageTableLayer::StartDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2585,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2587,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2589,1
    - Dst: OGRGeoPackageTableLayer::FlushPendingSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2591,1
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2596,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2597,1
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2598,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2599,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2600,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2608,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2609,1
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2615,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2616,1
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2617,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2618,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2621,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2622,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2624,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2624,1
    - Dst: std::vector<GPKGRTreeEntry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2625,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2628,1
    - Dst: OGRGeoPackageTableLayer::StartAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2631,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2636,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2640,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2651,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2663,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2663,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2665,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 181
    argCount: 2
    argNames:
    - poFeature
    - bUpsert
    argTypes:
    - OGRFeature*
    - bool
    constantsTouched: []
    func_position:
      end: 2676
      start: 2313
    functionDepth: 5
    functionLinenumber: 2313
    functionLinenumberEnd: 2676
    functionName: OGRGeoPackageTableLayer::CreateOrUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - std::vector<GPKGRTreeEntry>
    - OGRFeature*::GetFieldAsInteger64
    - atoi
    - push
    - CPLDebug
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - OGRGeoPackageTableLayer::DisableFeatureCountTriggers
    - GetFieldDefn
    - CPLError
    - sqlite3_finalize
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - OGRGeoPackageTableLayer::CheckGeometryType
    - sqlite3_clear_bindings
    - CPLGetConfigOption
    - sqlite3_column_int64
    - std::string::empty
    - simple_max
    - static_cast<GIntBig>
    - sqlite3_reset
    - GetDB
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::WorkaroundUpdate1TriggerIssue
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - std::move
    - OGRGeoPackageTableLayer::StartAsyncRTree
    - GetUpdate
    - OGRGeoPackageTableLayer::StartDeferredSpatialIndexUpdate
    - simple_min
    - rtreeValueUp
    - rtreeValueDown
    - OGRGeoPackageTableLayer::CreateFeatureCountTriggers
    - IsInTransaction
    - SQLCommand
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - sqlite3_last_insert_rowid
    - auto::IsUnique
    - CPL_IGNORE_RET_VAL
    - sqlite3_errmsg
    - auto::GetNameRef
    - sqlite3_exec
    - OGRGeometry*::getEnvelope
    - OGRGeoPackageTableLayer::FlushPendingSpatialIndexUpdate
    - OGRGeometry*::IsEmpty
    - static_cast<double>
    - size
    - OGRGeoPackageTableLayer::FeatureBindInsertParameters
    - OGRGeoPackageTableLayer::IsGeomFieldSet
    - empty
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::UpdateExtent
    - sqlite3_free
    - OGRFeature*::SetField
    - OGRGeoPackageTableLayer::FeatureGenerateInsertSQL
    - push_back
    - OGRFeature*::FillUnsetWithDefault
    - CheckFIDAndFIDColumnConsistency
    - OGRFeature*::IsFieldSetUnsafe
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::CreateOrUpsertFeature(OGRFeature *poFeature,\n
      \                                                     bool bUpsert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CreateOrUpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2681
      start: 2678
    functionDepth: 6
    functionLinenumber: 2678
    functionLinenumberEnd: 2681
    functionName: OGRGeoPackageTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CreateOrUpsertFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2695,1
    - Dst: sqlite3_threadsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2695,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2696,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2697,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2698,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2701,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2708
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2708
    functionName: OGRGeoPackageTableLayer::SetDeferredSpatialIndexCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - GetLayerCount
    - CPLGetNumCPUs
    - CPLGetConfigOption
    - sqlite3_threadsafe
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::SetDeferredSpatialIndexCreation(bool
      bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2724,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2727,1
    - Dst: CPLMD5String
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2746,1
    - Dst: CPLMD5String
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2751,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2753,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2753,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2754,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2755,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2756,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2756,1
    - Dst: GetVFS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2758,1
    - Dst: GetVFS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2758,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2761,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2762,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2763,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2779,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2780,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2788,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2788,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2789,1
    - Dst: gdal_sqlite_rtree_bl_new
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2793,1
    - Dst: std::thread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2797,1
    - Dst: OGRGeoPackageTableLayer::AsyncRTreeThreadFunction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2797,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2802,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2803,1
    - Dst: gdal_sqlite_rtree_bl_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2812,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2815,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2817,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2819,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2819,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2824,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2827
    functionName: OGRGeoPackageTableLayer::StartAsyncRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetDescription
    - CPLDebug
    - sqlite3_close
    - CPLError
    - gdal_sqlite_rtree_bl_new
    - GetDB
    - std::thread
    - strlen
    - sqlite3_open_v2
    - OGRGeoPackageTableLayer::AsyncRTreeThreadFunction
    - c_str
    - SQLCommand
    - VSIUnlink
    - CPLSPrintf
    - gdal_sqlite_rtree_bl_free
    - GetVFS
    - what
    - CPLMD5String
    - sqlite3_free
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::StartAsyncRTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2835,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2837,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2838,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2839,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2840,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2840,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2841,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2842,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2842,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2845
    functionName: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - GetDB
    - SQLCommand
    - VSIUnlink
    - SQLEscapeName
    - CPLSPrintf
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2853,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2854,1
    - Dst: join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2855,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2859,1
    - Dst: gdal_sqlite_rtree_bl_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2862,1
    - Dst: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2851
    functionDepth: 2
    functionLinenumber: 2851
    functionLinenumberEnd: 2866
    functionName: OGRGeoPackageTableLayer::CancelAsyncRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - push
    - OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
    - sqlite3_close
    - CPLDebug
    - gdal_sqlite_rtree_bl_free
    - join
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::CancelAsyncRTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2879
    functionName: OGRGeoPackageTableLayer::FinishOrDisableThreadedRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::FinishOrDisableThreadedRTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2889,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2898,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2900,1
    - Dst: gdal_sqlite_rtree_bl_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2903,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2908,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2916,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2920,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - hRTreeDB
    - pszRTreeName
    argTypes:
    - sqlite3*
    - char*
    constantsTouched: []
    func_position:
      end: 2925
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2925
    functionName: OGRGeoPackageTableLayer::FlushInMemoryRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLCommand
    - sqlite3_close
    - sqlite3_free
    - CPLError
    - gdal_sqlite_rtree_bl_free
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageTableLayer::FlushInMemoryRTree(sqlite3 *hRTreeDB,\n
      \                                                const char *pszRTreeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2940,1
    - Dst: std::strtoull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2941,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2943,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2945,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2948
    functionName: GetMaxRAMUsageAllowedForRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<uint64_t>
    - std::strtoull
    linkageType: ''
    returnType: size_t
    signature: size_t GetMaxRAMUsageAllowedForRTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2956,1
    - Dst: get_and_pop_front
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2963,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2964,1
    - Dst: auto::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2969,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2972,1
    - Dst: gdal_sqlite_rtree_bl_ram_usage
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2975,1
    - Dst: gdal_sqlite_rtree_bl_insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2977,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2981,1
    - Dst: OGRGeoPackageTableLayer::FlushInMemoryRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2984,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2991,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:2995,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3007,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3012,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3015,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3019,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3023,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3028,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3028,1
    - Dst: auto::front
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3028,1
    - Dst: auto::back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3029,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3031,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3034,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3036,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3037,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3038,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3039,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3040,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3044,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3046,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3053,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3054,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3059,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3067,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3069,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3074,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3078,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3081,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3081,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3083,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3086,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 2954
    functionDepth: 2
    functionLinenumber: 2954
    functionLinenumberEnd: 3090
    functionName: OGRGeoPackageTableLayer::AsyncRTreeThreadFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - sqlite3_close
    - sqlite3_finalize
    - CPLError
    - auto::size
    - auto::begin
    - auto::end
    - auto::back
    - sqlite3_reset
    - gdal_sqlite_rtree_bl_insert
    - gdal_sqlite_rtree_bl_ram_usage
    - sqlite3_bind_int64
    - get_and_pop_front
    - sqlite3_bind_double
    - c_str
    - static_cast<int>
    - SQLCommand
    - VSIUnlink
    - auto::empty
    - OGRGeoPackageTableLayer::FlushInMemoryRTree
    - CPLAssert
    - sqlite3_errmsg
    - auto::front
    - SQLPrepareWithError
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::AsyncRTreeThreadFunction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3099,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3102,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3110,1
    - Dst: CheckFIDAndFIDColumnConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3117,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3122,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3125,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3128,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3129,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3134,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3134,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3136,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3136,1
    - Dst: OGRGeoPackageTableLayer::CheckGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3139,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3141,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3143,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3145,1
    - Dst: OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3154,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3155,1
    - Dst: OGRGeoPackageTableLayer::FeatureBindUpdateParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3169,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3172,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3181,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3182,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3182,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3183,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3184,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3188,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3189,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3193,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3193,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3195,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3195,1
    - Dst: OGRGeoPackageTableLayer::IsGeomFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3205,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3207,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3208,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3211,1
    - Dst: OGRGeoPackageTableLayer::UpdateExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3212,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 3221
      start: 3096
    functionDepth: 5
    functionLinenumber: 3096
    functionLinenumberEnd: 3221
    functionName: OGRGeoPackageTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - sqlite3_finalize
    - CPLError
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - OGRGeoPackageTableLayer::CheckGeometryType
    - sqlite3_clear_bindings
    - std::string::empty
    - sqlite3_reset
    - GetDB
    - sqlite3_total_changes
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
    - GetUpdate
    - sqlite3_total_changes64
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - sqlite3_errmsg
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - empty
    - OGRGeoPackageTableLayer::IsGeomFieldSet
    - OGRGeoPackageTableLayer::FeatureBindUpdateParameters
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::UpdateExtent
    - CheckFIDAndFIDColumnConsistency
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CreateOrUpsertFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 3231
      start: 3227
    functionDepth: 6
    functionLinenumber: 3227
    functionLinenumberEnd: 3231
    functionName: OGRGeoPackageTableLayer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CreateOrUpsertFeature
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3251,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3255,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3258,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3262,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3262,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3272,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3274,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3283,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3283,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3287,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3294
      start: 3245
    functionDepth: 2
    functionLinenumber: 3245
    functionLinenumberEnd: 3294
    functionName: OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetDefnRef
    - OGRFeatureDefn*::GetGeomFieldCount
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRFeature*::IsFieldSet
    - SQLEscapeName
    - CPLString
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL(\n    const
      OGRFeature *poFeature, int nUpdatedFieldsCount,\n    const int *panUpdatedFieldsIdx,
      int nUpdatedGeomFieldsCount,\n    const int * /*panUpdatedGeomFieldsIdx*/) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3307,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3308,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3310,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3316,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3318,1
    - Dst: CheckFIDAndFIDColumnConsistency
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3325,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3330,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3333,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3336,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3337,1
    - Dst: OGRGeoPackageTableLayer::CheckGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3340,1
    - Dst: OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3346,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3349,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3355,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3366,1
    - Dst: OGRGeoPackageTableLayer::FeatureBindParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3372,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3377,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3387,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3389,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3390,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3391,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3397,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3397,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3399,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3406,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3407,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3407,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3408,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3409,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3413,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3414,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3418,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3418,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3420,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3420,1
    - Dst: OGRGeoPackageTableLayer::IsGeomFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3430,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3432,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3433,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3436,1
    - Dst: OGRGeoPackageTableLayer::UpdateExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3437,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 5
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3446
      start: 3300
    functionDepth: 4
    functionLinenumber: 3300
    functionLinenumberEnd: 3446
    functionName: OGRGeoPackageTableLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - sqlite3_finalize
    - CPLError
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - OGRGeoPackageTableLayer::CheckGeometryType
    - sqlite3_clear_bindings
    - std::string::empty
    - sqlite3_reset
    - GetDB
    - sqlite3_total_changes
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - std::move
    - OGRGeoPackageTableLayer::FeatureGenerateUpdateSQL
    - GetUpdate
    - sqlite3_total_changes64
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - sqlite3_errmsg
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - OGRGeoPackageTableLayer::IsGeomFieldSet
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::FeatureBindParameters
    - OGRGeoPackageTableLayer::UpdateExtent
    - CheckFIDAndFIDColumnConsistency
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::IUpdateFeature(\n    OGRFeature *poFeature,
      int nUpdatedFieldsCount,\n    const int *panUpdatedFieldsIdx, int nUpdatedGeomFieldsCount,\n
      \   const int *panUpdatedGeomFieldsIdx, bool /* bUpdateStyleString*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3456,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3457,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3458,1
    - Dst: OGRGeoPackageTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3465,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3470
      start: 3452
    functionDepth: 1
    functionLinenumber: 3452
    functionLinenumberEnd: 3470
    functionName: OGRGeoPackageTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::ResetReading
    - CPLStrdup
    - OGRGeoPackageTableLayer::BuildWhere
    - OGRGeoPackageTableLayer::GetLayerDefn
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3478,1
    - Dst: OGRGeoPackageLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3481,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3485,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3491,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3494,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3498,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3502,1
    - Dst: OGRGeoPackageTableLayer::BuildColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3476
    functionDepth: 3
    functionLinenumber: 3476
    functionLinenumberEnd: 3507
    functionName: OGRGeoPackageTableLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRGeoPackageLayer::ResetReading
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::BuildColumns
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - sqlite3_finalize
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3517,1
    - Dst: OGRGeoPackageTableLayer::BuildColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3518,1
    - Dst: OGRGeoPackageTableLayer::ResetStatementInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3520
      start: 3513
    functionDepth: 3
    functionLinenumber: 3513
    functionLinenumberEnd: 3520
    functionName: OGRGeoPackageTableLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::BuildColumns
    - OGRGeoPackageTableLayer::ResetStatementInternal
    - empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::ResetStatementInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3526
    functionDepth: 1
    functionLinenumber: 3526
    functionLinenumberEnd: 3530
    functionName: OGRGeoPackageTableLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::ResetStatementInternal
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3539,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3545,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3547,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3547,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3548,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3548,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3551,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3555,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3570,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3571,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3571,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3572,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3574,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3579,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3580,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3581,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3582,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3589,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3589,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3590,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3593,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3596,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3596,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 1
    argNames:
    - nStartIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3609
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3609
    functionName: OGRGeoPackageTableLayer::ResetStatementInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - getEnvelope
    - empty
    - CPLString::Printf
    - SQLEscapeName
    - CPLSPrintf
    - CPLDebug
    - ClearStatement
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - CPLString::c_str
    - std::isinf
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ResetStatementInternal(GIntBig nStartIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3618,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3619,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3622,1
    - Dst: OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3627,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3628,1
    - Dst: OGRGeoPackageLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3632,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3635,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3615
    functionDepth: 3
    functionLinenumber: 3615
    functionLinenumberEnd: 3638
    functionName: OGRGeoPackageTableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
    - OGRFeature*::GetFID
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageLayer::GetNextFeature
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - OGRFeature*::SetField
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoPackageTableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3647,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3648,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3650,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3653,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3658,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3660,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3660,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3661,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3671,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3671,1
    - Dst: TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3679,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3682,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3683,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3686,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3687,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3692,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3697
      start: 3644
    functionDepth: 3
    functionLinenumber: 3644
    functionLinenumberEnd: 3697
    functionName: OGRGeoPackageTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - c_str
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - SQLEscapeName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - CPL_IGNORE_RET_VAL
    - sqlite3_bind_int64
    - OGRFeature*::SetField
    - sqlite3_clear_bindings
    - TranslateFeature
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoPackageTableLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3706,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3707,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3709,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3718,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3721,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3724,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3726,1
    - Dst: OGRGeoPackageTableLayer::DisableFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3732,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3737,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3741,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3742,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3743,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3747,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3747,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3749,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3749,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3752,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3752,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3752,1
    - Dst: sqlite3_total_changes64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3757,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3757,1
    - Dst: sqlite3_total_changes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3759,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3777
      start: 3703
    functionDepth: 3
    functionLinenumber: 3703
    functionLinenumberEnd: 3777
    functionName: OGRGeoPackageTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - OGRGeoPackageTableLayer::ResetReading
    - GetDB
    - sqlite3_total_changes64
    - sqlite3_total_changes
    - CPLString::Printf
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - SQLEscapeName
    - SQLCommand
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - OGRGeoPackageTableLayer::DisableFeatureCountTriggers
    - CPLString::c_str
    - CPLError
    - GetUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3791,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3783
    functionDepth: 0
    functionLinenumber: 3783
    functionLinenumberEnd: 3794
    functionName: OGRGeoPackageTableLayer::DoJobAtTransactionCommit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::DoJobAtTransactionCommit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3803,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3805,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3806,1
    - Dst: OGRGeoPackageTableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3809,1
    - Dst: OGRGeoPackageTableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3816,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3822
      start: 3800
    functionDepth: 3
    functionLinenumber: 3800
    functionLinenumberEnd: 3822
    functionName: OGRGeoPackageTableLayer::DoJobAtTransactionRollback
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - OGRGeoPackageTableLayer::ResetReading
    - OGRGeoPackageTableLayer::SyncToDisk
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::DoJobAtTransactionRollback()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3830,1
    - Dst: OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3833,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3835,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3836,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3862,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3862,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3863,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3866,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3871,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3875,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3875,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3877,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3878,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3882,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3882,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3828
    functionDepth: 2
    functionLinenumber: 3828
    functionLinenumberEnd: 3885
    functionName: OGRGeoPackageTableLayer::StartDeferredSpatialIndexUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - size
    - OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
    - GetDB
    - SQLCommand
    - OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
    - CPLDebug
    - SQLQuery
    - sqlite3_free
    - push_back
    - GetGeomFieldCount
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::StartDeferredSpatialIndexUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3909,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3909,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3912,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3913,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3916,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3918,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3920,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3922,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3923,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3924,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3925,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3926,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3930,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3932,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3932,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3937,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3940
      start: 3891
    functionDepth: 1
    functionLinenumber: 3891
    functionLinenumberEnd: 3940
    functionName: OGRGeoPackageTableLayer::FlushPendingSpatialIndexUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - sqlite3_reset
    - CPLError
    - GetDB
    - sqlite3_bind_int64
    - sqlite3_free
    - sqlite3_errmsg
    - sqlite3_finalize
    - SQLPrepareWithError
    - sqlite3_bind_double
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::FlushPendingSpatialIndexUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3949,1
    - Dst: OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3954,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3958,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3958,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3946
    functionDepth: 1
    functionLinenumber: 3946
    functionLinenumberEnd: 3962
    functionName: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 5
    functionsReached:
    - empty
    - OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
    - GetDB
    - SQLCommand
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3973,1
    - Dst: OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3977,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3978,1
    - Dst: OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3980,1
    - Dst: OGRGeoPackageTableLayer::SaveExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3983,1
    - Dst: OGRGeoPackageTableLayer::SaveTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3984,1
    - Dst: OGRGeoPackageTableLayer::CreateFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3968
    functionDepth: 2
    functionLinenumber: 3968
    functionLinenumberEnd: 3991
    functionName: OGRGeoPackageTableLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeoPackageTableLayer::SaveExtent
    - OGRGeoPackageTableLayer::CreateFeatureCountTriggers
    - OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
    - OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - OGRGeoPackageTableLayer::SaveTimestamp
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:3999,1
    - Dst: OGRGeoPackageTableLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4001
      start: 3997
    functionDepth: 1
    functionLinenumber: 3997
    functionLinenumberEnd: 4001
    functionName: OGRGeoPackageTableLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - OGRGeoPackageTableLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4010
    functionName: OGRGeoPackageTableLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4019
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4019
    functionName: OGRGeoPackageTableLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4034,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4034,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4035,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4036,1
    - Dst: std::max<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4042,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4025
    functionDepth: 1
    functionLinenumber: 4025
    functionLinenumberEnd: 4050
    functionName: OGRGeoPackageTableLayer::GetTotalFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - GetDB
    - CPLAtoGIntBig
    - SQLQuery
    - std::max<GIntBig>
    - sqlite3_free
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoPackageTableLayer::GetTotalFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4059,1
    - Dst: OGRGeoPackageTableLayer::GetTotalFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4063,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4069,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4072,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4079,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4083,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4085,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4085,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4086,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4086,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4088,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4091,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4095,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4097,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4098,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4102,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4109,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4115,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4116,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4117,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4120,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4125,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4127,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4128,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4129,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4130,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4132,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4133,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4138,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4138,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4138,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4142,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4156,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4164,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4164,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4165,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4056
    functionDepth: 2
    functionLinenumber: 4056
    functionLinenumberEnd: 4173
    functionName: OGRGeoPackageTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - getEnvelope
    - GetGeomFieldDefn
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - CPLString::empty
    - GetDB
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - CPLString::c_str
    - SQLGetInteger64
    - std::isinf
    - wkbFlatten
    - GetUpdate
    - OGRGeoPackageTableLayer::GetTotalFeatureCount
    - c_str
    - SQLCommand
    - CPLString::Printf
    - sqlite3_create_function
    - empty
    - SQLEscapeName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - sqlite3_free
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoPackageTableLayer::GetFeatureCount(int /*bForce*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4190,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4190,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4191,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4195,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4196,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4201,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4201,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4210,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4211,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4212,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4213,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4220,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4222,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4223,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4223,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4226,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4228,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4229,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4229,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4232,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4234,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4235,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4235,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4238,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4240,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4241,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4241,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 6
    argNames:
    - hDB
    - osRTreeName
    - minx
    - miny
    - maxx
    - maxy
    argTypes:
    - sqlite3*
    - std::string
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 4251
      start: 4179
    functionDepth: 1
    functionLinenumber: 4179
    functionLinenumberEnd: 4251
    functionName: GetExtentFromRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<double>
    - sqlite3_prepare_v2
    - sqlite3_column_type
    - sqlite3_finalize
    - static_cast<const GByte *>
    - min
    - sqlite3_column_blob
    - max
    - CPL_IGNORE_RET_VAL
    - sqlite3_free
    - sqlite3_step
    - CPL_MSBPTR32
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool GetExtentFromRTree(sqlite3 *hDB, const std::string &osRTreeName,\n
      \                              double &minx, double &miny, double &maxx,\n                               double
      &maxy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4261,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4272,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4275,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4277,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4277,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4278,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4279,1
    - Dst: GetExtentFromRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4281,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4281,1
    - Dst: std::make_unique<OGREnvelope>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4284,1
    - Dst: OGRGeoPackageTableLayer::SaveExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4286,1
    - Dst: OGRGeoPackageTableLayer::UpdateContentsToNullExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4291,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4297,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4307,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4307,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4308,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4309,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4310,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4311,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4313,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4313,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4314,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4314,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4315,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4315,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4316,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4316,1
    - Dst: std::make_unique<OGREnvelope>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4317,1
    - Dst: OGRGeoPackageTableLayer::SaveExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4319,1
    - Dst: OGRGeoPackageTableLayer::UpdateContentsToNullExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4323,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - psExtent
    - bForce
    argTypes:
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 4330
      start: 4257
    functionDepth: 2
    functionLinenumber: 4257
    functionLinenumberEnd: 4330
    functionName: OGRGeoPackageTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - OGRGeoPackageTableLayer::SaveExtent
    - auto::RowCount
    - CPLTestBool
    - CPLAtof
    - OGRGeoPackageTableLayer::UpdateContentsToNullExtent
    - GetDB
    - auto::GetValue
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - std::make_unique<OGREnvelope>
    - SQLQuery
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - GetExtentFromRTree
    - sqlite3_free
    - reset
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::IGetExtent(int /* iGeomField  */,\n
      \                                          OGREnvelope *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4338,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4347,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4347,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4336
    functionDepth: 1
    functionLinenumber: 4336
    functionLinenumberEnd: 4351
    functionName: OGRGeoPackageTableLayer::UpdateContentsToNullExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetDB
    - GetUpdate
    - sqlite3_free
    - SQLCommand
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::UpdateContentsToNullExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4360,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4362,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4363
      start: 4357
    functionDepth: 1
    functionLinenumber: 4357
    functionLinenumberEnd: 4363
    functionName: OGRGeoPackageTableLayer::RecomputeExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    - CPL_IGNORE_RET_VAL
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::RecomputeExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4372,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4373,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4375,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4377,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4378,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4379,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4380,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4380,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4384,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4385,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4386,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4386,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4388,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4390,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4394,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4425,1
    - Dst: OGRGeoPackageLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4429,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4431
      start: 4369
    functionDepth: 1
    functionLinenumber: 4369
    functionLinenumberEnd: 4431
    functionName: OGRGeoPackageTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageLayer::TestCapability
    - OGRGeoPackageTableLayer::GetLayerDefn
    - EQUAL
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - GetUpdate
    linkageType: ''
    returnType: int
    signature: int OGRGeoPackageTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4437
    functionDepth: 1
    functionLinenumber: 4437
    functionLinenumberEnd: 4443
    functionName: OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRGeoPackageTableLayer::CreateSpatialIndex
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4454,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4456,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4461,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4467,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4470,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4477,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4479,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4483,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4485,1
    - Dst: CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4488,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4505,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4506,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4506,1
    - Dst: std::vector<GPKGRTreeEntry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4507,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4508,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4510,1
    - Dst: join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4511,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4514,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4521,1
    - Dst: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4526,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4534,1
    - Dst: OGRGeoPackageTableLayer::FlushInMemoryRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4538,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4538,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4538,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4540,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4550,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4550,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4551,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4554,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4558,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4565,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4565,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4566,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4566,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4567,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4567,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4568,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4569,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4569,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4570,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4573,1
    - Dst: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4574,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4588,1
    - Dst: gdal_sqlite_rtree_bl_from_feature_table
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4593,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4594,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4598,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4602,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4603,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4618,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4621,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4623,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4623,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4626,1
    - Dst: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4629,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4634,1
    - Dst: OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4638,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 103
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4644
      start: 4449
    functionDepth: 2
    functionLinenumber: 4449
    functionLinenumberEnd: 4644
    functionName: OGRGeoPackageTableLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector<GPKGRTreeEntry>
    - push
    - CPLDebug
    - sqlite3_close
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - gdal_sqlite_rtree_bl_from_feature_table
    - OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
    - CPLError
    - GetGeomFieldCount
    - SoftStartTransaction
    - GetDB
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - sqlite3_mprintf
    - std::move
    - join
    - CreateExtensionsTableIfNecessary
    - c_str
    - SQLCommand
    - SoftRollbackTransaction
    - OGRGeoPackageTableLayer::FlushInMemoryRTree
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - empty
    - OGRGeoPackageTableLayer::RemoveAsyncRTreeTempDB
    - OGRGeoPackageTableLayer::GetLayerDefn
    - SoftCommitTransaction
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::CreateSpatialIndex(const char *pszTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4657,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4676,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4676,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4677,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4678,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4689,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4689,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4690,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4691,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4699,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4705,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4705,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4706,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4706,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4707,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4709,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4721,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4722,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4723,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4723,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4724,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4726,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4739,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4740,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4741,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4741,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4742,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4743
      start: 4650
    functionDepth: 2
    functionLinenumber: 4650
    functionLinenumberEnd: 4743
    functionName: OGRGeoPackageTableLayer::WorkaroundUpdate1TriggerIssue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - empty
    - GetDB
    - SQLCommand
    - SQLQuery
    - sqlite3_mprintf
    - CPLString::c_str
    - sqlite3_free
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::WorkaroundUpdate1TriggerIssue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4754,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4766,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4766,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4766,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4767,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4770,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4770,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4771,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4771,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4772,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4775,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4775,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4776,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4776,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4749
    functionDepth: 1
    functionLinenumber: 4749
    functionLinenumberEnd: 4778
    functionName: OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 3
    functionsReached:
    - c_str
    - GetDB
    - SQLCommand
    - sqlite3_mprintf
    - CPLAssert
    - CPLString::c_str
    - sqlite3_free
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4803,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4813,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4813,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4816,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4824,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4836,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4837,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4840,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4845,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4858,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4859,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4862,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4869,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4880,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4881,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4884,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4890,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4897,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4898,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4901,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4909,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4920,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4925,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4926,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4929,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4935,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4942,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4942,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4946,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4950,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4956,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4956,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - pszTableName
    - pszGeomColName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4962
      start: 4784
    functionDepth: 0
    functionLinenumber: 4784
    functionLinenumberEnd: 4962
    functionName: OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - CPLString::c_str
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers(\n
      \   const char *pszTableName, const char *pszGeomColName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnknownExtensionsTableSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4971,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4972,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4972,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4973,1
    - Dst: auto::second::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4975,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4980,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4980,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4982,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4989,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4991,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:4993,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5000,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5002,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5006,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5008,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5014,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 4968
    functionDepth: 1
    functionLinenumber: 4968
    functionLinenumberEnd: 5018
    functionName: OGRGeoPackageTableLayer::CheckUnknownExtensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageTableLayer::GetName
    - CPLError
    - std::map::end
    - GetUnknownExtensionsTableSpecific
    - EQUAL
    - std::map::find
    - CPLString
    - auto::second::size
    - STARTS_WITH
    - GetUpdate
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::CheckUnknownExtensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5030,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5030,1
    - Dst: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5034,1
    - Dst: dynamic_cast<const OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5036,1
    - Dst: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5042,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5049
      start: 5024
    functionDepth: 1
    functionLinenumber: 5024
    functionLinenumberEnd: 5049
    functionName: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometryCollection*::getGeometryRef
    - dynamic_cast<const OGRGeometryCollection *>
    - wkbFlatten
    - OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary(\n
      \   const OGRGeometry *poGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5058,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5059,1
    - Dst: CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5063,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5077,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5084,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5090,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5097,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5097,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5098,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - eGType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 5105
      start: 5055
    functionDepth: 1
    functionLinenumber: 5055
    functionLinenumberEnd: 5105
    functionName: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - SQLCommand
    - GetDB
    - sqlite3_mprintf
    - CPLAssert
    - sqlite3_free
    - CPLError
    - wkbFlatten
    - CreateExtensionsTableIfNecessary
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary(\n
      \   OGRwkbGeometryType eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5114,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5116,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5120,1
    - Dst: HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5121,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5127,1
    - Dst: GetNameTypeMapFromSQliteMaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5129,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5130,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5130,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5133,1
    - Dst: OGRGeoPackageTableLayer::GetTotalFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5141,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5142,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5142,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5146,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5148,1
    - Dst: OGRGeoPackageTableLayer::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5148,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5150,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5152,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5154,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5156,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5156,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5159,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5161,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5162,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5164,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5177
      start: 5111
    functionDepth: 2
    functionLinenumber: 5111
    functionLinenumberEnd: 5177
    functionName: OGRGeoPackageTableLayer::HasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 6
    functionsReached:
    - CPLGetConfigOption
    - OGRGeoPackageTableLayer::GetTotalFeatureCount
    - SQLGetInteger
    - atoi
    - GetDB
    - SQLEscapeName
    - HasExtensionsTable
    - cpl::contains
    - OGRGeoPackageTableLayer::GetLayerDefn
    - CPLSPrintf
    - OGRGeoPackageTableLayer::GetFIDColumn
    - std::move
    - CPLString
    - GetNameTypeMapFromSQliteMaster
    - CPLError
    - GetGeomFieldCount
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::HasSpatialIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5186,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5192,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5198,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5200,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5212,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5212,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5213,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5226,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5226,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5227,1
    - Dst: RemoveTableFromSQLiteMasterCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5230,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5232,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5232,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - bCalledFromSQLFunction
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 5236
      start: 5183
    functionDepth: 2
    functionLinenumber: 5183
    functionLinenumberEnd: 5236
    functionName: OGRGeoPackageTableLayer::DropSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - SQLCommand
    - GetDB
    - OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
    - RemoveTableFromSQLiteMasterCache
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - sqlite3_free
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::DropSpatialIndex(bool bCalledFromSQLFunction)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5247,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5251,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5251,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5256
      start: 5242
    functionDepth: 1
    functionLinenumber: 5242
    functionLinenumberEnd: 5256
    functionName: OGRGeoPackageTableLayer::RunDeferredDropRTreeTableIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - OGRGeoPackageTableLayer::ResetReading
    - sqlite3_free
    - SQLCommand
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::RunDeferredDropRTreeTableIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5262
    functionDepth: 0
    functionLinenumber: 5262
    functionLinenumberEnd: 5281
    functionName: OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5290,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5291,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5294,1
    - Dst: OGRGeoPackageTableLayer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5295,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5303,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5306,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5315,1
    - Dst: OGRGeoPackageTableLayer::DisableFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5321,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5326,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5331,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5334,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5339,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5341,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5345,1
    - Dst: HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5347,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5349,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5354,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5357,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5359,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5364,1
    - Dst: HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5367,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5369,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5374,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5380,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5385,1
    - Dst: HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5389,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5391,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5396,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5398,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5404,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5406,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5411,1
    - Dst: HasQGISLayerStyles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5414,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5417,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5421,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5424,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5427,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5436,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5438,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5441,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5442,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5442,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5444,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5446,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5449,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5449,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5454,1
    - Dst: OGRGeoPackageTableLayer::CreateFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5460,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5463,1
    - Dst: RemoveTableFromSQLiteMasterCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5466,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5468,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5469,1
    - Dst: RemoveTableFromSQLiteMasterCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5473,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5474,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5480,1
    - Dst: ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5485,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5487,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5488,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 101
    argCount: 1
    argNames:
    - pszDstTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5492
      start: 5287
    functionDepth: 3
    functionLinenumber: 5287
    functionLinenumberEnd: 5492
    functionName: OGRGeoPackageTableLayer::Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - HasExtensionsTable
    - HasMetadataTables
    - OGRGeoPackageTableLayer::DisableFeatureCountTriggers
    - OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
    - CPLError
    - SoftStartTransaction
    - OGRGeoPackageTableLayer::ResetReading
    - CPLStrdup
    - GetDB
    - sqlite3_mprintf
    - CPLString::c_str
    - PragmaCheck
    - std::move
    - HasQGISLayerStyles
    - OGRGeoPackageTableLayer::CreateFeatureCountTriggers
    - c_str
    - SQLCommand
    - OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
    - SoftRollbackTransaction
    - SetDescription
    - whileUnsealing
    - CPLFree
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - ClearCachedRelationships
    - OGRGeoPackageTableLayer::SyncToDisk
    - HasGpkgextRelationsTable
    - OGRGeoPackageTableLayer::GetLayerDefn
    - SoftCommitTransaction
    - RemoveTableFromSQLiteMasterCache
    - sqlite3_free
    - HasDataColumnsTable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::Rename(const char *pszDstTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5503,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5504,1
    - Dst: OGRGeoPackageTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5506,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5511
      start: 5498
    functionDepth: 1
    functionLinenumber: 5498
    functionLinenumberEnd: 5511
    functionName: OGRGeoPackageTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::GetLayerDefn
    - InstallFilter
    - OGRGeoPackageTableLayer::ResetReading
    - OGRGeoPackageTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::ISetSpatialFilter(int /*iGeomField*/,\n
      \                                                 const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5520,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m_iGeomColIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 5523
      start: 5517
    functionDepth: 2
    functionLinenumber: 5517
    functionLinenumberEnd: 5523
    functionName: OGRGeoPackageTableLayer::HasFastSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - GetGeomFieldCount
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageTableLayer::HasFastSpatialFilter(int m_iGeomColIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5535,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5542,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5547,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5548,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5549,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5550,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5552,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5554,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5554,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5571,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5573,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5577,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5578,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5584,1
    - Dst: GetExtentFromRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5590,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5590,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5595,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5597,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5598,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5604,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5606,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 25
    argCount: 2
    argNames:
    - m_iGeomColIn
    - poFilterGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5613
      start: 5529
    functionDepth: 2
    functionLinenumber: 5529
    functionLinenumberEnd: 5613
    functionName: OGRGeoPackageTableLayer::GetSpatialWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - CPLString::Printf
    - SQLEscapeName
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - GetExtentFromRTree
    - std::isinf
    - GetGeomFieldCount
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeoPackageTableLayer::GetSpatialWhere(int m_iGeomColIn,\n
      \                                                  OGRGeometry *poFilterGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetSpatialWhere
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5628,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5629,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5634,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5636,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5647,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5648
    functionName: OGRGeoPackageTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - empty
    - CPLDebug
    - OGRGeoPackageTableLayer::GetSpatialWhere
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5659,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5660,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5661,1
    - Dst: GPkgGeometryTypeToWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5667,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5668,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - pszTableName
    - pszObjectType
    - bIsInGpkgContents
    - bIsSpatial
    - pszGeomColName
    - pszGeomType
    - bHasZ
    - bHasM
    argTypes:
    - char*
    - char*
    - bool
    - bool
    - char*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 5674
      start: 5654
    functionDepth: 1
    functionLinenumber: 5654
    functionLinenumberEnd: 5674
    functionName: OGRGeoPackageTableLayer::SetOpeningParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - SetGeomType
    - GPkgGeometryTypeToWKB
    - GetGeomFieldDefn
    - EQUAL
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTableLayer::SetOpeningParameters(\n    const char
      *pszTableName, const char *pszObjectType, bool bIsInGpkgContents,\n    bool
      bIsSpatial, const char *pszGeomColName, const char *pszGeomType,\n    bool bHasZ,
      bool bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasNonSpatialTablesNonRegisteredInGpkgContents
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5690,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5693,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5695,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5700,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5701,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5707,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5710,1
    - Dst: GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5713,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5714,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5719,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5723,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5723,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5728,1
    - Dst: CPLErrorStateBackuper::CPLErrorStateBackuper
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5733,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5734,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5737,1
    - Dst: GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5739,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5740,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5745,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5750,1
    - Dst: GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5756,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5758,1
    - Dst: OGRGeomFieldDefn::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5759,1
    - Dst: SetFrom
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5762,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5768,1
    - Dst: CreateMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5768,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5773,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5776,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5779,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5781,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5784,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5793,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5793,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5793,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5794,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5797,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5797,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5798,1
    - Dst: GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5803,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5804,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5805,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5805,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5805,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5806,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5809,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5814,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5819,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5822,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 11
    argNames:
    - eGType
    - pszGeomColumnName
    - bGeomNullable
    - poSRS
    - pszSRID
    - oCoordPrec
    - bDiscardCoordLSB
    - bUndoDiscardCoordLSBOnReading
    - pszFIDColumnName
    - pszIdentifier
    - pszDescription
    argTypes:
    - OGRwkbGeometryType
    - char*
    - int
    - OGRSpatialReference*
    - char*
    - OGRGeomCoordinatePrecision
    - bool
    - bool
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 5823
      start: 5680
    functionDepth: 3
    functionLinenumber: 5680
    functionLinenumberEnd: 5823
    functionName: OGRGeoPackageTableLayer::SetCreationParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - SetFrom
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - HasMetadataTables
    - CPLError
    - OGRGeomFieldDefn::SetCoordinatePrecision
    - wkbHasZ
    - HasNonSpatialTablesNonRegisteredInGpkgContents
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLStrdup
    - GetDB
    - GetSrsId
    - GetCurrentDateEscapedSQL
    - sqlite3_mprintf
    - OGRSpatialReference*::importFromEPSG
    - wkbHasM
    - IsInTransaction
    - static_cast<int>
    - OGRGeomFieldDefn::SetNullable
    - SQLCommand
    - GetSpatialRef
    - sqlite3_last_insert_rowid
    - CPLSPrintf
    - CPL_IGNORE_RET_VAL
    - std::unique_ptr::get
    - Seal
    - OGRSpatialReference::OGRSpatialReference
    - AddGeomFieldDefn
    - OGRPGTableLayer::SetMetadataItem
    - sqlite3_free
    - CPLErrorStateBackuper::CPLErrorStateBackuper
    - CreateMetadataTables
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTableLayer::SetCreationParameters(\n    OGRwkbGeometryType
      eGType, const char *pszGeomColumnName, int bGeomNullable,\n    const OGRSpatialReference
      *poSRS, const char *pszSRID,\n    const OGRGeomCoordinatePrecision &oCoordPrec,
      bool bDiscardCoordLSB,\n    bool bUndoDiscardCoordLSBOnReading, const char *pszFIDColumnName,\n
      \   const char *pszIdentifier, const char *pszDescription)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5831,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5845,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5845,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5846,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5850,1
    - Dst: OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5856
      start: 5829
    functionDepth: 2
    functionLinenumber: 5829
    functionLinenumberEnd: 5856
    functionName: OGRGeoPackageTableLayer::RegisterGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetDB
    - SQLCommand
    - sqlite3_free
    - OGRGeoPackageTableLayer::GetGeomType
    - wkbFlatten
    - OGRGeoPackageTableLayer::CreateGeometryExtensionIfNecessary
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::RegisterGeometryColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5872,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5875,1
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5879,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5895,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5895,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5897,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5898,1
    - Dst: std::vector<OGRFieldDefn *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5904,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5912,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5912,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5912,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5922,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5922,1
    - Dst: GPkgFieldFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5923,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5923,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5924,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5925,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5927,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5928,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5932,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5938,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5940,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5941,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5942,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5946,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5947,1
    - Dst: OGRGetISO8601DateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5950,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5955,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5956,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5962,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 1
    argNames:
    - apoFields
    argTypes:
    - std::vector<OGRFieldDefn *>
    constantsTouched: []
    func_position:
      end: 5968
      start: 5862
    functionDepth: 3
    functionLinenumber: 5862
    functionLinenumberEnd: 5968
    functionName: OGRGeoPackageTableLayer::GetColumnsOfCreateTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - OGRGeoPackageTableLayer::GetGeometryColumn
    - OGRGetISO8601DateTime
    - OGRFieldDefn*::GetWidth
    - std::vector<OGRFieldDefn *>::size
    - OGRFieldDefn*::GetDefault
    - sqlite3_mprintf
    - OGRFieldDefn*::GetSubType
    - strlen
    - OGRFieldDefn*::IsNullable
    - STARTS_WITH_CI
    - GPkgFieldFromOGR
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - OGRFieldDefn*::GetType
    - EQUAL
    - OGRFieldDefn*::IsUnique
    - sqlite3_free
    - OGRGeoPackageTableLayer::GetGeomType
    - OGRParseDate
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeoPackageTableLayer::GetColumnsOfCreateTable(\n    const
      std::vector<OGRFieldDefn *> &apoFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5987,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5990,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5994,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5994,1
    - Dst: OGRGeoPackageTableLayer::GetColumnsOfCreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:5997,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6002,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6002,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6004,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6004,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6004,1
    - Dst: OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6010,1
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6017,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6029,1
    - Dst: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6036,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6038,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6038,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6039,1
    - Dst: OGRGeoPackageTableLayer::RegisterGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6048,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6056,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6059,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6059,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6060,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6062,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6066,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6066,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6067,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6076,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 5974
    functionDepth: 4
    functionLinenumber: 5974
    functionLinenumberEnd: 6079
    functionName: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 12
    functionsReached:
    - OGRGeoPackageTableLayer::ResetReading
    - SQLCommand
    - OGRGeoPackageTableLayer::GetColumnsOfCreateTable
    - GetDB
    - OGRGeoPackageTableLayer::GetGeomType
    - OGRGeoPackageTableLayer::RegisterGeometryColumn
    - GetFieldCount
    - CPLDebug
    - GDALGeoPackageDataset::GetCurrentDateEscapedSQL
    - CPLString::c_str
    - sqlite3_mprintf
    - sqlite3_free
    - GetFieldDefn
    - std::vector::push_back
    - OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6089,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6105,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6106,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6106,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6107,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6108,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6111,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6114,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6117,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6117,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6118,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6121,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6125,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6129,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6130,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6141,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6141,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6142,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6145,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6159,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6159,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6161,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6164,1
    - Dst: GDALMultiDomainMetadata::XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6165,1
    - Dst: CSLMerge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6168,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6168,1
    - Dst: GDALMultiDomainMetadata::GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6169,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6173,1
    - Dst: OGRGeoPackageTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6174,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6174,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6179,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6184,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6185,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6190,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6207,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6211,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6213,1
    - Dst: OGRGeoPackageTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6229,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6230,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6236,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6237
      start: 6085
    functionDepth: 3
    functionLinenumber: 6085
    functionLinenumberEnd: 6237
    functionName: OGRGeoPackageTableLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGTableLayer::SetMetadata
    - HasMetadataTables
    - CSLMerge
    - GDALMultiDomainMetadata::GetDomainList
    - OGRWFSDataSource::GetMetadata
    - auto::RowCount
    - CPLErrorReset
    - GetDB
    - OGRGeoPackageTableLayer::SetMetadata
    - SQLQuery
    - sqlite3_mprintf
    - CPLPopErrorHandler
    - SQLGetInteger64
    - GDALMultiDomainMetadata::XMLInit
    - OGRGeoPackageTableLayer::SetMetadataItem
    - GDALMultiDomainMetadata::GDALMultiDomainMetadata
    - STARTS_WITH_CI
    - CPLDestroyXMLNode
    - CPLSPrintf
    - CPLParseXMLString
    - GDALMultiDomainMetadata::GetMetadata
    - OGRPGTableLayer::SetMetadataItem
    - CSLDestroy
    - OGRGeoPackageTableLayer::GetLayerDefn
    - EQUAL
    - sqlite3_free
    - CPLPushErrorHandler
    linkageType: ''
    returnType: char
    signature: char **OGRGeoPackageTableLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6246,1
    - Dst: OGRGeoPackageTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 6247
      start: 6243
    functionDepth: 1
    functionLinenumber: 6243
    functionLinenumberEnd: 6247
    functionName: OGRGeoPackageTableLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::GetMetadata
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: "char *OGRGeoPackageTableLayer::GetMetadataItem(const char *pszName,\n
      \                                                    const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6255,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6257
      start: 6253
    functionDepth: 2
    functionLinenumber: 6253
    functionLinenumberEnd: 6257
    functionName: OGRGeoPackageTableLayer::GetMetadataDomainList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - OGRGeoPackageTableLayer::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **OGRGeoPackageTableLayer::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6266,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6267,1
    - Dst: SetMetadataDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6268,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6269,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6271,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6272,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6273,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 6277
      start: 6263
    functionDepth: 3
    functionLinenumber: 6263
    functionLinenumberEnd: 6277
    functionName: OGRGeoPackageTableLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - empty
    - OGRPGTableLayer::SetMetadataItem
    - OGRPGTableLayer::SetMetadata
    - EQUAL
    - OGRGeoPackageTableLayer::GetMetadata
    - SetMetadataDirty
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRGeoPackageTableLayer::SetMetadata(char **papszMetadata,\n
      \                                           const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6287,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6289,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6291,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6291,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6292,1
    - Dst: SetMetadataDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6294,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 6296
      start: 6283
    functionDepth: 3
    functionLinenumber: 6283
    functionLinenumberEnd: 6296
    functionName: OGRGeoPackageTableLayer::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - empty
    - OGRPGTableLayer::SetMetadataItem
    - EQUAL
    - OGRGeoPackageTableLayer::GetMetadata
    - SetMetadataDirty
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRGeoPackageTableLayer::SetMetadataItem(const char *pszName,\n
      \                                               const char *pszValue,\n                                                const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6309,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6316,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6317,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6324,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6325,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6326,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6327,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6336,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6338,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6339,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6340,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6348,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6349,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6350,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6358,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6360,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6361,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6368,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6373,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - osColumnsForCreate
    - osFieldListForSelect
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 6378
      start: 6302
    functionDepth: 1
    functionLinenumber: 6302
    functionLinenumberEnd: 6378
    functionName: OGRGeoPackageTableLayer::RecreateTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - GetDB
    - SQLCommand
    - SQLQuery
    - sqlite3_mprintf
    - CPLString::c_str
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::RecreateTable(const CPLString &osColumnsForCreate,\n
      \                                      const CPLString &osFieldListForSelect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6394,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6396,1
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6400,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6408,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6408,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6410,1
    - Dst: std::vector<OGRFieldDefn *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6413,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6422,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6422,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - apoFields
    argTypes:
    - std::vector<OGRFieldDefn *>
    constantsTouched: []
    func_position:
      end: 6428
      start: 6384
    functionDepth: 3
    functionLinenumber: 6384
    functionLinenumberEnd: 6428
    functionName: OGRGeoPackageTableLayer::BuildSelectFieldList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector<OGRFieldDefn *>::size
    - OGRFieldDefn*::GetNameRef
    - OGRGeoPackageTableLayer::GetGeometryColumn
    - sqlite3_mprintf
    - sqlite3_free
    - OGRGeoPackageTableLayer::GetGeomType
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRGeoPackageTableLayer::BuildSelectFieldList(\n    const
      std::vector<OGRFieldDefn *> &apoFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6437,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6438,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6442,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6444,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6448,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6449,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6450,1
    - Dst: ResetReadingAllLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6459,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6465,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6466,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6474,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6475,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6475,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6477,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6478,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6486,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6491,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6492,1
    - Dst: OGRGeoPackageTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6498,1
    - Dst: HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6504,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6510,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6510,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6511,1
    - Dst: HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6517,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6523,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6523,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6524,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6530,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6556,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6556,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6557,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6567,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6567,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6568,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6577,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6577,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6579,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6580,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6589,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6590,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6595,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6597,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6601,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6602,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6604,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6613,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6616,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6619,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6621,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - iFieldToDelete
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 6625
      start: 6434
    functionDepth: 5
    functionLinenumber: 6434
    functionLinenumberEnd: 6625
    functionName: OGRGeoPackageTableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - HasExtensionsTable
    - CPLDebug
    - HasMetadataTables
    - CPLString
    - GetFieldDefn
    - std::vector::push_back
    - CPLError
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - SoftStartTransaction
    - OGRGeoPackageTableLayer::ResetReading
    - GetDB
    - GetCurrentSavepoint
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - PragmaCheck
    - ResetReadingAllLayers
    - std::move
    - emplace_back
    - IsInTransaction
    - SQLCommand
    - SoftRollbackTransaction
    - GetFieldCount
    - OGRGeoPackageTableLayer::RecreateTable
    - whileUnsealing
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - SQLEscapeName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - SoftCommitTransaction
    - sqlite3_free
    - HasDataColumnsTable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::DeleteField(int iFieldToDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6636,1
    - Dst: HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6641,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6648,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6649,1
    - Dst: HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6655,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6662,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6663,1
    - Dst: HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6669,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6676,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pszOldName
    - pszNewName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 6681
      start: 6631
    functionDepth: 1
    functionLinenumber: 6631
    functionLinenumberEnd: 6681
    functionName: OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLCommand
    - GetDB
    - HasExtensionsTable
    - HasMetadataTables
    - sqlite3_free
    - HasDataColumnsTable
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables(const
      char *pszOldName,\n                                                      const
      char *pszNewName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6692,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6693,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6696,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6698,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6705,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6706,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6708,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6709,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6717,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6718,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6720,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6720,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6729,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6729,1
    - Dst: OGRGeoPackageTableLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6730,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6731,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6731,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6732,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6733,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6733,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6735,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6737,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6751,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6751,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6754,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6754,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6755,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6755,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6758,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6759,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6759,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6760,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6760,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6763,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6763,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6764,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6764,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6767,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6767,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6768,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6768,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6771,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6771,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6775,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6775,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6778,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6779,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6780,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6781,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6782,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6782,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6783,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6786,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6786,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6789,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6789,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6793,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6793,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6796,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6796,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6799,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6799,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6802,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6802,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6803,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6806,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6807,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6810,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6810,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6813,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6813,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6821,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6830,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6832,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6833,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6833,1
    - Dst: ResetReadingAllLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6841,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6847,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6850,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6866,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6867,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6874,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6877,1
    - Dst: std::unique_ptr::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6877,1
    - Dst: std::unique_ptr::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6878,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6879,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6880,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6888,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6889,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6890,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6891,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6893,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6894,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6895,1
    - Dst: OGRGeoPackageTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6912,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6939,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6955,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6956,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6957,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6969,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6970,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6980,1
    - Dst: OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6989,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6989,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6990,1
    - Dst: HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:6996,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7003,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7004,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7009,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7013,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7014,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7015,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7016,1
    - Dst: ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7018,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7025,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7025,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7027,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7028,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7036,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7036,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7038,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7039,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7048,1
    - Dst: ReOpenDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7052,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7054,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7057,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7065,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7067,1
    - Dst: std::unique_ptr::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7067,1
    - Dst: std::unique_ptr::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7069,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7072,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7073,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7074,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7075,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7075,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7076,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7083,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7085,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7087,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7094,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7096,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7097,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7099,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7102,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7108,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7109,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7109,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7110,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7110,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7112,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7113,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7121,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7121,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7127,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7127,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7128,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7129,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7134,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7134,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7136,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7136,1
    - Dst: OGRFieldDefn*::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7138,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7138,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7142,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7143,1
    - Dst: OGRFieldDefn*::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7145,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7146,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7148,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7155,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7155,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7156,1
    - Dst: OGRFieldDefn*::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7158,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7159,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7161,1
    - Dst: OGRFieldDefn*::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7161,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7169,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7170,1
    - Dst: OGRFieldDefn*::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7172,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7172,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7174,1
    - Dst: HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7179,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7186,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7186,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7187,1
    - Dst: OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7192,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7196,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7201,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 215
    argCount: 3
    argNames:
    - iFieldToAlter
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 7205
      start: 6687
    functionDepth: 5
    functionLinenumber: 6687
    functionLinenumberEnd: 7205
    functionName: OGRGeoPackageTableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - CPLDebug
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - std::make_unique<OGRFieldDefn>
    - OGRGeoPackageTableLayer::ResetReading
    - OGRFieldDefn*::SetDefault
    - sqlite3_mprintf
    - CSLCount
    - OGRFieldDefn*::SetNullable
    - SoftRollbackTransaction
    - OGRGeoPackageTableLayer::DoSpecialProcessingForColumnCreation
    - OGRFieldDefn*::SetUnique
    - OGRFieldDefn::SetWidth
    - CSLDestroy
    - SoftCommitTransaction
    - HasDataColumnsTable
    - sqlite3_free
    - std::string
    - OGRFieldDefn*::GetPrecision
    - GetGeomFieldDefn
    - OGRFieldDefn*::GetDomainName
    - OGRFieldDefn::SetUnique
    - OGRFieldDefn*::GetDefault
    - PragmaCheck
    - ResetReadingAllLayers
    - OGRFieldDefn*::IsNullable
    - OGRFieldDefn*::SetAlternativeName
    - SQLCommand
    - OGRGeoPackageTableLayer::RecreateTable
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::SetName
    - EQUAL
    - OGRFieldDefn*::IsUnique
    - SQLGetInteger
    - ReOpenDB
    - std::unique_ptr::GetValue
    - OGRFieldDefn*::GetComment
    - strcmp
    - OGRFieldDefn::SetNullable
    - CPLString
    - std::vector::push_back
    - GetFieldIndex
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - CPLGetConfigOption
    - GetCurrentSavepoint
    - SQLQuery
    - CPLString::c_str
    - OGRFieldDefn::SetAlternativeName
    - OGRFieldDefn*::SetPrecision
    - OGRFieldDefn*::SetType
    - SQLEscapeName
    - HasGpkgextRelationsTable
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables
    - OGRFieldDefn*::SetSubType
    - GetFieldDefn
    - CPLError
    - std::unique_ptr::RowCount
    - OGRFieldDefn*::GetWidth
    - OGRFieldDefn*::GetTemporaryUnsealer
    - SoftStartTransaction
    - GetDB
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRFieldDefn*::GetSubType
    - emplace_back
    - CPLTestBool
    - IsInTransaction
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::SetDomainName
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetName
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - OGRFieldDefn*::GetAlternativeNameRef
    - OGRFieldDefn::SetDefault
    - ClearCachedRelationships
    - OGRFieldDefn*::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetType
    - OGRFieldDefn::SetComment
    - OGRGeoPackageTableLayer::GetGeomType
    - OGRFieldDefn*::SetComment
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::AlterFieldDefn(int iFieldToAlter,\n
      \                                              OGRFieldDefn *poNewFieldDefn,\n
      \                                              int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7216,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7217,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7223,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7230,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7231,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7233,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7234,1
    - Dst: OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7236,1
    - Dst: ResetReadingAllLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7241,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7243,1
    - Dst: auto::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7244,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7250,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7250,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7252,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7264,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7264,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7266,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7274,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7274,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7275,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7279,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7283,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7284,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7285,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7287,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7288,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7288,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7289,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7289,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7293,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7298,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7299,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7300,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7305,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7305,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7306,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7307,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7307,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7311,1
    - Dst: OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7316,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7316,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7317,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7320,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7330,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7335,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7335,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7336,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7338,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7338,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7339,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7339,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7342,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7349,1
    - Dst: OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7351,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7352,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7353,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7353,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7353,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7356,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7361,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7367,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7367,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7378,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7379,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7386,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7386,1
    - Dst: std::unique_ptr::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7391,1
    - Dst: auto::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7392,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7400,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7400,1
    - Dst: std::unique_ptr::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7402,1
    - Dst: auto::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7403,1
    - Dst: auto::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7412,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7412,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7418,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7425,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7427,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7431,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7433,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7441,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7448,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7449,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7449,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7450,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7450,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7451,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7451,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7453,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7453,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7454,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7454,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7455,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7455,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7455,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7456,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7457,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7460,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7467,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7467,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7468,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7471,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7475,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7478,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7479,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7479,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7480,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7483,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7487,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7493,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7494,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7496,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 3
    argNames:
    - iGeomFieldToAlter
    - poNewGeomFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 7501
      start: 7211
    functionDepth: 5
    functionLinenumber: 7211
    functionLinenumberEnd: 7501
    functionName: OGRGeoPackageTableLayer::AlterGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - OGRGeoPackageTableLayer::RevertWorkaroundUpdate1TriggerIssue
    - OGRGeomFieldDefn*::IsNullable
    - OGRGeoPackageTableLayer::RenameFieldInAuxiliaryTables
    - GetGeomFieldDefn
    - auto::GetType
    - OGRSpatialReference*::Release
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - strcmp
    - SQLEscapeLiteral
    - CPLString
    - OGRGeoPackageTableLayer::ReturnSQLCreateSpatialIndexTriggers
    - CPLError
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - GetGeomFieldCount
    - std::string::c_str
    - SoftStartTransaction
    - OGRGeoPackageTableLayer::ResetReading
    - GetDB
    - std::unique_ptr::release
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGRGeomFieldDefn*::GetNameRef
    - CPLString::c_str
    - sqlite3_mprintf
    - ResetReadingAllLayers
    - auto::Clone
    - std::unique_ptr::reset
    - c_str
    - auto::GetSpatialRef
    - SQLCommand
    - OGRGeoPackageTableLayer::ReturnSQLDropSpatialIndexTriggers
    - auto::SetName
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - SoftRollbackTransaction
    - CPL_MSBPTR32
    - auto::GetCoordinateEpoch
    - auto::SetSpatialRef
    - auto::GetNameRef
    - auto::IsSame
    - CPLFree
    - std::unique_ptr::get
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - SQLEscapeName
    - OGRGeoPackageTableLayer::GetLayerDefn
    - SoftCommitTransaction
    - auto::GetTemporaryUnsealer
    - OGRGeomFieldDefn*::GetSpatialRef
    - sqlite3_free
    - std::unique_ptr::SetCoordinateEpoch
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::AlterGeomFieldDefn(\n    int iGeomFieldToAlter,
      const OGRGeomFieldDefn *poNewGeomFieldDefn,\n    int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7510,1
    - Dst: OGRGeoPackageTableLayer::CheckUpdatableTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7511,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7514,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7517,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7517,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7524,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7525,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7527,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7528,1
    - Dst: ResetReadingAllLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7534,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7540,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7543,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7544,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7553,1
    - Dst: OGRGeoPackageTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7556,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7563,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7567,1
    - Dst: OGRGeoPackageTableLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7570,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 7578
      start: 7507
    functionDepth: 5
    functionLinenumber: 7507
    functionLinenumberEnd: 7578
    functionName: OGRGeoPackageTableLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageTableLayer::CheckUpdatableTable
    - SoftStartTransaction
    - OGRGeoPackageTableLayer::ResetReading
    - OGRCheckPermutation
    - whileUnsealing
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - SoftRollbackTransaction
    - GetFieldCount
    - OGRGeoPackageTableLayer::RecreateTable
    - OGRGeoPackageTableLayer::GetLayerDefn
    - OGRGeoPackageTableLayer::CancelAsyncRTree
    - SoftCommitTransaction
    - ResetReadingAllLayers
    - GetFieldDefn
    - std::vector::push_back
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageTableLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hDB
    - nFlags
    argTypes:
    - sqlite3*
    - int
    constantsTouched: []
    func_position:
      end: 7597
      start: 7594
    functionDepth: 0
    functionLinenumber: 7594
    functionLinenumberEnd: 7597
    functionName: GeometryTypeAggregateContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeometryTypeAggregateContext(sqlite3 *hDB, int nFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7599
      start: 7599
    functionDepth: 0
    functionLinenumber: 7599
    functionLinenumberEnd: 7599
    functionName: GeometryTypeAggregateContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeometryTypeAggregateContext(const GeometryTypeAggregateContext
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7601
      start: 7600
    functionDepth: 0
    functionLinenumber: 7600
    functionLinenumberEnd: 7601
    functionName: "&\n    operator=(const GeometryTypeAggregateContext &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeometryTypeAggregateContext
    signature: "GeometryTypeAggregateContext &\n    operator=(const GeometryTypeAggregateContext
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 7608
      start: 7603
    functionDepth: 0
    functionLinenumber: 7603
    functionLinenumberEnd: 7608
    functionName: SetGeometryTypeAggregateInterrupted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_interrupt
    linkageType: ''
    returnType: void
    signature: void SetGeometryTypeAggregateInterrupted(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7618,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7618,1
    - Dst: static_cast<GeometryTypeAggregateContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7620,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7621,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7629,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7630,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7632,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7637,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7638,1
    - Dst: auto::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7641,1
    - Dst: auto::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7642,1
    - Dst: auto::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7645,1
    - Dst: auto::m_oSetNotNull::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7664,1
    - Dst: auto::m_oSetNotNull::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7665,1
    - Dst: auto::SetGeometryTypeAggregateInterrupted
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 7671
      start: 7613
    functionDepth: 2
    functionLinenumber: 7613
    functionLinenumberEnd: 7671
    functionName: OGR_GPKG_GeometryTypeAggregate_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GPkgHeaderFromWKB
    - sqlite3_value_blob
    - static_cast<size_t>
    - auto::getGeometryRef
    - std::unique_ptr<OGRGeometry>
    - sqlite3_user_data
    - static_cast<GeometryTypeAggregateContext *>
    - reinterpret_cast<const GByte *>
    - GPkgGeometryToOGR
    - auto::getNumGeometries
    - auto::SetGeometryTypeAggregateInterrupted
    - OGRReadWKBGeometryType
    - auto::m_oSetNotNull::size
    - auto::m_oSetNotNull::insert
    - auto::toGeometryCollection
    linkageType: ''
    returnType: void
    signature: "void OGR_GPKG_GeometryTypeAggregate_Step(sqlite3_context *pContext,\n
      \                                               int /*argc*/,\n                                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7675
      start: 7673
    functionDepth: 0
    functionLinenumber: 7673
    functionLinenumberEnd: 7675
    functionName: OGR_GPKG_GeometryTypeAggregate_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_GPKG_GeometryTypeAggregate_Finalize(sqlite3_context *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7685,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7690,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7691,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7700,1
    - Dst: sqlite3_progress_handler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7724,1
    - Dst: sqlite3_progress_handler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7733,1
    - Dst: static_cast<CancelCallback *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7743,1
    - Dst: CancelCallback*::m_pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7745,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7754,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7755,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7763,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7765,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7765,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7782,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7782,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7782,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7789,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7792,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7793,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7797,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7798,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7801,1
    - Dst: GeometryTypeAggregateContext::m_oMapCount::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7801,1
    - Dst: static_cast<OGRGeometryTypeCounter *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7802,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7803,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - iGeomField
    - nFlagsGGT
    - nEntryCountOut
    - pfnProgress
    - pProgressData
    argTypes:
    - int
    - int
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 7812
      start: 7681
    functionDepth: 5
    functionLinenumber: 7681
    functionLinenumberEnd: 7812
    functionName: OGRGeoPackageTableLayer::GetGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CancelCallback*::m_pfnProgress
    - static_cast<int>
    - CPLError
    - sqlite3_create_function
    - GetDB
    - CPLString::Printf
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - static_cast<CancelCallback *>
    - OGRGeoPackageTableLayer::GetLayerDefn
    - CPLString::c_str
    - GeometryTypeAggregateContext::m_oMapCount::size
    - CPL_IGNORE_RET_VAL
    - sqlite3_free
    - sqlite3_progress_handler
    - static_cast<OGRGeometryTypeCounter *>
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - CPLCalloc
    linkageType: ''
    returnType: OGRGeometryTypeCounter
    signature: "OGRGeometryTypeCounter *OGRGeoPackageTableLayer::GetGeometryTypes(\n
      \   int iGeomField, int nFlagsGGT, int &nEntryCountOut,\n    GDALProgressFunc
      pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRGPKGTableLayerFillArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7824,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7825,1
    - Dst: auto::psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7834,1
    - Dst: auto::oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7836,1
    - Dst: auto::oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7839,1
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7849,1
    - Dst: OGRArrowArrayHelper::GetMemLimit
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7859,1
    - Dst: auto::psHelper::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7870,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7880,1
    - Dst: OGRArrowArrayHelper*::m_mapOGRGeomFieldToArrowField::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7893,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7903,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7909,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7909,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7917,1
    - Dst: OGRGeometry*::roundCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7920,1
    - Dst: auto::poFeatureDefn::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7921,1
    - Dst: OGRGeometry*::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7923,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7924,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7925,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7925,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7933,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7942,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7956,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7959,1
    - Dst: OGRGeometry*::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7964,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7965,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7966,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7966,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7973,1
    - Dst: auto::poLayerForFilterGeom::FilterWKBGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:7999,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8010,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8011,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8017,1
    - Dst: auto::psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8027,1
    - Dst: auto::oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8029,1
    - Dst: auto::oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8032,1
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8038,1
    - Dst: OGRArrowArrayHelper*::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8044,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8050,1
    - Dst: OGRArrowArrayHelper*::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8054,1
    - Dst: OGRArrowArrayHelper*::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8060,1
    - Dst: auto::poFeatureDefn::GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8077,1
    - Dst: OGRArrowArrayHelper*::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8084,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8092,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8097,1
    - Dst: OGRArrowArrayHelper*::SetBoolOn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8101,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8104,1
    - Dst: OGRArrowArrayHelper*::SetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8106,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8107,1
    - Dst: OGRArrowArrayHelper*::SetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8111,1
    - Dst: OGRArrowArrayHelper*::SetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8118,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8119,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8126,1
    - Dst: OGRArrowArrayHelper*::SetFloat
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8128,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8129,1
    - Dst: OGRArrowArrayHelper*::SetDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8133,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8148,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8149,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8155,1
    - Dst: auto::psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8165,1
    - Dst: auto::oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8167,1
    - Dst: auto::oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8170,1
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8176,1
    - Dst: OGRArrowArrayHelper*::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8182,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8189,1
    - Dst: OGRArrowArrayHelper*::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8193,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8201,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8202,1
    - Dst: auto::poLayer::ParseDateField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8204,1
    - Dst: OGRArrowArrayHelper*::SetDate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8207,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8218,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8219,1
    - Dst: auto::poLayer::ParseDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8221,1
    - Dst: OGRArrowArrayHelper*::SetDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8224,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8238,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8239,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8245,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8246,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8252,1
    - Dst: auto::psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8262,1
    - Dst: auto::oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8264,1
    - Dst: auto::oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8267,1
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8273,1
    - Dst: OGRArrowArrayHelper*::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8279,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8286,1
    - Dst: OGRArrowArrayHelper*::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8290,1
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8310,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 255
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8312
      start: 7821
    functionDepth: 2
    functionLinenumber: 7821
    functionLinenumberEnd: 8312
    functionName: OGR_GPKG_FillArrowArray_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::oCV::notify_one
    - GPkgHeaderFromWKB
    - auto::poFeatureDefn::GetFieldDefnUnsafe
    - OGRGeometry*::WkbSize
    - sqlite3_user_data
    - static_cast<const GByte *>
    - OGRGeometry*::roundCoordinates
    - CPLDebug
    - CPLError
    - OGRArrowArrayHelper*::GetPtrForStringOrBinary
    - OGRArrowArrayHelper::GetMemLimit
    - static_cast<OGRGPKGTableLayerFillArrowArray *>
    - auto::poLayer::ParseDateTimeField
    - sqlite3_interrupt
    - sqlite3_value_int64
    - OGRArrowArrayHelper*::m_mapOGRGeomFieldToArrowField::empty
    - OGRArrowArrayHelper*::SetInt32
    - OGRFieldDefn*::GetSubType
    - const_cast<void *>
    - OGRSQLiteImportSpatiaLiteGeometry
    - auto::poFeatureDefn::GetGeomFieldDefn
    - std::vector::data
    - auto::poLayerForFilterGeom::FilterWKBGeometry
    - OGRArrowArrayHelper*::SetNull
    - static_cast<float>
    - auto::psHelper::get
    - OGRArrowArrayHelper*::SetBoolOn
    - reinterpret_cast<const char *>
    - OGRGeometry*::exportToWkb
    - GPkgGeometryToOGR
    - static_cast<int32_t *>
    - OGRFieldDefn*::GetType
    - OGRArrowArrayHelper*::SetDouble
    - OGRArrowArrayHelper*::SetInt16
    - static_cast<int16_t>
    - OGRArrowArrayHelper*::SetInt64
    - std::vector::resize
    - OGRArrowArrayHelper*::SetFloat
    - auto::poLayer::ParseDateField
    - OGRArrowArrayHelper*::SetDate
    - sqlite3_value_blob
    - OGRArrowArrayHelper*::SetDateTime
    - sqlite3_value_text
    - auto::oCV::wait
    - OGRArrowArrayHelper*::SetEmptyStringOrBinary
    - memset
    - auto::psHelper::Shrink
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGR_GPKG_FillArrowArray_Step(sqlite3_context *pContext, int /*argc*/,\n
      \                                 sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8320
    functionName: OGR_GPKG_FillArrowArray_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_GPKG_FillArrowArray_Finalize(sqlite3_context * /*pContext*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8329,1
    - Dst: std::make_unique<OGRArrowArrayHelper>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8342,1
    - Dst: auto::m_mapOGRGeomFieldToArrowField::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8361,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8373,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8375,1
    - Dst: OGRGeoPackageLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8376,1
    - Dst: std::make_unique<OGRGPKGTableLayerFillArrowArray>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8384,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8385,1
    - Dst: FetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8389,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8393,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8394,1
    - Dst: OGRArrowArrayHelper::GetMaxFeaturesInBatch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8397,1
    - Dst: std::thread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8405,1
    - Dst: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronousWorker
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8406,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8411,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8412,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8413,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8422,1
    - Dst: osErrorMsg::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8423,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8424,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8429,1
    - Dst: oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8431,1
    - Dst: oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8443,1
    - Dst: join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8451,1
    - Dst: osErrorMsg::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8452,1
    - Dst: psHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8453,1
    - Dst: join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8458,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 8462
      start: 8326
    functionDepth: 1
    functionLinenumber: 8326
    functionLinenumberEnd: 8462
    functionName: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - FetchBool
    - struct ArrowArray*::release
    - oCV::notify_one
    - CPLError
    - osErrorMsg::c_str
    - OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronousWorker
    - OGRArrowArrayHelper::GetMaxFeaturesInBatch
    - GetDB
    - std::thread
    - auto::m_mapOGRGeomFieldToArrowField::empty
    - std::make_unique<OGRArrowArrayHelper>
    - std::move
    - std::make_unique<OGRGPKGTableLayerFillArrowArray>
    - join
    - OGRGeoPackageLayer::GetNextArrowArray
    - psHelper::ClearArray
    - what
    - oCV::wait
    - reset
    - memset
    - auto::reset
    linkageType: ''
    returnType: int
    signature: "int OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous(\n    struct
      ArrowArrayStream *stream, struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8470,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8471,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8472,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8483,1
    - Dst: psHelper::m_mapOGRGeomFieldToArrowField::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8491,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8496,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8496,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8507,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8509,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8509,1
    - Dst: AddFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8515,1
    - Dst: AddFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8521,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8525,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8527,1
    - Dst: OGRGeoPackageTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8530,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8534,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8549,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8550,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8550,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8551,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8554,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8558,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8559,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8573,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8578,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8578,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8578,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8585,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8588,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8588,1
    - Dst: psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8596,1
    - Dst: psHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8599,1
    - Dst: oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8602,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8468
    functionDepth: 3
    functionLinenumber: 8468
    functionLinenumberEnd: 8603
    functionName: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronousWorker
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 1
    functionsReached:
    - getEnvelope
    - OGRGeoPackageTableLayer::GetGeometryColumn
    - OGRGeoPackageTableLayer::HasSpatialIndex
    - oCV::notify_one
    - std::string::c_str
    - GetDB
    - AddFields
    - psHelper::Shrink
    - std::isinf
    - OGRFieldDefn*::GetNameRef
    - get
    - psHelper::m_mapOGRGeomFieldToArrowField::empty
    - CPLSPrintf
    - GetFieldDefnUnsafe
    - psHelper::ClearArray
    - sqlite3_exec
    - sqlite3_create_function
    - empty
    - SQLEscapeName
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronousWorker()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8613,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8614,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8616,1
    - Dst: OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8623,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8624,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8626,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8631,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8631,1
    - Dst: OGRGeoPackageLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8633,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8637,1
    - Dst: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8641,1
    - Dst: OGRGeoPackageTableLayer::GetTotalFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8649,1
    - Dst: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8651,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8656,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8656,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8657,1
    - Dst: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8659,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8665,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8665,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8666,1
    - Dst: OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8668,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8681,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8684,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8684,1
    - Dst: pop
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8685,1
    - Dst: auto::m_oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8692,1
    - Dst: auto::m_osErrorMsg::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8696,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8697,1
    - Dst: auto::m_osErrorMsg::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8698,1
    - Dst: auto::m_oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8705,1
    - Dst: auto::m_oThread::joinable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8707,1
    - Dst: auto::m_oThread::join
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8708,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8715,1
    - Dst: auto::m_psArrowArray::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8720,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8720,1
    - Dst: stopThread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8722,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8729,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8729,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8731,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8731,1
    - Dst: stopThread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8742,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8743,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8749,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8753,1
    - Dst: auto::m_oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8761,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8763,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8763,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8768,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8769,1
    - Dst: stopThread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8774,1
    - Dst: stopThread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8779,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8787,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8787,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8788,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8789,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8791,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8795,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8796,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8797,1
    - Dst: sqlite3_threadsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8799,1
    - Dst: GetThreadsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8799,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8800,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8806,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8807,1
    - Dst: GetOpenOptions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8808,1
    - Dst: std::make_unique<ArrowArrayPrefetchTask>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8812,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8815,1
    - Dst: std::make_unique<GDALGeoPackageDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8816,1
    - Dst: auto::m_poDS::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8817,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8821,1
    - Dst: auto::m_poDS::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8822,1
    - Dst: OGRGeoPackageTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8822,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8824,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8825,1
    - Dst: auto::m_poDS::SetQueryLoggerFunc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8833,1
    - Dst: std::make_unique<struct ArrowArray>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8838,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8839,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8839,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8844,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8845,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8847,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8848,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8850,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8852,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8853,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8858,1
    - Dst: auto::m_poLayer::GetNextArrowArrayInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8865,1
    - Dst: auto::m_psArrowArray::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8866,1
    - Dst: auto::m_oCV::notify_one
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8869,1
    - Dst: auto::m_oCV::wait
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8880,1
    - Dst: std::thread
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8888,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8892,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8893,1
    - Dst: push
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8896,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8896,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8904,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8905,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8905,1
    - Dst: OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8908,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 150
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 8912
      start: 8609
    functionDepth: 5
    functionLinenumber: 8609
    functionLinenumberEnd: 8912
    functionName: OGRGeoPackageTableLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<OGRGeoPackageTableLayer *>
    - stopThread
    - atoi
    - memcpy
    - push
    - auto::m_psArrowArray::release
    - GetDescription
    - std::make_unique<ArrowArrayPrefetchTask>
    - GetGeomFieldDefn
    - auto::m_poLayer::GetNextArrowArrayInternal
    - CPLDebug
    - GetOpenOptions
    - auto::m_poDS::Open
    - auto::get
    - std::make_unique<struct ArrowArray>
    - GetFieldDefn
    - CPLError
    - CPLGetConfigOption
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    - GetGeomFieldCount
    - std::string::c_str
    - static_cast<GIntBig>
    - std::string::empty
    - auto::GetLayerDefn
    - OGRGeoPackageTableLayer::GetNextArrowArrayAsynchronous
    - GetDB
    - auto::m_osErrorMsg::c_str
    - std::thread
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - GetThreadsAvailable
    - auto::GetGeomFieldDefn
    - OGRGeoPackageTableLayer::CancelAsyncNextArrowArray
    - SQLGetInteger64
    - std::move
    - auto::m_poDS::SetQueryLoggerFunc
    - OGRGeoPackageTableLayer::GetTotalFeatureCount
    - CPLTestBool
    - OGRGeoPackageTableLayer::CreateSpatialIndexIfNecessary
    - GetAccess
    - auto::GetFieldDefn
    - OGRGeoPackageLayer::GetNextArrowArray
    - GetFieldCount
    - min
    - auto::m_poDS::GetLayerByName
    - sqlite3_threadsafe
    - what
    - auto::m_osErrorMsg::empty
    - auto::m_oCV::notify_one
    - OGRGeoPackageTableLayer::GetName
    - empty
    - front
    - std::make_unique<GDALGeoPackageDataset>
    - auto::m_oThread::joinable
    - OGRGeoPackageTableLayer::GetLayerDefn
    - auto::m_psArrowArray::get
    - EQUAL
    - sqlite3_free
    - auto::m_oThread::join
    - CPLGetNumCPUs
    - CPLGetUsablePhysicalRAM
    - memset
    - pop
    - auto::m_oCV::wait
    linkageType: ''
    returnType: int
    signature: "int OGRGeoPackageTableLayer::GetNextArrowArray(struct ArrowArrayStream
      *stream,\n                                               struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8923,1
    - Dst: std::make_unique<OGRArrowArrayHelper>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8930,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8938,1
    - Dst: FetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8942,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8946,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8947,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8949,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8950,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8959,1
    - Dst: OGRGPKGTableLayerFillArrowArray::psHelper::m_mapOGRGeomFieldToArrowField::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8963,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8968,1
    - Dst: OGRGeoPackageTableLayer::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8968,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8986,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8990,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8993,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8993,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:8999,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9001,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9003,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9005,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9011,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9011,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9011,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9020,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9025,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9025,1
    - Dst: OGRGPKGTableLayerFillArrowArray::psHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9031,1
    - Dst: OGRGPKGTableLayerFillArrowArray::psHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9035,1
    - Dst: OGRGPKGTableLayerFillArrowArray::psHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9038,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 71
    argCount: 3
    argNames:
    - out_array
    - osErrorMsg
    - bMemoryLimitReached
    argTypes:
    - struct ArrowArray*
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 9044
      start: 8918
    functionDepth: 3
    functionLinenumber: 8918
    functionLinenumberEnd: 9044
    functionName: OGRGeoPackageTableLayer::GetNextArrowArrayInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGPKGTableLayerFillArrowArray::psHelper::Shrink
    - sqlite3_create_function
    - GetDB
    - FetchBool
    - OGRFieldDefn*::GetNameRef
    - SQLEscapeName
    - std::to_string
    - OGRGeoPackageTableLayer::GetGeometryColumn
    - CPLSPrintf
    - std::make_unique<OGRArrowArrayHelper>
    - std::move
    - OGRGPKGTableLayerFillArrowArray::psHelper::m_mapOGRGeomFieldToArrowField::empty
    - GetFieldDefnUnsafe
    - sqlite3_free
    - memset
    - sqlite3_exec
    - std::string::c_str
    - OGRGPKGTableLayerFillArrowArray::psHelper::ClearArray
    linkageType: ''
    returnType: int
    signature: "int OGRGeoPackageTableLayer::GetNextArrowArrayInternal(\n    struct
      ArrowArray *out_array, std::string &osErrorMsg,\n    bool &bMemoryLimitReached)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hDB
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 9060
      start: 9057
    functionDepth: 0
    functionLinenumber: 9057
    functionLinenumberEnd: 9060
    functionName: GeometryExtent3DAggregateContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeometryExtent3DAggregateContext(sqlite3 *hDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9063
      start: 9062
    functionDepth: 0
    functionLinenumber: 9062
    functionLinenumberEnd: 9063
    functionName: GeometryExtent3DAggregateContext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeometryExtent3DAggregateContext(const GeometryExtent3DAggregateContext
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9065
      start: 9064
    functionDepth: 0
    functionLinenumber: 9064
    functionLinenumberEnd: 9065
    functionName: "&\n    operator=(const GeometryExtent3DAggregateContext &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeometryExtent3DAggregateContext
    signature: "GeometryExtent3DAggregateContext &\n    operator=(const GeometryExtent3DAggregateContext
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9075,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9075,1
    - Dst: static_cast<GeometryExtent3DAggregateContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9077,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9078,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9083,1
    - Dst: auto::m_oExtent3D::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9092,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9099,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9101,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9104,1
    - Dst: auto::m_oExtent3D::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9110
      start: 9070
    functionDepth: 1
    functionLinenumber: 9070
    functionLinenumberEnd: 9110
    functionName: OGR_GPKG_GeometryExtent3DAggregate_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - auto::m_oExtent3D::Merge
    - static_cast<GeometryExtent3DAggregateContext *>
    - sqlite3_user_data
    - reinterpret_cast<const GByte *>
    - OGRSQLiteImportSpatiaLiteGeometry
    - OGRGeoPackageGetHeader
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: void
    signature: "void OGR_GPKG_GeometryExtent3DAggregate_Step(sqlite3_context *pContext,\n
      \                                                   int /*argc*/,\n                                                    sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9114
      start: 9112
    functionDepth: 0
    functionLinenumber: 9112
    functionLinenumberEnd: 9114
    functionName: OGR_GPKG_GeometryExtent3DAggregate_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR_GPKG_GeometryExtent3DAggregate_Finalize(sqlite3_context *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9124,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9129,1
    - Dst: OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9130,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9135,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9139,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9140,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9141,1
    - Dst: OGREnvelope3D
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9146,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9154,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9157,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9157,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9171,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9171,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9171,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9178,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9181,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9182,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9185,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - iGeomField
    - psExtent3D
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 9191
      start: 9119
    functionDepth: 5
    functionLinenumber: 9119
    functionLinenumberEnd: 9191
    functionName: OGRGeoPackageTableLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    - empty
    - cpl::infinity
    - sqlite3_create_function
    - GetDB
    - CPLString::Printf
    - OGRGeoPackageTableLayer::RunDeferredCreationIfNecessary
    - OGREnvelope3D
    - OGRGeoPackageTableLayer::GetLayerDefn
    - CPLString::c_str
    - sqlite3_free
    - CPLError
    - OGRGeoPackageTableLayer::RunDeferredSpatialIndexUpdate
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageTableLayer::IGetExtent3D(int iGeomField,\n                                             OGREnvelope3D
      *psExtent3D,\n                                             bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hDB
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 9225
      start: 9223
    functionDepth: 0
    functionLinenumber: 9223
    functionLinenumberEnd: 9225
    functionName: ReenableTriggers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReenableTriggers(sqlite3 *hDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9231
      start: 9227
    functionDepth: 0
    functionLinenumber: 9227
    functionLinenumberEnd: 9231
    functionName: ~ReenableTriggers()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_db_config
    linkageType: ''
    returnType: void
    signature: void ~ReenableTriggers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9251,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9251,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9255,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9255,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9260,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9260,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9264,1
    - Dst: std::make_unique<ReenableTriggers>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9268,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9268,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9269,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' m_bIsTable'
    argTypes:
    - bOK
    constantsTouched: []
    func_position:
      end: 9274
      start: 9241
    functionDepth: 1
    functionLinenumber: 9241
    functionLinenumberEnd: 9274
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - SQLGetInteger
    - CPLDebugOnly
    - std::make_unique<ReenableTriggers>
    - GetDB
    - sqlite3_db_config
    - CPL_IGNORE_RET_VAL
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void if (bOK && m_bIsTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9300,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9302,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9312,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9314,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9316,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9317,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' m_bIsTable  HasSpatialIndex()'
    argTypes:
    - bOK
    constantsTouched: []
    func_position:
      end: 9321
      start: 9277
    functionDepth: 0
    functionLinenumber: 9277
    functionLinenumberEnd: 9321
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_mprintf
    - c_str
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void if (bOK && m_bIsTable && HasSpatialIndex())
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9327,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9330
      start: 9323
    functionDepth: 0
    functionLinenumber: 9323
    functionLinenumberEnd: 9330
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void if (bOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9340,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' m_poDS->m_bHasGPKGOGRContents'
    argTypes:
    - bOK
    constantsTouched: []
    func_position:
      end: 9343
      start: 9334
    functionDepth: 0
    functionLinenumber: 9334
    functionLinenumberEnd: 9343
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void if (bOK && m_poDS->m_bHasGPKGOGRContents)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9348
      start: 9345
    functionDepth: 0
    functionLinenumber: 9345
    functionLinenumberEnd: 9348
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void if (bOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9354
      start: 9351
    functionDepth: 0
    functionLinenumber: 9351
    functionLinenumberEnd: 9354
    functionName: if
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 2
    functionsReached:
    - SoftCommitTransaction
    linkageType: ''
    returnType: void
    signature: void if (bOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9357,1
    - Dst: DisableFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9359,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp:9361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9363
      start: 9355
    functionDepth: 1
    functionLinenumber: 9355
    functionLinenumberEnd: 9363
    functionName: ''
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp
    functionUses: 9608
    functionsReached:
    - CPLError
    - SoftRollbackTransaction
    - DisableFeatureCount
    linkageType: ''
    returnType: else
    signature: 'else '
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:29,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:32,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:33,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:37,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:44,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - pszGpkgType
    - bHasZ
    - bHasM
    argTypes:
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 52
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 52
    functionName: GPkgGeometryTypeToWKB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - wkbSetM
    - OGRFromOGCGeomType
    - wkbSetZ
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType GPkgGeometryTypeToWKB(const char *pszGpkgType,
      bool bHasZ,\n                                         bool bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STRNCASECMP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:66,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:68,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:70,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:77,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:79,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:84,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:86,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:93,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:105,1
    - Dst: STRNCASECMP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:109,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:112,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:115,1
    - Dst: STRNCASECMP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:123,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:127,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:136,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:138,1
    - Dst: GPkgGeometryTypeToWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:146,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 3
    argNames:
    - pszGpkgType
    - eSubType
    - nMaxWidth
    argTypes:
    - char*
    - OGRFieldSubType
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 151
    functionName: GPkgFieldToOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 1
    functionsReached:
    - STRNCASECMP
    - atoi
    - GPkgGeometryTypeToWKB
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int GPkgFieldToOGR(const char *pszGpkgType, OGRFieldSubType &eSubType,\n
      \                  int &nMaxWidth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - eType
    - eSubType
    - nMaxWidth
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 196
    functionName: GPkgFieldFromOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 2
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *GPkgFieldFromOGR(OGRFieldType eType, OGRFieldSubType eSubType,\n
      \                            int nMaxWidth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:232,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:239,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:241,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:241,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:242,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:258,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:258,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:260,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:263,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:263,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:310,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:319,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:330,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:342,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:345,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 4
    argNames:
    - poGeometry
    - iSrsId
    - psPrecision
    - pnWkbLen
    argTypes:
    - OGRGeometry*
    - int
    - OGRGeomCoordinateBinaryPrecision*
    - size_t*
    constantsTouched: []
    func_position:
      end: 350
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 350
    functionName: GPkgGeometryFromOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<OGRwkbByteOrder>
    - OGRGeometry*::exportToWkb
    - OGRGeometry*::getGeometryType
    - CPLAssert
    - OGRGeometry*::getEnvelope
    - static_cast<GByte *>
    - CPLError
    - wkbFlatten
    - memcpy
    - CPLFree
    - VSI_MALLOC_VERBOSE
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: GByte
    signature: "GByte *GPkgGeometryFromOGR(const OGRGeometry *poGeometry, int iSrsId,\n
      \                          const OGRGeomCoordinateBinaryPrecision *psPrecision,\n
      \                          size_t *pnWkbLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:355,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:356,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:362,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:370,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:376,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:416,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:419,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:423,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:439,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:440,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:441,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:442,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:451,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:452,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:462,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:463,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 3
    argNames:
    - pabyGpkg
    - nGpkgLen
    - poHeader
    argTypes:
    - GByte*
    - size_t
    - GPkgHeader*
    constantsTouched: []
    func_position:
      end: 472
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 472
    functionName: GPkgHeaderFromWKB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - static_cast<OGRwkbByteOrder>
    - OGR_SWAP
    - CPLAssert
    - CPL_SWAP32
    - CPL_SWAPDOUBLE
    - memset
    - memcpy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GPkgHeaderFromWKB(const GByte *pabyGpkg, size_t nGpkgLen,\n
      \                        GPkgHeader *poHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:478,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:482,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:483,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:488,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:523,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:532,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:533,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:534,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:535,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:536,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:537,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:541,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:542,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:543,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:544,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:548,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:549,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 9
    argNames:
    - pabyGpkg
    - nGpkgLen
    - nSrsId
    - MinX
    - MaxX
    - MinY
    - MaxY
    - MinZ
    - MaxZ
    argTypes:
    - GByte*
    - size_t
    - int
    - double
    - double
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 553
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 553
    functionName: GPkgUpdateHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<OGRwkbByteOrder>
    - OGR_SWAP
    - CPLAssert
    - CPL_SWAP32
    - CPL_SWAPDOUBLE
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool GPkgUpdateHeader(GByte *pabyGpkg, size_t nGpkgLen, int nSrsId,
      double MinX,\n                      double MaxX, double MinY, double MaxY, double
      MinZ,\n                      double MaxZ)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:558,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:563,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:573,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pabyGpkg
    - nGpkgLen
    - poSrs
    argTypes:
    - GByte*
    - size_t
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 579
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 579
    functionName: GPkgGeometryToOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 2
    functionsReached:
    - GPkgHeaderFromWKB
    - CPLAssert
    - static_cast<int>
    - OGRGeometryFactory::createFromWkb
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *GPkgGeometryToOGR(const GByte *pabyGpkg, size_t nGpkgLen,\n
      \                              OGRSpatialReference *poSrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:593,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:595,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:600,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:600,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:604,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:607,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:610,1
    - Dst: OGRSQLiteGetSpatialiteGeometryHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:611,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:632,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:633,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:648,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp:649,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 5
    argNames:
    - argv
    - psHeader
    - bNeedExtent
    - bNeedExtent3D
    - iGeomIdx
    argTypes:
    - sqlite3_value**
    - GPkgHeader*
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 664
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 664
    functionName: OGRGeoPackageGetHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp
    functionUses: 1
    functionsReached:
    - GPkgHeaderFromWKB
    - sqlite3_value_blob
    - OGRSQLiteGetSpatialiteGeometryHeader
    - static_cast<size_t>
    - sqlite3_value_type
    - reinterpret_cast<const GByte *>
    - OGRWKBGetBoundingBox
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageGetHeader(sqlite3_context * /*pContext*/, int /*argc*/,\n
      \                           sqlite3_value **argv, GPkgHeader *psHeader,\n                            bool
      bNeedExtent, bool bNeedExtent3D, int iGeomIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDS
    argTypes:
    - GDALGeoPackageDataset*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: OGRGeoPackageLayer::OGRGeoPackageLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageLayer::OGRGeoPackageLayer(GDALGeoPackageDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:38,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:41,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: OGRGeoPackageLayer::~OGRGeoPackageLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - CPLFree
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageLayer::~OGRGeoPackageLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: OGRGeoPackageLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeoPackageLayer::ClearStatement
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:68,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: OGRGeoPackageLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:86,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:106,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:108,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:108,1
    - Dst: OGRGeoPackageLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:111,1
    - Dst: OGRGeoPackageLayer::TranslateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:122,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:125,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:125,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 131
    functionName: OGRGeoPackageLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_reset
    - OGRGeoPackageLayer::ClearStatement
    - GetDB
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - OGRGeoPackageLayer::TranslateFeature
    - FilterGeometry
    - ResetStatement
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoPackageLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::ParseDateField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:153,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - hStmt
    - iRawField
    - nSqlite3ColType
    - psField
    - poFieldDefn
    - nFID
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    - OGRField*
    - OGRFieldDefn*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 161
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 161
    functionName: OGRGeoPackageLayer::ParseDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRGeoPackageLayer::ParseDateField
    - OGRFieldDefn*::GetNameRef
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageLayer::ParseDateField(sqlite3_stmt *hStmt, int iRawField,\n
      \                                       int nSqlite3ColType, OGRField *psField,\n
      \                                       const OGRFieldDefn *poFieldDefn,\n                                        GIntBig
      nFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:169,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:170,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:170,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:189,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:195,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:197,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:208,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:213,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:217,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:232,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:235,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 4
    argNames:
    - pszTxt
    - psField
    - poFieldDefn
    - nFID
    argTypes:
    - char*
    - OGRField*
    - OGRFieldDefn*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 242
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 242
    functionName: OGRGeoPackageLayer::ParseDateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUInt16>
    - GetDB
    - OGRFieldDefn*::GetNameRef
    - OGR_RawField_SetUnset
    - static_cast<GByte>
    - sqlite3_errmsg
    - CPLError
    - OGRParseDate
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageLayer::ParseDateField(const char *pszTxt, OGRField
      *psField,\n                                        const OGRFieldDefn *poFieldDefn,\n
      \                                       GIntBig nFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageLayer::ParseDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:258,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:265,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - hStmt
    - iRawField
    - nSqlite3ColType
    - psField
    - poFieldDefn
    - nFID
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    - OGRField*
    - OGRFieldDefn*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 273
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 273
    functionName: OGRGeoPackageLayer::ParseDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRFieldDefn*::GetNameRef
    - OGRGeoPackageLayer::ParseDateTimeField
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageLayer::ParseDateTimeField(sqlite3_stmt *hStmt, int
      iRawField,\n                                            int nSqlite3ColType,\n
      \                                           OGRField *psField,\n                                            const
      OGRFieldDefn *poFieldDefn,\n                                            GIntBig
      nFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:282,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:283,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:283,1
    - Dst: OGRParseDateTimeYYYYMMDDTHHMMSSsssZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:289,1
    - Dst: OGRParseDateTimeYYYYMMDDTHHMMSSZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:290,1
    - Dst: OGRParseDateTimeYYYYMMDDTHHMMZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:291,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:301,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:305,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:315,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - pszTxt
    - psField
    - poFieldDefn
    - nFID
    argTypes:
    - char*
    - OGRField*
    - OGRFieldDefn*
    - GIntBig
    constantsTouched: []
    func_position:
      end: 325
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 325
    functionName: OGRGeoPackageLayer::ParseDateTimeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRParseDateTimeYYYYMMDDTHHMMSSZ
    - GetDB
    - OGRFieldDefn*::GetNameRef
    - OGR_RawField_SetUnset
    - OGRParseDateTimeYYYYMMDDTHHMMZ
    - OGRParseDateTimeYYYYMMDDTHHMMSSsssZ
    - sqlite3_errmsg
    - CPLError
    - OGRParseDate
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageLayer::ParseDateTimeField(const char *pszTxt,\n
      \                                           OGRField *psField,\n                                            const
      OGRFieldDefn *poFieldDefn,\n                                            GIntBig
      nFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:337,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:344,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:344,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:345,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:348,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:352,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:364,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:365,1
    - Dst: OGRGeomFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:366,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:368,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:371,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:372,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:374,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:378,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:381,1
    - Dst: OGRGeometry*::roundCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:389,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:390,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:392,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:395,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:406,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:407,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:415,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:419,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:422,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:423,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:427,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:428,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:432,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:433,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:443,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:447,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:448,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:448,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:455,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:456,1
    - Dst: OGRGeoPackageLayer::ParseDateField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:457,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:458,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:464,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:465,1
    - Dst: OGRGeoPackageLayer::ParseDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:465,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:467,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:485,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:486,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:486,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - hStmt
    argTypes:
    - sqlite3_stmt*
    constantsTouched: []
    func_position:
      end: 497
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 497
    functionName: OGRGeoPackageLayer::TranslateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageLayer::ParseDateField
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - GetGeomFieldDefn
    - static_cast<const GByte *>
    - OGRGeometry*::roundCoordinates
    - sqlite3_column_double
    - CPLError
    - sqlite3_column_int64
    - OGRFieldDefn*::IsIgnored
    - sqlite3_column_type
    - OGRFeature*::SetFieldSameTypeUnsafe
    - GetDB
    - OGRFeature*::GetRawFieldRef
    - sqlite3_column_int
    - OGRSQLiteImportSpatiaLiteGeometry
    - OGRFeature*::SetGeometryDirectly
    - OGRGeomFieldDefn*::IsIgnored
    - OGRFeature*::GetFID
    - GPkgGeometryToOGR
    - OGRFieldDefn*::GetType
    - GetFieldDefnUnsafe
    - CPL_IGNORE_RET_VAL
    - sqlite3_errmsg
    - OGRFeature::OGRFeature
    - OGRGeoPackageLayer::ParseDateTimeField
    - sqlite3_column_blob
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRFeature*::SetField
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoPackageLayer::TranslateFeature(sqlite3_stmt *hStmt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:506,1
    - Dst: CPLStringList::Assign
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:507,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:507,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:510,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:512,1
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:514,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 515
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 515
    functionName: OGRGeoPackageLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::CPLStringList
    - CPLStringList::Assign
    - CSLDuplicate
    - CPLStringList::SetNameValue
    - OGRLayer::GetArrowStream
    - CPLStringList::FetchNameValue
    - CPLStringList::List
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeoPackageLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                       CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:524,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:524,1
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:526,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:530,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:537,1
    - Dst: ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:538,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:552,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:573,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:574,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:576,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:576,1
    - Dst: OGRGeoPackageLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:579,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:597,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:623,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:629,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:630,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:639,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:649,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:650,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:655,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:658,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:661,1
    - Dst: std::unique_ptr::roundCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:665,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:666,1
    - Dst: std::unique_ptr::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:671,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:674,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:674,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:684,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:685,1
    - Dst: OGRArrowArrayHelper::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:696,1
    - Dst: std::unique_ptr::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:705,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:709,1
    - Dst: OGRArrowArrayHelper::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:714,1
    - Dst: OGRArrowArrayHelper::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:720,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:734,1
    - Dst: OGRArrowArrayHelper::SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:742,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:750,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:755,1
    - Dst: OGRArrowArrayHelper::SetBoolOn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:759,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:762,1
    - Dst: OGRArrowArrayHelper::SetInt16
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:764,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:765,1
    - Dst: OGRArrowArrayHelper::SetInt32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:769,1
    - Dst: OGRArrowArrayHelper::SetInt64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:776,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:777,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:785,1
    - Dst: OGRArrowArrayHelper::SetFloat
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:787,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:788,1
    - Dst: OGRArrowArrayHelper::SetDouble
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:792,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:808,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:809,1
    - Dst: OGRArrowArrayHelper::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:822,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:830,1
    - Dst: OGRArrowArrayHelper::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:834,1
    - Dst: OGRGeoPackageLayer::ParseDateField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:842,1
    - Dst: OGRArrowArrayHelper::SetDate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:845,1
    - Dst: OGRGeoPackageLayer::ParseDateTimeField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:855,1
    - Dst: OGRArrowArrayHelper::SetDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:859,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:873,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:874,1
    - Dst: static_cast<int32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:880,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:881,1
    - Dst: OGRArrowArrayHelper::GetPtrForStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:894,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:902,1
    - Dst: OGRArrowArrayHelper::SetEmptyStringOrBinary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:906,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:907,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:908,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:908,1
    - Dst: OGRArrowArrayHelper::Shrink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:921,1
    - Dst: OGRArrowArrayHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:923,1
    - Dst: OGRArrowArrayHelper::ClearArray
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:928,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 214
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 930
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 930
    functionName: OGRGeoPackageLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 2
    functionsReached:
    - GPkgHeaderFromWKB
    - OGRGeoPackageLayer::ParseDateField
    - memcpy
    - OGRArrowArrayHelper::SetInt64
    - OGRArrowArrayHelper::SetBoolOn
    - std::unique_ptr::WkbSize
    - GetGeomFieldDefn
    - OGRArrowArrayHelper::SetDate
    - static_cast<const GByte *>
    - OGRArrowArrayHelper::SetNull
    - ResetStatement
    - OGRArrowArrayHelper::GetPtrForStringOrBinary
    - sqlite3_column_text
    - CPLError
    - std::unique_ptr::exportToWkb
    - OGRArrowArrayHelper::SetDouble
    - CPLGetConfigOption
    - OGRArrowArrayHelper::SetInt16
    - sqlite3_column_int64
    - OGRArrowArrayHelper::SetDateTime
    - sqlite3_reset
    - sqlite3_column_type
    - GetDB
    - OGRFieldDefn*::GetSubType
    - const_cast<void *>
    - std::unique_ptr::reset
    - OGRSQLiteImportSpatiaLiteGeometry
    - GetLayerDefn
    - CPLTestBool
    - static_cast<float>
    - reinterpret_cast<const char *>
    - OGRArrowArrayHelper::SetFloat
    - OGRArrowArrayHelper::Shrink
    - FilterGeometry
    - OGRArrowArrayHelper::ClearArray
    - GPkgGeometryToOGR
    - static_cast<int32_t *>
    - OGRFieldDefn*::GetType
    - GetFieldDefnUnsafe
    - sqlite3_errmsg
    - static_cast<int16_t>
    - std::unique_ptr::get
    - OGRGeoPackageLayer::ClearStatement
    - std::unique_ptr::roundCoordinates
    - OGRGeoPackageLayer::ParseDateTimeField
    - sqlite3_column_blob
    - OGRArrowArrayHelper::SetInt32
    - memset
    - OGRLayer::GetNextArrowArray
    - OGRArrowArrayHelper::SetEmptyStringOrBinary
    linkageType: ''
    returnType: int
    signature: "int OGRGeoPackageLayer::GetNextArrowArray(struct ArrowArrayStream
      *stream,\n                                          struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 942
    functionName: OGRGeoPackageLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OGRGeoPackageLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:950,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:952,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:954,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: OGRGeoPackageLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGeoPackageLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:973,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:974,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:974,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:975,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:976,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:980,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:996,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:999,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:999,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1017,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1017,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1021,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1021,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1025,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1025,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1030,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1031,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1031,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1032,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1042,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1045,1
    - Dst: OGRLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1045,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1048,1
    - Dst: DeleteGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1051,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1053,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1054,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1054,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1055,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1060,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1060,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1063,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1063,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1072,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1073,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1073,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1074,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1074,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1075,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1075,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1076,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1076,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1077,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1077,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1078,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1079,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1088,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1090,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1090,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1092,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1092,1
    - Dst: OGRSQLiteIsSpatialFunctionReturningGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1108,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1109,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1113,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1114,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1124,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1130,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1131,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1136,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1139,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1145,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1155,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1159,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1162,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1162,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1165,1
    - Dst: GPkgGeometryTypeToWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1169,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1172,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1173,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1174,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1177,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1182,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1193,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1196,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1197,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1198,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1200,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1205,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1209,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1224,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1224,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1225,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1226,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1230,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1231,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 126
    argCount: 2
    argNames:
    - pszLayerName
    - hStmt
    argTypes:
    - char*
    - sqlite3_stmt*
    constantsTouched: []
    func_position:
      end: 1233
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 1233
    functionName: OGRGeoPackageLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 0
    functionsReached:
    - GPkgHeaderFromWKB
    - OGRFieldDefn::SetDomainName
    - DeleteGeomFieldDefn
    - OGRFieldDefn*::GetPrecision
    - GetGeomFieldDefn
    - auto::get
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRFieldDefn*::GetDomainName
    - Reference
    - OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    - GetFieldIndex
    - OGRFieldDefn*::GetWidth
    - GetGeomFieldCount
    - OGRGeomFieldDefn::SetType
    - sqlite3_column_int64
    - CPLStrdup
    - SetGeomType
    - OGR_GT_HasZ
    - OGRFieldDefn*::GetSubType
    - AddFieldDefn
    - OGRLayer*::GetGeometryColumn
    - OGRLayer*::GetLayerDefn
    - GetLayerByName
    - resize
    - OGRSQLiteImportSpatiaLiteGeometry
    - OGRSQLiteIsSpatialFunctionReturningGeometry
    - GetName
    - OGRLayer*::GetFIDColumn
    - OGRGeometry*::getGeometryType
    - OGRFieldDefn::GetNameRef
    - GetSpatialRef
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - GPkgGeometryToOGR
    - OGRFieldDefn*::GetType
    - SetDescription
    - OGR_GT_HasM
    - OGR_GT_SetModifier
    - OGRGeomFieldDefn::SetName
    - AddGeomFieldDefn
    - GPkgGeometryTypeToWKB
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - CPL_INT64_FITS_ON_INT32
    - static_cast<OGRFieldType>
    - OGRFieldDefn::SetType
    - EQUAL
    - reinterpret_cast<const GByte *>
    - sqlite3_column_blob
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageLayer::BuildFeatureDefn(const char *pszLayerName,\n
      \                                         sqlite3_stmt *hStmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1241,1
    - Dst: OGRGeoPackageLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1248
      start: 1239
    functionDepth: 3
    functionLinenumber: 1239
    functionLinenumberEnd: 1248
    functionName: OGRGeoPackageLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageLayer::ResetReading
    - OGRLayer::SetIgnoredFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:83,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:88,1
    - Dst: std::make_unique<TilingSchemeDefinition>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:90,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:94,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:97,1
    - Dst: auto::haveAllLevelsSameTopLeft
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:102,1
    - Dst: auto::haveAllLevelsSameTileSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:107,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:109,1
    - Dst: auto::hasOnlyPowerOfTwoVaryingScales
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:116,1
    - Dst: auto::hasVariableMatrixWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:121,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:123,1
    - Dst: std::make_unique<TilingSchemeDefinition>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:128,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:131,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:132,1
    - Dst: auto::crs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:132,1
    - Dst: auto::crs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:136,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:144,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:147,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:151,1
    - Dst: auto::tileMatrixList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:153,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:167,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 172
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 172
    functionName: GetTilingScheme
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::haveAllLevelsSameTileSize
    - OGRSpatialReference::SetFromUserInput
    - auto::crs
    - OGRSpatialReference::OGRSpatialReference
    - auto::hasVariableMatrixWidth
    - atoi
    - auto::haveAllLevelsSameTopLeft
    - EQUAL
    - auto::hasOnlyPowerOfTwoVaryingScales
    - swap
    - std::make_unique<TilingSchemeDefinition>
    - CPLError
    - gdal::TileMatrixSet::parse
    - auto::tileMatrixList
    linkageType: ''
    returnType: std::unique_ptr<TilingSchemeDefinition>
    signature: std::unique_ptr<TilingSchemeDefinition> GetTilingScheme(const char
      *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:192,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:194,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:198,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: GDALGeoPackageDataset::SetApplicationAndUserVersionId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - CPLAssert
    - CPLString
    - SQLCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::SetApplicationAndUserVersionId()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteUnregisterSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:203,1
    - Dst: OGRSQLiteBaseDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: GDALGeoPackageDataset::CloseDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteUnregisterSQLFunctions
    - OGRSQLiteBaseDataSource::CloseDB
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::CloseDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:210,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:211,1
    - Dst: FinishSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:213,1
    - Dst: GDALGeoPackageDataset::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:215,1
    - Dst: GDALGeoPackageDataset::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: GDALGeoPackageDataset::ReOpenDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::OpenOrCreateDB
    - GDALGeoPackageDataset::CloseDB
    - CPLAssert
    - FinishSpatialite
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::ReOpenDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:224,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:225,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:226,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poSpatialRef
    - nEPSGCode
    argTypes:
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: GDALGPKGImportFromEPSG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorReset
    - CPLPopErrorHandler
    - OGRSpatialReference*::importFromEPSG
    - CPLPushErrorHandler
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GDALGPKGImportFromEPSG(OGRSpatialReference *poSpatialRef,\n
      \                                    int nEPSGCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:235,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:236,1
    - Dst: auto::second::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:240,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                               OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:241,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:247,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:248,1
    - Dst: OGRSpatialReference*::SetGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:253,1
    - Dst: OGRSpatialReference*::SetLocalCS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:259,1
    - Dst: OGRSpatialReference*::SetLinearUnits
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:260,1
    - Dst: OGRSpatialReference*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:264,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                               OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:265,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:270,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:277,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:277,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:279,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:283,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:286,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:287,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:289,1
    - Dst: "std::unique_ptr<OGRSpatialReference,\n                                       OGRSpatialReferenceReleaser>"
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:290,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:297,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:318,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:325,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:329,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:330,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:331,1
    - Dst: GDALGPKGImportFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:332,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:333,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:334,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:336,1
    - Dst: OGRSpatialReference*::StripTOWGS84IfKnownDatumAndAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:344,1
    - Dst: OGRSpatialReference*::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:345,1
    - Dst: OGRSpatialReference*::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:347,1
    - Dst: std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:348,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - iSrsId
    - bFallbackToEPSG
    - bEmitErrorIfNotFound
    argTypes:
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 350
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 350
    functionName: GDALGeoPackageDataset::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::SetGeogCS
    - atoi
    - OGRSpatialReference*::importFromWkt
    - CPLDebug
    - OGRSpatialReference*::Release
    - CPLError
    - auto::RowCount
    - end
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRSpatialReference*::SetLocalCS
    - find
    - SQLQuery
    - CPLString::c_str
    - OGRSpatialReference*::importFromEPSG
    - std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    - auto::second::Reference
    - CPLString::Printf
    - GDALGPKGImportFromEPSG
    - strstr
    - OGRSpatialReference*::SetCoordinateEpoch
    - "std::unique_ptr<OGRSpatialReference,\n                                       OGRSpatialReferenceReleaser>"
    - OGRSpatialReference::OGRSpatialReference
    - EQUAL
    - OGRSpatialReference*::StripTOWGS84IfKnownDatumAndAllowed
    - "std::unique_ptr<OGRSpatialReference,\n                               OGRSpatialReferenceReleaser>"
    - OGRSpatialReference*::Reference
    - OGRSpatialReference*::SetLinearUnits
    linkageType: ''
    returnType: std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    signature: "std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      GDALGeoPackageDataset::GetSpatialRef(int iSrsId, bool bFallbackToEPSG,\n                                     bool
      bEmitErrorIfNotFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oSRS
    argTypes:
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: GDALGeoPackageDataset::GetSrsName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GDALGeoPackageDataset::GetSrsName(const OGRSpatialReference &oSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:367,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:392,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:392,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:397,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:418,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:420,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:420,1
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:423,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:425,1
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:428,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:435,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:441,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:446,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:457,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:466,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:467,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:468,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:475,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:479,1
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:484,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:485,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:499,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:503,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:515,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:522,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 60
    argCount: 1
    argNames:
    - bForceEpoch
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 526
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 526
    functionName: GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::exportToWkt
    - CPLStrdup
    - atoi
    - SQLCommand
    - SoftRollbackTransaction
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - SQLQuery
    - EQUAL
    - sqlite3_mprintf
    - OGRSpatialReference::IsEmpty
    - SoftCommitTransaction
    - sqlite3_free
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2(\n
      \   bool bForceEpoch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:532,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:559,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:577,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:584,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:592,1
    - Dst: std::unique_ptr::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:594,1
    - Dst: std::unique_ptr::IsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:594,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:597,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:602,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:609,1
    - Dst: std::unique_ptr::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:612,1
    - Dst: std::unique_ptr::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:614,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:615,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:618,1
    - Dst: std::unique_ptr::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:621,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:621,1
    - Dst: std::unique_ptr::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:623,1
    - Dst: std::unique_ptr::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:627,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:627,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:640,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:645,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:647,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:651,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:661,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:662,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:665,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:670,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:671,1
    - Dst: GDALGeoPackageDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:676,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:687,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:708,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:711,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:711,1
    - Dst: std::unique_ptr::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:714,1
    - Dst: std::unique_ptr::GetAxesCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:714,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:717,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:718,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:719,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:721,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:726,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:727,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:728,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:730,1
    - Dst: std::unique_ptr::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:735,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:736,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:737,1
    - Dst: CPLCharUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:739,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:748,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:755,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:758,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:759,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:760,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:761,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:765,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:768,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:769,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:770,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:776,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:778,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:778,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:786,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:787,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:795,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:796,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:799,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:801,1
    - Dst: GDALGPKGImportFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:802,1
    - Dst: std::unique_ptr::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:805,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:806,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:807,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:810,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:825,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:831,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:833,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:846,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:850,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:852,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:854,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:858,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:868,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:872,1
    - Dst: GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:885,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:901,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:906,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:909,1
    - Dst: OGRSpatialReference*::GetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:909,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:925,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:930,1
    - Dst: GDALGeoPackageDataset::GetSrsName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:930,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:932,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:933,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:937,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:942,1
    - Dst: GDALGeoPackageDataset::GetSrsName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:942,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:943,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:944,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:951,1
    - Dst: GDALGeoPackageDataset::GetSrsName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:955,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:956,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:960,1
    - Dst: GDALGeoPackageDataset::GetSrsName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:964,1
    - Dst: CPLCharUniquePtr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:965,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:970,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:970,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:973,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 167
    argCount: 1
    argNames:
    - poSRSIn
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 976
      start: 528
    functionDepth: 8
    functionLinenumber: 528
    functionLinenumberEnd: 976
    functionName: GDALGeoPackageDataset::GetSrsId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - atoi
    - std::unique_ptr::importFromEPSG
    - GDALGeoPackageDataset::GetSrsName
    - CPLCharUniquePtr::get
    - CPLDebug
    - std::unique_ptr::GetAxesCount
    - OGRSpatialReference*::GetCoordinateEpoch
    - CPLError
    - std::unique_ptr::GetAuthorityName
    - std::string::c_str
    - CPLGetConfigOption
    - SoftStartTransaction
    - GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2
    - sqlite3_mprintf
    - strlen
    - std::unique_ptr::IsGeographic
    - std::unique_ptr::IsLocal
    - CPLTestBool
    - SQLCommand
    - SoftRollbackTransaction
    - GDALGPKGImportFromEPSG
    - CPLSPrintf
    - CPL_IGNORE_RET_VAL
    - OGRSpatialReference*::IsEmpty
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - GDALGeoPackageDataset::GetSpatialRef
    - XSTRINGIFY
    - std::unique_ptr::IsSame
    - EQUAL
    - SoftCommitTransaction
    - max
    - std::unique_ptr::AutoIdentifyEPSG
    - sqlite3_free
    - std::unique_ptr::exportToWkt
    - std::unique_ptr::SetCoordinateEpoch
    - CPLCharUniquePtr::reset
    - CPLGetValueType
    linkageType: ''
    returnType: int
    signature: int GDALGeoPackageDataset::GetSrsId(const OGRSpatialReference *poSRSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: GDALGeoPackageDataset::~GDALGeoPackageDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::Close
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::~GDALGeoPackageDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:997,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:999,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1002,1
    - Dst: GDALGeoPackageDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1005,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1014,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1019,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1026,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1029,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1030,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1034,1
    - Dst: GDALGeoPackageDataset::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1037,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1040,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 1044
    functionName: GDALGeoPackageDataset::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - c_str
    - empty
    - OGRSpatialReference*::Release
    - begin
    - GDALGeoPackageDataset::FlushCache
    - OGRAPISpyFileClose
    - CPLError
    - GDALGeoPackageDataset::CloseDB
    - CPLFree
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1052,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1054,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1072
    functionName: GDALGeoPackageDataset::ICanIWriteBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetUpdate
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::ICanIWriteBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1085,1
    - Dst: cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1098,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1098,1
    - Dst: auto::GetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1100,1
    - Dst: auto::AccessibleTryGetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1110,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1115,1
    - Dst: GDALRasterBlock*::Write
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1121,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1131
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1131
    functionName: GDALGeoPackageDataset::IRasterIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBlock*::GetDirty
    - GDALRasterBlock*::Write
    - GetRasterBand
    - auto::AccessibleTryGetLockedBlockRef
    - OGRNGWDataset::IRasterIO
    - cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
    - GDALRasterBlock*::DropLock
    - auto::GetBlockSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageDataset::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    int nBandCount, BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1139,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1140
    functionName: GetOGRTableLimit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - atoi
    linkageType: ''
    returnType: int
    signature: int GetOGRTableLimit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1149,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1160,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1163,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1166,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1175
    functionName: '&

      GDALGeoPackageDataset::GetNameTypeMapFromSQliteMaster()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - empty
    - CPLSPrintf
    - SQLQuery
    - CPLString
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: 'std::map<CPLString, CPLString> &

      GDALGeoPackageDataset::GetNameTypeMapFromSQliteMaster()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1184,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1185
    functionName: GDALGeoPackageDataset::RemoveTableFromSQLiteMasterCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - erase
    - CPLString
    linkageType: ''
    returnType: void
    signature: "void GDALGeoPackageDataset::RemoveTableFromSQLiteMasterCache(\n    const
      char *pszTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1198,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1225,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1228,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1231,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1243,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1243,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1250
    functionName: '&

      GDALGeoPackageDataset::GetUnknownExtensionsTableSpecific()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - CPLSPrintf
    - HasExtensionsTable
    - SQLQuery
    - std::move
    - CPLString
    - push_back
    linkageType: ''
    returnType: std::map<CPLString, std::vector<GPKGExtensionDesc>>
    signature: 'std::map<CPLString, std::vector<GPKGExtensionDesc>> &

      GDALGeoPackageDataset::GetUnknownExtensionsTableSpecific()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1270,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1273,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1276,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1303,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1304,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1309
    functionName: '&

      GDALGeoPackageDataset::GetContents()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - CPLSPrintf
    - SQLQuery
    - std::move
    - CPLString
    linkageType: ''
    returnType: std::map<CPLString, GPKGContentsDesc>
    signature: 'std::map<CPLString, GPKGContentsDesc> &

      GDALGeoPackageDataset::GetContents()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1319,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1319,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1320,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1322,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1327,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1334,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1343,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1350,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1351,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1353,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1363,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1364,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1367,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1368,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1373,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1373,1
    - Dst: GDALOpenInfoDeclareFileNotToOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1377,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1382,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1384,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1384,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1385,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1385,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1389,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1394,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1395,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1400,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1400,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1404,1
    - Dst: GDALGeoPackageDataset::InstallSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1410,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1413,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1415,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1417,1
    - Dst: SQLCheckLineIsSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1420,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1424,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1428,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1430,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1441,1
    - Dst: GDALGeoPackageDataset::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1446,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1446,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1450,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1451,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1452,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1453,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1456,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1460,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1465,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1474,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1474,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1475,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1477,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1487,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1487,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1488,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1490,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1498,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1504,1
    - Dst: GDALGeoPackageDataset::DetectSpatialRefSysColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1510,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1513,1
    - Dst: GDALGeoPackageDataset::CheckUnknownExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1522,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1529,1
    - Dst: GDALGeoPackageDataset::HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1534,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1569,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1572,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1588,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1589,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1617,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1620,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1620,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1626,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1628,1
    - Dst: auto::LimitRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1633,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1636,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1640,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1640,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1643,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1652,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1660,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1678,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1679,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1681,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1694,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1696,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1697,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1699,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1702,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1703,1
    - Dst: std::make_unique<OGRGeoPackageTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1704,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1705,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1708,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1710,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1712,1
    - Dst: auto::SetOpeningParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1715,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1718,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1718,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1726,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1741,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1743,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1744,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1749,1
    - Dst: SetPhysicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1750,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1750,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1756,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1759,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1759,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1765,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1765,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1767,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1769,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1771,1
    - Dst: GDALGeoPackageDataset::OpenRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1789,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1791,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1791,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1792,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1792,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1793,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1794,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1797,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1801,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1803,1
    - Dst: auto::LimitRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1808,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1812,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1818,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1819,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1820,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1821,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1822,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1824,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1839,1
    - Dst: GDALGeoPackageDataset::FixupWrongRTreeTrigger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1848,1
    - Dst: GDALGeoPackageDataset::FixupWrongMedataReferenceColumnNameUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1849,1
    - Dst: SetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1852,1
    - Dst: GetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1852,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 217
    argCount: 2
    argNames:
    - poOpenInfo
    - osFilenameInZip
    argTypes:
    - GDALOpenInfo*
    - std::string
    constantsTouched: []
    func_position:
      end: 1855
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1855
    functionName: GDALGeoPackageDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - GDALGeoPackageDataset::OpenRaster
    - atoi
    - GDALGeoPackageDataset::FixupWrongMedataReferenceColumnNameUpdate
    - std::set::insert
    - CPLDebug
    - SetPamFlags
    - CPLString
    - reserve
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - cpl::contains
    - CSLFetchNameValue
    - GDALGeoPackageDataset::HasGpkgextRelationsTable
    - GDALGeoPackageDataset::OpenOrCreateDB
    - auto::RowCount
    - auto::SetOpeningParameters
    - CPLString::empty
    - GDALGeoPackageDataset::FixupWrongRTreeTrigger
    - CPLStrdup
    - SQLQuery
    - CPLString::c_str
    - PragmaCheck
    - std::move
    - strlen
    - sqlite3_open_v2
    - GetUpdate
    - CPLAtof
    - STARTS_WITH_CI
    - c_str
    - reinterpret_cast<const char *>
    - SQLCheckLineIsSafe
    - CPLTestBool
    - VSIFSeekL
    - CPLSPrintf
    - VSIFOpenL
    - CPLAssert
    - VSIFReadL
    - SetPhysicalFilename
    - auto::LimitRowCount
    - SetDescription
    - sqlite3_exec
    - CPLReadLineL
    - GetPamFlags
    - empty
    - CPL_MSBWORD32
    - VSIFCloseL
    - std::make_unique<OGRGeoPackageTableLayer>
    - CSLDestroy
    - GDALGeoPackageDataset::InstallSQLFunctions
    - EQUAL
    - GDALGeoPackageDataset::DetectSpatialRefSysColumns
    - CSLDuplicate
    - sqlite3_free
    - GDALGeoPackageDataset::CheckUnknownExtensions
    - std::string
    - push_back
    - AddNameValue
    - memcpy
    - GDALOpenInfoDeclareFileNotToOpen
    linkageType: ''
    returnType: int
    signature: "int GDALGeoPackageDataset::Open(GDALOpenInfo *poOpenInfo,\n                                const
      std::string &osFilenameInZip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1872,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1861
    functionDepth: 0
    functionLinenumber: 1861
    functionLinenumberEnd: 1889
    functionName: GDALGeoPackageDataset::DetectSpatialRefSysColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::DetectSpatialRefSysColumns()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1897,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1903,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1905,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1907,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1940,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1941,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1941,1
    - Dst: CPLString::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1944,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1947,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1951
    functionName: GDALGeoPackageDataset::FixupWrongRTreeTrigger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - c_str
    - SQLCommand
    - CPLString::assign
    - SQLEscapeName
    - CPLDebug
    - SQLQuery
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::FixupWrongRTreeTrigger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1961,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1967,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1969,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1973,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1975,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1977,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 1979
    functionName: GDALGeoPackageDataset::FixupWrongMedataReferenceColumnNameUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - SQLCommand
    - CPLDebug
    - SQLQuery
    - CPLString
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::FixupWrongMedataReferenceColumnNameUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1989
    functionName: GDALGeoPackageDataset::ClearCachedRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::ClearCachedRelationships()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:1997,1
    - Dst: GDALGeoPackageDataset::HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2000,1
    - Dst: GDALGeoPackageDataset::LoadRelationshipsUsingRelatedTablesExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2002,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2006,1
    - Dst: second::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2007,1
    - Dst: LoadRelationshipsFromForeignKeys
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2016
    functionName: GDALGeoPackageDataset::LoadRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - clear
    - GDALGeoPackageDataset::LoadRelationshipsUsingRelatedTablesExtension
    - second::GetMappingTableName
    - std::vector::emplace_back
    - LoadRelationshipsFromForeignKeys
    - GDALGeoPackageDataset::HasGpkgextRelationsTable
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::LoadRelationships() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2024,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2026,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2030,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2032,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2037,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2045,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2061,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2069,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2077,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2089,1
    - Dst: const_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2092,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2095,1
    - Dst: GDALGeoPackageDataset::GenerateNameForRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2101,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2109,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2110,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2111,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2112,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2113,1
    - Dst: std::make_unique<GDALRelationship>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2123,1
    - Dst: auto::SetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2127,1
    - Dst: auto::SetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2128,1
    - Dst: auto::SetLeftMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2129,1
    - Dst: auto::SetRightMappingTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2130,1
    - Dst: auto::SetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2131,1
    - Dst: auto::SetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2132,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2134,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2137
    functionName: GDALGeoPackageDataset::LoadRelationshipsUsingRelatedTablesExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - std::make_unique<GDALRelationship>
    - auto::SetMappingTableName
    - auto::SetLeftTableFields
    - const_cast<GDALGeoPackageDataset *>
    - auto::SetRightTableFields
    - auto::SetLeftMappingTableFields
    - SQLQuery
    - EQUAL
    - auto::SetRelatedTableType
    - GDALGeoPackageDataset::GenerateNameForRelationship
    - sqlite3_free
    - auto::SetRightMappingTableFields
    - std::move
    - CPLError
    - clear
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::LoadRelationshipsUsingRelatedTablesExtension()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2150,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2151,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2152,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - pszBaseTableName
    - pszRelatedTableName
    - pszType
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2164
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2164
    functionName: GDALGeoPackageDataset::GenerateNameForRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: "std::string GDALGeoPackageDataset::GenerateNameForRelationship(\n
      \   const char *pszBaseTableName, const char *pszRelatedTableName,\n    const
      char *pszType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2174,1
    - Dst: GDALRelationship*::GetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2181,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2182,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2188,1
    - Dst: GDALRelationship*::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2196,1
    - Dst: cpl::down_cast<OGRGeoPackageLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2197,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2198,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2198,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2201,1
    - Dst: GDALRelationship*::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2206,1
    - Dst: cpl::down_cast<OGRGeoPackageLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2207,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2208,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2208,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2211,1
    - Dst: GDALRelationship*::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2217,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2218,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2223,1
    - Dst: OGRGeoPackageLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2232,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2233,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2234,1
    - Dst: OGRGeoPackageLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2234,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2234,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2236,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2243,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2244,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2249,1
    - Dst: OGRGeoPackageLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2258,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2259,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2260,1
    - Dst: OGRGeoPackageLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2260,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2261,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2263,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - poRelationship
    - failureReason
    argTypes:
    - GDALRelationship*
    - std::string
    constantsTouched: []
    func_position:
      end: 2271
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2271
    functionName: GDALGeoPackageDataset::ValidateRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - GDALRelationship*::GetLeftTableName
    - c_str
    - cpl::down_cast<OGRGeoPackageLayer *>
    - OGRGeoPackageLayer*::GetLayerDefn
    - GDALRelationship*::GetRightTableName
    - auto::empty
    - EQUAL
    - GDALRelationship*::GetRightTableFields
    - auto::size
    - OGRGeoPackageLayer*::GetFIDColumn
    - GetLayerByName
    - GDALRelationship*::GetRelatedTableType
    - std::string::c_str
    - GDALRelationship*::GetCardinality
    - GDALRelationship*::GetLeftTableFields
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::ValidateRelationship(\n    const GDALRelationship
      *poRelationship, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2325,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2327,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2329,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2331,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2335,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2335,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2336,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2336,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2338,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2339,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2340,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2354,1
    - Dst: GDALGeoPackageDataset*::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2364,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2368,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2371,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2378,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2380,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2382,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2386,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2391,1
    - Dst: GDALGPKGMBTilesGetTileFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2393,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2393,1
    - Dst: GDALGeoPackageDataset::InitRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2399,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 60
    argCount: 13
    argNames:
    - poParentDS
    - pszTableName
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - pszContentsMinX
    - pszContentsMinY
    - pszContentsMaxX
    - pszContentsMaxY
    - papszOpenOptionsIn
    - oResult
    - nIdxInResult
    argTypes:
    - GDALGeoPackageDataset*
    - char*
    - double
    - double
    - double
    - double
    - char*
    - char*
    - char*
    - char*
    - char**
    - SQLResult
    - int
    constantsTouched: []
    func_position:
      end: 2403
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2403
    functionName: GDALGeoPackageDataset::InitRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - c_str
    - empty
    - atoi
    - GDALGeoPackageDataset::InitRaster
    - CSLFetchNameValueDef
    - GDALGeoPackageDataset*::GetRasterCount
    - EQUAL
    - GDALGPKGMBTilesGetTileFormat
    - CPLError
    - GDALGeoPackageDataset::GetMetadata
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::InitRaster(\n    GDALGeoPackageDataset
      *poParentDS, const char *pszTableName, double dfMinX,\n    double dfMinY, double
      dfMaxX, double dfMaxY, const char *pszContentsMinX,\n    const char *pszContentsMinY,
      const char *pszContentsMaxX,\n    const char *pszContentsMaxY, char **papszOpenOptionsIn,\n
      \   const SQLResult &oResult, int nIdxInResult)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2412,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2424,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2428,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2440,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2447
    functionName: GDALGeoPackageDataset::ComputeTileAndPixelShifts
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - static_cast<int>
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::ComputeTileAndPixelShifts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2456,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2465,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2465,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2466,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2477
    functionName: GDALGeoPackageDataset::AllocCachedTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - static_cast<GByte *>
    - cpl::fits_on<int>
    - CPLError
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::AllocCachedTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2506,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2510,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2510,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2511,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2511,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2530,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2530,1
    - Dst: GDALGeoPackageDataset*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2531,1
    - Dst: std::make_unique<GDALGeoPackageRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2536,1
    - Dst: auto::SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2544,1
    - Dst: auto::AssignColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2549,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2549,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2551,1
    - Dst: auto::SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2553,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2554,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2554,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2557,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2557,1
    - Dst: GDALGeoPackageDataset::ComputeTileAndPixelShifts
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2560,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2562,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2567,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2568,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2569,1
    - Dst: GDALGeoPackageDataset::AllocCachedTiles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 16
    argNames:
    - poParentDS
    - pszTableName
    - nZoomLevel
    - nBandCount
    - dfTMSMinX
    - dfTMSMaxY
    - dfPixelXSize
    - dfPixelYSize
    - nTileWidth
    - nTileHeight
    - nTileMatrixWidth
    - nTileMatrixHeight
    - dfGDALMinX
    - dfGDALMinY
    - dfGDALMaxX
    - dfGDALMaxY
    argTypes:
    - GDALGeoPackageDataset*
    - char*
    - int
    - int
    - double
    - double
    - double
    - double
    - int
    - int
    - int
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2572
      start: 2483
    functionDepth: 2
    functionLinenumber: 2483
    functionLinenumberEnd: 2572
    functionName: GDALGeoPackageDataset::InitRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - SetBand
    - c_str
    - static_cast<int>
    - GDALGeoPackageDataset*::GetDescription
    - empty
    - GDALPamDataset::SetMetadataItem
    - get
    - CPLSPrintf
    - GDALGeoPackageDataset::ComputeTileAndPixelShifts
    - std::make_unique<GDALGeoPackageRasterBand>
    - max
    - auto::SetNoDataValueInternal
    - std::move
    - GDALGeoPackageDataset::AllocCachedTiles
    - CPLError
    - SetDescription
    - auto::AssignColorTable
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::InitRaster(\n    GDALGeoPackageDataset
      *poParentDS, const char *pszTableName, int nZoomLevel,\n    int nBandCount,
      double dfTMSMinX, double dfTMSMaxY, double dfPixelXSize,\n    double dfPixelYSize,
      int nTileWidth, int nTileHeight, int nTileMatrixWidth,\n    int nTileMatrixHeight,
      double dfGDALMinX, double dfGDALMinY,\n    double dfGDALMaxX, double dfGDALMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2583,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2583,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2585,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2587,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2591,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2595,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pszTF
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2600
      start: 2578
    functionDepth: 1
    functionLinenumber: 2578
    functionLinenumberEnd: 2600
    functionName: GDALGPKGMBTilesGetTileFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: GPKGTileFormat
    signature: GPKGTileFormat GDALGPKGMBTilesGetTileFormat(const char *pszTF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2616,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - eTF
    argTypes:
    - GPKGTileFormat
    constantsTouched: []
    func_position:
      end: 2619
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2619
    functionName: GDALMBTilesGetTileFormatName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<int>
    linkageType: ''
    returnType: char
    signature: char *GDALMBTilesGetTileFormatName(GPKGTileFormat eTF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2637,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2650,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2651,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2652,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2663,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2665,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2670,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2678,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2682,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2685,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2686,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2689,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2699,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2699,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2702,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2713,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2726,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2728,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2730,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2732,1
    - Dst: SetGlobalOffsetScale
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2735,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2738,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2743,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2747,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2748,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2749,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2750,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2751,1
    - Dst: GDALGeoPackageDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2768,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2770,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2776,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2795,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2796,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2796,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2799,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2802,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2802,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2803,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2807,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2809,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2811,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2816,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2817,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2823,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2823,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2824,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2826,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2832,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2834,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2834,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2840,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2844,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2848,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2856,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2857,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2859,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2862,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2862,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2863,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2864,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2865,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2867,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2870,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2879,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2880,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2880,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2882,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2883,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2883,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2884,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2886,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2886,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2887,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2889,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2889,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2890,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2891,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2892,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2893,1
    - Dst: GDALGeoPackageDataset::InitRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2896,1
    - Dst: reinterpret_cast<GDALGeoPackageRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2904,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2904,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2905,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2911,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2913,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2919,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2926,1
    - Dst: auto::SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2928,1
    - Dst: auto::SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2933,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2934,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2937,1
    - Dst: auto::SetUnitTypeInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2939,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2941,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2943,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2945,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2949,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2954,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2959,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2961,1
    - Dst: GDALGeoPackageDataset::CheckUnknownExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2966,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2973,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2975,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2981,1
    - Dst: GDALGPKGMBTilesGetTileFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2986,1
    - Dst: GDALGeoPackageDataset::RegisterWebPExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2989,1
    - Dst: GDALGeoPackageDataset::ParseCompressionOptions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2996,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:2998,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3002,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3004,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3007,1
    - Dst: std::make_unique<GDALGeoPackageDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3009,1
    - Dst: auto::ShareLockWithParentDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3010,1
    - Dst: auto::InitRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3011,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3020,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3025,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3025,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 180
    argCount: 14
    argNames:
    - pszTableName
    - pszIdentifier
    - pszDescription
    - nSRSId
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - pszContentsMinX
    - pszContentsMinY
    - pszContentsMaxX
    - pszContentsMaxY
    - bIsTiles
    - papszOpenOptionsIn
    argTypes:
    - char*
    - char*
    - char*
    - int
    - double
    - double
    - double
    - double
    - char*
    - char*
    - char*
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 3034
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 3034
    functionName: GDALGeoPackageDataset::OpenRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - auto::GetValue
    - GDALGeoPackageDataset::InitRaster
    - GetRasterBand
    - auto::get
    - sqlite3_finalize
    - CPLError
    - CPLGetConfigOption
    - CPLString::empty
    - auto::RowCount
    - simple_max
    - static_cast<GUInt16>
    - auto::GetRasterBand
    - SQLQuery
    - sqlite3_mprintf
    - CPLString::c_str
    - CPLPopErrorHandler
    - std::move
    - GDALGeoPackageDataset::RegisterWebPExtension
    - SetDataType
    - GetUpdate
    - CPLAtof
    - CPLTestBool
    - c_str
    - static_cast<int>
    - static_cast<float>
    - CPLSPrintf
    - GDALGeoPackageDataset::ParseCompressionOptions
    - auto::SetNoDataValueInternal
    - auto::InitRaster
    - reinterpret_cast<GDALGeoPackageRasterBand *>
    - GDALGeoPackageDataset::GetSpatialRef
    - CSLFetchNameValueDef
    - std::make_unique<GDALGeoPackageDataset>
    - EQUAL
    - sqlite3_step
    - sqlite3_free
    - CPLPushErrorHandler
    - GDALGeoPackageDataset::CheckUnknownExtensions
    - auto::SetUnitTypeInternal
    - GDALGPKGMBTilesGetTileFormat
    - auto::ShareLockWithParentDataset
    - push_back
    - GDALPamDataset::SetMetadataItem
    - SetGlobalOffsetScale
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::OpenRaster(\n    const char *pszTableName,
      const char *pszIdentifier,\n    const char *pszDescription, int nSRSId, double
      dfMinX, double dfMinY,\n    double dfMaxX, double dfMaxY, const char *pszContentsMinX,\n
      \   const char *pszContentsMinY, const char *pszContentsMaxX,\n    const char
      *pszContentsMaxY, bool bIsTiles, char **papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3040
    functionDepth: 1
    functionLinenumber: 3040
    functionLinenumberEnd: 3043
    functionName: GDALGeoPackageDataset::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALGeoPackageDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3059,1
    - Dst: GetTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3065,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3068,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3070,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3075,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3084,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3085,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3089,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3091,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3092,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3093,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3099
      start: 3049
    functionDepth: 3
    functionLinenumber: 3049
    functionLinenumberEnd: 3099
    functionName: GDALGeoPackageDataset::SetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - SQLCommand
    - Clear
    - sqlite3_mprintf
    - sqlite3_free
    - CPLError
    - GetTilingScheme
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::SetSpatialRef(const OGRSpatialReference
      *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3107,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 3112
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3112
    functionName: GDALGeoPackageDataset::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3122,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3134,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3141,1
    - Dst: GetTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3148,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3160,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3162,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3171,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3175,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3181,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3181,1
    - Dst: GDALGeoPackageDataset::FinalizeRasterRegistration
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3184,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 3185
      start: 3118
    functionDepth: 3
    functionLinenumber: 3118
    functionLinenumberEnd: 3185
    functionName: GDALGeoPackageDataset::SetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GDALGeoPackageDataset::FinalizeRasterRegistration
    - fabs
    - CPLError
    - memcpy
    - data
    - GetTilingScheme
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::SetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3199,1
    - Dst: GetTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3217,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3220,1
    - Dst: GDALGeoPackageDataset::ComputeTileAndPixelShifts
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3231,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3233,1
    - Dst: GDALGeoPackageDataset::AllocCachedTiles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3238,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3250,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3271,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3272,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3275,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3285,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3288,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3290,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3291,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3294,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3298,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3306,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3311,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3321,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3326,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3329,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3330,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3333,1
    - Dst: std::make_unique<GDALGeoPackageDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3339,1
    - Dst: auto::ShareLockWithParentDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3340,1
    - Dst: auto::InitRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3341,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3347,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3351,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3353,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3354,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3355,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3358,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3363,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3365,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3191
    functionDepth: 3
    functionLinenumber: 3191
    functionLinenumberEnd: 3369
    functionName: GDALGeoPackageDataset::FinalizeRasterRegistration
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    - GDALGeoPackageDataset::ComputeTileAndPixelShifts
    - GDALGeoPackageDataset::AllocCachedTiles
    - CPLError
    - SoftStartTransaction
    - sqlite3_mprintf
    - std::move
    - resize
    - c_str
    - SQLCommand
    - SoftRollbackTransaction
    - CPLAssert
    - auto::InitRaster
    - empty
    - EQUAL
    - SoftCommitTransaction
    - auto::ShareLockWithParentDataset
    - sqlite3_free
    - fabs
    - std::make_unique<GDALGeoPackageDataset>
    - GetTilingScheme
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::FinalizeRasterRegistration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3382,1
    - Dst: GetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3382,1
    - Dst: GDALGeoPackageDataset::RemoveOGREmptyTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3388,1
    - Dst: GDALGeoPackageDataset::IFlushCacheWithErrCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3391,1
    - Dst: GDALGeoPackageDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3393,1
    - Dst: SetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3400,1
    - Dst: GetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3404
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3404
    functionName: GDALGeoPackageDataset::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALGeoPackageDataset::IFlushCacheWithErrCode
    - GDALGeoPackageDataset::RemoveOGREmptyTable
    - SetPamFlags
    - GetPamFlags
    - GDALGeoPackageDataset::FlushMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3416,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3417,1
    - Dst: CPLParseNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3425,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3426,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3432,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3434,1
    - Dst: GDALGeoPackageDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3436,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3436,1
    - Dst: GDALGeoPackageDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3437,1
    - Dst: GDALPamDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3439,1
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3444,1
    - Dst: RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3449,1
    - Dst: CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3450,1
    - Dst: cpl::down_cast<GDALGeoPackageRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3459,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3459,1
    - Dst: auto::HaveStatsMetadataBeenSetInThisSession
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3460,1
    - Dst: auto::InvalidateStatistics
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3462,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3464,1
    - Dst: GDALGeoPackageDataset::UpdateGpkgContentsLastChange
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3468,1
    - Dst: FlushTiles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3473,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3477
      start: 3406
    functionDepth: 1
    functionLinenumber: 3406
    functionLinenumberEnd: 3477
    functionName: GDALGeoPackageDataset::IFlushCacheWithErrCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    - auto::InvalidateStatistics
    - STARTS_WITH
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - RunDeferredCreationIfNecessary
    - GDALGeoPackageDataset::SetMetadata
    - auto::HaveStatsMetadataBeenSetInThisSession
    - GDALGeoPackageDataset::GetMetadata
    - GDALPamDataset::FlushCache
    - CPLStringList::AddString
    - VSIUnlink
    - CPLFree
    - GDALDataset::FlushCache
    - CPLParseNameValue
    - cpl::down_cast<GDALGeoPackageRasterBand *>
    - GDALGeoPackageDataset::UpdateGpkgContentsLastChange
    - FlushTiles
    - EQUAL
    - CreateSpatialIndexIfNecessary
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageDataset::IFlushCacheWithErrCode(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3490
      start: 3483
    functionDepth: 1
    functionLinenumber: 3483
    functionLinenumberEnd: 3490
    functionName: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - SQLEscapeLiteral
    linkageType: ''
    returnType: std::string
    signature: std::string GDALGeoPackageDataset::GetCurrentDateEscapedSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3504,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3507
      start: 3496
    functionDepth: 1
    functionLinenumber: 3496
    functionLinenumberEnd: 3507
    functionName: GDALGeoPackageDataset::UpdateGpkgContentsLastChange
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_free
    - SQLCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::UpdateGpkgContentsLastChange(const char
      *pszTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3518,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3520,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3527,1
    - Dst: GDALGeoPackageDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3535,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3537,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3548,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3549,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3552,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3560,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3561,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3564,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3568,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3575,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3583,1
    - Dst: GDALGeoPackageDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3593,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3601,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3601,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3603,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3622,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3622,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3632,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3634,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3636,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3638,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3645,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3645,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3649,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3649,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3653,1
    - Dst: GDALGeoPackageDataset::RegisterZoomOtherExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3657,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3661,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3663,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3671,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3675,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3677,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3678,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3681,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3686,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3688,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3690,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3691,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3694,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3709,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3712,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3717,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3720,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3721,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3724,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3728,1
    - Dst: std::make_unique<GDALGeoPackageDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3735,1
    - Dst: auto::ShareLockWithParentDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3736,1
    - Dst: auto::InitRaster
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3737,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3743,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3743,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3744,1
    - Dst: static_cast<GDALRasterBand ***>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3749,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3750,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3754,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3755,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3768,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3776,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3784,1
    - Dst: GDALRegenerateOverviewsMultiBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3789,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3795,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3797,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 128
    argCount: 7
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nBandsIn
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3800
      start: 3513
    functionDepth: 2
    functionLinenumber: 3513
    functionLinenumberEnd: 3800
    functionName: GDALGeoPackageDataset::IBuildOverviews
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - CPLError
    - CPLGetConfigOption
    - CPLString::empty
    - SoftStartTransaction
    - auto::GetRasterBand
    - insert
    - static_cast<GDALRasterBand **>
    - CPLString::c_str
    - sqlite3_mprintf
    - GDALGeoPackageDataset::FlushCache
    - std::move
    - CPLTestBool
    - static_cast<int>
    - GetAccess
    - c_str
    - SQLCommand
    - SoftRollbackTransaction
    - get
    - CPLSPrintf
    - GDALGeoPackageDataset::RegisterZoomOtherExtension
    - CPLAssert
    - begin
    - auto::InitRaster
    - CPLCalloc
    - CPLFree
    - size
    - empty
    - SoftCommitTransaction
    - auto::ShareLockWithParentDataset
    - sqlite3_free
    - static_cast<GDALRasterBand ***>
    - std::make_unique<GDALGeoPackageDataset>
    - GDALRegenerateOverviewsMultiBand
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageDataset::IBuildOverviews(\n    const char *pszResampling,
      int nOverviews, const int *panOverviewList,\n    int nBandsIn, const int * /*panBandList*/,
      GDALProgressFunc pfnProgress,\n    void *pProgressData, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryLoadXML
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3808,1
    - Dst: GDALPamDataset::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3810
    functionName: GDALGeoPackageDataset::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::GetFileList
    - TryLoadXML
    linkageType: ''
    returnType: char
    signature: char **GDALGeoPackageDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3818,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3819,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3820,1
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3821,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3816
    functionDepth: 2
    functionLinenumber: 3816
    functionLinenumberEnd: 3823
    functionName: GDALGeoPackageDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - empty
    - BuildMetadataDomainList
    - GDALGeoPackageDataset::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **GDALGeoPackageDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3831,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3832,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszDomain
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3841
      start: 3829
    functionDepth: 1
    functionLinenumber: 3829
    functionLinenumberEnd: 3841
    functionName: GDALGeoPackageDataset::CheckMetadataDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    - empty
    linkageType: ''
    returnType: char
    signature: char *GDALGeoPackageDataset::CheckMetadataDomain(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3847
    functionDepth: 1
    functionLinenumber: 3847
    functionLinenumberEnd: 3860
    functionName: GDALGeoPackageDataset::HasMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasMetadataTables() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3874
      start: 3866
    functionDepth: 0
    functionLinenumber: 3866
    functionLinenumberEnd: 3874
    functionName: GDALGeoPackageDataset::HasDataColumnsTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasDataColumnsTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3880
    functionDepth: 0
    functionLinenumber: 3880
    functionLinenumberEnd: 3888
    functionName: GDALGeoPackageDataset::HasDataColumnConstraintsTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasDataColumnConstraintsTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3912
    functionName: GDALGeoPackageDataset::HasDataColumnConstraintsTableGPKG_1_0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasDataColumnConstraintsTableGPKG_1_0()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3921,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3927,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3928,1
    - Dst: GDALGeoPackageDataset::HasDataColumnConstraintsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3943,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3953,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3965,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3965,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3965,1
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3970,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3974,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3974,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3980,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3981,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3991,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3991,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3997,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:3998,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3918
    functionDepth: 1
    functionLinenumber: 3918
    functionLinenumberEnd: 4010
    functionName: GDALGeoPackageDataset::CreateColumnsTableAndColumnConstraintsTablesIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::HasDataColumnConstraintsTable
    - SQLGetInteger
    - GDALGeoPackageDataset::HasDataColumnsTable
    - GetDB
    - SQLCommand
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - CPLSPrintf
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::\n    CreateColumnsTableAndColumnConstraintsTablesIfNecessary()"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4024
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4024
    functionName: GDALGeoPackageDataset::HasGpkgextRelationsTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasGpkgextRelationsTable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4032,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4038,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4030
    functionDepth: 1
    functionLinenumber: 4030
    functionLinenumberEnd: 4051
    functionName: GDALGeoPackageDataset::CreateRelationsTableIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - SQLCommand
    - GDALGeoPackageDataset::HasGpkgextRelationsTable
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::CreateRelationsTableIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4080
    functionName: GDALGeoPackageDataset::HasQGISLayerStyles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasQGISLayerStyles() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CheckMetadataDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4089,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4090,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4091,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4094,1
    - Dst: TryLoadXML
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4098,1
    - Dst: GDALGeoPackageDataset::HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4100,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4101,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4104,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4106,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4115,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4119,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4129,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4130,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4133,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4139,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4146,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4147,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4149,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4152,1
    - Dst: GDALMultiDomainMetadata::XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4153,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4155,1
    - Dst: GDALGeoPackageDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4157,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4157,1
    - Dst: CSLMerge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4162,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4162,1
    - Dst: GDALMultiDomainMetadata::GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4167,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4170,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4174,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4181,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4183,1
    - Dst: std::make_unique<GDALColorTable>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4187,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4192,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4193,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4194,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4195,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4196,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4197,1
    - Dst: static_cast<short>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4198,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4199,1
    - Dst: SetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4200,1
    - Dst: GDALGeoPackageDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4211,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4224,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4225,1
    - Dst: GDALGeoPackageDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4227,1
    - Dst: GDALMultiDomainMetadata::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4228,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4233,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4238,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4239,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4245,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4260,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4261,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4264,1
    - Dst: GDALGeoPackageDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4266,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4267,1
    - Dst: GDALGeoPackageDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4281,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4282,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4288,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4086
    functionDepth: 2
    functionLinenumber: 4086
    functionLinenumberEnd: 4289
    functionName: GDALGeoPackageDataset::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 3
    functionsReached:
    - atoi
    - TryLoadXML
    - GDALPamDataset::GetMetadata
    - CSLMerge
    - GDALMultiDomainMetadata::GetDomainList
    - List
    - STARTS_WITH
    - auto::RowCount
    - GDALGeoPackageDataset::SetMetadata
    - SQLQuery
    - GDALGeoPackageDataset::HasMetadataTables
    - sqlite3_mprintf
    - static_cast<short>
    - GDALMultiDomainMetadata::XMLInit
    - CSLTokenizeString2
    - CPLStringList::size
    - GDALMultiDomainMetadata::GDALMultiDomainMetadata
    - c_str
    - std::make_unique<GDALColorTable>
    - SetColorEntry
    - CPLDestroyXMLNode
    - GDALGeoPackageDataset::SetMetadataItem
    - CPLSPrintf
    - CPLParseXMLString
    - GDALMultiDomainMetadata::GetMetadata
    - GDALGeoPackageDataset::CheckMetadataDomain
    - empty
    - CSLDestroy
    - EQUAL
    - sqlite3_free
    - GDALPamDataset::SetMetadata
    linkageType: ''
    returnType: char
    signature: char **GDALGeoPackageDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4300,1
    - Dst: GDALGeoPackageDataset::CreateMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4302,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4304,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4313,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4315,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4316,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4324,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4335,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4347,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4353,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4355,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4358,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4360,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4367,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4374,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4379,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4380,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4382,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4386,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4389,1
    - Dst: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4393,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4394,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4398,1
    - Dst: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4402,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4402,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4407,1
    - Dst: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4409,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4411,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4412,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - psXMLNode
    - pszTableName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 4414
      start: 4295
    functionDepth: 2
    functionLinenumber: 4295
    functionLinenumberEnd: 4414
    functionName: GDALGeoPackageDataset::WriteMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - SQLCommand
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - GDALGeoPackageDataset::CreateMetadataTables
    - CPLSerializeXMLTree
    - sqlite3_last_insert_rowid
    - CPLSPrintf
    - GDALGeoPackageDataset::HasMetadataTables
    - sqlite3_mprintf
    - GDALGeoPackageDataset::GetCurrentDateEscapedSQL
    - sqlite3_free
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void GDALGeoPackageDataset::WriteMetadata(\n    CPLXMLNode *psXMLNode,
      /* will be destroyed by the method */\n    const char *pszTableName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4613
      start: 4420
    functionDepth: 1
    functionLinenumber: 4420
    functionLinenumberEnd: 4613
    functionName: GDALGeoPackageDataset::CreateMetadataTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::CreateMetadataTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4634,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4648,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4649,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4659,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4660,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4666,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4674,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4675,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4677,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4685,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4686,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4695,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4697,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4699,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4701,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4705,1
    - Dst: CSLInsertString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4709,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4714,1
    - Dst: GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4715,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4717,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4720,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4721,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4722,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4724,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4724,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4731,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4732,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4736,1
    - Dst: auto::GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4745,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4747,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4751,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4751,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4780,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4784,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4785,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4792,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4793,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4797,1
    - Dst: cpl::down_cast<GDALGeoPackageRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4800,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4800,1
    - Dst: auto::AddImplicitStatistics
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4801,1
    - Dst: auto::AddImplicitStatistics
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4803,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4806,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4806,1
    - Dst: GDALMultiDomainMetadata::Serialize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4809,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4812,1
    - Dst: GDALGeoPackageDataset::WriteMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4815,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4815,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4817,1
    - Dst: CSLInsertString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4826,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4829,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4830,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4831,1
    - Dst: GDALMultiDomainMetadata::Serialize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4833,1
    - Dst: GDALGeoPackageDataset::WriteMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4835,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4848,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4849,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4857,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4858,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4865,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4867,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4869,1
    - Dst: CSLInsertString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4871,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4875,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4878,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4881,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4882,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4882,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4886,1
    - Dst: GDALMultiDomainMetadata::Serialize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4887,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4890,1
    - Dst: GDALGeoPackageDataset::WriteMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4893,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4893,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4895
      start: 4619
    functionDepth: 3
    functionLinenumber: 4619
    functionLinenumberEnd: 4895
    functionName: GDALGeoPackageDataset::FlushMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    - GetDomainList
    - GDALGeoPackageDataset::WriteMetadata
    - GetRasterCount
    - std::string::c_str
    - GDALGeoPackageDataset::GetMetadata
    - GDALMultiDomainMetadata::GDALMultiDomainMetadata
    - GetName
    - STARTS_WITH_CI
    - c_str
    - SQLCommand
    - CPLSPrintf
    - auto::AddImplicitStatistics
    - GDALMultiDomainMetadata::SetMetadataItem
    - auto::GetColorEntry
    - empty
    - GDALMultiDomainMetadata::Serialize
    - CSLInsertString
    - CSLDestroy
    - GDALMultiDomainMetadata::SetMetadata
    - cpl::down_cast<GDALGeoPackageRasterBand *>
    - EQUAL
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::FlushMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CheckMetadataDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4904,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4905,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4906
      start: 4901
    functionDepth: 2
    functionLinenumber: 4901
    functionLinenumberEnd: 4906
    functionName: GDALGeoPackageDataset::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValue
    - GDALGeoPackageDataset::GetMetadata
    - GDALGeoPackageDataset::CheckMetadataDomain
    linkageType: ''
    returnType: char
    signature: "char *GDALGeoPackageDataset::GetMetadataItem(const char *pszName,\n
      \                                                  const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CheckMetadataDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4915,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4917,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 4919
      start: 4912
    functionDepth: 2
    functionLinenumber: 4912
    functionLinenumberEnd: 4919
    functionName: GDALGeoPackageDataset::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - GDALPamDataset::SetMetadata
    - GDALGeoPackageDataset::GetMetadata
    - GDALGeoPackageDataset::CheckMetadataDomain
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageDataset::SetMetadata(char **papszMetadata,\n
      \                                         const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CheckMetadataDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4929,1
    - Dst: GDALGeoPackageDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4931,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4933
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4933
    functionName: GDALGeoPackageDataset::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALPamDataset::SetMetadataItem
    - GDALGeoPackageDataset::GetMetadata
    - GDALGeoPackageDataset::CheckMetadataDomain
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageDataset::SetMetadataItem(const char *pszName,\n
      \                                             const char *pszValue,\n                                              const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4955,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4966,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4974,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4995,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:4999,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5000,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5002,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5015,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5015,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5015,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5017,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5023,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5024,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5024,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5025,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5029,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5034,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5034,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5039,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5039,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5041,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5041,1
    - Dst: GDALGeoPackageDataset::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5043,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5050,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5052,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5057,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5061,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5065,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5066,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5068,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5069,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5070,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5071,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5075,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5079,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5084,1
    - Dst: GDALGeoPackageDataset::DetectSpatialRefSysColumns
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5089,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5093,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5095,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5105,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5110,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5115,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5122,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5137,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5137,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5241,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5270,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5276,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5276,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5278,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5393,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5393,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5401,1
    - Dst: GDALGeoPackageDataset::CreateMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5403,1
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5408,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5410,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5424,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5429,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5447,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5448,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5449,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5450,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5452,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5457,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5458,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5461,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5463,1
    - Dst: SetDataType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5464,1
    - Dst: SetGlobalOffsetScale
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5466,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5481,1
    - Dst: GDALGeoPackageDataset::CreateRasterTriggersSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5486,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5489,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5499,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5499,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5501,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5512,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5514,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5516,1
    - Dst: GDALGPKGMBTilesGetTileFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5526,1
    - Dst: GDALGeoPackageDataset::CreateTileGriddedTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5536,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5553,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5553,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5555,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5563,1
    - Dst: std::make_unique<GDALGeoPackageRasterBand>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5563,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5567,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5569,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5570,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5571,1
    - Dst: GDALGeoPackageDataset::ParseCompressionOptions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5573,1
    - Dst: GDALGeoPackageDataset::RegisterWebPExtension
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5577,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5582,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5583,1
    - Dst: GetTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5585,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5592,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5595,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5615,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5624,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5625,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5628,1
    - Dst: SetProjection
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5629,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5630,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5634,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5636,1
    - Dst: GDALGeoPackageDataset::RemoveOGREmptyTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5647,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5650,1
    - Dst: GDALGeoPackageDataset::SetApplicationAndUserVersionId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5655,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5659,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5661,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 265
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 5665
      start: 4939
    functionDepth: 7
    functionLinenumber: 4939
    functionLinenumberEnd: 5665
    functionName: GDALGeoPackageDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - SQLGetInteger
    - CPLGetFilename
    - atoi
    - SetProjection
    - CPLDebug
    - CPLError
    - CPLGetConfigOption
    - std::string::c_str
    - CPLString::empty
    - CSLFetchNameValue
    - GDALGeoPackageDataset::SetApplicationAndUserVersionId
    - GDALGeoPackageDataset::OpenOrCreateDB
    - SoftStartTransaction
    - CPLStrdup
    - GDALGeoPackageDataset::CreateMetadataTables
    - GetTilingScheme
    - strlen
    - GDALGeoPackageDataset::RegisterWebPExtension
    - SetDataType
    - CPLGenerateTempFilenameSafe
    - OGRSpatialReference::importFromEPSG
    - GDALGeoPackageDataset::CreateRasterTriggersSQL
    - CPLTestBool
    - c_str
    - SQLCommand
    - CPLFetchBool
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - VSIFOpenL
    - std::string::resize
    - GDALGeoPackageDataset::ParseCompressionOptions
    - VSIFReadL
    - GDALGeoPackageDataset::CreateTileGriddedTable
    - CPLFree
    - SetBand
    - OGRSpatialReference::OGRSpatialReference
    - CPL_MSBWORD32
    - VSIStatL
    - VSIFCloseL
    - empty
    - std::string::size
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - EQUAL
    - GDALGeoPackageDataset::DetectSpatialRefSysColumns
    - std::make_unique<GDALGeoPackageRasterBand>
    - GDALGeoPackageDataset::RemoveOGREmptyTable
    - SoftCommitTransaction
    - sqlite3_free
    - GDALGPKGMBTilesGetTileFormat
    - std::string
    - memcpy
    - GDALPamDataset::SetMetadataItem
    - SetGlobalOffsetScale
    linkageType: ''
    returnType: int
    signature: "int GDALGeoPackageDataset::Create(const char *pszFilename, int nXSize,\n
      \                                 int nYSize, int nBandsIn, GDALDataType eDT,\n
      \                                 char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5674,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5676,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5682,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5692
      start: 5671
    functionDepth: 0
    functionLinenumber: 5671
    functionLinenumberEnd: 5692
    functionName: GDALGeoPackageDataset::RemoveOGREmptyTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::RemoveOGREmptyTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5701,1
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5706,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5770,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5776,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5776,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5777,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5780,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5781,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5783,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5785,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5787,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5792,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5794,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5795,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5795,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5795,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5796,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5798,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5801,1
    - Dst: GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5807,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5827,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5835,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5838,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 5839
      start: 5698
    functionDepth: 8
    functionLinenumber: 5698
    functionLinenumberEnd: 5839
    functionName: GDALGeoPackageDataset::CreateTileGriddedTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - c_str
    - GDALGeoPackageDataset::ConvertGpkgSpatialRefSysToExtensionWkt2
    - SQLCommand
    - CSLFetchNameValueDef
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
    - SQLQuery
    - sqlite3_mprintf
    - CPLString::c_str
    - sqlite3_free
    - CPLString::empty
    - CSLFetchNameValue
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::CreateTileGriddedTable(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5845
    functionDepth: 1
    functionLinenumber: 5845
    functionLinenumberEnd: 5852
    functionName: GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - SQLQuery
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<VRTDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5860,1
    - Dst: auto::GetSingleSimpleSource
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poSrcDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 5868
      start: 5858
    functionDepth: 0
    functionLinenumber: 5858
    functionLinenumberEnd: 5868
    functionName: GetUnderlyingDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetSingleSimpleSource
    - dynamic_cast<VRTDataset *>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetUnderlyingDataset(GDALDataset *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5902,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5902,1
    - Dst: GDALDriver*::DefaultCreateCopy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5905,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5916,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5917,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5918,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5920,1
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5921,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5922,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5922,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5927,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5934,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5935,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5937,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5940,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5942,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5944,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5951,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5951,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5954,1
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5955,1
    - Dst: GDALDriver*::DefaultCreateCopy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5956,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5961,1
    - Dst: GDALGeoPackageDataset*::SetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5969,1
    - Dst: GDALGeoPackageDataset*::GetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5969,1
    - Dst: GetTilingScheme
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5973,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5980,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5981,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5986,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:5998,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6002,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6003,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6023,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6024,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6025,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6026,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6027,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6028,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6029,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6029,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6030,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6031,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6032,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6034,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6034,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6036,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6036,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6037,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6037,1
    - Dst: GDALTranslate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6037,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6038,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6039,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6043,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6044,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6044,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6053,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6058,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6059,1
    - Dst: static_cast<GDALTransformerInfo *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6064,1
    - Dst: GDALSuggestedWarpOutput2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6069,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6073,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6074,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6075,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6079,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6081,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6118,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6131,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6134,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6135,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6153,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6155,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6156,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6164,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6168,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6187,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6188,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6192,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6198,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6201,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6202,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6202,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6203,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6204,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6205,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6205,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6219,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6227,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6230,1
    - Dst: std::make_unique<GDALGeoPackageDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6238,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6239,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6242,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6243,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6255,1
    - Dst: auto::SetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6258,1
    - Dst: auto::SetProjection
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6259,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6260,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6263,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6265,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6266,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6270,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6270,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6271,1
    - Dst: auto::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6277,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6277,1
    - Dst: GDALCreateApproxTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6282,1
    - Dst: GDALApproxTransformerOwnsSubtransformer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6284,1
    - Dst: GDALCreateWarpOptions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6289,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6291,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6293,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6302,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6306,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6306,1
    - Dst: static_cast<double *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6310,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6310,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6317,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6335,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6335,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6337,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6337,1
    - Dst: GDALWarpOperation::GDALWarpOperation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6357,1
    - Dst: GDALWarpOperation::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6359,1
    - Dst: GDALWarpOperation::ChunkAndWarpImage
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6365,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6369,1
    - Dst: GDALDestroyTransformer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6372,1
    - Dst: GDALDestroyWarpOptions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6373,1
    - Dst: auto::SetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6376,1
    - Dst: auto::GetPamFlags
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6376,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6378,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 227
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 6379
      start: 5891
    functionDepth: 7
    functionLinenumber: 5891
    functionLinenumberEnd: 6379
    functionName: GDALGeoPackageDataset::CreateCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - GDALWarpOperation::Initialize
    - atoi
    - GDALTranslateOptionsFree
    - auto::get
    - auto::Create
    - GDALDataset*::GetProjectionRef
    - CPLError
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CSLFetchNameValue
    - CPLStringList::List
    - static_cast<GDALTransformerInfo *>
    - GDALApproxTransformerOwnsSubtransformer
    - GDALWarpOperation::ChunkAndWarpImage
    - auto::GetPamFlags
    - auto::GetRasterBand
    - GDALDriver*::DefaultCreateCopy
    - ToHandle
    - GDALGeoPackageDataset*::SetPamFlags
    - GDALDataset*::GetSpatialRef
    - GDALDestroyGenImgProjTransformer
    - static_cast<double *>
    - std::unique_ptr::reset
    - GDALSuggestedWarpOutput2
    - GDALDataset*::GetGeoTransform
    - CPLMalloc
    - auto::IsGeographic
    - OGRSpatialReference::importFromEPSG
    - GDALGeoPackageDataset*::GetPamFlags
    - CPLTestBool
    - static_cast<int>
    - FromHandle
    - OGRSpatialReference::SetFromUserInput
    - GDALCreateApproxTransformer
    - GDALDataset*::GetRasterBand
    - CPLStringList::AddString
    - GDALTranslateOptionsNew
    - auto::SetMetadata
    - GDALCreateWarpOptions
    - auto::reset
    - CPLSPrintf
    - GDALDataset*::GetRasterXSize
    - GDALDestroyTransformer
    - OGRSpatialReference::AutoIdentifyEPSG
    - CPLStringList::SetNameValue
    - CPLFree
    - std::unique_ptr::get
    - GetUnderlyingDataset
    - GDALDataset*::GetMetadata
    - GDALGetDriverByName
    - OGRSpatialReference::OGRSpatialReference
    - cpl::down_cast<GDALGeoPackageDataset *>
    - static_cast<int *>
    - auto::SetPamFlags
    - GDALDestroyWarpOptions
    - auto::release
    - GDALTranslate
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - CSLDestroy
    - auto::SetProjection
    - EQUAL
    - GDALCreateGenImgProjTransformer2
    - auto::SetGeoTransform
    - OGRSpatialReference::GetAuthorityCode
    - fabs
    - std::make_unique<GDALGeoPackageDataset>
    - GDALWarpOperation::GDALWarpOperation
    - CSLSetNameValue
    - GetTilingScheme
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALGeoPackageDataset::CreateCopy(const char *pszFilename,\n
      \                                              GDALDataset *poSrcDS,\n                                               int
      bStrict, char **papszOptions,\n                                               GDALProgressFunc
      pfnProgress,\n                                               void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6389,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6393,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 6398
      start: 6385
    functionDepth: 1
    functionLinenumber: 6385
    functionLinenumberEnd: 6398
    functionName: GDALGeoPackageDataset::ParseCompressionOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - atoi
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::ParseCompressionOptions(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6406,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6417,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6421
      start: 6404
    functionDepth: 1
    functionLinenumber: 6404
    functionLinenumberEnd: 6421
    functionName: GDALGeoPackageDataset::RegisterWebPExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_free
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - SQLCommand
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::RegisterWebPExtension()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6429,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6440,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6443
      start: 6427
    functionDepth: 1
    functionLinenumber: 6427
    functionLinenumberEnd: 6443
    functionName: GDALGeoPackageDataset::RegisterZoomOtherExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_free
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - SQLCommand
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::RegisterZoomOtherExtension()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6452,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6452,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 6456
      start: 6449
    functionDepth: 0
    functionLinenumber: 6449
    functionLinenumberEnd: 6456
    functionName: GDALGeoPackageDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GDALGeoPackageDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6474,1
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6477,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6477,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6479,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6481,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6512,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6512,1
    - Dst: GDALGeoPackageDataset::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6513,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6513,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6517,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6517,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6518,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 1
    argNames:
    - osStr
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 6522
      start: 6470
    functionDepth: 1
    functionLinenumber: 6470
    functionLinenumberEnd: 6522
    functionName: GDALGeoPackageDataset::LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::reserve
    - GDALGeoPackageDataset::LaunderName
    - CPLDebug
    - std::string
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string GDALGeoPackageDataset::LaunderName(const std::string &osStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6538,1
    - Dst: GDALGeoPackageDataset::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6548,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6549,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6552,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6554,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6558,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6576,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6578,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6579,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6579,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6579,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6581,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6583,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6594,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6595,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6596,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6597,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6598,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6598,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6598,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6600,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6602,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6611,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6614,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6628,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6628,1
    - Dst: strspn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6630,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6632,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6641,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6641,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6643,1
    - Dst: strspn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6651,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6651,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6654,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6662,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6665,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6665,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6665,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6669,1
    - Dst: GDALGeoPackageDataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6671,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6675,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6679,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6685,1
    - Dst: FinishOrDisableThreadedRTree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6690,1
    - Dst: std::make_unique<OGRGeoPackageTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6695,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6695,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6700,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6701,1
    - Dst: auto::SetCreationParameters
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6703,1
    - Dst: GDALGeoPackageDataset::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6705,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6706,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6707,1
    - Dst: OGRGeomCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6708,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6709,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6710,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6711,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6711,1
    - Dst: GDALGeoPackageDataset::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6713,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6714,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6717,1
    - Dst: auto::SetLaunder
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6720,1
    - Dst: auto::SetDeferredSpatialIndexCreation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6727,1
    - Dst: auto::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6730,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6730,1
    - Dst: auto::SetTruncateFieldsFlag
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6731,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6732,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6741,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6743,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6745,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6749,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6753,1
    - Dst: auto::SetASpatialVariant
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6758,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6763,1
    - Dst: auto::SetDateTimePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6765,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6767,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6770,1
    - Dst: auto::SetDateTimePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6773,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6775,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6778,1
    - Dst: auto::SetDateTimePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6781,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6783,1
    - Dst: auto::SetDateTimePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6786,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6790,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6801,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6801,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6802,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 116
    argCount: 3
    argNames:
    - pszLayerName
    - poSrcGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 6803
      start: 6528
    functionDepth: 1
    functionLinenumber: 6528
    functionLinenumberEnd: 6803
    functionName: GDALGeoPackageDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::SetDateTimePrecision
    - auto::GetValue
    - FinishOrDisableThreadedRTree
    - OGRGeomCoordinatePrecision
    - OGRSpatialReference*::Release
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - CSLFetchNameValue
    - auto::RowCount
    - OGRSpatialReference*::SetAxisMappingStrategy
    - strspn
    - OGRGeomFieldDefn*::GetNameRef
    - GDALGeoPackageDataset::DeleteLayer
    - SQLQuery
    - auto::SetPrecisionFlag
    - auto::Clone
    - std::move
    - GetUpdate
    - GetName
    - auto::SetDeferredSpatialIndexCreation
    - emplace_back
    - CPLTestBool
    - static_cast<int>
    - SQLCommand
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - GDALGeoPackageDataset::LaunderName
    - size
    - auto::SetASpatialVariant
    - back
    - auto::SetTruncateFieldsFlag
    - std::make_unique<OGRGeoPackageTableLayer>
    - CSLFetchNameValueDef
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - sqlite3_free
    - std::string
    - auto::SetLaunder
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - auto::SetCreationParameters
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nGDALGeoPackageDataset::ICreateLayer(const char *pszLayerName,\n
      \                                   const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n
      \                                   CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6812,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6812,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6815,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6819
      start: 6809
    functionDepth: 1
    functionLinenumber: 6809
    functionLinenumberEnd: 6819
    functionName: GDALGeoPackageDataset::FindLayerIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - EQUAL
    - static_cast<int>
    - GetName
    linkageType: ''
    returnType: int
    signature: int GDALGeoPackageDataset::FindLayerIndex(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6834,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6835,1
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6837,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6839,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6842,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6843,1
    - Dst: GDALGeoPackageDataset::HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6846,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6850,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6862,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6863,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6868,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6871,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6872,1
    - Dst: GDALGeoPackageDataset::HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6876,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6880,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6889,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6890,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6897,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6902,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6903,1
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6906,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6912,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6919,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6924,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6930,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6931,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6932,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6938,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6942
      start: 6825
    functionDepth: 2
    functionLinenumber: 6825
    functionLinenumberEnd: 6942
    functionName: GDALGeoPackageDataset::DeleteLayerCommon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - SQLCommand
    - GDALGeoPackageDataset::HasExtensionsTable
    - GDALGeoPackageDataset::HasMetadataTables
    - sqlite3_mprintf
    - PragmaCheck
    - sqlite3_free
    - GDALGeoPackageDataset::ClearCachedRelationships
    - GDALGeoPackageDataset::HasGpkgextRelationsTable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::DeleteLayerCommon(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6950,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6951,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6951,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6954,1
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6955,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6957,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6959,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6959,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6965,1
    - Dst: HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6969,1
    - Dst: DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6970,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6976,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6977,1
    - Dst: GDALGeoPackageDataset::HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6980,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6985,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6986,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6995,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:6996,1
    - Dst: GDALGeoPackageDataset::DeleteLayerCommon
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7002,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7002,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7007,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7011,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7011,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7016,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 7020
      start: 6948
    functionDepth: 3
    functionLinenumber: 6948
    functionLinenumberEnd: 7020
    functionName: GDALGeoPackageDataset::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - HasSpatialIndex
    - CPLDebug
    - SoftStartTransaction
    - GDALGeoPackageDataset::DeleteLayerCommon
    - ResetReading
    - CPLString::c_str
    - GetUpdate
    - GetName
    - static_cast<int>
    - GDALGeoPackageDataset::HasDataColumnsTable
    - SQLCommand
    - SoftRollbackTransaction
    - begin
    - size
    - erase
    - DropSpatialIndex
    - SyncToDisk
    - SoftCommitTransaction
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7032,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7039,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7040,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7048,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7049,1
    - Dst: GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7052,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7058,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7059,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7064,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7067,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7068,1
    - Dst: GDALGeoPackageDataset::DeleteLayerCommon
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7074,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7079,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7083,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 7087
      start: 7026
    functionDepth: 3
    functionLinenumber: 7026
    functionLinenumberEnd: 7087
    functionName: GDALGeoPackageDataset::DeleteRasterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - SoftStartTransaction
    - SQLCommand
    - GDALGeoPackageDataset::DeleteLayerCommon
    - SoftRollbackTransaction
    - GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
    - sqlite3_mprintf
    - SoftCommitTransaction
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::DeleteRasterLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7099,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7109,1
    - Dst: GDALGeoPackageDataset::DeleteRasterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 7116
      start: 7093
    functionDepth: 4
    functionLinenumber: 7093
    functionLinenumberEnd: 7116
    functionName: GDALGeoPackageDataset::DeleteVectorOrRasterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::DeleteLayer
    - sqlite3_free
    - GDALGeoPackageDataset::DeleteRasterLayer
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::DeleteVectorOrRasterLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7124,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7134,1
    - Dst: GDALGeoPackageDataset::RenameRasterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pszLayerName
    - pszNewLayerName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 7142
      start: 7118
    functionDepth: 1
    functionLinenumber: 7118
    functionLinenumberEnd: 7142
    functionName: GDALGeoPackageDataset::RenameVectorOrRasterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::RenameRasterLayer
    - sqlite3_free
    - Rename
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::RenameVectorOrRasterLayer(\n    const
      char *pszLayerName, const char *pszNewLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7154,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7157,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7166,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7171,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7175,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7177,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7181,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7184,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7188,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7190,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7195,1
    - Dst: GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7197,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7199,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7204,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7206,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7211,1
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7214,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7216,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7221,1
    - Dst: GDALGeoPackageDataset::HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7224,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7226,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7231,1
    - Dst: GDALGeoPackageDataset::HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7234,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7236,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7241,1
    - Dst: GDALGeoPackageDataset::HasQGISLayerStyles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7244,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7248,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7252,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7258,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7263,1
    - Dst: GDALGeoPackageDataset::HasGpkgextRelationsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7267,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7269,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7274,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7276,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7281,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7283,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7288,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7292,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7295,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7295,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7296,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7299,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7302,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7305,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7309,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7312,1
    - Dst: GDALGeoPackageDataset::CreateRasterTriggersSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7317,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7320,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7320,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7320,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7325,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7330,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7334,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 89
    argCount: 2
    argNames:
    - pszLayerName
    - pszNewLayerName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 7338
      start: 7144
    functionDepth: 2
    functionLinenumber: 7144
    functionLinenumberEnd: 7338
    functionName: GDALGeoPackageDataset::RenameRasterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - GDALGeoPackageDataset::HasGriddedCoverageAncillaryTable
    - CPLError
    - std::string::c_str
    - GDALGeoPackageDataset::HasGpkgextRelationsTable
    - auto::RowCount
    - SoftStartTransaction
    - GetDB
    - GDALGeoPackageDataset::HasExtensionsTable
    - SQLQuery
    - GDALGeoPackageDataset::HasMetadataTables
    - sqlite3_mprintf
    - PragmaCheck
    - GDALGeoPackageDataset::HasQGISLayerStyles
    - GDALGeoPackageDataset::CreateRasterTriggersSQL
    - GDALGeoPackageDataset::HasDataColumnsTable
    - SQLCommand
    - SoftRollbackTransaction
    - SoftCommitTransaction
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::RenameRasterLayer(const char *pszLayerName,\n
      \                                             const char *pszNewLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7347,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7353,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7355,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7357,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7358,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7359,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7361,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7362,1
    - Dst: OGRSQLiteBaseDataSource::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 7365
      start: 7344
    functionDepth: 1
    functionLinenumber: 7344
    functionLinenumberEnd: 7365
    functionName: GDALGeoPackageDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRSQLiteBaseDataSource::TestCapability
    - GetUpdate
    linkageType: ''
    returnType: int
    signature: int GDALGeoPackageDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7377
      start: 7371
    functionDepth: 1
    functionLinenumber: 7371
    functionLinenumberEnd: 7377
    functionName: GDALGeoPackageDataset::ResetReadingAllLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::ResetReadingAllLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7397,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7400,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7400,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7404,1
    - Dst: CPLString::back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7404,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7405,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7407,1
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7423,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7428,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7428,1
    - Dst: DisableFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7430,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7436,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7438,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7439,1
    - Dst: OGRSQLiteSQLFunctionsSetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7441,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7443,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7444,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7446,1
    - Dst: OGRSQLiteSQLFunctionsSetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7448,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7454,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7455,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7457,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7463,1
    - Dst: GDALGeoPackageDataset::DeleteVectorOrRasterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7470,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7472,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7481,1
    - Dst: RecomputeExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7495,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7503,1
    - Dst: GDALGeoPackageDataset::DeleteVectorOrRasterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7510,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7510,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7523,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7527,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7527,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7528,1
    - Dst: GDALGeoPackageDataset::RenameVectorOrRasterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7532,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7532,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7533,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7535,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7540,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7541,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7542,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7542,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7548,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7549,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7549,1
    - Dst: OGRGeoPackageTableLayer*::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7560,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7562,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7569,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7574,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7575,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7575,1
    - Dst: OGRGeoPackageTableLayer*::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7582,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7583,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7588,1
    - Dst: ProcessTransactionSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7591,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7596,1
    - Dst: GDALGeoPackageDataset::ResetReadingAllLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7598,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7600,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7605,1
    - Dst: dynamic_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7609,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7610,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7610,1
    - Dst: OGRGeoPackageTableLayer*::Truncate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7613,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7618,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7619,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7620,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7621,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7621,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7622,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7623,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7638,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7639,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7639,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7641,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7642,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7643,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7648,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7659,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7661,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7661,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7665,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7674,1
    - Dst: OGRGeoPackageTableLayer*::RunDeferredDropRTreeTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7685,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7687,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7687,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7689,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7693,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7695,1
    - Dst: GDALGeoPackageDataset::SetApplicationAndUserVersionId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7697,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7701,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7703,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7715,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7721,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7721,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7722,1
    - Dst: sqlite3_column_count
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7724,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7725,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7729,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7731,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7737,1
    - Dst: sqlite3_column_count
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7739,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7740,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7744,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7746,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7746,1
    - Dst: sqlite3_column_count
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7749,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7750,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7756,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7755,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7758,1
    - Dst: std::make_unique<OGRGeoPackageSelectLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7768,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7773,1
    - Dst: auto::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7774,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7776,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 149
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 7777
      start: 7390
    functionDepth: 5
    functionLinenumber: 7390
    functionLinenumberEnd: 7777
    functionName: GDALGeoPackageDataset::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<OGRGeoPackageTableLayer *>
    - ProcessTransactionSQL
    - CPLString::ifind
    - CPLString
    - sqlite3_finalize
    - CPLError
    - EQUALN
    - CPLString::resize
    - GDALGeoPackageDataset::SetApplicationAndUserVersionId
    - CPLString::empty
    - auto::GetLayerDefn
    - sqlite3_column_type
    - CPLString::substr
    - static_cast<unsigned char>
    - auto::SetSpatialFilter
    - isspace
    - OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
    - GDALGeoPackageDataset::DeleteVectorOrRasterLayer
    - OGRGeoPackageTableLayer*::RunDeferredDropRTreeTableIfNecessary
    - CPLString::c_str
    - strlen
    - OGRGeoPackageTableLayer*::AlterFieldDefn
    - CSLCount
    - GetLayerByName
    - CPLStringList::size
    - GetName
    - CPLString::back
    - sqlite3_column_count
    - STARTS_WITH_CI
    - OGRGeoPackageTableLayer*::Truncate
    - OGRGeoPackageTableLayer*::DeleteField
    - std::make_unique<OGRGeoPackageSelectLayer>
    - CPLString::pop_back
    - sqlite3_errmsg
    - GDALGeoPackageDataset::FlushMetadata
    - auto::release
    - GDALGeoPackageDataset::RenameVectorOrRasterLayer
    - GDALGeoPackageDataset::ResetReadingAllLayers
    - SyncToDisk
    - DisableFeatureCount
    - RecomputeExtent
    - CSLDestroy
    - EQUAL
    - GDALDataset::ExecuteSQL
    - sqlite3_step
    - OGRSQLiteSQLFunctionsSetCaseSensitiveLike
    - SQLUnescape
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *GDALGeoPackageDataset::ExecuteSQL(const char *pszSQLCommand,\n
      \                                           OGRGeometry *poSpatialFilter,\n
      \                                           const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 7787
      start: 7783
    functionDepth: 0
    functionLinenumber: 7783
    functionLinenumberEnd: 7787
    functionName: GDALGeoPackageDataset::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7800
      start: 7793
    functionDepth: 1
    functionLinenumber: 7793
    functionLinenumberEnd: 7800
    functionName: GDALGeoPackageDataset::HasExtensionsTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - SQLGetInteger
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasExtensionsTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7808,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7813,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7835,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7855,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7857,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7857,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7858,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7859,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7861,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7872,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7874,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7876,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7880,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7885,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7891,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7891,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7893,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7902,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7902,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7904,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7913,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7917,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7919,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 1
    argNames:
    - bCheckRasterTable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 7929
      start: 7806
    functionDepth: 2
    functionLinenumber: 7806
    functionLinenumberEnd: 7929
    functionName: GDALGeoPackageDataset::CheckUnknownExtensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - auto::RowCount
    - GDALGetDriverByName
    - c_str
    - GetDB
    - GDALGeoPackageDataset::HasExtensionsTable
    - SQLQuery
    - EQUAL
    - sqlite3_mprintf
    - sqlite3_free
    - CPLError
    - STARTS_WITH
    - GetUpdate
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::CheckUnknownExtensions(bool bCheckRasterTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7937,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7950
      start: 7935
    functionDepth: 2
    functionLinenumber: 7935
    functionLinenumberEnd: 7950
    functionName: GDALGeoPackageDataset::HasGDALAspatialExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::HasExtensionsTable
    - SQLQuery
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::HasGDALAspatialExtension()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:7959,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8030,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8030,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8030,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8031,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8031,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8031,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8032,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8032,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8032,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8033,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8033,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8033,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8034,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8034,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8034,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8035,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8035,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8035,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8036,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8036,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8036,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8037,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8037,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8037,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8038,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8038,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8038,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8039,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - osTableName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 8043
      start: 7952
    functionDepth: 0
    functionLinenumber: 7952
    functionLinenumberEnd: 8043
    functionName: GDALGeoPackageDataset::CreateRasterTriggersSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_mprintf
    - std::string::c_str
    - sqlite3_free
    linkageType: ''
    returnType: std::string
    signature: std::string GDALGeoPackageDataset::CreateRasterTriggersSQL(const std::string
      &osTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8052,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8070
      start: 8049
    functionDepth: 2
    functionLinenumber: 8049
    functionLinenumberEnd: 8070
    functionName: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 7
    functionsReached:
    - GDALGeoPackageDataset::HasExtensionsTable
    - SQLCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::CreateExtensionsTableIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8079,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8081,1
    - Dst: static_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8086,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8086,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8090,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8090,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8094,1
    - Dst: auto::m_sFilterEnvelope::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8103,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8105,1
    - Dst: OGRWKBIntersectsPessimistic
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8113,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8117,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8122,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8123,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8128,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8131,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8132,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8135,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8138,1
    - Dst: auto::FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8138,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8139
      start: 8076
    functionDepth: 5
    functionLinenumber: 8076
    functionLinenumberEnd: 8139
    functionName: OGR_GPKG_Intersects_Spatial_Filter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGeoPackageTableLayer *>
    - sqlite3_value_blob
    - auto::m_sFilterEnvelope::Contains
    - sqlite3_value_type
    - std::unique_ptr<OGRGeometry>
    - sqlite3_result_int
    - sqlite3_user_data
    - GPkgGeometryToOGR
    - reinterpret_cast<const GByte *>
    - auto::FilterGeometry
    - auto::get
    - CPLError
    - OGRSQLiteImportSpatiaLiteGeometry
    - OGRGeoPackageGetHeader
    - OGRWKBIntersectsPessimistic
    - auto::reset
    linkageType: ''
    returnType: void
    signature: "void OGR_GPKG_Intersects_Spatial_Filter(sqlite3_context *pContext,
      int argc,\n                                        sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8149,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8151,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8155
      start: 8145
    functionDepth: 5
    functionLinenumber: 8145
    functionLinenumberEnd: 8155
    functionName: OGRGeoPackageSTMinX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageGetHeader
    - sqlite3_result_double
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTMinX(sqlite3_context *pContext, int argc,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8165,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8167,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8171
      start: 8161
    functionDepth: 5
    functionLinenumber: 8161
    functionLinenumberEnd: 8171
    functionName: OGRGeoPackageSTMinY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageGetHeader
    - sqlite3_result_double
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTMinY(sqlite3_context *pContext, int argc,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8181,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8183,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8187
      start: 8177
    functionDepth: 5
    functionLinenumber: 8177
    functionLinenumberEnd: 8187
    functionName: OGRGeoPackageSTMaxX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageGetHeader
    - sqlite3_result_double
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTMaxX(sqlite3_context *pContext, int argc,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8197,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8199,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8203
      start: 8193
    functionDepth: 5
    functionLinenumber: 8193
    functionLinenumberEnd: 8203
    functionName: OGRGeoPackageSTMaxY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeoPackageGetHeader
    - sqlite3_result_double
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTMaxY(sqlite3_context *pContext, int argc,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8213,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8215,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8219
      start: 8209
    functionDepth: 5
    functionLinenumber: 8209
    functionLinenumberEnd: 8219
    functionName: OGRGeoPackageSTIsEmpty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - OGRGeoPackageGetHeader
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTIsEmpty(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8232,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8232,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8236,1
    - Dst: OGRSQLiteGetSpatialiteGeometryHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8238,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8242,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8242,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8248,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8253,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8255,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8259,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8262,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8264,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8266
      start: 8225
    functionDepth: 2
    functionLinenumber: 8225
    functionLinenumberEnd: 8266
    functionName: OGRGeoPackageSTGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GPkgHeaderFromWKB
    - sqlite3_value_blob
    - OGRSQLiteGetSpatialiteGeometryHeader
    - static_cast<size_t>
    - sqlite3_result_text
    - reinterpret_cast<const GByte *>
    - OGRReadWKBGeometryType
    - OGRToOGCGeomType
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTGeometryType(sqlite3_context *pContext, int /*argc*/,\n
      \                                       sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8276,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8278,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8284,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8290,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8296,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8301
      start: 8272
    functionDepth: 5
    functionLinenumber: 8272
    functionLinenumberEnd: 8301
    functionName: OGRGeoPackageSTEnvelopesIntersects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - OGRGeoPackageGetHeader
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTEnvelopesIntersects(sqlite3_context *pContext,\n
      \                                              int argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8312,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8314,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8318,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8321,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8326,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8331,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8336,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8340
      start: 8307
    functionDepth: 5
    functionLinenumber: 8307
    functionLinenumberEnd: 8340
    functionName: OGRGeoPackageSTEnvelopesIntersectsTwoParams
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - OGRGeoPackageGetHeader
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTEnvelopesIntersectsTwoParams(sqlite3_context *pContext,
      int argc,\n                                            sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8349,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8350,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8352,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8363
      start: 8346
    functionDepth: 0
    functionLinenumber: 8346
    functionLinenumberEnd: 8363
    functionName: OGRGeoPackageGPKGIsAssignable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageGPKGIsAssignable(sqlite3_context *pContext,\n                                          int
      /*argc*/, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8373,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8375,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8379
      start: 8369
    functionDepth: 5
    functionLinenumber: 8369
    functionLinenumberEnd: 8379
    functionName: OGRGeoPackageSTSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - OGRGeoPackageGetHeader
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTSRID(sqlite3_context *pContext, int argc,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8388,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8390,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8397,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8397,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8400,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8404,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8407,1
    - Dst: GPkgGeometryFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8412,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8415,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8418,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8419,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8423,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8423,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8424,1
    - Dst: OGR_SWAP
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8426,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8427,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8428,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8430
      start: 8385
    functionDepth: 2
    functionLinenumber: 8385
    functionLinenumberEnd: 8430
    functionName: OGRGeoPackageSetSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GPkgHeaderFromWKB
    - sqlite3_value_blob
    - sqlite3_result_blob
    - static_cast<int>
    - sqlite3_value_type
    - GPkgGeometryFromOGR
    - reinterpret_cast<const GByte *>
    - OGR_SWAP
    - CPL_SWAP32
    - static_cast<GByte *>
    - OGRSQLiteImportSpatiaLiteGeometry
    - CPLMalloc
    - memcpy
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSetSRID(sqlite3_context *pContext, int /* argc */,\n
      \                                sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8439,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8441,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8446,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8446,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8449,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8451,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8455,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8456,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8461,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8464,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8467,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8469,1
    - Dst: auto::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8469,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8472,1
    - Dst: GPkgGeometryFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8477,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8477,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8481,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8484,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8486
      start: 8436
    functionDepth: 5
    functionLinenumber: 8436
    functionLinenumberEnd: 8486
    functionName: OGRGeoPackageSTMakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - sqlite3_result_blob
    - static_cast<int>
    - sqlite3_value_type
    - std::unique_ptr<OGRGeometry>
    - auto::reset
    - GPkgGeometryFromOGR
    - GPkgGeometryToOGR
    - reinterpret_cast<const GByte *>
    - auto::get
    - OGRSQLiteImportSpatiaLiteGeometry
    - OGRGeoPackageGetHeader
    - sqlite3_result_null
    - auto::MakeValid
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTMakeValid(sqlite3_context *pContext, int argc,\n
      \                                    sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8495,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8497,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8502,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8502,1
    - Dst: GPkgHeaderFromWKB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8506,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8510,1
    - Dst: OGRWKBGetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8517,1
    - Dst: OGRWKBPolygonGetArea
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8524,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8526,1
    - Dst: OGRWKBMultiPolygonGetArea
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8535,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8537,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8544,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8544,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8550,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8553,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8556,1
    - Dst: dynamic_cast<OGRSurface *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8558,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8558,1
    - Dst: dynamic_cast<OGRMultiSurface *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8561,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8561,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8564,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8568,1
    - Dst: auto::get_Area
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8568,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8573,1
    - Dst: auto::get_Area
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8573,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8575
      start: 8492
    functionDepth: 4
    functionLinenumber: 8492
    functionLinenumberEnd: 8575
    functionName: OGRGeoPackageSTArea
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GPkgHeaderFromWKB
    - OGRWKBPolygonGetArea
    - sqlite3_value_blob
    - OGRWKBMultiPolygonGetArea
    - auto::get_Area
    - sqlite3_value_type
    - OGRSQLiteImportSpatiaLiteGeometry
    - GPkgGeometryToOGR
    - reinterpret_cast<const GByte *>
    - dynamic_cast<OGRSurface *>
    - OGRWKBGetGeomType
    - sqlite3_result_double
    - dynamic_cast<OGRMultiSurface *>
    - std::unique_ptr::reset
    - std::unique_ptr::get
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSTArea(sqlite3_context *pContext, int /*argc*/,\n
      \                               sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8584,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8586,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8589,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8591,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8598,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8598,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8600,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8602,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8603,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8608,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8608,1
    - Dst: GDALGeoPackageDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8611,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8614,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8616,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8620,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8621,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8626,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8629,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8630,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8633,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8636,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8636,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8637,1
    - Dst: OGR_G_GeodesicArea
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8638,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8638,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8639
      start: 8581
    functionDepth: 5
    functionLinenumber: 8581
    functionLinenumberEnd: 8639
    functionName: OGRGeoPackageGeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - std::unique_ptr<OGRGeometry>
    - auto::assignSpatialReference
    - sqlite3_user_data
    - auto::get
    - sqlite3_result_double
    - sqlite3_result_null
    - CPLError
    - GDALGeoPackageDataset*::GetSpatialRef
    - ToHandle
    - OGRSQLiteImportSpatiaLiteGeometry
    - static_cast<GDALGeoPackageDataset *>
    - OGR_G_GeodesicArea
    - GPkgGeometryToOGR
    - sqlite3_value_int
    - std::unique_ptr::get
    - sqlite3_value_blob
    - sqlite3_value_type
    - reinterpret_cast<const GByte *>
    - OGRGeoPackageGetHeader
    - auto::reset
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageGeodesicArea(sqlite3_context *pContext, int argc,\n
      \                                     sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8648,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8650,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8653,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8655,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8662,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8662,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8664,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8666,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8667,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8672,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8672,1
    - Dst: GDALGeoPackageDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8680,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8682,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8687,1
    - Dst: GPkgGeometryToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8688,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8696,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8697,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8700,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8704,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8704,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8706,1
    - Dst: OGR_G_Length
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8708,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8708,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8708,1
    - Dst: OGR_G_GeodesicLength
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8709,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8709,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8709,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8710
      start: 8645
    functionDepth: 5
    functionLinenumber: 8645
    functionLinenumberEnd: 8710
    functionName: OGRGeoPackageLengthOrGeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - std::unique_ptr<OGRGeometry>
    - auto::assignSpatialReference
    - sqlite3_user_data
    - auto::get
    - sqlite3_result_double
    - sqlite3_result_null
    - CPLError
    - GDALGeoPackageDataset*::GetSpatialRef
    - ToHandle
    - OGR_G_Length
    - OGRSQLiteImportSpatiaLiteGeometry
    - static_cast<GDALGeoPackageDataset *>
    - GPkgGeometryToOGR
    - sqlite3_value_int
    - std::unique_ptr::get
    - sqlite3_value_blob
    - sqlite3_value_type
    - OGR_G_GeodesicLength
    - reinterpret_cast<const GByte *>
    - OGRGeoPackageGetHeader
    - auto::reset
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageLengthOrGeodesicLength(sqlite3_context *pContext,\n
      \                                               int argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8722,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8723,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8725,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8731,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8731,1
    - Dst: OGRGeoPackageGetHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8733,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8735,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8736,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8744,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8749,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8749,1
    - Dst: GDALGeoPackageDataset*::m_poLastCachedCT::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8756,1
    - Dst: GDALGeoPackageDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8761,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8764,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8766,1
    - Dst: GDALGeoPackageDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8771,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8774,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8776,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8780,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8780,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8780,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8783,1
    - Dst: GDALGeoPackageDataset*::m_poLastCachedCT::reset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8790,1
    - Dst: GDALGeoPackageDataset*::m_poLastCachedCT::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8791,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8797,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8798,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8798,1
    - Dst: OGRWKBTransform
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8801,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8801,1
    - Dst: GPkgUpdateHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8804,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8804,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8808,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8809,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8813,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8813,1
    - Dst: OGRSQLiteImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8820,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8823,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8824,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8827,1
    - Dst: auto::transform
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8829,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8831,1
    - Dst: GPkgGeometryFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8837,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8837,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8840,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8843,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8843,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8845
      start: 8719
    functionDepth: 5
    functionLinenumber: 8719
    functionLinenumberEnd: 8845
    functionName: OGRGeoPackageTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - std::unique_ptr<OGRGeometry>
    - GPkgGeometryFromOGR
    - sqlite3_user_data
    - auto::get
    - CPLError
    - GPkgUpdateHeader
    - GDALGeoPackageDataset*::GetSpatialRef
    - OGRSQLiteImportSpatiaLiteGeometry
    - static_cast<GDALGeoPackageDataset *>
    - std::vector::data
    - static_cast<int>
    - GDALGeoPackageDataset*::m_poLastCachedCT::reset
    - OGRCreateCoordinateTransformation
    - std::unique_ptr::get
    - std::vector::resize
    - GDALGeoPackageDataset*::m_poLastCachedCT::get
    - sqlite3_value_blob
    - sqlite3_value_type
    - reinterpret_cast<const GByte *>
    - auto::transform
    - OGRWKBTransform
    - OGRGeoPackageGetHeader
    - memcpy
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageTransform(sqlite3_context *pContext, int argc,\n
      \                           sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8854,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8855,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8857,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8862,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8862,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8870,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8874
      start: 8851
    functionDepth: 0
    functionLinenumber: 8851
    functionLinenumberEnd: 8874
    functionName: OGRGeoPackageSridFromAuthCRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - sqlite3_free
    - static_cast<GDALGeoPackageDataset *>
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSridFromAuthCRS(sqlite3_context *pContext,\n                                         int
      /*argc*/, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8883,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8885,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8890,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8890,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8891,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8892,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8892,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8894,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8898,1
    - Dst: GDALGeoPackageDataset*::GetSrsId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8899
      start: 8880
    functionDepth: 7
    functionLinenumber: 8880
    functionLinenumberEnd: 8899
    functionName: OGRGeoPackageImportFromEPSG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::OGRSpatialReference
    - GDALGeoPackageDataset*::GetSrsId
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - static_cast<GDALGeoPackageDataset *>
    - sqlite3_value_int
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageImportFromEPSG(sqlite3_context *pContext, int /*argc*/,\n
      \                                       sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8909,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8910,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8911,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8913,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8925,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8925,1
    - Dst: cpl::down_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8927,1
    - Dst: GDALGeoPackageDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8928,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8931,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8932,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8935,1
    - Dst: OGRGeoPackageTableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8935,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8937,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8938,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8941,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8944,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8945,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8949,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8951,1
    - Dst: OGRGeoPackageTableLayer*::CreateGeometryExtensionIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8951,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8952
      start: 8905
    functionDepth: 1
    functionLinenumber: 8905
    functionLinenumberEnd: 8952
    functionName: OGRGeoPackageRegisterGeometryExtension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageTableLayer *>
    - GDALGeoPackageDataset*::GetLayerByName
    - static_cast<int>
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - EQUAL
    - OGRGeoPackageTableLayer*::GetGeometryColumn
    - OGRGeoPackageTableLayer*::CreateGeometryExtensionIfNecessary
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    - OGRFromOGCGeomType
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageRegisterGeometryExtension(sqlite3_context *pContext,\n
      \                                                  int /*argc*/,\n                                                   sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8961,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8962,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8964,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8973,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8973,1
    - Dst: cpl::down_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8975,1
    - Dst: GDALGeoPackageDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8976,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8979,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8980,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8983,1
    - Dst: OGRGeoPackageTableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8983,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8985,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8986,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8990,1
    - Dst: OGRGeoPackageTableLayer*::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:8990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 8991
      start: 8958
    functionDepth: 1
    functionLinenumber: 8958
    functionLinenumberEnd: 8991
    functionName: OGRGeoPackageCreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageTableLayer *>
    - GDALGeoPackageDataset*::GetLayerByName
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - EQUAL
    - OGRGeoPackageTableLayer*::GetGeometryColumn
    - OGRGeoPackageTableLayer*::CreateSpatialIndex
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageCreateSpatialIndex(sqlite3_context *pContext,\n
      \                                           int /*argc*/, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9000,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9001,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9003,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9012,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9012,1
    - Dst: cpl::down_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9014,1
    - Dst: GDALGeoPackageDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9018,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9019,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9022,1
    - Dst: OGRGeoPackageTableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9022,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9024,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9025,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9029,1
    - Dst: OGRGeoPackageTableLayer*::DropSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9030
      start: 8997
    functionDepth: 1
    functionLinenumber: 8997
    functionLinenumberEnd: 9030
    functionName: OGRGeoPackageDisableSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageTableLayer *>
    - GDALGeoPackageDataset*::GetLayerByName
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - EQUAL
    - OGRGeoPackageTableLayer*::GetGeometryColumn
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    - OGRGeoPackageTableLayer*::DropSpatialIndex
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageDisableSpatialIndex(sqlite3_context *pContext,\n
      \                                            int /*argc*/, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9039,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9040,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9042,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9051,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9051,1
    - Dst: cpl::down_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9053,1
    - Dst: GDALGeoPackageDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9054,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9057,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9058,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9061,1
    - Dst: OGRGeoPackageTableLayer*::GetGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9061,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9063,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9064,1
    - Dst: OGRGeoPackageTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9068,1
    - Dst: OGRGeoPackageTableLayer*::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9069,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9071,1
    - Dst: OGRGeoPackageTableLayer*::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9072
      start: 9036
    functionDepth: 1
    functionLinenumber: 9036
    functionLinenumberEnd: 9072
    functionName: OGRGeoPackageHasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageTableLayer *>
    - GDALGeoPackageDataset*::GetLayerByName
    - sqlite3_value_type
    - sqlite3_result_int
    - sqlite3_user_data
    - OGRGeoPackageTableLayer*::CreateSpatialIndexIfNecessary
    - EQUAL
    - OGRGeoPackageTableLayer*::GetGeometryColumn
    - OGRGeoPackageTableLayer*::HasSpatialIndex
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    - OGRGeoPackageTableLayer*::RunDeferredCreationIfNecessary
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageHasSpatialIndex(sqlite3_context *pContext,\n                                         int
      /*argc*/, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9081,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9082,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9084,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9094,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9097
      start: 9078
    functionDepth: 0
    functionLinenumber: 9078
    functionLinenumberEnd: 9097
    functionName: GPKG_hstore_get_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - sqlite3_value_type
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_hstore_get_value(sqlite3_context *pContext, int /*argc*/,\n
      \                                 sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9107,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9107,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9109,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9110,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9111,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9111,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9114
      start: 9103
    functionDepth: 1
    functionLinenumber: 9103
    functionLinenumberEnd: 9114
    functionName: GPKG_GDAL_GetMemFileFromBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - VSIFCloseL
    - reinterpret_cast<const GByte *>
    - const_cast<GByte *>
    - CPLString::c_str
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    linkageType: ''
    returnType: CPLString
    signature: CPLString GPKG_GDAL_GetMemFileFromBlob(sqlite3_value **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9123,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9125,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9131,1
    - Dst: GDALIdentifyDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9135,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9135,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9137,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9137,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9139,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9139,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9141,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9141,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9144,1
    - Dst: GDALDriver*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9144,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9145,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9148,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9150
      start: 9120
    functionDepth: 1
    functionLinenumber: 9120
    functionLinenumberEnd: 9150
    functionName: GPKG_GDAL_GetMimeType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - sqlite3_value_type
    - GDALIdentifyDriver
    - sqlite3_result_text
    - VSIUnlink
    - CPLSPrintf
    - EQUAL
    - GDALDriver*::GetDescription
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_GDAL_GetMimeType(sqlite3_context *pContext, int /*argc*/,\n
      \                                 sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9159,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9161,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9166,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9167,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9171,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9171,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9174,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9176
      start: 9156
    functionDepth: 4
    functionLinenumber: 9156
    functionLinenumberEnd: 9176
    functionName: GPKG_GDAL_GetBandCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - sqlite3_value_type
    - sqlite3_result_int
    - VSIUnlink
    - auto::GetRasterCount
    - OGRAPISpyOpen
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_GDAL_GetBandCount(sqlite3_context *pContext, int /*argc*/,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9185,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9187,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9192,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9193,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9197,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9198,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9199,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9202,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9204
      start: 9182
    functionDepth: 4
    functionLinenumber: 9182
    functionLinenumberEnd: 9204
    functionName: GPKG_GDAL_HasColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - auto::GetRasterBand
    - sqlite3_value_type
    - sqlite3_result_int
    - VSIUnlink
    - auto::GetRasterCount
    - OGRAPISpyOpen
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_GDAL_HasColorTable(sqlite3_context *pContext, int /*argc*/,\n
      \                                   sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9213,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9214,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9215,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9217,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9217,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9218,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9218,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9224,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9226
      start: 9210
    functionDepth: 4
    functionLinenumber: 9210
    functionLinenumberEnd: 9226
    functionName: GDALGeoPackageDataset::GetRasterLayerDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - end
    - c_str
    - find
    - get
    - OGRAPISpyOpen
    - std::move
    - std::string
    - auto::second::get
    linkageType: ''
    returnType: GDALDataset
    signature: 'GDALDataset *

      GDALGeoPackageDataset::GetRasterLayerDataset(const char *pszLayerName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9237,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9239,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9241,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9249,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9249,1
    - Dst: GDALGeoPackageDataset*::GetRasterLayerDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9250,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9253,1
    - Dst: OGRSQLite_gdal_get_pixel_value_common
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9259
      start: 9234
    functionDepth: 1
    functionLinenumber: 9234
    functionLinenumberEnd: 9259
    functionName: GPKG_gdal_get_layer_pixel_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_user_data
    - GDALGeoPackageDataset*::GetRasterLayerDataset
    - OGRSQLite_gdal_get_pixel_value_common
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_gdal_get_layer_pixel_value(sqlite3_context *pContext, int
      argc,\n                                            sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9270,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9272,1
    - Dst: static_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9279,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9279,1
    - Dst: GDALGeoPackageDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9280,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9283,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9285,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9289,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9291,1
    - Dst: OGRLayer*::GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9296,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9298,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9300,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9304,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9305,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9306,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9307,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9308,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9309,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9310,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9311,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9311,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9313,1
    - Dst: GPkgGeometryFromOGR
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9317,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9320,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9323,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 9325
      start: 9265
    functionDepth: 2
    functionLinenumber: 9265
    functionLinenumberEnd: 9325
    functionName: GPKG_ogr_layer_Extent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset*::GetLayerByName
    - sqlite3_result_blob
    - static_cast<int>
    - sqlite3_value_type
    - OGRPolygon::OGRPolygon
    - auto::addPoint
    - GPkgGeometryFromOGR
    - OGRPolygon::addRing
    - OGRLayer*::GetSpatialRef
    - sqlite3_user_data
    - OGRLayer*::GetGeomType
    - std::move
    - CPLError
    - static_cast<GDALGeoPackageDataset *>
    - std::make_unique<OGRLinearRing>
    - OGRLayer*::GetExtent
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void GPKG_ogr_layer_Extent(sqlite3_context *pContext, int /*argc*/,\n
      \                                 sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9345,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9352,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9356,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9358,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9360,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9362,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9364,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9368,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9370,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9375,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9379,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9381,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9383,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9387,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9391,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9393,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9395,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9398,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9401,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9405,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9408,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9413,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9417,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9421,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9425,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9427,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9431,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9434,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9438,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9440,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9444,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9444,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9446,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9449,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9452,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9457,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9460,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9465,1
    - Dst: OGRSQLiteRegisterSQLFunctionsCommon
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9469
      start: 9343
    functionDepth: 1
    functionLinenumber: 9343
    functionLinenumberEnd: 9469
    functionName: GDALGeoPackageDataset::InstallSQLFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - CPLGetConfigOption
    - CPLTestBool
    - sqlite3_create_function
    - OGRSQLiteRegisterSQLFunctionsCommon
    - sqlite3_exec
    - InitSpatialite
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageDataset::InstallSQLFunctions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9486,1
    - Dst: GDALGeoPackageDataset::InstallSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9488,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9493,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9495,1
    - Dst: OGRSQLiteRTreeRequiresTrustedSchemaOn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9505,1
    - Dst: GDALGeoPackageDataset::HasExtensionsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9512,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9513,1
    - Dst: SpatialiteRequiresTrustedSchemaOn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9518,1
    - Dst: AreSpatialiteTriggersSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9518,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9526,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9527,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9535,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 9540
      start: 9475
    functionDepth: 2
    functionLinenumber: 9475
    functionLinenumberEnd: 9540
    functionName: GDALGeoPackageDataset::OpenOrCreateDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 3
    functionsReached:
    - SQLGetInteger
    - SQLCommand
    - GDALGeoPackageDataset::HasExtensionsTable
    - CPLDebug
    - OGRSQLiteRTreeRequiresTrustedSchemaOn
    - GDALGeoPackageDataset::InstallSQLFunctions
    - SpatialiteRequiresTrustedSchemaOn
    - AreSpatialiteTriggersSafe
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool GDALGeoPackageDataset::OpenOrCreateDB(int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRGeoPackageLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9550,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9550,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 9552
      start: 9546
    functionDepth: 0
    functionLinenumber: 9546
    functionLinenumberEnd: 9552
    functionName: GDALGeoPackageDataset::GetLayerWithGetSpatialWhereByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageLayer *>
    - GetLayerByName
    - std::pair
    linkageType: ''
    returnType: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *>
    signature: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *> GDALGeoPackageDataset::GetLayerWithGetSpatialWhereByName(const
      char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9563,1
    - Dst: DoJobAtTransactionCommit
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9566,1
    - Dst: OGRSQLiteBaseDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9571
      start: 9558
    functionDepth: 4
    functionLinenumber: 9558
    functionLinenumberEnd: 9571
    functionName: GDALGeoPackageDataset::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - DoJobAtTransactionCommit
    - GDALGeoPackageDataset::FlushMetadata
    - OGRSQLiteBaseDataSource::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::FlushMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9586,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9590,1
    - Dst: GetAddOGRFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9590,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9591,1
    - Dst: GetOGRFeatureCountTriggersDeletedInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9592,1
    - Dst: SetAddOGRFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9593,1
    - Dst: DoJobAtTransactionRollback
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9595,1
    - Dst: DisableFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9597,1
    - Dst: OGRSQLiteBaseDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9602,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9605,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9607,1
    - Dst: auto::SetOGRFeatureCountTriggersEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9612,1
    - Dst: auto::SetAddOGRFeatureCountTriggers
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9622
      start: 9577
    functionDepth: 4
    functionLinenumber: 9577
    functionLinenumberEnd: 9622
    functionName: GDALGeoPackageDataset::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - auto::SetAddOGRFeatureCountTriggers
    - SetAddOGRFeatureCountTriggers
    - GetOGRFeatureCountTriggersDeletedInTransaction
    - DisableFeatureCount
    - OGRSQLiteBaseDataSource::RollbackTransaction
    - GetAddOGRFeatureCountTriggers
    - DoJobAtTransactionRollback
    - auto::SetOGRFeatureCountTriggersEnabled
    - std::vector::push_back
    - GDALGeoPackageDataset::FlushMetadata
    - std::vector::empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GDALGeoPackageDataset::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9632,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9633,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - eType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 9638
      start: 9628
    functionDepth: 1
    functionLinenumber: 9628
    functionLinenumberEnd: 9638
    functionName: GDALGeoPackageDataset::GetGeometryTypeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLTestBool
    - CPLGetConfigOption
    linkageType: ''
    returnType: char
    signature: 'char *

      GDALGeoPackageDataset::GetGeometryTypeString(OGRwkbGeometryType eType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageDataset::HasDataColumnConstraintsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9647,1
    - Dst: std::vector<std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9648,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9661,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9661,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9666,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9668,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9672,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9674,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9674,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9675,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9686
      start: 9644
    functionDepth: 1
    functionLinenumber: 9644
    functionLinenumberEnd: 9686
    functionName: GDALGeoPackageDataset::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::HasDataColumnConstraintsTable
    - CPLError
    - std::vector::emplace_back
    - SQLQuery
    - std::unique_ptr::RowCount
    - std::vector::reserve
    - std::string::c_str
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GDALGeoPackageDataset::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9695,1
    - Dst: GDALGeoPackageDataset::HasDataColumnConstraintsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9699,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9737,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9738,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9742,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9748,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9751,1
    - Dst: GDALGeoPackageDataset::HasDataColumnsTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9757,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9763,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9764,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9765,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9767,1
    - Dst: const_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9775,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9779,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9783,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9784,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9788,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9823,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9840,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9846,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9850,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9863,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9865,1
    - Dst: std::unique_ptr::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9865,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9869,1
    - Dst: VSI_STRDUP_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9877,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9880,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9894,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9901,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9902,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9903,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9925,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9927,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9931,1
    - Dst: OGR_RawField_SetUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9932,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9936,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9936,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9939,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9941,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9943,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9946,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9946,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9949,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9951,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9953,1
    - Dst: std::make_unique<OGRRangeFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9955,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9957,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9964,1
    - Dst: std::make_unique<OGRGlobFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9971,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9973,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9977,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9986,1
    - Dst: std::make_unique<OGRCodedFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9990,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9992,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:9993,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10001,1
    - Dst: GDALDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10002,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 153
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 10003
      start: 9692
    functionDepth: 1
    functionLinenumber: 9692
    functionLinenumberEnd: 10003
    functionName: GDALGeoPackageDataset::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - atoi
    - std::make_unique<OGRGlobFieldDomain>
    - auto::GetType
    - std::vector::emplace_back
    - OGR_RawField_SetUnset
    - strcmp
    - std::unique_ptr::RowCount
    - CPLError
    - GDALDataset::GetFieldDomain
    - std::string::c_str
    - CPLString::empty
    - auto::RowCount
    - simple_max
    - const_cast<GDALGeoPackageDataset *>
    - CPLAtoGIntBig
    - SQLQuery
    - std::move
    - OGRLayer*::GetLayerDefn
    - std::vector::reserve
    - std::vector::empty
    - simple_min
    - GDALGeoPackageDataset::HasDataColumnConstraintsTable
    - CPLAtof
    - VSI_STRDUP_VERBOSE
    - GDALGeoPackageDataset::HasDataColumnsTable
    - auto::GetFieldDefn
    - std::make_unique<OGRRangeFieldDomain>
    - static_cast<OGRFieldType>
    - auto::GetSubType
    - VSIFree
    - sqlite3_free
    - std::make_unique<OGRCodedFieldDomain>
    - CPLGetValueType
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      GDALGeoPackageDataset::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10012,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10013,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10015,1
    - Dst: GDALGeoPackageDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10019,1
    - Dst: GDALGeoPackageDataset::CreateColumnsTableAndColumnConstraintsTablesIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10024,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10033,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10034,1
    - Dst: cpl::down_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10039,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10039,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10040,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10055,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10055,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10056,1
    - Dst: auto::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10058,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10070,1
    - Dst: cpl::down_cast<const OGRRangeFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10080,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10080,1
    - Dst: auto::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10081,1
    - Dst: auto::GetMin
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10093,1
    - Dst: auto::GetMax
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10095,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10098,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10100,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10105,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10106,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10107,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10108,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10112,1
    - Dst: OGR_RawField_IsUnset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10114,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10126,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10131,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10131,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10132,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10132,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10134,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10135,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10136,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10137,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10138,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10140,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10144,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10144,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10145,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10145,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10149,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10152,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10154,1
    - Dst: cpl::down_cast<const OGRGlobFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10164,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10164,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10175,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10183,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 10185
      start: 10009
    functionDepth: 2
    functionLinenumber: 10009
    functionLinenumberEnd: 10185
    functionName: GDALGeoPackageDataset::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<const OGRRangeFieldDomain *>
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - std::unique_ptr<OGRFieldDomain>::GetDescription
    - auto::GetEnumeration
    - CPLError
    - sqlite3_finalize
    - auto::size
    - std::string::c_str
    - GDALGeoPackageDataset::CreateColumnsTableAndColumnConstraintsTablesIfNecessary
    - auto::c_str
    - std::unique_ptr<OGRFieldDomain>::GetName
    - cpl::down_cast<const OGRCodedFieldDomain *>
    - std::move
    - cpl::down_cast<const OGRGlobFieldDomain *>
    - GDALGeoPackageDataset::GetFieldDomain
    - auto::GetFieldType
    - GetUpdate
    - sqlite3_bind_double
    - sqlite3_bind_text
    - static_cast<int>
    - SQLCommand
    - auto::empty
    - CPL_IGNORE_RET_VAL
    - auto::GetMin
    - sqlite3_errmsg
    - static_cast<double>
    - auto::GetMax
    - std::string::size
    - sqlite3_bind_int
    - sqlite3_free
    - SQLPrepareWithError
    - OGR_RawField_IsUnset
    - sqlite3_bind_null
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::AddFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10195,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10197,1
    - Dst: GDALGeoPackageDataset::GenerateNameForRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10202,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10203,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10204,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10205,1
    - Dst: GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10207,1
    - Dst: GDALGeoPackageDataset::ValidateRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10213,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10213,1
    - Dst: GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10218,1
    - Dst: GDALGeoPackageDataset::CreateRelationsTableIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10222,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10227,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10227,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10233,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10234,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10247,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10248,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10249,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10250,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10252,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10253,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10259,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10260,1
    - Dst: GDALGeoPackageDataset::FindLayerIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10264,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10264,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10267,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10267,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10268,1
    - Dst: SQLGetUniqueFieldUCConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10275,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10275,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10276,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10277,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10278,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10279,1
    - Dst: SQLGetUniqueFieldUCConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10287,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10287,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10288,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10289,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10290,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10291,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10309,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10322,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10331,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10332,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10336,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10353,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10359,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10360,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10361,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10362,1
    - Dst: GDALGeoPackageDataset::GetCurrentDateEscapedSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10363,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10367,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10368,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10370,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10372,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10372,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10373,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10374,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10377,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10383,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10385,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10385,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10386,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10387,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10390,1
    - Dst: cpl::down_cast<OGRGeoPackageTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10400,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10401,1
    - Dst: OGRGeoPackageTableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10403,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10406,1
    - Dst: OGRGeoPackageTableLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10410,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10413,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10421,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10433,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10434,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10437,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10443,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10448,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10448,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10449,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10449,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10450,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10450,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10451,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10452,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10459,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10460,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 102
    argCount: 2
    argNames:
    - relationship
    - failureReason
    argTypes:
    - std::unique_ptr<GDALRelationship>
    - std::string
    constantsTouched: []
    func_position:
      end: 10462
      start: 10191
    functionDepth: 3
    functionLinenumber: 10191
    functionLinenumberEnd: 10462
    functionName: GDALGeoPackageDataset::AddRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRGeoPackageTableLayer *>
    - SQLGetInteger
    - GDALGeoPackageDataset::ValidateRelationship
    - std::unique_ptr<GDALRelationship>::GetLeftTableName
    - GDALGeoPackageDataset::GenerateNameForRelationship
    - CPLString
    - GDALGeoPackageDataset::CreateRelationsTableIfNecessary
    - CPLError
    - std::string::c_str
    - CPLString::empty
    - std::string::empty
    - GetDB
    - std::unique_ptr<GDALRelationship>::GetLeftTableFields
    - std::unique_ptr<GDALRelationship>::GetRightTableName
    - GDALGeoPackageDataset::LoadRelationships
    - CPLString::c_str
    - sqlite3_mprintf
    - GetLayerByName
    - GetUpdate
    - OGRGeoPackageTableLayer*::GetLayerDefn
    - c_str
    - SQLGetUniqueFieldUCConstraints
    - SQLCommand
    - CPLString::Printf
    - GDALGeoPackageDataset::CreateExtensionsTableIfNecessary
    - std::unique_ptr<GDALRelationship>::GetRelatedTableType
    - std::set::find
    - GDALGeoPackageDataset::GetCurrentDateEscapedSQL
    - GDALGeoPackageDataset::FindLayerIndex
    - std::unique_ptr<GDALRelationship>::GetRightTableFields
    - GDALGeoPackageDataset::ClearCachedRelationships
    - GetRelationship
    - std::unique_ptr<GDALRelationship>::get
    - std::unique_ptr<GDALRelationship>::GetMappingTableName
    - sqlite3_free
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::AddRelationship(\n    std::unique_ptr<GDALRelationship>
      &&relationship,\n    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10473,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10479,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10480,1
    - Dst: GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10484,1
    - Dst: GDALRelationship*::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10491,1
    - Dst: GDALGeoPackageDataset::DeleteLayerCommon
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10496,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10496,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10503,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10504,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10508,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - name
    - failureReason
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 10511
      start: 10468
    functionDepth: 3
    functionLinenumber: 10468
    functionLinenumberEnd: 10511
    functionName: GDALGeoPackageDataset::DeleteRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetRelationship
    - GDALGeoPackageDataset::DeleteLayerCommon
    - GDALGeoPackageDataset::LoadRelationships
    - GDALRelationship*::GetMappingTableName
    - GDALGeoPackageDataset::ClearCachedRelationships
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::DeleteRelationship(const std::string &name,\n
      \                                              std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10523,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10529,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10530,1
    - Dst: std::unique_ptr<GDALRelationship>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10532,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10533,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10534,1
    - Dst: std::unique_ptr<GDALRelationship>::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10535,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10536,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10537,1
    - Dst: GetRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10542,1
    - Dst: GDALGeoPackageDataset::ValidateRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10550,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10550,1
    - Dst: GDALRelationship*::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10556,1
    - Dst: GDALRelationship*::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10559,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10558,1
    - Dst: GDALRelationship*::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10564,1
    - Dst: GDALRelationship*::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10567,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10566,1
    - Dst: GDALRelationship*::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10572,1
    - Dst: GDALRelationship*::GetMappingTableName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10575,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10574,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10582,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10583,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10591,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10592,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10600,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10605,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10605,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10606,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10606,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10607,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10607,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10608,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10609,1
    - Dst: GDALGeoPackageDataset::ClearCachedRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10617,1
    - Dst: GDALGeoPackageDataset::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10618,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - relationship
    - failureReason
    argTypes:
    - std::unique_ptr<GDALRelationship>
    - std::string
    constantsTouched: []
    func_position:
      end: 10620
      start: 10517
    functionDepth: 2
    functionLinenumber: 10517
    functionLinenumberEnd: 10620
    functionName: GDALGeoPackageDataset::UpdateRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::ValidateRelationship
    - std::unique_ptr<GDALRelationship>::GetLeftTableName
    - GDALRelationship*::GetMappingTableName
    - CPLError
    - std::string::c_str
    - std::string::empty
    - std::unique_ptr<GDALRelationship>::GetLeftTableFields
    - std::unique_ptr<GDALRelationship>::GetRightTableName
    - GDALRelationship*::GetRightTableName
    - GDALGeoPackageDataset::LoadRelationships
    - sqlite3_mprintf
    - std::unique_ptr<GDALRelationship>::GetName
    - GDALRelationship*::GetLeftTableName
    - c_str
    - SQLCommand
    - std::unique_ptr<GDALRelationship>::GetRelatedTableType
    - std::unique_ptr<GDALRelationship>::GetRightTableFields
    - GDALGeoPackageDataset::ClearCachedRelationships
    - GetRelationship
    - std::unique_ptr<GDALRelationship>::get
    - std::unique_ptr<GDALRelationship>::GetMappingTableName
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: "bool GDALGeoPackageDataset::UpdateRelationship(\n    std::unique_ptr<GDALRelationship>
      &&relationship,\n    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10629,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10632,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10635,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10644,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp:10644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10649
      start: 10626
    functionDepth: 1
    functionLinenumber: 10626
    functionLinenumberEnd: 10649
    functionName: '&

      GDALGeoPackageDataset::GetSqliteMasterContent()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - empty
    - SQLQuery
    - std::move
    - emplace_back
    linkageType: ''
    returnType: std::vector<SQLSqliteMasterContent>
    signature: 'std::vector<SQLSqliteMasterContent> &

      GDALGeoPackageDataset::GetSqliteMasterContent()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:27,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:30,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - poDS
    - osSQLIn
    - hStmtIn
    - bUseStatementForGetNextFeature
    - bEmptyLayer
    argTypes:
    - GDALGeoPackageDataset*
    - CPLString
    - sqlite3_stmt*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: OGRGeoPackageSelectLayer::OGRGeoPackageSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 0
    functionsReached:
    - BuildFeatureDefn
    - OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: "void OGRGeoPackageSelectLayer::OGRGeoPackageSelectLayer(\n    GDALGeoPackageDataset
      *poDS, const CPLString &osSQLIn,\n    sqlite3_stmt *hStmtIn, bool bUseStatementForGetNextFeature,\n
      \   bool bEmptyLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: OGRGeoPackageSelectLayer::~OGRGeoPackageSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageSelectLayer::~OGRGeoPackageSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: OGRGeoPackageSelectLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageSelectLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: OGRGeoPackageSelectLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGeoPackageSelectLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: OGRGeoPackageSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGeoPackageSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:86,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:92,1
    - Dst: m_osSQLCurrent::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:92,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:106,1
    - Dst: m_osSQLCurrent::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:108,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:109,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: OGRGeoPackageSelectLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - CPLDebug
    - ClearStatement
    - m_osSQLCurrent::c_str
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageSelectLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: OGRGeoPackageSelectLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGeoPackageSelectLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: OGRGeoPackageSelectLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 0
    functionsReached:
    - SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageSelectLayer::ISetSpatialFilter(int iGeomField,\n
      \                                                  const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageSelectLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: OGRGeoPackageSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageSelectLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRGeoPackageSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: OGRGeoPackageSelectLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageselectlayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGeoPackageSelectLayer::IGetExtent(int iGeomField,\n                                            OGREnvelope
      *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: GDALGPKGMBTilesLikePseudoDataset::GDALGPKGMBTilesLikePseudoDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset(const GDALGPKGMBTilesLikePseudoDataset
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: "&\n    operator=(const GDALGPKGMBTilesLikePseudoDataset &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALGPKGMBTilesLikePseudoDataset
    signature: "GDALGPKGMBTilesLikePseudoDataset &\n    operator=(const GDALGPKGMBTilesLikePseudoDataset
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: GDALGPKGMBTilesLikeRasterBand::GDALGPKGMBTilesLikeRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikeRasterBand(const GDALGPKGMBTilesLikeRasterBand
      &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: "&\n    operator=(const GDALGPKGMBTilesLikeRasterBand &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALGPKGMBTilesLikeRasterBand
    signature: "GDALGPKGMBTilesLikeRasterBand &\n    operator=(const GDALGPKGMBTilesLikeRasterBand
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: GDALGPKGMBTilesLikeRasterBand::GetUnitType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetUnitType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osUom
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: GDALGPKGMBTilesLikeRasterBand::SetUnitTypeInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUnitTypeInternal(const CPLString &osUom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nBlockXOff
    - nBlockYOff
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: GDALGPKGMBTilesLikeRasterBand::AccessibleTryGetLockedBlockRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gpkgmbtilescommon.h
    functionUses: 0
    functionsReached:
    - TryGetLockedBlockRef
    linkageType: ''
    returnType: GDALRasterBlock
    signature: "GDALRasterBlock *AccessibleTryGetLockedBlockRef(int nBlockXOff,\n
      \                                                   int nBlockYOff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:36,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: GDALGPKGMBTilesLikePseudoDataset::GDALGPKGMBTilesLikePseudoDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset::GDALGPKGMBTilesLikePseudoDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:58,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:60,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:63,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:64,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:65,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:68,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: GDALGPKGMBTilesLikePseudoDataset::~GDALGPKGMBTilesLikePseudoDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_vfs_unregister
    - VSIUnlink
    - CPLFree
    - sqlite3_close
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset::~GDALGPKGMBTilesLikePseudoDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:79,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - eDT
    argTypes:
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: GDALGPKGMBTilesLikePseudoDataset::SetDataType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset::SetDataType(GDALDataType eDT)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dfOffset
    - dfScale
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: GDALGPKGMBTilesLikePseudoDataset::SetGlobalOffsetScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GDALGPKGMBTilesLikePseudoDataset::SetGlobalOffsetScale(double
      dfOffset,\n                                                            double
      dfScale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - poTPD
    - nTileWidth
    - nTileHeight
    argTypes:
    - GDALGPKGMBTilesLikePseudoDataset*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: GDALGPKGMBTilesLikeRasterBand::GDALGPKGMBTilesLikeRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GDALGPKGMBTilesLikeRasterBand::GDALGPKGMBTilesLikeRasterBand(\n
      \   GDALGPKGMBTilesLikePseudoDataset *poTPD, int nTileWidth, int nTileHeight)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:128,1
    - Dst: IFlushCacheWithErrCode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: GDALGPKGMBTilesLikeRasterBand::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - IFlushCacheWithErrCode
    - OGRDGNV8DataSource::FlushCache
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikeRasterBand::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:147,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:151,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:155,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset*::ICommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 172
    functionName: GDALGPKGMBTilesLikePseudoDataset::FlushTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGPKGMBTilesLikePseudoDataset*::ICommitTransaction
    - IGetUpdate
    - GDALGPKGMBTilesLikePseudoDataset::WriteTile
    - GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikePseudoDataset::FlushTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:180,1
    - Dst: m_poParentDS::IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:189,1
    - Dst: m_poCT::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:191,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:201,1
    - Dst: m_osRasterTable::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:203,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:209,1
    - Dst: m_osRasterTable::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:213,1
    - Dst: GetRowFromIntoTopConvention
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:215,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:224,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:226,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:229,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:230,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:230,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:232,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:233,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:234,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:235,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:239,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:240,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:240,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:245,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:248,1
    - Dst: m_poCT::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:250,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:260,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:263,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 271
    functionName: GDALGPKGMBTilesLikeRasterBand::GetColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - m_poParentDS::IGetRasterBand
    - reinterpret_cast<GByte *>
    - sqlite3_finalize
    - GetRasterCount
    - sqlite3_column_type
    - auto::GetRasterBand
    - sqlite3_mprintf
    - CPLString::c_str
    - OGRAPISpyOpen
    - const_cast<void *>
    - m_osRasterTable::c_str
    - VSIUnlink
    - VSIFileFromMemBuffer
    - m_poCT::Clone
    - std::unique_ptr<GDALDataset>
    - GetRowFromIntoTopConvention
    - VSIFCloseL
    - auto::GetRasterCount
    - sqlite3_column_blob
    - sqlite3_step
    - sqlite3_free
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GDALGPKGMBTilesLikeRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:289,1
    - Dst: GDALGPKGMBTilesLikeRasterBand::AssignColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 296
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 296
    functionName: GDALGPKGMBTilesLikeRasterBand::SetColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterCount
    - CPLError
    - GDALGPKGMBTilesLikeRasterBand::AssignColorTable
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikeRasterBand::SetColorTable(GDALColorTable
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: GDALGPKGMBTilesLikeRasterBand::AssignColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - GDALColorTable*::Clone
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikeRasterBand::AssignColorTable(const GDALColorTable
      *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:320,1
    - Dst: GDALGPKGMBTilesLikeRasterBand::GetColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:321,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:322,1
    - Dst: static_cast<GDALColorInterp>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: GDALGPKGMBTilesLikeRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterCount
    - GDALGPKGMBTilesLikeRasterBand::GetColorTable
    - static_cast<GDALColorInterp>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GDALGPKGMBTilesLikeRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:337,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:340,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:346,1
    - Dst: GDALGetColorInterpretationName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:348,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 1
    argNames:
    - eInterp
    argTypes:
    - GDALColorInterp
    constantsTouched: []
    func_position:
      end: 350
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 350
    functionName: GDALGPKGMBTilesLikeRasterBand::SetColorInterpretation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterCount
    - GDALGetColorInterpretationName
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikeRasterBand::SetColorInterpretation(GDALColorInterp
      eInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable*::GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - poCT
    - c1
    - c2
    - c3
    - c4
    - nTileBandCount
    argTypes:
    - GDALColorTable*
    - GByte
    - GByte
    - GByte
    - GByte
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: GPKGFindBestEntry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALColorTable*::GetColorEntry
    linkageType: ''
    returnType: int
    signature: "int GPKGFindBestEntry(GDALColorTable *poCT, GByte c1, GByte c2, GByte
      c3,\n                             GByte c4, int nTileBandCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:391,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pabyData
    - nPixels
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: GDALGPKGMBTilesLikePseudoDataset::FillBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - memset
    - GDALCopyWords64
    linkageType: ''
    returnType: void
    signature: "void GDALGPKGMBTilesLikePseudoDataset::FillBuffer(GByte *pabyData,\n
      \                                                 size_t nPixels)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:407,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pabyData
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGPKGMBTilesLikePseudoDataset::FillBuffer
    - IGetRasterBand
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile(GByte *pabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:421,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pabyData
    argTypes:
    - GByte*
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGPKGMBTilesLikePseudoDataset::FillBuffer
    - IGetRasterBand
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand(GByte
      *pabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:438,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:440,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:440,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:441,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:448,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:449,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:455,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:456,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:460,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:462,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:469,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:475,1
    - Dst: auto::RasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:479,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:481,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:484,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:497,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:500,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:511,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:512,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:519,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:520,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:522,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:534,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:542,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:549,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:555,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:559,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:569,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:575,1
    - Dst: auto::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:575,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:576,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:580,1
    - Dst: GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:587,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:588,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:589,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:590,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:593,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:609,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:613,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:614,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:616,1
    - Dst: GPKGFindBestEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:616,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:620,1
    - Dst: GDALColorTable*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:627,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:629,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:638,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:648,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:653,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:660,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:662,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:663,1
    - Dst: GDALColorTable*::GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:674,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:675,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:676,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:677,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:678,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:698,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:699,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:702,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:709,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 137
    argCount: 5
    argNames:
    - osMemFileName
    - pabyTileData
    - dfTileOffset
    - dfTileScale
    - pbIsLossyFormat
    argTypes:
    - CPLString
    - GByte*
    - double
    - double
    - bool*
    constantsTouched: []
    func_position:
      end: 713
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 713
    functionName: GDALGPKGMBTilesLikePseudoDataset::ReadTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - std::map::end
    - GDALColorTable*::GetColorEntryCount
    - IGetRasterBand
    - GPKGFindBestEntry
    - static_cast<GByte>
    - auto::GetRasterYSize
    - auto::GetDriver
    - CPLError
    - static_cast<GUInt16>
    - static_cast<GPtrDiff_t>
    - auto::GetRasterBand
    - OGRAPISpyOpen
    - CPLString::c_str
    - static_cast<GUInt32>
    - floor
    - GetColorEntry
    - static_cast<GInt16>
    - auto::RasterIO
    - std::map::find
    - CPLAssert
    - GDALColorTable*::IsSame
    - GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
    - reinterpret_cast<GUInt16 *>
    - std::unique_ptr<GDALDataset>
    - static_cast<size_t>
    - auto::GetRasterXSize
    - auto::GetRasterCount
    - EQUAL
    - GDALColorTable*::GetColorEntry
    - memset
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGPKGMBTilesLikePseudoDataset::ReadTile(\n    const CPLString
      &osMemFileName, GByte *pabyTileData, double dfTileOffset,\n    double dfTileScale,
      bool *pbIsLossyFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:722,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:773,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:774,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:787,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:793,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:799,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - nRow
    - nCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 806
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 806
    functionName: GDALGPKGMBTilesLikePseudoDataset::ReadTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - GDALGPKGMBTilesLikePseudoDataset::ReadTile
    - IGetRasterBand
    - memcpy
    linkageType: ''
    returnType: GByte
    signature: GByte *GDALGPKGMBTilesLikePseudoDataset::ReadTile(int nRow, int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:828,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:829,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:832,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:833,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:834,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:835,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:837,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - nTileId
    - dfTileOffset
    - dfTileScale
    argTypes:
    - GIntBig
    - double
    - double
    constantsTouched: []
    func_position:
      end: 841
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 841
    functionName: GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_column_double
    - sqlite3_bind_int64
    - sqlite3_step
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale(\n    GIntBig
      nTileId, double &dfTileOffset, double &dfTileScale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:853,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:864,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:869,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:881,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:886,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:891,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:893,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:897,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:898,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:899,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:899,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:901,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:902,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:902,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:904,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:908,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:909,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:911,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:912,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:916,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:917,1
    - Dst: sqlite3_sql
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:919,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:919,1
    - Dst: IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:919,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:920,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:925,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:937,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:940,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:943,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:947,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:957,1
    - Dst: sqlite3_column_bytes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:957,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:958,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:959,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:959,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:964,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:970,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:972,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:976,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - nRow
    - nCol
    - pabyData
    - pbIsLossyFormat
    argTypes:
    - int
    - int
    - GByte*
    - bool*
    constantsTouched: []
    func_position:
      end: 981
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 981
    functionName: GDALGPKGMBTilesLikePseudoDataset::ReadTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 2
    functionsReached:
    - IGetDB
    - IGetRasterBand
    - CPLDebug
    - GDALGPKGMBTilesLikePseudoDataset::ReadTile
    - sqlite3_finalize
    - CPLError
    - SQLPrepareWithError
    - sqlite3_column_int64
    - GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale
    - sqlite3_column_type
    - CPLString::c_str
    - const_cast<void *>
    - static_cast<int>
    - VSIUnlink
    - CPLAssert
    - GDALGPKGMBTilesLikePseudoDataset::FillEmptyTile
    - sqlite3_errmsg
    - static_cast<GByte *>
    - GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - sqlite3_column_bytes
    - sqlite3_column_blob
    - sqlite3_sql
    - sqlite3_step
    - sqlite3_free
    - VSIMemGenerateHiddenFilename
    - memcpy
    linkageType: ''
    returnType: GByte
    signature: "GByte *GDALGPKGMBTilesLikePseudoDataset::ReadTile(int nRow, int nCol,\n
      \                                                 GByte *pabyData,\n                                                  bool
      *pbIsLossyFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:991,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1017,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1018,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1019,1
    - Dst: WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1060,1
    - Dst: ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1065,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1069,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1075,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1079,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1083,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1085,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1101,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1104,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1104,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1114,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1128,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1133,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1181,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1192,1
    - Dst: GDALCopyWords
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1200,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1206,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 102
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1212
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1212
    functionName: GDALGPKGMBTilesLikeRasterBand::IReadBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - WriteTile
    - static_cast<GPtrDiff_t>
    - GDALRasterBlock*::GetDirty
    - GetRasterBand
    - CPLDebug
    - GDALRasterBlock*::DropLock
    - CPLAssert
    - ReadTile
    - GDALRasterBlock*::GetDataRef
    - static_cast<GByte *>
    - GetRasterCount
    - GDALCopyWords
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGPKGMBTilesLikeRasterBand::IReadBlock(int nBlockXOff, int
      nBlockYOff,\n                                                 void *pData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGPKGMBTilesLikeRasterBand::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1225,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1239,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1254,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1262,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1266,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1267,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1274,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1274,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1275,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1277,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1283,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1291,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1291,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1307,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1307,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1307,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1324,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1324,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1326,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1327,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1328,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1343,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 6
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nMaskFlagStop
    - pdfDataPct
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 1350
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1350
    functionName: GDALGPKGMBTilesLikeRasterBand::IGetDataCoverageStatus
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<size_t>
    - std::set::size
    - GDALGPKGMBTilesLikeRasterBand::FlushCache
    - std::set::insert
    - std::pair
    - CPLDebug
    - std::set::find
    - min
    - max
    - swap
    - sqlite3_free
    - sqlite3_step
    - sqlite3_finalize
    - std::set::empty
    - std::set::end
    linkageType: ''
    returnType: int
    signature: "int GDALGPKGMBTilesLikeRasterBand::IGetDataCoverageStatus(int nXOff,
      int nYOff,\n                                                          int nXSize,\n
      \                                                         int nYSize,\n                                                          int
      nMaskFlagStop,\n                                                          double
      *pdfDataPct)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1361,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1361,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1363,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1363,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1368,1
    - Dst: GDALDriver*::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1368,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1373,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1379
    functionName: WEBPSupports4Bands
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::GetMetadataItem
    - GDALGetDriverByName
    - CPLTestBool
    - FromHandle
    - strstr
    - CPLError
    - CPLGetConfigOption
    - CPL_TO_BOOL
    linkageType: ''
    returnType: bool
    signature: bool WEBPSupports4Bands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1392,1
    - Dst: IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1392,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nRow
    - nCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1395
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1395
    functionName: GDALGPKGMBTilesLikePseudoDataset::GetTileId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger64
    - sqlite3_free
    - IGetDB
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GDALGPKGMBTilesLikePseudoDataset::GetTileId(int nRow, int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1416,1
    - Dst: GetRowFromIntoTopConvention
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1419,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1422,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - nRow
    - nCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1425
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1425
    functionName: GDALGPKGMBTilesLikePseudoDataset::DeleteTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GetRowFromIntoTopConvention
    - sqlite3_free
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: bool GDALGPKGMBTilesLikePseudoDataset::DeleteTile(int nRow, int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1442,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1443,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1444,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - nTileId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1448
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1448
    functionName: GDALGPKGMBTilesLikePseudoDataset::DeleteFromGriddedTileAncillary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_bind_int64
    - sqlite3_free
    - sqlite3_step
    linkageType: ''
    returnType: bool
    signature: "bool GDALGPKGMBTilesLikePseudoDataset::DeleteFromGriddedTileAncillary(\n
      \   GIntBig nTileId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1462,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1479,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1480,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1490,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1514,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1536,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1537,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 52
    argCount: 16
    argNames:
    - pabyData
    - nPixels
    - bIsInt16
    - bHasNoData
    - dfNoDataValue
    - usGPKGNull
    - m_dfOffset
    - m_dfScale
    - pTempTileBuffer
    - dfTileOffset
    - dfTileScale
    - dfTileMin
    - dfTileMax
    - dfTileMean
    - dfTileStdDev
    - nValidPixels
    argTypes:
    - void*
    - GPtrDiff_t
    - bool
    - bool
    - double
    - GUInt16
    - double
    - double
    - GUInt16*
    - double
    - double
    - double
    - double
    - double
    - double
    - GPtrDiff_t
    constantsTouched: []
    func_position:
      end: 1548
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1548
    functionName: ProcessInt16UInt16Tile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUInt16>
    - sqrt
    - min
    - max
    - CPLAssert
    - reinterpret_cast<const T *>
    - simple_min
    linkageType: ''
    returnType: void
    signature: "void ProcessInt16UInt16Tile(\n    const void *pabyData, GPtrDiff_t
      nPixels, bool bIsInt16, bool bHasNoData,\n    double dfNoDataValue, GUInt16
      usGPKGNull, double m_dfOffset,\n    double m_dfScale, GUInt16 *pTempTileBuffer,
      double &dfTileOffset,\n    double &dfTileScale, double &dfTileMin, double &dfTileMax,\n
      \   double &dfTileMean, double &dfTileStdDev, GPtrDiff_t &nValidPixels)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1565,1
    - Dst: GDALRasterBlock::EnterDisableDirtyBlockFlush
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1570,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::WriteTileInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1572,1
    - Dst: GDALRasterBlock::LeaveDisableDirtyBlockFlush
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1576
    functionName: GDALGPKGMBTilesLikePseudoDataset::WriteTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - GDALRasterBlock::EnterDisableDirtyBlockFlush
    - GDALRasterBlock::LeaveDisableDirtyBlockFlush
    - GDALGPKGMBTilesLikePseudoDataset::WriteTileInternal
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikePseudoDataset::WriteTile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1581,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1603,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1620,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1625,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1636,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1637,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1699,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1699,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1711,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1711,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1714,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1715,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1716,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1717,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1718,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1719,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1744,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1746,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1751,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1757,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1771,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1784,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1795,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1800,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1809,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1813,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1821,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1829,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1831,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1838,1
    - Dst: WEBPSupports4Bands
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1872,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1888,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1892,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1892,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1895,1
    - Dst: GetColorEntryCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1931,1
    - Dst: GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1933,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1948,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1952,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1953,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1972,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1973,1
    - Dst: ProcessInt16UInt16Tile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1977,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1979,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1980,1
    - Dst: ProcessInt16UInt16Tile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1987,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1989,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:1990,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2003,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2009,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2013,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2017,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2027,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2028,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2038,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2069,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2075,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2083,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2095,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2096,1
    - Dst: MEMCreateRasterBandEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2107,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2108,1
    - Dst: auto::AddMEMBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2110,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2119,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2124,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2128,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2140,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2141,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2151,1
    - Dst: MEMCreateRasterBandEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2153,1
    - Dst: auto::AddMEMBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2155,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2159,1
    - Dst: MEMCreateRasterBandEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2171,1
    - Dst: auto::AddMEMBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2175,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2178,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::GetTileId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2187,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2190,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteFromGriddedTileAncillary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2192,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2195,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2202,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2204,1
    - Dst: MEMCreateRasterBandEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2208,1
    - Dst: auto::AddMEMBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2211,1
    - Dst: VSIMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2218,1
    - Dst: VSIMalloc2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2221,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2224,1
    - Dst: GDALComputeMedianCutPCTInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2225,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2226,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2226,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2227,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2233,1
    - Dst: GDALDitherRGB2PCTInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2237,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2238,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2238,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2239,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2239,1
    - Dst: static_cast<GInt16 *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2241,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2244,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2246,1
    - Dst: GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2254,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2255,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2256,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2257,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2258,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2269,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2271,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2273,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2275,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2283,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2285,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2287,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2289,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2307,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2309,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2311,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2313,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2320,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2322,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2324,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2333,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2333,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2336,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2339,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2344,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2345,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2348,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2350,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2353,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2356,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2361,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2362,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2367,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2367,1
    - Dst: GDALDriver*::CreateCopy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2370,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2372,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2373,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2377,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2380,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset*::IStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2387,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset*::ICommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2391,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2394,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2395,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset*::IStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2399,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2411,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2417,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2421,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2422,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2423,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2428,1
    - Dst: GetRowFromIntoTopConvention
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2431,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2432,1
    - Dst: IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2432,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2435,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2436,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::GetTileId
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2440,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DeleteFromGriddedTileAncillary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2445,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2447,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2452,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2454,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2457,1
    - Dst: IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2457,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2465,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2466,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2467,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2468,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2469,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2470,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2477,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2483,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2484,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2489,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2494,1
    CyclomaticComplexity: 205
    EdgeCount: 205
    ICount: 467
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 1579
    functionDepth: 5
    functionLinenumber: 1579
    functionLinenumberEnd: 2499
    functionName: GDALGPKGMBTilesLikePseudoDataset::WriteTileInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<GByte *>
    - IGetDB
    - IGetRasterBand
    - CPLDebug
    - WEBPSupports4Bands
    - VSIMalloc
    - GDALGPKGMBTilesLikePseudoDataset*::ICommitTransaction
    - GDALGPKGMBTilesLikePseudoDataset::ReadTile
    - GDALColorTable::GDALColorTable
    - static_cast<GByte>
    - GDALComputeMedianCutPCTInternal
    - sqlite3_finalize
    - GetColorEntryCount
    - CPLError
    - static_cast<GUInt32 *>
    - std::isnan
    - CPL_TO_BOOL
    - SQLPrepareWithError
    - GDALClose
    - static_cast<GIntBig>
    - GDALGPKGMBTilesLikePseudoDataset*::IStartTransaction
    - static_cast<GUInt16>
    - static_cast<GPtrDiff_t>
    - auto::GetRasterBand
    - sqlite3_mprintf
    - MEMCreateRasterBandEx
    - sqlite3_bind_int64
    - std::isinf
    - VSIGetMemFileBuffer
    - sqlite3_bind_double
    - auto::AddMEMBand
    - c_str
    - static_cast<int>
    - FromHandle
    - static_cast<float>
    - IGetUpdate
    - VSIUnlink
    - GDALGPKGMBTilesLikePseudoDataset::DeleteTile
    - MEMDataset::Create
    - GetColorEntry
    - static_cast<GUInt16 *>
    - CPLAssert
    - min
    - CPL_IGNORE_RET_VAL
    - GDALGPKGMBTilesLikePseudoDataset::GetTileId
    - CPLSPrintf
    - GDALDriver*::CreateCopy
    - sqlite3_errmsg
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - CSLSetNameValue
    - GDALGetDriverByName
    - static_cast<size_t>
    - GetRowFromIntoTopConvention
    - static_cast<GInt16 *>
    - VSIStatL
    - ProcessInt16UInt16Tile
    - GDALGPKGMBTilesLikePseudoDataset::DeleteFromGriddedTileAncillary
    - sqrt
    - sqlite3_bind_blob
    - CSLDestroy
    - EQUAL
    - max
    - VSIMalloc2
    - sqlite3_step
    - sqlite3_free
    - VSIMemGenerateHiddenFilename
    - memset
    - memcpy
    - GDALDitherRGB2PCTInternal
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikePseudoDataset::WriteTileInternal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2519,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2531,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2534,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2534,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2537,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2539,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2540,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2543,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2550,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2552,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2562,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2578,1
    - Dst: cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2612,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2613,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2618,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2620,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2628,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2640,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2648,1
    - Dst: sqlite3_column_bytes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2648,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2649,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2650,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2651,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2656,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2681,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2684,1
    - Dst: IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2684,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2688,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2690,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2696,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2698,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2698,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2699,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2701,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2702,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2703,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2704,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2708,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::ReadTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2713,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2715,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2771,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2772,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2780,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2787,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2797,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2799,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2801,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2803,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2814,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2819,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2823,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2825,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2833,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2835,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2841,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2845,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2852,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2858,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2859,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2860,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2862,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2865,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2865,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2866,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2868,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2871,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2876,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2878,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 157
    argCount: 1
    argNames:
    - bPartialFlush
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2882
      start: 2505
    functionDepth: 5
    functionLinenumber: 2505
    functionLinenumberEnd: 2882
    functionName: GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 1
    functionsReached:
    - IGetDB
    - IGetRasterBand
    - CPLDebug
    - static_cast<const GByte *>
    - GDALGPKGMBTilesLikePseudoDataset::ReadTile
    - cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
    - sqlite3_finalize
    - GDALRasterBlock*::DropLock
    - CPLError
    - sqlite3_column_int64
    - GDALGPKGMBTilesLikePseudoDataset::GetTileOffsetAndScale
    - GDALRasterBlock*::GetDirty
    - sqlite3_column_type
    - CPLString::c_str
    - sqlite3_column_int
    - VSIMemGenerateHiddenFilename
    - static_cast<int>
    - SQLCommand
    - CPLString::Printf
    - VSIUnlink
    - CPLSPrintf
    - const_cast<GByte *>
    - CPLAssert
    - GDALGPKGMBTilesLikePseudoDataset::WriteTile
    - sqlite3_errmsg
    - GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
    - VSIFileFromMemBuffer
    - static_cast<size_t>
    - sqlite3_column_bytes
    - VSIFCloseL
    - sqlite3_column_blob
    - sqlite3_step
    - sqlite3_free
    - SQLPrepareWithError
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles(bool
      bPartialFlush)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2891,1
    - Dst: VSIGetDiskFreeSpace
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2900,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2900,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2904,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2911,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2914,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2914,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2917,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2917,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2922,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2926,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2926,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2929,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2939,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2943,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2945,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2888
    functionDepth: 6
    functionLinenumber: 2888
    functionLinenumberEnd: 2949
    functionName: GDALGPKGMBTilesLikePseudoDataset::DoPartialFlushOfPartialTilesIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - VSIGetDiskFreeSpace
    - c_str
    - VSIStatL
    - SQLCommand
    - CPLGetDirnameSafe
    - IGetRasterBand
    - CPLDebug
    - time
    - GDALGPKGMBTilesLikePseudoDataset::FlushRemainingShiftedTiles
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGPKGMBTilesLikePseudoDataset::DoPartialFlushOfPartialTilesIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2959,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2960,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2961,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2962,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2963,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2971,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2972,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2973,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2974,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2977,1
    - Dst: OGRSQLiteCreateVFS
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2979,1
    - Dst: sqlite3_vfs_register
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2980,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2981,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2988,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2992,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2994,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2997,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2998,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:2999,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3011,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3013,1
    - Dst: IGetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3027,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3061,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3070,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3075,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3077,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3079,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3080,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3083,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3087,1
    - Dst: sqlite3_column_bytes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3087,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3088,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3089,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3090,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3095,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3097,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3103,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3104,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3105,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3108,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3109,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3111,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3117,1
    - Dst: Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3117,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3118,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3120,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3123,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3128,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3143,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3148,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3152,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3158,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3161,1
    - Dst: sqlite3_column_bytes
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3162,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3163,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3164,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3166,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3171,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3184,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3187,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3189,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3191,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DoPartialFlushOfPartialTilesIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3195,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3204,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3209,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3211,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3217,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3219,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3226,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3234,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3247,1
    - Dst: SQLPrepareWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3251,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3257,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3258,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3265,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3268,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3271,1
    - Dst: GDALGPKGMBTilesLikePseudoDataset::DoPartialFlushOfPartialTilesIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3275,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 149
    argCount: 7
    argNames:
    - nRow
    - nCol
    - nBand
    - nDstXOffset
    - nDstYOffset
    - nDstXSize
    - nDstYSize
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3279
      start: 2955
    functionDepth: 7
    functionLinenumber: 2955
    functionLinenumberEnd: 3279
    functionName: GDALGPKGMBTilesLikePseudoDataset::WriteShiftedTile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - OGRSQLiteCreateVFS
    - IGetRasterBand
    - CPLDebug
    - Create
    - sqlite3_finalize
    - CPLError
    - STARTS_WITH
    - GDALClose
    - CPLPopErrorHandler
    - sqlite3_open_v2
    - sqlite3_column_int
    - GDALGPKGMBTilesLikePseudoDataset::DoPartialFlushOfPartialTilesIfNecessary
    - sqlite3_open
    - c_str
    - static_cast<int>
    - SQLCommand
    - VSIUnlink
    - CPLSPrintf
    - CPLAssert
    - GDALGPKGMBTilesLikePseudoDataset::WriteTile
    - sqlite3_errmsg
    - GDALGPKGMBTilesLikePseudoDataset::FillEmptyTileSingleBand
    - static_cast<size_t>
    - GDALGetDriverByName
    - sqlite3_column_bytes
    - sqlite3_bind_blob
    - CPLResetExtensionSafe
    - sqlite3_vfs_register
    - sqlite3_column_blob
    - sqlite3_step
    - CPLPushErrorHandler
    - SQLPrepareWithError
    - memcpy
    - GDALDataset*::RasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGPKGMBTilesLikePseudoDataset::WriteShiftedTile(\n    int
      nRow, int nCol, int nBand, int nDstXOffset, int nDstYOffset,\n    int nDstXSize,
      int nDstYSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3289,1
    - Dst: ICanIWriteBlock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3294,1
    - Dst: WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3335,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3346,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3352,1
    - Dst: cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3367,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3368,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3370,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3373,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3373,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3374,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3379,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3412,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3417,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3434,1
    - Dst: FillBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3463,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3465,1
    - Dst: FillBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3476,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3478,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3482,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3503,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3523,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3540,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3552,1
    - Dst: GDALCopyWords
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3561,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3568,1
    - Dst: WriteShiftedTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3578,1
    - Dst: WriteTile
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3590,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 122
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3597
      start: 3285
    functionDepth: 1
    functionLinenumber: 3285
    functionLinenumberEnd: 3597
    functionName: GDALGPKGMBTilesLikeRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - WriteTile
    - static_cast<size_t>
    - static_cast<GPtrDiff_t>
    - GDALRasterBlock*::GetDirty
    - GetRasterBand
    - ICanIWriteBlock
    - CPLDebug
    - min
    - GDALRasterBlock*::DropLock
    - FillBuffer
    - cpl::down_cast<GDALGPKGMBTilesLikeRasterBand *>
    - GDALRasterBlock*::GetDataRef
    - WriteShiftedTile
    - static_cast<GByte *>
    - GetRasterCount
    - GDALCopyWords
    - memcpy
    - GDALRasterBlock*::MarkClean
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGPKGMBTilesLikeRasterBand::IWriteBlock(int nBlockXOff,\n
      \                                                 int nBlockYOff, void *pData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 3612
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3612
    functionName: GDALGPKGMBTilesLikeRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double GDALGPKGMBTilesLikeRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfNoDataValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 3622
      start: 3618
    functionDepth: 0
    functionLinenumber: 3618
    functionLinenumberEnd: 3622
    functionName: GDALGPKGMBTilesLikeRasterBand::SetNoDataValueInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALGPKGMBTilesLikeRasterBand::SetNoDataValueInternal(double dfNoDataValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDSIn
    - nTileWidth
    - nTileHeight
    argTypes:
    - GDALGeoPackageDataset*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3633
      start: 3628
    functionDepth: 0
    functionLinenumber: 3628
    functionLinenumberEnd: 3633
    functionName: GDALGeoPackageRasterBand::GDALGeoPackageRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GDALGeoPackageRasterBand::GDALGeoPackageRasterBand(\n    GDALGeoPackageDataset
      *poDSIn, int nTileWidth, int nTileHeight)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3642,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3643,1
    - Dst: GDALGeoPackageDataset*::m_apoOverviewDS::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3639
    functionDepth: 0
    functionLinenumber: 3639
    functionLinenumberEnd: 3644
    functionName: GDALGeoPackageRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset*::m_apoOverviewDS::size
    - static_cast<int>
    - cpl::down_cast<GDALGeoPackageDataset *>
    linkageType: ''
    returnType: int
    signature: int GDALGeoPackageRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3653,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3654,1
    - Dst: GDALGeoPackageDataset*::m_apoOverviewDS::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3654,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3657
      start: 3650
    functionDepth: 0
    functionLinenumber: 3650
    functionLinenumberEnd: 3657
    functionName: GDALGeoPackageRasterBand::GetOverview
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset*::m_apoOverviewDS::size
    - GetRasterBand
    - static_cast<int>
    - reinterpret_cast<GDALGeoPackageDataset *>
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GDALGeoPackageRasterBand::GetOverview(int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3666,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3671,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3673,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3688,1
    - Dst: SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3696,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3701,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3703,1
    - Dst: SetNoDataValueInternal
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3708,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3723,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3725,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3731,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3735,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3735,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3737,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3738,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3740,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 1
    argNames:
    - dfNoDataValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 3743
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3743
    functionName: GDALGeoPackageRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUInt16>
    - static_cast<int>
    - cpl::down_cast<GDALGeoPackageDataset *>
    - SetNoDataValueInternal
    - static_cast<float>
    - sqlite3_step
    - sqlite3_free
    - sqlite3_bind_double
    - sqlite3_finalize
    - CPLError
    - std::isnan
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALGeoPackageRasterBand::SetNoDataValue(double dfNoDataValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3752,1
    - Dst: GDALGeoPackageDataset*::TryLoadXML
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3759,1
    - Dst: GDALGeoPackageDataset*::HasMetadataTables
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3761,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3774,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3775,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3782,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3788,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3789,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3791,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3794,1
    - Dst: GDALMultiDomainMetadata::XMLInit
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3795,1
    - Dst: GDALMultiDomainMetadata::GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3797,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3801,1
    - Dst: GDALGeoPackageDataset*::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3804,1
    - Dst: cpl::down_cast<GDALGeoPackageRasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3807,1
    - Dst: GDALGeoPackageDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3808,1
    - Dst: CSLMerge
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3813,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3815,1
    - Dst: auto::GDALPamRasterBand::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3816,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3817,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3822,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3826
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3826
    functionName: GDALGeoPackageRasterBand::LoadBandMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset*::GetRasterCount
    - CSLMerge
    - GDALMultiDomainMetadata::GetDomainList
    - OGRWFSDataSource::GetMetadata
    - STARTS_WITH
    - auto::RowCount
    - SQLQuery
    - GDALMultiDomainMetadata::XMLInit
    - GDALMultiDomainMetadata::GDALMultiDomainMetadata
    - auto::GDALPamRasterBand::SetMetadata
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - GDALGeoPackageDataset*::GetRasterBand
    - cpl::down_cast<GDALGeoPackageDataset *>
    - GDALGeoPackageDataset*::HasMetadataTables
    - GDALGeoPackageDataset*::TryLoadXML
    - cpl::down_cast<GDALGeoPackageRasterBand *>
    - CSLDestroy
    - EQUAL
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageRasterBand::LoadBandMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3835,1
    - Dst: GDALGeoPackageRasterBand::LoadBandMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3836,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3839,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3841,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3842,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3874,1
    - Dst: GDALGeoPackageDataset*::IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3874,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3875,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3883,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3884,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3885,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3885,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3888,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3902,1
    - Dst: GDALGeoPackageDataset*::IGetDB
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3902,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3903,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3904,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3910,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3914,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3917,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3922,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3923,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3924,1
    - Dst: Assign
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3926,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3926,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3927,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3928,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3930,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3932,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3934,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3936,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3938,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3940,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3943,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3832
    functionDepth: 2
    functionLinenumber: 3832
    functionLinenumberEnd: 3944
    functionName: GDALGeoPackageRasterBand::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - auto::RowCount
    - CPLAtof
    - SetNameValue
    - OGRDGNV8DataSource::GetMetadataItem
    - atoi
    - Assign
    - GDALGeoPackageRasterBand::LoadBandMetadata
    - std::isnan
    - CPLDebug
    - SQLQuery
    - EQUAL
    - CPLSPrintf
    - CSLDuplicate
    - sqlite3_free
    - reinterpret_cast<GDALGeoPackageDataset *>
    - List
    - OGRWFSDataSource::GetMetadata
    - GDALGeoPackageDataset*::IGetDB
    linkageType: ''
    returnType: char
    signature: char **GDALGeoPackageRasterBand::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageRasterBand::LoadBandMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3953,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3956,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3957,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3958,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3960,1
    - Dst: GDALGeoPackageRasterBand::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3960,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3963,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3964
      start: 3950
    functionDepth: 2
    functionLinenumber: 3950
    functionLinenumberEnd: 3964
    functionName: GDALGeoPackageRasterBand::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource::GetMetadataItem
    - GDALGeoPackageRasterBand::LoadBandMetadata
    - EQUAL
    - GDALGeoPackageRasterBand::GetMetadata
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: "char *GDALGeoPackageRasterBand::GetMetadataItem(const char *pszName,\n
      \                                                     const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3974,1
    - Dst: GDALGeoPackageRasterBand::LoadBandMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3975,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3980,1
    - Dst: GDALPamRasterBand::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 3984
      start: 3970
    functionDepth: 2
    functionLinenumber: 3970
    functionLinenumberEnd: 3984
    functionName: GDALGeoPackageRasterBand::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - cpl::down_cast<GDALGeoPackageDataset *>
    - GDALPamRasterBand::SetMetadata
    - GDALGeoPackageRasterBand::LoadBandMetadata
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageRasterBand::SetMetadata(char **papszMetadata,\n
      \                                            const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3995,1
    - Dst: GDALGeoPackageRasterBand::LoadBandMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3996,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:3998,1
    - Dst: GDALPamRasterBand::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4001
      start: 3990
    functionDepth: 2
    functionLinenumber: 3990
    functionLinenumberEnd: 4001
    functionName: GDALGeoPackageRasterBand::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::SetMetadataItem
    - STARTS_WITH
    - cpl::down_cast<GDALGeoPackageDataset *>
    - GDALGeoPackageRasterBand::LoadBandMetadata
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALGeoPackageRasterBand::SetMetadataItem(const char *pszName,\n
      \                                                const char *pszValue,\n                                                 const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGeoPackageRasterBand::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4011,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4014,1
    - Dst: CPLParseNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4017,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4018,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4019,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4020,1
    - Dst: GDALGeoPackageRasterBand::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4025,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp:4025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4026
      start: 4007
    functionDepth: 3
    functionLinenumber: 4007
    functionLinenumberEnd: 4026
    functionName: GDALGeoPackageRasterBand::InvalidateStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp
    functionUses: 0
    functionsReached:
    - CPLParseNameValue
    - CPLAssert
    - CPLStringList::SetNameValue
    - GDALGeoPackageRasterBand::GetMetadata
    - STARTS_WITH
    - CPLFree
    - GDALGeoPackageRasterBand::SetMetadata
    - CPLStringList::List
    linkageType: ''
    returnType: void
    signature: void GDALGeoPackageRasterBand::InvalidateStatistics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:26,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:26,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:26,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:26,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: ENDS_WITH_CI
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ENDS_WITH_CI(const char *a, const char *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:37,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:42,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:42,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:52,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:53,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:54,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:54,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:58,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:59,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:59,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:60,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:63,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:64,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:64,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:76,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:76,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:94,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:95,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:97,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:104,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:104,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:115,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:124,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:131,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:150,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:150,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:182,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:194,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:206,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:218,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:218,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:220,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:221,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:222,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:226,1
    - Dst: ENDS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:234,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 73
    argCount: 3
    argNames:
    - poOpenInfo
    - osFilenameInGpkgZip
    - bEmitWarning
    argTypes:
    - GDALOpenInfo*
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 241
    functionName: OGRGeoPackageDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - c_str
    - reinterpret_cast<const char *>
    - CPL_MSBWORD32
    - CPLGetFilename
    - CPLStringList::size
    - CPLDebug
    - EQUAL
    - VSIReadDirEx
    - GDALOpenInfo*::IsExtensionEqualToCI
    - strlen
    - ENDS_WITH_CI
    - std::string
    - CPLError
    - STARTS_WITH
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int OGRGeoPackageDriverIdentify(GDALOpenInfo *poOpenInfo,\n                                       std::string
      &osFilenameInGpkgZip,\n                                       bool bEmitWarning)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: OGRGeoPackageDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 1
    functionsReached:
    - OGRGeoPackageDriverIdentify
    linkageType: ''
    returnType: int
    signature: int OGRGeoPackageDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: OGRGeoPackageDriverSubdatasetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageDriverSubdatasetInfo(const std::string &fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:268,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:268,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:273,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:273,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:295,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:296,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 310
    functionName: OGRGeoPackageDriverSubdatasetInfo::parseFileName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - c_str
    - STARTS_WITH_CI
    - append
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageDriverSubdatasetInfo::parseFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:315,1
    - Dst: std::make_unique<OGRGeoPackageDriverSubdatasetInfo>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:318,1
    - Dst: std::unique_ptr::GetSubdatasetComponent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:319,1
    - Dst: std::unique_ptr::GetPathComponent
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:320,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: OGRGeoPackageDriverGetSubdatasetInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetSubdatasetComponent
    - std::unique_ptr::GetPathComponent
    - STARTS_WITH_CI
    - std::unique_ptr::release
    - std::make_unique<OGRGeoPackageDriverSubdatasetInfo>
    linkageType: ''
    returnType: GDALSubdatasetInfo
    signature: 'GDALSubdatasetInfo *

      OGRGeoPackageDriverGetSubdatasetInfo(const char *pszFileName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeoPackageDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:335,1
    - Dst: GDALGeoPackageDataset::GDALGeoPackageDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:339,1
    - Dst: GDALGeoPackageDataset*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: OGRGeoPackageDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset*::Open
    - GDALGeoPackageDataset::GDALGeoPackageDataset
    - OGRGeoPackageDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGeoPackageDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:359,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:362,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:364,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:364,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:376,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:380,1
    - Dst: GDALGeoPackageDataset::GDALGeoPackageDataset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:385,1
    - Dst: GDALGeoPackageDataset*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBands
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 394
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 394
    functionName: OGRGeoPackageDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGeoPackageDataset::GDALGeoPackageDataset
    - GDALGeoPackageDataset*::Create
    - EQUAL
    - strcmp
    - strlen
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGeoPackageDriverCreate(const char *pszFilename,\n
      \                                             int nXSize, int nYSize,\n                                              int
      nBands, GDALDataType eDT,\n                                              char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:406,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:406,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:407,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:407,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:407,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: OGRGeoPackageDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - std::string::c_str
    - CPL_IGNORE_RET_VAL
    - VSIStatL
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGeoPackageDriverDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: GDALGPKGDriver::GDALGPKGDriver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALGPKGDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGPKGDriver::InitializeCreationOptionList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:435,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 437
    functionName: GDALGPKGDriver::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadata
    - GDALGPKGDriver::InitializeCreationOptionList
    linkageType: ''
    returnType: char
    signature: char **GetMetadata(const char *pszDomain) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:444,1
    - Dst: GDALGPKGDriver::InitializeCreationOptionList
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:446,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: GDALGPKGDriver::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - GDALGPKGDriver::InitializeCreationOptionList
    linkageType: ''
    returnType: char
    signature: "char *GDALGPKGDriver::GetMetadataItem(const char *pszName,\n                                            const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gdal::TileMatrixSet::listPredefinedTileMatrixSets
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:571,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:574,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:574,1
    - Dst: auto::haveAllLevelsSameTopLeft
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:575,1
    - Dst: auto::haveAllLevelsSameTileSize
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:576,1
    - Dst: auto::hasOnlyPowerOfTwoVaryingScales
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:577,1
    - Dst: auto::hasVariableMatrixWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:578,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:587,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 588
    functionName: GDALGPKGDriver::InitializeCreationOptionList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 2
    functionsReached:
    - gdal::TileMatrixSet::listPredefinedTileMatrixSets
    - auto::haveAllLevelsSameTileSize
    - c_str
    - auto::hasVariableMatrixWidth
    - auto::haveAllLevelsSameTopLeft
    - auto::hasOnlyPowerOfTwoVaryingScales
    - gdal::TileMatrixSet::parse
    - SetMetadataItem
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void GDALGPKGDriver::InitializeCreationOptionList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddArg
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:607,1
    - Dst: _
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:607,1
    - Dst: SetAutoCompleteFunctionForFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 611
    functionName: OGRGeoPackageRepackAlgorithm::OGRGeoPackageRepackAlgorithm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - AddArg
    - SetAutoCompleteFunctionForFilename
    - _
    linkageType: ''
    returnType: void
    signature: void OGRGeoPackageRepackAlgorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<GDALGeoPackageDataset *>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:623,1
    - Dst: GetDatasetRef
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:623,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:626,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:627,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:630,1
    - Dst: auto::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:631,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 633
    functionName: OGRGeoPackageRepackAlgorithm::RunImpl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - CPLErrorReset
    - GetDatasetRef
    - dynamic_cast<GDALGeoPackageDataset *>
    - CPLGetLastErrorType
    - auto::ExecuteSQL
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool OGRGeoPackageRepackAlgorithm::RunImpl(GDALProgressFunc, void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:642,1
    - Dst: std::make_unique<OGRGeoPackageRepackAlgorithm>
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aosPath
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 650
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 650
    functionName: OGRGeoPackageDriverInstantiateAlgorithm
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRGeoPackageRepackAlgorithm>
    - std::vector<std::string>::size
    linkageType: ''
    returnType: GDALAlgorithm
    signature: 'GDALAlgorithm *

      OGRGeoPackageDriverInstantiateAlgorithm(const std::vector<std::string> &aosPath)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:658,1
    - Dst: GDALGPKGDriver::GDALGPKGDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:661,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:663,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:664,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:665,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:666,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:667,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:668,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:669,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:670,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:671,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:672,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:673,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:674,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:675,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:676,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:679,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:680,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:681,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:682,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:685,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:731,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:782,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:785,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:787,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:791,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:795,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:796,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:797,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:798,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:799,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:800,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:801,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:802,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:803,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:804,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:805,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:807,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:810,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:811,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:814,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:817,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:821,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:824,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:827,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:830,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:831,1
    - Dst: GDALDriver*::DeclareAlgorithm
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:843,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:845,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 848
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 848
    functionName: RegisterOGRGeoPackage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::DeclareAlgorithm
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GetGDALDriverManager
    - GDALGPKGDriver::GDALGPKGDriver
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGeoPackage()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: OGRGmtDataSource::OGRGmtDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGmtDataSource::OGRGmtDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: OGRGmtDataSource::~OGRGmtDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGmtDataSource::~OGRGmtDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:46,1
    - Dst: OGRGmtLayer::OGRGmtLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:49,1
    - Dst: static_cast<OGRGmtLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:56,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pszFilename
    - fp
    - poSRS
    - bUpdateIn
    argTypes:
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 62
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 62
    functionName: OGRGmtDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRGmtLayer **>
    - CPLRealloc
    - OGRGmtLayer::OGRGmtLayer
    - CPL_TO_BOOL
    linkageType: ''
    returnType: int
    signature: "int OGRGmtDataSource::Open(const char *pszFilename, VSILFILE *fp,\n
      \                          const OGRSpatialReference *poSRS, int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:76,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:78,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:85,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:116,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:116,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:125,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:125,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:125,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:126,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:134,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:135,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:135,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:142,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:143,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:145,1
    - Dst: auto::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:154,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:155,1
    - Dst: auto::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:155,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:157,1
    - Dst: auto::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:157,1
    - Dst: auto::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:161,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:163,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:165,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:168,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:173,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:176,1
    - Dst: OGRGmtDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:182,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:185,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:187,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:187,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:192,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 194
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 194
    functionName: OGRGmtDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - strcmp
    - CPLError
    - STARTS_WITH
    - CPLGetExtensionSafe
    - auto::GetLayerDefn
    - auto::GetAuthorityCode
    - auto::exportToWkt
    - OGRGmtDataSource::Open
    - CPLString::c_str
    - wkbFlatten
    - VSIFPrintfL
    - OGRGeomFieldDefn*::GetType
    - auto::GetAuthorityName
    - VSIFOpenL
    - CPLFree
    - CPLFormFilenameSafe
    - VSIStrerror
    - CPLGetPathSafe
    - VSIFCloseL
    - auto::exportToProj4
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRGmtDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poGeomFieldDefn,\n                               CSLConstList
      /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:203,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: OGRGmtDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGmtDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: OGRGmtDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGmtDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:26,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: OGRGMTDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRGMTDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMTDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:42,1
    - Dst: OGRGmtDataSource::OGRGmtDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:45,1
    - Dst: OGRGmtDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: OGRGMTDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGmtDataSource*::Open
    - OGRGmtDataSource::OGRGmtDataSource
    - OGRGMTDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGMTDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGmtDataSource::OGRGmtDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: OGRGMTDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGmtDataSource::OGRGmtDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRGMTDriverCreate(const char *, CPL_UNUSED int nBands,\n
      \                                      CPL_UNUSED int nXSize,\n                                       CPL_UNUSED
      int nYSize,\n                                       CPL_UNUSED GDALDataType
      eDT, char **)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:76,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:79,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:87,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:89,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: RegisterOGRGMT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGMT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:27,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:29,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:31,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:40,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:40,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:41,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:41,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:42,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:47,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:58,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:60,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:62,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:65,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:69,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:89,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:90,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:92,1
    - Dst: std::string::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:96,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:100,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:102,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:104,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:108,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:116,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:118,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:119,1
    - Dst: importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:120,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:120,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:126,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:128,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:129,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:130,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:130,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:136,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:138,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:139,1
    - Dst: importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:140,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:148,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:150,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:152,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:154,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:156,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:158,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:165,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:170,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:172,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:173,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:174,1
    - Dst: CPLAtofM
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:175,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:180,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:188,1
    - Dst: CPLString::length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:188,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:203,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:205,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:205,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:209,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:211,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:212,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:213,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:214,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:217,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:220,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:221,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:228,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:229,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:233,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 113
    argCount: 5
    argNames:
    - poDS
    - pszFilename
    - fp
    - poSRS
    - bUpdateIn
    argTypes:
    - GDALDataset*
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 236
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 236
    functionName: OGRGmtLayer::OGRGmtLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - CPLAtofM
    - GetGeomFieldDefn
    - OGRGmtLayer::ReadLine
    - Reference
    - VSIFTellL
    - CPLString
    - STARTS_WITH
    - CPL_TO_BOOL
    - importFromProj4
    - SetGeomType
    - CPLString::c_str
    - SetAxisMappingStrategy
    - std::move
    - AddFieldDefn
    - CSLCount
    - GetName
    - std::string::back
    - CPLString::length
    - STARTS_WITH_CI
    - importFromWkt
    - VSIFSeekL
    - OGRFeatureDefn::OGRFeatureDefn
    - VSIFOpenL
    - OGRFieldDefn::SetName
    - strstr
    - SetDescription
    - CPLFree
    - std::string::length
    - OGRSpatialReference*::Clone
    - OGRSpatialReference::OGRSpatialReference
    - std::string::size
    - CPLGetBasenameSafe
    - CSLDestroy
    - OGRFieldDefn::SetType
    - EQUAL
    - std::string::substr
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: "void OGRGmtLayer::OGRGmtLayer(GDALDataset *poDS, const char *pszFilename,\n
      \                        VSILFILE *fp, const OGRSpatialReference *poSRS,\n                         int
      bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:247,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:248,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:248,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:257,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:258,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:265,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:268,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:271,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 275
    functionName: OGRGmtLayer::~OGRGmtLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - static_cast<int>
    - VSIFCloseL
    - VSIFSeekL
    - CSLDestroy
    - CPLDebug
    - Release
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRGmtLayer::~OGRGmtLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:291,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:294,1
    - Dst: find_first_of
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:311,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:314,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:315,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:317,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:322,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:324,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:327,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:336,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:342,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:344,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:345,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 353
    functionName: OGRGmtLayer::ReadLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - erase
    - CPLStringList::AddString
    - isspace
    - CSLDestroy
    - length
    - CPLStringList::StealList
    - find_first_of
    - substr
    - CPLFree
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: bool
    signature: bool OGRGmtLayer::ReadLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:366,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 368
    functionName: OGRGmtLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGmtLayer::ReadLine
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRGmtLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:382,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:384,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:390,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 398
    functionName: OGRGmtLayer::ScanAheadForHole
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGmtLayer::ReadLine
    - std::move
    - VSIFSeekL
    - VSIFTellL
    linkageType: ''
    returnType: bool
    signature: bool OGRGmtLayer::ScanAheadForHole()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:412,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:415,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:417,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:420,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 428
    functionName: OGRGmtLayer::NextIsFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - OGRGmtLayer::ReadLine
    - std::move
    - VSIFTellL
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool OGRGmtLayer::NextIsFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:448,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:450,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:457,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:457,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:460,1
    - Dst: OGRGmtLayer::ScanAheadForHole
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:461,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:464,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:464,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:465,1
    - Dst: OGRGmtLayer::NextIsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:467,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:469,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:471,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:471,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:473,1
    - Dst: OGRGmtLayer::ScanAheadForHole
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:480,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:481,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:481,1
    - Dst: OGRGmtLayer::NextIsFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:485,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:487,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:488,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:494,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:496,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:522,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:525,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:530,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:532,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:532,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:538,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:539,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:539,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:541,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:543,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:548,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:554,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:556,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:556,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:563,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:568,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:570,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:570,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:574,1
    - Dst: OGRPoint*::setX
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:575,1
    - Dst: OGRPoint*::setY
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:576,1
    - Dst: OGRPoint*::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:578,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:584,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:586,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:588,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:597,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:597,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:600,1
    - Dst: OGRMultiPolygon*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:601,1
    - Dst: OGRMultiPolygon*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:602,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:605,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:608,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:609,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:611,1
    - Dst: OGRPolygon*::getNumInteriorRings
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:612,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:615,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:617,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:623,1
    - Dst: OGRMultiLineString*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:625,1
    - Dst: OGRMultiLineString*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:625,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:628,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:630,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:635,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:640,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:640,1
    - Dst: OGRGmtLayer::ReadLine
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:642,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:653,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:654,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:655,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:656,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:666,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:669,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:672,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 677
    functionName: OGRGmtLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRMultiPoint::OGRMultiPoint
    - OGRPoint*::setX
    - OGRMultiLineString*::getNumGeometries
    - OGRMultiLineString*::getGeometryRef
    - OGRGmtLayer::ReadLine
    - OGRPolygon*::getNumInteriorRings
    - OGRPoint*::setY
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRGeometry*::toMultiPolygon
    - OGRMultiPolygon*::getGeometryRef
    - OGRGmtLayer::ScanAheadForHole
    - SetGeomType
    - GetGeomType
    - OGRPoint::OGRPoint
    - OGRPoint*::setZ
    - wkbFlatten
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - OGRFeature*::SetGeometryDirectly
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - OGRGmtLayer::NextIsFeature
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRLinearRing::OGRLinearRing
    - GetFieldCount
    - OGRPolygon*::getInteriorRing
    - CPLAssert
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRFeature::OGRFeature
    - OGRGeometry*::toLineString
    - OGRMultiLineString*::addGeometryDirectly
    - OGRMultiPolygon*::getNumGeometries
    - OGRLineString*::addPoint
    - CSLDestroy
    - length
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRFeature*::SetField
    - OGRLinearRing*::addPoint
    - OGRGeometry*::toPoint
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGmtLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:693,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:695,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:695,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:695,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:698,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:698,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:723,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:732,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:740,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:741,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:761,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:763,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:763,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:764,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:764,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:770,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - poThisGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 776
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 776
    functionName: OGRGmtLayer::CompleteHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - SetGeomType
    - GetFieldCount
    - GetGeomType
    - CPLString::c_str
    - GetFieldDefn
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGmtLayer::CompleteHeader(OGRGeometry *poThisGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:787,1
    - Dst: OGRGmtLayer::CompleteHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:797,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:797,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:806,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:810,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:815,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:816,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:816,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:816,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:819,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:820,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:825,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:829,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:832,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:843,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:843,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:844,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:844,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:851,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:859,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:859,1
    - Dst: OGRGmtLayer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:865,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:865,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 866
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 866
    functionName: OGRGmtLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGmtLayer::CompleteHeader
    - VSIFPrintfL
    - SetGeomType
    - OGRGeometry*::getGeometryType
    - GetFieldCount
    - ToHandle
    - GetGeomType
    - strchr
    - CPLString::c_str
    - OGRGmtLayer::WriteGeometry
    - GetFieldDefn
    - CPLError
    - wkbFlatten
    - CPLFree
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGmtLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_G_GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:885,1
    - Dst: OGR_G_GetGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:890,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:896,1
    - Dst: OGR_G_GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:896,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:900,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:904,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:906,1
    - Dst: OGRGmtLayer::WriteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:910,1
    - Dst: OGR_G_GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:910,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:920,1
    - Dst: OGR_G_GetGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:920,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:921,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:938,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:940,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:949,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:951,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:952,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - hGeom
    - bHaveAngle
    argTypes:
    - OGRGeometryH
    - bool
    constantsTouched: []
    func_position:
      end: 958
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 958
    functionName: OGRGmtLayer::WriteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 2
    functionsReached:
    - OGR_G_GetGeometryCount
    - VSIFPrintfL
    - OGR_G_GetGeometryType
    - OGR_G_GetGeometryRef
    - OGRGmtLayer::WriteGeometry
    - Merge
    - OGRMakeWktCoordinate
    - CPLError
    - wkbFlatten
    - VSIStrerror
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGmtLayer::WriteGeometry(OGRGeometryH hGeom, bool bHaveAngle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:974,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 981
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 981
    functionName: OGRGmtLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - IsInit
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGmtLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:990,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:993,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:996,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:999,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1002,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1009
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 1009
    functionName: OGRGmtLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGmtLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1020,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1027,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1032,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1038,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1047,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1049,1
    - Dst: OGRFieldDefn*::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1050,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1050,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1053,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1054,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1057,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1058,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1064,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp:1065,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1069
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1069
    functionName: OGRGmtLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetFieldTypeName
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn::SetType
    - OGRFieldDefn*::GetType
    - AddFieldDefn
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGmtLayer::CreateField(const OGRFieldDefn *poField, int bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: OGRGmtLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogr_gmt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: OGRGmtLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogr_gmt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: OGRGmtDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gmt/ogr_gmt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: OGRCADLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogr_cad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: OGRCADLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogr_cad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: OGRCADLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogr_cad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: GDALCADDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogr_cad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:29,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:36,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:43,1
    - Dst: VSILFileIO::VSILFileIO
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:48,1
    - Dst: atol
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:49,1
    - Dst: atol
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:50,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:52,1
    - Dst: VSILFileIO::VSILFileIO
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:56,1
    - Dst: IdentifyCADFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:59,1
    - Dst: GDALDataset::ReportUpdateNotSupportedByDriver
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:70,1
    - Dst: GDALCADDataset::GDALCADDataset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:75,1
    - Dst: GDALCADDataset*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: OGRCADDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALCADDataset::GDALCADDataset
    - GDALCADDataset*::Open
    - GDALDataset::ReportUpdateNotSupportedByDriver
    - CSLDestroy
    - IdentifyCADFile
    - VSILFileIO::VSILFileIO
    - CPLString::empty
    - atol
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRCADDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:91,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:93,1
    - Dst: OGRCADDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:94,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: RegisterOGRCAD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRCADDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRCAD()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:151,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:151,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:157,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:160,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sString
    - CADEncoding
    argTypes:
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 163
    functionName: CADRecode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - static_cast<int>
    - CPLString
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: CPLString CADRecode(const CPLString &sString, int CADEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: OGRCADDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int OGRCADDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:46,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:49,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:50,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:51,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:52,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:53,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:54,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:56,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:68,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:69,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 74
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 74
    functionName: OGRCADDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRCADDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:83,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:87,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:89,1
    - Dst: OGRCADDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:92,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: DeclareDeferredOGRCADPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcaddrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRCADDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRCADPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszFilePath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: VSILFileIO::VSILFileIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VSILFileIO::VSILFileIO(const char *pszFilePath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSILFileIO::Close
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: VSILFileIO::~VSILFileIO()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSILFileIO::Close
    linkageType: ''
    returnType: void
    signature: void VSILFileIO::~VSILFileIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: VSILFileIO::ReadLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *VSILFileIO::ReadLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:36,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: VSILFileIO::Eof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSIFErrorL
    - VSIFEofL
    linkageType: ''
    returnType: bool
    signature: bool VSILFileIO::Eof() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:49,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:49,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: VSILFileIO::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    - c_str
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool VSILFileIO::Open(int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: VSILFileIO::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VSILFileIO::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - origin
    argTypes:
    - long
    - CADFileIO::SeekOrigin
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: VSILFileIO::Seek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: int
    signature: int VSILFileIO::Seek(long offset, CADFileIO::SeekOrigin origin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:85,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: VSILFileIO::Tell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSIFTellL
    - static_cast<long>
    linkageType: ''
    returnType: long int
    signature: long int VSILFileIO::Tell()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:90,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: VSILFileIO::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char *>
    - VSIFReadL
    linkageType: ''
    returnType: size_t
    signature: size_t VSILFileIO::Read(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: VSILFileIO::Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t VSILFileIO::Write(void * /*ptr*/, size_t /*size*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: VSILFileIO::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/vsilfileio.cpp
    functionUses: 0
    functionsReached:
    - VSIRewindL
    linkageType: ''
    returnType: void
    signature: void VSILFileIO::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:39,1
    - Dst: CADRecode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:41,1
    - Dst: CADLayer::getName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:41,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:41,1
    - Dst: getGeometryTypes
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:50,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:51,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:110,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:113,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:116,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:119,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:122,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:125,1
    - Dst: getAttributesTags
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:127,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:130,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:133,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:134,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:139,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:140,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:142,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:142,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 4
    argNames:
    - poDS
    - poCADLayer_
    - poSR
    - nEncoding
    argTypes:
    - GDALDataset*
    - CADLayer
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 144
    functionName: OGRCADLayer::OGRCADLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - SetGeomType
    - std::vector::size
    - CADLayer::getName
    - getGeometryTypes
    - OGRFeatureDefn::OGRFeatureDefn
    - insert
    - getAttributesTags
    - GetGeomFieldDefn
    - Reference
    - GetGeomFieldCount
    - AddFieldDefn
    - SetDescription
    - CADRecode
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRCADLayer::OGRCADLayer(GDALDataset *poDS, CADLayer &poCADLayer_,\n
      \                        OGRSpatialReference *poSR, int nEncoding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:149,1
    - Dst: getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: OGRCADLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - getGeometryCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRCADLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:158,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: OGRCADLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRCADLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:169,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: OGRCADLayer::~OGRCADLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRCADLayer::~OGRCADLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: OGRCADLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRCADLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCADLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:180,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:187,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:187,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: OGRCADLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRCADLayer::GetFeature
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCADLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:198,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:198,1
    - Dst: getGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:205,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:205,1
    - Dst: GetLastErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:208,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:210,1
    - Dst: getName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:213,1
    - Dst: GetLastErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:213,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:217,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:218,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:219,1
    - Dst: CADGeometry*::getThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:219,1
    - Dst: CADGeometry*::getEED
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:221,1
    - Dst: CADGeometry*::getEED
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:223,1
    - Dst: std::vector::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:226,1
    - Dst: std::vector::cend
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:227,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:233,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:233,1
    - Dst: CADGeometry*::getColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:236,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:238,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:239,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:242,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:242,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:243,1
    - Dst: CADGeometry*::getBlockAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:245,1
    - Dst: getTag
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:248,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:249,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:250,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:252,1
    - Dst: getTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:252,1
    - Dst: CADGeometry*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:256,1
    - Dst: cpl::down_cast<CADPoint3D *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:261,1
    - Dst: CADPoint3D*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:262,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:264,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:265,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:265,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:266,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:265,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:267,1
    - Dst: cpl::down_cast<CADLine *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:273,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:274,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:275,1
    - Dst: CADLine*::getStart
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:275,1
    - Dst: CADLine*::getStart
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:276,1
    - Dst: CADLine*::getStart
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:277,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:278,1
    - Dst: CADLine*::getEnd
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:278,1
    - Dst: CADLine*::getEnd
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:279,1
    - Dst: CADLine*::getEnd
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:280,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:282,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:283,1
    - Dst: cpl::down_cast<CADSolid *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:290,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:291,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:292,1
    - Dst: CADSolid*::getCorners
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:294,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:295,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:297,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:297,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:298,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:299,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:301,1
    - Dst: OGRPolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:302,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:303,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:305,1
    - Dst: cpl::down_cast<CADCircle *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:311,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:312,1
    - Dst: CADCircle*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:314,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:315,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:316,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:316,1
    - Dst: CADCircle*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:317,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:318,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:318,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:319,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:319,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:320,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:322,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:323,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:323,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:324,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:324,1
    - Dst: CADCircle*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:325,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:326,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:326,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:327,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:329,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:330,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:330,1
    - Dst: CADCircle*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:331,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:332,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:332,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:333,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:333,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:334,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:336,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:337,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:337,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:338,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:338,1
    - Dst: CADCircle*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:339,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:340,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:340,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:341,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:344,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:356,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:358,1
    - Dst: cpl::down_cast<CADArc *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:364,1
    - Dst: OGRCircularString::OGRCircularString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:365,1
    - Dst: CADArc*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:371,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:373,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:374,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:374,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:375,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:375,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:376,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:376,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:377,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:377,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:378,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:378,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:379,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:381,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:381,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:382,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:382,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:383,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:383,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:384,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:384,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:385,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:385,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:386,1
    - Dst: OGRPoint::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:388,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:388,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:389,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:389,1
    - Dst: OGRPoint::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:390,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:390,1
    - Dst: CADArc*::getRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:391,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:391,1
    - Dst: OGRPoint::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:392,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:392,1
    - Dst: OGRCircularString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:393,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:408,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:409,1
    - Dst: cpl::down_cast<CADFace3D *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:417,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:418,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:419,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:423,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:423,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:424,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:425,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:427,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:427,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:429,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:429,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:430,1
    - Dst: CADFace3D*::getCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:431,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:433,1
    - Dst: OGRPolygon*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:434,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:435,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:437,1
    - Dst: cpl::down_cast<CADLWPolyline *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:444,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:446,1
    - Dst: CADLWPolyline*::getVertexCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:453,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:455,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:456,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:457,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:458,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:456,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:466,1
    - Dst: CADLWPolyline*::getBulges
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:468,1
    - Dst: CADLWPolyline*::getVertexCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:470,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:472,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:473,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:473,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:473,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:474,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:477,1
    - Dst: CADLWPolyline*::getBulges
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:485,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:493,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:495,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:508,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:508,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:509,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:510,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:514,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:514,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:514,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:515,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:542,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:543,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:543,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:543,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:544,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:544,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:544,1
    - Dst: CADVector::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:545,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:545,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:547,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:548,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:548,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:549,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:550,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:550,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:551,1
    - Dst: CADVector::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:552,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:552,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:554,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:555,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:555,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:556,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:556,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:561,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:561,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:562,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:562,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:564,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:565,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:565,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:566,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:567,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:567,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:568,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:595,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:595,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:595,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:596,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:596,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:620,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:621,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:621,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:622,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:627,1
    - Dst: CADLWPolyline*::isClosed
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:633,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:635,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:635,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:636,1
    - Dst: CADLWPolyline*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:637,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:640,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:641,1
    - Dst: cpl::down_cast<CADPolyline3D *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:649,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:650,1
    - Dst: CADPolyline3D*::getVertexCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:652,1
    - Dst: CADPolyline3D*::getVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:654,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:656,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:656,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:656,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:657,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:660,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:661,1
    - Dst: cpl::down_cast<CADText *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:667,1
    - Dst: CADText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:668,1
    - Dst: CADText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:669,1
    - Dst: CADText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:670,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:668,1
    - Dst: CADRecode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:672,1
    - Dst: CADText*::getTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:672,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:674,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:675,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:676,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:678,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:679,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:679,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:680,1
    - Dst: cpl::down_cast<CADMText *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:687,1
    - Dst: CADMText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:688,1
    - Dst: CADMText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:689,1
    - Dst: CADMText*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:690,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:688,1
    - Dst: CADRecode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:692,1
    - Dst: CADMText*::getTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:692,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:694,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:695,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:696,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:698,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:699,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:699,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:700,1
    - Dst: cpl::down_cast<CADSpline *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:707,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:708,1
    - Dst: CADSpline*::getControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:711,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:713,1
    - Dst: CADSpline*::getControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:713,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:713,1
    - Dst: CADSpline*::getControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:714,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:714,1
    - Dst: CADSpline*::getControlPoints
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:715,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:715,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:718,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:719,1
    - Dst: cpl::down_cast<CADEllipse *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:726,1
    - Dst: CADEllipse*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:738,1
    - Dst: CADEllipse*::getSMAxis
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:739,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:742,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:742,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:742,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:743,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:743,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:744,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:744,1
    - Dst: atan2
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:749,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:749,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:749,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:788,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:791,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:791,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:792,1
    - Dst: OGRGeometryFactory::approximateArcAngles
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:794,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:795,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:795,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:796,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:799,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:800,1
    - Dst: cpl::down_cast<CADAttdef *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:807,1
    - Dst: CADAttdef*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:808,1
    - Dst: CADAttdef*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:809,1
    - Dst: CADAttdef*::getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:810,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:808,1
    - Dst: CADRecode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:812,1
    - Dst: CADAttdef*::getTag
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:812,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:814,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:815,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:816,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:818,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:819,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:819,1
    - Dst: OGRFeature*::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:820,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:826,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:829,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp:836,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 222
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 838
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 838
    functionName: OGRCADLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/ogrcadlayer.cpp
    functionUses: 1
    functionsReached:
    - CADLWPolyline*::getVertexCount
    - OGRCircularString*::addPoint
    - std::vector::size
    - getY
    - CPLDebug
    - OGRCircularString::OGRCircularString
    - CADLWPolyline*::getVertex
    - CADAttdef*::getPosition
    - CADLine*::getEnd
    - getTag
    - OGRLineString::OGRLineString
    - getName
    - CADGeometry*::getType
    - cpl::down_cast<CADSolid *>
    - std::vector::cend
    - sqrt
    - OGRGeometryFactory::approximateArcAngles
    - OGRLinearRing*::addPoint
    - CADVector::setX
    - CADRecode
    - OGRPoint::setX
    - OGRPoint::setY
    - OGRPolygon::OGRPolygon
    - std::string::c_str
    - cpl::down_cast<CADText *>
    - cpl::down_cast<CADPoint3D *>
    - CADCircle*::getPosition
    - CADVector::setY
    - CADGeometry*::getEED
    - OGRFeature*::SetStyleString
    - CADSolid*::getCorners
    - find
    - cpl::down_cast<CADFace3D *>
    - OGRPolygon*::closeRings
    - CADArc*::getPosition
    - atan2
    - CADVector::getZ
    - CPLString::Printf
    - cpl::down_cast<CADArc *>
    - CADMText*::getPosition
    - getTextValue
    - CADVector::getY
    - OGRLineString*::addPoint
    - CADSpline*::getControlPoints
    - OGRLineString*::addSubLineString
    - CADVector::setZ
    - CADPoint3D*::getPosition
    - cpl::down_cast<CADAttdef *>
    - CADLWPolyline*::getBulges
    - CADEllipse*::getSMAxis
    - CADPolyline3D*::getVertex
    - CPLString::c_str
    - CADMText*::getTextValue
    - cpl::down_cast<CADSpline *>
    - OGRFeature*::SetGeometryDirectly
    - cpl::down_cast<CADPolyline3D *>
    - getGeometryCount
    - OGRLinearRing::OGRLinearRing
    - cpl::down_cast<CADCircle *>
    - OGRFeature*::GetGeometryRef
    - cpl::down_cast<CADLWPolyline *>
    - CADEllipse*::getPosition
    - CADFace3D*::getCorner
    - CADPolyline3D*::getVertexCount
    - CADVector::getX
    - CADVector::CADVector
    - OGRFeature*::SetFID
    - std::vector::cbegin
    - cpl::down_cast<CADLine *>
    - CADGeometry*::getColor
    - CPLError
    - OGRPolygon*::addRingDirectly
    - CADText*::getPosition
    - cpl::down_cast<CADMText *>
    - CADCircle*::getRadius
    - CADLWPolyline*::isClosed
    - CADArc*::getRadius
    - end
    - GetLastErrorCode
    - CADText*::getTextValue
    - CADAttdef*::getTag
    - OGRPoint::OGRPoint
    - getGeometry
    - CADGeometry*::getBlockAttributes
    - cpl::down_cast<CADEllipse *>
    - getZ
    - CADGeometry*::getThickness
    - CADLine*::getStart
    - sin
    - OGRFeature::OGRFeature
    - getX
    - OGRPoint::setZ
    - static_cast<size_t>
    - OGRFeature*::SetField
    - cos
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRCADLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:33,1
    - Dst: GetBlockSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poBaseBandIn
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: CADWrapperRasterBand::CADWrapperRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - GetBlockSize
    linkageType: ''
    returnType: void
    signature: void CADWrapperRasterBand(GDALRasterBand *poBaseBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ~CADWrapperRasterBand()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CADWrapperRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: CADWrapperRasterBand::RefUnderlyingRasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: 'GDALRasterBand *

      CADWrapperRasterBand::RefUnderlyingRasterBand(bool /* bForceOpen */) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: GDALCADDataset::GDALCADDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALCADDataset::GDALCADDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:64,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:70,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: GDALCADDataset::~GDALCADDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    - CPLFree
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void GDALCADDataset::~GDALCADDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADImage*::getResolutionUnits
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:81,1
    - Dst: CADImage*::getImageSizeInPx
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:97,1
    - Dst: CADImage*::getVertInsertionPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:98,1
    - Dst: CADImage*::getPixelSizeInACADUnits
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:99,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:100,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:102,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:102,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:102,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:106,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pImage
    - dfUnits
    argTypes:
    - CADImage*
    - double
    constantsTouched: []
    func_position:
      end: 108
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 108
    functionName: GDALCADDataset::FillTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - CADVector::getX
    - CADImage*::getResolutionUnits
    - CADImage*::getImageSizeInPx
    - CADImage*::getPixelSizeInACADUnits
    - CADImage*::getVertInsertionPoint
    - CADVector::getY
    linkageType: ''
    returnType: void
    signature: void GDALCADDataset::FillTransform(CADImage *pImage, double dfUnits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADFileIO*::GetFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:113,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:114,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:127,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:132,1
    - Dst: OpenCADFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:137,1
    - Dst: GetLastErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:141,1
    - Dst: GetVersionString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:144,1
    - Dst: GetCADFormats
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:144,1
    - Dst: GetLastErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:150,1
    - Dst: GetVersionString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:153,1
    - Dst: GetCADFormats
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:153,1
    - Dst: GDALCADDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:157,1
    - Dst: getHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:169,1
    - Dst: CADHeader::getSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:170,1
    - Dst: CADHeader::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:173,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:174,1
    - Dst: CADHeader::getValueName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:174,1
    - Dst: CADVariant::getString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:175,1
    - Dst: static_cast<OGRCADLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:182,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:183,1
    - Dst: GetLayersCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:183,1
    - Dst: GetLayersCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:186,1
    - Dst: GDALCADDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:188,1
    - Dst: CADLayer::getGeometryCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:190,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:193,1
    - Dst: OGRCADLayer::OGRCADLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:195,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:197,1
    - Dst: CADLayer::getImageCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:202,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:204,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:205,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:206,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:207,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:208,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:208,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:211,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:212,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:213,1
    - Dst: CADLayer::getName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:213,1
    - Dst: GDALCADDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:226,1
    - Dst: CADLayer::getImage
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:227,1
    - Dst: CADImage*::getFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:231,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:232,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:233,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:236,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:236,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:240,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:240,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:240,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:244,1
    - Dst: GDALOpen
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:245,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:251,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:254,1
    - Dst: GDALCADDataset::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:258,1
    - Dst: OGRSpatialReference*::GetLinearUnits
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:263,1
    - Dst: GDALCADDataset::FillTransform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:264,1
    - Dst: GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:268,1
    - Dst: GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:269,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:270,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:272,1
    - Dst: GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:276,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:277,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:278,1
    - Dst: CADWrapperRasterBand::CADWrapperRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:277,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:287,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:292,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:293,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 4
    argNames:
    - poOpenInfo
    - pFileIO
    - nSubRasterLayer
    - nSubRasterFID
    argTypes:
    - GDALOpenInfo*
    - CADFileIO*
    - long
    - long
    constantsTouched: []
    func_position:
      end: 301
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 301
    functionName: GDALCADDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - GDALCADDataset::GetLayer
    - OGRCADLayer::OGRCADLayer
    - GetRasterXSize
    - GetRasterBand
    - OGRSpatialReference*::Release
    - CADLayer::getImageCount
    - GetVersionString
    - CPLError
    - getHeader
    - GetRasterCount
    - SetMetadata
    - CPLString::empty
    - GDALClose
    - CADWrapperRasterBand::CADWrapperRasterBand
    - static_cast<long>
    - GetLastErrorCode
    - CADHeader::getValueName
    - CPLCheckForFile
    - CADHeader::getSize
    - CPLString::c_str
    - CADFileIO*::GetFilePath
    - CPLMalloc
    - CADLayer::getImage
    - OpenCADFile
    - CADLayer::getGeometryCount
    - c_str
    - FromHandle
    - GDALCADDataset::GetGeoTransform
    - CPLSPrintf
    - CADHeader::getValue
    - GetRasterYSize
    - GetLayersCount
    - GetCADFormats
    - SetDescription
    - CPLFormFilenameSafe
    - OGRSpatialReference*::Clone
    - static_cast<OGRCADLayer **>
    - SetBand
    - GDALCADDataset::GetSpatialRef
    - CPLGetPathSafe
    - const_cast<char *>
    - OGRPGTableLayer::SetMetadataItem
    - CADLayer::getName
    - CSLDestroy
    - GDALCheckDatasetDimensions
    - EQUAL
    - CADImage*::getFilePath
    - OGRSpatialReference*::GetLinearUnits
    - CADVariant::getString
    - GDALOpen
    - GDALCADDataset::FillTransform
    linkageType: ''
    returnType: int
    signature: "int GDALCADDataset::Open(GDALOpenInfo *poOpenInfo, CADFileIO *pFileIO,\n
      \                        long nSubRasterLayer, long nSubRasterFID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: GDALCADDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GDALCADDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:313,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:313,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:315,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:317,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 322
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 322
    functionName: GDALCADDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int GDALCADDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCADDataset::GetPrjFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:330,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:331,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:332,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:332,1
    - Dst: GetLayersCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:334,1
    - Dst: GDALCADDataset::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:336,1
    - Dst: CADLayer::getImageCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:337,1
    - Dst: CADLayer::getImage
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:339,1
    - Dst: CADImage*::getFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:342,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:343,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:343,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:343,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:345,1
    - Dst: CSLMerge
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:352,1
    - Dst: GDALCADDataset::GetFileList
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 355
    functionName: GDALCADDataset::GetFileList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - GDALCADDataset::GetLayer
    - const_cast<char *>
    - CADLayer::getImage
    - GDALCADDataset::GetPrjFilePath
    - CSLAddString
    - GDALCADDataset::GetFileList
    - CADImage*::getFilePath
    - CPLCheckForFile
    - CPLString::c_str
    - CSLMerge
    - GetLayersCount
    - CADLayer::getImageCount
    - std::string::c_str
    linkageType: ''
    returnType: char
    signature: char **GDALCADDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:361,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:362,1
    - Dst: CADHeader::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: GDALCADDataset::GetCadEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - CADHeader::getValue
    - getHeader
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GDALCADDataset::GetCadEncoding() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:374,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:375,1
    - Dst: GetNOD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:377,1
    - Dst: CADDictionary::getRecordByName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:378,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:379,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:382,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:382,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:385,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:388,1
    - Dst: importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:389,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:391,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:397,1
    - Dst: GDALCADDataset::GetPrjFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:401,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:402,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:404,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:406,1
    - Dst: importFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:408,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:411,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 424
    functionName: GDALCADDataset::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - importFromESRI
    - OGRSpatialReference::OGRSpatialReference
    - CPLError
    - CPLString::substr
    - GDALCADDataset::GetPrjFilePath
    - CADDictionary::getRecordByName
    - CSLAddString
    - CSLDestroy
    - SetAxisMappingStrategy
    - CPLPopErrorHandler
    - GetNOD
    - CPLPushErrorHandler
    - CPLString::find
    - CPLString::empty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALCADDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:428,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:429,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:429,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:432,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:433,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:433,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 437
    functionName: GDALCADDataset::GetPrjFilePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 2
    functionsReached:
    - CPLCheckForFile
    - CPLResetExtensionSafe
    - std::string
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string GDALCADDataset::GetPrjFilePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: GDALCADDataset::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALCADDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCADDataset::GetGCPCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: GDALCADDataset::GetGCPCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - GDALCADDataset::GetGCPCount
    linkageType: ''
    returnType: int
    signature: int GDALCADDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCADDataset::GetGCPSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: GDALCADDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - GDALCADDataset::GetGCPSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALCADDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCADDataset::GetGCPs
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: GDALCADDataset::GetGCPs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 1
    functionsReached:
    - GDALCADDataset::GetGCPs
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *GDALCADDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 476
    functionName: GDALCADDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/gdalcaddataset.cpp
    functionUses: 0
    functionsReached:
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int GDALCADDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: CADClass::CADClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADClass::CADClass()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: CADClasses::CADClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADClasses::CADClasses()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:48,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:50,1
    - Dst: CADClass::sApplicationName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:58,1
    - Dst: CADClass::sCppClassName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:58,1
    - Dst: CADClass::sDXFRecordName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stClass
    argTypes:
    - CADClass
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: CADClasses::addClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp
    functionUses: 0
    functionsReached:
    - DebugMsg
    - CADClass::sCppClassName::c_str
    - CADClass::sApplicationName::c_str
    - CADClass::sDXFRecordName::c_str
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADClasses::addClass( CADClass stClass )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADClass
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - num
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: CADClasses::getClassByNum
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp
    functionUses: 0
    functionsReached:
    - CADClass
    linkageType: ''
    returnType: CADClass
    signature: CADClass CADClasses::getClassByNum( short num ) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: CADClasses::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADClasses::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADClass
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: CADClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.h
    functionUses: 2
    functionsReached:
    - CADClass
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADClass
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADClasses
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: CADClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadclasses.h
    functionUses: 1
    functionsReached:
    - CADClasses
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADClasses
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 96
    functionName: CADLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: getCADACIColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadcolors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RGBColor
    signature: RGBColor getCADACIColor(short index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADDictionaryRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h:27,1
    - Dst: CADDictionaryRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: CADDictionaryRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h
    functionUses: 1
    functionsReached:
    - CADDictionaryRecord
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADDictionaryRecord
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADXRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: CADDictionaryRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h
    functionUses: 1
    functionsReached:
    - CADXRecord
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADDictionaryRecord
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADDictionary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: CADDictionaryRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.h
    functionUses: 1
    functionsReached:
    - CADDictionary
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADDictionaryRecord
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: CADHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADHandle
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h:51,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 85
    functionName: CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h
    functionUses: 1
    functionsReached:
    - CADVariant
    - CADHandle::CADHandle
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADVariant
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h:663,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 688
    functionName: CADHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.h
    functionUses: 1
    functionsReached:
    - CADVariant
    - CADHeader
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADHeader
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszFilePath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: CADFileStreamIO::CADFileStreamIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFileStreamIO::CADFileStreamIO( const char * pszFilePath )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADFileIO::IsOpened
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:23,1
    - Dst: CADFileStreamIO::Close
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: CADFileStreamIO::~CADFileStreamIO()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - CADFileStreamIO::Close
    - CADFileIO::IsOpened
    linkageType: ''
    returnType: void
    signature: void CADFileStreamIO::~CADFileStreamIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: CADFileStreamIO::ReadLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * CADFileStreamIO::ReadLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eof
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: CADFileStreamIO::Eof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - eof
    linkageType: ''
    returnType: bool
    signature: bool CADFileStreamIO::Eof() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:48,1
    - Dst: is_open
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: CADFileStreamIO::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - open
    - is_open
    linkageType: ''
    returnType: bool
    signature: bool CADFileStreamIO::Open( int mode )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:58,1
    - Dst: CADFileIO::Close
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: CADFileStreamIO::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 1
    functionsReached:
    - CADFileIO::Close
    - close
    linkageType: ''
    returnType: bool
    signature: bool CADFileStreamIO::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seekg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - offset
    - origin
    argTypes:
    - long
    - CADFileIO::SeekOrigin
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: CADFileStreamIO::Seek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - seekg
    linkageType: ''
    returnType: int
    signature: int CADFileStreamIO::Seek( long offset, CADFileIO::SeekOrigin origin
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:85,1
    - Dst: tellg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: CADFileStreamIO::Tell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - tellg
    - static_cast<long>
    linkageType: ''
    returnType: long int
    signature: long int CADFileStreamIO::Tell()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:90,1
    - Dst: read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:90,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:90,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: CADFileStreamIO::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - read
    - static_cast<size_t>
    - static_cast<long>
    - static_cast<char *>
    linkageType: ''
    returnType: size_t
    signature: size_t CADFileStreamIO::Read( void * ptr, size_t size )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: CADFileStreamIO::Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CADFileStreamIO::Write( void * /*ptr*/, size_t /*size*/ )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seekg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: CADFileStreamIO::Rewind
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfilestreamio.cpp
    functionUses: 0
    functionsReached:
    - seekg
    linkageType: ''
    returnType: void
    signature: void CADFileStreamIO::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: CADTables::CADTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADTables::CADTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eType
    - ' hHandle'
    argTypes:
    - TableType
    - CADHandle
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: CADTables::AddTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADTables::AddTable( TableType eType, const CADHandle& hHandle
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:36,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:37,1
    - Dst: CADTables::ReadLayersTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:44,1
    - Dst: auto::second::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pCADFile
    - eType
    argTypes:
    - CADFile*
    - CADTables::TableType
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: CADTables::ReadTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::getAsLong
    - CADTables::ReadLayersTable
    linkageType: ''
    returnType: int
    signature: int CADTables::ReadTable( CADFile * const pCADFile, CADTables::TableType
      eType )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: CADTables::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADTables::GetLayerCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: '& CADTables::GetLayer( size_t iIndex )'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADLayer
    signature: CADLayer & CADTables::GetLayer( size_t iIndex )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eType
    argTypes:
    - enum TableType
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: CADTables::GetTableHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADHandle
    signature: CADHandle CADTables::GetTableHandle( enum TableType eType )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADFile*::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:72,1
    - Dst: dynamic_cast<CADLayerControlObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:75,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:75,1
    - Dst: CADLayerControlObject*::hLayers::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:81,1
    - Dst: isNull
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:83,1
    - Dst: CADFile*::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:88,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:89,1
    - Dst: CADLayer::setName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:95,1
    - Dst: CADLayer::setFrozen
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:96,1
    - Dst: CADLayer::setOn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:97,1
    - Dst: CADLayer::setFrozenByDefault
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:98,1
    - Dst: CADLayer::setLocked
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:99,1
    - Dst: CADLayer::setLineWeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:100,1
    - Dst: CADLayer::setColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:101,1
    - Dst: CADLayer::setId
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:102,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:102,1
    - Dst: CADLayer::setHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:103,1
    - Dst: unique_ptr::hObjectHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:103,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:105,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:105,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:114,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:115,1
    - Dst: CADFile*::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:118,1
    - Dst: auto::second::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:119,1
    - Dst: unique_ptr::hEntities::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:128,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:133,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:134,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:138,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:138,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:140,1
    - Dst: CADFile*::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:142,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:149,1
    - Dst: CADTables::FillLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:154,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:154,1
    - Dst: CADTables::FillLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:158,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:158,1
    - Dst: unique_ptr::stChed::hNextEntity::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:166,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:170,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:171,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - pCADFile
    - dLayerControlHandle
    argTypes:
    - CADFile*
    - long
    constantsTouched: []
    func_position:
      end: 174
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 174
    functionName: CADTables::ReadLayersTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 1
    functionsReached:
    - unique_ptr::hEntities::size
    - std::set::insert
    - DebugMsg
    - CADLayer::setName
    - CADLayer::setHandle
    - CADLayer::setLocked
    - end
    - isNull
    - CADLayer::setOn
    - CADLayerControlObject*::hLayers::size
    - find
    - std::move
    - unique_ptr::stChed::hNextEntity::getAsLong
    - static_cast<int>
    - CADLayer::setColor
    - CADLayer::setFrozenByDefault
    - CADTables::FillLayer
    - CADFile*::GetObject
    - CADLayer::setId
    - std::set::find
    - auto::second::getAsLong
    - unique_ptr::get
    - size
    - CADLayer::setFrozen
    - CADLayer::setLineWeight
    - push_back
    - getAsLong
    - dynamic_cast<CADLayerControlObject *>
    - unique_ptr::hObjectHandle::getAsLong
    - std::set::end
    linkageType: ''
    returnType: int
    signature: int CADTables::ReadLayersTable( CADFile * const pCADFile, long dLayerControlHandle
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADEntityObject*::stChed::hLayer::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:185,1
    - Dst: getHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:186,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:188,1
    - Dst: getNameByType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:189,1
    - Dst: CADEntityObject*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:189,1
    - Dst: getName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:190,1
    - Dst: addHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:192,1
    - Dst: CADEntityObject*::stCed::hObjectHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:192,1
    - Dst: CADEntityObject*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pEntityObject
    argTypes:
    - CADEntityObject*
    constantsTouched: []
    func_position:
      end: 197
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 197
    functionName: CADTables::FillLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.cpp
    functionUses: 1
    functionsReached:
    - addHandle
    - getName
    - DebugMsg
    - CADEntityObject*::getType
    - CADEntityObject*::stChed::hLayer::getAsLong
    - getNameByType
    - CADEntityObject*::stCed::hObjectHandle::getAsLong
    - getHandle
    linkageType: ''
    returnType: void
    signature: void CADTables::FillLayer( const CADEntityObject * pEntityObject )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Matrix::Matrix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Matrix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 105
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADGeometry
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPoint3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:125,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:140,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADVector::CADVector
    - CADPoint3D
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:151,1
    - Dst: CADPoint3D::CADPoint3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:163,1
    - Dst: CADPoint3D::CADPoint3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADLine
    - CADPoint3D::CADPoint3D
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPolyline3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: CADPolyline3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADPolyline3D
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPolyline3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLWPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:192,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 220
    functionName: CADLWPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADLWPolyline
    - CADVector::CADVector
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADLWPolyline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADCircle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 2
    functionsReached:
    - CADCircle
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPoint3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 2
    functionsReached:
    - CADText
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPoint3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADArc
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: CADCircle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADArc
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADCircle
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:292,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 304
    functionName: CADEllipse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADVector::CADVector
    - CADEllipse
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADEllipse
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADSpline
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 353
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADSpline
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADSolid
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 2
    functionsReached:
    - CADSolid
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPoint3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADRay
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 387
    functionName: CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 2
    functionsReached:
    - CADRay
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPoint3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHatch
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADHatch
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADImage
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:420,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:451,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:454,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:464,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 473
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADImage
    - CADVector::CADVector
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADMText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 505
    functionName: CADMText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADMText
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADMText
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADFace3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 526
    functionName: CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADFace3D
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADGeometry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPolylinePFace
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: CADPolylinePFace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADPolylinePFace
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPolylinePFace
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADXLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: CADXLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADXLine
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADXLine
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADMLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 579
    functionName: CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 2
    functionsReached:
    - CADMLine
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADPoint3D
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADAttrib
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:587,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 608
    functionName: CADAttrib
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADVector::CADVector
    - CADAttrib
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADAttrib
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADAttdef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 624
    functionName: CADAttdef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h
    functionUses: 1
    functionsReached:
    - CADAttdef
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADAttdef
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 63
    functionName: CADFileIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADFileIO
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: CADFileIO::CADFileIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFileIO::CADFileIO( const char * pszFileName )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: CADFileIO::~CADFileIO()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFileIO::~CADFileIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: CADFileIO::IsOpened
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADFileIO::IsOpened() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: CADFileIO::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADFileIO::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: CADFileIO::GetFilePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfileio.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * CADFileIO::GetFilePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - CADFile*
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: CADLayer::CADLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::CADLayer( CADFile * file )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: CADLayer::getName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string CADLayer::getName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: CADLayer::setName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setName( const std::string& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: CADLayer::getFrozen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::getFrozen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: CADLayer::setFrozen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setFrozen( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: CADLayer::getOn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::getOn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: CADLayer::setOn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setOn( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: CADLayer::getFrozenByDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::getFrozenByDefault() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: CADLayer::setFrozenByDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setFrozenByDefault( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: CADLayer::getLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::getLocked() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: CADLayer::setLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setLocked( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: CADLayer::getPlotting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::getPlotting() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: CADLayer::setPlotting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setPlotting( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: CADLayer::getLineWeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short CADLayer::getLineWeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: CADLayer::setLineWeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setLineWeight( short value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: CADLayer::getColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short CADLayer::getColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: CADLayer::setColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setColor( short value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: CADLayer::getId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CADLayer::getId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: CADLayer::setId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setId( const size_t& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: CADLayer::getHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long CADLayer::getHandle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: CADLayer::setHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayer::setHandle( long value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:143,1
    - Dst: CADLayer::getId
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:143,1
    - Dst: dynamic_cast<CADAttdef*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:145,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:145,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:148,1
    - Dst: CADAttdef*::getTag
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:148,1
    - Dst: GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:156,1
    - Dst: dynamic_cast<CADInsertObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:158,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:158,1
    - Dst: GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:161,1
    - Dst: CADInsertObject*::hBlockHeader::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:162,1
    - Dst: dynamic_cast<CADBlockHeaderObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:164,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:164,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:170,1
    - Dst: CADBlockHeaderObject*::hEntities::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:173,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:177,1
    - Dst: CADBlockHeaderObject*::hEntities::back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:178,1
    - Dst: GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:187,1
    - Dst: dynamic_cast<CADEntityObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:190,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:190,1
    - Dst: CADEntityObject*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:199,1
    - Dst: CADLayer::addHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:208,1
    - Dst: CADEntityObject*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:208,1
    - Dst: Matrix::Matrix
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:209,1
    - Dst: Matrix::translate
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:210,1
    - Dst: Matrix::scale
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:211,1
    - Dst: Matrix::rotate
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:212,1
    - Dst: CADEntityObject*::stChed::hNextEntity::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:228,1
    - Dst: isCommonEntityType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:238,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:242,1
    - Dst: isReadingUnsupportedGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:246,1
    - Dst: isSupportedGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:248,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:250,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:252,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:255,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:255,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:255,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:256,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:258,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:260,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:261,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:266,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:268,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:271,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:271,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:271,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:272,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:274,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:276,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:277,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 3
    argNames:
    - handle
    - type
    - cadinserthandle
    argTypes:
    - long
    - CADObject::ObjectType
    - long
    constantsTouched: []
    func_position:
      end: 281
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 281
    functionName: CADLayer::addHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<CADBlockHeaderObject *>
    - CADLayer::getId
    - CADBlockHeaderObject*::hEntities::empty
    - GetObject
    - assert
    - isCommonEntityType
    - CADInsertObject*::hBlockHeader::getAsLong
    - Matrix::translate
    - end
    - std::make_pair
    - insert
    - CADAttdef*::getTag
    - isSupportedGeometryType
    - dynamic_cast<CADAttdef*>
    - dynamic_cast<CADInsertObject *>
    - Matrix::Matrix
    - CADBlockHeaderObject*::hEntities::back
    - CADEntityObject*::stChed::hNextEntity::getAsLong
    - CADEntityObject*::getType
    - begin
    - Matrix::rotate
    - Matrix::scale
    - dynamic_cast<CADEntityObject *>
    - std::unique_ptr::get
    - GetGeometry
    - empty
    - CADLayer::addHandle
    - std::find
    - push_back
    - getAsLong
    - isReadingUnsupportedGeometries
    linkageType: ''
    returnType: void
    signature: void CADLayer::addHandle( long handle, CADObject::ObjectType type,
      long cadinserthandle )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: CADLayer::getGeometryCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADLayer::getGeometryCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:291,1
    - Dst: CADLayer::getId
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:291,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:295,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:296,1
    - Dst: CADGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 302
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 302
    functionName: CADLayer::getGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - CADLayer::getId
    - GetGeometry
    - CADGeometry*::transform
    - find
    linkageType: ''
    returnType: CADGeometry
    signature: CADGeometry * CADLayer::getGeometry( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: CADLayer::getImageCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADLayer::getImageCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CADImage *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:311,1
    - Dst: GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:311,1
    - Dst: CADLayer::getId
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: CADLayer::getImage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<CADImage *>
    - CADLayer::getId
    - GetGeometry
    linkageType: ''
    returnType: CADImage
    signature: CADImage * CADLayer::getImage( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const CADAttribObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:320,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:321,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:321,1
    - Dst: auto::stChed::hOwner::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:323,1
    - Dst: auto::second::insert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:325,1
    - Dst: make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pObject
    argTypes:
    - CADObject*
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: CADLayer::addAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const CADAttribObject *>
    - end
    - auto::stChed::hOwner::getAsLong
    - make_pair
    - auto::second::insert
    - begin
    linkageType: ''
    returnType: bool
    signature: bool CADLayer::addAttribute( const CADObject * pObject )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: CADLayer::getGeometryTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<CADObject::ObjectType>
    signature: std::vector<CADObject::ObjectType> CADLayer::getGeometryTypes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: CADLayer::getAttributesTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unordered_set<std::string>
    signature: std::unordered_set<std::string> CADLayer::getAttributesTags()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: CADDictionaryRecord::CADDictionaryRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionaryRecord::CADDictionaryRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: CADDictionaryRecord::~CADDictionaryRecord()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionaryRecord::~CADDictionaryRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: CADDictionaryRecord::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADObject::ObjectType
    signature: CADObject::ObjectType CADDictionaryRecord::getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: CADXRecord::CADXRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXRecord::CADXRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: CADXRecord::~CADXRecord()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXRecord::~CADXRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: CADXRecord::getRecordData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string CADXRecord::getRecordData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: CADXRecord::setRecordData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXRecord::setRecordData( const string& data )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: CADDictionary::CADDictionary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionary::CADDictionary()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: CADDictionary::~CADDictionary()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionary::~CADDictionary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: CADDictionary::getRecordsCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADDictionary::getRecordsCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: CADDictionary::getRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADDictionaryItem
    signature: CADDictionaryItem CADDictionary::getRecord( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - record
    argTypes:
    - CADDictionaryItem
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: CADDictionary::addRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void CADDictionary::addRecord( CADDictionaryItem record )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:84,1
    - Dst: first::compare
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:86,1
    - Dst: std::shared_ptr::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:90,1
    - Dst: static_cast<CADXRecord*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:92,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:92,1
    - Dst: CADXRecord*::getRecordData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: CADDictionary::getRecordByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/caddictionary.cpp
    functionUses: 1
    functionsReached:
    - size
    - std::shared_ptr::getType
    - CADXRecord*::getRecordData
    - static_cast<CADXRecord*>
    - first::compare
    - std::shared_ptr::get
    linkageType: ''
    returnType: string
    signature: string CADDictionary::getRecordByName(const string& name) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: to_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 20
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - codeIn
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: CADHandle::CADHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADHandle::CADHandle( unsigned char codeIn )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CADHandle
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: CADHandle::CADHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADHandle::CADHandle( const CADHandle& other )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CADHandle
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: '& CADHandle::operator=( const CADHandle& other )'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADHandle
    signature: CADHandle & CADHandle::operator=( const CADHandle& other )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: CADHandle::addOffset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADHandle::addOffset( unsigned char val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:183,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:183,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:183,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:183,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:184,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:184,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:183,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:188,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:188,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:188,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:188,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:189,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:189,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:188,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:193,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:193,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:193,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:193,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:194,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:194,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:194,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:193,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:198,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:198,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:198,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:198,1
    - Dst: CPLSM
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:199,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:199,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:199,1
    - Dst: v
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:198,1
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ' ref_handle'
    argTypes:
    - CADHandle
    constantsTouched: []
    func_position:
      end: 210
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 210
    functionName: CADHandle::getAsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached:
    - static_cast<long>
    - v
    - CADHandle::getAsLong
    - static_cast<int64_t>
    - CPLSM
    linkageType: ''
    returnType: long
    signature: long CADHandle::getAsLong( const CADHandle& ref_handle ) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: CADHandle::getAsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 2
    functionsReached:
    - CADHandle::getAsLong
    linkageType: ''
    returnType: long
    signature: long CADHandle::getAsLong() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:220,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - std::vector<unsigned char>
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: CADHandle::getAsLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 2
    functionsReached:
    - static_cast<long>
    - empty
    linkageType: ''
    returnType: long
    signature: long CADHandle::getAsLong(const std::vector<unsigned char>& handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: CADHandle::isNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool CADHandle::isNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( const char * val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( int val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( short val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( double val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( double x, double y, double z )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( const string& val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<time_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:329,1
    - Dst: localtime_r
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:334,1
    - Dst: localtime_s
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:337,1
    - Dst: localtime
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:339,1
    - Dst: strftime
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - julianday
    - milliseconds
    argTypes:
    - long
    - long
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - localtime
    - localtime_s
    - localtime_r
    - static_cast<time_t>
    - strftime
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( long julianday, long milliseconds )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:352,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - CADHandle
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: CADVariant::CADVariant
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - getAsLong
    - to_string
    linkageType: ''
    returnType: void
    signature: void CADVariant::CADVariant( const CADHandle& val )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: CADVariant::getDecimal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long CADVariant::getDecimal() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: CADVariant::getReal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVariant::getReal() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: '& CADVariant::getString() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string & CADVariant::getString() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: CADVariant::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVariant::DataType
    signature: CADVariant::DataType CADVariant::getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: CADVariant::getX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVariant::getX() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: CADVariant::getY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVariant::getY() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: CADVariant::getZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVariant::getZ() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: '& CADVariant::getHandle() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADHandle
    signature: CADHandle & CADVariant::getHandle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: CADHeader::CADHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADHeader::CADHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:408,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - code
    - ' val'
    argTypes:
    - short
    - CADVariant
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, const CADVariant& val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:417,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - val
    argTypes:
    - short
    - char*
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, const char * val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:427,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - val
    argTypes:
    - short
    - int
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 2
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, int val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:432,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - val
    argTypes:
    - short
    - short
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 3
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, short val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:437,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - val
    argTypes:
    - short
    - double
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 4
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, double val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:442,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - ' val'
    argTypes:
    - short
    - string
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 5
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, const string& val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:447,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - val
    argTypes:
    - short
    - bool
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 6
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, bool val )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:452,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - code
    - x
    - y
    - z
    argTypes:
    - short
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 7
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, double x, double y, double z )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:460,1
    - Dst: CADVariant
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - code
    - julianday
    - milliseconds
    argTypes:
    - short
    - long
    - long
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: CADHeader::addValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 8
    functionsReached:
    - CADVariant
    - CADHeader::addValue
    linkageType: ''
    returnType: int
    signature: int CADHeader::addValue( short code, long julianday, long milliseconds
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - code
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: CADHeader::getGroupCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CADHeader::getGroupCode( short code )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:476,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - code
    - ' val'
    argTypes:
    - short
    - CADVariant
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: CADHeader::getValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 2
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: CADVariant
    signature: CADVariant CADHeader::getValue( short code, const CADVariant& val )
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - code
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: CADHeader::getValueName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * CADHeader::getValueName( short code )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::getValueName
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:498,1
    - Dst: second::getString
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: CADHeader::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - second::getString
    - CADHeader::getValueName
    linkageType: ''
    returnType: void
    signature: void CADHeader::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: CADHeader::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADHeader::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:510,1
    - Dst: advance
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: CADHeader::getCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp
    functionUses: 0
    functionsReached:
    - begin
    - advance
    linkageType: ''
    returnType: short
    signature: short CADHeader::getCode( int index ) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: CADObject::~CADObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADObject::~CADObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: CADEntityObject::~CADEntityObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEntityObject::~CADEntityObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: CADVector::CADVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::CADVector( double x, double y )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: CADVector::CADVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::CADVector( double x, double y, double z )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: CADVector::CADVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::CADVector( const CADVector& other )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::fcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:58,1
    - Dst: CADVector::fcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:59,1
    - Dst: CADVector::fcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' first'
    - ' second'
    argTypes:
    - CADVector
    - CADVector
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: operator==( const CADVector& first, const CADVector& second )
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached:
    - CADVector::fcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==( const CADVector& first, const CADVector& second )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' second'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: '& CADVector::operator=( const CADVector& second )'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector & CADVector::operator=( const CADVector& second )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: CADVector::fcmp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool CADVector::fcmp( double x, double y )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: CADVector::getBHasZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADVector::getBHasZ() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: CADVector::setBHasZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::setBHasZ( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CADVector::getZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVector::getZ() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: CADVector::setZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::setZ( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: CADVector::getY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVector::getY() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: CADVector::setY
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::setY( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: CADVector::getX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADVector::getX() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: CADVector::setX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::setX( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: CADVector::CADVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVector::CADVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: CADTextObject::CADTextObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADTextObject::CADTextObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: CADTextObject::~CADTextObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADTextObject::~CADTextObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: CADAttribObject::CADAttribObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttribObject::CADAttribObject(ObjectType typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: CADAttribObject::~CADAttribObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttribObject::~CADAttribObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: CADAttdefObject::CADAttdefObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttdefObject::CADAttdefObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: CADAttdefObject::~CADAttdefObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttdefObject::~CADAttdefObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: CADBlockObject::CADBlockObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockObject::CADBlockObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: CADBlockObject::~CADBlockObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockObject::~CADBlockObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: CADEndblkObject::CADEndblkObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEndblkObject::CADEndblkObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: CADEndblkObject::~CADEndblkObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEndblkObject::~CADEndblkObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: CADSeqendObject::CADSeqendObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSeqendObject::CADSeqendObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: CADSeqendObject::~CADSeqendObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSeqendObject::~CADSeqendObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: CADInsertObject::CADInsertObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADInsertObject::CADInsertObject(ObjectType typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: CADInsertObject::~CADInsertObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADInsertObject::~CADInsertObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: CADMInsertObject::CADMInsertObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMInsertObject::CADMInsertObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: CADMInsertObject::~CADMInsertObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMInsertObject::~CADMInsertObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: CADVertex2DObject::CADVertex2DObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertex2DObject::CADVertex2DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: CADVertex2DObject::~CADVertex2DObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertex2DObject::~CADVertex2DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: CADVertex3DObject::CADVertex3DObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertex3DObject::CADVertex3DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: CADVertex3DObject::~CADVertex3DObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertex3DObject::~CADVertex3DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: CADVertexMeshObject::CADVertexMeshObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexMeshObject::CADVertexMeshObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: CADVertexMeshObject::~CADVertexMeshObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexMeshObject::~CADVertexMeshObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: CADVertexPFaceObject::CADVertexPFaceObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexPFaceObject::CADVertexPFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: CADVertexPFaceObject::~CADVertexPFaceObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexPFaceObject::~CADVertexPFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: CADVertexPFaceFaceObject::CADVertexPFaceFaceObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexPFaceFaceObject::CADVertexPFaceFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    functionName: CADVertexPFaceFaceObject::~CADVertexPFaceFaceObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADVertexPFaceFaceObject::~CADVertexPFaceFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: CADPolyline2DObject::CADPolyline2DObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolyline2DObject::CADPolyline2DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: CADPolyline2DObject::~CADPolyline2DObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolyline2DObject::~CADPolyline2DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: CADPolyline3DObject::CADPolyline3DObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolyline3DObject::CADPolyline3DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: CADPolyline3DObject::~CADPolyline3DObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolyline3DObject::~CADPolyline3DObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: CADArcObject::CADArcObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADArcObject::CADArcObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: CADArcObject::~CADArcObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADArcObject::~CADArcObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: CADCircleObject::CADCircleObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCircleObject::CADCircleObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: CADCircleObject::~CADCircleObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCircleObject::~CADCircleObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: CADLineObject::CADLineObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineObject::CADLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: CADLineObject::~CADLineObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineObject::~CADLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: CADBaseControlObject::CADBaseControlObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBaseControlObject::CADBaseControlObject(ObjectType typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: CADBaseControlObject::~CADBaseControlObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBaseControlObject::~CADBaseControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: CADBlockControlObject::CADBlockControlObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockControlObject::CADBlockControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: CADBlockControlObject::~CADBlockControlObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockControlObject::~CADBlockControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: CADBlockHeaderObject::CADBlockHeaderObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockHeaderObject::CADBlockHeaderObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: CADBlockHeaderObject::~CADBlockHeaderObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBlockHeaderObject::~CADBlockHeaderObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: CADLayerControlObject::CADLayerControlObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayerControlObject::CADLayerControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: CADLayerControlObject::~CADLayerControlObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayerControlObject::~CADLayerControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: CADLayerObject::CADLayerObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayerObject::CADLayerObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 468
    functionName: CADLayerObject::~CADLayerObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLayerObject::~CADLayerObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: CADLineTypeControlObject::CADLineTypeControlObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineTypeControlObject::CADLineTypeControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 480
    functionName: CADLineTypeControlObject::~CADLineTypeControlObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineTypeControlObject::~CADLineTypeControlObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 495
    functionName: CADLineTypeObject::CADLineTypeObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineTypeObject::CADLineTypeObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: CADLineTypeObject::~CADLineTypeObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLineTypeObject::~CADLineTypeObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: CADPointObject::CADPointObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPointObject::CADPointObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: CADPointObject::~CADPointObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPointObject::~CADPointObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: CADSolidObject::CADSolidObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: void CADSolidObject::CADSolidObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 524
    functionName: CADSolidObject::~CADSolidObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSolidObject::~CADSolidObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: CADEllipseObject::CADEllipseObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEllipseObject::CADEllipseObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: CADEllipseObject::~CADEllipseObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEllipseObject::~CADEllipseObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: CADRayObject::CADRayObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADRayObject::CADRayObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: CADRayObject::~CADRayObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADRayObject::~CADRayObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: CADXLineObject::CADXLineObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXLineObject::CADXLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 560
    functionName: CADXLineObject::~CADXLineObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXLineObject::~CADXLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: CADDictionaryObject::CADDictionaryObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionaryObject::CADDictionaryObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: CADDictionaryObject::~CADDictionaryObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDictionaryObject::~CADDictionaryObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: CADLWPolylineObject::CADLWPolylineObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolylineObject::CADLWPolylineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 589
    functionName: CADLWPolylineObject::~CADLWPolylineObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolylineObject::~CADLWPolylineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 612
    functionName: CADSplineObject::CADSplineObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSplineObject::CADSplineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: CADSplineObject::~CADSplineObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSplineObject::~CADSplineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:641,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:641,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:642,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nType
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: isCommonEntityType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached:
    - end
    - begin
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool isCommonEntityType( short nType )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:648,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:648,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:649,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nType
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: isSupportedGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached:
    - end
    - begin
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool isSupportedGeometryType( short nType )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:741,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp:742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - eType
    argTypes:
    - CADObject::ObjectType
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: getNameByType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string getNameByType( CADObject::ObjectType eType )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: CADObject::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADObject::ObjectType
    signature: CADObject::ObjectType CADObject::getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: CADObject::getSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long CADObject::getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 764
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 764
    functionName: CADObject::setSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADObject::setSize( long value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: CADObject::getCRC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short CADObject::getCRC() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned short
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: CADObject::setCRC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADObject::setCRC( unsigned short value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 780
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 780
    functionName: CADDimensionObject::~CADDimensionObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionObject::~CADDimensionObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 790
    functionName: CADDimensionOrdinateObject::CADDimensionOrdinateObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionOrdinateObject::CADDimensionOrdinateObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    functionName: CADDimensionOrdinateObject::~CADDimensionOrdinateObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionOrdinateObject::~CADDimensionOrdinateObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 803
    functionName: CADDimensionLinearObject::CADDimensionLinearObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionLinearObject::CADDimensionLinearObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    functionName: CADDimensionLinearObject::~CADDimensionLinearObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionLinearObject::~CADDimensionLinearObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 815
    functionName: CADDimensionAlignedObject::CADDimensionAlignedObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAlignedObject::CADDimensionAlignedObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 817
    functionName: CADDimensionAlignedObject::~CADDimensionAlignedObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAlignedObject::~CADDimensionAlignedObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: CADDimensionAngular3PtObject::CADDimensionAngular3PtObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAngular3PtObject::CADDimensionAngular3PtObject(ObjectType
      typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 828
    functionName: CADDimensionAngular3PtObject::~CADDimensionAngular3PtObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAngular3PtObject::~CADDimensionAngular3PtObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: CADDimensionAngular2LnObject::CADDimensionAngular2LnObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAngular2LnObject::CADDimensionAngular2LnObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 839
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 839
    functionName: CADDimensionAngular2LnObject::~CADDimensionAngular2LnObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionAngular2LnObject::~CADDimensionAngular2LnObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 849
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 849
    functionName: CADDimensionRadiusObject::CADDimensionRadiusObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionRadiusObject::CADDimensionRadiusObject(ObjectType
      typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 851
    functionName: CADDimensionRadiusObject::~CADDimensionRadiusObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionRadiusObject::~CADDimensionRadiusObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: CADDimensionDiameterObject::CADDimensionDiameterObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionDiameterObject::CADDimensionDiameterObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 862
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 862
    functionName: CADDimensionDiameterObject::~CADDimensionDiameterObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADDimensionDiameterObject::~CADDimensionDiameterObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 882
    functionName: CADImageObject::CADImageObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageObject::CADImageObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: CADImageObject::~CADImageObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageObject::~CADImageObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 899
    functionName: CADImageDefObject::CADImageDefObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageDefObject::CADImageDefObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 901
    functionName: CADImageDefObject::~CADImageDefObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageDefObject::~CADImageDefObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - typeIn
    argTypes:
    - ObjectType
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 911
    functionName: CADImageDefReactorObject::CADImageDefReactorObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageDefReactorObject::CADImageDefReactorObject(ObjectType
      typeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 913
    functionName: CADImageDefReactorObject::~CADImageDefReactorObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImageDefReactorObject::~CADImageDefReactorObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 935
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 935
    functionName: CADMTextObject::CADMTextObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMTextObject::CADMTextObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 937
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 937
    functionName: CADMTextObject::~CADMTextObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMTextObject::~CADMTextObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: CADMLineObject::CADMLineObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMLineObject::CADMLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 953
    functionName: CADMLineObject::~CADMLineObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMLineObject::~CADMLineObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 965
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 965
    functionName: CAD3DFaceObject::CAD3DFaceObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CAD3DFaceObject::CAD3DFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 967
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 967
    functionName: CAD3DFaceObject::~CAD3DFaceObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CAD3DFaceObject::~CAD3DFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: CADPolylinePFaceObject::CADPolylinePFaceObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFaceObject::CADPolylinePFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 981
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 981
    functionName: CADPolylinePFaceObject::~CADPolylinePFaceObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFaceObject::~CADPolylinePFaceObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 992
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 992
    functionName: CADXRecordObject::CADXRecordObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXRecordObject::CADXRecordObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 994
    functionName: CADXRecordObject::~CADXRecordObject()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXRecordObject::~CADXRecordObject()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADTables
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 68
    functionName: CADTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadtables.h
    functionUses: 1
    functionsReached:
    - CADTables
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADTables
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHeader::CADHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.h:123,1
    - Dst: CADClasses::CADClasses
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.h:124,1
    - Dst: CADTables::CADTables
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 130
    functionName: CADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.h
    functionUses: 2
    functionsReached:
    - CADHeader::CADHeader
    - CADTables::CADTables
    - CADClasses::CADClasses
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADFile
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:42,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:42,1
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:43,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:43,1
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:44,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:44,1
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:51,1
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:52,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:52,1
    - Dst: toupper
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:53,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:53,1
    - Dst: CADFileIO*::IsOpened
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:59,1
    - Dst: CADFileIO*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:60,1
    - Dst: CADFileIO*::IsOpened
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:61,1
    - Dst: CADFileIO*::Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:65,1
    - Dst: CADFileIO*::Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:66,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:67,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 1
    argNames:
    - pCADFileIO
    argTypes:
    - CADFileIO*
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: CheckCADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 0
    functionsReached:
    - CADFileIO*::Open
    - atoi
    - static_cast<unsigned char>
    - CADFileIO*::Read
    - CADFileIO*::IsOpened
    - CADFileIO*::Rewind
    - toupper
    linkageType: ''
    returnType: int
    signature: int CheckCADFile(CADFileIO * pCADFileIO)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DWGFileR2000::DWGFileR2000
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:85,1
    - Dst: CADFile*::ParseFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - pCADFileIO
    - eOptions
    - bReadUnsupportedGeometries
    argTypes:
    - CADFileIO*
    - enum CADFile::OpenOptions
    - bool
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: OpenCADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 1
    functionsReached:
    - DWGFileR2000::DWGFileR2000
    - CADFile*::ParseFile
    linkageType: ''
    returnType: CADFile
    signature: CADFile * OpenCADFile( CADFileIO * pCADFileIO, enum CADFile::OpenOptions
      eOptions, bool bReadUnsupportedGeometries )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: GetVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: GetVersionString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * GetVersionString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: GetLastErrorCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLastErrorCode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADFileStreamIO::CADFileStreamIO
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: GetDefaultFileIO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 0
    functionsReached:
    - CADFileStreamIO::CADFileStreamIO
    linkageType: ''
    returnType: CADFileIO
    signature: CADFileIO * GetDefaultFileIO( const char * pszFileName )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pCADFileIO
    - bOwn
    argTypes:
    - CADFileIO*
    - bool
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: IdentifyCADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IdentifyCADFile( CADFileIO * pCADFileIO, bool bOwn )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: GetCADFormats
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * GetCADFormats()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenCADFile
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:175,1
    - Dst: GetDefaultFileIO
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pszFileName
    - eOptions
    - bReadUnsupportedGeometries
    argTypes:
    - char*
    - enum CADFile::OpenOptions
    - bool
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: OpenCADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/opencad.cpp
    functionUses: 2
    functionsReached:
    - GetDefaultFileIO
    - OpenCADFile
    linkageType: ''
    returnType: CADFile
    signature: CADFile * OpenCADFile( const char * pszFileName, enum CADFile::OpenOptions
      eOptions, bool bReadUnsupportedGeometries )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:38,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:38,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:39,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:39,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:40,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vector'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: Matrix::translate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached:
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void Matrix::translate( const CADVector& vector )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rotation
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: Matrix::rotate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Matrix::rotate( double rotation )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:65,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:66,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:67,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:68,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:69,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vector'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: Matrix::scale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached:
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void Matrix::scale( const CADVector& vector )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:75,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:76,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:76,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:76,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:76,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:77,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:77,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:77,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:77,1
    - Dst: CADVector::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:78,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:78,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:78,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vector'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: Matrix::multiply
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - CADVector::setY
    - CADVector::setX
    - getY
    - getZ
    - CADVector::setZ
    - getX
    - CADVector::CADVector
    linkageType: ''
    returnType: CADVector
    signature: CADVector Matrix::multiply( const CADVector& vector ) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: CADGeometry::CADGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::CADGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: CADGeometry::~CADGeometry()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::~CADGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: CADGeometry::getType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADGeometry::GeometryType
    signature: CADGeometry::GeometryType CADGeometry::getType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: CADGeometry::getThickness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADGeometry::getThickness() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thickness
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: CADGeometry::setThickness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::setThickness( double thickness )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: CADGeometry::getColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RGBColor
    signature: RGBColor CADGeometry::getColor() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color
    argTypes:
    - RGBColor
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: CADGeometry::setColor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::setColor( RGBColor color )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: CADGeometry::getEED
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<string>
    signature: vector<string> CADGeometry::getEED() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' eed'
    argTypes:
    - vector<string>
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: CADGeometry::setEED
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::setEED( const vector<string>& eed )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: CADGeometry::getBlockAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<CADAttrib>
    signature: vector<CADAttrib> CADGeometry::getBlockAttributes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - vector<CADAttrib>
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: CADGeometry::setBlockAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADGeometry::setBlockAttributes( const vector<CADAttrib>& data
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: CADUnknown::CADUnknown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADUnknown::CADUnknown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: CADUnknown::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADUnknown::transform( const Matrix& /*matrix*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: CADUnknown::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADUnknown::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: CADPoint3D::CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::CADPoint3D()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' positionIn'
    - thicknessIn
    argTypes:
    - CADVector
    - double
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: CADPoint3D::CADPoint3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::CADPoint3D( const CADVector& positionIn, double thicknessIn
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: CADPoint3D::getPosition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADPoint3D::getPosition() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: CADPoint3D::setPosition
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::setPosition( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: CADPoint3D::getExtrusion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADPoint3D::getExtrusion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: CADPoint3D::setExtrusion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::setExtrusion( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: CADPoint3D::getXAxisAng
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADPoint3D::getXAxisAng() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: CADPoint3D::setXAxisAng
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::setXAxisAng( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:212,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:213,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: CADPoint3D::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: CADPoint3D::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADPoint3D::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: CADLine::CADLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLine::CADLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' startIn'
    - ' endIn'
    argTypes:
    - CADPoint3D
    - CADPoint3D
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: CADLine::CADLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLine::CADLine( const CADPoint3D& startIn, const CADPoint3D&
      endIn )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: CADLine::getStart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADPoint3D
    signature: CADPoint3D CADLine::getStart() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADPoint3D
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: CADLine::setStart
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLine::setStart( const CADPoint3D& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: CADLine::getEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADPoint3D
    signature: CADPoint3D CADLine::getEnd() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADPoint3D
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: CADLine::setEnd
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLine::setEnd( const CADPoint3D& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:261,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:262,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:263,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:264,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:265,1
    - Dst: getPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: CADLine::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getPosition
    linkageType: ''
    returnType: void
    signature: void CADLine::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLine::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:271,1
    - Dst: CADLine::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: CADLine::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 1
    functionsReached:
    - CADLine::transform
    linkageType: ''
    returnType: void
    signature: void CADLine::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: CADCircle::CADCircle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCircle::CADCircle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: CADCircle::getRadius
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADCircle::getRadius() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: CADCircle::setRadius
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCircle::setRadius( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:297,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:298,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: CADCircle::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADCircle::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: CADArc::CADArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADArc::CADArc()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: CADArc::getStartingAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADArc::getStartingAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: CADArc::setStartingAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADArc::setStartingAngle( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: CADArc::getEndingAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADArc::getEndingAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: CADArc::setEndingAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADArc::setEndingAngle( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:337,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:338,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: CADArc::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADArc::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: CADPolyline3D::CADPolyline3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolyline3D::CADPolyline3D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vertex'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: CADPolyline3D::addVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADPolyline3D::addVertex( const CADVector& vertex )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: CADPolyline3D::getVertexCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t CADPolyline3D::getVertexCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: '& CADPolyline3D::getVertex( size_t index )'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector & CADPolyline3D::getVertex( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:372,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:375,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: CADPolyline3D::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADPolyline3D::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: CADPolyline3D::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADPolyline3D::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: CADLWPolyline::CADLWPolyline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::CADLWPolyline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:404,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:407,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: CADLWPolyline::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: CADLWPolyline::getConstWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADLWPolyline::getConstWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: CADLWPolyline::setConstWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setConstWidth( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: CADLWPolyline::getElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADLWPolyline::getElevation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: CADLWPolyline::setElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setElevation( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: CADLWPolyline::getVectExtrusion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADLWPolyline::getVectExtrusion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: CADLWPolyline::setVectExtrusion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setVectExtrusion( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: CADLWPolyline::getWidths
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<pair<double, double> >
    signature: vector<pair<double, double> > CADLWPolyline::getWidths() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - vector<pair<double, double> >
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: CADLWPolyline::setWidths
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setWidths( const vector<pair<double, double> >&
      value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: CADLWPolyline::getBulges
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<double>
    signature: vector<double> CADLWPolyline::getBulges() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - vector<double>
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: CADLWPolyline::setBulges
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setBulges( const vector<double>& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: CADLWPolyline::isClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADLWPolyline::isClosed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: CADLWPolyline::setClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADLWPolyline::setClosed( bool state )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: CADEllipse::CADEllipse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEllipse::CADEllipse()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: CADEllipse::getAxisRatio
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADEllipse::getAxisRatio() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: CADEllipse::setAxisRatio
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEllipse::setAxisRatio( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: CADEllipse::getSMAxis
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADEllipse::getSMAxis()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' SMAxisVect'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: CADEllipse::setSMAxis
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADEllipse::setSMAxis( const CADVector& SMAxisVect )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:506,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:507,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 511
    functionName: CADEllipse::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADEllipse::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: CADText::CADText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADText::CADText()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: CADText::getTextValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string CADText::getTextValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: CADText::setTextValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADText::setTextValue( const string& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: CADText::getHeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADText::getHeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: CADText::setHeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADText::setHeight( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: CADText::getRotationAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADText::getRotationAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: CADText::setRotationAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADText::setRotationAngle( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: CADText::getObliqueAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADText::getObliqueAngle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: CADText::setObliqueAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADText::setObliqueAngle( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:568,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: CADText::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADText::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: CADRay::CADRay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADRay::CADRay()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: CADRay::getVectVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADRay::getVectVector() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: CADRay::setVectVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADRay::setVectVector( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:595,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:596,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:597,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 599
    functionName: CADRay::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADRay::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: CADHatch::CADHatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADHatch::CADHatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 610
    functionName: CADHatch::~CADHatch()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADHatch::~CADHatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 625
    functionName: CADSpline::CADSpline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::CADSpline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:633,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:634,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:636,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:637,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:638,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:645,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:646,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:648,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:649,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 653
    functionName: CADSpline::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADSpline::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:658,1
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: CADSpline::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADSpline::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: CADSpline::getScenario
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long CADSpline::getScenario() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: CADSpline::setScenario
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setScenario( long value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: CADSpline::isRational
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADSpline::isRational() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: CADSpline::setRational
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setRational( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: CADSpline::isClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADSpline::isClosed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: CADSpline::setClosed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setClosed( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_weight
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: CADSpline::addControlPointsWeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADSpline::addControlPointsWeight( double p_weight )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: CADSpline::addControlPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADSpline::addControlPoint( const CADVector& point )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: CADSpline::addFitPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADSpline::addFitPoint( const CADVector& point )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: CADSpline::getWeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADSpline::getWeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 716
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 716
    functionName: CADSpline::setWeight
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setWeight( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 721
    functionName: CADSpline::getFitTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADSpline::getFitTolerance() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: CADSpline::setFitTolerance
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setFitTolerance( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: CADSpline::getDegree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long CADSpline::getDegree() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: CADSpline::setDegree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSpline::setDegree( long value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: '& CADSpline::getControlPoints()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<CADVector>
    signature: vector<CADVector> & CADSpline::getControlPoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: '& CADSpline::getFitPoints()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<CADVector>
    signature: vector<CADVector> & CADSpline::getFitPoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 751
    functionName: '& CADSpline::getControlPointsWeights()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<double>
    signature: vector<double> & CADSpline::getControlPointsWeights()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: CADSolid::CADSolid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSolid::CADSolid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:766,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:768,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 773
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 773
    functionName: CADSolid::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADSolid::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPoint3D::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:777,1
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 780
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 780
    functionName: CADSolid::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - CADPoint3D::transform
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADSolid::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 785
    functionName: CADSolid::getElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADSolid::getElevation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: CADSolid::setElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADSolid::setElevation( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' corner'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 795
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 795
    functionName: CADSolid::addCorner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADSolid::addCorner( const CADVector& corner )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 800
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 800
    functionName: CADSolid::getCorners
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vector<CADVector>
    signature: vector<CADVector> CADSolid::getCorners()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 815
    functionName: CADImage::CADImage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::CADImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: CADImage::getVertInsertionPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADImage::getVertInsertionPoint() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 825
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 825
    functionName: CADImage::setVertInsertionPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setVertInsertionPoint( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: CADImage::getImageSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADImage::getImageSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: CADImage::setImageSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setImageSize( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: CADImage::getImageSizeInPx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADImage::getImageSizeInPx() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: CADImage::setImageSizeInPx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setImageSizeInPx( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: CADImage::getPixelSizeInACADUnits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADImage::getPixelSizeInACADUnits() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: CADImage::setPixelSizeInACADUnits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setPixelSizeInACADUnits( const CADVector& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: CADImage::getClippingBoundaryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short CADImage::getClippingBoundaryType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: CADImage::setClippingBoundaryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setClippingBoundaryType( short value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 870
    functionName: CADImage::getResolutionUnits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum CADImage::ResolutionUnit
    signature: enum CADImage::ResolutionUnit CADImage::getResolutionUnits() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res_unit
    argTypes:
    - enum CADImage::ResolutionUnit
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: CADImage::setResolutionUnits
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setResolutionUnits( enum CADImage::ResolutionUnit res_unit
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: CADImage::getFilePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string CADImage::getFilePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: CADImage::setFilePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADImage::setFilePath( const string& value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - transparency
    - clip
    - brightness
    - contrast
    argTypes:
    - bool
    - bool
    - unsigned char
    - unsigned char
    constantsTouched: []
    func_position:
      end: 894
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 894
    functionName: CADImage::setOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CADImage::setOptions( bool transparency, bool clip, unsigned
      char brightness,\n    unsigned char contrast )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:900,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:901,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:906,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:908,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 912
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 912
    functionName: CADImage::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    linkageType: ''
    returnType: void
    signature: void CADImage::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:916,1
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: CADImage::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADImage::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pt'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: CADImage::addClippingPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADImage::addClippingPoint( const CADVector& pt )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 936
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 936
    functionName: CADMText::CADMText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMText::CADMText()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: CADMText::getRectWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADMText::getRectWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 946
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 946
    functionName: CADMText::setRectWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMText::setRectWidth( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: CADMText::getExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADMText::getExtents() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: CADMText::setExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMText::setExtents( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: CADMText::getExtentsWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADMText::getExtentsWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: CADMText::setExtentsWidth
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMText::setExtentsWidth( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:971,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:972,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: CADMText::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADMText::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 985
    functionName: CADFace3D::CADFace3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFace3D::CADFace3D()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' corner'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 990
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 990
    functionName: CADFace3D::addCorner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADFace3D::addCorner( const CADVector& corner )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: CADFace3D::getCorner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADFace3D::getCorner( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1001,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1003,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1004,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1008
    functionName: CADFace3D::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADFace3D::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 1016
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1016
    functionName: CADFace3D::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADFace3D::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1021
    functionName: CADFace3D::getInvisFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short CADFace3D::getInvisFlags() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - short
    constantsTouched: []
    func_position:
      end: 1026
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1026
    functionName: CADFace3D::setInvisFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFace3D::setInvisFlags( short value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1035
    functionName: CADPolylinePFace::CADPolylinePFace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFace::CADPolylinePFace()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1040,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1042,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1043,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1047
    functionName: CADPolylinePFace::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFace::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 1053
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1053
    functionName: CADPolylinePFace::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFace::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vertex'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 1058
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1058
    functionName: CADPolylinePFace::addVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADPolylinePFace::addVertex( const CADVector& vertex )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: CADXLine::CADXLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADXLine::CADXLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1072,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1073,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1074,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1075,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1076,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1078
    functionName: CADXLine::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADXLine::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: CADMLine::CADMLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMLine::CADMLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1094,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1095,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1096,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1098,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1100,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1101,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1105
    functionName: CADMLine::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - size
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADMLine::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPoint3D::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1109,1
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 1114
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1114
    functionName: CADMLine::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - CADPoint3D::transform
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADMLine::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1119
    functionName: CADMLine::getScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADMLine::getScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1124
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1124
    functionName: CADMLine::setScale
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMLine::setScale( double value )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1129
    functionName: CADMLine::isOpened
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADMLine::isOpened() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1134
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1134
    functionName: CADMLine::setOpened
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADMLine::setOpened( bool value )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vertex'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 1139
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1139
    functionName: CADMLine::addVertex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void CADMLine::addVertex( const CADVector& vertex )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1150
    functionName: CADAttrib::CADAttrib
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttrib::CADAttrib()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1155,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1156,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1160
    functionName: CADAttrib::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADAttrib::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection::transform
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1164,1
    - Dst: multiply
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matrix'
    argTypes:
    - Matrix
    constantsTouched: []
    func_position:
      end: 1166
      start: 1162
    functionDepth: 2
    functionLinenumber: 1162
    functionLinenumberEnd: 1166
    functionName: CADAttrib::transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryCollection::transform
    - multiply
    linkageType: ''
    returnType: void
    signature: void CADAttrib::transform( const Matrix& matrix )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: CADAttrib::getElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double CADAttrib::getElevation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elev
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: CADAttrib::setElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttrib::setElevation( double elev )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1181
    functionName: CADAttrib::getTag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string CADAttrib::getTag() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tag'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 1186
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1186
    functionName: CADAttrib::setTag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttrib::setTag( const string& tag )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: CADAttrib::getAlignmentPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADAttrib::getAlignmentPoint() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vect'
    argTypes:
    - CADVector
    constantsTouched: []
    func_position:
      end: 1196
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1196
    functionName: CADAttrib::setAlignmentPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttrib::setAlignmentPoint( const CADVector& vect )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1201
    functionName: CADAttrib::isPositionLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADAttrib::isPositionLocked() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1206
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1206
    functionName: CADAttrib::setPositionLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttrib::setPositionLocked( bool lock )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1215
    functionName: CADAttdef::CADAttdef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttdef::CADAttdef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1220,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1221,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1226
    functionName: CADAttdef::print
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached:
    - getX
    - getY
    - getZ
    linkageType: ''
    returnType: void
    signature: void CADAttdef::print() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1231
    functionName: CADAttdef::getPrompt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string CADAttdef::getPrompt() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' prompt'
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 1236
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1236
    functionName: CADAttdef::setPrompt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADAttdef::setPrompt( const string& prompt )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poFileIO
    argTypes:
    - CADFileIO*
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: CADFile::CADFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADFile::CADFile( CADFileIO * poFileIO )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: CADFile::~CADFile()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: void CADFile::~CADFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: '& CADFile::getHeader() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADHeader
    signature: CADHeader & CADFile::getHeader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: '& CADFile::getClasses() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADClasses
    signature: CADClasses & CADFile::getClasses() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: '& CADFile::getTables() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADTables
    signature: CADTables & CADFile::getTables() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsOpened
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:55,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:57,1
    - Dst: ReadSectionLocators
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:65,1
    - Dst: ReadHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:68,1
    - Dst: ReadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:71,1
    - Dst: CreateFileMap
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:74,1
    - Dst: CADFile::ReadTables
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - eOptions
    - bReadUnsupportedGeometries
    argTypes:
    - enum OpenOptions
    - bool
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: CADFile::ParseFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached:
    - IsOpened
    - Open
    - ReadSectionLocators
    - ReadHeader
    - CADFile::ReadTables
    - ReadClasses
    - CreateFileMap
    linkageType: ''
    returnType: int
    signature: int CADFile::ParseFile( enum OpenOptions eOptions, bool bReadUnsupportedGeometries
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: CADFile::ReadTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CADFile::ReadTables( CADFile::OpenOptions /*eOptions*/ )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: CADFile::GetLayersCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached:
    - GetLayerCount
    linkageType: ''
    returnType: size_t
    signature: size_t CADFile::GetLayersCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: '& CADFile::GetLayer( size_t index )'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached:
    - GetLayer
    linkageType: ''
    returnType: CADLayer
    signature: CADLayer & CADFile::GetLayer( size_t index )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: CADFile::isReadingUnsupportedGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADFile::isReadingUnsupportedGeometries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: CADVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 8
    functionsReached:
    - CADVector
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADVector
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 210
    functionName: CADObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class OCAD_EXTERN
    signature: class OCAD_EXTERN CADObject
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: CADCommonED
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCommonED()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class CADEntityObject
    signature: class CADEntityObject CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:344,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:345,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:346,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 363
    functionName: CADEntityObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached:
    - CADVector::CADVector
    - CADHandle::CADHandle
    linkageType: ''
    returnType: class CADAttribObject
    signature: class CADAttribObject CADEntityObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBaseControlObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:617,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 626
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached:
    - CADBaseControlObject
    - CADHandle::CADHandle
    linkageType: ''
    returnType: class CADBaseControlObject
    signature: class CADBaseControlObject CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 973
    functionName: CADCommonDimensionData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADCommonDimensionData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:985,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:986,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 988
    functionName: CADEntityObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached:
    - CADVector::CADVector
    - CADHandle::CADHandle
    linkageType: ''
    returnType: class CADDimensionObject
    signature: class CADDimensionObject CADEntityObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:1037,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1039
    functionName: CADDimensionObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached:
    - CADVector::CADVector
    linkageType: ''
    returnType: class CADDimensionAngular3PtObject
    signature: class CADDimensionAngular3PtObject CADDimensionObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1064
    functionName: CADDimensionObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 0
    functionsReached:
    - CADVector::CADVector
    linkageType: ''
    returnType: class CADDimensionRadiusObject
    signature: class CADDimensionRadiusObject CADDimensionObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:1121,1
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1124
    functionName: CADBaseControlObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h
    functionUses: 1
    functionsReached:
    - CADHandle::CADHandle
    linkageType: ''
    returnType: class CADImageDefReactorObject
    signature: class CADImageDefReactorObject CADBaseControlObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: std::to_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 20
    functionsReached:
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:66,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:70,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:76,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:79,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:86,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:88,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:89,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:90,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:93,1
    - Dst: CADBuffer::WriteRAW
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:98,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:99,1
    - Dst: CADBuffer::GetRawBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:99,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:102,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:103,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:104,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:110,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:110,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:111,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:111,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:112,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:112,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:113,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:113,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:114,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:114,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:115,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:115,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:116,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:116,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:117,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:117,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:118,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:118,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:119,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:119,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:123,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:124,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:125,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:126,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:127,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:128,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:129,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:130,1
    - Dst: CADBuffer::SkipBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:131,1
    - Dst: CADBuffer::SkipBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:132,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:135,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:136,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:140,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:140,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:141,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:141,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:142,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:142,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:143,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:143,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:144,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:144,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:145,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:145,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:146,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:146,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:147,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:147,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:148,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:148,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:149,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:149,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:150,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:150,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:151,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:151,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:152,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:152,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:153,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:153,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:154,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:154,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:155,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:155,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:156,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:156,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:157,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:157,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:158,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:158,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:159,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:159,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:163,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:168,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:168,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:169,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:169,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:170,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:170,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:171,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:171,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:172,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:172,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:173,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:173,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:177,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:180,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:180,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:181,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:181,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:185,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:185,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:186,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:186,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:187,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:187,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:188,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:188,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:189,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:189,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:190,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:190,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:191,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:191,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:192,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:192,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:193,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:193,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:194,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:194,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:195,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:195,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:196,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:196,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:197,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:197,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:198,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:198,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:199,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:199,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:200,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:200,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:201,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:201,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:202,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:202,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:203,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:203,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:208,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:211,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:211,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:212,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:212,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:213,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:213,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:214,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:214,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:215,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:215,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:216,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:216,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:217,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:217,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:218,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:218,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:219,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:219,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:223,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:223,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:224,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:224,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:225,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:225,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:226,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:226,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:227,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:227,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:228,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:228,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:229,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:229,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:230,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:230,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:231,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:231,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:232,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:232,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:233,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:233,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:234,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:234,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:236,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:236,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:240,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:241,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:245,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:246,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:247,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:248,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:249,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:250,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:251,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:252,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:253,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:254,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:255,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:256,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:258,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:258,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:260,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:260,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:262,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:262,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:263,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:263,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:264,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:264,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:265,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:265,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:266,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:266,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:268,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:268,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:270,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:271,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:272,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:273,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:275,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:276,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:277,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:278,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:279,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:280,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:281,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:282,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:283,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:284,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:285,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:286,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:287,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:288,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:290,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:290,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:292,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:293,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:294,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:295,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:296,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:297,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:298,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:299,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:300,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:301,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:302,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:303,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:305,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:305,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:306,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:306,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:308,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:308,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:309,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:309,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:311,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:312,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:313,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:314,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:315,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:316,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:317,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:318,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:319,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:320,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:321,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:322,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:323,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:324,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:325,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:326,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:327,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:328,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:329,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:330,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:331,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:332,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:333,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:334,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:336,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:337,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:338,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:339,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:340,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:341,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:342,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:343,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:344,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:345,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:346,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:347,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:348,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:349,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:350,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:351,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:352,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:353,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:355,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:355,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:356,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:357,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:358,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:359,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:360,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:361,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:362,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:363,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:364,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:365,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:366,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:367,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:369,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:369,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:370,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:370,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:372,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:372,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:374,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:374,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:376,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:377,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:378,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:379,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:380,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:381,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:382,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:383,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:384,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:385,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:386,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:387,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:388,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:389,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:390,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:391,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:392,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:393,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:394,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:395,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:396,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:397,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:398,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:399,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:403,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:403,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:404,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:404,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:406,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:406,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:407,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:407,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:408,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:408,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:409,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:409,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:410,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:410,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:411,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:411,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:412,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:412,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:413,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:413,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:414,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:414,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:416,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:416,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:417,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:417,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:418,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:418,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:419,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:419,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:420,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:420,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:421,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:421,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:423,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:423,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:424,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:424,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:425,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:425,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:427,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:427,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:428,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:428,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:429,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:429,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:430,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:430,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:431,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:431,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:432,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:432,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:433,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:433,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:434,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:434,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:435,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:435,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:437,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:437,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:439,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:439,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:441,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:441,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:442,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:442,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:443,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:443,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:444,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:444,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:446,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:446,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:447,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:447,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:448,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:448,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:449,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:449,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:450,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:450,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:451,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:451,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:452,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:452,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:453,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:453,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:454,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:454,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:455,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:455,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:456,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:456,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:457,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:457,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:458,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:458,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:459,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:459,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:461,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:461,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:462,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:462,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:464,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:464,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:465,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:465,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:466,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:466,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:467,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:467,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:469,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:469,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:471,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:471,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:473,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:473,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:474,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:474,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:475,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:475,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:476,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:476,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:477,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:477,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:479,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:479,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:480,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:480,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:483,1
    - Dst: CADBuffer::SkipTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:484,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:487,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:489,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:492,1
    - Dst: CADBuffer::SkipBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:495,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:497,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:499,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:501,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:504,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:506,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:509,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:511,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:512,1
    - Dst: CADBuffer::SkipHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:515,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:517,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:518,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:521,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:522,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:524,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:525,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:527,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:528,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:530,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:531,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:533,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:534,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:536,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:537,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:539,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:540,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:542,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:543,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:547,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:547,1
    - Dst: CADBuffer::SkipHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:551,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:554,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:555,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:557,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:558,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:560,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:561,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:563,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:564,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:568,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:568,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:569,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:569,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:572,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:573,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:576,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:576,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:577,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:577,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:579,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:580,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:582,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:583,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:585,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:586,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:591,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:592,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:593,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:594,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:595,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:596,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:597,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:598,1
    - Dst: CADBuffer::SkipBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:602,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:605,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:605,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:607,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:610,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:610,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:612,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:612,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:613,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:613,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:615,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:616,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:618,1
    - Dst: AddTable
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:619,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:625,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:626,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:627,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:629,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:629,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:630,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:630,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:631,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:631,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:632,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:632,1
    - Dst: CADBuffer::SkipHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:635,1
    - Dst: CADBuffer::SkipHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:636,1
    - Dst: CADBuffer::SkipHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:637,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:638,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:639,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:640,1
    - Dst: CADBuffer::SkipBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:641,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:656,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:658,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 441
    argCount: 1
    argNames:
    - eOptions
    argTypes:
    - OpenOptions
    constantsTouched: []
    func_position:
      end: 667
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 667
    functionName: DWGFileR2000::ReadHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - Seek
    - CADBuffer::SkipTV
    - DebugMsg
    - AddTable
    - memcmp
    - CADBuffer::SkipHANDLE
    - FromLSB
    - CADBuffer::SkipBITDOUBLE
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadBIT
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::WriteRAW
    - CADBuffer::ReadBITSHORT
    - Read
    - CADBuffer::SkipBITSHORT
    - static_cast<int>
    - CADBuffer::ReadTV
    - CADBuffer::GetRawBuffer
    - CADBuffer::ReadHANDLE
    - CADBuffer::SkipBITLONG
    - addValue
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    linkageType: ''
    returnType: int
    signature: int DWGFileR2000::ReadHeader( OpenOptions eOptions )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:677,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:679,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:681,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:691,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:693,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:694,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:695,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:697,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:698,1
    - Dst: CADBuffer::WriteRAW
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:704,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:708,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:709,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:710,1
    - Dst: CADBuffer::PositionBit
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:715,1
    - Dst: CADClass::CADClass
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:717,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:718,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:719,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:720,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:721,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:722,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:723,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:724,1
    - Dst: addClass
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:726,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:726,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:729,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:743,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:745,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - eOptions
    argTypes:
    - enum OpenOptions
    constantsTouched: []
    func_position:
      end: 755
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 755
    functionName: DWGFileR2000::ReadClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - Seek
    - static_cast<int>
    - CADBuffer::PositionBit
    - CADBuffer::ReadTV
    - CADBuffer::ReadBIT
    - DebugMsg
    - memcmp
    - CADBuffer::WriteRAW
    - CADClass::CADClass
    - CADBuffer::ReadBITSHORT
    - std::move
    - CADBuffer::Seek
    - addClass
    - Read
    - FromLSB
    linkageType: ''
    returnType: int
    signature: int DWGFileR2000::ReadClasses( enum OpenOptions eOptions )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:765,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:768,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:777,1
    - Dst: SwapEndianness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:780,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:783,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:784,1
    - Dst: CADBuffer::WriteRAW
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:790,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:797,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:798,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:799,1
    - Dst: CADBuffer::PositionBit
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:804,1
    - Dst: CADBuffer::ReadUMCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:806,1
    - Dst: CADBuffer::ReadMCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:807,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:816,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:818,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:823,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:825,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:831,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:831,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:832,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:834,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 852
    functionName: DWGFileR2000::CreateFileMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - Seek
    - end
    - static_cast<int>
    - CADBuffer::PositionBit
    - CADBuffer::ReadUMCHAR
    - SwapEndianness
    - CADBuffer::ReadMCHAR
    - DebugMsg
    - assert
    - find
    - CADBuffer::WriteRAW
    - insert
    - Read
    - simple_min
    - clear
    linkageType: ''
    returnType: int
    signature: int DWGFileR2000::CreateFileMap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:858,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:859,1
    - Dst: CADBuffer::GetRawBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:859,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:868,1
    - Dst: CADBuffer::PositionBit
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:868,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:872,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:875,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:877,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:878,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:879,1
    - Dst: CADBuffer::ReadMSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:883,1
    - Dst: getClassByNum
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:887,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:889,1
    - Dst: CADClass::sCppClassName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:889,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:893,1
    - Dst: CADClass::sCppClassName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:893,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:897,1
    - Dst: CADClass::sCppClassName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:897,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:901,1
    - Dst: CADClass::sCppClassName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:901,1
    - Dst: isCommonEntityType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:908,1
    - Dst: CADBuffer::ReadRAWLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:912,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:913,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:917,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:920,1
    - Dst: CADEed::acData::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:929,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:929,1
    - Dst: struct CADCommonED::aEED::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:932,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:935,1
    - Dst: CADBuffer::ReadRAWLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:938,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:942,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:945,1
    - Dst: CADBuffer::Read2B
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:947,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:948,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:954,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:955,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:956,1
    - Dst: CADBuffer::Read2B
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:957,1
    - Dst: CADBuffer::Read2B
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:958,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:959,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:960,1
    - Dst: DWGFileR2000::getEntity
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:965,1
    - Dst: DWGFileR2000::getBlock
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:971,1
    - Dst: DWGFileR2000::getEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:974,1
    - Dst: DWGFileR2000::getMLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:977,1
    - Dst: DWGFileR2000::getSolid
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:980,1
    - Dst: DWGFileR2000::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:983,1
    - Dst: DWGFileR2000::getPolyLine3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:986,1
    - Dst: DWGFileR2000::getRay
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:989,1
    - Dst: DWGFileR2000::getXLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:992,1
    - Dst: DWGFileR2000::getLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:995,1
    - Dst: DWGFileR2000::getText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:998,1
    - Dst: DWGFileR2000::getVertex3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1001,1
    - Dst: DWGFileR2000::getCircle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1004,1
    - Dst: DWGFileR2000::getEndBlock
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1007,1
    - Dst: DWGFileR2000::getPolyline2D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1010,1
    - Dst: DWGFileR2000::getAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1013,1
    - Dst: DWGFileR2000::getAttributesDefn
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1016,1
    - Dst: DWGFileR2000::getLWPolyLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1019,1
    - Dst: DWGFileR2000::getArc
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1022,1
    - Dst: DWGFileR2000::getSpline
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1025,1
    - Dst: DWGFileR2000::getPolylinePFace
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1028,1
    - Dst: DWGFileR2000::getImage
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1031,1
    - Dst: DWGFileR2000::get3DFace
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1034,1
    - Dst: DWGFileR2000::getVertexMesh
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1037,1
    - Dst: DWGFileR2000::getVertexPFace
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1040,1
    - Dst: DWGFileR2000::getMText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1044,1
    - Dst: DWGFileR2000::getDimension
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1054,1
    - Dst: DWGFileR2000::getInsert
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1058,1
    - Dst: DWGFileR2000::getEntity
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1062,1
    - Dst: DWGFileR2000::getDictionary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1071,1
    - Dst: DWGFileR2000::getLayerObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1074,1
    - Dst: DWGFileR2000::getLayerControl
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1077,1
    - Dst: DWGFileR2000::getBlockControl
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1080,1
    - Dst: DWGFileR2000::getBlockHeader
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1083,1
    - Dst: DWGFileR2000::getLineTypeControl
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1086,1
    - Dst: DWGFileR2000::getLineType1
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1089,1
    - Dst: DWGFileR2000::getImageDef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1092,1
    - Dst: DWGFileR2000::getImageDefReactor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1095,1
    - Dst: DWGFileR2000::getXRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1098,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 152
    argCount: 2
    argNames:
    - dHandle
    - bHandlesOnly
    argTypes:
    - long
    - bool
    constantsTouched: []
    func_position:
      end: 1103
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 1103
    functionName: DWGFileR2000::GetObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - DWGFileR2000::getCircle
    - Seek
    - DWGFileR2000::getXLine
    - DWGFileR2000::getLayerControl
    - DebugMsg
    - CADClass::sCppClassName::c_str
    - DWGFileR2000::getImage
    - DWGFileR2000::getMLine
    - isCommonEntityType
    - DWGFileR2000::getAttributesDefn
    - strcmp
    - DWGFileR2000::getXRecord
    - DWGFileR2000::getSpline
    - DWGFileR2000::getLineType1
    - struct CADCommonED::aEED::push_back
    - DWGFileR2000::getSolid
    - getClassByNum
    - DWGFileR2000::getPoint
    - simple_max
    - CADBuffer::ReadMSHORT
    - CADEed::acData::push_back
    - CADBuffer::PositionBit
    - DWGFileR2000::getLWPolyLine
    - DWGFileR2000::getBlockHeader
    - static_cast<unsigned int>
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - DWGFileR2000::getEntity
    - CADBuffer::ReadCHAR
    - DWGFileR2000::getLine
    - CADBuffer::ReadBITSHORT
    - DWGFileR2000::getImageDef
    - DWGFileR2000::getEllipse
    - DWGFileR2000::getArc
    - DWGFileR2000::getPolylinePFace
    - CADBuffer::ReadRAWLONG
    - Read
    - DWGFileR2000::getText
    - DWGFileR2000::getBlock
    - static_cast<int>
    - DWGFileR2000::getEndBlock
    - CADBuffer::Read2B
    - DWGFileR2000::getLayerObject
    - DWGFileR2000::getDictionary
    - DWGFileR2000::getVertexMesh
    - CADBuffer::GetRawBuffer
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::getPolyline2D
    - DWGFileR2000::get3DFace
    - static_cast<size_t>
    - DWGFileR2000::getVertexPFace
    - DWGFileR2000::getMText
    - DWGFileR2000::getPolyLine3D
    - DWGFileR2000::getBlockControl
    - DWGFileR2000::getImageDefReactor
    - DWGFileR2000::getRay
    - CADBuffer::ReadBITLONG
    - DWGFileR2000::getVertex3D
    - DWGFileR2000::getDimension
    - DWGFileR2000::getAttributes
    - CADBuffer::Seek
    - DWGFileR2000::getInsert
    - DWGFileR2000::getLineTypeControl
    linkageType: ''
    returnType: CADObject
    signature: CADObject * DWGFileR2000::GetObject( long dHandle, bool bHandlesOnly
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<CADEntityObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1110,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1110,1
    - Dst: CADEntityObject*::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1117,1
    - Dst: CADArc::CADArc
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1121,1
    - Dst: static_cast<CADArcObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1122,1
    - Dst: CADArc*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1125,1
    - Dst: CADArc*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1126,1
    - Dst: CADArc*::setRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1127,1
    - Dst: CADArc*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1128,1
    - Dst: CADArc*::setStartingAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1129,1
    - Dst: CADArc*::setEndingAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1130,1
    - Dst: CADPoint3D::CADPoint3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1138,1
    - Dst: static_cast<CADPointObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1139,1
    - Dst: CADPoint3D*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1142,1
    - Dst: CADPoint3D*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1143,1
    - Dst: CADPoint3D*::setXAxisAng
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1144,1
    - Dst: CADPoint3D*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1145,1
    - Dst: CADPolyline3D::CADPolyline3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1153,1
    - Dst: static_cast<CADPolyline3DObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1154,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1163,1
    - Dst: unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1164,1
    - Dst: dynamic_cast<CADVertex3DObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1164,1
    - Dst: unique_ptr::stCed::hObjectHandle::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1172,1
    - Dst: CADPolyline3D*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1173,1
    - Dst: unique_ptr::stChed::hNextEntity::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1180,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1185,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1187,1
    - Dst: unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1188,1
    - Dst: dynamic_cast<CADVertex3DObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1188,1
    - Dst: CADPolyline3D*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1192,1
    - Dst: CADLWPolyline::CADLWPolyline
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1208,1
    - Dst: static_cast<CADLWPolylineObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1209,1
    - Dst: CADLWPolyline*::setBulges
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1212,1
    - Dst: CADLWPolyline*::setClosed
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1213,1
    - Dst: CADLWPolyline*::setConstWidth
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1214,1
    - Dst: CADLWPolyline*::setElevation
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1215,1
    - Dst: CADLWPolyline*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1217,1
    - Dst: CADLWPolyline*::setVectExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1218,1
    - Dst: CADLWPolyline*::setWidths
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1219,1
    - Dst: CADCircle::CADCircle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1227,1
    - Dst: static_cast<CADCircleObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1228,1
    - Dst: CADCircle*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1231,1
    - Dst: CADCircle*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1232,1
    - Dst: CADCircle*::setRadius
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1233,1
    - Dst: CADCircle*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1234,1
    - Dst: CADAttrib::CADAttrib
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1242,1
    - Dst: static_cast<CADAttribObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1243,1
    - Dst: CADAttrib*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1246,1
    - Dst: CADAttrib*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1247,1
    - Dst: CADAttrib*::setRotationAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1248,1
    - Dst: CADAttrib*::setAlignmentPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1249,1
    - Dst: CADAttrib*::setElevation
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1250,1
    - Dst: CADAttrib*::setHeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1251,1
    - Dst: CADAttrib*::setObliqueAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1252,1
    - Dst: CADAttrib*::setPositionLocked
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1253,1
    - Dst: CADAttrib*::setTag
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1254,1
    - Dst: CADAttrib*::setTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1255,1
    - Dst: CADAttrib*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1256,1
    - Dst: CADAttdef::CADAttdef
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1264,1
    - Dst: static_cast<CADAttdefObject*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1265,1
    - Dst: CADAttdef*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1268,1
    - Dst: CADAttdef*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1269,1
    - Dst: CADAttdef*::setRotationAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1270,1
    - Dst: CADAttdef*::setAlignmentPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1271,1
    - Dst: CADAttdef*::setElevation
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1272,1
    - Dst: CADAttdef*::setHeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1273,1
    - Dst: CADAttdef*::setObliqueAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1274,1
    - Dst: CADAttdef*::setPositionLocked
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1275,1
    - Dst: CADAttdef*::setTag
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1276,1
    - Dst: CADAttdef*::setTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1277,1
    - Dst: CADAttdef*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1278,1
    - Dst: CADAttdef*::setPrompt
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1279,1
    - Dst: CADEllipse::CADEllipse
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1287,1
    - Dst: static_cast<CADEllipseObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1288,1
    - Dst: CADEllipse*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1291,1
    - Dst: CADEllipse*::setSMAxis
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1292,1
    - Dst: CADEllipse*::setAxisRatio
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1293,1
    - Dst: CADEllipse*::setEndingAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1294,1
    - Dst: CADEllipse*::setStartingAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1295,1
    - Dst: static_cast<CADLineObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1303,1
    - Dst: CADLine::CADLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1309,1
    - Dst: CADRay::CADRay
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1317,1
    - Dst: static_cast<CADRayObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1318,1
    - Dst: CADRay*::setVectVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1321,1
    - Dst: CADRay*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1322,1
    - Dst: CADSpline::CADSpline
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1330,1
    - Dst: static_cast<CADSplineObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1331,1
    - Dst: CADSpline*::setScenario
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1334,1
    - Dst: CADSpline*::setDegree
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1335,1
    - Dst: CADSpline*::getScenario
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1336,1
    - Dst: CADSpline*::setFitTolerance
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1338,1
    - Dst: CADSpline*::getScenario
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1340,1
    - Dst: CADSpline*::setRational
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1342,1
    - Dst: CADSpline*::setClosed
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1343,1
    - Dst: CADSpline*::setWeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1344,1
    - Dst: CADSpline*::addControlPointsWeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1347,1
    - Dst: CADSpline*::addFitPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1350,1
    - Dst: CADSpline*::addControlPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1353,1
    - Dst: CADText::CADText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1361,1
    - Dst: static_cast<CADTextObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1362,1
    - Dst: CADText*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1365,1
    - Dst: CADText*::setTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1366,1
    - Dst: CADText*::setRotationAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1367,1
    - Dst: CADText*::setObliqueAngle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1368,1
    - Dst: CADText*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1369,1
    - Dst: CADText*::setHeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1370,1
    - Dst: CADSolid::CADSolid
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1378,1
    - Dst: static_cast<CADSolidObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1379,1
    - Dst: CADSolid*::setElevation
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1382,1
    - Dst: CADSolid*::setThickness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1383,1
    - Dst: CADSolid*::addCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1385,1
    - Dst: CADSolid*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1386,1
    - Dst: static_cast<CADImageObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1394,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1397,1
    - Dst: CADImageObject*::hImageDef::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1397,1
    - Dst: CADImage::CADImage
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1403,1
    - Dst: CADImage*::setClippingBoundaryType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1404,1
    - Dst: CADImage*::setFilePath
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1405,1
    - Dst: CADImage*::setVertInsertionPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1406,1
    - Dst: CADImage*::setImageSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1408,1
    - Dst: CADImage*::setImageSizeInPx
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1410,1
    - Dst: CADImage*::setPixelSizeInACADUnits
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1412,1
    - Dst: CADImage::IsValidResolutionUnit
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1413,1
    - Dst: CADImage*::setResolutionUnits
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1415,1
    - Dst: static_cast<CADImage::ResolutionUnit>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1416,1
    - Dst: CADImage*::setOptions
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1419,1
    - Dst: CADImage*::addClippingPoint
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1425,1
    - Dst: CADMLine::CADMLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1439,1
    - Dst: static_cast<CADMLineObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1440,1
    - Dst: CADMLine*::setScale
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1443,1
    - Dst: CADMLine*::setOpened
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1444,1
    - Dst: CADMLine*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1446,1
    - Dst: CADMText::CADMText
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1454,1
    - Dst: static_cast<CADMTextObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1455,1
    - Dst: CADMText*::setTextValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1458,1
    - Dst: CADMText*::setXAxisAng
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1459,1
    - Dst: CADMTextObject*::vectXAxisDir::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1459,1
    - Dst: CADMText*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1461,1
    - Dst: CADMText*::setExtrusion
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1462,1
    - Dst: CADMText*::setHeight
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1464,1
    - Dst: CADMText*::setRectWidth
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1465,1
    - Dst: CADMText*::setExtents
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1466,1
    - Dst: CADMText*::setExtentsWidth
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1467,1
    - Dst: CADPolylinePFace::CADPolylinePFace
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1475,1
    - Dst: static_cast<CADPolylinePFaceObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1476,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1482,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1483,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1486,1
    - Dst: unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1487,1
    - Dst: dynamic_cast<CADVertexPFaceObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1487,1
    - Dst: CADPolylinePFace*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1497,1
    - Dst: unique_ptr::stChed::hNextEntity::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1511,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1515,1
    - Dst: unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1516,1
    - Dst: dynamic_cast<CADVertexPFaceObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1516,1
    - Dst: CADPolylinePFace*::addVertex
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1520,1
    - Dst: CADXLine::CADXLine
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1536,1
    - Dst: static_cast<CADXLineObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1537,1
    - Dst: CADXLine*::setVectVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1540,1
    - Dst: CADXLine*::setPosition
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1541,1
    - Dst: CADFace3D::CADFace3D
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1549,1
    - Dst: static_cast<CAD3DFaceObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1550,1
    - Dst: CADFace3D*::addCorner
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1554,1
    - Dst: CADFace3D*::setInvisFlags
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1555,1
    - Dst: CADUnknown::CADUnknown
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1566,1
    - Dst: DWGFileR2000::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1576,1
    - Dst: CADGeometry*::setColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1577,1
    - Dst: getCADACIColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1577,1
    - Dst: getColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1577,1
    - Dst: CADGeometry*::setColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1582,1
    - Dst: getCADACIColor
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1582,1
    - Dst: CADEntityObject*::stCed::aEED::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1588,1
    - Dst: CADEntityObject*::stCed::aEED::cend
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1589,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1597,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1605,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1615,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1620,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1630,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1638,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1645,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1661,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1674,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1676,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1676,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1677,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1677,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1678,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1678,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1680,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1682,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1684,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1694,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1695,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1695,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1696,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1703,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1704,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1704,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1705,1
    - Dst: auto::acData::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1712,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1713,1
    - Dst: auto::acData::data
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1713,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1714,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1719,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1720,1
    - Dst: vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1723,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1730,1
    - Dst: unique_ptr::hAttribs::empty
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1736,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1743,1
    - Dst: dynamic_cast<CADEntityObject *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1746,1
    - Dst: DWGFileR2000::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1756,1
    - Dst: dynamic_cast<CADAttrib *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1757,1
    - Dst: vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1760,1
    - Dst: CADAttrib
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1760,1
    - Dst: CADEntityObject*::stChed::hNextEntity::getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1772,1
    - Dst: DWGFileR2000::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1774,1
    - Dst: dynamic_cast<CADAttrib *>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1775,1
    - Dst: vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1778,1
    - Dst: CADAttrib
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1778,1
    - Dst: CADGeometry*::setBlockAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1788,1
    - Dst: CADGeometry*::setEED
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1797,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 378
    argCount: 3
    argNames:
    - iLayerIndex
    - dHandle
    - dBlockRefHandle
    argTypes:
    - size_t
    - long
    - long
    constantsTouched: []
    func_position:
      end: 1799
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1799
    functionName: DWGFileR2000::GetGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADAttrib::CADAttrib
    - CADAttrib*::setAlignmentPoint
    - CADSpline*::setRational
    - CADAttrib*::setExtrusion
    - static_cast<CADArcObject *>
    - CADAttrib
    - CADImage::CADImage
    - CADImage*::setOptions
    - DWGFileR2000::GetObject
    - static_cast<CADXLineObject *>
    - CADText*::setPosition
    - CADEllipse*::setPosition
    - CADLWPolyline*::setWidths
    - CADCircle::CADCircle
    - CADAttrib*::setTextValue
    - CADSpline*::addControlPointsWeight
    - static_cast<CADImage::ResolutionUnit>
    - getCADACIColor
    - CADMText*::setTextValue
    - CADSolid::CADSolid
    - CADEllipse*::setSMAxis
    - CADLWPolyline*::setClosed
    - CADLWPolyline*::setConstWidth
    - CADCircle*::setThickness
    - CADAttdef*::setThickness
    - CADSpline*::addControlPoint
    - dynamic_cast<CADVertex3DObject *>
    - CADAttdef*::setObliqueAngle
    - CADSolid*::setElevation
    - CADMText::CADMText
    - CADPoint3D*::setThickness
    - CADEntityObject*::stChed::hNextEntity::getAsLong
    - CADLWPolyline*::setVectExtrusion
    - CADMText*::setHeight
    - CADXLine*::setVectVector
    - std::to_string
    - unique_ptr::stCed::hObjectHandle::getAsLong
    - CADEllipse*::setEndingAngle
    - CADMLine*::setOpened
    - CADMText*::setPosition
    - CADImage*::setVertInsertionPoint
    - CADAttrib*::setPositionLocked
    - CADMLine::CADMLine
    - CADMText*::setExtrusion
    - CADEllipse*::setStartingAngle
    - CADImage*::setResolutionUnits
    - dynamic_cast<CADAttrib *>
    - CADUnknown::CADUnknown
    - CADText*::setTextValue
    - CADMText*::setRectWidth
    - CADAttdef*::setAlignmentPoint
    - CADLWPolyline*::setElevation
    - CADEllipse::CADEllipse
    - getAsLong
    - static_cast<CADPointObject *>
    - CADAttdef*::setElevation
    - CADEntityObject*::stCed::aEED::cbegin
    - CADAttdef*::setPositionLocked
    - static_cast<CADLWPolylineObject *>
    - static_cast<CADCircleObject *>
    - static_cast<CADRayObject *>
    - CADGeometry*::setColor
    - CADAttrib*::setHeight
    - DebugMsg
    - CADAttdef::CADAttdef
    - CADArc*::setPosition
    - CADMTextObject*::vectXAxisDir::getX
    - CADXLine::CADXLine
    - static_cast<CADAttdefObject*>
    - CADFace3D::CADFace3D
    - static_cast<CADImageObject *>
    - CADImage*::setImageSize
    - CADEntityObject*::stCed::aEED::cend
    - CADAttdef*::setPrompt
    - CADAttrib*::setElevation
    - static_cast<CADPolyline3DObject *>
    - CADImage*::setPixelSizeInACADUnits
    - CADRay*::setVectVector
    - CADCircle*::setExtrusion
    - CADAttrib*::setObliqueAngle
    - CADLWPolyline*::setBulges
    - unique_ptr::stChed::hNextEntity::getAsLong
    - static_cast<CADEllipseObject *>
    - CADText*::setRotationAngle
    - static_cast<int>
    - unique_ptr::reset
    - CADAttdef*::setTag
    - CADSolid*::setExtrusion
    - unique_ptr::get
    - CADSpline::CADSpline
    - CADArc*::setRadius
    - static_cast<CADTextObject *>
    - CADPolylinePFace::CADPolylinePFace
    - CADText*::setHeight
    - CADGeometry*::setEED
    - static_cast<CADMLineObject *>
    - static_cast<CADAttribObject *>
    - CADMLine*::setScale
    - CADRay::CADRay
    - CADAttdef*::setExtrusion
    - CADImageObject*::hImageDef::getAsLong
    - CADGeometry*::setBlockAttributes
    - CADPoint3D*::setPosition
    - CADImage*::addClippingPoint
    - dynamic_cast<CADVertexPFaceObject *>
    - CADFace3D*::addCorner
    - CADAttdef*::setPosition
    - CADLine::CADLine
    - CADText*::setThickness
    - CADImage*::setFilePath
    - CADSpline*::setDegree
    - CADEllipse*::setAxisRatio
    - CADLWPolyline*::addVertex
    - CADPoint3D::CADPoint3D
    - CADAttdef*::setTextValue
    - CADArc*::setExtrusion
    - static_cast<CADSplineObject *>
    - CADEntityObject*::getType
    - CADArc*::setThickness
    - CADPolyline3D*::addVertex
    - DWGFileR2000::GetGeometry
    - CADArc*::setStartingAngle
    - CADSpline*::addFitPoint
    - CADArc*::setEndingAngle
    - getColor
    - CADText*::setObliqueAngle
    - CADAttrib*::setThickness
    - unique_ptr::hAttribs::empty
    - CADAttdef*::setRotationAngle
    - CADCircle*::setRadius
    - CADAttrib*::setPosition
    - CADSpline*::setScenario
    - CADPoint3D*::setExtrusion
    - CADLWPolyline::CADLWPolyline
    - CADAttrib*::setRotationAngle
    - CADSolid*::addCorner
    - static_cast<CADLineObject *>
    - CADRay*::setPosition
    - static_cast<CADSolidObject *>
    - CADImage*::setImageSizeInPx
    - CADMText*::setXAxisAng
    - CADSpline*::setClosed
    - DWGFileR2000::GetLayer
    - CADImage::IsValidResolutionUnit
    - auto::acData::data
    - CADFace3D*::setInvisFlags
    - CADSpline*::getScenario
    - CADXLine*::setPosition
    - CADAttdef*::setHeight
    - CADArc::CADArc
    - static_cast<CAD3DFaceObject *>
    - CADMLine*::addVertex
    - CADSpline*::setFitTolerance
    - CADPolyline3D::CADPolyline3D
    - vector::emplace_back
    - CADSolid*::setThickness
    - static_cast<CADPolylinePFaceObject *>
    - CADMText*::setExtentsWidth
    - static_cast<CADMTextObject *>
    - CADImage*::setClippingBoundaryType
    - CADPolylinePFace*::addVertex
    - dynamic_cast<CADEntityObject *>
    - vector::push_back
    - CADMText*::setExtents
    - CADPoint3D*::setXAxisAng
    - CADAttrib*::setTag
    - CADText::CADText
    - CADSpline*::setWeight
    - auto::acData::size
    - CADCircle*::setPosition
    - memcpy
    linkageType: ''
    returnType: CADGeometry
    signature: CADGeometry * DWGFileR2000::GetGeometry( size_t iLayerIndex, long dHandle,
      long dBlockRefHandle )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBlockObject::CADBlockObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1805,1
    - Dst: CADBlockObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1807,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1810,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1812,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1814,1
    - Dst: CADBlockObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1815,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1818
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1818
    functionName: DWGFileR2000::getBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBlockObject*::setCRC
    - CADBuffer::ReadTV
    - CADBlockObject*::setSize
    - CADBuffer::Seek
    - CADBlockObject::CADBlockObject
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADBlockObject
    signature: "CADBlockObject * DWGFileR2000::getBlock(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADEllipseObject::CADEllipseObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1824,1
    - Dst: CADEllipseObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1826,1
    - Dst: ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1829,1
    - Dst: ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1833,1
    - Dst: ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1837,1
    - Dst: ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1841,1
    - Dst: ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1842,1
    - Dst: ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1843,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1845,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1847,1
    - Dst: CADEllipseObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1848,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - ' buffer'
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1851
      start: 1820
    functionDepth: 1
    functionLinenumber: 1820
    functionLinenumberEnd: 1851
    functionName: DWGFileR2000::getEllipse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - Seek
    - ReadVector
    - ReadBITDOUBLE
    - CADEllipseObject*::setCRC
    - CADEllipseObject*::setSize
    - DWGFileR2000::fillCommonEntityHandleData
    - CADEllipseObject::CADEllipseObject
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADEllipseObject
    signature: "CADEllipseObject * DWGFileR2000::getEllipse(unsigned int dObjectSize,\n
      \                                           const CADCommonED& stCommonEntityData,\n
      \                                           CADBuffer& buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADSolidObject::CADSolidObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1857,1
    - Dst: CADSolidObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1859,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1862,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1862,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1864,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1866,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1869,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1869,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1870,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1870,1
    - Dst: CADSolidObject*::avertCorners::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1871,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1874,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1876,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1880,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1885,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1887,1
    - Dst: CADSolidObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1888,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1891
      start: 1853
    functionDepth: 2
    functionLinenumber: 1853
    functionLinenumberEnd: 1891
    functionName: DWGFileR2000::getSolid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADSolidObject*::setCRC
    - CADVector::setY
    - CADVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADVector::setX
    - CADSolidObject::CADSolidObject
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadVector
    - CADVector::CADVector
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADSolidObject*::setSize
    - CADSolidObject*::avertCorners::push_back
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADSolidObject
    signature: "CADSolidObject * DWGFileR2000::getSolid(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPointObject::CADPointObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1897,1
    - Dst: CADPointObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1899,1
    - Dst: ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1902,1
    - Dst: ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1906,1
    - Dst: ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1906,1
    - Dst: ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1908,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1910,1
    - Dst: ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1914,1
    - Dst: ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1918,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1920,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1922,1
    - Dst: CADPointObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1923,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - ' buffer'
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1926
      start: 1893
    functionDepth: 2
    functionLinenumber: 1893
    functionLinenumberEnd: 1926
    functionName: DWGFileR2000::getPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - Seek
    - ReadVector
    - CADVector
    - CADPointObject::CADPointObject
    - ReadBITDOUBLE
    - ReadBIT
    - CADPointObject*::setSize
    - CADPointObject*::setCRC
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADPointObject
    signature: "CADPointObject * DWGFileR2000::getPoint(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer& buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPolyline3DObject::CADPolyline3DObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1932,1
    - Dst: CADPolyline3DObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1934,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1937,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1938,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1940,1
    - Dst: CADPolyline3DObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1942,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1942,1
    - Dst: CADPolyline3DObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1943,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1943,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1945,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1947,1
    - Dst: CADPolyline3DObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1948,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1951
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 1951
    functionName: DWGFileR2000::getPolyLine3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADPolyline3DObject::CADPolyline3DObject
    - CADPolyline3DObject*::setCRC
    - CADBuffer::ReadCHAR
    - CADPolyline3DObject*::setSize
    - CADBuffer::Seek
    - CADPolyline3DObject*::hVertices::push_back
    - DWGFileR2000::fillCommonEntityHandleData
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADPolyline3DObject
    signature: "CADPolyline3DObject * DWGFileR2000::getPolyLine3D(unsigned int dObjectSize,\n
      \                                                 const CADCommonED& stCommonEntityData,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADRayObject::CADRayObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1957,1
    - Dst: CADRayObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1959,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1962,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1966,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1969,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1971,1
    - Dst: CADRayObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1972,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1975
      start: 1953
    functionDepth: 1
    functionLinenumber: 1953
    functionLinenumberEnd: 1975
    functionName: DWGFileR2000::getRay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADRayObject*::setCRC
    - CADRayObject::CADRayObject
    - CADRayObject*::setSize
    - CADBuffer::ReadVector
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADRayObject
    signature: "CADRayObject * DWGFileR2000::getRay(unsigned int dObjectSize,\n                                    const
      CADCommonED& stCommonEntityData,\n                                    CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADXLineObject::CADXLineObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1981,1
    - Dst: CADXLineObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1983,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1986,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1990,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1993,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1995,1
    - Dst: CADXLineObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1996,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 1999
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 1999
    functionName: DWGFileR2000::getXLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADXLineObject::CADXLineObject
    - CADBuffer::ReadVector
    - CADXLineObject*::setCRC
    - CADBuffer::Seek
    - CADXLineObject*::setSize
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADXLineObject
    signature: "CADXLineObject * DWGFileR2000::getXLine(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLineObject::CADLineObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2005,1
    - Dst: CADLineObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2007,1
    - Dst: CADVector::CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2012,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2013,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2013,1
    - Dst: setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2014,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2014,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2014,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2015,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2015,1
    - Dst: setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2016,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2016,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2016,1
    - Dst: CADVector::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2020,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2020,1
    - Dst: setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2021,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2021,1
    - Dst: CADVector::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2021,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2027,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2027,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2029,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2031,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2034,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2038,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2040,1
    - Dst: CADLineObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2041,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2043
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2043
    functionName: DWGFileR2000::getLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - setY
    - CADVector::setY
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadRAWDOUBLE
    - setZ
    - CADLineObject*::setSize
    - DWGFileR2000::validateEntityCRC
    - CADLineObject*::setCRC
    - CADVector
    - CADVector::getZ
    - CADVector::getY
    - CADBuffer::ReadBITDOUBLEWD
    - CADVector::getX
    - CADLineObject::CADLineObject
    - CADVector::setZ
    - CADVector::CADVector
    - CADBuffer::Seek
    - setX
    - DWGFileR2000::fillCommonEntityHandleData
    - CADVector::setX
    linkageType: ''
    returnType: CADLineObject
    signature: "CADLineObject * DWGFileR2000::getLine(unsigned int dObjectSize,\n
      \                                     const CADCommonED& stCommonEntityData,\n
      \                                     CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADTextObject::CADTextObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2049,1
    - Dst: CADTextObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2051,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2054,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2058,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2061,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2068,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2068,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2069,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2069,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2074,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2076,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2080,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2084,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2084,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2087,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2089,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2091,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2094,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2096,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2099,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2101,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2103,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2105,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2107,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2109,1
    - Dst: CADTextObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2110,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2113
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2113
    functionName: DWGFileR2000::getText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITSHORT
    - CADTextObject::CADTextObject
    - DWGFileR2000::validateEntityCRC
    - CADTextObject*::setCRC
    - CADVector
    - CADBuffer::ReadTV
    - CADBuffer::ReadHANDLE
    - CADVector::getY
    - CADBuffer::ReadBITDOUBLEWD
    - CADBuffer::ReadRAWVector
    - CADVector::getX
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADTextObject*::setSize
    linkageType: ''
    returnType: CADTextObject
    signature: "CADTextObject * DWGFileR2000::getText(unsigned int dObjectSize,\n
      \                                     const CADCommonED& stCommonEntityData,\n
      \                                     CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVertex3DObject::CADVertex3DObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2119,1
    - Dst: CADVertex3DObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2121,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2124,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2126,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2129,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2131,1
    - Dst: CADVertex3DObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2132,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2134
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2134
    functionName: DWGFileR2000::getVertex3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADVertex3DObject*::setSize
    - CADBuffer::ReadVector
    - CADBuffer::ReadCHAR
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADVertex3DObject*::setCRC
    - DWGFileR2000::validateEntityCRC
    - CADVertex3DObject::CADVertex3DObject
    linkageType: ''
    returnType: CADVertex3DObject
    signature: "CADVertex3DObject * DWGFileR2000::getVertex3D(unsigned int dObjectSize,\n
      \                                             const CADCommonED& stCommonEntityData,\n
      \                                             CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADCircleObject::CADCircleObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2140,1
    - Dst: CADCircleObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2142,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2145,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2147,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2148,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2148,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2150,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2152,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2156,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2160,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2162,1
    - Dst: CADCircleObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2163,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2165
      start: 2136
    functionDepth: 2
    functionLinenumber: 2136
    functionLinenumberEnd: 2165
    functionName: DWGFileR2000::getCircle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADCircleObject*::setSize
    - CADVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADCircleObject::CADCircleObject
    - CADBuffer::Seek
    - CADCircleObject*::setCRC
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADCircleObject
    signature: "CADCircleObject * DWGFileR2000::getCircle(unsigned int dObjectSize,\n
      \                                         const CADCommonED& stCommonEntityData,\n
      \                                         CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADEndblkObject::CADEndblkObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2171,1
    - Dst: CADEndblkObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2173,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2176,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2178,1
    - Dst: CADEndblkObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2179,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2181
      start: 2167
    functionDepth: 1
    functionLinenumber: 2167
    functionLinenumberEnd: 2181
    functionName: DWGFileR2000::getEndBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADEndblkObject*::setSize
    - CADEndblkObject*::setCRC
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADEndblkObject::CADEndblkObject
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADEndblkObject
    signature: "CADEndblkObject * DWGFileR2000::getEndBlock(unsigned int dObjectSize,\n
      \                                           const CADCommonED& stCommonEntityData,\n
      \                                           CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPolyline2DObject::CADPolyline2DObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2187,1
    - Dst: CADPolyline2DObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2189,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2192,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2193,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2195,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2196,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2198,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2198,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2200,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2202,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2204,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2208,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2212,1
    - Dst: CADPolyline2DObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2214,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2214,1
    - Dst: CADPolyline2DObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2215,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2215,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2217,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2219,1
    - Dst: CADPolyline2DObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2220,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2222
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2222
    functionName: DWGFileR2000::getPolyline2D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADPolyline2DObject*::setSize
    - CADVector
    - CADPolyline2DObject*::hVertices::push_back
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADBuffer::ReadBITSHORT
    - CADPolyline2DObject*::setCRC
    - CADPolyline2DObject::CADPolyline2DObject
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADPolyline2DObject
    signature: "CADPolyline2DObject * DWGFileR2000::getPolyline2D(unsigned int dObjectSize,\n
      \                                                 const CADCommonED& stCommonEntityData,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADAttribObject::CADAttribObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2228,1
    - Dst: CADAttribObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2230,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2232,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2235,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2239,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2244,1
    - Dst: CADVector::getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2244,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2245,1
    - Dst: CADVector::getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2245,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2250,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2252,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2256,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2260,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2260,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2263,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2265,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2266,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2268,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2269,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2271,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2273,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2275,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2277,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2278,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2279,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2281,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2283,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2285,1
    - Dst: CADAttribObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2286,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2286,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2288
      start: 2224
    functionDepth: 2
    functionLinenumber: 2224
    functionLinenumberEnd: 2288
    functionName: DWGFileR2000::getAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITSHORT
    - CADAttribObject*::setCRC
    - DWGFileR2000::validateEntityCRC
    - CADAttribObject::CADAttribObject
    - CADVector
    - CADBuffer::ReadTV
    - CADBuffer::ReadHANDLE
    - CADVector::getY
    - CADBuffer::ReadBITDOUBLEWD
    - CADBuffer::ReadRAWVector
    - CADVector::getX
    - CADAttribObject*::setSize
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    linkageType: ''
    returnType: CADAttribObject
    signature: "CADAttribObject * DWGFileR2000::getAttributes(unsigned int dObjectSize,\n
      \                                             const CADCommonED& stCommonEntityData,\n
      \                                             CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADAttdefObject::CADAttdefObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2294,1
    - Dst: CADAttdefObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2296,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2298,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2301,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2303,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2314,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2316,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2320,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2324,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2325,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2328,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2330,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2331,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2333,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2334,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2336,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2338,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2340,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2342,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2343,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2344,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2346,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2348,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2350,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2352,1
    - Dst: CADAttdefObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2353,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2353,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2355
      start: 2290
    functionDepth: 2
    functionLinenumber: 2290
    functionLinenumberEnd: 2355
    functionName: DWGFileR2000::getAttributesDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - DWGFileR2000::validateEntityCRC
    - CADBuffer::ReadRAWVector
    - CADVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadTV
    - CADBuffer::ReadCHAR
    - CADAttdefObject*::setSize
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADAttdefObject::CADAttdefObject
    - DWGFileR2000::fillCommonEntityHandleData
    - CADBuffer::ReadHANDLE
    - CADAttdefObject*::setCRC
    linkageType: ''
    returnType: CADAttdefObject
    signature: "CADAttdefObject * DWGFileR2000::getAttributesDefn(unsigned int dObjectSize,\n
      \                                                 const CADCommonED& stCommonEntityData,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLWPolylineObject::CADLWPolylineObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2361,1
    - Dst: CADLWPolylineObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2362,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2368,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2370,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2372,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2375,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2379,1
    - Dst: CADLWPolylineObject*::avertVertices::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2389,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2389,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2394,1
    - Dst: CADLWPolylineObject*::adfBulges::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2402,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2402,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2409,1
    - Dst: CADLWPolylineObject*::astWidths::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2417,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2417,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2431,1
    - Dst: CADLWPolylineObject*::avertVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2432,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2442,1
    - Dst: CADVector::setX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2447,1
    - Dst: CADVector::setY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2448,1
    - Dst: CADLWPolylineObject*::avertVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2449,1
    - Dst: CADLWPolylineObject*::adfBulges::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2455,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2456,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2467,1
    - Dst: CADLWPolylineObject*::astWidths::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2472,1
    - Dst: make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2472,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2475,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2477,1
    - Dst: CADLWPolylineObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2478,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2478,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2480
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2480
    functionName: DWGFileR2000::getLWPolyLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADLWPolylineObject*::setSize
    - CADVector::setY
    - CADBuffer::ReadBITDOUBLE
    - CADLWPolylineObject*::setCRC
    - CADLWPolylineObject*::avertVertices::reserve
    - CADLWPolylineObject*::adfBulges::push_back
    - CADLWPolylineObject*::adfBulges::reserve
    - DWGFileR2000::validateEntityCRC
    - CADBuffer::IsEOB
    - CADLWPolylineObject*::astWidths::push_back
    - CADLWPolylineObject*::avertVertices::push_back
    - CADLWPolylineObject::CADLWPolylineObject
    - static_cast<size_t>
    - CADLWPolylineObject*::astWidths::reserve
    - CADBuffer::ReadRAWVector
    - make_pair
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - CADVector::setX
    linkageType: ''
    returnType: CADLWPolylineObject
    signature: "CADLWPolylineObject * DWGFileR2000::getLWPolyLine(unsigned int dObjectSize,\n
      \                                                 const CADCommonED& stCommonEntityData,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADArcObject::CADArcObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2486,1
    - Dst: CADArcObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2488,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2491,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2493,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2494,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2494,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2496,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2498,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2502,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2506,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2507,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2509,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2511,1
    - Dst: CADArcObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2512,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2514
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2514
    functionName: DWGFileR2000::getArc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADArcObject*::setCRC
    - CADVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADArcObject::CADArcObject
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    - CADArcObject*::setSize
    linkageType: ''
    returnType: CADArcObject
    signature: "CADArcObject * DWGFileR2000::getArc(unsigned int dObjectSize,\n                                    const
      CADCommonED& stCommonEntityData,\n                                    CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADSplineObject::CADSplineObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2520,1
    - Dst: CADSplineObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2521,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2523,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2524,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2528,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2529,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2531,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2534,1
    - Dst: CADSplineObject*::averFitPoints::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2540,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2540,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2544,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2545,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2546,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2547,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2548,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2550,1
    - Dst: CADSplineObject*::adfKnots::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2556,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2556,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2558,1
    - Dst: CADSplineObject*::avertCtrlPoints::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2564,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2564,1
    - Dst: CADSplineObject*::adfCtrlPointsWeight::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2566,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2566,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2567,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2572,1
    - Dst: CADSplineObject*::adfKnots::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2577,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2577,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2578,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2587,1
    - Dst: CADSplineObject*::avertCtrlPoints::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2588,1
    - Dst: CADSplineObject*::adfCtrlPointsWeight::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2590,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2590,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2591,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2600,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2601,1
    - Dst: CADSplineObject*::averFitPoints::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2606,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2609,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2611,1
    - Dst: CADSplineObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2612,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2612,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2614
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2614
    functionName: DWGFileR2000::getSpline
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADSplineObject*::setSize
    - DebugMsg
    - CADSplineObject*::setCRC
    - CADSplineObject*::adfKnots::reserve
    - CADSplineObject*::adfCtrlPointsWeight::reserve
    - CADSplineObject*::avertCtrlPoints::reserve
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADSplineObject*::adfCtrlPointsWeight::push_back
    - DWGFileR2000::validateEntityCRC
    - CADBuffer::IsEOB
    - CADSplineObject*::avertCtrlPoints::push_back
    - static_cast<size_t>
    - CADSplineObject*::adfKnots::push_back
    - CADSplineObject::CADSplineObject
    - CADBuffer::ReadBITLONG
    - CADSplineObject*::averFitPoints::reserve
    - CADBuffer::Seek
    - CADSplineObject*::averFitPoints::push_back
    - DWGFileR2000::fillCommonEntityHandleData
    linkageType: ''
    returnType: CADSplineObject
    signature: "CADSplineObject * DWGFileR2000::getSpline(unsigned int dObjectSize,\n
      \                                         const CADCommonED& stCommonEntityData,\n
      \                                         CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CADObject::ObjectType>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2622,1
    - Dst: CADEntityObject::CADEntityObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2621,1
    - Dst: CADEntityObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2624,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2627,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2627,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2630,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2632,1
    - Dst: CADEntityObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2633,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - dObjectType
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - int
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2635
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2635
    functionName: DWGFileR2000::getEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADEntityObject::CADEntityObject
    - static_cast<size_t>
    - CADEntityObject*::setCRC
    - CADEntityObject*::setSize
    - CADBuffer::Seek
    - DWGFileR2000::fillCommonEntityHandleData
    - static_cast<CADObject::ObjectType>
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADEntityObject
    signature: "CADEntityObject * DWGFileR2000::getEntity(int dObjectType,\n                                          unsigned
      int dObjectSize,\n                                          const CADCommonED&
      stCommonEntityData,\n                                          CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CADObject::ObjectType>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2643,1
    - Dst: CADInsertObject::CADInsertObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2642,1
    - Dst: CADInsertObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2644,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2647,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2654,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2655,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2656,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2661,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2662,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2666,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2670,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2671,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2672,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2673,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2675,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2677,1
    - Dst: CADInsertObject*::hAttribs::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2680,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2680,1
    - Dst: CADInsertObject*::hAttribs::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2681,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2681,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2682,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2685,1
    - Dst: CADInsertObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2686,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - dObjectType
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - int
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2689
      start: 2637
    functionDepth: 2
    functionLinenumber: 2637
    functionLinenumberEnd: 2689
    functionName: DWGFileR2000::getInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADInsertObject::CADInsertObject
    - CADBuffer::ReadBITDOUBLEWD
    - CADVector
    - CADInsertObject*::setCRC
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADBuffer::ReadRAWDOUBLE
    - CADInsertObject*::setSize
    - CADBuffer::Seek
    - CADInsertObject*::hAttribs::push_back
    - DWGFileR2000::fillCommonEntityHandleData
    - static_cast<CADObject::ObjectType>
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADInsertObject
    signature: "CADInsertObject * DWGFileR2000::getInsert(int dObjectType,\n                                          unsigned
      int dObjectSize,\n                                          const CADCommonED&
      stCommonEntityData,\n                                          CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADDictionaryObject::CADDictionaryObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2700,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2702,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2708,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2714,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2715,1
    - Dst: CADDictionaryObject*::sItemNames::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2719,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2719,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2720,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2727,1
    - Dst: CADDictionaryObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2731,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2731,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2732,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2738,1
    - Dst: CADDictionaryObject*::hItemHandles::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2741,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2741,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2742,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2749,1
    - Dst: CADDictionaryObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2750,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2753
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2753
    functionName: DWGFileR2000::getDictionary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADDictionaryObject*::setCRC
    - CADDictionaryObject*::hReactors::push_back
    - DWGFileR2000::readBasicData
    - CADDictionaryObject*::sItemNames::push_back
    - CADBuffer::ReadTV
    - CADDictionaryObject*::hItemHandles::push_back
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITLONG
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADDictionaryObject::CADDictionaryObject
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADDictionaryObject
    signature: "CADDictionaryObject * DWGFileR2000::getDictionary(unsigned int dObjectSize,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLayerObject::CADLayerObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2758,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2760,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2766,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2767,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2768,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2769,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2778,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2779,1
    - Dst: CADLayerObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2782,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2782,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2783,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2789,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2790,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2791,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2792,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2802,1
    - Dst: CADLayerObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2803,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2805
      start: 2755
    functionDepth: 1
    functionLinenumber: 2755
    functionLinenumberEnd: 2805
    functionName: DWGFileR2000::getLayerObject
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADBuffer::ReadHANDLE
    - CADLayerObject*::hReactors::push_back
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadTV
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADLayerObject*::setCRC
    - CADLayerObject::CADLayerObject
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADLayerObject
    signature: "CADLayerObject * DWGFileR2000::getLayerObject(unsigned int dObjectSize,\n
      \                                             CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLayerControlObject::CADLayerControlObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2810,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2812,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2818,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2824,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2825,1
    - Dst: CADLayerControlObject*::hLayers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2828,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2828,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2829,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2836,1
    - Dst: CADLayerControlObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2837,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2839
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2839
    functionName: DWGFileR2000::getLayerControl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::readBasicData
    - CADLayerControlObject::CADLayerControlObject
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    - CADLayerControlObject*::setCRC
    - CADLayerControlObject*::hLayers::push_back
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADLayerControlObject
    signature: "CADLayerControlObject * DWGFileR2000::getLayerControl(unsigned int
      dObjectSize,\n                                                      CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBlockControlObject::CADBlockControlObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2844,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2846,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2852,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2859,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2860,1
    - Dst: CADBlockControlObject*::hBlocks::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2864,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2864,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2865,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2872,1
    - Dst: CADBlockControlObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2873,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2875
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2875
    functionName: DWGFileR2000::getBlockControl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - DWGFileR2000::readBasicData
    - CADBlockControlObject*::hBlocks::push_back
    - CADBlockControlObject::CADBlockControlObject
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    - CADBlockControlObject*::setCRC
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADBlockControlObject
    signature: "CADBlockControlObject * DWGFileR2000::getBlockControl(unsigned int
      dObjectSize,\n                                                      CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBlockHeaderObject::CADBlockHeaderObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2880,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2882,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2888,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2889,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2890,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2891,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2892,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2893,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2894,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2895,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2896,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2898,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2900,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2904,1
    - Dst: CADBlockHeaderObject*::adInsertCount::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2905,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2908,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2909,1
    - Dst: CADBlockHeaderObject*::abyBinaryPreviewData::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2917,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2917,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2918,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2925,1
    - Dst: CADBlockHeaderObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2928,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2928,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2929,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2935,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2936,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2937,1
    - Dst: CADBlockHeaderObject*::hEntities::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2940,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2940,1
    - Dst: CADBlockHeaderObject*::hEntities::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2941,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2941,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2944,1
    - Dst: CADBlockHeaderObject*::adInsertCount::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2945,1
    - Dst: CADBlockHeaderObject*::hInsertHandles::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2946,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2946,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2947,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2949,1
    - Dst: CADBlockHeaderObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2950,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2952
      start: 2877
    functionDepth: 1
    functionLinenumber: 2877
    functionLinenumberEnd: 2952
    functionName: DWGFileR2000::getBlockHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadVector
    - CADBlockHeaderObject*::hReactors::push_back
    - CADBuffer::ReadBIT
    - CADBlockHeaderObject::CADBlockHeaderObject
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITSHORT
    - CADBlockHeaderObject*::abyBinaryPreviewData::push_back
    - CADBlockHeaderObject*::hEntities::push_back
    - DWGFileR2000::validateEntityCRC
    - CADBuffer::IsEOB
    - CADBlockHeaderObject*::setCRC
    - CADBuffer::ReadTV
    - CADBlockHeaderObject*::adInsertCount::push_back
    - CADBlockHeaderObject*::hInsertHandles::push_back
    - CADBuffer::ReadHANDLE
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    - CADBlockHeaderObject*::adInsertCount::size
    linkageType: ''
    returnType: CADBlockHeaderObject
    signature: "CADBlockHeaderObject * DWGFileR2000::getBlockHeader(unsigned int dObjectSize,\n
      \                                                   CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLineTypeControlObject::CADLineTypeControlObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2957,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2959,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2965,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2972,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2973,1
    - Dst: CADLineTypeControlObject*::hLTypes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2978,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2978,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2979,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2986,1
    - Dst: CADLineTypeControlObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2987,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 2989
      start: 2954
    functionDepth: 1
    functionLinenumber: 2954
    functionLinenumberEnd: 2989
    functionName: DWGFileR2000::getLineTypeControl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADLineTypeControlObject::CADLineTypeControlObject
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadBITLONG
    - CADLineTypeControlObject*::hLTypes::push_back
    - CADBuffer::Seek
    - CADLineTypeControlObject*::setCRC
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADLineTypeControlObject
    signature: "CADLineTypeControlObject * DWGFileR2000::getLineTypeControl(unsigned
      int dObjectSize,\n                                                            CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADLineTypeObject::CADLineTypeObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2993,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:2995,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3001,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3002,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3003,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3004,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3005,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3006,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3007,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3008,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3013,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3014,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3015,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3016,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3017,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3018,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3019,1
    - Dst: CADLineTypeObject*::astDashes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3021,1
    - Dst: CADLineTypeObject*::abyTextArea::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3025,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3025,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3027,1
    - Dst: CADLineTypeObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3031,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3031,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3032,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3039,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3040,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3044,1
    - Dst: CADLineTypeObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3045,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3047
      start: 2991
    functionDepth: 1
    functionLinenumber: 2991
    functionLinenumberEnd: 3047
    functionName: DWGFileR2000::getLineType1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADLineTypeObject*::abyTextArea::push_back
    - CADBuffer::IsEOB
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadTV
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadRAWDOUBLE
    - CADLineTypeObject*::hReactors::push_back
    - CADLineTypeObject::CADLineTypeObject
    - CADBuffer::ReadCHAR
    - CADLineTypeObject*::setCRC
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADLineTypeObject*::astDashes::push_back
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADLineTypeObject
    signature: CADLineTypeObject * DWGFileR2000::getLineType1(unsigned int dObjectSize,
      CADBuffer &buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADMLineObject::CADMLineObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3053,1
    - Dst: CADMLineObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3055,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3058,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3059,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3061,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3064,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3066,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3067,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3068,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3079,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3082,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3085,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3087,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3095,1
    - Dst: CADLineStyle::adfSegparms::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3099,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3099,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3101,1
    - Dst: CADLineStyle::adfAreaFillParameters::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3105,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3105,1
    - Dst: CADMLineVertex::astLStyles::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3108,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3108,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3109,1
    - Dst: CADMLineObject*::avertVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3115,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3115,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3119,1
    - Dst: CADMLineObject*::stChed::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3122,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3122,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3124,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3128,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3129,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3132,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3135,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3138,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3140,1
    - Dst: CADMLineObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3141,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3143
      start: 3049
    functionDepth: 1
    functionLinenumber: 3049
    functionLinenumberEnd: 3143
    functionName: DWGFileR2000::getMLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADMLineObject*::setSize
    - CADMLineObject*::setCRC
    - CADBuffer::IsEOB
    - CADMLineVertex::astLStyles::push_back
    - CADMLineObject*::stChed::hReactors::push_back
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADLineStyle::adfSegparms::push_back
    - CADBuffer::ReadCHAR
    - CADMLineObject::CADMLineObject
    - CADMLineObject*::avertVertices::push_back
    - CADBuffer::ReadBITSHORT
    - std::move
    - CADBuffer::Seek
    - CADLineStyle::adfAreaFillParameters::push_back
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADMLineObject
    signature: "CADMLineObject * DWGFileR2000::getMLine(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADPolylinePFaceObject::CADPolylinePFaceObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3149,1
    - Dst: CADPolylinePFaceObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3151,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3154,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3155,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3157,1
    - Dst: CADPolylinePFaceObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3159,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3159,1
    - Dst: CADPolylinePFaceObject*::hVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3160,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3160,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3162,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3164,1
    - Dst: CADPolylinePFaceObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3165,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3167
      start: 3145
    functionDepth: 1
    functionLinenumber: 3145
    functionLinenumberEnd: 3167
    functionName: DWGFileR2000::getPolylinePFace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADPolylinePFaceObject*::setSize
    - CADPolylinePFaceObject::CADPolylinePFaceObject
    - CADPolylinePFaceObject*::hVertices::push_back
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADPolylinePFaceObject*::setCRC
    - DWGFileR2000::fillCommonEntityHandleData
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADPolylinePFaceObject
    signature: "CADPolylinePFaceObject * DWGFileR2000::getPolylinePFace(unsigned int
      dObjectSize,\n                                                        const
      CADCommonED& stCommonEntityData,\n                                                        CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADImageObject::CADImageObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3173,1
    - Dst: CADImageObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3175,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3178,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3180,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3183,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3186,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3189,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3190,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3191,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3193,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3194,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3195,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3196,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3197,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3201,1
    - Dst: CADImageObject*::avertClippingPolygonVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3202,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3204,1
    - Dst: CADImageObject*::avertClippingPolygonVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3205,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3209,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3218,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3219,1
    - Dst: CADImageObject*::avertClippingPolygonVertices::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3224,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3228,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3230,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3231,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3233,1
    - Dst: CADImageObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3234,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3237
      start: 3169
    functionDepth: 1
    functionLinenumber: 3169
    functionLinenumberEnd: 3237
    functionName: DWGFileR2000::getImage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADBuffer::ReadRAWVector
    - CADImageObject*::avertClippingPolygonVertices::push_back
    - CADBuffer::ReadBIT
    - CADBuffer::ReadVector
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadBITLONG
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADImageObject*::setCRC
    - DWGFileR2000::fillCommonEntityHandleData
    - CADImageObject*::setSize
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    - CADImageObject::CADImageObject
    linkageType: ''
    returnType: CADImageObject
    signature: "CADImageObject * DWGFileR2000::getImage(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAD3DFaceObject::CAD3DFaceObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3243,1
    - Dst: CAD3DFaceObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3245,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3248,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3249,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3253,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3256,1
    - Dst: CADVector::setZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3257,1
    - Dst: CAD3DFaceObject*::avertCorners::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3259,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3262,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3262,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3263,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3263,1
    - Dst: CADBuffer::ReadBITDOUBLEWD
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3264,1
    - Dst: getZ
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3264,1
    - Dst: CAD3DFaceObject*::avertCorners::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3267,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3271,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3273,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3275,1
    - Dst: CAD3DFaceObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3276,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3278
      start: 3239
    functionDepth: 1
    functionLinenumber: 3239
    functionLinenumberEnd: 3278
    functionName: DWGFileR2000::get3DFace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadBITDOUBLEWD
    - CAD3DFaceObject::CAD3DFaceObject
    - CADBuffer::ReadRAWVector
    - DWGFileR2000::validateEntityCRC
    - CAD3DFaceObject*::setSize
    - CADBuffer::ReadBIT
    - CADBuffer::ReadRAWDOUBLE
    - getY
    - CADVector::setZ
    - getZ
    - CAD3DFaceObject*::setCRC
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CAD3DFaceObject*::avertCorners::push_back
    - getX
    - DWGFileR2000::fillCommonEntityHandleData
    linkageType: ''
    returnType: CAD3DFaceObject
    signature: "CAD3DFaceObject * DWGFileR2000::get3DFace(unsigned int dObjectSize,\n
      \                                         const CADCommonED& stCommonEntityData,\n
      \                                         CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVertexMeshObject::CADVertexMeshObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3284,1
    - Dst: CADVertexMeshObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3286,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3289,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3290,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3293,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3295,1
    - Dst: CADVertexMeshObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3296,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3298
      start: 3280
    functionDepth: 1
    functionLinenumber: 3280
    functionLinenumberEnd: 3298
    functionName: DWGFileR2000::getVertexMesh
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADVertexMeshObject*::setSize
    - CADBuffer::ReadCHAR
    - CADVertexMeshObject*::setCRC
    - CADBuffer::Seek
    - CADVertexMeshObject::CADVertexMeshObject
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADVertexMeshObject
    signature: "CADVertexMeshObject * DWGFileR2000::getVertexMesh(unsigned int dObjectSize,\n
      \                                                 const CADCommonED& stCommonEntityData,\n
      \                                                 CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADVertexPFaceObject::CADVertexPFaceObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3304,1
    - Dst: CADVertexPFaceObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3306,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3309,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3310,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3313,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3315,1
    - Dst: CADVertexPFaceObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3316,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3318
      start: 3300
    functionDepth: 1
    functionLinenumber: 3300
    functionLinenumberEnd: 3318
    functionName: DWGFileR2000::getVertexPFace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADVertexPFaceObject*::setCRC
    - CADVertexPFaceObject*::setSize
    - CADBuffer::ReadVector
    - CADBuffer::ReadCHAR
    - CADBuffer::Seek
    - CADVertexPFaceObject::CADVertexPFaceObject
    - DWGFileR2000::fillCommonEntityHandleData
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADVertexPFaceObject
    signature: "CADVertexPFaceObject * DWGFileR2000::getVertexPFace(unsigned int dObjectSize,\n
      \                                                   const CADCommonED& stCommonEntityData,\n
      \                                                   CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADMTextObject::CADMTextObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3324,1
    - Dst: CADMTextObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3326,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3329,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3332,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3335,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3338,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3339,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3340,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3341,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3342,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3343,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3344,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3345,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3346,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3347,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3349,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3351,1
    - Dst: CADMTextObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3352,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3354
      start: 3320
    functionDepth: 1
    functionLinenumber: 3320
    functionLinenumberEnd: 3354
    functionName: DWGFileR2000::getMText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - DWGFileR2000::validateEntityCRC
    - CADBuffer::ReadTV
    - CADBuffer::ReadBITDOUBLE
    - CADBuffer::ReadVector
    - CADBuffer::ReadBIT
    - CADBuffer::ReadBITSHORT
    - CADBuffer::Seek
    - CADMTextObject::CADMTextObject
    - DWGFileR2000::fillCommonEntityHandleData
    - CADMTextObject*::setCRC
    - CADMTextObject*::setSize
    linkageType: ''
    returnType: CADMTextObject
    signature: "CADMTextObject * DWGFileR2000::getMText(unsigned int dObjectSize,\n
      \                                       const CADCommonED& stCommonEntityData,\n
      \                                       CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3363,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3366,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3369,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3370,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3372,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3373,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3374,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3376,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3377,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3378,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3379,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3381,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3382,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3383,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3384,1
    - Dst: CADBuffer::ReadRAWVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3386,1
    - Dst: CADDimensionOrdinateObject::CADDimensionOrdinateObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3393,1
    - Dst: CADDimensionOrdinateObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3395,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3397,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3399,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3402,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3405,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3408,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3410,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3412,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3413,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3415,1
    - Dst: CADDimensionOrdinateObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3416,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3416,1
    - Dst: CADDimensionLinearObject::CADDimensionLinearObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3422,1
    - Dst: CADDimensionLinearObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3424,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3426,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3428,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3431,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3434,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3437,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3438,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3440,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3442,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3443,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3445,1
    - Dst: CADDimensionLinearObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3446,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3446,1
    - Dst: CADDimensionAlignedObject::CADDimensionAlignedObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3452,1
    - Dst: CADDimensionAlignedObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3454,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3456,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3458,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3461,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3464,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3467,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3469,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3471,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3472,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3474,1
    - Dst: CADDimensionAlignedObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3475,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3475,1
    - Dst: CADDimensionAngular3PtObject::CADDimensionAngular3PtObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3481,1
    - Dst: CADDimensionAngular3PtObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3483,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3485,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3487,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3490,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3493,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3496,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3499,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3501,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3502,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3504,1
    - Dst: CADDimensionAngular3PtObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3505,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3505,1
    - Dst: CADDimensionAngular2LnObject::CADDimensionAngular2LnObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3511,1
    - Dst: CADDimensionAngular2LnObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3513,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3515,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3517,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3520,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3523,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3526,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3529,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3532,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3534,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3535,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3537,1
    - Dst: CADDimensionAngular2LnObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3538,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3538,1
    - Dst: CADDimensionRadiusObject::CADDimensionRadiusObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3544,1
    - Dst: CADDimensionRadiusObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3546,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3548,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3550,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3553,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3556,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3558,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3560,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3561,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3563,1
    - Dst: CADDimensionRadiusObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3564,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3564,1
    - Dst: CADDimensionDiameterObject::CADDimensionDiameterObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3570,1
    - Dst: CADDimensionDiameterObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3572,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3574,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3576,1
    - Dst: CADBuffer::ReadVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3579,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3582,1
    - Dst: DWGFileR2000::fillCommonEntityHandleData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3584,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3586,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3587,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3589,1
    - Dst: CADDimensionDiameterObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3590,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 125
    argCount: 4
    argNames:
    - dObjectType
    - dObjectSize
    - ' stCommonEntityData'
    - buffer
    argTypes:
    - short
    - unsigned int
    - CADCommonED
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3595
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3595
    functionName: DWGFileR2000::getDimension
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::ReadVector
    - CADDimensionOrdinateObject*::setCRC
    - CADDimensionAngular3PtObject*::setCRC
    - CADDimensionRadiusObject*::setCRC
    - DWGFileR2000::fillCommonEntityHandleData
    - CADBuffer::ReadBITDOUBLE
    - CADDimensionAngular2LnObject*::setCRC
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITSHORT
    - CADDimensionAngular3PtObject*::setSize
    - std::move
    - CADDimensionRadiusObject*::setSize
    - CADDimensionLinearObject*::setCRC
    - CADDimensionAlignedObject*::setSize
    - DWGFileR2000::validateEntityCRC
    - CADDimensionDiameterObject*::setSize
    - CADDimensionLinearObject*::setSize
    - CADDimensionDiameterObject::CADDimensionDiameterObject
    - CADBuffer::ReadTV
    - CADDimensionOrdinateObject*::setSize
    - CADDimensionAngular2LnObject::CADDimensionAngular2LnObject
    - CADDimensionAngular3PtObject::CADDimensionAngular3PtObject
    - CADDimensionAngular2LnObject*::setSize
    - CADBuffer::ReadHANDLE
    - CADDimensionAlignedObject::CADDimensionAlignedObject
    - CADBuffer::ReadRAWVector
    - CADDimensionOrdinateObject::CADDimensionOrdinateObject
    - CADDimensionDiameterObject*::setCRC
    - CADBuffer::Seek
    - CADDimensionAlignedObject*::setCRC
    - CADDimensionRadiusObject::CADDimensionRadiusObject
    - CADDimensionLinearObject::CADDimensionLinearObject
    linkageType: ''
    returnType: CADDimensionObject
    signature: "CADDimensionObject * DWGFileR2000::getDimension(short dObjectType,\n
      \                                               unsigned int dObjectSize,\n
      \                                               const CADCommonED& stCommonEntityData,\n
      \                                               CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADImageDefObject::CADImageDefObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3600,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3602,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3608,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3610,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3611,1
    - Dst: CADBuffer::ReadTV
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3613,1
    - Dst: CADBuffer::ReadBIT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3614,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3616,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3618,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3619,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3621,1
    - Dst: CADImageDefObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3625,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3625,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3626,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3633,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3635,1
    - Dst: CADImageDefObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3636,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3639
      start: 3597
    functionDepth: 1
    functionLinenumber: 3597
    functionLinenumberEnd: 3639
    functionName: DWGFileR2000::getImageDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADImageDefObject*::hReactors::push_back
    - CADBuffer::IsEOB
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadTV
    - CADBuffer::ReadBIT
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadBITLONG
    - CADImageDefObject::CADImageDefObject
    - CADBuffer::ReadCHAR
    - CADImageDefObject*::setCRC
    - CADBuffer::Seek
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADImageDefObject
    signature: "CADImageDefObject * DWGFileR2000::getImageDef(unsigned int dObjectSize,\n
      \                                             CADBuffer &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADImageDefReactorObject::CADImageDefReactorObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3643,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3645,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3651,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3653,1
    - Dst: CADImageDefReactorObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3657,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3657,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3658,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3665,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3667,1
    - Dst: CADImageDefReactorObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3668,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3671
      start: 3641
    functionDepth: 1
    functionLinenumber: 3641
    functionLinenumberEnd: 3671
    functionName: DWGFileR2000::getImageDefReactor
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADImageDefReactorObject*::hReactors::push_back
    - DWGFileR2000::readBasicData
    - CADBuffer::ReadBITLONG
    - CADBuffer::Seek
    - CADImageDefReactorObject::CADImageDefReactorObject
    - CADImageDefReactorObject*::setCRC
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADImageDefReactorObject
    signature: CADImageDefReactorObject * DWGFileR2000::getImageDefReactor(unsigned
      int dObjectSize, CADBuffer &buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADXRecordObject::CADXRecordObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3675,1
    - Dst: DWGFileR2000::readBasicData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3677,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3683,1
    - Dst: CADXRecordObject*::abyDataBytes::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3691,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3691,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3692,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3699,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3705,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3708,1
    - Dst: CADBuffer::ReadRAWSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3713,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3717,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3718,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3719,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3723,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3726,1
    - Dst: CADXRecordObject*::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3730,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3730,1
    - Dst: CADBuffer::IsEOB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3731,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3738,1
    - Dst: CADBuffer::PositionBit
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3741,1
    - Dst: CADXRecordObject*::hObjIdHandles::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3743,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3743,1
    - Dst: CADBuffer::Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3746,1
    - Dst: CADXRecordObject*::setCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3747,1
    - Dst: DWGFileR2000::validateEntityCRC
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3747,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - dObjectSize
    - buffer
    argTypes:
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3750
      start: 3673
    functionDepth: 1
    functionLinenumber: 3673
    functionLinenumberEnd: 3750
    functionName: DWGFileR2000::getXRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::IsEOB
    - CADBuffer::PositionBit
    - CADXRecordObject*::setCRC
    - CADXRecordObject*::hObjIdHandles::push_back
    - DWGFileR2000::readBasicData
    - CADXRecordObject::CADXRecordObject
    - CADBuffer::ReadRAWDOUBLE
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITLONG
    - CADXRecordObject*::abyDataBytes::push_back
    - CADBuffer::ReadBITSHORT
    - CADXRecordObject*::hReactors::push_back
    - CADBuffer::Seek
    - CADBuffer::ReadRAWSHORT
    - CADBuffer::ReadHANDLE
    - DWGFileR2000::validateEntityCRC
    linkageType: ''
    returnType: CADXRecordObject
    signature: CADXRecordObject * DWGFileR2000::getXRecord(unsigned int dObjectSize,
      CADBuffer &buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3756,1
    - Dst: CADEntityObject*::stChed::hReactors::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3765,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3765,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3767,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3771,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3772,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3775,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3778,1
    - Dst: ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3781,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - pEnt
    - ' buffer'
    argTypes:
    - CADEntityObject*
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3782
      start: 3752
    functionDepth: 1
    functionLinenumber: 3752
    functionLinenumberEnd: 3782
    functionName: DWGFileR2000::fillCommonEntityHandleData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 27
    functionsReached:
    - ReadHANDLE
    - CADEntityObject*::stChed::hReactors::push_back
    linkageType: ''
    returnType: void
    signature: "void DWGFileR2000::fillCommonEntityHandleData(CADEntityObject * pEnt,\n
      \                                             CADBuffer& buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poFileIO
    argTypes:
    - CADFileIO*
    constantsTouched: []
    func_position:
      end: 3789
      start: 3784
    functionDepth: 0
    functionLinenumber: 3784
    functionLinenumberEnd: 3789
    functionName: DWGFileR2000::DWGFileR2000
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 1
    functionsReached:
    - addValue
    linkageType: ''
    returnType: void
    signature: void DWGFileR2000::DWGFileR2000( CADFileIO * poFileIO )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rewind
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3797,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3798,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3799,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3800,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3801,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3802,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3803,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3805,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3806,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3808,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3811,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3812,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3813,1
    - Dst: addValue
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3814,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3816,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3818,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3819,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3821,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3823,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3826,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3827,1
    - Dst: Read
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3828,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3832,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3833,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3835,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3836,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3791
    functionDepth: 1
    functionLinenumber: 3791
    functionLinenumberEnd: 3843
    functionName: DWGFileR2000::ReadSectionLocators
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - size
    - Seek
    - static_cast<size_t>
    - DebugMsg
    - addValue
    - Rewind
    - push_back
    - memset
    - Read
    - FromLSB
    linkageType: ''
    returnType: int
    signature: int DWGFileR2000::ReadSectionLocators()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADDictionary::CADDictionary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3847,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3848,1
    - Dst: GetTableHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3848,1
    - Dst: dynamic_cast<CADDictionaryObject*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3852,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3852,1
    - Dst: CADDictionaryObject*::sItemNames::size
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3858,1
    - Dst: DWGFileR2000::GetObject
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3861,1
    - Dst: getAsLong
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3861,1
    - Dst: unique_ptr::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3866,1
    - Dst: unique_ptr::getType
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3870,1
    - Dst: CADXRecord::CADXRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3872,1
    - Dst: static_cast<CADXRecordObject*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3874,1
    - Dst: unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3874,1
    - Dst: CADXRecordObject*::abyDataBytes::begin
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3876,1
    - Dst: CADXRecordObject*::abyDataBytes::end
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3877,1
    - Dst: CADXRecord*::setRecordData
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3878,1
    - Dst: CADDictionary::addRecord
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3882,1
    - Dst: make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3887
    functionName: DWGFileR2000::GetNOD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 0
    functionsReached:
    - CADXRecordObject*::abyDataBytes::end
    - GetTableHandle
    - CADDictionary::addRecord
    - make_pair
    - static_cast<CADXRecordObject*>
    - CADXRecord::CADXRecord
    - dynamic_cast<CADDictionaryObject*>
    - CADXRecord*::setRecordData
    - DWGFileR2000::GetObject
    - CADDictionaryObject*::sItemNames::size
    - CADXRecordObject*::abyDataBytes::begin
    - getAsLong
    - unique_ptr::get
    - CADDictionary::CADDictionary
    - unique_ptr::getType
    linkageType: ''
    returnType: CADDictionary
    signature: CADDictionary DWGFileR2000::GetNOD()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SwapEndianness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3897,1
    - Dst: Seek
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3900,1
    - Dst: DebugMsg
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' buffer'
    - dObjectSize
    - entityName
    - bSwapEndianness
    argTypes:
    - CADBuffer
    - unsigned int
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 3912
      start: 3889
    functionDepth: 1
    functionLinenumber: 3889
    functionLinenumberEnd: 3912
    functionName: DWGFileR2000::validateEntityCRC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 38
    functionsReached:
    - SwapEndianness
    - DebugMsg
    - Seek
    linkageType: ''
    returnType: unsigned short
    signature: "unsigned short DWGFileR2000::validateEntityCRC(CADBuffer& buffer,\n
      \                                              unsigned int dObjectSize,\n                                               const
      char * entityName,\n                                               bool bSwapEndianness
      )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBaseControlObject*::setSize
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3918,1
    - Dst: CADBuffer::ReadRAWLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3919,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3920,1
    - Dst: CADBuffer::ReadBITSHORT
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3923,1
    - Dst: CADBuffer::ReadHANDLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3926,1
    - Dst: CADEed::acData::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3932,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3932,1
    - Dst: CADBaseControlObject*::aEED::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3936,1
    - Dst: CADBuffer::ReadBITLONG
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp:3939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pBaseControlObject
    - dObjectSize
    - buffer
    argTypes:
    - CADBaseControlObject*
    - unsigned int
    - CADBuffer
    constantsTouched: []
    func_position:
      end: 3947
      start: 3914
    functionDepth: 1
    functionLinenumber: 3914
    functionLinenumberEnd: 3947
    functionName: DWGFileR2000::readBasicData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp
    functionUses: 10
    functionsReached:
    - CADBaseControlObject*::aEED::push_back
    - CADEed::acData::push_back
    - CADBaseControlObject*::setSize
    - CADBuffer::ReadCHAR
    - CADBuffer::ReadBITLONG
    - CADBuffer::ReadBITSHORT
    - CADBuffer::ReadRAWLONG
    - CADBuffer::ReadHANDLE
    linkageType: ''
    returnType: bool
    signature: "bool DWGFileR2000::readBasicData(CADBaseControlObject *pBaseControlObject,\n
      \                          unsigned int dObjectSize,\n                           CADBuffer
      &buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: ~DWGFileR2000()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DWGFileR2000()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h:74,1
    - Dst: reinterpret_cast<char*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h:74,1
    - Dst: reinterpret_cast<char*>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' object'
    - size
    argTypes:
    - T
    - S
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: SwapEndianness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<char*>
    - std::reverse
    linkageType: ''
    returnType: void
    signature: void SwapEndianness( T&& object, S size )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SwapEndianness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' object'
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: FromLSB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 3
    functionsReached:
    - SwapEndianness
    linkageType: ''
    returnType: void
    signature: void FromLSB( T&& object )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: FromLSB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FromLSB( T&& )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: CADBuffer::CADBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer(const CADBuffer&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& operator=(const CADBuffer&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CADBuffer
    signature: CADBuffer & operator=(const CADBuffer&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: CADBuffer::GetRawBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * GetRawBuffer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: CADBuffer::PositionBit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t PositionBit() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: CADBuffer::IsEOB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEOB() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:59,1
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:60,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - initialVal
    - ptr
    - num
    argTypes:
    - unsigned short
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: CalculateCRC8
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned short>
    - static_cast<char>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short CalculateCRC8( unsigned short initialVal, const char
      *ptr, int num )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char::char
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:75,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: CADBuffer::CADBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached:
    - memset
    - char::char
    linkageType: ''
    returnType: void
    signature: void CADBuffer::CADBuffer(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: CADBuffer::~CADBuffer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::~CADBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: CADBuffer::WriteRAW
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CADBuffer::WriteRAW(const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:105,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:110,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:111,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 122
    functionName: CADBuffer::Read2B
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - binary
    - memcpy
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char CADBuffer::Read2B()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:137,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:142,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:143,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:147,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:148,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 160
    functionName: CADBuffer::Read3B
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached:
    - binary
    - memcpy
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char CADBuffer::Read3B()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:175,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:180,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:181,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:184,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:185,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:189,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:190,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 202
    functionName: CADBuffer::Read4B
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached:
    - binary
    - memcpy
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char CADBuffer::Read4B()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:219,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:245,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 273
    functionName: CADBuffer::ReadBITDOUBLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 17
    functionsReached:
    - memcpy
    - FromLSB
    linkageType: ''
    returnType: double
    signature: double CADBuffer::ReadBITDOUBLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 297
    functionName: CADBuffer::SkipBITDOUBLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipBITDOUBLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:310,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:326,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 332
    functionName: CADBuffer::ReadRAWSHORT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - FromLSB
    linkageType: ''
    returnType: short
    signature: short CADBuffer::ReadRAWSHORT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:346,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:374,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 380
    functionName: CADBuffer::ReadRAWDOUBLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 12
    functionsReached:
    - memcpy
    - FromLSB
    linkageType: ''
    returnType: double
    signature: double CADBuffer::ReadRAWDOUBLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:394,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:414,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 420
    functionName: CADBuffer::ReadRAWLONG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - FromLSB
    linkageType: ''
    returnType: int
    signature: int CADBuffer::ReadRAWLONG()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: CADBuffer::ReadBIT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CADBuffer::ReadBIT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:453,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:467,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:468,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 497
    functionName: CADBuffer::ReadBITSHORT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 19
    functionsReached:
    - memcpy
    - FromLSB
    - static_cast<unsigned char>
    linkageType: ''
    returnType: short
    signature: short CADBuffer::ReadBITSHORT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 520
    functionName: CADBuffer::ReadCHAR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 17
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char CADBuffer::ReadCHAR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:530,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 534
    functionName: CADBuffer::ReadTV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 13
    functionsReached:
    - static_cast<char>
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: std::string
    signature: std::string CADBuffer::ReadTV()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:554,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:556,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 571
    functionName: CADBuffer::ReadUMCHAR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - binary
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: long
    signature: long CADBuffer::ReadUMCHAR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:592,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:594,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:598,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:601,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:601,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:603,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 621
    functionName: CADBuffer::ReadMCHAR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - binary
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: long
    signature: long CADBuffer::ReadMCHAR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:630,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:631,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:632,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:634,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:635,1
    - Dst: SwapEndianness
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:639,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:643,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:647,1
    - Dst: binary
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:648,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 668
    functionName: CADBuffer::ReadMSHORT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - SwapEndianness
    - binary
    - static_cast<unsigned>
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int CADBuffer::ReadMSHORT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:675,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:688,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:689,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:690,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:691,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:694,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:695,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:701,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:702,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:703,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:704,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:705,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:706,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:709,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:710,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:716,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:717,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:718,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:719,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:720,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:721,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:722,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:723,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:726,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - defaultvalue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 733
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 733
    functionName: CADBuffer::ReadBITDOUBLEWD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 5
    functionsReached:
    - memcpy
    - FromLSB
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: double
    signature: double CADBuffer::ReadBITDOUBLEWD(double defaultvalue )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHandle::addOffset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:741,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 745
    functionName: CADBuffer::ReadHANDLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 23
    functionsReached:
    - CADHandle::addOffset
    - CADBuffer::ReadCHAR
    linkageType: ''
    returnType: CADHandle
    signature: CADHandle CADBuffer::ReadHANDLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::Read4B
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 752
    functionName: CADBuffer::SkipHANDLE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached:
    - CADBuffer::Read4B
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipHANDLE()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADHandle::CADHandle
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:756,1
    - Dst: CADHandle::addOffset
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:762,1
    - Dst: CADBuffer::ReadCHAR
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 766
    functionName: CADBuffer::ReadHANDLE8BLENGTH
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached:
    - CADBuffer::ReadCHAR
    - CADHandle::addOffset
    - CADHandle::CADHandle
    linkageType: ''
    returnType: CADHandle
    signature: CADHandle CADBuffer::ReadHANDLE8BLENGTH()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:781,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:799,1
    - Dst: FromLSB
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 832
    functionName: CADBuffer::ReadBITLONG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 14
    functionsReached:
    - memcpy
    - FromLSB
    linkageType: ''
    returnType: int
    signature: int CADBuffer::ReadBITLONG()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 845
    functionName: CADBuffer::SkipTV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipTV()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 870
    functionName: CADBuffer::SkipBITLONG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipBITLONG()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 895
    functionName: CADBuffer::SkipBITSHORT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipBITSHORT()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 906
    functionName: CADBuffer::SkipBIT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::SkipBIT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:911,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:912,1
    - Dst: CADBuffer::ReadBITDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:913,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 916
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 916
    functionName: CADBuffer::ReadVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 21
    functionsReached:
    - CADBuffer::ReadBITDOUBLE
    - CADVector
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADBuffer::ReadVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:921,1
    - Dst: CADBuffer::ReadRAWDOUBLE
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:922,1
    - Dst: CADVector
      Src: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 925
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 925
    functionName: CADBuffer::ReadRAWVector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 7
    functionsReached:
    - CADBuffer::ReadRAWDOUBLE
    - CADVector
    linkageType: ''
    returnType: CADVector
    signature: CADVector CADBuffer::ReadRAWVector()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - offset
    - position
    argTypes:
    - size_t
    - CADBuffer::SeekPosition
    constantsTouched: []
    func_position:
      end: 942
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 942
    functionName: CADBuffer::Seek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CADBuffer::Seek(size_t offset, CADBuffer::SeekPosition position)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:55,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: OGRMapMLReaderDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: OGRMapMLReaderLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: OGRMapMLReaderLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:130,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: OGRMapMLWriterDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: OGRMapMLWriterLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: OGRMapMLWriterLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: OGRMapMLWriterLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *GetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: OGRMapMLWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:201,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: OGRMapMLReaderDataset::Identify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int OGRMapMLReaderDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMapMLReaderDataset::Identify
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:211,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:213,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:217,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:220,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:225,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:231,1
    - Dst: std::set::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:233,1
    - Dst: OGRMapMLReaderDataset::OGRMapMLReaderDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:235,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:236,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:237,1
    - Dst: auto::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:240,1
    - Dst: std::unique_ptr<OGRMapMLReaderLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:240,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:241,1
    - Dst: OGRMapMLReaderLayer::OGRMapMLReaderLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 244
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 244
    functionName: OGRMapMLReaderDataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRMapMLReaderLayer::OGRMapMLReaderLayer
    - OGRMapMLReaderDataset::OGRMapMLReaderDataset
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLGetBasenameSafe
    - std::set::insert
    - auto::m_apoLayers::emplace_back
    - OGRMapMLReaderDataset::Identify
    - strcmp
    - std::move
    - std::set::empty
    - std::unique_ptr<OGRMapMLReaderLayer>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMapMLReaderDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMapMLReaderDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:252,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: OGRMapMLReaderDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMapMLReaderDataset::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMapMLReaderDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:263,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:264,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:265,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:267,1
    - Dst: OGRMapMLReaderDataset*::m_oRootCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:267,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:273,1
    - Dst: OGRMapMLReaderDataset*::m_oRootCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:273,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:280,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:283,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:285,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:296,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:298,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:299,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:300,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:305,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:315,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:316,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:316,1
    - Dst: m_osDefaultLayerName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:317,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:318,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:321,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:327,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:329,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:331,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:333,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:335,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:337,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:339,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:351,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:358,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:360,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:369,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:374,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:385,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:392,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:398,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:404,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:405,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:407,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:445,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:448,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:449,1
    - Dst: OGRMapMLReaderLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:452,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 100
    argCount: 2
    argNames:
    - poDS
    - pszLayerName
    argTypes:
    - OGRMapMLReaderDataset*
    - char*
    constantsTouched: []
    func_position:
      end: 453
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 453
    functionName: OGRMapMLReaderLayer::OGRMapMLReaderLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 1
    functionsReached:
    - std::map::end
    - GetGeomFieldDefn
    - std::vector::emplace_back
    - strcmp
    - Reference
    - CPLGetXMLValue
    - sscanf
    - SetGeomType
    - CPLAtoGIntBig
    - SetAxisMappingStrategy
    - AddFieldDefn
    - GetName
    - OGRMapMLReaderLayer::ResetReading
    - c_str
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRMapMLReaderDataset*::m_oRootCloser::get
    - std::map::find
    - SetDescription
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetXMLNode
    - m_osDefaultLayerName::c_str
    - EQUAL
    - importFromEPSG
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void OGRMapMLReaderLayer::OGRMapMLReaderLayer(OGRMapMLReaderDataset
      *poDS,\n                                         const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:462,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: OGRMapMLReaderLayer::~OGRMapMLReaderLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMapMLReaderLayer::~OGRMapMLReaderLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: OGRMapMLReaderLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMapMLReaderLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: OGRMapMLReaderLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMapMLReaderLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:494,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:501,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:502,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:504,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:505,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:504,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:510,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:517,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:518,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:520,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:522,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:525,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:525,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:526,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:533,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:535,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:540,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:544,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:545,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:547,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:549,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:552,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:552,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:553,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:555,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:562,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:569,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:570,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:572,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:576,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:577,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:578,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:585,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:587,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:592,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:596,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:597,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:599,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:601,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:604,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:604,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:605,1
    - Dst: OGRMultiLineString*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:607,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:614,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:621,1
    - Dst: ParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:623,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:631,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:633,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:638,1
    - Dst: ParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:640,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:642,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 1
    argNames:
    - psElement
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 649
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 649
    functionName: ParseGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 3
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiPoint*::addGeometryDirectly
    - strcmp
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRPoint::OGRPoint
    - CSLTokenizeString2
    - CPLStringList::size
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - CPLAtof
    - OGRLinearRing*::setNumPoints
    - OGRMultiPolygon*::addGeometryDirectly
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRMultiLineString*::addGeometryDirectly
    - OGRGeometryCollection::OGRGeometryCollection
    - ParseGeometry
    - EQUAL
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *ParseGeometry(const CPLXMLNode *psElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:660,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:661,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:661,1
    - Dst: m_osDefaultLayerName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:662,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:663,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:672,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:673,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:676,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:677,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:677,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:677,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:679,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:680,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:680,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:680,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:684,1
    - Dst: ParseGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:688,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:691,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:691,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:692,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:697,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:704,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:706,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:715,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 725
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 725
    functionName: OGRMapMLReaderLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - c_str
    - OGRGeometry*::assignSpatialReference
    - GetSpatialRef
    - CPLGetXMLNode
    - CPLAtoGIntBig
    - ParseGeometry
    - m_osDefaultLayerName::c_str
    - strcmp
    - CPLString
    - strlen
    - OGRFeature*::SetField
    - CPLGetXMLValue
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - GetName
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMapMLReaderLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fpOut
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: OGRMapMLWriterDataset::OGRMapMLWriterDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMapMLWriterDataset::OGRMapMLWriterDataset(VSILFILE *fpOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:744,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:745,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:749,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:750,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:751,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:754,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:759,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:760,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:761,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:763,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:772,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:776,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:777,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:778,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:780,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:781,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:782,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:784,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:785,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:786,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:788,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:789,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:790,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:792,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:793,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:794,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:796,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:799,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:800,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:801,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:804,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:806,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:807,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:808,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:811,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:812,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:813,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:815,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:822,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:830,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:833,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:855,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:857,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:860,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:861,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:863,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 864
    functionName: OGRMapMLWriterDataset::~OGRMapMLWriterDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - VSIFCloseL
    - CPLCreateXMLNode
    - CPLGetXMLNode
    - CPLString::Printf
    - FetchNameValueDef
    - CPLDestroyXMLNode
    - CPLSPrintf
    - CPLParseXMLString
    - strcmp
    - VSIFWriteL
    - VSIFree
    - CPLError
    - IsInit
    - CSLFetchNameValue
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: void OGRMapMLWriterDataset::~OGRMapMLWriterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:877,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:881,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:884,1
    - Dst: OGRMapMLWriterDataset::OGRMapMLWriterDataset
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:887,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:889,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:890,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:893,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:898,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:899,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:903,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:913,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:918,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:919,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:933,1
    - Dst: auto::m_oSRS::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:938,1
    - Dst: auto::m_oSRS::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:939,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:943,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:946,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 949
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 949
    functionName: OGRMapMLWriterDataset::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - CPLParseXMLFile
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CSLFetchNameValueDef
    - CPLParseXMLString
    - VSIFOpenL
    - strcmp
    - CSLDuplicate
    - OGRMapMLWriterDataset::OGRMapMLWriterDataset
    - auto::m_oSRS::SetAxisMappingStrategy
    - CPLError
    - auto::m_oSRS::importFromEPSG
    - CPLString::empty
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRMapMLWriterDataset::Create(const char *pszFilename,
      int nXSize,\n                                           int nYSize, int nBandsIn,\n
      \                                          GDALDataType eDT,\n                                           char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMapMLWriterDataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:957,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: OGRMapMLWriterDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMapMLWriterDataset::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMapMLWriterDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: OGRMapMLWriterDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMapMLWriterDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:980,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:982,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:986,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:987,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:991,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:995,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1003,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1008,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1011,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1013,1
    - Dst: IsGeographic
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1015,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1017,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1018,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1023,1
    - Dst: OGRMapMLWriterLayer::OGRMapMLWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1023,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1025,1
    - Dst: std::unique_ptr<OGRMapMLWriterLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1025,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1026,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 1027
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1027
    functionName: OGRMapMLWriterDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - IsEmpty
    - OGRSpatialReference::OGRSpatialReference
    - back
    - std::unique_ptr<OGRMapMLWriterLayer>
    - OGRSpatialReference::SetAxisMappingStrategy
    - std::unique_ptr<OGRCoordinateTransformation>
    - EQUAL
    - OGRMapMLWriterLayer::OGRMapMLWriterLayer
    - SetAxisMappingStrategy
    - std::move
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - OGRCreateCoordinateTransformation
    - importFromEPSG
    - IsGeographic
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMapMLWriterDataset::ICreateLayer(const char *pszLayerName,\n
      \                                   const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                   CSLConstList /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1049
    functionName: OGRMapMLWriterDataset::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMapMLWriterDataset::AddFeature(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1058,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1060,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - poDS
    - pszLayerName
    - poCT
    argTypes:
    - OGRMapMLWriterDataset*
    - char*
    - std::unique_ptr<OGRCoordinateTransformation>
    constantsTouched: []
    func_position:
      end: 1062
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1062
    functionName: OGRMapMLWriterLayer::OGRMapMLWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 1
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - std::move
    linkageType: ''
    returnType: void
    signature: "void OGRMapMLWriterLayer::OGRMapMLWriterLayer(\n    OGRMapMLWriterDataset
      *poDS, const char *pszLayerName,\n    std::unique_ptr<OGRCoordinateTransformation>
      &&poCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1071
    functionName: OGRMapMLWriterLayer::~OGRMapMLWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMapMLWriterLayer::~OGRMapMLWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1080,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1083
    functionName: OGRMapMLWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMapMLWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1093
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1093
    functionName: OGRMapMLWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMapMLWriterLayer::CreateField(const OGRFieldDefn *poFieldDefn,
      int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1103,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1105,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1107,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1109,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1110,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1110,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1112,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - psContainer
    - poLS
    argTypes:
    - CPLXMLNode*
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 1113
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1113
    functionName: OGRMapMLWriterLayer::writeLineStringCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRLineString*::getX
    - CPLCreateXMLNode
    - CPLSPrintf
    - OGRLineString*::getNumPoints
    - std::string::c_str
    - OGRLineString*::getY
    linkageType: ''
    returnType: void
    signature: "void OGRMapMLWriterLayer::writeLineStringCoordinates(CPLXMLNode *psContainer,\n
      \                                                    const OGRLineString *poLS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1123,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1132,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1140,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1141,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1141,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1143,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - psContainer
    - poPoly
    argTypes:
    - CPLXMLNode*
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 1145
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1145
    functionName: OGRMapMLWriterLayer::writePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLCreateXMLNode
    - getY
    - CPLSPrintf
    - getX
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRMapMLWriterLayer::writePolygon(CPLXMLNode *psContainer,\n
      \                                      const OGRPolygon *poPoly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1155,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1155,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1159,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1161,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1163,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1164,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1165,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1166,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1166,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1172,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1174,1
    - Dst: OGRMapMLWriterLayer::writeLineStringCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1175,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1181,1
    - Dst: OGRMapMLWriterLayer::writePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1182,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1188,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1190,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1192,1
    - Dst: OGRPoint*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1196,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1198,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1201,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1202,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1202,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1205,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1205,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1211,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1212,1
    - Dst: OGRLineString*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1216,1
    - Dst: OGRMapMLWriterLayer::writeLineStringCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1218,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1226,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1228,1
    - Dst: OGRPolygon*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1231,1
    - Dst: OGRMapMLWriterLayer::writePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1233,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1241,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1245,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1249,1
    - Dst: OGRMapMLWriterLayer::writeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1251,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - psContainer
    - poGeom
    - bInGeometryCollection
    argTypes:
    - CPLXMLNode*
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 1260
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1260
    functionName: OGRMapMLWriterLayer::writeGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPoint*::getY
    - OGRLineString*::IsEmpty
    - OGRGeometry*::toMultiPoint
    - OGRMapMLWriterLayer::writeLineStringCoordinates
    - std::string::c_str
    - std::string::empty
    - OGRMapMLWriterLayer::writeGeometry
    - OGRGeometry*::toMultiPolygon
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - IsEmpty
    - OGRPoint*::getX
    - OGRGeometry*::toGeometryCollection
    - CPLSPrintf
    - OGRMapMLWriterLayer::writePolygon
    - OGRPoint*::IsEmpty
    - OGRGeometry*::toLineString
    - OGRPolygon*::IsEmpty
    - CPLCreateXMLNode
    - OGRGeometry*::toPolygon
    - OGRGeometry*::toPoint
    linkageType: ''
    returnType: void
    signature: "void OGRMapMLWriterLayer::writeGeometry(CPLXMLNode *psContainer,\n
      \                                       const OGRGeometry *poGeom,\n                                        bool
      bInGeometryCollection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1269,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1270,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1277,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1277,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1278,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1278,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1279,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1279,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1285,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1286,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1287,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1288,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1289,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1290,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1292,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1293,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1294,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1295,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1296,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1298,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1300,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1301,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1302,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1303,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1306,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1307,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1308,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1309,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1314,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1316,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1317,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1320,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1321,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1322,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1322,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1326,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1327,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1328,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1329,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1330,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1336,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1337,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1339,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1340,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1340,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1343,1
    - Dst: OGRMapMLWriterLayer::writeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1344,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1347,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1352,1
    - Dst: m_sExtent::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1353,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1366
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1366
    functionName: OGRMapMLWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsString
    - AddFeature
    - OGRGeometry*::clone
    - OGRMapMLWriterLayer::writeGeometry
    - CPLString::c_str
    - OGRGeometry*::transform
    - GetName
    - c_str
    - OGRFeature*::GetFID
    - CPLDestroyXMLNode
    - get
    - CPLSPrintf
    - auto::GetNameRef
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::GetGeometryRef
    - CPLAddXMLAttributeAndValue
    - CPLCreateXMLNode
    - m_sExtent::Merge
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMapMLWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1375,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1378,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1380,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1381,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1382,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1383,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1384,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1385,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1386,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1387,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1393,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1397,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1423,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1426
    functionName: RegisterOGRMapML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMapML()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: OGRArrowRandomAccessFile::OGRArrowRandomAccessFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowRandomAccessFile(const OGRArrowRandomAccessFile &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: "&\n    operator=(const OGRArrowRandomAccessFile &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRArrowRandomAccessFile
    signature: "OGRArrowRandomAccessFile &\n    operator=(const OGRArrowRandomAccessFile
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:58,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:58,1
    - Dst: HasPRead
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:61,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:62,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:62,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:64,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - osFilename
    - fp
    - bOwnFP
    argTypes:
    - std::string
    - VSILFILE*
    - bool
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: OGRArrowRandomAccessFile::OGRArrowRandomAccessFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - c_str
    - VSIIsLocal
    - HasPRead
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void OGRArrowRandomAccessFile(const std::string &osFilename, VSILFILE
      *fp,\n                             bool bOwnFP)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIVirtualHandleUniquePtr::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:71,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:74,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:74,1
    - Dst: HasPRead
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:77,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:78,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:80,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - osFilename
    - fp
    argTypes:
    - std::string
    - VSIVirtualHandleUniquePtr
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: OGRArrowRandomAccessFile::OGRArrowRandomAccessFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - c_str
    - VSIVirtualHandleUniquePtr::release
    - VSIIsLocal
    - HasPRead
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: "void OGRArrowRandomAccessFile(const std::string &osFilename,\n                             VSIVirtualHandleUniquePtr
      &&fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: OGRArrowRandomAccessFile::AskToClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - Interrupt
    linkageType: ''
    returnType: void
    signature: void AskToClose()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: ~OGRArrowRandomAccessFile() override
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void ~OGRArrowRandomAccessFile() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:101,1
    - Dst: OGRAmigoCloudResultLayer::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:105,1
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: OGRArrowRandomAccessFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    - OGRAmigoCloudResultLayer::IsOK
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status Close() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:111,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OGRArrowRandomAccessFile::Tell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - VSIFTellL
    - static_cast<int64_t>
    linkageType: ''
    returnType: arrow::Result<int64_t>
    signature: arrow::Result<int64_t> Tell() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: OGRArrowRandomAccessFile::closed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool closed() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:122,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:124,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:124,1
    - Dst: OGRAmigoCloudResultLayer::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:125,1
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - position
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: OGRArrowRandomAccessFile::Seek
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudResultLayer::IsOK
    - arrow::Status::IOError
    - static_cast<vsi_l_offset>
    - VSIFSeekL
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status Seek(int64_t position) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:132,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:134,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:134,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:134,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:135,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:136,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nbytes
    - out
    argTypes:
    - int64_t
    - void*
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: OGRArrowRandomAccessFile::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLAssert
    - VSIFReadL
    - arrow::Status::IOError
    - static_cast<int64_t>
    linkageType: ''
    returnType: arrow::Result<int64_t>
    signature: arrow::Result<int64_t> Read(int64_t nbytes, void *out) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:142,1
    - Dst: arrow::AllocateResizableBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:145,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:146,1
    - Dst: OGRArrowRandomAccessFile::Read
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:151,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:152,1
    - Dst: Resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: OGRArrowRandomAccessFile::Read
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 1
    functionsReached:
    - auto::ok
    - OGRArrowRandomAccessFile::Read
    - CPL_IGNORE_RET_VAL
    - arrow::Status::IOError
    - arrow::AllocateResizableBuffer
    - Resize
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::Buffer>>
    signature: arrow::Result<std::shared_ptr<arrow::Buffer>> Read(int64_t nbytes)
      override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:164,1
    - Dst: arrow::AllocateResizableBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:168,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:169,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:175,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:179,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:179,1
    - Dst: PRead
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:182,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:182,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:183,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:184,1
    - Dst: Resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:185,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:188,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:192,1
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:192,1
    - Dst: OGRArrowRandomAccessFile::ReadAt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - position
    - nbytes
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 197
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 197
    functionName: OGRArrowRandomAccessFile::ReadAt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - c_str
    - CPLGetPID
    - PRead
    - static_cast<vsi_l_offset>
    - OGRArrowRandomAccessFile::ReadAt
    - auto::ok
    - CPLDebug
    - CPL_IGNORE_RET_VAL
    - arrow::Status::IOError
    - arrow::AllocateResizableBuffer
    - Resize
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::Buffer>>
    signature: arrow::Result<std::shared_ptr<arrow::Buffer>> ReadAt(int64_t position,
      int64_t nbytes) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:203,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:207,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:208,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:209,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:209,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: OGRArrowRandomAccessFile::GetSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowrandomaccessfile.h
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    - VSIFSeekL
    - VSIFTellL
    - static_cast<int64_t>
    linkageType: ''
    returnType: arrow::Result<int64_t>
    signature: arrow::Result<int64_t> GetSize() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:64,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:65,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:66,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - poMemoryPool
    - poOutputStream
    - pszLayerName
    argTypes:
    - arrow::MemoryPool*
    - std::shared_ptr<arrow::io::OutputStream>
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: OGRArrowWriterLayer::OGRArrowWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - SetGeomType
    linkageType: ''
    returnType: void
    signature: "void OGRArrowWriterLayer::OGRArrowWriterLayer(\n    arrow::MemoryPool
      *poMemoryPool,\n    const std::shared_ptr<arrow::io::OutputStream> &poOutputStream,\n
      \   const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:76,1
    - Dst: bytes_allocated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:77,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:78,1
    - Dst: max_memory
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:79,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: OGRArrowWriterLayer::~OGRArrowWriterLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - max_memory
    - bytes_allocated
    - CPLDebug
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRArrowWriterLayer::~OGRArrowWriterLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:92,1
    - Dst: CreateWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:94,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:96,1
    - Dst: PerformStepsBeforeFinalFlushGroup
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:98,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:100,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:100,1
    - Dst: FlushGroup
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:101,1
    - Dst: CloseFileWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: OGRArrowWriterLayer::FinalizeWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - empty
    - PerformStepsBeforeFinalFlushGroup
    - IsFileWriterCreated
    - FlushGroup
    - CreateWriter
    - CloseFileWriter
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowWriterLayer::FinalizeWriting()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:116,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:116,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:116,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:117,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:122,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:122,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:127,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:127,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:127,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:130,1
    - Dst: std::vector::insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:132,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:132,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:132,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:133,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:136,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:138,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:140,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:141,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:142,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:145,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:147,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:148,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:150,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:153,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:153,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:157,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:164,1
    - Dst: write_be_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:166,1
    - Dst: arrow::int32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:168,1
    - Dst: arrow::dictionary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:171,1
    - Dst: json_tokener_validate_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:171,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:176,1
    - Dst: arrow::dictionary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:179,1
    - Dst: json_tokener_validate_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:179,1
    - Dst: arrow::decimal256
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:196,1
    - Dst: arrow::decimal128
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:198,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:201,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:203,1
    - Dst: json_tokener_validate_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:211,1
    - Dst: arrow::fixed_size_binary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:216,1
    - Dst: arrow::binary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:218,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:223,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:223,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:225,1
    - Dst: write_be_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:225,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:227,1
    - Dst: arrow::int32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:227,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:231,1
    - Dst: json_object_new_int64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:231,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:236,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:236,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:238,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:238,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:243,1
    - Dst: json_tokener_validate_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:243,1
    - Dst: arrow::date32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:247,1
    - Dst: arrow::time32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:251,1
    - Dst: arrow::timestamp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:261,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:266,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:266,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:266,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:267,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:270,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:271,1
    - Dst: auto::WithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:273,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:276,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:276,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:277,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:279,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:283,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:285,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:286,1
    - Dst: arrow::fixed_size_list
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:296,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:297,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:298,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:300,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:305,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:305,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:306,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:306,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:308,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:308,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:309,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:309,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:310,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:311,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:312,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:312,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:313,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:314,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:315,1
    - Dst: arrow::float64
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:315,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:320,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:320,1
    - Dst: getFixedSizeListOfPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:321,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:326,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:327,1
    - Dst: getListOfVertices
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:327,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:332,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:333,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:338,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:338,1
    - Dst: getListOfVerticesStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:339,1
    - Dst: arrow::binary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:346,1
    - Dst: json_tokener_validate_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:350,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:355,1
    - Dst: getFixedSizeListOfPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:359,1
    - Dst: getListOfVertices
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:363,1
    - Dst: getListOfRings
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:367,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:371,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:371,1
    - Dst: getFixedSizeListOfPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:372,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:376,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:376,1
    - Dst: getListOfVertices
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:377,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:381,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:381,1
    - Dst: getListOfRings
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:382,1
    - Dst: getListOfVerticesStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:390,1
    - Dst: getListOfRingsStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:394,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:398,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:399,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:403,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:403,1
    - Dst: getListOfVerticesStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:404,1
    - Dst: OpenFileGDB::FileGDBTable::AddEntryToFreelist
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:408,1
    - Dst: std::make_shared<arrow::Field>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:408,1
    - Dst: getListOfRingsStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:409,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:414,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:414,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:414,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:415,1
    - Dst: std::shared_ptr::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:418,1
    - Dst: std::shared_ptr::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:419,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:420,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:421,1
    - Dst: OGRArrowWriterLayer::GetGeomEncodingAsString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:423,1
    - Dst: std::shared_ptr::WithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:424,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:427,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:427,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:429,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:429,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:434,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:436,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:437,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:437,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:438,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:438,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:439,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:439,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:440,1
    - Dst: arrow::float32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:440,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:441,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:442,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:443,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:443,1
    - Dst: arrow::struct_
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:446,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:447,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:447,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:448,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:448,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:449,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:450,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:451,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:455,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:455,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:456,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:456,1
    - Dst: OGRArrowArrayStream::get_schema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:458,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:458,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:459,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:461,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:461,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:462,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:462,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:465,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:466,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:468,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:469,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:471,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:472,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:474,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:475,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:476,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:476,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:477,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:477,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:477,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:478,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:480,1
    - Dst: OGR_GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:480,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:483,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:486,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:487,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:488,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:489,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:490,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:491,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:491,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:494,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:495,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:496,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:497,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:498,1
    - Dst: WithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:499,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:500,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 202
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 502
    functionName: OGRArrowWriterLayer::CreateSchemaCommon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - std::make_shared<arrow::KeyValueMetadata>
    - GetDriverUCName
    - json_object_new_boolean
    - arrow::float64
    - GetGeomFieldDefn
    - auto::GetType
    - std::vector::emplace_back
    - json_tokener_validate_utf8
    - write_be_uint16
    - auto::GetAlternativeNameRef
    - arrow::int32
    - GetFieldDefn
    - CPLError
    - swq_identify_field
    - arrow::fixed_size_list
    - GetGeomFieldCount
    - OpenFileGDB::FileGDBTable::AddEntryToFreelist
    - getListOfVerticesStruct
    - auto::c_str
    - arrow::fixed_size_binary
    - std::shared_ptr::metadata
    - std::shared_ptr::WithMetadata
    - end
    - CPLGetConfigOption
    - OGRArrowWriterLayer::GetGeomEncodingAsString
    - std::vector::end
    - metadata
    - find
    - OGR_GT_HasZ
    - arrow::timestamp
    - json_object_new_int64
    - std::make_shared<arrow::Field>
    - std::move
    - auto::WithMetadata
    - resize
    - OGR_GetFieldTypeName
    - arrow::decimal256
    - emplace_back
    - std::vector::insert
    - CPLTestBool
    - static_cast<int>
    - c_str
    - getListOfRings
    - arrow::decimal128
    - auto::GetComment
    - CPLJSONObject::CPLJSONObject
    - arrow::binary
    - GetFieldCount
    - auto::empty
    - getFixedSizeListOfPoint
    - CPLAssert
    - begin
    - arrow::date32
    - auto::Append
    - WithMetadata
    - auto::GetNameRef
    - OGR_GT_HasM
    - OGRArrowArrayStream::get_schema
    - auto::second::get
    - size
    - getListOfVertices
    - getListOfRingsStruct
    - empty
    - arrow::struct_
    - auto::GetSubType
    - arrow::dictionary
    - arrow::float32
    - arrow::time32
    - std::string
    - CPLJSONObject::Add
    - CPLJSONObject::Format
    - auto::GetDomainName
    - OGR_GetFieldSubTypeName
    linkageType: ''
    returnType: void
    signature: void OGRArrowWriterLayer::CreateSchemaCommon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:513,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:524,1
    - Dst: std::abs
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:525,1
    - Dst: arrow::timestamp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:526,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:527,1
    - Dst: swq_identify_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:528,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:528,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:528,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:529,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:530,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:531,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:533,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 543
    functionName: OGRArrowWriterLayer::FinalizeSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - SetField
    - auto::ok
    - auto::status
    - GetFieldCount
    - CPLSPrintf
    - arrow::timestamp
    - std::abs
    - std::move
    - GetFieldDefn
    - CPLError
    - swq_identify_field
    - auto::GetNameRef
    linkageType: ''
    returnType: void
    signature: void OGRArrowWriterLayer::FinalizeSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFieldDomain>::GetDomainType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:553,1
    - Dst: static_cast<const OGRCodedFieldDomain *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:560,1
    - Dst: std::unique_ptr<OGRFieldDomain>::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:560,1
    - Dst: OGRCodedFieldDomain*::GetEnumeration
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:561,1
    - Dst: std::make_shared<arrow::StringBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:564,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:569,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:572,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:579,1
    - Dst: OGR_ARROW_RETURN_FALSE_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:584,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:584,1
    - Dst: OGR_ARROW_RETURN_FALSE_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:587,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:588,1
    - Dst: OGR_ARROW_RETURN_FALSE_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:590,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:590,1
    - Dst: auto::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:595,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:596,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:598,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:600,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:604,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:604,1
    - Dst: std::unique_ptr<OGRFieldDomain>::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:605,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 607
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 607
    functionName: OGRArrowWriterLayer::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::Finish
    - CPLError
    - std::unique_ptr<OGRFieldDomain>::get
    - std::unique_ptr<OGRFieldDomain>::GetDomainType
    - auto::ok
    - auto::message
    - std::unique_ptr<OGRFieldDomain>::GetName
    - auto::Append
    - std::move
    - OGRCodedFieldDomain*::GetEnumeration
    - auto::AppendNull
    - static_cast<const OGRCodedFieldDomain *>
    - std::make_shared<arrow::StringBuilder>
    - OGR_ARROW_RETURN_FALSE_NOT_OK
    - CPLGetValueType
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowWriterLayer::AddFieldDomain(std::unique_ptr<OGRFieldDomain>
      &&domain,\n                                    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:616,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:616,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: OGRArrowWriterLayer::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRArrowWriterLayer::GetFieldDomainNames()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:631,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:632,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 635
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 635
    functionName: OGRArrowWriterLayer::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::get
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRArrowWriterLayer::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:646,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:650,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:652,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: OGRArrowWriterLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - CPLError
    - AddFieldDefn
    - empty
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowWriterLayer::CreateField(const OGRFieldDefn *poField,\n
      \                                              int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:670,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:677,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:685,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:695,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:701,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:703,1
    - Dst: arrow::ImportField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:717,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:718,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:719,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:721,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:725,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:725,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 727
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 727
    functionName: OGRArrowWriterLayer::CreateFieldFromArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - arrow::ImportField
    - auto::ok
    - GetFieldCount
    - CPLAssert
    - std::move
    - GetGeomFieldIndex
    - CPLError
    - name
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowWriterLayer::CreateFieldFromArrowSchema(\n    const struct
      ArrowSchema *schema, CSLConstList /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:736,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:738,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:777,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:779,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - eEncodingType
    - eGType
    argTypes:
    - OGRArrowGeomEncoding
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 782
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 782
    functionName: OGRArrowWriterLayer::GetPreciseArrowGeomEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - wkbFlatten
    - CPLAssert
    - OGRGeometryTypeToName
    - CPLError
    linkageType: ''
    returnType: OGRArrowGeomEncoding
    signature: "OGRArrowGeomEncoding OGRArrowWriterLayer::GetPreciseArrowGeomEncoding(\n
      \   OGRArrowGeomEncoding eEncodingType, OGRwkbGeometryType eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 2
    argNames:
    - eGeomEncoding
    - bForParquetGeo
    argTypes:
    - OGRArrowGeomEncoding
    - bool
    constantsTouched: []
    func_position:
      end: 829
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 829
    functionName: OGRArrowWriterLayer::GetGeomEncodingAsString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: char
    signature: "char *\nOGRArrowWriterLayer::GetGeomEncodingAsString(OGRArrowGeomEncoding
      eGeomEncoding,\n                                             bool bForParquetGeo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:841,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:845,1
    - Dst: IsSupportedGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:846,1
    - Dst: IsSRSRequired
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:851,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:851,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:853,1
    - Dst: OGRArrowWriterLayer::GetPreciseArrowGeomEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:861,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:865,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 868
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 868
    functionName: OGRArrowWriterLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - AddGeomFieldDefn
    - OGRGeomFieldDefn*::GetType
    - OGRArrowWriterLayer::GetPreciseArrowGeomEncoding
    - IsSupportedGeometryType
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - CPLError
    - IsSRSRequired
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowWriterLayer::CreateGeomField(const OGRGeomFieldDefn
      *poField,\n                                     int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<arrow::FixedSizeListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:878,1
    - Dst: std::make_shared<arrow::DoubleBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:879,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:882,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - poMemoryPool
    - nDim
    - nDepth
    argTypes:
    - arrow::MemoryPool*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 884
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 884
    functionName: MakeGeoArrowBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 1
    functionsReached:
    - std::make_shared<arrow::ListBuilder>
    - std::make_shared<arrow::DoubleBuilder>
    - std::make_shared<arrow::FixedSizeListBuilder>
    - MakeGeoArrowBuilder
    linkageType: ''
    returnType: std::shared_ptr<arrow::ArrayBuilder>
    signature: std::shared_ptr<arrow::ArrayBuilder> MakeGeoArrowBuilder(arrow::MemoryPool
      *poMemoryPool, int nDim, int nDepth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:898,1
    - Dst: std::make_shared<arrow::DoubleBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:899,1
    - Dst: std::make_shared<arrow::StructBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:900,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:901,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:904,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - poMemoryPool
    - nDim
    - nDepth
    - eBaseType
    argTypes:
    - arrow::MemoryPool*
    - int
    - int
    - std::shared_ptr<arrow::DataType>
    constantsTouched: []
    func_position:
      end: 907
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 907
    functionName: MakeGeoArrowStructBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 1
    functionsReached:
    - std::make_shared<arrow::ListBuilder>
    - std::make_shared<arrow::DoubleBuilder>
    - MakeGeoArrowStructBuilder
    - std::make_shared<arrow::StructBuilder>
    - std::vector::emplace_back
    - std::move
    linkageType: ''
    returnType: std::shared_ptr<arrow::ArrayBuilder>
    signature: "std::shared_ptr<arrow::ArrayBuilder> MakeGeoArrowStructBuilder(arrow::MemoryPool
      *poMemoryPool, int nDim, int nDepth,\n                          const std::shared_ptr<arrow::DataType>
      &eBaseType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:915,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:916,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:917,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:918,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:919,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 921
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 921
    functionName: OGRArrowWriterLayer::ClearArrayBuilers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRArrowWriterLayer::ClearArrayBuilers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:929,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:929,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:930,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:933,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:935,1
    - Dst: std::make_shared<arrow::Int64Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:935,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:939,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:941,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:943,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:944,1
    - Dst: std::make_shared<arrow::BooleanBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:949,1
    - Dst: std::make_shared<arrow::Int16Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:952,1
    - Dst: std::make_shared<arrow::Int32Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:955,1
    - Dst: std::make_shared<arrow::Int64Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:959,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:964,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:964,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:965,1
    - Dst: std::make_shared<arrow::Decimal128Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:966,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:968,1
    - Dst: std::make_shared<arrow::Decimal256Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:969,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:973,1
    - Dst: std::make_shared<arrow::DoubleBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:976,1
    - Dst: std::make_shared<arrow::StringBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:983,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:987,1
    - Dst: std::make_shared<arrow::FixedSizeBinaryBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:988,1
    - Dst: arrow::fixed_size_binary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:989,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:989,1
    - Dst: std::make_shared<arrow::BinaryBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:993,1
    - Dst: std::make_shared<arrow::BooleanBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1001,1
    - Dst: std::make_shared<arrow::Int16Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1004,1
    - Dst: std::make_shared<arrow::Int32Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1007,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1008,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1014,1
    - Dst: std::make_shared<arrow::Int64Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1016,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1022,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1024,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1026,1
    - Dst: std::make_shared<arrow::DoubleBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1028,1
    - Dst: std::make_shared<arrow::ListBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1033,1
    - Dst: std::make_shared<arrow::StringBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1035,1
    - Dst: std::make_shared<arrow::Date32Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1041,1
    - Dst: std::make_shared<arrow::Time32Builder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1045,1
    - Dst: arrow::time32
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1046,1
    - Dst: std::make_shared<arrow::TimestampBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1050,1
    - Dst: arrow::timestamp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1051,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1054,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1057,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1060,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1061,1
    - Dst: std::make_shared<arrow::BinaryBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1069,1
    - Dst: std::make_shared<arrow::StringBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1074,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1078,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1082,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1086,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1090,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1094,1
    - Dst: MakeGeoArrowBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1098,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1102,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1107,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1112,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1117,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1122,1
    - Dst: MakeGeoArrowStructBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1127,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1133,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1137,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1141,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1142,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1143,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1144,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1145,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1146,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1147,1
    - Dst: std::make_shared<arrow::FloatBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1148,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1149,1
    - Dst: std::make_shared<arrow::StructBuilder>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1150,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1151,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1153,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1154,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1155,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1156,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 1159
    functionName: OGRArrowWriterLayer::CreateArrayBuilders
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - std::make_shared<arrow::StructBuilder>
    - auto::GetType
    - GetFieldDefn
    - reserve
    - type
    - GetGeomFieldCount
    - std::make_shared<arrow::Decimal256Builder>
    - std::make_shared<arrow::Time32Builder>
    - arrow::fixed_size_binary
    - auto::id
    - MakeGeoArrowStructBuilder
    - auto::GetWidth
    - std::make_shared<arrow::BinaryBuilder>
    - arrow::timestamp
    - std::make_shared<arrow::Int32Builder>
    - MakeGeoArrowBuilder
    - std::make_shared<arrow::FixedSizeBinaryBuilder>
    - emplace_back
    - std::make_shared<arrow::DoubleBuilder>
    - std::make_shared<arrow::BooleanBuilder>
    - std::make_shared<arrow::FloatBuilder>
    - GetFieldCount
    - CPLAssert
    - std::make_shared<arrow::Date32Builder>
    - std::make_shared<arrow::Int16Builder>
    - std::make_shared<arrow::ListBuilder>
    - back
    - std::make_shared<arrow::TimestampBuilder>
    - empty
    - fields
    - std::make_shared<arrow::Decimal128Builder>
    - auto::GetSubType
    - arrow::time32
    - std::make_shared<arrow::Int64Builder>
    - std::make_shared<arrow::StringBuilder>
    linkageType: ''
    returnType: void
    signature: void OGRArrowWriterLayer::CreateArrayBuilders()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1184
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1184
    functionName: castToFloatDown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float castToFloatDown(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1194
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1194
    functionName: castToFloatUp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float castToFloatUp(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1208,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1210,1
    - Dst: PointBuilderType*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1210,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1211,1
    - Dst: arrow::DoubleBuilder*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1211,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1211,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1212,1
    - Dst: arrow::DoubleBuilder*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1212,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1212,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1214,1
    - Dst: arrow::DoubleBuilder*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1214,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1214,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1216,1
    - Dst: arrow::DoubleBuilder*::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1216,1
    - Dst: OGRLineString*::getM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - poLS
    - poPointBuilder
    - poXBuilder
    - poYBuilder
    - poZBuilder
    - poMBuilder
    argTypes:
    - OGRLineString*
    - PointBuilderType*
    - arrow::DoubleBuilder*
    - arrow::DoubleBuilder*
    - arrow::DoubleBuilder*
    - arrow::DoubleBuilder*
    constantsTouched: []
    func_position:
      end: 1219
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1219
    functionName: GeoArrowLineBuilder
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::getX
    - arrow::DoubleBuilder*::Append
    - PointBuilderType*::Append
    - OGR_ARROW_RETURN_OGRERR_NOT_OK
    - OGRLineString*::getNumPoints
    - OGRLineString*::getM
    - OGRLineString*::getZ
    - OGRLineString*::getY
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GeoArrowLineBuilder(const OGRLineString *poLS,\n                                  PointBuilderType
      *poPointBuilder,\n                                  arrow::DoubleBuilder *poXBuilder,\n
      \                                 arrow::DoubleBuilder *poYBuilder,\n                                  arrow::DoubleBuilder
      *poZBuilder,\n                                  arrow::DoubleBuilder *poMBuilder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1229,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1231,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1238,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1240,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1241,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1245,1
    - Dst: static_cast<OGREnvelope *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1245,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1246,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1248,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1255,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1256,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1257,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1258,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1259,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1260,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1261,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1262,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1263,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1264,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1265,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1266,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1267,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1268,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1272,1
    - Dst: AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1273,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1281,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1286,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1287,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1287,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1288,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1289,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1290,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1290,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1291,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1292,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1292,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1293,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1295,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1295,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1296,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1298,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1298,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1299,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1303,1
    - Dst: arrow::ArrayBuilder*::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1303,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1314,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1314,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1316,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1319,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1320,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1321,1
    - Dst: arrow::ArrayBuilder*::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1321,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1332,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1337,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1341,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1341,1
    - Dst: std::unique_ptr::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1342,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1343,1
    - Dst: FixupGeometryBeforeWriting
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1345,1
    - Dst: OGRGeometry*::WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1346,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1349,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1350,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1351,1
    - Dst: static_cast<arrow::BinaryBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1352,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1353,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1354,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1358,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1361,1
    - Dst: arrow::ArrayBuilder*::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1361,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1377,1
    - Dst: static_cast<arrow::StringBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1378,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1379,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1385,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1387,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1388,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1388,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1389,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1390,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1393,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1393,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1394,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1395,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1395,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1396,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1398,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1398,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1399,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1401,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1401,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1402,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1406,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1407,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1407,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1408,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1409,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1409,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1411,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1412,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1412,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1414,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1415,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1415,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1445,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1447,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1448,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1449,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1449,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1453,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1453,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1454,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1455,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1455,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1456,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1460,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1461,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1461,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1462,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1463,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1463,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1467,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1467,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1468,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1469,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1473,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1473,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1474,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1475,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1482,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1483,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1484,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1485,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1486,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1487,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1489,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1489,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1490,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1490,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1499,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1500,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1501,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1502,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1503,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1505,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1505,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1506,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1507,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1514,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1516,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1517,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1518,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1519,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1520,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1521,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1522,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1523,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1523,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1526,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1526,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1527,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1527,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1537,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1539,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1540,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1541,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1542,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1543,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1544,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1546,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1546,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1549,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1549,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1550,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1551,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1559,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1560,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1561,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1562,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1563,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1564,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1565,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1565,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1568,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1568,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1569,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1570,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1570,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1571,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1572,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1572,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1574,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1575,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1575,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1577,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1578,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1578,1
    - Dst: OGRGeometry*::toMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1585,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1586,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1587,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1588,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1589,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1591,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1591,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1594,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1594,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1595,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1596,1
    - Dst: auto::getX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1596,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1597,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1598,1
    - Dst: auto::getY
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1598,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1600,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1601,1
    - Dst: auto::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1601,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1603,1
    - Dst: Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1604,1
    - Dst: auto::getM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1604,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1611,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1612,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1613,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1614,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1615,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1616,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1617,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1618,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1619,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1619,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1622,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1622,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1623,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1623,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1633,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1634,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1635,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1636,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1637,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1638,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1639,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1641,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1641,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1644,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1644,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1645,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1646,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1654,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1655,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1656,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1657,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1658,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1659,1
    - Dst: static_cast<arrow::FixedSizeListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1660,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1661,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1662,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1663,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1664,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1664,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1667,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1667,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1670,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1670,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1671,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1671,1
    - Dst: OGRGeometry*::toMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1682,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1683,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1684,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1685,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1686,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1687,1
    - Dst: static_cast<arrow::StructBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1688,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1689,1
    - Dst: GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1690,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1692,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1692,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1695,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1695,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1698,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1698,1
    - Dst: OGR_ARROW_PROPAGATE_OGRERR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1699,1
    - Dst: GeoArrowLineBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1699,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1710,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 205
    argCount: 3
    argNames:
    - poGeom
    - iGeomField
    - poBuilder
    argTypes:
    - OGRGeometry*
    - int
    - arrow::ArrayBuilder*
    constantsTouched: []
    func_position:
      end: 1716
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1716
    functionName: OGRArrowWriterLayer::BuildGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - GeoArrowLineBuilder
    - castToFloatUp
    - OGRGeometry*::WkbSize
    - GetGeomFieldDefn
    - OGRGeometry*::toMultiPoint
    - castToFloatDown
    - CPLError
    - OGRGeometry*::clone
    - static_cast<arrow::StringBuilder *>
    - OGRGeometry*::toMultiPolygon
    - insert
    - static_cast<arrow::DoubleBuilder *>
    - static_cast<arrow::ListBuilder *>
    - OGRGeometry*::Is3D
    - std::unique_ptr::reset
    - wkbFlatten
    - resize
    - static_cast<arrow::BinaryBuilder *>
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - auto::getZ
    - static_cast<int>
    - OGRGeometry*::exportToWkb
    - static_cast<arrow::StructBuilder *>
    - GET_XYZM_STRUCT_FIELD_BUILDERS_FROM
    - static_cast<OGREnvelope *>
    - CPLAssert
    - auto::Append
    - std::unique_ptr::setMeasured
    - cpl::quiet_NaN
    - auto::getM
    - OGR_GT_HasM
    - OGRGeometry*::getEnvelope
    - std::unique_ptr::get
    - data
    - auto::value_builder
    - size
    - OGRGeometry*::toLineString
    - auto::getX
    - AppendNull
    - OGRGeometryTypeToName
    - FixupGeometryBeforeWriting
    - OGR_ARROW_PROPAGATE_OGRERR
    - OGRGeometry*::exportToWkt
    - OGR_ARROW_RETURN_OGRERR_NOT_OK
    - OGRGeometry*::toPoint
    - OGRGeometry*::toPolygon
    - auto::getY
    - Append
    - arrow::ArrayBuilder*::AppendNull
    - Merge
    - static_cast<arrow::FixedSizeListBuilder *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowWriterLayer::BuildGeometry(OGRGeometry *poGeom,\n                                                 int
      iGeomField,\n                                                 arrow::ArrayBuilder
      *poBuilder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1726,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1729,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1733,1
    - Dst: OGRArrowWriterLayer::CreateArrayBuilders
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1738,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1746,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1747,1
    - Dst: OGRFeature*::IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1748,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1750,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1752,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1760,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1761,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1762,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1764,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1766,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1773,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1779,1
    - Dst: static_cast<arrow::Int64Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1782,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1782,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1783,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1783,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1790,1
    - Dst: OGRFeature*::IsFieldSetAndNotNullUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1791,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1793,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1793,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1797,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1798,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1799,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1803,1
    - Dst: static_cast<arrow::BooleanBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1804,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1805,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1807,1
    - Dst: static_cast<arrow::Int16Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1808,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1809,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1810,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1812,1
    - Dst: static_cast<arrow::Int32Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1813,1
    - Dst: OGRFeature*::GetFieldAsIntegerUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1814,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1818,1
    - Dst: static_cast<arrow::Int64Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1819,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1820,1
    - Dst: OGRFeature*::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1821,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1826,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1826,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1828,1
    - Dst: arrow::Decimal128::FromReal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1830,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1831,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1832,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1833,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1835,1
    - Dst: static_cast<arrow::Decimal128Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1836,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1841,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1843,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1844,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1845,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1845,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1848,1
    - Dst: arrow::Decimal256::FromReal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1850,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1851,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1852,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1853,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1855,1
    - Dst: static_cast<arrow::Decimal256Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1856,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1861,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1863,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1864,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1865,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1865,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1870,1
    - Dst: static_cast<arrow::FloatBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1871,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1872,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1876,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1877,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1885,1
    - Dst: static_cast<arrow::StringBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1886,1
    - Dst: OGRFeature*::GetFieldAsStringUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1887,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1893,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1894,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1896,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1898,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1901,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1902,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1903,1
    - Dst: auto::AppendNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1903,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1907,1
    - Dst: static_cast<arrow::FixedSizeBinaryBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1908,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1914,1
    - Dst: static_cast<arrow::BinaryBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1915,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1923,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1926,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1926,1
    - Dst: static_cast<arrow::BooleanBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1927,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1928,1
    - Dst: OGRFeature*::GetFieldAsIntegerList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1931,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1933,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1934,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1938,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1938,1
    - Dst: static_cast<arrow::Int16Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1939,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1940,1
    - Dst: OGRFeature*::GetFieldAsIntegerList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1943,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1945,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1945,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1946,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1950,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1950,1
    - Dst: static_cast<arrow::Int32Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1951,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1952,1
    - Dst: OGRFeature*::GetFieldAsIntegerList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1955,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1957,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1958,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1966,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1967,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1967,1
    - Dst: static_cast<arrow::Int64Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1968,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1969,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1972,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1974,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1974,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1975,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1982,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1985,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1985,1
    - Dst: static_cast<arrow::FloatBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1986,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1987,1
    - Dst: OGRFeature*::GetFieldAsDoubleList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1990,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1992,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1992,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1993,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1997,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1997,1
    - Dst: static_cast<arrow::DoubleBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1998,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:1999,1
    - Dst: OGRFeature*::GetFieldAsDoubleList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2002,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2004,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2005,1
    - Dst: static_cast<arrow::ListBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2014,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2015,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2015,1
    - Dst: static_cast<arrow::StringBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2016,1
    - Dst: auto::value_builder
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2017,1
    - Dst: OGRFeature*::GetFieldAsStringList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2018,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2020,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2021,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2030,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2033,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2037,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2038,1
    - Dst: static_cast<arrow::Date32Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2039,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2040,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2049,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2052,1
    - Dst: static_cast<arrow::Time32Builder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2053,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2054,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2055,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2064,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2067,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2074,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2075,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2090,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2094,1
    - Dst: OGR_ARROW_RETURN_OGRERR_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2104,1
    - Dst: static_cast<arrow::TimestampBuilder *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2105,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2106,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2107,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2116,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2117,1
    - Dst: OGRArrowWriterLayer::BuildGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2118,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2125,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2125,1
    - Dst: OGRArrowWriterLayer::FlushFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2127,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 182
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2132
      start: 1722
    functionDepth: 3
    functionLinenumber: 1722
    functionLinenumberEnd: 2132
    functionName: OGRArrowWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsDoubleList
    - auto::IsNullable
    - OGRFeature*::SetFID
    - OGRFeature*::GetFieldAsDateTime
    - arrow::Decimal256::FromReal
    - IsFileWriterCreated
    - GetGeomFieldDefn
    - auto::GetType
    - GetFieldDefn
    - CPLError
    - type
    - OGRFeature*::GetFieldAsIntegerList
    - auto::id
    - static_cast<arrow::StringBuilder *>
    - static_cast<arrow::Date32Builder *>
    - auto::ok
    - auto::GetWidth
    - static_cast<arrow::DoubleBuilder *>
    - static_cast<arrow::TimestampBuilder *>
    - static_cast<arrow::ListBuilder *>
    - OGRFeature*::GetFieldAsStringList
    - OGRFeature*::IsFieldSetAndNotNullUnsafe
    - auto::GetPrecision
    - static_cast<arrow::BooleanBuilder *>
    - static_cast<arrow::Decimal256Builder *>
    - static_cast<arrow::BinaryBuilder *>
    - static_cast<arrow::FixedSizeBinaryBuilder *>
    - static_cast<float>
    - static_cast<int>
    - static_cast<arrow::FloatBuilder *>
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetGeomFieldRef
    - static_cast<arrow::Time32Builder *>
    - get
    - static_cast<arrow::Int16Builder *>
    - static_cast<arrow::Int64Builder *>
    - auto::Append
    - CreateSchema
    - auto::GetNameRef
    - OGRFeature*::GetFieldAsInteger64List
    - static_cast<int16_t>
    - static_cast<int64_t>
    - auto::value_builder
    - static_cast<double>
    - OGRFeature*::GetFieldAsIntegerUnsafe
    - empty
    - fields
    - OGRFeature*::GetFieldAsInteger64Unsafe
    - static_cast<arrow::Decimal128Builder *>
    - static_cast<arrow::Int32Builder *>
    - OGR_ARROW_RETURN_OGRERR_NOT_OK
    - OGRFeature*::GetFieldAsStringUnsafe
    - length
    - auto::GetSubType
    - CPLYMDHMSToUnixTime
    - OGRArrowWriterLayer::CreateArrayBuilders
    - OGRArrowWriterLayer::BuildGeometry
    - arrow::Decimal128::FromReal
    - OGRArrowWriterLayer::FlushFeatures
    - memset
    - auto::AppendNull
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRArrowWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2140,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2140,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2143,1
    - Dst: CreateWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2145,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2146,1
    - Dst: FlushGroup
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2151
    functionName: OGRArrowWriterLayer::FlushFeatures
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 1
    functionsReached:
    - empty
    - IsFileWriterCreated
    - length
    - FlushGroup
    - CreateWriter
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowWriterLayer::FlushFeatures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2164
      start: 2157
    functionDepth: 2
    functionLinenumber: 2157
    functionLinenumberEnd: 2164
    functionName: OGRArrowWriterLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRArrowWriterLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2172,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2175,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2178,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2181,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2188
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2188
    functionName: OGRArrowWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRArrowWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2203,1
    - Dst: Finish
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2206,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2207,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2209,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2211,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2211,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2218,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2220,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2221,1
    - Dst: auto::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2224,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2226,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2227,1
    - Dst: arrow::DictionaryArray::FromArrays
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2229,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2230,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2231,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2233,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2236,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2237,1
    - Dst: postProcessArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2245,1
    - Dst: Finish
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2260,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2261,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2263,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2265,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2265,1
    - Dst: postProcessArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2269,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - postProcessArray
    argTypes:
    - "std::function<bool(const std::shared_ptr<arrow::Field> &,\n                       const
      std::shared_ptr<arrow::Array> &)>"
    constantsTouched: []
    func_position:
      end: 2277
      start: 2194
    functionDepth: 2
    functionLinenumber: 2194
    functionLinenumberEnd: 2277
    functionName: OGRArrowWriterLayer::WriteArrays
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - end
    - arrow::DictionaryArray::FromArrays
    - fields
    - auto::ok
    - auto::message
    - auto::status
    - find
    - postProcessArray
    - Finish
    - GetFieldCount
    - auto::GetType
    - auto::type
    - GetFieldDefn
    - CPLError
    - auto::name
    - auto::GetDomainName
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowWriterLayer::WriteArrays(\n    std::function<bool(const
      std::shared_ptr<arrow::Field> &,\n                       const std::shared_ptr<arrow::Array>
      &)>\n        postProcessArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - nIdx
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 2286
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2286
    functionName: TestBit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TestBit(const uint8_t *pabyData, size_t nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2299,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2302,1
    - Dst: CreateWriter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2304,1
    - Dst: IsFileWriterCreated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2305,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2309,1
    - Dst: OGRArrowWriterLayer::CreateArrayBuilders
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2311,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2326,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2328,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2331,1
    - Dst: OGRParseArrowMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2341,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2342,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2343,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2354,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2358,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2359,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2369,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2373,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2373,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2374,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2376,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2378,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2379,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2385,1
    - Dst: const_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2387,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2387,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2388,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2388,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2390,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2391,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2392,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2395,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2401,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2402,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2405,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2406,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2410,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2412,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2414,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2419,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2456,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2456,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2457,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2457,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2458,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2463,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2463,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2464,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2465,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2469,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2471,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2478,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2479,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2480,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2481,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2513,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2514,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2515,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2516,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2517,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2518,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2519,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2520,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2520,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2522,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2522,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2524,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2524,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2526,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2527,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2528,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2529,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2534,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2534,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2535,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2535,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2536,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2536,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2537,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2537,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2538,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2539,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2542,1
    - Dst: std::array::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2547,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2552,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2554,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2556,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2558,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2567,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2575,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2579,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2581,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2583,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2584,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2589,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2596,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2598,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2600,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2608,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2624,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2626,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2627,1
    - Dst: arrow::ImportSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2630,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2631,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2632,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2634,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2635,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2650,1
    - Dst: static_cast<struct ArrayReleaser *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2658,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2659,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2660,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2661,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2662,1
    - Dst: ArrayReleaser::ArrayReleaser
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2669,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2671,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2673,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2680,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2694,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2697,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2704,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2705,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2707,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2727,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2727,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2729,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2731,1
    - Dst: TestBit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2737,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2738,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2741,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2743,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2748,1
    - Dst: FixupWKBGeometryBeforeWriting
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2751,1
    - Dst: OGRWKBGetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2755,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2757,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2758,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2759,1
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2762,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2766,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2767,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2768,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2769,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2770,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2771,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2772,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2773,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2782,1
    - Dst: OGRArrowWriterLayer::BuildGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2785,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2793,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2794,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2794,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2795,1
    - Dst: castToFloatDown
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2795,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2796,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2796,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2797,1
    - Dst: castToFloatUp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2797,1
    - Dst: OGRArrowWriterLayer::BuildGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2806,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2817,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2819,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2820,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2821,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2822,1
    - Dst: auto::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2829,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2830,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2832,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2834,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2838,1
    - Dst: arrow::ImportRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2843,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2843,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2844,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2846,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2848,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2859,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2862,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2865,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2865,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2866,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2867,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2869,1
    - Dst: auto::column
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2869,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2870,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2871,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2873,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2875,1
    - Dst: arrow::RecordBatch::Make
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2879,1
    - Dst: auto::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2880,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2880,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2881,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2883,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2885,1
    - Dst: writeBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2891,1
    - Dst: auto::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp:2893,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 284
    argCount: 4
    argNames:
    - schema
    - array
    - papszOptions
    - writeBatch
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - CSLConstList
    - std::function<bool(const std::shared_ptr<arrow::RecordBatch> &)>
    constantsTouched: []
    func_position:
      end: 2897
      start: 2292
    functionDepth: 4
    functionLinenumber: 2292
    functionLinenumberEnd: 2897
    functionName: OGRArrowWriterLayer::WriteArrowBatchInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwriterlayer.hpp
    functionUses: 0
    functionsReached:
    - ArrayReleaser::ArrayReleaser
    - std::map::end
    - std::vector::size
    - IsFileWriterCreated
    - std::set::insert
    - auto::status
    - castToFloatUp
    - std::vector::emplace_back
    - auto::message
    - auto::num_rows
    - strcmp
    - struct ArrowArray*::release
    - reserve
    - CPLError
    - std::vector::push_back
    - CreateWriter
    - auto::GetFieldIndex
    - castToFloatDown
    - cpl::contains
    - field
    - OGRParseArrowMetadata
    - auto::end
    - auto::Finish
    - auto::find
    - auto::ok
    - OGRGeometryFactory::createFromWkb
    - insert
    - writeBatch
    - std::move
    - GetGeomFieldIndex
    - static_cast<struct ArrayReleaser *>
    - std::vector::reserve
    - const_cast<void *>
    - resize
    - std::vector::data
    - FixupWKBGeometryBeforeWriting
    - c_str
    - static_cast<int>
    - const_cast<const void **>
    - arrow::RecordBatch::Make
    - std::array::data
    - get
    - static_cast<OGRwkbGeometryType>
    - std::map::find
    - CPLAssert
    - OGRWKBGetBoundingBox
    - CPL_IGNORE_RET_VAL
    - auto::column
    - CreateSchema
    - static_cast<GByte *>
    - TestBit
    - name
    - std::vector::resize
    - data
    - OGRWKBGetGeomType
    - OGRGeometry*::getEnvelope
    - static_cast<size_t>
    - empty
    - arrow::ImportSchema
    - std::vector::back
    - OGRArrowWriterLayer::BuildGeometry
    - OGRArrowWriterLayer::CreateArrayBuilders
    - num_fields
    - arrow::ImportRecordBatch
    - push_back
    - std::map::empty
    - memset
    - Merge
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowWriterLayer::WriteArrowBatchInternal(\n    const struct
      ArrowSchema *schema, struct ArrowArray *array,\n    CSLConstList papszOptions,\n
      \   std::function<bool(const std::shared_ptr<arrow::RecordBatch> &)> writeBatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: OGRArrowWritableFile::OGRArrowWritableFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowWritableFile(const OGRArrowWritableFile &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '&operator=(const OGRArrowWritableFile &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRArrowWritableFile
    signature: OGRArrowWritableFile &operator=(const OGRArrowWritableFile &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: OGRArrowWritableFile::OGRArrowWritableFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowWritableFile(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: ~OGRArrowWritableFile() override
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void ~OGRArrowWritableFile() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudResultLayer::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:53,1
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: OGRArrowWritableFile::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    - OGRAmigoCloudResultLayer::IsOK
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status Close() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:59,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OGRArrowWritableFile::Tell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached:
    - VSIFTellL
    - static_cast<int64_t>
    linkageType: ''
    returnType: arrow::Result<int64_t>
    signature: arrow::Result<int64_t> Tell() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OGRArrowWritableFile::closed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool closed() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:69,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:69,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:69,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:70,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:70,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:71,1
    - Dst: OGRAmigoCloudResultLayer::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:72,1
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - nbytes
    argTypes:
    - void*
    - int64_t
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: OGRArrowWritableFile::Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - OGRAmigoCloudResultLayer::IsOK
    - CPLAssert
    - VSIFWriteL
    - arrow::Status::IOError
    - static_cast<int64_t>
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status Write(const void *data, int64_t nbytes) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowWritableFile::Write
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:78,1
    - Dst: std::shared_ptr<arrow::Buffer>::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:78,1
    - Dst: std::shared_ptr<arrow::Buffer>::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::shared_ptr<arrow::Buffer>
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: OGRArrowWritableFile::Write
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowwritablefile.h
    functionUses: 1
    functionsReached:
    - std::shared_ptr<arrow::Buffer>::size
    - OGRArrowWritableFile::Write
    - std::shared_ptr<arrow::Buffer>::data
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status Write(const std::shared_ptr<arrow::Buffer> &data) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osEnvVarPrefix
    - osQueryParameters
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: VSIArrowFileSystem::VSIArrowFileSystem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VSIArrowFileSystem(const std::string &osEnvVarPrefix,\n                       const
      std::string &osQueryParameters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:68,1
    - Dst: lock
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:73,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:76,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:79,1
    - Dst: auto::AskToClose
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:80,1
    - Dst: CPLSleep
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: VSIArrowFileSystem::AskToClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - auto::AskToClose
    - c_str
    - CPLSleep
    - CPLDebug
    - expired
    - lock
    linkageType: ''
    returnType: void
    signature: void AskToClose()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: VSIArrowFileSystem::type_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string type_name() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const VSIArrowFileSystem *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - arrow::fs::FileSystem
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: VSIArrowFileSystem::Equals
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const VSIArrowFileSystem *>
    linkageType: ''
    returnType: bool
    signature: bool Equals(const arrow::fs::FileSystem &other) const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:110,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:110,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:112,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:114,1
    - Dst: arrow::fs::FileInfo::set_size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 125
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 125
    functionName: VSIArrowFileSystem::GetFileInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::fs::FileInfo::set_size
    - VSIStatL
    - VSI_ISREG
    - VSI_ISDIR
    - std::string::c_str
    linkageType: ''
    returnType: arrow::Result<arrow::fs::FileInfo>
    signature: arrow::Result<arrow::fs::FileInfo> GetFileInfo(const std::string &path)
      override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIOpenDir
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:131,1
    - Dst: arrow::fs::FileSelector::base_dir::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:131,1
    - Dst: VSIGetNextDirEntry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:141,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:144,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:145,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:152,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:152,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:157,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:159,1
    - Dst: arrow::fs::FileInfo::set_size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:165,1
    - Dst: arrow::fs::FileInfoVector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:167,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:167,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:173,1
    - Dst: arrow::fs::FileInfoVector::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:173,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:176,1
    - Dst: arrow::fs::FileInfoVector::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:176,1
    - Dst: VSICloseDir
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:180,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - select
    argTypes:
    - arrow::fs::FileSelector
    constantsTouched: []
    func_position:
      end: 182
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 182
    functionName: VSIArrowFileSystem::GetFileInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::fs::FileInfo::set_size
    - static_cast<int>
    - VSIStatL
    - VSI_ISREG
    - VSI_ISDIR
    - VSIGetNextDirEntry
    - EQUAL
    - arrow::fs::FileInfoVector::push_back
    - arrow::fs::FileSelector::base_dir::c_str
    - arrow::fs::FileInfoVector::size
    - std::move
    - VSICloseDir
    - std::string::c_str
    - VSIOpenDir
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: arrow::Result<arrow::fs::FileInfoVector>
    signature: arrow::Result<arrow::fs::FileInfoVector> GetFileInfo(const arrow::fs::FileSelector
      &select) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: VSIArrowFileSystem::CreateDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: "arrow::Status CreateDir(const std::string & /*path*/,\n                            bool
      /*recursive*/ = true) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: VSIArrowFileSystem::DeleteDir
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status DeleteDir(const std::string & /*path*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: VSIArrowFileSystem::DeleteRootDirContents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status DeleteRootDirContents() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: VSIArrowFileSystem::DeleteFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: arrow::Status DeleteFile(const std::string & /*path*/) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: VSIArrowFileSystem::Move
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: "arrow::Status Move(const std::string & /*src*/,\n                       const
      std::string & /*dest*/) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: VSIArrowFileSystem::CopyFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Status
    signature: "arrow::Status CopyFile(const std::string & /*src*/,\n                           const
      std::string & /*dest*/) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIArrowFileSystem::OpenInputFile
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: VSIArrowFileSystem::OpenInputStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - VSIArrowFileSystem::OpenInputFile
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::io::InputStream>>
    signature: arrow::Result<std::shared_ptr<arrow::io::InputStream>> OpenInputStream(const
      std::string &path) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:241,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:246,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:246,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:246,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:247,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:247,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:247,1
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:249,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:252,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:252,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: VSIArrowFileSystem::OpenInputFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 1
    functionsReached:
    - CPLDebugOnly
    - c_str
    - std::make_shared<OGRArrowRandomAccessFile>
    - VSIFOpenL
    - VSIVirtualHandleUniquePtr
    - std::move
    - arrow::Status::IOError
    - std::string::c_str
    - emplace_back
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::io::RandomAccessFile>>
    signature: arrow::Result<std::shared_ptr<arrow::io::RandomAccessFile>> OpenInputFile(const
      std::string &path) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: VSIArrowFileSystem::OpenOutputStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::io::OutputStream>>
    signature: "arrow::Result<std::shared_ptr<arrow::io::OutputStream>> OpenOutputStream(const
      std::string & /*path*/,\n                     const std::shared_ptr<const arrow::KeyValueMetadata>\n
      \                        & /* metadata */) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Status::IOError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: VSIArrowFileSystem::OpenAppendStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/vsiarrowfilesystem.hpp
    functionUses: 0
    functionsReached:
    - arrow::Status::IOError
    linkageType: ''
    returnType: arrow::Result<std::shared_ptr<arrow::io::OutputStream>>
    signature: "arrow::Result<std::shared_ptr<arrow::io::OutputStream>> OpenAppendStream(const
      std::string & /*path*/,\n                     const std::shared_ptr<const arrow::KeyValueMetadata>\n
      \                        & /* metadata */) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - eEncoding
    argTypes:
    - OGRArrowGeomEncoding
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: OGRArrowIsGeoArrowStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowIsGeoArrowStruct(OGRArrowGeomEncoding eEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: CanRunNonForcedGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanRunNonForcedGetExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: IncrFeatureIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncrFeatureIdx()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 326
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 27
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: GDALPamDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    linkageType: ''
    returnType: class OGRArrowDataset
    signature: class OGRArrowDataset GDALPamDataset
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: GetMemoryPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: arrow::MemoryPool
    signature: arrow::MemoryPool *GetMemoryPool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: GetSharedMemoryPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<arrow::MemoryPool>
    signature: std::shared_ptr<arrow::MemoryPool> &GetSharedMemoryPool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:381,1
    - Dst: OGRArrowWriterLayer
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:491,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 547
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ogr_arrow.h
    functionUses: 0
    functionsReached:
    - OGRArrowWriterLayer
    - std::string::c_str
    linkageType: ''
    returnType: class OGRArrowWriterLayer
    signature: class OGRArrowWriterLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowDataset*::GetMemoryPool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:44,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:46,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:47,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:48,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poDS
    - pszLayerName
    argTypes:
    - OGRArrowDataset*
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: OGRArrowLayer::OGRArrowLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - OGRArrowDataset*::GetMemoryPool
    linkageType: ''
    returnType: void
    signature: "void OGRArrowLayer::OGRArrowLayer(OGRArrowDataset *poDS,\n                                    const
      char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:59,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:61,1
    - Dst: bytes_allocated
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:62,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:63,1
    - Dst: max_memory
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:64,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: OGRArrowLayer::~OGRArrowLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - release
    - max_memory
    - CPLDebug
    - bytes_allocated
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::~OGRArrowLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::KeyValueMetadata*::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:77,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:78,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:79,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:79,1
    - Dst: arrow::KeyValueMetadata*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:81,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:82,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:84,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:84,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:85,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:86,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:87,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:89,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:91,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:93,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:94,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:96,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:98,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:99,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:100,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:101,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:102,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:104,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:106,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:106,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:107,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:108,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:110,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:111,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:115,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:118,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:121,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:121,1
    - Dst: OGRFieldDefn::GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:122,1
    - Dst: static_cast<OGRFieldSubType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:123,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:126,1
    - Dst: static_cast<OGRFieldSubType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:127,1
    - Dst: auto::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:132,1
    - Dst: GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:132,1
    - Dst: auto::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:133,1
    - Dst: GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:134,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:137,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:138,1
    - Dst: auto::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:139,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:140,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:142,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:143,1
    - Dst: auto::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:144,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - kv_metadata
    argTypes:
    - arrow::KeyValueMetadata*
    constantsTouched: []
    func_position:
      end: 154
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 154
    functionName: OGRArrowLayer::LoadGDALSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - auto::SetType
    - GetString
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - OGRFieldDefn::GetFieldTypeName
    - arrow::KeyValueMetadata*::Contains
    - auto::SetPrecision
    - std::make_unique<OGRFieldDefn>
    - CPLGetConfigOption
    - auto::c_str
    - arrow::KeyValueMetadata*::Get
    - auto::SetSubType
    - auto::ok
    - std::move
    - GetInteger
    - GetName
    - auto::GetChildren
    - CPLJSONDocument::LoadMemory
    - c_str
    - CPLTestBool
    - auto::GetString
    - static_cast<int>
    - OGRFieldDefn::GetFieldSubTypeName
    - auto::SetComment
    - auto::empty
    - static_cast<OGRFieldSubType>
    - auto::IsValid
    - auto::SetAlternativeName
    - auto::SetWidth
    - auto::GetObj
    - static_cast<OGRFieldType>
    - EQUAL
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::map<std::string, std::unique_ptr<OGRFieldDefn>>
    signature: std::map<std::string, std::unique_ptr<OGRFieldDefn>> OGRArrowLayer::LoadGDALSchema(const
      arrow::KeyValueMetadata *kv_metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::KeyValueMetadata*::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:163,1
    - Dst: arrow::KeyValueMetadata*::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:165,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:166,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:168,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:169,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:171,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:172,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:174,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:174,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:175,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:178,1
    - Dst: Format
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:180,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:182,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:182,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:183,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:185,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:185,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:186,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:190,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:190,1
    - Dst: SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:191,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:191,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:192,1
    - Dst: GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:196,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:198,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:200,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:200,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:201,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:202,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - kv_metadata
    argTypes:
    - arrow::KeyValueMetadata*
    constantsTouched: []
    func_position:
      end: 210
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 210
    functionName: OGRArrowLayer::LoadGDALMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - arrow::KeyValueMetadata*::Get
    - CPLJSONDocument::LoadMemory
    - ToString
    - auto::ok
    - CSLAddString
    - CSLDestroy
    - GetChildren
    - SetMetadataItem
    - CPLJSONDocument::GetRoot
    - GetType
    - arrow::KeyValueMetadata*::Contains
    - SetMetadata
    - CPLJSONDocument::CPLJSONDocument
    - STARTS_WITH
    - Format
    - GetName
    - auto::GetChildren
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::LoadGDALMetadata(const arrow::KeyValueMetadata
      *kv_metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - typeId
    argTypes:
    - arrow::Type::type
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: OGRArrowLayer::IsIntegerArrowType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowLayer::IsIntegerArrowType(arrow::Type::type typeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:231,1
    - Dst: OGRArrowLayer::IsIntegerArrowType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:232,1
    - Dst: OGRArrowLayer::IsHandledMapType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:249,1
    - Dst: std::static_pointer_cast<arrow::MapType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:250,1
    - Dst: OGRArrowLayer::IsHandledListType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:254,1
    - Dst: std::static_pointer_cast<arrow::BaseListType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:255,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 1
    argNames:
    - valueType
    argTypes:
    - std::shared_ptr<arrow::DataType>
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: OGRArrowLayer::IsHandledListOrMapType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - std::static_pointer_cast<arrow::MapType>
    - OGRArrowLayer::IsHandledListType
    - OGRArrowLayer::IsIntegerArrowType
    - OGRArrowLayer::IsHandledMapType
    - std::shared_ptr<arrow::DataType>::id
    - std::static_pointer_cast<arrow::BaseListType>
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::IsHandledListOrMapType(\n    const std::shared_ptr<arrow::DataType>
      &valueType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowLayer::IsHandledListOrMapType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:265,1
    - Dst: std::shared_ptr<arrow::BaseListType>::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listType
    argTypes:
    - std::shared_ptr<arrow::BaseListType>
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: OGRArrowLayer::IsHandledListType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<arrow::BaseListType>::value_type
    - OGRArrowLayer::IsHandledListOrMapType
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::IsHandledListType(\n    const std::shared_ptr<arrow::BaseListType>
      &listType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::MapType>::key_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:275,1
    - Dst: OGRArrowLayer::IsHandledListOrMapType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:281,1
    - Dst: std::shared_ptr<arrow::MapType>::item_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mapType
    argTypes:
    - std::shared_ptr<arrow::MapType>
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: OGRArrowLayer::IsHandledMapType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<arrow::MapType>::item_type
    - OGRArrowLayer::IsHandledListOrMapType
    - std::shared_ptr<arrow::MapType>::key_type
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowLayer::IsHandledMapType(const std::shared_ptr<arrow::MapType>
      &mapType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:300,1
    - Dst: cpl::down_cast<arrow::ExtensionType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:302,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:302,1
    - Dst: auto::extension_name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:303,1
    - Dst: auto::storage_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:304,1
    - Dst: std::shared_ptr<arrow::Field>::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:306,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:308,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:309,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:315,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:318,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:318,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:320,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:320,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:321,1
    - Dst: std::shared_ptr::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:324,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:392,1
    - Dst: std::static_pointer_cast<arrow::FixedSizeBinaryType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:393,1
    - Dst: static_cast<arrow::TimestampType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:407,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:407,1
    - Dst: auto::timezone
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:409,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:411,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:413,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:413,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:416,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:416,1
    - Dst: OGRFieldDefn::SetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:419,1
    - Dst: std::static_pointer_cast<arrow::DecimalType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:443,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:445,1
    - Dst: auto::precision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:445,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:446,1
    - Dst: auto::scale
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:446,1
    - Dst: std::static_pointer_cast<arrow::BaseListType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:454,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:455,1
    - Dst: OGRArrowLayer::IsHandledListType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:509,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:511,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:512,1
    - Dst: std::static_pointer_cast<arrow::MapType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:523,1
    - Dst: OGRArrowLayer::IsHandledMapType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:524,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:532,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:534,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:534,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:541,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:564,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:566,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:566,1
    - Dst: std::map<std::string, std::unique_ptr<OGRFieldDefn>>::find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:574,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:574,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:575,1
    - Dst: std::map<std::string, std::unique_ptr<OGRFieldDefn>>::end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:576,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:579,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:583,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:585,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:587,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:588,1
    - Dst: OGR_GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:593,1
    - Dst: OGR_GetFieldSubTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:594,1
    - Dst: auto::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:594,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:599,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:599,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:603,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:604,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:604,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:606,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:607,1
    - Dst: auto::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:607,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:608,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:609,1
    - Dst: auto::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:609,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:610,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:611,1
    - Dst: auto::GetAlternativeNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:612,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:613,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:614,1
    - Dst: auto::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:614,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:616,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:617,1
    - Dst: std::shared_ptr<arrow::Field>::nullable
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:617,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:618,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:619,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 223
    argCount: 7
    argNames:
    - typeIn
    - field
    - oField
    - eType
    - eSubType
    - path
    - oMapFieldNameToGDALSchemaFieldDefn
    argTypes:
    - std::shared_ptr<arrow::DataType>
    - std::shared_ptr<arrow::Field>
    - OGRFieldDefn
    - OGRFieldType
    - OGRFieldSubType
    - std::vector<int>
    - std::map<std::string, std::unique_ptr<OGRFieldDefn>>
    constantsTouched: []
    func_position:
      end: 623
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 623
    functionName: OGRArrowLayer::MapArrowTypeToOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - auto::storage_type
    - auto::GetType
    - CPLDebug
    - auto::extension_name
    - auto::GetAlternativeNameRef
    - OGRFieldDefn::SetNullable
    - std::static_pointer_cast<arrow::FixedSizeBinaryType>
    - CPLError
    - std::shared_ptr::ToString
    - std::string::c_str
    - auto::c_str
    - std::string::empty
    - OGRFieldDefn::SetComment
    - std::shared_ptr<arrow::Field>::name
    - auto::ok
    - std::static_pointer_cast<arrow::DecimalType>
    - auto::timezone
    - OGRArrowLayer::IsHandledMapType
    - static_cast<arrow::TimestampType *>
    - auto::GetWidth
    - std::shared_ptr::id
    - std::map<std::string, std::unique_ptr<OGRFieldDefn>>::find
    - AddFieldDefn
    - auto::GetPrecision
    - OGR_GetFieldTypeName
    - OGRFieldDefn::SetAlternativeName
    - std::shared_ptr<arrow::Field>::nullable
    - std::static_pointer_cast<arrow::MapType>
    - OGRArrowLayer::IsHandledListType
    - auto::value_type
    - auto::GetComment
    - cpl::down_cast<arrow::ExtensionType *>
    - auto::Get
    - auto::empty
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - std::static_pointer_cast<arrow::BaseListType>
    - auto::precision
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetTZFlag
    - OGRFieldDefn::SetPrecision
    - auto::scale
    - std::map<std::string, std::unique_ptr<OGRFieldDefn>>::end
    - OGRFieldDefn::SetType
    - auto::GetSubType
    - push_back
    - std::shared_ptr<arrow::Field>::metadata
    - std::shared_ptr::get
    - OGR_GetFieldSubTypeName
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::MapArrowTypeToOGR(\n    const std::shared_ptr<arrow::DataType>
      &typeIn,\n    const std::shared_ptr<arrow::Field> &field, OGRFieldDefn &oField,\n
      \   OGRFieldType &eType, OGRFieldSubType &eSubType,\n    const std::vector<int>
      &path,\n    const std::map<std::string, std::unique_ptr<OGRFieldDefn>>\n        &oMapFieldNameToGDALSchemaFieldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:634,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:639,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:640,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:640,1
    - Dst: std::static_pointer_cast<arrow::DictionaryType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:643,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:643,1
    - Dst: auto::index_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:644,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:645,1
    - Dst: OGRArrowLayer::IsIntegerArrowType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:646,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:646,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:648,1
    - Dst: RegisterDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:649,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:650,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:651,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:652,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:660,1
    - Dst: std::shared_ptr<arrow::Field>::Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:662,1
    - Dst: auto::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:665,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:665,1
    - Dst: auto::back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:668,1
    - Dst: OGRArrowLayer::CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:669,1
    - Dst: OGRArrowLayer::MapArrowTypeToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - field
    - path
    - oMapFieldNameToGDALSchemaFieldDefn
    argTypes:
    - std::shared_ptr<arrow::Field>
    - std::vector<int>
    - std::map<std::string, std::unique_ptr<OGRFieldDefn>>
    constantsTouched: []
    func_position:
      end: 678
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 678
    functionName: OGRArrowLayer::CreateFieldFromSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - OGRArrowLayer::IsIntegerArrowType
    - std::shared_ptr<arrow::Field>::Flatten
    - auto::size
    - auto::id
    - auto::back
    - std::shared_ptr<arrow::Field>::name
    - OGRArrowLayer::CreateFieldFromSchema
    - auto::index_type
    - std::move
    - std::vector<int>::size
    - static_cast<int>
    - auto::value_type
    - std::static_pointer_cast<arrow::DictionaryType>
    - RegisterDomainName
    - GetFieldCount
    - std::shared_ptr<arrow::Field>::type
    - OGRArrowLayer::MapArrowTypeToOGR
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: "void OGRArrowLayer::CreateFieldFromSchema(\n    const std::shared_ptr<arrow::Field>
      &field, const std::vector<int> &path,\n    const std::map<std::string, std::unique_ptr<OGRFieldDefn>>\n
      \       &oMapFieldNameToGDALSchemaFieldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::RecordBatch>::column
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:688,1
    - Dst: std::static_pointer_cast<arrow::DictionaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:689,1
    - Dst: auto::dictionary
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:690,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:691,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:691,1
    - Dst: auto::dict_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:693,1
    - Dst: std::static_pointer_cast<arrow::StringArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:697,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:699,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:701,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:707,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:707,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:707,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:711,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:715,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:715,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:717,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:720,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:720,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:721,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:721,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:722,1
    - Dst: std::make_unique<OGRCodedFieldDomain>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:725,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:726,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - osDomainName
    - poBatch
    - iCol
    argTypes:
    - std::string
    - std::shared_ptr<arrow::RecordBatch>
    - int
    constantsTouched: []
    func_position:
      end: 727
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 727
    functionName: OGRArrowLayer::BuildDomainFromBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::IsNull
    - std::vector::emplace_back
    - CPLError
    - std::static_pointer_cast<arrow::DictionaryArray>
    - CPLStrdup
    - std::move
    - std::vector::reserve
    - std::shared_ptr<arrow::RecordBatch>::column
    - static_cast<int>
    - auto::GetString
    - std::static_pointer_cast<arrow::StringArray>
    - auto::dictionary
    - CPLSPrintf
    - CPLAssert
    - static_cast<size_t>
    - auto::length
    - auto::type_id
    - auto::dict_type
    - std::string
    - std::make_unique<OGRCodedFieldDomain>
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDomain>
    signature: "std::unique_ptr<OGRFieldDomain> OGRArrowLayer::BuildDomainFromBatch(\n
      \   const std::string &osDomainName,\n    const std::shared_ptr<arrow::RecordBatch>
      &poBatch, int iCol) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::RecordBatch>::column
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:737,1
    - Dst: std::dynamic_pointer_cast<arrow::BinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:740,1
    - Dst: std::dynamic_pointer_cast<arrow::LargeBinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:744,1
    - Dst: std::dynamic_pointer_cast<arrow::StringArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:748,1
    - Dst: std::dynamic_pointer_cast<arrow::LargeStringArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:752,1
    - Dst: std::shared_ptr<arrow::RecordBatch>::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:754,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:756,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:766,1
    - Dst: OGRReadWKBGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:777,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:783,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:784,1
    - Dst: OGRReadWKTGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:786,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:786,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:792,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:793,1
    - Dst: OGRReadWKTGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:795,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:795,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:803,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:803,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:805,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:806,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:808,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:810,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:810,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:811,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:811,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:813,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:814,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:816,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:817,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:819,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:821,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:821,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:822,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:822,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:824,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:825,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:830,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:832,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:832,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:833,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:833,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 44
    argCount: 4
    argNames:
    - poBatch
    - iGeomCol
    - iBatchCol
    - eGeomType
    argTypes:
    - std::shared_ptr<arrow::RecordBatch>
    - int
    - int
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 838
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 838
    functionName: OGRArrowLayer::ComputeGeometryColumnTypeProcessBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - std::dynamic_pointer_cast<arrow::StringArray>
    - OGR_GT_SetModifier
    - std::shared_ptr<arrow::RecordBatch>::num_rows
    - std::shared_ptr<arrow::RecordBatch>::column
    - auto::IsNull
    - auto::GetString
    - OGR_GT_HasM
    - std::dynamic_pointer_cast<arrow::LargeStringArray>
    - OGR_GT_HasZ
    - auto::empty
    - std::dynamic_pointer_cast<arrow::BinaryArray>
    - std::dynamic_pointer_cast<arrow::LargeBinaryArray>
    - OGRReadWKBGeometryType
    - wkbFlatten
    - OGRReadWKTGeometryType
    - auto::c_str
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: "OGRwkbGeometryType OGRArrowLayer::ComputeGeometryColumnTypeProcessBatch(\n
      \   const std::shared_ptr<arrow::RecordBatch> &poBatch, int iGeomCol,\n    int
      iBatchCol, OGRwkbGeometryType eGeomType) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:847,1
    - Dst: std::static_pointer_cast<arrow::FixedSizeListType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:849,1
    - Dst: auto::value_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:851,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - type
    - bHasZOut
    - bHasMOut
    argTypes:
    - std::shared_ptr<arrow::DataType>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 880
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 880
    functionName: IsPointType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::value_field
    - auto::value_type
    - std::shared_ptr<arrow::DataType>::id
    - std::static_pointer_cast<arrow::FixedSizeListType>
    linkageType: ''
    returnType: bool
    signature: "bool IsPointType(const std::shared_ptr<arrow::DataType> &type,\n                        bool
      &bHasZOut, bool &bHasMOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:889,1
    - Dst: std::static_pointer_cast<arrow::ListType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:891,1
    - Dst: IsPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:893,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:893,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:894,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - type
    - nDepth
    - bHasZOut
    - bHasMOut
    argTypes:
    - std::shared_ptr<arrow::DataType>
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 896
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 896
    functionName: IsListOfPointType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - auto::value_type
    - std::static_pointer_cast<arrow::ListType>
    - std::shared_ptr<arrow::DataType>::id
    - IsListOfPointType
    - IsPointType
    linkageType: ''
    returnType: bool
    signature: "bool IsListOfPointType(const std::shared_ptr<arrow::DataType> &type,\n
      \                             int nDepth, bool &bHasZOut, bool &bHasMOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:905,1
    - Dst: std::static_pointer_cast<arrow::StructType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:907,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:913,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:914,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:915,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:917,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:918,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:919,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:923,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:924,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:926,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:931,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:932,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:933,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:938,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - type
    - bHasZOut
    - bHasMOut
    argTypes:
    - std::shared_ptr<arrow::DataType>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 947
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 947
    functionName: IsPointStructType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - std::static_pointer_cast<arrow::StructType>
    - auto::field
    - auto::type
    - std::shared_ptr<arrow::DataType>::id
    - auto::name
    linkageType: ''
    returnType: bool
    signature: "bool IsPointStructType(const std::shared_ptr<arrow::DataType> &type,\n
      \                             bool &bHasZOut, bool &bHasMOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:957,1
    - Dst: std::static_pointer_cast<arrow::ListType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:959,1
    - Dst: IsPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:961,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:961,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:962,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - type
    - nDepth
    - bHasZOut
    - bHasMOut
    argTypes:
    - std::shared_ptr<arrow::DataType>
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 964
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 964
    functionName: IsListOfPointStructType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - auto::value_type
    - std::static_pointer_cast<arrow::ListType>
    - IsPointStructType
    - std::shared_ptr<arrow::DataType>::id
    - IsListOfPointStructType
    linkageType: ''
    returnType: bool
    signature: "bool IsListOfPointStructType(const std::shared_ptr<arrow::DataType>
      &type,\n                        int nDepth, bool &bHasZOut, bool &bHasMOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:975,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:976,1
    - Dst: std::shared_ptr::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:977,1
    - Dst: cpl::down_cast<arrow::ExtensionType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:982,1
    - Dst: std::shared_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:982,1
    - Dst: auto::storage_type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:983,1
    - Dst: std::shared_ptr::id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:984,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:999,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1002,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1002,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1019,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1022,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1022,1
    - Dst: IsPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1033,1
    - Dst: IsPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1037,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1044,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1048,1
    - Dst: std::shared_ptr::name
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1048,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1051,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1051,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1052,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1058,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1063,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1070,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1075,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1075,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1078,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1079,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1079,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1085,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1090,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1097,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1102,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1102,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1105,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1105,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1106,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1112,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1124,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1129,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1129,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1132,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1133,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1133,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1140,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1152,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1157,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1157,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1161,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1162,1
    - Dst: IsListOfPointType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1169,1
    - Dst: IsListOfPointStructType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1174,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1181,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1188,1
    - Dst: std::shared_ptr::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1188,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1191,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1192,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1192,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1198,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1201,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1201,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 5
    argNames:
    - field
    - osEncoding
    - bWarnIfUnknownEncoding
    - eGeomTypeOut
    - eOGRArrowGeomEncodingOut
    argTypes:
    - std::shared_ptr<arrow::Field>
    - std::string
    - bool
    - OGRwkbGeometryType
    - OGRArrowGeomEncoding
    constantsTouched: []
    func_position:
      end: 1204
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 1204
    functionName: OGRArrowLayer::IsValidGeometryEncoding
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - OGR_GT_SetModifier
    - std::shared_ptr<arrow::Field>::name
    - std::shared_ptr::name
    - static_cast<int>
    - cpl::down_cast<arrow::ExtensionType *>
    - auto::storage_type
    - IsPointStructType
    - std::shared_ptr::id
    - std::shared_ptr<arrow::Field>::type
    - IsPointType
    - IsListOfPointType
    - CPLError
    - IsListOfPointStructType
    - std::shared_ptr::ToString
    - std::string::c_str
    - std::shared_ptr::get
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::IsValidGeometryEncoding(\n    const std::shared_ptr<arrow::Field>
      &field, const std::string &osEncoding,\n    bool bWarnIfUnknownEncoding, OGRwkbGeometryType
      &eGeomTypeOut,\n    OGRArrowGeomEncoding &eOGRArrowGeomEncodingOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRReadWKTGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1214,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1214,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1215,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1217,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osType
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1220
      start: 1210
    functionDepth: 4
    functionLinenumber: 1210
    functionLinenumberEnd: 1220
    functionName: OGRArrowLayer::GetGeometryTypeFromString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - OGRReadWKTGeometryType
    - std::string::c_str
    - CPLDebug
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRArrowLayer::GetGeometryTypeFromString(const std::string
      &osType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1232,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1236,1
    - Dst: static_cast<const arrow::BooleanArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1237,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1242,1
    - Dst: static_cast<const arrow::UInt8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1243,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1248,1
    - Dst: static_cast<const arrow::Int8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1249,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1254,1
    - Dst: static_cast<const arrow::UInt16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1255,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1260,1
    - Dst: static_cast<const arrow::Int16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1261,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1266,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1267,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1272,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1272,1
    - Dst: static_cast<const arrow::UInt32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1273,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1278,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1278,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1279,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1284,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1284,1
    - Dst: static_cast<const arrow::UInt64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1285,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1294,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1295,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1300,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1301,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1306,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1307,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1314,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1314,1
    - Dst: static_cast<const arrow::Decimal32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1314,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1321,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1321,1
    - Dst: static_cast<const arrow::Decimal64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1321,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1329,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1330,1
    - Dst: static_cast<const arrow::Decimal128Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1330,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1337,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1338,1
    - Dst: static_cast<const arrow::Decimal256Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1338,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1345,1
    - Dst: static_cast<const arrow::StringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1346,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1352,1
    - Dst: static_cast<const arrow::LargeStringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1353,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1360,1
    - Dst: static_cast<const arrow::StringViewArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1361,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1372,1
    - Dst: GetObjectAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1372,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1378,1
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1379,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 3
    argNames:
    - oArray
    - array
    - nIdx
    argTypes:
    - CPLJSONArray
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1383
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1383
    functionName: AddToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - static_cast<const arrow::Decimal128Array *>
    - static_cast<const arrow::UInt8Array *>
    - static_cast<const arrow::Int64Array *>
    - CPLDebug
    - static_cast<GInt64>
    - static_cast<const arrow::DoubleArray *>
    - static_cast<const arrow::UInt32Array *>
    - static_cast<const arrow::FloatArray *>
    - GetObjectAsJSON
    - static_cast<const arrow::Int32Array *>
    - CPLJSONArray::Add
    - CPLAtof
    - arrow::Array*::type
    - static_cast<const arrow::UInt64Array *>
    - static_cast<uint64_t>
    - static_cast<const arrow::LargeStringArray *>
    - static_cast<const arrow::UInt16Array *>
    - static_cast<const arrow::Decimal256Array *>
    - static_cast<const arrow::StringViewArray *>
    - static_cast<const arrow::Decimal64Array *>
    - static_cast<const arrow::StringArray *>
    - static_cast<const arrow::Int16Array *>
    - static_cast<const arrow::Decimal32Array *>
    - static_cast<const arrow::BooleanArray *>
    - memcpy
    - static_cast<const arrow::Int8Array *>
    linkageType: ''
    returnType: void
    signature: "void AddToArray(CPLJSONArray &oArray, const arrow::Array *array,\n
      \                      const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<ArrowType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1393,1
    - Dst: ArrowType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1393,1
    - Dst: ArrowType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1394,1
    - Dst: ArrowType*::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1395,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1396,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1399,1
    - Dst: CPLJSONArray::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1400,1
    - Dst: AddToArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1402,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1402,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - array
    - nIdxInArray
    argTypes:
    - ArrowType*
    - size_t
    constantsTouched: []
    func_position:
      end: 1406
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1406
    functionName: GetListAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - CPLJSONArray::CPLJSONArray
    - static_cast<size_t>
    - std::static_pointer_cast<ArrowType>
    - auto::IsNull
    - AddToArray
    - ArrowType*::value_offset
    - auto::get
    - ArrowType*::values
    - ArrowType*::value_length
    - CPLJSONArray::AddNull
    linkageType: ''
    returnType: CPLJSONArray
    signature: "CPLJSONArray GetListAsJSON(const ArrowType *array,\n                                  const
      size_t nIdxInArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1415,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1419,1
    - Dst: static_cast<const arrow::BooleanArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1421,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1426,1
    - Dst: static_cast<const arrow::UInt8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1428,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1433,1
    - Dst: static_cast<const arrow::Int8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1435,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1440,1
    - Dst: static_cast<const arrow::UInt16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1442,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1447,1
    - Dst: static_cast<const arrow::Int16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1449,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1454,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1456,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1461,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1462,1
    - Dst: static_cast<const arrow::UInt32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1463,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1469,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1470,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1471,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1477,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1478,1
    - Dst: static_cast<const arrow::UInt64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1479,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1489,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1490,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1495,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1497,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1502,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1504,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1511,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1512,1
    - Dst: static_cast<const arrow::Decimal32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1512,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1519,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1520,1
    - Dst: static_cast<const arrow::Decimal64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1520,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1528,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1529,1
    - Dst: static_cast<const arrow::Decimal128Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1529,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1536,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1537,1
    - Dst: static_cast<const arrow::Decimal256Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1537,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1544,1
    - Dst: static_cast<const arrow::StringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1545,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1551,1
    - Dst: static_cast<const arrow::LargeStringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1551,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1558,1
    - Dst: static_cast<const arrow::StringViewArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1558,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1569,1
    - Dst: GetObjectAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1569,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1575,1
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1576,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 4
    argNames:
    - oDict
    - osKey
    - array
    - nIdx
    argTypes:
    - CPLJSONObject
    - std::string
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1580
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1580
    functionName: AddToDict
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - static_cast<const arrow::Decimal128Array *>
    - static_cast<const arrow::UInt8Array *>
    - static_cast<const arrow::Int64Array *>
    - CPLDebug
    - static_cast<GInt64>
    - static_cast<const arrow::DoubleArray *>
    - static_cast<const arrow::UInt32Array *>
    - static_cast<const arrow::FloatArray *>
    - GetObjectAsJSON
    - static_cast<const arrow::Int32Array *>
    - CPLAtof
    - arrow::Array*::type
    - static_cast<const arrow::UInt64Array *>
    - static_cast<uint64_t>
    - static_cast<const arrow::LargeStringArray *>
    - static_cast<const arrow::UInt16Array *>
    - static_cast<const arrow::Decimal256Array *>
    - static_cast<const arrow::StringViewArray *>
    - static_cast<const arrow::Decimal64Array *>
    - static_cast<const arrow::StringArray *>
    - static_cast<const arrow::Int16Array *>
    - CPLJSONObject::Add
    - static_cast<const arrow::Decimal32Array *>
    - static_cast<const arrow::BooleanArray *>
    - memcpy
    - static_cast<const arrow::Int8Array *>
    linkageType: ''
    returnType: void
    signature: "void AddToDict(CPLJSONObject &oDict, const std::string &osKey,\n                      const
      arrow::Array *array, const size_t nIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const arrow::MapArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1590,1
    - Dst: std::static_pointer_cast<KeyArrayType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1591,1
    - Dst: auto::keys
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1591,1
    - Dst: auto::items
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1592,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1593,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1595,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1598,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1600,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1601,1
    - Dst: AddToDict
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1602,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1602,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - array
    - nIdxInArray
    argTypes:
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1608
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1608
    functionName: GetMapAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - auto::IsNull
    - auto::GetString
    - static_cast<const arrow::MapArray *>
    - CPLJSONObject::CPLJSONObject
    - auto::get
    - CPLJSONObject::AddNull
    - auto::keys
    - std::static_pointer_cast<KeyArrayType>
    - AddToDict
    - auto::value_offset
    - auto::items
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetMapAsJSON(const arrow::Array *array,\n                                  const
      size_t nIdxInArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const arrow::MapArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1613,1
    - Dst: auto::keys
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1614,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1616,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1619,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1623,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - array
    - nIdxInArray
    argTypes:
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1625
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1625
    functionName: GetMapAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 3
    functionsReached:
    - CPLJSONObject
    - static_cast<const arrow::MapArray *>
    - GetMapAsJSON
    - auto::keys
    - CPLAssert
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetMapAsJSON(const arrow::Array *array,\n                                  const
      size_t nIdxInArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1635,1
    - Dst: static_cast<const arrow::StructArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1636,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1637,1
    - Dst: auto::num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1638,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1640,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1641,1
    - Dst: AddToDict
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1643,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1643,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1643,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1647,1
    - Dst: auto::field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - array
    - nIdxInArray
    argTypes:
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1651
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1651
    functionName: GetStructureAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - static_cast<const arrow::StructArray *>
    - auto::IsNull
    - CPLJSONObject::CPLJSONObject
    - auto::field
    - auto::get
    - auto::type
    - AddToDict
    - CPLJSONObject::AddNull
    - auto::num_fields
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetStructureAsJSON(const arrow::Array *array,\n                                        const
      size_t nIdxInArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1660,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1663,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1665,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1665,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1668,1
    - Dst: static_cast<const arrow::LargeListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1669,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1671,1
    - Dst: static_cast<const arrow::FixedSizeListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1672,1
    - Dst: GetStructureAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1678,1
    - Dst: arrow::Array*::type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1680,1
    - Dst: CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - array
    - nIdxInArray
    argTypes:
    - arrow::Array*
    - size_t
    constantsTouched: []
    func_position:
      end: 1684
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1684
    functionName: GetObjectAsJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 4
    functionsReached:
    - arrow::Array*::type
    - CPLJSONObject
    - static_cast<const arrow::LargeListArray *>
    - GetStructureAsJSON
    - GetMapAsJSON
    - static_cast<const arrow::ListArray *>
    - GetListAsJSON
    - CPLError
    - static_cast<const arrow::FixedSizeListArray *>
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetObjectAsJSON(const arrow::Array *array,\n                                     const
      size_t nIdxInArray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<ArrowType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1690,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1690,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1691,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1694,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1697,1
    - Dst: static_cast<OGRType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1697,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1697,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1699,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - poFeature
    - i
    - nIdxInArray
    - array
    argTypes:
    - OGRFeature*
    - int
    - int64_t
    - ArrayType*
    constantsTouched: []
    func_position:
      end: 1700
      start: 1687
    functionDepth: 3
    functionLinenumber: 1687
    functionLinenumberEnd: 1700
    functionName: ReadList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - ArrayType*::values
    - std::static_pointer_cast<ArrowType>
    - auto::Value
    - static_cast<OGRType>
    - ArrayType*::value_offset
    - OGRFeature*::SetField
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void ReadList(OGRFeature *poFeature, int i, int64_t nIdxInArray,\n
      \                    const ArrayType *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<ArrowType>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1706,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1706,1
    - Dst: auto::raw_values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1707,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1708,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1711,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1714,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1715,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1715,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1717,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1719,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - poFeature
    - i
    - nIdxInArray
    - array
    argTypes:
    - OGRFeature*
    - int
    - int64_t
    - ArrayType*
    constantsTouched: []
    func_position:
      end: 1720
      start: 1703
    functionDepth: 3
    functionLinenumber: 1703
    functionLinenumberEnd: 1720
    functionName: ReadListDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - ArrayType*::values
    - std::vector::push_back
    - std::static_pointer_cast<ArrowType>
    - auto::IsNull
    - auto::raw_values
    - ArrayType*::value_offset
    - OGRFeature*::SetField
    - std::vector::reserve
    - cpl::quiet_NaN
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void ReadListDouble(OGRFeature *poFeature, int i, int64_t nIdxInArray,\n
      \                          const ArrayType *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1730,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1736,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1741,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1746,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1751,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1756,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1761,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1767,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1773,1
    - Dst: std::static_pointer_cast<arrow::HalfFloatArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1779,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1780,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1781,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1784,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1787,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1788,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1788,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1794,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1795,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1798,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1798,1
    - Dst: ReadListDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1803,1
    - Dst: ReadListDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1808,1
    - Dst: std::static_pointer_cast<arrow::Decimal32Array>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1816,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1817,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1818,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1821,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1824,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1825,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1825,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1827,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1828,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1828,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1830,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1830,1
    - Dst: std::static_pointer_cast<arrow::Decimal64Array>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1836,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1837,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1838,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1841,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1844,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1845,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1847,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1848,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1848,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1850,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1850,1
    - Dst: std::static_pointer_cast<arrow::Decimal128Array>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1858,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1859,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1860,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1863,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1867,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1867,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1869,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1870,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1870,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1872,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1872,1
    - Dst: std::static_pointer_cast<arrow::Decimal256Array>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1879,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1880,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1881,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1884,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1887,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1888,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1888,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1890,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1891,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1891,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1893,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1893,1
    - Dst: std::static_pointer_cast<arrow::StringArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1900,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1900,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1901,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1903,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1906,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1907,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1910,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1910,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1912,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1912,1
    - Dst: std::static_pointer_cast<arrow::LargeStringArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1918,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1919,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1920,1
    - Dst: ArrayType*::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1921,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1922,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1925,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1926,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1929,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1929,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1931,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1931,1
    - Dst: std::static_pointer_cast<arrow::StringViewArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1938,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1939,1
    - Dst: ArrayType*::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1940,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1942,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1945,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1946,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1949,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1949,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1951,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1951,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1961,1
    - Dst: GetListAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1962,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1962,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1970,1
    - Dst: ArrayType*::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1971,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 138
    argCount: 5
    argNames:
    - poFeature
    - i
    - nIdxInArray
    - array
    - valueTypeId
    argTypes:
    - OGRFeature*
    - int
    - int64_t
    - ArrayType*
    - arrow::Type::type
    constantsTouched: []
    func_position:
      end: 1975
      start: 1723
    functionDepth: 4
    functionLinenumber: 1723
    functionLinenumberEnd: 1975
    functionName: ReadList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - ArrayType*::values
    - auto::IsNull
    - auto::FormatValue
    - CPLDebug
    - GetListAsJSON
    - std::static_pointer_cast<arrow::Decimal128Array>
    - std::vector::push_back
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - std::static_pointer_cast<arrow::HalfFloatArray>
    - ArrayType*::value_length
    - ArrayType*::value_offset
    - ReadList
    - std::vector::reserve
    - std::static_pointer_cast<arrow::Decimal32Array>
    - std::vector::data
    - CPLAtof
    - auto::GetString
    - ReadListDouble
    - std::static_pointer_cast<arrow::StringArray>
    - CPLStringList::AddString
    - cpl::quiet_NaN
    - std::static_pointer_cast<arrow::Decimal256Array>
    - static_cast<size_t>
    - std::static_pointer_cast<arrow::Decimal64Array>
    - std::static_pointer_cast<arrow::StringViewArray>
    - OGRFeature*::SetField
    - std::static_pointer_cast<arrow::LargeStringArray>
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ReadList(OGRFeature *poFeature, int i, int64_t nIdxInArray,\n
      \                    const ArrayType *array, arrow::Type::type valueTypeId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1989,1
    - Dst: reinterpret_cast<const OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1990,1
    - Dst: arrow::DoubleArray*::raw_values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1991,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:1995,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2002,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2002,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2003,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2004,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2005,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2009,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2009,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2010,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2011,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2016,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2016,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2017,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2018,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - poLS
    - pointValues
    - pointOffset
    - numPoints
    argTypes:
    - OGRLineString*
    - arrow::DoubleArray*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 2021
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 2021
    functionName: SetPointsOfLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRLineString*::setPoints
    - arrow::DoubleArray*::Value
    - arrow::DoubleArray*::raw_values
    - OGRLineString*::setNumPoints
    - OGRLineString*::setPointM
    - reinterpret_cast<const OGRRawPoint *>
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void SetPointsOfLine(OGRLineString *poLS, const arrow::DoubleArray
      *pointValues,\n                     size_t pointOffset, int numPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - bHasZ
    - bHasM
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2035
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2035
    functionName: GetSetPointsOfLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SetPointsOfLineType
    signature: SetPointsOfLineType GetSetPointsOfLine(bool bHasZ, bool bHasM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2046,1
    - Dst: arrow::StructArray*::num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2046,1
    - Dst: arrow::StructArray*::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2047,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2049,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2049,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2050,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2050,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2052,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2052,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2053,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2053,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2061,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2061,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2062,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2062,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2067,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2067,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2068,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2068,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2071,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2078,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2078,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2079,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2080,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2081,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2085,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2085,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2086,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2087,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2092,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2092,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2093,1
    - Dst: arrow::DoubleArray*::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2094,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2098,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2098,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - poLS
    - structArray
    - pointOffset
    - numPoints
    argTypes:
    - OGRLineString*
    - arrow::StructArray*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 2102
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2102
    functionName: SetPointsOfLineStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::type_id
    - auto::Value
    - arrow::DoubleArray*::Value
    - OGRLineString*::setNumPoints
    - auto::get
    - OGRLineString*::setPointM
    - CPLAssert
    - arrow::StructArray*::num_fields
    - arrow::StructArray*::fields
    - static_cast<arrow::DoubleArray *>
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: "void SetPointsOfLineStruct(OGRLineString *poLS,\n                           const
      arrow::StructArray *structArray,\n                           size_t pointOffset,
      int numPoints)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - bHasZ
    - bHasM
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2118
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2118
    functionName: GetSetPointsOfLineStruct
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SetPointsOfLineStructType
    signature: "SetPointsOfLineStructType GetSetPointsOfLineStruct(bool bHasZ,\n                                                          bool
      bHasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::TimestampType*::unit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2129,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2152,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2153,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2154,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2155,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2156,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2157,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2158,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - timestamp
    - timestampType
    - nTZFlag
    - psField
    argTypes:
    - int64_t
    - arrow::TimestampType*
    - int
    - OGRField*
    constantsTouched: []
    func_position:
      end: 2160
      start: 2124
    functionDepth: 1
    functionLinenumber: 2124
    functionLinenumberEnd: 2160
    functionName: OGRArrowLayer::TimestampToOGR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - arrow::TimestampType*::unit
    - static_cast<GInt16>
    - static_cast<GByte>
    - CPLUnixTimeToYMDHMS
    linkageType: ''
    returnType: void
    signature: "void OGRArrowLayer::TimestampToOGR(int64_t timestamp,\n                              const
      arrow::TimestampType *timestampType,\n                              int nTZFlag,
      OGRField *psField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2168,1
    - Dst: cpl::down_cast<const arrow::ExtensionArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2171,1
    - Dst: auto::storage
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - arrow::Array*
    constantsTouched: []
    func_position:
      end: 2175
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2175
    functionName: GetStorageArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::storage
    - arrow::Array*::type_id
    - cpl::down_cast<const arrow::ExtensionArray *>
    linkageType: ''
    returnType: arrow::Array
    signature: arrow::Array *GetStorageArray(const arrow::Array *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2185,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2191,1
    - Dst: arrow::Array*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2192,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2194,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2197,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2198,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2199,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2199,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2201,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2204,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2205,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2205,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2225,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2225,1
    - Dst: arrow::Array*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2226,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2228,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2234,1
    - Dst: static_cast<const arrow::StructArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2237,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2238,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2239,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2240,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2240,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2243,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2243,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2243,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2244,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2244,1
    - Dst: arrow::Array*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2245,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2247,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2255,1
    - Dst: static_cast<const arrow::DictionaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2258,1
    - Dst: auto::indices
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2260,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2261,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2261,1
    - Dst: arrow::Array*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2262,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2264,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2269,1
    - Dst: static_cast<const arrow::BooleanArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2277,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2278,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2279,1
    - Dst: static_cast<const arrow::UInt8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2285,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2286,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2287,1
    - Dst: static_cast<const arrow::Int8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2293,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2294,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2295,1
    - Dst: static_cast<const arrow::UInt16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2301,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2302,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2303,1
    - Dst: static_cast<const arrow::Int16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2309,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2310,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2311,1
    - Dst: static_cast<const arrow::UInt32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2317,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2318,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2319,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2319,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2325,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2326,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2327,1
    - Dst: static_cast<const arrow::UInt64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2333,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2334,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2335,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2335,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2341,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2342,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2343,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2343,1
    - Dst: static_cast<const arrow::HalfFloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2349,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2353,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2354,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2360,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2361,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2362,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2368,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2369,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2370,1
    - Dst: static_cast<const arrow::StringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2376,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2382,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2384,1
    - Dst: static_cast<const arrow::BinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2390,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2394,1
    - Dst: static_cast<const arrow::BinaryViewArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2401,1
    - Dst: auto::GetView
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2402,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2403,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2403,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2403,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2404,1
    - Dst: static_cast<const arrow::StringViewArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2412,1
    - Dst: auto::GetView
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2413,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2416,1
    - Dst: auto::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2416,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2416,1
    - Dst: auto::length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2417,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2418,1
    - Dst: static_cast<const arrow::FixedSizeBinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2425,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2427,1
    - Dst: auto::byte_width
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2427,1
    - Dst: static_cast<const arrow::Date32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2434,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2439,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2440,1
    - Dst: static_cast<const arrow::Date64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2448,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2452,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2453,1
    - Dst: static_cast<arrow::TimestampType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2459,1
    - Dst: arrow::Array*::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2460,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2460,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2462,1
    - Dst: OGRArrowLayer::TimestampToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2468,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2469,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2471,1
    - Dst: static_cast<arrow::Time32Type *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2477,1
    - Dst: arrow::Array*::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2477,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2477,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2479,1
    - Dst: auto::unit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2480,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2491,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2492,1
    - Dst: static_cast<const arrow::Time64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2498,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2499,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2500,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2500,1
    - Dst: static_cast<const arrow::Decimal32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2508,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2509,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2510,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2510,1
    - Dst: static_cast<const arrow::Decimal64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2517,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2518,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2519,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2519,1
    - Dst: static_cast<const arrow::Decimal128Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2527,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2528,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2529,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2529,1
    - Dst: static_cast<const arrow::Decimal256Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2536,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2537,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2538,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2538,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2545,1
    - Dst: static_cast<const arrow::ListType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2546,1
    - Dst: arrow::Array*::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2547,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2547,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2548,1
    - Dst: auto::value_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2549,1
    - Dst: static_cast<const arrow::FixedSizeListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2556,1
    - Dst: static_cast<const arrow::FixedSizeListType *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2558,1
    - Dst: arrow::Array*::data
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2559,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2559,1
    - Dst: ReadList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2560,1
    - Dst: auto::value_field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2561,1
    - Dst: static_cast<const arrow::LargeStringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2568,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2569,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2570,1
    - Dst: static_cast<const arrow::LargeBinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2576,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2583,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2583,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2589,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2591,1
    - Dst: static_cast<const arrow::MapArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2599,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2600,1
    - Dst: GetMapAsJSON
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2601,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2629,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2631,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2652,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2652,1
    - Dst: OGRArrowLayer::ReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2653,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2656,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2657,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2657,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2658,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2658,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2661,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2663,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2663,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2664,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2664,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2667,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2669,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2669,1
    - Dst: auto::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2669,1
    - Dst: auto::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2671,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2673,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 231
    argCount: 2
    argNames:
    - nIdxInBatch
    - poColumnArrays
    argTypes:
    - int64_t
    - std::vector<std::shared_ptr<arrow::Array>>
    constantsTouched: []
    func_position:
      end: 2678
      start: 2181
    functionDepth: 5
    functionLinenumber: 2181
    functionLinenumberEnd: 2678
    functionName: OGRArrowLayer::ReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::unit
    - static_cast<const arrow::UInt8Array *>
    - static_cast<const arrow::Time64Array *>
    - auto::GetType
    - static_cast<const arrow::Date64Array *>
    - OGRArrowLayer::TimestampToOGR
    - static_cast<arrow::Time32Type *>
    - static_cast<const arrow::FloatArray *>
    - OGRFeature*::SetFieldSameTypeUnsafe
    - auto::set3D
    - static_cast<const arrow::Date32Array *>
    - CPLUnixTimeToYMDHMS
    - static_cast<float>
    - static_cast<const arrow::UInt64Array *>
    - OGRArrowLayer::ReadGeometry
    - auto::data
    - auto::GetView
    - static_cast<const arrow::ListType *>
    - static_cast<const arrow::Decimal128Array *>
    - GetGeomFieldDefn
    - GetMapAsJSON
    - static_cast<const arrow::Int64Array *>
    - static_cast<const arrow::DoubleArray *>
    - static_cast<const arrow::DictionaryArray *>
    - static_cast<GIntBig>
    - OGRGeometryFactory::forceToMultiLineString
    - arrow::Array*::type_id
    - static_cast<const arrow::Int32Array *>
    - wkbFlatten
    - CPLAtof
    - auto::value_field
    - static_cast<int>
    - auto::GetString
    - static_cast<const arrow::MapArray *>
    - get
    - CPLAssert
    - static_cast<const arrow::UInt16Array *>
    - size
    - auto::length
    - static_cast<const arrow::HalfFloatArray *>
    - static_cast<const arrow::Decimal64Array *>
    - static_cast<const arrow::BooleanArray *>
    - static_cast<const arrow::Int8Array *>
    - static_cast<const arrow::FixedSizeListType *>
    - static_cast<const arrow::LargeBinaryArray *>
    - OGRFeature*::SetFieldNull
    - auto::Value
    - arrow::Array*::IsNull
    - auto::fields
    - arrow::Array*::data
    - static_cast<arrow::TimestampType *>
    - auto::Is3D
    - auto::indices
    - OGRGeometryFactory::forceToMultiPolygon
    - GetStorageArray
    - static_cast<double>
    - static_cast<const arrow::StructArray *>
    - static_cast<const arrow::BinaryViewArray *>
    - static_cast<const arrow::StringArray *>
    - auto::byte_width
    - auto::getGeometryType
    - static_cast<const arrow::Int16Array *>
    - static_cast<const arrow::FixedSizeListArray *>
    - OGRFeature*::SetFID
    - static_cast<GUIntBig>
    - auto::FormatValue
    - static_cast<const arrow::ListArray *>
    - static_cast<const arrow::FixedSizeBinaryArray *>
    - GetFieldDefn
    - CPLError
    - auto::size
    - static_cast<const arrow::UInt32Array *>
    - OGRFeature*::SetGeomFieldDirectly
    - OGR_GT_HasZ
    - ReadList
    - static_cast<const arrow::BinaryArray *>
    - static_cast<const arrow::LargeStringArray *>
    - OGRFeature::OGRFeature
    - static_cast<const arrow::Decimal256Array *>
    - static_cast<size_t>
    - static_cast<const arrow::StringViewArray *>
    - OGRFeature*::SetField
    - static_cast<const arrow::Decimal32Array *>
    - memcpy
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRArrowLayer::ReadFeature(\n    int64_t nIdxInBatch,\n
      \   const std::vector<std::shared_ptr<arrow::Array>> &poColumnArrays) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::Array*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2688,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2693,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2694,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2706,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2707,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2708,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2709,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2706,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2713,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2714,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2715,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2713,1
    - Dst: OGRPoint::createXYM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2720,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2720,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2721,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2722,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2726,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2727,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2726,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2735,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2736,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2736,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2737,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2738,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2738,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2740,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2740,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2741,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2742,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2742,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2744,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2744,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2747,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2748,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2748,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2750,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2750,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2753,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2754,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2754,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2756,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2756,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2757,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2758,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2759,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2760,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2757,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2764,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2765,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2766,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2764,1
    - Dst: field
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2771,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2772,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2772,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2774,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2774,1
    - Dst: OGRPoint::createXYM
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2775,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2775,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2776,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2777,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2781,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2782,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2781,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2807,1
    - Dst: static_cast<const arrow::BinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2810,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2811,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2815,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2815,1
    - Dst: static_cast<const arrow::LargeBinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2817,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2819,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2822,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2825,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2827,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2828,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2835,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2837,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2838,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2846,1
    - Dst: static_cast<const arrow::StringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2849,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2850,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2851,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2852,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2852,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2857,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2857,1
    - Dst: static_cast<const arrow::LargeStringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2859,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2860,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2861,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2862,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2862,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2871,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2877,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2877,1
    - Dst: static_cast<const arrow::FixedSizeListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2879,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2880,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2880,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2881,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2882,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2883,1
    - Dst: CreatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2885,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2886,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2887,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2888,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2895,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2895,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2896,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2897,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2897,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2899,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2900,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2901,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2901,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2903,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2904,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2905,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2907,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2908,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2910,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2911,1
    - Dst: GetSetPointsOfLine
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2914,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2919,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2920,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2927,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2927,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2929,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2930,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2930,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2932,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2933,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2934,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2934,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2936,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2937,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2938,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2938,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2940,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2941,1
    - Dst: GetSetPointsOfLine
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2942,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2943,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2945,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2946,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2948,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2949,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2953,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2955,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2956,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2959,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2961,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2963,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2965,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2966,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2973,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2973,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2974,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2975,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2975,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2977,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2978,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2979,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2979,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2981,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2982,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2983,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2985,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2986,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2988,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2989,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2992,1
    - Dst: CreatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2993,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2995,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2997,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:2998,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3005,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3005,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3007,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3008,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3008,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3010,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3011,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3012,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3012,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3014,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3015,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3016,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3016,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3018,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3019,1
    - Dst: GetSetPointsOfLine
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3020,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3021,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3023,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3024,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3026,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3027,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3031,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3033,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3034,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3037,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3039,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3041,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3043,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3044,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3051,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3051,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3053,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3054,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3054,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3056,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3057,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3058,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3058,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3060,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3061,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3062,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3062,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3064,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3065,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3066,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3066,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3068,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3069,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3070,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3072,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3073,1
    - Dst: GetSetPointsOfLine
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3074,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3075,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3077,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3081,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3083,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3084,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3088,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3090,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3091,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3094,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3097,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3099,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3101,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3103,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3104,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3111,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3111,1
    - Dst: static_cast<const arrow::StructArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3113,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3114,1
    - Dst: CreateStructPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3116,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3117,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3118,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3125,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3125,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3126,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3127,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3127,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3128,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3129,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3130,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3131,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3132,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3134,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3135,1
    - Dst: GetSetPointsOfLineStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3138,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3143,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3144,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3151,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3151,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3153,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3154,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3154,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3156,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3157,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3158,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3158,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3160,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3161,1
    - Dst: GetSetPointsOfLineStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3162,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3163,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3165,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3166,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3168,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3169,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3173,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3175,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3176,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3179,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3181,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3183,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3185,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3186,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3193,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3193,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3194,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3195,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3195,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3196,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3197,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3198,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3199,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3200,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3202,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3203,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3206,1
    - Dst: CreateStructPoint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3207,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3209,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3211,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3212,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3219,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3219,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3221,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3222,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3222,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3224,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3225,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3226,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3226,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3228,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3229,1
    - Dst: GetSetPointsOfLineStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3230,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3231,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3233,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3234,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3236,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3237,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3241,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3243,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3244,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3247,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3249,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3251,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3253,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3254,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3261,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3261,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3263,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3264,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3264,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3266,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3267,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3268,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3268,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3270,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3271,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3272,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3272,1
    - Dst: GET_PTR_FROM_VALUES
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3274,1
    - Dst: values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3275,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3276,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3278,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3279,1
    - Dst: GetSetPointsOfLineStruct
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3280,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3281,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3283,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3287,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3289,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3290,1
    - Dst: value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3294,1
    - Dst: value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3296,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3297,1
    - Dst: setPointsFun
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3300,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3303,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3305,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3307,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3309,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3310,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 289
    argCount: 3
    argNames:
    - iGeomField
    - array
    - nIdxInBatch
    argTypes:
    - int
    - arrow::Array*
    - int64_t
    constantsTouched: []
    func_position:
      end: 3316
      start: 2684
    functionDepth: 2
    functionLinenumber: 2684
    functionLinenumberEnd: 3316
    functionName: OGRArrowLayer::ReadGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - values
    - static_cast<const arrow::LargeBinaryArray *>
    - OGRGeometry*::assignSpatialReference
    - auto::IsNull
    - CreatePoint
    - auto::Value
    - auto::GetValue
    - OGRMultiPoint::OGRMultiPoint
    - arrow::Array*::IsNull
    - value_offset
    - GetGeomFieldDefn
    - auto::GetType
    - auto::get
    - GET_PTR_FROM_VALUES
    - static_cast<const arrow::ListArray *>
    - OGRGeometry*::setMeasured
    - value_length
    - IsNull
    - auto::value_offset
    - auto::addRingDirectly
    - CPLError
    - OGRGeometry*::set3D
    - OGRPolygon::OGRPolygon
    - auto::values
    - field
    - auto::c_str
    - OGRGeometryFactory::createFromWkb
    - Value
    - OGRPoint::OGRPoint
    - arrow::Array*::type_id
    - auto::value_length
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - static_cast<const arrow::BinaryArray *>
    - OGRPoint::createXYM
    - static_cast<int>
    - auto::GetSpatialRef
    - auto::GetString
    - OGRLinearRing::OGRLinearRing
    - auto::addGeometryDirectly
    - static_cast<const arrow::LargeStringArray *>
    - CPLAssert
    - setPointsFun
    - CPL_IGNORE_RET_VAL
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - static_cast<const arrow::StructArray *>
    - auto::type_id
    - CreateStructPoint
    - static_cast<const arrow::StringArray *>
    - GetSetPointsOfLine
    - OGRGeometryFactory::createFromWkt
    - num_fields
    - GetSetPointsOfLineStruct
    - static_cast<const arrow::FixedSizeListArray *>
    - static_cast<arrow::DoubleArray *>
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGRArrowLayer::ReadGeometry(int iGeomField,\n                                                const
      arrow::Array *array,\n                                                int64_t
      nIdxInBatch) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3327,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3331,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3322
    functionDepth: 0
    functionLinenumber: 3322
    functionLinenumberEnd: 3334
    functionName: OGRArrowLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - clear
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3352
      start: 3341
    functionDepth: 0
    functionLinenumber: 3341
    functionLinenumberEnd: 3352
    functionName: OGRArrowLayer::GetColumnSubNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: swq_expr_node
    signature: 'swq_expr_node *

      OGRArrowLayer::GetColumnSubNode(const swq_expr_node *poNode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3370
      start: 3359
    functionDepth: 0
    functionLinenumber: 3359
    functionLinenumberEnd: 3370
    functionName: OGRArrowLayer::GetConstantSubNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: swq_expr_node
    signature: 'swq_expr_node *

      OGRArrowLayer::GetConstantSubNode(const swq_expr_node *poNode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3381
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3381
    functionName: OGRArrowLayer::IsComparisonOp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowLayer::IsComparisonOp(int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3391,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3397,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3400,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3402,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3409,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3413,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3419,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3437,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3440,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3442,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - poFieldDefn
    - psConstraint
    - poSrcValue
    argTypes:
    - OGRFieldDefn*
    - OGRArrowLayer::Constraint*
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3467
      start: 3387
    functionDepth: 1
    functionLinenumber: 3387
    functionLinenumberEnd: 3467
    functionName: FillTargetValueFromSrcExpr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - static_cast<GIntBig>
    - sscanf
    - static_cast<int>
    - std::to_string
    - OGRFieldDefn*::GetType
    linkageType: ''
    returnType: bool
    signature: "bool FillTargetValueFromSrcExpr(const OGRFieldDefn *poFieldDefn,\n
      \                                      OGRArrowLayer::Constraint *psConstraint,\n
      \                                      const swq_expr_node *poSrcValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3479,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3492,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3496,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3497,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3498,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3504,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3507,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3509,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3509,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3473
    functionDepth: 2
    functionLinenumber: 3473
    functionLinenumberEnd: 3521
    functionName: OGRArrowLayer::ComputeConstraintsArrayIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - c_str
    - empty
    - GetFieldCount
    - CPLDebug
    - GetFieldDefn
    - CPLError
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::ComputeConstraintsArrayIdx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3530,1
    - Dst: OGRArrowLayer::ExploreExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3535,1
    - Dst: OGRArrowLayer::ExploreExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3536,1
    - Dst: OGRArrowLayer::IsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3540,1
    - Dst: OGRArrowLayer::GetColumnSubNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3542,1
    - Dst: OGRArrowLayer::GetConstantSubNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3543,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3545,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3547,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3549,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3553,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3555,1
    - Dst: FillTargetValueFromSrcExpr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3561,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3590,1
    - Dst: AddConstraint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3595,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3605,1
    - Dst: AddConstraint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3610,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3622,1
    - Dst: AddConstraint
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3627,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 56
    argCount: 1
    argNames:
    - poNode
    argTypes:
    - swq_expr_node*
    constantsTouched: []
    func_position:
      end: 3630
      start: 3527
    functionDepth: 2
    functionLinenumber: 3527
    functionLinenumberEnd: 3630
    functionName: OGRArrowLayer::ExploreExprNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - OGRArrowLayer::GetColumnSubNode
    - c_str
    - OGRArrowLayer::IsComparisonOp
    - GetFieldCount
    - FillTargetValueFromSrcExpr
    - OGRArrowLayer::ExploreExprNode
    - CPLAssert
    - AddConstraint
    - GetFieldDefn
    - OGRArrowLayer::GetConstantSubNode
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::ExploreExprNode(const swq_expr_node *poNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3638,1
    - Dst: InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3643,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3645,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3653,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3653,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3654,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3654,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3661,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3661,1
    - Dst: swq_expr_node*::ReplaceBetweenByGEAndLERecurse
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3662,1
    - Dst: OGRArrowLayer::ExploreExprNode
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3663,1
    - Dst: OGRArrowLayer::ComputeConstraintsArrayIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3669
      start: 3636
    functionDepth: 3
    functionLinenumber: 3636
    functionLinenumberEnd: 3669
    functionName: OGRArrowLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - swq_expr_node*::ReplaceBetweenByGEAndLERecurse
    - GetDriverUCName
    - InvalidateCachedBatches
    - CPLTestBool
    - c_str
    - OGRLayer::SetAttributeFilter
    - OGRArrowLayer::ComputeConstraintsArrayIdx
    - static_cast<swq_expr_node *>
    - OGRArrowLayer::ExploreExprNode
    - GetSWQExpr
    - CPLGetConfigOption
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRArrowLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - op
    - val1
    - val2
    argTypes:
    - int
    - T
    - U
    constantsTouched: []
    func_position:
      end: 3700
      start: 3679
    functionDepth: 0
    functionLinenumber: 3679
    functionLinenumberEnd: 3700
    functionName: get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 427
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: bool get(int op, const T &val1, const U &val2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3719,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - op
    - val1
    - val2
    argTypes:
    - int
    - double
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3721
      start: 3717
    functionDepth: 2
    functionLinenumber: 3717
    functionLinenumberEnd: 3721
    functionName: get
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 428
    functionsReached:
    - static_cast<double>
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: bool get(int op, double val1, GIntBig val2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3740,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3744,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3748,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3749,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3753,1
    - Dst: std::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - constraint
    - value
    argTypes:
    - OGRArrowLayer::Constraint
    - T
    constantsTouched: []
    func_position:
      end: 3759
      start: 3733
    functionDepth: 2
    functionLinenumber: 3733
    functionLinenumberEnd: 3759
    functionName: ConstraintEvaluator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - std::to_string
    - CPL_json_object_object_get
    linkageType: ''
    returnType: bool
    signature: "bool ConstraintEvaluator(const OGRArrowLayer::Constraint &constraint,\n
      \                               const T value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - op
    - val1
    - val2
    argTypes:
    - int
    - std::string_view
    - std::string
    constantsTouched: []
    func_position:
      end: 3787
      start: 3761
    functionDepth: 0
    functionLinenumber: 3761
    functionLinenumberEnd: 3787
    functionName: CompareStr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: bool
    signature: "bool CompareStr(int op, const std::string_view &val1,\n                       const
      std::string &val2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompareStr
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - constraint
    - value
    argTypes:
    - OGRArrowLayer::Constraint
    - std::string_view
    constantsTouched: []
    func_position:
      end: 3793
      start: 3789
    functionDepth: 1
    functionLinenumber: 3789
    functionLinenumberEnd: 3793
    functionName: ConstraintEvaluator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - CompareStr
    linkageType: ''
    returnType: bool
    signature: "bool ConstraintEvaluator(const OGRArrowLayer::Constraint &constraint,\n
      \                               const std::string_view &value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3808,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3809,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3811,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3812,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3828,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3852,1
    - Dst: static_cast<const arrow::BooleanArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3860,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3861,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3863,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3863,1
    - Dst: static_cast<const arrow::UInt8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3872,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3873,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3875,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3875,1
    - Dst: static_cast<const arrow::Int8Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3884,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3885,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3887,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3887,1
    - Dst: static_cast<const arrow::UInt16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3896,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3897,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3899,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3899,1
    - Dst: static_cast<const arrow::Int16Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3908,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3909,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3911,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3911,1
    - Dst: static_cast<const arrow::UInt32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3920,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3921,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3923,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3923,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3932,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3933,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3934,1
    - Dst: static_cast<const arrow::UInt64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3943,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3944,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3946,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3946,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3955,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3956,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3958,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3958,1
    - Dst: static_cast<const arrow::HalfFloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3967,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3971,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3972,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3972,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3981,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3982,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3984,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3984,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3993,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3994,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:3995,1
    - Dst: static_cast<const arrow::StringArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4004,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4008,1
    - Dst: std::string_view
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4010,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4010,1
    - Dst: static_cast<const arrow::Decimal32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4022,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4023,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4025,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4025,1
    - Dst: static_cast<const arrow::Decimal64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4035,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4036,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4038,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4038,1
    - Dst: static_cast<const arrow::Decimal128Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4049,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4050,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4052,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4052,1
    - Dst: static_cast<const arrow::Decimal256Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4062,1
    - Dst: ConstraintEvaluator
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4063,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4065,1
    - Dst: auto::FormatValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4065,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 3801
    functionDepth: 3
    functionLinenumber: 3801
    functionLinenumberEnd: 4077
    functionName: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - static_cast<const arrow::Decimal128Array *>
    - static_cast<const arrow::UInt8Array *>
    - auto::FormatValue
    - auto::Value
    - static_cast<const arrow::Int64Array *>
    - std::string_view
    - static_cast<const arrow::DoubleArray *>
    - static_cast<const arrow::UInt32Array *>
    - static_cast<GIntBig>
    - static_cast<const arrow::FloatArray *>
    - arrow::Array*::type_id
    - static_cast<const arrow::Int32Array *>
    - CPLAtof
    - static_cast<int>
    - reinterpret_cast<const char *>
    - static_cast<const arrow::UInt64Array *>
    - get
    - GetFieldCount
    - static_cast<const arrow::UInt16Array *>
    - ConstraintEvaluator
    - static_cast<const arrow::Decimal256Array *>
    - static_cast<double>
    - empty
    - static_cast<const arrow::HalfFloatArray *>
    - static_cast<const arrow::StringArray *>
    - static_cast<const arrow::Decimal64Array *>
    - static_cast<const arrow::Int16Array *>
    - static_cast<const arrow::Decimal32Array *>
    - static_cast<const arrow::BooleanArray *>
    - memcpy
    - static_cast<const arrow::Int8Array *>
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4087,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4102,1
    - Dst: OGRArrowLayer::SanityCheckOfSetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4103,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4121,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4121,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4122,1
    - Dst: static_cast<const arrow::BinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4124,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4127,1
    - Dst: arrow::Array*::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4127,1
    - Dst: static_cast<const arrow::LargeBinaryArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4129,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4134,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4134,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4135,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4135,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4138,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4139,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4145,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4145,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4146,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4147,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4148,1
    - Dst: type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4148,1
    - Dst: static_cast<const arrow::StructArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4150,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4151,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4152,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4153,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4154,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4156,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4157,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4158,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4159,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4161,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4162,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4163,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4164,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4166,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4167,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4168,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4169,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4171,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4174,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4174,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4176,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4177,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4177,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4179,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4180,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4180,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4182,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4183,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4183,1
    - Dst: static_cast<const arrow::FloatArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4185,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4189,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4189,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4191,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4192,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4192,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4194,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4195,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4195,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4197,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4198,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4198,1
    - Dst: static_cast<const arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 1
    argNames:
    - poBatch
    argTypes:
    - std::shared_ptr<arrow::RecordBatch>
    constantsTouched: []
    func_position:
      end: 4206
      start: 4083
    functionDepth: 1
    functionLinenumber: 4083
    functionLinenumberEnd: 4206
    functionName: OGRArrowLayer::SetBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - static_cast<const arrow::LargeBinaryArray *>
    - OGRArrowLayer::SanityCheckOfSetBatch
    - auto::fields
    - auto::size
    - CPLGetConfigOption
    - static_cast<const arrow::DoubleArray *>
    - end
    - static_cast<const arrow::FloatArray *>
    - find
    - columns
    - arrow::Array*::type_id
    - static_cast<const arrow::BinaryArray *>
    - CPLTestBool
    - c_str
    - get
    - CPLAssert
    - GetStorageArray
    - size
    - static_cast<size_t>
    - static_cast<const arrow::StructArray *>
    - auto::type_id
    - type_id
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::SetBatch(const std::shared_ptr<arrow::RecordBatch>
      &poBatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4215,1
    - Dst: columns
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4217,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4220,1
    - Dst: num_columns
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4220,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4222,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4223,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4225,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4238,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4240,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4240,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4240,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4241,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4241,1
    - Dst: type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4242,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4245,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4258,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4260,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4260,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4260,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4261,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4261,1
    - Dst: type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4262,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4212
    functionDepth: 2
    functionLinenumber: 4212
    functionLinenumberEnd: 4267
    functionName: OGRArrowLayer::SanityCheckOfSetBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - fields
    - num_columns
    - GetFieldCount
    - CPLAssert
    - columns
    - num_fields
    - CPL_IGNORE_RET_VAL
    - type
    - auto::size
    - GetGeomFieldCount
    - type_id
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayer::SanityCheckOfSetBatch() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4278,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4280,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4306,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4309,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4311,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4313,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4315,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4316,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4323,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4326,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4328,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4330,1
    - Dst: Value
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4332,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4333,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4344,1
    - Dst: IntersectsBBOX
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4344,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4345,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4346,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4351,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4353,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4355,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4364,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4370,1
    - Dst: IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4372,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4383,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4384,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4391,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4396,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4397,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4399,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4405,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4406,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4411,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4413,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4415,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4426,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4427,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4436,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4436,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4437,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4437,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4439,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4440,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4440,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4443,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4444,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4445,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4445,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4448,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4449,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4450,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4450,1
    - Dst: std::static_pointer_cast<arrow::FixedSizeListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4453,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4454,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4455,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4455,1
    - Dst: std::static_pointer_cast<arrow::DoubleArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4457,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4458,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4463,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4467,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4469,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4472,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4475,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4480,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4483,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4491,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4499,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4505,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4506,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4512,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4514,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4516,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4531,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4531,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4532,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4532,1
    - Dst: static_cast<const arrow::StructArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4534,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4535,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4537,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4537,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4539,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4539,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4541,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4541,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4543,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4543,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4548,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4561,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4562,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4568,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4570,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4572,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4588,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4588,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4589,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4589,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4591,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4592,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4592,1
    - Dst: std::static_pointer_cast<arrow::StructArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4594,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4595,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4596,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4598,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4598,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4600,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4600,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4602,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4602,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4604,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4604,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4609,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4613,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4615,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4625,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4628,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4635,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4636,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4642,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4644,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4646,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4661,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4661,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4662,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4662,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4664,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4665,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4665,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4668,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4669,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4670,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4670,1
    - Dst: std::static_pointer_cast<arrow::StructArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4672,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4673,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4674,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4676,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4676,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4678,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4678,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4680,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4680,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4682,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4682,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4687,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4691,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4693,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4697,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4699,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4707,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4712,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4719,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4720,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4726,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4728,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4730,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4746,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4746,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4747,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4747,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4749,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4750,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4750,1
    - Dst: std::static_pointer_cast<arrow::StructArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4752,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4753,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4754,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4756,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4756,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4758,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4758,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4760,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4760,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4762,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4762,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4767,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4770,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4772,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4797,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4798,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4804,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4806,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4808,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4824,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4824,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4825,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4825,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4827,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4828,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4828,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4831,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4832,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4833,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4833,1
    - Dst: std::static_pointer_cast<arrow::StructArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4835,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4836,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4837,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4839,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4839,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4841,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4841,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4843,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4843,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4845,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4845,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4850,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4853,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4855,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4861,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4864,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4873,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4877,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4884,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4885,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4891,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4893,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4895,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4911,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4911,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4912,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4912,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4914,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4915,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4915,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4918,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4919,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4920,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4920,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4923,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4924,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4925,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4925,1
    - Dst: std::static_pointer_cast<arrow::StructArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4927,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4928,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4929,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4931,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4931,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4933,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4933,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4935,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4935,1
    - Dst: static_cast<arrow::DoubleArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4937,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4937,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4942,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4945,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4947,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4952,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4955,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4960,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4963,1
    - Dst: OGREnvelope::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4972,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4976,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4985,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4986,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4992,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4994,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:4996,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5006,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5006,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5011,1
    - Dst: OGRArrowLayer::ReadGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5012,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5013,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5016,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5017,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5022,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5023,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5028,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5030,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5032,1
    - Dst: GetStorageArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5035,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5035,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5041,1
    - Dst: OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5045,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5050,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5052,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5054,1
    - Dst: OGRArrowLayer::ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5061,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5064,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5066,1
    CyclomaticComplexity: 178
    EdgeCount: 178
    ICount: 351
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5070
      start: 4273
    functionDepth: 6
    functionLinenumber: 4273
    functionLinenumberEnd: 5070
    functionName: OGRArrowLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::IsNull
    - std::unique_ptr<OGRGeometry>
    - GetGeomFieldDefn
    - auto::GetType
    - static_cast<const arrow::ListArray *>
    - std::static_pointer_cast<arrow::DoubleArray>
    - OGRArrowLayer::SkipToNextFeatureDueToAttributeFilter
    - auto::get
    - OGRArrowLayer::ReadFeature
    - IsNull
    - auto::value_offset
    - auto::fields
    - auto::values
    - std::static_pointer_cast<arrow::FixedSizeListArray>
    - ReadNextBatch
    - std::static_pointer_cast<arrow::StructArray>
    - Value
    - OGREnvelope::Merge
    - Intersects
    - auto::value_length
    - static_cast<int>
    - get
    - CPLAssert
    - OGRWKBGetBoundingBox
    - OGRArrowLayer::ReadGeometry
    - GetStorageArray
    - num_rows
    - auto::getEnvelope
    - IntersectsBBOX
    - auto::IsEmpty
    - IncrFeatureIdx
    - static_cast<const arrow::StructArray *>
    - empty
    - auto::type_id
    - auto::SetFID
    - std::static_pointer_cast<arrow::ListArray>
    - static_cast<arrow::DoubleArray *>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRArrowLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5080,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5081,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5081,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5083,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5084,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5085,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5086,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5087,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5088,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5092,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5092,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5094,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5095,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5096,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5097,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5098,1
    - Dst: ToDouble
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - oJSONDef
    - psExtent
    argTypes:
    - CPLJSONObject
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 5104
      start: 5076
    functionDepth: 1
    functionLinenumber: 5076
    functionLinenumberEnd: 5104
    functionName: OGRArrowLayer::GetExtentFromMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    - CPLJSONObject::GetArray
    - auto::IsValid
    - ToDouble
    - auto::Size
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowLayer::GetExtentFromMetadata(const CPLJSONObject &oJSONDef,\n
      \                                    OGREnvelope3D *psExtent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5117,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5120,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5123,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5124,1
    - Dst: OGRArrowLayer::FastGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5128,1
    - Dst: Intersects
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5131,1
    - Dst: OGRArrowLayer::SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 5138
      start: 5110
    functionDepth: 2
    functionLinenumber: 5110
    functionLinenumberEnd: 5138
    functionName: OGRArrowLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - InvalidateCachedBatches
    - OGRArrowLayer::SetBatch
    - OGRArrowLayer::ResetReading
    - Intersects
    - OGRArrowLayer::FastGetExtent
    - InstallFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowLayer::ISetSpatialFilter(int iGeomField,\n                                               const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5148,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5149,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5158,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5159,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5160,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5160,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5161,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5161,1
    - Dst: OGRArrowLayer::GetExtentFromMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - iGeomField
    - psExtent
    argTypes:
    - int
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 5172
      start: 5144
    functionDepth: 2
    functionLinenumber: 5144
    functionLinenumberEnd: 5172
    functionName: OGRArrowLayer::FastGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - GetDriverUCName
    - end
    - CPLTestBool
    - c_str
    - find
    - OGRArrowLayer::GetExtentFromMetadata
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::FastGetExtent(int iGeomField,\n                                         OGREnvelope
      *psExtent) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowLayer::FastGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5181,1
    - Dst: CanRunNonForcedGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5186,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5207,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5210,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5214,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5219,1
    - Dst: std::static_pointer_cast<arrow::BinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5220,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5223,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5223,1
    - Dst: std::static_pointer_cast<arrow::LargeBinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5225,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5230,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5237,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5239,1
    - Dst: OGRWKBGetBoundingBox
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5248,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5248,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5251,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5257,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5259,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5262,1
    - Dst: OGREnvelope*::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5263,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5271,1
    - Dst: std::static_pointer_cast<arrow::BinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5273,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5276,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5276,1
    - Dst: std::static_pointer_cast<arrow::LargeBinaryArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5278,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5287,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5290,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5294,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5297,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5298,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5304,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5305,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5305,1
    - Dst: static_cast<const arrow::ListArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5306,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5307,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5307,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5308,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5309,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5310,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5310,1
    - Dst: std::static_pointer_cast<arrow::ListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5311,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5312,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5313,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5313,1
    - Dst: std::static_pointer_cast<arrow::FixedSizeListArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5316,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5317,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5318,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5318,1
    - Dst: std::static_pointer_cast<arrow::DoubleArray>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5320,1
    - Dst: auto::values
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5321,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5325,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5328,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5330,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5334,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5336,1
    - Dst: auto::value_length
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5340,1
    - Dst: auto::value_offset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5342,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5347,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5356,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5358,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5361,1
    - Dst: OGREnvelope*::IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5362,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5374,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 5375
      start: 5178
    functionDepth: 4
    functionLinenumber: 5178
    functionLinenumberEnd: 5375
    functionName: OGRArrowLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - auto::IsNull
    - OGRArrowLayer::ResetReading
    - GetGeomFieldDefn
    - auto::GetType
    - static_cast<const arrow::ListArray *>
    - std::static_pointer_cast<arrow::DoubleArray>
    - auto::value_offset
    - CanRunNonForcedGetExtent
    - auto::values
    - std::static_pointer_cast<arrow::FixedSizeListArray>
    - ReadNextBatch
    - OGREnvelope*::Merge
    - OGREnvelope
    - auto::value_length
    - OGRLayer::IGetExtent
    - static_cast<int>
    - std::static_pointer_cast<arrow::LargeBinaryArray>
    - get
    - CPLAssert
    - OGRWKBGetBoundingBox
    - num_rows
    - auto::type_id
    - OGREnvelope*::IsInit
    - std::static_pointer_cast<arrow::BinaryArray>
    - OGRArrowLayer::FastGetExtent
    - std::static_pointer_cast<arrow::ListArray>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                                       bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5386,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5387,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5388,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5388,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5389,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5389,1
    - Dst: OGRArrowLayer::GetExtentFromMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5392,1
    - Dst: OGREnvelope3D*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - iGeomField
    - psExtent
    argTypes:
    - int
    - OGREnvelope3D*
    constantsTouched: []
    func_position:
      end: 5399
      start: 5381
    functionDepth: 2
    functionLinenumber: 5381
    functionLinenumberEnd: 5399
    functionName: OGRArrowLayer::FastGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - GetDriverUCName
    - end
    - CPLTestBool
    - c_str
    - find
    - OGRArrowLayer::GetExtentFromMetadata
    - CPLGetConfigOption
    - OGREnvelope3D*::Is3D
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::FastGetExtent3D(int iGeomField,\n                                           OGREnvelope3D
      *psExtent) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowLayer::FastGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5408,1
    - Dst: OGRLayer::IGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope3D*
    - bool
    constantsTouched: []
    func_position:
      end: 5414
      start: 5405
    functionDepth: 3
    functionLinenumber: 5405
    functionLinenumberEnd: 5414
    functionName: OGRArrowLayer::IGetExtent3D
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRArrowLayer::FastGetExtent3D
    - OGRLayer::IGetExtent3D
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRArrowLayer::IGetExtent3D(int iGeomField,\n                                          OGREnvelope3D
      *psExtent, bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OverriddenPrivate *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5439,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5442,1
    - Dst: OverriddenPrivate::OverriddenPrivate
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5447,1
    - Dst: OGRArrowDataset*::GetSharedMemoryPool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - poDS
    - obj
    argTypes:
    - OGRArrowDataset*
    - T*
    constantsTouched: []
    func_position:
      end: 5454
      start: 5421
    functionDepth: 1
    functionLinenumber: 5421
    functionLinenumberEnd: 5454
    functionName: OverrideArrowRelease
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - release
    - static_cast<OverriddenPrivate *>
    - OGRArrowDataset*::GetSharedMemoryPool
    - OverriddenPrivate::OverriddenPrivate
    linkageType: ''
    returnType: void
    signature: void OverrideArrowRelease(OGRArrowDataset *poDS, T *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5462,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5462,1
    - Dst: FetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5467,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5473,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5474,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5475,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5485,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5485,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5492,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5496,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5505,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5507,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5510,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5510,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5511,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5513,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5513,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5516,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5521,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5523,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5535,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5536,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5460
    functionDepth: 1
    functionLinenumber: 5460
    functionLinenumberEnd: 5545
    functionName: OGRArrowLayer::UseRecordBatchBaseImplementation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - size
    - CPLTestBool
    - static_cast<int>
    - FetchBool
    - FetchNameValueDef
    - std::vector::size
    - GetGeomFieldDefn
    - auto::GetType
    - auto::IsIgnored
    - CPLDebug
    - EQUAL
    - GetFieldDefn
    - memset
    - CPLGetConfigOption
    - struct ArrowSchema*::release
    - std::vector::resize
    linkageType: ''
    returnType: bool
    signature: bool OGRArrowLayer::UseRecordBatchBaseImplementation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5554,1
    - Dst: OGRArrowLayer::UseRecordBatchBaseImplementation
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 5559
      start: 5551
    functionDepth: 2
    functionLinenumber: 5551
    functionLinenumberEnd: 5559
    functionName: OGRArrowLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRArrowLayer::UseRecordBatchBaseImplementation
    - OGRLayer::GetArrowStream
    linkageType: ''
    returnType: bool
    signature: "bool OGRArrowLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                         CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5569,1
    - Dst: OGRArrowLayer::GetArrowSchemaInternal
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - out_schema
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 5572
      start: 5565
    functionDepth: 3
    functionLinenumber: 5565
    functionLinenumberEnd: 5572
    functionName: OGRArrowLayer::GetArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetArrowSchema
    - OGRArrowLayer::GetArrowSchemaInternal
    linkageType: ''
    returnType: int
    signature: "int OGRArrowLayer::GetArrowSchema(struct ArrowArrayStream *stream,\n
      \                                        struct ArrowSchema *out_schema)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5582
      start: 5578
    functionDepth: 0
    functionLinenumber: 5578
    functionLinenumberEnd: 5582
    functionName: IsSilentlyIgnoredFormatForGetArrowSchemaArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsSilentlyIgnoredFormatForGetArrowSchemaArray(const char *format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::ExportSchema
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5587,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5590,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5591,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5595,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5595,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5608,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5609,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5615,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5618,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5621,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5623,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5643,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5658,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5661,1
    - Dst: IsSilentlyIgnoredFormatForGetArrowSchemaArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5664,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5668,1
    - Dst: FetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5673,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5676,1
    - Dst: GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5676,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5684,1
    - Dst: struct ArrowSchema*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5694,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5703,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5704,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5708,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5713,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5719,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5720,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5720,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5721,1
    - Dst: CreateSchemaForWKBGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5722,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5724,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5726,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5733,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5746,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5747,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5753,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5754,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5757,1
    - Dst: CreateSchemaForWKBGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5759,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5761,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5763,1
    - Dst: OverrideArrowRelease
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5773,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 1
    argNames:
    - out_schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 5776
      start: 5584
    functionDepth: 2
    functionLinenumber: 5584
    functionLinenumberEnd: 5776
    functionName: OGRArrowLayer::GetArrowSchemaInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - GetDriverUCName
    - FetchBool
    - auto::message
    - GetGeomFieldDefn
    - CPLDebug
    - strcmp
    - GetFieldDefn
    - CPLError
    - cpl::contains
    - arrow::ExportSchema
    - auto::ok
    - IsSilentlyIgnoredFormatForGetArrowSchemaArray
    - static_cast<int>
    - release
    - OverrideArrowRelease
    - CPLAssert
    - CreateSchemaForWKBGeometryColumn
    - auto::GetNameRef
    - CPLFree
    - size
    - static_cast<size_t>
    - EQUAL
    - num_fields
    - struct ArrowSchema*::release
    linkageType: ''
    returnType: int
    signature: int OGRArrowLayer::GetArrowSchemaInternal(struct ArrowSchema *out_schema)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetNextArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5786,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5792,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5796,1
    - Dst: ReadNextBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5798,1
    - Dst: InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5802,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5805,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5815,1
    - Dst: arrow::ExportRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5816,1
    - Dst: num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5817,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5818,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5820,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5822,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5832,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5834,1
    - Dst: IsSilentlyIgnoredFormatForGetArrowSchemaArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5835,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5838,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5841,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5861,1
    - Dst: RemoveBBoxOrUnsupportedColumns
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5863,1
    - Dst: RemoveBBoxOrUnsupportedColumns
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5867,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5870,1
    - Dst: FetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5870,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5878,1
    - Dst: auto::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5879,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5889,1
    - Dst: OGRArrowLayer::CreateWKBArrayFromWKTArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5890,1
    - Dst: OGRArrowLayer::CreateWKBArrayFromWKTArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5892,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5896,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5898,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5902,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5903,1
    - Dst: struct ArrowSchema::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5905,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5913,1
    - Dst: struct ArrowSchema::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5920,1
    - Dst: OverrideArrowRelease
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5922,1
    - Dst: IncrFeatureIdx
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5929,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5933,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5935,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5937,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5938,1
    - Dst: OGRArrowLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5942,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5943,1
    - Dst: OGRCloneArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5946,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5950,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5951,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5955,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5956,1
    - Dst: PostFilterArrowArray
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5959,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5960,1
    - Dst: struct ArrowArray*::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5964,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5965,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 99
    argCount: 2
    argNames:
    - stream
    - out_array
    argTypes:
    - struct ArrowArrayStream*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 5976
      start: 5782
    functionDepth: 4
    functionLinenumber: 5782
    functionLinenumberEnd: 5976
    functionName: OGRArrowLayer::GetNextArrowArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - struct ArrowSchema::release
    - memcpy
    - auto::message
    - OGRArrowLayer::TestCapability
    - std::set::insert
    - GetGeomFieldDefn
    - auto::IsIgnored
    - OGRCloneArrowArray
    - strcmp
    - struct ArrowArray*::release
    - RemoveBBoxOrUnsupportedColumns
    - CPLError
    - cpl::contains
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - static_cast<GIntBig>
    - InvalidateCachedBatches
    - ReadNextBatch
    - auto::ok
    - FetchNameValueDef
    - IsSilentlyIgnoredFormatForGetArrowSchemaArray
    - PostFilterArrowArray
    - static_cast<int>
    - release
    - OverrideArrowRelease
    - CPLSPrintf
    - CPLAssert
    - CPLStringList::SetNameValue
    - num_rows
    - CPLFree
    - IncrFeatureIdx
    - auto::release
    - arrow::ExportRecordBatch
    - EQUAL
    - memset
    - OGRLayer::GetNextArrowArray
    - GetFeatureCount
    - OGRArrowLayer::CreateWKBArrayFromWKTArray
    linkageType: ''
    returnType: int
    signature: "int OGRArrowLayer::GetNextArrowArray(struct ArrowArrayStream *stream,\n
      \                                           struct ArrowArray *out_array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:5990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - targetArrayIn
    - nInitialCapacityIn
    argTypes:
    - struct ArrowArray*
    - size_t
    constantsTouched: []
    func_position:
      end: 5991
      start: 5985
    functionDepth: 0
    functionLinenumber: 5985
    functionLinenumberEnd: 5991
    functionName: OGRArrowLayerAppendBuffer::OGRArrowLayerAppendBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - const_cast<void *>
    linkageType: ''
    returnType: void
    signature: "void OGRArrowLayerAppendBuffer(struct ArrowArray *targetArrayIn,\n
      \                             size_t nInitialCapacityIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6000,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6004,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6009,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6016,1
    - Dst: VSIFreeAligned
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - nItemSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 6021
      start: 5994
    functionDepth: 1
    functionLinenumber: 5994
    functionLinenumberEnd: 6021
    functionName: OGRArrowLayerAppendBuffer::Grow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLAssert
    - memcpy
    - VSIFreeAligned
    linkageType: ''
    returnType: bool
    signature: bool Grow(size_t nItemSize) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6026
      start: 6026
    functionDepth: 0
    functionLinenumber: 6026
    functionLinenumberEnd: 6026
    functionName: OGRArrowLayerAppendBuffer::OGRArrowLayerAppendBuffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRArrowLayerAppendBuffer(const OGRArrowLayerAppendBuffer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6028
      start: 6027
    functionDepth: 0
    functionLinenumber: 6027
    functionLinenumberEnd: 6028
    functionName: "&\n    operator=(const OGRArrowLayerAppendBuffer &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRArrowLayerAppendBuffer
    signature: "OGRArrowLayerAppendBuffer &\n    operator=(const OGRArrowLayerAppendBuffer
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6039,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6040,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6041,1
    - Dst: static_cast<struct ArrowArray *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6044,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6045,1
    - Dst: static_cast<const void **>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6051,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6051,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6055,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6061,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6065,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6066,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6069,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6073,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6086,1
    - Dst: VSI_MALLOC_ALIGNED_AUTO_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6092,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6099,1
    - Dst: static_cast<const SourceOffset *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6107,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6109,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6109,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6111,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6111,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6114,1
    - Dst: OGRArrowLayerAppendBuffer::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6114,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6125,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6127,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6131,1
    - Dst: OGRArrowLayerAppendBuffer::GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6131,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 1
    argNames:
    - sourceArray
    argTypes:
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 6134
      start: 6036
    functionDepth: 1
    functionLinenumber: 6036
    functionLinenumberEnd: 6134
    functionName: OGRArrowLayer::CreateWKBArrayFromWKTArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 1
    functionsReached:
    - static_cast<const void **>
    - static_cast<size_t>
    - auto::release
    - static_cast<uint32_t *>
    - static_cast<const uint8_t *>
    - static_cast<struct ArrowArray *>
    - memset
    - CPLAssert
    - static_cast<uint32_t>
    - OGRArrowLayerAppendBuffer::GetSize
    - VSI_MALLOC_ALIGNED_AUTO_VERBOSE
    - const_cast<void *>
    - static_cast<char *>
    - static_cast<uint8_t *>
    - CPLCalloc
    - memcpy
    - static_cast<const SourceOffset *>
    linkageType: ''
    returnType: struct ArrowArray
    signature: 'struct ArrowArray *

      OGRArrowLayer::CreateWKBArrayFromWKTArray(const struct ArrowArray *sourceArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6143,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6146,1
    - Dst: OGRArrowLayer::UseRecordBatchBaseImplementation
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6147,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6152,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6155,1
    - Dst: OGRArrowLayer::FastGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6157,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6163,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6166,1
    - Dst: OGRArrowLayer::FastGetExtent3D
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp:6168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6175
      start: 6140
    functionDepth: 3
    functionLinenumber: 6140
    functionLinenumberEnd: 6175
    functionName: OGRArrowLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowlayer.hpp
    functionUses: 2
    functionsReached:
    - OGRArrowLayer::FastGetExtent3D
    - OGRArrowLayer::UseRecordBatchBaseImplementation
    - EQUAL
    - OGRArrowLayer::FastGetExtent
    - GetGeomFieldCount
    linkageType: ''
    returnType: int
    signature: int OGRArrowLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMemoryPool
    argTypes:
    - std::shared_ptr<arrow::MemoryPool>
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: OGRArrowDataset::OGRArrowDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRArrowDataset::OGRArrowDataset(\n    const std::shared_ptr<arrow::MemoryPool>
      &poMemoryPool)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - std::unique_ptr<OGRArrowLayer>
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: OGRArrowDataset::SetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OGRArrowDataset::SetLayer(std::unique_ptr<OGRArrowLayer> &&poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - osDomainName
    - iFieldIndex
    argTypes:
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: OGRArrowDataset::RegisterDomainName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void OGRArrowDataset::RegisterDomainName(const std::string &osDomainName,\n
      \                                               int iFieldIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: OGRArrowDataset::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRArrowDataset::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:66,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:67,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:68,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:70,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:71,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:73,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:74,1
    - Dst: BuildDomain
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:74,1
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: OGRArrowDataset::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached:
    - end
    - BuildDomain
    - insert
    - find
    - std::pair
    - second::get
    - auto::second::get
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRArrowDataset::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OGRArrowDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRArrowDataset::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: OGRArrowDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/arrow_common/ograrrowdataset.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRArrowDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:40,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poDataset
    - poMemoryPool
    - poOutputStream
    - pszLayerName
    argTypes:
    - OGRParquetWriterDataset*
    - arrow::MemoryPool*
    - std::shared_ptr<arrow::io::OutputStream>
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: OGRParquetWriterLayer::OGRParquetWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: void
    signature: "void OGRParquetWriterLayer::OGRParquetWriterLayer(\n    OGRParquetWriterDataset
      *poDataset, arrow::MemoryPool *poMemoryPool,\n    const std::shared_ptr<arrow::io::OutputStream>
      &poOutputStream,\n    const char *pszLayerName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterLayer::CopyTmpGpkgLayerToFinalFile
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:52,1
    - Dst: FinalizeWriting
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: OGRParquetWriterLayer::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetWriterLayer::CopyTmpGpkgLayerToFinalFile
    - FinalizeWriting
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetWriterLayer::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:76,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:78,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:78,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:87,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:87,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:93,1
    - Dst: GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:97,1
    - Dst: OGRFeature::DeserializeFromBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:98,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:100,1
    - Dst: OGRArrowWriterLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:104,1
    - Dst: CPLDebugProgress
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:111,1
    - Dst: FlushFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:119,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:131,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:132,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:134,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:136,1
    - Dst: std::vector::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:140,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:142,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:142,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:143,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:145,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:149,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:151,1
    - Dst: std::unique_ptr<const OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:155,1
    - Dst: auto::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:155,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:158,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:160,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:166,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:170,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:172,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:186,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:188,1
    - Dst: FlushFeatures
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:204,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:212,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:216,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:217,1
    - Dst: std::unique_ptr<const OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:219,1
    - Dst: GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:220,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:223,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:225,1
    - Dst: auto::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:231,1
    - Dst: OGRFeature::DeserializeFromBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:232,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:235,1
    - Dst: OGRArrowWriterLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:239,1
    - Dst: CPLDebugProgress
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:251,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:265,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:269,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:270,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:271,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:272,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:278,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 281
    functionName: OGRParquetWriterLayer::CopyTmpGpkgLayerToFinalFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 1
    functionsReached:
    - FlushFeatures
    - OGRFeature::DeserializeFromBinary
    - GetDescription
    - OGRArrowWriterLayer::ICreateFeature
    - assert
    - CPLDebug
    - auto::get
    - std::vector::emplace_back
    - CPLError
    - static_cast<GIntBig>
    - std::make_pair
    - CPL_MSBPTR64
    - GetFeature
    - std::vector::empty
    - GetFieldAsBinary
    - VSIUnlink
    - CPLSPrintf
    - std::unique_ptr<const OGRFeature>
    - ExecuteSQL
    - auto::GetNextFeature
    - CPLDebugProgress
    - std::unique_ptr<OGRLayer>
    - std::vector::back
    - auto::GetFieldAsBinary
    - memcpy
    - std::vector::pop_back
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetWriterLayer::CopyTmpGpkgLayerToFinalFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:290,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:291,1
    - Dst: OGRParquetWriterLayer::GetDriverUCName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:297,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:298,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:298,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:298,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:303,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - eGType
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: OGRParquetWriterLayer::IsSupportedGeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetWriterLayer::GetDriverUCName
    - CPLTestBool
    - OGR_GT_HasM
    - CPLError
    - wkbFlatten
    - CPLGetConfigOption
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterLayer::IsSupportedGeometryType(\n    OGRwkbGeometryType
      eGType) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:318,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:318,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:320,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:322,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:322,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:324,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:324,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:326,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:329,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:334,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:334,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:334,1
    - Dst: MarkSuppressOnClose
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:338,1
    - Dst: CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:339,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:343,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:344,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:346,1
    - Dst: StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:354,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:356,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:358,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:368,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:373,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:385,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:385,1
    - Dst: OGRParquetWriterLayer::IsSupportedGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:391,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:396,1
    - Dst: GetPreciseArrowGeomEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:402,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:406,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:407,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:408,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:411,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:412,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:413,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:417,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:422,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:423,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:433,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:435,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:436,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:437,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:439,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:444,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:446,1
    - Dst: compression
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:453,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:455,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:456,1
    - Dst: created_by
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:457,1
    - Dst: created_by
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:459,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:463,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:463,1
    - Dst: disable_statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:464,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:468,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:468,1
    - Dst: enable_write_page_index
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:469,1
    - Dst: disable_statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:474,1
    - Dst: parquet::schema::ColumnPath::FromDotString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:475,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:476,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:483,1
    - Dst: atoll
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:483,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:492,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:493,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 3
    argNames:
    - papszOptions
    - poSpatialRef
    - eGType
    argTypes:
    - CSLConstList
    - OGRSpatialReference*
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 497
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 497
    functionName: OGRParquetWriterLayer::SetOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - RMFDataset::GetCompressionType
    - enable_write_page_index
    - atoi
    - GetDescription
    - GetGeomFieldDefn
    - auto::Create
    - created_by
    - CPLString
    - CPLError
    - std::make_unique<OGRFieldDefn>
    - MarkSuppressOnClose
    - CPLGetConfigOption
    - std::string::c_str
    - std::string::empty
    - SetGeomType
    - auto::ok
    - GetGDALDriverManager
    - CreateLayer
    - arrow::util::Codec::IsAvailable
    - disable_statistics
    - OGRParquetWriterLayer::IsSupportedGeometryType
    - parquet::schema::ColumnPath::FromDotString
    - CPLTestBool
    - compression
    - StartTransaction
    - CreateField
    - CPL_IGNORE_RET_VAL
    - static_cast<int64_t>
    - OGRSpatialReference*::Clone
    - std::string
    - CSLFetchNameValueDef
    - GetPreciseArrowGeomEncoding
    - EQUAL
    - atoll
    - CPLErrorOnce
    - push_back
    - reset
    - auto::Release
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterLayer::SetOptions(CSLConstList papszOptions,\n
      \                                      const OGRSpatialReference *poSpatialRef,\n
      \                                      OGRwkbGeometryType eGType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterLayer::Close
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:505,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:508,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:510,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 513
    functionName: OGRParquetWriterLayer::CloseFileWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::ok
    - auto::message
    - OGRParquetWriterLayer::Close
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetWriterLayer::CloseFileWriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:523,1
    - Dst: OGRSpatialReference*::FindMatches
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:529,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:540,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:546,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:550,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:566,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:570,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:588,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:593,1
    - Dst: OSRFreeSRSArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:595,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:596,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 600
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 600
    functionName: IdentifyCRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::GetAuthorityName
    - FromHandle
    - EQUAL
    - OGRSpatialReference*::IsSame
    - OSRFreeSRSArray
    - CPLFree
    - OGRSpatialReference*::FindMatches
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference IdentifyCRS(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:612,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:614,1
    - Dst: RemoveIDFromMemberOfEnsembles
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:616,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:619,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:620,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:622,1
    - Dst: Delete
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 627
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 627
    functionName: RemoveIDFromMemberOfEnsembles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 3
    functionsReached:
    - CPLJSONObject::GetType
    - RemoveIDFromMemberOfEnsembles
    - CPLJSONObject::GetName
    - CPLJSONObject::GetChildren
    - Delete
    - CPLJSONObject::ToArray
    linkageType: ''
    returnType: void
    signature: void RemoveIDFromMemberOfEnsembles(CPLJSONObject &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:641,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:642,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:642,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:644,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:645,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:646,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:647,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:648,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:649,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:650,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:652,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:653,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:654,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:654,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:655,1
    - Dst: GetGeomEncodingAsString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:656,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:658,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:658,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:660,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:672,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:674,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:675,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:679,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:679,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:687,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:687,1
    - Dst: OGRSpatialReference::exportToPROJJSON
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:693,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:694,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:695,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:695,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:696,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:697,1
    - Dst: RemoveIDFromMemberOfEnsembles
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:698,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:699,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:707,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:709,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:710,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:715,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:719,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:725,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:728,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:729,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:730,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:735,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:739,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:740,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:741,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:743,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:744,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:745,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:747,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:748,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:753,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:753,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:756,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:757,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:758,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:759,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:763,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:764,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:764,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:765,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:766,1
    - Dst: AddComponent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:768,1
    - Dst: AddComponent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:769,1
    - Dst: AddComponent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:770,1
    - Dst: AddComponent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:771,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:776,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:796,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:796,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:798,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:800,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:807,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:809,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:812,1
    - Dst: GetStringGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:812,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:814,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:817,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:819,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 820
    functionName: OGRParquetWriterLayer::GetGeoMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - GetGeomFieldDefn
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - RemoveIDFromMemberOfEnsembles
    - CPLJSONObject::Format
    - GetGeomFieldCount
    - CPLGetConfigOption
    - AddComponent
    - CPLJSONArray::CPLJSONArray
    - GetGeomEncodingAsString
    - OGR_GT_HasZ
    - IsInit
    - wkbFlatten
    - CPLJSONArray::Add
    - CPLJSONDocument::LoadMemory
    - CPLTestBool
    - auto::GetSpatialRef
    - CPLJSONObject::CPLJSONObject
    - CPL_IGNORE_RET_VAL
    - auto::GetNameRef
    - OGR_GT_HasM
    - CPLFree
    - name
    - OGRSpatialReference::exportToPROJJSON
    - EQUAL
    - GetStringGeometryType
    - std::string
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::string
    signature: std::string OGRParquetWriterLayer::GetGeoMetadata() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterLayer::GetGeoMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:830,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:832,1
    - Dst: const_cast<arrow::KeyValueMetadata *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:837,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:837,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:840,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:841,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:842,1
    - Dst: auto::Append
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:843,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:843,1
    - Dst: auto::WithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:844,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:847,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:848,1
    - Dst: ::arrow::ipc::SerializeSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:851,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:852,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:856,1
    - Dst: ::arrow::util::base64_encode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:858,1
    - Dst: const_cast<arrow::KeyValueMetadata *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:860,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:861,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:862,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:867,1
    - Dst: GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:869,1
    - Dst: GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:869,1
    - Dst: GetMultiDomainMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:871,1
    - Dst: auto::GetDomainList
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:872,1
    - Dst: auto::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:876,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:877,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:879,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:880,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:883,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:883,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:887,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:890,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:893,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:904,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:906,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:909,1
    - Dst: const_cast<arrow::KeyValueMetadata *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:913,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:913,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:916,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 919
    functionName: OGRParquetWriterLayer::PerformStepsBeforeFinalFlushGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<arrow::KeyValueMetadata>
    - ::arrow::util::base64_encode
    - GetDomainList
    - CPLJSONDocument::GetRoot
    - CPLJSONObject::Format
    - STARTS_WITH
    - CPLGetConfigOption
    - auto::GetDomainList
    - auto::GetMetadata
    - std::string::empty
    - auto::ok
    - ::arrow::ipc::SerializeSchema
    - const_cast<arrow::KeyValueMetadata *>
    - std::move
    - auto::WithMetadata
    - auto::metadata
    - CPLJSONDocument::LoadMemory
    - CPLTestBool
    - ToString
    - CPLJSONObject::CPLJSONObject
    - get
    - auto::Append
    - GetMultiDomainMetadata
    - CPLFree
    - OGRParquetWriterLayer::GetGeoMetadata
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void OGRParquetWriterLayer::PerformStepsBeforeFinalFlushGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:936,1
    - Dst: parquet::arrow::ToParquetSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:936,1
    - Dst: std::static_pointer_cast<parquet::schema::GroupNode>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:939,1
    - Dst: std::shared_ptr::schema_root
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:940,1
    - Dst: ::arrow::Schema::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:942,1
    - Dst: ::arrow::Schema::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:943,1
    - Dst: std::make_shared<arrow::KeyValueMetadata>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:944,1
    - Dst: PARQUET_CATCH_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:948,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:948,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:949,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:949,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:950,1
    - Dst: std::make_shared<::arrow::Schema>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:952,1
    - Dst: parquet::arrow::FileWriter::Make
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:953,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:954,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:954,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - schema
    - pool
    - sink
    - properties
    - arrow_properties
    - writer
    - outMetadata
    argTypes:
    - ::arrow::Schema
    - ::arrow::MemoryPool*
    - std::shared_ptr<::arrow::io::OutputStream>
    - std::shared_ptr<parquet::WriterProperties>
    - std::shared_ptr<parquet::ArrowWriterProperties>
    - std::unique_ptr<parquet::arrow::FileWriter>*
    - std::shared_ptr<const arrow::KeyValueMetadata>*
    constantsTouched: []
    func_position:
      end: 956
      start: 927
    functionDepth: 4
    functionLinenumber: 927
    functionLinenumberEnd: 956
    functionName: Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 237
    functionsReached:
    - std::make_shared<arrow::KeyValueMetadata>
    - std::shared_ptr::schema_root
    - std::make_shared<::arrow::Schema>
    - RETURN_NOT_OK
    - PARQUET_CATCH_NOT_OK
    - std::static_pointer_cast<parquet::schema::GroupNode>
    - OGRAPISpyOpen
    - std::move
    - ::arrow::Schema::metadata
    - parquet::arrow::ToParquetSchema
    - parquet::arrow::FileWriter::Make
    linkageType: ''
    returnType: arrow::Status
    signature: "arrow::Status Open(const ::arrow::Schema &schema, ::arrow::MemoryPool
      *pool,\n     std::shared_ptr<::arrow::io::OutputStream> sink,\n     std::shared_ptr<parquet::WriterProperties>
      properties,\n     std::shared_ptr<parquet::ArrowWriterProperties> arrow_properties,\n
      \    std::unique_ptr<parquet::arrow::FileWriter> *writer,\n     std::shared_ptr<const
      arrow::KeyValueMetadata> *outMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateSchemaCommon
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: OGRParquetWriterLayer::CreateSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - CreateSchemaCommon
    linkageType: ''
    returnType: void
    signature: void OGRParquetWriterLayer::CreateSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowWriterLayer::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:974,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:976,1
    - Dst: disable_statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:978,1
    - Dst: parquet::schema::ColumnPath::FromDotString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:979,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:980,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 985
      start: 971
    functionDepth: 4
    functionLinenumber: 971
    functionLinenumberEnd: 985
    functionName: OGRParquetWriterLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - parquet::schema::ColumnPath::FromDotString
    - back
    - OGRArrowWriterLayer::CreateGeomField
    - GetGeomFieldDefn
    - disable_statistics
    - GetGeomFieldCount
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRParquetWriterLayer::CreateGeomField(const OGRGeomFieldDefn
      *poField,\n                                              int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:993,1
    - Dst: OGRParquetWriterLayer::CreateSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:997,1
    - Dst: FinalizeSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1001,1
    - Dst: FlatGeobuf::ColumnBuilder
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1005,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1006,1
    - Dst: Open
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1006,1
    - Dst: build
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1007,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 991
    functionDepth: 5
    functionLinenumber: 991
    functionLinenumberEnd: 1010
    functionName: OGRParquetWriterLayer::CreateWriter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - FinalizeSchema
    - Open
    - FlatGeobuf::ColumnBuilder
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - std::move
    - OGRParquetWriterLayer::CreateSchema
    - build
    linkageType: ''
    returnType: void
    signature: void OGRParquetWriterLayer::CreateWriter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowWriterLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1021,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1026,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1027,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1030,1
    - Dst: OGRFeature*::SerializeToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1037,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1044,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1046,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1051,1
    - Dst: OGRFeature::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1052,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1053,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1053,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1053,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1053,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1054,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1055,1
    - Dst: auto::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1060,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1061,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1062,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1063,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1064,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1065,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1066,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1067,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1068,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1068,1
    - Dst: OGRFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1069,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1069,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1071,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1072
      start: 1016
    functionDepth: 4
    functionLinenumber: 1016
    functionLinenumberEnd: 1072
    functionName: OGRParquetWriterLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - OGRArrowWriterLayer::ICreateFeature
    - auto::addRingDirectly
    - CPLError
    - OGRFeature::SetGeometryDirectly
    - OGRFeature*::SerializeToBinary
    - std::make_unique<OGRLinearRing>
    - CreateFeature
    - std::vector::data
    - GetLayerDefn
    - static_cast<int>
    - OGRFeature*::GetFID
    - OGRFeature::SetField
    - auto::getEnvelope
    - std::make_unique<OGRPolygon>
    - OGRFeature*::GetGeometryRef
    - auto::IsEmpty
    - empty
    - auto::addPoint
    - auto::release
    - OGRFeature::SetFID
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRParquetWriterLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewRowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1081,1
    - Dst: NewRowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1083,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1083,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1085,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1087,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1088,1
    - Dst: ClearArrayBuilers
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1089,1
    - Dst: WriteArrays
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1093,1
    - Dst: WriteColumnChunk
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1097,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1098,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1100,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1102,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1102,1
    - Dst: ClearArrayBuilers
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1110
    functionName: OGRParquetWriterLayer::FlushGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - WriteColumnChunk
    - auto::ok
    - auto::message
    - ClearArrayBuilers
    - NewRowGroup
    - WriteArrays
    - length
    - CPLError
    - name
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetWriterLayer::FlushGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWKBFixupCounterClockWiseExternalRing
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pabyWkb
    - nLen
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 1123
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1123
    functionName: OGRParquetWriterLayer::FixupWKBGeometryBeforeWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRWKBFixupCounterClockWiseExternalRing
    linkageType: ''
    returnType: void
    signature: "void OGRParquetWriterLayer::FixupWKBGeometryBeforeWriting(GByte *pabyWkb,\n
      \                                                         size_t nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1134,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1134,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1140,1
    - Dst: isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1142,1
    - Dst: isClockwise
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1143,1
    - Dst: reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1145,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1153,1
    - Dst: OGRParquetWriterLayer::FixupGeometryBeforeWriting
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1158
    functionName: OGRParquetWriterLayer::FixupGeometryBeforeWriting
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterLayer::FixupGeometryBeforeWriting
    - OGRGeometry*::toGeometryCollection
    - OGRGeometry*::toPolygon
    - reversePoints
    - wkbFlatten
    - isClockwise
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: void OGRParquetWriterLayer::FixupGeometryBeforeWriting(OGRGeometry
      *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::WriteArrowBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1176,1
    - Dst: WriteArrowBatchInternal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1179,1
    - Dst: NewBufferedRowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1183,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1186,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1188,1
    - Dst: WriteRecordBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1192,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1195,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - schema
    - array
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1203
      start: 1165
    functionDepth: 7
    functionLinenumber: 1165
    functionLinenumberEnd: 1203
    functionName: OGRParquetWriterLayer::WriteArrowBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::WriteArrowBatch
    - WriteArrowBatchInternal
    - auto::ok
    - auto::message
    - WriteRecordBatch
    - CPLError
    - NewBufferedRowGroup
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterLayer::WriteArrowBatch(const struct ArrowSchema
      *schema,\n                                       struct ArrowArray *array,\n
      \                                      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1213,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1217,1
    - Dst: OGRArrowWriterLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1226
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1226
    functionName: OGRParquetWriterLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRArrowWriterLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRParquetWriterLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::CreateFieldFromArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1242,1
    - Dst: OGRArrowWriterLayer::CreateFieldFromArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - schema
    - papszOptions
    argTypes:
    - struct ArrowSchema*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1247
      start: 1233
    functionDepth: 5
    functionLinenumber: 1233
    functionLinenumberEnd: 1247
    functionName: OGRParquetWriterLayer::CreateFieldFromArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::CreateFieldFromArrowSchema
    - OGRArrowWriterLayer::CreateFieldFromArrowSchema
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterLayer::CreateFieldFromArrowSchema(\n    const
      struct ArrowSchema *schema, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IsArrowSchemaSupported
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1265,1
    - Dst: OGRParquetWriterLayer::IsArrowSchemaSupported
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - schema
    - papszOptions
    - osErrorMsg
    argTypes:
    - struct ArrowSchema*
    - CSLConstList
    - std::string
    constantsTouched: []
    func_position:
      end: 1306
      start: 1255
    functionDepth: 5
    functionLinenumber: 1255
    functionLinenumberEnd: 1306
    functionName: OGRParquetWriterLayer::IsArrowSchemaSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterLayer::IsArrowSchemaSupported
    - OGRLayer::IsArrowSchemaSupported
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterLayer::IsArrowSchemaSupported(\n    const struct
      ArrowSchema *schema, CSLConstList papszOptions,\n    std::string &osErrorMsg)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1316,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp:1318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1321
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1321
    functionName: OGRParquetWriterLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRPGTableLayer::SetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRParquetWriterLayer::SetMetadata(char **papszMetadata,\n
      \                                         const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1330
    functionName: OGRParquetWriterLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRParquetWriterLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arrow::MemoryPool::CreateDefault
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poOutputStream
    argTypes:
    - std::shared_ptr<arrow::io::OutputStream>
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: OGRParquetWriterDataset::OGRParquetWriterDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - arrow::MemoryPool::CreateDefault
    linkageType: ''
    returnType: void
    signature: "void OGRParquetWriterDataset::OGRParquetWriterDataset(\n    const
      std::shared_ptr<arrow::io::OutputStream> &poOutputStream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:37,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: OGRParquetWriterDataset::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterDataset::Close
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRParquetWriterDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: OGRParquetWriterDataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRParquetWriterDataset::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: OGRParquetWriterDataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRParquetWriterDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:75,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: OGRParquetWriterDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRParquetWriterDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:93,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:98,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:100,1
    - Dst: std::make_unique<OGRParquetWriterLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:102,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:103,1
    - Dst: SetOptions
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:104,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:106,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: OGRParquetWriterDataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRParquetWriterLayer>
    - OGRGeomFieldDefn*::GetType
    - get
    - SetOptions
    - OGRGeomFieldDefn*::GetSpatialRef
    - reset
    - CPLError
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRParquetWriterDataset::ICreateLayer(const char *pszName,\n
      \                                     const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterDataset::AddFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:124,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - domain
    - failureReason
    argTypes:
    - std::unique_ptr<OGRFieldDomain>
    - std::string
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: OGRParquetWriterDataset::AddFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterDataset::AddFieldDomain
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetWriterDataset::AddFieldDomain(\n    std::unique_ptr<OGRFieldDomain>
      &&domain, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterDataset::GetFieldDomainNames
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:134,1
    - Dst: std::vector<std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: OGRParquetWriterDataset::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterDataset::GetFieldDomainNames
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRParquetWriterDataset::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetWriterDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: OGRParquetWriterDataset::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetwriterdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRParquetWriterDataset::GetFieldDomain
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      OGRParquetWriterDataset::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: schema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:48,1
    - Dst: OGRParquetDatasetLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:49,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:50,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:50,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:50,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - poDS
    - pszLayerName
    - bIsVSI
    - dataset
    - papszOpenOptions
    argTypes:
    - OGRParquetDataset*
    - char*
    - bool
    - std::shared_ptr<arrow::dataset::Dataset>
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: OGRParquetDatasetLayer::OGRParquetDatasetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - schema
    - CPLAssert
    - OGRParquetDatasetLayer::EstablishFeatureDefn
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: "void OGRParquetDatasetLayer::OGRParquetDatasetLayer(\n    OGRParquetDataset
      *poDS, const char *pszLayerName, bool bIsVSI,\n    const std::shared_ptr<arrow::dataset::Dataset>
      &dataset,\n    CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:68,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:72,1
    - Dst: GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:73,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:75,1
    - Dst: std::static_pointer_cast<arrow::StructType>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:78,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:78,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:79,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:80,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:81,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:82,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:90,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:91,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:92,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:92,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:93,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:93,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:94,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:94,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:99,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:99,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:105,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:108,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:109,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 15
    argCount: 2
    argNames:
    - field
    - oJSONGeometryColumn
    argTypes:
    - std::shared_ptr<arrow::Field>
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 113
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 113
    functionName: OGRParquetDatasetLayer::ProcessGeometryColumnCovering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::static_pointer_cast<arrow::StructType>
    - std::shared_ptr<arrow::Field>::name
    - CPLDebug
    - auto::type
    - GetFieldByName
    - GetGeomFieldCount
    - ParseGeometryColumnCovering
    - auto::GetFieldByName
    - std::move
    - GetFieldIndex
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRParquetDatasetLayer::ProcessGeometryColumnCovering(\n    const
      std::shared_ptr<arrow::Field> &field,\n    const CPLJSONObject &oJSONGeometryColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:121,1
    - Dst: LoadGeoMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:123,1
    - Dst: LoadGDALSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:125,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:125,1
    - Dst: LoadGDALMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:127,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:127,1
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:141,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:144,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:144,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:149,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:153,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:153,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:155,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:156,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:158,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:161,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:162,1
    - Dst: auto::Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:168,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:169,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:171,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:171,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:174,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:176,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:178,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:180,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:187,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:188,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:189,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:190,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:192,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:193,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:194,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:195,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:198,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:199,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:200,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:201,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:204,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:205,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:206,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:207,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:210,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:211,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:212,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:213,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:215,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:216,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:223,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:227,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:227,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:233,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:233,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:233,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:235,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:243,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:243,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:244,1
    - Dst: OGRParquetDatasetLayer::ProcessGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:246,1
    - Dst: CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:251,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:256,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:256,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:256,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:257,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:258,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:258,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:258,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:259,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 260
    functionName: OGRParquetDatasetLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 1
    functionsReached:
    - GetObj
    - GetString
    - std::set::insert
    - auto::Flatten
    - auto::get
    - auto::size
    - auto::name
    - GetGeomFieldCount
    - metadata
    - end
    - CPLJSONArray::CPLJSONArray
    - insert
    - find
    - auto::type
    - std::move
    - LoadGeoMetadata
    - CPLJSONArray::Add
    - static_cast<int>
    - CPLJSONObject::CPLJSONObject
    - OGRParquetDatasetLayer::ProcessGeometryColumnCovering
    - CreateFieldFromSchema
    - LoadGDALSchema
    - GetFieldCount
    - std::set::find
    - CPLAssert
    - LoadGDALMetadata
    - size
    - empty
    - fields
    - num_fields
    - ParseGeometryColumnCovering
    - CPLJSONObject::Add
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void OGRParquetDatasetLayer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    functionName: WKBGeometryOptionsType::WKBGeometryOptionsType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WKBGeometryOptionsType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: WKBGeometryOptionsType::type_name
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *type_name() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WKBGeometryOptionsType::WKBGeometryOptionsType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: WKBGeometryOptionsType::GetSingleton
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - WKBGeometryOptionsType::WKBGeometryOptionsType
    linkageType: ''
    returnType: WKBGeometryOptionsType
    signature: WKBGeometryOptionsType *GetSingleton()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:305,1
    - Dst: WKBGeometryOptionsType::GetSingleton
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: WKBGeometryOptions::WKBGeometryOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - WKBGeometryOptionsType::GetSingleton
    - std::vector<GByte>
    linkageType: ''
    returnType: void
    signature: "void WKBGeometryOptions(\n        const std::vector<GByte> &abyFilterGeomWkbIn
      = std::vector<GByte>())"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - WKBGeometryOptions
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: operator==(const WKBGeometryOptions &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const WKBGeometryOptions &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<const WKBGeometryOptions *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - cp::FunctionOptions
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: '&

      WKBGeometryOptionsType::Cast(const cp::FunctionOptions &opts)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<const WKBGeometryOptions *>
    linkageType: ''
    returnType: WKBGeometryOptions
    signature: 'WKBGeometryOptions &

      WKBGeometryOptionsType::Cast(const cp::FunctionOptions &opts)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cast
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:328,1
    - Dst: Cast
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - optsA
    - optsB
    argTypes:
    - cp::FunctionOptions
    - cp::FunctionOptions
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: WKBGeometryOptionsType::Compare
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - Cast
    linkageType: ''
    returnType: bool
    signature: "bool WKBGeometryOptionsType::Compare(const cp::FunctionOptions &optsA,\n
      \                                    const cp::FunctionOptions &optsB) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cast
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:334,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - cp::FunctionOptions
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: WKBGeometryOptionsType::Stringify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - Cast
    linkageType: ''
    returnType: std::string
    signature: std::string WKBGeometryOptionsType::Stringify(const cp::FunctionOptions
      &opts) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<WKBGeometryOptions>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:345,1
    - Dst: Cast
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - cp::FunctionOptions
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: WKBGeometryOptionsType::Copy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<WKBGeometryOptions>
    - Cast
    linkageType: ''
    returnType: std::unique_ptr<cp::FunctionOptions>
    signature: std::unique_ptr<cp::FunctionOptions> WKBGeometryOptionsType::Copy(const
      cp::FunctionOptions &opts) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - optionsIn
    argTypes:
    - OptionsType
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: OptionsWrapper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OptionsWrapper(OptionsType optionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<const OptionsType *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:364,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:365,1
    - Dst: std::make_unique<OptionsWrapper>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - cp::KernelInitArgs
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 66
    functionsReached:
    - CPLAssert
    - cpl::down_cast<const OptionsType *>
    - std::make_unique<OptionsWrapper>
    linkageType: ''
    returnType: arrow::Result<std::unique_ptr<cp::KernelState>>
    signature: arrow::Result<std::unique_ptr<cp::KernelState>> Init(cp::KernelContext
      *, const cp::KernelInitArgs &args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<const OptionsWrapper *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:371,1
    - Dst: cp::KernelContext*::state
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cp::KernelContext*
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: '&Get(cp::KernelContext *ctx)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<const OptionsWrapper *>
    - cp::KernelContext*::state
    linkageType: ''
    returnType: OptionsType
    signature: OptionsType &Get(cp::KernelContext *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flatbuffers::Array::Get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:387,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:389,1
    - Dst: auto::abyFilterGeomWkb::data
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:390,1
    - Dst: auto::abyFilterGeomWkb::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:391,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:392,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:393,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:394,1
    - Dst: std::unique_ptr::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:397,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:401,1
    - Dst: cp::ExecSpan::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:401,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:403,1
    - Dst: arrow::ArraySpan::type::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:403,1
    - Dst: arrow::ArraySpan::GetValues
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:407,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:411,1
    - Dst: cp::ExecResult*::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:411,1
    - Dst: cp::ExecResult*::array_span
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:412,1
    - Dst: OGRLayer::FilterWKBGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:431,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:434,1
    - Dst: SetBit
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:438,1
    - Dst: arrow::bit_util::ClearBit
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:440,1
    - Dst: OGRDestroyPreparedGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:445,1
    - Dst: OGRAmigoCloudResultLayer::IsOK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - batch
    - out
    argTypes:
    - cp::KernelContext*
    - cp::ExecSpan
    - cp::ExecResult*
    constantsTouched: []
    func_position:
      end: 448
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 448
    functionName: ExecOGRWKBIntersects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - arrow::ArraySpan::GetValues
    - OGRGeometryFactory::createFromWkb
    - std::unique_ptr::getEnvelope
    - OGRDestroyPreparedGeometry
    - flatbuffers::Array::Get
    - OGRAmigoCloudResultLayer::IsOK
    - auto::abyFilterGeomWkb::size
    - arrow::bit_util::ClearBit
    - cp::ExecSpan::num_values
    - cp::ExecResult*::type
    - CPLAssert
    - SetBit
    - CPL_IGNORE_RET_VAL
    - OGRLayer::FilterWKBGeometry
    - cp::ExecResult*::array_span
    - auto::abyFilterGeomWkb::data
    - std::unique_ptr::get
    - arrow::ArraySpan::type::id
    linkageType: ''
    returnType: arrow::Status
    signature: "arrow::Status ExecOGRWKBIntersects(cp::KernelContext *ctx,\n                                          const
      cp::ExecSpan &batch,\n                                          cp::ExecResult
      *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cp::GetFunctionRegistry
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:456,1
    - Dst: WKBGeometryOptions::WKBGeometryOptions
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:461,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:464,1
    - Dst: WKBGeometryOptionsType::GetSingleton
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:464,1
    - Dst: WKBGeometryOptionsType::GetSingleton
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:465,1
    - Dst: std::make_shared<cp::ScalarFunction>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:469,1
    - Dst: cp::Arity::Unary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:470,1
    - Dst: cp::FunctionDoc
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:470,1
    - Dst: arrow::binary
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:472,1
    - Dst: json_object_new_boolean
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:472,1
    - Dst: auto::AddKernel
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:476,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:476,1
    - Dst: auto::AddFunction
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:477,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 480
    functionName: RegisterOGRWKBIntersectsIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - WKBGeometryOptionsType::GetSingleton
    - cp::FunctionDoc
    - auto::AddFunction
    - json_object_new_boolean
    - cp::GetFunctionRegistry
    - arrow::binary
    - CPLAssert
    - std::make_shared<cp::ScalarFunction>
    - std::move
    - WKBGeometryOptions::WKBGeometryOptions
    - cp::Arity::Unary
    - auto::AddKernel
    linkageType: ''
    returnType: bool
    signature: bool RegisterOGRWKBIntersectsIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:497,1
    - Dst: NewScan
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:497,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:498,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:510,1
    - Dst: std::shared_ptr::FragmentReadahead
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:511,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:518,1
    - Dst: std::shared_ptr::BatchSize
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:519,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:519,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:529,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:531,1
    - Dst: std::shared_ptr::UseThreads
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:531,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:539,1
    - Dst: std::shared_ptr::BatchReadahead
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:540,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:540,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:545,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:546,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:546,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:550,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:551,1
    - Dst: cp::and_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:557,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:558,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:559,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:559,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:561,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:562,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:563,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:563,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:565,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:566,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:567,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:567,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:569,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:570,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:571,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:571,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:573,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:575,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:576,1
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:580,1
    - Dst: cp::and_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:583,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:584,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:584,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:584,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:586,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:587,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:587,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:587,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:589,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:590,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:590,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:590,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:592,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:593,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:594,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:595,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:596,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:602,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:602,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:608,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:609,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:612,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:614,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:614,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:616,1
    - Dst: std::static_pointer_cast<arrow::StructType>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:619,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:620,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:621,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:625,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:627,1
    - Dst: cp::and_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:628,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:629,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:630,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:630,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:631,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:632,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:633,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:633,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:634,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:635,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:636,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:636,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:637,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:638,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:639,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:639,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:640,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:646,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:646,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:652,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:653,1
    - Dst: RegisterOGRWKBIntersectsIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:654,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:657,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:659,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:659,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:662,1
    - Dst: WkbSize
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:662,1
    - Dst: exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:663,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:663,1
    - Dst: fast_float::from_chars_result_t<UC>::call
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:667,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:668,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:668,1
    - Dst: WKBGeometryOptions
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:669,1
    - Dst: cp::Expression::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:671,1
    - Dst: cp::Expression::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:680,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:694,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:700,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:700,1
    - Dst: static_cast<swq_expr_node *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:704,1
    - Dst: GetSWQExpr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:704,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:706,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:707,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:711,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:713,1
    - Dst: cp::Expression::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:717,1
    - Dst: cp::and_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:719,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:719,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:721,1
    - Dst: cp::Expression::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:725,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:727,1
    - Dst: std::shared_ptr::Filter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:727,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:736,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:740,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:740,1
    - Dst: PARQUET_THROW_NOT_OK
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:742,1
    - Dst: std::shared_ptr::Project
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:742,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:745,1
    - Dst: std::shared_ptr::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:749,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:750,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 752
    functionName: OGRParquetDatasetLayer::BuildScanner
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - exportToWkb
    - atoi
    - WkbSize
    - assert
    - GetGeomFieldDefn
    - std::shared_ptr::BatchSize
    - std::vector::emplace_back
    - CPLDebug
    - cp::greater_equal
    - std::shared_ptr::FragmentReadahead
    - WKBGeometryOptions
    - CPLError
    - auto::name
    - CPLGetConfigOption
    - RegisterOGRWKBIntersectsIfNeeded
    - fast_float::from_chars_result_t<UC>::call
    - std::string::c_str
    - auto::id
    - std::string::empty
    - end
    - CPLAtoGIntBig
    - find
    - auto::type
    - std::shared_ptr::Filter
    - cp::Expression::is_valid
    - std::move
    - GetSWQExpr
    - cp::field_ref
    - PARQUET_ASSIGN_OR_THROW
    - auto::emplace_back
    - std::shared_ptr::UseThreads
    - std::vector::data
    - IsEmpty
    - CPLTestBool
    - static_cast<int>
    - std::shared_ptr::Finish
    - std::shared_ptr::BatchReadahead
    - auto::is_valid
    - NewScan
    - auto::GetFieldByName
    - OGRFeature::GetGeomFieldRef
    - cp::and_
    - what
    - std::vector::resize
    - size
    - std::static_pointer_cast<arrow::StructType>
    - CPLDebugOnly
    - fields
    - static_cast<swq_expr_node *>
    - OGRParquetDatasetLayer::BuildArrowFilter
    - PARQUET_THROW_NOT_OK
    - ParseGeometryColumnCovering
    - argparse::Argument::is_decimal_literal
    - std::shared_ptr::Project
    - cp::less_equal
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRParquetDatasetLayer::BuildScanner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:765,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:767,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:768,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:768,1
    - Dst: cp::and_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:769,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:769,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:769,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:770,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:772,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:779,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:781,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:782,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:782,1
    - Dst: FOREACHneighbor_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:783,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:783,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:783,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:789,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:790,1
    - Dst: cp::not_
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:791,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:791,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:797,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:802,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:809,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:813,1
    - Dst: std::shared_ptr::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:813,1
    - Dst: std::static_pointer_cast<arrow::StructType>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:815,1
    - Dst: std::shared_ptr::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:816,1
    - Dst: auto::fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:817,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:819,1
    - Dst: std::shared_ptr::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:819,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:822,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:822,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:822,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:825,1
    - Dst: fast_float::from_chars_result_t<UC>::call
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:828,1
    - Dst: SetThreadSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:829,1
    - Dst: arrow::uint8
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:829,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:834,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:838,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:838,1
    - Dst: cp::field_ref
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:840,1
    - Dst: OGRFeature::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:840,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:841,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:841,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:852,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:852,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:855,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:858,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:863,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:871,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:883,1
    - Dst: arrow::TimestampScalar
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:883,1
    - Dst: argparse::Argument::is_decimal_literal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:888,1
    - Dst: arrow::TimestampScalar
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:888,1
    - Dst: IsComparisonOp
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:901,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:903,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:905,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:906,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:906,1
    - Dst: find_tile_idx_lesser_or_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:909,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:909,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:909,1
    - Dst: TABSeamless::TABSeamless
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:911,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:911,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:911,1
    - Dst: cp::less_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:913,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:913,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:913,1
    - Dst: cp::greater
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:915,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:915,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:915,1
    - Dst: cp::greater_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:917,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:917,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:917,1
    - Dst: cp::not_equal
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:919,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:919,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:919,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:929,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:930,1
    - Dst: cp::GetFunctionRegistry
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:932,1
    - Dst: fast_float::from_chars_result_t<UC>::call
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:937,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:938,1
    - Dst: cp::MatchSubstringOptions
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:939,1
    - Dst: OGRParquetDatasetLayer::BuildArrowFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:949,1
    - Dst: auto::is_valid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:950,1
    - Dst: cp::is_null
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:951,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:951,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 97
    argCount: 2
    argNames:
    - poNode
    - bFullyTranslated
    argTypes:
    - swq_expr_node*
    - bool
    constantsTouched: []
    func_position:
      end: 956
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 956
    functionName: OGRParquetDatasetLayer::BuildArrowFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 2
    functionsReached:
    - cp::greater
    - IsComparisonOp
    - find_tile_idx_lesser_or_equal
    - std::vector::emplace_back
    - cp::greater_equal
    - GetFieldDefn
    - auto::fields
    - fast_float::from_chars_result_t<UC>::call
    - cp::not_equal
    - cp::MatchSubstringOptions
    - cp::not_
    - std::move
    - SetThreadSafe
    - cp::field_ref
    - arrow::uint8
    - static_cast<int>
    - std::shared_ptr::name
    - GetFieldCount
    - std::shared_ptr::type
    - CPLAssert
    - auto::is_valid
    - OGRFeature::GetGeomFieldRef
    - cp::and_
    - name
    - static_cast<int64_t>
    - std::static_pointer_cast<arrow::StructType>
    - cp::is_null
    - fields
    - cp::GetFunctionRegistry
    - arrow::TimestampScalar
    - OGRParquetDatasetLayer::BuildArrowFilter
    - FOREACHneighbor_
    - argparse::Argument::is_decimal_literal
    - TABSeamless::TABSeamless
    - cp::less_equal
    - OGRParseDate
    linkageType: ''
    returnType: cp::Expression
    signature: "cp::Expression OGRParquetDatasetLayer::BuildArrowFilter(const swq_expr_node
      *poNode,\n                                         bool &bFullyTranslated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetDatasetLayer::BuildScanner
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:965,1
    - Dst: ToRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:973,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:974,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:976,1
    - Dst: auto::status
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:978,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:991,1
    - Dst: ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:992,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:993,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:995,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:996,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:997,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1001,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1004,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1008,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1011
    functionName: OGRParquetDatasetLayer::ReadNextBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - ReadNext
    - auto::ok
    - auto::message
    - auto::status
    - SetBatch
    - ToRecordBatchReader
    - std::shared_ptr::num_rows
    - OGRParquetDatasetLayer::BuildScanner
    - reset
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetDatasetLayer::ReadNextBatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1021,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1026,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1026,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1035
    functionName: OGRParquetDatasetLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    - GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRParquetDatasetLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetDatasetLayer::BuildScanner
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1046,1
    - Dst: CountRows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1049,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1050,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1054
      start: 1041
    functionDepth: 5
    functionLinenumber: 1041
    functionLinenumberEnd: 1054
    functionName: OGRParquetDatasetLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::ok
    - CountRows
    - OGRLayer::GetFeatureCount
    - OGRParquetDatasetLayer::BuildScanner
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRParquetDatasetLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1063,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iGeomField
    - psExtent
    argTypes:
    - int
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1071
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1071
    functionName: OGRParquetDatasetLayer::FastGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetDatasetLayer::FastGetExtent(int iGeomField,\n                                           OGREnvelope
      *psExtent) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetDatasetLayer::FastGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1080,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1089,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1090,1
    - Dst: GetFragments
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1092,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1093,1
    - Dst: OGREnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1095,1
    - Dst: ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1100,1
    - Dst: ReadPhysicalSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1103,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1104,1
    - Dst: metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1107,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1108,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1110,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1111,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1112,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1112,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1114,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1115,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1116,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1118,1
    - Dst: GetExtentFromMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1119,1
    - Dst: OGREnvelope*::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1123,1
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1141
      start: 1077
    functionDepth: 4
    functionLinenumber: 1077
    functionLinenumberEnd: 1141
    functionName: OGRParquetDatasetLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::GetRoot
    - GetExtentFromMetadata
    - OGRParquetDatasetLayer::FastGetExtent
    - end
    - metadata
    - auto::ok
    - auto::Contains
    - OGRAmigoCloudTableLayer::IGetExtent
    - find
    - OGREnvelope*::Merge
    - OGREnvelope
    - CPLJSONDocument::LoadMemory
    - ReadPhysicalSchema
    - ok
    - auto::Get
    - auto::IsValid
    - auto::GetObj
    - GetFragments
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRParquetDatasetLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                          bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1152,1
    - Dst: InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1158
    functionName: OGRParquetDatasetLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudTableLayer::ISetSpatialFilter
    - InvalidateCachedBatches
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRParquetDatasetLayer::ISetSpatialFilter(int iGeomField,\n
      \                                                const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1167,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1169,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1170,1
    - Dst: OGRAPISpy_L_SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1172,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1181,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1181,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1182,1
    - Dst: GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1182,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1185,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1186,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1190,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1198,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1203,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1212,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1217,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1219,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1220,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1221,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1225,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1230,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1230,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1235,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1240,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1245,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1247,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1248,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1248,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1249,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1249,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1253,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1257,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1261,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1263,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1264,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1264,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1265,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1265,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1269,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1276,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1276,1
    - Dst: InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1279,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1282
      start: 1164
    functionDepth: 4
    functionLinenumber: 1164
    functionLinenumberEnd: 1282
    functionName: OGRParquetDatasetLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - InvalidateCachedBatches
    - static_cast<int>
    - fields
    - GetGeomFieldDefn
    - GetFIDColumn
    - GetFieldCount
    - auto::type
    - OGRAPISpy_L_SetIgnoredFields
    - push_back
    - GetFieldDefn
    - auto::name
    - GetGeomFieldCount
    - emplace_back
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRParquetDatasetLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1290,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1293,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1296,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1296,1
    - Dst: OGRParquetLayerBase::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1306
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1306
    functionName: OGRParquetDatasetLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - size
    - static_cast<int>
    - OGRParquetLayerBase::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRParquetDatasetLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1316
      start: 1312
    functionDepth: 4
    functionLinenumber: 1312
    functionLinenumberEnd: 1316
    functionName: OGRParquetDatasetLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdatasetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRParquetDatasetLayer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:40,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:41,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - pszLayerName
    - papszOpenOptions
    argTypes:
    - OGRParquetDataset*
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: OGRParquetLayerBase::OGRParquetLayerBase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: void
    signature: "void OGRParquetLayerBase::OGRParquetLayerBase(OGRParquetDataset *poDS,\n
      \                                        const char *pszLayerName,\n                                         CSLConstList
      papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OGRParquetLayerBase::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRParquetLayerBase::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:65,1
    - Dst: OGRArrowLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: OGRParquetLayerBase::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRArrowLayer::ResetReading
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayerBase::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetLayerBase::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: OGRParquetLayerBase::InvalidateCachedBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetLayerBase::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayerBase::InvalidateCachedBatches()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<const arrow::KeyValueMetadata>::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:87,1
    - Dst: std::shared_ptr<const arrow::KeyValueMetadata>::Get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:89,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:90,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:92,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:92,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:93,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:94,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:96,1
    - Dst: auto::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:97,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:103,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:106,1
    - Dst: auto::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:109,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:110,1
    - Dst: auto::GetChildren
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:112,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:114,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - kv_metadata
    argTypes:
    - std::shared_ptr<const arrow::KeyValueMetadata>
    constantsTouched: []
    func_position:
      end: 125
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 125
    functionName: OGRParquetLayerBase::LoadGeoMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<const arrow::KeyValueMetadata>::Contains
    - CPLJSONDocument::LoadMemory
    - auto::GetString
    - auto::GetChildren
    - auto::GetObj
    - auto::ok
    - std::shared_ptr<const arrow::KeyValueMetadata>::Get
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - auto::IsValid
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - GetName
    - auto::c_str
    linkageType: ''
    returnType: void
    signature: "void OGRParquetLayerBase::LoadGeoMetadata(\n    const std::shared_ptr<const
      arrow::KeyValueMetadata> &kv_metadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:139,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:140,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:143,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:143,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:149,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:149,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:149,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:150,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:151,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:152,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:153,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:154,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:156,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:157,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:158,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:159,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:160,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:160,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:161,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:161,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:162,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:163,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:164,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:165,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:166,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:167,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:168,1
    - Dst: GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:169,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:170,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:170,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:171,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:171,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:172,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:172,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:174,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:175,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:176,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:177,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:178,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 16
    argCount: 6
    argNames:
    - oJSONDef
    - osBBOXColumn
    - osXMin
    - osYMin
    - osXMax
    - osYMax
    argTypes:
    - CPLJSONObject
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 185
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 185
    functionName: OGRParquetLayerBase::ParseGeometryColumnCovering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - ToString
    - auto::GetType
    - GetType
    - auto::IsValid
    - auto::Size
    - auto::ToArray
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayerBase::ParseGeometryColumnCovering(\n    const
      CPLJSONObject &oJSONDef, std::string &osBBOXColumn,\n    std::string &osXMin,
      std::string &osYMin, std::string &osXMax,\n    std::string &osYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::Field>::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:195,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:199,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:200,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:205,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:205,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:206,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:208,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:208,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:209,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:215,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:215,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:216,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:217,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:217,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:218,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:220,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:221,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:223,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:224,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:224,1
    - Dst: IsValidGeometryEncoding
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:229,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:230,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:234,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:238,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:240,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:243,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:244,1
    - Dst: OGRSpatialReference*::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:245,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:248,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:250,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:251,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:252,1
    - Dst: OGRSpatialReference*::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:254,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:254,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:256,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:260,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:264,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:265,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:267,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:268,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:270,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:271,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:274,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:274,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:277,1
    - Dst: OGRSpatialReference*::SetCoordinateEpoch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:288,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:290,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:292,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:295,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:297,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:298,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:299,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:299,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:301,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:303,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:306,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:308,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:313,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:318,1
    - Dst: auto::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:319,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:320,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:321,1
    - Dst: auto::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:324,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:326,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:328,1
    - Dst: auto::ToArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:330,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:331,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:334,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:334,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:336,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:354,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:354,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:355,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:357,1
    - Dst: auto::Size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:358,1
    - Dst: GetGeometryTypeFromString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:360,1
    - Dst: ToString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:361,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:362,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:362,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:368,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:369,1
    - Dst: PromoteToCollection
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:371,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:371,1
    - Dst: OGR_GT_Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:372,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:380,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:383,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:389,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:389,1
    - Dst: computeGeometryTypeFun
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:392,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:396,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:397,1
    - Dst: std::shared_ptr<arrow::Field>::nullable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:397,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:398,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:399,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:405,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:405,1
    - Dst: FindString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:406,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:406,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:408,1
    - Dst: std::shared_ptr::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:409,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:413,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:415,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:417,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:421,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:422,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:424,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:426,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:428,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:432,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:433,1
    - Dst: std::shared_ptr<arrow::Field>::nullable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:433,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:435,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:437,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:438,1
    - Dst: auto::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:439,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:439,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:441,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:443,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:446,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:447,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 134
    argCount: 3
    argNames:
    - iFieldIdx
    - field
    - computeGeometryTypeFun
    argTypes:
    - int
    - std::shared_ptr<arrow::Field>
    - std::function<OGRwkbGeometryType(void)>
    constantsTouched: []
    func_position:
      end: 452
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 452
    functionName: OGRParquetLayerBase::DealWithGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetString
    - auto::GetType
    - CPLDebug
    - OGRSpatialReference*::importFromWkt
    - OGRSpatialReference*::Release
    - OGRGeomFieldDefn::SetSpatialRef
    - STARTS_WITH
    - std::string::c_str
    - CPLGetConfigOption
    - auto::c_str
    - auto::ToArray
    - std::string::empty
    - auto::sorted_pairs
    - end
    - OGRSpatialReference*::SetAxisMappingStrategy
    - std::shared_ptr<arrow::Field>::name
    - OGRGeomFieldDefn::SetType
    - auto::find
    - auto::ok
    - find
    - OGR_GT_HasZ
    - PromoteToCollection
    - std::shared_ptr::id
    - OGRSpatialReference*::importFromEPSG
    - second::c_str
    - SetMetadataItem
    - auto::Size
    - std::shared_ptr<arrow::Field>::nullable
    - FindString
    - auto::SetFromUserInput
    - auto::ToString
    - c_str
    - CPLTestBool
    - OGRGeomFieldDefn::SetNullable
    - ToString
    - CPLJSONObject::CPLJSONObject
    - auto::Get
    - auto::empty
    - GetGeometryTypeFromString
    - first::c_str
    - std::shared_ptr<arrow::Field>::type
    - auto::IsValid
    - OGR_GT_HasM
    - auto::SetAxisMappingStrategy
    - OGRSpatialReference*::SetCoordinateEpoch
    - OGR_GT_SetModifier
    - OGRSpatialReference::OGRSpatialReference
    - empty
    - AddGeomFieldDefn
    - IsValidGeometryEncoding
    - computeGeometryTypeFun
    - OGRSpatialReference*::SetFromUserInput
    - CPLJSONObject::GetObj
    - push_back
    - std::shared_ptr<arrow::Field>::metadata
    - auto::Release
    - OGR_GT_Flatten
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayerBase::DealWithGeometryColumn(\n    int iFieldIdx,
      const std::shared_ptr<arrow::Field> &field,\n    std::function<OGRwkbGeometryType(void)>
      computeGeometryTypeFun)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:460,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:466,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:468,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:469,1
    - Dst: OGRArrowLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 477
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 477
    functionName: OGRParquetLayerBase::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - OGRArrowLayer::TestCapability
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGRParquetLayerBase::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:489,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:489,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:491,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:491,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:492,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:495,1
    - Dst: arrow::SetCpuThreadPoolCapacity
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: OGRParquetLayerBase::GetNumCPUs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - min
    - EQUAL
    - CPL_IGNORE_RET_VAL
    - CPLGetNumCPUs
    - arrow::SetCpuThreadPoolCapacity
    linkageType: ''
    returnType: int
    signature: int OGRParquetLayerBase::GetNumCPUs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:509,1
    - Dst: set_batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:514,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:514,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:523,1
    - Dst: set_use_threads
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:525,1
    - Dst: OGRParquetLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:528,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:529,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:529,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:529,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:530,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:532,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - poDS
    - pszLayerName
    - arrow_reader
    - papszOpenOptions
    argTypes:
    - OGRParquetDataset*
    - char*
    - std::unique_ptr<parquet::arrow::FileReader>
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 533
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 533
    functionName: OGRParquetLayer::OGRParquetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLTestBool
    - static_cast<int>
    - CPLAtoGIntBig
    - CPLAssert
    - OGRParquetLayer::EstablishFeatureDefn
    - std::move
    - set_batch_size
    - begin
    - GetGeomFieldCount
    - set_use_threads
    linkageType: ''
    returnType: void
    signature: "void OGRParquetLayer::OGRParquetLayer(\n    OGRParquetDataset *poDS,
      const char *pszLayerName,\n    std::unique_ptr<parquet::arrow::FileReader> &&arrow_reader,\n
      \   CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:541,1
    - Dst: auto::key_value_metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:542,1
    - Dst: LoadGeoMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:544,1
    - Dst: LoadGDALSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:546,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:546,1
    - Dst: LoadGDALMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:548,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:548,1
    - Dst: GetSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:550,1
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:567,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:570,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:570,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:575,1
    - Dst: auto::schema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:576,1
    - Dst: auto::Column
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:583,1
    - Dst: auto::path
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:584,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:590,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:592,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:593,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:594,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:595,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:597,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:598,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:599,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:600,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:601,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:602,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:603,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:604,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:605,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:606,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:608,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:609,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:610,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:614,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:615,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:616,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:617,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:619,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:620,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:621,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:622,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:625,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:626,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:627,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:628,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:631,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:632,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:633,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:634,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:637,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:638,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:639,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:640,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:642,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:643,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:644,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:648,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:649,1
    - Dst: GetObj
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:651,1
    - Dst: GetString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:652,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:653,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:654,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:655,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:656,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:657,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:658,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:659,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:660,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:661,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:662,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:665,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:666,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:667,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:668,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:670,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:671,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:672,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:673,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:676,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:677,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:678,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:679,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:682,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:683,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:684,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:685,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:688,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:689,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:690,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:691,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:693,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:694,1
    - Dst: num_fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:698,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:707,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:707,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:708,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:709,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:711,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:721,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:721,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:721,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:723,1
    - Dst: auto::Column
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:734,1
    - Dst: OGRParquetLayer::ComputeGeometryColumnType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:737,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:738,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:747,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:747,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:748,1
    - Dst: OGRParquetLayer::ProcessGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:750,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:755,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:756,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:762,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:763,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:764,1
    - Dst: auto::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:764,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:767,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:768,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:771,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:772,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:777,1
    - Dst: OGRParquetLayer::CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:785,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:790,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:790,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:790,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:791,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:792,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:792,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:792,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:793,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:794,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:794,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:794,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:795,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:796,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:796,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:796,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:797,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:799,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:803,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:806,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:807,1
    - Dst: arrow::util::Codec::GetCodecAsString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:808,1
    - Dst: auto::compression
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:809,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 817
    functionName: OGRParquetLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - GetSchema
    - GetObj
    - std::map::end
    - GetString
    - std::set::insert
    - auto::get
    - CPLDebug
    - OGRParquetLayer::ProcessGeometryColumnCovering
    - std::vector::push_back
    - auto::name
    - GetGeomFieldCount
    - STARTS_WITH
    - arrow::util::Codec::GetCodecAsString
    - CPLJSONArray::CPLJSONArray
    - end
    - auto::path
    - insert
    - find
    - auto::type
    - std::move
    - parquet_reader
    - auto::metadata
    - LoadGeoMetadata
    - CPLJSONArray::Add
    - static_cast<int>
    - auto::schema
    - CPLJSONObject::CPLJSONObject
    - LoadGDALSchema
    - GetFieldCount
    - auto::empty
    - auto::key_value_metadata
    - std::set::find
    - std::map::find
    - first::c_str
    - CPLAssert
    - LoadGDALMetadata
    - OGRParquetLayer::ComputeGeometryColumnType
    - size
    - empty
    - fields
    - auto::Column
    - auto::compression
    - max
    - OGRParquetLayer::CreateFieldFromSchema
    - num_fields
    - ParseGeometryColumnCovering
    - push_back
    - std::string
    - CPLJSONObject::Add
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseGeometryColumnCovering
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:835,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:839,1
    - Dst: GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:840,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:842,1
    - Dst: std::static_pointer_cast<arrow::StructType>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:845,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:845,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:846,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:847,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:848,1
    - Dst: auto::GetFieldByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:849,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:854,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:855,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:856,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:857,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:858,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:859,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:860,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:861,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:865,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:866,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:867,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:868,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:869,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:870,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:871,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:871,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:872,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:872,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:873,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:873,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:875,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:878,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:878,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:884,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:887,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:888,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:897,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:898,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:899,1
    - Dst: GeomColBBOXParquet::anParquetCols::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:901,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:906,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:907,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 24
    argCount: 3
    argNames:
    - field
    - oJSONGeometryColumn
    - oMapParquetColumnNameToIdx
    argTypes:
    - std::shared_ptr<arrow::Field>
    - CPLJSONObject
    - std::map<std::string, int>
    constantsTouched: []
    func_position:
      end: 911
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 911
    functionName: OGRParquetLayer::ProcessGeometryColumnCovering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - std::static_pointer_cast<arrow::StructType>
    - std::map<std::string, int>::find
    - std::shared_ptr<arrow::Field>::name
    - CPLDebug
    - auto::type
    - GetFieldByName
    - GeomColBBOXParquet::anParquetCols::push_back
    - first::c_str
    - GetGeomFieldCount
    - ParseGeometryColumnCovering
    - auto::GetFieldByName
    - std::string
    - std::move
    - GetFieldIndex
    - STARTS_WITH
    - std::string::c_str
    - std::map<std::string, int>::end
    linkageType: ''
    returnType: void
    signature: "void OGRParquetLayer::ProcessGeometryColumnCovering(\n    const std::shared_ptr<arrow::Field>
      &field,\n    const CPLJSONObject &oJSONGeometryColumn,\n    const std::map<std::string,
      int> &oMapParquetColumnNameToIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:920,1
    - Dst: auto::schema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:921,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:923,1
    - Dst: auto::Column
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:928,1
    - Dst: auto::path
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:929,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:931,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:931,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:932,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:932,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:932,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:933,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:943,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - iParquetCol
    - field
    argTypes:
    - int
    - std::shared_ptr<arrow::Field>
    constantsTouched: []
    func_position:
      end: 948
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 948
    functionName: OGRParquetLayer::CheckMatchArrowParquetColumnNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<arrow::Field>::name
    - auto::schema
    - auto::path
    - auto::Column
    - STARTS_WITH
    - CPLError
    - auto::size
    - parquet_reader
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::CheckMatchArrowParquetColumnNames(\n    int
      &iParquetCol, const std::shared_ptr<arrow::Field> &field) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:960,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:965,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:966,1
    - Dst: std::vector<int>::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:966,1
    - Dst: std::static_pointer_cast<arrow::DictionaryType>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:969,1
    - Dst: std::shared_ptr<arrow::Field>::type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:969,1
    - Dst: auto::index_type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:970,1
    - Dst: auto::value_type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:971,1
    - Dst: IsIntegerArrowType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:972,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:972,1
    - Dst: std::shared_ptr<arrow::Field>::name
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:976,1
    - Dst: RegisterDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:977,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:978,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:979,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:981,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:990,1
    - Dst: std::shared_ptr<arrow::Field>::Flatten
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:994,1
    - Dst: auto::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:996,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:997,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:997,1
    - Dst: OGRParquetLayer::CheckMatchArrowParquetColumnNames
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1001,1
    - Dst: auto::back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1004,1
    - Dst: OGRParquetLayer::CreateFieldFromSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1005,1
    - Dst: MapArrowTypeToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1025,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1029,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1029,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1030,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 5
    argNames:
    - field
    - bParquetColValid
    - iParquetCol
    - path
    - oMapFieldNameToGDALSchemaFieldDefn
    argTypes:
    - std::shared_ptr<arrow::Field>
    - bool
    - int
    - std::vector<int>
    - std::map<std::string, std::unique_ptr<OGRFieldDefn>>
    constantsTouched: []
    func_position:
      end: 1037
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 1037
    functionName: OGRParquetLayer::CreateFieldFromSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - OGRParquetLayer::CheckMatchArrowParquetColumnNames
    - IsIntegerArrowType
    - std::shared_ptr<arrow::Field>::Flatten
    - auto::size
    - auto::id
    - auto::back
    - std::shared_ptr<arrow::Field>::name
    - auto::index_type
    - std::move
    - std::vector<int>::size
    - static_cast<int>
    - auto::value_type
    - std::static_pointer_cast<arrow::DictionaryType>
    - RegisterDomainName
    - GetFieldCount
    - MapArrowTypeToOGR
    - std::shared_ptr<arrow::Field>::type
    - auto::push_back
    - OGRParquetLayer::CreateFieldFromSchema
    - push_back
    linkageType: ''
    returnType: void
    signature: "void OGRParquetLayer::CreateFieldFromSchema(\n    const std::shared_ptr<arrow::Field>
      &field, bool bParquetColValid,\n    int &iParquetCol, const std::vector<int>
      &path,\n    const std::map<std::string, std::unique_ptr<OGRFieldDefn>>\n        &oMapFieldNameToGDALSchemaFieldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1050,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1050,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1050,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1054,1
    - Dst: properties
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1056,1
    - Dst: set_batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1057,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1058,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1058,1
    - Dst: std::shared_ptr::ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1063,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1064,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1066,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1067,1
    - Dst: set_batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1071,1
    - Dst: BuildDomainFromBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1072,1
    - Dst: set_batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - osDomainName
    - iFieldIndex
    argTypes:
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 1077
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1077
    functionName: OGRParquetLayer::BuildDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - properties
    - CPLError
    - fields
    - auto::ok
    - auto::message
    - GetRecordBatchReader
    - BuildDomainFromBatch
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - set_batch_size
    - type
    - std::shared_ptr::ReadNext
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDomain>
    signature: "std::unique_ptr<OGRFieldDomain> OGRParquetLayer::BuildDomain(const
      std::string &osDomainName,\n                             int iFieldIndex) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1094,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1096,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1097,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1097,1
    - Dst: std::shared_ptr::ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1104,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1105,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1107,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1108,1
    - Dst: ComputeGeometryColumnTypeProcessBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - iGeomCol
    - iParquetCol
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1122
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1122
    functionName: OGRParquetLayer::ComputeGeometryColumnType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - CPLError
    - ComputeGeometryColumnTypeProcessBatch
    - auto::ok
    - auto::message
    - GetRecordBatchReader
    - CPL_IGNORE_RET_VAL
    - std::vector::reserve
    - std::shared_ptr::ReadNext
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRParquetLayer::ComputeGeometryColumnType(int iGeomCol,
      int iParquetCol) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1134,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1136,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1139,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1139,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1144,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1144,1
    - Dst: std::shared_ptr::ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1152,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1153,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1155,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1156,1
    - Dst: std::shared_ptr::column
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1162,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1164,1
    - Dst: auto::type_id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1165,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1166,1
    - Dst: auto::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1169,1
    - Dst: static_cast<const arrow::Int64Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1174,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1175,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1177,1
    - Dst: std::shared_ptr::columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1177,1
    - Dst: static_cast<const arrow::Int32Array *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1183,1
    - Dst: auto::Value
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1184,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1186,1
    - Dst: std::shared_ptr::columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1194
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1194
    functionName: OGRParquetLayer::GetFeatureExplicitFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::shared_ptr::columns
    - auto::IsNull
    - CPLError
    - auto::type_id
    - auto::Value
    - auto::ok
    - auto::message
    - std::shared_ptr::column
    - GetRecordBatchReader
    - static_cast<const arrow::Int64Array *>
    - auto::get
    - std::shared_ptr::num_rows
    - CPL_IGNORE_RET_VAL
    - static_cast<const arrow::Int32Array *>
    - std::vector::reserve
    - std::shared_ptr::ReadNext
    - ReadFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRParquetLayer::GetFeatureExplicitFID(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1206,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1219,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1225,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1230,1
    - Dst: arrow::Status::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1232,1
    - Dst: std::shared_ptr::ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1241,1
    - Dst: arrow::Status::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1242,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1244,1
    - Dst: arrow::Status::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1245,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1252,1
    - Dst: ReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1256,1
    - Dst: std::shared_ptr::columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1256,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1257,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1266
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1266
    functionName: OGRParquetLayer::GetFeatureByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::columns
    - auto::SetFID
    - arrow::Status::message
    - GetRecordBatchReader
    - std::shared_ptr::num_rows
    - arrow::Status::ok
    - CPLError
    - std::shared_ptr::ReadNext
    - parquet_reader
    - ReadFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRParquetLayer::GetFeatureByIndex(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1274,1
    - Dst: OGRParquetLayer::GetFeatureExplicitFID
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1276,1
    - Dst: OGRParquetLayer::GetFeatureByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1282
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1282
    functionName: OGRParquetLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetLayer::GetFeatureExplicitFID
    - empty
    - OGRParquetLayer::GetFeatureByIndex
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRParquetLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetLayerBase::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1290,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1291,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1298
    functionName: OGRParquetLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetLayerBase::ResetReading
    - empty
    - begin
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1308,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1310,1
    - Dst: OGRParquetLayer::CreateRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iStartingRowGroup
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1312
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1312
    functionName: OGRParquetLayer::CreateRecordBatchReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - std::vector::push_back
    - OGRParquetLayer::CreateRecordBatchReader
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetLayer::CreateRecordBatchReader(int iStartingRowGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1320,1
    - Dst: GetRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1325,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1330,1
    - Dst: arrow::Status::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - anRowGroups
    argTypes:
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 1335
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1335
    functionName: OGRParquetLayer::CreateRecordBatchReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - arrow::Status::message
    - GetRecordBatchReader
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::CreateRecordBatchReader(\n    const std::vector<int>
      &anRowGroups)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - nOperation
    - v
    - min
    - max
    argTypes:
    - int
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 1402
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1402
    functionName: IsConstraintPossible
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: IsConstraintPossibleRes
    signature: "IsConstraintPossibleRes IsConstraintPossible(int nOperation, T v,
      T min,\n                                                    T max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1412,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1421
    functionName: OGRParquetLayer::IncrFeatureIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - empty
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayer::IncrFeatureIdx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1437,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1438,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1442,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1447,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1452,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1469,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1478,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1479,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1496,1
    - Dst: auto::schema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1497,1
    - Dst: auto::Column
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1502,1
    - Dst: auto::path
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1504,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1505,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1506,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1507,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1512,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1513,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1514,1
    - Dst: OGRParquetLayer::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1534,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1539,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1550,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1561,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1572,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1596,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1609,1
    - Dst: OGRParquetLayer::GetMinMaxForOGRField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1612,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1630,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1634,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1635,1
    - Dst: IsConstraintPossible
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1639,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1649,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1654,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1655,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1657,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1658,1
    - Dst: IsConstraintPossible
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1660,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1670,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1674,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1675,1
    - Dst: IsConstraintPossible
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1679,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1688,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1692,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1693,1
    - Dst: IsConstraintPossible
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1697,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1699,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1700,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1701,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1714,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1717,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1720,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1721,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1726,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1727,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1733,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1742,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1746,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1765,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1766,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1767,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1768,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1771,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1777,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1778,1
    - Dst: OGRParquetLayer::CreateRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1779,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1784,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1785,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1789,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1790,1
    - Dst: num_row_groups
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1791,1
    - Dst: OGRParquetLayer::CreateRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1794,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1806,1
    - Dst: ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1807,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1808,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1810,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1811,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1812,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1823,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1826,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1828,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1427
    functionDepth: 2
    functionLinenumber: 1427
    functionLinenumberEnd: 1831
    functionName: OGRParquetLayer::ReadNextBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - std::vector::size
    - auto::message
    - CPLDebug
    - OGRParquetLayer::GetMinMaxForOGRField
    - OGRParquetLayer::CreateRecordBatchReader
    - std::shared_ptr::num_rows
    - GetFieldDefn
    - std::vector::push_back
    - CPLError
    - auto::size
    - static_cast<GIntBig>
    - auto::find
    - auto::path
    - std::make_pair
    - ReadNext
    - auto::ok
    - find
    - auto::RowGroup
    - OGRParquetLayer::GetReader
    - auto::statistics
    - std::vector::empty
    - parquet_reader
    - auto::metadata
    - emplace_back
    - c_str
    - static_cast<int>
    - auto::schema
    - GetFieldCount
    - OGR_RawField_SetNull
    - CPLAssert
    - begin
    - auto::num_values
    - empty
    - auto::is_stats_set
    - SetBatch
    - reset
    - auto::Column
    - num_row_groups
    - OGRParquetLayer::GetMinMaxForParquetCol
    - IsConstraintPossible
    - std::string
    - clear
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetLayer::ReadNextBatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetLayerBase::InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1837
    functionDepth: 1
    functionLinenumber: 1837
    functionLinenumberEnd: 1841
    functionName: OGRParquetLayer::InvalidateCachedBatches
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetLayerBase::InvalidateCachedBatches
    linkageType: ''
    returnType: void
    signature: void OGRParquetLayer::InvalidateCachedBatches()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1850,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1851,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1852,1
    - Dst: OGRLayer::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1854,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1865,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1868,1
    - Dst: fields
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1871,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1871,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1881,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1886,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1895,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1902,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1903,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1905,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1910,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1912,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1920,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1925,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1930,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1933,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1934,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1936,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1941,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1946,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1950,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1950,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1950,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1951,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1953,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1955,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1959,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1959,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1960,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1961,1
    - Dst: auto::begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1961,1
    - Dst: auto::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1962,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1963,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1966,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1968,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1969,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1971,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1974,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1975,1
    - Dst: auto::second::anParquetCols::begin
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1976,1
    - Dst: auto::second::anParquetCols::end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1977,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1982,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1986,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1987,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1987,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1988,1
    - Dst: ComputeConstraintsArrayIdx
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1994,1
    - Dst: OGRParquetLayer::InvalidateCachedBatches
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:1997,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 1
    argNames:
    - papszFields
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2000
      start: 1847
    functionDepth: 3
    functionLinenumber: 1847
    functionLinenumberEnd: 2000
    functionName: OGRParquetLayer::SetIgnoredFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRParquetLayer::InvalidateCachedBatches
    - GetGeomFieldDefn
    - ComputeConstraintsArrayIdx
    - GetFieldDefn
    - type
    - GetGeomFieldCount
    - auto::begin
    - auto::end
    - end
    - insert
    - find
    - auto::second::anParquetCols::end
    - OGRLayer::SetIgnoredFields
    - auto::second::anParquetCols::begin
    - static_cast<int>
    - GetFieldCount
    - auto::empty
    - CPLAssert
    - size
    - fields
    - push_back
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRParquetLayer::SetIgnoredFields(CSLConstList papszFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2010,1
    - Dst: auto::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2012,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2015
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2015
    functionName: OGRParquetLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::num_rows
    - OGRLayer::GetFeatureCount
    - parquet_reader
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRParquetLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRArrowLayer::FastGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2023,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2027,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2028,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2029,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2029,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2033,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2034,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2039,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2047,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2055,1
    - Dst: OGRParquetLayer::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2063,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2071,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - iGeomField
    - psExtent
    argTypes:
    - int
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2084
      start: 2021
    functionDepth: 3
    functionLinenumber: 2021
    functionLinenumberEnd: 2084
    functionName: OGRParquetLayer::FastGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLTestBool
    - find
    - CPLDebug
    - OGR_RawField_SetNull
    - OGRParquetLayer::GetMinMaxForParquetCol
    - OGRArrowLayer::FastGetExtent
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: bool OGRParquetLayer::FastGetExtent(int iGeomField, OGREnvelope *psExtent)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2092,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2095,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2098,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2101,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2101,1
    - Dst: OGRArrowIsGeoArrowStruct
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2102,1
    - Dst: OGRParquetLayerBase::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2110
      start: 2090
    functionDepth: 5
    functionLinenumber: 2090
    functionLinenumberEnd: 2110
    functionName: OGRParquetLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - OGRArrowIsGeoArrowStruct
    - EQUAL
    - OGRParquetLayerBase::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRParquetLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2120,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2124,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2126,1
    - Dst: num_row_groups
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2126,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2128,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2130,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2130,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2135,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2136,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2141,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2144,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2145,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2151,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2153,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2158,1
    - Dst: auto::metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2161,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2162,1
    - Dst: arrow::util::Codec::GetCodecAsString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2162,1
    - Dst: auto::compression
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2172,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2174,1
    - Dst: auto::key_value_metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2175,1
    - Dst: auto::Contains
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2176,1
    - Dst: auto::Get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2178,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2179,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2181,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2181,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2186,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2187
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2187
    functionName: OGRParquetLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    - OGRDGNV8DataSource::GetMetadataItem
    - auto::Contains
    - auto::ok
    - auto::Get
    - CPLSPrintf
    - num_row_groups
    - EQUAL
    - auto::compression
    - auto::key_value_metadata
    - auto::c_str
    - strstr
    - auto::metadata
    - parquet_reader
    - arrow::util::Codec::GetCodecAsString
    linkageType: ''
    returnType: char
    signature: "char *OGRParquetLayer::GetMetadataItem(const char *pszName,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2196,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2198,1
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2199,1
    - Dst: auto::key_value_metadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2200,1
    - Dst: auto::sorted_pairs
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2203,1
    - Dst: SetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2205,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2205,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2206,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2209,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2193
    functionDepth: 0
    functionLinenumber: 2193
    functionLinenumberEnd: 2212
    functionName: OGRParquetLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - SetNameValue
    - auto::sorted_pairs
    - Clear
    - auto::key_value_metadata
    - EQUAL
    - first::c_str
    - List
    - OGRWFSDataSource::GetMetadata
    - second::c_str
    - parquet_reader
    linkageType: ''
    returnType: char
    signature: char **OGRParquetLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2230,1
    - Dst: OGRArrowLayer::GetArrowStream
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - out_stream
    - papszOptions
    argTypes:
    - struct ArrowArrayStream*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2233
      start: 2218
    functionDepth: 3
    functionLinenumber: 2218
    functionLinenumberEnd: 2233
    functionName: OGRParquetLayer::GetArrowStream
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRArrowLayer::GetArrowStream
    - set_batch_size
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::GetArrowStream(struct ArrowArrayStream *out_stream,\n
      \                                    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parquet_reader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2244,1
    - Dst: auto::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2245,1
    - Dst: OGRParquetLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2250,1
    - Dst: properties
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2258,1
    - Dst: OGRParquetLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2260,1
    - Dst: OGRParquetLayer::CreateRecordBatchReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2268,1
    - Dst: ReadNext
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2274,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2275,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2277,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2278,1
    - Dst: OGRParquetLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2280,1
    - Dst: OGRParquetLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2286,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2289,1
    - Dst: std::shared_ptr::num_rows
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2293,1
    - Dst: SetBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2298,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2303,1
    - Dst: OGRParquetLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2308,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2310
      start: 2239
    functionDepth: 2
    functionLinenumber: 2239
    functionLinenumberEnd: 2310
    functionName: OGRParquetLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - properties
    - ReadNext
    - auto::ok
    - auto::message
    - SetBatch
    - auto::RowGroup
    - auto::num_rows
    - OGRParquetLayer::CreateRecordBatchReader
    - std::shared_ptr::num_rows
    - CPLError
    - OGRParquetLayer::ResetReading
    - parquet_reader
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRParquetLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<parquet::FileMetaData>::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2329,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2331,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2332,1
    - Dst: auto::HasMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2333,1
    - Dst: static_cast<STAT_TYPE *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2335,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2335,1
    - Dst: auto::min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2336,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - metadata
    - iRowGroup
    - numRowGroups
    - iCol
    - bFound
    argTypes:
    - std::shared_ptr<parquet::FileMetaData>
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2350
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2350
    functionName: min
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 109
    functionsReached:
    - std::shared_ptr<parquet::FileMetaData>::RowGroup
    - static_cast<STAT_TYPE *>
    - auto::min
    - auto::is_stats_set
    - auto::HasMinMax
    - auto::get
    - auto::num_values
    - auto::statistics
    linkageType: ''
    returnType: T
    signature: "T min(const std::shared_ptr<parquet::FileMetaData> &metadata,\n                 const
      int iRowGroup, const int numRowGroups, const int iCol,\n                 bool
      &bFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<parquet::FileMetaData>::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2361,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2363,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2364,1
    - Dst: auto::HasMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2365,1
    - Dst: static_cast<STAT_TYPE *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2367,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2367,1
    - Dst: auto::max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2368,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - metadata
    - iRowGroup
    - numRowGroups
    - iCol
    - bFound
    argTypes:
    - std::shared_ptr<parquet::FileMetaData>
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2382
      start: 2352
    functionDepth: 1
    functionLinenumber: 2352
    functionLinenumberEnd: 2382
    functionName: max
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 189
    functionsReached:
    - std::shared_ptr<parquet::FileMetaData>::RowGroup
    - static_cast<STAT_TYPE *>
    - auto::is_stats_set
    - auto::HasMinMax
    - auto::get
    - auto::num_values
    - auto::statistics
    - auto::max
    linkageType: ''
    returnType: T
    signature: "T max(const std::shared_ptr<parquet::FileMetaData> &metadata,\n                 const
      int iRowGroup, const int numRowGroups, const int iCol,\n                 bool
      &bFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<parquet::FileMetaData>::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2397,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2399,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2400,1
    - Dst: auto::HasMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2401,1
    - Dst: static_cast<parquet::ByteArrayStatistics *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2404,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2404,1
    - Dst: auto::min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2405,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2407,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - metadata
    - iRowGroup
    - numRowGroups
    - iCol
    - bFound
    argTypes:
    - std::shared_ptr<parquet::FileMetaData>
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2417
      start: 2387
    functionDepth: 1
    functionLinenumber: 2387
    functionLinenumberEnd: 2417
    functionName: min
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 110
    functionsReached:
    - std::shared_ptr<parquet::FileMetaData>::RowGroup
    - auto::min
    - reinterpret_cast<const char *>
    - auto::is_stats_set
    - auto::HasMinMax
    - auto::get
    - static_cast<parquet::ByteArrayStatistics *>
    - std::move
    - auto::statistics
    linkageType: ''
    returnType: std::string
    signature: "std::string min(const std::shared_ptr<parquet::FileMetaData> &metadata,\n
      \       const int iRowGroup, const int numRowGroups, const int iCol,\n        bool
      &bFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<parquet::FileMetaData>::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2429,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2431,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2432,1
    - Dst: auto::HasMinMax
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2433,1
    - Dst: static_cast<parquet::ByteArrayStatistics *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2436,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2436,1
    - Dst: auto::max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2437,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2439,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - metadata
    - iRowGroup
    - numRowGroups
    - iCol
    - bFound
    argTypes:
    - std::shared_ptr<parquet::FileMetaData>
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2454
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2454
    functionName: max
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 190
    functionsReached:
    - std::shared_ptr<parquet::FileMetaData>::RowGroup
    - reinterpret_cast<const char *>
    - auto::is_stats_set
    - auto::HasMinMax
    - auto::get
    - static_cast<parquet::ByteArrayStatistics *>
    - std::move
    - auto::statistics
    - auto::max
    linkageType: ''
    returnType: std::string
    signature: "std::string max(const std::shared_ptr<parquet::FileMetaData> &metadata,\n
      \       const int iRowGroup, const int numRowGroups, const int iCol,\n        bool
      &bFound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2470,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2471,1
    - Dst: GetArrowFieldTypes
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2484,1
    - Dst: auto::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2490,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2492,1
    - Dst: const_cast<OGRParquetLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2496,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2499,1
    - Dst: static_cast<arrow::TimestampType *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2502,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2502,1
    - Dst: OGRArrowLayer::TimestampToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2506,1
    - Dst: OGRFieldDefn*::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2507,1
    - Dst: OGRArrowLayer::TimestampToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2512,1
    - Dst: OGRFieldDefn*::GetTZFlag
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 12
    argNames:
    - iRowGroup
    - iOGRField
    - bComputeMin
    - sMin
    - bFoundMin
    - bComputeMax
    - sMax
    - bFoundMax
    - eType
    - eSubType
    - osMinTmp
    - osMaxTmp
    argTypes:
    - int
    - int
    - bool
    - OGRField
    - bool
    - bool
    - OGRField
    - bool
    - OGRFieldType
    - OGRFieldSubType
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 2520
      start: 2461
    functionDepth: 2
    functionLinenumber: 2461
    functionLinenumberEnd: 2520
    functionName: OGRParquetLayer::GetMinMaxForOGRField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - static_cast<arrow::TimestampType *>
    - OGRFieldDefn*::GetTZFlag
    - auto::get
    - OGR_RawField_SetNull
    - OGRFieldDefn*::GetType
    - OGRArrowLayer::TimestampToOGR
    - GetArrowFieldTypes
    - const_cast<OGRParquetLayer *>
    - auto::id
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::GetMinMaxForOGRField(int iRowGroup,  // -1 for
      all\n                                           int iOGRField, bool bComputeMin,\n
      \                                          OGRField &sMin, bool &bFoundMin,\n
      \                                          bool bComputeMax, OGRField &sMax,\n
      \                                          bool &bFoundMax, OGRFieldType &eType,\n
      \                                          OGRFieldSubType &eSubType,\n                                           std::string
      &osMinTmp,\n                                           std::string &osMaxTmp)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2535,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2536,1
    - Dst: OGRParquetLayer::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2542,1
    - Dst: auto::num_row_groups
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2543,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2548,1
    - Dst: auto::num_columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2549,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2551,1
    - Dst: auto::ColumnChunk
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2555,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2556,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2557,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2559,1
    - Dst: auto::path_in_schema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2560,1
    - Dst: auto::physical_type
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2564,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2572,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2577,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2587,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2593,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2595,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2602,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2609,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2615,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2619,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2620,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2623,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2639,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2644,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2654,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2660,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2662,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2669,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2676,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2682,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2686,1
    - Dst: std::shared_ptr<arrow::DataType>::id
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2687,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2690,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 13
    argNames:
    - iRowGroup
    - iCol
    - arrowType
    - bComputeMin
    - sMin
    - bFoundMin
    - bComputeMax
    - sMax
    - bFoundMax
    - eType
    - eSubType
    - osMinTmp
    - osMaxTmp
    argTypes:
    - int
    - int
    - std::shared_ptr<arrow::DataType>
    - bool
    - OGRField
    - bool
    - bool
    - OGRField
    - bool
    - OGRFieldType
    - OGRFieldSubType
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 2701
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2701
    functionName: OGRParquetLayer::GetMinMaxForParquetCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 2
    functionsReached:
    - simple_max
    - simple_min
    - CPLError
    - auto::is_stats_set
    - auto::num_columns
    - auto::RowGroup
    - auto::path_in_schema
    - CPLDebug
    - OGR_RawField_SetNull
    - auto::ColumnChunk
    - static_cast<uint32_t>
    - std::shared_ptr<arrow::DataType>::id
    - OGRParquetLayer::GetReader
    - auto::statistics
    - auto::num_row_groups
    - auto::physical_type
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::GetMinMaxForParquetCol(\n    int iRowGroup,
      \ // -1 for all\n    int iCol,\n    const std::shared_ptr<arrow::DataType> &arrowType,
      \ // potentially nullptr\n    bool bComputeMin, OGRField &sMin, bool &bFoundMin,
      bool bComputeMax,\n    OGRField &sMax, bool &bFoundMax, OGRFieldType &eType,\n
      \   OGRFieldSubType &eSubType, std::string &osMinTmp,\n    std::string &osMaxTmp)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp:2715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - iGeom
    - iParquetXMin
    - iParquetYMin
    - iParquetXMax
    - iParquetYMax
    argTypes:
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2726
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2726
    functionName: OGRParquetLayer::GeomColsBBOXParquet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetlayer.cpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: "bool OGRParquetLayer::GeomColsBBOXParquet(int iGeom, int &iParquetXMin,\n
      \                                         int &iParquetYMin, int &iParquetXMax,\n
      \                                         int &iParquetYMax) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetLayerBase
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached:
    - OGRParquetLayerBase
    linkageType: ''
    returnType: class OGRParquetLayerBase
    signature: class OGRParquetLayerBase CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: OGRParquetLayer::GetDriverUCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetDriverUCName() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRParquetLayer::GetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: parquet::arrow::FileReader
    signature: parquet::arrow::FileReader *GetReader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: '&GetMapFieldIndexToParquetColumn() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> &GetMapFieldIndexToParquetColumn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: "&\n    GetArrowFieldTypes() const"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::shared_ptr<arrow::DataType>>
    signature: "std::vector<std::shared_ptr<arrow::DataType>> &\n    GetArrowFieldTypes()
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: OGRParquetLayer::GetFIDParquetColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFIDParquetColumn() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: OGRParquetDatasetLayer::GetDriverUCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetDriverUCName() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: OGRParquetDatasetLayer::BuildDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unique_ptr<OGRFieldDomain>
    signature: "std::unique_ptr<OGRFieldDomain> BuildDomain(const std::string & /*osDomainName*/,\n
      \               int /*iFieldIndex*/) const override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fs
    argTypes:
    - std::shared_ptr<arrow::fs::FileSystem>
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: OGRParquetDataset::SetFileSystem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFileSystem(const std::shared_ptr<arrow::fs::FileSystem> &fs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: OGRParquetWriterLayer::OGRParquetWriterLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRParquetWriterLayer(const OGRParquetWriterLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: '&operator=(const OGRParquetWriterLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRParquetWriterLayer
    signature: OGRParquetWriterLayer &operator=(const OGRParquetWriterLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: OGRParquetWriterLayer::IsFileWriterCreated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFileWriterCreated() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: OGRParquetWriterLayer::GetDriverUCName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string GetDriverUCName() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: OGRParquetWriterLayer::IsSRSRequired
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSRSRequired() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IsArrowSchemaSupported
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - schema
    - papszOptions
    - osErrorMsg
    argTypes:
    - struct ArrowSchema*
    - CSLConstList
    - std::string
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: OGRParquetWriterLayer::IsArrowSchemaSupported
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 1
    functionsReached:
    - OGRLayer::IsArrowSchemaSupported
    linkageType: ''
    returnType: bool
    signature: "bool IsArrowSchemaSupported(const struct ArrowSchema *schema,\n                                CSLConstList
      papszOptions,\n                                std::string &osErrorMsg) const
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::CreateFieldFromArrowSchema
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema
    argTypes:
    - struct ArrowSchema*
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: OGRParquetWriterLayer::CreateFieldFromArrowSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached:
    - OGRLayer::CreateFieldFromArrowSchema
    linkageType: ''
    returnType: bool
    signature: "bool CreateFieldFromArrowSchema(const struct ArrowSchema *schema,\n
      \                              CSLConstList papszOptions = nullptr) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::WriteArrowBatch
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - schema
    - array
    argTypes:
    - struct ArrowSchema*
    - struct ArrowArray*
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: OGRParquetWriterLayer::WriteArrowBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached:
    - OGRLayer::WriteArrowBatch
    linkageType: ''
    returnType: bool
    signature: "bool WriteArrowBatch(const struct ArrowSchema *schema,\n                         struct
      ArrowArray *array,\n                         CSLConstList papszOptions = nullptr)
      override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: OGRParquetWriterDataset::GetMemoryPool
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: arrow::MemoryPool
    signature: arrow::MemoryPool *GetMemoryPool() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: '&GetMultiDomainMetadata()'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogr_parquet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALMultiDomainMetadata
    signature: GDALMultiDomainMetadata &GetMultiDomainMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: constexpr_length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int constexpr_length(const char (&)[N])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:36,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:48,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:50,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:51,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:52,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:57,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:58,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:60,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:61,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 66
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 66
    functionName: OGRParquetDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - memcmp
    - VSIFTellL
    - VSIFReadL
    - STARTS_WITH
    - CPL_LSBPTR32
    linkageType: ''
    returnType: int
    signature: int OGRParquetDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:77,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:90,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:92,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:97,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: OGRParquetDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRParquetDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:120,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:124,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:126,1
    - Dst: OGRParquetDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:129,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: DeclareDeferredOGRParquetPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - OGRParquetDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRParquetPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:44,1
    - Dst: std::shared_ptr<arrow::dataset::DatasetFactory>::Finish
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:44,1
    - Dst: std::shared_ptr<arrow::MemoryPool>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:46,1
    - Dst: arrow::MemoryPool::CreateDefault
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:47,1
    - Dst: std::make_unique<OGRParquetDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:50,1
    - Dst: std::make_unique<OGRParquetDatasetLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:51,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:52,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:52,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:52,1
    - Dst: auto::SetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:54,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:54,1
    - Dst: auto::SetFileSystem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:55,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - osBasePath
    - factory
    - papszOpenOptions
    - fs
    argTypes:
    - std::string
    - std::shared_ptr<arrow::dataset::DatasetFactory>
    - CSLConstList
    - std::shared_ptr<arrow::fs::FileSystem>
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: OpenFromDatasetFactory
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OGRParquetDatasetLayer>
    - auto::SetLayer
    - auto::release
    - CPLGetBasenameSafe
    - auto::get
    - std::make_unique<OGRParquetDataset>
    - std::shared_ptr<arrow::MemoryPool>
    - arrow::MemoryPool::CreateDefault
    - std::move
    - auto::SetFileSystem
    - std::shared_ptr<arrow::dataset::DatasetFactory>::Finish
    - PARQUET_ASSIGN_OR_THROW
    - std::string::c_str
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OpenFromDatasetFactory(\n    const std::string &osBasePath,\n
      \   const std::shared_ptr<arrow::dataset::DatasetFactory> &factory,\n    CSLConstList
      papszOpenOptions,\n    const std::shared_ptr<arrow::fs::FileSystem> &fs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:75,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:75,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:76,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:76,1
    - Dst: std::make_shared<VSIArrowFileSystem>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:79,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:86,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:86,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:91,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:91,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:92,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:94,1
    - Dst: arrow::fs::FileSystemFromUriOrPath
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - osBasePathInOut
    - osQueryParameters
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 98
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 98
    functionName: GetFileSystem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - PARQUET_ASSIGN_OR_THROW
    - arrow::fs::FileSystemFromUriOrPath
    - CPLTestBool
    - CPLFree
    - VSIStatL
    - CPLFormFilenameSafe
    - CPLIsFilenameRelative
    - std::make_shared<VSIArrowFileSystem>
    - CPLGetConfigOption
    - std::string::c_str
    linkageType: ''
    returnType: std::tuple<std::shared_ptr<arrow::fs::FileSystem>, std::string>
    signature: "std::tuple<std::shared_ptr<arrow::fs::FileSystem>, std::string> GetFileSystem(std::string
      &osBasePathInOut,\n              const std::string &osQueryParameters)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSystem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:110,1
    - Dst: arrow::dataset::HivePartitioning::MakeFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:113,1
    - Dst: arrow::dataset::PartitioningOrFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:115,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:115,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:118,1
    - Dst: arrow::dataset::ParquetDatasetFactory::Make
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:119,1
    - Dst: std::make_shared<arrow::dataset::ParquetFileFormat>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:121,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:122,1
    - Dst: OpenFromDatasetFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - osBasePathIn
    - pszMetadataFile
    - osQueryParameters
    - papszOpenOptions
    argTypes:
    - std::string
    - char*
    - std::string
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: OpenParquetDatasetWithMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - arrow::dataset::HivePartitioning::MakeFactory
    - GetFileSystem
    - arrow::dataset::PartitioningOrFactory
    - arrow::dataset::ParquetDatasetFactory::Make
    - std::move
    - std::make_shared<arrow::dataset::ParquetFileFormat>
    - OpenFromDatasetFactory
    - PARQUET_ASSIGN_OR_THROW
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OpenParquetDatasetWithMetadata(\n    const std::string
      &osBasePathIn, const char *pszMetadataFile,\n    const std::string &osQueryParameters,
      CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSystem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:138,1
    - Dst: GetFileInfo
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:143,1
    - Dst: auto::IsFile
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:144,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:146,1
    - Dst: arrow::dataset::FileSystemDatasetFactory::Make
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:147,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:148,1
    - Dst: std::make_shared<arrow::dataset::ParquetFileFormat>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:149,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:150,1
    - Dst: arrow::dataset::HivePartitioning::MakeFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:155,1
    - Dst: arrow::dataset::PartitioningOrFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:156,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:157,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:160,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:163,1
    - Dst: arrow::dataset::FileSystemDatasetFactory::Make
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:164,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:165,1
    - Dst: std::make_shared<arrow::dataset::ParquetFileFormat>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:166,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:167,1
    - Dst: OpenFromDatasetFactory
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - osBasePathIn
    - osQueryParameters
    - papszOpenOptions
    argTypes:
    - std::string
    - std::string
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 171
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 171
    functionName: OpenParquetDatasetWithoutMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - arrow::dataset::FileSystemDatasetFactory::Make
    - arrow::dataset::HivePartitioning::MakeFactory
    - GetFileSystem
    - auto::IsFile
    - arrow::dataset::PartitioningOrFactory
    - std::move
    - std::make_shared<arrow::dataset::ParquetFileFormat>
    - OpenFromDatasetFactory
    - PARQUET_ASSIGN_OR_THROW
    - GetFileInfo
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOpenParquetDatasetWithoutMetadata(const std::string
      &osBasePathIn,\n                                  const std::string &osQueryParameters,\n
      \                                 CSLConstList papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetLayer*::GeomColsBBOXParquet
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:192,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:195,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:196,1
    - Dst: OGRParquetLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:200,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:202,1
    - Dst: auto::CreateLayer
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:204,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:206,1
    - Dst: auto::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:209,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:210,1
    - Dst: OGRParquetLayer*::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:214,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:224,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:229,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:234,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:239,1
    - Dst: OGRParquetLayer*::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:243,1
    - Dst: OGRParquetLayer*::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:249,1
    - Dst: OGRParquetLayer*::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:255,1
    - Dst: OGRParquetLayer*::GetMinMaxForParquetCol
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:261,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:268,1
    - Dst: OGRFeature::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:269,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:270,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:271,1
    - Dst: std::make_unique<OGRPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:272,1
    - Dst: std::make_unique<OGRLinearRing>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:273,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:274,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:275,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:276,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:277,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:278,1
    - Dst: auto::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:279,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:279,1
    - Dst: OGRFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:280,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:280,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:281,1
    - Dst: auto::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:281,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:285,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRParquetLayer*
    constantsTouched: []
    func_position:
      end: 288
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 288
    functionName: BuildMemDatasetWithRowGroupExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::CreateLayer
    - OGRParquetLayer*::GetSpatialRef
    - OGRSpatialReference*::Release
    - auto::addRingDirectly
    - std::make_unique<OGRFieldDefn>
    - OGRFeature::SetGeometryDirectly
    - static_cast<GIntBig>
    - auto::GetLayerDefn
    - auto::RowGroup
    - auto::Clone
    - std::make_unique<OGRLinearRing>
    - auto::CreateField
    - OGRParquetLayer*::GeomColsBBOXParquet
    - OGRFeature::SetField
    - MEMDataset::Create
    - OGR_RawField_SetNull
    - auto::CreateFeature
    - CPL_IGNORE_RET_VAL
    - OGRParquetLayer*::GetMinMaxForParquetCol
    - std::make_unique<OGRPolygon>
    - std::unique_ptr<GDALDataset>
    - auto::release
    - auto::addPoint
    - OGRParquetLayer*::GetReader
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *BuildMemDatasetWithRowGroupExtents(OGRParquetLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:307,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:307,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:314,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:314,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:316,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:319,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:319,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:320,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:320,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:325,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:328,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:328,1
    - Dst: std::string::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:329,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:331,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:331,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:332,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:333,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:334,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:334,1
    - Dst: OpenParquetDatasetWithMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:345,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:346,1
    - Dst: VSIReadDir
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:358,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:358,1
    - Dst: cpl::Iterate
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:359,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:361,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:361,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:367,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:370,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:370,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:370,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:374,1
    - Dst: OpenParquetDatasetWithoutMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:387,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:397,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:398,1
    - Dst: OGRParquetDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:407,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:416,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:418,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:424,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:425,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:425,1
    - Dst: VSIVirtualHandleUniquePtr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:431,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:431,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:431,1
    - Dst: std::make_shared<OGRArrowRandomAccessFile>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:435,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:436,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:440,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:441,1
    - Dst: std::shared_ptr<arrow::MemoryPool>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:446,1
    - Dst: arrow::MemoryPool::CreateDefault
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:447,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:449,1
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:451,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:451,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:451,1
    - Dst: OGREDIGEODataSource::OpenFile
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:453,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:453,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:454,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:455,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:457,1
    - Dst: std::make_unique<OGRParquetDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:463,1
    - Dst: std::make_unique<OGRParquetLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:464,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:465,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:465,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:465,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:466,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:469,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:470,1
    - Dst: BuildMemDatasetWithRowGroupExtents
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:472,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:472,1
    - Dst: auto::SetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:475,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:475,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:480,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:481,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 484
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 484
    functionName: OGRParquetDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIVirtualHandleUniquePtr::reset
    - auto::SetLayer
    - auto::get
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - CPLGetExtensionSafe
    - std::string::empty
    - auto::ok
    - std::string::find
    - OpenParquetDatasetWithMetadata
    - VSI_ISDIR
    - OGREDIGEODataSource::OpenFile
    - std::make_unique<OGRParquetLayer>
    - OGRAPISpyOpen
    - std::shared_ptr<arrow::MemoryPool>
    - std::move
    - strlen
    - std::make_shared<OGRArrowRandomAccessFile>
    - PARQUET_ASSIGN_OR_THROW
    - std::string::back
    - CPLTestBool
    - c_str
    - BuildMemDatasetWithRowGroupExtents
    - VSIFOpenL
    - std::string::resize
    - arrow::MemoryPool::CreateDefault
    - what
    - CPLFormFilenameSafe
    - OGRParquetDriverIdentify
    - auto::release
    - VSIStatL
    - cpl::Iterate
    - CPLGetBasenameSafe
    - std::string::substr
    - std::make_unique<OGRParquetDataset>
    - EQUAL
    - strchr
    - OpenParquetDatasetWithoutMetadata
    - VSIReadDir
    - std::string::pop_back
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRParquetDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:501,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:502,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:502,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:507,1
    - Dst: std::make_shared<OGRArrowWritableFile>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:510,1
    - Dst: PARQUET_ASSIGN_OR_THROW
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:514,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:515,1
    - Dst: OGRParquetWriterDataset::OGRParquetWriterDataset
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:518,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:522,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - eType
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 526
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 526
    functionName: OGRParquetDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - PARQUET_ASSIGN_OR_THROW
    - std::make_shared<OGRArrowWritableFile>
    - CPLTestBool
    - OGRParquetWriterDataset::OGRParquetWriterDataset
    - VSIFOpenL
    - OGRAPISpyOpen
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - what
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRParquetDriverCreate(const char *pszName, int nXSize,\n
      \                                          int nYSize, int nBands,\n                                           GDALDataType
      eType,\n                                           char ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRParquetDriver::InitMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:545,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: OGRParquetDriver::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadata
    - OGRParquetDriver::InitMetadata
    linkageType: ''
    returnType: char
    signature: char **GetMetadata(const char *pszDomain) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:554,1
    - Dst: OGRParquetDriver::InitMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:556,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: OGRParquetDriver::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRParquetDriver::InitMetadata
    - OGRDGNV8DataSource::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *OGRParquetDriver::GetMetadataItem(const char *pszName,\n                                              const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:568,1
    - Dst: RMFDataset::GetCompressionType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:575,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:576,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:577,1
    - Dst: arrow::util::Codec::IsAvailable
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:579,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:581,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:586,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:586,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:587,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:588,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:589,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:591,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:594,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:595,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:596,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:600,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:601,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:606,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:606,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:607,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:608,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:609,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:611,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:615,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:616,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:617,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:618,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:624,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:624,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:625,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:626,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:627,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:629,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:633,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:633,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:634,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:635,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:636,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:638,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:642,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:642,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:643,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:644,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:645,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:651,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:651,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:652,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:653,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:654,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:659,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:659,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:660,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:661,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:662,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:665,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:666,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:667,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:671,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:671,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:672,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:673,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:674,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:677,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:678,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:679,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:683,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:683,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:684,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:685,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:686,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:691,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:691,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:692,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:693,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:694,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:695,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:702,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:702,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:703,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:704,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:705,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:706,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:712,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 714
    functionName: OGRParquetDriver::InitMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 2
    functionsReached:
    - RMFDataset::GetCompressionType
    - CPLCreateXMLElementAndValue
    - CPLCreateXMLNode
    - auto::ok
    - std::vector::emplace_back
    - arrow::util::Codec::IsAvailable
    - EQUAL
    - CPLString
    - CPLXMLTreeCloser::get
    - GDALDriver::SetMetadataItem
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: void OGRParquetDriver::InitMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:722,1
    - Dst: std::make_unique<OGRParquetDriver>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:725,1
    - Dst: OGRParquetDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:726,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:726,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:731,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:733,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:736,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:736,1
    - Dst: arrow::fs::LoadFileSystemFactories
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:744,1
    - Dst: auto::ok
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:745,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:747,1
    - Dst: auto::message
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 753
    functionName: RegisterOGRParquet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - std::make_unique<OGRParquetDriver>
    - OGRParquetDriverSetCommonMetadata
    - auto::release
    - auto::ok
    - auto::message
    - auto::get
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - CPLError
    - arrow::fs::LoadFileSystemFactories
    linkageType: ''
    returnType: void
    signature: void RegisterOGRParquet()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poMemoryPool
    argTypes:
    - std::shared_ptr<arrow::MemoryPool>
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: OGRParquetDataset::OGRParquetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRParquetDataset::OGRParquetDataset(\n    const std::shared_ptr<arrow::MemoryPool>
      &poMemoryPool)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:44,1
    - Dst: std::dynamic_pointer_cast<VSIArrowFileSystem>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:45,1
    - Dst: auto::AskToClose
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: OGRParquetDataset::~OGRParquetDataset()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp
    functionUses: 0
    functionsReached:
    - std::dynamic_pointer_cast<VSIArrowFileSystem>
    - close
    - auto::AskToClose
    linkageType: ''
    returnType: void
    signature: void OGRParquetDataset::~OGRParquetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:61,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:62,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:63,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:65,1
    - Dst: swq_select::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:66,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:78,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:79,1
    - Dst: dynamic_cast<OGRParquetLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:81,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:82,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:86,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:89,1
    - Dst: OGR_RawField_SetNull
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:113,1
    - Dst: auto::GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:124,1
    - Dst: auto::num_row_groups
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:125,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:132,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:134,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:135,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:144,1
    - Dst: auto::GetMinMaxForOGRField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:145,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:153,1
    - Dst: auto::GetMinMaxForOGRField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:154,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:170,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:173,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:174,1
    - Dst: auto::HasDistinctCount
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:176,1
    - Dst: auto::distinct_count
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:184,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:186,1
    - Dst: auto::distinct_count
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:192,1
    - Dst: auto::RowGroup
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:211,1
    - Dst: auto::statistics
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:214,1
    - Dst: auto::is_stats_set
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:215,1
    - Dst: auto::num_values
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:219,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:231,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:244,1
    - Dst: OGRMemLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:246,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:246,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:247,1
    - Dst: OGRMemLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:248,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:261,1
    - Dst: OGRMemLayer*::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:262,1
    - Dst: OGRMemLayer*::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:264,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:265,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:265,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:266,1
    - Dst: OGRMemLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:266,1
    - Dst: swq_select::result_columns
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:275,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:283,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 84
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 284
    functionName: OGRParquetDataset::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp
    functionUses: 0
    functionsReached:
    - swq_select::result_columns
    - swq_select::swq_select
    - CPLDebug
    - auto::HasDistinctCount
    - OGRMemLayer*::CreateField
    - OGRMemLayer*::GetFeature
    - OGRMemLayer*::SetFeature
    - auto::GetMinMaxForOGRField
    - CPLGetConfigOption
    - auto::GetLayerDefn
    - auto::RowGroup
    - swq_select::preparse
    - OGRMemLayer::OGRMemLayer
    - auto::statistics
    - GetLayerByName
    - dynamic_cast<OGRParquetLayer *>
    - auto::num_row_groups
    - OGRFieldDefn::GetNameRef
    - OGRMemLayer*::CreateFeature
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRFieldDefn::SetSubType
    - OGR_RawField_SetNull
    - CPL_IGNORE_RET_VAL
    - auto::num_values
    - auto::GetReader
    - OGRFeature::OGRFeature
    - auto::distinct_count
    - OGRMemLayer*::GetLayerDefn
    - auto::is_stats_set
    - EQUAL
    - GDALDataset::ExecuteSQL
    - OGRFeature*::SetField
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRParquetDataset::ExecuteSQL(const char *pszSQLCommand,\n
      \                                       OGRGeometry *poSpatialFilter,\n                                        const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: OGRParquetDataset::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRParquetDataset::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: OGRParquetDataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/parquet/ogrparquetdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRParquetDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: OGRPGDumpGeomFieldDefn::OGRPGDumpGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpGeomFieldDefn(const OGRPGDumpGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: '&operator=(const OGRPGDumpGeomFieldDefn &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGDumpGeomFieldDefn
    signature: OGRPGDumpGeomFieldDefn &operator=(const OGRPGDumpGeomFieldDefn &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poGeomField
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: OGRPGDumpGeomFieldDefn::OGRPGDumpGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpGeomFieldDefn(OGRGeomFieldDefn *poGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: OGRPGDumpLayer::OGRPGDumpLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer(const OGRPGDumpLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '&operator=(const OGRPGDumpLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGDumpLayer
    signature: OGRPGDumpLayer &operator=(const OGRPGDumpLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: OGRPGDumpLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: OGRPGDumpLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: OGRPGDumpLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: OGRPGDumpLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: OGRPGDumpLayer::SetUTF8ToASCIIFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUTF8ToASCIIFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: OGRPGDumpLayer::SetPrecisionFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrecisionFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nUnknownSRSIdIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OGRPGDumpLayer::SetUnknownSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUnknownSRSId(int nUnknownSRSIdIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nForcedSRSIdIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OGRPGDumpLayer::SetForcedSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetForcedSRSId(int nForcedSRSIdIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GeometryTypeFlagsIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: OGRPGDumpLayer::SetForcedGeometryTypeFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetForcedGeometryTypeFlags(int GeometryTypeFlagsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bFlag
    - pszSpatialIndexType
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: OGRPGDumpLayer::SetCreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCreateSpatialIndex(bool bFlag, const char *pszSpatialIndexType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nPostGISMajorIn
    - nPostGISMinorIn
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: OGRPGDumpLayer::SetPostGISVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPostGISVersion(int nPostGISMajorIn, int nPostGISMinorIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszGeomFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: OGRPGDumpLayer::SetGeometryFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGeometryFieldName(const char *pszGeomFieldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bGeomColumnPositionImmediate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: OGRPGDumpLayer::SetGeomColumnPositionImmediate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGeomColumnPositionImmediate(bool bGeomColumnPositionImmediate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aosDeferredGeomFieldCreationCommands
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: OGRPGDumpLayer::SetDeferredGeomFieldCreationCommands
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetDeferredGeomFieldCreationCommands(\n        const std::vector<std::string>
      &aosDeferredGeomFieldCreationCommands)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aosSpatialIndexCreationCommands
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: OGRPGDumpLayer::SetSpatialIndexCreationCommands
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetSpatialIndexCreationCommands(\n        const std::vector<std::string>
      &aosSpatialIndexCreationCommands)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: OGRPGDumpDataSource::OGRPGDumpDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpDataSource(const OGRPGDumpDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: '&operator=(const OGRPGDumpDataSource &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRPGDumpDataSource
    signature: OGRPGDumpDataSource &operator=(const OGRPGDumpDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h:277,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: OGRPGDumpDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - user_data
    - pszStrValue
    - nMaxLength
    - pszLayerName
    - pszFieldName
    argTypes:
    - CPL_UNUSED*
    - char*
    - int
    - CPL_UNUSED*
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: OGRPGDumpEscapeStringWithUserData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDumpEscapeString
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRPGDumpEscapeStringWithUserData(\n    CPL_UNUSED void
      *user_data, const char *pszStrValue, int nMaxLength,\n    CPL_UNUSED const char
      *pszLayerName, const char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: OGRPGDumpGeomFieldDefn::~OGRPGDumpGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpGeomFieldDefn::~OGRPGDumpGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:46,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:47,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:47,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:48,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:49,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:50,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:51,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:52,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:55,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:55,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:56,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - poDSIn
    - pszSchemaNameIn
    - pszTableName
    - pszFIDColumnIn
    - bWriteAsHexIn
    - bCreateTableIn
    - bSkipConflictsIn
    argTypes:
    - OGRPGDumpDataSource*
    - char*
    - char*
    - char*
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: OGRPGDumpLayer::OGRPGDumpLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - CPLString
    - SetDescription
    - GetName
    - OGRPGDumpEscapeColumnName
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRPGDumpLayer::OGRPGDumpLayer(OGRPGDumpDataSource *poDSIn,\n
      \                              const char *pszSchemaNameIn,\n                               const
      char *pszTableName,\n                               const char *pszFIDColumnIn,
      int bWriteAsHexIn,\n                               int bCreateTableIn, bool
      bSkipConflictsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:66,1
    - Dst: OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:67,1
    - Dst: OGRPGDumpLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:68,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:71,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:71,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:74,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:75,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:76,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: OGRPGDumpLayer::~OGRPGDumpLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLFree
    - Log
    - OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded
    - Release
    - OGRPGDumpLayer::UpdateSequenceIfNeeded
    - OGRPGDumpLayer::EndCopy
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer::~OGRPGDumpLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: OGRPGDumpLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRPGDumpLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:96,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:96,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:97,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: OGRPGDumpLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGDumpLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:112,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:113,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:115,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:116,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:120,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:120,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:122,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:122,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:123,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - empty
    - Log
    - CPLAssert
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:136,1
    - Dst: OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:141,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:146,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:148,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:150,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:151,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:156,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:157,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:160,1
    - Dst: OGRFeature*::Validate
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:167,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:174,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:174,1
    - Dst: OGRPGDumpLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:179,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:189,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:190,1
    - Dst: OGRPGDumpLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:198,1
    - Dst: OGRPGDumpLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:199,1
    - Dst: OGRPGDumpLayer::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:206,1
    - Dst: OGRPGDumpLayer::CreateFeatureViaInsert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:207,1
    - Dst: OGRPGDumpLayer::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:218,1
    - Dst: OGRPGDumpLayer::CreateFeatureViaCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:223,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:228,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:236,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:236,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 239
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 239
    functionName: OGRPGDumpLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::IsFieldSetAndNotNull
    - CPLTestBool
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFID
    - OGRPGDumpLayer::CreateFeatureViaInsert
    - OGRPGDumpLayer::LogDeferredFieldCreationIfNeeded
    - OGRPGDumpLayer::CreateFeatureViaCopy
    - OGRFeature*::SetField
    - CPLError
    - OGRPGDumpLayer::StartCopy
    - CPLGetConfigOption
    - OGRFeature*::Validate
    - OGRFeature*::SetFID
    - OGRPGDumpLayer::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:252,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:262,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:266,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:270,1
    - Dst: OGRPGDumpLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:275,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:280,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:282,1
    - Dst: OGRFeature*::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:289,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:291,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:291,1
    - Dst: AddGeomFieldsName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:298,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:300,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:304,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:312,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:313,1
    - Dst: AddGeomFieldsName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:317,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:328,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:330,1
    - Dst: cpl::down_cast<OGRPGDumpGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:336,1
    - Dst: OGRFeature*::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:337,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:339,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:340,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:342,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:356,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:365,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:367,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:371,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:375,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:383,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:390,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:392,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:395,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:405,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:409,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:409,1
    - Dst: AddGeomFieldsValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:415,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:419,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:423,1
    - Dst: OGRPGCommonAppendFieldValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:431,1
    - Dst: AddGeomFieldsValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:437,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:447,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:452,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:454,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:455,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 458
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 458
    functionName: OGRPGDumpLayer::CreateFeatureViaInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::setMeasured
    - Log
    - OGRFeature*::GetGeomFieldDefnRef
    - AddGeomFieldsName
    - CPLString
    - GetFieldDefn
    - CPLError
    - OGRGeometry*::set3D
    - GetGeomFieldCount
    - OGRGeomFieldDefn*::GetNameRef
    - OGRPGDumpLayer::UpdateSequenceIfNeeded
    - AddGeomFieldsValue
    - OGRPGCommonAppendFieldValue
    - OGRFeature*::GetFID
    - CPLString::Printf
    - OGRFeature*::GetGeomFieldRef
    - GetFieldCount
    - cpl::down_cast<OGRPGDumpGeomFieldDefn *>
    - CPLSPrintf
    - CPLFree
    - OGRFeature*::IsFieldSet
    - OGRGeometry*::exportToWkt
    - OGRPGDumpEscapeColumnName
    - OGRGeometry*::closeRings
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::CreateFeatureViaInsert(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGCommonAppendCopyFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:469,1
    - Dst: OGRFeature*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:473,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:475,1
    - Dst: cpl::down_cast<OGRPGDumpGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:481,1
    - Dst: OGRFeature*::GetGeomFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:482,1
    - Dst: OGRGeometry*::closeRings
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:484,1
    - Dst: OGRGeometry*::set3D
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:485,1
    - Dst: OGRGeometry*::setMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:487,1
    - Dst: OGRGeometryToHexEWKB
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:491,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:495,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:499,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:510,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:513,1
    - Dst: AddGeomFieldsValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:520,1
    - Dst: OGRPGCommonAppendCopyRegularFields
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:524,1
    - Dst: std::vector<bool>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:526,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:526,1
    - Dst: AddGeomFieldsValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:531,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:541,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 544
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 544
    functionName: OGRPGDumpLayer::CreateFeatureViaCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetGeomFieldRef
    - CPLString::empty
    - cpl::down_cast<OGRPGDumpGeomFieldDefn *>
    - OGRGeometry*::setMeasured
    - OGRPGCommonAppendCopyFID
    - OGRGeometryToHexEWKB
    - GetFieldCount
    - OGRFeature*::GetGeomFieldDefnRef
    - OGRPGCommonAppendCopyRegularFields
    - Log
    - AddGeomFieldsValue
    - std::vector<bool>
    - CPLError
    - OGRGeometry*::set3D
    - CPLFree
    - OGRGeometry*::closeRings
    - OGRFeature*::GetGeomFieldCount
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::CreateFeatureViaCopy(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:552,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:556,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:558,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - osCommand
    - poFeature
    argTypes:
    - CPLString
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: OGRPGCommonAppendCopyFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFeature*::GetFID
    - CPLString
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRPGCommonAppendCopyFID(CPLString &osCommand, OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:575,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:582,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:582,1
    - Dst: std::vector<bool>::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:582,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:598,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:614,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:615,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:619,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:621,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:621,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:622,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:624,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:632,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:635,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:636,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:640,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:642,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:642,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:643,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:646,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:659,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:660,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:664,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:666,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:666,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:668,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:669,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:670,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:671,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:674,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:677,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:687,1
    - Dst: OGRPGDumpEscapeStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:687,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:695,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:705,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:707,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:727,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:729,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:752,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 86
    argCount: 6
    argNames:
    - osCommand
    - poFeature
    - pszFIDColumn
    - abFieldsToInclude
    - pfnEscapeString
    - userdata
    argTypes:
    - CPLString
    - OGRFeature*
    - char*
    - std::vector<bool>
    - OGRPGCommonEscapeStringCbk
    - void*
    constantsTouched: []
    func_position:
      end: 754
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 754
    functionName: OGRPGCommonAppendCopyRegularFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - std::vector<bool>::size
    - CPLDebug
    - std::isnan
    - OGRFeature*::GetDefnRef
    - CPLStrdup
    - strlen
    - std::isinf
    - CPLMalloc
    - static_cast<int>
    - OGRFeature*::GetFieldAsBinary
    - strcat
    - CPLAssert
    - snprintf
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - CPLsnprintf
    - strcpy
    - OGRPGDumpEscapeStringList
    linkageType: ''
    returnType: void
    signature: "void OGRPGCommonAppendCopyRegularFields(\n    CPLString &osCommand,
      OGRFeature *poFeature, const char *pszFIDColumn,\n    const std::vector<bool>
      &abFieldsToInclude,\n    OGRPGCommonEscapeStringCbk pfnEscapeString, void *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpLayer::StartCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:764,1
    - Dst: OGRPGDumpLayer::BuildCopyFields
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:766,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:771,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:772,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:774,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bSetFID
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 780
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 780
    functionName: OGRPGDumpLayer::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRPGDumpLayer::BuildCopyFields
    - Log
    - CPLString::c_str
    - snprintf
    - CPLFree
    - OGRPGDumpLayer::StartCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::StartCopy(int bSetFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:794,1
    - Dst: OGRPGDumpLayer::UpdateSequenceIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 801
    functionName: OGRPGDumpLayer::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - Log
    - OGRPGDumpLayer::UpdateSequenceIfNeeded
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:812,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:814,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:815,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:816,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: OGRPGDumpLayer::UpdateSequenceIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 3
    functionsReached:
    - Log
    - OGRPGDumpEscapeString
    - CPLString::Printf
    - OGRPGDumpEscapeColumnName
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer::UpdateSequenceIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:835,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:837,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:842,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:844,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:847,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:849,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:849,1
    - Dst: AddGeomFields
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:854,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:856,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:863,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:866,1
    - Dst: AddGeomFields
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:870,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - bSetFID
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 873
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 873
    functionName: OGRPGDumpLayer::BuildCopyFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - AddGeomFields
    - GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - GetFieldCount
    - GetFieldIndex
    - GetGeomFieldCount
    - OGRPGDumpEscapeColumnName
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGDumpLayer::BuildCopyFields(int bSetFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:887,1
    - Dst: CPLString::append
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszColumnName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 894
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 894
    functionName: OGRPGDumpEscapeColumnName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 4
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGDumpEscapeColumnName(const char *pszColumnName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pszStrValue
    - nMaxLength
    - pszFieldName
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 947
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 947
    functionName: OGRPGDumpEscapeString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRPGDumpEscapeString(const char *pszStrValue, int nMaxLength,\n
      \                               const char *pszFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pfnEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:975,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - papszItems
    - bForInsertOrUpdate
    - pfnEscapeString
    - userdata
    argTypes:
    - char**
    - bool
    - OGRPGCommonEscapeStringCbk
    - void*
    constantsTouched: []
    func_position:
      end: 1007
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1007
    functionName: OGRPGDumpEscapeStringList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - pfnEscapeString
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRPGDumpEscapeStringList(char **papszItems, bool bForInsertOrUpdate,\n
      \                         OGRPGCommonEscapeStringCbk pfnEscapeString,\n                          void
      *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1021,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1027,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1028,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1029,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1039,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1043,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1045,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1045,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1046,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1048,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1051,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1060,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1064,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1068,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1070,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1070,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1071,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1074,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1077,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1091,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1095,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1097,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1097,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1099,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1100,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1101,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1102,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1105,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1108,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1111,1
    - Dst: OGRPGDumpEscapeStringList
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1121,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1133,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1138,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1153,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1163,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1165,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1170,1
    - Dst: pfnEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1176,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1177,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1178,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1179,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 5
    argNames:
    - osCommand
    - poFeature
    - i
    - pfnEscapeString
    - userdata
    argTypes:
    - CPLString
    - OGRFeature*
    - int
    - OGRPGCommonEscapeStringCbk
    - void*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1185
    functionName: OGRPGCommonAppendFieldValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 3
    functionsReached:
    - pfnEscapeString
    - OGRFeature*::IsFieldNull
    - std::isnan
    - OGRFeature*::GetDefnRef
    - OGRFeature*::GetFieldAsInteger
    - strlen
    - std::isinf
    - OGRFeatureDefn*::GetName
    - STARTS_WITH_CI
    - static_cast<int>
    - OGRFeature*::GetFieldAsBinary
    - strcat
    - snprintf
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - CPLsnprintf
    - strcpy
    - OGRPGDumpEscapeStringList
    linkageType: ''
    returnType: void
    signature: "void OGRPGCommonAppendFieldValue(CPLString &osCommand, OGRFeature
      *poFeature,\n                                 int i,\n                                 OGRPGCommonEscapeStringCbk
      pfnEscapeString,\n                                 void *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1195,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1196,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1201,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pabyData
    - nLen
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 1220
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1220
    functionName: OGRPGCommonGByteArrayToBYTEA
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - snprintf
    - CPLError
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *OGRPGCommonGByteArrayToBYTEA(const GByte *pabyData, size_t nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1234,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1236,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1238,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1240,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1241,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1241,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1245,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1247,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1248,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1248,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1252,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1254,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1256,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1256,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1258,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1258,1
    - Dst: OGRFieldDefn::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1259,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1263,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1265,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1266,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1267,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1268,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1269,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1269,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1271,1
    - Dst: OGRFieldDefn::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1271,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1273,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1275,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1277,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1279,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1284,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1288,1
    - Dst: OGRFieldDefn::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1290,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1295,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1299,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1303,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1307,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1317,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1320,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1321,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1321,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1326,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1328,1
    - Dst: OGRFieldDefn::GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1329,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1329,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 68
    argCount: 3
    argNames:
    - oField
    - bPreservePrecision
    - bApproxOK
    argTypes:
    - OGRFieldDefn
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1333
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1333
    functionName: OGRPGCommonLayerGetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 5
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - OGRFieldDefn::GetPrecision
    - CPLSPrintf
    - OGRFieldDefn::GetSubType
    - OGRFieldDefn::GetWidth
    - OGRFieldDefn::GetFieldTypeName
    - CPLError
    - CPLGetConfigOption
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRPGCommonLayerGetType(const OGRFieldDefn &oField,\n                                  bool
      bPreservePrecision, bool bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1342,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1344,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1346,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1347,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1349,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1351,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1355,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1356,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1357,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1358,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1362,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1365,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1367,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1368,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1371,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1373,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1374,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1380,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1382,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1387,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1389,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1392,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1394,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1395,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1398,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1400,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1401,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1407,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1409,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1414,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1416,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1419,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1421,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1425,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1427,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1429,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1431,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1434,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1436,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1437,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1439,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1439,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1441,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1442,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1444,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1446,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1448,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1450,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1451,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1454,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1458,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1460,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1462,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1464,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1466,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1468,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1469,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1471,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1472,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1472,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1474,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1476,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1478,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1480,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1482,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1484,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1486,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1488,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1490,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1492,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1492,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1494,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1495,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1497,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1499,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1500,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1504,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1505,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 118
    argCount: 4
    argNames:
    - oField
    - pszType
    - pszFormatType
    - nWidth
    argTypes:
    - OGRFieldDefn
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1509
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1509
    functionName: OGRPGCommonLayerSetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFieldDefn::GetNameRef
    - STARTS_WITH_CI
    - atoi
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn::SetType
    - EQUAL
    - CPLDebug
    linkageType: ''
    returnType: bool
    signature: "bool OGRPGCommonLayerSetType(OGRFieldDefn &oField, const char *pszType,\n
      \                            const char *pszFormatType, int nWidth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1523,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1523,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1525,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1527,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1528,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1528,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1530,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1532,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1534,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1536,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1540,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1541,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1543,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1544,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1547,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1556,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1558,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1561,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1562,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1567,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1572,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - poFieldDefn
    - pszDefault
    argTypes:
    - OGRFieldDefn*
    - char*
    constantsTouched: []
    func_position:
      end: 1573
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1573
    functionName: OGRPGCommonLayerNormalizeDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - sscanf
    - OGRFieldDefn*::SetDefault
    - CPLSPrintf
    - CPLString::size
    - strcmp
    - OGRFieldDefn*::GetType
    - strlen
    - CPLString::find
    - CPLString::resize
    linkageType: ''
    returnType: void
    signature: "void OGRPGCommonLayerNormalizeDefault(OGRFieldDefn *poFieldDefn,\n
      \                                     const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1581,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1588,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1595
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1595
    functionName: OGRPGCommonLayerGetPGDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 4
    functionsReached:
    - sscanf
    - CPLString::pop_back
    - OGRFieldDefn*::GetDefault
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRPGCommonLayerGetPGDefault(OGRFieldDefn *poFieldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1603,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1603,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1610,1
    - Dst: CPLMD5String
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszIdentifier
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1612
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1612
    functionName: OGRPGCommonGenerateShortEnoughIdentifier
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - CPLMD5String
    - strlen
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string OGRPGCommonGenerateShortEnoughIdentifier(const char *pszIdentifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1630,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1630,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1631,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1632,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1643,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1644,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1644,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1645,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1646,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1659,1
    - Dst: CPLMD5String
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1659,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - pszTableName
    - pszGeomFieldName
    - nGeomFieldIdx
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1666
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1666
    functionName: OGRPGCommonGenerateSpatialIndexName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - std::string::size
    - CPLMD5String
    - CPLSPrintf
    - strlen
    - std::string
    linkageType: ''
    returnType: std::string
    signature: "std::string OGRPGCommonGenerateSpatialIndexName(const char *pszTableName,\n
      \                                               const char *pszGeomFieldName,\n
      \                                               int nGeomFieldIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1674,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1675,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1678,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1692,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1692,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1693,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1693,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1695,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1696,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1709,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1710,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1712,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1712,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1714,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1717,1
    - Dst: OGRPGCommonLayerGetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1729,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1730,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1731,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1739,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1740,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1740,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1741,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1742,1
    - Dst: OGRFieldDefn::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1744,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1746,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1746,1
    - Dst: OGRPGCommonLayerGetPGDefault
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1749,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1752,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1755,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1755,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1757,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1764,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1764,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1766,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1769,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1771,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1777,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1777,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1779,1
    - Dst: OGRFieldDefn::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1779,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1780,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1785
      start: 1672
    functionDepth: 2
    functionLinenumber: 1672
    functionLinenumberEnd: 1785
    functionName: OGRPGDumpLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRPGCommonLayerGetPGDefault
    - Log
    - CPLError
    - GetGeomFieldCount
    - CPLString::empty
    - CPL_TO_BOOL
    - OGRFieldDefn::GetComment
    - OGRPGCommonLayerGetType
    - OGRFieldDefn::IsUnique
    - CPLString::c_str
    - OGRFieldDefn::IsDefaultDriverSpecific
    - OGRPGDumpEscapeString
    - AddFieldDefn
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - c_str
    - CPLString::Printf
    - GetFieldCount
    - OGRFieldDefn::SetName
    - CPLFree
    - EQUAL
    - push_back
    - OGRPGDumpEscapeColumnName
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpLayer::CreateField(const OGRFieldDefn *poFieldIn, int
      bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1794,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1795,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1798,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1803,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1806,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1814,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1816,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1816,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1821,1
    - Dst: std::make_unique<OGRPGDumpGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1825,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1836,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1837,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1840,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1847,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1850,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1850,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1856,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1864,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1866,1
    - Dst: OGR_GT_SetModifier
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1871,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1875,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1891,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1891,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1899,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1901,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1902,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1902,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1903,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1903,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1907,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1909,1
    - Dst: auto::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1911,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1913,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1915,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1915,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1916,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1916,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1919,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1921,1
    - Dst: OGRPGCommonGenerateSpatialIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1926,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1927,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1927,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1928,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1930,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1932,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1932,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1933,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1934,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1934,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1936,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1936,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1940,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1940,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 1
    argNames:
    - poGeomFieldIn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 1943
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1943
    functionName: OGRPGDumpLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - auto::IsNullable
    - atoi
    - auto::SetType
    - OGRSpatialReference*::GetAuthorityCode
    - auto::GetType
    - Log
    - CPLString
    - CPLError
    - GetGeomFieldCount
    - std::string::c_str
    - OGRGeomFieldDefn*::GetNameRef
    - OGR_GT_HasZ
    - OGRPGDumpEscapeString
    - std::move
    - wkbFlatten
    - GetName
    - c_str
    - auto::GetSpatialRef
    - auto::SetName
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - GetFieldCount
    - std::make_unique<OGRPGDumpGeomFieldDefn>
    - auto::GetNameRef
    - OGR_GT_HasM
    - CPLFree
    - OGR_GT_SetModifier
    - OGRGeomFieldDefn::SetName
    - empty
    - AddGeomFieldDefn
    - OGRPGCommonGenerateSpatialIndexName
    - EQUAL
    - push_back
    - OGRPGDumpEscapeColumnName
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRPGDumpLayer::CreateGeomField(const OGRGeomFieldDefn *poGeomFieldIn,\n
      \                                      int /* bApproxOK */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1978,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1978,1
    - Dst: std::string::clear
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1979,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1985,1
    - Dst: AddString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1986,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1986,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - pszOverrideColumnTypes
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1987
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1987
    functionName: OGRPGDumpLayer::SetOverrideColumnTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - AddString
    - std::string::c_str
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer::SetOverrideColumnTypes(const char *pszOverrideColumnTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1995,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1996,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1997,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:1999,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2002,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2003,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2008,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2010,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 2016
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 2016
    functionName: OGRPGDumpLayer::SetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CPLString::Printf
    - OGRPGTableLayer::SetMetadataItem
    - OGRPGTableLayer::SetMetadata
    - EQUAL
    - OGRPGDumpEscapeString
    - Log
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRPGDumpLayer::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2026,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2027,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2027,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2031,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2032,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2033,1
    - Dst: OGRPGDumpLayer::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2035,1
    - Dst: GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2035,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2038
      start: 2022
    functionDepth: 4
    functionLinenumber: 2022
    functionLinenumberEnd: 2038
    functionName: OGRPGDumpLayer::SetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - GetMetadata
    - empty
    - OGRPGDumpLayer::SetMetadata
    - OGRPGTableLayer::SetMetadataItem
    - EQUAL
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRPGDumpLayer::SetMetadataItem(const char *pszName,\n                                       const
      char *pszValue,\n                                       const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2047,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2052,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2053,1
    - Dst: Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp:2054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszDescriptionIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2056
      start: 2044
    functionDepth: 3
    functionLinenumber: 2044
    functionLinenumberEnd: 2056
    functionName: OGRPGDumpLayer::SetForcedDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached:
    - Log
    - CPLString::Printf
    - OGRPGTableLayer::SetMetadataItem
    - OGRPGDumpEscapeString
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpLayer::SetForcedDescription(const char *pszDescriptionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: OGRPGDumpLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRPGDumpLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:27,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:38,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:42,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:48,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:59,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pszNameIn
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 65
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 65
    functionName: OGRPGDumpDataSource::OGRPGDumpDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - SetDescription
    - VSIFOpenL
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGRPGDumpDataSource::OGRPGDumpDataSource(const char *pszNameIn,\n
      \                                        char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:74,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:75,1
    - Dst: OGRPGDumpDataSource::LogCommit
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:79,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: OGRPGDumpDataSource::~OGRPGDumpDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDumpDataSource::LogCommit
    - VSIFCloseL
    - clear
    - OGRPGDumpDataSource::EndCopy
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpDataSource::~OGRPGDumpDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: OGRPGDumpDataSource::LogStartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDumpDataSource::Log
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpDataSource::LogStartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:103,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: OGRPGDumpDataSource::LogCommit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRPGDumpDataSource::Log
    - OGRPGDumpDataSource::EndCopy
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpDataSource::LogCommit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:125,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:128,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:128,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:141,1
    - Dst: CPLMD5String
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:141,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:147,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:149,1
    - Dst: CPLStrlenUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:149,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:151,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - pszSrcName
    - pszDebugPrefix
    - bUTF8ToASCII
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 162
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 162
    functionName: OGRPGCommonLaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned char>
    - CPLStrlenUTF8
    - CPLTolower
    - CPLMD5String
    - CPLDebug
    - strcmp
    - CPLError
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *OGRPGCommonLaunderName(const char *pszSrcName, const char *pszDebugPrefix,\n
      \                            bool bUTF8ToASCII)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:174,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:176,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:181,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:183,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:194,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:196,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:203,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:203,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:213,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:218,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:218,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:226,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:270,1
    - Dst: OGRPGCommonGenerateShortEnoughIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:273,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:283,1
    - Dst: OGRPGCommonGenerateShortEnoughIdentifier
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:286,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:290,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:290,1
    - Dst: OGRPGDumpDataSource::LogCommit
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:293,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:306,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:308,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:308,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:309,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:319,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:324,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:324,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:332,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:332,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:342,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:343,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:343,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:345,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:346,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:349,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:363,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:365,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:390,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:398,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:401,1
    - Dst: auto::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:401,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:407,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:416,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:423,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:437,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:440,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:440,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:442,1
    - Dst: OGRPGDumpDataSource::LogStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:446,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:455,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:459,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:460,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:465,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:482,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:490,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:495,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:498,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:498,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:499,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:501,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:501,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:504,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:507,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:509,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:509,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:510,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:518,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:520,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:521,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:541,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:544,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:547,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:550,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:552,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:558,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:559,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:564,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:566,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:566,1
    - Dst: OGRPGDumpEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:568,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:570,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:579,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:580,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:582,1
    - Dst: OGRPGCommonGenerateSpatialIndexName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:592,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:593,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:598,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:601,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:601,1
    - Dst: OGRPGDumpEscapeColumnName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:603,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:604,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:604,1
    - Dst: std::make_unique<OGRPGDumpLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:613,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:614,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:614,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:615,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:615,1
    - Dst: auto::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:617,1
    - Dst: auto::SetUTF8ToASCIIFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:618,1
    - Dst: auto::SetPrecisionFlag
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:619,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:619,1
    - Dst: auto::SetOverrideColumnTypes
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:623,1
    - Dst: auto::SetUnknownSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:624,1
    - Dst: auto::SetForcedSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:625,1
    - Dst: auto::SetCreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:626,1
    - Dst: auto::SetPostGISVersion
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:627,1
    - Dst: auto::SetForcedGeometryTypeFlags
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:628,1
    - Dst: auto::SetGeomColumnPositionImmediate
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:635,1
    - Dst: OGRPGDumpDataSource::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:639,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:639,1
    - Dst: auto::SetDeferredGeomFieldCreationCommands
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:643,1
    - Dst: auto::SetSpatialIndexCreationCommands
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:645,1
    - Dst: auto::SetForcedDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:649,1
    - Dst: std::make_unique<OGRPGDumpGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:654,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:657,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:657,1
    - Dst: auto::SetGeometryFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:660,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:665,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:665,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:667,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 185
    argCount: 3
    argNames:
    - pszLayerName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 668
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 668
    functionName: OGRPGDumpDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GetDescription
    - auto::SetGeomColumnPositionImmediate
    - CPLError
    - std::vector::push_back
    - STARTS_WITH
    - std::string::c_str
    - auto::SetCreateSpatialIndex
    - CPLString::empty
    - CSLFetchNameValue
    - auto::SetForcedDescription
    - std::string::empty
    - auto::GetLayerDefn
    - OGRPGDumpDataSource::Log
    - auto::GetAuthorityCode
    - OGR_GT_HasZ
    - OGRPGCommonGenerateShortEnoughIdentifier
    - auto::SetSpatialIndexCreationCommands
    - auto::SetPrecisionFlag
    - OGRPGDumpEscapeString
    - CPLString::c_str
    - std::move
    - strlen
    - std::make_unique<OGRPGDumpLayer>
    - wkbFlatten
    - emplace_back
    - c_str
    - static_cast<int>
    - CPLFetchBool
    - OGRPGDumpDataSource::LogCommit
    - CPLString::Printf
    - OGRGeomFieldDefn*::GetType
    - auto::SetPostGISVersion
    - auto::SetOverrideColumnTypes
    - std::string::resize
    - std::make_unique<OGRPGDumpGeomFieldDefn>
    - auto::SetLaunderFlag
    - OGR_GT_HasM
    - CPLFree
    - auto::SetForcedSRSId
    - static_cast<size_t>
    - back
    - auto::SetForcedGeometryTypeFlags
    - auto::SetDeferredGeomFieldCreationCommands
    - std::string::size
    - auto::SetGeometryFieldName
    - OGRPGCommonGenerateSpatialIndexName
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::SetUnknownSRSId
    - OGRPGDumpEscapeColumnName
    - auto::SetUTF8ToASCIIFlag
    - OGRPGDumpDataSource::LogStartTransaction
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRPGDumpDataSource::ICreateLayer(const char *pszLayerName,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:677,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:679,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:681,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:683,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:685,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 691
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 691
    functionName: OGRPGDumpDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRPGDumpDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:700,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:700,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: OGRPGDumpDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRPGDumpDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:717,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:717,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:721,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:723,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pszStr
    - bAddSemiColumn
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 725
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 725
    functionName: OGRPGDumpDataSource::Log
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 3
    functionsReached:
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool OGRPGDumpDataSource::Log(const char *pszStr, bool bAddSemiColumn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poPGLayer
    argTypes:
    - OGRPGDumpLayer*
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: OGRPGDumpDataSource::StartCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDumpDataSource::EndCopy
    linkageType: ''
    returnType: void
    signature: void OGRPGDumpDataSource::StartCopy(OGRPGDumpLayer *poPGLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGDumpDataSource::EndCopy
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: OGRPGDumpDataSource::EndCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp
    functionUses: 4
    functionsReached:
    - OGRPGDumpDataSource::EndCopy
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRPGDumpDataSource::EndCopy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:25,1
    - Dst: OGRPGDumpDataSource::OGRPGDumpDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:28,1
    - Dst: OGRPGDumpDataSource*::Log
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBands
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: OGRPGDumpDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRPGDumpDataSource*::Log
    - strcmp
    - OGRPGDumpDataSource::OGRPGDumpDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRPGDumpDriverCreate(const char *pszName, CPL_UNUSED
      int nXSize,\n                      CPL_UNUSED int nYSize, CPL_UNUSED int nBands,\n
      \                     CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:45,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:48,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:50,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:51,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:52,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:53,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:54,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:55,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:56,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:57,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:76,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:166,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:168,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:170,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 175
    functionName: RegisterOGRPGDump
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumpdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRPGDump()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayerPool::OGRLayerPool
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:25,1
    - Dst: GetMaxSimultaneouslyOpened
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:29,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:30,1
    - Dst: OGRLayerPool::OGRLayerPool
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: OGRLVBAGDataSource::OGRLVBAGDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 0
    functionsReached:
    - reset
    - OGRLayerPool::OGRLayerPool
    - GetMaxSimultaneouslyOpened
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGDataSource::OGRLVBAGDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:40,1
    - Dst: OGRLVBAGLayer::OGRLVBAGLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:40,1
    - Dst: auto::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:41,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:44,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:44,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:46,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:46,1
    - Dst: GetMaxSimultaneouslyOpened
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:47,1
    - Dst: GetSize
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:49,1
    - Dst: OGRLVBAGDataSource::TryCoalesceLayers
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: OGRLVBAGDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRLVBAGLayer::OGRLVBAGLayer
    - static_cast<int>
    - GetMaxSimultaneouslyOpened
    - auto::TouchLayer
    - get
    - std::move
    - push_back
    - OGRLVBAGDataSource::TryCoalesceLayers
    - GetSize
    linkageType: ''
    returnType: int
    signature: int OGRLVBAGDataSource::Open(const char *pszFilename, char **papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:67,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:70,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:72,1
    - Dst: std::vector::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:72,1
    - Dst: std::vector::cend
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:72,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:73,1
    - Dst: std::vector::cend
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:73,1
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:76,1
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:77,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:79,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:79,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:79,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:81,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:81,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:82,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:83,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:85,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:86,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:86,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:90,1
    - Dst: std::map::insert
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:91,1
    - Dst: std::map::empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:94,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:103,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:104,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:106,1
    - Dst: second::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:109,1
    - Dst: second::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:111,1
    - Dst: OGRLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:116,1
    - Dst: OGRUnionLayer::OGRUnionLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:115,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:118,1
    - Dst: static_cast<OGRFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:121,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:122,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:124,1
    - Dst: static_cast<OGRUnionLayerGeomFieldDefn **>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:128,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:128,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:132,1
    - Dst: OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:131,1
    - Dst: auto::SetFields
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:134,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:139,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:140,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:142,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:143,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:147,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:148,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:151,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 155
    functionName: OGRLVBAGDataSource::TryCoalesceLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::vector::cbegin
    - OGRUnionLayerGeomFieldDefn::OGRUnionLayerGeomFieldDefn
    - OGRUnionLayer::OGRUnionLayer
    - std::map::insert
    - OGRLayer*::GetGeomType
    - std::vector::push_back
    - static_cast<OGRFieldDefn **>
    - end
    - OGRFeatureDefn*::GetGeomFieldDefn
    - CPLRealloc
    - OGRLayer*::GetLayerDefn
    - std::vector::empty
    - static_cast<int>
    - OGRLayer*::GetName
    - CPLAssert
    - begin
    - second::get
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - size
    - std::vector::cend
    - auto::SetFields
    - erase
    - auto::release
    - EQUAL
    - static_cast<OGRLayer **>
    - std::find
    - static_cast<OGRUnionLayerGeomFieldDefn **>
    - std::map::empty
    - push_back
    - second::release
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGDataSource::TryCoalesceLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:163,1
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: OGRLVBAGDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 0
    functionsReached:
    - second::get
    - OGRLVBAGDataSource::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRLVBAGDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGDataSource::TryCoalesceLayers
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:174,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:175,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: OGRLVBAGDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - OGRLVBAGDataSource::TryCoalesceLayers
    linkageType: ''
    returnType: int
    signature: int OGRLVBAGDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: OGRLVBAGDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRLVBAGDataSource::TestCapability(const char * /* pszCap */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:31,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:33,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:36,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:42,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:42,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszFilename
    - poPoolIn
    - papszOpenOptions
    argTypes:
    - char*
    - OGRLayerPool*
    - char**
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: OGRLVBAGLayer::OGRLVBAGLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 1
    functionsReached:
    - CPLFetchBool
    - CPLGetBasenameSafe
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRLVBAGLayer::OGRLVBAGLayer(const char *pszFilename, OGRLayerPool
      *poPoolIn,\n                             char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:54,1
    - Dst: OGRLVBAGLayer::CloseUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: OGRLVBAGLayer::~OGRLVBAGLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - OGRLVBAGLayer::CloseUnderlyingLayer
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::~OGRLVBAGLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:64,1
    - Dst: VSIRewindL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: OGRLVBAGLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLVBAGLayer::TouchLayer
    - VSIRewindL
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:85,1
    - Dst: OGRLVBAGLayer::ConfigureParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:92,1
    - Dst: OGRLVBAGLayer::ParseDocument
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: OGRLVBAGLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLVBAGLayer::ConfigureParser
    - OGRLVBAGLayer::TouchLayer
    - OGRLVBAGLayer::ParseDocument
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRLVBAGLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: XMLTagSplit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *XMLTagSplit(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:119,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:120,1
    - Dst: OGRSpatialReference*::importFromURN
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:121,1
    - Dst: OGRGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:122,1
    - Dst: OGRGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:123,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eTypeIn
    argTypes:
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: OGRLVBAGLayer::AddSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::SetSpatialRef
    - OGRSpatialReference::OGRSpatialReference
    - GetGeomFieldDefn
    - OGRSpatialReference*::Release
    - OGRSpatialReference*::importFromURN
    - OGRGeomFieldDefn*::SetType
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::AddSpatialRef(OGRwkbGeometryType eTypeIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: OGRLVBAGLayer::AddIdentifierFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::AddIdentifierFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:146,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:150,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:151,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:152,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: OGRLVBAGLayer::AddDocumentFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    - OGRFieldDefn::SetSubType
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::AddDocumentFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:173,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:174,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:175,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:176,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:177,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:178,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:179,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:180,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:181,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: OGRLVBAGLayer::AddOccurrenceFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::AddOccurrenceFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:191,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:195,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:197,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:198,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:199,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:201,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:202,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:202,1
    - Dst: OGRLVBAGLayer::AddSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:204,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:206,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:216,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:217,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:218,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:219,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:220,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:221,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:222,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:224,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:225,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:226,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:228,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:229,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:229,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:231,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:236,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:237,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:239,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:240,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:241,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:243,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:244,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:244,1
    - Dst: OGRLVBAGLayer::AddSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:246,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:248,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:253,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:254,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:256,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:257,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:258,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:260,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:261,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:261,1
    - Dst: OGRLVBAGLayer::AddSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:263,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:265,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:272,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:273,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:274,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:275,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:277,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:278,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:279,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:281,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:282,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:282,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:284,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:292,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:293,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:294,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:295,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:296,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:298,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:299,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:300,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:302,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:303,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:303,1
    - Dst: OGRLVBAGLayer::AddSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:305,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:307,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:311,1
    - Dst: OGRLVBAGLayer::AddIdentifierFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:313,1
    - Dst: OGRLVBAGLayer::AddDocumentFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:314,1
    - Dst: OGRLVBAGLayer::AddOccurrenceFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:315,1
    - Dst: SetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:317,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:318,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:318,1
    - Dst: OGRLVBAGLayer::AddSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 78
    argCount: 1
    argNames:
    - pszDataset
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 325
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 325
    functionName: OGRLVBAGLayer::CreateFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLVBAGLayer::AddOccurrenceFieldDefn
    - OGRLVBAGLayer::AddSpatialRef
    - SetName
    - EQUAL
    - OGRLVBAGLayer::AddIdentifierFieldDefn
    - OGRLVBAGLayer::AddDocumentFieldDefn
    - AddFieldDefn
    - CPLError
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::CreateFeatureDefn(const char *pszDataset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:333,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: OGRLVBAGLayer::StartDataCollect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::StartDataCollect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Trim
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:345,1
    - Dst: Trim
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: OGRLVBAGLayer::StopDataCollect
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - Trim
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::StopDataCollect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: OGRLVBAGLayer::DataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::DataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetLastUsedLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:365,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:377,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:380,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 389
    functionName: OGRLVBAGLayer::TouchLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - c_str
    - VSIFOpenExL
    - SetLastUsedLayer
    linkageType: ''
    returnType: bool
    signature: bool OGRLVBAGLayer::TouchLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: OGRLVBAGLayer::CloseUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::CloseUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:411,1
    - Dst: OGRLVBAGLayer::StartDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:414,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:418,1
    - Dst: OGRLVBAGLayer::StartDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:421,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:428,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:429,1
    - Dst: OGRLVBAGLayer::StartDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:435,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:445,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:449,1
    - Dst: OGRLVBAGLayer::StartDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:453,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:454,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:463,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:464,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:466,1
    - Dst: OGRSpatialReference*::importFromURN
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:467,1
    - Dst: OGRGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:468,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:469,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:483,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:486,1
    - Dst: SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:487,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:489,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:491,1
    - Dst: OGRLVBAGLayer::StartDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:492,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 55
    argCount: 2
    argNames:
    - pszName
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 495
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 495
    functionName: OGRLVBAGLayer::StartElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeomFieldDefn*::SetSpatialRef
    - STARTS_WITH_CI
    - OGRSpatialReference::OGRSpatialReference
    - SetFID
    - GetGeomFieldDefn
    - EQUAL
    - OGRSpatialReference*::Release
    - OGRFeature::OGRFeature
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRSpatialReference*::importFromURN
    - OGRLVBAGLayer::StartDataCollect
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::StartElementCbk(const char *pszName, const char
      **ppszAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::StopDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:510,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:515,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:520,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:531,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:532,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:535,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:539,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:542,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:543,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:545,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:549,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:560,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:561,1
    - Dst: IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:563,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:565,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:570,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:574,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:574,1
    - Dst: UnsetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:575,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:576,1
    - Dst: CPLStringList::List
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:576,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:579,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:580,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:582,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:585,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:585,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:586,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:587,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:587,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:588,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:591,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:593,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:593,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:597,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:597,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:599,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:600,1
    - Dst: GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:603,1
    - Dst: static_cast<float *>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:605,1
    - Dst: SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:608,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:609,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:611,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:615,1
    - Dst: OGRLVBAGLayer::StopDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:628,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:629,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:632,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:632,1
    - Dst: OGR_G_CreateFromGML
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:633,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:633,1
    - Dst: std::unique_ptr::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:634,1
    - Dst: std::unique_ptr::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:637,1
    - Dst: std::unique_ptr::flattenTo2D
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:638,1
    - Dst: std::unique_ptr::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:641,1
    - Dst: std::unique_ptr::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:644,1
    - Dst: std::unique_ptr::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:645,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:646,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:646,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:651,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:652,1
    - Dst: OGRGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:653,1
    - Dst: std::unique_ptr::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:653,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:654,1
    - Dst: OGRGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:655,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:655,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:657,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:659,1
    - Dst: std::make_unique<OGRPoint>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:664,1
    - Dst: std::unique_ptr::Centroid
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:666,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:666,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:667,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:669,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:672,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:672,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:681,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:682,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:684,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:685,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:685,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:686,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:686,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:688,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:689,1
    - Dst: std::unique_ptr::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:690,1
    - Dst: std::unique_ptr::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:692,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:696,1
    - Dst: std::unique_ptr::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:698,1
    - Dst: auto::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:699,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:700,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:700,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:702,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:703,1
    - Dst: std::unique_ptr::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:704,1
    - Dst: std::unique_ptr::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:708,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:710,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:713,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:714,1
    - Dst: OGRPolygon*::get_Area
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:715,1
    - Dst: toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:716,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:720,1
    - Dst: OGRPolygon*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:720,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:723,1
    - Dst: std::unique_ptr::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:724,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:725,1
    - Dst: SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:726,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:726,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:730,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:732,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:732,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:736,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:737,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:743,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:747,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:747,1
    - Dst: OGRLVBAGLayer::StopDataCollect
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:749,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:750,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:752,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:754,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:754,1
    - Dst: OGRLVBAGLayer::CreateFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:758,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:758,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:764,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:764,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 148
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 766
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 766
    functionName: OGRLVBAGLayer::EndElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::IsValid
    - std::unique_ptr::Centroid
    - std::unique_ptr<OGRGeometry>
    - GetGeomFieldDefn
    - OGRLVBAGLayer::StopDataCollect
    - auto::get
    - std::unique_ptr::toGeometryCollection
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - SetField
    - OGRGeomFieldDefn*::SetSpatialRef
    - std::unique_ptr::MakeValid
    - Clear
    - static_cast<float *>
    - std::unique_ptr::release
    - toPolygon
    - GetFieldAsDateTime
    - OGRPolygon*::clone
    - OGRFieldDefn*::GetSubType
    - OGR_G_CreateFromGML
    - std::unique_ptr::reset
    - SetFieldNull
    - STARTS_WITH_CI
    - c_str
    - FromHandle
    - std::unique_ptr::getGeometryType
    - getGeometryType
    - CPLStringList::AddString
    - get
    - OGRGeomFieldDefn*::GetType
    - GetFieldCount
    - std::unique_ptr::Is3D
    - OGRFieldDefn*::GetType
    - OGRLVBAGLayer::CreateFeatureDefn
    - UnsetField
    - std::unique_ptr::flattenTo2D
    - OGRGeomFieldDefn*::SetType
    - std::make_unique<OGRPoint>
    - size
    - std::unique_ptr::get
    - auto::addGeometry
    - empty
    - XML_StopParser
    - auto::release
    - OGRPolygon*::get_Area
    - std::unique_ptr::getSpatialReference
    - EQUAL
    - std::unique_ptr::IsEmpty
    - std::make_unique<OGRMultiPolygon>
    - std::unique_ptr::assignSpatialReference
    - OGRGeomFieldDefn*::GetSpatialRef
    - SetGeometryDirectly
    - IsFieldSetAndNotNull
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::EndElementCbk(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:774,1
    - Dst: static_cast<OGRLVBAGLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:779,1
    - Dst: static_cast<OGRLVBAGLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:784,1
    - Dst: static_cast<OGRLVBAGLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:788,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:790,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:791,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:791,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:793,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:793,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:794,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 795
    functionName: OGRLVBAGLayer::ConfigureParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - get
    - OGRCreateExpatXMLParser
    - static_cast<OGRLVBAGLayer *>
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - OGRLVBAGLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::ConfigureParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:809,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:813,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:813,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:813,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:814,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:814,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:814,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:815,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:815,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - status
    argTypes:
    - XML_Status
    constantsTouched: []
    func_position:
      end: 826
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 826
    functionName: OGRLVBAGLayer::IsParserFinished
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - XML_ErrorString
    - get
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - CPLError
    - XML_GetCurrentColumnNumber
    linkageType: ''
    returnType: bool
    signature: bool OGRLVBAGLayer::IsParserFinished(XML_Status status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetParsingStatus
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:837,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:837,1
    - Dst: OGRLVBAGLayer::IsParserFinished
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:846,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:846,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:846,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:846,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:847,1
    - Dst: OGRLVBAGLayer::IsParserFinished
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:855,1
    - Dst: XML_ResumeParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:855,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:855,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 866
    functionName: OGRLVBAGLayer::ParseDocument
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - XML_ResumeParser
    - XML_Parse
    - get
    - OGRLVBAGLayer::IsParserFinished
    - XML_GetParsingStatus
    - data
    linkageType: ''
    returnType: void
    signature: void OGRLVBAGLayer::ParseDocument()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:874,1
    - Dst: OGRLVBAGLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:879,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:882,1
    - Dst: OGRAPISpy_L_GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 890
    functionName: OGRLVBAGLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRLVBAGLayer::TouchLayer
    - OGRLVBAGLayer::GetLayerDefn
    - OGRAPISpy_L_GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLVBAGLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::ConfigureParser
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:901,1
    - Dst: OGRLVBAGLayer::ParseDocument
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 913
    functionName: OGRLVBAGLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLVBAGLayer::ConfigureParser
    - OGRLVBAGLayer::ParseDocument
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRLVBAGLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGLayer::TouchLayer
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:921,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 928
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 928
    functionName: OGRLVBAGLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRLVBAGLayer::TouchLayer
    linkageType: ''
    returnType: int
    signature: int OGRLVBAGLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:29,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:33,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:37,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:42,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:48,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 53
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: OGRLVBAGDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsSingleAllowedDriver
    - strstr
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: int
    signature: int OGRLVBAGDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLVBAGDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:61,1
    - Dst: OGRLVBAGDataSource::OGRLVBAGDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:65,1
    - Dst: auto::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:66,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:70,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:71,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:80,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:80,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:84,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:86,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:86,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:92,1
    - Dst: OGRLVBAGDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:102,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:105,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:111,1
    - Dst: auto::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:112,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:114,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:120,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:124,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 35
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 125
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 125
    functionName: OGRLVBAGDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetLayerCount
    - auto::release
    - auto::Open
    - OGRLVBAGDataSource::OGRLVBAGDataSource
    - CSLDestroy
    - OGRLVBAGDriverIdentify
    - EQUAL
    - STARTS_WITH
    - CPLGetExtensionSafe
    - CPLFormFilenameSafe
    - auto::SetDescription
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRLVBAGDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:133,1
    - Dst: std::make_unique<GDALDriver>
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:136,1
    - Dst: auto::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:138,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:139,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:140,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:141,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:142,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:143,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:144,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:146,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:159,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 160
    functionName: RegisterOGRLVBAG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - auto::release
    - std::make_unique<GDALDriver>
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - auto::SetDescription
    linkageType: ''
    returnType: void
    signature: void RegisterOGRLVBAG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:27,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:28,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:28,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:29,1
    - Dst: GetFieldInformation
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:37,1
    - Dst: FieldInfo::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:40,1
    - Dst: FieldInfo::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:46,1
    - Dst: FieldInfo::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:47,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:102,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:108,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:110,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:112,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:112,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:113,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:113,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 3
    argNames:
    - pParentDataSource
    - pszSQL
    - pEnumRows
    argTypes:
    - FGdbDataSource*
    - char*
    - EnumRows*
    constantsTouched: []
    func_position:
      end: 116
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 116
    functionName: FGdbResultLayer::FGdbResultLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - GetFieldInformation
    - FieldInfo::GetFieldCount
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLAssert
    - Reference
    - std::move
    - FieldInfo::GetFieldType
    - FieldInfo::GetFieldName
    - AddFieldDefn
    - push_back
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void FGdbResultLayer::FGdbResultLayer(FGdbDataSource *pParentDataSource,\n
      \                                const char *pszSQL, EnumRows *pEnumRows)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: FGdbResultLayer::~FGdbResultLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FGdbResultLayer::~FGdbResultLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:132,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:134,1
    - Dst: GetGDB
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:134,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:134,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:137,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: FGdbResultLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - c_str
    - GetGDB
    - FAILED
    - CPLSPrintf
    - GDBErr
    - Close
    linkageType: ''
    returnType: void
    signature: void FGdbResultLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: FGdbResultLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbResultLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FGdbResultLayer::TestCapability(const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: FGdbBaseLayer::FGdbBaseLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FGdbBaseLayer::FGdbBaseLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:56,1
    - Dst: FGdbBaseLayer::CloseGDBObjects
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:60,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: FGdbBaseLayer::~FGdbBaseLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - FGdbBaseLayer::CloseGDBObjects
    linkageType: ''
    returnType: void
    signature: void FGdbBaseLayer::~FGdbBaseLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: FGdbBaseLayer::CloseGDBObjects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FGdbBaseLayer::CloseGDBObjects()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:97,1
    - Dst: Next
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:97,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:99,1
    - Dst: FGdbBaseLayer::OGRFeatureFromGdbRow
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:111,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:114,1
    - Dst: Row::GetOID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:114,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:116,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:117,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:125,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 131
    functionName: FGdbBaseLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - FGdbBaseLayer::OGRFeatureFromGdbRow
    - Row::GetOID
    - FAILED
    - FilterGeometry
    - CPLSPrintf
    - GDBErr
    - CPL_IGNORE_RET_VAL
    - Next
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FGdbBaseLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumRows::EnumRows
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: FGdbLayer::FGdbLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - EnumRows::EnumRows
    linkageType: ''
    returnType: void
    signature: void FGdbLayer::FGdbLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FGdbLayer::CloseGDBObjects
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:153,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:155,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: FGdbLayer::~FGdbLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - resize
    - FGdbLayer::CloseGDBObjects
    linkageType: ''
    returnType: void
    signature: void FGdbLayer::~FGdbLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FGdbLayer::WorkAroundExtentProblem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:167,1
    - Dst: FGdbBaseLayer::CloseGDBObjects
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: FGdbLayer::CloseGDBObjects
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached:
    - FGdbLayer::WorkAroundExtentProblem
    - FGdbBaseLayer::CloseGDBObjects
    linkageType: ''
    returnType: void
    signature: void FGdbLayer::CloseGDBObjects()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWriteToShapeBin
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:193,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:195,1
    - Dst: ShapeBuffer::Allocate
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:202,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:203,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:208,1
    - Dst: Row::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:211,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:212,1
    - Dst: Update
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:218,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - row
    - poGeom
    argTypes:
    - Row
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 225
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 225
    functionName: FGdbLayer::UpdateRowWithGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - FAILED
    - ShapeBuffer::Allocate
    - OGRWriteToShapeBin
    - Update
    - memcpy
    - CPLFree
    - Row::SetGeometry
    linkageType: ''
    returnType: bool
    signature: bool FGdbLayer::UpdateRowWithGeometry(Row &row, OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:239,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:251,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:252,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:253,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:254,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:260,1
    - Dst: Search
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:260,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:260,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:261,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:264,1
    - Dst: EnumRows::Next
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:264,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:272,1
    - Dst: Row::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:272,1
    - Dst: GDBGeometryToOGRGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:276,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:284,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:284,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:289,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:289,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:290,1
    - Dst: ceil
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:290,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:292,1
    - Dst: OGRLinearRing::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:293,1
    - Dst: OGRLinearRing::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:294,1
    - Dst: OGRLinearRing::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:295,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:299,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:300,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:304,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:308,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:309,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:311,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:315,1
    - Dst: OGRMultiPoint::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:316,1
    - Dst: OGRMultiPoint::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:317,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:319,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:323,1
    - Dst: OGRMultiLineString::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:324,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:326,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:330,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:331,1
    - Dst: OGRPolygon::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:332,1
    - Dst: OGRMultiPolygon::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:333,1
    - Dst: FGdbLayer::UpdateRowWithGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:335,1
    - Dst: Row::SetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:341,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:342,1
    - Dst: Update
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:346,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:347,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:350,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 353
    functionName: FGdbLayer::WorkAroundExtentProblem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached:
    - OGRMultiPoint::OGRMultiPoint
    - CPLDebug
    - OGRMultiLineString::addGeometry
    - OGRAPISpy_L_GetExtent
    - ceil
    - OGRPolygon::OGRPolygon
    - FAILED
    - wkbFlatten
    - OGRMultiLineString::OGRMultiLineString
    - OGRLinearRing::addPoint
    - OGRGeometry*::getGeometryType
    - Row::GetGeometry
    - StringToWString
    - GDBGeometryToOGRGeometry
    - OGRLinearRing::OGRLinearRing
    - floor
    - Search
    - FGdbLayer::UpdateRowWithGeometry
    - OGRPolygon::addRing
    - EnumRows::Next
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRMultiPolygon::addGeometry
    - Update
    - fabs
    - OGRMultiPoint::addGeometry
    - Row::SetGeometry
    linkageType: ''
    returnType: void
    signature: void FGdbLayer::WorkAroundExtentProblem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:366,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:371,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:371,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:373,1
    - Dst: Search
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:373,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:374,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:374,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:377,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:381,1
    - Dst: EnumRows::Next
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:381,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - enumRows
    - row
    - nFID
    argTypes:
    - EnumRows
    - Row
    - GIntBig
    constantsTouched: []
    func_position:
      end: 391
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 391
    functionName: FGdbLayer::GetRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - c_str
    - CPL_INT64_FITS_ON_INT32
    - FAILED
    - CPLString::Printf
    - Search
    - CPLString::c_str
    - GDBErr
    - EnumRows::Next
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::GetRow(EnumRows &enumRows, Row &row, GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:413,1
    - Dst: FGdbDataSource*::GetGDB
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:413,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:415,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:416,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:418,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:421,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:420,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:423,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:423,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:426,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:429,1
    - Dst: GetDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:429,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:430,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:431,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:438,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:438,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:442,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:444,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:453,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:457,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:458,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:467,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:469,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:471,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:473,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:475,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:477,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:479,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:481,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:483,1
    - Dst: FGdbLayer::GDBToOGRFields
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:485,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:494,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:500,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:505,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:511,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:516,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:517,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:521,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:522,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:527,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:529,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:531,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:532,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:533,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 4
    argNames:
    - pParentDataSource
    - pTable
    - wstrTablePath
    - wstrType
    argTypes:
    - FGdbDataSource*
    - Table*
    - std::wstring
    - std::wstring
    constantsTouched: []
    func_position:
      end: 541
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 541
    functionName: FGdbLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - Reference
    - GetFieldDefn
    - CPLGetXMLValue
    - CPLError
    - GetGeomFieldCount
    - std::string::empty
    - WStringToString
    - SetGeomType
    - FAILED
    - GetDefinition
    - GetName
    - c_str
    - CPLTestBool
    - CPLDestroyXMLNode
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLParseXMLString
    - FGdbLayer::GDBToOGRFields
    - string::c_str
    - SetDescription
    - empty
    - FGdbDataSource*::GetGDB
    - EQUAL
    - GDBErr
    linkageType: ''
    returnType: bool
    signature: "bool FGdbLayer::Initialize(FGdbDataSource *pParentDataSource, Table
      *pTable,\n                           const std::wstring &wstrTablePath,\n                           const
      std::wstring &wstrType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:563,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:565,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:567,1
    - Dst: FGdbLayer::ParseSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:569,1
    - Dst: GDBGridSettingsToOGR
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:573,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:575,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:577,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:577,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:581,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:583,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:583,1
    - Dst: GDBToOGRGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:591,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:594,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:596,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:597,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:599,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:600,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:603,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:603,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:606,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:607,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:608,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:609,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:611,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:611,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:611,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:617,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:617,1
    - Dst: length
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:620,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:622,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:622,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:622,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:628,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:628,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:631,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:632,1
    - Dst: string::length
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:642,1
    - Dst: GDBToOGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:644,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:647,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 653
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 653
    functionName: FGdbLayer::ParseGeometryDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GetGeomFieldDefn
    - GDBToOGRGeometry
    - CPLDebug
    - strcmp
    - GDBGridSettingsToOGR
    - CPLGetXMLValue
    - CPLError
    - GetGeomFieldCount
    - CPLErrorReset
    - SetGeomType
    - SetAxisMappingStrategy
    - CPLPopErrorHandler
    - wkbFlatten
    - c_str
    - FGdbLayer::ParseSpatialReference
    - string::length
    - OGRSpatialReference::OGRSpatialReference
    - length
    - EQUAL
    - CPLPushErrorHandler
    - importFromEPSG
    - GDBToOGRSpatialReference
    linkageType: ''
    returnType: bool
    signature: bool FGdbLayer::ParseGeometryDef(const CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:674,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:676,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:687,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:689,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:694,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:696,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 4
    argNames:
    - psSpatialRefNode
    - pOutWkt
    - pOutWKID
    - pOutLatestWKID
    argTypes:
    - CPLXMLNode*
    - string*
    - string*
    - string*
    constantsTouched: []
    func_position:
      end: 700
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 700
    functionName: FGdbLayer::ParseSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLGetXMLValue
    linkageType: ''
    returnType: bool
    signature: "bool FGdbLayer::ParseSpatialReference(const CPLXMLNode *psSpatialRefNode,\n
      \                                     string *pOutWkt, string *pOutWKID,\n                                      string
      *pOutLatestWKID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:708,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:712,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:732,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:755,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:759,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:763,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:767,1
    - Dst: FGdbLayer::ParseGeometryDef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:769,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:773,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:775,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:777,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:779,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:781,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:788,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:791,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:801,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:802,1
    - Dst: GDBToOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:819,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:822,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:823,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:824,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:831,1
    - Dst: OGRFieldDefn::SetAlternativeName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:836,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:836,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:838,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:845,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:846,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:847,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:855,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:857,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:857,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:878,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:878,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:885,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:885,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:888,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:888,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:892,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:892,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:898,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:900,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:903,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:905,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:905,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:906,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:906,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:908,1
    - Dst: ByteArray::ByteArray
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:908,1
    - Dst: UseOpenFileGDB
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:915,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:918,1
    - Dst: GetFSName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:919,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:922,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:922,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:925,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:930,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:931,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:932,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:933,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:938,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:939,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:948,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:948,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:954,1
    - Dst: GDALClose
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:959,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 102
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 964
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 964
    functionName: FGdbLayer::GDBToOGRFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - atoi
    - GetGeomFieldDefn
    - GDALDataset*::GetLayerByName
    - strcmp
    - OGRFieldDefn::SetNullable
    - GetFieldDefn
    - CPLGetXMLValue
    - CPLError
    - std::string::c_str
    - GDALClose
    - std::string::empty
    - sscanf
    - OGRFieldDefn*::GetDefault
    - OGRAPISpyOpen
    - std::move
    - AddFieldDefn
    - OGRLayer*::GetLayerDefn
    - OGRFieldDefn::SetAlternativeName
    - GetName
    - StringToWString
    - ByteArray::ByteArray
    - auto::GetFieldDefn
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn::SetSubType
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - FGdbLayer::ParseGeometryDef
    - UseOpenFileGDB
    - CPLFree
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::SetWidth
    - GDBToOGRFieldType
    - EQUAL
    - push_back
    - GetFSName
    - clear
    linkageType: ''
    returnType: bool
    signature: bool FGdbLayer::GDBToOGRFields(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:979,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:981,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:981,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:985,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:986,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:987,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:989,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:995,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1003,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1009,1
    - Dst: Search
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1009,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1011,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1016,1
    - Dst: Search
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1016,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1018,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1022,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1023,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1027
    functionName: FGdbLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - CPLTestBool
    - IsEmpty
    - empty
    - getEnvelope
    - FAILED
    - Search
    - GDBErr
    - std::move
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void FGdbLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iGeomField
    - pOGRGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1037
    functionName: FGdbLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::ISetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::ISetSpatialFilter(int iGeomField, const OGRGeometry
      *pOGRGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1050
    functionName: FGdbLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1060,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1067,1
    - Dst: Row*::GetOID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1067,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1073,1
    - Dst: IsGeometryIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1084,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1085,1
    - Dst: Row*::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1085,1
    - Dst: GDBGeometryToOGRGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1089,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1093,1
    - Dst: string
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1095,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1095,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1098,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1111,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1114,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1122,1
    - Dst: Row*::IsNull
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1122,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1124,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1125,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1132,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1142,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1149,1
    - Dst: Row*::GetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1149,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1152,1
    - Dst: Row*::GetShort
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1152,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1154,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1156,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1163,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1173,1
    - Dst: Row*::GetFloat
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1173,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1175,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1177,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1182,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1188,1
    - Dst: Row*::GetDouble
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1188,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1190,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1192,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1197,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1209,1
    - Dst: Row*::GetGlobalID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1209,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1210,1
    - Dst: Guid::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1210,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1212,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1214,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1218,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1223,1
    - Dst: Row*::GetGUID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1223,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1224,1
    - Dst: Guid::ToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1224,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1226,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1228,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1232,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1236,1
    - Dst: Row*::GetXML
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1236,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1238,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1239,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1246,1
    - Dst: Row*::GetString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1246,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1248,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1250,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1254,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1257,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1257,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1265,1
    - Dst: Row*::GetBinary
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1265,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1267,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1268,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1273,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1282,1
    - Dst: Row*::GetDate
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1282,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1284,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1285,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1290,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1303,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1307,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 119
    argCount: 2
    argNames:
    - pRow
    - ppFeature
    argTypes:
    - Row*
    - OGRFeature**
    constantsTouched: []
    func_position:
      end: 1319
      start: 1056
    functionDepth: 3
    functionLinenumber: 1056
    functionLinenumberEnd: 1319
    functionName: FGdbBaseLayer::OGRFeatureFromGdbRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 1
    functionsReached:
    - Row*::IsNull
    - Row*::GetBinary
    - OGRFeature*::SetFieldNull
    - Row*::GetInteger
    - GetFieldDefn
    - CPLError
    - std::string::c_str
    - WStringToString
    - IsGeometryIgnored
    - OGRFieldDefn*::IsIgnored
    - Row*::GetDate
    - FAILED
    - Guid::ToString
    - Row*::GetOID
    - OGRFeature*::SetGeometryDirectly
    - string
    - GDBGeometryToOGRGeometry
    - Row*::GetFloat
    - Row*::GetDouble
    - Row*::GetGeometry
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - Row*::GetGUID
    - Row*::GetGlobalID
    - OGRFeature::OGRFeature
    - Row*::GetXML
    - GDBErr
    - OGRFeature*::SetField
    - Row*::GetShort
    - Row*::GetString
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: bool
    signature: bool FGdbBaseLayer::OGRFeatureFromGdbRow(Row *pRow, OGRFeature **ppFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FGdbLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1328,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1331,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1342,1
    - Dst: Next
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1342,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1344,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1356,1
    - Dst: Row::GetOID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1356,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1358,1
    - Dst: FGdbLayer::GetRow
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1365,1
    - Dst: OGRFeatureFromGdbRow
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1366,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1368,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1369,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1378,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1378,1
    - Dst: FGdbBaseLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1387,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1389
    functionName: FGdbLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Row::GetOID
    - FAILED
    - OGRFeatureFromGdbRow
    - FilterGeometry
    - CPLSPrintf
    - GDBErr
    - FGdbLayer::ResetReading
    - FGdbBaseLayer::GetNextFeature
    - Next
    - FGdbLayer::GetRow
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FGdbLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1400,1
    - Dst: FGdbLayer::GetRow
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1405,1
    - Dst: OGRFeatureFromGdbRow
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1410,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - oid
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1420
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1420
    functionName: FGdbLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_INT64_FITS_ON_INT32
    - OGRFeature*::SetFID
    - OGRFeatureFromGdbRow
    - FGdbLayer::GetRow
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FGdbLayer::GetFeature(GIntBig oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1433,1
    - Dst: FGdbLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1435,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1446,1
    - Dst: Next
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1446,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1448,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1464,1
    - Dst: Row::GetGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1464,1
    - Dst: GDBGeometryToOGRGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1470,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1478,1
    - Dst: FGdbLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1486,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1491,1
    - Dst: GetRowCount
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1491,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1493,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1498
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1498
    functionName: FGdbLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - empty
    - GDBGeometryToOGRGeometry
    - FAILED
    - FilterGeometry
    - GetRowCount
    - GDBErr
    - FGdbLayer::ResetReading
    - Next
    - Row::GetGeometry
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig FGdbLayer::GetFeatureCount(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1508
    functionName: FGdbLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *FGdbLayer::GetMetadataItem(const char *pszName,\n                                       const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1519,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1520,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1528,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1529,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1531,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1534,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1542,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1542,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1544,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1553,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1553,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1554,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1554,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1558
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1558
    functionName: FGdbLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    - empty
    - FAILED
    - GDBErr
    - GetFieldDefn
    - OGRLayer::IGetExtent
    - std::isnan
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,
      bool bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1576,1
    - Dst: GetDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1576,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1578,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1582,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ppXml
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1584
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1584
    functionName: FGdbLayer::GetLayerXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - FAILED
    - GDBErr
    - GetDefinition
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::GetLayerXML(char **ppXml)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1602,1
    - Dst: GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1602,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1604,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1608,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ppXml
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1610
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1610
    functionName: FGdbLayer::GetLayerMetadataXML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - FAILED
    - GDBErr
    - GetDocumentation
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FGdbLayer::GetLayerMetadataXML(char **ppXml)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1619,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1622,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1623,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1628,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1629,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1631,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1635,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1639,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp:1645,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1650
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1650
    functionName: FGdbLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - empty
    linkageType: ''
    returnType: int
    signature: int FGdbLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1659
    functionName: FGdbLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *FGdbLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FGdbBaseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached:
    - FGdbBaseLayer
    linkageType: ''
    returnType: class FGdbBaseLayer
    signature: class FGdbBaseLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: FGdbLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFIDColumn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: FGdbLayer::GetTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Table
    signature: Table *GetTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: FGdbLayer::GetTablePath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring GetTablePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: FGdbLayer::GetType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: FGdbLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: FGdbResultLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: FGdbDataSource::GetFSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetFSName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:253,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: FGdbDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: FGdbDataSource::GetRootGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: std::shared_ptr<GDALGroup> GetRootGroup() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: FGdbDataSource::GetGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Geodatabase
    signature: Geodatabase *GetGDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: FGdbDataSource::GetConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FGdbDatabaseConnection
    signature: FGdbDatabaseConnection *GetConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: FGdbDataSource::GetOpenFileGDBDrv
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDriver
    signature: GDALDriver *GetOpenFileGDBDrv()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: FGdbDataSource::HasSelectLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int HasSelectLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: FGdbDataSource::UseOpenFileGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool UseOpenFileGDB() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osName
    - pGeodatabase
    argTypes:
    - std::string
    - Geodatabase*
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: FGdbDatabaseConnection::FGdbDatabaseConnection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FGdbDatabaseConnection(const std::string &osName, Geodatabase
      *pGeodatabase)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: FGdbDatabaseConnection::GetGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Geodatabase
    signature: Geodatabase *GetGDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bLockedIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: FGdbDatabaseConnection::SetLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLocked(int bLockedIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: FGdbDatabaseConnection::GetRefCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetRefCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: FGdbDatabaseConnection::IsLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsLocked() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRecodeToWChar
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:32,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:32,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - utf8string
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: StringToWString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 12
    functionsReached:
    - CPLRecodeToWChar
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring StringToWString(const std::string &utf8string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - utf16string
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: WStringToString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 6
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: std::string
    signature: std::string WStringToString(const std::wstring &utf16string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBAPI::ErrorInfo::GetErrorDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:60,1
    - Dst: static_cast<fgdbError>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:60,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:64,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:65,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:65,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:66,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:70,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - hr
    - desc
    - errType
    - pszAddMsg
    argTypes:
    - long int
    - std::string
    - CPLErr
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: GDBErr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 11
    functionsReached:
    - WStringToString
    - static_cast<fgdbError>
    - FileGDBAPI::ErrorInfo::GetErrorDescription
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool GDBErr(long int hr, const std::string &desc, CPLErr errType,\n
      \           const char *pszAddMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileGDBAPI::ErrorInfo::GetErrorDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:88,1
    - Dst: static_cast<fgdbError>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:88,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:92,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:93,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:93,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:93,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hr
    - desc
    argTypes:
    - long int
    - std::string
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: GDBDebug
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - static_cast<fgdbError>
    - CPLDebug
    - FileGDBAPI::ErrorInfo::GetErrorDescription
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool GDBDebug(long int hr, const std::string &desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:136,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:138,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:142,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - geoType
    - hasZ
    - hasM
    - pOut
    argTypes:
    - std::string
    - bool
    - bool
    - OGRwkbGeometryType*
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: GDBToOGRGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - wkbSetM
    - std::string::c_str
    - wkbSetZ
    linkageType: ''
    returnType: bool
    signature: "bool GDBToOGRGeometry(const std::string &geoType, bool hasZ, bool
      hasM,\n                      OGRwkbGeometryType *pOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:156,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:157,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:195,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - ogrType
    - gdbType
    - hasZ
    - hasM
    argTypes:
    - OGRwkbGeometryType
    - std::string*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 202
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 202
    functionName: OGRGeometryToGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - wkbHasZ
    - OGRGeometryTypeToName
    - CPLError
    - wkbFlatten
    - wkbHasM
    linkageType: ''
    returnType: bool
    signature: "bool OGRGeometryToGDB(OGRwkbGeometryType ogrType, std::string *gdbType,\n
      \                     bool *hasZ, bool *hasM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:248,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ogrType
    - eSubType
    - gdbType
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    - std::string*
    constantsTouched: []
    func_position:
      end: 256
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 256
    functionName: OGRToGDBFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGR_GetFieldTypeName
    linkageType: ''
    returnType: bool
    signature: "bool OGRToGDBFieldType(OGRFieldType ogrType, OGRFieldSubType eSubType,\n
      \                      std::string *gdbType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:285,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:285,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:309,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - gdbType
    - lengthOut
    argTypes:
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 315
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 315
    functionName: GDBFieldTypeToLengthInBytes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLGetConfigOption
    - std::string::c_str
    - atoi
    linkageType: ''
    returnType: bool
    signature: bool GDBFieldTypeToLengthInBytes(const std::string &gdbType, int &lengthOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateFromShapeBin
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:330,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:331,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:339,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:353,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:353,1
    - Dst: OGRGeometryFactory::forceToMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:357,1
    - Dst: OGRMultiSurface::OGRMultiSurface
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:361,1
    - Dst: OGRMultiSurface*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:362,1
    - Dst: OGRGeometryFactory::forceToMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:370,1
    - Dst: OGRMultiCurve::OGRMultiCurve
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:374,1
    - Dst: OGRMultiCurve*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:375,1
    - Dst: OGRGeometryFactory::forceToMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:381,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:386,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - forceMulti
    - pGdbGeometry
    - pOGRSR
    - ppOutGeometry
    argTypes:
    - bool
    - FileGDBAPI::ShapeBuffer*
    - OGRSpatialReference*
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 392
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 392
    functionName: GDBGeometryToOGRGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 3
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - static_cast<int>
    - OGRGeometryFactory::forceToMultiLineString
    - OGRMultiCurve::OGRMultiCurve
    - OGRMultiSurface*::addGeometryDirectly
    - OGRGeometryFactory::forceToMultiPolygon
    - OGRMultiSurface::OGRMultiSurface
    - OGRGeometryFactory::forceToMultiPoint
    - CPLError
    - wkbFlatten
    - OGRCreateFromShapeBin
    - OGRMultiCurve*::addGeometryDirectly
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: bool
    signature: "bool GDBGeometryToOGRGeometry(bool forceMulti,\n                              FileGDBAPI::ShapeBuffer
      *pGdbGeometry,\n                              OGRSpatialReference *pOGRSR,\n
      \                             OGRGeometry **ppOutGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:400,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:402,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:406,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:406,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:407,1
    - Dst: morphFromESRI
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:409,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:413,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:413,1
    - Dst: FindMatches
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:418,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:421,1
    - Dst: reinterpret_cast<OGRSpatialReference *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:422,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:423,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:424,1
    - Dst: OSRFreeSRSArray
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:428,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:430,1
    - Dst: AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:434,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:444,1
    - Dst: string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - wkt
    - ppSR
    argTypes:
    - string
    - OGRSpatialReference**
    constantsTouched: []
    func_position:
      end: 449
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 449
    functionName: GDBToOGRSpatialReference
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - CPLTestBool
    - FindMatches
    - CPLFree
    - AutoIdentifyEPSG
    - string::empty
    - reinterpret_cast<OGRSpatialReference *>
    - SetAxisMappingStrategy
    - OSRFreeSRSArray
    - CPLError
    - string::c_str
    - CPLGetConfigOption
    - morphFromESRI
    - Release
    linkageType: ''
    returnType: bool
    signature: bool GDBToOGRSpatialReference(const string &wkt, OGRSpatialReference
      **ppSR)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:461,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrname
    - attrvalue
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: FGDB_CPLAddXMLAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    linkageType: ''
    returnType: void
    signature: "void FGDB_CPLAddXMLAttribute(CPLXMLNode *node, const char *attrname,\n
      \                            const char *attrvalue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:478,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:480,1
    - Dst: std::wstring::size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:485,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 496
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 496
    functionName: FGDBLaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - std::wstring::size
    - std::wstring::empty
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring FGDBLaunderName(const std::wstring &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::find
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:513,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:513,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - className
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 524
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 524
    functionName: FGDBEscapeUnsupportedPrefixes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::find
    - StringToWString
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring FGDBEscapeUnsupportedPrefixes(const std::wstring &className)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:532,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:533,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: FGDBEscapeReservedKeywords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - StringToWString
    - CPLString
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring FGDBEscapeReservedKeywords(const std::wstring &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osParentName
    - pszName
    argTypes:
    - std::string
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: OGRFileGDBGroup::OGRFileGDBGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRFileGDBGroup(const std::string &osParentName, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:62,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: OGRFileGDBGroup::GetGroupNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRFileGDBGroup::GetGroupNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: OGRFileGDBGroup::OpenGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: "std::shared_ptr<GDALGroup> OGRFileGDBGroup::OpenGroup(const std::string
      &osName,\n                                                      CSLConstList)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:82,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: OGRFileGDBGroup::GetVectorLayerNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> OGRFileGDBGroup::GetVectorLayerNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: OGRFileGDBGroup::OpenVectorLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRFileGDBGroup::OpenVectorLayer(const std::string &osName,\n
      \                                          CSLConstList) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:108,1
    - Dst: FGdbDatabaseConnection*::m_osName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:108,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:109,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bUseDriverMutex
    - pConnection
    - bUseOpenFileGDB
    argTypes:
    - bool
    - FGdbDatabaseConnection*
    - bool
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: FGdbDataSource::FGdbDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - GDALGetDriverByName
    - FromHandle
    - FGdbDatabaseConnection*::m_osName::c_str
    linkageType: ''
    returnType: void
    signature: "void FGdbDataSource::FGdbDataSource(bool bUseDriverMutex,\n                               FGdbDatabaseConnection
      *pConnection,\n                               bool bUseOpenFileGDB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:118,1
    - Dst: dynamic_cast<FGdbLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:125,1
    - Dst: FGdbLayer*::CloseGDBObjects
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:127,1
    - Dst: FGdbDriver::Release
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:132,1
    - Dst: dynamic_cast<FGdbLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 145
    functionName: FGdbDataSource::~FGdbDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<FGdbLayer *>
    - FGdbLayer*::CloseGDBObjects
    - CPLMutexHolderOptionalLockD
    - FGdbDriver::Release
    linkageType: ''
    returnType: void
    signature: void FGdbDataSource::~FGdbDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FGdbDataSource::GetGDB
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:156,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:157,1
    - Dst: FGdbDataSource::LoadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pszNewName
    - pszPublicName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: FGdbDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - FGdbDataSource::LoadLayers
    - FGdbDataSource::GetGDB
    linkageType: ''
    returnType: int
    signature: "int FGdbDataSource::Open(const char *pszNewName, int /* bUpdate */,\n
      \                        const char *pszPublicName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<FGdbLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:171,1
    - Dst: FGdbLayer*::CloseGDBObjects
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:173,1
    - Dst: CloseGeodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bCloseGeodatabase
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: FGdbDataSource::CloseInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<FGdbLayer *>
    - CloseGeodatabase
    - FGdbLayer*::CloseGDBObjects
    linkageType: ''
    returnType: int
    signature: int FGdbDataSource::CloseInternal(int bCloseGeodatabase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDatasetRelationshipTypes
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:193,1
    - Dst: GetDatasetTypes
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:195,1
    - Dst: std::vector<std::wstring>::size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:199,1
    - Dst: Table::Table
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:201,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:203,1
    - Dst: OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:203,1
    - Dst: FileGDBAPI::ErrorInfo::GetErrorDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:209,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:217,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:225,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:225,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:227,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:227,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:232,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:233,1
    - Dst: GetRelatedDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:240,1
    - Dst: GetRelatedDatasetDefinitions
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:244,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:247,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:247,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:249,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:250,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:251,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:252,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:256,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:257,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:261,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:261,1
    - Dst: FGdbLayer::FGdbLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:267,1
    - Dst: FGdbLayer*::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:268,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:271,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:272,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:275,1
    - Dst: OGRFileGDBGroup*::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - group
    - type
    - layers
    argTypes:
    - OGRFileGDBGroup*
    - std::wstring
    - std::vector<std::wstring>
    constantsTouched: []
    func_position:
      end: 279
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 279
    functionName: FGdbDataSource::OpenFGDBTables
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDatasetTypes
    - CPLDebug
    - GetDatasetRelationshipTypes
    - FGdbLayer*::Initialize
    - CPLString
    - WStringToString
    - FAILED
    - OpenTable
    - FileGDBAPI::ErrorInfo::GetErrorDescription
    - std::vector::empty
    - Table::Table
    - c_str
    - FGdbLayer::FGdbLayer
    - GetRelatedDatasetDefinitions
    - std::vector<std::wstring>::size
    - GDBErr
    - OGRFileGDBGroup*::m_apoLayers::emplace_back
    - GetRelatedDatasets
    - push_back
    linkageType: ''
    returnType: bool
    signature: "bool FGdbDataSource::OpenFGDBTables(OGRFileGDBGroup *group,\n                                    const
      std::wstring &type,\n                                    const std::vector<std::wstring>
      &layers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<OGRFileGDBGroup>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:292,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:292,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:296,1
    - Dst: GetChildDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:296,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:298,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:298,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:301,1
    - Dst: FGdbDataSource::OpenFGDBTables
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:301,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:301,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:305,1
    - Dst: GetChildDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:305,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:308,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:309,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:312,1
    - Dst: FGdbDataSource::OpenFGDBTables
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:313,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:313,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:317,1
    - Dst: GetChildDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:317,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:320,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:321,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:324,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:328,1
    - Dst: GetChildDatasets
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:328,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:331,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:335,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:336,1
    - Dst: std::make_shared<OGRFileGDBGroup>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:337,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:338,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:338,1
    - Dst: auto::m_apoSubGroups::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:339,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:340,1
    - Dst: FGdbDataSource::OpenFGDBTables
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:341,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:341,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:355,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:358,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:358,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:358,1
    - Dst: FGdbDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:363,1
    - Dst: FGdbDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:365,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:373,1
    - Dst: std::string::compare
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:375,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:381,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:381,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:384,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:390,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:390,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:392,1
    - Dst: auto::m_apoLayers::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:393,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:403,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:404,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:405,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:406,1
    - Dst: std::unique_ptr::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:407,1
    - Dst: std::unique_ptr::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:409,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:427,1
    - Dst: ParseXMLRelationshipDef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:430,1
    - Dst: GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:431,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:435,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:437,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 60
    argCount: 1
    argNames:
    - root
    argTypes:
    - std::wstring
    constantsTouched: []
    func_position:
      end: 446
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 446
    functionName: FGdbDataSource::LoadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - auto::GetName
    - auto::get
    - FGdbDataSource::OpenFGDBTables
    - CPLString
    - auto::m_apoSubGroups::emplace_back
    - CPLError
    - std::string::c_str
    - std::string::empty
    - WStringToString
    - GDALDataset::GetLayerByName
    - FAILED
    - std::string::compare
    - OGRAPISpyOpen
    - std::move
    - std::make_shared<OGRFileGDBGroup>
    - GetLayerByName
    - std::vector::empty
    - FGdbDataSource::GetLayer
    - GetFieldAsString
    - auto::m_apoLayers::emplace_back
    - CPLSPrintf
    - std::unique_ptr::GetLayer
    - GetChildDatasets
    - CPLFormFilenameSafe
    - ParseXMLRelationshipDef
    - std::string
    - EQUAL
    - GDBErr
    - push_back
    - reset
    - std::string::substr
    linkageType: ''
    returnType: bool
    signature: bool FGdbDataSource::LoadLayers(const std::wstring &root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:454,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: FGdbDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int FGdbDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: FGdbDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *FGdbDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: OGRFGdbSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: OGRFGdbSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: OGRFGdbSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:516,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:517,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:517,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:518,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:520,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pszLayerName
    - pszValIn
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 524
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 524
    functionName: OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer(const char
      *pszLayerName,\n                                                     const char
      *pszValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:533,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: OGRFGdbSingleFeatureLayer::~OGRFGdbSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRFGdbSingleFeatureLayer::~OGRFGdbSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:546,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:548,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: OGRFGdbSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRFGdbSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsGenericSQLDialect
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:568,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:569,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:575,1
    - Dst: cpl::down_cast<FGdbLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:577,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:578,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:578,1
    - Dst: FGdbLayer*::GetLayerXML
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:582,1
    - Dst: OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:584,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:585,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:595,1
    - Dst: cpl::down_cast<FGdbLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:597,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:598,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:598,1
    - Dst: FGdbLayer*::GetLayerMetadataXML
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:602,1
    - Dst: OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:604,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:615,1
    - Dst: CompactDatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:617,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:618,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:620,1
    - Dst: OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:621,1
    - Dst: OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:623,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:628,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:630,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:636,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:638,1
    - Dst: EnumRows::EnumRows
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:645,1
    - Dst: FGdbDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:649,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:649,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:654,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:662,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:664,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:664,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:669,1
    - Dst: FGdbResultLayer::FGdbResultLayer
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:671,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:672,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 680
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 680
    functionName: FGdbDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - IsGenericSQLDialect
    - CPLError
    - EnumRows::EnumRows
    - cpl::down_cast<FGdbLayer *>
    - FAILED
    - insert
    - FGdbDataSource::ExecuteSQL
    - strlen
    - GetLayerByName
    - CompactDatabase
    - StringToWString
    - STARTS_WITH_CI
    - CPLSPrintf
    - CPLFree
    - FGdbLayer*::GetLayerMetadataXML
    - FGdbResultLayer::FGdbResultLayer
    - OGRFGdbSingleFeatureLayer::OGRFGdbSingleFeatureLayer
    - EQUAL
    - GDALDataset::ExecuteSQL
    - GDBErr
    - FGdbLayer*::GetLayerXML
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *FGdbDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                    OGRGeometry *poSpatialFilter,\n                                     const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: FGdbDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void FGdbDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:700,1
    - Dst: GetDomainDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:706,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:706,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:707,1
    - Dst: ParseXMLFieldDomainDef
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:713,1
    - Dst: auto::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:716,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:717,1
    - Dst: GDALDataset::GetFieldDomain
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 719
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 719
    functionName: FGdbDataSource::GetFieldDomain
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - StringToWString
    - ParseXMLFieldDomainDef
    - FAILED
    - auto::GetName
    - std::move
    - GetDomainDefinition
    - GDALDataset::GetFieldDomain
    linkageType: ''
    returnType: OGRFieldDomain
    signature: 'OGRFieldDomain *

      FGdbDataSource::GetFieldDomain(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDomains
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:728,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:729,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:731,1
    - Dst: std::vector<std::string>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:732,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:736,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:736,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:739,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 742
    functionName: FGdbDataSource::GetFieldDomainNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - WStringToString
    - GetDomains
    - std::vector::size
    - FAILED
    - std::vector::emplace_back
    - GDBErr
    - std::vector::reserve
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> FGdbDataSource::GetFieldDomainNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:753,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:753,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:754,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:755,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - CSLConstList papszOptions
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 760
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 760
    functionName: FGdbDataSource::GetRelationshipNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - std::vector::emplace_back
    - begin
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> FGdbDataSource::GetRelationshipNames(CPL_UNUSED
      CSLConstList papszOptions) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:770,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:771,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 775
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 775
    functionName: FGdbDataSource::GetRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::get
    linkageType: ''
    returnType: GDALRelationship
    signature: 'GDALRelationship *

      FGdbDataSource::GetRelationship(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:35,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:36,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:37,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: OGRFileGDBDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLDestroyMutex
    - empty
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRFileGDBDriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFileGDBDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:66,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:73,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:74,1
    - Dst: auto::reset
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:78,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:79,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:80,1
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:89,1
    - Dst: std::map<CPLString, FGdbDatabaseConnection *>::map<CPLString, FGdbDatabaseConnection
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:91,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:97,1
    - Dst: Geodatabase::Geodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:102,1
    - Dst: FGdbDatabaseConnection::OpenGeodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:103,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:103,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:105,1
    - Dst: OGRGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:109,1
    - Dst: FileGDBAPI::ErrorInfo::GetErrorDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:114,1
    - Dst: static_cast<fgdbError>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:115,1
    - Dst: WStringToString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:118,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:120,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:123,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:127,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:129,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:133,1
    - Dst: FGdbDatabaseConnection::FGdbDatabaseConnection
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:134,1
    - Dst: FGdbDataSource::FGdbDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:140,1
    - Dst: FGdbDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:142,1
    - Dst: OGRMutexedDataSource::OGRMutexedDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:150,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 153
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 153
    functionName: OGRFileGDBDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 0
    functionsReached:
    - std::map<CPLString, FGdbDatabaseConnection *>::map<CPLString, FGdbDatabaseConnection
      *>
    - OGRFileGDBDriverIdentifyInternal
    - CPLDebug
    - std::string::c_str
    - OGRGetDriverByName
    - WStringToString
    - static_cast<fgdbError>
    - FAILED
    - OGRAPISpyOpen
    - FileGDBAPI::ErrorInfo::GetErrorDescription
    - StringToWString
    - Geodatabase::Geodatabase
    - FGdbDataSource*::Open
    - OGRMutexedDataSource::OGRMutexedDataSource
    - FGdbDatabaseConnection::FGdbDatabaseConnection
    - std::unique_ptr<GDALDataset>
    - erase
    - CPLMutexHolderD
    - FGdbDatabaseConnection::OpenGeodatabase
    - FGdbDataSource::FGdbDataSource
    - GDBErr
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRFileGDBDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:165,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:168,1
    - Dst: auto::Create
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: OGRFileGDBDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - auto::Create
    - GetGDALDriverManager
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRFileGDBDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                       CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                      CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderOptionalLockD
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:184,1
    - Dst: std::map<CPLString, FGdbDatabaseConnection *>::map<CPLString, FGdbDatabaseConnection
        *>
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:187,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:193,1
    - Dst: FGdbDatabaseConnection*::CloseGeodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:197,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: FGdbDriver::Release
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 1
    functionsReached:
    - erase
    - std::map<CPLString, FGdbDatabaseConnection *>::map<CPLString, FGdbDatabaseConnection
      *>
    - CPLMutexHolderOptionalLockD
    - CPLDebug
    - FGdbDatabaseConnection*::CloseGeodatabase
    linkageType: ''
    returnType: void
    signature: void FGdbDriver::Release(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:212,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:212,1
    - Dst: FGdbDatabaseConnection::CloseGeodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: FGdbDatabaseConnection::CloseGeodatabase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 1
    functionsReached:
    - FGdbDatabaseConnection::CloseGeodatabase
    - c_str
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void FGdbDatabaseConnection::CloseGeodatabase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Geodatabase::Geodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:225,1
    - Dst: FAILED
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pszFSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: FGdbDatabaseConnection::OpenGeodatabase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 1
    functionsReached:
    - FAILED
    - Geodatabase::Geodatabase
    linkageType: ''
    returnType: int
    signature: int FGdbDatabaseConnection::OpenGeodatabase(const char *pszFSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:243,1
    - Dst: StringToWString
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:245,1
    - Dst: ::DeleteGeodatabase
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:249,1
    - Dst: GDBErr
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszDataSource
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: OGRFileGDBDeleteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 0
    functionsReached:
    - GDBErr
    - StringToWString
    - ::DeleteGeodatabase
    - CPLMutexHolderD
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRFileGDBDeleteDataSource(const char *pszDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:265,1
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:268,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:271,1
    - Dst: OGRFileGDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:272,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 280
    functionName: RegisterOGRFileGDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - OGRFileGDBDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void RegisterOGRFileGDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:30,1
    - Dst: ENDS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:31,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:37,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:44,1
    - Dst: OGRFileGDBDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - poOpenInfo
    - pszFilename
    argTypes:
    - GDALOpenInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: OGRFileGDBDriverIdentifyInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp
    functionUses: 2
    functionsReached:
    - OGRFileGDBDriverIdentifyInternal
    - ENDS_WITH
    - EQUAL
    - STARTS_WITH
    - CPLFree
    linkageType: ''
    returnType: GDALIdentifyEnum
    signature: "GDALIdentifyEnum OGRFileGDBDriverIdentifyInternal(GDALOpenInfo *poOpenInfo,\n
      \                                                 const char *&pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFileGDBDriverIdentifyInternal
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: OGRFileGDBDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp
    functionUses: 0
    functionsReached:
    - OGRFileGDBDriverIdentifyInternal
    linkageType: ''
    returnType: int
    signature: int OGRFileGDBDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:81,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:83,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:84,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:86,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:89,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:92,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:163,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:170,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:171,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:172,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:173,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:174,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:175,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:176,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:177,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:178,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:179,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:183,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:188,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:190,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:192,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:194,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:197,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 199
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 199
    functionName: OGRFileGDBDriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRFileGDBDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:208,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:212,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:214,1
    - Dst: OGRFileGDBDriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:217,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: DeclareDeferredOGRFileGDBPlugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/filegdb/FGdbDriverCore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - OGRFileGDBDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRFileGDBPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: GetID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 4
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: char
    signature: char *GetID(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:114,1
    - Dst: FindElementByID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - psRoot
    - pszID
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 131
    functionName: FindElementByID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - FindElementByID
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *FindElementByID(CPLXMLNode *psRoot, const char *pszID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:149,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:151,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:152,1
    - Dst: RemoveIDs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: RemoveIDs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLDestroyXMLNode
    - RemoveIDs
    - CPLRemoveXMLChild
    linkageType: ''
    returnType: void
    signature: void RemoveIDs(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:178,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:199,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - psRoot
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 207
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 207
    functionName: TrimTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLDestroyXMLNode
    - CPLRemoveXMLChild
    linkageType: ''
    returnType: bool
    signature: bool TrimTree(CPLXMLNode *psRoot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:231,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:235,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:237,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:247,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:248,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:249,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:250,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:263,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:270,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:273,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:274,1
    - Dst: CPLStrlcat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:285,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:286,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:287,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:289,1
    - Dst: CorrectURLs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:298,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 2
    argNames:
    - psRoot
    - pszURL
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 299
    functionName: CorrectURLs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPLStrlcpy
    - strncmp
    - strncpy
    - CPLIsFilenameRelative
    - CorrectURLs
    - EQUAL
    - strlen
    - strstr
    - CPLStrlcat
    - CPLSetXMLValue
    linkageType: ''
    returnType: void
    signature: void CorrectURLs(CPLXMLNode *psRoot, const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:326,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:329,1
    - Dst: CPLHTTPEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:331,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:334,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:335,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:338,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:339,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:340,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:347,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:350,1
    - Dst: TrimTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:359,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:365,1
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:366,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:367,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ppapsRoot
    - ppapszResourceHREF
    - pszURL
    argTypes:
    - CPLXMLNode***
    - char***
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 373
    functionName: FindTreeByURL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 0
    functionsReached:
    - CPLHTTPEnabled
    - CPLErrorReset
    - reinterpret_cast<const char *>
    - static_cast<CPLXMLNode **>
    - CPLHTTPFetch
    - CPLParseXMLFile
    - TrimTree
    - CSLAddString
    - CPLGetLastErrorNo
    - CPLCheckForFile
    - CPLParseXMLString
    - CPLRealloc
    - CPLHTTPDestroyResult
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *FindTreeByURL(CPLXMLNode ***ppapsRoot,\n                                 char
      ***ppapszResourceHREF, const char *pszURL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:404,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:410,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:421,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:429,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:431,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:435,1
    - Dst: FindTreeByURL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:444,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:447,1
    - Dst: FindElementByID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:455,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:459,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:460,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:464,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:465,1
    - Dst: RemoveIDs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:466,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:468,1
    - Dst: CorrectURLs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:470,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:472,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:473,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:478,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:479,1
    - Dst: Resolve
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:489,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 6
    argNames:
    - psNode
    - ppapsRoot
    - ppapszResourceHREF
    - papszSkip
    - bStrict
    - nDepth
    argTypes:
    - CPLXMLNode*
    - CPLXMLNode***
    - char***
    - char**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 499
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 499
    functionName: Resolve
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 1
    functionsReached:
    - FindElementByID
    - CPLCloneXMLTree
    - CPLError
    - CPLRemoveXMLChild
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CSLDestroy
    - CorrectURLs
    - CPLDebug
    - CPLAddXMLChild
    - EQUAL
    - CSLFindString
    - CPLStrnlen
    - RemoveIDs
    - CSLCount
    - Resolve
    - FindTreeByURL
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr Resolve(CPLXMLNode *psNode, CPLXMLNode ***ppapsRoot,\n                      char
      ***ppapszResourceHREF, char **papszSkip,\n                      const int bStrict,
      int nDepth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:520,1
    - Dst: static_cast<CPLXMLNode **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:530,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:530,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:535,1
    - Dst: CorrectURLs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:543,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:548,1
    - Dst: Resolve
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:551,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:559,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:560,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:561,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:562,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:568,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:577,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:577,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:580,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:583,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:589,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:597,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:598,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:607,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:609,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp:610,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - pszFile
    - pbOutIsTempFile
    - papszSkip
    - bStrict
    argTypes:
    - char*
    - bool*
    - char**
    - bool
    constantsTouched: []
    func_position:
      end: 613
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 613
    functionName: GMLReader::ResolveXlinks
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/resolvexlinks.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - static_cast<CPLXMLNode **>
    - CPLStrdup
    - CPLParseXMLFile
    - CPLDestroyXMLNode
    - CSLAddString
    - CorrectURLs
    - CSLDestroy
    - CPLSerializeXMLTreeToFile
    - CPLError
    - Resolve
    - CPLCalloc
    - CPLFree
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::ResolveXlinks(const char *pszFile, bool *pbOutIsTempFile,\n
      \                             char **papszSkip, const bool bStrict)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:27,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:35,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:36,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:45,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:46,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:47,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:59,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:62,1
    - Dst: OGRGMLDataSource::CheckHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:65,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:66,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: OGRGMLDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - GDALOpenInfo*::IsSingleAllowedDriver
    - reinterpret_cast<const char *>
    - static_cast<unsigned char>
    - STARTS_WITH
    - strstr
    - GDALOpenInfo*::IsExtensionEqualToCI
    - OGRGMLDataSource::CheckHeader
    linkageType: ''
    returnType: int
    signature: int OGRGMLDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:80,1
    - Dst: OGRGMLDataSource::OGRGMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:83,1
    - Dst: OGRGMLDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: OGRGMLDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLDriverIdentify
    - OGRGMLDataSource*::Open
    - OGRGMLDataSource::OGRGMLDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGMLDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLDataSource::OGRGMLDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:103,1
    - Dst: OGRGMLDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: OGRGMLDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLDataSource*::Create
    - OGRGMLDataSource::OGRGMLDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nOGRGMLDriverCreate(const char *pszName, CPL_UNUSED
      int nBands,\n                   CPL_UNUSED int nXSize, CPL_UNUSED int nYSize,\n
      \                  CPL_UNUSED GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:121,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:124,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:126,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:127,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:128,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:129,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:130,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:131,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:132,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:134,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:136,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:137,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:139,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:217,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:278,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:280,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:283,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:285,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:288,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:289,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:290,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:291,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:292,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:293,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 300
    functionName: RegisterOGRGML
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRGML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/embedded_resources.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: GMLGetFileContent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/embedded_resources.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *GMLGetFileContent(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: IGMLReader::~IGMLReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IGMLReader::~IGMLReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: CreateGMLReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: IGMLReader
    signature: "IGMLReader *CreateGMLReader(bool /*bUseExpatParserPreferably*/,\n
      \                           bool /*bInvertAxisOrderIfLatLong*/,\n                            bool
      /*bConsiderEPSGAsURN*/,\n                            GMLSwapCoordinatesEnum
      /* eSwapCoordinates */,\n                            bool /*bGetSecondaryGeometryOption*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::GMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bUseExpatParserPreferably
    - bInvertAxisOrderIfLatLong
    - bConsiderEPSGAsURN
    - eSwapCoordinates
    - bGetSecondaryGeometryOption
    argTypes:
    - bool
    - bool
    - bool
    - GMLSwapCoordinatesEnum
    - bool
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: CreateGMLReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::GMLReader
    linkageType: ''
    returnType: IGMLReader
    signature: "IGMLReader *CreateGMLReader(bool bUseExpatParserPreferably,\n                            bool
      bInvertAxisOrderIfLatLong,\n                            bool bConsiderEPSGAsURN,\n
      \                           GMLSwapCoordinatesEnum eSwapCoordinates,\n                            bool
      bGetSecondaryGeometryOption)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::ClearClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:142,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:144,1
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:146,1
    - Dst: OGRDeinitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:152,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:155,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:159,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:162,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: GMLReader::~GMLReader()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::CleanupParser
    - VSIFCloseL
    - OGRDeinitializeXerces
    - GMLReader::ClearClasses
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLReader::~GMLReader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:174,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: GMLReader::SetSourceFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLReader::SetSourceFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: GMLReader::GetSourceFileName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GMLReader::GetSourceFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: GMLReader::SetFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLReader::SetFP(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:204,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:206,1
    - Dst: GMLReader::SetupParserExpat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:211,1
    - Dst: GMLReader::SetupParserXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:216,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:220,1
    - Dst: GMLReader::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:231,1
    - Dst: GMLReadState::GMLReadState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 235
    functionName: GMLReader::SetupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::PushState
    - GMLReader::SetupParserXerces
    - GMLReadState::GMLReadState
    - VSIFSeekL
    - GMLReader::SetupParserExpat
    - VSIFOpenL
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::SetupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRInitializeXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:246,1
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:253,1
    - Dst: XMLReaderFactory::createXMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:261,1
    - Dst: GMLXercesHandler::GMLXercesHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:263,1
    - Dst: setContentHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:266,1
    - Dst: setErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:267,1
    - Dst: setLexicalHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:268,1
    - Dst: setEntityResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:269,1
    - Dst: setDTDHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:270,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:271,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:275,1
    - Dst: OGR::transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:277,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:280,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:281,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:283,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:284,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:289,1
    - Dst: setFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:291,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:294,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:295,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:299,1
    - Dst: flatbuffers::vector_downward::release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:300,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:302,1
    - Dst: OGRCreateXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 311
    functionName: GMLReader::SetupParserXerces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - GMLReader::CleanupParser
    - OGRInitializeXerces
    - CPLError
    - setLexicalHandler
    - GMLXercesHandler::GMLXercesHandler
    - setFeature
    - setEntityResolver
    - XMLReaderFactory::createXMLReader
    - setDTDHandler
    - OGRCreateXercesInputSource
    - setContentHandler
    - OGR::transcode
    - flatbuffers::vector_downward::release
    - setErrorHandler
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::SetupParserXerces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:323,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:325,1
    - Dst: GMLExpatHandler::GMLExpatHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:326,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:328,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:330,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:331,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:334,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: GMLReader::SetupParserExpat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - GMLReader::CleanupParser
    - XML_SetElementHandler
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - static_cast<char *>
    - GMLExpatHandler::GMLExpatHandler
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::SetupParserExpat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::PopState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:360,1
    - Dst: OGRDestroyXercesInputSource
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:365,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:374,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:379,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 392
    functionName: GMLReader::CleanupParser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 3
    functionsReached:
    - OGRDestroyXercesInputSource
    - XML_ParserFree
    - GMLReader::PopState
    - CPLFree
    - clear
    linkageType: ''
    returnType: void
    signature: void GMLReader::CleanupParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:412,1
    - Dst: parseFirst
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:419,1
    - Dst: parseNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:424,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:437,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:437,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:438,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:439,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:445,1
    - Dst: getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:446,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:446,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 451
    functionName: GMLReader::NextFeatureXerces
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::SetupParser
    - parseNext
    - CPLDebug
    - getMessage
    - CPLString::c_str
    - CPLError
    - parseFirst
    - transcode
    linkageType: ''
    returnType: GMLFeature
    signature: GMLFeature *GMLReader::NextFeatureXerces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:461,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:471,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:473,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:473,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:474,1
    - Dst: VSIFEofL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:478,1
    - Dst: VSIFErrorL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:479,1
    - Dst: static_cast<GMLExpatHandler *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:489,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:503,1
    - Dst: Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:507,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:510,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:510,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:511,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:511,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:512,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:512,1
    - Dst: static_cast<GMLExpatHandler *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:516,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:523,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:525,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:525,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:526,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 530
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 530
    functionName: GMLReader::NextFeatureExpat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - static_cast<int>
    - empty
    - VSIFEofL
    - XML_Parse
    - XML_ErrorString
    - GMLReader::SetupParser
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - Printf
    - static_cast<GMLExpatHandler *>
    - VSIFErrorL
    - CPLError
    - XML_GetCurrentColumnNumber
    - clear
    linkageType: ''
    returnType: GMLFeature
    signature: GMLFeature *GMLReader::NextFeatureExpat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::NextFeatureExpat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:537,1
    - Dst: GMLReader::NextFeatureXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:539,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:541,1
    - Dst: GMLReader::NextFeatureXerces
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:547,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: GMLReader::NextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - GMLReader::NextFeatureExpat
    - GMLReader::NextFeatureXerces
    linkageType: ''
    returnType: GMLFeature
    signature: GMLFeature *GMLReader::NextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:583,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:583,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:595,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:597,1
    - Dst: GMLReader::AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:599,1
    - Dst: GMLFeature::GMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:607,1
    - Dst: GMLFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:610,1
    - Dst: GMLReadState::GMLReadState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:617,1
    - Dst: GMLReader::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pszElement
    - pszFID
    - nClassIndex
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 621
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 621
    functionName: GMLReader::PushFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GetElementName
    - GMLReader::PushState
    - GMLFeature*::SetFID
    - GMLReadState::GMLReadState
    - GMLReader::AddClass
    - EQUAL
    - CPLAssert
    - GMLFeature::GMLFeature
    - GMLFeatureClass::GMLFeatureClass
    linkageType: ''
    returnType: void
    signature: "void GMLReader::PushFeature(const char *pszElement, const char *pszFID,\n
      \                           int nClassIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:643,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:644,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:650,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:657,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:658,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:662,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:667,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:671,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:672,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:678,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:680,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:686,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:686,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:687,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:688,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:689,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:692,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:692,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:693,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:694,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:695,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:698,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:698,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:699,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:700,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:701,1
    - Dst: osPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:712,1
    - Dst: GetElementNameLen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:713,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:714,1
    - Dst: osPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:715,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:717,1
    - Dst: osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:717,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:718,1
    - Dst: osPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:719,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:720,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:721,1
    - Dst: osPath::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:722,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:749,1
    - Dst: GetElementNameLen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:749,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:750,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:750,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 43
    argCount: 3
    argNames:
    - pszElement
    - nElementLength
    - eAppSchemaType
    argTypes:
    - char*
    - int
    - GMLAppSchemaType
    constantsTouched: []
    func_position:
      end: 756
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 756
    functionName: GMLReader::GetFeatureElementIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GetElementName
    - static_cast<int>
    - osPath::c_str
    - memcmp
    - EQUAL
    - strcmp
    - strlen
    - osPath::size
    - GetElementNameLen
    linkageType: ''
    returnType: int
    signature: "int GMLReader::GetFeatureElementIndex(const char *pszElement,\n                                      int
      nElementLength,\n                                      GMLAppSchemaType eAppSchemaType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:766,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:767,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:768,1
    - Dst: m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:775,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:779,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:781,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:785,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:787,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:787,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:789,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - pszElement
    - attr
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 796
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 796
    functionName: GMLReader::IsCityGMLGenericAttributeElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLFeatureClass*::GetPropertyCount
    - GMLFeatureClass*::GetProperty
    - GMLFeatureClass*::IsSchemaLocked
    - strcmp
    - CPLFree
    - m_poFeature::GetClass
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::IsCityGMLGenericAttributeElement(const char *pszElement,\n
      \                                                void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:806,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:810,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:818,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:822,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:823,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:824,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:825,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:826,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:826,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:834,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:834,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:835,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:836,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:837,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:838,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:841,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:842,1
    - Dst: GMLFeatureClass*::GetPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:844,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - pszElement
    - nLen
    - pszAttrKey
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 847
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 847
    functionName: GMLReader::GetAttributeElementIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - static_cast<int>
    - GMLFeatureClass*::GetPropertyIndexBySrcElement
    - assign
    - GMLFeatureClass*::IsSchemaLocked
    - strlen
    - append
    - reserve
    - m_poFeature::GetClass
    linkageType: ''
    returnType: int
    signature: "int GMLReader::GetAttributeElementIndex(const char *pszElement, int
      nLen,\n                                        const char *pszAttrKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GMLFeature **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:878,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:878,1
    - Dst: Reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 895
    functionName: GMLReader::PopState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GMLFeature **>
    - CPLRealloc
    - Reset
    linkageType: ''
    returnType: void
    signature: void GMLReader::PopState()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poState
    argTypes:
    - GMLReadState*
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: GMLReader::PushState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLReader::PushState(GMLReadState *poState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iClass
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: GMLReader::GetClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLFeatureClass
    signature: GMLFeatureClass *GMLReader::GetClass(int iClass) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:930,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 935
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 935
    functionName: GMLReader::GetClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetName
    linkageType: ''
    returnType: GMLFeatureClass
    signature: GMLFeatureClass *GMLReader::GetClass(const char *pszName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:944,1
    - Dst: GMLReader::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:944,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:944,1
    - Dst: static_cast<GMLFeatureClass **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:947,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:948,1
    - Dst: GMLFeatureClass*::HasFeatureProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poNewClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 955
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 955
    functionName: GMLReader::AddClass
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - GMLReader::GetClass
    - CPLRealloc
    - CPLAssert
    - GMLFeatureClass*::HasFeatureProperties
    - GMLFeatureClass*::GetName
    - static_cast<GMLFeatureClass **>
    linkageType: ''
    returnType: int
    signature: int GMLReader::AddClass(GMLFeatureClass *poNewClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: GMLReader::ClearClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLReader::ClearClasses()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:986,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:988,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:994,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1006,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1006,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1013,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1015,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1018,1
    - Dst: GMLReader::IsWFSJointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1024,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1030,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1031,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1039,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1042,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1046,1
    - Dst: strrchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1052,1
    - Dst: GMLFeatureClass*::GetPropertyIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1053,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1062,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1067,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1068,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1069,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1075,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1077,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1077,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1079,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1081,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1083,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1086,1
    - Dst: GMLFeature*::SetPropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1095,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1100,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1102,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1105,1
    - Dst: auto::AnalysePropertyValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1108,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1113,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 4
    argNames:
    - pszElement
    - pszValue
    - iPropertyIn
    - eType
    argTypes:
    - char*
    - char*
    - int
    - GMLPropertyType
    constantsTouched: []
    func_position:
      end: 1116
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1116
    functionName: GMLReader::SetFeaturePropertyDirectly
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - strcmp
    - GMLReader::GetState
    - STARTS_WITH
    - CPLString::resize
    - CPLGetConfigOption
    - GMLPropertyDefn::GMLPropertyDefn
    - GMLFeatureClass*::AddProperty
    - GMLFeatureClass*::GetProperty
    - GMLFeature*::SetPropertyDirectly
    - CPLString::c_str
    - GMLReader::IsWFSJointLayer
    - strlen
    - GMLFeatureClass*::GetPropertyIndex
    - GMLPropertyDefn*::SetType
    - CPLAssert
    - strrchr
    - CPLString::find
    - CPLFree
    - GMLFeature*::GetClass
    - auto::AnalysePropertyValue
    - GMLFeature*::GetProperty
    - EQUAL
    - GMLFeatureClass*::IsSchemaLocked
    - strchr
    linkageType: ''
    returnType: void
    signature: "void GMLReader::SetFeaturePropertyDirectly(const char *pszElement,\n
      \                                          char *pszValue, int iPropertyIn,\n
      \                                          GMLPropertyType eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIIngestFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1138,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1141,1
    - Dst: GMLGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1146,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1149,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1157,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1159,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1160,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1170,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1177,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1179,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1196,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1198,1
    - Dst: GMLFeatureClass*::InitializeFromXML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1200,1
    - Dst: GMLFeatureClass*::SetSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1206,1
    - Dst: GMLReader::AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1208,1
    - Dst: GMLReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1212,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - pszFile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1215
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1215
    functionName: GMLReader::LoadClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::SetClassListLocked
    - CPLTestBool
    - reinterpret_cast<const char *>
    - GMLReader::AddClass
    - CPLDebug
    - GMLFeatureClass*::SetSchemaLocked
    - EQUAL
    - GMLFeatureClass*::InitializeFromXML
    - VSIIngestFile
    - strstr
    - GMLGetFileContent
    - VSIFree
    - CPLError
    - CPLXMLTreeCloser::get
    - GMLFeatureClass::GMLFeatureClass
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::LoadClasses(const char *pszFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1232,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1236,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1242,1
    - Dst: SerializeToXML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1242,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1250,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1252,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1252,1
    - Dst: auto::Write
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1259,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1259,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pszFile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1266
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1266
    functionName: GMLReader::SaveClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLElementAndValue
    - auto::Write
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLAddXMLChild
    - VSIFOpenL
    - VSIVirtualHandleUniquePtr
    - strlen
    - CPLFree
    - SerializeToXML
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::SaveClasses(const char *pszFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1285,1
    - Dst: GMLReader::ClearClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1286,1
    - Dst: GMLReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1289,1
    - Dst: SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1304,1
    - Dst: SetSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1305,1
    - Dst: GMLReader::NextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1312,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1314,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1316,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1316,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1318,1
    - Dst: GML_IsLegitSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1319,1
    - Dst: GMLFeatureClass*::SetSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1321,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1326,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1330,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1331,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1333,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1333,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1335,1
    - Dst: GMLFeature*::GetBoundedByGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1340,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1343,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1353,1
    - Dst: GMLFeatureClass*::GetSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1355,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1356,1
    - Dst: GMLFeatureClass*::IsConsistentSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1357,1
    - Dst: std::string::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1363,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1365,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1367,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1368,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1368,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1367,1
    - Dst: GML_BuildOGRGeometryFromList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1383,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1391,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1393,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1393,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1401,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1407,1
    - Dst: GMLFeatureClass*::MergeSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1408,1
    - Dst: auto::MergeSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1410,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1417,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1417,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1421,1
    - Dst: OGRMergeGeometryTypesEx
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1421,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1422,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1426,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1435,1
    - Dst: GMLFeatureClass*::GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1436,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1438,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1439,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1440,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1441,1
    - Dst: GMLFeatureClass*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1451,1
    - Dst: GML_BuildOGRGeometryFromList_DestroyCache
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1460,1
    - Dst: GML_IsLegitSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1464,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1465,1
    - Dst: GMLFeatureClass*::HasExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1474,1
    - Dst: GMLFeatureClass*::GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1480,1
    - Dst: GMLFeatureClass*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1481,1
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1486,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 96
    argCount: 2
    argNames:
    - bGetExtents
    - bOnlyDetectSRS
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1489
      start: 1277
    functionDepth: 8
    functionLinenumber: 1277
    functionLinenumberEnd: 1489
    functionName: GMLReader::PrescanForSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::SetClassListLocked
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - GMLFeatureClass*::SetFeatureCount
    - GMLFeatureClass*::GetExtents
    - GMLReader::CleanupParser
    - auto::SetType
    - GMLReader::SetupParser
    - GMLReader::NextFeature
    - std::set::insert
    - GML_IsLegitSRSName
    - auto::GetType
    - strcmp
    - OGRMergeGeometryTypesEx
    - SetFeatureCount
    - GMLFeatureClass*::GetSingleGeomElemPath
    - std::string::c_str
    - GMLFeatureClass*::SetExtents
    - std::string::empty
    - GML_BuildOGRGeometryFromList
    - SetSRSName
    - OGRGeometry*::getGeometryType
    - GMLFeatureClass*::GetFeatureCount
    - GMLReader::ClearClasses
    - GMLFeatureClass*::GetGeometryPropertyCount
    - static_cast<OGRwkbGeometryType>
    - GMLFeatureClass*::SetSRSName
    - std::set::find
    - min
    - GML_IsSRSLatLongOrder
    - GMLFeatureClass*::HasExtents
    - GMLFeature*::GetGeometryList
    - OGRGeometry*::getEnvelope
    - auto::MergeSRSName
    - OGRGeometry*::IsEmpty
    - GMLFeature*::GetClass
    - GMLFeatureClass*::AddGeometryProperty
    - GMLFeatureClass*::MergeSRSName
    - GMLFeatureClass*::IsConsistentSingleGeomElemPath
    - GMLFeature*::GetBoundedByGeometry
    - std::string::rfind
    - EQUAL
    - max
    - GML_BuildOGRGeometryFromList_DestroyCache
    - GMLFeatureClass*::GetGeometryProperty
    - std::string::substr
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::PrescanForSchema(bool bGetExtents, bool bOnlyDetectSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1498,1
    - Dst: GMLReader::SetFilteredClassName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1500
    functionName: GMLReader::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::SetFilteredClassName
    - GMLReader::CleanupParser
    linkageType: ''
    returnType: void
    signature: void GMLReader::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1511,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1512,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1515,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1515,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1515,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1516,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1518,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1520,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1521,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pszGlobalSRSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1529
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1529
    functionName: GMLReader::SetGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - atoi
    - CPLSPrintf
    - strstr
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: void GMLReader::SetGlobalSRSName(const char *pszGlobalSRSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1537,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1538,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1545,1
    - Dst: GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp:1545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pszClassName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1555
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1555
    functionName: GMLReader::SetFilteredClassName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.cpp
    functionUses: 1
    functionsReached:
    - GetElementName
    - strcmp
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::SetFilteredClassName(const char *pszClassName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: GFSTemplateItem::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: GFSTemplateItem::GetCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: GFSTemplateItem::GetGeomCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetGeomCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pN
    argTypes:
    - GFSTemplateItem*
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: GFSTemplateItem::SetNext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetNext(GFSTemplateItem *pN)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: GFSTemplateItem::GetNext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GFSTemplateItem
    signature: GFSTemplateItem *GetNext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader*::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:84,1
    - Dst: GMLReader*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:86,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:88,1
    - Dst: GFSTemplateList*::GetFirst
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:91,1
    - Dst: GMLReader*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:95,1
    - Dst: GFSTemplateItem*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:95,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:98,1
    - Dst: GFSTemplateItem*::GetCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:98,1
    - Dst: GFSTemplateItem*::GetGeomCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:99,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:100,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:101,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:102,1
    - Dst: GFSTemplateItem*::GetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:105,1
    - Dst: GFSTemplateList*::HaveSequentialLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - pCC
    - pReader
    - pbSequentialLayers
    argTypes:
    - GFSTemplateList*
    - GMLReader*
    - int*
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: gmlUpdateFeatureClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - GMLFeatureClass*::AddGeometryProperty
    - GFSTemplateItem*::GetName
    - GMLFeatureClass*::SetFeatureCount
    - GFSTemplateItem*::GetCount
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - GMLFeatureClass*::GetGeometryPropertyCount
    - GMLReader*::GetClassCount
    - GMLReader*::GetClass
    - GFSTemplateItem*::GetGeomCount
    - GFSTemplateItem*::GetNext
    - GFSTemplateList*::GetFirst
    - GFSTemplateList*::HaveSequentialLayers
    linkageType: ''
    returnType: void
    signature: "void gmlUpdateFeatureClasses(GFSTemplateList *pCC, GMLReader *pReader,\n
      \                            int *pbSequentialLayers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GMLFeatureClass **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:122,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:123,1
    - Dst: GMLReader::GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:125,1
    - Dst: GMLReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:132,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:133,1
    - Dst: GFSTemplateList*::GetFirst
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:146,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:146,1
    - Dst: GFSTemplateItem*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:146,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:154,1
    - Dst: GMLReader::AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:155,1
    - Dst: GFSTemplateItem*::GetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:157,1
    - Dst: GMLReader::SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:159,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:177,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - pCC
    argTypes:
    - GFSTemplateList*
    constantsTouched: []
    func_position:
      end: 179
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 179
    functionName: GMLReader::ReArrangeTemplateClasses
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::SetClassListLocked
    - GMLFeatureClass*::GetFeatureCount
    - GFSTemplateItem*::GetName
    - GMLFeatureClass*::GetName
    - GMLReader::GetClassCount
    - GMLReader::AddClass
    - EQUAL
    - GFSTemplateItem*::GetNext
    - CPLMalloc
    - CPLFree
    - GFSTemplateList*::GetFirst
    - static_cast<GMLFeatureClass **>
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::ReArrangeTemplateClasses(GFSTemplateList *pCC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLReader::ShouldLookForClassAtAnyLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:188,1
    - Dst: GFSTemplateList::GFSTemplateList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:192,1
    - Dst: GMLReader::NextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:195,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:197,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:198,1
    - Dst: GFSTemplateList*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:212,1
    - Dst: GMLFeatureClass*::GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:212,1
    - Dst: gmlUpdateFeatureClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:217,1
    - Dst: GMLReader::ReArrangeTemplateClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:219,1
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 224
    functionName: GMLReader::PrescanForTemplate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - GMLFeature*::GetClass
    - GMLReader::ShouldLookForClassAtAnyLevel
    - GMLReader::CleanupParser
    - GFSTemplateList*::Update
    - gmlUpdateFeatureClasses
    - GFSTemplateList::GFSTemplateList
    - GMLFeatureClass*::GetElementName
    - GMLReader::NextFeature
    - GMLReader::ReArrangeTemplateClasses
    - GMLFeature*::GetGeometryList
    linkageType: ''
    returnType: bool
    signature: bool GMLReader::PrescanForTemplate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: GFSTemplateList::GFSTemplateList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GFSTemplateList::GFSTemplateList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFSTemplateItem*::GetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: GFSTemplateList::~GFSTemplateList()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - GFSTemplateItem*::GetNext
    linkageType: ''
    returnType: void
    signature: void GFSTemplateList::~GFSTemplateList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFSTemplateItem::GFSTemplateItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:256,1
    - Dst: SetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: GFSTemplateList::Insert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - SetNext
    - GFSTemplateItem::GFSTemplateItem
    linkageType: ''
    returnType: GFSTemplateItem
    signature: GFSTemplateItem *GFSTemplateList::Insert(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFSTemplateList::Insert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:278,1
    - Dst: GFSTemplateItem*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:279,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:282,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:282,1
    - Dst: GFSTemplateList::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:285,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:292,1
    - Dst: GFSTemplateItem*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:292,1
    - Dst: GFSTemplateItem*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:296,1
    - Dst: GFSTemplateItem*::GetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:299,1
    - Dst: GFSTemplateList::Insert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:303,1
    - Dst: GFSTemplateItem*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pszName
    - bHasGeom
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 305
    functionName: GFSTemplateList::Update
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 1
    functionsReached:
    - GFSTemplateList::Update
    - GFSTemplateItem*::GetName
    - GFSTemplateItem*::Update
    - EQUAL
    - GFSTemplateItem*::GetNext
    - GFSTemplateList::Insert
    - GetName
    linkageType: ''
    returnType: void
    signature: void GFSTemplateList::Update(const char *pszName, int bHasGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFSTemplateItem*::GetNext
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 322
    functionName: GFSTemplateList::GetClassCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - GFSTemplateItem*::GetNext
    linkageType: ''
    returnType: int
    signature: int GFSTemplateList::GetClassCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: GFSTemplateItem::GFSTemplateItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GFSTemplateItem::GFSTemplateItem(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: GFSTemplateItem::~GFSTemplateItem()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GFSTemplateItem::~GFSTemplateItem()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bHasGeom
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: GFSTemplateItem::Update
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gfstemplate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GFSTemplateItem::Update(int bHasGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: IGMLReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreader.h
    functionUses: 1
    functionsReached:
    - IGMLReader
    linkageType: ''
    returnType: class CPL_DLL
    signature: class CPL_DLL IGMLReader
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poReader
    argTypes:
    - GMLReader*
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: GMLXercesHandler::GMLXercesHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLXercesHandler::GMLXercesHandler(GMLReader *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:61,1
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - eErr
    argTypes:
    - OGRErr
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: GMLXercesHandlerDealWithError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - SAXNotSupportedException
    linkageType: ''
    returnType: void
    signature: void GMLXercesHandlerDealWithError(OGRErr eErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:80,1
    - Dst: GMLXercesHandlerDealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:82,1
    - Dst: GMLHandler::startElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:82,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:83,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:83,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:83,1
    - Dst: const_cast<Attributes *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - localname
    - attrs
    argTypes:
    - XMLCh*
    - Attributes
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: GMLXercesHandler::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - static_cast<int>
    - GMLHandler::startElement
    - const_cast<Attributes *>
    - GMLXercesHandlerDealWithError
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLXercesHandler::startElement(const XMLCh *const /*uri*/,\n
      \                                   const XMLCh *const localname,\n                                    const
      XMLCh *const /*qname*/,\n                                    const Attributes
      &attrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLXercesHandlerDealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:96,1
    - Dst: GMLHandler::endElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: GMLXercesHandler::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - GMLHandler::endElement
    - GMLXercesHandlerDealWithError
    linkageType: ''
    returnType: void
    signature: "void GMLXercesHandler::endElement(const XMLCh *const /*uri*/,\n                                  const
      XMLCh *const /*localname*/,\n                                  const XMLCh *const
      /*qname */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:107,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:107,1
    - Dst: GMLXercesHandlerDealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:108,1
    - Dst: GMLHandler::dataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:108,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:109,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:109,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chars_in
    - length
    argTypes:
    - XMLCh*
    - XMLSize_t
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: GMLXercesHandler::characters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - size
    - c_str
    - static_cast<int>
    - GMLXercesHandlerDealWithError
    - GMLHandler::dataHandler
    - transcode
    linkageType: ''
    returnType: void
    signature: "void GMLXercesHandler::characters(const XMLCh *const chars_in,\n                                  const
      XMLSize_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:120,1
    - Dst: SAXParseException::getMessage
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:120,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:121,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:122,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:123,1
    - Dst: SAXParseException::getLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:123,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:124,1
    - Dst: SAXParseException::getColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exception
    argTypes:
    - SAXParseException
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: GMLXercesHandler::fatalError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - SAXParseException::getMessage
    - SAXParseException::getLineNumber
    - static_cast<int>
    - CPLString::c_str
    - CPLError
    - SAXParseException::getColumnNumber
    - transcode
    linkageType: ''
    returnType: void
    signature: void GMLXercesHandler::fatalError(const SAXParseException &exception)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasStoppedParsing
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:134,1
    - Dst: SAXNotSupportedException
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: GMLXercesHandler::startEntity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - SAXNotSupportedException
    - HasStoppedParsing
    linkageType: ''
    returnType: void
    signature: void GMLXercesHandler::startEntity(const XMLCh *const /* name */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const Attributes *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:147,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:152,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:152,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:153,1
    - Dst: Attributes*::getIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:158,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:161,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:161,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:162,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - attr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: GMLXercesHandler::GetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - Attributes*::getValue
    - c_str
    - resize
    - Attributes*::getIndex
    - static_cast<const Attributes *>
    - transcode
    linkageType: ''
    returnType: char
    signature: char *GMLXercesHandler::GetFID(void *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const Attributes *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:176,1
    - Dst: Attributes*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:180,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:182,1
    - Dst: Attributes*::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:182,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:183,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:183,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:186,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:186,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:187,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - psNode
    - attr
    argTypes:
    - CPLXMLNode*
    - void*
    constantsTouched: []
    func_position:
      end: 197
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 197
    functionName: GMLXercesHandler::AddAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - Attributes*::getValue
    - Attributes*::getQName
    - Attributes*::getLength
    - c_str
    - CPLCreateXMLNode
    - static_cast<const Attributes *>
    - transcode
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLXercesHandler::AddAttributes(CPLXMLNode *psNode, void
      *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const Attributes *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:206,1
    - Dst: Attributes*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:207,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:209,1
    - Dst: Attributes*::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:209,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:212,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:212,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - attr
    - pszAttributeName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: GMLXercesHandler::GetAttributeValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - Attributes*::getValue
    - Attributes*::getQName
    - Attributes*::getLength
    - CPLStrdup
    - static_cast<const Attributes *>
    - transcode
    linkageType: ''
    returnType: char
    signature: "char *GMLXercesHandler::GetAttributeValue(void *attr,\n                                          const
      char *pszAttributeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const Attributes *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:226,1
    - Dst: Attributes*::getLength
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:227,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:232,1
    - Dst: Attributes*::getQName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:232,1
    - Dst: transcode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:233,1
    - Dst: Attributes*::getValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:233,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:235,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - attr
    - idx
    - ppszKey
    argTypes:
    - void*
    - unsigned int
    - char**
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: GMLXercesHandler::GetAttributeByIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - Attributes*::getValue
    - Attributes*::getQName
    - Attributes*::getLength
    - CPLStrdup
    - static_cast<const Attributes *>
    - transcode
    linkageType: ''
    returnType: char
    signature: "char *GMLXercesHandler::GetAttributeByIdx(void *attr, unsigned int
      idx,\n                                          char **ppszKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poReader
    - oParser
    argTypes:
    - GMLReader*
    - XML_Parser
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: GMLExpatHandler::GMLExpatHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLExpatHandler::GMLExpatHandler(GMLReader *poReader, XML_Parser
      oParser)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:262,1
    - Dst: static_cast<XML_Bool>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:262,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - eErr
    argTypes:
    - OGRErr
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: GMLExpatHandler::DealWithError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<XML_Bool>
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void GMLExpatHandler::DealWithError(OGRErr eErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GMLExpatHandler *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:277,1
    - Dst: GMLExpatHandler*::DealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:290,1
    - Dst: GMLExpatHandler*::GMLHandler::startElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:290,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: GMLExpatHandler::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GMLExpatHandler *>
    - static_cast<int>
    - GMLExpatHandler*::DealWithError
    - GMLExpatHandler*::GMLHandler::startElement
    linkageType: ''
    returnType: void
    signature: "void GMLExpatHandler::startElementCbk(void *pUserData,\n                                              const
      char *pszName,\n                                              const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GMLExpatHandler *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:300,1
    - Dst: GMLExpatHandler*::DealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:304,1
    - Dst: GMLExpatHandler*::GMLHandler::endElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: GMLExpatHandler::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - GMLExpatHandler*::GMLHandler::endElement
    - static_cast<GMLExpatHandler *>
    - GMLExpatHandler*::DealWithError
    linkageType: ''
    returnType: void
    signature: "void GMLExpatHandler::endElementCbk(void *pUserData,\n                                            const
      char * /* pszName */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GMLExpatHandler *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:315,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:329,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:332,1
    - Dst: static_cast<XML_Bool>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:332,1
    - Dst: GMLExpatHandler*::DealWithError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:336,1
    - Dst: GMLExpatHandler*::GMLHandler::dataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 337
    functionName: GMLExpatHandler::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - XML_StopParser
    - GMLExpatHandler*::DealWithError
    - static_cast<GMLExpatHandler *>
    - static_cast<XML_Bool>
    - GMLExpatHandler*::GMLHandler::dataHandler
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void GMLExpatHandler::dataHandlerCbk(void *pUserData, const char *data,\n
      \                                            int nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:348,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - attr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: GMLExpatHandler::GetFID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *GMLExpatHandler::GetFID(void *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:370,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - psNode
    - attr
    argTypes:
    - CPLXMLNode*
    - void*
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: GMLExpatHandler::AddAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLExpatHandler::AddAttributes(CPLXMLNode *psNode, void
      *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:395,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - attr
    - pszAttributeName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: GMLExpatHandler::GetAttributeValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: "char *GMLExpatHandler::GetAttributeValue(void *attr,\n                                         const
      char *pszAttributeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:419,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - attr
    - idx
    - ppszKey
    argTypes:
    - void*
    - unsigned int
    - char**
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: GMLExpatHandler::GetAttributeByIdx
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: "char *GMLExpatHandler::GetAttributeByIdx(void *attr, unsigned int
      idx,\n                                         char **ppszKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: OGRGMLIsGeometryElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLIsGeometryElement(const char *pszElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GeometryNamesStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:479,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:480,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:482,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:482,1
    - Dst: CPLHashSetHashStr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:489,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - poReader
    argTypes:
    - GMLReader*
    constantsTouched: []
    func_position:
      end: 496
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 496
    functionName: GMLHandler::GMLHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLHashSetHashStr
    - std::sort
    - static_cast<GeometryNamesStruct *>
    - CPLMalloc
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void GMLHandler::GMLHandler(GMLReader *poReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:505,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:506,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:508,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:509,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:510,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:512,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:513,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:514,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: GMLHandler::~GMLHandler()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLDestroyXMLNode
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GMLHandler::~GMLHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLHandler::startElementTop
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:528,1
    - Dst: GMLHandler::startElementDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:531,1
    - Dst: GMLHandler::startElementFeatureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:534,1
    - Dst: GMLHandler::startElementFeatureAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:537,1
    - Dst: GMLHandler::startElementFeatureProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:540,1
    - Dst: GMLHandler::startElementGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:543,1
    - Dst: GMLHandler::startElementBoundedBy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:549,1
    - Dst: GMLHandler::startElementGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:552,1
    - Dst: GMLHandler::startElementCityGMLGenericAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:555,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:568,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:569,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:573,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 582
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 582
    functionName: GMLHandler::startElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 2
    functionsReached:
    - GMLHandler::startElementFeatureProperty
    - GMLHandler::startElementCityGMLGenericAttr
    - GMLHandler::startElementGeometry
    - GMLHandler::startElementBoundedBy
    - GMLHandler::startElementDefault
    - EQUAL
    - GMLHandler::startElementFeatureAttribute
    - CPLError
    - CPLGetConfigOption
    - GMLHandler::startElementTop
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::startElement(const char *pszName, int nLenName,
      void *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLHandler::endElementDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:597,1
    - Dst: GMLHandler::endElementFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:600,1
    - Dst: GMLHandler::endElementAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:603,1
    - Dst: GMLHandler::endElementFeatureProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:606,1
    - Dst: GMLHandler::endElementGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:609,1
    - Dst: GMLHandler::endElementIgnoredFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:612,1
    - Dst: GMLHandler::endElementBoundedBy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:615,1
    - Dst: GMLHandler::endElementBoundedByInFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:618,1
    - Dst: GMLHandler::endElementCityGMLGenericAttr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:621,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 627
    functionName: GMLHandler::endElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 2
    functionsReached:
    - GMLHandler::endElementIgnoredFeature
    - GMLHandler::endElementFeatureProperty
    - GMLHandler::endElementDefault
    - GMLHandler::endElementBoundedBy
    - GMLHandler::endElementAttribute
    - GMLHandler::endElementBoundedByInFeature
    - GMLHandler::endElementCityGMLGenericAttr
    - GMLHandler::endElementFeature
    - GMLHandler::endElementGeometry
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLHandler::dataHandlerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:647,1
    - Dst: GMLHandler::dataHandlerGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:653,1
    - Dst: GMLHandler::dataHandlerGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:662,1
    - Dst: GMLHandler::dataHandlerAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:665,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 671
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 671
    functionName: GMLHandler::dataHandler
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 2
    functionsReached:
    - GMLHandler::dataHandlerGeometry
    - GMLHandler::dataHandlerAttribute
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::dataHandler(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:689,1
    - Dst: SetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:692,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:693,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:700,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pszName
    - attr
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 706
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 706
    functionName: GMLHandler::startElementBoundedBy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - CPLFree
    - SetGlobalSRSName
    - atoi
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementBoundedBy(const char *pszName, int
      /*nLenName*/,\n                                         void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:718,1
    - Dst: static_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:724,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:724,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:726,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:726,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:727,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:730,1
    - Dst: AddAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:746,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:751,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:763,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:764,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:768,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:769,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:783,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:787,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: GMLHandler::startElementGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - back
    - CPLFree
    - empty
    - CPLCreateXMLNode
    - CPLGetXMLValue
    - strcmp
    - CPLMalloc
    - AddAttributes
    - push_back
    - CPLError
    - CPLCalloc
    - memcpy
    - static_cast<CPLXMLNode *>
    - static_cast<char *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementGeometry(const char *pszName, int nLenName,\n
      \                                       void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:804,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 817
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 817
    functionName: GMLHandler::startElementCityGMLGenericAttr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementCityGMLGenericAttr(const char *pszName,\n
      \                                                 int /*nLenName*/,\n                                                  void
      * /*attr*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:826,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:827,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:843,1
    - Dst: GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:845,1
    - Dst: GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:847,1
    - Dst: GMLHandler::FindRealPropertyByCheckingConditions
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:850,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:853,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:860,1
    - Dst: ReportAllAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:862,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:865,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:869,1
    - Dst: ReportAllAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:870,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:871,1
    - Dst: GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:872,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:873,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:873,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:876,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:878,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:879,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:884,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:886,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:890,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:892,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:898,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:899,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:901,1
    - Dst: ReportAllAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:907,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:908,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:910,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:912,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:914,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:915,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:915,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:921,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:922,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:926,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:928,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:930,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:932,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:934,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:936,1
    - Dst: GMLPropertyDefn*::GetSrcElementLen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:937,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:937,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:938,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:938,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:939,1
    - Dst: GMLHandler::IsConditionMatched
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:945,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:947,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:947,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:951,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 64
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 956
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 956
    functionName: GMLHandler::DealWithAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - SetFeaturePropertyDirectly
    - GetAttributeElementIndex
    - strcmp
    - GMLReadState*::PushPath
    - GMLHandler::IsConditionMatched
    - CPLStrdup
    - GMLReadState*::PopPath
    - GMLFeatureClass*::GetProperty
    - GMLPropertyDefn*::GetType
    - CPLString::c_str
    - CPLString::size
    - GMLReadState*::m_poFeature::GetClass
    - GMLHandler::FindRealPropertyByCheckingConditions
    - ReportAllAttributes
    - c_str
    - GMLFeatureClass*::GetPropertyCount
    - CPLSPrintf
    - CPLFree
    - GMLPropertyDefn*::GetSrcElementLen
    - GMLFeatureClass*::IsSchemaLocked
    - std::string
    - GetState
    linkageType: ''
    returnType: void
    signature: "void GMLHandler::DealWithAttributes(const char *pszName, int nLenName,\n
      \                                   void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1027,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1037,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1040,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1044,1
    - Dst: GMLHandler::IsConditionMatched
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1049,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1052,1
    - Dst: GMLHandler::IsConditionMatched
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1057,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1060,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 2
    argNames:
    - pszCondition
    - attr
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 1066
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 1066
    functionName: GMLHandler::IsConditionMatched
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 2
    functionsReached:
    - GMLHandler::IsConditionMatched
    - CPLStrdup
    - CPLError
    - STARTS_WITH
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool GMLHandler::IsConditionMatched(const char *pszCondition, void
      *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1074,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1075,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1077,1
    - Dst: GMLHandler::IsConditionMatched
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1079,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1085,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1088,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1089,1
    - Dst: GMLPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1089,1
    - Dst: GMLPropertyDefn*::GetCondition
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1091,1
    - Dst: GMLHandler::IsConditionMatched
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1092,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - nIdx
    - attr
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1101
    functionName: GMLHandler::FindRealPropertyByCheckingConditions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetCondition
    - GMLHandler::IsConditionMatched
    - GMLPropertyDefn*::GetSrcElement
    - GMLFeatureClass*::GetPropertyCount
    - GMLFeatureClass*::GetProperty
    - strcmp
    - GMLReadState*::m_poFeature::GetClass
    - GetState
    linkageType: ''
    returnType: int
    signature: int GMLHandler::FindRealPropertyByCheckingConditions(int nIdx, void
      *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1113,1
    - Dst: GMLHandler::IsGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1119,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1125,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1127,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1128,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1132,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1133,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1134,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1138,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1139,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1142,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1143,1
    - Dst: FetchAllGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1146,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1150,1
    - Dst: IsWFSJointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1150,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1153,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1154,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1160,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1161,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1168,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1169,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1168,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1171,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1181,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1181,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1183,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1188,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1188,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1191,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1197,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1197,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1202,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1203,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1206,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1207,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1206,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1210,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1216,1
    - Dst: GMLFeatureClass*::IsConsistentSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1217,1
    - Dst: GMLFeatureClass*::GetSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1220,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1221,1
    - Dst: GMLFeatureClass*::SetSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1223,1
    - Dst: GMLFeatureClass*::SetConsistentSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1227,1
    - Dst: GMLFeatureClass*::SetSingleGeomElemPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1228,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1228,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1238,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1238,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1243,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1245,1
    - Dst: GMLHandler::startElementGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1247,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1250,1
    - Dst: UseBBOX
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1256,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1260,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1260,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1265,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1267,1
    - Dst: IsCityGMLGenericAttributeElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1276,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1278,1
    - Dst: GetAttributeValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1279,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1282,1
    - Dst: IsWFSJointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1287,1
    - Dst: IsWFSJointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1291,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1296,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1298,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1299,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1300,1
    - Dst: GetAttributeElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1308,1
    - Dst: GMLReadState*::m_poFeature::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1311,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1312,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1313,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1315,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1319,1
    - Dst: GMLFeatureClass*::IsSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1324,1
    - Dst: GMLHandler::FindRealPropertyByCheckingConditions
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1334,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1344,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1345,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1346,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1347,1
    - Dst: GMLHandler::DealWithAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1351,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1357,1
    - Dst: GMLHandler::DealWithAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1368,1
    - Dst: GMLReadState*::PushPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1371,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1374
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1374
    functionName: GMLHandler::startElementFeatureAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - IsCityGMLGenericAttributeElement
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - GMLHandler::DealWithAttributes
    - GMLFeatureClass*::SetConsistentSingleGeomElemPath
    - GMLHandler::startElementGeometry
    - SetFeaturePropertyDirectly
    - strcmp
    - GetAttributeElementIndex
    - GMLFeatureClass*::SetSingleGeomElemPath
    - IsWFSJointLayer
    - STARTS_WITH
    - GMLFeatureClass*::GetSingleGeomElemPath
    - GMLReadState*::PushPath
    - std::string::empty
    - CPLStrdup
    - GMLReadState*::PopPath
    - GMLFeatureClass*::GetProperty
    - strlen
    - GMLReadState*::m_poFeature::GetClass
    - GMLReadState*::osPath::c_str
    - GetAttributeValue
    - GMLHandler::FindRealPropertyByCheckingConditions
    - GMLHandler::IsGeometryElement
    - GMLFeatureClass*::GetGeometryPropertyCount
    - CPLAssert
    - UseBBOX
    - GMLFeatureClass*::GetGeometryPropertyIndexBySrcElement
    - CPLFree
    - GMLFeatureClass*::AddGeometryProperty
    - FetchAllGeometries
    - empty
    - GMLFeatureClass*::IsConsistentSingleGeomElemPath
    - GMLFeatureClass*::IsSchemaLocked
    - EQUAL
    - PUSH_STATE
    - push_back
    - std::string
    - GMLFeatureClass*::GetGeometryProperty
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementFeatureAttribute(const char *pszName,\n
      \                                               int nLenName, void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1383,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1390,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1395,1
    - Dst: SetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1400,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1401,1
    - Dst: SetWidthFlag
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pszName
    - attr
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 1412
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1412
    functionName: GMLHandler::startElementTop
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - CPLFree
    - SetGlobalSRSName
    - SetWidthFlag
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementTop(const char *pszName, int /*nLenName*/,\n
      \                                  void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1428,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1432,1
    - Dst: ShouldLookForClassAtAnyLevel
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1437,1
    - Dst: GetFilteredClassName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1438,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1441,1
    - Dst: PushFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1443,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1443,1
    - Dst: GetFilteredClassIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1444,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1448,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1457,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1457,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1458,1
    - Dst: GetFeatureElementIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1459,1
    - Dst: GetFilteredClassName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1464,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1466,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1470,1
    - Dst: PushFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1478,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1482,1
    - Dst: PushFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1486,1
    - Dst: GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1486,1
    - Dst: PUSH_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1490,1
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - pszName
    - nLenName
    - attr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1502
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1502
    functionName: GMLHandler::startElementDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - GetFID
    - static_cast<int>
    - ShouldLookForClassAtAnyLevel
    - SetFeaturePropertyDirectly
    - strcmp
    - GetFeatureElementIndex
    - PUSH_STATE
    - strlen
    - PushFeature
    - GetFilteredClassName
    - GetFilteredClassIndex
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementDefault(const char *pszName, int nLenName,\n
      \                                      void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1516
    functionName: GMLHandler::endElementIgnoredFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - POP_STATE
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementIgnoredFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1530
    functionName: GMLHandler::endElementBoundedBy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - POP_STATE
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementBoundedBy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLHandler::endElementGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1544,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1548,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1549,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1550,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1554
    functionName: GMLHandler::endElementBoundedByInFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLDestroyXMLNode
    - POP_STATE
    - GMLHandler::endElementGeometry
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementBoundedByInFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1564,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1565,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1570,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1571,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1578,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1579,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1584,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1585,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1592,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1593,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1599,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1600,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1605,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - psGML
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1609
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1609
    functionName: GMLHandler::ParseAIXMElevationProperties
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - SetFeaturePropertyDirectly
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void GMLHandler::ParseAIXMElevationProperties(const CPLXMLNode *psGML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GMLHandler::ParseAIXMElevationProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1617,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1623,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1624,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - psGML
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1633
      start: 1615
    functionDepth: 2
    functionLinenumber: 1615
    functionLinenumberEnd: 1633
    functionName: GMLHandler::ParseAIXMElevationPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - GMLHandler::ParseAIXMElevationProperties
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GMLHandler::ParseAIXMElevationPoint(CPLXMLNode *psGML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1644,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1644,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1648,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1665,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1667,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1669,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1673,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1674,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1701,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1712,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1712,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1713,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1719,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1726,1
    - Dst: GMLHandler::ParseAIXMElevationPoint
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1728,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1732,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1733,1
    - Dst: GMLHandler::ParseAIXMElevationProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1735,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1740,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1742,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1743,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1745,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1747,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1748,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1750,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1752,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1753,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1757,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1759,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1760,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1765,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1767,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1768,1
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1774,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1778,1
    - Dst: GMLFeature*::SetBoundedByGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1780,1
    - Dst: FetchAllGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1784,1
    - Dst: GMLFeature*::AddGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1785,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1788,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1789,1
    - Dst: GMLFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1791,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1796,1
    - Dst: GMLFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1798,1
    - Dst: GMLFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1803,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1808,1
    - Dst: GMLFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1810,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1814,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1818,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1638
    functionDepth: 3
    functionLinenumber: 1638
    functionLinenumberEnd: 1821
    functionName: GMLHandler::endElementGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 2
    functionsReached:
    - clear
    - POP_STATE
    - GMLFeature*::SetBoundedByGeometry
    - strcmp
    - GMLFeature*::AddGeometry
    - static_cast<CPLXMLNode *>
    - end
    - CPLCloneXMLTree
    - CPLStrdup
    - find
    - GMLHandler::ParseAIXMElevationPoint
    - CPLDestroyXMLNode
    - GMLFeatureClass*::GetGeometryPropertyCount
    - CPLAssert
    - GMLFeature*::GetGeometryRef
    - GMLHandler::ParseAIXMElevationProperties
    - CPLCalloc
    - CPLFree
    - size
    - GMLFeature*::GetClass
    - back
    - FetchAllGeometries
    - empty
    - GMLFeature*::SetGeometryDirectly
    - pop_back
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementGeometry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1833,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1840,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1850
    functionName: GMLHandler::endElementCityGMLGenericAttr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - POP_STATE
    - SetFeaturePropertyDirectly
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementCityGMLGenericAttr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1858,1
    - Dst: IsEmptyAsNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1862,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1866,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1866,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1873,1
    - Dst: GMLReadState*::osPath::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1874,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1875,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1883,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1891,1
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1898,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1907,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1911,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1915,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1919
    functionName: GMLHandler::endElementAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - GMLReadState*::osPath::c_str
    - CPLStrdup
    - GMLReadState*::PopPath
    - POP_STATE
    - IsEmptyAsNull
    - SetFeaturePropertyDirectly
    - CPLFree
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementAttribute()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFeaturePropertyDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1933,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1934,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1940
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1940
    functionName: GMLHandler::startElementFeatureProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - SetFeaturePropertyDirectly
    - CPLStrdup
    - CPLSPrintf
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr GMLHandler::startElementFeatureProperty(const char * /*pszName*/,\n
      \                                              int /*nLenName*/, void *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1951,1
    - Dst: GMLReadState*::PopPath
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1952,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1957
    functionName: GMLHandler::endElementFeatureProperty
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - GMLReadState*::PopPath
    - POP_STATE
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementFeatureProperty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1972,1
    - Dst: PopState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1973,1
    - Dst: POP_STATE
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1975,1
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1988
    functionName: GMLHandler::endElementFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - PopState
    - GetState
    - POP_STATE
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 2000
    functionName: GMLHandler::endElementDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - GetState
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::endElementDefault()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2028,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2030,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2049,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2054
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2054
    functionName: GMLHandler::dataHandlerAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - memcpy
    - static_cast<int>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::dataHandlerAttribute(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2082,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2106
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2106
    functionName: GMLHandler::dataHandlerGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - memcpy
    - static_cast<int>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr GMLHandler::dataHandlerGeometry(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2122,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2130,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2131,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2132,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2138,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2138,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp:2139,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - pszElement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2143
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2143
    functionName: GMLHandler::IsGeometryElement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlhandler.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool GMLHandler::IsGeometryElement(const char *pszElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: GFSTemplateList::GetFirst
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GFSTemplateItem
    signature: GFSTemplateItem *GetFirst()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: GFSTemplateList::HaveSequentialLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HaveSequentialLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: GMLHandler::GetAppSchemaType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLAppSchemaType
    signature: GMLAppSchemaType GetAppSchemaType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: GMLExpatHandler::HasStoppedParsing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasStoppedParsing()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: GMLExpatHandler::ResetDataHandlerCounter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetDataHandlerCounter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: ~GMLReadState()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GMLReadState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: GMLReadState::GetLastComponent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetLastComponent() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: GMLReadState::GetLastComponentLen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t GetLastComponentLen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: GMLReader::IsClassListLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsClassListLocked() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: GMLReader::SetClassListLocked
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetClassListLocked(bool bFlag) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: GMLReader::GetClassCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetClassCount() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: GMLReader::GetState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GMLReadState
    signature: GMLReadState *GetState() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: GMLReader::ShouldLookForClassAtAnyLevel
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ShouldLookForClassAtAnyLevel()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: GMLReader::SetWidthFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetWidthFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: GMLReader::HasStoppedParsing
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasStoppedParsing() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: GMLReader::FetchAllGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FetchAllGeometries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: GMLReader::GetGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetGlobalSRSName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: GMLReader::CanUseGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CanUseGlobalSRSName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: GMLReader::GetFilteredClassName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFilteredClassName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: GMLReader::GetFilteredClassIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFilteredClassIndex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: GMLReader::IsSequentialLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSequentialLayers() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: GMLReader::SetReportAllAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetReportAllAttributes(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: GMLReader::ReportAllAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ReportAllAttributes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: GMLReader::SetIsWFSJointLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIsWFSJointLayer(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: GMLReader::IsWFSJointLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsWFSJointLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: GMLReader::SetEmptyAsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetEmptyAsNull(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: GMLReader::IsEmptyAsNull
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEmptyAsNull() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: GMLReader::SetUseBBOX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseBBOX(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: GMLReader::UseBBOX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreaderp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool UseBBOX() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: OGRGMLLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: OGRGMLDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: OGRGMLDataSource::GetOutputFP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *GetOutputFP() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: OGRGMLDataSource::GetReader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IGMLReader
    signature: IGMLReader *GetReader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: OGRGMLDataSource::ExposeId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ExposeId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: OGRGMLDataSource::IsGML3Output
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsGML3Output() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OGRGMLDataSource::IsGML3DeegreeOutput
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsGML3DeegreeOutput() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: OGRGMLDataSource::IsGML32Output
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsGML32Output() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: OGRGMLDataSource::HasWriteError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasWriteError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: OGRGMLDataSource::GetSRSNameFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGMLSRSNameFormat
    signature: OGRGMLSRSNameFormat GetSRSNameFormat() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: OGRGMLDataSource::WriteSpaceIndentation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WriteSpaceIndentation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: OGRGMLDataSource::GetInvertAxisOrderIfLatLong
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetInvertAxisOrderIfLatLong() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: OGRGMLDataSource::GetConsiderEPSGAsURN
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetConsiderEPSGAsURN() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: OGRGMLDataSource::GetSwapCoordinates
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLSwapCoordinatesEnum
    signature: GMLSwapCoordinatesEnum GetSwapCoordinates() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: OGRGMLDataSource::GetSecondaryGeometryOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetSecondaryGeometryOption() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: OGRGMLDataSource::GetReadMode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReadMode
    signature: ReadMode GetReadMode() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poStoredGMLFeatureIn
    argTypes:
    - GMLFeature*
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: OGRGMLDataSource::SetStoredGMLFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetStoredGMLFeature(GMLFeature *poStoredGMLFeatureIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: OGRGMLDataSource::PeekStoredGMLFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GMLFeature
    signature: GMLFeature *PeekStoredGMLFeature() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: OGRGMLDataSource::GetLastReadLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGMLLayer
    signature: OGRGMLLayer *GetLastReadLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRGMLLayer*
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: OGRGMLDataSource::SetLastReadLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLastReadLayer(OGRGMLLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: OGRGMLDataSource::HasWriteGlobalSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogr_gml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasWriteGlobalSRS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:31,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:42,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:44,1
    - Dst: GMLGetFileContent
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:49,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:57,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:63,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:66,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:73,1
    - Dst: GMLRegistryNamespace::GMLRegistryNamespace
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:75,1
    - Dst: GMLRegistryNamespace::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:76,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:78,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:78,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 85
    functionName: GMLRegistry::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp
    functionUses: 0
    functionsReached:
    - empty
    - GMLRegistryNamespace::GMLRegistryNamespace
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - strcmp
    - GMLRegistryNamespace::Parse
    - GMLGetFileContent
    - push_back
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool GMLRegistry::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:103,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:110,1
    - Dst: GMLRegistryFeatureType::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:113,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:115,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - pszRegistryFilename
    - psNode
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: GMLRegistryNamespace::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - std::move
    - push_back
    - GMLRegistryFeatureType::Parse
    linkageType: ''
    returnType: bool
    signature: "bool GMLRegistryNamespace::Parse(const char *pszRegistryFilename,\n
      \                                CPLXMLNode *psNode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:131,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:132,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:134,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:134,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:141,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:144,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:144,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:145,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:145,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:146,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:146,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:149,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:149,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:150,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:153,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:156,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:156,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:157,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:157,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:158,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:158,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:161,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:161,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - pszRegistryFilename
    - psNode
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 172
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 172
    functionName: GMLRegistryFeatureType::Parse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - CPLGetPathSafe
    - empty
    - CPLIsFilenameRelative
    - CPLGetXMLValue
    - STARTS_WITH
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool GMLRegistryFeatureType::Parse(const char *pszRegistryFilename,\n
      \                                  CPLXMLNode *psNode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:52,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:53,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:54,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:54,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:55,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszURL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: ReplaceSpaceByPct20IfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    - memcpy
    - CPLFree
    - strlen
    linkageType: ''
    returnType: CPLString
    signature: CPLString ReplaceSpaceByPct20IfNeeded(const char *pszURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: OGRGMLDataSource::OGRGMLDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::OGRGMLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: OGRGMLDataSource::~OGRGMLDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::~OGRGMLDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLDataSource::WriteTopElements
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:104,1
    - Dst: OGRGMLDataSource::GMLFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:107,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:108,1
    - Dst: OGRGMLDataSource::RemoveAppPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:109,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:110,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:112,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:116,1
    - Dst: OGRGMLDataSource::InsertHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:120,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:123,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:125,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:126,1
    - Dst: OGRGMLDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:139,1
    - Dst: OGRGMLDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:141,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:142,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:145,1
    - Dst: "OGRGeomCoordinatePrecision::\n                                        ResolutionToPrecision"
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:153,1
    - Dst: "OGRGeomCoordinatePrecision::\n                                        ResolutionToPrecision"
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:162,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:172,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:175,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:175,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:175,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:177,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:180,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:180,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:180,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:184,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:187,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:187,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:187,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:189,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:192,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:192,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:192,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:195,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:196,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:204,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:206,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:209,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:210,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:212,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:213,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:215,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:216,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:221,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:223,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:225,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:226,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:231,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:233,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:235,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:236,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:238,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:239,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:244,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:245,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:246,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:250,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:257,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:260,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:265,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:272,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:272,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:282,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 290
    functionName: OGRGMLDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRGMLDataSource::GetLayer
    - std::string::data
    - OGRGMLDataSource::WriteTopElements
    - OGRGMLDataSource::PrintLine
    - OGRGMLDataSource::InsertHeader
    - OGRGMLDataSource::GMLFeatureCollection
    - OGRGMLDataSource::RemoveAppPrefix
    - OGRLayer*::GetLayerDefn
    - OGRGMLDataSource::IsGML3Output
    - GetSourceFileName
    - IsInit
    - VSIFPrintfL
    - "OGRGeomCoordinatePrecision::\n                                        ResolutionToPrecision"
    - VSIFSeekL
    - VSIUnlink
    - OGRGMLDataSource::GetLayerCount
    - CPLFree
    - VSIFCloseL
    - std::string::size
    - CSLDestroy
    - OGRMakeWktCoordinate
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRGMLDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:298,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:301,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:302,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:308,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:314,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:315,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:316,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:322,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:323,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:330,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:336,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:337,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:343,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 349
    functionName: OGRGMLDataSource::CheckHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::CheckHeader(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:366,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pszXML
    - szSRSName
    - sizeof_szSRSName
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: ExtractSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool ExtractSRSName(const char *pszXML, char *szSRSName,\n                           size_t
      sizeof_szSRSName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:388,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:389,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:394,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:405,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:409,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:421,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:430,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:431,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:432,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:432,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:433,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:436,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:443,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:447,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:450,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:464,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:465,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:466,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:477,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:478,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:479,1
    - Dst: OGRGMLDataSource::CheckHeader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:488,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:491,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:505,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:509,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:511,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:527,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:529,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:532,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:539,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:544,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:548,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:549,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:560,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:561,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:562,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:563,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:570,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:577,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:585,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:587,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:591,1
    - Dst: ExtractSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:594,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:595,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:600,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:603,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:605,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:606,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:607,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:618,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:620,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:622,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:624,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:628,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:632,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:632,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:639,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:640,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:645,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:657,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:658,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:662,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:662,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:675,1
    - Dst: CreateGMLReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:680,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:685,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:690,1
    - Dst: SetSourceFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:694,1
    - Dst: cpl::down_cast<GMLReader *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:695,1
    - Dst: auto::SetIsWFSJointLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:696,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:698,1
    - Dst: auto::SetEmptyAsNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:699,1
    - Dst: auto::SetReportAllAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:700,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:700,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:702,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:702,1
    - Dst: auto::SetUseBBOX
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:703,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:704,1
    - Dst: OGRGMLDataSource::FindAndParseTopElements
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:710,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:714,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:714,1
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:718,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:719,1
    - Dst: OGRMemLayer::OGRMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:716,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:721,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:721,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:722,1
    - Dst: release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:722,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:723,1
    - Dst: auto::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:723,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:725,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:726,1
    - Dst: SetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:731,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:743,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:746,1
    - Dst: CPLStrnlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:748,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:749,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:749,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:752,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:758,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:759,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:764,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:766,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:769,1
    - Dst: SetSourceFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:776,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:785,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:787,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:790,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:791,1
    - Dst: LoadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:803,1
    - Dst: HugeFileResolver
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:815,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:820,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:821,1
    - Dst: ResolveXlinks
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:827,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:832,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:834,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:839,1
    - Dst: GetSourceFileName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:839,1
    - Dst: SetFP
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:840,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:842,1
    - Dst: PrescanForTemplate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:850,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:860,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:861,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:862,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:862,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:866,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:867,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:870,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:873,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:876,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:879,1
    - Dst: LoadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:883,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:887,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:888,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:888,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:891,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:892,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:893,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:912,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:914,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:915,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:923,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:924,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:925,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:937,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:938,1
    - Dst: GMLRegistry::Parse
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:939,1
    - Dst: GMLRegistry::aoNamespaces::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:942,1
    - Dst: GMLRegistryNamespace::osPrefix::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:952,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:953,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:953,1
    - Dst: GMLRegistryNamespace::osPrefix::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:954,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:964,1
    - Dst: GMLRegistryNamespace::aoFeatureTypes::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:970,1
    - Dst: GMLRegistryNamespace::osPrefix::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:978,1
    - Dst: GMLRegistryFeatureType::osElementValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:980,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:981,1
    - Dst: GMLRegistryNamespace::osPrefix::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:982,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:983,1
    - Dst: GMLRegistryFeatureType::osElementValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:984,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:986,1
    - Dst: GMLRegistryNamespace::osPrefix::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:987,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:988,1
    - Dst: GMLRegistryFeatureType::osElementValue::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:992,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:993,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:995,1
    - Dst: GMLRegistryFeatureType::osElementValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:996,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:998,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1000,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1007,1
    - Dst: GMLRegistryFeatureType::osSchemaLocation::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1010,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1014,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1015,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1017,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1022,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1025,1
    - Dst: GMLRegistryNamespace::osPrefix::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1026,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1027,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1031,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1032,1
    - Dst: LoadClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1037,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1041,1
    - Dst: GMLRegistryFeatureType::osGFSSchemaLocation::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1044,1
    - Dst: GMLRegistryNamespace::osPrefix::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1046,1
    - Dst: GMLRegistryFeatureType::osElementName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1047,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1062,1
    - Dst: ReplaceSpaceByPct20IfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1072,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1073,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1074,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1094,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1095,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1097,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1101,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1103,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1111,1
    - Dst: CPLHTTPEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1122,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1123,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1125,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1125,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1130,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1139,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1141,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1144,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1147,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1154,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1156,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1157,1
    - Dst: GMLParseXSD
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1168,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1173,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1177,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1179,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1187,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1193,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1193,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1195,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1197,1
    - Dst: GMLFeatureClass*::HasFeatureProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1202,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1210,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1219,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1221,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1222,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1222,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1223,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1239,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1239,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1255,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1256,1
    - Dst: GMLFeatureClass*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1258,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1268,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1268,1
    - Dst: AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1270,1
    - Dst: SetClassListLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1276,1
    - Dst: OGRGMLDataSource::BuildJointClassFromXSD
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1284,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1288,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1291,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1297,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1301,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1309,1
    - Dst: PrescanForSchema
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1312,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1319,1
    - Dst: OGRGMLDataSource::BuildJointClassFromScannedSchema
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1321,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1326,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1327,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1327,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1332,1
    - Dst: IsSequentialLayers
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1332,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1335,1
    - Dst: OGRGMLDataSource::DealWithOgrSchemaOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1340,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1350,1
    - Dst: HasStoppedParsing
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1352,1
    - Dst: VSIIsLocal
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1353,1
    - Dst: VSISupportsSequentialWrite
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1354,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1357,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1364,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1365,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1369,1
    - Dst: HasStoppedParsing
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1377,1
    - Dst: SaveClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1384,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1386,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1388,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1393,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1394,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1400,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1401,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1401,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1404,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1406,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1407,1
    - Dst: GMLFeatureClass*::SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1410,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1414,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1419,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1422,1
    - Dst: OGRGMLDataSource::TranslateGMLSchema
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1424,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1424,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1436,1
    - Dst: auto::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1437,1
    - Dst: auto::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1440,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1450,1
    CyclomaticComplexity: 217
    EdgeCount: 217
    ICount: 457
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1458
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 1458
    functionName: OGRGMLDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - GMLRegistryFeatureType::osGFSSchemaLocation::c_str
    - GetClassCount
    - GMLRegistryFeatureType::osElementName::c_str
    - GMLRegistryNamespace::osPrefix::c_str
    - CPLAtoGIntBig
    - GMLParseXSD
    - OGRGMLDataSource::TranslateGMLSchema
    - resize
    - CPLMalloc
    - CPLFetchBool
    - VSIFSeekL
    - static_cast<OGRwkbGeometryType>
    - ReplaceSpaceByPct20IfNeeded
    - auto::CreateFeature
    - CreateGMLReader
    - OGRGMLDataSource::DealWithOgrSchemaOpenOption
    - GMLFeatureClass*::HasFeatureProperties
    - VSIFileFromMemBuffer
    - GMLFeatureClass*::GetName
    - CPLHTTPEnabled
    - GMLRegistry::aoNamespaces::size
    - CSLDestroy
    - HasStoppedParsing
    - GMLRegistryFeatureType::osSchemaLocation::empty
    - IsSequentialLayers
    - SetSourceFile
    - PrescanForSchema
    - OGRGMLDataSource::BuildJointClassFromScannedSchema
    - GMLFeatureClass*::SetFeatureCount
    - PrescanForTemplate
    - SaveClasses
    - HugeFileResolver
    - static_cast<GByte>
    - std::string::c_str
    - CPLGetExtensionSafe
    - CPLStrdup
    - std::vector::begin
    - VSIIsLocal
    - LoadClasses
    - GMLRegistryNamespace::osPrefix::empty
    - release
    - ExtractSRSName
    - VSIFReadL
    - CPLString::find
    - CPLFree
    - SetClassListLocked
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - EQUAL
    - static_cast<OGRLayer **>
    - auto::SetUpdatable
    - auto::SetIsWFSJointLayer
    - GMLRegistryFeatureType::osElementValue::empty
    - strcmp
    - CPLStrnlen
    - auto::SetUseBBOX
    - CPLGetConfigOption
    - VSIStatExL
    - CPLString::empty
    - ResolveXlinks
    - AddClass
    - auto::GetLayerDefn
    - OGRGMLDataSource::FindAndParseTopElements
    - GMLRegistryFeatureType::osElementValue::c_str
    - CPLString::c_str
    - strlen
    - auto::SetReportAllAttributes
    - GetSourceFileName
    - OGRFeature*::SetGeometryDirectly
    - IsEmpty
    - c_str
    - getGeometryType
    - GMLFeatureClass*::GetGeometryPropertyCount
    - CPLSPrintf
    - VSISupportsSequentialWrite
    - strstr
    - CPLCalloc
    - std::vector::resize
    - auto::SetEmptyAsNull
    - empty
    - VSIFCloseL
    - GMLRegistryNamespace::aoFeatureTypes::size
    - GMLFeatureClass*::SetName
    - strcpy
    - GMLFeatureClass*::GetGeometryProperty
    - OGRGMLDataSource::CheckHeader
    - SetFP
    - wkbSetZ
    - CPLString::ifind
    - CPLError
    - STARTS_WITH
    - std::vector::end
    - CPLString::substr
    - static_cast<unsigned char>
    - OGRMemLayer::OGRMemLayer
    - GetClass
    - auto::GetGeomFieldDefn
    - CSLTokenizeString2
    - GMLFeatureClass*::GetFeatureCount
    - STARTS_WITH_CI
    - CPLTestBool
    - CPLHTTPFetch
    - auto::GetGeomFieldCount
    - SetGlobalSRSName
    - OGRGMLDataSource::BuildJointClassFromXSD
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - OGRFeature::OGRFeature
    - VSIStatL
    - cpl::down_cast<GMLReader *>
    - strchr
    - CPLHTTPDestroyResult
    - VSIMemGenerateHiddenFilename
    - GMLRegistry::Parse
    - CPLURLGetValue
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1467,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1470,1
    - Dst: GMLFeatureClass::GMLFeatureClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1472,1
    - Dst: GMLFeatureClass*::SetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1473,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1474,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1476,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1480,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1480,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1482,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1484,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1484,1
    - Dst: GMLPropertyDefn*::SetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1485,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1486,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1487,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1490,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1492,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1494,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1494,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1495,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1497,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1499,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1499,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1501,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1501,1
    - Dst: GMLPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1502,1
    - Dst: GMLPropertyDefn*::SetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1503,1
    - Dst: GMLPropertyDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1504,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1504,1
    - Dst: GMLPropertyDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1505,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1505,1
    - Dst: GMLPropertyDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1506,1
    - Dst: GMLPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1506,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1508,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1510,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1514,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1516,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1516,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1517,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1519,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1519,1
    - Dst: GMLGeometryPropertyDefn*::GetSrcElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1520,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1523,1
    - Dst: GMLGeometryPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1524,1
    - Dst: GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1522,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1525,1
    - Dst: GMLFeatureClass*::SetSchemaLocked
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1528,1
    - Dst: ClearClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1530,1
    - Dst: AddClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1532
    functionName: OGRGMLDataSource::BuildJointClassFromXSD
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetName
    - GMLGeometryPropertyDefn::GMLGeometryPropertyDefn
    - ClearClasses
    - GetClassCount
    - AddClass
    - GMLPropertyDefn*::SetPrecision
    - GMLPropertyDefn::GMLPropertyDefn
    - GMLGeometryPropertyDefn*::GetSrcElement
    - GMLFeatureClass*::AddProperty
    - GMLFeatureClass*::GetProperty
    - GetClass
    - GMLPropertyDefn*::GetType
    - GMLPropertyDefn*::SetNullable
    - GMLPropertyDefn*::SetWidth
    - GMLPropertyDefn*::IsNullable
    - GMLPropertyDefn*::SetType
    - GMLFeatureClass*::GetGeometryPropertyCount
    - CPLString::Printf
    - GMLFeatureClass*::GetPropertyCount
    - GMLGeometryPropertyDefn*::GetName
    - GMLFeatureClass*::SetElementName
    - GMLPropertyDefn*::SetSrcElement
    - GMLGeometryPropertyDefn*::IsNullable
    - GMLFeatureClass*::GetName
    - GMLFeatureClass::GMLFeatureClass
    - GMLFeatureClass*::AddGeometryProperty
    - GMLPropertyDefn*::GetSrcElement
    - GMLPropertyDefn*::GetWidth
    - GMLPropertyDefn*::GetPrecision
    - GMLFeatureClass*::SetSchemaLocked
    - GMLFeatureClass*::GetGeometryProperty
    - GMLGeometryPropertyDefn*::GetType
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::BuildJointClassFromXSD()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1543,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1546,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1548,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1549,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1552,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1554,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1554,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1556,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1557,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1559,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1563,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1563,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1567,1
    - Dst: std::vector<GMLPropertyDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1567,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1569,1
    - Dst: GMLFeatureClass*::SetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1571,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1571,1
    - Dst: GMLFeatureClass*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1572,1
    - Dst: GMLFeatureClass*::StealProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1574,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1577,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1577,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1580,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1583,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1584,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1585,1
    - Dst: std::vector<GMLGeometryPropertyDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1585,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1587,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1587,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1589,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1592,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1595,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1597,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1598,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1601,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1603,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1603,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1608,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1608,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1609,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1610,1
    - Dst: std::vector<GMLGeometryPropertyDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1610,1
    - Dst: second::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1611,1
    - Dst: GMLFeatureClass*::StealGeometryProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1613,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1614,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1614,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1618,1
    - Dst: second::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1618,1
    - Dst: GMLFeatureClass*::AddGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1621,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1625
    functionName: OGRGMLDataSource::BuildJointClassFromScannedSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetName
    - std::vector::size
    - std::vector<GMLGeometryPropertyDefn *>
    - std::vector::emplace_back
    - GMLFeatureClass*::StealProperties
    - std::vector::push_back
    - std::vector<GMLPropertyDefn *>
    - CPLString::resize
    - second::push_back
    - GMLFeatureClass*::AddProperty
    - GMLFeatureClass*::GetProperty
    - GetClass
    - second::size
    - GetName
    - static_cast<int>
    - GMLFeatureClass*::GetGeometryPropertyCount
    - GMLFeatureClass*::GetPropertyCount
    - GMLGeometryPropertyDefn*::GetName
    - GMLFeatureClass*::SetElementName
    - GMLFeatureClass*::StealGeometryProperties
    - CPLString::find
    - GMLFeatureClass*::GetName
    - std::vector::resize
    - size
    - GMLFeatureClass*::AddGeometryProperty
    - GMLFeatureClass*::SetName
    - std::pair
    - push_back
    - GMLFeatureClass*::GetGeometryProperty
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::BuildJointClassFromScannedSchema()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1639,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1640,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1643,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1645,1
    - Dst: OGRGMLDataSource::GetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1654,1
    - Dst: GML_IsLegitSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1656,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1658,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1659,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1662,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1664,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1672,1
    - Dst: GMLFeatureClass*::HasExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1674,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1674,1
    - Dst: GMLFeatureClass*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1676,1
    - Dst: GMLFeatureClass*::HasExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1682,1
    - Dst: IsInit
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1682,1
    - Dst: GMLFeatureClass*::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1684,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1690,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1696,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1701,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1703,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1706,1
    - Dst: OGR_SRSNode*::GetNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1708,1
    - Dst: OGRSpatialReference*::SetRoot
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1711,1
    - Dst: OGR_SRSNode*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1711,1
    - Dst: GMLFeatureClass*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1717,1
    - Dst: OGRGMLLayer::OGRGMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1717,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1723,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1724,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1729,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1730,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1733,1
    - Dst: GMLFeatureClass*::GetGeometryProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1736,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1739,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1740,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1740,1
    - Dst: GMLGeometryPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1742,1
    - Dst: GMLGeometryPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1745,1
    - Dst: GMLGeometryPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1745,1
    - Dst: GMLFeatureClass*::GetGeometryPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1746,1
    - Dst: GMLFeatureClass*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1747,1
    - Dst: OGRGeomFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1749,1
    - Dst: GMLGeometryPropertyDefn*::GetSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1752,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1753,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1755,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1756,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1759,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1760,1
    - Dst: "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1761,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1764,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1766,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1770,1
    - Dst: OGRGeomFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1772,1
    - Dst: GMLGeometryPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1772,1
    - Dst: OGRGeomFieldDefn::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1773,1
    - Dst: GMLGeometryPropertyDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1773,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1774,1
    - Dst: GetClassCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1777,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1783,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1783,1
    - Dst: GMLPropertyDefn::GMLPropertyDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1783,1
    - Dst: GMLPropertyDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1784,1
    - Dst: GMLFeatureClass*::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1785,1
    - Dst: GMLFeatureClass*::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1792,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1794,1
    - Dst: GMLPropertyDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1795,1
    - Dst: GML_GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1797,1
    - Dst: GMLPropertyDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1797,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1798,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1799,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1800,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1800,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1801,1
    - Dst: GMLPropertyDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1801,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1802,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1803,1
    - Dst: GMLPropertyDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1803,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1804,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1805,1
    - Dst: GMLPropertyDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1805,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1807,1
    - Dst: GMLPropertyDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1807,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1808,1
    - Dst: GMLPropertyDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1808,1
    - Dst: OGRFieldDefn::SetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1809,1
    - Dst: GMLPropertyDefn*::GetDocumentation
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1809,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1810,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1814,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 94
    argCount: 1
    argNames:
    - poClass
    argTypes:
    - GMLFeatureClass*
    constantsTouched: []
    func_position:
      end: 1817
      start: 1631
    functionDepth: 8
    functionLinenumber: 1631
    functionLinenumberEnd: 1817
    functionName: OGRGMLDataSource::TranslateGMLSchema
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - GMLPropertyDefn*::GetName
    - OGRSpatialReference*::GetAttrNode
    - GML_IsLegitSRSName
    - "OGRSpatialReference::\n                        SET_FROM_USER_INPUT_LIMITATIONS_get"
    - CPLDebug
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - strcmp
    - GMLGeometryPropertyDefn*::GetCoordinatePrecision
    - OGRFieldDefn::SetNullable
    - OGRFieldDefn::SetUnique
    - OGRGeomFieldDefn::SetCoordinatePrecision
    - GetClassCount
    - GMLFeatureClass*::SetExtents
    - OGRGeomFieldDefn::SetType
    - auto::c_str
    - OGRSpatialReference*::SetAxisMappingStrategy
    - GMLPropertyDefn::GMLPropertyDefn
    - GMLGeometryPropertyDefn*::SetType
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - GMLFeatureClass*::AddProperty
    - GMLFeatureClass*::GetProperty
    - GMLPropertyDefn*::GetType
    - IsInit
    - GMLPropertyDefn*::GetDocumentation
    - GMLFeatureClass*::GetFeatureCount
    - OGR_SRSNode*::Clone
    - OGRFieldDefn::GetNameRef
    - CPLTestBool
    - c_str
    - OGRGeomFieldDefn::SetNullable
    - STARTS_WITH_CI
    - GMLPropertyDefn*::IsNullable
    - OGRGMLLayer*::GetLayerDefn
    - GMLFeatureClass*::GetGeometryPropertyCount
    - GMLPropertyDefn*::SetType
    - GMLPropertyDefn*::GetSubType
    - GMLGeometryPropertyDefn*::GetName
    - GMLFeatureClass*::GetPropertyCount
    - auto::empty
    - OGRFieldDefn::SetSubType
    - GML_GetOGRFieldType
    - OGRSpatialReference*::SetRoot
    - OGRFieldDefn::SetName
    - GMLPropertyDefn*::IsUnique
    - GMLFeatureClass*::HasExtents
    - GML_IsSRSLatLongOrder
    - GMLGeometryPropertyDefn*::IsNullable
    - GMLFeatureClass*::GetName
    - OGR_SRSNode*::GetNode
    - OGRSpatialReference::OGRSpatialReference
    - GMLPropertyDefn*::GetWidth
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRSpatialReference*::IsCompound
    - GMLPropertyDefn*::GetPrecision
    - OGRSpatialReference*::SetFromUserInput
    - OGRGMLDataSource::GetGlobalSRSName
    - OGRFieldDefn::SetComment
    - GMLFeatureClass*::GetGeometryProperty
    - OGRGMLLayer::OGRGMLLayer
    - GMLGeometryPropertyDefn*::GetType
    - GMLGeometryPropertyDefn*::GetSRSName
    linkageType: ''
    returnType: OGRGMLLayer
    signature: OGRGMLLayer *OGRGMLDataSource::TranslateGMLSchema(GMLFeatureClass *poClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CanUseGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1825,1
    - Dst: OGRGMLDataSource::GetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1823
    functionDepth: 1
    functionLinenumber: 1823
    functionLinenumberEnd: 1829
    functionName: OGRGMLDataSource::GetGlobalSRSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 2
    functionsReached:
    - CanUseGlobalSRSName
    - OGRGMLDataSource::GetGlobalSRSName
    linkageType: ''
    returnType: char
    signature: char *OGRGMLDataSource::GetGlobalSRSName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1840,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1844,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1848,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1849,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1853,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1854,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1855,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1870,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1874,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1876,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1878,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1882,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1887,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1891,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1892,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1896,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1898,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1899,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1901,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1905,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1907,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1907,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1909,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1910,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1913,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1913,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1917,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1920,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1922,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1927,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1930,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1930,1
    - Dst: OGRGMLDataSource::GMLFeatureCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1936,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1937,1
    - Dst: OGRGMLDataSource::RemoveAppPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1938,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1939,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1941,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1943,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1948,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1949,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1958,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1961,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1963,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1968,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1971,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1973,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1974,1
    - Dst: OGRGMLDataSource::RemoveAppPrefix
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1977,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1978,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1980,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1983,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1984,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:1987,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1991
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1991
    functionName: OGRGMLDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - strcmp
    - VSIFTellL
    - CPLError
    - STARTS_WITH
    - OGRGMLDataSource::PrintLine
    - CPLGetExtensionSafe
    - OGRGMLDataSource::GMLFeatureCollection
    - OGRGMLDataSource::RemoveAppPrefix
    - OGRGMLDataSource::IsGML32Output
    - CPLTestBool
    - static_cast<int>
    - CPLAssert
    - SetDescription
    - CPLFormFilenameSafe
    - CPLFree
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - CSLDestroy
    - VSIFOpenExL
    - EQUAL
    - CSLDuplicate
    - VSIGetLastErrorMsg
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::Create(const char *pszFilename, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2004,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2006,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2007,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2015,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2017,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2018,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2024,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2028,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2028,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2031,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2036,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2037,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2038,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2045
    functionName: OGRGMLDataSource::WriteTopElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - VSIFPrintfL
    - static_cast<int>
    - CPLFetchBool
    - VSIFTellL
    - OGRGMLDataSource::IsGML3Output
    - OGRGMLDataSource::PrintLine
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::WriteTopElements()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2056,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2058,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2064,1
    - Dst: OGRSchemaOverride::LoadFromJSON
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2070,1
    - Dst: OGRSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2071,1
    - Dst: OGRSchemaOverride::GetLayerOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2076,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2084,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2085,1
    - Dst: GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2088,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2088,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2091,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2092,1
    - Dst: auto::GetFieldOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2096,1
    - Dst: auto::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2100,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2100,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2103,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2105,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2106,1
    - Dst: auto::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2113,1
    - Dst: auto::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2115,1
    - Dst: auto::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2117,1
    - Dst: auto::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2120,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2122,1
    - Dst: GML_FromOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2122,1
    - Dst: auto::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2123,1
    - Dst: auto::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2126,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2128,1
    - Dst: auto::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2129,1
    - Dst: auto::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2132,1
    - Dst: auto::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2134,1
    - Dst: auto::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2134,1
    - Dst: auto::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2137,1
    - Dst: auto::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2139,1
    - Dst: auto::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2140,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2145,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2151,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2152,1
    - Dst: auto::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2152,1
    - Dst: auto::GetPropertyCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2154,1
    - Dst: auto::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2156,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2157,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2157,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2157,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2158,1
    - Dst: auto::StealProperties
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2164,1
    - Dst: auto::AddProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2168,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2174
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2174
    functionName: OGRGMLDataSource::DealWithOgrSchemaOpenOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - GML_FromOGRFieldType
    - auto::SetType
    - auto::GetFieldName
    - auto::GetFieldOverrides
    - std::vector::size
    - CPLDebug
    - auto::GetFieldWidth
    - auto::SetPrecision
    - CPLError
    - std::vector::push_back
    - auto::c_str
    - std::string::empty
    - auto::SetSubType
    - std::vector::end
    - auto::GetFieldSubType
    - std::vector::begin
    - GetClass
    - auto::GetFieldType
    - auto::StealProperties
    - OGRSchemaOverride::IsValid
    - auto::SetName
    - OGRSchemaOverride::GetLayerOverrides
    - first::c_str
    - auto::SetWidth
    - OGRSchemaOverride::LoadFromJSON
    - static_cast<size_t>
    - auto::AddProperty
    - CSLFetchNameValueDef
    - auto::GetPropertyCount
    - auto::GetProperty
    - auto::GetFieldPrecision
    - std::find
    linkageType: ''
    returnType: bool
    signature: "bool OGRGMLDataSource::DealWithOgrSchemaOpenOption(\n    const GDALOpenInfo
      *poOpenInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2192,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2192,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2193,1
    - Dst: OGRSpatialReference*::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2204,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 2216
      start: 2183
    functionDepth: 1
    functionLinenumber: 2183
    functionLinenumberEnd: 2216
    functionName: OGRGMLDataSource::DeclareNewWriteSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::Clone
    - get
    - SetAxisMappingStrategy
    - OGRSpatialReference*::IsSame
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::DeclareNewWriteSRS(const OGRSpatialReference
      *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2230,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2233,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2239,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2241,1
    - Dst: CPLCleanXMLElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2246,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2247,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2249,1
    - Dst: OGRGMLDataSource::WriteTopElements
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2256,1
    - Dst: OGRGMLLayer::OGRGMLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2260,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2261,1
    - Dst: OGRGMLLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2264,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2268,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2269,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2269,1
    - Dst: OGRGMLDataSource::DeclareNewWriteSRS
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2270,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2273,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2274,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2275,1
    - Dst: auto::Dereference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2276,1
    - Dst: auto::SetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2278,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2279,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2282,1
    - Dst: static_cast<OGRLayer **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2285,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - pszLayerName
    - poSrcGeomFieldDefn
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 2291
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2291
    functionName: OGRGMLDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLCleanXMLElementName
    - OGRGeomFieldDefn*::IsNullable
    - GetDescription
    - OGRGMLDataSource::WriteTopElements
    - strcmp
    - auto::SetCoordinatePrecision
    - CPLError
    - OGRGMLLayer::OGRGMLLayer
    - CPLRealloc
    - auto::Clone
    - OGRGMLLayer*::GetLayerDefn
    - auto::SetName
    - OGRGeomFieldDefn*::GetType
    - auto::Dereference
    - auto::SetSpatialRef
    - OGRGMLDataSource::DeclareNewWriteSRS
    - auto::SetAxisMappingStrategy
    - CPLFree
    - static_cast<OGRLayer **>
    - auto::SetNullable
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRGMLDataSource::ICreateLayer(const char *pszLayerName,\n
      \                              const OGRGeomFieldDefn *poSrcGeomFieldDefn,\n
      \                              CSLConstList /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2300,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2302,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2304,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2312
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2312
    functionName: OGRGMLDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRGMLDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2325
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2325
    functionName: OGRGMLDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRGMLDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Merge
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - psGeomBounds
    - nCoordDimension
    argTypes:
    - OGREnvelope3D*
    - int
    constantsTouched: []
    func_position:
      end: 2338
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2338
    functionName: OGRGMLDataSource::GrowExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - Merge
    linkageType: ''
    returnType: void
    signature: "void OGRGMLDataSource::GrowExtents(OGREnvelope3D *psGeomBounds,\n
      \                                  int nCoordDimension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2369,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2372,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2372,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2374,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2374,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2377,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2379,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2382,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2384,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2388,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2388,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2406,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2408,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2410,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2412,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2413,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2414,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2415,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2429,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2431,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2432,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2433,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2435,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2437,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2439,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2443,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2450,1
    - Dst: OGRGMLDataSource::IsGML3DeegreeOutput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2451,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2453,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2457,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2458,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2460,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2464,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2465,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2468,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2472,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2473,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2476,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2482,1
    - Dst: OGRGMLDataSource::IsGML3DeegreeOutput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2491,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2493,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2494,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2498,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2502,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2507,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2508,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2511,1
    - Dst: OGRGMLDataSource::IsGML3DeegreeOutput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2515,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2517,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2527,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2534,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2547,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2552,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2553,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2559,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2561,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2566,1
    - Dst: OGRGMLDataSource::IsGML3DeegreeOutput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2572,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2574,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2582,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2592,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2603,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2608,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2609,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2611,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2614,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2614,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2615,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2619,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2620,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2621,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2622,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2626,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2631,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2633,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2634,1
    - Dst: OGRGMLDataSource::IsGML3DeegreeOutput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2635,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2637,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2639,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2640,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2645,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2647,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2650,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2652,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2653,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2655,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2656,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2658,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2659,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2662,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2663,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2664,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2668,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2669,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2671,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2673,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2674,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2675,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2676,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2677,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2678,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2682,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2683,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2684,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2687,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2689,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2691,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2692,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2693,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2699,1
    - Dst: OGRGMLDataSource::IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2702,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2704,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2707,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2707,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2711,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2714,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2714,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2717,1
    - Dst: OGRFeatureDefn*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2718,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2719,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2720,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2722,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2724,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2728,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2733,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2733,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2742,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2760,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2778,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2793,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2813,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2826,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2830,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2835,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2839,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2840,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2844,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2847,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2849,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2850,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2855,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2864,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2870,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2871,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2872,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2873,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2878,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2880,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2882,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2883,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2883,1
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2885,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2886,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2886,1
    - Dst: OGRFieldDefn*::GetComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2891,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2895,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2900,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2905,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2911,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2914,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2916,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2917,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2918,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2920,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2924,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2926,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2931,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2934,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2938,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2939,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2940,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2947,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2950,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2952,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2953,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2954,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2956,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2960,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2962,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2967,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2969,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2973,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2974,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2975,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2981,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2982,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2984,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2987,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2989,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2990,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2991,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2992,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:2995,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3000,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3003,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3007,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3008,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3009,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3013,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3016,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3018,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3019,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3020,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3022,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3024,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3026,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3028,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3029,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3030,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3034,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3037,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3038,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3039,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3043,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3046,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3047,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3048,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3052,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3056,1
    - Dst: AddComment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3057,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3058,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3067,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3068,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3069,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3070,1
    - Dst: OGRGMLDataSource::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3073,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3082,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3084,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3098,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3099,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3100,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3102,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3107,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3110,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3111,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3113,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3117,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3122,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 367
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 2348
    functionDepth: 2
    functionLinenumber: 2348
    functionLinenumberEnd: 3124
    functionName: OGRGMLDataSource::InsertHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRFieldDefn*::GetPrecision
    - GetDescription
    - OGRFieldDefn*::GetComment
    - strcmp
    - VSIFTellL
    - CPLError
    - OGRFieldDefn*::GetWidth
    - OGRGMLDataSource::PrintLine
    - std::string::c_str
    - OGRFeatureDefn*::GetGeomFieldDefn
    - AddComment
    - OGRGeomFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetSubType
    - OGRGMLDataSource::IsGML3Output
    - wkbFlatten
    - OGRFeatureDefn*::GetName
    - OGRGMLDataSource::IsGML32Output
    - GetLayerDefn
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - static_cast<int>
    - OGRFieldDefn*::GetNameRef
    - OGRGeomFieldDefn*::GetType
    - VSIFSeekL
    - VSIFOpenL
    - OGRFieldDefn*::GetType
    - OGRGMLDataSource::IsGML3DeegreeOutput
    - VSIFReadL
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - VSIFCloseL
    - CPLResetExtensionSafe
    - EQUAL
    - OGRFieldDefn*::IsUnique
    - OGRGeomFieldDefn*::GetSpatialRef
    - VSIFWriteL
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::InsertHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3135,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3136,1
    - Dst: va_end
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3137,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3145,1
    - Dst: CPLString::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3145,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3145,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3146,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3146,1
    - Dst: ReportError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3149,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - fmt
    argTypes:
    - VSILFILE*
    - char*
    constantsTouched: []
    func_position:
      end: 3152
      start: 3130
    functionDepth: 2
    functionLinenumber: 3130
    functionLinenumberEnd: 3152
    functionName: OGRGMLDataSource::PrintLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 4
    functionsReached:
    - ReportError
    - va_start
    - va_end
    - CPLString::c_str
    - CPLString::size
    - VSIFWriteL
    - strlen
    - CPLString::data
    - CPLString::vPrintf
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::PrintLine(VSILFILE *fp, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3173
      start: 3170
    functionDepth: 1
    functionLinenumber: 3170
    functionLinenumberEnd: 3173
    functionName: ~OGRGMLSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~OGRGMLSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3175
    functionDepth: 0
    functionLinenumber: 3175
    functionLinenumberEnd: 3178
    functionName: OGRGMLSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3182
    functionDepth: 0
    functionLinenumber: 3182
    functionLinenumberEnd: 3185
    functionName: OGRGMLSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3187
    functionDepth: 0
    functionLinenumber: 3187
    functionLinenumberEnd: 3190
    functionName: OGRGMLSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3198,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3200,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nValIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3203
      start: 3197
    functionDepth: 1
    functionLinenumber: 3197
    functionLinenumberEnd: 3203
    functionName: OGRGMLSingleFeatureLayer::OGRGMLSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRGMLSingleFeatureLayer::OGRGMLSingleFeatureLayer(int nValIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3214,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3215,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3209
    functionDepth: 3
    functionLinenumber: 3209
    functionLinenumberEnd: 3218
    functionName: OGRGMLSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGMLSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3228,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3231,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3233,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3235,1
    - Dst: CPLValidateXML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3235,1
    - Dst: OGRGMLSingleFeatureLayer::OGRGMLSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3237,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 3241
      start: 3224
    functionDepth: 2
    functionLinenumber: 3224
    functionLinenumberEnd: 3241
    functionName: OGRGMLDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLValidateXML
    - CPLErrorReset
    - OGRGMLSingleFeatureLayer::OGRGMLSingleFeatureLayer
    - empty
    - EQUAL
    - GDALDataset::ExecuteSQL
    - CPL_TO_BOOL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRGMLDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poResultsSet
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 3250
      start: 3247
    functionDepth: 0
    functionLinenumber: 3247
    functionLinenumberEnd: 3250
    functionName: OGRGMLDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::ReleaseResultSet(OGRLayer *poResultsSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3263,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3271,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3279,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3279,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3288,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3298,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3300,1
    - Dst: OGRGMLIsGeometryElement
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3309,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3311,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3312,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3315,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3319,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3319,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3320,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3320,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3325,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3326,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3326,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3327,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3328,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3331,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3331,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3340,1
    - Dst: SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3346,1
    - Dst: "OGRSpatialReference::\n                                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3348,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3350,1
    - Dst: GML_IsSRSLatLongOrder
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3352,1
    - Dst: swapXY
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3353,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3359,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3369,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3375,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3378,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3379,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3385,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3394,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3398,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3405,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3406,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3407,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3408,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3409,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3410,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3411,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3412,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3420,1
    - Dst: ExtractSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3430,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3433,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3434,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3435,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3436,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3438,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3439,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3440,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3441,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3448,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3461,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3464,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3466,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3468,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3483,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3483,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3485,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3487,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3491,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3492,1
    - Dst: SetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3493,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3493,1
    - Dst: SetGlobalSRSName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3497,1
    - Dst: OGRGMLDataSource::SetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3505,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3507,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3508,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3511,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3515,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 138
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 3516
      start: 3256
    functionDepth: 8
    functionLinenumber: 3256
    functionLinenumberEnd: 3516
    functionName: OGRGMLDataSource::FindAndParseTopElements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::string::data
    - std::string::append
    - CPLDebug
    - strcmp
    - VSIFTellL
    - CPLGetXMLValue
    - CPLString::resize
    - STARTS_WITH
    - std::string::c_str
    - CPLErrorReset
    - static_cast<unsigned char>
    - GML2OGRGeometry_XMLNode
    - isspace
    - SetAxisMappingStrategy
    - CPLPopErrorHandler
    - strlen
    - CSLCount
    - SetMetadataItem
    - SetFromUserInput
    - CPLDestroyXMLNode
    - swapXY
    - VSIFSeekL
    - SetGlobalSRSName
    - ExtractSRSName
    - CPLParseXMLString
    - strcat
    - std::string::resize
    - "OGRSpatialReference::\n                                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - strstr
    - VSIFReadL
    - GML_IsSRSLatLongOrder
    - CPLFree
    - static_cast<size_t>
    - std::string::size
    - CPLGetXMLNode
    - OGRGMLDataSource::SetExtents
    - CSLDestroy
    - strchr
    - CPLPushErrorHandler
    - reset
    - push_back
    - OGRGMLIsGeometryElement
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGRGMLDataSource::FindAndParseTopElements(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3529
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3529
    functionName: OGRGMLDataSource::SetExtents
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRGMLDataSource::SetExtents(double dfMinX, double dfMinY, double
      dfMaxX,\n                                  double dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3535
    functionDepth: 1
    functionLinenumber: 3535
    functionLinenumberEnd: 3538
    functionName: OGRGMLDataSource::GetAppPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: char
    signature: char *OGRGMLDataSource::GetAppPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3546,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3544
    functionDepth: 1
    functionLinenumber: 3544
    functionLinenumberEnd: 3551
    functionName: OGRGMLDataSource::RemoveAppPrefix
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::RemoveAppPrefix() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3559,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3557
    functionDepth: 1
    functionLinenumber: 3557
    functionLinenumberEnd: 3561
    functionName: OGRGMLDataSource::WriteFeatureBoundedBy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::WriteFeatureBoundedBy() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3567
    functionDepth: 1
    functionLinenumber: 3567
    functionLinenumberEnd: 3570
    functionName: OGRGMLDataSource::GetSRSDimensionLoc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: char *OGRGMLDataSource::GetSRSDimensionLoc() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGMLDataSource::IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3578,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp:3579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3576
    functionDepth: 1
    functionLinenumber: 3576
    functionLinenumberEnd: 3580
    functionName: OGRGMLDataSource::GMLFeatureCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRGMLDataSource::IsGML3Output
    - CPLFetchBool
    linkageType: ''
    returnType: bool
    signature: bool OGRGMLDataSource::GMLFeatureCollection() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: huge_helper::huge_helper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void huge_helper()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:141,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:143,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:166,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:168,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:200,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:211,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 218
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 218
    functionName: gmlHugeFileSQLiteInit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: bool gmlHugeFileSQLiteInit(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:223,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:242,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:250,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:253,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:267,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:269,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:271,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:273,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:297,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:298,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:301,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:310,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:311,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:314,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 3
    argNames:
    - psNode
    - pszFromId
    - pszToId
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 321
    functionName: gmlHugeResolveEdgeNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLRemoveXMLChild
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLAddXMLChild
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool gmlHugeResolveEdgeNodes(const CPLXMLNode *psNode,\n                                    const
      char *pszFromId, const char *pszToId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:344,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:361,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:363,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:374,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:376,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:377,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:378,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:415,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:416,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:417,1
    - Dst: static_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:419,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:420,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:422,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:424,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:425,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:427,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:429,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:431,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:433,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:435,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:437,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:439,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:441,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:442,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:444,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:446,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:448,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:450,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:452,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:454,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:456,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:458,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:459,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:461,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:463,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:465,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:467,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:469,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:471,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:473,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:475,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:476,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:478,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:480,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:482,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:484,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:486,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:488,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:492,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:495,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:503,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:508,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:508,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:511,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:519,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:526,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:526,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:530,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:530,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:533,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:541,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:548,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:551,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:559,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:564,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:564,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:567,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:575,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:582,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:582,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:586,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:586,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:589,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:597,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:610,1
    - Dst: gmlHugeResolveEdgeNodes
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:613,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:616,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:617,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:618,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:619,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:619,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:627,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:630,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:633,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:642,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:646,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:654,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:658,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:659,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:660,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:665,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:671,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:673,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:674,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:675,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:679,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:680,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:686,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:688,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 181
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 693
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 693
    functionName: gmlHugeFileResolveEdges
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_double
    - sqlite3_finalize
    - sqlite3_column_text
    - CPLError
    - sqlite3_clear_bindings
    - std::isnan
    - sqlite3_reset
    - sqlite3_column_type
    - static_cast<const char *>
    - strlen
    - sqlite3_bind_text
    - static_cast<int>
    - reinterpret_cast<const char *>
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - sqlite3_errmsg
    - CPLFree
    - sqlite3_bind_blob
    - sqlite3_column_blob
    - sqlite3_free
    - gmlHugeResolveEdgeNodes
    linkageType: ''
    returnType: bool
    signature: bool gmlHugeFileResolveEdges(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:707,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:708,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:709,1
    - Dst: struct huge_tag*::gmlNodeFrom::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:710,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:712,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:713,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:715,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:720,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:722,1
    - Dst: struct huge_tag*::gmlNodeFrom::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:723,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:729,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:730,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:731,1
    - Dst: struct huge_tag*::gmlNodeTo::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:731,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:733,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:734,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:736,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:737,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:741,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:743,1
    - Dst: struct huge_tag*::gmlNodeTo::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:744,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:751,1
    - Dst: sqlite3_clear_bindings
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:752,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:753,1
    - Dst: struct huge_tag*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:753,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:757,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:758,1
    - Dst: struct huge_tag*::gmlTagValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:759,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:760,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:760,1
    - Dst: struct huge_tag*::gmlTagValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:760,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:765,1
    - Dst: struct huge_tag*::gmlTagValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:766,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:767,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:767,1
    - Dst: struct huge_tag*::gmlTagValue::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:767,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:769,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:772,1
    - Dst: struct huge_tag*::gmlNodeFrom::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:772,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:775,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:778,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:779,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:781,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:783,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:787,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:788,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:789,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:792,1
    - Dst: struct huge_tag*::gmlNodeTo::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:792,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:795,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:798,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:799,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:801,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:803,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:807,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:808,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:809,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:814,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:816,1
    - Dst: struct huge_tag*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:816,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 822
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 822
    functionName: gmlHugeFileSQLiteInsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_bind_text
    - sqlite3_reset
    - static_cast<int>
    - sqlite3_bind_blob
    - struct huge_tag*::gmlNodeTo::c_str
    - strlen
    - sqlite3_errmsg
    - CPLError
    - struct huge_tag*::gmlNodeFrom::c_str
    - struct huge_tag*::gmlTagValue::c_str
    - sqlite3_clear_bindings
    - sqlite3_bind_double
    - sqlite3_bind_null
    - struct huge_tag*::gmlId::c_str
    linkageType: ''
    returnType: bool
    signature: bool gmlHugeFileSQLiteInsert(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 846
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 846
    functionName: gmlHugeFileReset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gmlHugeFileReset(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 866
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 866
    functionName: gmlHugeFileHrefReset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gmlHugeFileHrefReset(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:878,1
    - Dst: struct huge_href*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 886
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 886
    functionName: gmlHugeFileHrefCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - struct huge_href*::gmlId::c_str
    linkageType: ''
    returnType: bool
    signature: bool gmlHugeFileHrefCheck(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 909
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 909
    functionName: gmlHugeFileRewiterReset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gmlHugeFileRewiterReset(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:921,1
    - Dst: struct huge_tag*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:921,1
    - Dst: CPLString*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:921,1
    - Dst: struct huge_tag::struct huge_tag
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - helper
    - gmlId
    - gmlFragment
    argTypes:
    - huge_helper*
    - CPLString*
    - CPLString*
    constantsTouched: []
    func_position:
      end: 944
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 944
    functionName: gmlHugeAddToHelper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - struct huge_tag::struct huge_tag
    - struct huge_tag*::gmlId::c_str
    - CPLString*::c_str
    linkageType: ''
    returnType: struct huge_tag
    signature: "struct huge_tag *gmlHugeAddToHelper(huge_helper *helper,\n                                           CPLString
      *gmlId,\n                                           CPLString *gmlFragment)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:958,1
    - Dst: struct huge_href*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:958,1
    - Dst: CPLString*::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:958,1
    - Dst: struct huge_href::struct huge_href
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:970,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - helper
    - gmlId
    - psParent
    - psNode
    - cOrientation
    argTypes:
    - huge_helper*
    - CPLString*
    - CPLXMLNode*
    - CPLXMLNode*
    - char
    constantsTouched: []
    func_position:
      end: 985
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 985
    functionName: gmlHugeAddPendingToHelper
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - struct huge_href::struct huge_href
    - struct huge_href*::gmlId::c_str
    - CPLString*::c_str
    linkageType: ''
    returnType: void
    signature: "void gmlHugeAddPendingToHelper(huge_helper *helper, CPLString *gmlId,\n
      \                                     const CPLXMLNode *psParent,\n                                      const
      CPLXMLNode *psNode,\n                                      // bool bIsDirectedEdge,\n
      \                                     char cOrientation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:995,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1002,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - psNode
    - gmlId
    argTypes:
    - CPLXMLNode*
    - CPLString**
    constantsTouched: []
    func_position:
      end: 1010
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 1010
    functionName: gmlHugeFindGmlId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLString::CPLString
    linkageType: ''
    returnType: int
    signature: int gmlHugeFindGmlId(const CPLXMLNode *psNode, CPLString **gmlId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1021,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1023,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1024,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1025,1
    - Dst: GML2OGRGeometry_XMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1026,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1027,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1030,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1034,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1038,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1043,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1044,1
    - Dst: OGRLineString*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1045,1
    - Dst: OGRLineString*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1046,1
    - Dst: OGRLineString*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1047,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1049,1
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1050,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1068,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1077,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1090,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1102,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1108,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1132,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1138,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1142,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 3
    argNames:
    - pItem
    - psNode
    - nodeSrs
    argTypes:
    - struct huge_tag*
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 1161
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1161
    functionName: gmlHugeFileNodeCoords
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLCloneXMLTree
    - OGRLineString*::getX
    - CPLError
    - CPLString::CPLString
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::getGeometryRef
    - CPLAddXMLChild
    - EQUAL
    - GML2OGRGeometry_XMLNode
    - OGRLineString*::getZ
    - OGRLineString*::getY
    - OGRLineString*::getCoordinateDimension
    - OGRGeometry*::toLineString
    linkageType: ''
    returnType: void
    signature: "void gmlHugeFileNodeCoords(struct huge_tag *pItem,\n                                  const
      CPLXMLNode *psNode,\n                                  CPL_UNUSED CPLString
      **nodeSrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1168,1
    - Dst: gmlHugeFindGmlId
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1171,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1174,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1175,1
    - Dst: gmlHugeAddToHelper
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1177,1
    - Dst: gmlHugeFileNodeCoords
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1197,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1198,1
    - Dst: gmlHugeFileCheckXrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1200,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1202,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1208,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1217,1
    - Dst: gmlHugeFileCheckXrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1218,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1236,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1237,1
    - Dst: gmlHugeFileCheckXrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1239,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 2
    argNames:
    - helper
    - psNode
    argTypes:
    - huge_helper*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1244
    functionName: gmlHugeFileCheckXrefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 1
    functionsReached:
    - gmlHugeFindGmlId
    - EQUAL
    - gmlHugeAddToHelper
    - gmlHugeFileCheckXrefs
    - CPLString::CPLString
    - gmlHugeFileNodeCoords
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void gmlHugeFileCheckXrefs(huge_helper *helper, const CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1250,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1252,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - helper
    argTypes:
    - huge_helper*
    constantsTouched: []
    func_position:
      end: 1257
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1257
    functionName: gmlHugeFileCleanUp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_close
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void gmlHugeFileCleanUp(huge_helper *helper)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1266,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1297,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1305,1
    - Dst: gmlHugeAddPendingToHelper
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1306,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1324,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1325,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1326,1
    - Dst: gmlHugeFileCheckPendingHrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1328,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1340,1
    - Dst: gmlHugeFileCheckPendingHrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1342,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - helper
    - psParent
    - psNode
    argTypes:
    - huge_helper*
    - CPLXMLNode*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1347
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1347
    functionName: gmlHugeFileCheckPendingHrefs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 1
    functionsReached:
    - CPLString::CPLString
    - gmlHugeFileCheckPendingHrefs
    - EQUAL
    - gmlHugeAddPendingToHelper
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void gmlHugeFileCheckPendingHrefs(huge_helper *helper,\n                                         const
      CPLXMLNode *psParent,\n                                         const CPLXMLNode
      *psNode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1356,1
    - Dst: struct huge_href*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1356,1
    - Dst: CPLString::CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - helper
    - pszGmlId
    - pszGmlText
    argTypes:
    - huge_helper*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1365
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1365
    functionName: gmlHugeSetHrefGmlText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - struct huge_href*::gmlId::c_str
    - CPLString::CPLString
    linkageType: ''
    returnType: void
    signature: "void gmlHugeSetHrefGmlText(huge_helper *helper, const char *pszGmlId,\n
      \                                 const char *pszGmlText)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct huge_parent::struct huge_parent
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1382,1
    - Dst: struct huge_child::struct huge_child
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - helper
    - psParent
    argTypes:
    - huge_helper*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1409
    functionName: gmlHugeFindParent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - struct huge_parent::struct huge_parent
    - struct huge_child::struct huge_child
    linkageType: ''
    returnType: struct huge_parent
    signature: "struct huge_parent *gmlHugeFindParent(huge_helper *helper,\n                                             CPLXMLNode
      *psParent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pParent
    - pItem
    argTypes:
    - struct huge_parent*
    - struct huge_href*
    constantsTouched: []
    func_position:
      end: 1426
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1426
    functionName: gmlHugeSetChild
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool gmlHugeSetChild(struct huge_parent *pParent,\n                            struct
      huge_href *pItem)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct huge_href*::gmlId::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1448,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1459,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1473,1
    - Dst: gmlHugeSetHrefGmlText
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1477,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1482,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1484,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1489,1
    - Dst: gmlHugeFindParent
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1504,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1505,1
    - Dst: gmlHugeSetChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1506,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1525,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1529,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1540,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1546,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1549,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1551,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1554,1
    - Dst: struct huge_child*::pItem::gmlText::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1554,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1556,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1557,1
    - Dst: gmlHugeFileRewiterReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1566,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 3
    argNames:
    - huge_helper *helper
    - CPLXMLNode *psNode
    - hDB
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 1569
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1569
    functionName: gmlHugeResolveEdges
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - sqlite3_column_type
    - const_cast<CPLXMLNode *>
    - sqlite3_finalize
    - CPLRemoveXMLChild
    - CPLDestroyXMLNode
    - CPLCreateXMLNode
    - CPLAddXMLChild
    - CPLParseXMLString
    - gmlHugeSetChild
    - sqlite3_errmsg
    - gmlHugeSetHrefGmlText
    - struct huge_href*::gmlId::c_str
    - gmlHugeFindParent
    - gmlHugeFileRewiterReset
    - struct huge_child*::pItem::gmlText::c_str
    linkageType: ''
    returnType: bool
    signature: "bool gmlHugeResolveEdges(CPL_UNUSED huge_helper *helper,\n                                CPL_UNUSED
      CPLXMLNode *psNode, sqlite3 *hDB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1578,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1581,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1595,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1597,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1609,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1610,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1615,1
    - Dst: GFSTemplateList::GFSTemplateList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1620,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1635,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1637,1
    - Dst: GFSTemplateList*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1642,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1643,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1645,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1646,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1647,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1650,1
    - Dst: CPLEscapeString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1656,1
    - Dst: huge_helper*::nodeSrs::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1656,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1657,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1661,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1664,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1669,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1673,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1674,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1679,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1681,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1682,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1687,1
    - Dst: GMLReader*::NextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1693,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1695,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1696,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1700,1
    - Dst: GMLFeatureClass*::GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1700,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1705,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1706,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1708,1
    - Dst: GMLFeatureClass*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1712,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1714,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1722,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1725,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1726,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1727,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1729,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1731,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1734,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1736,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1740,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1743,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1763,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1764,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1768,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1769,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1770,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1771,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1772,1
    - Dst: gmlHugeFileCheckPendingHrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1777,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1780,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1781,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1782,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1783,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1784,1
    - Dst: gmlHugeResolveEdges
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1789,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1790,1
    - Dst: gmlHugeFileHrefCheck
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1793,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1795,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1796,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1797,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1798,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1799,1
    - Dst: gmlHugeFileHrefReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1801,1
    - Dst: GFSTemplateList*::Update
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1808,1
    - Dst: GMLFeatureClass*::GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1808,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1810,1
    - Dst: GMLFeatureClass*::GetElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1810,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1816,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1817,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1819,1
    - Dst: gmlUpdateFeatureClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1821,1
    - Dst: GMLReader*::ReArrangeTemplateClasses
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1823,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 132
    argCount: 5
    argNames:
    - helper
    - pszOutputFilename
    - pReader
    - eAppSchemaType
    - m_nHasSequentialLayers
    argTypes:
    - huge_helper*
    - char*
    - GMLReader*
    - GMLAppSchemaType
    - int*
    constantsTouched: []
    func_position:
      end: 1827
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1827
    functionName: gmlHugeFileWriteResolved
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - GFSTemplateList::GFSTemplateList
    - sqlite3_column_double
    - sqlite3_finalize
    - CPLError
    - gmlHugeResolveEdges
    - CPLEscapeString
    - sqlite3_column_type
    - GMLFeatureClass*::GetElementName
    - CPLSerializeXMLTree
    - GMLFeatureClass*::GetProperty
    - CSLTokenizeString2
    - CPLStringList::size
    - VSIFPrintfL
    - huge_helper*::nodeSrs::c_str
    - gmlHugeFileCheckPendingHrefs
    - gmlHugeFileHrefReset
    - GMLReader*::ReArrangeTemplateClasses
    - VSIFOpenL
    - sqlite3_errmsg
    - gmlHugeFileHrefCheck
    - GMLFeature*::GetGeometryList
    - CPLFree
    - GMLFeature*::GetClass
    - const_cast<CPLXMLNode *>
    - GFSTemplateList*::Update
    - VSIFCloseL
    - GMLFeature*::GetProperty
    - gmlUpdateFeatureClasses
    - GMLReader*::NextFeature
    - strchr
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool gmlHugeFileWriteResolved(huge_helper *helper,\n                                     const
      char *pszOutputFilename,\n                                     GMLReader *pReader,\n
      \                                    GMLAppSchemaType eAppSchemaType,\n                                     int
      *m_nHasSequentialLayers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1846,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1850,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1863,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1864,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1865,1
    - Dst: huge_helper::huge_helper
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1883,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1885,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1893,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1895,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1903,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1906,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1917,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1923,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1925,1
    - Dst: GMLReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1929,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1931,1
    - Dst: gmlHugeFileSQLiteInit
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1936,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1938,1
    - Dst: GMLReader::NextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1944,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1946,1
    - Dst: gmlHugeFileCheckXrefs
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1953,1
    - Dst: gmlHugeFileSQLiteInsert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1955,1
    - Dst: gmlHugeFileReset
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1957,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1967,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1970,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1977,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1979,1
    - Dst: gmlHugeFileResolveEdges
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1984,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1986,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1990,1
    - Dst: GetAppSchemaType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1991,1
    - Dst: GMLReader::SetupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1994,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:1996,1
    - Dst: gmlHugeFileWriteResolved
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2001,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2005,1
    - Dst: gmlHugeFileCleanUp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2009,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2011,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 3
    argNames:
    - pszOutputFilename
    - bSqliteIsTempFile
    - iSqliteCacheMB
    argTypes:
    - char*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 2013
      start: 1837
    functionDepth: 4
    functionLinenumber: 1837
    functionLinenumberEnd: 2013
    functionName: GMLReader::ParseXMLHugeFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - huge_helper::huge_helper
    - GMLReader::SetupParser
    - GMLReader::NextFeature
    - sqlite3_close
    - gmlHugeFileSQLiteInsert
    - sqlite3_finalize
    - CPLError
    - VSIStatExL
    - gmlHugeFileResolveEdges
    - gmlHugeFileWriteResolved
    - gmlHugeFileCheckXrefs
    - gmlHugeFileReset
    - VSIUnlink
    - gmlHugeFileCleanUp
    - GetAppSchemaType
    - CPLAssert
    - snprintf
    - sqlite3_errmsg
    - GMLFeature*::GetGeometryList
    - CPLResetExtensionSafe
    - gmlHugeFileSQLiteInit
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::ParseXMLHugeFile(const char *pszOutputFilename,\n
      \                                const bool bSqliteIsTempFile,\n                                 const
      int iSqliteCacheMB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2027,1
    - Dst: GMLReader::ParseXMLHugeFile
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2032,1
    - Dst: GMLReader::CleanupParser
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2036,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2038,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2040,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pszFile
    - bSqliteIsTempFile
    - iSqliteCacheMB
    argTypes:
    - char*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 2043
      start: 2020
    functionDepth: 5
    functionLinenumber: 2020
    functionLinenumberEnd: 2043
    functionName: GMLReader::HugeFileResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - GMLReader::CleanupParser
    - CPLStrdup
    - VSIFCloseL
    - CPLError
    - CPLFree
    - GMLReader::ParseXMLHugeFile
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::HugeFileResolver(const char *pszFile, bool bSqliteIsTempFile,\n
      \                                int iSqliteCacheMB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszFile
    - bSqliteIsTempFile
    - iSqliteCacheMB
    argTypes:
    - CPL_UNUSED*
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2061
      start: 2052
    functionDepth: 1
    functionLinenumber: 2052
    functionLinenumberEnd: 2061
    functionName: GMLReader::HugeFileResolver
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::HugeFileResolver(CPL_UNUSED const char *pszFile,\n
      \                                CPL_UNUSED bool bSqliteIsTempFile,\n                                 CPL_UNUSED
      int iSqliteCacheMB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pszOutputFilename
    - bSqliteIsTempFile
    - iSqliteCacheMB
    argTypes:
    - CPL_UNUSED*
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 2071
      start: 2063
    functionDepth: 1
    functionLinenumber: 2063
    functionLinenumberEnd: 2071
    functionName: GMLReader::ParseXMLHugeFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/hugefileresolver.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool GMLReader::ParseXMLHugeFile(CPL_UNUSED const char *pszOutputFilename,\n
      \                                CPL_UNUSED const bool bSqliteIsTempFile,\n
      \                                CPL_UNUSED const int iSqliteCacheMB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: GMLReadState::Reset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void GMLReadState::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:47,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:48,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:48,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:52,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:53,1
    - Dst: assign
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:57,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:58,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:63,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pszElement
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: GMLReadState::PushPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - assign
    - push_back
    - append
    linkageType: ''
    returnType: void
    signature: void GMLReadState::PushPath(const char *pszElement, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:76,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:78,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:78,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: GMLReadState::PopPath
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlreadstate.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLAssert
    - resize
    linkageType: ''
    returnType: void
    signature: void GMLReadState::PopPath()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:29,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:28,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:32,1
    - Dst: GML_BuildOGRGeometryFromList_CreateCache
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:34,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:38,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:38,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:42,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:42,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:44,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:44,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:45,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pszName
    - bWriterIn
    - poDSIn
    argTypes:
    - char*
    - bool
    - OGRGMLDataSource*
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 9
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: OGRGMLLayer::OGRGMLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 2
    functionsReached:
    - STARTS_WITH_CI
    - GML_BuildOGRGeometryFromList_CreateCache
    - CPLTestBool
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - SetDescription
    - GetReader
    - CPLGetConfigOption
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRGMLLayer::OGRGMLLayer(const char *pszName, bool bWriterIn,\n
      \                        OGRGMLDataSource *poDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:56,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:59,1
    - Dst: GML_BuildOGRGeometryFromList_DestroyCache
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: OGRGMLLayer::~OGRGMLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - GML_BuildOGRGeometryFromList_DestroyCache
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRGMLLayer::~OGRGMLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:74,1
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:75,1
    - Dst: PeekStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:79,1
    - Dst: PeekStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:80,1
    - Dst: PeekStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:83,1
    - Dst: SetStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:84,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:88,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:89,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:90,1
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:90,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 98
    functionName: OGRGMLLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerCount
    - GetReadMode
    - CPLDebug
    - SetStoredGMLFeature
    - PeekStoredGMLFeature
    - GetReader
    linkageType: ''
    returnType: void
    signature: void OGRGMLLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: Increment
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig Increment(GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:120,1
    - Dst: GetLastReadLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:125,1
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:127,1
    - Dst: OGRGMLLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:128,1
    - Dst: SetLastReadLayer
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:129,1
    - Dst: PeekStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:138,1
    - Dst: SetStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:141,1
    - Dst: GetReader
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:145,1
    - Dst: GMLFeature*::GetClass
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:161,1
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:163,1
    - Dst: GetReadMode
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:164,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:166,1
    - Dst: PeekStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:166,1
    - Dst: SetStoredGMLFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:167,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:193,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:199,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:214,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:214,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:216,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:220,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:223,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:229,1
    - Dst: strncmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:239,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:240,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:241,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:245,1
    - Dst: Increment
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:253,1
    - Dst: GMLFeature*::GetGeometryList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:264,1
    - Dst: GMLFeature*::GetBoundedByGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:268,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:277,1
    - Dst: static_cast<OGRGeometry **>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:279,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:279,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:280,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:282,1
    - Dst: GMLFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:284,1
    - Dst: GML_BuildOGRGeometryFromList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:288,1
    - Dst: GetInvertAxisOrderIfLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:290,1
    - Dst: GetConsiderEPSGAsURN
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:291,1
    - Dst: GetSwapCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:292,1
    - Dst: GetSecondaryGeometryOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:293,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:300,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:302,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:309,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:314,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:322,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:324,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:330,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:336,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:343,1
    - Dst: GML_BuildOGRGeometryFromList
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:344,1
    - Dst: GetInvertAxisOrderIfLatLong
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:345,1
    - Dst: GetConsiderEPSGAsURN
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:346,1
    - Dst: GetSwapCoordinates
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:347,1
    - Dst: GetSecondaryGeometryOption
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:347,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:349,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:354,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:363,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:367,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:368,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:379,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:393,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:395,1
    - Dst: ExposeId
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:396,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:399,1
    - Dst: GMLFeature*::GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:411,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:413,1
    - Dst: GetProperty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:417,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:421,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:423,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:435,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:437,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:438,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:445,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:446,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:450,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:452,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:453,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:465,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:467,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:468,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:475,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:482,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:484,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:486,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:488,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:490,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:493,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:497,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:512,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:514,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:518,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:519,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:524,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:537,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:539,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:541,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:546,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:550,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:552,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:556,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:558,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:567,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 213
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 578
    functionName: OGRGMLLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - atoi
    - GetReadMode
    - GetGeomFieldDefn
    - strncmp
    - strncpy
    - strcmp
    - ExposeId
    - CPLError
    - GetProperty
    - GetGeomFieldCount
    - static_cast<GIntBig *>
    - OGRFeature*::SetGeomFieldDirectly
    - GetLastReadLayer
    - sscanf
    - Increment
    - CPLAtoGIntBig
    - GetGeomType
    - GML_BuildOGRGeometryFromList
    - CPLString::c_str
    - CPLPopErrorHandler
    - strlen
    - CPLMalloc
    - OGRFeature*::SetGeometryDirectly
    - CPLAtof
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    - CPLSPrintf
    - SetLastReadLayer
    - CPLAssert
    - PeekStoredGMLFeature
    - OGRGeometryFactory::forceTo
    - static_cast<OGRGeometry **>
    - static_cast<char *>
    - OGRGMLLayer::ResetReading
    - GMLFeature*::GetGeometryList
    - CPLCalloc
    - GMLFeature*::GetGeometryRef
    - CPLFree
    - OGRFeature::OGRFeature
    - GetSwapCoordinates
    - GMLFeature*::GetClass
    - GetSecondaryGeometryOption
    - GMLFeature*::GetProperty
    - GMLFeature*::GetBoundedByGeometry
    - SetStoredGMLFeature
    - GetConsiderEPSGAsURN
    - EQUAL
    - GetInvertAxisOrderIfLatLong
    - OGRFeature*::SetField
    - CPLPushErrorHandler
    - GetReader
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRGMLLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:591,1
    - Dst: OGRGMLLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:595,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:598,1
    - Dst: SetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 603
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 603
    functionName: OGRGMLLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer::GetFeatureCount
    - OGRGMLLayer::GetFeatureCount
    - SetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRGMLLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:613,1
    - Dst: GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:621,1
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 632
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 632
    functionName: OGRGMLLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - GetGeomType
    - OGRLayer::IGetExtent
    - GetExtents
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGMLLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:650,1
    - Dst: OGRGMLDataSource*::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:653,1
    - Dst: OGRGMLDataSource*::PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - poDS
    - fp
    - bWriteSpaceIndentation
    - pszPrefix
    - bRemoveAppPrefix
    - poFieldDefn
    - pszVal
    argTypes:
    - OGRGMLDataSource*
    - VSILFILE*
    - bool
    - char*
    - bool
    - OGRFieldDefn*
    - char*
    constantsTouched: []
    func_position:
      end: 657
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 657
    functionName: GMLWriteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGMLDataSource*::PrintLine
    - VSIFPrintfL
    linkageType: ''
    returnType: void
    signature: "void GMLWriteField(OGRGMLDataSource *poDS, VSILFILE *fp,\n                          bool
      bWriteSpaceIndentation, const char *pszPrefix,\n                          bool
      bRemoveAppPrefix, OGRFieldDefn *poFieldDefn,\n                          const
      char *pszVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputFP
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:667,1
    - Dst: HasWriteError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:673,1
    - Dst: OGRFeature*::FillUnsetWithDefault
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:676,1
    - Dst: OGRFeature*::Validate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:677,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:683,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:687,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:689,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:693,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:696,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:697,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:700,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:701,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:703,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:708,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:709,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:710,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:710,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:711,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:713,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:714,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:714,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:715,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:719,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:722,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:723,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:723,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:726,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:728,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:728,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:729,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:733,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:734,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:734,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:735,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:739,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:743,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:747,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:748,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:754,1
    - Dst: HasWriteGlobalSRS
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:755,1
    - Dst: GrowExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:756,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:758,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:759,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:760,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:760,1
    - Dst: OGRGeomFieldDefn*::GetCoordinatePrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:762,1
    - Dst: WriteFeatureBoundedBy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:764,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:781,1
    - Dst: OGRGeomCoordinatePrecision::ResolutionToPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:789,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:796,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:799,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:799,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:799,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:801,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:804,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:804,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:804,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:808,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:811,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:811,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:811,1
    - Dst: OGRMakeWktCoordinate
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:813,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:816,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:816,1
    - Dst: std::string::size
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:816,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:819,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:820,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:827,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:833,1
    - Dst: GetSRSNameFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:834,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:836,1
    - Dst: GetSRSNameFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:837,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:839,1
    - Dst: GetSRSNameFormat
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:840,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:842,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:846,1
    - Dst: IsGML32Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:848,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:850,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:851,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:852,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:853,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:854,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:855,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:857,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:858,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:859,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:860,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:866,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:867,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:872,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:873,1
    - Dst: OGR_GT_IsNonLinear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:878,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:878,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:880,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:881,1
    - Dst: OGR_GT_GetLinear
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:882,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:882,1
    - Dst: OGRGeometry*::exportToGML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:883,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:888,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:888,1
    - Dst: OGRGeometry*::exportToGML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:890,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:902,1
    - Dst: OGRGeometry*::exportToGML
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:907,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:910,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:914,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:916,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:917,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:918,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:920,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:921,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:922,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:926,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:929,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:934,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:938,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:940,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:945,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:948,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:950,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:953,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:955,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:962,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:964,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:974,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:980,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:989,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:991,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:999,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1000,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1006,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1015,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1017,1
    - Dst: CPLsnprintf
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1029,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1031,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1036,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1040,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1042,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1047,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1051,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1058,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1060,1
    - Dst: GMLWriteField
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1068,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1070,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1076,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1078,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1078,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1080,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1080,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1082,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1086,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1088,1
    - Dst: PrintLine
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1092,1
    - Dst: HasWriteError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1095,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 193
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1096
      start: 663
    functionDepth: 6
    functionLinenumber: 663
    functionLinenumberEnd: 1096
    functionName: OGRGMLLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - OGRGeometry*::getSpatialReference
    - OGR_GT_IsNonLinear
    - std::string::data
    - OGR_GT_GetLinear
    - OGRFeature*::GetFieldAsString
    - GetGeomFieldDefn
    - CSLAddString
    - OGRGeometry*::exportToGML
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - PrintLine
    - GetGeomFieldCount
    - OGRFeature*::IsFieldNull
    - OGRGeometry*::clone
    - OGRGeomCoordinatePrecision::ResolutionToPrecision
    - IsGML32Output
    - GrowExtents
    - OGRFeature*::GetFieldAsInteger
    - WriteFeatureBoundedBy
    - OGRGeomFieldDefn*::GetNameRef
    - OGRFeature*::GetRawFieldRef
    - GMLWriteField
    - OGRFieldDefn*::GetSubType
    - wkbFlatten
    - GetName
    - OGRGeometry*::getGeometryType
    - VSIFPrintfL
    - GetOutputFP
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - GetFieldCount
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - HasWriteError
    - OGRGeometryFactory::forceTo
    - OGRFeature*::GetFieldAsInteger64List
    - GetSRSNameFormat
    - CPLFree
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - CSLSetNameValue
    - OGRFeature*::IsFieldSet
    - std::string::size
    - CSLDestroy
    - CPLsnprintf
    - OGRGeomFieldDefn*::GetSpatialRef
    - OGRMakeWktCoordinate
    - OGRGeomFieldDefn*::GetCoordinatePrecision
    - OGRFeature*::FillUnsetWithDefault
    - memcpy
    - OGRFeature*::Validate
    - OGRFeature*::SetFID
    - HasWriteGlobalSRS
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGMLLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1105,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1108,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1111,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1114,1
    - Dst: GetExtents
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1127,1
    - Dst: OGRGMLLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1136,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1139,1
    - Dst: IsGML3Output
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1140,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1142,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1147
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1147
    functionName: OGRGMLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - IsGML3Output
    - GetExtents
    - OGRGMLLayer::GetFeatureCount
    linkageType: ''
    returnType: int
    signature: int OGRGMLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCleanXMLElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1164,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1166,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1166,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1171,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1174,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1178,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1179,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1182,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1185,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1190
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1190
    functionName: OGRGMLLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - CPLCleanXMLElementName
    - OGRFieldDefn*::GetNameRef
    - strcmp
    - OGRFieldDefn::SetName
    - AddFieldDefn
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRGMLLayer::CreateField(const OGRFieldDefn *poField, int bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1207,1
    - Dst: DeclareNewWriteSRS
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1208,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1211,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1212,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1213,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1214,1
    - Dst: CPLCleanXMLElementName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1217,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1219,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1219,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1223,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1224,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1227,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1231,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1232,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1235,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1238,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp:1240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 1243
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1243
    functionName: OGRGMLLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached:
    - DeclareNewWriteSRS
    - CPLCleanXMLElementName
    - CPLFree
    - OGRGeomFieldDefn::SetName
    - AddGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - OGRGeomFieldDefn::SetSpatialRef
    - strcmp
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - CPLError
    - auto::SetAxisMappingStrategy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRGMLLayer::CreateGeomField(const OGRGeomFieldDefn *poField,\n
      \                                   int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1252
    functionName: OGRGMLLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/ogrgmllayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRGMLLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: GMLRegistryNamespace::GMLRegistryNamespace
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLRegistryNamespace()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - osRegistryPathIn
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: GMLRegistry::GMLRegistry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/gml/gmlregistry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GMLRegistry(const CPLString &osRegistryPathIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: OGRMongoDBv3Dataset::OGRMongoDBv3Dataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:84,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OGRMongoDBv3Dataset::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OGRMongoDBv3Layer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:222,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:223,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:224,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:225,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:225,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:229,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:230,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - poDS
    - osDbName
    - osCollection
    argTypes:
    - OGRMongoDBv3Dataset*
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 232
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 232
    functionName: OGRMongoDBv3Layer::OGRMongoDBv3Layer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - push_back
    - std::vector::push_back
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::OGRMongoDBv3Layer(OGRMongoDBv3Dataset *poDS,\n
      \                                    const std::string &osDbName,\n                                     const
      std::string &osCollection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:240,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: OGRMongoDBv3Layer::~OGRMongoDBv3Layer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::SyncToDisk
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Layer::~OGRMongoDBv3Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:262,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:262,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:262,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:264,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:266,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:266,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:271,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:271,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:271,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:272,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:273,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:275,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:277,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:280,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:280,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:282,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:284,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:284,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:285,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:286,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:286,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:286,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:287,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:289,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:289,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:291,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:291,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:291,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:292,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:292,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:294,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:294,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:294,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:297,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:297,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:297,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:298,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:299,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:302,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:306,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:306,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:307,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:311,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:311,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:312,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:312,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:313,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:313,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:313,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:314,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:314,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:316,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:316,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:316,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:320,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:320,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:320,1
    - Dst: find_one_and_delete
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:321,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:321,1
    - Dst: insert_one
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:324,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:328,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:329,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 331
    functionName: OGRMongoDBv3Layer::WriteOGRMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::builder::basic::document::extract
    - GetGeomFieldDefn
    - bsoncxx::builder::basic::document::append
    - GetFieldDefn
    - CPLError
    - GetGeomFieldCount
    - find_one_and_delete
    - bsoncxx::builder::basic::array::extract
    - OGRFieldDefn*::GetSubType
    - OGR_GetFieldTypeName
    - bsoncxx::builder::basic::array::append
    - static_cast<int>
    - GetFieldCount
    - kvp
    - CPLAssert
    - OGRFieldDefn*::GetType
    - what
    - name
    - size
    - empty
    - insert_one
    - EQUAL
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Layer::WriteOGRMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:341,1
    - Dst: insert_many
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:343,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:343,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:344,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:345,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:350,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:351,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:352,1
    - Dst: OGRMongoDBv3Layer::WriteOGRMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: OGRMongoDBv3Layer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - end
    - empty
    - begin
    - OGRMongoDBv3Layer::WriteOGRMetadata
    - CPLError
    - insert_many
    - what
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:367,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: OGRMongoDBv3Layer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Layer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: OGRMongoDBv3Layer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRMongoDBv3Layer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::document::element::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:394,1
    - Dst: bsoncxx::document::element::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:410,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:411,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:418,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - elt
    - eSubType
    argTypes:
    - bsoncxx::document::element
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 441
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 441
    functionName: OGRMongoDBv3GetFieldTypeFromBSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - type
    - bsoncxx::document::element::type
    - auto::empty
    - bsoncxx::document::element::get_array
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType OGRMongoDBv3GetFieldTypeFromBSON(const bsoncxx::document::element
      &elt,\n                                 OGRFieldSubType &eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:449,1
    - Dst: bsoncxx::document::element::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:449,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:451,1
    - Dst: bsoncxx::document::element::get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:451,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:453,1
    - Dst: bsoncxx::document::element::get_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - elt
    argTypes:
    - bsoncxx::document::element
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: get_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 43
    functionsReached:
    - bsoncxx::document::element::get_utf8
    - CPLAssert
    - std::string
    - bsoncxx::document::element::get_string
    - bsoncxx::document::element::type
    linkageType: ''
    returnType: std::string
    signature: std::string get_string(const bsoncxx::document::element &elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:459,1
    - Dst: bsoncxx::array::element::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:459,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:461,1
    - Dst: bsoncxx::array::element::get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:461,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:463,1
    - Dst: bsoncxx::array::element::get_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - elt
    argTypes:
    - bsoncxx::array::element
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: get_string
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 44
    functionsReached:
    - bsoncxx::array::element::type
    - CPLAssert
    - bsoncxx::array::element::get_utf8
    - std::string
    - bsoncxx::array::element::get_string
    linkageType: ''
    returnType: std::string
    signature: std::string get_string(const bsoncxx::array::element &elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::document::element::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:476,1
    - Dst: bsoncxx::document::element::get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:485,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:487,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:490,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:490,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:497,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:498,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:499,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:500,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:501,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:502,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:504,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:504,1
    - Dst: bsoncxx::document::element::key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:504,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:505,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:506,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:506,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:507,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:509,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:510,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:515,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:516,1
    - Dst: OGRGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:517,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:523,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:525,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:525,1
    - Dst: bsoncxx::document::element::key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:525,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:533,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:533,1
    - Dst: OGRMongoDBv3Layer::AddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:536,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:544,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:546,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:546,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:550,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:551,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:552,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:553,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:554,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:555,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:557,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:557,1
    - Dst: bsoncxx::document::element::key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:557,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:558,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:559,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:560,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:564,1
    - Dst: OGRMongoDBv3GetFieldTypeFromBSON
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:568,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:574,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:576,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:577,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:579,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:579,1
    - Dst: bsoncxx::document::element::key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:579,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:580,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:584,1
    - Dst: OGRUpdateFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:585,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 5
    argNames:
    - pszAttrName
    - elt
    - chNestedAttributeSeparator
    - aosPaths
    - oMapIndices
    argTypes:
    - char*
    - bsoncxx::document::element
    - char
    - std::vector<CPLString>
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 587
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 587
    functionName: OGRMongoDBv3Layer::AddOrUpdateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - GetGeomFieldDefn
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - GetFieldDefn
    - OGRFromOGCGeomType
    - get_string
    - bsoncxx::document::element::key
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRMongoDBv3Layer::AddOrUpdateField
    - auto::type
    - AddFieldDefn
    - GetGeomFieldIndex
    - bsoncxx::document::element::type
    - key
    - bsoncxx::document::element::get_document
    - OGRGeomFieldDefn*::GetType
    - OGRMongoDBv3GetFieldTypeFromBSON
    - OGRFieldDefn::SetSubType
    - std::map<CPLString, CPLString>::find
    - OGRGeomFieldDefn*::SetType
    - OGRSpatialReference::OGRSpatialReference
    - AddGeomFieldDefn
    - OGRFieldDefn::SetWidth
    - OGRSpatialReference*::SetFromUserInput
    - push_back
    - std::string
    - std::vector<CPLString>::push_back
    - OGRUpdateFieldType
    - std::map<CPLString, CPLString>::end
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::AddOrUpdateField(\n    const char *pszAttrName,
      const bsoncxx::document::element &elt,\n    char chNestedAttributeSeparator,
      std::vector<CPLString> &aosPaths,\n    std::map<CPLString, CPLString> &oMapIndices)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: list_indexes
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:598,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:604,1
    - Dst: auto::get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:606,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:609,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:614,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:628,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:628,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 631
    functionName: OGRMongoDBv3Layer::CollectGeomIndices
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - auto::get_document
    - CPLDebug
    - auto::type
    - type
    - list_indexes
    - what
    - key
    linkageType: ''
    returnType: std::map<CPLString, CPLString>
    signature: std::map<CPLString, CPLString> OGRMongoDBv3Layer::CollectGeomIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:643,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:643,1
    - Dst: name
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:643,1
    - Dst: find_one
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:644,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:644,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:647,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:649,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:650,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:653,1
    - Dst: auto::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:655,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:658,1
    - Dst: get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:660,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:661,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:666,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:667,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:668,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:670,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:675,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:675,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:676,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:677,1
    - Dst: static_cast<OGRFieldType>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:679,1
    - Dst: auto::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:685,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:689,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:694,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:694,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:699,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:702,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:703,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:706,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:709,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:711,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:718,1
    - Dst: auto::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:720,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:723,1
    - Dst: get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:725,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:726,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:730,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:731,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:732,1
    - Dst: auto::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:736,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:740,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:745,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:745,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:751,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:751,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:753,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:755,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:756,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:758,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:760,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:761,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:763,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:765,1
    - Dst: std::map<CPLString, CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:766,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:766,1
    - Dst: std::map<CPLString, CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:767,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:768,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:769,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:771,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:777,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:789,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:790,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 66
    argCount: 1
    argNames:
    - oMapIndices
    argTypes:
    - std::map<CPLString, CPLString>
    constantsTouched: []
    func_position:
      end: 793
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 793
    functionName: OGRMongoDBv3Layer::ReadOGRMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::builder::basic::document::extract
    - OGRGeomFieldDefn::SetSpatialRef
    - OGRSpatialReference*::Release
    - bsoncxx::builder::basic::document::append
    - std::vector::push_back
    - type
    - CPLError
    - OGRFromOGCGeomType
    - get_string
    - OGRSpatialReference*::SetAxisMappingStrategy
    - auto::type
    - find_one
    - auto::get_array
    - AddFieldDefn
    - OGR_GetFieldTypeName
    - OGRFieldDefn::SetSubType
    - kvp
    - OGRGeomFieldDefn::GetNameRef
    - std::map<CPLString, CPLString>::find
    - what
    - name
    - auto::view
    - OGRSpatialReference::OGRSpatialReference
    - AddGeomFieldDefn
    - static_cast<OGRFieldType>
    - get_document
    - EQUAL
    - OGRSpatialReference*::SetFromUserInput
    - push_back
    - std::map<CPLString, CPLString>::end
    linkageType: ''
    returnType: bool
    signature: "bool OGRMongoDBv3Layer::ReadOGRMetadata(\n    std::map<CPLString,
      CPLString> &oMapIndices)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::ReadOGRMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:809,1
    - Dst: mongocxx::options::find::limit
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:820,1
    - Dst: mongocxx::options::find::batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:824,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:827,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:835,1
    - Dst: OGRMongoDBv3Layer::AddOrUpdateField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:842,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:842,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:850,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:851,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:858,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:860,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 864
    functionName: OGRMongoDBv3Layer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - OGRMongoDBv3Layer::ReadOGRMetadata
    - mongocxx::options::find::batch_size
    - mongocxx::options::find::limit
    - OGRMongoDBv3Layer::AddOrUpdateField
    - find
    - AddFieldDefn
    - push_back
    - CPLError
    - std::string::c_str
    - what
    - key
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Layer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:873,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 875
    functionName: OGRMongoDBv3Layer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    linkageType: ''
    returnType: char
    signature: char *OGRMongoDBv3Layer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:884,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:887,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:887,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:887,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:887,1
    - Dst: view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:889,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:892,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:892,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:892,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:892,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 895
    functionName: OGRMongoDBv3Layer::BuildQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - get_value
    - bsoncxx::builder::basic::document::extract
    - kvp
    - bsoncxx::builder::basic::document::append
    - view
    - key
    linkageType: ''
    returnType: bsoncxx::document::value
    signature: bsoncxx::document::value OGRMongoDBv3Layer::BuildQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:904,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:906,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:910,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:911,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:915,1
    - Dst: count_documents
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:915,1
    - Dst: OGRMongoDBv3Layer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:915,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:919,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:920,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 923
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 923
    functionName: OGRMongoDBv3Layer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - OGRMongoDBv3Layer::SyncToDisk
    - OGRLayer::GetFeatureCount
    - OGRMongoDBv3Layer::TestCapability
    - CPLError
    - OGRMongoDBv3Layer::BuildQuery
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    - what
    - count_documents
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRMongoDBv3Layer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::types::value::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:935,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:939,1
    - Dst: bsoncxx::types::value::get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:939,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:941,1
    - Dst: bsoncxx::types::value::get_utf8
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:941,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:945,1
    - Dst: bsoncxx::types::value::get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:945,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:947,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:948,1
    - Dst: bsoncxx::types::value::get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:948,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:950,1
    - Dst: bsoncxx::types::value::get_double
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:950,1
    - Dst: bsoncxx::types::value::get_oid
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:952,1
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:952,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:954,1
    - Dst: bsoncxx::types::value::get_bool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:954,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:957,1
    - Dst: bsoncxx::types::value::get_date
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:957,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:966,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:967,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:973,1
    - Dst: bsoncxx::to_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:973,1
    - Dst: bsoncxx::types::value::get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:973,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:980,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:980,1
    - Dst: bsoncxx::to_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:981,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:981,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:982,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:982,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:983,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:983,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:983,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:984,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:984,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:985,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:985,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - val
    argTypes:
    - bsoncxx::types::value
    constantsTouched: []
    func_position:
      end: 988
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 988
    functionName: Stringify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::to_json
    - bsoncxx::types::value::type
    - bsoncxx::types::value::get_bool
    - bsoncxx::builder::basic::document::extract
    - CPLString
    - bsoncxx::builder::basic::document::append
    - bsoncxx::types::value::get_string
    - static_cast<GIntBig>
    - CPLString::substr
    - bsoncxx::types::value::get_utf8
    - bsoncxx::types::value::get_oid
    - CPLString::size
    - CPLUnixTimeToYMDHMS
    - bsoncxx::types::value::get_double
    - strlen
    - bsoncxx::types::value::get_document
    - CPLSPrintf
    - to_string
    - kvp
    - CPLAssert
    - CPLString::find
    - bsoncxx::types::value::get_int32
    - std::string
    - bsoncxx::types::value::get_int64
    - bsoncxx::types::value::get_date
    linkageType: ''
    returnType: CPLString
    signature: CPLString Stringify(const bsoncxx::types::value &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::document::element::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1001,1
    - Dst: OGRFeature*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1004,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1006,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1007,1
    - Dst: OGR_G_CreateGeometryFromJson
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1008,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1008,1
    - Dst: bsoncxx::document::element::get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1008,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1009,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1012,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1013,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1016,1
    - Dst: OGRFeature*::GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1021,1
    - Dst: bsoncxx::document::element::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1023,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1030,1
    - Dst: auto::type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1031,1
    - Dst: auto::get_double
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1034,1
    - Dst: auto::get_double
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1034,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1034,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1035,1
    - Dst: OGRFeature*::GetDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1036,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1039,1
    - Dst: bsoncxx::document::element::get_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1047,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1052,1
    - Dst: OGRMongoDBV3ReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1054,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1064,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1065,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1066,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1068,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1070,1
    - Dst: bsoncxx::document::element::get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1070,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1072,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1073,1
    - Dst: bsoncxx::document::element::get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1073,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1075,1
    - Dst: bsoncxx::document::element::get_double
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1075,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1077,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1077,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1079,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1079,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1081,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1083,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1085,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1085,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1087,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1087,1
    - Dst: bsoncxx::document::element::get_array
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1090,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1100,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1100,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1100,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1103,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1104,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1113,1
    - Dst: get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1115,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1118,1
    - Dst: get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1118,1
    - Dst: get_double
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1120,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1122,1
    - Dst: cpl::infinity
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1124,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1126,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1126,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1126,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1129,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1130,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1138,1
    - Dst: get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1140,1
    - Dst: get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1143,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1149,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1159,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1166,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1166,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1166,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1169,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1170,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1175,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1175,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1179,1
    - Dst: get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1181,1
    - Dst: get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1183,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1187,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1188,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1189,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1190,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1191,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1193,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1196,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1198,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1200,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1200,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1200,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1203,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1204,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1209,1
    - Dst: get_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1209,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1212,1
    - Dst: bsoncxx::document::element::get_oid
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1212,1
    - Dst: to_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1212,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1214,1
    - Dst: bsoncxx::document::element::get_bool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1214,1
    - Dst: bsoncxx::document::element::get_binary
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1217,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1220,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1223,1
    - Dst: Stringify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1223,1
    - Dst: bsoncxx::document::element::get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1223,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 138
    argCount: 5
    argNames:
    - poFeature
    - pszAttrName
    - elt
    - bFlattenNestedAttributes
    - chNestedAttributeSeparator
    argTypes:
    - OGRFeature*
    - char*
    - bsoncxx::document::element
    - bool
    - char
    constantsTouched: []
    func_position:
      end: 1224
      start: 994
    functionDepth: 4
    functionLinenumber: 994
    functionLinenumberEnd: 1224
    functionName: OGRMongoDBV3ReaderSetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - OGRFeature*::GetGeomFieldIndex
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - cpl::infinity
    - get_double
    - get_value
    - atoi
    - OGR_G_CreateGeometryFromJson
    - bsoncxx::document::element::get_value
    - type
    - bsoncxx::document::element::get_int64
    - static_cast<GIntBig *>
    - get_string
    - OGRFeature*::SetGeomFieldDirectly
    - static_cast<GIntBig>
    - OGRFeature*::GetDefnRef
    - simple_max
    - bsoncxx::document::element::get_array
    - CPLStrdup
    - bsoncxx::document::element::get_binary
    - CPLAtoGIntBig
    - auto::type
    - OGRPoint::OGRPoint
    - OGRMongoDBV3ReaderSetField
    - CPLPopErrorHandler
    - auto::get_double
    - CPLMalloc
    - key
    - simple_min
    - CPLAtof
    - static_cast<int>
    - FromHandle
    - bsoncxx::document::element::get_document
    - get_int32
    - Stringify
    - to_string
    - CPLAssert
    - OGRFieldDefn*::GetType
    - get_int64
    - bsoncxx::document::element::get_bool
    - CPLFree
    - OGRFeature*::GetFieldDefnRef
    - static_cast<double>
    - bsoncxx::document::element::get_int32
    - CSLDestroy
    - bsoncxx::document::element::get_oid
    - OGRFeature*::SetField
    - CPLPushErrorHandler
    - bsoncxx::document::element::get_double
    - bsoncxx::document::element::type
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBV3ReaderSetField(OGRFeature *poFeature,\n                                       const
      char *pszAttrName,\n                                       const bsoncxx::document::element
      &elt,\n                                       bool bFlattenNestedAttributes,\n
      \                                      char chNestedAttributeSeparator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1233,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1236,1
    - Dst: m_osFID::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1237,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1237,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1237,1
    - Dst: type
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1239,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1242,1
    - Dst: get_int32
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1242,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1246,1
    - Dst: get_int64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1246,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1251,1
    - Dst: simple_min
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1252,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1253,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1254,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1256,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1257,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1259,1
    - Dst: OGRMongoDBV3ReaderSetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1266,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1266,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1266,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1273,1
    - Dst: bsoncxx::to_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - doc
    argTypes:
    - bsoncxx::document::view
    constantsTouched: []
    func_position:
      end: 1277
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1277
    functionName: OGRMongoDBv3Layer::Translate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - simple_max
    - static_cast<GIntBig>
    - simple_min
    - auto::SetFID
    - bsoncxx::to_json
    - get_int32
    - auto::SetField
    - m_osFID::empty
    - auto::get
    - EQUAL
    - get_int64
    - OGRMongoDBV3ReaderSetField
    - type
    - std::string::c_str
    - key
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: std::unique_ptr<OGRFeature>
    signature: std::unique_ptr<OGRFeature> OGRMongoDBv3Layer::Translate(const bsoncxx::document::view
      &doc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1286,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1287,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1288,1
    - Dst: mongocxx::options::find::batch_size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1297,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1299,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1300,1
    - Dst: OGRMongoDBv3Layer::BuildQuery
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1300,1
    - Dst: mongocxx::cursor::cursor
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1300,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1301,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1302,1
    - Dst: mongocxx::cursor::iterator::iterator
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1302,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1307,1
    - Dst: OGRMongoDBv3Layer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1309,1
    - Dst: auto::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1310,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1311,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1316,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1316,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1318,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1318,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1326,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1327,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1283
    functionDepth: 6
    functionLinenumber: 1283
    functionLinenumberEnd: 1330
    functionName: OGRMongoDBv3Layer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - mongocxx::options::find::batch_size
    - auto::get
    - CPLError
    - OGRMongoDBv3Layer::BuildQuery
    - OGRMongoDBv3Layer::SyncToDisk
    - end
    - find
    - mongocxx::cursor::cursor
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    - mongocxx::cursor::iterator::iterator
    - auto::GetFID
    - Evaluate
    - FilterGeometry
    - begin
    - auto::GetGeometryRef
    - what
    - empty
    - auto::SetFID
    - auto::release
    - reset
    - OGRMongoDBv3Layer::Translate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMongoDBv3Layer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1339,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1340,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1341,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1343,1
    - Dst: bsoncxx::builder::basic::make_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1347,1
    - Dst: bsoncxx::builder::basic::make_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1348,1
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1349,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1358,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1358,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1358,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1358,1
    - Dst: find_one
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1359,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1359,1
    - Dst: OGRMongoDBv3Layer::Translate
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1363,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1363,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1364,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1365,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1369,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1373
      start: 1336
    functionDepth: 6
    functionLinenumber: 1336
    functionLinenumberEnd: 1373
    functionName: OGRMongoDBv3Layer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::SyncToDisk
    - OGRLayer::GetFeature
    - empty
    - auto::SetFID
    - auto::release
    - CPLError
    - bsoncxx::builder::basic::document::extract
    - bsoncxx::builder::basic::make_document
    - kvp
    - find_one
    - bsoncxx::builder::basic::document::append
    - std::string
    - OGRMongoDBv3Layer::Translate
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    - what
    - static_cast<int64_t>
    - auto::view
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMongoDBv3Layer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1381,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1383,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1389,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1390,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1391,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1392,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1398,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1398,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1398,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1398,1
    - Dst: find_one_and_delete
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1399,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1399,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1409,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1413
      start: 1379
    functionDepth: 4
    functionLinenumber: 1379
    functionLinenumberEnd: 1413
    functionName: OGRMongoDBv3Layer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::SyncToDisk
    - empty
    - GetAccess
    - bsoncxx::builder::basic::document::extract
    - find_one_and_delete
    - kvp
    - bsoncxx::builder::basic::document::append
    - std::string
    - CPLError
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    - what
    - static_cast<int64_t>
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1422,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1424,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1430,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1432,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1432,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1434,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1442,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1449,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1450,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1453,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - poFieldIn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1459
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1459
    functionName: OGRMongoDBv3Layer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - GetAccess
    - CSLDestroy
    - EQUAL
    - AddFieldDefn
    - push_back
    - CPLError
    - GetFieldIndex
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::CreateField(const OGRFieldDefn *poFieldIn,
      int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1469,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1471,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1476,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1476,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1478,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1481,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1486,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1486,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1487,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1489,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1497,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1498,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1501,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1501,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1502,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1503,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1506,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1508,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1509,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1510,1
    - Dst: OGRSpatialReference::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1511,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1511,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1513,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1513,1
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1514,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1515,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1517,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1523,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1523,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1532,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1532,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1535,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1539,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1539,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1539,1
    - Dst: OGRGeomFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1539,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1540,1
    - Dst: create_index
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1541,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1541,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1543,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1547,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1548,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - poFieldIn
    argTypes:
    - OGRGeomFieldDefn*
    constantsTouched: []
    func_position:
      end: 1555
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1555
    functionName: OGRMongoDBv3Layer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::builder::basic::document::extract
    - OGRSpatialReference::SetAxisMappingStrategy
    - bsoncxx::builder::basic::document::append
    - std::vector::push_back
    - CPLError
    - CPLGetConfigOption
    - OGRGeomFieldDefn*::GetNameRef
    - OGRSpatialReference::IsSame
    - std::move
    - GetGeomFieldIndex
    - std::unique_ptr::reset
    - wkbFlatten
    - OGRSpatialReference::SetFromUserInput
    - GetAccess
    - OGRGeomFieldDefn*::GetType
    - kvp
    - OGRGeomFieldDefn::GetNameRef
    - OGRCreateCoordinateTransformation
    - what
    - std::unique_ptr::get
    - OGRGeomFieldDefn::SetName
    - OGRSpatialReference::OGRSpatialReference
    - back
    - AddGeomFieldDefn
    - std::string
    - CSLDestroy
    - create_index
    - EQUAL
    - push_back
    - OGRGeomFieldDefn::GetSpatialRef
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMongoDBv3Layer::CreateGeomField(const OGRGeomFieldDefn *poFieldIn,\n
      \                                         int)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1565,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1567,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1569,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1569,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1573,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1574,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1574,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1575,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1575,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1577,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1577,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1577,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1580,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1580,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1580,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1581,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1583,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1583,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1583,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1585,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1585,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1585,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1591,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1592,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1592,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1592,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1600,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1601,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1601,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1601,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1607,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1610,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1610,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1611,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1611,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1611,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1620,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1621,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1621,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1621,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1626,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1631,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1631,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1638,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1645,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1646,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1647,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1647,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1648,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1648,1
    - Dst: bsoncxx::types::b_date
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1649,1
    - Dst: static_cast<std::chrono::milliseconds>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1650,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - b
    - poFeature
    - iField
    - pszJSonField
    argTypes:
    - bsoncxx::builder::basic::document
    - OGRFeature*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1652
      start: 1561
    functionDepth: 3
    functionLinenumber: 1561
    functionLinenumberEnd: 1652
    functionName: OGRMongoDBv3Layer::SerializeField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - bsoncxx::builder::basic::document::append
    - GetFieldDefn
    - OGRFeature*::IsFieldNull
    - CPL_TO_BOOL
    - static_cast<GIntBig>
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - bsoncxx::builder::basic::array::extract
    - fmod
    - bsoncxx::types::b_date
    - bsoncxx::builder::basic::array::append
    - static_cast<int>
    - OGRFeature*::GetFieldAsBinary
    - kvp
    - OGRFeature*::GetFieldAsInteger64List
    - static_cast<int64_t>
    - CPLYMDHMSToUnixTime
    - static_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::SerializeField(bsoncxx::builder::basic::document
      &b,\n                                       OGRFeature *poFeature, int iField,\n
      \                                      const char *pszJSonField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1664,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1664,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1667,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1668,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1668,1
    - Dst: bsoncxx::builder::basic::array::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1669,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1669,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1670,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1670,1
    - Dst: bsoncxx::builder::basic::array::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1670,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1679,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1679,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - b
    - poGeom
    - iField
    - pszJSonField
    argTypes:
    - bsoncxx::builder::basic::document
    - OGRGeometry*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1683
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1683
    functionName: OGRMongoDBv3Layer::SerializeGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::builder::basic::array::append
    - OGRPoint*::getX
    - OGRPoint*::getY
    - bsoncxx::builder::basic::array::extract
    - kvp
    - bsoncxx::builder::basic::document::append
    - OGRGeometry*::toPoint
    - wkbFlatten
    - CPLFree
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::SerializeGeometry(bsoncxx::builder::basic::document
      &b,\n                                          OGRGeometry *poGeom, int iField,\n
      \                                         const char *pszJSonField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<CPLString, IntOrMap *>::begin
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1693,1
    - Dst: std::map<CPLString, IntOrMap *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1694,1
    - Dst: OGRMongoDBv3Layer::SerializeRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1700,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1701,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1701,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1701,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1701,1
    - Dst: OGRMongoDBv3Layer::SerializeField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1709,1
    - Dst: std::map<CPLString, IntOrMap *>::iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1709,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1714,1
    - Dst: OGRMongoDBv3Layer::SerializeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1715,1
    - Dst: std::map<CPLString, IntOrMap *>::iterator::first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - b
    - poFeature
    - aoMap
    argTypes:
    - bsoncxx::builder::basic::document
    - OGRFeature*
    - std::map<CPLString, IntOrMap *>
    constantsTouched: []
    func_position:
      end: 1720
      start: 1689
    functionDepth: 4
    functionLinenumber: 1689
    functionLinenumberEnd: 1720
    functionName: OGRMongoDBv3Layer::SerializeRecursive
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - std::map<CPLString, IntOrMap *>::iterator::first::c_str
    - std::map<CPLString, IntOrMap *>::begin
    - bsoncxx::builder::basic::document::extract
    - OGRFeature*::GetGeomFieldRef
    - std::map<CPLString, IntOrMap *>::end
    - kvp
    - OGRMongoDBv3Layer::SerializeField
    - bsoncxx::builder::basic::document::append
    - std::string
    - OGRMongoDBv3Layer::SerializeRecursive
    - OGRMongoDBv3Layer::SerializeGeometry
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::SerializeRecursive(\n    bsoncxx::builder::basic::document
      &b, OGRFeature *poFeature,\n    std::map<CPLString, IntOrMap *> &aoMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1732,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1732,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1734,1
    - Dst: std::map<std::vector<CPLString>, IntOrMap *>::find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1735,1
    - Dst: std::map<std::vector<CPLString>, IntOrMap *>::end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1735,1
    - Dst: IntOrMap::IntOrMap
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1737,1
    - Dst: std::map<CPLString, IntOrMap *>::map<CPLString, IntOrMap *>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1739,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1750,1
    - Dst: IntOrMap::IntOrMap
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1752,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1758,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1758,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - rootMap
    - aoMap
    - aosFieldPathFull
    - nField
    argTypes:
    - IntOrMap*
    - std::map<std::vector<CPLString>, IntOrMap *>
    - std::vector<CPLString>
    - int
    constantsTouched: []
    func_position:
      end: 1760
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1760
    functionName: OGRMongoDBv3Layer::InsertInMap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - end
    - static_cast<int>
    - find
    - IntOrMap::IntOrMap
    - CPLAssert
    - std::map<CPLString, IntOrMap *>::map<CPLString, IntOrMap *>
    - std::map<std::vector<CPLString>, IntOrMap *>::find
    - std::vector::push_back
    - std::map<std::vector<CPLString>, IntOrMap *>::end
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3Layer::InsertInMap(\n    IntOrMap *rootMap, std::map<std::vector<CPLString>,
      IntOrMap *> &aoMap,\n    const std::vector<CPLString> &aosFieldPathFull, int
      nField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - nVal
    - nCount
    - panList
    argTypes:
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1774
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1774
    functionName: IsInList
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsInList(int nVal, int nCount, const int *panList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1789,1
    - Dst: IsInList
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1791,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1793,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1796,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1800,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1800,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1801,1
    - Dst: bsoncxx::oid::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1801,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1805,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1805,1
    - Dst: key
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1805,1
    - Dst: get_value
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1805,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1807,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1810,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1810,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1812,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1812,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1812,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1813,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1813,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1816,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1816,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1816,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1817,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1819,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1822,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1822,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1823,1
    - Dst: bsoncxx::oid::to_string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1823,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1826,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1826,1
    - Dst: OGRGeometry::Centroid
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1826,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1826,1
    - Dst: IntOrMap::IntOrMap
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1828,1
    - Dst: std::map<CPLString, IntOrMap *>::map<CPLString, IntOrMap *>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1830,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1844,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1847,1
    - Dst: OGRMongoDBv3Layer::InsertInMap
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1849,1
    - Dst: OGRMongoDBv3Layer::SerializeField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1855,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1860,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1860,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1860,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1861,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1862,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1862,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1862,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1863,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1871,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1875,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1875,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1877,1
    - Dst: OGRMongoDBv3Layer::InsertInMap
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1879,1
    - Dst: OGRMongoDBv3Layer::SerializeGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1885,1
    - Dst: OGRMongoDBv3Layer::SerializeRecursive
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1889,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1893,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 50
    argCount: 6
    argNames:
    - poFeature
    - bUpdate
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    argTypes:
    - OGRFeature*
    - bool
    - int
    - int*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1894
      start: 1780
    functionDepth: 5
    functionLinenumber: 1780
    functionLinenumberEnd: 1894
    functionName: OGRMongoDBv3Layer::BuildBSONObjFromFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry::Centroid
    - get_value
    - bsoncxx::builder::basic::document::extract
    - OGRFeature*::GetFieldAsString
    - OGRMongoDBv3Layer::SerializeField
    - bsoncxx::builder::basic::document::append
    - GetGeomFieldCount
    - bsoncxx::oid::to_string
    - OGRGeometry*::transform
    - key
    - static_cast<int>
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - get
    - GetFieldCount
    - IsInList
    - OGRMongoDBv3Layer::InsertInMap
    - kvp
    - CPLAssert
    - std::map<CPLString, IntOrMap *>::map<CPLString, IntOrMap *>
    - OGRMongoDBv3Layer::SerializeRecursive
    - static_cast<int64_t>
    - auto::view
    - size
    - empty
    - OGRFeature*::IsFieldSet
    - IntOrMap::IntOrMap
    - OGRFeature*::SetField
    - std::string
    - OGRMongoDBv3Layer::SerializeGeometry
    linkageType: ''
    returnType: bsoncxx::document::value
    signature: "bsoncxx::document::value OGRMongoDBv3Layer::BuildBSONObjFromFeature(\n
      \   OGRFeature *poFeature, bool bUpdate, int nUpdatedFieldsCount,\n    const
      int *panUpdatedFieldsIdx, int nUpdatedGeomFieldsCount,\n    const int *panUpdatedGeomFieldsIdx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1902,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1904,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1910,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1914,1
    - Dst: OGRMongoDBv3Layer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1917,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1918,1
    - Dst: OGRMongoDBv3Layer::BuildBSONObjFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1921,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1927,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1928,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1929,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1929,1
    - Dst: insert_one
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1935,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1935,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1942,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1943,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1946
      start: 1900
    functionDepth: 6
    functionLinenumber: 1900
    functionLinenumberEnd: 1946
    functionName: OGRMongoDBv3Layer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRMongoDBv3Layer::SyncToDisk
    - GetAccess
    - OGRMongoDBv3Layer::BuildBSONObjFromFeature
    - OGRFeature*::GetFID
    - insert_one
    - OGRMongoDBv3Layer::GetFeatureCount
    - std::move
    - CPLError
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    - what
    - emplace_back
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1954,1
    - Dst: OGRMongoDBv3Layer::BuildBSONObjFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1963,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1964,1
    - Dst: find_one_and_replace
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1967,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1967,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1967,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1972,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1976
      start: 1952
    functionDepth: 6
    functionLinenumber: 1952
    functionLinenumberEnd: 1976
    functionName: OGRMongoDBv3Layer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::BuildBSONObjFromFeature
    - OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
    - std::move
    - CPLError
    - what
    - find_one_and_replace
    - auto::view
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1984,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1986,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1992,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1993,1
    - Dst: OGRMongoDBv3Layer::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1994,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1996,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:1998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2002
      start: 1982
    functionDepth: 4
    functionLinenumber: 1982
    functionLinenumberEnd: 2002
    functionName: OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - OGRMongoDBv3Layer::SyncToDisk
    - OGRFeature*::IsFieldSetAndNotNull
    - empty
    - GetAccess
    - CPLError
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::PrepareForUpdateOrUpsert(const OGRFeature
      *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2013,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2013,1
    - Dst: get_oid
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2013,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2014,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2015,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2015,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2015,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2016,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2016,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - view
    - poFeature
    argTypes:
    - bsoncxx::document::view
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2019
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2019
    functionName: OGRMongoDBv3Layer::BuildIDMatchFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - empty
    - OGRFeature*::GetFID
    - get_oid
    - bsoncxx::builder::basic::document::extract
    - kvp
    - bsoncxx::builder::basic::document::append
    - std::string
    - static_cast<int64_t>
    linkageType: ''
    returnType: bsoncxx::document::value
    signature: "bsoncxx::document::value OGRMongoDBv3Layer::BuildIDMatchFilter(bsoncxx::document::view
      view,\n                                      const OGRFeature *poFeature) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2027,1
    - Dst: OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2030,1
    - Dst: OGRMongoDBv3Layer::BuildBSONObjFromFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2039,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2040,1
    - Dst: find_one_and_update
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2042,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2043,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2043,1
    - Dst: mongocxx::options::find_one_and_update
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2044,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2049,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2053
      start: 2025
    functionDepth: 6
    functionLinenumber: 2025
    functionLinenumberEnd: 2053
    functionName: OGRMongoDBv3Layer::IUpsertFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::BuildBSONObjFromFeature
    - OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
    - OGRMongoDBv3Layer::TestCapability
    - find_one_and_update
    - std::move
    - CPLError
    - what
    - mongocxx::options::find_one_and_update
    - auto::view
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::IUpsertFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Layer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2066,1
    - Dst: OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2069,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2080,1
    - Dst: find_one_and_update
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2083,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2083,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2083,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2088,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 2092
      start: 2059
    functionDepth: 5
    functionLinenumber: 2059
    functionLinenumberEnd: 2092
    functionName: OGRMongoDBv3Layer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::PrepareForUpdateOrUpsert
    - OGRMongoDBv3Layer::TestCapability
    - find_one_and_update
    - std::move
    - CPLError
    - what
    - auto::view
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMongoDBv3Layer::IUpdateFeature(OGRFeature *poFeature,\n
      \                                        int nUpdatedFieldsCount,\n                                         const
      int *panUpdatedFieldsIdx,\n                                         int nUpdatedGeomFieldsCount,\n
      \                                        const int *panUpdatedGeomFieldsIdx,\n
      \                                        bool /* bUpdateStyleString */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2100,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2104,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2106,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2107,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2109,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2111,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2112,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2121,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2121,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2122,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2123,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2123,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2125,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2127,1
    - Dst: OGRMongoDBv3Layer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2129,1
    - Dst: GetAccess
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2130,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2134
      start: 2098
    functionDepth: 4
    functionLinenumber: 2098
    functionLinenumberEnd: 2134
    functionName: OGRMongoDBv3Layer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 3
    functionsReached:
    - GetAccess
    - empty
    - EQUAL
    - GetGeomFieldCount
    - OGRMongoDBv3Layer::EstablishFeatureDefn
    linkageType: ''
    returnType: int
    signature: int OGRMongoDBv3Layer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::builder::basic::make_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2142,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2146,1
    - Dst: bsoncxx::from_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2149,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2154,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2155,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pszFilter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2160
      start: 2140
    functionDepth: 2
    functionLinenumber: 2140
    functionLinenumberEnd: 2160
    functionName: OGRMongoDBv3Layer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::SetAttributeFilter
    - bsoncxx::builder::basic::make_document
    - CPLError
    - bsoncxx::from_json
    - what
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Layer::SetAttributeFilter(const char *pszFilter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsoncxx::builder::basic::make_document
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2172,1
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2173,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2176,1
    - Dst: bsoncxx::from_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2200,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2206,1
    - Dst: bsoncxx::from_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2214,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2214,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2218,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2225,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2226,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2231
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2231
    functionName: OGRMongoDBv3Layer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - bsoncxx::builder::basic::make_document
    - GetGeomFieldDefn
    - CPLSPrintf
    - CPLError
    - bsoncxx::from_json
    - what
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRMongoDBv3Layer::ISetSpatialFilter(int iGeomField,\n                                            const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3Dataset::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2239,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2242
      start: 2237
    functionDepth: 0
    functionLinenumber: 2237
    functionLinenumberEnd: 2242
    functionName: OGRMongoDBv3Dataset::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Dataset::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMongoDBv3Dataset::GetLayer(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2250,1
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2256,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2260,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2266,1
    - Dst: database
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2276,1
    - Dst: auto::list_collection_names
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2277,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2280,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2280,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2282,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2283,1
    - Dst: OGRMongoDBv3Layer::OGRMongoDBv3Layer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2282,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2284,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2290,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2291,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2295,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2301,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2307
      start: 2248
    functionDepth: 2
    functionLinenumber: 2248
    functionLinenumberEnd: 2307
    functionName: OGRMongoDBv3Dataset::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - auto::list_collection_names
    - database
    - c_str
    - empty
    - OGRMongoDBv3Layer::OGRMongoDBv3Layer
    - back
    - SyncToDisk
    - EQUAL
    - CPLError
    - CPLString::resize
    - what
    - emplace_back
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRMongoDBv3Dataset::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mongocxx::database::name
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2315,1
    - Dst: mongocxx::database::list_collection_names
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2316,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2321,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2322,1
    - Dst: OGRMongoDBv3Layer::OGRMongoDBv3Layer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - mongocxx::database
    constantsTouched: []
    func_position:
      end: 2325
      start: 2313
    functionDepth: 2
    functionLinenumber: 2313
    functionLinenumberEnd: 2325
    functionName: OGRMongoDBv3Dataset::CreateLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Layer::OGRMongoDBv3Layer
    - mongocxx::database::name
    - mongocxx::database::list_collection_names
    - std::string::c_str
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Dataset::CreateLayers(mongocxx::database &db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2342,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2343,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2344,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2345,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2355,1
    - Dst: TileDBDataset::VSI_to_tiledb_uri
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2365,1
    - Dst: TileDBDataset::VSI_to_tiledb_uri
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2380,1
    - Dst: mongocxx::uri::database
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2382,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2383,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2385,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2389,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2391,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2393,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2395,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2402,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2402,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2403,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2403,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2411,1
    - Dst: mongocxx::options::ssl::pem_file
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2412,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2413,1
    - Dst: mongocxx::options::ssl::pem_password
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2414,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2415,1
    - Dst: mongocxx::options::ssl::ca_file
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2416,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2417,1
    - Dst: mongocxx::options::ssl::crl_file
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2418,1
    - Dst: mongocxx::options::ssl::allow_invalid_certificates
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2419,1
    - Dst: mongocxx::options::client::tls_opts
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2421,1
    - Dst: mongocxx::options::client::ssl_opts
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2423,1
    - Dst: mongocxx::client
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2427,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2432,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2432,1
    - Dst: auto::run_command
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2434,1
    - Dst: bsoncxx::from_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2434,1
    - Dst: bsoncxx::to_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2435,1
    - Dst: auto::view
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2435,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2436,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2436,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2440,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2440,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2443,1
    - Dst: list_databases
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2445,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2454,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2455,1
    - Dst: database
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2456,1
    - Dst: OGRMongoDBv3Dataset::CreateLayers
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2457,1
    - Dst: database
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2462,1
    - Dst: OGRMongoDBv3Dataset::CreateLayers
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2468,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2468,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2472,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2473,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2474,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2475,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2478,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2479,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2482,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2484,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2486,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2489
      start: 2331
    functionDepth: 3
    functionLinenumber: 2331
    functionLinenumberEnd: 2489
    functionName: OGRMongoDBv3Dataset::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::to_json
    - atoi
    - CPLDebug
    - list_databases
    - CPLError
    - std::string::c_str
    - CPLString::empty
    - mongocxx::options::client::tls_opts
    - mongocxx::options::ssl::allow_invalid_certificates
    - mongocxx::uri::database
    - mongocxx::options::ssl::pem_password
    - strlen
    - mongocxx::client
    - OGRMongoDBv3Dataset::CreateLayers
    - STARTS_WITH_CI
    - c_str
    - database
    - CPLFetchBool
    - auto::run_command
    - bsoncxx::from_json
    - what
    - auto::view
    - TileDBDataset::VSI_to_tiledb_uri
    - empty
    - CSLFetchNameValueDef
    - mongocxx::options::ssl::pem_file
    - mongocxx::options::client::ssl_opts
    - mongocxx::options::ssl::crl_file
    - mongocxx::options::ssl::ca_file
    linkageType: ''
    returnType: bool
    signature: bool OGRMongoDBv3Dataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2500,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2510,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2515,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2517,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2517,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2520,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2520,1
    - Dst: OGRMongoDBv3Dataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2522,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2526,1
    - Dst: create_collection
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2538,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2538,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2542,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2542,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2546,1
    - Dst: OGRMongoDBv3Layer::OGRMongoDBv3Layer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2547,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2548,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2550,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2552,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2555,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2557,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2559,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2561,1
    - Dst: OGRGeomFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2566,1
    - Dst: auto::CreateGeomField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2571
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2571
    functionName: OGRMongoDBv3Dataset::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRMongoDBv3Dataset::DeleteLayer
    - CPLError
    - CSLFetchNameValue
    - GetName
    - emplace_back
    - static_cast<int>
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - what
    - auto::CreateGeomField
    - size
    - OGRMongoDBv3Layer::OGRMongoDBv3Layer
    - back
    - empty
    - OGRGeomFieldDefn::SetName
    - create_collection
    - CSLFetchNameValueDef
    - EQUAL
    - std::string
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRMongoDBv3Dataset::ICreateLayer(const char *pszName,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2582,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2587,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2587,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2594,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2595,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2595,1
    - Dst: m_oColl::name
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2601,1
    - Dst: bsoncxx::builder::basic::document::append
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2602,1
    - Dst: kvp
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2602,1
    - Dst: find_one_and_delete
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2603,1
    - Dst: bsoncxx::builder::basic::document::extract
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2604,1
    - Dst: m_oColl::drop
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2607,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2609,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2609,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2615,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2619
      start: 2577
    functionDepth: 1
    functionLinenumber: 2577
    functionLinenumberEnd: 2619
    functionName: OGRMongoDBv3Dataset::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - size
    - erase
    - static_cast<int>
    - m_oColl::name
    - bsoncxx::builder::basic::document::extract
    - find_one_and_delete
    - CPLDebug
    - CPLString::c_str
    - kvp
    - m_oColl::drop
    - begin
    - bsoncxx::builder::basic::document::append
    - CPLError
    - what
    - GetName
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRMongoDBv3Dataset::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2628,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2628,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2633
      start: 2625
    functionDepth: 0
    functionLinenumber: 2625
    functionLinenumberEnd: 2633
    functionName: OGRMongoDBv3Dataset::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRMongoDBv3Dataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2648
    functionDepth: 1
    functionLinenumber: 2648
    functionLinenumberEnd: 2651
    functionName: ~OGRMongoDBv3SingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~OGRMongoDBv3SingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2653
    functionDepth: 0
    functionLinenumber: 2653
    functionLinenumberEnd: 2656
    functionName: OGRMongoDBv3SingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2660
    functionDepth: 0
    functionLinenumber: 2660
    functionLinenumberEnd: 2663
    functionName: OGRMongoDBv3SingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2668
    functionName: OGRMongoDBv3SingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2678,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2679,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2685
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2685
    functionName: OGRMongoDBv3SingleFeatureLayer::OGRMongoDBv3SingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRMongoDBv3SingleFeatureLayer::OGRMongoDBv3SingleFeatureLayer(\n
      \   const char *pszVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2696,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2697,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2691
    functionDepth: 3
    functionLinenumber: 2691
    functionLinenumberEnd: 2700
    functionName: OGRMongoDBv3SingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRMongoDBv3SingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2712,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2718,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2725,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2725,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2728,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2728,1
    - Dst: OGRMongoDBv3Dataset::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2730,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2740,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2744,1
    - Dst: static_cast<OGRMongoDBv3Layer *>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2751,1
    - Dst: OGRMongoDBv3Dataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2751,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2754,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2758,1
    - Dst: auto::SyncToDisk
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2761,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2766,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2768,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2770,1
    - Dst: run_command
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2777,1
    - Dst: bsoncxx::from_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2778,1
    - Dst: bsoncxx::to_json
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2780,1
    - Dst: OGRMongoDBv3SingleFeatureLayer::OGRMongoDBv3SingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2779,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2784,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2785,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2791,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 2794
      start: 2706
    functionDepth: 3
    functionLinenumber: 2706
    functionLinenumberEnd: 2794
    functionName: OGRMongoDBv3Dataset::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::to_json
    - static_cast<OGRMongoDBv3Layer *>
    - OGRMongoDBv3Dataset::DeleteLayer
    - CPLError
    - OGRMongoDBv3Dataset::GetLayerByName
    - OGRMongoDBv3SingleFeatureLayer::OGRMongoDBv3SingleFeatureLayer
    - auto::GetLayerDefn
    - GetName
    - STARTS_WITH_CI
    - static_cast<int>
    - auto::SyncToDisk
    - bsoncxx::from_json
    - what
    - size
    - empty
    - SyncToDisk
    - EQUAL
    - run_command
    - GDALDataset::ExecuteSQL
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRMongoDBv3Dataset::ExecuteSQL(const char *pszSQLCommand,\n
      \                                         OGRGeometry *poSpatialFilter,\n                                          const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 2803
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2803
    functionName: OGRMongoDBv3Dataset::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3Dataset::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMongoDBv3DriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2812,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2822,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2844,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2844,1
    - Dst: bsoncxx::stdx::make_unique<logger>
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2850,1
    - Dst: mongocxx::instance::instance
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2848,1
    - Dst: OGRMongoDBv3Dataset::OGRMongoDBv3Dataset
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2856,1
    - Dst: auto::Open
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2864
      start: 2809
    functionDepth: 5
    functionLinenumber: 2809
    functionLinenumberEnd: 2864
    functionName: OGRMongoDBv3DriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached:
    - bsoncxx::stdx::make_unique<logger>
    - OGRMongoDBv3Dataset::OGRMongoDBv3Dataset
    - auto::Open
    - CPLDebug
    - OGRMongoDBv3DriverIdentify
    - CPLError
    - std::string::c_str
    - mongocxx::instance::instance
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRMongoDBv3DriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2870
    functionDepth: 0
    functionLinenumber: 2870
    functionLinenumberEnd: 2878
    functionName: OGRMongoDBv3DriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3DriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2886,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2889,1
    - Dst: OGRMongoDBv3DriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2890,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp:2895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2896
    functionName: RegisterOGRMongoDBv3
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - OGRMongoDBv3DriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRMongoDBv3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:24,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:25,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: OGRMongoDBv3DriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int OGRMongoDBv3DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:49,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:72,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 123
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 123
    functionName: OGRMongoDBv3DriverSetCommonMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void OGRMongoDBv3DriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:132,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:136,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:138,1
    - Dst: OGRMongoDBv3DriverSetCommonMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:141,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: DeclareDeferredOGRMongoDBv3Plugin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/mongodbv3/ogrmongodbv3drivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - OGRMongoDBv3DriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredOGRMongoDBv3Plugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pnSize
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: SXFGetDefaultRSC
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SXFGetDefaultRSC(int *pnSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:31,1
    - Dst: pSpatRef::Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:38,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:39,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:40,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:40,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:41,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:43,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:44,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:45,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:49,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:52,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:53,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:56,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:57,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:60,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:61,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:64,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:67,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - fp
    - hIOMutex
    - nID
    - pszLayerName
    - nVer
    - sxfMapDesc
    argTypes:
    - VSILFILE*
    - CPLMutex**
    - GByte
    - char*
    - int
    - SXFMapDescription
    constantsTouched: []
    func_position:
      end: 69
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 69
    functionName: OGRSXFLayer::OGRSXFLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - pSpatRef::Reference
    - SetGeomType
    - OGRFieldDefn::SetWidth
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - begin
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetGeomFieldCount
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRSXFLayer::OGRSXFLayer(VSILFILE *fp, CPLMutex **hIOMutex, GByte
      nID,\n                         const char *pszLayerName, int nVer,\n                         const
      SXFMapDescription &sxfMapDesc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pSpatRef::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:77,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: OGRSXFLayer::~OGRSXFLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - pSpatRef::Release
    linkageType: ''
    returnType: void
    signature: void OGRSXFLayer::~OGRSXFLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:91,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nClassCode
    - szName
    argTypes:
    - unsigned
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: OGRSXFLayer::AddClassifyCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: void
    signature: void OGRSXFLayer::AddClassifyCode(unsigned nClassCode, const char *szName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:107,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:108,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:108,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:125,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:127,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:128,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:131,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:132,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:149,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:150,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:161,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:172,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:183,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:194,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:205,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:206,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:218,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:219,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:232,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:233,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:236,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:237,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:249,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 96
    argCount: 5
    argNames:
    - nFID
    - nClassCode
    - nOffset
    - bHasSemantic
    - nSemanticsSize
    argTypes:
    - long
    - unsigned
    - vsi_l_offset
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 256
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 256
    functionName: OGRSXFLayer::AddRecord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR16
    - end
    - OGRFieldDefn::SetWidth
    - insert
    - find
    - CPLString::Printf
    - VSIFSeekL
    - CPL_LSBPTR32
    - EQUAL
    - AddFieldDefn
    - VSIFReadL
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool OGRSXFLayer::AddRecord(long nFID, unsigned nClassCode,\n                            vsi_l_offset
      nOffset, bool bHasSemantic,\n                            size_t nSemanticsSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:264,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:267,1
    - Dst: std::advance
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:268,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: OGRSXFLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - begin
    - std::advance
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSXFLayer::SetNextByIndex(GIntBig nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:279,1
    - Dst: static_cast<long>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:279,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:280,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:282,1
    - Dst: OGRSXFLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:283,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:284,1
    - Dst: OGRSXFLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:285,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:287,1
    - Dst: OGRSXFLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: OGRSXFLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - static_cast<long>
    - VSIFSeekL
    - find
    - OGRSXFLayer::GetNextRawFeature
    - OGRSXFLayer::GetSpatialRef
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSXFLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: OGRSXFLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSXFLayer::GetSpatialRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: OGRSXFLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSXFLayer::IGetExtent(int iGeomField, OGREnvelope *psExtent,\n
      \                              bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:334,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:334,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: OGRSXFLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGRLayer::GetFeatureCount
    - static_cast<int>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSXFLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: OGRSXFLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void OGRSXFLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:355,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:356,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:358,1
    - Dst: OGRSXFLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:359,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:367,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:367,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:368,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:370,1
    - Dst: OGRSXFLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:371,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:373,1
    - Dst: OGRSXFLayer::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 383
    functionName: OGRSXFLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLMutexHolderD
    - VSIFSeekL
    - FilterGeometry
    - OGRSXFLayer::GetNextRawFeature
    - Evaluate
    - OGRSXFLayer::GetSpatialRef
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSXFLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:392,1
    - Dst: CPLCanRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:393,1
    - Dst: CPLCanRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:394,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:396,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:398,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:400,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:402,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 408
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 408
    functionName: OGRSXFLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLCanRecode
    linkageType: ''
    returnType: int
    signature: int OGRSXFLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:434,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:435,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:436,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:437,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:466,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:467,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:479,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:480,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:482,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:483,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:503,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:504,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:516,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:518,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:519,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:547,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:548,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:561,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:562,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:563,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:564,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:584,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:585,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 117
    argCount: 6
    argNames:
    - certifInfo
    - psBuff
    - nBufLen
    - dfX
    - dfY
    - dfH
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 595
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 595
    functionName: OGRSXFLayer::TranslateXYH
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR16
    - memcpy
    - CPL_LSBPTR32
    - CPL_LSBPTR64
    linkageType: ''
    returnType: GUInt32
    signature: "GUInt32 OGRSXFLayer::TranslateXYH(const SXFRecordDescription &certifInfo,\n
      \                                 const char *psBuff, GUInt32 nBufLen,\n                                  double
      *dfX, double *dfY, double *dfH)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:609,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:612,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:615,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:618,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:619,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:620,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:621,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:622,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:623,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:624,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:625,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:632,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:634,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:652,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:695,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:709,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:727,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:728,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:729,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:730,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:734,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:735,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:736,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:737,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:769,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:779,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:780,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:783,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:784,1
    - Dst: OGRSXFLayer::TranslatePoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:789,1
    - Dst: OGRSXFLayer::TranslateLine
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:792,1
    - Dst: OGRSXFLayer::TranslatePolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:795,1
    - Dst: OGRSXFLayer::TranslateText
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:798,1
    - Dst: OGRSXFLayer::TranslateVetorAngle
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:802,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:808,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:810,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:816,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:818,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:823,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:825,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 125
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 827
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 827
    functionName: OGRSXFLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 2
    functionsReached:
    - CPL_LSBPTR16
    - static_cast<int>
    - OGRSXFLayer::TranslateText
    - OGRSXFLayer::TranslateLine
    - OGRSXFLayer::TranslatePolygon
    - OGRSXFLayer::TranslateVetorAngle
    - CHECK_BIT
    - VSIFReadL
    - CPLError
    - CPLFree
    - CPL_LSBPTR32
    - OGRSXFLayer::TranslatePoint
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSXFLayer::GetNextRawFeature(long nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1117,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1121,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1131,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1132,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1134,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1134,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1145,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1146,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1149,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1150,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1160,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1166,1
    - Dst: OGRMultiPoint*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1174,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1174,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - certifInfo
    - psRecordBuf
    - nBufLen
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 1187
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1187
    functionName: OGRSXFLayer::TranslatePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - OGRMultiPoint::OGRMultiPoint
    - OGRMultiPoint*::addGeometryDirectly
    - OGRSXFLayer::TranslateXYH
    - OGRPoint::OGRPoint
    - OGRFeature::OGRFeature
    - memcpy
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRSXFLayer::TranslatePoint(const SXFRecordDescription
      &certifInfo,\n                                        const char *psRecordBuf,\n
      \                                       GUInt32 nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1205,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1206,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1211,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1220,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1226,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1234,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1237,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1244,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1250,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1251,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1254,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1255,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1265,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1271,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1279,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1282,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - certifInfo
    - psRecordBuf
    - nBufLen
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 1295
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1295
    functionName: OGRSXFLayer::TranslateLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - OGRLineString*::addPoint
    - OGRFeature*::SetGeometryDirectly
    - OGRMultiLineString*::addGeometry
    - memcpy
    - OGRSXFLayer::TranslateXYH
    - OGRLineString*::empty
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRSXFLayer::TranslateLine(const SXFRecordDescription
      &certifInfo,\n                                       const char *psRecordBuf,
      GUInt32 nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1307,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1314,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1315,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1320,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1332,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1338,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1345,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1348,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1350,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1351,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1359,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - certifInfo
    - psRecordBuf
    - nBufLen
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 1366
      start: 1301
    functionDepth: 3
    functionLinenumber: 1301
    functionLinenumberEnd: 1366
    functionName: OGRSXFLayer::TranslateVetorAngle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::addPoint
    - OGRSXFLayer::TranslateXYH
    - OGRLineString*::EndPoint
    - OGRPoint::OGRPoint
    - OGRLineString*::StartPoint
    - OGRFeature*::SetField
    - CPLError
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *\nOGRSXFLayer::TranslateVetorAngle(const SXFRecordDescription
      &certifInfo,\n                                 const char *psRecordBuf, GUInt32
      nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1382,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1383,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1384,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1393,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1400,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1406,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1409,1
    - Dst: OGRLinearRing*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1410,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1412,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1419,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1425,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1426,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1429,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1430,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1435,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1450,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1456,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1464,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1467,1
    - Dst: OGRLinearRing*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1468,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1470,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1473,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - certifInfo
    - psRecordBuf
    - nBufLen
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 1482
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1482
    functionName: OGRSXFLayer::TranslatePolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - OGRLineString*::addPoint
    - CPLError
    - OGRPolygon::OGRPolygon
    - OGRLinearRing::OGRLinearRing
    - memcpy
    - OGRSXFLayer::TranslateXYH
    - OGRLineString*::empty
    - OGRPolygon*::addRingDirectly
    - OGRLinearRing*::addSubLineString
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRFeature*::SetGeometryDirectly
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *\nOGRSXFLayer::TranslatePolygon(const SXFRecordDescription
      &certifInfo,\n                              const char *psRecordBuf, GUInt32
      nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1495,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1496,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1501,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1510,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1516,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1524,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1527,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1544,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1550,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1552,1
    - Dst: OGRLineString*::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1562,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1568,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1569,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1572,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1573,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1583,1
    - Dst: OGRSXFLayer::TranslateXYH
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1589,1
    - Dst: OGRLineString*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1597,1
    - Dst: OGRMultiLineString*::addGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1600,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1613,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1618,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1619,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1621,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1628,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1630,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 3
    argNames:
    - certifInfo
    - psRecordBuf
    - nBufLen
    argTypes:
    - SXFRecordDescription
    - char*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 1632
      start: 1487
    functionDepth: 3
    functionLinenumber: 1487
    functionLinenumberEnd: 1632
    functionName: OGRSXFLayer::TranslateText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - CPLFree
    - OGRLineString*::addPoint
    - OGRFeature*::SetGeometryDirectly
    - OGRMultiLineString*::addGeometry
    - memcpy
    - strncpy
    - OGRSXFLayer::TranslateXYH
    - OGRLineString*::empty
    - CPLString
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGRSXFLayer::TranslateText(const SXFRecordDescription
      &certifInfo,\n                                       const char *psRecordBuf,
      GUInt32 nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1634
    functionDepth: 0
    functionLinenumber: 1634
    functionLinenumberEnd: 1637
    functionName: OGRSXFLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *OGRSXFLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:31,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:32,1
    - Dst: VSI_ISREG
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:33,1
    - Dst: OGRSXFDataSource::OGRSXFDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:36,1
    - Dst: OGRSXFDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: OGRSXFDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSXFDataSource*::Open
    - VSIStatL
    - VSI_ISREG
    - OGRSXFDataSource::OGRSXFDataSource
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSXFDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:54,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: OGRSXFDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OGRSXFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:84,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:86,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:95,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:96,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: OGRSXFDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - CPLResetExtensionSafe
    - VSIUnlink
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSXFDriverDelete(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:108,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:111,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:113,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:114,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:115,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:117,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:118,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:120,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:121,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: RegisterOGRSXF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRSXF()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: OGRSXFLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogr_sxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: OGRSXFLayer::GetId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogr_sxf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte GetId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogr_sxf.h:136,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogr_sxf.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRSXFDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogr_sxf.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/org_sxf_defs.h:214,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/org_sxf_defs.h:215,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/org_sxf_defs.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: SXFMapDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/org_sxf_defs.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void SXFMapDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: OGRSXFDataSource::OGRSXFDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void OGRSXFDataSource::OGRSXFDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:52,1
    - Dst: stMapDescription::pSpatRef::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:56,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:59,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: OGRSXFDataSource::~OGRSXFDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSXFDataSource::CloseFile
    - stMapDescription::pSpatRef::Release
    - CPLDestroyMutex
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSXFDataSource::~OGRSXFDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: OGRSXFDataSource::CloseFile
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OGRSXFDataSource::CloseFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: OGRSXFDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRSXFDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSXFDataSource::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:99,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: OGRSXFDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSXFDataSource::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRSXFDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:120,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:133,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:134,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:137,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:154,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:156,1
    - Dst: OGRSXFDataSource::ReadSXFDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:163,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:164,1
    - Dst: OGRSXFDataSource::ReadSXFInformationFlags
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:171,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:180,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:182,1
    - Dst: OGRSXFDataSource::ReadSXFMapDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:190,1
    - Dst: OGRSXFDataSource::CloseFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:192,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:198,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:207,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:208,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:209,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:210,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:210,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:215,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:217,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:218,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:218,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:224,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:226,1
    - Dst: CPLCheckForFile
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:227,1
    - Dst: std::string::data
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:227,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:237,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:245,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:255,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:257,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:258,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:269,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:273,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:279,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:288,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:292,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:293,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:297,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:298,1
    - Dst: OGRSXFDataSource::CreateLayers
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:299,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:300,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:304,1
    - Dst: OGRSXFDataSource::CreateLayers
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:306,1
    - Dst: OGRSXFDataSource::FillLayers
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:309,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 98
    argCount: 3
    argNames:
    - pszFilename
    - bUpdateIn
    - papszOpenOpts
    argTypes:
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 312
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 312
    functionName: OGRSXFDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - CPLDebug
    - OGRSXFDataSource::ReadSXFInformationFlags
    - CPLError
    - CPLGetConfigOption
    - CPLString::empty
    - std::string::empty
    - OGRSXFDataSource::ReadSXFDescription
    - CPLCheckForFile
    - CPLString::c_str
    - OGRSXFDataSource::FillLayers
    - OGRSXFDataSource::CreateLayers
    - const_cast<GByte *>
    - VSIFOpenL
    - OGRSXFDataSource::ReadSXFMapDescription
    - VSIFileFromMemBuffer
    - OGRSXFDataSource::CloseFile
    - empty
    - VSIFCloseL
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - reinterpret_cast<const GByte *>
    - EQUAL
    - CPL_LSBPTR32
    linkageType: ''
    returnType: int
    signature: "int OGRSXFDataSource::Open(const char *pszFilename, bool bUpdateIn,\n
      \                          const char *const *papszOpenOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:323,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:327,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:328,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:328,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:334,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:336,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:336,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:338,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:340,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:340,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:343,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:349,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:351,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:352,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:354,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:356,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:359,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:365,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:369,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:370,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:370,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:372,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:373,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:375,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:375,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:377,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:379,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:379,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:382,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:388,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:390,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:391,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:393,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:395,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:398,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:401,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:402,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:403,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:404,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:407,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:407,1
    - Dst: SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:408,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 2
    argNames:
    - fpSXFIn
    - passport
    argTypes:
    - VSILFILE*
    - SXFPassport
    constantsTouched: []
    func_position:
      end: 411
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 411
    functionName: OGRSXFDataSource::ReadSXFDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUInt16>
    - atoi
    - SetMetadataItem
    - CPLSPrintf
    - VSIFReadL
    - memset
    - CPLRecode
    - memcpy
    - CPLFree
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSXFDataSource::ReadSXFDescription(VSILFILE *fpSXFIn,\n                                            SXFPassport
      &passport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:418,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:420,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:420,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:425,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:434,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:443,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:449,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:459,1
    - Dst: static_cast<SXFTextEncoding>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:483,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:487,1
    - Dst: static_cast<SXFCoordinatesAccuracy>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:497,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:501,1
    - Dst: CHECK_BIT
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:508,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 2
    argNames:
    - fpSXFIn
    - passport
    argTypes:
    - VSILFILE*
    - SXFPassport
    constantsTouched: []
    func_position:
      end: 519
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 519
    functionName: OGRSXFDataSource::ReadSXFInformationFlags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - static_cast<SXFTextEncoding>
    - static_cast<SXFCoordinatesAccuracy>
    - CHECK_BIT
    - VSIFReadL
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSXFDataSource::ReadSXFInformationFlags(VSILFILE *fpSXFIn,\n
      \                                                SXFPassport &passport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:527,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importVertCSFromPanorama
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:530,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - iVCS
    - passport
    - papszOpenOpts
    argTypes:
    - long
    - SXFPassport
    - char**
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 532
    functionName: OGRSXFDataSource::SetVertCS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLTestBool
    - SXFPassport::stMapDescription::pSpatRef::importVertCSFromPanorama
    linkageType: ''
    returnType: void
    signature: "void OGRSXFDataSource::SetVertCS(const long iVCS, SXFPassport &passport,\n
      \                                const char *const *papszOpenOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:551,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:553,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:556,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:562,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:567,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:595,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:600,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:609,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:611,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:616,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:617,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:621,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:626,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:653,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:658,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:670,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:704,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:714,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:716,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:717,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:722,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:727,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:731,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:776,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:778,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:782,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:790,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:794,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:866,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:867,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:870,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:871,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:888,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:918,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:919,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:921,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:922,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:927,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:941,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:945,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:950,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:951,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:953,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:954,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:959,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:967,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:974,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:981,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:982,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:985,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1006,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1007,1
    - Dst: SXFPassport::stMapDescription::pSpatRef::importFromPanorama
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1009,1
    - Dst: OGRSXFDataSource::SetVertCS
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1011,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 230
    argCount: 3
    argNames:
    - fpSXFIn
    - passport
    - papszOpenOpts
    argTypes:
    - VSILFILE*
    - SXFPassport
    - char**
    constantsTouched: []
    func_position:
      end: 1013
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 1013
    functionName: OGRSXFDataSource::ReadSXFMapDescription
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - OGRSpatialReference::OGRSpatialReference
    - CPL_LSBPTR64
    - SXFPassport::stMapDescription::pSpatRef::importFromPanorama
    - VSIFSeekL
    - OGRSXFDataSource::SetVertCS
    - SXFPassport::stMapDescription::pSpatRef::importFromEPSG
    - SXFPassport::stMapDescription::pSpatRef::SetAxisMappingStrategy
    - VSIFReadL
    - CPLError
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSXFDataSource::ReadSXFMapDescription(VSILFILE *fpSXFIn,\n
      \                                              SXFPassport &passport,\n                                               const
      char *const *papszOpenOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1017,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1028,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1030,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1030,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1032,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1036,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1038,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1038,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1040,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1046,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1050,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1055,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1055,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1058,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1063,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1072,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1078,1
    - Dst: AddRecord
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1084,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1091,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1094,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1096,1
    - Dst: OGRSXFLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1097,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1099,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1099,1
    - Dst: OGRSXFLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1107
    functionName: OGRSXFDataSource::FillLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - erase
    - AddRecord
    - static_cast<int>
    - VSIFSeekL
    - get
    - CPLDebug
    - begin
    - OGRSXFLayer*::ResetReading
    - OGRSXFLayer*::GetFeatureCount
    - VSIFReadL
    - CPLError
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: void OGRSXFDataSource::FillLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetId
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1113,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nID
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 1119
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1119
    functionName: OGRSXFDataSource::GetLayerById
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 0
    functionsReached:
    - GetId
    - get
    linkageType: ''
    returnType: OGRSXFLayer
    signature: OGRSXFLayer *OGRSXFDataSource::GetLayerById(GByte nID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1124,1
    - Dst: std::make_unique<OGRSXFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1124,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1125,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1125,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1127,1
    - Dst: auto::AddClassifyCode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1132,1
    - Dst: auto::AddClassifyCode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1134,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1136,1
    - Dst: std::make_unique<OGRSXFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1136,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1137,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1139
    functionName: OGRSXFDataSource::CreateLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<OGRSXFLayer>
    - back
    - static_cast<GByte>
    - CPLString
    - emplace_back
    - auto::AddClassifyCode
    linkageType: ''
    returnType: void
    signature: void OGRSXFDataSource::CreateLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1151,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1155,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1156,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1157,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1158,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1159,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1160,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1161,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1162,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1169,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1170,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1171,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1172,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1173,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1174,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1175,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1176,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1177,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1178,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1179,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1180,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1181,1
    - Dst: SWAP_SECTION
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1182,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1183,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1184,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1200,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1202,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1208,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1209,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1210,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1218,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1220,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1222,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1224,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1226,1
    - Dst: std::make_unique<OGRSXFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1226,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1227,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1233,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1236,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1239,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1241,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1243,1
    - Dst: std::make_unique<OGRSXFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1243,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1244,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1247,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1250,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1253,1
    - Dst: std::make_unique<OGRSXFLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1253,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1254,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1254,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1276,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1278,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1284,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1285,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1286,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1287,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1288,1
    - Dst: OGRSXFDataSource::GetLayerById
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1290,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1295,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1297,1
    - Dst: CPLRecode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1299,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1302,1
    - Dst: OGRSXFLayer*::AddClassifyCode
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1304,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1306,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp:1310,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 82
    argCount: 2
    argNames:
    - fpRSC
    - papszOpenOpts
    argTypes:
    - VSILFILE*
    - char**
    constantsTouched: []
    func_position:
      end: 1312
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1312
    functionName: OGRSXFDataSource::CreateLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR16
    - std::make_unique<OGRSXFLayer>
    - CPLFree
    - CPLStrdup
    - OGRSXFLayer*::AddClassifyCode
    - VSIFSeekL
    - static_cast<GByte>
    - CPLString
    - VSIFReadL
    - CPLError
    - CPLRecode
    - SWAP_SECTION
    - CPL_LSBPTR32
    - OGRSXFDataSource::GetLayerById
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void OGRSXFDataSource::CreateLayers(VSILFILE *fpRSC,\n                                    const
      char *const *papszOpenOpts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nLine
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: OSMParsingException::OSMParsingException
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void OSMParsingException(int nLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OSMParsingException::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *OSMParsingException::what() const noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sInfo
    argTypes:
    - OSMInfo*
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: INIT_INFO
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void INIT_INFO(OSMInfo *sInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:220,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:222,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:225,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:227,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:232,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:239,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:243,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:246,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:249,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:255,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:263,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:263,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - pabyData
    - pabyDataLimit
    - pnBlobSize
    - peBlobType
    argTypes:
    - GByte*
    - GByte*
    - unsigned int*
    - BlobType*
    constantsTouched: []
    func_position:
      end: 266
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 266
    functionName: ReadBlobHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - READ_FIELD_KEY
    - MAKE_KEY
    - memcmp
    - READ_VARUINT32
    - CPLError
    - READ_SIZE
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ReadBlobHeader(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                          unsigned int *pnBlobSize, BlobType *peBlobType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:290,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:292,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:295,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:298,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:301,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:304,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:307,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:310,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:313,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:318,1
    - Dst: OSMContext*::pfnNotifyBounds
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:322,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:330,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 333
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 333
    functionName: ReadHeaderBBox
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - READ_FIELD_KEY
    - MAKE_KEY
    - CPLError
    - OSMContext*::pfnNotifyBounds
    - what
    - READ_VARSINT64
    linkageType: ''
    returnType: bool
    signature: "bool ReadHeaderBBox(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                          OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:360,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:362,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:365,1
    - Dst: ReadHeaderBBox
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:367,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:372,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:374,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:376,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:377,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:379,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:382,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:385,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:387,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:389,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:391,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:393,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:395,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:397,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:399,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:401,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:403,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:406,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:409,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:412,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:415,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:418,1
    - Dst: READ_TEXT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:421,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:424,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:428,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:436,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:436,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 439
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 439
    functionName: ReadOSMHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - ReadHeaderBBox
    - READ_FIELD_KEY
    - SKIP_VARINT
    - MAKE_KEY
    - READ_TEXT
    - strcmp
    - VSIFree
    - CPLError
    - READ_SIZE
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ReadOSMHeader(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                         OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:455,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:455,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:459,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:463,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:464,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:475,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:477,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:480,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:483,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:484,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:490,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:517,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 522
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 522
    functionName: ReadStringTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - static_cast<int>
    - static_cast<unsigned>
    - reinterpret_cast<char *>
    - READ_FIELD_KEY
    - MAKE_KEY
    - const_cast<GByte *>
    - max
    - CPLError
    - READ_SIZE
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ReadStringTable(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                           OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:534,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:534,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - GIntBig
    - GIntBig
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: AddWithOverflowAccepted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<GUIntBig>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW AddWithOverflowAccepted(GIntBig
      a, GIntBig b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:544,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:544,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: AddWithOverflowAccepted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW AddWithOverflowAccepted(int a,
      int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 554
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 554
    functionName: AddWithOverflowAccepted
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW AddWithOverflowAccepted(unsigned
      a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:590,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:592,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:598,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:603,1
    - Dst: static_cast<OSMNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:605,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:605,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:617,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:621,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:628,1
    - Dst: GET_WIRETYPE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:631,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:637,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:644,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:651,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:656,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:660,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:665,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:669,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:674,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:683,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:685,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:685,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:697,1
    - Dst: READ_VARSINT64_NOCHECK
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:741,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:742,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:743,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:744,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:746,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:747,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:751,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:752,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:756,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:757,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:761,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:766,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:767,1
    - Dst: READ_VARSINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:772,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:774,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:783,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:786,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:792,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:814,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:818,1
    - Dst: OSMContext*::pfnNotifyNodes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:839,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:849,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:849,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 140
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 852
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 852
    functionName: ReadDenseNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - AddWithOverflowAccepted
    - CPLError
    - READ_SIZE
    - static_cast<OSMNode *>
    - SKIP_UNKNOWN_FIELD
    - READ_VARSINT32
    - static_cast<unsigned>
    - static_cast<OSMTag *>
    - VSI_REALLOC_VERBOSE
    - READ_FIELD_KEY
    - OSMContext*::pfnNotifyNodes
    - what
    - READ_VARSINT64
    - READ_VARSINT64_NOCHECK
    - static_cast<double>
    - MAKE_KEY
    - READ_VARINT32
    - max
    - READ_VARUINT32
    - GET_WIRETYPE
    linkageType: ''
    returnType: bool
    signature: "bool ReadDenseNodes(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                          OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:876,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:878,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:880,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:882,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:884,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:886,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:888,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:890,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:892,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:894,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:897,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:902,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:904,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:910,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:918,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - pabyData
    - pabyDataLimit
    - psInfo
    - psContext
    argTypes:
    - GByte*
    - GByte*
    - OSMInfo*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 921
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 921
    functionName: ReadOSMInfo
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - READ_FIELD_KEY
    - SKIP_VARINT
    - MAKE_KEY
    - READ_VARINT32
    - READ_VARUINT32
    - CPLError
    - READ_VARINT64
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ReadOSMInfo(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                       OSMInfo *psInfo, OSMContext *psContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_INFO
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:948,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:957,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:959,1
    - Dst: READ_VARSINT64_NOCHECK
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:961,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:963,1
    - Dst: READ_VARSINT64_NOCHECK
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:966,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:970,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:972,1
    - Dst: READ_VARSINT64_NOCHECK
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:975,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:979,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:981,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:987,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:992,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:994,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:994,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1006,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1019,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1026,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1031,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1040,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1043,1
    - Dst: ReadOSMInfo
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1045,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1053,1
    - Dst: OSMContext*::pfnNotifyNodes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1068,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1074,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1074,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1077
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 1077
    functionName: ReadNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - static_cast<OSMTag *>
    - SKIP_UNKNOWN_FIELD
    - VSI_REALLOC_VERBOSE
    - READ_FIELD_KEY
    - SKIP_VARINT
    - MAKE_KEY
    - OSMContext*::pfnNotifyNodes
    - INIT_INFO
    - max
    - READ_VARUINT32
    - ReadOSMInfo
    - CPLError
    - READ_SIZE
    - what
    - READ_VARSINT64_NOCHECK
    linkageType: ''
    returnType: bool
    signature: "bool ReadNode(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                    OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_INFO
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1094,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1103,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1105,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1107,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1109,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1115,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1120,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1122,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1122,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1134,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1147,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1154,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1159,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1168,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1171,1
    - Dst: ReadOSMInfo
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1173,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1179,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1186,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1191,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1193,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1193,1
    - Dst: READ_VARSINT64_NOCHECK
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1205,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1207,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1217,1
    - Dst: OSMContext*::pfnNotifyWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1230,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1236,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1236,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1239
    functionName: ReadWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OSMTag *>
    - SKIP_UNKNOWN_FIELD
    - VSI_REALLOC_VERBOSE
    - READ_FIELD_KEY
    - SKIP_VARINT
    - MAKE_KEY
    - OSMContext*::pfnNotifyWay
    - INIT_INFO
    - max
    - READ_VARUINT32
    - ReadOSMInfo
    - static_cast<GIntBig *>
    - AddWithOverflowAccepted
    - CPLError
    - READ_VARINT64
    - READ_SIZE
    - what
    - READ_VARSINT64_NOCHECK
    linkageType: ''
    returnType: bool
    signature: "bool ReadWay(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                   OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_INFO
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1258,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1267,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1269,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1271,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1273,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1279,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1284,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1286,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1286,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1298,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1311,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1318,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1323,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1332,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1335,1
    - Dst: ReadOSMInfo
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1337,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1343,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1349,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1354,1
    - Dst: static_cast<OSMMember *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1356,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1356,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1368,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1382,1
    - Dst: SKIP_VARINT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1390,1
    - Dst: READ_VARSINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1395,1
    - Dst: AddWithOverflowAccepted
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1396,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1401,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1407,1
    - Dst: static_cast<OSMMemberType>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1418,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1424,1
    - Dst: OSMContext*::pfnNotifyRelation
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1439,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1445,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1445,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1448
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1448
    functionName: ReadRelation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OSMMemberType>
    - INIT_INFO
    - AddWithOverflowAccepted
    - CPLError
    - READ_SIZE
    - SKIP_UNKNOWN_FIELD
    - ReadOSMInfo
    - READ_VARINT64
    - static_cast<OSMTag *>
    - VSI_REALLOC_VERBOSE
    - READ_FIELD_KEY
    - static_cast<OSMMember *>
    - SKIP_VARINT
    - OSMContext*::pfnNotifyRelation
    - what
    - READ_VARSINT64
    - MAKE_KEY
    - max
    - READ_VARUINT32
    linkageType: ''
    returnType: bool
    signature: "bool ReadRelation(const GByte *pabyData, const GByte *pabyDataLimit,\n
      \                        OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1475,1
    - Dst: GET_WIRETYPE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1478,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1483,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1493,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1501,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1501,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1504
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1504
    functionName: ReadPrimitiveGroup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - SKIP_UNKNOWN_FIELD
    - READ_FIELD_KEY
    - CPLError
    - READ_SIZE
    - what
    - GET_WIRETYPE
    linkageType: ''
    returnType: bool
    signature: "bool ReadPrimitiveGroup(const GByte *pabyData,\n                               const
      GByte *pabyDataLimit, OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1534,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1536,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1538,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1543,1
    - Dst: READ_VARINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1545,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1548,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1550,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1552,1
    - Dst: READ_VARINT64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1554,1
    - Dst: SKIP_UNKNOWN_FIELD_INLINE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1558,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1569,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1571,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1578,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1588,1
    - Dst: ReadStringTable
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1591,1
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1600,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1603,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1609,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1612,1
    - Dst: ReadPrimitiveGroup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1614,1
    - Dst: SKIP_UNKNOWN_FIELD_INLINE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1621,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1629,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1629,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 3
    argNames:
    - pabyData
    - pabyDataLimit
    - psCtxt
    argTypes:
    - GByte*
    - GByte*
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1632
      start: 1517
    functionDepth: 3
    functionLinenumber: 1517
    functionLinenumberEnd: 1632
    functionName: ReadPrimitiveBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - READ_FIELD_KEY
    - MAKE_KEY
    - const_cast<GByte *>
    - READ_VARINT32
    - SKIP_UNKNOWN_FIELD_INLINE
    - CPLError
    - READ_VARINT64
    - ReadPrimitiveGroup
    - READ_SIZE
    - what
    - ReadStringTable
    linkageType: ''
    returnType: bool
    signature: "bool ReadPrimitiveBlock(const GByte *pabyData,\n                               const
      GByte *pabyDataLimit, OSMContext *psCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DecompressionJob *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1640,1
    - Dst: CPLZLibInflate
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pDataIn
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1644
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1644
    functionName: DecompressFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLZLibInflate
    - static_cast<DecompressionJob *>
    linkageType: ''
    returnType: void
    signature: void DecompressFunction(void *pDataIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1660,1
    - Dst: DecompressFunction
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1662,1
    - Dst: OSMContext*::poWTP::SubmitJobs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1666,1
    - Dst: OSMContext*::poWTP::WaitCompletion
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 1676
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1676
    functionName: RunDecompressionJobs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - OSMContext*::poWTP::SubmitJobs
    - OSMContext*::poWTP::WaitCompletion
    - DecompressFunction
    linkageType: ''
    returnType: bool
    signature: bool RunDecompressionJobs(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadOSMHeader
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1688,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1694,1
    - Dst: ReadPrimitiveBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - psCtxt
    - sJob
    - eType
    argTypes:
    - OSMContext*
    - DecompressionJob
    - BlobType
    constantsTouched: []
    func_position:
      end: 1699
      start: 1683
    functionDepth: 4
    functionLinenumber: 1683
    functionLinenumberEnd: 1699
    functionName: ProcessSingleBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - ReadPrimitiveBlock
    - ReadOSMHeader
    linkageType: ''
    returnType: bool
    signature: "bool ProcessSingleBlob(OSMContext *psCtxt, DecompressionJob &sJob,\n
      \                             BlobType eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunDecompressionJobs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1708,1
    - Dst: ProcessSingleBlob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - psCtxt
    - eType
    argTypes:
    - OSMContext*
    - BlobType
    constantsTouched: []
    func_position:
      end: 1722
      start: 1705
    functionDepth: 5
    functionLinenumber: 1705
    functionLinenumberEnd: 1722
    functionName: RunDecompressionJobsAndProcessAll
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - RunDecompressionJobs
    - ProcessSingleBlob
    linkageType: ''
    returnType: bool
    signature: "bool RunDecompressionJobsAndProcessAll(OSMContext *psCtxt,\n                                              BlobType
      eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_FIELD_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1745,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1747,1
    - Dst: RunDecompressionJobsAndProcessAll
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1750,1
    - Dst: READ_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1756,1
    - Dst: ReadOSMHeader
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1765,1
    - Dst: ReadPrimitiveBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1769,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1775,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1777,1
    - Dst: MAKE_KEY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1780,1
    - Dst: READ_VARUINT32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1797,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1823,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1835,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1835,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1842,1
    - Dst: RunDecompressionJobsAndProcessAll
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1854,1
    - Dst: SKIP_UNKNOWN_FIELD
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1878,1
    - Dst: RunDecompressionJobs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1884,1
    - Dst: ProcessSingleBlob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1889,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1897,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1902,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1902,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 87
    argCount: 2
    argNames:
    - psCtxt
    - eType
    argTypes:
    - OSMContext*
    - BlobType
    constantsTouched: []
    func_position:
      end: 1905
      start: 1732
    functionDepth: 6
    functionLinenumber: 1732
    functionLinenumberEnd: 1905
    functionName: ReadBlob
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - ReadPrimitiveBlock
    - SKIP_UNKNOWN_FIELD
    - what
    - VSI_REALLOC_VERBOSE
    - static_cast<unsigned>
    - READ_FIELD_KEY
    - RunDecompressionJobs
    - MAKE_KEY
    - RunDecompressionJobsAndProcessAll
    - max
    - ReadOSMHeader
    - READ_VARUINT32
    - static_cast<GByte *>
    - CPLError
    - memset
    - READ_SIZE
    - ProcessSingleBlob
    linkageType: ''
    returnType: bool
    signature: bool ReadBlob(OSMContext *psCtxt, BlobType eType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ProcessSingleBlob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1916,1
    - Dst: ReadBlob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1930,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1944,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1962,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1971,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1989,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1990,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1992,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:1992,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2003,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2011,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2043,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2053
      start: 1911
    functionDepth: 7
    functionLinenumber: 1911
    functionLinenumberEnd: 2053
    functionName: PBF_ProcessBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - ReadBlob
    - VSI_REALLOC_VERBOSE
    - min
    - max
    - CPLAssert
    - VSIFReadL
    - static_cast<GByte *>
    - memset
    - ProcessSingleBlob
    linkageType: ''
    returnType: OSMRetCode
    signature: OSMRetCode PBF_ProcessBlock(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2064
    functionName: EmptyNotifyNodesFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EmptyNotifyNodesFunc(unsigned int /* nNodes */,\n                                 OSMNode
      * /* pasNodes */,\n                                 OSMContext * /* psCtxt */,\n
      \                                void * /* user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2073
    functionName: EmptyNotifyWayFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EmptyNotifyWayFunc(OSMWay * /* psWay */, OSMContext * /* psCtxt
      */,\n                               void * /* user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2083
    functionName: EmptyNotifyRelationFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EmptyNotifyRelationFunc(OSMRelation * /* psRelation */,\n                                    OSMContext
      * /* psCtxt */,\n                                    void * /* user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2094
    functionName: EmptyNotifyBoundsFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EmptyNotifyBoundsFunc(double /* dfXMin */, double /* dfYMin */,\n
      \                                 double /* dfXMax */, double /* dfYMax */,\n
      \                                 OSMContext * /*psCtxt */,\n                                  void
      * /* user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2104,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2107,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2111,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - psCtxt
    - pszStr
    argTypes:
    - OSMContext*
    - char*
    constantsTouched: []
    func_position:
      end: 2115
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2115
    functionName: OSM_AddString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - static_cast<unsigned>
    - strlen
    linkageType: ''
    returnType: char
    signature: char *OSM_AddString(OSMContext *psCtxt, const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoll
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2124
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2124
    functionName: OSM_Atoi64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - atoll
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OSM_Atoi64(const char *pszString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OSMContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2134,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2144,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2145,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2155,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2157,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2160,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2162,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2165,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2167,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2170,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2172,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2175,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2180,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2182,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2183,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2184,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2185,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2188,1
    - Dst: OSMContext*::pfnNotifyBounds
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2196,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2204,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2213,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2220,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2222,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2224,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2226,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2228,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2230,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2232,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2234,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2236,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2239,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2241,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2244,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2246,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2248,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2250,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2253,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2262,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2270,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2277,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2279,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2281,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2283,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2285,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2287,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2289,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2292,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2294,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2296,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2298,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2301,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2310,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2318,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2325,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2327,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2329,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2331,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2333,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2336,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2338,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2341,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2343,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2345,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2347,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2350,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2358,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2361,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2366,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2371,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2378,1
    - Dst: static_cast<OSMMember *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2388,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2388,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2392,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2413,1
    - Dst: OSM_Atoi64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2415,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2417,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2419,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2421,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2423,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2426,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2428,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2435,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2440,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2440,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2449,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2453,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2473,1
    - Dst: OSM_AddString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2477,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 218
    argCount: 3
    argNames:
    - pUserData
    - pszName
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2483
      start: 2130
    functionDepth: 2
    functionLinenumber: 2130
    functionLinenumberEnd: 2483
    functionName: OSM_XML_startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - static_cast<OSMTag *>
    - VSI_REALLOC_VERBOSE
    - CPLError
    - atoi
    - OSM_AddString
    - static_cast<OSMMember *>
    - CSLDestroy
    - strcmp
    - CSLCount
    - memset
    - OSMContext*::pfnNotifyBounds
    - static_cast<OSMContext *>
    - OSM_Atoi64
    linkageType: ''
    returnType: void
    signature: "void OSM_XML_startElementCbk(void *pUserData,\n                                            const
      char *pszName,\n                                            const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OSMContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2491,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2498,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2506,1
    - Dst: OSMContext*::pfnNotifyNodes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2514,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2522,1
    - Dst: OSMContext*::pfnNotifyWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2529,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2536,1
    - Dst: OSMContext*::pfnNotifyRelation
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - pUserData
    - pszName
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2550
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2550
    functionName: OSM_XML_endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - OSMContext*::pfnNotifyWay
    - OSMContext*::pfnNotifyNodes
    - OSMContext*::pfnNotifyRelation
    - strcmp
    - CPLError
    - static_cast<OSMContext *>
    linkageType: ''
    returnType: void
    signature: void OSM_XML_endElementCbk(void *pUserData, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OSMContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2560,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2570,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2576
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2576
    functionName: OSM_XML_dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<OSMContext *>
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: "void OSM_XML_dataHandlerCbk(void *pUserData,\n                                           const
      char * /* data */,\n                                           int /* nLen */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2609,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2613,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2613,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2614,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2614,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2615,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2616,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2631
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2631
    functionName: XML_ProcessBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - XML_ErrorString
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - CPLError
    - XML_GetCurrentColumnNumber
    linkageType: ''
    returnType: OSMRetCode
    signature: OSMRetCode XML_ProcessBlock(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2645,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2656,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2656,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2660,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2662,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2671,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2671,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2679,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2684,1
    - Dst: static_cast<OSMContext *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2687,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2687,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2690,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2693,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2721,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2721,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2725,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2726,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2727,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2729,1
    - Dst: static_cast<OSMNode *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2734,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2735,1
    - Dst: static_cast<OSMTag *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2738,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2739,1
    - Dst: static_cast<OSMMember *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2745,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2746,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2749,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2750,1
    - Dst: OSM_Close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2756,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2763,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2763,1
    - Dst: OSM_Close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2766,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2769,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2770,1
    - Dst: OSM_Close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2773,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2779,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2780,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2780,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2780,1
    - Dst: CPLWorkerThreadPool::CPLWorkerThreadPool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2783,1
    - Dst: OSMContext*::poWTP::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2785,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 6
    argNames:
    - pszFilename
    - pfnNotifyNodes
    - pfnNotifyWay
    - pfnNotifyRelation
    - pfnNotifyBounds
    - user_data
    argTypes:
    - char*
    - NotifyNodesFunc
    - NotifyWayFunc
    - NotifyRelationFunc
    - NotifyBoundsFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2793
      start: 2639
    functionDepth: 2
    functionLinenumber: 2639
    functionLinenumberEnd: 2793
    functionName: OSM_Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - memcmp
    - OGRCreateExpatXMLParser
    - CPLError
    - OSMContext*::poWTP::Setup
    - static_cast<OSMContext *>
    - static_cast<GIntBig *>
    - static_cast<OSMNode *>
    - strlen
    - XML_SetUserData
    - static_cast<OSMTag *>
    - reinterpret_cast<const char *>
    - static_cast<OSMMember *>
    - VSIFSeekL
    - min
    - VSIFOpenL
    - OSM_Close
    - strstr
    - static_cast<GByte *>
    - static_cast<char *>
    - XML_SetElementHandler
    - CPLWorkerThreadPool::CPLWorkerThreadPool
    - VSIFCloseL
    - EQUAL
    - max
    - XML_SetCharacterDataHandler
    - memset
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OSMContext
    signature: "OSMContext *OSM_Open(const char *pszFilename, NotifyNodesFunc pfnNotifyNodes,\n
      \                    NotifyWayFunc pfnNotifyWay,\n                     NotifyRelationFunc
      pfnNotifyRelation,\n                     NotifyBoundsFunc pfnNotifyBounds, void
      *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2808,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2810,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2814,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2815,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2816,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2817,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2818,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2819,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2820,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2821,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2824,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2826
      start: 2799
    functionDepth: 1
    functionLinenumber: 2799
    functionLinenumberEnd: 2826
    functionName: OSM_Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - XML_ParserFree
    - VSIFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void OSM_Close(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2834,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2846,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2847,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2848,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2849,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2864
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2864
    functionName: OSM_ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - XML_SetElementHandler
    - VSIFSeekL
    - XML_ParserFree
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    linkageType: ''
    returnType: void
    signature: void OSM_ResetReading(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBF_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2874,1
    - Dst: XML_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2876,1
    - Dst: PBF_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp:2878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2880
      start: 2870
    functionDepth: 8
    functionLinenumber: 2870
    functionLinenumberEnd: 2880
    functionName: OSM_ProcessBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached:
    - PBF_ProcessBlock
    - XML_ProcessBlock
    linkageType: ''
    returnType: OSMRetCode
    signature: OSMRetCode OSM_ProcessBlock(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psCtxt
    argTypes:
    - OSMContext*
    constantsTouched: []
    func_position:
      end: 2889
      start: 2886
    functionDepth: 0
    functionLinenumber: 2886
    functionLinenumberEnd: 2889
    functionName: OSM_GetBytesRead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GUIntBig
    signature: GUIntBig OSM_GetBytesRead(OSMContext *psCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: OSMGetOSMConfIni
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSMGetOSMConfIni(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nLine
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: GPBException::GPBException
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void GPBException(int nLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: GPBException::what
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *what() const noexcept override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:86,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: ReadVarUInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 5
    functionsReached:
    - static_cast<unsigned>
    linkageType: ''
    returnType: int
    signature: int ReadVarUInt32(const GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:136,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:138,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 153
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 153
    functionName: ReadVarUInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    linkageType: ''
    returnType: GUIntBig
    signature: GUIntBig ReadVarUInt64(const GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:176,1
    - Dst: ReadVarUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ReadVarInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - ReadVarUInt64
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig ReadVarInt64(const GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:192,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: DecodeSInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig DecodeSInt(GUIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:198,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: DecodeSInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - static_cast<GInt32>
    linkageType: ''
    returnType: GInt32
    signature: GInt32 DecodeSInt(GUInt32 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:208,1
    - Dst: ReadVarUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppabyPtr
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: ReadVarSInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - DecodeSInt
    - ReadVarUInt64
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig ReadVarSInt64(const GByte **ppabyPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:231,1
    - Dst: ReadVarUInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:231,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: ReadVarInt32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<int>
    - ReadVarUInt64
    linkageType: ''
    returnType: int
    signature: int ReadVarInt32(const GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:258,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: ReadFloat32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 3
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: float
    signature: float ReadFloat32(const GByte **ppabyData, const GByte *pabyDataLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:273,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ppabyData
    - pabyDataLimit
    argTypes:
    - GByte**
    - GByte*
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: ReadFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 3
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: double
    signature: double ReadFloat64(const GByte **ppabyData, const GByte *pabyDataLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ppabyData
    argTypes:
    - GByte**
    constantsTouched: []
    func_position:
      end: 296
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 296
    functionName: SkipVarInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SkipVarInt(const GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_UNKNOWN_FIELD_INLINE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:376,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:377,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:383,1
    - Dst: what
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - nKey
    - pabyData
    - pabyDataLimit
    - verbose
    argTypes:
    - int
    - GByte*
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: SkipUnknownField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 0
    functionsReached:
    - CPLError
    - SKIP_UNKNOWN_FIELD_INLINE
    - what
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: "int SkipUnknownField(int nKey, const GByte *pabyData,\n                            const
      GByte *pabyDataLimit, int verbose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: GetVarUIntSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetVarUIntSize(GUIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:420,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: EncodeSInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 4
    functionsReached:
    - static_cast<GUIntBig>
    linkageType: ''
    returnType: GUIntBig
    signature: GUIntBig EncodeSInt(GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:428,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GInt32
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: EncodeSInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 4
    functionsReached:
    - static_cast<GUInt32>
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 EncodeSInt(GInt32 nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:439,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: GetVarIntSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - GetVarUIntSize
    linkageType: ''
    returnType: int
    signature: int GetVarIntSize(GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:448,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nVal
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: GetVarSIntSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - GetVarUIntSize
    - EncodeSInt
    linkageType: ''
    returnType: int
    signature: int GetVarSIntSize(GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:460,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ppabyData
    - nVal
    argTypes:
    - GByte**
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: WriteVarUInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 18
    functionsReached:
    - static_cast<GByte>
    linkageType: ''
    returnType: void
    signature: void WriteVarUInt(GByte **ppabyData, GUIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:476,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ppabyData
    - nVal
    argTypes:
    - GByte**
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 480
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 480
    functionName: WriteVarUIntSingleByte
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 5
    functionsReached:
    - CPLAssert
    - static_cast<GByte>
    linkageType: ''
    returnType: void
    signature: void WriteVarUIntSingleByte(GByte **ppabyData, GUIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:488,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ppabyData
    - nVal
    argTypes:
    - GByte**
    - GIntBig
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: WriteVarInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 3
    functionsReached:
    - static_cast<GUIntBig>
    - WriteVarUInt
    linkageType: ''
    returnType: void
    signature: void WriteVarInt(GByte **ppabyData, GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:497,1
    - Dst: EncodeSInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ppabyData
    - nVal
    argTypes:
    - GByte**
    - GIntBig
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: WriteVarSInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - EncodeSInt
    - WriteVarUInt
    linkageType: ''
    returnType: void
    signature: void WriteVarSInt(GByte **ppabyData, GIntBig nVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:506,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ppabyData
    - fVal
    argTypes:
    - GByte**
    - float
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: WriteFloat32
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 6
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: void WriteFloat32(GByte **ppabyData, float fVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:517,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ppabyData
    - dfVal
    argTypes:
    - GByte**
    - double
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: WriteFloat64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 8
    functionsReached:
    - memcpy
    - CPL_LSBPTR64
    linkageType: ''
    returnType: void
    signature: void WriteFloat64(GByte **ppabyData, double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:529,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszText
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: GetTextSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - GetVarUIntSize
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetTextSize(const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVarUIntSize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:535,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osText
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: GetTextSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - GetVarUIntSize
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetTextSize(const std::string &osText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:545,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ppabyData
    - pszText
    argTypes:
    - GByte**
    - char*
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: WriteText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - memcpy
    - WriteVarUInt
    linkageType: ''
    returnType: void
    signature: void WriteText(GByte **ppabyData, const char *pszText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteVarUInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:553,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:554,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ppabyData
    - osText
    argTypes:
    - GByte**
    - std::string
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: WriteText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/gpb.h
    functionUses: 1
    functionsReached:
    - memcpy
    - std::string::c_str
    - WriteVarUInt
    linkageType: ''
    returnType: void
    signature: void WriteText(GByte **ppabyData, const std::string &osText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:57,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:58,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:60,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:60,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:61,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:63,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:64,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:66,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - poDSIn
    - nIdxLayerIn
    - pszName
    argTypes:
    - OGROSMDataSource*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: OGROSMLayer::OGROSMLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - SetAxisMappingStrategy
    - Reference
    - SetWellKnownGeogCS
    - SetDescription
    - GetGeomFieldCount
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGROSMLayer::OGROSMLayer(OGROSMDataSource *poDSIn, int nIdxLayerIn,\n
      \                        const char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:76,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:79,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:81,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:81,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:82,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:84,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:84,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:85,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:87,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:87,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:88,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:90,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:90,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: OGROSMLayer::~OGROSMLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - sqlite3_finalize
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::~OGROSMLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterleavedReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:102,1
    - Dst: MyResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: OGROSMLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - MyResetReading
    - IsInterleavedReading
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: OGROSMLayer::ForceResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::ForceResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:128,1
    - Dst: OGRLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:131,1
    - Dst: IsInterleavedReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:137,1
    - Dst: MyResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - pszAttrQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: OGROSMLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::SetAttributeFilter
    - MyResetReading
    - IsInterleavedReading
    - strcmp
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROSMLayer::SetAttributeFilter(const char *pszAttrQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFeatureCountEnabled
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:160,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: OGROSMLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    - IsFeatureCountEnabled
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROSMLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMLayer::MyGetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:173,1
    - Dst: SetCurrentLayer
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: OGROSMLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - SetCurrentLayer
    - OGROSMLayer::MyGetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROSMLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentLayer
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:182,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:185,1
    - Dst: IsInterleavedReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:187,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:200,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:202,1
    - Dst: m_apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:203,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:206,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:207,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:210,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:210,1
    - Dst: ParseNextChunk
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:216,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:218,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:223,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:225,1
    - Dst: m_apoFeatures::empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:226,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:228,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:229,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:232,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:232,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:249,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:257,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:260,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:263,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - ppoNewCurLayer
    - pfnProgress
    - pProgressData
    argTypes:
    - OGROSMLayer**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 267
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 267
    functionName: OGROSMLayer::MyGetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 1
    functionsReached:
    - size
    - GetCurrentLayer
    - empty
    - GetLayerCount
    - m_apoFeatures::empty
    - auto::release
    - get
    - IsInterleavedReading
    - CPLDebug
    - std::move
    - m_apoFeatures::size
    - GetName
    - ParseNextChunk
    - clear
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGROSMLayer::MyGetNextFeature(OGROSMLayer **ppoNewCurLayer,\n
      \                                         GDALProgressFunc pfnProgress,\n                                          void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:275,1
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: OGROSMLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetExtent
    linkageType: ''
    returnType: int
    signature: int OGROSMLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:292,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:296,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:303,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:311,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:311,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:315,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:318,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:318,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - poFeature
    - bCheckFeatureThreshold
    argTypes:
    - std::unique_ptr<OGRFeature>
    - bool
    constantsTouched: []
    func_position:
      end: 323
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 323
    functionName: OGROSMLayer::AddToArray
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<uint64_t>
    - std::move
    - push_back
    - CPLError
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool OGROSMLayer::AddToArray(std::unique_ptr<OGRFeature> poFeature,\n
      \                            bool bCheckFeatureThreshold)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: OGROSMLayer::EvaluateAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    linkageType: ''
    returnType: int
    signature: int OGROSMLayer::EvaluateAttributeFilter(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<OGRFeature>::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:349,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:351,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:353,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:355,1
    - Dst: std::unique_ptr<OGRFeature>::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:355,1
    - Dst: OGROSMLayer::AddToArray
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:357,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - poFeature
    - bAttrFilterAlreadyEvaluated
    - pbFilteredOut
    - bCheckFeatureThreshold
    argTypes:
    - std::unique_ptr<OGRFeature>
    - bool
    - bool*
    - bool
    constantsTouched: []
    func_position:
      end: 372
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 372
    functionName: OGROSMLayer::AddFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - Evaluate
    - FilterGeometry
    - std::move
    - std::unique_ptr<OGRFeature>::GetGeometryRef
    - OGROSMLayer::AddToArray
    - std::unique_ptr<OGRFeature>::get
    linkageType: ''
    returnType: bool
    signature: "bool OGROSMLayer::AddFeature(std::unique_ptr<OGRFeature> poFeature,\n
      \                            bool bAttrFilterAlreadyEvaluated,\n                             bool
      *pbFilteredOut, bool bCheckFeatureThreshold)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: OGROSMLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGROSMLayer::IGetExtent(int /* iGeomField */, OGREnvelope *psExtent,\n
      \                              bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DoesAttributeNameLaundering
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:393,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 409
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 409
    functionName: OGROSMLayer::GetLaunderedFieldName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - DoesAttributeNameLaundering
    linkageType: ''
    returnType: char
    signature: char *OGROSMLayer::GetLaunderedFieldName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:420,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:421,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:425,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:428,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:431,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:434,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pszName
    - eFieldType
    - eSubType
    argTypes:
    - char*
    - OGRFieldType
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 439
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 439
    functionName: OGROSMLayer::AddField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - push_back
    - AddFieldDefn
    - OGRFieldDefn::SetSubType
    linkageType: ''
    returnType: void
    signature: "void OGROSMLayer::AddField(const char *pszName, OGRFieldType eFieldType,\n
      \                          OGRFieldSubType eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:447,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: OGROSMLayer::GetFieldIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGROSMLayer::GetFieldIndex(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:462,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:462,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:470,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pszK
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 479
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 479
    functionName: OGROSMLayer::AddInOtherOrAllTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int OGROSMLayer::AddInOtherOrAllTags(const char *pszK)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pszV
    - sOut
    argTypes:
    - char*
    - std::string
    constantsTouched: []
    func_position:
      end: 497
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 497
    functionName: OGROSMEscapeStringHSTORE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMEscapeStringHSTORE(const char *pszV, std::string &sOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:528,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - pszV
    - sOut
    argTypes:
    - char*
    - std::string
    constantsTouched: []
    func_position:
      end: 537
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 537
    functionName: OGROSMEscapeStringJSON
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - static_cast<unsigned char>
    linkageType: ''
    returnType: void
    signature: void OGROSMEscapeStringJSON(const char *pszV, std::string &sOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pszKeyToSearch
    - nTags
    - pasTags
    argTypes:
    - char*
    - unsigned int
    - OSMTag*
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: GetValueOfTag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: "char *GetValueOfTag(const char *pszKeyToSearch, unsigned int nTags,\n
      \                                const OSMTag *pasTags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:568,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:573,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:574,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:579,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:584,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:585,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:591,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:598,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:600,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:606,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:607,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:610,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:615,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:619,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:623,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:626,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:634,1
    - Dst: OGROSMLayer::AddInOtherOrAllTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:640,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:644,1
    - Dst: OGROSMEscapeStringHSTORE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:647,1
    - Dst: OGROSMEscapeStringHSTORE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:652,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:656,1
    - Dst: OGROSMEscapeStringJSON
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:660,1
    - Dst: OGROSMEscapeStringJSON
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:662,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:667,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:667,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:669,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:670,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:676,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:683,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:683,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:685,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:685,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:688,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:720,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:722,1
    - Dst: GetValueOfTag
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:726,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:729,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:730,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:731,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:732,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:736,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:737,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:741,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:742,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:746,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:747,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:751,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:752,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:756,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:757,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:766,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:768,1
    - Dst: GetValueOfTag
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:772,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:775,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:776,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:777,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:786,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:788,1
    - Dst: GetValueOfTag
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:792,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:795,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:796,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:797,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:806,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:808,1
    - Dst: GetValueOfTag
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:812,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:821,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:823,1
    - Dst: GetValueOfTag
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:827,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:830,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:833,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:838,1
    - Dst: OGROSMComputedAttribute::anIndexToBind::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:838,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:842,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:844,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:849,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:852,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:853,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:856,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:857,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:860,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:861,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:864,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:866,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:877,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:879,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:886,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:890,1
    - Dst: sqlite3_column_count
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:891,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:893,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:896,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:897,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:897,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:901,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:902,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:905,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:906,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:907,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:914,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 188
    argCount: 6
    argNames:
    - poFeature
    - nID
    - bIsWayID
    - nTags
    - pasTags
    - psInfo
    argTypes:
    - OGRFeature*
    - GIntBig
    - bool
    - unsigned int
    - OSMTag*
    - OSMInfo*
    constantsTouched: []
    func_position:
      end: 916
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 916
    functionName: OGROSMLayer::SetFieldsFromTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - atoi
    - OGRParseXMLDateTime
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - strcmp
    - sqlite3_column_double
    - GetFieldDefn
    - sqlite3_column_text
    - GetValueOfTag
    - static_cast<GIntBig>
    - sqlite3_column_int64
    - end
    - sqlite3_reset
    - sqlite3_column_type
    - insert
    - OGROSMEscapeStringJSON
    - find
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - CPLUnixTimeToYMDHMS
    - sqlite3_bind_int64
    - sqlite3_bind_double
    - sqlite3_bind_text
    - sqlite3_column_count
    - c_str
    - static_cast<int>
    - static_cast<float>
    - reinterpret_cast<const char *>
    - snprintf
    - OGROSMEscapeStringHSTORE
    - size
    - OGROSMComputedAttribute::anIndexToBind::size
    - empty
    - OGROSMLayer::AddInOtherOrAllTags
    - sqlite3_bind_int
    - OGRFeature*::SetField
    - sqlite3_step
    - sqlite3_bind_null
    - OGRFeature*::SetFID
    - clear
    linkageType: ''
    returnType: void
    signature: "void OGROSMLayer::SetFieldsFromTags(OGRFeature *poFeature, GIntBig
      nID,\n                                    bool bIsWayID, unsigned int nTags,\n
      \                                   const OSMTag *pasTags,\n                                    const
      OSMInfo *psInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 928
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 928
    functionName: OGROSMLayer::GetSpatialFilterEnvelope
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGREnvelope
    signature: OGREnvelope *OGROSMLayer::GetSpatialFilterEnvelope()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszK
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: OGROSMLayer::AddInsignificantKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::AddInsignificantKey(const char *pszK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszK
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 950
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 950
    functionName: OGROSMLayer::AddIgnoreKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::AddIgnoreKey(const char *pszK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszK
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 959
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 959
    functionName: OGROSMLayer::AddWarnKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer::AddWarnKey(const char *pszK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:976,1
    - Dst: OGROSMLayer::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:982,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:984,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1018,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1022,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1024,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1025,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1027,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1028,1
    - Dst: OGROSMLayer::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1028,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1034,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1036,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1036,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1039,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1039,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1046,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1048,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1053,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1054,1
    - Dst: OGROSMComputedAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1054,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1055,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1057,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1060,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp:1061,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - pszName
    - eType
    - pszSQL
    argTypes:
    - char*
    - OGRFieldType
    - char*
    constantsTouched: []
    func_position:
      end: 1063
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 1063
    functionName: OGROSMLayer::AddComputedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - back
    - CPLString::substr
    - GetFieldCount
    - CPLDebug
    - CPLString::c_str
    - CPLString::size
    - std::move
    - AddFieldDefn
    - sqlite3_errmsg
    - push_back
    - CPLError
    - OGROSMComputedAttribute
    - CPLString::resize
    - OGROSMLayer::GetFieldIndex
    linkageType: ''
    returnType: void
    signature: "void OGROSMLayer::AddComputedAttribute(const char *pszName, OGRFieldType
      eType,\n                                       const char *pszSQL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: operator()(const char *a, const char *b) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool operator()(const char *a, const char *b) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: OGROSMComputedAttribute::OGROSMComputedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMComputedAttribute()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: OGROSMComputedAttribute::OGROSMComputedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMComputedAttribute(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: OGROSMComputedAttribute::OGROSMComputedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMComputedAttribute(OGROSMComputedAttribute &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '&operator=(OGROSMComputedAttribute &&)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMComputedAttribute
    signature: OGROSMComputedAttribute &operator=(OGROSMComputedAttribute &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: OGROSMComputedAttribute::OGROSMComputedAttribute
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMComputedAttribute(const OGROSMComputedAttribute &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: "&\n    operator=(const OGROSMComputedAttribute &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMComputedAttribute
    signature: "OGROSMComputedAttribute &\n    operator=(const OGROSMComputedAttribute
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: OGROSMLayer::OGROSMLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMLayer(const OGROSMLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: '&operator=(const OGROSMLayer &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMLayer
    signature: OGROSMLayer &operator=(const OGROSMLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: OGROSMLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: OGROSMLayer::HasOSMId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasOSMId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: OGROSMLayer::SetHasOSMId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasOSMId(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: OGROSMLayer::HasVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGROSMLayer::SetHasVersion
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasVersion(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OGROSMLayer::HasTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasTimestamp() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: OGROSMLayer::SetHasTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasTimestamp(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: OGROSMLayer::HasUID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasUID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: OGROSMLayer::SetHasUID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasUID(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OGROSMLayer::HasUser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasUser() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: OGROSMLayer::SetHasUser
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasUser(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: OGROSMLayer::HasChangeset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasChangeset() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: OGROSMLayer::SetHasChangeset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasChangeset(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OGROSMLayer::HasOtherTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasOtherTags() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: OGROSMLayer::SetHasOtherTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasOtherTags(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: OGROSMLayer::HasAllTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasAllTags() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: OGROSMLayer::SetHasAllTags
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasAllTags(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: OGROSMLayer::SetDeclareInterest
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDeclareInterest(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: OGROSMLayer::IsUserInterested
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUserInterested() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: OGROSMLayer::HasAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasAttributeFilter() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h:274,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszK
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: OGROSMLayer::IsSignificantKey
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int IsSignificantKey(const char *pszK) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 559
    functionName: OGROSMDataSource::OGROSMDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource(const OGROSMDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 560
    functionName: '&operator=(const OGROSMDataSource &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMDataSource
    signature: OGROSMDataSource &operator=(const OGROSMDataSource &)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h:568,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: OGROSMDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: OGROSMDataSource::GetCurrentLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMLayer
    signature: OGROSMLayer *GetCurrentLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLyr
    argTypes:
    - OGROSMLayer*
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: OGROSMDataSource::SetCurrentLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCurrentLayer(OGROSMLayer *poLyr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: OGROSMDataSource::IsFeatureCountEnabled
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFeatureCountEnabled() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: OGROSMDataSource::DoesAttributeNameLaundering
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogr_osm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DoesAttributeNameLaundering() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: typedef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_C_START
    signature: CPL_C_START typedef
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:72,1
    - Dst: floor
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: DBL_TO_INT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - floor
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int DBL_TO_INT(double x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: INT_TO_DBL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double INT_TO_DBL(int x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - _id
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: VALID_ID_FOR_CUSTOM_INDEXING
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VALID_ID_FOR_CUSTOM_INDEXING(GIntBig _id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCompressSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: COMPRESS_SIZE_TO_BYTE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    linkageType: ''
    returnType: GByte
    signature: GByte COMPRESS_SIZE_TO_BYTE(size_t nCompressSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nCompressSize
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: ROUND_COMPRESS_SIZE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T ROUND_COMPRESS_SIZE(T nCompressSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - byte_on_size
    argTypes:
    - GByte
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: COMPRESS_SIZE_FROM_BYTE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int COMPRESS_SIZE_FROM_BYTE(GByte byte_on_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:182,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:185,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - osDSName
    - osInterestLayers
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: AddInterestLayersForDSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - CPLGetPID
    - push_back
    linkageType: ''
    returnType: void
    signature: "void AddInterestLayersForDSName(const CPLString &osDSName,\n                                       const
      CPLString &osInterestLayers)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetPID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:195,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:196,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:197,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - osDSName
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: GetInterestLayersForDSName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - CPLGetPID
    - erase
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetInterestLayersForDSName(const CPLString &osDSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:216,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:218,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:219,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:219,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:220,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:221,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: OGROSMDataSource::OGROSMDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - static_cast<unsigned>
    - push_back
    - atoi
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::OGROSMDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:231,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:234,1
    - Dst: OSM_GetBytesRead
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:235,1
    - Dst: OSM_Close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:236,1
    - Dst: OGROSMDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:239,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:242,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:246,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:247,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:248,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:251,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:254,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:255,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:258,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:260,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:261,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:263,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:264,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:266,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:267,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:268,1
    - Dst: fopen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:271,1
    - Dst: startic_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:272,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:272,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:277,1
    - Dst: fclose
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:281,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:284,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:284,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:289,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:290,1
    - Dst: KeyDesc*::apszValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:290,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:291,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:297,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:298,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:301,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:302,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:305,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:313,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:319,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 322
    functionName: OGROSMDataSource::~OGROSMDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - sqlite3_close
    - startic_cast<int>
    - fopen
    - fprintf
    - static_cast<int>
    - fclose
    - VSIUnlink
    - OSM_Close
    - OGROSMDataSource::CloseDB
    - CPLFree
    - size
    - empty
    - VSIFCloseL
    - sqlite3_vfs_unregister
    - EQUAL
    - KeyDesc*::apszValues::size
    - OSM_GetBytesRead
    - clear
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::~OGROSMDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:331,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:335,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:339,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:343,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:347,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:355,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:357,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:366,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:368,1
    - Dst: OGROSMDataSource::CommitTransactionCacheDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:373,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:375,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 377
    functionName: OGROSMDataSource::CloseDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_close
    - CPLFree
    - OGROSMDataSource::CommitTransactionCacheDB
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::CloseDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::IndexPointCustom
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:402,1
    - Dst: OGROSMDataSource::IndexPointSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - OSMNode*
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: OGROSMDataSource::IndexPoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::IndexPointCustom
    - OGROSMDataSource::IndexPointSQLite
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::IndexPoint(const OSMNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:413,1
    - Dst: DBL_TO_INT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:416,1
    - Dst: DBL_TO_INT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:417,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:419,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:423,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:426,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - OSMNode*
    constantsTouched: []
    func_position:
      end: 433
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 433
    functionName: OGROSMDataSource::IndexPointSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - sqlite3_bind_blob
    - DBL_TO_INT
    - sqlite3_bind_int64
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::IndexPointSQLite(const OSMNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::FlushCurrentSectorCompressedCase
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:443,1
    - Dst: OGROSMDataSource::FlushCurrentSectorNonCompressedCase
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 449
    functionName: OGROSMDataSource::FlushCurrentSector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::FlushCurrentSectorCompressedCase
    - OGROSMDataSource::FlushCurrentSectorNonCompressedCase
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::FlushCurrentSector()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:461,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:464,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:464,1
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:466,1
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:478,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:481,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:481,1
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:483,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - iBucket
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 497
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 497
    functionName: OGROSMDataSource::AllocBucket
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSI_CALLOC_VERBOSE
    - reinterpret_cast<GByte *>
    - OGROSMDataSource::GetBucket
    - static_cast<GByte *>
    - CPLError
    linkageType: ''
    returnType: Bucket
    signature: Bucket *OGROSMDataSource::AllocBucket(int iBucket)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:505,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nBucketId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 517
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 517
    functionName: OGROSMDataSource::GetBucket
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: Bucket
    signature: Bucket *OGROSMDataSource::GetBucket(int nBucketId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<LonLat *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:527,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:532,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:533,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:543,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:544,1
    - Dst: WriteVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:546,1
    - Dst: WriteVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:547,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:551,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:562,1
    - Dst: ROUND_COMPRESS_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:565,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:567,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:575,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:577,1
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:580,1
    - Dst: OGROSMDataSource::AllocBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:583,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:587,1
    - Dst: COMPRESS_SIZE_TO_BYTE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:589,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:594,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:596,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 599
    functionName: OGROSMDataSource::FlushCurrentSectorCompressedCase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<size_t>
    - c_str
    - reinterpret_cast<LonLat *>
    - CPLError
    - ROUND_COMPRESS_SIZE
    - OGROSMDataSource::GetBucket
    - OGROSMDataSource::AllocBucket
    - WriteVarSInt64
    - CPLAssert
    - VSIFWriteL
    - COMPRESS_SIZE_TO_BYTE
    - memset
    - memcpy
    - VSIStrerror
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::FlushCurrentSectorCompressedCase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:607,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:607,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:608,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:610,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:615,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:617,1
    - Dst: VSIStrerror
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 620
    functionName: OGROSMDataSource::FlushCurrentSectorNonCompressedCase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - c_str
    - VSIFWriteL
    - CPLError
    - memset
    - VSIStrerror
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::FlushCurrentSectorNonCompressedCase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:630,1
    - Dst: VALID_ID_FOR_CUSTOM_INDEXING
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:635,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:637,1
    - Dst: OGROSMDataSource::GetBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:651,1
    - Dst: OGROSMDataSource::AllocBucket
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:659,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:663,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:669,1
    - Dst: OGROSMDataSource::FlushCurrentSector
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:672,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:680,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:681,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:685,1
    - Dst: OGROSMDataSource::FlushCurrentSector
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:686,1
    - Dst: reinterpret_cast<LonLat *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:694,1
    - Dst: DBL_TO_INT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:696,1
    - Dst: DBL_TO_INT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - OSMNode*
    constantsTouched: []
    func_position:
      end: 702
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 702
    functionName: OGROSMDataSource::IndexPointCustom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<LonLat *>
    - VALID_ID_FOR_CUSTOM_INDEXING
    - OGROSMDataSource::AllocBucket
    - OGROSMDataSource::GetBucket
    - OGROSMDataSource::FlushCurrentSector
    - DBL_TO_INT
    - CPLAssert
    - VSIFTellL
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::IndexPointCustom(const OSMNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSpatialFilterEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:711,1
    - Dst: OGROSMDataSource::IndexPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:723,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:726,1
    - Dst: IsSignificantKey
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:737,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:747,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:748,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:750,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:751,1
    - Dst: SetFieldsFromTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:753,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:754,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:758,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:758,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 27
    argCount: 2
    argNames:
    - nNodes
    - pasNodes
    argTypes:
    - unsigned int
    - OSMNode*
    constantsTouched: []
    func_position:
      end: 769
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 769
    functionName: OGROSMDataSource::NotifyNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::SetGeometryDirectly
    - GetLayerDefn
    - SetFieldsFromTags
    - IsUserInterested
    - auto::get
    - OGRPoint::OGRPoint
    - std::move
    - GetSpatialFilterEnvelope
    - AddFeature
    - OGROSMDataSource::IndexPoint
    - IsSignificantKey
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::NotifyNodes(unsigned int nNodes, const OSMNode
      *pasNodes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGROSMDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nNodes
    - pasNodes
    - user_data
    argTypes:
    - unsigned int
    - OSMNode*
    - void*
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: OGROSMNotifyNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGROSMDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGROSMNotifyNodes(unsigned int nNodes, OSMNode *pasNodes,\n                              OSMContext
      * /* psOSMContext */, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::LookupNodesCustom
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:786,1
    - Dst: OGROSMDataSource::LookupNodesSQLite
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:788,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:793,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:819,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:838,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:862,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 871
    functionName: OGROSMDataSource::LookupNodes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - memset
    - OGROSMDataSource::LookupNodesSQLite
    - OGROSMDataSource::LookupNodesCustom
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::LookupNodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:879,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:880,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:889,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:905,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:906,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:908,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:912,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:916,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:918,1
    - Dst: reinterpret_cast<const LonLat *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:920,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:920,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:928,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 931
    functionName: OGROSMDataSource::LookupNodesSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - static_cast<unsigned int>
    - assert
    - std::sort
    - CPLAssert
    - sqlite3_column_blob
    - sqlite3_bind_int64
    - sqlite3_step
    - reinterpret_cast<const LonLat *>
    - sqlite3_column_int64
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::LookupNodesSQLite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<LonLat *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:941,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:954,1
    - Dst: ReadVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:954,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:956,1
    - Dst: ReadVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:956,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:961,1
    - Dst: ROUND_COMPRESS_SIZE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - pabyIn
    - nSectorSize
    - pabyOut
    argTypes:
    - GByte*
    - int
    - GByte*
    constantsTouched: []
    func_position:
      end: 978
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 978
    functionName: DecompressSector
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<LonLat *>
    - ROUND_COMPRESS_SIZE
    - ReadVarSInt64
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool DecompressSector(const GByte *pabyIn, int nSectorSize,\n                             GByte
      *pabyOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::FlushCurrentSector
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:990,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:999,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1000,1
    - Dst: VALID_ID_FOR_CUSTOM_INDEXING
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1006,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1013,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1014,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1037,1
    - Dst: OGROSMDataSource::LookupNodesCustomCompressedCase
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1056,1
    - Dst: OGROSMDataSource::LookupNodesCustomNonCompressedCase
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1058,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1060
    functionName: OGROSMDataSource::LookupNodesCustom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - VALID_ID_FOR_CUSTOM_INDEXING
    - static_cast<unsigned int>
    - find
    - OGROSMDataSource::FlushCurrentSector
    - OGROSMDataSource::LookupNodesCustomNonCompressedCase
    - std::sort
    - CPLAssert
    - OGROSMDataSource::LookupNodesCustomCompressedCase
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::LookupNodesCustom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1070,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1096,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1097,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1099,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1107,1
    - Dst: COMPRESS_SIZE_FROM_BYTE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1121,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1124,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1128,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1128,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1129,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1131,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1139,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1139,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1142,1
    - Dst: DecompressSector
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1149,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1151,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1165,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1066
    functionDepth: 3
    functionLinenumber: 1066
    functionLinenumberEnd: 1173
    functionName: OGROSMDataSource::LookupNodesCustomCompressedCase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - end
    - static_cast<size_t>
    - static_cast<int>
    - DecompressSector
    - find
    - VSIFSeekL
    - COMPRESS_SIZE_FROM_BYTE
    - VSIFReadL
    - CPLError
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::LookupNodesCustomCompressedCase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_STATIC_ASSERT
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1187,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1209,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1212,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1220,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1235,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1243,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1253,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1254,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1256,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1266,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1270,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1278
    functionName: OGROSMDataSource::LookupNodesCustomNonCompressedCase
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - end
    - find
    - assert
    - VSIFSeekL
    - VSIFReadL
    - CPLError
    - memcpy
    - CPL_STATIC_ASSERT
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::LookupNodesCustomNonCompressedCase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1290,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1290,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1294,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nVal
    - abyData
    argTypes:
    - unsigned int
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 1297
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1297
    functionName: WriteVarInt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 3
    functionsReached:
    - static_cast<GByte>
    - std::vector<GByte>::push_back
    linkageType: ''
    returnType: void
    signature: void WriteVarInt(unsigned int nVal, std::vector<GByte> &abyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1307,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1309,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1309,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1313,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nVal
    - abyData
    argTypes:
    - GUIntBig
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 1316
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1316
    functionName: WriteVarInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GByte>
    - std::vector<GByte>::push_back
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void WriteVarInt64(GUIntBig nVal, std::vector<GByte> &abyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1330,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1330,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1334,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nSVal
    - abyData
    argTypes:
    - GIntBig
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 1337
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1337
    functionName: WriteVarSInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GByte>
    - std::vector<GByte>::push_back
    linkageType: ''
    returnType: void
    signature: void WriteVarSInt64(GIntBig nSVal, std::vector<GByte> &abyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1352,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - nSVal
    - ppabyData
    argTypes:
    - GIntBig
    - GByte**
    constantsTouched: []
    func_position:
      end: 1361
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1361
    functionName: WriteVarSInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GByte>
    linkageType: ''
    returnType: void
    signature: void WriteVarSInt64(GIntBig nSVal, GByte **ppabyData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<GByte>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1373,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1374,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1375,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1376,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1376,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1382,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1390,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1392,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1393,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1393,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1394,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1394,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1399,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1408,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1410,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1411,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1411,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1412,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1412,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1420,1
    - Dst: WriteVarInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1421,1
    - Dst: WriteVarInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1422,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1423,1
    - Dst: WriteVarInt
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1424,1
    - Dst: std::vector<GByte>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1429,1
    - Dst: std::vector<GByte>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1433,1
    - Dst: std::vector<GByte>::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1434,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1435,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1436,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1439,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1440,1
    - Dst: WriteVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1441,1
    - Dst: WriteVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 7
    argNames:
    - bIsArea
    - nTags
    - pasTags
    - nPoints
    - pasLonLatPairs
    - psInfo
    - abyCompressedWay
    argTypes:
    - bool
    - unsigned int
    - IndexedKVP*
    - int
    - LonLat*
    - OSMInfo*
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 1446
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1446
    functionName: OGROSMDataSource::CompressWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - std::vector<GByte>::clear
    - reinterpret_cast<const GByte *>
    - WriteVarSInt64
    - std::vector<GByte>::insert
    - CPLAssert
    - static_cast<GByte>
    - std::vector<GByte>::end
    - strlen
    - std::vector<GByte>::push_back
    - WriteVarInt64
    - WriteVarInt
    linkageType: ''
    returnType: void
    signature: "void OGROSMDataSource::CompressWay(bool bIsArea, unsigned int nTags,\n
      \                                  const IndexedKVP *pasTags, int nPoints,\n
      \                                  const LonLat *pasLonLatPairs,\n                                   const
      OSMInfo *psInfo,\n                                   std::vector<GByte> &abyCompressedWay)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<LonLat>::clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1458,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1469,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1494,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1494,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1494,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1496,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1498,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1499,1
    - Dst: apszValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1500,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1502,1
    - Dst: ReadVarInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1516,1
    - Dst: ReadVarInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1517,1
    - Dst: ReadVarInt32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1518,1
    - Dst: ReadVarInt32
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1519,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1529,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1530,1
    - Dst: std::vector<LonLat>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1531,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1535,1
    - Dst: ReadVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1535,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1536,1
    - Dst: ReadVarSInt64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1536,1
    - Dst: std::vector<LonLat>::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1537,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 7
    argNames:
    - nBytes
    - pabyCompressedWay
    - pbIsArea
    - asCoords
    - pnTags
    - pasTags
    - psInfo
    argTypes:
    - int
    - GByte*
    - bool*
    - std::vector<LonLat>
    - unsigned int*
    - OSMTag*
    - OSMInfo*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1452
    functionDepth: 2
    functionLinenumber: 1452
    functionLinenumberEnd: 1539
    functionName: OGROSMDataSource::UncompressWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    - static_cast<unsigned>
    - reinterpret_cast<const char *>
    - assert
    - CPLAssert
    - std::vector<LonLat>::emplace_back
    - ReadVarSInt64
    - apszValues::size
    - ReadVarInt64
    - std::vector<LonLat>::clear
    - ReadVarInt32
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void OGROSMDataSource::UncompressWay(int nBytes, const GByte *pabyCompressedWay,\n
      \                                    bool *pbIsArea,\n                                     std::vector<LonLat>
      &asCoords,\n                                     unsigned int *pnTags, OSMTag
      *pasTags,\n                                     OSMInfo *psInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1553,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1558,1
    - Dst: OGROSMDataSource::CompressWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1563,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1565,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1565,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1566,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1566,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1569,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1572,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - nWayID
    - bIsArea
    - nTags
    - pasTags
    - pasLonLatPairs
    - nPairs
    - psInfo
    argTypes:
    - GIntBig
    - bool
    - unsigned int
    - IndexedKVP*
    - LonLat*
    - int
    - OSMInfo*
    constantsTouched: []
    func_position:
      end: 1576
      start: 1545
    functionDepth: 3
    functionLinenumber: 1545
    functionLinenumberEnd: 1576
    functionName: OGROSMDataSource::IndexWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - OGROSMDataSource::CompressWay
    - sqlite3_reset
    - static_cast<int>
    - sqlite3_bind_blob
    - CPLDebug
    - sqlite3_bind_int64
    - sqlite3_errmsg
    - CPLError
    - data
    linkageType: ''
    returnType: void
    signature: "void OGROSMDataSource::IndexWay(GIntBig nWayID, bool bIsArea,\n                                unsigned
      int nTags, const IndexedKVP *pasTags,\n                                const
      LonLat *pasLonLatPairs, int nPairs,\n                                const OSMInfo
      *psInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - nID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1599
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1599
    functionName: OGROSMDataSource::FindNode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGROSMDataSource::FindNode(GIntBig nID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1607,1
    - Dst: OGROSMDataSource::LookupNodes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1611,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1616,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1650,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1663,1
    - Dst: OGROSMDataSource::FindNode
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1671,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1674,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1679,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1681,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1684,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1686,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1690,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1690,1
    - Dst: poFeature::reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1691,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1696,1
    - Dst: OGROSMDataSource::IndexWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1698,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1700,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1701,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1701,1
    - Dst: OGROSMDataSource::IndexWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1705,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1706,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1707,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1707,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1714,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1718,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1721,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1721,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1722,1
    - Dst: poFeature::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1725,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1727,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1728,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1734,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1735,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1743,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1750,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1754,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1757,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1760,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1766,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1605
    functionDepth: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1772
    functionName: OGROSMDataSource::ProcessWaysBatch
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - IsUserInterested
    - poFeature::SetGeometryDirectly
    - poFeature::reset
    - CPLDebug
    - AddFeature
    - CPLError
    - sqlite3_reset
    - static_cast<unsigned>
    - std::move
    - sqlite3_bind_int64
    - OGRLineString::OGRLineString
    - INT_TO_DBL
    - static_cast<int>
    - OGRLineString*::setNumPoints
    - OGROSMDataSource::FindNode
    - sqlite3_errmsg
    - OGROSMDataSource::LookupNodes
    - data
    - size
    - empty
    - push_back
    - OGROSMDataSource::IndexWay
    - OGRLineString*::setPoint
    - clear
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::ProcessWaysBatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1786,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1794,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1797,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1803,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1814,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1815,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1816,1
    - Dst: std::string::assign
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1828,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1829,1
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1830,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1831,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1832,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - nTags
    - pasTags
    argTypes:
    - unsigned int
    - OSMTag*
    constantsTouched: []
    func_position:
      end: 1840
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1840
    functionName: OGROSMDataSource::IsClosedWayTaggedAsPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::string::assign
    - find
    - std::string::reserve
    - std::string::append
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool OGROSMDataSource::IsClosedWayTaggedAsPolygon(unsigned int nTags,\n
      \                                                 const OSMTag *pasTags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1851,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1853,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1854,1
    - Dst: GetMaxTotalAllocs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1854,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1865,1
    - Dst: OGROSMDataSource::IsClosedWayTaggedAsPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1874,1
    - Dst: IsSignificantKey
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1883,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1893,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1896,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1897,1
    - Dst: SetFieldsFromTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1899,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1900,1
    - Dst: HasAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1906,1
    - Dst: AttributeFilterEvaluationNeedsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1907,1
    - Dst: EvaluateAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1911,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1912,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1925,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1926,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1927,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1929,1
    - Dst: OGROSMDataSource::ProcessWaysBatch
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1933,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1936,1
    - Dst: WayFeaturePair
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1936,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1937,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1942,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1946,1
    - Dst: OGRParseXMLDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1958,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1961,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1968,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1970,1
    - Dst: std::any_of
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1998,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1998,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:1998,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2000,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2005,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2007,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2009,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2011,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2013,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2016,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2022,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2026,1
    - Dst: KeyDesc::KeyDesc
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2036,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2037,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2038,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2038,1
    - Dst: KeyDesc*::apszValues::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2040,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2040,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2043,1
    - Dst: KeyDesc*::apszValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2060,1
    - Dst: KeyDesc*::anMapV::find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2063,1
    - Dst: KeyDesc*::anMapV::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2064,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2067,1
    - Dst: KeyDesc*::apszValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2067,1
    - Dst: KeyDesc*::apszValues::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2069,1
    - Dst: KeyDesc*::apszValues::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2083,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2085,1
    - Dst: KeyDesc*::apszValues::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2088,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2088,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2093,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2097,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2127,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 154
    argCount: 1
    argNames:
    - psWay
    argTypes:
    - OSMWay*
    constantsTouched: []
    func_position:
      end: 2130
      start: 1846
    functionDepth: 5
    functionLinenumber: 1846
    functionLinenumberEnd: 2130
    functionName: OGROSMDataSource::NotifyWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - OGROSMDataSource::ProcessWaysBatch
    - IsUserInterested
    - OGRParseXMLDateTime
    - CPLDebug
    - strcmp
    - CPLError
    - end
    - CPLStrdup
    - static_cast<unsigned int>
    - find
    - OGROSMDataSource::IsClosedWayTaggedAsPolygon
    - std::any_of
    - EvaluateAttributeFilter
    - std::move
    - KeyDesc*::anMapV::end
    - IsSignificantKey
    - AttributeFilterEvaluationNeedsGeometry
    - std::make_unique<OGRFeature>
    - GetLayerDefn
    - SetFieldsFromTags
    - static_cast<int>
    - KeyDesc::KeyDesc
    - WayFeaturePair
    - begin
    - std::unique_ptr::get
    - GetMaxTotalAllocs
    - size
    - static_cast<size_t>
    - back
    - KeyDesc*::apszValues::push_back
    - CPLYMDHMSToUnixTime
    - KeyDesc*::apszValues::size
    - push_back
    - KeyDesc*::anMapV::find
    - memset
    - memcpy
    - HasAttributeFilter
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::NotifyWay(const OSMWay *psWay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGROSMDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psWay
    - user_data
    argTypes:
    - OSMWay*
    - void*
    constantsTouched: []
    func_position:
      end: 2136
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2136
    functionName: OGROSMNotifyWay
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGROSMDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGROSMNotifyWay(OSMWay *psWay, OSMContext * /* psOSMContext */,\n
      \                           void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2156,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2160,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2177,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2179,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2186,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2188,1
    - Dst: std::map<GIntBig, std::pair<int, void *>>::find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2189,1
    - Dst: std::map<GIntBig, std::pair<int, void *>>::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2189,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2194,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2195,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - aoMapWays
    - psRelation
    argTypes:
    - std::map<GIntBig, std::pair<int, void *>>
    - OSMRelation*
    constantsTouched: []
    func_position:
      end: 2204
      start: 2142
    functionDepth: 0
    functionLinenumber: 2142
    functionLinenumberEnd: 2204
    functionName: OGROSMDataSource::LookupWays
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - std::map<GIntBig, std::pair<int, void *>>::find
    - static_cast<unsigned int>
    - std::pair
    - strcmp
    - sqlite3_bind_int64
    - sqlite3_step
    - memcpy
    - std::map<GIntBig, std::pair<int, void *>>::end
    - sqlite3_column_int64
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int OGROSMDataSource::LookupWays(\n    std::map<GIntBig,
      std::pair<int, void *>> &aoMapWays,\n    const OSMRelation *psRelation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::LookupWays
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2215,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2222,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2224,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2225,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2241,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2246,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2256,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2261,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2265,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2266,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2266,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2267,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2268,1
    - Dst: OGROSMDataSource::UncompressWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2271,1
    - Dst: data
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2271,1
    - Dst: OGROSMDataSource::UncompressWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2276,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2277,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2283,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2284,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2284,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2285,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2285,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2287,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2288,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2289,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2293,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2295,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2297,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2298,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2299,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2304,1
    - Dst: OGRMultiLineString::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2305,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2309,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2312,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2312,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2313,1
    - Dst: OGRMultiLineString::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2318,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2320,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2321,1
    - Dst: OGRBuildPolygonFromEdges
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2321,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2322,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2323,1
    - Dst: auto::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2325,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2328,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2329,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2330,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2330,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2331,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2331,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2331,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2333,1
    - Dst: OGRPolygon*::addRing
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2334,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2348,1
    - Dst: OGRGeometryFactory::organizePolygons
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2348,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2349,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2351,1
    - Dst: std::make_unique<OGRMultiPolygon>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2353,1
    - Dst: auto::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2354,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2354,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2355,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2358,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2360,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2364,1
    - Dst: OGR_G_GetGeometryName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2368,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2369,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2369,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2376,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2378,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 3
    argNames:
    - psRelation
    - pnTags
    - pasTags
    argTypes:
    - OSMRelation*
    - unsigned int*
    - OSMTag*
    constantsTouched: []
    func_position:
      end: 2379
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2379
    functionName: OGROSMDataSource::BuildMultiPolygon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::LookupWays
    - std::map::end
    - std::unique_ptr<OGRGeometry>
    - OGRBuildPolygonFromEdges
    - static_cast<const GByte *>
    - CPLDebug
    - OGRLinearRing*::getY
    - auto::get
    - strcmp
    - OGRLinearRing*::getX
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - end
    - sqlite3_reset
    - insert
    - auto::toPolygon
    - std::unique_ptr::release
    - ToHandle
    - sqlite3_bind_int64
    - std::move
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - INT_TO_DBL
    - std::vector::data
    - OGRLinearRing*::getNumPoints
    - OGRMultiLineString::addGeometryDirectly
    - FromHandle
    - OGRLinearRing::OGRLinearRing
    - auto::addGeometryDirectly
    - OGRLineString*::setNumPoints
    - OGRGeometryFactory::organizePolygons
    - OGROSMDataSource::UncompressWay
    - std::map::find
    - CPL_IGNORE_RET_VAL
    - CPLFree
    - data
    - OGRMultiLineString::getNumGeometries
    - OGR_G_GetGeometryName
    - back
    - empty
    - front
    - auto::release
    - auto::getGeometryType
    - std::make_unique<OGRMultiPolygon>
    - sqlite3_step
    - OGRPolygon*::addRing
    - OGRLineString*::setPoint
    - clear
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *OGROSMDataSource::BuildMultiPolygon(const OSMRelation
      *psRelation,\n                                                 unsigned int
      *pnTags,\n                                                 OSMTag *pasTags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::LookupWays
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2390,1
    - Dst: std::make_unique<OGRMultiLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2393,1
    - Dst: std::make_unique<OGRGeometryCollection>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2394,1
    - Dst: OGROSMDataSource::LookupNodes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2402,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2405,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2406,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2407,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2406,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2411,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2412,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2413,1
    - Dst: OGROSMDataSource::UncompressWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2418,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2418,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2423,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2424,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2425,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2426,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2431,1
    - Dst: std::unique_ptr::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2432,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2436,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2439,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2439,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2440,1
    - Dst: std::unique_ptr::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2445,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2447,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2452,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - psRelation
    - bMultiLineString
    argTypes:
    - OSMRelation*
    - bool
    constantsTouched: []
    func_position:
      end: 2455
      start: 2385
    functionDepth: 3
    functionLinenumber: 2385
    functionLinenumberEnd: 2455
    functionName: OGROSMDataSource::BuildGeometryCollection
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::LookupWays
    - std::map::end
    - reinterpret_cast<GByte *>
    - strcmp
    - OGRPolygon*::addRingDirectly
    - OGRPolygon::OGRPolygon
    - std::unique_ptr::release
    - OGRPoint::OGRPoint
    - std::unique_ptr::reset
    - std::unique_ptr::getNumGeometries
    - OGRLineString::OGRLineString
    - std::make_unique<OGRGeometryCollection>
    - INT_TO_DBL
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - OGROSMDataSource::UncompressWay
    - std::map::find
    - std::make_unique<OGRMultiLineString>
    - OGROSMDataSource::LookupNodes
    - CPLFree
    - std::unique_ptr::addGeometryDirectly
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRGeometry
    signature: "OGRGeometry *\nOGROSMDataSource::BuildGeometryCollection(const OSMRelation
      *psRelation,\n                                          bool bMultiLineString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2463,1
    - Dst: OGROSMDataSource::ProcessWaysBatch
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2464,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2469,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2471,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2472,1
    - Dst: GetMaxTotalAllocs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2472,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2486,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2490,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2491,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2495,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2496,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2501,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2511,1
    - Dst: HasAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2519,1
    - Dst: AttributeFilterEvaluationNeedsGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2520,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2522,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2523,1
    - Dst: SetFieldsFromTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2525,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2526,1
    - Dst: EvaluateAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2529,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2529,1
    - Dst: OGROSMDataSource::BuildMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2544,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2545,1
    - Dst: OGROSMDataSource::BuildMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2551,1
    - Dst: OGROSMDataSource::BuildGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2554,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2561,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2562,1
    - Dst: SetFieldsFromTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2564,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2565,1
    - Dst: std::unique_ptr::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2573,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2576,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2577,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 1
    argNames:
    - psRelation
    argTypes:
    - OSMRelation*
    constantsTouched: []
    func_position:
      end: 2583
      start: 2461
    functionDepth: 5
    functionLinenumber: 2461
    functionLinenumberEnd: 2583
    functionName: OGROSMDataSource::NotifyRelation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::ProcessWaysBatch
    - static_cast<GUIntBig>
    - IsUserInterested
    - CPLDebug
    - strcmp
    - AddFeature
    - OGROSMDataSource::BuildMultiPolygon
    - EvaluateAttributeFilter
    - std::move
    - AttributeFilterEvaluationNeedsGeometry
    - std::make_unique<OGRFeature>
    - GetLayerDefn
    - SetFieldsFromTags
    - OGROSMDataSource::BuildGeometryCollection
    - std::unique_ptr::SetGeometryDirectly
    - CPLAssert
    - std::unique_ptr::get
    - GetMaxTotalAllocs
    - empty
    - HasAttributeFilter
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::NotifyRelation(const OSMRelation *psRelation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGROSMDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psRelation
    - user_data
    argTypes:
    - OSMRelation*
    - void*
    constantsTouched: []
    func_position:
      end: 2590
      start: 2585
    functionDepth: 0
    functionLinenumber: 2585
    functionLinenumberEnd: 2590
    functionName: OGROSMNotifyRelation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGROSMDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGROSMNotifyRelation(OSMRelation *psRelation,\n                                 OSMContext
      * /* psOSMContext */,\n                                 void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2611,1
    - Dst: m_apoFeatures::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2616,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2620,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2624,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2626,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2627,1
    - Dst: OGROSMDataSource::UncompressWay
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2632,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2632,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2634,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2636,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2637,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2638,1
    - Dst: OGRMultiPolygon*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2639,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2640,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2643,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2643,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2643,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2645,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2645,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2647,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2647,1
    - Dst: INT_TO_DBL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2648,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2651,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2652,1
    - Dst: SetFieldsFromTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2654,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2655,1
    - Dst: auto::SetGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2657,1
    - Dst: AddFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2660,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2661,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2674,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2677,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2680,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2596
    functionDepth: 3
    functionLinenumber: 2596
    functionLinenumberEnd: 2682
    functionName: OGROSMDataSource::ProcessPolygonsStandalone
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const GByte *>
    - CPLDebug
    - auto::get
    - AddFeature
    - OGRPolygon*::addRingDirectly
    - m_apoFeatures::size
    - OGRPolygon::OGRPolygon
    - sqlite3_column_int64
    - sqlite3_reset
    - sqlite3_bind_int64
    - std::move
    - INT_TO_DBL
    - std::make_unique<OGRFeature>
    - GetLayerDefn
    - SetFieldsFromTags
    - OGRMultiPolygon*::addGeometryDirectly
    - static_cast<int>
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - OGROSMDataSource::UncompressWay
    - CPLAssert
    - OGRMultiPolygon::OGRMultiPolygon
    - size
    - auto::SetGeometryDirectly
    - sqlite3_step
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::ProcessPolygonsStandalone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2699
      start: 2688
    functionDepth: 1
    functionLinenumber: 2688
    functionLinenumberEnd: 2699
    functionName: OGROSMDataSource::NotifyBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: "void OGROSMDataSource::NotifyBounds(double dfXMin, double dfYMin,
      double dfXMax,\n                                    double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGROSMDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    - user_data
    argTypes:
    - double
    - double
    - double
    - double
    - void*
    constantsTouched: []
    func_position:
      end: 2707
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2707
    functionName: OGROSMNotifyBounds
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGROSMDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGROSMNotifyBounds(double dfXMin, double dfYMin, double dfXMax,\n
      \                              double dfYMax, OSMContext * /* psCtxt */,\n                               void
      *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSM_Open
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2717,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2722,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2726,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2726,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2728,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2728,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2729,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2729,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2731,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2731,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2733,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2733,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2735,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2737,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2738,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2739,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2740,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2742,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2745,1
    - Dst: std::make_unique<OGROSMLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2746,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2747,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2749,1
    - Dst: std::make_unique<OGROSMLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2750,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2751,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2753,1
    - Dst: std::make_unique<OGROSMLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2753,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2755,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2757,1
    - Dst: std::make_unique<OGROSMLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2757,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2759,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2761,1
    - Dst: std::make_unique<OGROSMLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2761,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2763,1
    - Dst: OGROSMDataSource::ParseConf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2765,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2767,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2776,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2778,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2782,1
    - Dst: HasAllTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2791,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2793,1
    - Dst: HasOtherTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2794,1
    - Dst: SetHasOtherTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2796,1
    - Dst: HasOtherTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2799,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2800,1
    - Dst: HasTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2804,1
    - Dst: HasChangeset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2805,1
    - Dst: HasVersion
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2806,1
    - Dst: HasUID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2807,1
    - Dst: HasUser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2808,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2810,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2811,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2813,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2814,1
    - Dst: static_cast<CollisionBucket *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2815,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2815,1
    - Dst: static_cast<LonLat *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2818,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2819,1
    - Dst: static_cast<GIntBig *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2820,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2821,1
    - Dst: reserve
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2828,1
    - Dst: static_cast<IndexedKVP *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2832,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2833,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2835,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2835,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2837,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2837,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2845,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2845,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2847,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2851,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2853,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2853,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2855,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2858,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2863,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2863,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2871,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2872,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2878,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2882,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2886,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2890,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2893,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2895,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2898,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2900,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2910,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2912,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2913,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2914,1
    - Dst: GetInterestLayersForDSName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2925,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2925,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2926,1
    - Dst: OGROSMDataSource::ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2928,1
    - Dst: OGROSMDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2928,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 113
    argCount: 2
    argNames:
    - pszFilename
    - papszOpenOptionsIn
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2932
      start: 2713
    functionDepth: 3
    functionLinenumber: 2713
    functionLinenumberEnd: 2932
    functionName: OGROSMDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - HasVersion
    - atoi
    - HasUID
    - GetDescription
    - CPLDebug
    - HasTimestamp
    - static_cast<LonLat *>
    - reserve
    - CPLError
    - HasAllTags
    - CPLGetConfigOption
    - static_cast<GIntBig *>
    - GetInterestLayersForDSName
    - CPLString::empty
    - OSM_Open
    - static_cast<GIntBig>
    - simple_max
    - SetHasOtherTags
    - HasUser
    - VSIFTruncateL
    - CPLPopErrorHandler
    - emplace_back
    - CPLGenerateTempFilenameSafe
    - std::make_unique<OGROSMLayer>
    - CPLTestBool
    - VSI_CALLOC_VERBOSE
    - static_cast<CollisionBucket *>
    - CPLFetchBool
    - static_cast<IndexedKVP *>
    - VSIUnlink
    - VSIFOpenL
    - OGROSMDataSource::ExecuteSQL
    - static_cast<GByte *>
    - HasOtherTags
    - AddField
    - static_cast<int *>
    - back
    - HasChangeset
    - VSIFCloseL
    - CSLFetchNameValueDef
    - EQUAL
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    - OGROSMDataSource::ParseConf
    - VSI_MALLOC_VERBOSE
    - OGROSMDataSource::ReleaseResultSet
    linkageType: ''
    returnType: int
    signature: "int OGROSMDataSource::Open(const char *pszFilename,\n                           CSLConstList
      papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2952,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2958,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2962,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2966,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2971,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2972,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2973,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2976,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2978,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2982,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2984,1
    - Dst: OGRSQLiteCreateVFS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2991,1
    - Dst: sqlite3_vfs_register
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2992,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2993,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:2993,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3002,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3003,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3003,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3011,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3013,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3014,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3022,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3023,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3023,1
    - Dst: OGROSMDataSource::SetDBOptions
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3027,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3034,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3039,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3041,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3045,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3050,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3052,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3056,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3061,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3064,1
    - Dst: OGROSMDataSource::CreatePreparedStatements
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3069,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 3070
    functionName: OGROSMDataSource::CreateTempDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteCreateVFS
    - CPLDebug
    - OGROSMDataSource::SetDBOptions
    - OGROSMDataSource::CreatePreparedStatements
    - CPLError
    - static_cast<vsi_l_offset>
    - VSIFTruncateL
    - CPLPopErrorHandler
    - sqlite3_open_v2
    - CPLGenerateTempFilenameSafe
    - sqlite3_open
    - c_str
    - VSIUnlink
    - VSIFOpenL
    - sqlite3_errmsg
    - sqlite3_exec
    - VSIFCloseL
    - sqlite3_vfs_register
    - EQUAL
    - sqlite3_free
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::CreateTempDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3083,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3085,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3089,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3093,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3095,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3099,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3103,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3105,1
    - Dst: OGROSMDataSource::SetCacheSize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3109,1
    - Dst: OGROSMDataSource::StartTransactionCacheDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3115
      start: 3076
    functionDepth: 1
    functionLinenumber: 3076
    functionLinenumberEnd: 3115
    functionName: OGROSMDataSource::SetDBOptions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGROSMDataSource::StartTransactionCacheDB
    - OGROSMDataSource::SetCacheSize
    - sqlite3_free
    - CPLError
    - sqlite3_exec
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::SetDBOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3135,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3135,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3144,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3146,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3150,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3152,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3153,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3165,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3166,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3170,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3121
    functionDepth: 1
    functionLinenumber: 3121
    functionLinenumberEnd: 3174
    functionName: OGROSMDataSource::SetCacheSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - sqlite3_free_table
    - atoi
    - CPLSPrintf
    - sqlite3_free
    - sqlite3_errmsg
    - CPLError
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::SetCacheSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3187,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3188,1
    - Dst: static_cast<sqlite3_stmt **>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3192,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3193,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3196,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3202,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3207,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3210,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3214,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3216,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3221,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3225,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3226,1
    - Dst: static_cast<sqlite3_stmt **>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3230,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3231,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3233,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3234,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3234,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3239,1
    - Dst: strcpy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3244,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3247,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3251,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3253,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3258,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3263,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3264,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3268,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3273,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3274,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3278,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3283,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3284,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3180
    functionDepth: 1
    functionLinenumber: 3180
    functionLinenumberEnd: 3289
    functionName: OGROSMDataSource::CreatePreparedStatements
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<sqlite3_stmt **>
    - sqlite3_prepare_v2
    - static_cast<int>
    - strcpy
    - strlen
    - sqlite3_errmsg
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::CreatePreparedStatements()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3304,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3295
    functionDepth: 1
    functionLinenumber: 3295
    functionLinenumberEnd: 3313
    functionName: OGROSMDataSource::StartTransactionCacheDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::StartTransactionCacheDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3330,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3319
    functionDepth: 1
    functionLinenumber: 3319
    functionLinenumberEnd: 3337
    functionName: OGROSMDataSource::CommitTransactionCacheDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - sqlite3_free
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::CommitTransactionCacheDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: osSQL::empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3348,1
    - Dst: AddComputedAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - iCurLayer
    - oAttributes
    argTypes:
    - int
    - std::vector<OGROSMComputedAttribute>
    constantsTouched: []
    func_position:
      end: 3354
      start: 3343
    functionDepth: 0
    functionLinenumber: 3343
    functionLinenumberEnd: 3354
    functionName: OGROSMDataSource::AddComputedAttributes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - AddComputedAttribute
    - osSQL::empty
    linkageType: ''
    returnType: void
    signature: "void OGROSMDataSource::AddComputedAttributes(\n    int iCurLayer,
      const std::vector<OGROSMComputedAttribute> &oAttributes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFindFile
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3370,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3373,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3380,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3382,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3383,1
    - Dst: OSMGetOSMConfIni
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3383,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3384,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3384,1
    - Dst: OSMGetOSMConfIni
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3384,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3390,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3404,1
    - Dst: CPLReadLine2L
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3413,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3417,1
    - Dst: OGROSMDataSource::AddComputedAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3420,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3421,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3425,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3425,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3428,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3436,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3436,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3445,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3452,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3462,1
    - Dst: min
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3463,1
    - Dst: max
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3465,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3468,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3471,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3473,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3473,1
    - Dst: std::fill
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3475,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3475,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3475,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3479,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3481,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3481,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3485,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3485,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3491,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3493,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3493,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3497,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3497,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3503,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3505,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3505,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3510,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3510,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3517,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3519,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3519,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3523,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3523,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3529,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3531,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3538,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3539,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3541,1
    - Dst: SetHasOtherTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3542,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3543,1
    - Dst: SetHasOtherTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3544,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3546,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3547,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3549,1
    - Dst: SetHasAllTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3550,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3551,1
    - Dst: SetHasAllTags
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3552,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3554,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3555,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3557,1
    - Dst: SetHasOSMId
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3558,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3559,1
    - Dst: SetHasOSMId
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3561,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3562,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3565,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3569,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3570,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3572,1
    - Dst: SetHasVersion
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3573,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3574,1
    - Dst: SetHasVersion
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3576,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3577,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3580,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3581,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3583,1
    - Dst: SetHasTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3584,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3585,1
    - Dst: SetHasTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3587,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3588,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3592,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3593,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3595,1
    - Dst: SetHasUID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3596,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3597,1
    - Dst: SetHasUID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3599,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3600,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3603,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3604,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3606,1
    - Dst: SetHasUser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3607,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3608,1
    - Dst: SetHasUser
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3610,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3611,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3614,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3615,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3617,1
    - Dst: SetHasChangeset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3618,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3619,1
    - Dst: SetHasChangeset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3621,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3622,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3626,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3627,1
    - Dst: AddField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3633,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3637,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3641,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3643,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3644,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3645,1
    - Dst: AddInsignificantKey
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3651,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3654,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3656,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3657,1
    - Dst: AddIgnoreKey
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3663,1
    - Dst: AddWarnKey
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3664,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3666,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3668,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3669,1
    - Dst: std::vector::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3673,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3676,1
    - Dst: OGROSMComputedAttribute
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3677,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3679,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3681,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3682,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3683,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3683,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3687,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3687,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3691,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3693,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3695,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3697,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3699,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3702,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3704,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3705,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3721,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3730,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3731,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3734,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3735,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3736,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3736,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3740,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3740,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3742,1
    - Dst: osSQL::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3756,1
    - Dst: osSQL::back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3757,1
    - Dst: osSQL::resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3758,1
    - Dst: osSQL::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3759,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3763,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3765,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3766,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3769,1
    - Dst: OGROSMDataSource::AddComputedAttributes
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3774,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3776,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 243
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3779
      start: 3360
    functionDepth: 2
    functionLinenumber: 3360
    functionLinenumberEnd: 3779
    functionName: OGROSMDataSource::ParseConf
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - osSQL::resize
    - std::vector::size
    - strcmp
    - AddWarnKey
    - CPLError
    - std::vector::push_back
    - STARTS_WITH
    - CPLString::resize
    - CPLFindFile
    - end
    - SetHasUID
    - SetHasOtherTags
    - insert
    - CPLString::c_str
    - strlen
    - AddIgnoreKey
    - OGROSMComputedAttribute
    - CSLCount
    - AddInsignificantKey
    - osSQL::size
    - GetName
    - SetHasAllTags
    - GetLayerDefn
    - static_cast<int>
    - SetHasVersion
    - const_cast<GByte *>
    - min
    - VSIFOpenL
    - begin
    - std::fill
    - VSIFileFromMemBuffer
    - AddField
    - OGROSMDataSource::AddComputedAttributes
    - std::vector::resize
    - SetHasOSMId
    - CPLReadLine2L
    - const_cast<char *>
    - SetHasTimestamp
    - VSIFCloseL
    - SetHasChangeset
    - CSLDestroy
    - reinterpret_cast<const GByte *>
    - EQUAL
    - max
    - osSQL::back
    - SetHasUser
    - OSMGetOSMConfIni
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::ParseConf(CSLConstList papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSM_ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3792,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3799,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3801,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3805,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3808,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3810,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3814,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3818,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3820,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3826,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3829,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3840,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3842,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3846,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3847,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3856,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3857,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3860,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3869,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3875,1
    - Dst: ForceResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3882,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3785
    functionDepth: 2
    functionLinenumber: 3785
    functionLinenumberEnd: 3889
    functionName: OGROSMDataSource::MyResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - OSM_ResetReading
    - VSIFSeekL
    - ForceResetReading
    - VSIFTruncateL
    - sqlite3_free
    - CPLError
    - memset
    - resize
    - sqlite3_exec
    - CPLFree
    - clear
    linkageType: ''
    returnType: int
    signature: int OGROSMDataSource::MyResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDataSource::MyResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3895
    functionDepth: 3
    functionLinenumber: 3895
    functionLinenumberEnd: 3898
    functionName: OGROSMDataSource::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::MyResetReading
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3913,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3920,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3920,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3922,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3934,1
    - Dst: MyGetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3935,1
    - Dst: OSM_GetBytesRead
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3955,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - ppoBelongingLayer
    - pdfProgressPct
    - pfnProgress
    - pProgressData
    argTypes:
    - OGRLayer**
    - double*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3965
      start: 3904
    functionDepth: 1
    functionLinenumber: 3904
    functionLinenumberEnd: 3965
    functionName: OGROSMDataSource::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - VSIStatL
    - MyGetNextFeature
    - GetDescription
    - get
    - CPLAssert
    - OSM_GetBytesRead
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGROSMDataSource::GetNextFeature(OGRLayer **ppoBelongingLayer,\n
      \                                            double *pdfProgressPct,\n                                             GDALProgressFunc
      pfnProgress,\n                                             void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3986,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3987,1
    - Dst: GetMaxTotalAllocs
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3987,1
    - Dst: OSM_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3990,1
    - Dst: OSM_GetBytesRead
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3996,1
    - Dst: pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:3998,1
    - Dst: ForceResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4003,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4013,1
    - Dst: OGROSMDataSource::ProcessWaysBatch
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4014,1
    - Dst: OGROSMDataSource::ProcessPolygonsStandalone
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4016,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4032,1
    - Dst: OSM_GetBytesRead
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4035,1
    - Dst: OGROSMDataSource::TransferToDiskIfNecesserary
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4045,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 3
    argNames:
    - nIdxLayer
    - pfnProgress
    - pProgressData
    argTypes:
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4055
      start: 3971
    functionDepth: 9
    functionLinenumber: 3971
    functionLinenumberEnd: 4055
    functionName: OGROSMDataSource::ParseNextChunk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - OGROSMDataSource::ProcessWaysBatch
    - OGROSMDataSource::TransferToDiskIfNecesserary
    - empty
    - OSM_ProcessBlock
    - CPLDebug
    - OGROSMDataSource::ProcessPolygonsStandalone
    - ForceResetReading
    - pfnProgress
    - CPLError
    - OSM_GetBytesRead
    - GetMaxTotalAllocs
    linkageType: ''
    returnType: bool
    signature: "bool OGROSMDataSource::ParseNextChunk(int nIdxLayer,\n                                      GDALProgressFunc
      pfnProgress,\n                                      void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4070,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4074,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4076,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4078,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4078,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4080,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4080,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4082,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4083,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4083,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4084,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4084,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4089,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4095,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4098,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4099,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4101,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4103,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4106,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4109,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4111,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4117,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4124,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4130,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4132,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4133,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4134,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4147,1
    - Dst: OGROSMDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4152,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4155,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4157,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4159,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4159,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4161,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4161,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4163,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4164,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4164,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4165,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4165,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4170,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4179,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4180,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4181,1
    - Dst: OGROSMDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4191,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4193,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4194,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4195,1
    - Dst: OGROSMDataSource::SetDBOptions
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4198,1
    - Dst: OGROSMDataSource::CreatePreparedStatements
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4198,1
    - Dst: OGROSMDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4201,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4061
    functionDepth: 2
    functionLinenumber: 4061
    functionLinenumberEnd: 4208
    functionName: OGROSMDataSource::TransferToDiskIfNecesserary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLCopyFile
    - CPLDebug
    - OGROSMDataSource::SetDBOptions
    - VSIFTellL
    - OGROSMDataSource::CreatePreparedStatements
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - VSIFTruncateL
    - CPLPopErrorHandler
    - CPLGenerateTempFilenameSafe
    - c_str
    - VSIUnlink
    - VSIFSeekL
    - VSIFOpenL
    - OGROSMDataSource::CloseDB
    - sqlite3_errmsg
    - VSIStatL
    - VSIFCloseL
    - EQUAL
    - CPLPushErrorHandler
    linkageType: ''
    returnType: bool
    signature: bool OGROSMDataSource::TransferToDiskIfNecesserary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4217
      start: 4214
    functionDepth: 0
    functionLinenumber: 4214
    functionLinenumberEnd: 4217
    functionName: OGROSMDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGROSMDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4226,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4226,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4230
      start: 4223
    functionDepth: 0
    functionLinenumber: 4223
    functionLinenumberEnd: 4230
    functionName: OGROSMDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGROSMDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSM_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 4251
      start: 4236
    functionDepth: 9
    functionLinenumber: 4236
    functionLinenumberEnd: 4251
    functionName: OGROSMDataSource::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OSM_ProcessBlock
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGROSMDataSource::GetExtent(OGREnvelope *psExtent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4265
      start: 4265
    functionDepth: 0
    functionLinenumber: 4265
    functionLinenumberEnd: 4265
    functionName: OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGROSMSingleFeatureLayer(const OGROSMSingleFeatureLayer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4267
    functionName: "&\n    operator=(const OGROSMSingleFeatureLayer &)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGROSMSingleFeatureLayer
    signature: "OGROSMSingleFeatureLayer &\n    operator=(const OGROSMSingleFeatureLayer
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4274
    functionDepth: 0
    functionLinenumber: 4274
    functionLinenumberEnd: 4277
    functionName: OGROSMSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4281
    functionDepth: 0
    functionLinenumber: 4281
    functionLinenumberEnd: 4284
    functionName: OGROSMSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4289
    functionName: OGROSMSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4299,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4301,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszLayerName
    - nValIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4304
      start: 4296
    functionDepth: 1
    functionLinenumber: 4296
    functionLinenumberEnd: 4304
    functionName: OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer(const char
      *pszLayerName,\n                                                   int nValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4312,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4313,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4315,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszLayerName
    - pszValIn
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4318
      start: 4310
    functionDepth: 1
    functionLinenumber: 4310
    functionLinenumberEnd: 4318
    functionName: OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLStrdup
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer(const char
      *pszLayerName,\n                                                   const char
      *pszValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4326,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4324
    functionDepth: 1
    functionLinenumber: 4324
    functionLinenumberEnd: 4328
    functionName: OGROSMSingleFeatureLayer::~OGROSMSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGROSMSingleFeatureLayer::~OGROSMSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4339,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4341,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4343,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4334
    functionDepth: 3
    functionLinenumber: 4334
    functionLinenumberEnd: 4346
    functionName: OGROSMSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGROSMSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poLayer
    - osDSNameIn
    - osInterestLayersIn
    argTypes:
    - OGRLayer*
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 4363
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4363
    functionName: OGROSMResultLayerDecorator::OGROSMResultLayerDecorator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGROSMResultLayerDecorator(OGRLayer *poLayer, const std::string
      &osDSNameIn,\n                               const std::string &osInterestLayersIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddInterestLayersForDSName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4373,1
    - Dst: OGRLayerDecorator::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4375
      start: 4368
    functionDepth: 2
    functionLinenumber: 4368
    functionLinenumberEnd: 4375
    functionName: OGROSMResultLayerDecorator::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRLayerDecorator::GetFeatureCount
    - AddInterestLayersForDSName
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGROSMResultLayerDecorator::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4389,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4392,1
    - Dst: OSM_GetBytesRead
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4393,1
    - Dst: OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4394,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4400,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4403,1
    - Dst: OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4402,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4408,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4416,1
    - Dst: SetDeclareInterest
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4423,1
    - Dst: dynamic_cast<OGROSMLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4429,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4429,1
    - Dst: OGROSMLayer*::SetDeclareInterest
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4432,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4436,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4437,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4438,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4439,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4440,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4442,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4444,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4447,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4451,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4453,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4456,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4461,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4462,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4463,1
    - Dst: IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4464,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4466,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4468,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4471,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4477,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4486,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4491,1
    - Dst: OGRSQLiteGetReferencedLayers
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4493,1
    - Dst: osDSName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4496,1
    - Dst: swq_select::swq_select
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4507,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4509,1
    - Dst: swq_select::preparse
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4510,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4511,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4539,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4542,1
    - Dst: OGROSMLayer*::IsUserInterested
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4543,1
    - Dst: OGROSMDataSource::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4551,1
    - Dst: OGROSMDataSource::MyResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4553,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4556,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4562,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4565,1
    - Dst: OGROSMResultLayerDecorator::OGROSMResultLayerDecorator
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4564,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4574,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 97
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 4575
      start: 4381
    functionDepth: 3
    functionLinenumber: 4381
    functionLinenumberEnd: 4575
    functionName: OGROSMDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 2
    functionsReached:
    - IsUserInterested
    - GetDescription
    - swq_select::swq_select
    - CPLDebug
    - strcmp
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - OGROSMLayer*::IsUserInterested
    - OGROSMDataSource::MyResetReading
    - osDSName::empty
    - OGROSMSingleFeatureLayer::OGROSMSingleFeatureLayer
    - swq_select::preparse
    - CPLPopErrorHandler
    - GetLayerByName
    - resize
    - c_str
    - STARTS_WITH_CI
    - SetDeclareInterest
    - OGROSMDataSource::ExecuteSQL
    - snprintf
    - OGROSMLayer*::SetDeclareInterest
    - dynamic_cast<OGROSMLayer *>
    - CSLDestroy
    - OGRSQLiteGetReferencedLayers
    - EQUAL
    - GDALDataset::ExecuteSQL
    - OGROSMResultLayerDecorator::OGROSMResultLayerDecorator
    - CPLPushErrorHandler
    - push_back
    - OSM_GetBytesRead
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGROSMDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                      OGRGeometry *poSpatialFilter,\n                                       const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDeclareInterest
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4594,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4598,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4602,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 4609
      start: 4581
    functionDepth: 1
    functionLinenumber: 4581
    functionLinenumberEnd: 4609
    functionName: OGROSMDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 1
    functionsReached:
    - SetDeclareInterest
    - CPLDebug
    - clear
    linkageType: ''
    returnType: void
    signature: void OGROSMDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4620,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4620,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp:4621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4615
    functionDepth: 1
    functionLinenumber: 4615
    functionLinenumberEnd: 4624
    functionName: OGROSMDataSource::IsInterleavedReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGROSMDataSource::IsInterleavedReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:38,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:38,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:48,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: OGROSMDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - reinterpret_cast<const char *>
    - strstr
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OGROSMDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGROSMDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:67,1
    - Dst: OGROSMDataSource::OGROSMDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:70,1
    - Dst: OGROSMDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: OGROSMDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp
    functionUses: 0
    functionsReached:
    - OGROSMDataSource::OGROSMDataSource
    - OGROSMDriverIdentify
    - OGROSMDataSource*::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGROSMDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:87,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:90,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:93,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:96,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:97,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:98,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:99,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:101,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:104,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: RegisterOGROSM
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGROSM()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: isleap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isleap(GIntBig y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: LEAPS_THROUGH_END_OF
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig LEAPS_THROUGH_END_OF(GIntBig y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:77,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:79,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:84,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:85,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:91,1
    - Dst: isleap
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:91,1
    - Dst: LEAPS_THROUGH_END_OF
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:96,1
    - Dst: LEAPS_THROUGH_END_OF
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:97,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:100,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:101,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:103,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:105,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - unixTime
    - pRet
    argTypes:
    - GIntBig
    - struct tm*
    constantsTouched: []
    func_position:
      end: 111
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 111
    functionName: myCPLUnixTimeToYMDHMS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - LEAPS_THROUGH_END_OF
    - static_cast<int>
    - isleap
    linkageType: ''
    returnType: struct tm
    signature: struct tm *myCPLUnixTimeToYMDHMS(GIntBig unixTime, struct tm *pRet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:121,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:126,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:131,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:136,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:140,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pszStr
    - fp
    argTypes:
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: WriteEscaped
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFWriteL
    linkageType: ''
    returnType: void
    signature: void WriteEscaped(const char *pszStr, VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:160,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:162,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:166,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:167,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:167,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:168,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:169,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:170,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:171,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:172,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:173,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:174,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:175,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:175,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:178,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:179,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:180,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:181,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:186,1
    - Dst: myCPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:188,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:189,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:196,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:197,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:202,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:206,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:207,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:208,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:209,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:210,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:212,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - nNodes
    - pasNodes
    - user_data
    argTypes:
    - unsigned int
    - OSMNode*
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 219
    functionName: myNotifyNodesFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - static_cast<int>
    - WRITE_ESCAPED
    - static_cast<VSILFILE *>
    - myCPLUnixTimeToYMDHMS
    - WRITE_STR
    linkageType: ''
    returnType: void
    signature: "void myNotifyNodesFunc(unsigned int nNodes, OSMNode *pasNodes,\n                              OSMContext
      * /* psOSMContext */, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:224,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:226,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:227,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:227,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:228,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:229,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:230,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:231,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:231,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:234,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:235,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:236,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:237,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:242,1
    - Dst: myCPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:244,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:245,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:252,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:253,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:256,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:259,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:260,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:264,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:265,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:266,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:267,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:268,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - psWay
    - user_data
    argTypes:
    - OSMWay*
    - void*
    constantsTouched: []
    func_position:
      end: 271
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 271
    functionName: myNotifyWayFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - static_cast<int>
    - WRITE_ESCAPED
    - static_cast<VSILFILE *>
    - myCPLUnixTimeToYMDHMS
    - WRITE_STR
    linkageType: ''
    returnType: void
    signature: "void myNotifyWayFunc(OSMWay *psWay, OSMContext * /* psOSMContext */,\n
      \                           void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:277,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:279,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:280,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:280,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:281,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:282,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:283,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:284,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:284,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:287,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:288,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:289,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:290,1
    - Dst: myCPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:296,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:297,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:298,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:305,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:306,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:309,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:316,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:317,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:321,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:322,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:322,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:323,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:324,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:325,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:330,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:331,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:332,1
    - Dst: WRITE_ESCAPED
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:333,1
    - Dst: WRITE_STR
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:334,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - psRelation
    - user_data
    argTypes:
    - OSMRelation*
    - void*
    constantsTouched: []
    func_position:
      end: 337
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 337
    functionName: myNotifyRelationFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - static_cast<int>
    - WRITE_ESCAPED
    - static_cast<VSILFILE *>
    - myCPLUnixTimeToYMDHMS
    - WRITE_STR
    linkageType: ''
    returnType: void
    signature: "void myNotifyRelationFunc(OSMRelation *psRelation,\n                                 OSMContext
      * /* psOSMContext */,\n                                 void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:343,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    - user_data
    argTypes:
    - double
    - double
    - double
    - double
    - void*
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: myNotifyBoundsFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - static_cast<VSILFILE *>
    linkageType: ''
    returnType: void
    signature: "void myNotifyBoundsFunc(double dfXMin, double dfYMin, double dfXMax,\n
      \                              double dfYMax, OSMContext * /* psOSMContext */,\n
      \                              void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:354,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:355,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:361,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:364,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:365,1
    - Dst: OSM_Open
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:369,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:373,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:374,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:377,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:378,1
    - Dst: OSM_ProcessBlock
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:380,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:383,1
    - Dst: OSM_Close
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:385,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 390
      start: 350
    functionDepth: 9
    functionLinenumber: 350
    functionLinenumberEnd: 390
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/osm/osm2osm.cpp
    functionUses: 42
    functionsReached:
    - VSIFPrintfL
    - OSM_ProcessBlock
    - VSIFCloseL
    - exit
    - fprintf
    - VSIFOpenL
    - OSM_Close
    - OSM_Open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:34,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:39,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:40,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:43,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:43,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:44,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:44,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:48,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:56,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:58,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:59,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:59,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:60,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:60,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:66,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:66,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:72,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 77
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 77
    functionName: OGRXLSXDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - reinterpret_cast<const char *>
    - memcmp
    - CPLDebug
    - EQUAL
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: int OGRXLSXDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSXDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:86,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:90,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:92,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:116,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:116,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:117,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:125,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:127,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:131,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:131,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:132,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:137,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:137,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:138,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:141,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:146,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:146,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:147,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:148,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:148,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:149,1
    - Dst: OGRXLSXDataSource::OGRXLSXDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:152,1
    - Dst: OGRXLSXDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:154,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:154,1
    - Dst: OGRXLSXDataSource*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 167
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 167
    functionName: OGRXLSXDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - VSIFCloseL
    - OGRXLSXDataSource*::Open
    - CPLSPrintf
    - OGRXLSXDataSource::OGRXLSXDataSource
    - OGRXLSXDriverIdentify
    - VSIFOpenL
    - OGRXLSXDataSource*::SetDescription
    - strlen
    - strstr
    - std::string::c_str
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRXLSXDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:179,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:181,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:192,1
    - Dst: OGRXLSXDataSource::OGRXLSXDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:202,1
    - Dst: OGRXLSXDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pszName
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 211
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 211
    functionName: OGRXLSXDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - OGRXLSXDataSource::OGRXLSXDataSource
    - EQUAL
    - OGRXLSXDataSource*::Create
    - CPLError
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRXLSXDriverCreate(const char *pszName, int /* nXSize
      */,\n                                        int /* nYSize */, int /* nBands
      */,\n                                        GDALDataType /* eDT */,\n                                        char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:220,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:223,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:225,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:226,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:227,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:228,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:229,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:230,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:231,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:232,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:234,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:236,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:237,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:238,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:239,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:242,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:243,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:244,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:245,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:246,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:247,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:248,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:250,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:251,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:253,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 278
    functionName: RegisterOGRXLSX
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void RegisterOGRXLSX()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: OGRXLSX::OGRXLSXLayer::HasBeenUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasBeenUpdated() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: OGRXLSX::OGRXLSXLayer::GetHasHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetHasHeaderLine() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: OGRXLSX::OGRXLSXLayer::SetHasHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHasHeaderLine(bool bIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: OGRXLSX::OGRXLSXLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OGRXLSX::OGRXLSXLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeomType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OGRXLSX::OGRXLSXLayer::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:89,1
    - Dst: OGRMemLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: OGRXLSX::OGRXLSXLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::ResetReading
    - OGRXLSX::OGRXLSXLayer::Init
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: '&GetFilename() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetFilename() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:111,1
    - Dst: OGRMemLayer::SetNextByIndex
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: OGRXLSX::OGRXLSXLayer::SetNextByIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::SetNextByIndex
    - OGRXLSX::OGRXLSXLayer::Init
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr SetNextByIndex(GIntBig nIndex) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:119,1
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: OGRXLSX::OGRXLSXLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRAPISpy_L_GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:125,1
    - Dst: OGRMemLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: OGRXLSX::OGRXLSXLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRMemLayer::GetFeatureCount
    - OGRXLSX::OGRXLSXLayer::Init
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFeatureCount(int bForce) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:134,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:135,1
    - Dst: OGRMemLayer::DeleteField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iField
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: OGRXLSX::OGRXLSXLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRMemLayer::DeleteField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr DeleteField(int iField) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:141,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:142,1
    - Dst: OGRMemLayer::ReorderFields
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: OGRXLSX::OGRXLSXLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRMemLayer::ReorderFields
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr ReorderFields(int *panMap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:149,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:150,1
    - Dst: OGRMemLayer::AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - iField
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: OGRXLSX::OGRXLSXLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRMemLayer::AlterFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn,\n
      \                                 int nFlagsIn) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:156,1
    - Dst: OGRMemLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: OGRXLSX::OGRXLSXLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRMemLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *pszCap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: '&GetCols() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetCols() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: OGRXLSX::XLSXFieldTypeExtended::XLSXFieldTypeExtended
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XLSXFieldTypeExtended()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eTypeIn
    argTypes:
    - OGRFieldType
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OGRXLSX::XLSXFieldTypeExtended::XLSXFieldTypeExtended
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XLSXFieldTypeExtended(OGRFieldType eTypeIn, bool bHasMSIn = false)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: OGRXLSX::OGRXLSXDataSource::GetUpdatable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetUpdatable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: OGRXLSX::OGRXLSXDataSource::SetUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUpdated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:35,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:36,1
    - Dst: SetAdvertizeUTF8
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poDSIn
    - pszFilename
    - pszName
    - bUpdatedIn
    argTypes:
    - OGRXLSXDataSource*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: OGRXLSX::OGRXLSXLayer::OGRXLSXLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - SetAdvertizeUTF8
    - CPL_TO_BOOL
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXLayer::OGRXLSXLayer(OGRXLSXDataSource *poDSIn, const char
      *pszFilename,\n                           const char *pszName, int bUpdatedIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:51,1
    - Dst: OGRXLSX::OGRXLSXLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:51,1
    - Dst: BuildLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: OGRXLSX::OGRXLSXLayer::Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 8
    functionsReached:
    - BuildLayer
    - OGRXLSX::OGRXLSXLayer::GetName
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void OGRXLSXLayer::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:62,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - bUpdatedIn
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: OGRXLSX::OGRXLSXLayer::SetUpdated
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 4
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - GetUpdatable
    linkageType: ''
    returnType: void
    signature: void OGRXLSXLayer::SetUpdated(bool bUpdatedIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: OGRXLSX::OGRXLSXLayer::SyncToDisk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - FlushCache
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXLayer::SyncToDisk()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: OGRXLSX::OGRXLSXLayer::TranslateFIDFromMemLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRXLSXLayer::TranslateFIDFromMemLayer(GIntBig nFID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRXLSXLayer::TranslateFIDToMemLayer(GIntBig nFID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:111,1
    - Dst: OGRMemLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:113,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:115,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDFromMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:115,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: OGRXLSX::OGRXLSXLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRFeature*::GetFID
    - OGRMemLayer::GetNextFeature
    - OGRXLSX::OGRXLSXLayer::TranslateFIDFromMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXLSXLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:125,1
    - Dst: OGRXLSX::OGRXLSXLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:127,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:129,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:133,1
    - Dst: OGRMemLayer::CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: OGRXLSX::OGRXLSXLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRXLSX::OGRXLSXLayer::GetLayerDefn
    - CPLError
    - OGRMemLayer::CreateField
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXLayer::CreateField(const OGRFieldDefn *poField, int bApproxOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:143,1
    - Dst: OGRMemLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:146,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:146,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: OGRXLSX::OGRXLSXLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRFeature*::SetFID
    - OGRMemLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRXLSXLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:158,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:160,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:163,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:164,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:166,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:172,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:173,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: OGRXLSX::OGRXLSXLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::ISetFeature
    - GetFeatureRef
    - OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:189,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:191,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:193,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:193,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:194,1
    - Dst: OGRMemLayer::IUpdateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:195,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - poFeature
    - nUpdatedFieldsCount
    - panUpdatedFieldsIdx
    - nUpdatedGeomFieldsCount
    - panUpdatedGeomFieldsIdx
    - bUpdateStyleString
    argTypes:
    - OGRFeature*
    - int
    - int*
    - int
    - int*
    - bool
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: OGRXLSX::OGRXLSXLayer::IUpdateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::IUpdateFeature
    - OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRXLSXLayer::IUpdateFeature(OGRFeature *poFeature,\n                                    int
      nUpdatedFieldsCount,\n                                    const int *panUpdatedFieldsIdx,\n
      \                                   int nUpdatedGeomFieldsCount,\n                                    const
      int *panUpdatedGeomFieldsIdx,\n                                    bool bUpdateStyleString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:208,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:210,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:213,1
    - Dst: GetFeatureRef
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:214,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:216,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:217,1
    - Dst: OGRMemLayer::ISetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:218,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:219,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:223,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:224,1
    - Dst: OGRMemLayer::ICreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:225,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:226,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDFromMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:226,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: OGRXLSX::OGRXLSXLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRFeature*::GetFID
    - OGRMemLayer::ICreateFeature
    - OGRMemLayer::ISetFeature
    - GetFeatureRef
    - OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    - OGRXLSX::OGRXLSXLayer::TranslateFIDFromMemLayer
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXLayer::Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:236,1
    - Dst: OGRXLSX::OGRXLSXLayer::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:237,1
    - Dst: OGRMemLayer::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:238,1
    - Dst: OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: OGRXLSX::OGRXLSXLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRMemLayer::DeleteFeature
    - OGRXLSX::OGRXLSXLayer::Init
    - OGRXLSX::OGRXLSXLayer::SetUpdated
    - OGRXLSX::OGRXLSXLayer::TranslateFIDToMemLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: OGRXLSX::OGRXLSXLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRXLSXLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:257,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:258,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: OGRXLSX::OGRXLSXDataSource::OGRXLSXDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLFetchNameValueDef
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::OGRXLSXDataSource(CSLConstList papszOpenOptionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: OGRXLSXDataSource::~OGRXLSXDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::~OGRXLSXDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::OGRXLSXDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:288,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:291,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:295,1
    - Dst: GDALDataset::Close
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: OGRXLSX::OGRXLSXDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::OGRXLSXDataSource::FlushCache
    - GDALDataset::Close
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRXLSXDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:310,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:312,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:314,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:316,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:318,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: OGRXLSX::OGRXLSXDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRXLSXDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: OGRXLSX::OGRXLSXDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRXLSXDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: OGRXLSX::OGRXLSXDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRXLSXDataSource::GetLayerCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:359,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:361,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:363,1
    - Dst: OGRXLSX::OGRXLSXDataSource::AnalyseWorkbookRels
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:366,1
    - Dst: OGRXLSX::OGRXLSXDataSource::AnalyseWorkbook
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:367,1
    - Dst: OGRXLSX::OGRXLSXDataSource::AnalyseSharedStrings
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:368,1
    - Dst: OGRXLSX::OGRXLSXDataSource::AnalyseStyles
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:369,1
    - Dst: Init
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:374,1
    - Dst: m_osCols::empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:375,1
    - Dst: m_osCols::find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:376,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - pszFilename
    - pszPrefixedFilename
    - fpWorkbook
    - fpWorkbookRels
    - fpSharedStrings
    - fpStyles
    - bUpdateIn
    argTypes:
    - char*
    - char*
    - VSILFILE*
    - VSILFILE*
    - VSILFILE*
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 388
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 388
    functionName: OGRXLSX::OGRXLSXDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - m_osCols::find
    - Init
    - OGRXLSX::OGRXLSXDataSource::AnalyseWorkbook
    - OGRXLSX::OGRXLSXDataSource::AnalyseStyles
    - OGRXLSX::OGRXLSXDataSource::AnalyseWorkbookRels
    - m_osCols::empty
    - SetDescription
    - GetFeatureCount
    - CPL_TO_BOOL
    - OGRXLSX::OGRXLSXDataSource::AnalyseSharedStrings
    linkageType: ''
    returnType: int
    signature: "int OGRXLSXDataSource::Open(const char *pszFilename,\n                            const
      char *pszPrefixedFilename,\n                            VSILFILE *fpWorkbook,
      VSILFILE *fpWorkbookRels,\n                            VSILFILE *fpSharedStrings,
      VSILFILE *fpStyles,\n                            int bUpdateIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: OGRXLSX::OGRXLSXDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: "int OGRXLSXDataSource::Create(const char *pszFilename,\n                              CPL_UNUSED
      char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: OGRXLSX::GetUnprefixed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetUnprefixed(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::startElementCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszNameIn
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: OGRXLSX::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::startElementCbk
    linkageType: ''
    returnType: void
    signature: "void startElementCbk(void *pUserData, const char *pszNameIn,\n                                    const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:433,1
    - Dst: OGRXLSX::OGRXLSXDataSource::startElementDefault
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:439,1
    - Dst: OGRXLSX::OGRXLSXDataSource::startElementCols
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:442,1
    - Dst: OGRXLSX::OGRXLSXDataSource::startElementTable
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:445,1
    - Dst: OGRXLSX::OGRXLSXDataSource::startElementRow
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:448,1
    - Dst: OGRXLSX::OGRXLSXDataSource::startElementCell
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:451,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 459
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 459
    functionName: OGRXLSX::OGRXLSXDataSource::startElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXDataSource::startElementCols
    - OGRXLSX::OGRXLSXDataSource::startElementRow
    - OGRXLSX::OGRXLSXDataSource::startElementDefault
    - GetUnprefixed
    - OGRXLSX::OGRXLSXDataSource::startElementTable
    - OGRXLSX::OGRXLSXDataSource::startElementCell
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementCbk(const char *pszNameIn,\n                                        const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::endElementCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszNameIn
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: OGRXLSX::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::endElementCbk
    linkageType: ''
    returnType: void
    signature: void endElementCbk(void *pUserData, const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:475,1
    - Dst: OGRXLSX::OGRXLSXDataSource::endElementTable
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:485,1
    - Dst: OGRXLSX::OGRXLSXDataSource::endElementCols
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:488,1
    - Dst: OGRXLSX::OGRXLSXDataSource::endElementRow
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:491,1
    - Dst: OGRXLSX::OGRXLSXDataSource::endElementCell
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:494,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 504
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 504
    functionName: OGRXLSX::OGRXLSXDataSource::endElementCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXDataSource::endElementCell
    - GetUnprefixed
    - OGRXLSX::OGRXLSXDataSource::endElementCols
    - OGRXLSX::OGRXLSXDataSource::endElementRow
    - OGRXLSX::OGRXLSXDataSource::endElementTable
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementCbk(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::dataHandlerCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: OGRXLSX::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::dataHandlerCbk
    linkageType: ''
    returnType: void
    signature: void dataHandlerCbk(void *pUserData, const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:523,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:525,1
    - Dst: OGRXLSX::OGRXLSXDataSource::dataHandlerTextV
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 548
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 548
    functionName: OGRXLSX::OGRXLSXDataSource::dataHandlerCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRXLSX::OGRXLSXDataSource::dataHandlerTextV
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::dataHandlerCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - eVal
    argTypes:
    - HandlerStateEnum
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: OGRXLSX::OGRXLSXDataSource::PushState
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::PushState(HandlerStateEnum eVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ppszAttr
    - pszKey
    - pszDefaultVal
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: OGRXLSX::GetAttributeValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: "char *GetAttributeValue(const char **ppszAttr, const char *pszKey,\n
      \                                    const char *pszDefaultVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:593,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:595,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:597,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:602,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:603,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:611,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:612,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:616,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:620,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - pszValue
    - pszValueType
    - eSubType
    argTypes:
    - char*
    - char*
    - OGRFieldSubType
    constantsTouched: []
    func_position:
      end: 631
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 631
    functionName: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPL_INT64_FITS_ON_INT32
    - strcmp
    - CPLAtoGIntBig
    - CPLGetValueType
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType OGRXLSXDataSource::GetOGRFieldType(const char *pszValue,\n
      \                                               const char *pszValueType,\n
      \                                               OGRFieldSubType &eSubType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:643,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:645,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:645,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:646,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:647,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:651,1
    - Dst: std::fabs
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:655,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:656,1
    - Dst: std::round
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:657,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:659,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:660,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:662,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:667,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:669,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:671,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:673,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:673,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:676,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:678,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:679,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:685,1
    - Dst: static_cast<float>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:687,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:691,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 4
    argNames:
    - poFeature
    - i
    - pszValue
    - pszCellType
    argTypes:
    - OGRFeature*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 692
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 692
    functionName: OGRXLSX::SetField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - static_cast<GIntBig>
    - static_cast<float>
    - CPLSPrintf
    - strcmp
    - CPLUnixTimeToYMDHMS
    - std::round
    - OGRFeature*::SetField
    - std::fabs
    linkageType: ''
    returnType: void
    signature: "void SetField(OGRFeature *poFeature, int i, const char *pszValue,\n
      \                    const char *pszCellType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:703,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:716,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:735,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:737,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:739,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:740,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:740,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:741,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:746,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:746,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 748
    functionName: OGRXLSX::OGRXLSXDataSource::DetectHeaderLine
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - CPLDebug
    - EQUAL
    - GetName
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::DetectHeaderLine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:757,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:759,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:762,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:764,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:765,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 769
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 769
    functionName: OGRXLSX::OGRXLSXDataSource::startElementDefault
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - OGRXLSX::OGRXLSXDataSource::PushState
    - resize
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementDefault(const char *pszNameIn,\n
      \                                           CPL_UNUSED const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:778,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:779,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:782,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:783,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:784,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:786,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:787,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:788,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 791
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 791
    functionName: OGRXLSX::OGRXLSXDataSource::startElementCols
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    - append
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementCols(const char *pszNameIn,\n
      \                                        const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:799,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:800,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 802
    functionName: OGRXLSX::OGRXLSXDataSource::endElementCols
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementCols(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:811,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:813,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:816,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:817,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:822,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:825,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:843,1
    - Dst: OGRXLSX::OGRXLSXDataSource::endElementRow
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:851,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:854,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 860
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 860
    functionName: OGRXLSX::OGRXLSXDataSource::startElementTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - OGRXLSX::OGRXLSXDataSource::endElementRow
    - strcmp
    - OGRXLSX::OGRXLSXDataSource::PushState
    - CPLError
    - clear
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementTable(const char *pszNameIn,\n
      \                                         const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:870,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:870,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:872,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:879,1
    - Dst: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:884,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:884,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:885,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:887,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:888,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:894,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:894,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:895,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:897,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:897,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:898,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:899,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:901,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:901,1
    - Dst: SetUpdatable
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:907,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:907,1
    - Dst: OGRXLSX::OGRXLSXDataSource::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:908,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 913
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 913
    functionName: OGRXLSX::OGRXLSXDataSource::endElementTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - GetLayerDefn
    - SetField
    - c_str
    - static_cast<int>
    - empty
    - OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
    - SetUpdatable
    - CPL_TO_BOOL
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - strcmp
    - CreateField
    - CPL_IGNORE_RET_VAL
    - OGRXLSX::OGRXLSXDataSource::SetUpdated
    - OGRFeature::OGRFeature
    - CreateFeature
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementTable(CPL_UNUSED const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:922,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:924,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:944,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:950,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:951,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:959,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:975,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:978,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:980,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:982,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 987
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 987
    functionName: OGRXLSX::OGRXLSXDataSource::startElementRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLDebug
    - EQUAL
    - strcmp
    - OGRXLSX::OGRXLSXDataSource::PushState
    - push_back
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementRow(const char *pszNameIn,\n                                        const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:997,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:997,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1006,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1009,1
    - Dst: resize
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1010,1
    - Dst: OGRXLSX::OGRXLSXDataSource::DetectHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1018,1
    - Dst: SetHasHeaderLine
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1020,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1024,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1028,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1032,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1033,1
    - Dst: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1035,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1035,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1036,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1041,1
    - Dst: oSetFieldsOfUnknownType::insert
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1044,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1045,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1047,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1055,1
    - Dst: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1061,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1061,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1062,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1064,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1065,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1072,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1072,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1073,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1075,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1075,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1076,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1077,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1079,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1079,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1087,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1088,1
    - Dst: GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1090,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1092,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1093,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1094,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1095,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1097,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1104,1
    - Dst: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1110,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1110,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1111,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1113,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1114,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1124,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1126,1
    - Dst: OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1129,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1130,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1131,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1133,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1134,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1135,1
    - Dst: oSetFieldsOfUnknownType::find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1136,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1137,1
    - Dst: oSetFieldsOfUnknownType::end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1138,1
    - Dst: oSetFieldsOfUnknownType::erase
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1140,1
    - Dst: OGRFieldDefn*::GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1143,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1144,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1145,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1167,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1171,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1175,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1178,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1180,1
    - Dst: AlterFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1181,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1181,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1186,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1190,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1197,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1197,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1198,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1200,1
    - Dst: SetField
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1202,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1202,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1203,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1204,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1207,1
    - Dst: CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1207,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 101
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1213
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1213
    functionName: OGRXLSX::OGRXLSXDataSource::endElementRow
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 2
    functionsReached:
    - oSetFieldsOfUnknownType::end
    - SetHasHeaderLine
    - oSetFieldsOfUnknownType::insert
    - strcmp
    - OGRFieldDefn*::SetSubType
    - CPLError
    - OGRFieldDefn*::GetTemporaryUnsealer
    - OGRXLSX::OGRXLSXDataSource::DetectHeaderLine
    - SetField
    - oSetFieldsOfUnknownType::erase
    - oSetFieldsOfUnknownType::find
    - OGRFieldDefn*::GetSubType
    - resize
    - CreateFeature
    - GetLayerDefn
    - c_str
    - static_cast<int>
    - OGRXLSX::OGRXLSXDataSource::GetOGRFieldType
    - AlterFieldDefn
    - CPLSPrintf
    - OGRFieldDefn::SetSubType
    - CPLAssert
    - CreateField
    - CPL_IGNORE_RET_VAL
    - OGRFieldDefn*::GetType
    - OGRFeature::OGRFeature
    - OGRFieldDefn*::SetType
    - size
    - static_cast<size_t>
    - empty
    - OGRFieldDefn::SetType
    - GetFeatureCount
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementRow(CPL_UNUSED const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1222,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1222,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1224,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1226,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1226,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 1230
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1230
    functionName: OGRXLSX::OGRXLSXDataSource::startElementCell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - OGRXLSX::OGRXLSXDataSource::PushState
    - empty
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementCell(const char *pszNameIn,\n
      \                                        CPL_UNUSED const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1240,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1240,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1245,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1248,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1252,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1257
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1257
    functionName: OGRXLSX::OGRXLSXDataSource::endElementCell
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLDebug
    - CPLAssert
    - strcmp
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementCell(CPL_UNUSED const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1266
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1266
    functionName: OGRXLSX::OGRXLSXDataSource::dataHandlerTextV
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::dataHandlerTextV(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1277,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1280,1
    - Dst: OGRXLSXLayer*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1281,1
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1287,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1288,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1289,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1291,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1292,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1294,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1311,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1312,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1312,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1314,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1317,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1317,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1318,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1319,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1325,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1330,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRXLSXLayer*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1339
    functionName: OGRXLSX::OGRXLSXDataSource::BuildLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - XML_ParserFree
    - CPLDebug
    - OGRCreateExpatXMLParser
    - CPLError
    - XML_ErrorString
    - XML_GetCurrentLineNumber
    - XML_SetUserData
    - XML_GetCurrentColumnNumber
    - std::vector::data
    - VSIFSeekL
    - XML_GetErrorCode
    - VSIFOpenL
    - XML_SetElementHandler
    - XML_Parse
    - VSIFCloseL
    - OGRXLSXLayer*::GetName
    - XML_SetCharacterDataHandler
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::BuildLayer(OGRXLSXLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::startElementSSCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszNameIn
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1349
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1349
    functionName: OGRXLSX::startElementSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::startElementSSCbk
    linkageType: ''
    returnType: void
    signature: "void startElementSSCbk(void *pUserData, const char *pszNameIn,\n                                      const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1357,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1364,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1366,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1373,1
    - Dst: OGRXLSX::OGRXLSXDataSource::PushState
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 1383
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1383
    functionName: OGRXLSX::OGRXLSXDataSource::startElementSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRXLSX::OGRXLSXDataSource::PushState
    - strcmp
    - GetUnprefixed
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementSSCbk(const char *pszNameIn,\n
      \                                         CPL_UNUSED const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::endElementSSCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszNameIn
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1392
    functionName: OGRXLSX::endElementSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::endElementSSCbk
    linkageType: ''
    returnType: void
    signature: void endElementSSCbk(void *pUserData, const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1425
    functionName: OGRXLSX::OGRXLSXDataSource::endElementSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementSSCbk(const char * /*pszNameIn*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::dataHandlerSSCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - data
    - nLen
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1435
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1435
    functionName: OGRXLSX::dataHandlerSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::dataHandlerSSCbk
    linkageType: ''
    returnType: void
    signature: "void dataHandlerSSCbk(void *pUserData, const char *data,\n                                     int
      nLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1445,1
    - Dst: XML_StopParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1447,1
    - Dst: append
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1461,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - data
    - nLen
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1466
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1466
    functionName: OGRXLSX::OGRXLSXDataSource::dataHandlerSSCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - append
    - XML_StopParser
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::dataHandlerSSCbk(const char *data, int nLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1477,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1478,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1480,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1481,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1483,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1500,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1501,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1503,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1506,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1506,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1507,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1508,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1514,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1519,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - fpSharedStrings
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1525
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1525
    functionName: OGRXLSX::OGRXLSXDataSource::AnalyseSharedStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetCharacterDataHandler
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::AnalyseSharedStrings(VSILFILE *fpSharedStrings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::startElementWBRelsCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszNameIn
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1537
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1537
    functionName: OGRXLSX::startElementWBRelsCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::startElementWBRelsCbk
    linkageType: ''
    returnType: void
    signature: "void startElementWBRelsCbk(void *pUserData,\n                                          const
      char *pszNameIn,\n                                          const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1545,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1548,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1559
      start: 1539
    functionDepth: 0
    functionLinenumber: 1539
    functionLinenumberEnd: 1559
    functionName: OGRXLSX::OGRXLSXDataSource::startElementWBRelsCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - GetUnprefixed
    - strstr
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementWBRelsCbk(const char *pszNameIn,\n
      \                                             const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1567,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1568,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1569,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1571,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1584,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1585,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1585,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1587,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1590,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1590,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1591,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1592,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1598,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1603,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - fpWorkbookRels
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1609
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1609
    functionName: OGRXLSX::OGRXLSXDataSource::AnalyseWorkbookRels
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::AnalyseWorkbookRels(VSILFILE *fpWorkbookRels)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::startElementWBCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszNameIn
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1619
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1619
    functionName: OGRXLSX::startElementWBCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::startElementWBCbk
    linkageType: ''
    returnType: void
    signature: "void startElementWBCbk(void *pUserData, const char *pszNameIn,\n                                      const
      char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1627,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1630,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1635,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1635,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1636,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1636,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1639,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1641,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1656,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1658,1
    - Dst: OGRXLSXLayer::OGRXLSXLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1664
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1664
    functionName: OGRXLSX::OGRXLSXDataSource::startElementWBCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - empty
    - insert
    - find
    - GetUnprefixed
    - strcmp
    - CPLRealloc
    - CPLString
    - OGRXLSXLayer::OGRXLSXLayer
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementWBCbk(const char *pszNameIn,\n
      \                                         const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1672,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1673,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1674,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1676,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1689,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1690,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1690,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1692,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1694,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1694,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1695,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1696,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1702,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1707,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - fpWorkbook
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1713
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1713
    functionName: OGRXLSX::OGRXLSXDataSource::AnalyseWorkbook
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::AnalyseWorkbook(VSILFILE *fpWorkbook)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::startElementStylesCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pUserData
    - pszNameIn
    - ppszAttr
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1725
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1725
    functionName: OGRXLSX::startElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::startElementStylesCbk
    linkageType: ''
    returnType: void
    signature: "void startElementStylesCbk(void *pUserData,\n                                          const
      char *pszNameIn,\n                                          const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1733,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1736,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1751,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1753,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1754,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1756,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1758,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1760,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1763,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1767,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1779,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1781,1
    - Dst: XLSXFieldTypeExtended
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1783,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1788,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1789,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1792,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1798,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1799,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1799,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1802,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 2
    argNames:
    - pszNameIn
    - ppszAttr
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1804
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1804
    functionName: OGRXLSX::OGRXLSXDataSource::startElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - XLSXFieldTypeExtended
    - end
    - static_cast<int>
    - find
    - GetUnprefixed
    - CPLDebug
    - strcmp
    - strstr
    - push_back
    - printf
    linkageType: ''
    returnType: void
    signature: "void OGRXLSXDataSource::startElementStylesCbk(const char *pszNameIn,\n
      \                                             const char **ppszAttr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRXLSX::endElementStylesCbk
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUserData
    - pszNameIn
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1813
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1813
    functionName: OGRXLSX::endElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRXLSX::endElementStylesCbk
    linkageType: ''
    returnType: void
    signature: void endElementStylesCbk(void *pUserData, const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnprefixed
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1820,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1827
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1827
    functionName: OGRXLSX::OGRXLSXDataSource::endElementStylesCbk
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - GetUnprefixed
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::endElementStylesCbk(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCreateExpatXMLParser
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1838,1
    - Dst: XML_SetElementHandler
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1839,1
    - Dst: XML_SetUserData
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1841,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1843,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1857,1
    - Dst: XML_Parse
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1858,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1860,1
    - Dst: XML_ErrorString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1862,1
    - Dst: XML_GetErrorCode
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1862,1
    - Dst: XML_GetCurrentLineNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1863,1
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1864,1
    - Dst: XML_ParserFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1870,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1875,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - fpStyles
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1881
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1881
    functionName: OGRXLSX::OGRXLSXDataSource::AnalyseStyles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - XML_SetElementHandler
    - XML_Parse
    - XML_ErrorString
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - XML_ParserFree
    - XML_GetErrorCode
    - XML_GetCurrentLineNumber
    - OGRCreateExpatXMLParser
    - XML_SetUserData
    - CPLError
    - XML_GetCurrentColumnNumber
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::AnalyseStyles(VSILFILE *fpStyles)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1898,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1912,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1912,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1914,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1915,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1915,1
    - Dst: OGRXLSX::OGRXLSXDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1917,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1921,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1936,1
    - Dst: OGRXLSXLayer::OGRXLSXLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1935,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pszLayerName
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1948
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 1948
    functionName: OGRXLSX::OGRXLSXDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - OGRXLSX::OGRXLSXDataSource::DeleteLayer
    - EQUAL
    - CPLRealloc
    - CPLError
    - GetName
    - CSLFetchNameValue
    - OGRXLSXLayer::OGRXLSXLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRXLSXDataSource::ICreateLayer(const char *pszLayerName,\n
      \                               const OGRGeomFieldDefn * /*poGeomFieldDefn*/,\n
      \                               CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1962,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1976,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1976,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1982,1
    - Dst: OGRXLSX::OGRXLSXDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:1989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1990
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1990
    functionName: OGRXLSX::OGRXLSXDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - EQUAL
    - GetName
    - OGRXLSX::OGRXLSXDataSource::DeleteLayer
    linkageType: ''
    returnType: void
    signature: void OGRXLSXDataSource::DeleteLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2000,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2019
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2019
    functionName: OGRXLSX::OGRXLSXDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - memmove
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRXLSXDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - pszPartName
    - pszContentType
    argTypes:
    - VSILFILE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2030
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2030
    functionName: OGRXLSX::WriteOverride
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    linkageType: ''
    returnType: void
    signature: "void WriteOverride(VSILFILE *fp, const char *pszPartName,\n                          const
      char *pszContentType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2051,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2052,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2057,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2057,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2058,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2059,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2061,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2063,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2066,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2070,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2071,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2075,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2078,1
    - Dst: OGRXLSX::WriteOverride
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2082,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2086,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - pszName
    - nLayers
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2089
      start: 2048
    functionDepth: 2
    functionLinenumber: 2048
    functionLinenumberEnd: 2089
    functionName: OGRXLSX::WriteContentTypes
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - OGRXLSX::WriteOverride
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteContentTypes(const char *pszName, int nLayers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2097,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2098,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2101,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2101,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2102,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2106,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2107,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2110
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2110
    functionName: OGRXLSX::WriteApp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteApp(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2119,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2120,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2123,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2123,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2124,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2131,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2132,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2135
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2135
    functionName: OGRXLSX::WriteCore
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteCore(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2143,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2144,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2147,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2147,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2148,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2149,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2160,1
    - Dst: GDALDataset*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2161,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2163,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2166,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2170,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2172,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2173,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2175,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - pszName
    - poDS
    argTypes:
    - char*
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 2178
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2178
    functionName: OGRXLSX::WriteWorkbook
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - GDALDataset*::GetLayerCount
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    - GDALDataset*::GetLayer
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool WriteWorkbook(const char *pszName, GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - nCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2208
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2208
    functionName: OGRXLSX::BuildColString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString BuildColString(int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2218,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2220,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2223,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2223,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2224,1
    - Dst: OGRXLSXLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2237,1
    - Dst: OGRXLSXLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2239,1
    - Dst: OGRXLSXLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2241,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2248,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2252,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2254,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2257,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2257,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2258,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2261,1
    - Dst: OGRXLSXLayer*::GetCols
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2263,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2264,1
    - Dst: OGRXLSXLayer*::GetCols
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2264,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2266,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2270,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2275,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2277,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2281,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2283,1
    - Dst: OGRXLSX::BuildColString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2286,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2288,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2288,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2289,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2290,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2292,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2299,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2302,1
    - Dst: OGRXLSX::BuildColString
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2304,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2306,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2307,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2311,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2311,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2312,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2313,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2314,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2318,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2320,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2321,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2323,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2323,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2325,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2326,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2327,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2331,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2331,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2332,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2333,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2334,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2346,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2350,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2358,1
    - Dst: fmod
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2362,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2366,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2368,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2368,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2374,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2377,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2379,1
    - Dst: std::map<std::string, int>::find
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2385,1
    - Dst: std::map<std::string, int>::end
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2387,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2391,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2393,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2395,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2395,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2397,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2398,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2402,1
    - Dst: OGRXLSXLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2406,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2408,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2409,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2410,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 98
    argCount: 5
    argNames:
    - pszName
    - poLayer
    - iLayer
    - oStringMap
    - oStringList
    argTypes:
    - char*
    - OGRXLSXLayer*
    - int
    - std::map<std::string, int>
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 2412
      start: 2214
    functionDepth: 3
    functionLinenumber: 2214
    functionLinenumberEnd: 2412
    functionName: OGRXLSX::WriteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - OGRXLSXLayer*::GetCols
    - OGRXLSXLayer*::ResetReading
    - strcmp
    - std::map<std::string, int>::end
    - OGR_GET_MS
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetFieldAsInteger
    - OGRXLSX::BuildColString
    - fmod
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - strlen
    - std::vector<std::string>::size
    - std::map<std::string, int>::find
    - VSIFPrintfL
    - std::vector<std::string>::push_back
    - CPLSPrintf
    - VSIFOpenL
    - OGRFieldDefn*::GetType
    - OGRXLSXLayer*::GetNextFeature
    - OGRFeatureDefn*::GetFieldDefn
    - OGRXLSXLayer*::GetLayerDefn
    - VSIFCloseL
    - CPLYMDHMSToUnixTime
    - VSIFWriteL
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool WriteLayer(const char *pszName, OGRXLSXLayer *poLayer, int iLayer,\n
      \                      std::map<std::string, int> &oStringMap,\n                       std::vector<std::string>
      &oStringList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2422,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2423,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2426,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2426,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2427,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2428,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2429,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2431,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2433,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2434,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2435,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2437,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pszName
    - oStringList
    argTypes:
    - char*
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 2440
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2440
    functionName: OGRXLSX::WriteSharedStrings
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    - CPLFree
    - std::vector<std::string>::size
    linkageType: ''
    returnType: bool
    signature: "bool WriteSharedStrings(const char *pszName,\n                               std::vector<std::string>
      &oStringList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2448,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2449,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2452,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2452,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2453,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2455,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2456,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2457,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2460,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2461,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2463,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2466,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2467,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2468,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2469,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2470,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2471,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2472,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2473,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2474,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2475,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2476,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2477,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2478,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2479,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2480,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2481,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2482,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2483,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2484,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2485,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2486,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2487,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2488,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2489,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2490,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2491,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2492,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2493,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2494,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2495,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2496,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2497,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2498,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2499,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2500,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2501,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2503,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2504,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2507
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2507
    functionName: OGRXLSX::WriteStyles
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteStyles(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2516,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2517,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2520,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2520,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2521,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2522,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2528,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2533,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2537,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pszName
    - nLayers
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2540
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2540
    functionName: OGRXLSX::WriteWorkbookRels
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteWorkbookRels(const char *pszName, int nLayers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2548,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2549,1
    - Dst: VSIFWriteL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2552,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2552,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2553,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2554,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2558,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2563,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2567,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2570
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2570
    functionName: OGRXLSX::WriteDotRels
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFPrintfL
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteDotRels(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2584,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2588,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2590,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2592,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2600,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2604,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2605,1
    - Dst: WriteApp
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2612,1
    - Dst: WriteCore
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2613,1
    - Dst: WriteWorkbook
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2616,1
    - Dst: WriteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2624,1
    - Dst: WriteSharedStrings
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2627,1
    - Dst: WriteStyles
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2628,1
    - Dst: WriteWorkbookRels
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2631,1
    - Dst: WriteDotRels
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2634,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2637,1
    - Dst: OGRXLSX::OGRXLSXDataSource::SetUpdated
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2644,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp:2649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2576
    functionDepth: 1
    functionLinenumber: 2576
    functionLinenumberEnd: 2653
    functionName: OGRXLSX::OGRXLSXDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp
    functionUses: 1
    functionsReached:
    - GetLayerDefn
    - WriteStyles
    - WriteLayer
    - VSIStatL
    - WriteWorkbookRels
    - VSIFCloseL
    - VSIUnlink
    - VSIFOpenExL
    - CPLSPrintf
    - WriteApp
    - VSIGetLastErrorMsg
    - WriteDotRels
    - OGRXLSX::OGRXLSXDataSource::SetUpdated
    - CPLError
    - WriteCore
    - WriteSharedStrings
    - WriteWorkbook
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRXLSXDataSource::FlushCache(bool /* bAtClosing */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:56,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:58,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:61,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:63,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: OGRSQLiteIOClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - VSIUnlink
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOClose(sqlite3_file *pFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:72,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:73,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:73,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:76,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:77,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:81,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pFile
    - pBuffer
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: OGRSQLiteIORead
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    - memset
    - static_cast<char *>
    - static_cast<vsi_l_offset>
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteIORead(sqlite3_file *pFile, void *pBuffer, int iAmt,\n
      \                          sqlite3_int64 iOfst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:91,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:92,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:92,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:95,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pFile
    - pBuffer
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: OGRSQLiteIOWrite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    - static_cast<vsi_l_offset>
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteIOWrite(sqlite3_file *pFile, const void *pBuffer, int
      iAmt,\n                            sqlite3_int64 iOfst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:108,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pFile
    - size
    argTypes:
    - sqlite3_file*
    - sqlite3_int64
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: OGRSQLiteIOTruncate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOTruncate(sqlite3_file *pFile, sqlite3_int64 size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:121,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sqlite3_file *pFile
    - flags
    argTypes:
    - DEBUG_ONLY
    - DEBUG_ONLY
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: OGRSQLiteIOSync
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOSync(DEBUG_ONLY sqlite3_file *pFile, DEBUG_ONLY int
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:130,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:131,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:132,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:133,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:134,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pFile
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite3_int64*
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: OGRSQLiteIOFileSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOFileSize(sqlite3_file *pFile, sqlite3_int64 *pSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:146,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sqlite3_file *pFile
    - flags
    argTypes:
    - DEBUG_ONLY
    - DEBUG_ONLY
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: OGRSQLiteIOLock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOLock(DEBUG_ONLY sqlite3_file *pFile, DEBUG_ONLY int
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:157,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sqlite3_file *pFile
    - flags
    argTypes:
    - DEBUG_ONLY
    - DEBUG_ONLY
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: OGRSQLiteIOUnlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteIOUnlock(DEBUG_ONLY sqlite3_file *pFile,\n                             DEBUG_ONLY
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:168,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sqlite3_file *pFile
    - pResOut
    argTypes:
    - DEBUG_ONLY
    - DEBUG_ONLY*
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: OGRSQLiteIOCheckReservedLock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteIOCheckReservedLock(DEBUG_ONLY sqlite3_file *pFile,\n
      \                                       DEBUG_ONLY int *pResOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:180,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sqlite3_file *pFile
    - int
    - pArg
    argTypes:
    - DEBUG_ONLY
    - DEBUG_ONLY
    - DEBUG_ONLY*
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: OGRSQLiteIOFileControl
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteIOFileControl(DEBUG_ONLY sqlite3_file *pFile,\n                                  DEBUG_ONLY
      int op, DEBUG_ONLY void *pArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:190,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sqlite3_file *pFile
    argTypes:
    - DEBUG_ONLY
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: OGRSQLiteIOSectorSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIOSectorSize(DEBUG_ONLY sqlite3_file *pFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:200,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sqlite3_file *pFile
    argTypes:
    - DEBUG_ONLY
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: OGRSQLiteIODeviceCharacteristics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteIODeviceCharacteristics(DEBUG_ONLY sqlite3_file *pFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:232,1
    - Dst: static_cast<OGRSQLiteVFSAppDataStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:237,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:240,1
    - Dst: reinterpret_cast<OGRSQLiteFileStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:243,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:248,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:248,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:252,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:252,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:253,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:253,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:255,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:255,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:258,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:258,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:266,1
    - Dst: pfn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:272,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:277,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:277,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - pVFS
    - zNameIn
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 283
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 283
    functionName: OGRSQLiteVFSOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - reinterpret_cast<OGRSQLiteFileStruct *>
    - CPLDebug
    - VSIStatExL
    - static_cast<OGRSQLiteVFSAppDataStruct *>
    - VSIFOpenL
    - pfn
    - VSIMemGenerateHiddenFilename
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSOpen(sqlite3_vfs *pVFS, const char *zNameIn,\n                            sqlite3_file
      *pFile, int flags, int *pOutFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:289,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sqlite3_vfs *pVFS
    - zName
    - DEBUG_ONLY
    argTypes:
    - DEBUG_ONLY
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: OGRSQLiteVFSDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSDelete(DEBUG_ONLY sqlite3_vfs *pVFS, const char *zName,\n
      \                             int DEBUG_ONLY syncDir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:299,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:307,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:308,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:309,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:310,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:310,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:311,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:311,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:311,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:313,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:313,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:314,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:314,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:314,1
    - Dst: VSIStatExL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:320,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:325,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:328,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:332,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:335,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - sqlite3_vfs *pVFS
    - zName
    - flags
    - pResOut
    argTypes:
    - DEBUG_ONLY
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 343
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 343
    functionName: OGRSQLiteVFSAccess
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - CPLDebug
    - VSIFOpenL
    - strcmp
    - strlen
    - STARTS_WITH
    - VSIStatExL
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSAccess(DEBUG_ONLY sqlite3_vfs *pVFS, const char *zName,\n
      \                             int flags, int *pResOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:348,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:350,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:354,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:358,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:362,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:362,1
    - Dst: strncpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:365,1
    - Dst: sqlite3_vfs*::xFullPathname
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pVFS
    - zName
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 370
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 370
    functionName: OGRSQLiteVFSFullPathname
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GET_UNDERLYING_VFS
    - strncpy
    - CPLDebug
    - sqlite3_vfs*::xFullPathname
    - strlen
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSFullPathname(sqlite3_vfs *pVFS, const char *zName,\n
      \                                   int nOut, char *zOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:374,1
    - Dst: sqlite3_vfs*::xDlOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVFS
    - zFilename
    argTypes:
    - sqlite3_vfs*
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: OGRSQLiteVFSDlOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - GET_UNDERLYING_VFS
    - sqlite3_vfs*::xDlOpen
    linkageType: ''
    returnType: void
    signature: void *OGRSQLiteVFSDlOpen(sqlite3_vfs *pVFS, const char *zFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:381,1
    - Dst: sqlite3_vfs*::xDlError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVFS
    - nByte
    - zErrMsg
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: OGRSQLiteVFSDlError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - GET_UNDERLYING_VFS
    - sqlite3_vfs*::xDlError
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteVFSDlError(sqlite3_vfs *pVFS, int nByte, char *zErrMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:389,1
    - Dst: sqlite3_vfs*::xDlSym
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: "(*OGRSQLiteVFSDlSym(sqlite3_vfs *pVFS, void *pHandle,\n                                const
      char *zSymbol))(void)"
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - GET_UNDERLYING_VFS
    - sqlite3_vfs*::xDlSym
    linkageType: ''
    returnType: void
    signature: "void (*OGRSQLiteVFSDlSym(sqlite3_vfs *pVFS, void *pHandle,\n                                const
      char *zSymbol))(void)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:396,1
    - Dst: sqlite3_vfs*::xDlClose
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVFS
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: OGRSQLiteVFSDlClose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlClose
    - GET_UNDERLYING_VFS
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteVFSDlClose(sqlite3_vfs *pVFS, void *pHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:403,1
    - Dst: sqlite3_vfs*::xRandomness
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVFS
    - nByte
    - zOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: OGRSQLiteVFSRandomness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - GET_UNDERLYING_VFS
    - sqlite3_vfs*::xRandomness
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteVFSRandomness(sqlite3_vfs *pVFS, int nByte, char *zOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:410,1
    - Dst: sqlite3_vfs*::xSleep
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVFS
    - microseconds
    argTypes:
    - sqlite3_vfs*
    - int
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: OGRSQLiteVFSSleep
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xSleep
    - GET_UNDERLYING_VFS
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteVFSSleep(sqlite3_vfs *pVFS, int microseconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:425,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:427,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:428,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:429,1
    - Dst: GetSystemTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:433,1
    - Dst: SystemTimeToFileTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:435,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:440,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:443,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:444,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - piNow
    argTypes:
    - sqlite3_int64*
    constantsTouched: []
    func_position:
      end: 447
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 447
    functionName: OGRSQLiteVFSCurrentTimeInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - static_cast<sqlite3_int64>
    - GetSystemTime
    - SystemTimeToFileTime
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSCurrentTimeInt64(sqlite3_vfs * /*pVFS*/,\n                                        sqlite3_int64
      *piNow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:456,1
    - Dst: gettimeofday
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:457,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - piNow
    argTypes:
    - sqlite3_int64*
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: OGRSQLiteVFSCurrentTimeInt64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - gettimeofday
    - static_cast<sqlite3_int64>
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteVFSCurrentTimeInt64(sqlite3_vfs * /*pVFS*/,\n                                        sqlite3_int64
      *piNow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p1
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: OGRSQLiteVFSCurrentTime
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteVFSCurrentTime(sqlite3_vfs * /*pVFS*/, double *p1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UNDERLYING_VFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:475,1
    - Dst: sqlite3_vfs*::xGetLastError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVFS
    - p1
    - p2
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: OGRSQLiteVFSGetLastError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xGetLastError
    - GET_UNDERLYING_VFS
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteVFSGetLastError(sqlite3_vfs *pVFS, int p1, char *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:482,1
    - Dst: static_cast<sqlite3_vfs *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:484,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:484,1
    - Dst: static_cast<OGRSQLiteVFSAppDataStruct *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:487,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:488,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:490,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:491,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:502,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - pfn
    - pfnUserData
    argTypes:
    - pfnNotifyFileOpenedType
    - void*
    constantsTouched: []
    func_position:
      end: 520
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 520
    functionName: OGRSQLiteCreateVFS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevfs.cpp
    functionUses: 3
    functionsReached:
    - atoi
    - static_cast<sqlite3_vfs *>
    - static_cast<OGRSQLiteVFSAppDataStruct *>
    - snprintf
    - CPLCalloc
    - CPLGetConfigOption
    - sqlite3_vfs_find
    linkageType: ''
    returnType: sqlite3_vfs
    signature: sqlite3_vfs *OGRSQLiteCreateVFS(pfnNotifyFileOpenedType pfn, void *pfnUserData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: OGRSQLiteGeomFieldDefn::~OGRSQLiteGeomFieldDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteGeomFieldDefn::~OGRSQLiteGeomFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: OGRSQLiteFeatureDefn::~OGRSQLiteFeatureDefn()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteFeatureDefn::~OGRSQLiteFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: IOGRSQLiteGetSpatialWhere::~IOGRSQLiteGetSpatialWhere()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGRSQLiteGetSpatialWhere::~IOGRSQLiteGetSpatialWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:60,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRSQLiteDataSource*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: OGRSQLiteLayer::OGRSQLiteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteLayer::OGRSQLiteLayer(OGRSQLiteDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: OGRSQLiteLayer::~OGRSQLiteLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::Finalize
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteLayer::~OGRSQLiteLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:86,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:87,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:92,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:98,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:102,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:104,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: OGRSQLiteLayer::Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - CSLDestroy
    - CPLDebug
    - sqlite3_finalize
    - CPLFree
    - GetName
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteLayer::Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:135,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:139,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - pszValue
    - pFieldType
    argTypes:
    - char*
    - OGRFieldType*
    constantsTouched: []
    func_position:
      end: 155
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 155
    functionName: OGRGetDateTimeFieldType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: "bool OGRGetDateTimeFieldType(const char *pszValue,\n                                    OGRFieldType
      *pFieldType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:169,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:169,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:171,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:174,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:179,1
    - Dst: OGRGeometryFactory::createFromFgf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:184,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:191,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - hStmt
    - iCol
    - oField
    - eGeomFormat
    argTypes:
    - sqlite3_stmt*
    - int
    - CPL_UNUSED
    - OGRSQLiteGeomFormat
    constantsTouched: []
    func_position:
      end: 199
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 199
    functionName: OGRIsBinaryGeomCol
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    - CPLErrorReset
    - OGRGeometryFactory::createFromWkb
    - reinterpret_cast<const GByte *>
    - sqlite3_column_blob
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - OGRGeometryFactory::createFromFgf
    linkageType: ''
    returnType: int
    signature: "int OGRIsBinaryGeomCol(sqlite3_stmt *hStmt, int iCol,\n                              CPL_UNUSED
      OGRFieldDefn &oField,\n                              OGRSQLiteGeomFormat &eGeomFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:214,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:215,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:216,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:223,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:223,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:224,1
    - Dst: auto::ColCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:225,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:227,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:240,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:240,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:253,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:256,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:262,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:270,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:272,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:276,1
    - Dst: std::set<CPLString>::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:281,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:281,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:282,1
    - Dst: std::set<CPLString>*::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:287,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:287,1
    - Dst: std::set<CPLString>*::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:288,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:290,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:291,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:299,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:299,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:301,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:304,1
    - Dst: CPL_INT64_FITS_ON_INT32
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:305,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:306,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:308,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:313,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:317,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:327,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:328,1
    - Dst: auto::second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:329,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:342,1
    - Dst: CPLHexToBinary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:352,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:352,1
    - Dst: OGRFieldDefn::SetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:353,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:353,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:354,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:355,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:357,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:359,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:360,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:363,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:365,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:366,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:368,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:369,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:371,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:373,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:374,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:376,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:379,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:381,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:383,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:385,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:387,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:389,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:391,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:393,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:395,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:397,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:398,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:399,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:401,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:403,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:404,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:405,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:407,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:408,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:410,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:412,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:414,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:415,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:417,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:419,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:421,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:422,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:424,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:426,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:428,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:442,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:448,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:452,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:453,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:454,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:455,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:456,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:457,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:458,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:458,1
    - Dst: FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:459,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:461,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:464,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:465,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:466,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:467,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:468,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:471,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:474,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:475,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:476,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:477,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:478,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:479,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:480,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:481,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:483,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:484,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:486,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:489,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:491,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:495,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:496,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:500,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:504,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:510,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:511,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:519,1
    - Dst: OGRGetDateTimeFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:520,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:526,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:527,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:528,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:529,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:530,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:533,1
    - Dst: OGRIsBinaryGeomCol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:541,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:544,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:547,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:548,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:558,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:561,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:562,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:573,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:581,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:584,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:585,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:587,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:588,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:595,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:598,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:599,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:605,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:606,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:607,1
    - Dst: OGRSQLiteIsSpatialFunctionReturningGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:608,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:611,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:613,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:613,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:618,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:620,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:623,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:625,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:625,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:633,1
    - Dst: OGRIsBinaryGeomCol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:638,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:640,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:643,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:643,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:649,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:653,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:659,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:660,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:662,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:665,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:665,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:666,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:667,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:674,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:674,1
    - Dst: sqlite3_column_name
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:674,1
    CyclomaticComplexity: 145
    EdgeCount: 145
    ICount: 225
    argCount: 5
    argNames:
    - pszLayerName
    - bIsSelect
    - hStmtIn
    - paosGeomCols
    - aosIgnoredCols
    argTypes:
    - char*
    - bool
    - sqlite3_stmt*
    - std::set<CPLString>*
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 682
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 682
    functionName: OGRSQLiteLayer::BuildFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::SetDomainName
    - atoi
    - std::map::end
    - auto::SetType
    - CSLAddString
    - std::set::insert
    - wkbSetZ
    - CPLDebug
    - std::set<CPLString>*::end
    - Reference
    - OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    - CPLString
    - std::set<CPLString>::end
    - CPLGetConfigOption
    - std::string::c_str
    - cpl::contains
    - CPLHexToBinary
    - sqlite3_column_int64
    - auto::RowCount
    - OGRFromOGCGeomType
    - GetGeomFieldCount
    - CPLErrorReset
    - CPLStrdup
    - GetDB
    - SetGeomType
    - OGRIsBinaryGeomCol
    - OGRParseDate
    - SQLQuery
    - CPLPopErrorHandler
    - std::move
    - strlen
    - AddFieldDefn
    - CPLMalloc
    - OGRSQLiteIsSpatialFunctionReturningGeometry
    - OGRGetDateTimeFieldType
    - wkbSetM
    - OGRFieldDefn::GetNameRef
    - CPLTestBool
    - std::set<CPLString>*::find
    - reinterpret_cast<const char *>
    - STARTS_WITH_CI
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - FetchSRS
    - std::map::find
    - strstr
    - auto::SetSpatialRef
    - CPLFree
    - auto::second::c_str
    - SQLUnescape
    - static_cast<int *>
    - std::set<CPLString>::find
    - AddGeomFieldDefn
    - CPL_INT64_FITS_ON_INT32
    - OGRFieldDefn::SetType
    - EQUAL
    - strchr
    - std::make_unique<OGRSQLiteGeomFieldDefn>
    - sqlite3_column_name
    - CSLFindString
    - sqlite3_free
    - CPLPushErrorHandler
    - std::string
    - auto::ColCount
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteLayer::BuildFeatureDefn(const char *pszLayerName, bool
      bIsSelect,\n                                      sqlite3_stmt *hStmtIn,\n                                      const
      std::set<CPLString> *paosGeomCols,\n                                      const
      std::set<CPLString> &aosIgnoredCols)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: OGRSQLiteLayer::GetFIDColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    linkageType: ''
    returnType: char
    signature: char *OGRSQLiteLayer::GetFIDColumn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: OGRSQLiteLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ClearStatement
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:722,1
    - Dst: FilterGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:730,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:730,1
    - Dst: Evaluate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 736
    functionName: OGRSQLiteLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetGeomFieldRef
    - Evaluate
    - FilterGeometry
    - OGRSQLiteLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:747,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:762,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:763,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:765,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:765,1
    - Dst: OGRSQLiteLayer::ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:768,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:781,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:787,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:787,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:789,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:798,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:802,1
    - Dst: OGRSQLiteGeomFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:803,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:810,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:826,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:827,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:828,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:841,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:841,1
    - Dst: OGRGeometryFactory::createFromFgf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:852,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:860,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:861,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:862,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:863,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:868,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:869,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:870,1
    - Dst: OGRFeature*::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:871,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:883,1
    - Dst: OGRFieldDefn*::IsIgnored
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:884,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:892,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:896,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:902,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:903,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:904,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:908,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:909,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:911,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:916,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:917,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:919,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:929,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:930,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:931,1
    - Dst: OGRFeature*::SetFieldSameTypeUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:933,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:934,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:942,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:943,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:944,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:946,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:947,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:955,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:956,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:957,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:958,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:968,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:970,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:975,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:976,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:982,1
    - Dst: static_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:983,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:984,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:988,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:990,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:991,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:996,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:997,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:998,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1007,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1011,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1012,1
    - Dst: OGRFeature*::UnsetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1013,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1015,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1020,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1021,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1022,1
    - Dst: sqlite3_column_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1024,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1028,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1029,1
    - Dst: OGRFeature*::UnsetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1030,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1032,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1046,1
    - Dst: OGRFeature*::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1048,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1048,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1049,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1052,1
    - Dst: OGRFeature*::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1054,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1054,1
    - Dst: sqlite3_column_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1055,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 134
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 1059
    functionName: OGRSQLiteLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::assignSpatialReference
    - OGRFeature*::SetFieldNull
    - OGRSQLiteLayer::ClearStatement
    - ResetStatement
    - sqlite3_column_double
    - sqlite3_column_text
    - CPLError
    - GetFieldDefn
    - GetGeomFieldCount
    - OGRFeature*::SetGeomFieldDirectly
    - sqlite3_column_int64
    - sqlite3_free_table
    - sqlite3_reset
    - OGRFieldDefn*::IsIgnored
    - sqlite3_column_type
    - GetDB
    - OGRGeometryFactory::createFromWkb
    - OGRFeature*::SetFieldSameTypeUnsafe
    - static_cast<const char *>
    - OGRFeature*::GetRawFieldRef
    - OGRFeature*::SetNativeMediaType
    - OGRFieldDefn*::GetSubType
    - myGetGeomFieldDefn
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    - static_cast<int>
    - OGRSQLiteGeomFieldDefn*::GetSpatialRef
    - reinterpret_cast<const char *>
    - CPLSPrintf
    - const_cast<GByte *>
    - OGRFieldDefn*::GetType
    - CPL_IGNORE_RET_VAL
    - GetFieldDefnUnsafe
    - sqlite3_errmsg
    - OGRSQLiteGeomFieldDefn*::IsIgnored
    - OGRFeature::OGRFeature
    - OGRGeometryFactory::createFromFgf
    - CPLFree
    - OGRFeature*::UnsetField
    - OGRFeature*::SetNativeData
    - reinterpret_cast<const GByte *>
    - sqlite3_get_table
    - sqlite3_column_blob
    - OGRGeometryFactory::createFromWkt
    - CSLFindString
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    - OGRParseDate
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 3
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: OGRSQLiteLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1095,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1109,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1110,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1111,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1146,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1147,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1149,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1150,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1153,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1168,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1169,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1171,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1172,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1173,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1176,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1191,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1192,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1194,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1195,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1196,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1199,1
    - Dst: OGRPoint*::setM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1200,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1216,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1217,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1219,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1220,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1221,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1222,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1226,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1241,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1242,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1243,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1251,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1253,1
    - Dst: OGRLineString*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1255,1
    - Dst: reinterpret_cast<const OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1256,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1261,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1265,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1266,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1267,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1268,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1285,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1286,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1287,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1295,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1297,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1302,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1303,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1305,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1306,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1307,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1310,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1327,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1328,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1329,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1337,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1339,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1344,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1345,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1347,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1348,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1349,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1352,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1368,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1369,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1370,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1378,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1380,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1385,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1386,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1388,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1389,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1390,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1391,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1394,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1411,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1412,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1413,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1415,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1424,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1426,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1438,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1441,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1443,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1444,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1451,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1454,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1456,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1457,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1463,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1481,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1482,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1483,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1485,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1494,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1496,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1508,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1511,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1513,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1514,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1515,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1522,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1525,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1527,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1528,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1529,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1536,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1555,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1556,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1557,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1559,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1568,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1570,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1581,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1584,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1586,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1587,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1588,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1595,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1596,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1599,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1601,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1602,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1603,1
    - Dst: OGRLineString*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1611,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1629,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1630,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1631,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1633,1
    - Dst: OGRLineString::OGRLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1643,1
    - Dst: OGRLineString*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1645,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1657,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1660,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1662,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1663,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1664,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1665,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1672,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1673,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1676,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1678,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1679,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1680,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1681,1
    - Dst: OGRLineString*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1690,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1710,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1711,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1712,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1723,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1735,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1736,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1737,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1753,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1754,1
    - Dst: OGRLinearRing*::setPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1756,1
    - Dst: reinterpret_cast<const OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1758,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1764,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1768,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1770,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1771,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1772,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1776,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1792,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1793,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1794,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1805,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1817,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1818,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1819,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1835,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1836,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1841,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1844,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1846,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1847,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1848,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1851,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1854,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1870,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1871,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1872,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1883,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1895,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1896,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1897,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1913,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1914,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1919,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1922,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1924,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1925,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1926,1
    - Dst: OGRLinearRing*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1929,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1932,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1948,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1949,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1950,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1961,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1973,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1974,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1975,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1991,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1992,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:1998,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2001,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2003,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2004,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2005,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2006,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2009,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2013,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2029,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2030,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2031,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2042,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2054,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2055,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2056,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2058,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2076,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2077,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2085,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2088,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2090,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2091,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2098,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2101,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2103,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2104,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2110,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2115,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2131,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2132,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2133,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2144,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2156,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2157,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2158,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2160,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2178,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2179,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2187,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2190,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2192,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2193,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2194,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2201,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2204,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2206,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2207,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2208,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2215,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2221,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2237,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2238,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2239,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2250,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2262,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2263,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2264,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2266,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2284,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2285,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2293,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2296,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2298,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2299,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2300,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2307,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2308,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2311,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2313,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2314,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2315,1
    - Dst: OGRLinearRing*::setPointM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2323,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2328,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2344,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2345,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2346,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2357,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2369,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2370,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2371,1
    - Dst: nPointCount < 0 || nPointCount - 2 >
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2373,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2393,1
    - Dst: OGRLinearRing*::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2394,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2402,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2405,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2407,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2408,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2409,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2410,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2417,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2418,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2421,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2423,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2424,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2425,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2426,1
    - Dst: OGRLinearRing*::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2435,1
    - Dst: OGRPolygon*::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2442,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2476,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2477,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2478,1
    - Dst: OGRMultiPoint::OGRMultiPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2496,1
    - Dst: OGRMultiLineString::OGRMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2506,1
    - Dst: OGRMultiPolygon::OGRMultiPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2516,1
    - Dst: OGRGeometryCollection::OGRGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2526,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2530,1
    - Dst: OGRSQLiteLayer::createFromSpatialiteInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2551,1
    - Dst: OGRGeometryCollection*::addGeometryDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2561,1
    CyclomaticComplexity: 283
    EdgeCount: 283
    ICount: 839
    argCount: 6
    argNames:
    - pabyData
    - ppoReturn
    - nBytes
    - eByteOrder
    - pnBytesConsumed
    - nRecLevel
    argTypes:
    - GByte*
    - OGRGeometry**
    - int
    - OGRwkbByteOrder
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2585
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 2585
    functionName: OGRSQLiteLayer::createFromSpatialiteInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLinearRing*::setPoint
    - OGRMultiPoint::OGRMultiPoint
    - NEED_SWAP_SPATIALITE
    - assert
    - nPointCount < 0 || nPointCount - 2 >
    - CPL_SWAP32PTR
    - CPLError
    - reinterpret_cast<const OGRRawPoint *>
    - OGRPolygon::OGRPolygon
    - OGRPolygon*::addRingDirectly
    - OGRGeometryCollection*::addGeometryDirectly
    - OGRLinearRing*::setPoints
    - OGRLineString*::setPointM
    - OGRPoint::OGRPoint
    - OGRLineString::OGRLineString
    - OGRMultiLineString::OGRMultiLineString
    - CPL_SWAP64PTR
    - OGRLinearRing*::setNumPoints
    - OGRLinearRing::OGRLinearRing
    - OGRLineString*::setNumPoints
    - OGRMultiPolygon::OGRMultiPolygon
    - OGRLinearRing*::setPointM
    - OGRSQLiteLayer::createFromSpatialiteInternal
    - OGRLineString*::setPoints
    - OGRGeometryCollection::OGRGeometryCollection
    - OGRPoint*::setM
    - memcpy
    - OGRLineString*::setPoint
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteLayer::createFromSpatialiteInternal(\n    const GByte
      *pabyData, OGRGeometry **ppoReturn, int nBytes,\n    OGRwkbByteOrder eByteOrder,
      int *pnBytesConsumed, int nRecLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - pabyData
    - nBytes
    argTypes:
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 2655
      start: 2649
    functionDepth: 0
    functionLinenumber: 2649
    functionLinenumberEnd: 2655
    functionName: QuickCheckForSpatialiteGeometryValidity
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool QuickCheckForSpatialiteGeometryValidity(const GByte *pabyData,\n
      \                                                   int nBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickCheckForSpatialiteGeometryValidity
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2662,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2666,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2671,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2672,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2673,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2681,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2682,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2683,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2684,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2697,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2700,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2701,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2702,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2711,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2712,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2713,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2720,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2721,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2722,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2729,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2730,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2731,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2738,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2739,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2740,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 9
    argNames:
    - pabyData
    - nBytes
    - pnSRID
    - peType
    - pbIsEmpty
    - pdfMinX
    - pdfMinY
    - pdfMaxX
    - pdfMaxY
    argTypes:
    - GByte*
    - int
    - int*
    - OGRwkbGeometryType*
    - bool*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 2745
      start: 2657
    functionDepth: 1
    functionLinenumber: 2657
    functionLinenumberEnd: 2745
    functionName: OGRSQLiteLayer::GetSpatialiteGeometryHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - NEED_SWAP_SPATIALITE
    - static_cast<OGRwkbByteOrder>
    - CPL_SWAP64PTR
    - CPL_SWAP32PTR
    - wkbFlatten
    - memcpy
    - QuickCheckForSpatialiteGeometryValidity
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteLayer::GetSpatialiteGeometryHeader(\n    const GByte
      *pabyData, int nBytes, int *pnSRID, OGRwkbGeometryType *peType,\n    bool *pbIsEmpty,
      double *pdfMinX, double *pdfMinY, double *pdfMaxX,\n    double *pdfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyData
    - nBytes
    - ppoGeometry
    argTypes:
    - GByte*
    - int
    - OGRGeometry**
    constantsTouched: []
    func_position:
      end: 2757
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2757
    functionName: OGRSQLiteLayer::ImportSpatiaLiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 3
    functionsReached:
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteLayer::ImportSpatiaLiteGeometry(const GByte *pabyData,\n
      \                                               int nBytes,\n                                                OGRGeometry
      **ppoGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickCheckForSpatialiteGeometryValidity
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2771,1
    - Dst: static_cast<OGRwkbByteOrder>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2775,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2783,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2784,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2785,1
    - Dst: OGRSQLiteLayer::createFromSpatialiteInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2791,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2804,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - pabyData
    - nBytes
    - ppoGeometry
    - pnSRID
    argTypes:
    - GByte*
    - int
    - OGRGeometry**
    - int*
    constantsTouched: []
    func_position:
      end: 2819
      start: 2763
    functionDepth: 3
    functionLinenumber: 2763
    functionLinenumberEnd: 2819
    functionName: OGRSQLiteLayer::ImportSpatiaLiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 3
    functionsReached:
    - NEED_SWAP_SPATIALITE
    - OGRGeometryFactory::createFromWkb
    - static_cast<OGRwkbByteOrder>
    - OGRSQLiteLayer::createFromSpatialiteInternal
    - CPL_SWAP32PTR
    - memcpy
    - QuickCheckForSpatialiteGeometryValidity
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteLayer::ImportSpatiaLiteGeometry(const GByte *pabyData,\n
      \                                               int nBytes,\n                                                OGRGeometry
      **ppoGeometry,\n                                                int *pnSRID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2828,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2828,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2839,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2840,1
    - Dst: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2842,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2843,1
    - Dst: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2849,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2850,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2863,1
    - Dst: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2867,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - poGeometry
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2877
      start: 2825
    functionDepth: 1
    functionLinenumber: 2825
    functionLinenumberEnd: 2877
    functionName: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryCollection*::getGeometryRef
    - OGRGeometry*::getGeometryType
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - wkbFlatten
    - OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry(\n    const
      OGRGeometry *poGeometry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<const OGRGeometry *>::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2888,1
    - Dst: std::vector<const OGRGeometry *>::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2888,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2891,1
    - Dst: dynamic_cast<const OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2893,1
    - Dst: collectSimpleGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2895,1
    - Dst: std::vector<const OGRGeometry *>::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - poGeomCollection
    - simpleGeometries
    argTypes:
    - OGRGeometryCollection*
    - std::vector<const OGRGeometry *>
    constantsTouched: []
    func_position:
      end: 2899
      start: 2883
    functionDepth: 1
    functionLinenumber: 2883
    functionLinenumberEnd: 2899
    functionName: collectSimpleGeometries
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - std::vector<const OGRGeometry *>::size
    - std::vector<const OGRGeometry *>::reserve
    - OGRGeometryCollection*::getGeometryRef
    - dynamic_cast<const OGRGeometryCollection *>
    - collectSimpleGeometries
    - std::vector<const OGRGeometry *>::push_back
    linkageType: ''
    returnType: void
    signature: "void collectSimpleGeometries(const OGRGeometryCollection *poGeomCollection,\n
      \                       std::vector<const OGRGeometry *> &simpleGeometries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2909,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2909,1
    - Dst: OGRGeometry*::CoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2914,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2936,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2945,1
    - Dst: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2947,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2948,1
    - Dst: OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2950,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2951,1
    - Dst: OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2955,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2956,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2969,1
    - Dst: collectSimpleGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2972,1
    - Dst: OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2976,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2984,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2986,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:2986,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - poGeometry
    - bSpatialite2D
    - bUseComprGeom
    argTypes:
    - OGRGeometry*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2990
      start: 2905
    functionDepth: 2
    functionLinenumber: 2905
    functionLinenumberEnd: 2990
    functionName: OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize
    - OGRGeometry*::toGeometryCollection
    - OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::CoordinateDimension
    - OGRGeometry*::Is3D
    - OGRToOGCGeomType
    - CPLError
    - wkbFlatten
    - collectSimpleGeometries
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteLayer::ComputeSpatiaLiteGeometrySize(const OGRGeometry
      *poGeometry,\n                                                  bool bSpatialite2D,\n
      \                                                 bool bUseComprGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3001,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3001,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3007,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3009,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3016,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3027,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3029,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3038,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3050,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3052,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3061,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3084,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3086,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3093,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3103,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3105,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3116,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3130,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3132,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3142,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3154,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3156,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3167,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3179,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    argCount: 4
    argNames:
    - poGeometry
    - bSpatialite2D
    - bUseComprGeom
    - bAcceptMultiGeom
    argTypes:
    - OGRGeometry*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3182
      start: 2996
    functionDepth: 1
    functionLinenumber: 2996
    functionLinenumberEnd: 3182
    functionName: OGRSQLiteLayer::GetSpatialiteGeometryCode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometry*::IsMeasured
    - OGRGeometry*::Is3D
    - CPLError
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteLayer::GetSpatialiteGeometryCode(const OGRGeometry *poGeometry,\n
      \                                             bool bSpatialite2D,\n                                              bool
      bUseComprGeom,\n                                              bool bAcceptMultiGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3192,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3192,1
    - Dst: OGRGeometry*::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3197,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3200,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3201,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3202,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3204,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3205,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3209,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3212,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3213,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3214,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3215,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3218,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3219,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3220,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3228,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3231,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3232,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3233,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3244,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3247,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3248,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3249,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3251,1
    - Dst: OGRGeometry*::CoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3252,1
    - Dst: OGRLineString*::getPoints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3254,1
    - Dst: reinterpret_cast<OGRRawPoint *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3255,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3267,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3268,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3269,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3271,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3272,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3274,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3277,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3278,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3279,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3280,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3283,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3284,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3285,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3293,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3296,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3297,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3298,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3311,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3312,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3313,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3315,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3316,1
    - Dst: OGRGeometry*::Is3D
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3318,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3323,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3324,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3325,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3326,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3329,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3330,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3331,1
    - Dst: OGRGeometry*::IsMeasured
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3339,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3342,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3343,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3344,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3357,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3359,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3363,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3364,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3365,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3367,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3368,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3373,1
    - Dst: OGRPolygon*::getInteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3374,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3380,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3391,1
    - Dst: collectSimpleGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3395,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3398,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3399,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3400,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3412,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3413,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3414,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3416,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 139
    argCount: 5
    argNames:
    - poGeometry
    - eByteOrder
    - bSpatialite2D
    - bUseComprGeom
    - pabyData
    argTypes:
    - OGRGeometry*
    - OGRwkbByteOrder
    - bool
    - bool
    - GByte*
    constantsTouched: []
    func_position:
      end: 3426
      start: 3188
    functionDepth: 2
    functionLinenumber: 3188
    functionLinenumberEnd: 3426
    functionName: OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::IsMeasured
    - NEED_SWAP_SPATIALITE
    - memcpy
    - OGRGeometry*::CoordinateDimension
    - CPL_SWAP32PTR
    - OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal
    - OGRGeometry*::Is3D
    - wkbFlatten
    - collectSimpleGeometries
    - CPL_SWAP64PTR
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRPolygon*::getInteriorRing
    - OGRGeometry*::toLineString
    - reinterpret_cast<OGRRawPoint *>
    - OGRGeometry*::toPolygon
    - OGRPolygon*::getExteriorRing
    - OGRGeometry*::toPoint
    - memset
    - OGRLineString*::getPoints
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteLayer::ExportSpatiaLiteGeometryInternal(\n    const OGRGeometry
      *poGeometry, OGRwkbByteOrder eByteOrder,\n    bool bSpatialite2D, bool bUseComprGeom,
      GByte *pabyData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3435,1
    - Dst: OGRGeometry*::getLinearGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3436,1
    - Dst: OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3440,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3453,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3453,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3456,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3459,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3462,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3463,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3464,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3465,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3466,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3474,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3481,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3490,1
    - Dst: NEED_SWAP_SPATIALITE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3498,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3500,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3501,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3502,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3503,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3504,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 7
    argNames:
    - poGeometry
    - nSRID
    - eByteOrder
    - bSpatialite2D
    - bUseComprGeom
    - ppabyData
    - pnDataLength
    argTypes:
    - OGRGeometry*
    - GInt32
    - OGRwkbByteOrder
    - bool
    - bool
    - GByte**
    - int*
    constantsTouched: []
    func_position:
      end: 3511
      start: 3428
    functionDepth: 2
    functionLinenumber: 3428
    functionLinenumberEnd: 3511
    functionName: OGRSQLiteLayer::ExportSpatiaLiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - NEED_SWAP_SPATIALITE
    - CPL_SWAP64PTR
    - static_cast<GByte>
    - OGRGeometry*::hasCurveGeometry
    - CPL_SWAP32PTR
    - static_cast<GByte *>
    - CPLMalloc
    - memcpy
    - CPLFree
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::getLinearGeometry
    - OGRSQLiteLayer::CanBeCompressedSpatialiteGeometry
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteLayer::ExportSpatiaLiteGeometry(\n    const OGRGeometry
      *poGeometry, GInt32 nSRID, OGRwkbByteOrder eByteOrder,\n    bool bSpatialite2D,
      bool bUseComprGeom, GByte **ppabyData,\n    int *pnDataLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3520,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3523,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3526,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3529,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3537
      start: 3517
    functionDepth: 0
    functionLinenumber: 3517
    functionLinenumberEnd: 3537
    functionName: OGRSQLiteLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3543
    functionDepth: 1
    functionLinenumber: 3543
    functionLinenumberEnd: 3546
    functionName: OGRSQLiteLayer::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteLayer::StartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteLayer::StartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3552
    functionDepth: 1
    functionLinenumber: 3552
    functionLinenumberEnd: 3555
    functionName: OGRSQLiteLayer::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteLayer::CommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteLayer::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3561
    functionDepth: 1
    functionLinenumber: 3561
    functionLinenumberEnd: 3564
    functionName: OGRSQLiteLayer::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteLayer::RollbackTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteLayer::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3576,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3570
    functionDepth: 1
    functionLinenumber: 3570
    functionLinenumberEnd: 3581
    functionName: OGRSQLiteLayer::ClearStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 2
    functionsReached:
    - CPLDebug
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteLayer::ClearStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3594,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3596,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3597,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3598,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3599,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3602,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 4
    argNames:
    - poFilterGeom
    - pszRowIDName
    - pszEscapedTable
    - pszEscapedGeomCol
    argTypes:
    - OGRGeometry*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3610
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3610
    functionName: OGRSQLiteLayer::FormatSpatialFilterFromRTree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - std::isinf
    - CPLString::Printf
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSQLiteLayer::FormatSpatialFilterFromRTree(\n    OGRGeometry
      *poFilterGeom, const char *pszRowIDName,\n    const char *pszEscapedTable, const
      char *pszEscapedGeomCol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3623,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3625,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3626,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3627,1
    - Dst: std::isinf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3628,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - poFilterGeom
    - pszEscapedGeomColName
    argTypes:
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 3641
      start: 3616
    functionDepth: 0
    functionLinenumber: 3616
    functionLinenumberEnd: 3641
    functionName: OGRSQLiteLayer::FormatSpatialFilterFromMBR
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - std::isinf
    - CPLString::Printf
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSQLiteLayer::FormatSpatialFilterFromMBR(OGRGeometry *poFilterGeom,\n
      \                                          const char *pszEscapedGeomColName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::GetSpatialiteGeometryHeader
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - pabyData
    - nBytes
    - pnSRID
    - peType
    - pbIsEmpty
    - pdfMinX
    - pdfMinY
    - pdfMaxX
    - pdfMaxY
    argTypes:
    - GByte*
    - int
    - int*
    - OGRwkbGeometryType*
    - bool*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 3657
      start: 3647
    functionDepth: 2
    functionLinenumber: 3647
    functionLinenumberEnd: 3657
    functionName: OGRSQLiteGetSpatialiteGeometryHeader
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteLayer::GetSpatialiteGeometryHeader
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteGetSpatialiteGeometryHeader(const GByte *pabyData,
      int nBytes,\n                                            int *pnSRID,\n                                            OGRwkbGeometryType
      *peType,\n                                            bool *pbIsEmpty, double
      *pdfMinX,\n                                            double *pdfMinY, double
      *pdfMaxX,\n                                            double *pdfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pabyData
    - nBytes
    - ppoGeometry
    - pnSRID
    argTypes:
    - GByte*
    - int
    - OGRGeometry**
    - int*
    constantsTouched: []
    func_position:
      end: 3668
      start: 3663
    functionDepth: 2
    functionLinenumber: 3663
    functionLinenumberEnd: 3668
    functionName: OGRSQLiteImportSpatiaLiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 12
    functionsReached:
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteImportSpatiaLiteGeometry(const GByte *pabyData, int
      nBytes,\n                                         OGRGeometry **ppoGeometry,
      int *pnSRID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp:3680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - poGeometry
    - nSRID
    - eByteOrder
    - bSpatialite2D
    - bUseComprGeom
    - ppabyData
    - pnDataLength
    argTypes:
    - OGRGeometry*
    - GInt32
    - OGRwkbByteOrder
    - bool
    - bool
    - GByte**
    - int*
    constantsTouched: []
    func_position:
      end: 3683
      start: 3674
    functionDepth: 3
    functionLinenumber: 3674
    functionLinenumberEnd: 3683
    functionName: OGRSQLiteExportSpatiaLiteGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteExportSpatiaLiteGeometry(const OGRGeometry *poGeometry,\n
      \                                        GInt32 nSRID,\n                                         OGRwkbByteOrder
      eByteOrder,\n                                         bool bSpatialite2D, bool
      bUseComprGeom,\n                                         GByte **ppabyData,
      int *pnDataLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3689
    functionDepth: 0
    functionLinenumber: 3689
    functionLinenumberEnd: 3692
    functionName: OGRSQLiteLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSQLiteLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:40,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:42,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:48,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: OGR2SQLITE_GetNameForGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLString::Printf
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGR2SQLITE_GetNameForGeometryColumn(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: OGR2SQLITE_Register
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITE_Register()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OGR2SQLITE_Setup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGR2SQLITEModule
    signature: OGR2SQLITEModule *OGR2SQLITE_Setup(GDALDataset *, OGRSQLiteDataSource
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: OGR2SQLITE_SetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITE_SetCaseSensitiveLike(OGR2SQLITEModule *, bool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: OGR2SQLITE_AddExtraDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_AddExtraDS(OGR2SQLITEModule *, GDALDataset *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_auto_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:100,1
    - Dst: reinterpret_cast<void (*)(void)>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: OGR2SQLITE_Register
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_auto_extension
    - reinterpret_cast<void (*)(void)>
    linkageType: ''
    returnType: CPL_C_END
    signature: CPL_C_END OGR2SQLITE_Register()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: OGR2SQLITEModule::GetDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSQLFunctionsSetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: OGR2SQLITEModule::SetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteSQLFunctionsSetCaseSensitiveLike
    linkageType: ''
    returnType: void
    signature: void SetCaseSensitiveLike(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:214,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:217,1
    - Dst: OGRSQLiteUnregisterSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: OGR2SQLITEModule::~OGR2SQLITEModule()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteUnregisterSQLFunctions
    - CPLFree
    - clear
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITEModule::~OGR2SQLITEModule()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hHandleSQLFunctionsIn
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: OGR2SQLITEModule::SetHandleSQLFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITEModule::SetHandleSQLFunctions(void *hHandleSQLFunctionsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:239,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: OGR2SQLITEModule::AddExtraDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - push_back
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITEModule::AddExtraDS(GDALDataset *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:249,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:249,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: OGR2SQLITEModule::GetExtraDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGR2SQLITEModule::GetExtraDS(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:261,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:262,1
    - Dst: OGR2SQLITEModule::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:265,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - poSQLiteDSIn
    argTypes:
    - GDALDataset*
    - OGRSQLiteDataSource*
    constantsTouched: []
    func_position:
      end: 266
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 266
    functionName: OGR2SQLITEModule::Setup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - OGR2SQLITEModule::Setup
    - GetDB
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITEModule::Setup(GDALDataset *poDSIn,\n                            OGRSQLiteDataSource
      *poSQLiteDSIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUndefinedSRID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:279,1
    - Dst: OGR2SQLITEModule::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:288,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:291,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 300
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 300
    functionName: OGR2SQLITEModule::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - OGR2SQLITEModule::FetchSRSId
    - EQUAL
    - strlen
    - GetUndefinedSRID
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITEModule::FetchSRSId(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszVTableName
    - poLayer
    argTypes:
    - char*
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: OGR2SQLITEModule::RegisterVTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITEModule::RegisterVTable(const char *pszVTableName,\n
      \                                     OGRLayer *poLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszVTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: OGR2SQLITEModule::UnregisterVTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITEModule::UnregisterVTable(const char *pszVTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:328,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:329,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:332,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:341,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:342,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pszVTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 351
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 351
    functionName: OGR2SQLITEModule::GetLayerForVTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - SQLEscapeName
    - CPLSPrintf
    - GetLayerByName
    - sqlite3_exec
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGR2SQLITEModule::GetLayerForVTable(const char *pszVTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:418,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:425,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:425,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:426,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:430,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:432,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:450,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:453,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:458,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:458,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - hDB
    - pszVirtualTableName
    - pzErr
    argTypes:
    - sqlite3*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 476
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 476
    functionName: OGR2SQLITEDetectSuspiciousUsage
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - CPLTestBool
    - SQLEscapeName
    - CPLSPrintf
    - sqlite3_get_table
    - sqlite3_mprintf
    - std::vector::push_back
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITEDetectSuspiciousUsage(sqlite3 *hDB,\n                                           const
      char *pszVirtualTableName,\n                                           char
      **pzErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:491,1
    - Dst: static_cast<OGR2SQLITEModule *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:494,1
    - Dst: OGR2SQLITEModule*::GetDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:504,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:506,1
    - Dst: OGR2SQLITEModule*::GetExtraDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:513,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:517,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:523,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:527,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:528,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:528,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:532,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:532,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:534,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:534,1
    - Dst: if
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:542,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:544,1
    - Dst: OGR2SQLITEDetectSuspiciousUsage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:551,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:557,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:559,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:559,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:561,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:567,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:568,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:573,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:574,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:581,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:582,1
    - Dst: GDALDataset*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:586,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:588,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:589,1
    - Dst: GDALDataset*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:590,1
    - Dst: GDALDataset*::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:594,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:597,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:599,1
    - Dst: GDALDataset*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:600,1
    - Dst: GDALDataset*::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:604,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:609,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:610,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:610,1
    - Dst: GDALDataset*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:611,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:617,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:617,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:621,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:621,1
    - Dst: static_cast<OGR2SQLITE_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:628,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:628,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:630,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:630,1
    - Dst: OGR2SQLITEModule*::RegisterVTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:637,1
    - Dst: reinterpret_cast<sqlite3_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:639,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:644,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:650,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:657,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:658,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:658,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:659,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:668,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:670,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:676,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:676,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:679,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:681,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:681,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:682,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:686,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:686,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:688,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:690,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:690,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:693,1
    - Dst: OGRFieldDefn*::GetDomainName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:701,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:702,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:706,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:713,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:719,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:719,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:737,1
    - Dst: OGRFeatureDefn*::GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:741,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:746,1
    - Dst: OGR2SQLITE_GetNameForGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:746,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:748,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:748,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:758,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:758,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:760,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:760,1
    - Dst: wkbHasM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:762,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:762,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:764,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:766,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:771,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:785,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:785,1
    - Dst: sqlite3_declare_vtab
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:786,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:786,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:788,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:789,1
    - Dst: OGR2SQLITE_DisconnectDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:790,1
    - Dst: reinterpret_cast<sqlite3_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:790,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 162
    argCount: 6
    argNames:
    - hDB
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    constantsTouched: []
    func_position:
      end: 795
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 795
    functionName: OGR2SQLITE_ConnectCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - std::set::insert
    - CPLDebug
    - OGR2SQLITEModule*::GetDS
    - GDALDataset*::GetLayerByName
    - OGR2SQLITEModule*::RegisterVTable
    - OGRFeatureDefn*::GetFieldIndex
    - OGRFieldDefn*::GetDomainName
    - CPLString
    - reinterpret_cast<sqlite3_vtab *>
    - static_cast<OGR2SQLITEModule *>
    - wkbHasZ
    - sqlite3_declare_vtab
    - CPLStrdup
    - GDALDataset*::GetDescription
    - OGR2SQLITEDetectSuspiciousUsage
    - OGRFeatureDefn*::GetGeomFieldDefn
    - OGRGeomFieldDefn*::GetNameRef
    - sqlite3_mprintf
    - CPLString::c_str
    - OGRAPISpyOpen
    - OGRToOGCGeomType
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::GetSpatialRef
    - wkbHasM
    - OGRFeatureDefn*::GetFieldCount
    - OGRFeatureDefn*::GetGeomFieldCount
    - CPLGetValueType
    - OGR2SQLITE_GetNameForGeometryColumn
    - OGRFieldDefn*::GetNameRef
    - GDALDataset*::Release
    - GDALDataset*::GetLayerCount
    - static_cast<OGR2SQLITE_vtab *>
    - CPLString::Printf
    - auto::empty
    - std::set::end
    - std::set::find
    - OGRGeomFieldDefn*::GetType
    - OGRFieldDefn*::GetType
    - CPLSPrintf
    - CPLCalloc
    - CPLFree
    - OGR2SQLITEModule*::GetExtraDS
    - OGRFeatureDefn*::GetFieldDefn
    - OGR2SQLITE_DisconnectDestroy
    - if
    - SQLEscapeName
    - EQUAL
    - GDALDataset*::GetLayer
    - OGRGeomFieldDefn*::GetSpatialRef
    - SQLUnescape
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_ConnectCreate(sqlite3 *hDB, void *pAux, int argc,\n
      \                                   const char *const *argv,\n                                    sqlite3_vtab
      **ppVTab, char **pzErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 844
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 844
    functionName: OGR2SQLITE_IsHandledOp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGR2SQLITE_IsHandledOp(int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:852,1
    - Dst: OGR2SQLITE_vtab*::poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:853,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:867,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:868,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:930,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:938,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:945,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:946,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:946,1
    - Dst: OGR2SQLITE_IsHandledOp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:958,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:959,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:960,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:978,1
    - Dst: sqlite3_malloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:978,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:979,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1003,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 105
    argCount: 2
    argNames:
    - pVTab
    - pIndex
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    constantsTouched: []
    func_position:
      end: 1013
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 1013
    functionName: OGR2SQLITE_BestIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - c_str
    - static_cast<int *>
    - empty
    - sqlite3_malloc
    - static_cast<int>
    - reinterpret_cast<char *>
    - OGR2SQLITE_IsHandledOp
    - reinterpret_cast<OGR2SQLITE_vtab *>
    - OGR2SQLITE_vtab*::poLayer::GetLayerDefn
    - CPLDebug
    - CPLString::c_str
    - CPLString::empty
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_BestIndex(sqlite3_vtab *pVTab, sqlite3_index_info *pIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1021,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1024,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1027,1
    - Dst: OGR2SQLITE_vtab*::poDS::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1029,1
    - Dst: OGR2SQLITE_vtab*::poModule::UnregisterVTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1030,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1031,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - sqlite3_vtab*
    constantsTouched: []
    func_position:
      end: 1035
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1035
    functionName: OGR2SQLITE_DisconnectDestroy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 1
    functionsReached:
    - OGR2SQLITE_vtab*::poModule::UnregisterVTable
    - reinterpret_cast<OGR2SQLITE_vtab *>
    - CPLDebug
    - sqlite3_free
    - OGR2SQLITE_vtab*::poDS::Release
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_DisconnectDestroy(sqlite3_vtab *pVTab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1043,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1045,1
    - Dst: OGR2SQLITE_vtab*::poDS::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1045,1
    - Dst: OGR2SQLITE_vtab*::poLayer::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1046,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1058,1
    - Dst: OGROpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1059,1
    - Dst: OGR2SQLITE_vtab*::poDS::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1059,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1062,1
    - Dst: OGR2SQLITE_vtab*::poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1062,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1068,1
    - Dst: OGR2SQLITE_vtab*::poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1068,1
    - Dst: static_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1076,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1077,1
    - Dst: reinterpret_cast<sqlite3_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1079,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    constantsTouched: []
    func_position:
      end: 1093
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1093
    functionName: OGR2SQLITE_Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_vtab*::poDS::GetDescription
    - FromHandle
    - OGR2SQLITE_vtab*::poLayer::GetDescription
    - OGR2SQLITE_vtab_cursor*::poLayer::ResetReading
    - reinterpret_cast<OGR2SQLITE_vtab *>
    - OGR2SQLITE_vtab*::poLayer::GetLayerDefn
    - CPLDebug
    - GDALDataset*::GetLayerByName
    - OGROpen
    - static_cast<OGR2SQLITE_vtab_cursor *>
    - OGRLayer*::GetLayerDefn
    - reinterpret_cast<sqlite3_vtab_cursor *>
    - CPLCalloc
    - OGR2SQLITE_vtab*::poLayer::GetName
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_Open(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1102,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1105,1
    - Dst: OGR2SQLITE_vtab*::poDS::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1105,1
    - Dst: OGR2SQLITE_vtab*::poLayer::GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1113,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1118
    functionName: OGR2SQLITE_Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_vtab*::poDS::GetDescription
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - OGR2SQLITE_vtab*::poLayer::GetDescription
    - CPLDebug
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_Close(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1129,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1131,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1142,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1156,1
    - Dst: isalnum
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1172,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1172,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1179,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1193,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1251,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1253,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1261,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1266,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1266,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1273,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1273,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1280,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1280,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1281,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1291,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1292,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1300,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1300,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1303,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1303,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1304,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1307,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1308,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1309,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1313,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1314,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1317,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1321,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1323,1
    - Dst: OGR2SQLITE_vtab_cursor*::poFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1324,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 113
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - CPL_UNUSED
    - char*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1332
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1332
    functionName: OGR2SQLITE_Filter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - OGR2SQLITE_vtab_cursor*::poLayer::GetLayerDefn
    - SQLEscapeLiteral
    - CPLString::empty
    - static_cast<unsigned char>
    - sqlite3_value_int64
    - sqlite3_mprintf
    - CPLString::c_str
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - reinterpret_cast<const char *>
    - OGR2SQLITE_vtab_cursor*::poLayer::GetFeatureCount
    - OGR2SQLITE_vtab_cursor*::poLayer::TestCapability
    - CPLSPrintf
    - OGRFeatureDefn*::GetFieldDefn
    - OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
    - sqlite3_value_type
    - sqlite3_value_double
    - OGR2SQLITE_vtab_cursor*::poLayer::ResetReading
    - SQLEscapeName
    - sqlite3_value_text
    - sqlite3_free
    - OGR2SQLITE_vtab_cursor*::poLayer::SetAttributeFilter
    - OGR2SQLITE_vtab_cursor*::poFeature::GetFID
    - isalnum
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_Filter(sqlite3_vtab_cursor *pCursor,\n                             CPL_UNUSED
      int idxNum, const char *idxStr,\n                             int argc, sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1341,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1343,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1350,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1352,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1357,1
    - Dst: OGR2SQLITE_vtab_cursor*::poFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 1362
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1362
    functionName: OGR2SQLITE_Next
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - CPLDebug
    - OGR2SQLITE_vtab_cursor*::poFeature::GetFID
    - CPLFree
    - OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_Next(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1371,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 1384
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1384
    functionName: OGR2SQLITE_Eof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_Eof(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1401,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1403,1
    - Dst: OGR2SQLITE_vtab_cursor*::poFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1404,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pMyCursor
    argTypes:
    - OGR2SQLITE_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 1414
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1414
    functionName: OGR2SQLITE_GoToWishedIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_vtab_cursor*::poFeature::GetFID
    - CPLFree
    - CPLDebug
    - OGR2SQLITE_vtab_cursor*::poLayer::GetNextFeature
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITE_GoToWishedIndex(OGR2SQLITE_vtab_cursor *pMyCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1423,1
    - Dst: OGRGeometry*::hasCurveGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1431,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1435,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1435,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1437,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1442,1
    - Dst: CPLRealloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1443,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1444,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - poGeom
    - nSRSId
    - pabyGeomBLOB
    - nGeomBLOBLen
    argTypes:
    - OGRGeometry*
    - int
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 1449
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1449
    functionName: OGR2SQLITE_ExportGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - static_cast<int>
    - OGRGeometry*::exportToWkb
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    - CPLRealloc
    - OGRGeometry*::hasCurveGeometry
    - static_cast<GByte *>
    - CPLError
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ExportGeometry(OGRGeometry *poGeom, int nSRSId,\n
      \                                     GByte *&pabyGeomBLOB, int &nGeomBLOBLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1459,1
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1463,1
    - Dst: OGR2SQLITE_GoToWishedIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1465,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1475,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1475,1
    - Dst: OGR2SQLITE_vtab_cursor*::poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1481,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1486,1
    - Dst: OGRFeature*::GetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1486,1
    - Dst: OGRFeatureDefn*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1490,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1494,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1501,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1504,1
    - Dst: OGR2SQLITE_ExportGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1507,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1515,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1520,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1520,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1521,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1523,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1530,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1533,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1536,1
    - Dst: OGRGeometry*::getSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1540,1
    - Dst: OGR2SQLITE_ExportGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1545,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1550,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1554,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1560,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1562,1
    - Dst: OGRFeature*::GetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1562,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1566,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1568,1
    - Dst: OGRFeature*::GetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1568,1
    - Dst: OGRFeatureDefn*::GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1573,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1577,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1579,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1583,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1586,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1586,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1590,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1591,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1595,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1595,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1601,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1602,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1609,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1610,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1617,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1620,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1622,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1635,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1638,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1639,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1642,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1643,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1644,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1649,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1649,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 99
    argCount: 3
    argNames:
    - pCursor
    - pContext
    - nCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    constantsTouched: []
    func_position:
      end: 1655
      start: 1455
    functionDepth: 4
    functionLinenumber: 1455
    functionLinenumberEnd: 1655
    functionName: OGR2SQLITE_Column
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - sqlite3_result_blob
    - OGRGeometry*::getSpatialReference
    - OGRFeature*::GetFieldAsInteger64
    - sqlite3_result_int
    - OGRFeature*::GetFieldAsString
    - CPLDebug
    - OGR2SQLITE_vtab_cursor*::poLayer::GetLayerDefn
    - sqlite3_result_double
    - OGR_GET_MS
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetStyleString
    - OGRFeatureDefn*::GetGeomType
    - CPLMalloc
    - sqlite3_result_int64
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - OGR2SQLITE_ExportGeometry
    - OGRFeatureDefn*::GetGeomFieldCount
    - static_cast<int>
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetFID
    - sqlite3_result_text
    - OGRFeature*::GetGeomFieldRef
    - CPLAssert
    - snprintf
    - static_cast<GByte *>
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetGeometryRef
    - OGRFeature*::GetNativeData
    - OGR2SQLITE_GoToWishedIndex
    - OGRFeature*::GetNativeMediaType
    - memcpy
    - sqlite3_result_null
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_Column(sqlite3_vtab_cursor *pCursor,\n                             sqlite3_context
      *pContext, int nCol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGR2SQLITE_vtab_cursor *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1664,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1666,1
    - Dst: OGR2SQLITE_GoToWishedIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1669,1
    - Dst: OGR2SQLITE_vtab_cursor*::poFeature::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_int64*
    constantsTouched: []
    func_position:
      end: 1677
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1677
    functionName: OGR2SQLITE_Rowid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GoToWishedIndex
    - OGR2SQLITE_vtab_cursor*::poFeature::GetFID
    - reinterpret_cast<OGR2SQLITE_vtab_cursor *>
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_Rowid(sqlite3_vtab_cursor *pCursor, sqlite3_int64 *pRowid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sqlite3_vtab *pVtab
    - zNew
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1688
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1688
    functionName: OGR2SQLITE_Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_Rename(CPL_UNUSED sqlite3_vtab *pVtab,\n                             CPL_UNUSED
      const char *zNew)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - zName
    - ppArg
    argTypes:
    - sqlite3_vtab*
    - int
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 1705
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1705
    functionName: OGR2SQLITE_FindFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_FindFunction(sqlite3_vtab *pVtab,\n                            int
      nArg,\n                            const char *zName,\n                            void
      (**pxFunc)(sqlite3_context*,int,sqlite3_value**),\n                            void
      **ppArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1716,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1726,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1731,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1735,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1737,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1738,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1738,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1740,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1742,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1745,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1745,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1748,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1750,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1750,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1756,1
    - Dst: auto::SetFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1759,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1762,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1762,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1765,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1765,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1771,1
    - Dst: OGRParseDate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1776,1
    - Dst: auto::GetRawFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1777,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1778,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1782,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1789,1
    - Dst: const_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1790,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1790,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1792,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1800,1
    - Dst: auto::SetStyleString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1802,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1803,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1803,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1809,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1811,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1812,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1815,1
    - Dst: auto::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1829,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1834,1
    - Dst: auto::SetNativeData
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1836,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1837,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1837,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1841,1
    - Dst: auto::SetNativeMediaType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1843,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1844,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1844,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1847,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 3
    argNames:
    - pMyVTab
    - argc
    - argv
    argTypes:
    - OGR2SQLITE_vtab*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1848
      start: 1712
    functionDepth: 3
    functionLinenumber: 1712
    functionLinenumberEnd: 1848
    functionName: OGR2SQLITE_FeatureFromArgs
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - auto::SetField
    - CPLDebug
    - CPLError
    - auto::SetNativeData
    - sqlite3_value_int64
    - const_cast<void *>
    - OGRLayer*::GetLayerDefn
    - auto::SetNativeMediaType
    - auto::SetFieldNull
    - auto::SetGeomFieldDirectly
    - OGRLayer*::GetFIDColumn
    - std::make_unique<OGRFeature>
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    - auto::SetStyleString
    - reinterpret_cast<const char *>
    - auto::GetRawFieldRef
    - OGRFeatureDefn*::GetFieldDefn
    - sqlite3_value_blob
    - auto::SetFID
    - sqlite3_value_type
    - auto::release
    - sqlite3_value_double
    - reinterpret_cast<const GByte *>
    - sqlite3_value_text
    - OGRParseDate
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGR2SQLITE_FeatureFromArgs(OGR2SQLITE_vtab *pMyVTab,\n
      \                                             int argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1857,1
    - Dst: reinterpret_cast<OGR2SQLITE_vtab *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1859,1
    - Dst: OGRLayer*::DeleteFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1866,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1866,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1870,1
    - Dst: OGR2SQLITE_FeatureFromArgs
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1874,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1878,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1880,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1886,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1887,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1888,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1888,1
    - Dst: OGR2SQLITE_FeatureFromArgs
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1892,1
    - Dst: OGRLayer*::SetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1896,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - pVTab
    - argc
    - argv
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    constantsTouched: []
    func_position:
      end: 1906
      start: 1854
    functionDepth: 4
    functionLinenumber: 1854
    functionLinenumberEnd: 1906
    functionName: OGR2SQLITE_Update
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - OGRLayer*::SetFeature
    - OGR2SQLITE_FeatureFromArgs
    - OGRFeature*::GetFID
    - reinterpret_cast<OGR2SQLITE_vtab *>
    - CPLDebug
    - sqlite3_value_int64
    - OGRLayer*::DeleteFeature
    - OGRLayer*::CreateFeature
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITE_Update(sqlite3_vtab *pVTab, int argc,\n                             sqlite3_value
      **argv, sqlite_int64 *pRowid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1954,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1956,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1962,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1964,1
    - Dst: static_cast<OGR2SQLITEModule *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1972,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1972,1
    - Dst: OGR2SQLITEModule*::GetLayerForVTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1974,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1974,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1977,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - pszFuncName
    - pContext
    - argc
    - argv
    argTypes:
    - char*
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1984
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1984
    functionName: OGR2SQLITE_GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_user_data
    - OGR2SQLITEModule*::GetLayerForVTable
    - CPLError
    - static_cast<OGR2SQLITEModule *>
    - sqlite3_result_null
    - SQLUnescape
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGR2SQLITE_GetLayer(const char *pszFuncName,\n                                     sqlite3_context
      *pContext, int argc,\n                                     sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1994,1
    - Dst: static_cast<OGR2SQLITEModule *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1999,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:1999,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2001,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2003,1
    - Dst: OGRLayer*::GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2008,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2010,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2012,1
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2016,1
    - Dst: OGRLinearRing::OGRLinearRing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2017,1
    - Dst: OGRPolygon::addRingDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2018,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2019,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2020,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2021,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2022,1
    - Dst: OGRLinearRing*::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2023,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2028,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2032,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 2038
      start: 1990
    functionDepth: 3
    functionLinenumber: 1990
    functionLinenumberEnd: 2038
    functionName: OGR2SQLITE_ogr_layer_Extent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGRPolygon::addRingDirectly
    - sqlite3_result_blob
    - CPLError
    - OGRLinearRing::OGRLinearRing
    - sqlite3_user_data
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    - OGRLayer*::GetGeomType
    - OGRLinearRing*::addPoint
    - OGR2SQLITE_GetLayer
    - static_cast<OGR2SQLITEModule *>
    - OGRPolygon::OGRPolygon
    - OGRLayer*::GetExtent
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_layer_Extent(sqlite3_context *pContext, int argc,\n
      \                                       sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2048,1
    - Dst: static_cast<OGR2SQLITEModule *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2053,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2053,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2055,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2057,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 2063
      start: 2044
    functionDepth: 2
    functionLinenumber: 2044
    functionLinenumberEnd: 2063
    functionName: OGR2SQLITE_ogr_layer_SRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_user_data
    - OGRLayer*::GetGeomType
    - OGR2SQLITE_GetLayer
    - static_cast<OGR2SQLITEModule *>
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_layer_SRID(sqlite3_context *pContext, int argc,\n
      \                                     sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2072,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2077,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2081,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2086,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2087,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2087,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 2091
      start: 2069
    functionDepth: 2
    functionLinenumber: 2069
    functionLinenumberEnd: 2091
    functionName: OGR2SQLITE_ogr_layer_GeometryType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - wkbHasZ
    - sqlite3_result_text
    - CPLSPrintf
    - OGRLayer*::GetGeomType
    - OGR2SQLITE_GetLayer
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_layer_GeometryType(sqlite3_context *pContext,\n
      \                                             int argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2100,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2105,1
    - Dst: OGRLayer*::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 2106
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2106
    functionName: OGR2SQLITE_ogr_layer_FeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GetLayer
    - sqlite3_result_int64
    - OGRLayer*::GetFeatureCount
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_layer_FeatureCount(sqlite3_context *pContext,\n
      \                                             int argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGR2SQLITEModule *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2119
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2119
    functionName: OGR2SQLITEDestroyModule
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGR2SQLITEModule *>
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITEDestroyModule(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2175,1
    - Dst: OGR2SQLITEModule*::GetDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2183,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2190,1
    - Dst: OGR2SQLITEModule*::GetExtraDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2199,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2202,1
    - Dst: OGROpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2207,1
    - Dst: GDALDataset*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2207,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2215,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2218,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2219,1
    - Dst: GDALDataset*::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2219,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2224,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2227,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2227,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2239,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2252,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2252,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2260,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2260,1
    - Dst: sqlite3_declare_vtab
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2261,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2261,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2263,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 6
    argNames:
    - hDB
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    constantsTouched: []
    func_position:
      end: 2269
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2269
    functionName: OGR2SQLITESpatialIndex_ConnectCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_declare_vtab
    - CPLStrdup
    - SQLEscapeName
    - CPLDebug
    - OGR2SQLITEModule*::GetDS
    - GDALDataset*::GetLayerByName
    - OGROpen
    - sqlite3_mprintf
    - GDALDataset*::GetName
    - CPLString::c_str
    - CPLCalloc
    - OGR2SQLITEModule*::GetExtraDS
    - SQLUnescape
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_ConnectCreate(sqlite3 *hDB, void *pAux,\n
      \                                               int argc,\n                                                const
      char *const *argv,\n                                                sqlite3_vtab
      **ppVTab,\n                                                char **pzErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2279,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2316,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2356,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 38
    argCount: 2
    argNames:
    - pVTab
    - pIndex
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    constantsTouched: []
    func_position:
      end: 2370
      start: 2275
    functionDepth: 1
    functionLinenumber: 2275
    functionLinenumberEnd: 2370
    functionName: OGR2SQLITESpatialIndex_BestIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_BestIndex(sqlite3_vtab *pVTab,\n                                            sqlite3_index_info
      *pIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2381,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2384,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2387,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - sqlite3_vtab*
    constantsTouched: []
    func_position:
      end: 2391
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2391
    functionName: OGR2SQLITESpatialIndex_DisconnectDestroy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - sqlite3_free
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITESpatialIndex_DisconnectDestroy(sqlite3_vtab *pVTab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2402,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poDS::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2402,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2403,1
    - Dst: OGROpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2416,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poDS::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2416,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2419,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2419,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2425,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2425,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2434,1
    - Dst: OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    constantsTouched: []
    func_position:
      end: 2445
      start: 2397
    functionDepth: 1
    functionLinenumber: 2397
    functionLinenumberEnd: 2445
    functionName: OGR2SQLITESpatialIndex_Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITESpatialIndex_vtab*::poDS::GetName
    - GDALDataset*::GetLayerByName
    - OGR2SQLITESpatialIndex_vtab*::poLayer::GetName
    - CPLDebug
    - OGROpen
    - OGR2SQLITESpatialIndex_vtab*::poLayer::GetLayerDefn
    - OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::ResetReading
    - OGRLayer*::GetLayerDefn
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_Open(sqlite3_vtab *pVTab,\n                                       sqlite3_vtab_cursor
      **ppCursor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2457,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poDS::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2457,1
    - Dst: OGR2SQLITESpatialIndex_vtab*::poLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2458,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 2468
      start: 2451
    functionDepth: 1
    functionLinenumber: 2451
    functionLinenumberEnd: 2468
    functionName: OGR2SQLITESpatialIndex_Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITESpatialIndex_vtab*::poDS::GetName
    - CPLFree
    - OGR2SQLITESpatialIndex_vtab*::poLayer::GetName
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITESpatialIndex_Close(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2481,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2501,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2502,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2503,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2504,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2521,1
    - Dst: OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::SetSpatialFilterRect
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2525,1
    - Dst: OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2526,1
    - Dst: OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 2532
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2532
    functionName: OGR2SQLITESpatialIndex_Filter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_value_double
    - CPLDebug
    - sqlite3_value_int64
    - OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::ResetReading
    - OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::GetNextFeature
    - OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::SetSpatialFilterRect
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_Filter(sqlite3_vtab_cursor *pCursor,\n
      \                                        int idxNum, const char *idxStr,\n                                         int
      argc, sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2543,1
    - Dst: OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 2551
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2551
    functionName: OGR2SQLITESpatialIndex_Next
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITESpatialIndex_vtab_cursor*::poLayer::GetNextFeature
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITESpatialIndex_Next(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    constantsTouched: []
    func_position:
      end: 2566
      start: 2557
    functionDepth: 1
    functionLinenumber: 2557
    functionLinenumberEnd: 2566
    functionName: OGR2SQLITESpatialIndex_Eof
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITESpatialIndex_Eof(sqlite3_vtab_cursor *pCursor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2576,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2588,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2588,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2589,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2589,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2595,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2596,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2599,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2609,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2615,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2620,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2625,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - pCursor
    - pContext
    - nCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    constantsTouched: []
    func_position:
      end: 2635
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2635
    functionName: OGR2SQLITESpatialIndex_Column
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int64
    - OGRFeature*::GetFID
    - CPLDebug
    - sqlite3_result_double
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::getEnvelope
    - sqlite3_result_null
    - OGRGeometry*::IsEmpty
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_Column(sqlite3_vtab_cursor *pCursor,\n
      \                                        sqlite3_context *pContext, int nCol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_int64*
    constantsTouched: []
    func_position:
      end: 2649
      start: 2641
    functionDepth: 1
    functionLinenumber: 2641
    functionLinenumberEnd: 2649
    functionName: OGR2SQLITESpatialIndex_Rowid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITESpatialIndex_Rowid(sqlite3_vtab_cursor *pCursor,\n                                        sqlite3_int64
      *pRowid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVtab
    - zNew
    argTypes:
    - sqlite3_vtab*
    - char*
    constantsTouched: []
    func_position:
      end: 2659
      start: 2655
    functionDepth: 0
    functionLinenumber: 2655
    functionLinenumberEnd: 2659
    functionName: OGR2SQLITESpatialIndex_Rename
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITESpatialIndex_Rename(sqlite3_vtab *pVtab, const char *zNew)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2702,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2708,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2713,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2718,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2724,1
    - Dst: OGR2SQLITEModule::SetHandleSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2730,1
    - Dst: OGRSQLiteRegisterSQLFunctions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - hDBIn
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 2733
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2733
    functionName: OGR2SQLITEModule::Setup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteRegisterSQLFunctions
    - OGR2SQLITEModule::SetHandleSQLFunctions
    - sqlite3_create_function
    - sqlite3_create_module
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITEModule::Setup(sqlite3 *hDBIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2749,1
    - Dst: OGR2SQLITEModule::OGR2SQLITEModule
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2753,1
    - Dst: OGR2SQLITEModule*::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - poDS
    - poSQLiteDS
    argTypes:
    - GDALDataset*
    - OGRSQLiteDataSource*
    constantsTouched: []
    func_position:
      end: 2756
      start: 2739
    functionDepth: 1
    functionLinenumber: 2739
    functionLinenumberEnd: 2756
    functionName: OGR2SQLITE_Setup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGR2SQLITEModule::OGR2SQLITEModule
    - OGR2SQLITEModule*::Setup
    linkageType: ''
    returnType: OGR2SQLITEModule
    signature: "OGR2SQLITEModule *OGR2SQLITE_Setup(GDALDataset *poDS,\n                                   OGRSQLiteDataSource
      *poSQLiteDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITEModule*::SetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poModule
    - b
    argTypes:
    - OGR2SQLITEModule*
    - bool
    constantsTouched: []
    func_position:
      end: 2765
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2765
    functionName: OGR2SQLITE_SetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEModule*::SetCaseSensitiveLike
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITE_SetCaseSensitiveLike(OGR2SQLITEModule *poModule, bool
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITEModule*::AddExtraDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poModule
    - poDS
    argTypes:
    - OGR2SQLITEModule*
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 2774
      start: 2771
    functionDepth: 0
    functionLinenumber: 2771
    functionLinenumberEnd: 2774
    functionName: OGR2SQLITE_AddExtraDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEModule*::AddExtraDS
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_AddExtraDS(OGR2SQLITEModule *poModule, GDALDataset *poDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2792,1
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2794,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2809,1
    - Dst: sqlite3_malloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2809,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2823,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2828,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2829,1
    - Dst: OGRRegisterAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2834,1
    - Dst: OGR2SQLITEModule::OGR2SQLITEModule
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2836,1
    - Dst: OGR2SQLITEModule*::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2837,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - hDB
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    constantsTouched: []
    func_position:
      end: 2844
      start: 2785
    functionDepth: 1
    functionLinenumber: 2785
    functionLinenumberEnd: 2844
    functionName: sqlite3_extension_init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEModule::OGR2SQLITEModule
    - sqlite3_malloc
    - OGR2SQLITEModule*::Setup
    - SQLITE_EXTENSION_INIT2
    - CPLDebug
    - OGRRegisterAll
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_exec
    linkageType: ''
    returnType: CPL_C_END
    signature: "CPL_C_END sqlite3_extension_init(sqlite3 *hDB, char **pzErrMsg,\n
      \                          const sqlite3_api_routines *pApi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const sqlite3_api_routines *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2859,1
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2866,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2872,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2872,1
    - Dst: OGR2SQLITEModule::OGR2SQLITEModule
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2882,1
    - Dst: OGR2SQLITEModule*::Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp:2883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - hDB
    - pzErrMsg
    - _pApi
    argTypes:
    - sqlite3*
    - char**
    - void*
    constantsTouched: []
    func_position:
      end: 2896
      start: 2856
    functionDepth: 1
    functionLinenumber: 2856
    functionLinenumberEnd: 2896
    functionName: OGR2SQLITE_static_register
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEModule::OGR2SQLITEModule
    - CPLTestBool
    - static_cast<const sqlite3_api_routines *>
    - OGR2SQLITEModule*::Setup
    - SQLITE_EXTENSION_INIT2
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int OGR2SQLITE_static_register(sqlite3 *hDB, char **pzErrMsg, void
      *_pApi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:43,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:48,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:49,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:49,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:53,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:53,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:55,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:56,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:63,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:64,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:70,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:74,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:83,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:84,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:84,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:89,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:103,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:103,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:108,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:108,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:113,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:113,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:116,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:124,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:124,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:129,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:130,1
    - Dst: memcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:131,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:132,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 139
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 139
    functionName: OGRSQLiteDriverIdentify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - STARTS_WITH_CI
    - CPLTestBool
    - reinterpret_cast<const char *>
    - memcmp
    - EQUAL
    - strstr
    - CSLCount
    - STARTS_WITH
    - CPLGetConfigOption
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteDriverIdentify
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:148,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:154,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:155,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:156,1
    - Dst: std::make_unique<OGRSQLiteDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:158,1
    - Dst: auto::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:162,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:163,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:171,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:171,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:174,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:182,1
    - Dst: auto::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:187,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:188,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:189,1
    - Dst: auto::DisableUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:190,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:191,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:198,1
    - Dst: OGRSQLiteDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 207
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 207
    functionName: OGRSQLiteDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteDataSource*::Open
    - OGRSQLiteDriverIdentify
    - STARTS_WITH_CI
    - std::unique_ptr<GDALDataset>
    - auto::release
    - OGRSQLiteDataSource::OGRSQLiteDataSource
    - CPLGetBasenameSafe
    - CSLDestroy
    - auto::DisableUpdate
    - EQUAL
    - OGRAPISpyOpen
    - std::make_unique<OGRSQLiteDataSource>
    - strlen
    - auto::ExecuteSQL
    - CPLFree
    - auto::SetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSQLiteDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:221,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:232,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:234,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:244,1
    - Dst: OGRSQLiteDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - pszName
    - nBands
    - nXSize
    - nYSize
    - GDALDataType
    - papszOptions
    argTypes:
    - char*
    - int
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - char**
    constantsTouched: []
    func_position:
      end: 253
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 253
    functionName: OGRSQLiteDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRSQLiteDataSource*::Create
    - OGRSQLiteDataSource::OGRSQLiteDataSource
    - VSIStatL
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRSQLiteDriverCreate(const char *pszName, int nBands,\n
      \                                         CPL_UNUSED int nXSize,\n                                          CPL_UNUSED
      int nYSize,\n                                          CPL_UNUSED GDALDataType
      eDT,\n                                          char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: OGRSQLiteDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSQLiteDriverDelete(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:274,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:277,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:280,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:282,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:283,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:284,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:285,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:286,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:287,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:288,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:289,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:290,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:291,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:292,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:295,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:296,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:298,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:299,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:301,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:303,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:304,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:306,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:355,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:357,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:359,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:361,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:363,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:365,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:367,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:397,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:399,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:438,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:442,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:444,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:446,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:451,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:455,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:456,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:457,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:458,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:459,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:460,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:461,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:462,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:463,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:465,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:469,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:472,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:475,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:476,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 488
    functionName: RegisterOGRSQLite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - rl2_is_supported_codec
    linkageType: ''
    returnType: void
    signature: void RegisterOGRSQLite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 361
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: myGetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSQLiteFeatureDefn
    signature: OGRSQLiteFeatureDefn *myGetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: InvalidateCachedFeatureCountAndExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvalidateCachedFeatureCountAndExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: IsTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: HasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasSpatialIndex(CPL_UNUSED int iGeomField)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iGeomCol
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: HasFastSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasFastSpatialFilter(CPL_UNUSED int iGeomCol) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iGeomCol
    - OGRGeometry *poFilterGeom
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: GetSpatialWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GetSpatialWhere(CPL_UNUSED int iGeomCol,\n                    CPL_UNUSED
      OGRGeometry *poFilterGeom) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: OGRSQLiteTableLayer::HasLayerDefnError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::GetLayerDefn
    linkageType: ''
    returnType: bool
    signature: bool HasLayerDefnError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: OGRSQLiteTableLayer::SetLaunderFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLaunderFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: OGRSQLiteTableLayer::SetUseCompressGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetUseCompressGeom(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: OGRSQLiteTableLayer::SetDeferredSpatialIndexCreation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDeferredSpatialIndexCreation(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bFlag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: OGRSQLiteTableLayer::SetStrictFlag
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetStrictFlag(bool bFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: OGRSQLiteTableLayer::IsTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTableLayer() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: OGRSQLiteViewLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: OGRSQLiteViewLayer::HasLayerDefnError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteViewLayer::GetLayerDefn
    linkageType: ''
    returnType: bool
    signature: bool HasLayerDefnError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iGeomField
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: OGRSQLiteViewLayer::HasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasSpatialIndex(CPL_UNUSED int iGeomField) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 364
    functionsReached:
    - OGRAPISpy_L_GetLayerDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: GetAttrQueryString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *&GetAttrQueryString() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: GetFeatureQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureQuery
    signature: OGRFeatureQuery *&GetFeatureQuery() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: GetFilterGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeometry
    signature: OGRGeometry *&GetFilterGeom() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: GetIGeomFieldFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int &GetIGeomFieldFilter() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 147
    functionsReached:
    - OGRGeomFieldDefn::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: InstallFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 23
    functionsReached:
    - OGRLayer::InstallFilter
    linkageType: ''
    returnType: int
    signature: int InstallFilter(const OGRGeometry *poGeomIn) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: HasReadFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasReadFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: BaseResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void BaseResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: BaseGetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *BaseGetNextFeature() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 4
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: BaseSetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr BaseSetAttributeFilter(const char *pszQuery) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: BaseGetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig BaseGetFeatureCount(int bForce) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: BaseTestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int BaseTestCapability(const char *pszCap) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: BaseGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - OGRAmigoCloudTableLayer::IGetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr BaseGetExtent(int iGeomField, OGREnvelope *psExtent,\n                                 bool
      bForce) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - poGeomIn
    - bIsSelectLayer
    argTypes:
    - int
    - OGRGeometry*
    - bool
    constantsTouched: []
    func_position:
      end: 638
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 638
    functionName: ValidateGeometryFieldIndexForSetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 3
    functionsReached:
    - OGRLayer::ValidateGeometryFieldIndexForSetSpatialFilter
    linkageType: ''
    returnType: bool
    signature: "bool ValidateGeometryFieldIndexForSetSpatialFilter(int iGeomField,\n
      \                                                 const OGRGeometry *poGeomIn,\n
      \                                                 bool bIsSelectLayer) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:735,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: OGRSQLiteDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 775
    functionName: OGRSQLiteDataSource::DisableUpdate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DisableUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszTableName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: '&GetGeomColsForTable(const char *pszTableName)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<CPLString>
    signature: std::set<CPLString> &GetGeomColsForTable(const char *pszTableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: OGRSQLiteDataSource::GetFileTimestamp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFileTimestamp() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: OGRSQLiteDataSource::IsSpatialiteDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSpatialiteDB() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: OGRSQLiteDataSource::HasSpatialite4Layout
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasSpatialite4Layout() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: OGRSQLiteDataSource::GetUndefinedSRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetUndefinedSRID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: OGRSQLiteDataSource::HasGeometryColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasGeometryColumns() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: OGRSQLiteDataSource::GetRL2Context
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *GetRL2Context() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 825
    functionName: OGRSQLiteDataSource::GetRL2CoveragePtr
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rl2CoveragePtr
    signature: rl2CoveragePtr GetRL2CoveragePtr() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: OGRSQLiteDataSource::GetSectionId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetSectionId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: OGRSQLiteDataSource::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double *GetGeoTransform() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: OGRSQLiteDataSource::IsRL2MixedResolutions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsRL2MixedResolutions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: OGRSQLiteDataSource::GetParentDS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSQLiteDataSource
    signature: OGRSQLiteDataSource *GetParentDS() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: '&GetOverviews() const'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<OGRSQLiteDataSource *>
    signature: std::vector<OGRSQLiteDataSource *> &GetOverviews() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: OGRSQLiteDataSource::HasPromote1BitAS8Bit
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasPromote1BitAS8Bit() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: RL2RasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: OGRSQLiteExtensionData::OGRSQLiteExtensionData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteExtensionData(const OGRSQLiteExtensionData &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '&operator=(const OGRSQLiteExtensionData &)'
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSQLiteExtensionData
    signature: OGRSQLiteExtensionData &operator=(const OGRSQLiteExtensionData &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OGRSQLiteExtensionData::GetGeocodingSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRGeocodingSessionH
    signature: OGRGeocodingSessionH GetGeocodingSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hGeocodingSessionIn
    argTypes:
    - OGRGeocodingSessionH
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OGRSQLiteExtensionData::SetGeocodingSession
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetGeocodingSession(OGRGeocodingSessionH hGeocodingSessionIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hRegExpCacheIn
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: OGRSQLiteExtensionData::SetRegExpCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRegExpCache(void *hRegExpCacheIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: OGRSQLiteExtensionData::SetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCaseSensitiveLike(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: OGRSQLiteExtensionData::GetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetCaseSensitiveLike() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:109,1
    - Dst: OGRSQLiteFreeRegExpCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:112,1
    - Dst: OGRGeocodeDestroySession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: OGRSQLiteExtensionData::~OGRSQLiteExtensionData()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteFreeRegExpCache
    - CPLFree
    - OGRGeocodeDestroySession
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteExtensionData::~OGRSQLiteExtensionData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:125,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:125,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:126,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:129,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:130,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:131,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:132,1
    - Dst: importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:133,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:135,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:135,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:137,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:138,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:138,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nSrcSRSId
    - nDstSRSId
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 7
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: OGRSQLiteExtensionData::GetTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - end
    - OGRSpatialReference::OGRSpatialReference
    - insert
    - find
    - std::pair
    - OGRSpatialReference::SetAxisMappingStrategy
    - SetAxisMappingStrategy
    - std::move
    - OGRCreateCoordinateTransformation
    - std::unique_ptr::reset
    - auto::second::get
    - importFromEPSG
    linkageType: ''
    returnType: OGRCoordinateTransformation
    signature: "OGRCoordinateTransformation *OGRSQLiteExtensionData::GetTransform(int
      nSrcSRSId,\n                                                                  int
      nDstSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:151,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:152,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:153,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:155,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:156,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:161,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:161,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszDSName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: OGRSQLiteExtensionData::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - end
    - insert
    - find
    - OGRAPISpyOpen
    - std::move
    - auto::second::get
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRSQLiteExtensionData::GetDataset(const char *pszDSName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:174,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:175,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:177,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:181,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:185,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:187,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:189,1
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:196,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:196,1
    - Dst: OGRSQLiteExtensionData*::GetDataset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:197,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:200,1
    - Dst: OGRSQLite_gdal_get_pixel_value_common
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: OGRSQLITE_gdal_get_pixel_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - sqlite3_value_type
    - sqlite3_user_data
    - static_cast<OGRSQLiteExtensionData *>
    - OGRSQLite_gdal_get_pixel_value_common
    - CPLError
    - CPLGetConfigOption
    - sqlite3_result_null
    - OGRSQLiteExtensionData*::GetDataset
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_gdal_get_pixel_value(sqlite3_context *pContext, int
      argc,\n                                           sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:216,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:216,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:226,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:236,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:244,1
    - Dst: swq_test_like
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 246
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 246
    functionName: OGRSQLITE_LIKE
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_user_data
    - static_cast<OGRSQLiteExtensionData *>
    - swq_test_like
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_LIKE(sqlite3_context *pContext, int argc,\n                           sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLITE_STDDEV_Context *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:265,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:265,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:266,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pContext
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 277
    functionName: OGRSQLITE_STDDEV_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - static_cast<int>
    - static_cast<OGRSQLITE_STDDEV_Context *>
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_STDDEV_Step(sqlite3_context *pContext, int /* argc*/,\n
      \                                 sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLITE_STDDEV_Context *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:286,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:286,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:287,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:290,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pContext
    argTypes:
    - sqlite3_context*
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: OGRSQLITE_STDDEV_POP_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sqrt
    - sqlite3_result_double
    - sqlite3_aggregate_context
    - static_cast<OGRSQLITE_STDDEV_Context *>
    linkageType: ''
    returnType: void
    signature: void OGRSQLITE_STDDEV_POP_Finalize(sqlite3_context *pContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLITE_STDDEV_Context *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:302,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:302,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:303,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:306,1
    - Dst: sqrt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pContext
    argTypes:
    - sqlite3_context*
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: OGRSQLITE_STDDEV_SAMP_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sqrt
    - sqlite3_result_double
    - sqlite3_aggregate_context
    - static_cast<OGRSQLITE_STDDEV_Context *>
    linkageType: ''
    returnType: void
    signature: void OGRSQLITE_STDDEV_SAMP_Finalize(sqlite3_context *pContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:337,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:346,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:350,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:354,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:365,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:369,1
    - Dst: static_cast<Percentile *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:379,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:380,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:392,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:408,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:417,1
    - Dst: std::vector<double>::vector<double>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:423,1
    - Dst: auto::values::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:426,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:431,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:432,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 3
    argNames:
    - pCtx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 435
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 435
    functionName: OGRSQLITE_Percentile_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    - std::vector<double>::vector<double>
    - assert
    - sqlite3_user_data
    - sqlite3_result_error
    - sqlite3_aggregate_context
    - memset
    - static_cast<Percentile *>
    - std::isnan
    - sqlite3_result_error_nomem
    - auto::values::push_back
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_Percentile_Step(sqlite3_context *pCtx, int argc,\n
      \                                     sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Percentile *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:447,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:447,1
    - Dst: auto::values::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:452,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:454,1
    - Dst: auto::values::begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:454,1
    - Dst: auto::values::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:454,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:465,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    constantsTouched: []
    func_position:
      end: 469
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 469
    functionName: OGRSQLITE_Percentile_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - auto::values::empty
    - auto::values::end
    - std::sort
    - sqlite3_result_double
    - sqlite3_aggregate_context
    - memset
    - static_cast<Percentile *>
    - auto::values::begin
    linkageType: ''
    returnType: void
    signature: void OGRSQLITE_Percentile_Finalize(sqlite3_context *pCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:497,1
    - Dst: static_cast<Mode *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:503,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:503,1
    - Dst: std::map<std::string, uint64_t>::string, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:515,1
    - Dst: std::string::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:516,1
    - Dst: std::isnan
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:529,1
    - Dst: std::map<double, uint64_t>::map<double, uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:532,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:547,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:548,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - pCtx
    - argv
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 551
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 551
    functionName: OGRSQLITE_Mode_Step
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - std::string::string
    - static_cast<Mode *>
    - std::map<double, uint64_t>::map<double, uint64_t>
    - std::map<std::string, uint64_t>::string, uint64_t>
    - sqlite3_result_error
    - sqlite3_aggregate_context
    - memset
    - std::isnan
    - sqlite3_result_error_nomem
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_Mode_Step(sqlite3_context *pCtx, int /*argc*/,\n                                sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Mode *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:559,1
    - Dst: sqlite3_aggregate_context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:559,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:567,1
    - Dst: auto::mostFrequentStr::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:567,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:572,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    constantsTouched: []
    func_position:
      end: 580
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 580
    functionName: OGRSQLITE_Mode_Finalize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Mode *>
    - sqlite3_result_text
    - auto::mostFrequentStr::c_str
    - sqlite3_result_double
    - sqlite3_aggregate_context
    - memset
    linkageType: ''
    returnType: void
    signature: void OGRSQLITE_Mode_Finalize(sqlite3_context *pCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteExtensionData::OGRSQLiteExtensionData
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:598,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:600,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:602,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:605,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:605,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:607,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:609,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:613,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:617,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:621,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:625,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:629,1
    - Dst: const_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:631,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:634,1
    - Dst: OGRSQLiteExtensionData*::SetRegExpCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:637,1
    - Dst: OGRSQLiteRegisterRegExpFunction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - hDB
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 640
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 640
    functionName: OGRSQLiteRegisterSQLFunctionsCommon
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - OGRSQLiteRegisterRegExpFunction
    - const_cast<char *>
    - sqlite3_create_function
    - OGRSQLiteExtensionData::OGRSQLiteExtensionData
    - OGRSQLiteExtensionData*::SetRegExpCache
    - CPLGetConfigOption
    linkageType: ''
    returnType: OGRSQLiteExtensionData
    signature: OGRSQLiteExtensionData *OGRSQLiteRegisterSQLFunctionsCommon(sqlite3
      *hDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hHandle
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: OGRSQLiteUnregisterSQLFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 2
    functionsReached:
    - static_cast<OGRSQLiteExtensionData *>
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteUnregisterSQLFunctions(void *hHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:661,1
    - Dst: OGRSQLiteExtensionData*::SetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hHandle
    - b
    argTypes:
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: OGRSQLiteSQLFunctionsSetCaseSensitiveLike
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctionscommon.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteExtensionData*::SetCaseSensitiveLike
    - static_cast<OGRSQLiteExtensionData *>
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSQLFunctionsSetCaseSensitiveLike(void *hHandle, bool
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<cache_entry *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:54,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:54,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:56,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:61,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:74,1
    - Dst: pcre2_compile
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:92,1
    - Dst: reinterpret_cast<const PCRE2_UCHAR8 *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:92,1
    - Dst: pcre2_get_error_message
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:99,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:101,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:102,1
    - Dst: pcre2_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:105,1
    - Dst: pcre2_jit_compile
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:108,1
    - Dst: pcre2_get_error_message
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:111,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:113,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:114,1
    - Dst: pcre2_code_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:115,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:123,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:124,1
    - Dst: pcre2_code_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:125,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:128,1
    - Dst: VSIStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - re
    argTypes:
    - sqlite3_context*
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 134
    functionName: re_compile_with_cache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp
    functionUses: 0
    functionsReached:
    - pcre2_get_error_message
    - static_cast<cache_entry *>
    - reinterpret_cast<const PCRE2_UCHAR8 *>
    - VSIStrdup
    - sqlite3_user_data
    - sqlite3_result_error
    - CPLAssert
    - strcmp
    - VSIFree
    - sqlite3_free
    - pcre2_code_free
    - pcre2_config
    - pcre2_jit_compile
    - pcre2_compile
    - memmove
    linkageType: ''
    returnType: pcre2_code
    signature: pcre2_code *re_compile_with_cache(sqlite3_context *ctx, const char
      *re)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:143,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:149,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:153,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:155,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:163,1
    - Dst: re_compile_with_cache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:167,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:171,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:174,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - CPL_UNUSED
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 188
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 188
    functionName: OGRSQLiteREGEXPFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_result_int
    - pcre2_match_data_create_from_pattern
    - sqlite3_result_error
    - CPLAssert
    - re_compile_with_cache
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteREGEXPFunction(sqlite3_context *ctx, CPL_UNUSED int
      argc,\n                                    sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:210,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:216,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:220,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:222,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:230,1
    - Dst: static_cast<cache_entry *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:235,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:235,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:236,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:242,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:254,1
    - Dst: pcre_compile
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:263,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:267,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:268,1
    - Dst: pcre_study
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:271,1
    - Dst: VSIStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:272,1
    - Dst: sqlite3_result_error
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:275,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:276,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:277,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:283,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:284,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:285,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:286,1
    - Dst: memmove
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:288,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:292,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - CPL_UNUSED
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 298
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 298
    functionName: OGRSQLiteREGEXPFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<cache_entry *>
    - sqlite3_value_type
    - pcre_compile
    - VSIStrdup
    - sqlite3_result_int
    - sqlite3_result_error
    - sqlite3_user_data
    - CPLAssert
    - strcmp
    - pcre_study
    - sqlite3_free
    - pcre_free
    - CPLFree
    - memmove
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteREGEXPFunction(sqlite3_context *ctx, CPL_UNUSED int
      argc,\n                                    sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:315,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:315,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:323,1
    - Dst: static_cast<cache_entry *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:328,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:328,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:329,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - HAVE_PCRE
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 339
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 339
    functionName: OGRSQLiteRegisterRegExpFunction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<cache_entry *>
    - CPLTestBool
    - sqlite3_create_function
    - CPLDebug
    - sqlite3_exec
    - CPLCalloc
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: 'void *OGRSQLiteRegisterRegExpFunction(sqlite3 *

      #if defined(HAVE_PCRE)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<cache_entry *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:355,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:358,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:359,1
    - Dst: pcre2_code_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:360,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:362,1
    - Dst: static_cast<cache_entry *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:367,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:370,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:371,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:372,1
    - Dst: pcre_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:373,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - HAVE_PCRE
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 377
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 377
    functionName: OGRSQLiteFreeRegExpCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteregexp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<cache_entry *>
    - CPLAssert
    - pcre2_code_free
    - pcre_free
    - CPLFree
    linkageType: ''
    returnType: void
    signature: 'void OGRSQLiteFreeRegExpCache(void *

      #if defined(HAVE_PCRE)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/my_test_sqlite3_ext.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: myext
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/my_test_sqlite3_ext.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    linkageType: ''
    returnType: SQLITE_EXTENSION_INIT1
    signature: SQLITE_EXTENSION_INIT1 myext(sqlite3_context *pContext, int argc, sqlite3_value
      **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/my_test_sqlite3_ext.c:20,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/my_test_sqlite3_ext.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: sqlite3_extension_init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/my_test_sqlite3_ext.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: int
    signature: "int sqlite3_extension_init(sqlite3 *db, char **pzErrMsg,\n                           const
      sqlite3_api_routines *pApi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: IOGRSQLiteSelectLayer::~IOGRSQLiteSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOGRSQLiteSelectLayer::~IOGRSQLiteSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - poDSIn
    - m_poLayerIn
    - osSQLIn
    - bEmptyLayerIn
    argTypes:
    - OGRSQLiteBaseDataSource*
    - IOGRSQLiteSelectLayer*
    - CPLString
    - bool
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour(\n
      \   OGRSQLiteBaseDataSource *poDSIn, IOGRSQLiteSelectLayer *m_poLayerIn,\n    const
      CPLString &osSQLIn, bool bEmptyLayerIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:60,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:67,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:68,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:77,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:81,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:82,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:82,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:85,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:89,1
    - Dst: sqlite3_column_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:90,1
    - Dst: sqlite3_column_bytes
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:91,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:99,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:102,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:105,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:107,1
    - Dst: FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:108,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:109,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:113,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:116,1
    - Dst: cpl::down_cast<OGRSQLiteLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:133,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:134,1
    - Dst: OGRSQLiteLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:136,1
    - Dst: OGRSQLiteLayer*::myGetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:139,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:141,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:142,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:150,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 7
    argNames:
    - poDSIn
    - osSQLIn
    - m_hStmtIn
    - bUseStatementForGetNextFeature
    - bEmptyLayer
    - bAllowMultipleGeomFieldsIn
    - bCanReopenBaseDS
    argTypes:
    - OGRSQLiteDataSource*
    - CPLString
    - sqlite3_stmt*
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 151
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 151
    functionName: OGRSQLiteSelectLayer::OGRSQLiteSelectLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - CPL_SWAP32PTR
    - sqlite3_finalize
    - GetGeomFieldCount
    - OGRSQLiteGeomFieldDefn*::SetSpatialRef
    - CPLErrorReset
    - sqlite3_column_type
    - CPLPopErrorHandler
    - GetLayerByName
    - wkbFlatten
    - OGRSQLiteGeomFieldDefn*::GetType
    - myGetGeomFieldDefn
    - OGRSQLiteGeomFieldDefn*::GetSpatialRef
    - FetchSRS
    - BuildFeatureDefn
    - SetDescription
    - OGRSQLiteLayer*::myGetLayerDefn
    - sqlite3_column_bytes
    - reinterpret_cast<const GByte *>
    - cpl::down_cast<OGRSQLiteLayer *>
    - sqlite3_column_blob
    - OGRSQLiteSelectLayerCommonBehaviour::OGRSQLiteSelectLayerCommonBehaviour
    - CPLPushErrorHandler
    - memcpy
    - OGRSQLiteLayer*::GetLayerDefn
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteSelectLayer::OGRSQLiteSelectLayer(\n    OGRSQLiteDataSource
      *poDSIn, const CPLString &osSQLIn,\n    sqlite3_stmt *m_hStmtIn, bool bUseStatementForGetNextFeature,\n
      \   bool bEmptyLayer, bool bAllowMultipleGeomFieldsIn, bool bCanReopenBaseDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: OGRSQLiteSelectLayer::~OGRSQLiteSelectLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSelectLayer::~OGRSQLiteSelectLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayer::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: OGRSQLiteSelectLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteSelectLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSelectLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasReadFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:173,1
    - Dst: BaseResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: OGRSQLiteSelectLayerCommonBehaviour::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - HasReadFeature
    - BaseResetReading
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSelectLayerCommonBehaviour::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGRSQLiteSelectLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteSelectLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteSelectLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BaseGetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: OGRSQLiteSelectLayerCommonBehaviour::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - BaseGetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteSelectLayerCommonBehaviour::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HasSpecialFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - expr
    - nMinIndexForSpecialField
    argTypes:
    - swq_expr_node*
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: HasSpecialFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - HasSpecialFields
    linkageType: ''
    returnType: int
    signature: int HasSpecialFields(swq_expr_node *expr, int nMinIndexForSpecialField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayer::SetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: OGRSQLiteSelectLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteSelectLayer::SetAttributeFilter
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteSelectLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:241,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:242,1
    - Dst: OGRFeatureQuery::OGRFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:246,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:248,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:254,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::BuildSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:256,1
    - Dst: BaseSetAttributeFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:258,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 264
    functionName: OGRSQLiteSelectLayerCommonBehaviour::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureQuery::OGRFeatureQuery
    - CPLStrdup
    - BaseSetAttributeFilter
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - OGRSQLiteSelectLayerCommonBehaviour::BuildSQL
    - CPLFree
    - OGRSQLiteSelectLayerCommonBehaviour::ResetReading
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteSelectLayerCommonBehaviour::SetAttributeFilter(const
      char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayer::GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: OGRSQLiteSelectLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteSelectLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSQLiteSelectLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:280,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:281,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:282,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:283,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:284,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:285,1
    - Dst: GetFeatureQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:288,1
    - Dst: GetFilterGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:289,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:290,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:290,1
    - Dst: BaseGetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:292,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:299,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:299,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:310,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:310,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:313,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:314,1
    - Dst: BaseGetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:315,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:320,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:323,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 326
    functionName: OGRSQLiteSelectLayerCommonBehaviour::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - STARTS_WITH_CI
    - c_str
    - atoi
    - GetDB
    - CPLDebug
    - GetFeatureQuery
    - CPLString::c_str
    - GetFilterGeom
    - sqlite3_get_table
    - ifind
    - sqlite3_free
    - BaseGetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSQLiteSelectLayerCommonBehaviour::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:335,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:341,1
    - Dst: m_osSQLCurrent::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:342,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:353,1
    - Dst: m_osSQLCurrent::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:355,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:356,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 359
    functionName: OGRSQLiteSelectLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - CPLDebug
    - ClearStatement
    - m_osSQLCurrent::c_str
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteSelectLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValidateGeometryFieldIndexForSetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:371,1
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:377,1
    - Dst: SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: OGRSQLiteSelectLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - ValidateGeometryFieldIndexForSetSpatialFilter
    - OGRLayer::ISetSpatialFilter
    - SetSpatialFilter
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteSelectLayer::ISetSpatialFilter(int iGeomField,\n                                               const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:393,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::BuildSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:395,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 401
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 401
    functionName: OGRSQLiteSelectLayerCommonBehaviour::SetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - InstallFilter
    - OGRSQLiteSelectLayerCommonBehaviour::ResetReading
    - OGRSQLiteSelectLayerCommonBehaviour::BuildSQL
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteSelectLayerCommonBehaviour::SetSpatialFilter(\n    int
      iGeomField, const OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:416,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:420,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:423,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:424,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:425,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:430,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:435,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:436,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:442,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:449,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:453,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:471,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:472,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:475,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:476,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:477,1
    - Dst: GetLayerWithGetSpatialWhereByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:479,1
    - Dst: GetLayerWithGetSpatialWhereByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:482,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:484,1
    - Dst: std::pair::first::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:485,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:486,1
    - Dst: std::pair::first::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:486,1
    - Dst: GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:487,1
    - Dst: std::pair::first::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:487,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:489,1
    - Dst: std::pair
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:491,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 45
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 495
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 495
    functionName: OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetLayerDefn
    - GetSpatialRef
    - CPLString::Printf
    - CSLDestroy
    - std::pair
    - CPLDebug
    - EQUAL
    - strchr
    - CPLString::c_str
    - GetLayerWithGetSpatialWhereByName
    - std::pair::first::GetSpatialRef
    linkageType: ''
    returnType: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *>
    signature: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *> OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer(size_t
      &i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:508,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:512,1
    - Dst: GetFilterGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:518,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:527,1
    - Dst: std::pair::second::GetSpatialWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:534,1
    - Dst: GetFilterGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:534,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:535,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:537,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:544,1
    - Dst: GetAttrQueryString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:548,1
    - Dst: GetAttrQueryString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:549,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:551,1
    - Dst: GetAttrQueryString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:553,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:554,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:559,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:562,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:565,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:566,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:566,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:568,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:574,1
    - Dst: ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:576,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:580,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:585,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:587,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:590,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:591,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:591,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:592,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:592,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:593,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:593,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:595,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:599,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:601,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:603,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:609,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 616
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 616
    functionName: OGRSQLiteSelectLayerCommonBehaviour::BuildSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 2
    functionsReached:
    - size
    - STARTS_WITH_CI
    - c_str
    - CPLDebug
    - GetFilterGeom
    - GetAttrQueryString
    - ifind
    - std::pair::second::GetSpatialWhere
    - substr
    - OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
    - CPLString::empty
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteSelectLayerCommonBehaviour::BuildSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteSelectLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: OGRSQLiteSelectLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteSelectLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteSelectLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:630,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:633,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:636,1
    - Dst: auto::second::HasFastSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:640,1
    - Dst: BaseTestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 644
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 644
    functionName: OGRSQLiteSelectLayerCommonBehaviour::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - auto::second::HasFastSpatialFilter
    - BaseTestCapability
    - CPLDebug
    - EQUAL
    - OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteSelectLayerCommonBehaviour::TestCapability(const char
      *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: OGRSQLiteSelectLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - GetExtent
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteSelectLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                        bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:661,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:667,1
    - Dst: GetEnvelopeFromSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:680,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:693,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:694,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:698,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:699,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:700,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:701,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:703,1
    - Dst: ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:706,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:706,1
    - Dst: OGRLayer*::GetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:709,1
    - Dst: ReleaseResultSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:710,1
    - Dst: BaseGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:715,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:716,1
    - Dst: SetEnvelopeForSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp:717,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 719
      start: 656
    functionDepth: 5
    functionLinenumber: 656
    functionLinenumberEnd: 719
    functionName: OGRSQLiteSelectLayerCommonBehaviour::GetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp
    functionUses: 0
    functionsReached:
    - GetLayerDefn
    - GetEnvelopeFromSQL
    - ReleaseResultSet
    - CPLString::c_str
    - CPLString::ifind
    - BaseGetExtent
    - ExecuteSQL
    - CPLError
    - CPLString::resize
    - GetUpdate
    - OGRLayer*::GetExtent
    - SetEnvelopeForSQL
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteSelectLayerCommonBehaviour::GetExtent(int iGeomField,\n
      \                                                     OGREnvelope *psExtent,\n
      \                                                     bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteDataSource*::GetSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:53,1
    - Dst: OGRSQLiteDataSource::MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:54,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:55,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRSQLiteDataSource*
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: OGRSQLiteTableLayer::OGRSQLiteTableLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - OGRSQLiteDataSource*::GetSpatialiteVersionNumber
    - CPLTestBool
    - OGRSQLiteDataSource::MakeSpatialiteVersionNumber
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::OGRSQLiteTableLayer(OGRSQLiteDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:67,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:68,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:75,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:77,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:78,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:81,1
    - Dst: first::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:82,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:85,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:85,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:86,1
    - Dst: second::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:87,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:93,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: OGRSQLiteTableLayer::~OGRSQLiteTableLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GetDB
    - OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::size
    - OGRSQLiteTableLayer::ClearInsertStmt
    - CPLDebug
    - ClearStatement
    - first::c_str
    - CPL_IGNORE_RET_VAL
    - second::c_str
    - sqlite3_exec
    - CPLFree
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::~OGRSQLiteTableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:105,1
    - Dst: OGRSQLiteTableLayer::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: OGRSQLiteTableLayer::CreateSpatialIndexIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::CreateSpatialIndex
    - GetGeomFieldCount
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::CreateSpatialIndexIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: OGRSQLiteTableLayer::ClearInsertStmt
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::ClearInsertStmt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:135,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:139,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:141,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:141,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:143,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:144,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:155,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:156,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:161,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:162,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:163,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:164,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:164,1
    - Dst: OGRSQLiteTableLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:165,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:166,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - m_pszTableNameIn
    - bIsTable
    - bIsVirtualShapeIn
    - bDeferredCreationIn
    - bMayEmitError
    argTypes:
    - char*
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 174
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 174
    functionName: OGRSQLiteTableLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - CPLStrdup
    - strchr
    - SQLEscapeLiteral
    - strlen
    - sqlite3_free
    - OGRSQLiteTableLayer::EstablishFeatureDefn
    - SetDescription
    - GetGeomFieldCount
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRSQLiteTableLayer::Initialize(const char *m_pszTableNameIn,\n
      \                                      bool bIsTable, bool bIsVirtualShapeIn,\n
      \                                      bool bDeferredCreationIn,\n                                       bool
      bMayEmitError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:189,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pszGeomFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 195
    functionName: GetGeomFormat
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRSQLiteGeomFormat
    signature: OGRSQLiteGeomFormat GetGeomFormat(const char *pszGeomFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:209,1
    - Dst: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:210,1
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:211,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:212,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:214,1
    - Dst: GetUndefinedSRID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:218,1
    - Dst: GetGeomFormat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:219,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:221,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:222,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:225,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:226,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:226,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - pszFIDColumnName
    - eGeomType
    - pszGeomFormat
    - pszGeometryName
    - poSRS
    - nSRSId
    argTypes:
    - char*
    - OGRwkbGeometryType
    - char*
    - char*
    - OGRSpatialReference*
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: OGRSQLiteTableLayer::SetCreationParameters
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - auto::SetType
    - SetGeomType
    - AddGeomFieldDefn
    - GetGeomFormat
    - std::make_unique<OGRSQLiteGeomFieldDefn>
    - Reference
    - OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    - std::move
    - auto::SetSpatialRef
    - GetUndefinedSRID
    - Seal
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteTableLayer::SetCreationParameters(const char *pszFIDColumnName,\n
      \                                               OGRwkbGeometryType eGeomType,\n
      \                                               const char *pszGeomFormat,\n
      \                                               const char *pszGeometryName,\n
      \                                               OGRSpatialReference *poSRS,\n
      \                                               int nSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: OGRSQLiteTableLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *OGRSQLiteTableLayer::GetName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:250,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:266,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:267,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:267,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:268,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:269,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:272,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:275,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:278,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:278,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:279,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:282,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 286
    functionName: OGRSQLiteTableLayer::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::GetLayerDefn
    - CPLErrorReset
    - GetDB
    - OGRPGTableLayer::SetMetadataItem
    - sqlite3_mprintf
    - CPLPopErrorHandler
    - SQLGetInteger64
    - sqlite3_free
    - CPLPushErrorHandler
    - OGRWFSDataSource::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **OGRSQLiteTableLayer::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:296,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:298,1
    - Dst: OGRSQLiteTableLayer::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: OGRSQLiteTableLayer::GetMetadataItem
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRSQLiteTableLayer::GetMetadata
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: "char *OGRSQLiteTableLayer::GetMetadataItem(const char *pszName,\n
      \                                                const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:308,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:327,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:331,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:334,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:335,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:341,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:344,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:350,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:353,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:355,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:356,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:371,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:373,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:373,1
    - Dst: sqlite3_column_name
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:373,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:382,1
    - Dst: GetGeomColsForTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:384,1
    - Dst: std::set::erase
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:385,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:386,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:386,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:394,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:394,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:398,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:404,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:407,1
    - Dst: GetUndefinedSRID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:408,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:410,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:412,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:414,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:420,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:420,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:424,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:429,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:429,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:434,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:439,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:439,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:444,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:453,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:454,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:458,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:459,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:463,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:464,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:468,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:470,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:471,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:473,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:473,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:475,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:475,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:477,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:477,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:477,1
    - Dst: OGRFromOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:481,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:483,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:484,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:486,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:487,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:488,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:489,1
    - Dst: wkbSetM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:491,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:491,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:497,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:497,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:498,1
    - Dst: wkbSetZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:499,1
    - Dst: GetGeomFormat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:500,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:503,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:504,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:507,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:508,1
    - Dst: FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:509,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:516,1
    - Dst: GetSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:517,1
    - Dst: OGRSQLiteDataSource::MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:518,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:519,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:524,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:531,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:538,1
    - Dst: DisableUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:540,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:543,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:555,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:557,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:560,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:572,1
    - Dst: std::map::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:583,1
    - Dst: std::map::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:584,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:591,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:592,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:593,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:594,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:596,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:602,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:604,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:606,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:607,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:608,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:609,1
    - Dst: CPLGetValueType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:614,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:620,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:623,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:626,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:629,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:636,1
    - Dst: std::set::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:641,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:641,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:642,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:644,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:648,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:655,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:658,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:660,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:667,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:671,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:678,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:679,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:685,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:686,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:688,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:688,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:687,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:693,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:695,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:697,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:697,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:696,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:703,1
    - Dst: auto::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:706,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:708,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:710,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:710,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:709,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:717,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:719,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:722,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:722,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:721,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:728,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:730,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:732,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:732,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:731,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:737,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:742,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 181
    argCount: 2
    argNames:
    - pszGeomCol
    - bMayEmitError
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 745
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 745
    functionName: OGRSQLiteTableLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - IsSpatialiteLoaded
    - sqlite3_prepare_v2
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - atoi
    - std::map::end
    - auto::SetType
    - GetDescription
    - std::set::insert
    - GetGeomFieldDefn
    - std::set::erase
    - CPLDebug
    - wkbSetZ
    - GetGeomFormat
    - auto::GetType
    - strcmp
    - SQLEscapeLiteral
    - CPLString
    - sqlite3_finalize
    - CPLError
    - GetFieldDefn
    - GetGeomFieldCount
    - OGRFromOGCGeomType
    - GetSpatialiteVersionNumber
    - sqlite3_free_table
    - OGRSQLiteGeomFieldDefn*::SetSpatialRef
    - GetGeomColsForTable
    - CPLStrdup
    - DisableUpdate
    - GetDB
    - OGRFieldDefn*::SetDefault
    - OGRSQLiteGeomFieldDefn*::SetType
    - sqlite3_mprintf
    - wkbFlatten
    - GetUpdate
    - myGetGeomFieldDefn
    - wkbSetM
    - STARTS_WITH_CI
    - static_cast<int>
    - c_str
    - HasSpatialite4Layout
    - CPLGetValueType
    - static_cast<OGRwkbGeometryType>
    - CPLSPrintf
    - FetchSRS
    - OGRSQLiteDataSource::MakeSpatialiteVersionNumber
    - std::map::find
    - OGRFieldDefn*::GetType
    - std::set::find
    - GetFieldDefnUnsafe
    - strstr
    - sqlite3_errmsg
    - BuildFeatureDefn
    - std::set::end
    - auto::GetNameRef
    - CPLFree
    - IsSpatialiteDB
    - EQUAL
    - sqlite3_column_name
    - sqlite3_get_table
    - sqlite3_step
    - sqlite3_free
    - GetUndefinedSRID
    - SQLUnescape
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRSQLiteTableLayer::EstablishFeatureDefn(const char *pszGeomCol,\n
      \                                                bool bMayEmitError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:753,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:766,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:768,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:773,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:776,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:778,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:779,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:785,1
    - Dst: static_cast<int *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:786,1
    - Dst: CPLMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:787,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:787,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:794,1
    - Dst: sqlite3_column_name
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:794,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:796,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:814,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:818,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:825,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:825,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:827,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:827,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:828,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:830,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 833
    functionName: OGRSQLiteTableLayer::RecomputeOrdinals
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int *>
    - GetDB
    - GetFieldCount
    - sqlite3_column_name
    - strcmp
    - CPLAssert
    - sqlite3_step
    - sqlite3_errmsg
    - sqlite3_finalize
    - CPLError
    - GetGeomFieldIndex
    - CPLMalloc
    - GetGeomFieldCount
    - CPLFree
    - myGetGeomFieldDefn
    - SQLUnescape
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::RecomputeOrdinals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:844,1
    - Dst: GetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:850,1
    - Dst: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:850,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:851,1
    - Dst: OGRSQLiteTableLayer::LoadStatistics
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:854,1
    - Dst: Seal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 859
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 859
    functionName: OGRSQLiteTableLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteTableLayer::LoadStatistics
    - GetDescription
    - Reference
    - OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    - OGRSQLiteTableLayer::EstablishFeatureDefn
    - Seal
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRSQLiteTableLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:871,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:873,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:877,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:879,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:881,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:881,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:891,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:893,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:893,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 896
    functionName: OGRSQLiteTableLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GetDB
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - CPLString::Printf
    - CPLDebug
    - ClearStatement
    - CPLString::c_str
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:905,1
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:908,1
    - Dst: OGRSQLiteLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:911,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:914,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 917
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 917
    functionName: OGRSQLiteTableLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::GetNextFeature
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - OGRFeature*::GetFID
    - OGRSQLiteTableLayer::HasLayerDefnError
    - OGRFeature*::SetField
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteTableLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:926,1
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:929,1
    - Dst: OGRSQLiteLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:937,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:944,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:948,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:950,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:952,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:952,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:959,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:961,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:961,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:961,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:968,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 973
      start: 923
    functionDepth: 4
    functionLinenumber: 923
    functionLinenumberEnd: 973
    functionName: OGRSQLiteTableLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - GetDB
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - GetNextRawFeature
    - CPLString::Printf
    - ResetReading
    - CPLDebug
    - OGRSQLiteLayer::GetFeature
    - ClearStatement
    - CPLString::c_str
    - OGRSQLiteTableLayer::HasLayerDefnError
    - SQLEscapeLiteral
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteTableLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:982,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:983,1
    - Dst: OGRSQLiteTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:990,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 995
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 995
    functionName: OGRSQLiteTableLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - OGRSQLiteTableLayer::BuildWhere
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1006,1
    - Dst: OGRSQLiteTableLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1008,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1013
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1013
    functionName: OGRSQLiteTableLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - InstallFilter
    - OGRSQLiteTableLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::ISetSpatialFilter(int iGeomField,\n                                              const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1021,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1022,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1025,1
    - Dst: OGRSQLiteTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1026,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1038,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1041,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1041,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1048,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1051,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1053,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1058,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - iGeomCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1063
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1063
    functionName: OGRSQLiteTableLayer::CheckSpatialIndexTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - OGRSQLiteTableLayer::GetLayerDefn
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - CPLString::Printf
    - CPLDebug
    - SQLEscapeLiteral
    - sqlite3_free
    - OGRSQLiteTableLayer::HasSpatialIndex
    - GetGeomFieldCount
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteTableLayer::CheckSpatialIndexTable(int iGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon::OGRPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1071,1
    - Dst: OGRPolygon::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1073,1
    - Dst: OGRSQLiteTableLayer::GetSpatialWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1074,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iGeomCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1076
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1076
    functionName: OGRSQLiteTableLayer::HasFastSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find
    - OGRSQLiteTableLayer::GetSpatialWhere
    - OGRPolygon::OGRPolygon
    - OGRPolygon::importFromWkt
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteTableLayer::HasFastSpatialFilter(int iGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1085,1
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1086,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1090,1
    - Dst: OGRSQLiteTableLayer::CheckSpatialIndexTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1091,1
    - Dst: FormatSpatialFilterFromRTree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1093,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1095,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1095,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1098,1
    - Dst: FormatSpatialFilterFromMBR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1101,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1102,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - iGeomCol
    - poFilterGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1106
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1106
    functionName: OGRSQLiteTableLayer::GetSpatialWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - IsSpatialiteDB
    - IsSpatialiteLoaded
    - OGRSQLiteTableLayer::GetLayerDefn
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - SQLEscapeName
    - FormatSpatialFilterFromMBR
    - FormatSpatialFilterFromRTree
    - SQLEscapeLiteral
    - OGRSQLiteTableLayer::CheckSpatialIndexTable
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSQLiteTableLayer::GetSpatialWhere(int iGeomCol,\n                                               OGRGeometry
      *poFilterGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetSpatialWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1121,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1122,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1128,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1142
    functionName: OGRSQLiteTableLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteTableLayer::GetSpatialWhere
    - empty
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1151,1
    - Dst: OGRSQLiteTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1152,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1154,1
    - Dst: OGRSQLiteTableLayer::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1155,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1157,1
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1159,1
    - Dst: myGetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1160,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1163,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1166,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1166,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1168,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1171,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1176,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1176,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1177,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1179,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1182,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1185,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1186,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1188,1
    - Dst: OGRSQLiteTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1189,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1191,1
    - Dst: OGRSQLiteTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1192,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1194,1
    - Dst: OGRSQLiteLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1199
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1199
    functionName: OGRSQLiteTableLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteTableLayer::GetLayerDefn
    - OGRSQLiteTableLayer::TestCapability
    - EQUAL
    - OGRSQLiteLayer::TestCapability
    - myGetLayerDefn
    - OGRSQLiteTableLayer::HasSpatialIndex
    - GetUpdate
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteTableLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1208,1
    - Dst: OGRSQLiteTableLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1211,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1212,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1214,1
    - Dst: OGRSQLiteTableLayer::CheckSpatialIndexTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1225,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1225,1
    - Dst: getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1229,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1232,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1236,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1242,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1243,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1246,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1252,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1252,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1259,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1262,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1263,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1268
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1268
    functionName: OGRSQLiteTableLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - getEnvelope
    - empty
    - OGRSQLiteTableLayer::TestCapability
    - GetDB
    - CPLSPrintf
    - CPLDebug
    - OGRSQLiteTableLayer::HasLayerDefnError
    - SQLEscapeLiteral
    - OGRSQLiteTableLayer::CheckSpatialIndexTable
    - SQLGetInteger64
    - GetUpdate
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSQLiteTableLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1277,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1281,1
    - Dst: OGRSQLiteTableLayer::CheckSpatialIndexTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1288,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1289,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1289,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1297,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1309,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1309,1
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1311,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1319,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1320,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1321,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1322,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1325,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1328,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1329,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1334,1
    - Dst: OGRAmigoCloudTableLayer::IGetExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1340,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1341,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1344,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 3
    argNames:
    - iGeomField
    - psExtent
    - bForce
    argTypes:
    - int
    - OGREnvelope*
    - bool
    constantsTouched: []
    func_position:
      end: 1348
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1348
    functionName: OGRSQLiteTableLayer::IGetExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - GetUpdate
    - sqlite3_free_table
    - CPLTestBool
    - empty
    - GetDB
    - OGRAmigoCloudTableLayer::IGetExtent
    - CPLDebug
    - sqlite3_get_table
    - OGRSQLiteTableLayer::HasLayerDefnError
    - OGRSQLiteTableLayer::CheckSpatialIndexTable
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    - CPLGetConfigOption
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::IGetExtent(int iGeomField, OGREnvelope
      *psExtent,\n                                       bool bForce)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1360,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1364,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1364,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1369,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1369,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1379,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1379,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1386,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1386,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1391,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1391,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1399,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1402,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1404,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1413,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1423,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1424,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1424,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 3
    argNames:
    - poFieldDefn
    - bSQLiteDialectInternalUse
    - bStrict
    argTypes:
    - OGRFieldDefn*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1454
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1454
    functionName: OGRSQLiteFieldDefnToSQliteFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - CPLString
    - OGRFieldDefn*::GetWidth
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSQLiteFieldDefnToSQliteFieldDefn(const OGRFieldDefn *poFieldDefn,\n
      \                                             bool bSQLiteDialectInternalUse,\n
      \                                             bool bStrict)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteFieldDefnToSQliteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1464,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1465,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1466,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - poFieldDefn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1470
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1470
    functionName: OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetType
    - CSLFindString
    - OGRSQLiteFieldDefnToSQliteFieldDefn
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn(OGRFieldDefn
      *poFieldDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1481,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1484,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1486,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1492,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1492,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1493,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1493,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1495,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1496,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1500,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1502,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1502,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1502,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1504,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1506,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1522,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1523,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1526,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1526,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1527,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1528,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1528,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1530,1
    - Dst: OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1537,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1538,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1540,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1540,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1540,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1541,1
    - Dst: OGRFieldDefn::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1545,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1549,1
    - Dst: OGRFieldDefn::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1549,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1552,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1554,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1564,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1564,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1567,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1567,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1574,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1576,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1578,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1579,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1580,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1581,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1584,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1584,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1586,1
    - Dst: OGRSQLiteTableLayer::RecomputeOrdinals
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1590,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 2
    argNames:
    - poFieldIn
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1593
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1593
    functionName: OGRSQLiteTableLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRSQLiteTableLayer::ClearInsertStmt
    - CPLDebug
    - SQLEscapeLiteral
    - CPLError
    - std::make_unique<OGRFieldDefn>
    - CPLGetConfigOption
    - OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
    - GetDB
    - GetCurrentSavepoint
    - OGRFieldDefn::IsUnique
    - CPLString::c_str
    - OGRFieldDefn::IsDefaultDriverSpecific
    - GetUpdate
    - emplace_back
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - CPLTestBool
    - IsInTransaction
    - SQLCommand
    - CPLString::Printf
    - GetFieldCount
    - OGRSQLiteTableLayer::HasLayerDefnError
    - OGRFieldDefn::SetName
    - whileUnsealing
    - CPLFree
    - IsSpatialiteDB
    - OGRFieldDefn::SetType
    - EQUAL
    - OGRSQLiteTableLayer::RecomputeOrdinals
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::CreateField(const OGRFieldDefn *poFieldIn,\n
      \                                       CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1603,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1606,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1610,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1617,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1619,1
    - Dst: std::make_unique<OGRSQLiteGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1624,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1626,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1626,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1628,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1629,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1631,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1631,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1632,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1634,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1637,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1638,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1639,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1640,1
    - Dst: auto::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1651,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1652,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1655,1
    - Dst: FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1658,1
    - Dst: auto::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1660,1
    - Dst: auto::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1661,1
    - Dst: OGRGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1661,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1663,1
    - Dst: GetGeomFormat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1666,1
    - Dst: OGRSQLiteTableLayer::RunAddGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1675,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1675,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1683,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1685,1
    - Dst: std::make_unique<OGRGeomFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1686,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1687,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1690,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1690,1
    - Dst: OGRSQLiteTableLayer::RecomputeOrdinals
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1693,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - poGeomFieldIn
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1696
      start: 1599
    functionDepth: 3
    functionLinenumber: 1599
    functionLinenumberEnd: 1696
    functionName: OGRSQLiteTableLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - auto::SetType
    - OGRGeomFieldDefn*::IsNullable
    - GetGeomFormat
    - auto::get
    - CPLError
    - GetGeomFieldCount
    - OGRGeomFieldDefn*::GetNameRef
    - auto::Clone
    - OGRToOGCGeomType
    - std::move
    - wkbFlatten
    - emplace_back
    - IsInTransaction
    - auto::GetSpatialRef
    - auto::SetName
    - OGRGeomFieldDefn*::GetType
    - CPLSPrintf
    - auto::SetSpatialRef
    - auto::GetNameRef
    - CPLFree
    - auto::SetAxisMappingStrategy
    - IsSpatialiteDB
    - AddGeomFieldDefn
    - EQUAL
    - std::make_unique<OGRSQLiteGeomFieldDefn>
    - auto::SetNullable
    - OGRSQLiteTableLayer::RecomputeOrdinals
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - OGRSQLiteTableLayer::RunAddGeometryColumn
    - std::make_unique<OGRGeomFieldDefn>
    - FetchSRSId
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::CreateGeomField(const OGRGeomFieldDefn
      *poGeomFieldIn,\n                                     CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1706,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1712,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1715,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1718,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1720,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1720,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1724,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1726,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1726,1
    - Dst: OGRSQLiteGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1728,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1732,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1732,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1735,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1735,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1741,1
    - Dst: OGRSQLiteDataSource::MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1763,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1766,1
    - Dst: OGR_GT_HasM
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1769,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1771,1
    - Dst: OGR_GT_HasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1773,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1777,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1780,1
    - Dst: OGRSQLiteDataSource::MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1783,1
    - Dst: OGRSQLiteGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1784,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1797,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1802,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1803,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1803,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1808,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1813,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1814,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1814,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1819,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1819,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1822,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1822,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - poGeomFieldDefn
    - bAddColumnsForNonSpatialite
    argTypes:
    - OGRSQLiteGeomFieldDefn*
    - bool
    constantsTouched: []
    func_position:
      end: 1823
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1823
    functionName: OGRSQLiteTableLayer::RunAddGeometryColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - IsSpatialiteDB
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - static_cast<int>
    - SQLCommand
    - GetDB
    - CPLString::Printf
    - OGR_GT_HasZ
    - CPLSPrintf
    - CPLDebug
    - OGRSQLiteDataSource::MakeSpatialiteVersionNumber
    - CPLString::c_str
    - SQLEscapeLiteral
    - wkbFlatten
    - OGR_GT_HasM
    - OGRSQLiteGeomFieldDefn*::IsNullable
    - OGRSQLiteGeomFieldDefn*::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::RunAddGeometryColumn(\n    const OGRSQLiteGeomFieldDefn
      *poGeomFieldDefn,\n    bool bAddColumnsForNonSpatialite)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1835,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1837,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1838,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1838,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1839,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1840,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1841,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1841,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1845,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1845,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1846,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1851,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1851,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1855,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1855,1
    - Dst: static_cast<char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1856,1
    - Dst: CPLCalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1856,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1861,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1862,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1864,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1865,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1868,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1872,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1873,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1874,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1876,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1877,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1878,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1878,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1879,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1881,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1882,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1882,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1882,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1883,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1886,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1888,1
    - Dst: OGRSQLiteGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1889,1
    - Dst: strcat
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - pszNewFieldList
    - pszFieldListForSelect
    - nBufLenOut
    - nExtraSpace
    argTypes:
    - char*
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1892
      start: 1829
    functionDepth: 2
    functionLinenumber: 1829
    functionLinenumberEnd: 1892
    functionName: OGRSQLiteTableLayer::InitFieldListForRecrerate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetNameRef
    - GetGeomFieldDefn
    - OGRFieldDefn*::GetDefault
    - GetFieldCount
    - SQLEscapeName
    - strcat
    - snprintf
    - strlen
    - GetFieldDefn
    - static_cast<char *>
    - CPLCalloc
    - GetGeomFieldCount
    - OGRSQLiteGeomFieldDefn*::IsNullable
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteTableLayer::InitFieldListForRecrerate(\n    char *&pszNewFieldList,
      char *&pszFieldListForSelect, size_t &nBufLenOut,\n    int nExtraSpace)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1901,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1901,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1902,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1903,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1903,1
    - Dst: OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1904,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1905,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1906,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1906,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1907,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1908,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1909,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1909,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1910,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1911,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1912,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1914,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1914,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1915,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pszNewFieldList
    - nBufLen
    - poFldDefn
    argTypes:
    - char*
    - size_t
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1898
    functionDepth: 3
    functionLinenumber: 1898
    functionLinenumberEnd: 1918
    functionName: OGRSQLiteTableLayer::AddColumnDef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
    - OGRFieldDefn*::GetNameRef
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - SQLEscapeLiteral
    - snprintf
    - strlen
    - OGRFieldDefn*::IsUnique
    - OGRFieldDefn*::IsNullable
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteTableLayer::AddColumnDef(char *pszNewFieldList, size_t
      nBufLen,\n                                       OGRFieldDefn *poFldDefn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1932,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1938,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1941,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1956,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1958,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1960,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1960,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1966,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1967,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1976,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1977,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:1987,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2002,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2011,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2015,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2021,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2023,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2025,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - pszFieldListForSelect
    - pszNewFieldList
    - pszGenericErrorMessage
    - pszAdditionalDef
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2029
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 2029
    functionName: OGRSQLiteTableLayer::RecreateTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - SoftStartTransaction
    - c_str
    - GetDB
    - CPLString::Printf
    - SoftRollbackTransaction
    - CPLSPrintf
    - SoftCommitTransaction
    - sqlite3_free
    - std::string
    - CPLError
    - sqlite3_exec
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::RecreateTable(const char *pszFieldListForSelect,\n
      \                                         const char *pszNewFieldList,\n                                          const
      char *pszGenericErrorMessage,\n                                          const
      char *pszAdditionalDef)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2037,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2040,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2042,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2048,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2050,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2054,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2056,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2064,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2065,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2065,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2067,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2068,1
    - Dst: OGRSQLiteTableLayer::InitFieldListForRecrerate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2078,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2080,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2082,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2087,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2087,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2088,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2089,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2089,1
    - Dst: OGRSQLiteTableLayer::AddColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2091,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2098,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2100,1
    - Dst: OGRSQLiteTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2101,1
    - Dst: OGRSQLiteTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2103,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2104,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2106,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2107,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2115,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2115,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2117,1
    - Dst: PragmaCheck
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2118,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2127,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2133,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2136,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2140,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2141,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2143,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2152,1
    - Dst: OGRSQLiteTableLayer::RecomputeOrdinals
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2156,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2158,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - iFieldToDelete
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2167
      start: 2035
    functionDepth: 4
    functionLinenumber: 2035
    functionLinenumberEnd: 2167
    functionName: OGRSQLiteTableLayer::DeleteField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - CPLDebug
    - OGRSQLiteTableLayer::AddColumnDef
    - CPLString
    - OGRSQLiteTableLayer::GetName
    - GetFieldDefn
    - CPLError
    - SoftStartTransaction
    - GetDB
    - ResetReading
    - GetCurrentSavepoint
    - CPLString::c_str
    - PragmaCheck
    - std::move
    - strlen
    - GetUpdate
    - emplace_back
    - IsInTransaction
    - SQLCommand
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - SoftRollbackTransaction
    - GetFieldCount
    - OGRSQLiteTableLayer::HasLayerDefnError
    - snprintf
    - OGRSQLiteTableLayer::InitFieldListForRecrerate
    - OGRSQLiteTableLayer::RecreateTable
    - whileUnsealing
    - CPLFree
    - SQLEscapeName
    - SoftCommitTransaction
    - OGRSQLiteTableLayer::RecomputeOrdinals
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::DeleteField(int iFieldToDelete)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2177,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2180,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2182,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2187,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2189,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2193,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2194,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2201,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2202,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2204,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2204,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2211,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2211,1
    - Dst: GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2212,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2213,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2213,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2214,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2215,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2215,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2217,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2219,1
    - Dst: OGRFieldDefn::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2232,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2232,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2235,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2235,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2236,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2236,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2239,1
    - Dst: OGRFieldDefn::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2240,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2240,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2241,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2241,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2244,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2244,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2245,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2245,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2248,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2248,1
    - Dst: OGRFieldDefn::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2249,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2249,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2252,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2252,1
    - Dst: OGRFieldDefn::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2255,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2255,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2258,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2259,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2260,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2261,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2262,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2262,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2263,1
    - Dst: OGRFieldDefn::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2266,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2266,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2269,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2269,1
    - Dst: OGRFieldDefn::SetUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2272,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2272,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2277,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2278,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2279,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2280,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2282,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2283,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2284,1
    - Dst: OGRSQLiteTableLayer::InitFieldListForRecrerate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2301,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2303,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2303,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2303,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2304,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2305,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2305,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2305,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2308,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2311,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2313,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2313,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2314,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2315,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2315,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2319,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2319,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2320,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2321,1
    - Dst: OGRFieldDefn::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2321,1
    - Dst: OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2322,1
    - Dst: OGRFieldDefn::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2324,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2325,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2326,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2328,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2328,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2329,1
    - Dst: OGRFieldDefn::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2331,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2332,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2332,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2333,1
    - Dst: OGRFieldDefn::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2334,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2335,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2335,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2336,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2337,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2339,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2339,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2340,1
    - Dst: OGRFieldDefn::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2341,1
    - Dst: OGRSQLiteTableLayer::AddColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2346,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2356,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2358,1
    - Dst: OGRSQLiteTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2359,1
    - Dst: OGRSQLiteTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2361,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2362,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2364,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2365,1
    - Dst: GetTemporaryUnsealer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2375,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2376,1
    - Dst: IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2378,1
    - Dst: emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2380,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2381,1
    - Dst: GetCurrentSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2382,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2388,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2389,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2390,1
    - Dst: CSLRemoveStrings
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2393,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2395,1
    - Dst: OGRFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2396,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2396,1
    - Dst: OGRFieldDefn*::SetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2397,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2397,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2405,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2407,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2407,1
    - Dst: OGRFieldDefn*::SetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2409,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2409,1
    - Dst: OGRFieldDefn*::SetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2413,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2413,1
    - Dst: OGRFieldDefn*::SetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2414,1
    - Dst: OGRFieldDefn*::GetPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2414,1
    - Dst: OGRFieldDefn*::SetNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2417,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2417,1
    - Dst: OGRFieldDefn*::SetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2419,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2419,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 103
    argCount: 3
    argNames:
    - iFieldToAlter
    - poNewFieldDefn
    - nFlagsIn
    argTypes:
    - int
    - OGRFieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 2422
      start: 2173
    functionDepth: 4
    functionLinenumber: 2173
    functionLinenumberEnd: 2422
    functionName: OGRSQLiteTableLayer::AlterFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFieldDefn::GetDefault
    - OGRFieldDefn*::GetPrecision
    - GetGeomFieldDefn
    - OGRSQLiteTableLayer::ClearInsertStmt
    - CPLDebug
    - OGRSQLiteTableLayer::AddColumnDef
    - CSLRemoveStrings
    - strcmp
    - OGRFieldDefn*::SetSubType
    - OGRFieldDefn::SetNullable
    - CPLString
    - OGRFieldDefn::SetUnique
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    - OGRFieldDefn*::GetWidth
    - SQLEscapeLiteral
    - OGRSQLiteTableLayer::GetName
    - std::make_unique<OGRFieldDefn>
    - OGRSQLiteTableLayer::FieldDefnToSQliteFieldDefn
    - CPLStrdup
    - GetDB
    - ResetReading
    - GetCurrentSavepoint
    - OGRFieldDefn*::GetDefault
    - OGRFieldDefn::IsUnique
    - OGRFieldDefn*::SetDefault
    - GetGeomType
    - CPLString::c_str
    - OGRFieldDefn*::GetSubType
    - strlen
    - OGRFieldDefn*::IsNullable
    - GetUpdate
    - emplace_back
    - OGRFieldDefn::IsNullable
    - OGRFieldDefn::GetNameRef
    - IsInTransaction
    - static_cast<int>
    - OGRFieldDefn*::SetNullable
    - OGRFieldDefn*::SetPrecision
    - SQLCommand
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - OGRFieldDefn::SetSubType
    - OGRFieldDefn*::GetType
    - OGRSQLiteTableLayer::HasLayerDefnError
    - OGRFieldDefn::SetName
    - snprintf
    - GetTemporaryUnsealer
    - OGRSQLiteTableLayer::InitFieldListForRecrerate
    - OGRSQLiteTableLayer::RecreateTable
    - CPLFree
    - OGRFieldDefn*::SetType
    - OGRFieldDefn*::SetName
    - OGRFieldDefn::SetDefault
    - OGRFieldDefn::SetWidth
    - OGRFieldDefn::SetPrecision
    - OGRFieldDefn*::SetWidth
    - SQLEscapeName
    - OGRFieldDefn::SetType
    - OGRFieldDefn*::IsUnique
    - CSLFindString
    - OGRFieldDefn::GetType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::AlterFieldDefn(int iFieldToAlter,\n                                           OGRFieldDefn
      *poNewFieldDefn,\n                                           int nFlagsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2430,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2433,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2435,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2440,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2441,1
    - Dst: OGRSQLiteTableLayer::InitFieldListForRecrerate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2450,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2453,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2455,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2457,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2457,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2458,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2459,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2459,1
    - Dst: OGRSQLiteTableLayer::AddColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2461,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2468,1
    - Dst: OGRSQLiteTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2469,1
    - Dst: OGRSQLiteTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2471,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2472,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2474,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - pszKeys
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2485
      start: 2428
    functionDepth: 4
    functionLinenumber: 2428
    functionLinenumberEnd: 2485
    functionName: OGRSQLiteTableLayer::AddForeignKeysToTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - OGRSQLiteTableLayer::ClearInsertStmt
    - GetFieldCount
    - SQLEscapeName
    - OGRSQLiteTableLayer::InitFieldListForRecrerate
    - OGRSQLiteTableLayer::AddColumnDef
    - CPLString::c_str
    - OGRSQLiteTableLayer::HasLayerDefnError
    - snprintf
    - strlen
    - OGRSQLiteTableLayer::GetName
    - GetFieldDefn
    - CPLError
    - OGRSQLiteTableLayer::RecreateTable
    - GetUpdate
    - CPLFree
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::AddForeignKeysToTable(const char *pszKeys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2493,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2496,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2498,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2503,1
    - Dst: OGRCheckPermutation
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2506,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2506,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2510,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2511,1
    - Dst: OGRSQLiteTableLayer::InitFieldListForRecrerate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2520,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2522,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2524,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2526,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2526,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2527,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2528,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2528,1
    - Dst: OGRSQLiteTableLayer::AddColumnDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2530,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2537,1
    - Dst: OGRSQLiteTableLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2538,1
    - Dst: OGRSQLiteTableLayer::RecreateTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2540,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2541,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2543,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2544,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2553,1
    - Dst: OGRSQLiteTableLayer::RecomputeOrdinals
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - panMap
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 2558
      start: 2491
    functionDepth: 4
    functionLinenumber: 2491
    functionLinenumberEnd: 2558
    functionName: OGRSQLiteTableLayer::ReorderFields
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::ClearInsertStmt
    - OGRSQLiteTableLayer::AddColumnDef
    - OGRSQLiteTableLayer::GetName
    - GetFieldDefn
    - CPLError
    - ResetReading
    - CPLString::c_str
    - strlen
    - GetUpdate
    - OGRCheckPermutation
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - OGRSQLiteTableLayer::HasLayerDefnError
    - snprintf
    - OGRSQLiteTableLayer::InitFieldListForRecrerate
    - OGRSQLiteTableLayer::RecreateTable
    - whileUnsealing
    - CPLFree
    - SQLEscapeName
    - OGRSQLiteTableLayer::RecomputeOrdinals
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::ReorderFields(int *panMap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2571,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2581,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2585,1
    - Dst: OGRGeometry*::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2592,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2593,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2600,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2600,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2602,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2607,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2607,1
    - Dst: OGRGeometry*::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2610,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2611,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2612,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2625,1
    - Dst: ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2625,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2628,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2634,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2635,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2645,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2647,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2655,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2660,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2665,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2666,1
    - Dst: sqlite3_bind_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2668,1
    - Dst: GetFieldDefnUnsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2673,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2674,1
    - Dst: sqlite3_bind_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2679,1
    - Dst: OGRFeature*::GetFieldAsInteger64Unsafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2686,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2687,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2695,1
    - Dst: OGRFeature*::GetFieldAsBinary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2704,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2705,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2714,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2716,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2729,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2733,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2735,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2749,1
    - Dst: OGR_GET_MS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2753,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2754,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2757,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2758,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2759,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2770,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2772,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2780,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2781,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2790,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2792,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2799,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2810,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2812,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2813,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 109
    argCount: 3
    argNames:
    - poFeature
    - m_hStmtIn
    - bBindUnsetAsNull
    argTypes:
    - OGRFeature*
    - sqlite3_stmt*
    - bool
    constantsTouched: []
    func_position:
      end: 2819
      start: 2567
    functionDepth: 2
    functionLinenumber: 2567
    functionLinenumberEnd: 2819
    functionName: OGRSQLiteTableLayer::BindValues
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::IsFieldNull
    - CPLError
    - GetFieldDefn
    - simple_max
    - OGR_GET_MS
    - GetDB
    - sqlite3_bind_int64
    - sqlite3_bind_double
    - myGetGeomFieldDefn
    - sqlite3_bind_text
    - static_cast<int>
    - OGRFeature*::GetFieldAsBinary
    - OGRFeature*::GetGeomFieldRef
    - OGRGeometry*::exportToWkb
    - GetFieldCount
    - CPLAssert
    - OGRFieldDefn*::GetType
    - CPL_IGNORE_RET_VAL
    - GetFieldDefnUnsafe
    - sqlite3_errmsg
    - static_cast<GByte *>
    - snprintf
    - CPLFree
    - static_cast<size_t>
    - OGRFeature*::IsFieldSet
    - OGRFeature*::GetFieldAsInteger64Unsafe
    - sqlite3_bind_blob
    - OGRGeometry*::exportToWkt
    - sqlite3_bind_int
    - CSLFindString
    - ExportSpatiaLiteGeometry
    - sqlite3_bind_null
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteTableLayer::BindValues(OGRFeature *poFeature,\n                                       sqlite3_stmt
      *m_hStmtIn,\n                                       bool bBindUnsetAsNull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2828,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2833,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2838,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2840,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2845,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2847,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2855,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2856,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2857,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2859,1
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2865,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2868,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2874,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2883,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2890,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2891,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2900,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2905,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2912,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2912,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2925,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2926,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2926,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2932,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2932,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2940,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2942,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2942,1
    - Dst: OGRSQLiteTableLayer::BindValues
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2950,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2953,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2960,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2964,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2965,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2967,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2971,1
    - Dst: sqlite3_changes
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2974,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2977,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2981,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2982,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2984,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2987,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_oCachedExtent::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2988,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:2991,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2995
      start: 2825
    functionDepth: 3
    functionLinenumber: 2825
    functionLinenumberEnd: 2995
    functionName: OGRSQLiteTableLayer::ISetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsInteger64
    - GetGeomFieldDefn
    - CPLDebug
    - GetFieldDefn
    - CPLError
    - sqlite3_finalize
    - GetGeomFieldCount
    - GetDB
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - CPLString::c_str
    - GetUpdate
    - myGetGeomFieldDefn
    - OGRFeature*::GetFID
    - OGRFeature*::GetGeomFieldRef
    - GetFieldCount
    - CPLSPrintf
    - sqlite3_changes
    - OGRSQLiteTableLayer::HasLayerDefnError
    - sqlite3_errmsg
    - OGRSQLiteTableLayer::BindValues
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - OGRFeature*::IsFieldSet
    - SQLEscapeName
    - OGRSQLiteGeomFieldDefn*::m_oCachedExtent::Merge
    - sqlite3_step
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 2
    argNames:
    - pszExpectedTrigger
    - pszTriggerSQL
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3016
      start: 3001
    functionDepth: 0
    functionLinenumber: 3001
    functionLinenumberEnd: 3016
    functionName: AreTriggersSimilar
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int AreTriggersSimilar(const char *pszExpectedTrigger,\n                              const
      char *pszTriggerSQL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3025,1
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3029,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3032,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3034,1
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3039,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3048,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3049,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3063,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3063,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3065,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3068,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3071,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3074,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3085,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3087,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3091,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3093,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3109,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3111,1
    - Dst: AreTriggersSimilar
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3147,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3151,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3155,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3159,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3161,1
    - Dst: std::pair<CPLString, CPLString>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3162,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3165,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3167,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3172,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3181,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3184,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3186,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3189,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3190,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3191,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3194,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3196,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3198,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3201,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3201,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3202,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3202,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3203,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3206,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3207,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3208,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3222,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3223,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3233,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3235,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3237,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3238,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3243,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3244,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3245,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3247,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3265,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3272,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3275,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3278,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3278,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3287,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3291,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3295,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3304,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3305,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3318,1
    - Dst: OGRFeature*::IsFieldSet
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3323,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3333,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3334,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3352,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3367,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3367,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3370,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3371,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3378,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3380,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3380,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3382,1
    - Dst: OGRSQLiteTableLayer::BindValues
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3390,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3393,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3404,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3405,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3406,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3407,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3414,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3417,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3419,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3422,1
    - Dst: OGRSQLiteTableLayer::ClearInsertStmt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3425,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3427,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3431,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3432,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3435,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3438,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_oCachedExtent::Merge
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3439,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3441,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3447,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 165
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 3452
      start: 3022
    functionDepth: 3
    functionLinenumber: 3022
    functionLinenumberEnd: 3452
    functionName: OGRSQLiteTableLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - OGRFeature*::GetFieldAsInteger64
    - GetGeomFieldDefn
    - OGRSQLiteTableLayer::ClearInsertStmt
    - CPLDebug
    - CPLString
    - GetFieldDefn
    - CPLError
    - STARTS_WITH
    - GetGeomFieldCount
    - sqlite3_free_table
    - sqlite3_reset
    - std::pair<CPLString, CPLString>
    - GetDB
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - ResetReading
    - AreTriggersSimilar
    - sqlite3_mprintf
    - CPLString::c_str
    - OGRToOGCGeomType
    - wkbFlatten
    - GetUpdate
    - myGetGeomFieldDefn
    - OGRSQLiteGeomFieldDefn*::GetType
    - OGRGeometry*::getGeometryType
    - HasSpatialite4Layout
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFID
    - sqlite3_last_insert_rowid
    - GetFieldCount
    - CPLSPrintf
    - OGRSQLiteTableLayer::HasLayerDefnError
    - sqlite3_errmsg
    - OGRSQLiteTableLayer::BindValues
    - OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::empty
    - OGRGeometry*::getEnvelope
    - OGRGeometry*::IsEmpty
    - OGRFeature*::GetFieldDefnRef
    - OGRFeature*::IsFieldSet
    - SQLEscapeName
    - OGRSQLiteGeomFieldDefn*::m_oCachedExtent::Merge
    - sqlite3_get_table
    - sqlite3_free
    - OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::push_back
    - OGRFeature*::SetField
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3463,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3468,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3473,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3475,1
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3480,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3483,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3485,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3486,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3489,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3489,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3491,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3491,1
    - Dst: sqlite3_changes
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3494,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3494,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3503,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 3511
      start: 3458
    functionDepth: 1
    functionLinenumber: 3458
    functionLinenumberEnd: 3511
    functionName: OGRSQLiteTableLayer::DeleteFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLCommand
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - ResetReading
    - CPLString::Printf
    - GetDB
    - SQLEscapeName
    - CPLDebug
    - CPLString::c_str
    - sqlite3_changes
    - OGRSQLiteTableLayer::HasLayerDefnError
    - CPLError
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    - GetUpdate
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3522,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3524,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3527,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3529,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3530,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3534,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3536,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3541,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3543,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - iGeomCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3549
      start: 3517
    functionDepth: 2
    functionLinenumber: 3517
    functionLinenumberEnd: 3549
    functionName: OGRSQLiteTableLayer::CreateSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetDB
    - OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    - CPLString::Printf
    - GetGeomFieldDefn
    - CPLDebug
    - CPLString::c_str
    - SQLEscapeLiteral
    - sqlite3_free
    - CPLError
    - GetGeomFieldCount
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteTableLayer::CreateSpatialIndex(int iGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3563,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3565,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3567,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3569,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3572,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3576,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3578,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3578,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3582,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3584,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3584,1
    - Dst: OGRSQLiteGeomFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3586,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3593,1
    - Dst: GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3595,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3599,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3600,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3600,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3601,1
    - Dst: OGRFieldDefn*::IsNullable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3602,1
    - Dst: OGRFieldDefn*::IsUnique
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3606,1
    - Dst: OGRFieldDefn*::IsDefaultDriverSpecific
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3612,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3614,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3615,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3616,1
    - Dst: OGRFieldDefn*::GetDefault
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3619,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3627,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3627,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3630,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3630,1
    - Dst: HasGeometryColumns
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3638,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3644,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3649,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3649,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3651,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3651,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3654,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3657,1
    - Dst: OGRSQLiteTableLayer::RunAddGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3658,1
    - Dst: OGRSQLiteTableLayer::RecomputeOrdinals
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3663,1
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3666,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3666,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3669,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3669,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3555
    functionDepth: 3
    functionLinenumber: 3555
    functionLinenumberEnd: 3675
    functionName: OGRSQLiteTableLayer::RunDeferredCreationIfNecessary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 7
    functionsReached:
    - OGRSQLiteGeomFieldDefn*::GetNameRef
    - CPLDebug
    - SQLEscapeLiteral
    - GetFieldDefn
    - GetGeomFieldCount
    - GetLayerCount
    - GetDB
    - OGRFieldDefn*::GetDefault
    - CPLString::c_str
    - strlen
    - OGRFieldDefn*::IsNullable
    - myGetGeomFieldDefn
    - STARTS_WITH_CI
    - SQLCommand
    - OGRFieldDefn*::GetNameRef
    - CPLString::Printf
    - GetFieldCount
    - CPLSPrintf
    - OGRFieldDefn*::IsDefaultDriverSpecific
    - HasGeometryColumns
    - IsSpatialiteDB
    - SQLEscapeName
    - OGRSQLiteTableLayer::RecomputeOrdinals
    - OGRFieldDefn*::IsUnique
    - OGRSQLiteTableLayer::RunAddGeometryColumn
    - OGRSQLiteGeomFieldDefn*::IsNullable
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteTableLayer::RunDeferredCreationIfNecessary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3683,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3684,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3687,1
    - Dst: OGRSQLiteTableLayer::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iGeomCol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3692
      start: 3681
    functionDepth: 3
    functionLinenumber: 3681
    functionLinenumberEnd: 3692
    functionName: OGRSQLiteTableLayer::HasSpatialIndex
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteTableLayer::GetLayerDefn
    - GetGeomFieldCount
    - myGetGeomFieldDefn
    - OGRSQLiteTableLayer::CreateSpatialIndexIfNecessary
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteTableLayer::HasSpatialIndex(int iGeomCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3702
      start: 3698
    functionDepth: 1
    functionLinenumber: 3698
    functionLinenumberEnd: 3702
    functionName: OGRSQLiteTableLayer::InitFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::InitFeatureCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3711,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3713,1
    - Dst: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3708
    functionDepth: 1
    functionLinenumber: 3708
    functionLinenumberEnd: 3716
    functionName: OGRSQLiteTableLayer::InvalidateCachedFeatureCountAndExtent
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    - OGRSQLiteTableLayer::GetLayerDefn
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::InvalidateCachedFeatureCountAndExtent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3724,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3722
    functionDepth: 0
    functionLinenumber: 3722
    functionLinenumberEnd: 3726
    functionName: OGRSQLiteTableLayer::DoStatisticsNeedToBeFlushed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - IsSpatialiteDB
    - IsSpatialiteLoaded
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteTableLayer::DoStatisticsNeedToBeFlushed()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3732
    functionDepth: 0
    functionLinenumber: 3732
    functionLinenumberEnd: 3735
    functionName: OGRSQLiteTableLayer::ForceStatisticsToBeFlushed
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::ForceStatisticsToBeFlushed()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3741
    functionDepth: 0
    functionLinenumber: 3741
    functionLinenumberEnd: 3744
    functionName: OGRSQLiteTableLayer::AreStatisticsValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteTableLayer::AreStatisticsValid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3752,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3755,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3760,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3768,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3770,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3775,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3775,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3787,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3793,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3796,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3799,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3807,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3811,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3811,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3815,1
    - Dst: CPLString::compare
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3823,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3832,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3837,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3845,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3855,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3856,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3857,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3858,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3859,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3866,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3871,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3874
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3874
    functionName: OGRSQLiteTableLayer::LoadStatisticsSpatialite4DB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - sscanf
    - CPLAtof
    - OGRSQLiteTableLayer::GetLayerDefn
    - GetDB
    - CPLString::Printf
    - CPLString::empty
    - CPLAtoGIntBig
    - CPLDebug
    - sqlite3_get_table
    - CPLString::c_str
    - CPLString::compare
    - SQLEscapeLiteral
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::LoadStatisticsSpatialite4DB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3882,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3882,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3885,1
    - Dst: OGRSQLiteTableLayer::LoadStatisticsSpatialite4DB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3887,1
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3891,1
    - Dst: GetFileTimestamp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3895,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3902,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3907,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3909,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3913,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3913,1
    - Dst: sscanf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3921,1
    - Dst: CPLYMDHMSToUnixTime
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3930,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3939,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3944,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3946,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3949,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3949,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3961,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3968,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3969,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3977,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3979,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3980,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3981,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3982,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3983,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3990,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:3992,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3880
    functionDepth: 2
    functionLinenumber: 3880
    functionLinenumberEnd: 3993
    functionName: OGRSQLiteTableLayer::LoadStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 1
    functionsReached:
    - GetFileTimestamp
    - IsSpatialiteLoaded
    - OGRSQLiteTableLayer::LoadStatisticsSpatialite4DB
    - CPLDebug
    - SQLEscapeLiteral
    - sqlite3_free_table
    - sscanf
    - OGRSQLiteTableLayer::GetLayerDefn
    - GetDB
    - CPLAtoGIntBig
    - CPLString::c_str
    - myGetGeomFieldDefn
    - CPLAtof
    - HasSpatialite4Layout
    - CPLString::Printf
    - IsSpatialiteDB
    - sqlite3_get_table
    - CPLYMDHMSToUnixTime
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::LoadStatistics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpatialiteDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4001,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4002,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4002,1
    - Dst: OGRSQLiteTableLayer::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4004,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4007,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4011,1
    - Dst: OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4015,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4023,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4023,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4026,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4028,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4031,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4037,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4037,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4038,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4053,1
    - Dst: CPLString::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4055,1
    - Dst: CPLString::tolower
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4056,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4065,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4070,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4072,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4074,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4075,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4076,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4083,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4086,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4089,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4092,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4095,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4098,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4100,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4100,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4102,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4107,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4113,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4115,1
    - Dst: HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4116,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4117,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4118,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4120,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4127,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4130,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4131,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4132,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 3999
    functionDepth: 1
    functionLinenumber: 3999
    functionLinenumberEnd: 4134
    functionName: OGRSQLiteTableLayer::SaveStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - IsSpatialiteLoaded
    - CPLDebug
    - SQLEscapeLiteral
    - sqlite3_finalize
    - CPLError
    - OGRSQLiteTableLayer::GetLayerDefn
    - GetDB
    - CPLString::c_str
    - GetUpdate
    - sqlite3_bind_double
    - myGetGeomFieldDefn
    - HasSpatialite4Layout
    - SQLCommand
    - CPLString::Printf
    - CPLSPrintf
    - CPLString::tolower
    - sqlite3_errmsg
    - sqlite3_exec
    - OGRSQLiteGeomFieldDefn*::m_aosDisabledTriggers::empty
    - IsSpatialiteDB
    - sqlite3_step
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteTableLayer::SaveStatistics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp:4143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszCompressedColumns
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4144
      start: 4140
    functionDepth: 1
    functionLinenumber: 4140
    functionLinenumberEnd: 4144
    functionName: OGRSQLiteTableLayer::SetCompressedColumns
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteTableLayer::SetCompressedColumns(const char *pszCompressedColumns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMutexHolderD
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:113,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:120,1
    - Dst: CPLGetSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:123,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:125,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:129,1
    - Dst: CPLGetSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:135,1
    - Dst: CPLGetSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:137,1
    - Dst: CPLGetSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:139,1
    - Dst: CPLGetSymbol
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 155
    functionName: OGRSQLiteLoadSpatialiteSymbols
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLMutexHolderD
    - CPLDebug
    - CPLGetSymbol
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteLoadSpatialiteSymbols()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:165,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:165,1
    - Dst: OGRSQLiteLoadSpatialiteSymbols
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:168,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:171,1
    - Dst: pfn_spatialite_alloc_connection
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:172,1
    - Dst: pfn_spatialite_init_ex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:175,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:176,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: OGRSQLiteBaseDataSource::InitSpatialite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - pfn_spatialite_alloc_connection
    - CPLTestBool
    - CPLAssert
    - OGRSQLiteLoadSpatialiteSymbols
    - pfn_spatialite_init_ex
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::InitSpatialite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pfn_spatialite_cleanup_ex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: OGRSQLiteBaseDataSource::FinishSpatialite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - pfn_spatialite_cleanup_ex
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::FinishSpatialite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: OGRSQLiteBaseDataSource::IsSpatialiteLoaded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::IsSpatialiteLoaded()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: OGRSQLiteBaseDataSource::InitSpatialite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::InitSpatialite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: OGRSQLiteBaseDataSource::FinishSpatialite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::FinishSpatialite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: OGRSQLiteBaseDataSource::IsSpatialiteLoaded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::IsSpatialiteLoaded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pfn_spatialite_shutdown
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:237,1
    - Dst: CPLDestroyMutex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: OGRSQLiteDriverUnload
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - pfn_spatialite_shutdown
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDriverUnload(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:255,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:257,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:261,1
    - Dst: OGRSchemaOverride::LoadFromJSON
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:267,1
    - Dst: OGRSchemaOverride::IsValid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:268,1
    - Dst: OGRSchemaOverride::GetLayerOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:273,1
    - Dst: auto::GetFieldOverrides
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:279,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:282,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:283,1
    - Dst: GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:286,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:289,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:290,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:295,1
    - Dst: auto::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:296,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:298,1
    - Dst: auto::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:300,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:300,1
    - Dst: auto::cend
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:301,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:303,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:304,1
    - Dst: auto::second::GetFieldType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:306,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:307,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:308,1
    - Dst: auto::second::GetFieldWidth
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:310,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:311,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:312,1
    - Dst: auto::second::GetFieldPrecision
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:314,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:316,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:317,1
    - Dst: auto::second::GetFieldSubType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:319,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:321,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:322,1
    - Dst: auto::second::GetFieldName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:329,1
    - Dst: auto::erase
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:331,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:336,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:338,1
    - Dst: auto::cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:340,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:340,1
    - Dst: auto::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:341,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:350,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:351,1
    - Dst: std::vector::begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:351,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:351,1
    - Dst: std::vector::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:352,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:354,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - papszOpenOptionsIn
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 361
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 361
    functionName: OGRSQLiteBaseDataSource::DealWithOgrSchemaOpenOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - auto::GetFieldOverrides
    - auto::second::GetFieldWidth
    - CPLDebug
    - CPLError
    - auto::second::GetFieldName
    - std::vector::push_back
    - auto::c_str
    - std::string::empty
    - auto::GetLayerDefn
    - std::vector::end
    - auto::find
    - auto::second::GetFieldSubType
    - std::vector::begin
    - GetLayerByName
    - GetUpdate
    - c_str
    - OGRSchemaOverride::IsValid
    - auto::cend
    - auto::GetFieldDefn
    - auto::second::GetFieldType
    - auto::second::GetFieldPrecision
    - auto::empty
    - OGRSchemaOverride::GetLayerOverrides
    - auto::cbegin
    - auto::GetNameRef
    - whileUnsealing
    - OGRSchemaOverride::LoadFromJSON
    - auto::erase
    - CSLFetchNameValueDef
    - auto::GetFieldCount
    - std::find
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteBaseDataSource::DealWithOgrSchemaOpenOption(\n    CSLConstList
      papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:371,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:374,1
    - Dst: pfn_spatialite_version
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:374,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:375,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:377,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:378,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:378,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:379,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 384
    functionName: OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - pfn_spatialite_version
    - atoi
    - OGRSQLiteBaseDataSource::IsSpatialiteLoaded
    - CSLTokenizeString2
    - MakeSpatialiteVersionNumber
    - CPLStringList::size
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:394,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:396,1
    - Dst: OGRSQLiteDataSource::ValidateRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:401,1
    - Dst: std::unique_ptr<GDALRelationship>::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:401,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:406,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:407,1
    - Dst: std::unique_ptr<GDALRelationship>::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:408,1
    - Dst: std::unique_ptr<GDALRelationship>::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:409,1
    - Dst: SQLGetUniqueFieldUCConstraints
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:414,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:414,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:414,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:415,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:416,1
    - Dst: dynamic_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:428,1
    - Dst: OGRSQLiteDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:429,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:429,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:432,1
    - Dst: std::unique_ptr<GDALRelationship>::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:439,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:441,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:444,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:444,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:445,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:449,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:452,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:452,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:453,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:457,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:468,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:469,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:472,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:479,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - relationship
    - failureReason
    argTypes:
    - std::unique_ptr<GDALRelationship>
    - std::string
    constantsTouched: []
    func_position:
      end: 481
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 481
    functionName: OGRSQLiteDataSource::AddRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALRelationship>::GetLeftTableName
    - CPLString
    - CPLError
    - std::string::c_str
    - cpl::contains
    - OGRSQLiteDataSource::ValidateRelationship
    - OGRSQLiteDataSource::GetLayerByName
    - GetDB
    - std::unique_ptr<GDALRelationship>::GetLeftTableFields
    - std::unique_ptr<GDALRelationship>::GetRightTableName
    - sqlite3_mprintf
    - std::unique_ptr<GDALRelationship>::GetType
    - GetUpdate
    - c_str
    - SQLGetUniqueFieldUCConstraints
    - SQLCommand
    - std::unique_ptr<GDALRelationship>::GetRightTableFields
    - std::unique_ptr<GDALRelationship>::get
    - sqlite3_free
    - dynamic_cast<OGRSQLiteTableLayer *>
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::AddRelationship(\n    std::unique_ptr<GDALRelationship>
      &&relationship,\n    std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRelationship*::GetCardinality
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:491,1
    - Dst: GDALRelationship*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:499,1
    - Dst: GDALRelationship*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:500,1
    - Dst: GDALRelationship*::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:507,1
    - Dst: OGRSQLiteDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:508,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:508,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:511,1
    - Dst: GDALRelationship*::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:516,1
    - Dst: OGRSQLiteDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:517,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:517,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:520,1
    - Dst: GDALRelationship*::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:526,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:527,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:532,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:541,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:542,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:543,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:543,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:543,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:545,1
    - Dst: GDALRelationship*::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:552,1
    - Dst: auto::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:553,1
    - Dst: auto::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:558,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:567,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:568,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:569,1
    - Dst: OGRLayer*::GetFIDColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:569,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:570,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:572,1
    - Dst: second::GetLeftTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:582,1
    - Dst: second::GetRightTableName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:583,1
    - Dst: second::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:584,1
    - Dst: second::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:585,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - poRelationship
    - failureReason
    argTypes:
    - GDALRelationship*
    - std::string
    constantsTouched: []
    func_position:
      end: 594
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 594
    functionName: OGRSQLiteDataSource::ValidateRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteDataSource::GetLayerByName
    - GDALRelationship*::GetLeftTableName
    - c_str
    - GDALRelationship*::GetLeftTableFields
    - second::GetRightTableName
    - second::GetLeftTableFields
    - second::GetRightTableFields
    - GDALRelationship*::GetRightTableName
    - auto::empty
    - EQUAL
    - GDALRelationship*::GetRightTableFields
    - OGRLayer*::GetLayerDefn
    - auto::size
    - std::string::c_str
    - GDALRelationship*::GetCardinality
    - second::GetLeftTableName
    - OGRLayer*::GetFIDColumn
    - GDALRelationship*::GetType
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::ValidateRelationship(\n    const GDALRelationship
      *poRelationship, std::string &failureReason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 600
    functionName: OGRSQLiteBaseDataSource::OGRSQLiteBaseDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::OGRSQLiteBaseDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:609,1
    - Dst: OGRSQLiteBaseDataSource::FinishSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:611,1
    - Dst: GDALOpenInfoUnDeclareFileNotToOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:615,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:618,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:622,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:623,1
    - Dst: CPLCopyFile
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:624,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:624,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:626,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:628,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:631,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:632,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:634,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 640
    functionName: OGRSQLiteBaseDataSource::~OGRSQLiteBaseDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GDALOpenInfoUnDeclareFileNotToOpen
    - empty
    - CPLCopyFile
    - VSIUnlink
    - CPLDebug
    - OGRSQLiteBaseDataSource::FinishSpatialite
    - OGRSQLiteBaseDataSource::CloseDB
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::~OGRSQLiteBaseDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:651,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:659,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:660,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:661,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:662,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:662,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:664,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:666,1
    - Dst: sqlite3_file_control
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:673,1
    - Dst: sqlite3_file_control
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:678,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:682,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:687,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:695,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:698,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:700,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:703,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:703,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:705,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:715,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:716,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:717,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 722
    functionName: OGRSQLiteBaseDataSource::CloseDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_open
    - sqlite3_free_table
    - VSIStatL
    - sqlite3_vfs_unregister
    - CPLSPrintf
    - sqlite3_close
    - CPLDebug
    - sqlite3_get_table
    - sqlite3_file_control
    - STARTS_WITH
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::CloseDB()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:729,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:730,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:744,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:752,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:755,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:759,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:761,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:764,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pszPragma
    - pszExpected
    - nRowsExpected
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 771
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 771
    functionName: OGRSQLiteBaseDataSource::PragmaCheck
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - EQUAL
    - CPLAssert
    - sqlite3_free
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRSQLiteBaseDataSource::PragmaCheck(const char *pszPragma,\n
      \                                           const char *pszExpected,\n                                            int
      nRowsExpected)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:780,1
    - Dst: OGRSQLiteBaseDataSource::LoadRelationshipsFromForeignKeys
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 783
    functionName: OGRSQLiteBaseDataSource::LoadRelationships
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::LoadRelationshipsFromForeignKeys
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::LoadRelationships() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:809,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:814,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:818,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:828,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:828,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:832,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:836,1
    - Dst: std::ostringstream::str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:867,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:869,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:870,1
    - Dst: auto::second::GetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:875,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:876,1
    - Dst: auto::second::SetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:877,1
    - Dst: auto::second::GetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:879,1
    - Dst: auto::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:880,1
    - Dst: auto::second::SetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:881,1
    - Dst: GDALRelationship::GDALRelationship
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:886,1
    - Dst: std::unique_ptr::SetLeftTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:888,1
    - Dst: std::unique_ptr::SetRightTableFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:889,1
    - Dst: std::unique_ptr::SetRelatedTableType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:890,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:895,1
    - Dst: std::unique_ptr::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:897,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:902,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - excludedTables
    argTypes:
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 906
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 906
    functionName: OGRSQLiteBaseDataSource::LoadRelationshipsFromForeignKeys
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - std::unique_ptr::SetRightTableFields
    - CPLError
    - auto::second::GetLeftTableFields
    - std::string::c_str
    - std::string::empty
    - auto::RowCount
    - end
    - find
    - SQLQuery
    - auto::second::SetLeftTableFields
    - std::move
    - auto::emplace_back
    - std::unique_ptr::SetType
    - auto::second::SetRightTableFields
    - std::unique_ptr::SetLeftTableFields
    - auto::second::GetRightTableFields
    - std::unique_ptr::SetRelatedTableType
    - GDALRelationship::GDALRelationship
    - std::vector<std::string>::empty
    - EQUAL
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteBaseDataSource::LoadRelationshipsFromForeignKeys(\n
      \   const std::vector<std::string> &excludedTables) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:918,1
    - Dst: std::vector::reserve
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:922,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:922,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - CSLConstList papszOptions
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 928
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 928
    functionName: OGRSQLiteBaseDataSource::GetRelationshipNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - size
    - std::vector::emplace_back
    - OGRSQLiteBaseDataSource::LoadRelationships
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> OGRSQLiteBaseDataSource::GetRelationshipNames(\n
      \   CPL_UNUSED CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::LoadRelationships
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:940,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:943,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:944,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 948
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 948
    functionName: OGRSQLiteBaseDataSource::GetRelationship
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - auto::second::get
    - OGRSQLiteBaseDataSource::LoadRelationships
    linkageType: ''
    returnType: GDALRelationship
    signature: 'GDALRelationship *

      OGRSQLiteBaseDataSource::GetRelationship(const std::string &name) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:962,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:962,1
    - Dst: pfnQueryLoggerFunc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:963,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - db
    - zSql
    - nByte
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    constantsTouched: []
    func_position:
      end: 966
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 966
    functionName: OGRSQLiteBaseDataSource::prepareSql
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string::append
    - sqlite3_errmsg
    - pfnQueryLoggerFunc
    linkageType: ''
    returnType: int
    signature: "int OGRSQLiteBaseDataSource::prepareSql(sqlite3 *db, const char *zSql,\n
      \                                       int nByte, sqlite3_stmt **ppStmt,\n
      \                                       const char **pzTail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 980
    functionName: OGRSQLiteDataSource::OGRSQLiteDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::OGRSQLiteDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteDataSource::Close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: OGRSQLiteDataSource::~OGRSQLiteDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteDataSource::Close
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::~OGRSQLiteDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteDataSource::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1001,1
    - Dst: rl2_destroy_coverage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1007,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1010,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1015,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1015,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1019,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1021,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1025,1
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1028,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1031,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1031,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1032,1
    - Dst: OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1033,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1037,1
    - Dst: OGRSQLiteDataSource::SaveStatistics
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1040,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1042,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1043,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1045,1
    - Dst: CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1047,1
    - Dst: OGRSQLiteDataSource::FinishRasterLite2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1050,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1053,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1057
    functionName: OGRSQLiteDataSource::Close
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - size
    - SoftStartTransaction
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - empty
    - clear
    - ResetReading
    - CloseDB
    - get
    - OGRSQLiteDataSource::FinishRasterLite2
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - OGRSQLiteDataSource::SaveStatistics
    - SoftCommitTransaction
    - IsTableLayer
    - OGRSQLiteDataSource::FlushCache
    - OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
    - OGRAPISpyFileClose
    - rl2_destroy_coverage
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSQLiteDataSource::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1067,1
    - Dst: rl2_alloc_private
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1068,1
    - Dst: rl2_init
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1074
    functionName: OGRSQLiteDataSource::InitRasterLite2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - rl2_alloc_private
    - CPLAssert
    - rl2_init
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::InitRasterLite2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rl2_cleanup_private
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1087
    functionName: OGRSQLiteDataSource::FinishRasterLite2
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - rl2_cleanup_private
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::FinishRasterLite2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1097,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1098,1
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1105,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1108,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1108,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1124,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1128,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1137,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1138,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1139,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1141,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1151,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1158,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1167,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1169
    functionName: OGRSQLiteDataSource::SaveStatistics
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - auto::RowCount
    - IsSpatialiteLoaded
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - atoi
    - SQLCommand
    - get
    - CPLSPrintf
    - SQLQuery
    - strcmp
    - IsTableLayer
    - GetUpdate
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::SaveStatistics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1182,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1183,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1185,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1187,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1188,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1188,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1191,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1198
    functionName: OGRSQLiteBaseDataSource::SetSynchronous
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    - SQLCommand
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::SetSynchronous()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1214,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1217,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1222,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1228,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1232,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1238,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1240,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1242,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1244,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1250,1
    - Dst: sqlite3_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1257,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1260,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1264,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1267,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1271,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1271,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1283
    functionName: OGRSQLiteBaseDataSource::LoadExtensions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - CSLTokenizeString2
    - sqlite3_load_extension
    - EQUAL
    - sqlite3_db_config
    - CPL_IGNORE_RET_VAL
    - sqlite3_enable_load_extension
    - sqlite3_free
    - CPLError
    - CPLStringList::size
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteBaseDataSource::LoadExtensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1296,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1296,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1308,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1312
    functionName: OGRSQLiteBaseDataSource::SetCacheSize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - CPLSPrintf
    - atoi
    - SQLCommand
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::SetCacheSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteBaseDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pfnUserData
    - pszFilename
    - fp
    argTypes:
    - void*
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1324
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1324
    functionName: OGRSQLiteBaseDataSourceNotifyFileOpened
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OGRSQLiteBaseDataSource *>
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteBaseDataSourceNotifyFileOpened(void *pfnUserData,\n
      \                                                   const char *pszFilename,\n
      \                                                   VSILFILE *fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszFilename
    - fp
    argTypes:
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 1337
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1337
    functionName: OGRSQLiteBaseDataSource::NotifyFileOpened
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteBaseDataSource::NotifyFileOpened(const char *pszFilename,\n
      \                                              VSILFILE *fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1350
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1350
    functionName: OGRSQLiteDMA_Malloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OGRSQLiteDMA_Malloc(int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - old_ptr
    - size
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1359
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1359
    functionName: OGRSQLiteDMA_Realloc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void *OGRSQLiteDMA_Realloc(void *old_ptr, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1365,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1369
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1369
    functionName: OGRSQLiteDMA_Free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDMA_Free(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1380
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1380
    functionName: OGRSQLiteDMA_Size
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDMA_Size(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1385
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1385
    functionName: OGRSQLiteDMA_Roundup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDMA_Roundup(int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1390
    functionName: OGRSQLiteDMA_Init
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDMA_Init(void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1394
    functionName: OGRSQLiteDMA_Shutdown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDMA_Shutdown(void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1413,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1413,1
    - Dst: sqlite3_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1414,1
    - Dst: OGR2SQLITE_Register
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1418,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1431,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1433,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1440,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1441,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1443,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1445,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1447,1
    - Dst: CPLString::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1450,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1463,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1469,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1481,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1481,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1482,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1482,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1493,1
    - Dst: OGRSQLiteCreateVFS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1498,1
    - Dst: sqlite3_vfs_register
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1499,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1504,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1509,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1511,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1512,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1523,1
    - Dst: sqlite3_db_config
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1527,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1530,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1534,1
    - Dst: sqlite3_file_control
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1541,1
    - Dst: sqlite3_file_control
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1546,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1549,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1553,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1564,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1566,1
    - Dst: CPLString::Trim
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1572,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1577,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1582,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1583,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1585,1
    - Dst: sqlite3_busy_timeout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1591,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1591,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1599,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1606,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1610,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1614,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1616,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1630,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1630,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1632,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1655,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1659,1
    - Dst: VSIFReadL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1660,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1662,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1671,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1678,1
    - Dst: OGRSQLiteBaseDataSource::CloseDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1679,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1680,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1682,1
    - Dst: OGRSQLiteBaseDataSource::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1683,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1689,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1706,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1708,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1712,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1716,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1719,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1733,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1734,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1737,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1744,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1744,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1749,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1754,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1755,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1764,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1764,1
    - Dst: OGRSQLiteBaseDataSource::SetCacheSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1768,1
    - Dst: OGRSQLiteBaseDataSource::SetSynchronous
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1769,1
    - Dst: OGRSQLiteBaseDataSource::LoadExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1771,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 151
    argCount: 3
    argNames:
    - flagsIn
    - bRegisterOGR2SQLiteExtensions
    - bLoadExtensions
    argTypes:
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1774
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1774
    functionName: OGRSQLiteBaseDataSource::OpenOrCreateDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - SQLGetInteger
    - OGRSQLiteCreateVFS
    - atoi
    - sqlite3_busy_timeout
    - sqlite3_close
    - CPLDebug
    - OGRSQLiteBaseDataSource::SetCacheSize
    - OGRSQLiteBaseDataSource::CloseDB
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - OGRSQLiteBaseDataSource::SetSynchronous
    - CPLString::empty
    - sqlite3_free_table
    - find
    - CPLString::size
    - CPLString::Trim
    - CPLTestBool
    - c_str
    - STARTS_WITH_CI
    - sqlite3_config
    - VSIFSeekL
    - CPLString::replaceAll
    - CPLAssert
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - sqlite3_errmsg
    - VSIFReadL
    - sqlite3_exec
    - OGR2SQLITE_Register
    - back
    - empty
    - VSIFCloseL
    - OGRSQLiteBaseDataSource::LoadExtensions
    - sqlite3_vfs_register
    - CSLDestroy
    - OGRSQLiteBaseDataSource::OpenOrCreateDB
    - EQUAL
    - sqlite3_get_table
    - sqlite3_db_config
    - sqlite3_free
    - sqlite3_file_control
    - CSLSetNameValue
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteBaseDataSource::OpenOrCreateDB(int flagsIn,\n                                             bool
      bRegisterOGR2SQLiteExtensions,\n                                             bool
      bLoadExtensions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1789,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1799,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1799,1
    - Dst: InitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1803,1
    - Dst: OGR2SQLITE_Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1805,1
    - Dst: LoadExtensions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1812,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - flagsIn
    - bRegisterOGR2SQLiteExtensions
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1823
      start: 1780
    functionDepth: 3
    functionLinenumber: 1780
    functionLinenumberEnd: 1823
    functionName: OGRSQLiteDataSource::OpenOrCreateDB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - OGR2SQLITE_Setup
    - LoadExtensions
    - SQLCommand
    - OGRSQLiteBaseDataSource::OpenOrCreateDB
    - CPLGetConfigOption
    - InitSpatialite
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::OpenOrCreateDB(int flagsIn,\n                                         bool
      bRegisterOGR2SQLiteExtensions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1835,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1837,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1841,1
    - Dst: SpatialiteRequiresTrustedSchemaOn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1841,1
    - Dst: AreSpatialiteTriggersSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1842,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1844,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1849
    functionName: OGRSQLiteDataSource::PostInitSpatialite
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - SQLGetInteger
    - IsSpatialiteLoaded
    - SQLCommand
    - CPLDebug
    - AreSpatialiteTriggersSafe
    - SpatialiteRequiresTrustedSchemaOn
    - strstr
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::PostInitSpatialite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1859,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1865
    functionName: OGRSQLiteBaseDataSource::SpatialiteRequiresTrustedSchemaOn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber
    - MakeSpatialiteVersionNumber
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::SpatialiteRequiresTrustedSchemaOn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1875,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1876,1
    - Dst: SQLGetInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1871
    functionDepth: 2
    functionLinenumber: 1871
    functionLinenumberEnd: 1881
    functionName: OGRSQLiteBaseDataSource::AreSpatialiteTriggersSafe
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::GetSpatialiteVersionNumber
    - SQLGetInteger
    - MakeSpatialiteVersionNumber
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::AreSpatialiteTriggersSafe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: OGRSQLiteBaseDataSource::GetInternalHandle
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: void
    signature: void *OGRSQLiteBaseDataSource::GetInternalHandle(const char *pszKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1914,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1915,1
    - Dst: CPLGetFilename
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1915,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1916,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1920,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1933,1
    - Dst: OGRSQLiteDataSource::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1947,1
    - Dst: InitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1955,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1957,1
    - Dst: OGRSQLiteDataSource::PostInitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1963,1
    - Dst: OGRSQLiteDataSource::InitRasterLite2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1966,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1980,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1981,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:1984,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2000,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2011,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2034,1
    - Dst: OGRSQLiteDataSource::InitWithEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2036,1
    - Dst: OGRSQLiteDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2041,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 2
    argNames:
    - pszNameIn
    - papszOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2042
      start: 1899
    functionDepth: 4
    functionLinenumber: 1899
    functionLinenumberEnd: 2042
    functionName: OGRSQLiteDataSource::Create
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLStrdup
    - CPLGetFilename
    - SQLCommand
    - OGRSQLiteDataSource::OpenOrCreateDB
    - CPLFetchBool
    - OGRSQLiteDataSource::InitWithEPSG
    - CPLDebug
    - OGRSQLiteDataSource::PostInitSpatialite
    - OGRSQLiteDataSource::Open
    - CPLError
    - MakeSpatialiteVersionNumber
    - InitSpatialite
    - OGRSQLiteDataSource::InitRasterLite2
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::Create(const char *pszNameIn, char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2059,1
    - Dst: SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2063,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2066,1
    - Dst: proj_get_codes_from_database
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2070,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2071,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2077,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2078,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2079,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2085,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2086,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2090,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2092,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2096,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2102,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2110,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2117,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2128,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2134,1
    - Dst: prepareSql
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2142,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2147,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2150,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2157,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2164,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2171,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2177,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2181,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2183,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2185,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2186,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2187,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2192,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2195,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2196,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2201,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2203,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2206,1
    - Dst: prepareSql
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2212,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2215,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2219,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2223,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2225,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2227,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2228,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2233,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2236,1
    - Dst: proj_string_list_destroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2240,1
    - Dst: SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2245,1
    - Dst: SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2251,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2048
    functionDepth: 7
    functionLinenumber: 2048
    functionLinenumberEnd: 2254
    functionName: OGRSQLiteDataSource::InitWithEPSG
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - prepareSql
    - sqlite3_finalize
    - CPLError
    - MakeSpatialiteVersionNumber
    - SoftStartTransaction
    - OGRSpatialReference::GetAttrValue
    - CPLPopErrorHandler
    - proj_string_list_destroy
    - sqlite3_bind_text
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::exportToProj4
    - CPLString::Printf
    - SoftRollbackTransaction
    - proj_get_codes_from_database
    - sqlite3_errmsg
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - SoftCommitTransaction
    - sqlite3_step
    - CPLPushErrorHandler
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::InitWithEPSG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2262,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2265,1
    - Dst: OGRSQLiteDataSource::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2267
    functionName: OGRSQLiteDataSource::ReloadLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - GetUpdate
    - OGRSQLiteDataSource::Open
    - clear
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::ReloadLayers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2277,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2277,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2280,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2285,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2290,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2292,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2295,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2295,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2296,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2300,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2302,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2302,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2306,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2308,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2309,1
    - Dst: GDALOpenInfoDeclareFileNotToOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2313,1
    - Dst: SetPhysicalFilename
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2319,1
    - Dst: VSIStatL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2322,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2329,1
    - Dst: CSLDuplicate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2330,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2365,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2366,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2368,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2369,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2371,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2372,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2376,1
    - Dst: InitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2383,1
    - Dst: OGRSQLiteDataSource::PostInitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2385,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2388,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2390,1
    - Dst: STARTS_WITH
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2392,1
    - Dst: SQLCheckLineIsSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2395,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2399,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2404,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2408,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2419,1
    - Dst: OGRSQLiteDataSource::OpenOrCreateDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2422,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2422,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2427,1
    - Dst: InitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2433,1
    - Dst: OGRSQLiteDataSource::PostInitSpatialite
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2435,1
    - Dst: OGRSQLiteDataSource::InitRasterLite2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2438,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2443,1
    - Dst: OGRSQLiteDataSource::OpenRasterSubDataset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2446,1
    - Dst: CPLHashSetNew
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2455,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2471,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2484,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2485,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2496,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2502,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2503,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2504,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2510,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2510,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2513,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2522,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2539,1
    - Dst: OGRSQLiteDataSource::OpenVirtualTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2541,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2544,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2544,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2550,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2552,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2555,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2561,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2576,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2577,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2588,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2589,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2613,1
    - Dst: GetSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2615,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2617,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2619,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2624,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2625,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2629,1
    - Dst: MakeSpatialiteVersionNumber
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2630,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2632,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2639,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2640,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2645,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2656,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2661,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2667,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2679,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2679,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2681,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2681,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2686,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2699,1
    - Dst: insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2704,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2705,1
    - Dst: cpl::contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2716,1
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2721,1
    - Dst: OGRSQLiteDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2722,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2725,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2725,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2728,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2737,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2753,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2753,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2754,1
    - Dst: strstr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2755,1
    - Dst: OGRSQLiteDataSource::OpenVirtualTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2757,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2760,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2766,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2768,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2771,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2780,1
    - Dst: OGRSQLiteDataSource::OpenView
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2802,1
    - Dst: CPLHashSetInsert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2806,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2806,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2808,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2814,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2830,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2833,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2845,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2847,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2848,1
    - Dst: CPLHashSetLookup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2857,1
    - Dst: OGRSQLiteDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2861,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2866,1
    - Dst: CPLHashSetDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2867,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 253
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2877
      start: 2273
    functionDepth: 4
    functionLinenumber: 2273
    functionLinenumberEnd: 2877
    functionName: OGRSQLiteDataSource::Open
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - IsSpatialiteLoaded
    - std::set::insert
    - CPLDebug
    - OGRSQLiteDataSource::OpenTable
    - CPLString
    - CPLError
    - MakeSpatialiteVersionNumber
    - STARTS_WITH
    - cpl::contains
    - GetSpatialiteVersionNumber
    - GDALDataset::GetLayerByName
    - sqlite3_free_table
    - CPLStrdup
    - insert
    - strlen
    - sqlite3_open_v2
    - CSLCount
    - GetUpdate
    - InitSpatialite
    - OGRSQLiteDataSource::OpenRasterSubDataset
    - CPLHashSetNew
    - CPLHashSetInsert
    - STARTS_WITH_CI
    - SQLCheckLineIsSafe
    - reinterpret_cast<const char *>
    - CPLHashSetDestroy
    - OGRSQLiteDataSource::OpenVirtualTable
    - OGRSQLiteDataSource::OpenOrCreateDB
    - VSIFSeekL
    - OGRSQLiteDataSource::OpenView
    - OGRSQLiteDataSource::PostInitSpatialite
    - CPLAssert
    - VSIFOpenL
    - CPLHashSetLookup
    - strstr
    - SetPhysicalFilename
    - SetDescription
    - sqlite3_exec
    - CPLReadLineL
    - empty
    - VSIStatL
    - VSIFCloseL
    - CSLDestroy
    - OGRSQLiteDataSource::InitRasterLite2
    - CSLDuplicate
    - sqlite3_get_table
    - sqlite3_free
    - GDALOpenInfoDeclareFileNotToOpen
    - SQLUnescape
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2898,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2900,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2902,1
    - Dst: OGRSQLiteDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2906,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2909,1
    - Dst: OGRSQLiteLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2910,1
    - Dst: OGRSQLiteLayer*::myGetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2913,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2918,1
    - Dst: OGRSQLiteDataSource::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2918,1
    - Dst: OGRSQLiteLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2922,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2925,1
    - Dst: whileUnsealing
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2927,1
    - Dst: OGRSQLiteLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2927,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2928,1
    - Dst: OGRSQLiteLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2931,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - pszName
    - pszSQL
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2936
      start: 2883
    functionDepth: 1
    functionLinenumber: 2883
    functionLinenumberEnd: 2936
    functionName: OGRSQLiteDataSource::OpenVirtualTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteGeomFieldDefn*::SetSpatialRef
    - back
    - atoi
    - CSLDestroy
    - OGRGeometry*::getGeometryType
    - OGRSQLiteDataSource::OpenTable
    - CSLCount
    - OGRSQLiteLayer*::GetNextFeature
    - OGRSQLiteDataSource::FetchSRS
    - whileUnsealing
    - OGRSQLiteLayer*::myGetLayerDefn
    - OGRSQLiteLayer*::GetLayerDefn
    - OGRSQLiteLayer*::ResetReading
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::OpenVirtualTable(const char *pszName,\n
      \                                          const char *pszSQL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRSQLiteTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2949,1
    - Dst: auto::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2950,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2959,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2959,1
    - Dst: DealWithOgrSchemaOpenOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2962,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pszTableName
    - bIsTable
    - bIsVirtualShape
    - bMayEmitError
    argTypes:
    - char*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2969
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2969
    functionName: OGRSQLiteDataSource::OpenTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - DealWithOgrSchemaOpenOption
    - std::make_unique<OGRSQLiteTableLayer>
    - std::move
    - push_back
    - auto::Initialize
    - pop_back
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::OpenTable(const char *pszTableName, bool
      bIsTable,\n                                    bool bIsVirtualShape, bool bMayEmitError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OGRSQLiteViewLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2985,1
    - Dst: auto::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2987,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2996,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:2996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - pszViewName
    - pszViewGeometry
    - pszViewRowid
    - pszTableName
    - pszGeometryColumn
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2999
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 2999
    functionName: OGRSQLiteDataSource::OpenView
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - std::make_unique<OGRSQLiteViewLayer>
    - push_back
    - auto::Initialize
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::OpenView(const char *pszViewName,\n                                   const
      char *pszViewGeometry,\n                                   const char *pszViewRowid,\n
      \                                  const char *pszTableName,\n                                   const
      char *pszGeometryColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3008,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3008,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3009,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3010,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3011,1
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3012,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3013,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3015,1
    - Dst: OGRSQLiteBaseDataSource::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3018,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3019
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3019
    functionName: OGRSQLiteDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRSQLiteBaseDataSource::TestCapability
    - GetUpdate
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3027,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3029,1
    - Dst: OGRAPISpy_L_TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3033
      start: 3025
    functionDepth: 4
    functionLinenumber: 3025
    functionLinenumberEnd: 3033
    functionName: OGRSQLiteBaseDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - OGRAPISpy_L_TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteBaseDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3042,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3042,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3046
      start: 3039
    functionDepth: 0
    functionLinenumber: 3039
    functionLinenumberEnd: 3046
    functionName: OGRSQLiteDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - static_cast<int>
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRSQLiteDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3055,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3061,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3061,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3062,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3075,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3075,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3078,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3079,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3080,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3083,1
    - Dst: std::string::back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3084,1
    - Dst: std::string::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3086,1
    - Dst: OGRSQLiteDataSource::OpenTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3093,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3097,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3098,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3099,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3100,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3101,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3102,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3104,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3105,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3110
      start: 3052
    functionDepth: 2
    functionLinenumber: 3052
    functionLinenumberEnd: 3110
    functionName: OGRSQLiteDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteDataSource::OpenTable
    - strcmp
    - GDALDataset::GetLayerByName
    - sqlite3_free_table
    - CPLErrorReset
    - std::string::find
    - CPLPopErrorHandler
    - OGRLayer*::GetLayerDefn
    - GetName
    - std::string::back
    - get
    - std::string::resize
    - CPL_IGNORE_RET_VAL
    - back
    - EQUAL
    - sqlite3_get_table
    - sqlite3_free
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - pop_back
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRSQLiteDataSource::GetLayerByName(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3118,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3118,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3121,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3169
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3169
    functionName: OGRSQLiteDataSource::IsLayerPrivate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLString
    - static_cast<int>
    - GetName
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::IsLayerPrivate(int iLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3180,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3187,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3187,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3188,1
    - Dst: std::make_unique<OGRSQLiteTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3194,1
    - Dst: auto::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3195,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3200,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3201,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3202,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3203,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3204,1
    - Dst: CPLErrorReset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3206,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3209,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3209,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3212
      start: 3175
    functionDepth: 1
    functionLinenumber: 3175
    functionLinenumberEnd: 3212
    functionName: OGRSQLiteDataSource::GetLayerByNameNotVisible
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetLayerByName
    - auto::GetLayerDefn
    - CPLErrorReset
    - back
    - get
    - EQUAL
    - std::make_unique<OGRSQLiteTableLayer>
    - CPLPopErrorHandler
    - std::move
    - auto::Initialize
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - push_back
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: 'OGRLayer *

      OGRSQLiteDataSource::GetLayerByNameNotVisible(const char *pszLayerName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRSQLiteLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3222,1
    - Dst: OGRSQLiteDataSource::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3222,1
    - Dst: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3224
      start: 3218
    functionDepth: 3
    functionLinenumber: 3218
    functionLinenumberEnd: 3224
    functionName: OGRSQLiteDataSource::GetLayerWithGetSpatialWhereByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRSQLiteLayer *>
    - std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *>
    - OGRSQLiteDataSource::GetLayerByName
    linkageType: ''
    returnType: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *>
    signature: std::pair<OGRLayer *, IOGRSQLiteGetSpatialWhere *> OGRSQLiteDataSource::GetLayerWithGetSpatialWhereByName(const
      char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3235,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3238,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3238,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3239,1
    - Dst: OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3241,1
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3247
      start: 3230
    functionDepth: 1
    functionLinenumber: 3230
    functionLinenumberEnd: 3247
    functionName: OGRSQLiteDataSource::FlushCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - GDALDataset::FlushCache
    - get
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - IsTableLayer
    - OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSQLiteDataSource::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3268,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3271,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3271,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3272,1
    - Dst: OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3273,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3277,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3278,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3280,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3281,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3281,1
    - Dst: GDALDataset::ExecuteSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3283,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3286,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3288,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3289,1
    - Dst: OGR2SQLITE_SetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3292,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3294,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3295,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3296,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3297,1
    - Dst: OGR2SQLITE_SetCaseSensitiveLike
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3300,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3306,1
    - Dst: OGRSQLiteDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3313,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3320,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3323,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3326,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3335,1
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3340,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3343,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3343,1
    - Dst: OGRSQLiteTableLayer*::AreStatisticsValid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3344,1
    - Dst: OGRSQLiteTableLayer*::DoStatisticsNeedToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3345,1
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3358,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3361,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3361,1
    - Dst: OGRSQLiteTableLayer*::ForceStatisticsToBeFlushed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3362,1
    - Dst: ProcessTransactionSQL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3367,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3371,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3372,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3373,1
    - Dst: InvalidateCachedFeatureCountAndExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3376,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3380,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3395,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3396,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3396,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3398,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3399,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3400,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3405,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3416,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3418,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3418,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3418,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3422,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3431,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3436,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3438,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3438,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3438,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3440,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3444,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3447,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3448,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3449,1
    - Dst: OGRSQLiteDataSource::OpenVirtualTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3451,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3453,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3455,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3459,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3461,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3473,1
    - Dst: EQUALN
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3479,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3480,1
    - Dst: sqlite3_column_count
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3482,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3483,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3487,1
    - Dst: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3489,1
    - Dst: OGRSQLiteSelectLayer::OGRSQLiteSelectLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3501,1
    - Dst: OGRSQLiteSelectLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3506,1
    - Dst: OGRSQLiteSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3507,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 100
    argCount: 3
    argNames:
    - pszSQLCommand
    - poSpatialFilter
    - pszDialect
    argTypes:
    - char*
    - OGRGeometry*
    - char*
    constantsTouched: []
    func_position:
      end: 3510
      start: 3261
    functionDepth: 3
    functionLinenumber: 3261
    functionLinenumberEnd: 3510
    functionName: OGRSQLiteDataSource::ExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - InvalidateCachedFeatureCountAndExtent
    - OGRSQLiteDataSource::DeleteLayer
    - ProcessTransactionSQL
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - strcmp
    - CPLString::ifind
    - CPLString
    - sqlite3_finalize
    - CPLError
    - EQUALN
    - CPLString::resize
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - sqlite3_column_type
    - CPLString::substr
    - GetDB
    - OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
    - CPLString::c_str
    - strlen
    - CSLCount
    - OGRSQLiteTableLayer*::AreStatisticsValid
    - OGR2SQLITE_SetCaseSensitiveLike
    - sqlite3_column_count
    - STARTS_WITH_CI
    - OGRSQLiteDataSource::OpenVirtualTable
    - get
    - OGRSQLiteSelectLayer*::SetSpatialFilter
    - OGRSQLiteTableLayer*::ForceStatisticsToBeFlushed
    - OGRSQLiteTableLayer*::CreateSpatialIndexIfNecessary
    - sqlite3_errmsg
    - OGRSQLiteSelectLayer::OGRSQLiteSelectLayer
    - OGRSQLiteSelectLayer*::GetLayerDefn
    - CSLDestroy
    - OGRSQLiteTableLayer*::DoStatisticsNeedToBeFlushed
    - EQUAL
    - GDALDataset::ExecuteSQL
    - IsTableLayer
    - sqlite3_step
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRSQLiteDataSource::ExecuteSQL(const char *pszSQLCommand,\n
      \                                         OGRGeometry *poSpatialFilter,\n                                          const
      char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 3520
      start: 3516
    functionDepth: 0
    functionLinenumber: 3516
    functionLinenumberEnd: 3520
    functionName: OGRSQLiteDataSource::ReleaseResultSet
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::ReleaseResultSet(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3536,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3538,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3546,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3548,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3554,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3557,1
    - Dst: OGRToOGCGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3559,1
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3566,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3569,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3569,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3570,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3577,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3581,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3586,1
    - Dst: OGRSQLiteDataSource::LaunderName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3587,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3589,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3600,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3600,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3601,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3603,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3605,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3615,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3619,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3623,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3629,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3631,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3634,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3640,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3642,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3645,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3655,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3655,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3657,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3658,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3658,1
    - Dst: OGRSQLiteDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3660,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3665,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3670,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3685,1
    - Dst: OGRSQLiteDataSource::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3688,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3691,1
    - Dst: OGRSQLiteDataSource::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3699,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3707,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3708,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3709,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3711,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3719,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3724,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3728,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3737,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3738,1
    - Dst: std::make_unique<OGRSQLiteTableLayer>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3746,1
    - Dst: auto::Initialize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3748,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3753,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3754,1
    - Dst: auto::SetCreationParameters
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3756,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3759,1
    - Dst: auto::InitFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3761,1
    - Dst: auto::SetLaunderFlag
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3762,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3762,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3763,1
    - Dst: auto::SetUseCompressGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3764,1
    - Dst: auto::CreateSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3766,1
    - Dst: auto::SetDeferredSpatialIndexCreation
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3768,1
    - Dst: auto::SetCompressedColumns
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3769,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3770,1
    - Dst: auto::SetStrictFlag
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3771,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3771,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3773,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3778,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3778,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3780,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 113
    argCount: 3
    argNames:
    - pszLayerNameIn
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3781
      start: 3526
    functionDepth: 2
    functionLinenumber: 3526
    functionLinenumberEnd: 3781
    functionName: OGRSQLiteDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - IsSpatialiteLoaded
    - atoi
    - auto::InitFeatureCount
    - OGRSQLiteDataSource::DeleteLayer
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - OGRSQLiteDataSource::FetchSRSId
    - OGRSpatialReference*::Release
    - auto::SetCompressedColumns
    - auto::SetUseCompressGeom
    - CPLError
    - OGRSQLiteDataSource::FetchSRS
    - CSLFetchNameValue
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - OGRSpatialReference*::SetAxisMappingStrategy
    - auto::CreateSpatialIndex
    - CPLStrdup
    - auto::Clone
    - OGRToOGCGeomType
    - auto::Initialize
    - std::move
    - wkbFlatten
    - GetUpdate
    - auto::SetDeferredSpatialIndexCreation
    - OGRSQLiteDataSource::LaunderName
    - GetLayerDefn
    - CPLTestBool
    - CPLFetchBool
    - OGRGeomFieldDefn*::GetType
    - get
    - auto::SetStrictFlag
    - auto::SetLaunderFlag
    - CPLFree
    - back
    - EQUAL
    - std::make_unique<OGRSQLiteTableLayer>
    - IsTableLayer
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - auto::SetCreationParameters
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRSQLiteDataSource::ICreateLayer(const char *pszLayerNameIn,\n
      \                                 const OGRGeomFieldDefn *poGeomFieldDefn,\n
      \                                 CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3793,1
    - Dst: CPLTolower
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3794,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pszSrcName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3801
      start: 3787
    functionDepth: 1
    functionLinenumber: 3787
    functionLinenumberEnd: 3801
    functionName: OGRSQLiteDataSource::LaunderName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLTolower
    - static_cast<char>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: char
    signature: char *OGRSQLiteDataSource::LaunderName(const char *pszSrcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUpdate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3813,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3815,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3828,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3828,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3830,1
    - Dst: GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3830,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3834,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3834,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3836,1
    - Dst: OGRSQLiteDataSource::DeleteLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pszLayerName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3844
      start: 3807
    functionDepth: 1
    functionLinenumber: 3807
    functionLinenumberEnd: 3844
    functionName: OGRSQLiteDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 3
    functionsReached:
    - size
    - GetLayerDefn
    - static_cast<int>
    - OGRSQLiteDataSource::DeleteLayer
    - EQUAL
    - CPLError
    - GetUpdate
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::DeleteLayer(const char *pszLayerName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3852,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3854,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3856,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3856,1
    - Dst: OGRSQLiteDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3860,1
    - Dst: OGRSQLiteDataSource::GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3861,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3867,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3867,1
    - Dst: erase
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3869,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3869,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3874,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3879,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3879,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3892,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3896,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3908,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3909,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3910,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3911,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3913,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3914,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3915,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3916,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3918,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3920,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3921,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3922,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3924,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3926,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3927,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3928,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3932
      start: 3850
    functionDepth: 1
    functionLinenumber: 3850
    functionLinenumberEnd: 3932
    functionName: OGRSQLiteDataSource::DeleteLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 3
    functionsReached:
    - size
    - OGRSQLiteDataSource::GetLayer
    - erase
    - static_cast<int>
    - SQLCommand
    - CPLString::Printf
    - CPLDebug
    - CPLSPrintf
    - CPLString::c_str
    - begin
    - SQLEscapeLiteral
    - CPL_IGNORE_RET_VAL
    - CPLError
    - sqlite3_exec
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteDataSource::DeleteLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3944,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3950,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3952,1
    - Dst: OGRSQLiteBaseDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 3963
      start: 3940
    functionDepth: 1
    functionLinenumber: 3940
    functionLinenumberEnd: 3963
    functionName: OGRSQLiteBaseDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - size
    - OGRSQLiteBaseDataSource::SoftStartTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::StartTransaction(CPL_UNUSED int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3969,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3972,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3972,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3973,1
    - Dst: OGRSQLiteBaseDataSource::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3978
      start: 3965
    functionDepth: 2
    functionLinenumber: 3965
    functionLinenumberEnd: 3978
    functionName: OGRSQLiteDataSource::StartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - get
    - OGRSQLiteBaseDataSource::StartTransaction
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - IsTableLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteDataSource::StartTransaction(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3990,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3996,1
    - Dst: OGRSQLiteBaseDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:3997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3998
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 3998
    functionName: OGRSQLiteBaseDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLAssert
    - OGRSQLiteBaseDataSource::SoftCommitTransaction
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4007,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4010,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4010,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4011,1
    - Dst: OGRSQLiteBaseDataSource::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 4000
    functionDepth: 2
    functionLinenumber: 4000
    functionLinenumberEnd: 4017
    functionName: OGRSQLiteDataSource::CommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - get
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - OGRSQLiteBaseDataSource::CommitTransaction
    - IsTableLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteDataSource::CommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4029,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4034,1
    - Dst: OGRSQLiteBaseDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4025
    functionDepth: 1
    functionLinenumber: 4025
    functionLinenumberEnd: 4037
    functionName: OGRSQLiteBaseDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - OGRSQLiteBaseDataSource::SoftRollbackTransaction
    - CPLAssert
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4046,1
    - Dst: cpl::down_cast<OGRSQLiteTableLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4049,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4049,1
    - Dst: OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4050,1
    - Dst: InvalidateCachedFeatureCountAndExtent
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4056,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4057,1
    - Dst: OGRSQLiteBaseDataSource::RollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4039
    functionDepth: 2
    functionLinenumber: 4039
    functionLinenumberEnd: 4062
    functionName: OGRSQLiteDataSource::RollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<OGRSQLiteTableLayer *>
    - InvalidateCachedFeatureCountAndExtent
    - ResetReading
    - get
    - OGRSQLiteTableLayer*::RunDeferredCreationIfNecessary
    - OGRSQLiteBaseDataSource::RollbackTransaction
    - IsTableLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteDataSource::RollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4064
    functionDepth: 0
    functionLinenumber: 4064
    functionLinenumberEnd: 4067
    functionName: OGRSQLiteBaseDataSource::IsInTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteBaseDataSource::IsInTransaction() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4085,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4087,1
    - Dst: OGRLayer*::PrepareStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4088,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4077
    functionDepth: 1
    functionLinenumber: 4077
    functionLinenumberEnd: 4098
    functionName: OGRSQLiteBaseDataSource::SoftStartTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRLayer*::PrepareStartTransaction
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - GetLayer
    - GetLayerCount
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::SoftStartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4115,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4107
    functionDepth: 1
    functionLinenumber: 4107
    functionLinenumberEnd: 4127
    functionName: OGRSQLiteBaseDataSource::SoftCommitTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - CPLAssert
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::SoftCommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4142,1
    - Dst: OGRSQLiteBaseDataSource::RollbackToSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4144,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4144,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4148,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4153,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4161,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4164,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4166,1
    - Dst: OGRLayer*::FinishRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4173
    functionName: OGRSQLiteBaseDataSource::SoftRollbackTransaction
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - back
    - empty
    - GetLayerCount
    - OGRLayer*::FinishRollbackTransaction
    - CPLAssert
    - OGRSQLiteBaseDataSource::RollbackToSavepoint
    - pop_back
    - GetLayer
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::SoftRollbackTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteBaseDataSource::IsInTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4179,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4183,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4185,1
    - Dst: OGRLayer*::PrepareStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4186,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4191,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4191,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 4199
      start: 4175
    functionDepth: 1
    functionLinenumber: 4175
    functionLinenumberEnd: 4199
    functionName: OGRSQLiteBaseDataSource::StartSavepoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - GetLayerCount
    - OGRLayer*::PrepareStartTransaction
    - push_back
    - OGRSQLiteBaseDataSource::IsInTransaction
    - GetLayer
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::StartSavepoint(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4203,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4204,1
    - Dst: cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4204,1
    - Dst: cend
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4204,1
    - Dst: cend
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4205,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4207,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4208,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4213,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4213,1
    - Dst: front
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4220,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4225,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4230,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4230,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4232,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4234,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 4241
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4241
    functionName: OGRSQLiteBaseDataSource::ReleaseSavepoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - back
    - pop_back
    - empty
    - front
    - cend
    - cbegin
    - std::find
    - CPLError
    - std::string::c_str
    - clear
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::ReleaseSavepoint(const std::string
      &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4245,1
    - Dst: std::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4246,1
    - Dst: cbegin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4246,1
    - Dst: cend
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4246,1
    - Dst: cend
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4247,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4249,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4250,1
    - Dst: OGRSQLiteBaseDataSource::DoTransactionCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4255,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4255,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4262,1
    - Dst: back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4262,1
    - Dst: pop_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4264,1
    - Dst: GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4268,1
    - Dst: GetLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4270,1
    - Dst: OGRLayer*::FinishRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 4275
      start: 4243
    functionDepth: 1
    functionLinenumber: 4243
    functionLinenumberEnd: 4275
    functionName: OGRSQLiteBaseDataSource::RollbackToSavepoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteBaseDataSource::DoTransactionCommand
    - back
    - pop_back
    - empty
    - GetLayerCount
    - cend
    - OGRLayer*::FinishRollbackTransaction
    - cbegin
    - std::find
    - CPLError
    - GetLayer
    - std::string::c_str
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::RollbackToSavepoint(const std::string
      &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4285,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4285,1
    - Dst: OGRSQLiteBaseDataSource::SoftStartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4287,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4289,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4289,1
    - Dst: OGRSQLiteBaseDataSource::SoftCommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4291,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4293,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4293,1
    - Dst: OGRSQLiteBaseDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4295,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4297,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4297,1
    - Dst: SQLTokenize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4299,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4299,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4300,1
    - Dst: OGRSQLiteBaseDataSource::StartSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4303,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4310,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4310,1
    - Dst: SQLTokenize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4312,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4312,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4313,1
    - Dst: OGRSQLiteBaseDataSource::ReleaseSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4316,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4318,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4318,1
    - Dst: OGRSQLiteBaseDataSource::ReleaseSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4321,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4328,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4328,1
    - Dst: SQLTokenize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4330,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4330,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4331,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4333,1
    - Dst: OGRSQLiteBaseDataSource::SoftRollbackTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4335,1
    - Dst: OGRSQLiteBaseDataSource::RollbackToSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4340,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4343,1
    - Dst: OGRSQLiteBaseDataSource::RollbackToSavepoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - osSQLCommand
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 4355
      start: 4280
    functionDepth: 2
    functionLinenumber: 4280
    functionLinenumberEnd: 4355
    functionName: OGRSQLiteBaseDataSource::ProcessTransactionSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource::SoftRollbackTransaction
    - STARTS_WITH_CI
    - OGRSQLiteBaseDataSource::ReleaseSavepoint
    - OGRSQLiteBaseDataSource::SoftCommitTransaction
    - OGRSQLiteBaseDataSource::SoftStartTransaction
    - OGRSQLiteBaseDataSource::StartSavepoint
    - EQUAL
    - OGRSQLiteBaseDataSource::RollbackToSavepoint
    - CPLStringList::size
    - std::string::c_str
    - SQLTokenize
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteBaseDataSource::ProcessTransactionSQL(\n    const std::string
      &osSQLCommand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4365,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszCommand
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4369
      start: 4361
    functionDepth: 1
    functionLinenumber: 4361
    functionLinenumberEnd: 4369
    functionName: OGRSQLiteBaseDataSource::DoTransactionCommand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 6
    functionsReached:
    - CPLDebug
    - SQLCommand
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::DoTransactionCommand(const char *pszCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4394,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4397,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4375
    functionDepth: 0
    functionLinenumber: 4375
    functionLinenumberEnd: 4405
    functionName: OGRSQLiteDataSource::GetSRTEXTColName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - sqlite3_free
    - sqlite3_free_table
    linkageType: ''
    returnType: char
    signature: char *OGRSQLiteDataSource::GetSRTEXTColName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4421,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4421,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - nId
    - poSRS
    argTypes:
    - int
    - std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
    constantsTouched: []
    func_position:
      end: 4423
      start: 4414
    functionDepth: 0
    functionLinenumber: 4414
    functionLinenumberEnd: 4423
    functionName: OGRSQLiteDataSource::AddSRIDToCache
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - emplace
    - std::move
    - auto::second::get
    linkageType: ''
    returnType: OGRSpatialReference
    signature: "OGRSpatialReference *OGRSQLiteDataSource::AddSRIDToCache(\n    int
      nId,\n    std::unique_ptr<OGRSpatialReference, OGRSpatialReferenceReleaser>
      &&poSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4444,1
    - Dst: second::IsSame
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4449,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4462,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4469,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4471,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4472,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4474,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4475,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4478,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4478,1
    - Dst: OGRSpatialReference::GetAuthorityName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4480,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4481,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4496,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4498,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4500,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4506,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4518,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4520,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4524,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4530,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4533,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4536,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4538,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4543,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4548,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4555,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4557,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4564,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4564,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4567,1
    - Dst: OGRSQLiteDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4570,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4570,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4575,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4591,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4593,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4598,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4610,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4612,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4627,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4629,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4634,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4642,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4650,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4651,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4652,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4656,1
    - Dst: sqlite3_column_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4660,1
    - Dst: sqlite3_column_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4661,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4665,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4671,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4671,1
    - Dst: OGRSQLiteDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4672,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4672,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4684,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4688,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4693,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4696,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4700,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4708,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4710,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4712,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4713,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4718,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4721,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4731,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4742,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4751,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4756,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4758,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4765,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4766,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4780,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4784,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4790,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4793,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4800,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4804,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4810,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4815,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4821,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4823,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4827,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4831,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4839,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4849,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4853,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4858,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4860,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4864,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4868,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4872,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4874,1
    - Dst: prepareSql
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4880,1
    - Dst: sqlite3_bind_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4885,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4890,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4894,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4895,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4895,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4897,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4901,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4906,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4906,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4907,1
    - Dst: OGRSQLiteDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4908,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4908,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 193
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 4912
      start: 4432
    functionDepth: 7
    functionLinenumber: 4432
    functionLinenumberEnd: 4912
    functionName: OGRSQLiteDataSource::FetchSRSId
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - atoi
    - prepareSql
    - OGRSpatialReference::GetAuthorityName
    - OGRSQLiteDataSource::AddSRIDToCache
    - strcmp
    - SQLEscapeLiteral
    - sqlite3_finalize
    - CPLError
    - CPLString::empty
    - sqlite3_free_table
    - sqlite3_column_type
    - CPLString::c_str
    - OGRSpatialReference::Clone
    - OGRSpatialReference::GetAttrValue
    - std::move
    - strlen
    - sqlite3_column_int
    - std::unique_ptr::reset
    - sqlite3_bind_text
    - OGRSpatialReference::importFromEPSG
    - std::unique_ptr::SetAxisMappingStrategy
    - OGRSpatialReference::exportToProj4
    - CPLString::Printf
    - OGRSpatialReference::AutoIdentifyEPSG
    - sqlite3_errmsg
    - second::get
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - second::IsSame
    - SQLEscapeName
    - EQUAL
    - sqlite3_get_table
    - OGRSpatialReference::GetAuthorityCode
    - sqlite3_step
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteDataSource::FetchSRSId(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4931,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4932,1
    - Dst: auto::second::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4934,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4947,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4957,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4971,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4971,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4972,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4973,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4973,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4975,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4979,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4989,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4995,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:4997,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5001,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5004,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5010,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5027,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5027,1
    - Dst: std::unique_ptr::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5028,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5031,1
    - Dst: std::unique_ptr::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5032,1
    - Dst: std::unique_ptr::importFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5038,1
    - Dst: std::unique_ptr::importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5044,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5050,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5053,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5063,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5063,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5065,1
    - Dst: std::unique_ptr::StripTOWGS84IfKnownDatumAndAllowed
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5071,1
    - Dst: OGRSQLiteDataSource::AddSRIDToCache
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5076,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5076,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - nId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 5077
      start: 4922
    functionDepth: 1
    functionLinenumber: 4922
    functionLinenumberEnd: 5077
    functionName: OGRSQLiteDataSource::FetchSRS
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr::importFromWkt
    - std::unique_ptr::importFromEPSG
    - OGRSQLiteDataSource::AddSRIDToCache
    - CPLError
    - std::unique_ptr::importFromProj4
    - sqlite3_free_table
    - end
    - find
    - CPLString::c_str
    - std::move
    - std::unique_ptr::reset
    - std::unique_ptr::SetAxisMappingStrategy
    - CPLString::Printf
    - auto::second::get
    - OGRSpatialReference::OGRSpatialReference
    - std::unique_ptr::StripTOWGS84IfKnownDatumAndAllowed
    - EQUAL
    - sqlite3_get_table
    - sqlite3_free
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSQLiteDataSource::FetchSRS(int nId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5085,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszNameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5087
      start: 5083
    functionDepth: 1
    functionLinenumber: 5083
    functionLinenumberEnd: 5087
    functionName: OGRSQLiteDataSource::SetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::SetName(const char *pszNameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5096,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - osSQL
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 5101
      start: 5093
    functionDepth: 0
    functionLinenumber: 5093
    functionLinenumberEnd: 5101
    functionName: OGRSQLiteBaseDataSource::GetEnvelopeFromSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: OGREnvelope
    signature: 'OGREnvelope *

      OGRSQLiteBaseDataSource::GetEnvelopeFromSQL(const CPLString &osSQL)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osSQL
    - oEnvelope
    argTypes:
    - CPLString
    - OGREnvelope
    constantsTouched: []
    func_position:
      end: 5111
      start: 5107
    functionDepth: 0
    functionLinenumber: 5107
    functionLinenumberEnd: 5111
    functionName: OGRSQLiteBaseDataSource::SetEnvelopeForSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteBaseDataSource::SetEnvelopeForSQL(const CPLString &osSQL,\n
      \                                               const OGREnvelope &oEnvelope)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_trace_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5125,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5137,1
    - Dst: reinterpret_cast<OGRSQLiteBaseDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5143,1
    - Dst: OGRSQLiteBaseDataSource*::pfnQueryLoggerFunc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5147,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5148,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pfnQueryLoggerFuncIn
    - poQueryLoggerArgIn
    argTypes:
    - GDALQueryLoggerFunc
    - void*
    constantsTouched: []
    func_position:
      end: 5160
      start: 5117
    functionDepth: 0
    functionLinenumber: 5117
    functionLinenumberEnd: 5160
    functionName: OGRSQLiteBaseDataSource::SetQueryLoggerFunc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<OGRSQLiteBaseDataSource *>
    - sqlite3_trace_v2
    - OGRSQLiteBaseDataSource*::pfnQueryLoggerFunc
    - sqlite3_free
    - std::string::c_str
    - reinterpret_cast<void *>
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteBaseDataSource::SetQueryLoggerFunc(\n    GDALQueryLoggerFunc
      pfnQueryLoggerFuncIn, void *poQueryLoggerArgIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_interrupt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp:5168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5166
    functionDepth: 0
    functionLinenumber: 5166
    functionLinenumberEnd: 5170
    functionName: OGRSQLiteBaseDataSource::AbortSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_interrupt
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteBaseDataSource::AbortSQL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:103,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:103,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:114,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 1
    argNames:
    - ppszSQLCommand
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 120
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 120
    functionName: OGR2SQLITEExtractUnquotedString
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - isspace
    - CPLString::clear
    - static_cast<unsigned char>
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGR2SQLITEExtractUnquotedString(const char **ppszSQLCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:132,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:132,1
    - Dst: OGR2SQLITEExtractUnquotedString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:138,1
    - Dst: OGR2SQLITEExtractUnquotedString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:145,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:149,1
    - Dst: LayerDesc::osOriginalStr::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ppszSQLCommand
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 157
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: OGR2SQLITEExtractLayerDesc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEExtractUnquotedString
    - static_cast<unsigned char>
    - LayerDesc::osOriginalStr::resize
    - isspace
    - std::move
    linkageType: ''
    returnType: LayerDesc
    signature: LayerDesc OGR2SQLITEExtractLayerDesc(const char **ppszSQLCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:169,1
    - Dst: OGR2SQLITEExtractLayerDesc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:172,1
    - Dst: LayerDesc::osDSName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:174,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:177,1
    - Dst: std::set<LayerDesc>::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:182,1
    - Dst: std::set<LayerDesc>::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:183,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:186,1
    - Dst: std::set<LayerDesc>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:199,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - pszStart
    - nNum
    - pszSQLCommand
    - oSet
    - osModifiedSQL
    argTypes:
    - char*
    - int
    - char*
    - std::set<LayerDesc>
    - CPLString
    constantsTouched: []
    func_position:
      end: 202
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 202
    functionName: OGR2SQLITEAddLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - std::set<LayerDesc>::end
    - std::set<LayerDesc>::insert
    - LayerDesc::osDSName::empty
    - std::set<LayerDesc>::find
    - std::move
    - CPLString
    - OGR2SQLITEExtractLayerDesc
    - CPLString::resize
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITEAddLayer(const char *&pszStart, int &nNum,\n                               const
      char *&pszSQLCommand,\n                               std::set<LayerDesc> &oSet,\n
      \                              CPLString &osModifiedSQL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: StartsAsSQLITEKeyWord
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int StartsAsSQLITEKeyWord(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:265,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:276,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:276,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:279,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:284,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:285,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:286,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:286,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:287,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:289,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:291,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:291,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:298,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:298,1
    - Dst: std::set<CPLString>::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:301,1
    - Dst: OGR2SQLITEExtractUnquotedString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:302,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:308,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:309,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:310,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:310,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:312,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:314,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:314,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:317,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:318,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:318,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:319,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:321,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:333,1
    - Dst: OGR2SQLITEGetPotentialLayerNamesInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:336,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:343,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:348,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:348,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:351,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:351,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:354,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:358,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:358,1
    - Dst: StartsAsSQLITEKeyWord
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:365,1
    - Dst: OGR2SQLITEExtractUnquotedString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:367,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:373,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:373,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:381,1
    - Dst: OGR2SQLITEGetPotentialLayerNamesInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:384,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:391,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:398,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:399,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:400,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:400,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:402,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:403,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:406,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:407,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:408,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:408,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:410,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:411,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:414,1
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:415,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:415,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:416,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:418,1
    - Dst: OGR2SQLITEAddLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:419,1
    - Dst: CPLString::resize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:427,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 112
    argCount: 5
    argNames:
    - ppszSQLCommand
    - oSetLayers
    - oSetSpatialIndex
    - osModifiedSQL
    - nNum
    argTypes:
    - char**
    - std::set<LayerDesc>
    - std::set<CPLString>
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 431
    functionName: OGR2SQLITEGetPotentialLayerNamesInternal
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 1
    functionsReached:
    - std::set<CPLString>::insert
    - STARTS_WITH_CI
    - OGR2SQLITEExtractUnquotedString
    - static_cast<unsigned char>
    - isspace
    - OGR2SQLITEGetPotentialLayerNamesInternal
    - strlen
    - CPLString::resize
    - StartsAsSQLITEKeyWord
    - OGR2SQLITEAddLayer
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITEGetPotentialLayerNamesInternal(\n    const char **ppszSQLCommand,
      std::set<LayerDesc> &oSetLayers,\n    std::set<CPLString> &oSetSpatialIndex,
      CPLString &osModifiedSQL, int &nNum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITEGetPotentialLayerNamesInternal
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pszSQLCommand
    - oSetLayers
    - oSetSpatialIndex
    - osModifiedSQL
    argTypes:
    - char*
    - std::set<LayerDesc>
    - std::set<CPLString>
    - CPLString
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: OGR2SQLITEGetPotentialLayerNames
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITEGetPotentialLayerNamesInternal
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITEGetPotentialLayerNames(\n    const char *pszSQLCommand,
      std::set<LayerDesc> &oSetLayers,\n    std::set<CPLString> &oSetSpatialIndex,
      CPLString &osModifiedSQL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITEGetPotentialLayerNames
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszStatement
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: OGRSQLiteGetReferencedLayers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 1
    functionsReached:
    - OGR2SQLITEGetPotentialLayerNames
    linkageType: ''
    returnType: std::set<LayerDesc>
    signature: std::set<LayerDesc> OGRSQLiteGetReferencedLayers(const char *pszStatement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: OGRSQLiteExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRSQLiteExecuteSQL(GDALDataset *, const char *, OGRGeometry
      *,\n                              const char *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - pszTmpDBNameIn
    - poDSIn
    - osSQL
    - hStmtIn
    - bUseStatementForGetNextFeature
    - bEmptyLayer
    - bCanReopenBaseDS
    - bStringsAsUTF8
    argTypes:
    - char*
    - OGRSQLiteDataSource*
    - CPLString
    - sqlite3_stmt*
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 507
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 507
    functionName: OGRSQLiteExecuteSQLLayer::OGRSQLiteExecuteSQLLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteExecuteSQLLayer::OGRSQLiteExecuteSQLLayer(\n    char
      *pszTmpDBNameIn, OGRSQLiteDataSource *poDSIn, const CPLString &osSQL,\n    sqlite3_stmt
      *hStmtIn, bool bUseStatementForGetNextFeature,\n    bool bEmptyLayer, bool bCanReopenBaseDS,
      bool bStringsAsUTF8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:519,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:522,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 524
    functionName: OGRSQLiteExecuteSQLLayer::~OGRSQLiteExecuteSQLLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - CPLFree
    - Finalize
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteExecuteSQLLayer::~OGRSQLiteExecuteSQLLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:532,1
    - Dst: OGRSQLiteSelectLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: OGRSQLiteExecuteSQLLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRSQLiteSelectLayer::TestCapability
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteExecuteSQLLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:545,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:546,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:547,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:549,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:550,1
    - Dst: OGRLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:552,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:552,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - poLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 554
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 554
    functionName: OGR2SQLITE_IgnoreAllFieldsExceptGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - OGRFeatureDefn*::GetFieldCount
    - const_cast<const char **>
    - CSLAddString
    - CSLDestroy
    - OGRLayer*::GetLayerDefn
    - OGRLayer*::SetIgnoredFields
    - OGRFeatureDefn*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: void OGR2SQLITE_IgnoreAllFieldsExceptGeometry(OGRLayer *poLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:573,1
    - Dst: OGR2SQLITE_GetNameForGeometryColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:576,1
    - Dst: OGRGeomFieldDefn*::GetNameRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:578,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:588,1
    - Dst: LayerDesc::osLayerName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:588,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:592,1
    - Dst: OGRLayer*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:594,1
    - Dst: OGRSQLiteDataSource*::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:597,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:605,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:610,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:610,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:610,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:611,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:611,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:624,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:625,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:628,1
    - Dst: begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:640,1
    - Dst: end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:641,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:644,1
    - Dst: OGRSQLiteDataSource*::HasSpatialite4Layout
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:652,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:654,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:657,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:663,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:669,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:678,1
    - Dst: wkbHasZ
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:684,1
    - Dst: OGRLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:684,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:685,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:693,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:693,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:694,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:704,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:704,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:708,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:711,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:712,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:714,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:714,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:717,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:718,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:721,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:723,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:725,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:728,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:728,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:737,1
    - Dst: OGR2SQLITE_IgnoreAllFieldsExceptGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:740,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:741,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:746,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:748,1
    - Dst: OGRGeometry*::IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:749,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:751,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:752,1
    - Dst: static_cast<sqlite3_int64>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:753,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:753,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:754,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:755,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:756,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:757,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:758,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:760,1
    - Dst: OGRLayer*::SetIgnoredFields
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:765,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:767,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:770,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:773,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:774,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:775,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 9
    argNames:
    - poLayer
    - iGeomCol
    - oLayerDesc
    - osTableName
    - poSQLiteDS
    - hDB
    - bSpatialiteDB
    - WHEN_SPATIALITE(oSetLayers)
    - WHEN_SPATIALITE(oSetSpatialIndex)
    argTypes:
    - OGRLayer*
    - int
    - LayerDesc
    - CPLString
    - OGRSQLiteDataSource*
    - sqlite3*
    - bool
    - std::set<LayerDesc>
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 782
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 782
    functionName: OGR2SQLITEDealWithSpatialColumn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - OGRLayer*::GetNextFeature
    - CPLDebug
    - OGRLayer*::GetGeomType
    - SQLEscapeLiteral
    - sqlite3_finalize
    - OGRLayer*::SetIgnoredFields
    - LayerDesc::osLayerName::c_str
    - wkbHasZ
    - end
    - sqlite3_reset
    - OGRGeomFieldDefn*::GetNameRef
    - OGRSQLiteDataSource*::HasSpatialite4Layout
    - CPLString::c_str
    - sqlite3_bind_int64
    - OGRSQLiteDataSource*::FetchSRSId
    - OGRLayer*::GetLayerDefn
    - wkbFlatten
    - sqlite3_bind_double
    - OGRLayer*::GetSpatialRef
    - static_cast<int>
    - OGR2SQLITE_GetNameForGeometryColumn
    - OGRFeature*::GetFID
    - CPLString::Printf
    - CPLSPrintf
    - begin
    - sqlite3_errmsg
    - OGRLayer*::ResetReading
    - sqlite3_exec
    - OGRGeometry*::getEnvelope
    - OGRFeature*::GetGeometryRef
    - OGRGeometry*::IsEmpty
    - static_cast<sqlite3_int64>
    - OGR2SQLITE_IgnoreAllFieldsExceptGeometry
    - EQUAL
    - sqlite3_step
    - OGRGeomFieldDefn*::GetSpatialRef
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int OGR2SQLITEDealWithSpatialColumn(\n    OGRLayer *poLayer, int iGeomCol,
      const LayerDesc &oLayerDesc,\n    const CPLString &osTableName, OGRSQLiteDataSource
      *poSQLiteDS, sqlite3 *hDB,\n    bool bSpatialiteDB, const std::set<LayerDesc>
      &WHEN_SPATIALITE(oSetLayers),\n    const std::set<CPLString> &WHEN_SPATIALITE(oSetSpatialIndex))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:793,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:793,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:796,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:797,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:798,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:799,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:801,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:806,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:807,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:807,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:822,1
    - Dst: std::isspace
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:823,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:823,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:824,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:832,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:838,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:838,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:861,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:861,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:866,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:867,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:869,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:872,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:881,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:883,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:885,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:892,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:893,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:896,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:896,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:899,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:902,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:903,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:903,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:906,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:915,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:916,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:923,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:929,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:948,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:955,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:956,1
    - Dst: OGR2SQLITE_Setup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:964,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:968,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:969,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:972,1
    - Dst: OGR2SQLITEGetPotentialLayerNames
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:980,1
    - Dst: std::set::begin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:982,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:984,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:984,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:985,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:985,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:986,1
    - Dst: std::set::end
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:996,1
    - Dst: LayerDesc::osDSName::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1009,1
    - Dst: GDALDataset*::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1011,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1020,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1025,1
    - Dst: LayerDesc::osDSName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1027,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1029,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1030,1
    - Dst: auto::GetLayerByName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1034,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1037,1
    - Dst: LayerDesc::osLayerName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1039,1
    - Dst: LayerDesc::osDSName::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1040,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1042,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1043,1
    - Dst: OGR2SQLITE_AddExtraDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1049,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1049,1
    - Dst: OGRLayer*::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1052,1
    - Dst: std::set::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1055,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1058,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1060,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1061,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1068,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1070,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1071,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1075,1
    - Dst: OGR2SQLITEDealWithSpatialColumn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1077,1
    - Dst: OGRSQLiteDataSource*::ReloadLayers
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1086,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1102,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1104,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1108,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1112,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1113,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1121,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1126,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1128,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1130,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1133,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1134,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1139,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1142,1
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1145,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1146,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1159,1
    - Dst: OGRSQLiteExecuteSQLLayer::OGRSQLiteExecuteSQLLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1163,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1170,1
    - Dst: OGRSQLiteSelectLayer*::SetSpatialFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1171,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1172,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1173,1
    - Dst: OGRSQLiteSelectLayer*::SetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1181,1
    - Dst: OGRLayer*::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp:1181,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 157
    argCount: 4
    argNames:
    - poDS
    - pszStatement
    - poSpatialFilter
    - pszDialect
    argTypes:
    - GDALDataset*
    - char*
    - OGRGeometry*
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1185
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 1185
    functionName: OGRSQLiteExecuteSQL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.cpp
    functionUses: 0
    functionsReached:
    - std::set::size
    - CPLDebug
    - LayerDesc::osDSName::empty
    - OGR2SQLITEGetPotentialLayerNames
    - GDALDataset*::GetLayerByName
    - strcmp
    - SQLEscapeLiteral
    - sqlite3_finalize
    - CPLError
    - CPLGetConfigOption
    - LayerDesc::osLayerName::c_str
    - static_cast<unsigned char>
    - isspace
    - CPLString::c_str
    - OGRAPISpyOpen
    - OGRSQLiteExecuteSQLLayer::OGRSQLiteExecuteSQLLayer
    - std::isspace
    - strlen
    - OGRLayer*::GetLayerDefn
    - VSIGetMemFileBuffer
    - OGR2SQLITE_AddExtraDS
    - OGRSQLiteDataSource*::ReloadLayers
    - STARTS_WITH_CI
    - CPLTestBool
    - OGRLayer*::TestCapability
    - OGR2SQLITE_Setup
    - OGRSQLiteSelectLayer*::SetMetadata
    - CPLString::Printf
    - VSIUnlink
    - auto::GetLayerByName
    - OGR2SQLITEDealWithSpatialColumn
    - OGRSQLiteSelectLayer*::SetSpatialFilter
    - CPLGetErrorCounter
    - OGRLayer*::GetMetadata
    - snprintf
    - std::set::begin
    - sqlite3_errmsg
    - static_cast<GByte *>
    - VSIFileFromMemBuffer
    - CPLFree
    - OGRSQLiteDataSource::OGRSQLiteDataSource
    - LayerDesc::osDSName::c_str
    - static_cast<size_t>
    - std::unique_ptr<GDALDataset>
    - auto::release
    - OGRSQLiteDataSource*::GetDB
    - VSIFCloseL
    - CSLDestroy
    - SQLEscapeName
    - GDALDataset*::GetDriver
    - sqlite3_step
    - sqlite3_free
    - CPLGetLastErrorType
    - VSIMemGenerateHiddenFilename
    - memcpy
    - VSI_MALLOC_VERBOSE
    - std::set::end
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *OGRSQLiteExecuteSQL(GDALDataset *poDS, const char *pszStatement,\n
      \                             OGRGeometry *poSpatialFilter,\n                              CPL_UNUSED
      const char *pszDialect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:61,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:63,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:66,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:69,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:70,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:73,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:76,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:77,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:78,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:79,1
    - Dst: sqlite3_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:82,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:85,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:87,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:88,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:89,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:90,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:93,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:98,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:102,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:103,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:104,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:105,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:106,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:108,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:114,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:120,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:126,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:129,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:130,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:131,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:132,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:133,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:138,1
    - Dst: printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:140,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:142,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:143,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:147,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:148,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:151,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:153,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:160,1
    - Dst: sqlite3_open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:163,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:166,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:167,1
    - Dst: exit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:168,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:171,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:171,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:173,1
    - Dst: sqlite3_load_extension
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:174,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:177,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:178,1
    - Dst: fprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:182,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:184,1
    - Dst: sqlite3_close
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:188,1
    - Dst: unlink
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c:189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 192
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 192
    functionName: main
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/test_load_virtual_ogr.c
    functionUses: 42
    functionsReached:
    - sqlite3_open
    - sqlite3_free_table
    - sqlite3_load_extension
    - assert
    - exit
    - fprintf
    - sqlite3_close
    - sqlite3_get_table
    - snprintf
    - sqlite3_enable_load_extension
    - sqlite3_free
    - printf
    - sqlite3_exec
    - unlink
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - result
    - nRow
    - nCol
    argTypes:
    - char**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: SQLResult::SQLResult
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SQLResult::SQLResult(char **result, int nRow, int nCol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: SQLResult::~SQLResult()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    linkageType: ''
    returnType: void
    signature: void SQLResult::~SQLResult()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLimit
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: SQLResult::LimitRowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SQLResult::LimitRowCount(int nLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:47,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:48,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:52,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:58,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - poDb
    - pszSQL
    argTypes:
    - sqlite3*
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: SQLCommand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 82
    functionsReached:
    - CPLError
    - CPLAssert
    - sqlite3_free
    - CPLDebug
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr SQLCommand(sqlite3 *poDb, const char *pszSQL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:69,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:70,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:73,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:84,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:86,1
    - Dst: std::make_unique<SQLResult>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - poDb
    - pszSQL
    argTypes:
    - sqlite3*
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: SQLQuery
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 33
    functionsReached:
    - CPLDebug
    - CPLAssert
    - std::make_unique<SQLResult>
    - sqlite3_free
    - CPLError
    linkageType: ''
    returnType: std::unique_ptr<SQLResult>
    signature: std::unique_ptr<SQLResult> SQLQuery(sqlite3 *poDb, const char *pszSQL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:98,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:100,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - iColNum
    - iRowNum
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: SQLResult::GetValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    linkageType: ''
    returnType: char
    signature: char *SQLResult::GetValue(int iColNum, int iRowNum) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - iColNum
    - iRowNum
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: SQLResult::GetValueAsInteger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int SQLResult::GetValueAsInteger(int iColNum, int iRowNum) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:118,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:124,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:129,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:131,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:138,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:143,1
    - Dst: sqlite3_column_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:148,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - poDb
    - pszSQL
    - err
    argTypes:
    - sqlite3*
    - char*
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 154
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 154
    functionName: SQLGetInteger64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 7
    functionsReached:
    - CPLDebug
    - CPLAssert
    - sqlite3_step
    - sqlite3_errmsg
    - sqlite3_finalize
    - CPLError
    - sqlite3_column_int64
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig SQLGetInteger64(sqlite3 *poDb, const char *pszSQL, OGRErr *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:158,1
    - Dst: SQLGetInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDb
    - pszSQL
    - err
    argTypes:
    - sqlite3*
    - char*
    - OGRErr*
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: SQLGetInteger
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 19
    functionsReached:
    - static_cast<int>
    - SQLGetInteger64
    linkageType: ''
    returnType: int
    signature: int SQLGetInteger(sqlite3 *poDb, const char *pszSQL, OGRErr *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: SQLUnescape
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString SQLUnescape(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszLiteral
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: SQLEscapeLiteral
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString SQLEscapeLiteral(const char *pszLiteral)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: SQLEscapeName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString SQLEscapeName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:239,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:240,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:249,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:250,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:252,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:254,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:255,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:270,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:271,1
    - Dst: CPLString::clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:283,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:297,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:298,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 301
    functionName: SQLTokenize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 1
    functionsReached:
    - CPLString::empty
    - CSLAddString
    - CPLString::clear
    linkageType: ''
    returnType: char
    signature: char **SQLTokenize(const char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:319,1
    - Dst: std::vector<SQLSqliteMasterContent>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:322,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:328,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:329,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:331,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:334,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:339,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:339,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:343,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:350,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:356,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:361,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:363,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:375,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:376,1
    - Dst: find_first_not_of
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:377,1
    - Dst: std::string
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:379,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:388,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:392,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:421,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:423,1
    - Dst: std::string::find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:431,1
    - Dst: std::string::rfind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:432,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:435,1
    - Dst: std::string::substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:439,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:445,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:446,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:454,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:455,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:462,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:463,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:465,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:465,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:467,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:467,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:477,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:477,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:484,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:485,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:491,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:492,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:497,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:497,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:500,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:505,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:506,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:510,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:511,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:516,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:520,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:522,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:524,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:527,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:539,1
    - Dst: std::string::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:540,1
    - Dst: find
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:568,1
    - Dst: rfind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:569,1
    - Dst: substr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:573,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:577,1
    - Dst: GetNextToken
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:579,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:581,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:581,1
    - Dst: std::vector<SQLSqliteMasterContent>::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:586,1
    - Dst: SQLQuery
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:593,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:594,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:598,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:601,1
    - Dst: auto::RowCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:603,1
    - Dst: auto::GetValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:605,1
    - Dst: ProcessIndexDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:606,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:615,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:616,1
    - Dst: osSQL::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:616,1
    - Dst: ProcessIndexDefinition
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:619,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 156
    argCount: 3
    argNames:
    - poDb
    - pszTableName
    - sqliteMasterContent
    argTypes:
    - sqlite3*
    - char*
    - std::vector<SQLSqliteMasterContent>
    constantsTouched: []
    func_position:
      end: 625
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 625
    functionName: SQLGetUniqueFieldUCConstraints
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 3
    functionsReached:
    - auto::GetValue
    - std::set::insert
    - CPLString
    - CPLError
    - std::string::c_str
    - auto::RowCount
    - std::string::empty
    - find_first_not_of
    - std::string::find
    - GetNextToken
    - find
    - SQLQuery
    - rfind
    - STARTS_WITH_CI
    - std::vector<SQLSqliteMasterContent>::empty
    - substr
    - size
    - ProcessIndexDefinition
    - osSQL::c_str
    - std::string::rfind
    - EQUAL
    - sqlite3_free
    - std::string
    - std::string::substr
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> SQLGetUniqueFieldUCConstraints(\n    sqlite3
      *poDb, const char *pszTableName,\n    const std::vector<SQLSqliteMasterContent>
      &sqliteMasterContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 684
    functionName: OGRSQLiteRTreeRequiresTrustedSchemaOn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteRTreeRequiresTrustedSchemaOn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:817,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:818,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:819,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:820,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 826
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 826
    functionName: OGRSQLiteIsSpatialFunctionReturningGeometry
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 2
    functionsReached:
    - STARTS_WITH_CI
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteIsSpatialFunctionReturningGeometry(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrtod
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - iColNum
    - iRowNum
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 835
    functionName: SQLResult::GetValueAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 0
    functionsReached:
    - CPLStrtod
    linkageType: ''
    returnType: double
    signature: double SQLResult::GetValueAsDouble(int iColNum, int iRowNum) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:846,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:847,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:848,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:849,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:850,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:851,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:852,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:854,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:856,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:861,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:864,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:871,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:876,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:878,1
    - Dst: GDALInvGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:882,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:884,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:890,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:892,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:893,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:897,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:900,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:903,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:904,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:906,1
    - Dst: GDALRasterIOGetResampleAlg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:911,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:911,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:912,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:915,1
    - Dst: auto::RasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:919,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:919,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:919,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:923,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:926,1
    - Dst: auto::RasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:931,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:931,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:931,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:935,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:938,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:941,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:941,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:945,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:945,1
    - Dst: auto::InterpolateAtPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:951,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:954,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:957,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 5
    argNames:
    - pszFunctionName
    - pContext
    - argc
    - argv
    - poDS
    argTypes:
    - char*
    - sqlite3_context*
    - int
    - sqlite3_value**
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 959
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 959
    functionName: OGRSQLite_gdal_get_pixel_value_common
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 2
    functionsReached:
    - sqlite3_result_double
    - CPLError
    - auto::InterpolateAtPoint
    - GDALInvGeoTransform
    - GDALDataset*::GetGeoTransform
    - GDALRasterIOGetResampleAlg
    - sqlite3_result_int64
    - static_cast<int>
    - reinterpret_cast<const char *>
    - GDALDataset*::GetRasterBand
    - static_cast<uint64_t>
    - auto::GetRasterDataType
    - auto::RasterIO
    - GDALDataset*::GetRasterXSize
    - sqlite3_value_int
    - static_cast<int64_t>
    - static_cast<double>
    - GDALDataset*::GetRasterYSize
    - sqlite3_value_type
    - EQUAL
    - sqlite3_value_text
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRSQLite_gdal_get_pixel_value_common(const char *pszFunctionName,\n
      \                                          sqlite3_context *pContext, int argc,\n
      \                                          sqlite3_value **argv,\n                                           GDALDataset
      *poDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:990,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:994,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:995,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:996,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:997,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:998,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:999,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1000,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1001,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1002,1
    - Dst: CPLString::ifind
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1003,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1007,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1019,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1026,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1027,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1030,1
    - Dst: CPLStringList::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1031,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1031,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1032,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1033,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1034,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1035,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1035,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1043,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 39
    argCount: 1
    argNames:
    - pszLine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1049
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 1049
    functionName: SQLCheckLineIsSafe
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 2
    functionsReached:
    - STARTS_WITH_CI
    - CPLError
    - EQUAL
    - CPLString::replaceAll
    - CPLString::ifind
    - CPLString
    - CSLTokenizeString2
    - CPLStringList::size
    linkageType: ''
    returnType: bool
    signature: bool SQLCheckLineIsSafe(const char *pszLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1059,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - db
    - sql
    - nByte
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    constantsTouched: []
    func_position:
      end: 1063
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1063
    functionName: SQLPrepareWithError
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp
    functionUses: 7
    functionsReached:
    - CPLError
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int SQLPrepareWithError(sqlite3 *db, const char *sql, int nByte,\n
      \                       sqlite3_stmt **ppStmt, const char **pzTail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:43,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:45,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:45,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:50,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:51,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:51,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: OGR2SQLITE_ogr_version
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - sqlite3_value_type
    - sqlite3_result_text
    - sqlite3_value_text
    - GDALVersionInfo
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_version(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:66,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:70,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:72,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:76,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:78,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:82,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:84,1
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:92,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:92,1
    - Dst: OGRSQLiteExtensionData*::GetTransform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:94,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:97,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:102,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:102,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:107,1
    - Dst: OGRGeometry*::transform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:109,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:110,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:114,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 121
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 121
    functionName: OGR2SQLITE_Transform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    - sqlite3_result_blob
    - sqlite3_value_type
    - sqlite3_user_data
    - static_cast<OGRSQLiteExtensionData *>
    - reinterpret_cast<const GByte *>
    - OGRSQLiteExtensionData*::GetTransform
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    - OGRGeometry*::transform
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_Transform(sqlite3_context *pContext, int argc,\n                                 sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:132,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:133,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:135,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:140,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:142,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:145,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:150,1
    - Dst: CPLZLibDeflate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:154,1
    - Dst: strlen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:154,1
    - Dst: CPLZLibDeflate
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:161,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:165,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:165,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:170,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 174
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 174
    functionName: OGR2SQLITE_ogr_deflate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - static_cast<int>
    - sqlite3_value_type
    - strlen
    - sqlite3_value_int
    - CPLZLibDeflate
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_deflate(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:183,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:185,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:197,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:197,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 206
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 206
    functionName: OGR2SQLITE_ogr_inflate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sqlite3_result_blob
    - sqlite3_value_type
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_inflate(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:217,1
    - Dst: FromHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:220,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:221,1
    - Dst: OGRLayer*::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:222,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:225,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:226,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:227,1
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:231,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:232,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:235,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:239,1
    - Dst: OGRFeatureDefn*::GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:243,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:244,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:246,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:248,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:249,1
    - Dst: sqlite3_result_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:251,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:252,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:254,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:255,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:257,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:257,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:261,1
    - Dst: OGRGeocodeFreeResult
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - pContext
    - hLayer
    - pszField
    argTypes:
    - sqlite3_context*
    - OGRLayerH
    - char*
    constantsTouched: []
    func_position:
      end: 265
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 265
    functionName: OGR2SQLITE_ogr_geocode_set_result
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - sqlite3_result_blob
    - OGRFeature*::GetFieldAsInteger64
    - sqlite3_result_int
    - OGRLayer*::GetNextFeature
    - OGRFeature*::GetFieldAsString
    - OGRFeatureDefn*::GetFieldIndex
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    - strcmp
    - sqlite3_result_double
    - OGRFeature*::GetFieldAsInteger
    - OGRFeature*::GetFieldAsDouble
    - OGRLayer*::GetLayerDefn
    - sqlite3_result_int64
    - FromHandle
    - sqlite3_result_text
    - OGRFeatureDefn*::GetFieldDefn
    - OGRFeature*::GetGeometryRef
    - OGRGeocodeFreeResult
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_geocode_set_result(sqlite3_context *pContext,\n
      \                                             OGRLayerH hLayer,\n                                              const
      char *pszField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:275,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:275,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:277,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:279,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:286,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:288,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:288,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:294,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:296,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:298,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:298,1
    - Dst: OGRSQLiteExtensionData*::GetGeocodingSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:302,1
    - Dst: OGRGeocodeCreateSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:305,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:308,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:309,1
    - Dst: OGRSQLiteExtensionData*::SetGeocodingSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:312,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:316,1
    - Dst: CSLFindString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:318,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:319,1
    - Dst: OGRGeocode
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:321,1
    - Dst: OGR2SQLITE_ogr_geocode_set_result
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:323,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:325,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 328
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 328
    functionName: OGR2SQLITE_ogr_geocode
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRGeocodeCreateSession
    - OGRGeocode
    - OGR2SQLITE_ogr_geocode_set_result
    - reinterpret_cast<const char *>
    - sqlite3_value_type
    - OGRSQLiteExtensionData*::GetGeocodingSession
    - CSLAddString
    - CSLDestroy
    - sqlite3_user_data
    - static_cast<OGRSQLiteExtensionData *>
    - sqlite3_value_text
    - OGRSQLiteExtensionData*::SetGeocodingSession
    - CSLFindString
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_geocode(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:336,1
    - Dst: sqlite3_value_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:341,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:346,1
    - Dst: sqlite3_value_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - val
    - pbGotVal
    argTypes:
    - sqlite3_value*
    - int*
    constantsTouched: []
    func_position:
      end: 353
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 353
    functionName: OGR2SQLITE_GetValAsDouble
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    - static_cast<double>
    - sqlite3_value_type
    - sqlite3_value_int64
    linkageType: ''
    returnType: double
    signature: double OGR2SQLITE_GetValAsDouble(sqlite3_value *val, int *pbGotVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:363,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:369,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:369,1
    - Dst: OGRSQLiteLayer::ImportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:372,1
    - Dst: std::unique_ptr<OGRGeometry>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - argv
    - pnSRSId
    argTypes:
    - sqlite3_value**
    - int*
    constantsTouched: []
    func_position:
      end: 380
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 380
    functionName: OGR2SQLITE_GetGeom
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ImportSpatiaLiteGeometry
    - sqlite3_value_blob
    - sqlite3_value_type
    - std::unique_ptr<OGRGeometry>
    - reinterpret_cast<const GByte *>
    linkageType: ''
    returnType: std::unique_ptr<OGRGeometry>
    signature: "std::unique_ptr<OGRGeometry> OGR2SQLITE_GetGeom(sqlite3_context *
      /*pContext*/, int /* argc */,\n                   sqlite3_value **argv, int
      *pnSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OGRSQLiteExtensionData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:390,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:390,1
    - Dst: OGR2SQLITE_GetValAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:400,1
    - Dst: OGR2SQLITE_GetValAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:401,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:405,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:409,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:410,1
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:412,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:414,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:414,1
    - Dst: auto::toPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:416,1
    - Dst: OGRPoint*::getX
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:417,1
    - Dst: OGRPoint*::getY
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:418,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:422,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:429,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:439,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:441,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:443,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:443,1
    - Dst: OGRSQLiteExtensionData*::GetGeocodingSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:447,1
    - Dst: OGRGeocodeCreateSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:450,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:453,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:454,1
    - Dst: OGRSQLiteExtensionData*::SetGeocodingSession
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:457,1
    - Dst: strcmp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:460,1
    - Dst: CSLAddString
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:461,1
    - Dst: OGRGeocodeReverse
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:463,1
    - Dst: OGR2SQLITE_ogr_geocode_set_result
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:465,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:467,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 470
      start: 386
    functionDepth: 6
    functionLinenumber: 386
    functionLinenumberEnd: 470
    functionName: OGR2SQLITE_ogr_geocode_reverse
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_ogr_geocode_set_result
    - OGRPoint*::getY
    - CSLAddString
    - sqlite3_user_data
    - strcmp
    - auto::toPoint
    - OGRGeocodeCreateSession
    - OGRGeocodeReverse
    - OGRSQLiteExtensionData*::SetGeocodingSession
    - wkbFlatten
    - OGR2SQLITE_GetValAsDouble
    - OGRPoint*::getX
    - reinterpret_cast<const char *>
    - OGRSQLiteExtensionData*::GetGeocodingSession
    - static_cast<OGRSQLiteExtensionData *>
    - OGR2SQLITE_GetGeom
    - sqlite3_value_type
    - CSLDestroy
    - sqlite3_value_text
    - auto::getGeometryType
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_geocode_reverse(sqlite3_context *pContext, int
      argc,\n                                           sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<sqlite3 *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:480,1
    - Dst: sqlite3_user_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:480,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:482,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:484,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:493,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:495,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:498,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:504,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:506,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:509,1
    - Dst: sqlite3_value_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:509,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:512,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:512,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:518,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:519,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:523,1
    - Dst: auto::GetLayerCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:524,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:527,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:533,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:537,1
    - Dst: SQLCommand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:540,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:542,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:544,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:544,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:545,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:548,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 549
      start: 476
    functionDepth: 4
    functionLinenumber: 476
    functionLinenumberEnd: 549
    functionName: OGR2SQLITE_ogr_datasource_load_layers
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - auto::GetLayerCount
    - static_cast<sqlite3 *>
    - reinterpret_cast<const char *>
    - sqlite3_value_type
    - SQLCommand
    - sqlite3_result_int
    - SQLEscapeName
    - sqlite3_user_data
    - CPLSPrintf
    - sqlite3_value_text
    - OGRAPISpyOpen
    - CPLString::c_str
    - SQLEscapeLiteral
    - CPLError
    - sqlite3_value_int
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_datasource_load_layers(sqlite3_context *pContext,\n
      \                                                 int argc,\n                                                  sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:559,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:561,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:569,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 572
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 572
    functionName: OGR2SQLITE_ogr_GetConfigOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - sqlite3_value_type
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_GetConfigOption(sqlite3_context *pContext, int
      argc,\n                                           sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:581,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:583,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:586,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:587,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:589,1
    - Dst: CPLSetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:599,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: OGR2SQLITE_ogr_SetConfigOption
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - CPLSetConfigOption
    - sqlite3_value_type
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ogr_SetConfigOption(sqlite3_context *pContext, int
      argc,\n                                           sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteLayer::ExportSpatiaLiteGeometry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:613,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:617,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pContext
    - poGeom
    - nSRSId
    argTypes:
    - sqlite3_context*
    - OGRGeometry*
    - int
    constantsTouched: []
    func_position:
      end: 624
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 624
    functionName: OGR2SQLITE_SetGeom_AndDestroy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteLayer::ExportSpatiaLiteGeometry
    - sqlite3_result_blob
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_SetGeom_AndDestroy(sqlite3_context *pContext,\n                                          OGRGeometry
      *poGeom, int nSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:633,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:635,1
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:641,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:644,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:645,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:648,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:650,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:656,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:658,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:660,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:661,1
    - Dst: OGR_G_GeodesicArea
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:662,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:662,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:662,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:663,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 669
      start: 630
    functionDepth: 7
    functionLinenumber: 630
    functionLinenumberEnd: 669
    functionName: OGR2SQLITE_ST_GeodesicArea
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGR_G_GeodesicArea
    - OGRSpatialReference::OGRSpatialReference
    - auto::assignSpatialReference
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLDebug
    - ToHandle
    - auto::get
    - OGR2SQLITE_GetGeom
    - sqlite3_result_double
    - CPLError
    - sqlite3_value_int
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_GeodesicArea(sqlite3_context *pContext, int argc,\n
      \                                      sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:678,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:680,1
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:686,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:689,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:690,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:693,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:695,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:701,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:703,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:705,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:706,1
    - Dst: OGR_G_GeodesicLength
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:708,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:708,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:708,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:709,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 715
      start: 675
    functionDepth: 7
    functionLinenumber: 675
    functionLinenumberEnd: 715
    functionName: OGR2SQLITE_ST_GeodesicLength
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::OGRSpatialReference
    - auto::assignSpatialReference
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLDebug
    - OGR_G_GeodesicLength
    - ToHandle
    - auto::get
    - OGR2SQLITE_GetGeom
    - sqlite3_result_double
    - CPLError
    - sqlite3_value_int
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_GeodesicLength(sqlite3_context *pContext, int argc,\n
      \                                        sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:726,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:730,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:731,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:733,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 737
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 737
    functionName: OGR2SQLITE_ST_AsText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GetGeom
    - sqlite3_result_text
    - auto::exportToWkt
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_AsText(sqlite3_context *pContext, int argc,\n                                 sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:746,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:749,1
    - Dst: simple_max
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:749,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:751,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:752,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:756,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:756,1
    - Dst: auto::exportToWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:759,1
    - Dst: sqlite3_result_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:760,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:761,1
    - Dst: VSIFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:764,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:765,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:769,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 773
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 773
    functionName: OGR2SQLITE_ST_AsBinary
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - sqlite3_result_blob
    - CPLError
    - auto::exportToWkb
    - static_cast<int>
    - VSIFree
    - static_cast<GByte *>
    - OGR2SQLITE_GetGeom
    - VSI_MALLOC_VERBOSE
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_AsBinary(sqlite3_context *pContext, int argc,\n
      \                                  sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:782,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:784,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:791,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:792,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:795,1
    - Dst: OGR2SQLITE_SetGeom_AndDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:798,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 802
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 802
    functionName: OGR2SQLITE_ST_GeomFromText
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - OGR2SQLITE_SetGeom_AndDestroy
    - OGRGeometryFactory::createFromWkt
    - sqlite3_value_int
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_GeomFromText(sqlite3_context *pContext, int argc,\n
      \                                      sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:811,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:813,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:818,1
    - Dst: sqlite3_value_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:819,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:822,1
    - Dst: sqlite3_value_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:822,1
    - Dst: OGRGeometryFactory::createFromWkb
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:826,1
    - Dst: OGR2SQLITE_SetGeom_AndDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:829,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 833
      start: 808
    functionDepth: 4
    functionLinenumber: 808
    functionLinenumberEnd: 833
    functionName: OGR2SQLITE_ST_GeomFromWKB
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - sqlite3_value_type
    - OGRGeometryFactory::createFromWkb
    - OGR2SQLITE_SetGeom_AndDestroy
    - reinterpret_cast<const GByte *>
    - sqlite3_value_int
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_GeomFromWKB(sqlite3_context *pContext, int argc,\n
      \                                     sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:850,1
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - pContext
    - argc
    - argv
    - poGeom1
    - poGeom2
    - pnSRSId
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    - std::unique_ptr<OGRGeometry>
    - std::unique_ptr<OGRGeometry>
    - int*
    constantsTouched: []
    func_position:
      end: 853
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 853
    functionName: CheckSTFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GetGeom
    linkageType: ''
    returnType: bool
    signature: "bool CheckSTFunctions(sqlite3_context *pContext, int argc,\n                             sqlite3_value
      **argv,\n                             std::unique_ptr<OGRGeometry> &poGeom1,\n
      \                            std::unique_ptr<OGRGeometry> &poGeom2,\n                             int
      *pnSRSId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:944,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:947,1
    - Dst: sqlite3_result_int
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:948,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:949,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 953
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 953
    functionName: OGR2SQLITE_ST_SRID
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - OGR2SQLITE_GetGeom
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_SRID(sqlite3_context *pContext, int argc,\n                                   sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:962,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:965,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:966,1
    - Dst: OGR_G_Area
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:967,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:967,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:967,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:968,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 972
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 972
    functionName: OGR2SQLITE_ST_Area
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR_G_Area
    - ToHandle
    - auto::get
    - sqlite3_result_double
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - OGR2SQLITE_GetGeom
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_Area(sqlite3_context *pContext, int argc,\n                               sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:981,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:984,1
    - Dst: sqlite3_result_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:985,1
    - Dst: OGR_G_Length
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:986,1
    - Dst: ToHandle
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:986,1
    - Dst: auto::get
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:986,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:987,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 991
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 991
    functionName: OGR2SQLITE_ST_Length
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - auto::get
    - OGR_G_Length
    - sqlite3_result_double
    - CPLPopErrorHandler
    - CPLPushErrorHandler
    - OGR2SQLITE_GetGeom
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_Length(sqlite3_context *pContext, int argc,\n                                 sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1001,1
    - Dst: OGR2SQLITE_SetGeom_AndDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1005,1
    - Dst: auto::Buffer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1005,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1008
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1008
    functionName: OGR2SQLITE_ST_Buffer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GetGeom
    - OGR2SQLITE_SetGeom_AndDestroy
    - auto::Buffer
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_Buffer(sqlite3_context *pContext, int argc,\n                                 sqlite3_value
      **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetValAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1021,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1024,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1034,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1038,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1042,1
    - Dst: OGR2SQLITE_SetGeom_AndDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1046
      start: 1014
    functionDepth: 4
    functionLinenumber: 1014
    functionLinenumberEnd: 1046
    functionName: OGR2SQLITE_ST_MakePoint
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGRPoint::OGRPoint
    - OGR2SQLITE_SetGeom_AndDestroy
    - sqlite3_result_null
    - OGR2SQLITE_GetValAsDouble
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_MakePoint(sqlite3_context *pContext, int argc,\n
      \                                   sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGR2SQLITE_GetGeom
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1058,1
    - Dst: OGR2SQLITE_SetGeom_AndDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1060,1
    - Dst: auto::MakeValid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1060,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1063
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1063
    functionName: OGR2SQLITE_ST_MakeValid
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - OGR2SQLITE_GetGeom
    - OGR2SQLITE_SetGeom_AndDestroy
    - sqlite3_result_null
    - auto::MakeValid
    linkageType: ''
    returnType: void
    signature: "void OGR2SQLITE_ST_MakeValid(sqlite3_context *pContext, int argc,\n
      \                                   sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1073,1
    - Dst: sqlite3_value_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1074,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1076,1
    - Dst: sqlite3_result_text
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1086,1
    - Dst: sqlite3_result_null
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pContext
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - CPL_UNUSED
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1089
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1089
    functionName: OGRSQLITE_hstore_get_value
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - sqlite3_value_type
    - sqlite3_result_null
    linkageType: ''
    returnType: void
    signature: "void OGRSQLITE_hstore_get_value(sqlite3_context *pContext,\n                                       CPL_UNUSED
      int argc,\n                                       sqlite3_value **argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteRegisterSQLFunctionsCommon
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1109,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1111,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1114,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1117,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1120,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1123,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1126,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1129,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1132,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1136,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1140,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1145,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1148,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1153,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1157,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1165,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1182,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1186,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1188,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1189,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1190,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1191,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1192,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1193,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1195,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1196,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1197,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1199,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1200,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1201,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1202,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1203,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1204,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1205,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1206,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1208,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1209,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1211,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1213,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1215,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1216,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1218,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1220,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1221,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1222,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1230,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1232,1
    - Dst: sqlite3_create_function
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1237,1
    - Dst: REGISTER_ST_op
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp:1270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 69
    argCount: 1
    argNames:
    - hDB
    argTypes:
    - sqlite3*
    constantsTouched: []
    func_position:
      end: 1275
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1275
    functionName: OGRSQLiteRegisterSQLFunctions
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_create_function
    - CPLDebug
    - OGRSQLiteRegisterSQLFunctionsCommon
    - CPL_IGNORE_RET_VAL
    - REGISTER_ST_op
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void *OGRSQLiteRegisterSQLFunctions(sqlite3 *hDB)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - LayerDesc
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: operator<(const LayerDesc &other) const
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteexecutesql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const LayerDesc &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - OGRSQLiteDataSource*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OGRSQLiteViewLayer::OGRSQLiteViewLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteViewLayer::OGRSQLiteViewLayer(OGRSQLiteDataSource *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:47,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:48,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: OGRSQLiteViewLayer::~OGRSQLiteViewLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - ClearStatement
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteViewLayer::~OGRSQLiteViewLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:63,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:64,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:69,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:70,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:76,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:76,1
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:78,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - pszViewNameIn
    - pszViewGeometry
    - pszViewRowid
    - pszUnderlyingTableName
    - pszUnderlyingGeometryColumn
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: OGRSQLiteViewLayer::Initialize
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - SetDescription
    - CPLFree
    - CPLStrdup
    - SQLEscapeLiteral
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRSQLiteViewLayer::Initialize(const char *pszViewNameIn,\n
      \                                     const char *pszViewGeometry,\n                                      const
      char *pszViewRowid,\n                                      const char *pszUnderlyingTableName,\n
      \                                     const char *pszUnderlyingGeometryColumn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::EstablishFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:92,1
    - Dst: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:98,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: OGRSQLiteViewLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 1
    functionsReached:
    - Reference
    - OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    - OGRSQLiteViewLayer::EstablishFeatureDefn
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRSQLiteViewLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:113,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:116,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:117,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:118,1
    - Dst: cpl::down_cast<OGRSQLiteLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:119,1
    - Dst: GetLayerByNameNotVisible
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:120,1
    - Dst: cpl::down_cast<OGRSQLiteLayer *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:123,1
    - Dst: GetLayerByNameNotVisible
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: OGRSQLiteViewLayer::GetUnderlyingLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLString::Printf
    - strchr
    - cpl::down_cast<OGRSQLiteLayer *>
    - GetLayerByNameNotVisible
    linkageType: ''
    returnType: OGRSQLiteLayer
    signature: OGRSQLiteLayer *OGRSQLiteViewLayer::GetUnderlyingLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:136,1
    - Dst: OGRSQLiteViewLayer::GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:138,1
    - Dst: OGRSQLiteLayer*::GetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: OGRSQLiteViewLayer::GetGeomType
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteViewLayer::GetUnderlyingLayer
    - OGRSQLiteViewLayer::GetGeomType
    - OGRSQLiteLayer*::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType OGRSQLiteViewLayer::GetGeomType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:151,1
    - Dst: OGRSQLiteViewLayer::GetUnderlyingLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:154,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:157,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:159,1
    - Dst: OGRSQLiteLayer*::IsTableLayer
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:164,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:166,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:175,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:178,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:179,1
    - Dst: OGRSQLiteLayer*::HasSpatialIndex
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:197,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:199,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:204,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:207,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:209,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:210,1
    - Dst: std::set::insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:219,1
    - Dst: BuildFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:220,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:222,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:227,1
    - Dst: OGRSQLiteLayer*::myGetLayerDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:230,1
    - Dst: myGetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:233,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:234,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:234,1
    - Dst: OGRSQLiteGeomFieldDefn*::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:235,1
    - Dst: OGRSQLiteGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 242
    functionName: OGRSQLiteViewLayer::EstablishFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 1
    functionsReached:
    - OGRSQLiteViewLayer::GetUnderlyingLayer
    - OGRSQLiteLayer*::IsTableLayer
    - OGRSQLiteGeomFieldDefn*::SetSpatialRef
    - c_str
    - OGRSQLiteGeomFieldDefn*::GetSpatialRef
    - GetDB
    - std::set::insert
    - OGRSQLiteGeomFieldDefn*::SetType
    - OGRSQLiteGeomFieldDefn*::GetType
    - sqlite3_step
    - sqlite3_errmsg
    - sqlite3_finalize
    - CPLError
    - BuildFeatureDefn
    - OGRSQLiteLayer*::HasSpatialIndex
    - GetGeomFieldCount
    - OGRSQLiteLayer*::myGetLayerDefn
    - myGetGeomFieldDefn
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSQLiteViewLayer::EstablishFeatureDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:253,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:257,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:258,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:259,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:270,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:272,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:272,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 275
    functionName: OGRSQLiteViewLayer::ResetStatement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GetDB
    - CPLString::Printf
    - SQLEscapeName
    - ClearStatement
    - CPLString::c_str
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteViewLayer::ResetStatement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:284,1
    - Dst: OGRSQLiteLayer::GetNextFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: OGRSQLiteViewLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteViewLayer::HasLayerDefnError
    - OGRSQLiteLayer::GetNextFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteViewLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:297,1
    - Dst: OGRSQLiteLayer::GetFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:305,1
    - Dst: ClearStatement
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:312,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:316,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:317,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:318,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:320,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:320,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:327,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:329,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:329,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:329,1
    - Dst: GetNextRawFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:336,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - nFeatureId
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 341
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 341
    functionName: OGRSQLiteViewLayer::GetFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteViewLayer::HasLayerDefnError
    - GetDB
    - GetNextRawFeature
    - ResetReading
    - CPLString::Printf
    - SQLEscapeName
    - CPLDebug
    - OGRSQLiteLayer::GetFeature
    - ClearStatement
    - CPLString::c_str
    - sqlite3_errmsg
    - CPLError
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteViewLayer::GetFeature(GIntBig nFeatureId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:355,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszQuery
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 360
    functionName: OGRSQLiteViewLayer::SetAttributeFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - OGRSQLiteViewLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteViewLayer::SetAttributeFilter(const char *pszQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallFilter
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:369,1
    - Dst: OGRSQLiteViewLayer::BuildWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:371,1
    - Dst: ResetReading
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poGeomIn
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: OGRSQLiteViewLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - ResetReading
    - InstallFilter
    - OGRSQLiteViewLayer::BuildWhere
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRSQLiteViewLayer::ISetSpatialFilter(int, const OGRGeometry
      *poGeomIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:385,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:386,1
    - Dst: OGRGeometry*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:393,1
    - Dst: CPLString::Printf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:405,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:409,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:417,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:418,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:428,1
    - Dst: FormatSpatialFilterFromRTree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:434,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:436,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:436,1
    - Dst: SQLEscapeLiteral
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:438,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:442,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:445,1
    - Dst: IsSpatialiteLoaded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:449,1
    - Dst: FormatSpatialFilterFromMBR
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:451,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:453,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - iGeomCol
    - poFilterGeom
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 459
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 459
    functionName: OGRSQLiteViewLayer::GetSpatialWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - IsSpatialiteLoaded
    - c_str
    - OGRSQLiteViewLayer::HasLayerDefnError
    - CPLString::Printf
    - GetGeomFieldDefn
    - SQLEscapeName
    - FormatSpatialFilterFromMBR
    - FormatSpatialFilterFromRTree
    - CPLSPrintf
    - CPLDebug
    - SQLEscapeLiteral
    - sqlite3_free
    - CPLError
    - GetGeomFieldCount
    - OGRGeometry*::getEnvelope
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OGRSQLiteViewLayer::GetSpatialWhere(int iGeomCol,\n                                              OGRGeometry
      *poFilterGeom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::GetSpatialWhere
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:474,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:475,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:481,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 495
    functionName: OGRSQLiteViewLayer::BuildWhere
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 2
    functionsReached:
    - OGRSQLiteViewLayer::GetSpatialWhere
    - empty
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteViewLayer::BuildWhere()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:504,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:507,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:508,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:511,1
    - Dst: OGRSQLiteLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: OGRSQLiteViewLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRSQLiteLayer::TestCapability
    - OGRSQLiteViewLayer::HasLayerDefnError
    - empty
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteViewLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSQLiteViewLayer::HasLayerDefnError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:530,1
    - Dst: OGRSQLiteViewLayer::TestCapability
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:533,1
    - Dst: OGRAPISpy_L_GetFeatureCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:534,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:549,1
    - Dst: GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:549,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:554,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 559
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 559
    functionName: OGRSQLiteViewLayer::GetFeatureCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - OGRSQLiteViewLayer::HasLayerDefnError
    - atoi
    - GetDB
    - OGRSQLiteViewLayer::TestCapability
    - sqlite3_get_table
    - OGRAPISpy_L_GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig OGRSQLiteViewLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:28,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:30,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:30,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:31,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszLayerName
    - nValIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 2
    functionsReached:
    - OGRFeatureDefn::OGRFeatureDefn
    - Reference
    - AddFieldDefn
    - SetDescription
    - GetName
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer(\n    const
      char *pszLayerName, int nValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:42,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:43,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:45,1
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszLayerName
    - pszValIn
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 2
    functionsReached:
    - Reference
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLStrdup
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteSingleFeatureLayer::OGRSQLiteSingleFeatureLayer(\n    const
      char *pszLayerName, const char *pszValIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:58,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: OGRSQLiteSingleFeatureLayer::~OGRSQLiteSingleFeatureLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSingleFeatureLayer::~OGRSQLiteSingleFeatureLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OGRSQLiteSingleFeatureLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteSingleFeatureLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:82,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:84,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:86,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: OGRSQLiteSingleFeatureLayer::GetNextFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature::OGRFeature
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRSQLiteSingleFeatureLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: OGRSQLiteSingleFeatureLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *OGRSQLiteSingleFeatureLayer::GetLayerDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OGRSQLiteSingleFeatureLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitesinglefeaturelayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGRSQLiteSingleFeatureLayer::TestCapability(const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RowCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RowCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: ColCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ColCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszNameIn
    - iGeomColIn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: OGRSQLiteGeomFieldDefn::OGRSQLiteGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteGeomFieldDefn(const char *pszNameIn, int iGeomColIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetGeomType
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: OGRSQLiteFeatureDefn::OGRSQLiteFeatureDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h
    functionUses: 5
    functionsReached:
    - SetGeomType
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteFeatureDefn(const char *pszName = nullptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGRSQLiteGeomFieldDefn *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:86,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: OGRSQLiteFeatureDefn::myGetGeomFieldDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - cpl::down_cast<OGRSQLiteGeomFieldDefn *>
    linkageType: ''
    returnType: OGRSQLiteGeomFieldDefn
    signature: OGRSQLiteGeomFieldDefn *myGetGeomFieldDefn(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:158,1
    - Dst: OGRSQLiteBaseDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:161,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:166,1
    - Dst: std::vector::back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:166,1
    - Dst: std::vector::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:171,1
    - Dst: std::vector::front
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 264
    functionName: GDALPamDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitebase.h
    functionUses: 0
    functionsReached:
    - OGRSQLiteBaseDataSource
    - CPL_DISALLOW_COPY_ASSIGN
    - std::vector::back
    - std::vector::front
    - std::vector::empty
    linkageType: ''
    returnType: class OGRSQLiteBaseDataSource
    signature: class OGRSQLiteBaseDataSource GDALPamDataset
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:35,1
    - Dst: strchr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:35,1
    - Dst: SQLEscapeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: EscapeNameAndQuoteIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - SQLEscapeName
    linkageType: ''
    returnType: CPLString
    signature: CPLString EscapeNameAndQuoteIfNeeded(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:58,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:67,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:74,1
    - Dst: rl2_create_coverage_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:86,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:90,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:91,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:92,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:94,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:95,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:99,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:105,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:110,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:111,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:111,1
    - Dst: rl2_destroy_coverage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:113,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:117,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:119,1
    - Dst: OGRSQLiteDataSource::OpenRasterSubDataset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:125,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 133
    functionName: OGRSQLiteDataSource::OpenRaster
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - rl2_create_coverage_from_dbms
    - size
    - empty
    - CPLSPrintf
    - EQUAL
    - sqlite3_get_table
    - CPLString::c_str
    - AddNameValue
    - OGRSQLiteDataSource::OpenRasterSubDataset
    - EscapeNameAndQuoteIfNeeded
    - rl2_destroy_coverage
    linkageType: ''
    returnType: bool
    signature: bool OGRSQLiteDataSource::OpenRaster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:143,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:148,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:150,1
    - Dst: Clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:154,1
    - Dst: SQLUnescape
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:156,1
    - Dst: CSLCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:158,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:158,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:160,1
    - Dst: rl2_create_coverage_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:166,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:167,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:175,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:175,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:186,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:199,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:201,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:203,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:205,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:208,1
    - Dst: AddNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:210,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:211,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:212,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:213,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:218,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:224,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:246,1
    - Dst: rl2_resolve_full_section_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:253,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:259,1
    - Dst: rl2_get_coverage_resolution
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:268,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:281,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:293,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:294,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:295,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:296,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:299,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:306,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:309,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:310,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:314,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:315,1
    - Dst: rl2_get_coverage_srid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:326,1
    - Dst: OGRSQLiteDataSource::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:328,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:332,1
    - Dst: rl2_get_coverage_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:340,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:341,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:350,1
    - Dst: CPLFetchBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:358,1
    - Dst: rl2_get_coverage_compression
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:429,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:477,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:485,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:485,1
    - Dst: rl2_get_coverage_tile_size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:496,1
    - Dst: rl2_get_coverage_no_data
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:504,1
    - Dst: rl2_get_pixel_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:510,1
    - Dst: rl2_get_pixel_sample_1bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:527,1
    - Dst: rl2_get_pixel_sample_2bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:534,1
    - Dst: rl2_get_pixel_sample_4bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:541,1
    - Dst: rl2_get_pixel_sample_int8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:548,1
    - Dst: rl2_get_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:555,1
    - Dst: rl2_get_pixel_sample_int16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:562,1
    - Dst: rl2_get_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:569,1
    - Dst: rl2_get_pixel_sample_int32
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:576,1
    - Dst: rl2_get_pixel_sample_uint32
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:583,1
    - Dst: rl2_get_pixel_sample_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:590,1
    - Dst: rl2_get_pixel_sample_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:597,1
    - Dst: std::vector::push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:603,1
    - Dst: std::vector::size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:613,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:618,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:620,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:622,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:622,1
    - Dst: SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:629,1
    - Dst: RL2RasterBand::RL2RasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:630,1
    - Dst: rl2_create_raster_statistics_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:639,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:645,1
    - Dst: rl2_get_band_statistics
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:652,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:653,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:657,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:658,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:659,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:660,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:661,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:662,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:663,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:664,1
    - Dst: rl2_destroy_raster_statistics
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:667,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:681,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:689,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:691,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:694,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:696,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:699,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:708,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:710,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:710,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:711,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:712,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:714,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:722,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:725,1
    - Dst: rl2_get_coverage_policies
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:735,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:738,1
    - Dst: OGRSQLiteDataSource::ListOverviews
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:740,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 325
    argCount: 1
    argNames:
    - pszConnectionId
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 746
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 746
    functionName: OGRSQLiteDataSource::OpenRasterSubDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 2
    functionsReached:
    - rl2_get_band_statistics
    - rl2_get_coverage_tile_size
    - rl2_get_pixel_sample_int32
    - rl2_destroy_raster_statistics
    - std::vector::size
    - rl2_get_pixel_sample_1bit
    - rl2_get_coverage_srid
    - GetRasterBand
    - rl2_get_pixel_sample_2bit
    - rl2_get_coverage_policies
    - CPLError
    - std::vector::push_back
    - OGRSQLiteDataSource::FetchSRS
    - rl2_get_coverage_compression
    - CPLString::empty
    - CPL_TO_BOOL
    - sqlite3_free_table
    - static_cast<unsigned char>
    - Clear
    - rl2_get_coverage_no_data
    - CPLAtoGIntBig
    - CPLString::c_str
    - SetAxisMappingStrategy
    - sqlite3_mprintf
    - rl2_create_raster_statistics_from_dbms
    - CSLCount
    - rl2_get_pixel_sample_int8
    - rl2_create_coverage_from_dbms
    - CPLAtof
    - STARTS_WITH_CI
    - c_str
    - static_cast<int>
    - rl2_get_pixel_type
    - CPLFetchBool
    - rl2_get_pixel_sample_uint16
    - OGRSQLiteDataSource::ListOverviews
    - CPLSPrintf
    - GDALRasterBand*::GDALRasterBand::SetMetadataItem
    - rl2_resolve_full_section_from_dbms
    - rl2_get_pixel_sample_int16
    - rl2_get_coverage_type
    - rl2_get_pixel_sample_uint32
    - GDALCheckBandCount
    - RL2RasterBand::RL2RasterBand
    - rl2_get_pixel_sample_4bit
    - rl2_get_pixel_sample_float
    - SetBand
    - OGRPGTableLayer::SetMetadataItem
    - CSLDestroy
    - EQUAL
    - rl2_get_coverage_resolution
    - sqlite3_get_table
    - sqlite3_free
    - rl2_get_pixel_sample_double
    - AddNameValue
    - rl2_get_pixel_sample_uint8
    - EscapeNameAndQuoteIfNeeded
    - SQLUnescape
    linkageType: ''
    returnType: bool
    signature: "bool OGRSQLiteDataSource::OpenRasterSubDataset(\n    CPL_UNUSED const
      char *pszConnectionId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:761,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:768,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:768,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:772,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:780,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:780,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:781,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:789,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:791,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:792,1
    - Dst: OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:808,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:808,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:809,1
    - Dst: OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:813,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:813,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:814,1
    - Dst: OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:818,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:818,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:819,1
    - Dst: OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:823,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:823,1
    - Dst: CPLAtof
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:824,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:827,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 830
    functionName: OGRSQLiteDataSource::ListOverviews
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - sqlite3_free_table
    - c_str
    - static_cast<int>
    - OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
    - CPLSPrintf
    - CPLDebug
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void OGRSQLiteDataSource::ListOverviews()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:839,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:842,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:844,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:851,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:866,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:867,1
    - Dst: CPLTestBool
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:870,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:870,1
    - Dst: OGRSQLiteDataSource*::SetBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:877,1
    - Dst: reinterpret_cast<RL2RasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:878,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:879,1
    - Dst: RL2RasterBand::RL2RasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:878,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - dfXRes
    - dfYRes
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 882
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 882
    functionName: OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 1
    functionsReached:
    - size
    - CPLTestBool
    - static_cast<int>
    - reinterpret_cast<RL2RasterBand *>
    - GetRasterBand
    - push_back
    - fabs
    - OGRSQLiteDataSource*::SetBand
    - CPLGetConfigOption
    - OGRSQLiteDataSource::OGRSQLiteDataSource
    - RL2RasterBand::RL2RasterBand
    linkageType: ''
    returnType: void
    signature: "void OGRSQLiteDataSource::CreateRL2OverviewDatasetIfNeeded(double
      dfXRes,\n                                                           double dfYRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:900,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:902,1
    - Dst: static_cast<GDALColorInterp>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 9
    argNames:
    - nBandIn
    - nPixelType
    - eDT
    - nBits
    - bPromote1BitAs8Bit
    - nBlockXSizeIn
    - nBlockYSizeIn
    - bHasNoDataIn
    - dfNoDataValueIn
    argTypes:
    - int
    - int
    - GDALDataType
    - int
    - bool
    - int
    - int
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 918
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 918
    functionName: RL2RasterBand::RL2RasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 2
    functionsReached:
    - OGRPGTableLayer::SetMetadataItem
    - CPLSPrintf
    - static_cast<GDALColorInterp>
    linkageType: ''
    returnType: void
    signature: "void RL2RasterBand::RL2RasterBand(int nBandIn, int nPixelType, GDALDataType
      eDT,\n                             int nBits, bool bPromote1BitAs8Bit,\n                             int
      nBlockXSizeIn, int nBlockYSizeIn,\n                             bool bHasNoDataIn,
      double dfNoDataValueIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:929,1
    - Dst: const_cast<RL2RasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poOther
    argTypes:
    - RL2RasterBand*
    constantsTouched: []
    func_position:
      end: 938
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 938
    functionName: RL2RasterBand::RL2RasterBand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 2
    functionsReached:
    - const_cast<RL2RasterBand *>
    - OGRPGTableLayer::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void RL2RasterBand::RL2RasterBand(const RL2RasterBand *poOther)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: RL2RasterBand::~RL2RasterBand()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RL2RasterBand::~RL2RasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:955,1
    - Dst: rl2_get_dbms_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:958,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:959,1
    - Dst: rl2_get_coverage_name
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:960,1
    - Dst: OGRSQLiteDataSource*::GetRL2CoveragePtr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:960,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:963,1
    - Dst: rl2_get_palette_colors
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:968,1
    - Dst: SetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:979,1
    - Dst: rl2_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:981,1
    - Dst: rl2_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:982,1
    - Dst: rl2_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:983,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 989
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 989
    functionName: RL2RasterBand::GetColorTable
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - rl2_get_dbms_palette
    - OGRSQLiteDataSource*::GetDB
    - SetColorEntry
    - rl2_get_palette_colors
    - reinterpret_cast<OGRSQLiteDataSource *>
    - rl2_free
    - GDALColorTable::GDALColorTable
    - OGRSQLiteDataSource*::GetRL2CoveragePtr
    - rl2_get_coverage_name
    - rl2_destroy_palette
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *RL2RasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:997,1
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: RL2RasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    - reinterpret_cast<OGRSQLiteDataSource *>
    linkageType: ''
    returnType: int
    signature: int RL2RasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1010,1
    - Dst: OGRSQLiteDataSource*::GetOverviews
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1016,1
    - Dst: GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1016,1
    - Dst: GDALOpenFileGDBRasterBand::GetOverview
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1019
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1019
    functionName: RL2RasterBand::GetOverview
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteDataSource*::GetOverviews
    - reinterpret_cast<OGRSQLiteDataSource *>
    - GetRasterBand
    - GDALOpenFileGDBRasterBand::GetOverview
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *RL2RasterBand::GetOverview(int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1034
    functionName: RL2RasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double RL2RasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<OGRSQLiteDataSource *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1042,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1044,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1060,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1060,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1060,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1061,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1062,1
    - Dst: OGRSQLiteDataSource*::GetRL2CoveragePtr
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1063,1
    - Dst: rl2_get_coverage_type
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1067,1
    - Dst: OGRSQLiteDataSource*::GetSectionId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1075,1
    - Dst: OGRSQLiteDataSource*::IsRL2MixedResolutions
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1077,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1077,1
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1106,1
    - Dst: rl2_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1108,1
    - Dst: OGRSQLiteDataSource*::HasPromote1BitAS8Bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1113,1
    - Dst: OGRSQLiteDataSource*::GetParentDS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1113,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1115,1
    - Dst: GDALCopyWords
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1123,1
    - Dst: reinterpret_cast<RL2RasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1136,1
    - Dst: OGRSQLiteDataSource*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1136,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1140,1
    - Dst: reinterpret_cast<RL2RasterBand *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1144,1
    - Dst: OGRSQLiteDataSource*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1144,1
    - Dst: GDALCopyWords
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1149,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1153,1
    - Dst: rl2_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1157,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1160
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1160
    functionName: RL2RasterBand::IReadBlock
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - OGRSQLiteDataSource*::GetSectionId
    - OGRSQLiteDataSource*::GetDB
    - reinterpret_cast<OGRSQLiteDataSource *>
    - reinterpret_cast<RL2RasterBand *>
    - OGRSQLiteDataSource*::GetRasterBand
    - CPLDebug
    - rl2_free
    - GDALRasterBlock*::DropLock
    - OGRSQLiteDataSource*::HasPromote1BitAS8Bit
    - OGRSQLiteDataSource*::GetRL2CoveragePtr
    - static_cast<GByte *>
    - OGRSQLiteDataSource*::GetParentDS
    - OGRSQLiteDataSource*::IsRL2MixedResolutions
    - rl2_get_coverage_type
    - GDALCopyWords
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr RL2RasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1173,1
    - Dst: static_cast<T>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - poSrcDS
    - nBand
    - nDefault
    argTypes:
    - GDALDataset*
    - int
    - T
    constantsTouched: []
    func_position:
      end: 1175
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1175
    functionName: GetNoDataValue
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 2
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T GetNoDataValue(GDALDataset *poSrcDS, int nBand, T nDefault)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rl2_create_pixel
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1186,1
    - Dst: rl2_set_pixel_sample_1bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1192,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1193,1
    - Dst: rl2_set_pixel_sample_1bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1199,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1200,1
    - Dst: rl2_set_pixel_sample_2bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1203,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1204,1
    - Dst: rl2_set_pixel_sample_4bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1207,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1208,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1211,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1212,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1215,1
    - Dst: rl2_set_pixel_sample_1bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1223,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1224,1
    - Dst: rl2_set_pixel_sample_2bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1227,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1228,1
    - Dst: rl2_set_pixel_sample_4bit
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1231,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1232,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1235,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1236,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1239,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1240,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1243,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1251,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1252,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1253,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1254,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1255,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1256,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1259,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1260,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1261,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1262,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1263,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1264,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1267,1
    - Dst: rl2_set_pixel_sample_int8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1275,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1276,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1279,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1280,1
    - Dst: rl2_set_pixel_sample_int16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1283,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1284,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1287,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1288,1
    - Dst: rl2_set_pixel_sample_int32
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1291,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1292,1
    - Dst: rl2_set_pixel_sample_uint32
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1295,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1296,1
    - Dst: rl2_set_pixel_sample_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1299,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1300,1
    - Dst: rl2_set_pixel_sample_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1303,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1304,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1307,1
    - Dst: rl2_set_pixel_sample_uint8
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1316,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1318,1
    - Dst: rl2_set_pixel_sample_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1322,1
    - Dst: GetNoDataValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1324,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1327,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1332,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 116
    argCount: 4
    argNames:
    - nSampleType
    - nPixelType
    - nBandCount
    - poSrcDS
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 1336
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1336
    functionName: CreateNoData
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - rl2_set_pixel_sample_int32
    - rl2_set_pixel_sample_float
    - rl2_set_pixel_sample_uint8
    - rl2_set_pixel_sample_double
    - rl2_set_pixel_sample_int8
    - rl2_set_pixel_sample_1bit
    - rl2_set_pixel_sample_2bit
    - GetNoDataValue
    - rl2_create_pixel
    - rl2_set_pixel_sample_uint32
    - CPLAssert
    - rl2_set_pixel_sample_4bit
    - rl2_set_pixel_sample_uint16
    - rl2_set_pixel_sample_int16
    linkageType: ''
    returnType: rl2PixelPtr
    signature: "rl2PixelPtr CreateNoData(unsigned char nSampleType,\n                                unsigned
      char nPixelType,\n                                unsigned char nBandCount,
      GDALDataset *poSrcDS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1359,1
    - Dst: static_cast<RasterLite2CallbackData *>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1363,1
    - Dst: rl2_clone_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1367,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1385,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1388,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1391,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1394,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1397,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1402,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1403,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1407,1
    - Dst: RasterLite2CallbackData*::poSrcDS::RasterIO
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1409,1
    - Dst: RasterLite2CallbackData*::pfnProgress
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1417,1
    - Dst: static_cast<double>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1417,1
    - Dst: RasterLite2CallbackData*::poSrcDS::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1418,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1445,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1451,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 7
    argNames:
    - data
    - dfTileMinX
    - dfTileMinY
    - dfTileMaxX
    - dfTileMaxY
    - pabyBuffer
    - pOutPalette
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    - unsigned char*
    - rl2PalettePtr*
    constantsTouched: []
    func_position:
      end: 1463
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1463
    functionName: RasterLite2Callback
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - rl2_clone_palette
    - RasterLite2CallbackData*::pfnProgress
    - static_cast<size_t>
    - static_cast<double>
    - RasterLite2CallbackData*::poSrcDS::GetRasterXSize
    - RasterLite2CallbackData*::poSrcDS::RasterIO
    - CPLDebug
    - memset
    - RasterLite2CallbackData*::poSrcDS::GetRasterBand
    - CPLError
    - RasterLite2CallbackData*::poSrcDS::GetRasterYSize
    - static_cast<GSpacing>
    - static_cast<RasterLite2CallbackData *>
    linkageType: ''
    returnType: int
    signature: "int RasterLite2Callback(void *data, double dfTileMinX, double dfTileMinY,\n
      \                              double dfTileMaxX, double dfTileMaxY,\n                               unsigned
      char *pabyBuffer,\n                               rl2PalettePtr *pOutPalette)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1475,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1475,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1477,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1482,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1485,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1491,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1492,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1494,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1499,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1509,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1511,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1513,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1515,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1517,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1519,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1526,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1531,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1533,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1535,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1555,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1558,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1564,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1568,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1574,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1602,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1627,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1636,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1638,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1640,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1642,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1644,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1646,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1651,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1656,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1663,1
    - Dst: rl2_is_supported_codec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1666,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1668,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1682,1
    - Dst: CPLAssert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1686,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1692,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1700,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1709,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1716,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1725,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1731,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1740,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1746,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1755,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1766,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1783,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1797,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1806,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1815,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1827,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1839,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1854,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1868,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1884,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1900,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1902,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1910,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1925,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1927,1
    - Dst: OGRSQLiteDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1931,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1940,1
    - Dst: OGRSQLiteDataSource*::Create
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1941,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1943,1
    - Dst: CSLDestroy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1947,1
    - Dst: atoi
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1959,1
    - Dst: OGRSQLiteDataSource*::FetchSRS
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1962,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1965,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1974,1
    - Dst: OGRSQLiteDataSource*::FetchSRSId
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1977,1
    - Dst: OGRSQLiteDataSource*::StartTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1981,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1986,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1986,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1990,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:1999,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2001,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2007,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2008,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2015,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2015,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2017,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2018,1
    - Dst: rl2_create_coverage_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2021,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2021,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2022,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2033,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2036,1
    - Dst: rl2_create_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2042,1
    - Dst: GDALColorTable*::GetColorEntry
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2045,1
    - Dst: rl2_set_palette_color
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2046,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2046,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2047,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2048,1
    - Dst: CreateNoData
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2064,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2069,1
    - Dst: rl2_create_dbms_coverage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2073,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2074,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2074,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2080,1
    - Dst: rl2_destroy_pixel
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2082,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2084,1
    - Dst: rl2_destroy_pixel
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2089,1
    - Dst: rl2_create_coverage_from_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2094,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2094,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2095,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2099,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2112,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2113,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2122,1
    - Dst: rl2_load_raw_tiles_into_dbms
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2124,1
    - Dst: OGRSQLiteDataSource*::GetDB
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2125,1
    - Dst: OGRSQLiteDataSource*::GetRL2Context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2125,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2126,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2126,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2130,1
    - Dst: rl2_destroy_coverage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2133,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2135,1
    - Dst: rl2_destroy_coverage
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2139,1
    - Dst: rl2_destroy_palette
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2141,1
    - Dst: OGRSQLiteDataSource*::CommitTransaction
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2143,1
    - Dst: OGRSQLiteDataSource::OGRSQLiteDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2147,1
    - Dst: CPLSPrintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2149,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2150,1
    - Dst: EscapeNameAndQuoteIfNeeded
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2151,1
    - Dst: std::string::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2151,1
    - Dst: OGRSQLiteDataSource*::Open
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2153,1
    CyclomaticComplexity: 188
    EdgeCount: 188
    ICount: 360
    argCount: 5
    argNames:
    - pszName
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2155
      start: 1469
    functionDepth: 5
    functionLinenumber: 1469
    functionLinenumberEnd: 2155
    functionName: OGRSQLiteDriverCreateCopy
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - rl2_create_palette
    - static_cast<GByte>
    - CPLError
    - GDALDataset*::GetRasterCount
    - std::string::c_str
    - CSLFetchNameValue
    - GDALGetDataTypeName
    - sqlite3_free_table
    - rl2_create_dbms_coverage
    - rl2_load_raw_tiles_into_dbms
    - GDALDataset*::GetSpatialRef
    - OGRSQLiteDataSource*::FetchSRSId
    - CreateNoData
    - rl2_destroy_palette
    - OGRSQLiteDataSource*::CommitTransaction
    - GDALDataset*::GetGeoTransform
    - rl2_create_coverage_from_dbms
    - GDALDataset*::GetRasterBand
    - OGRSQLiteDataSource*::FetchSRS
    - CPLSPrintf
    - GDALDataset*::GetRasterXSize
    - CPLAssert
    - rl2_is_supported_codec
    - OGRSQLiteDataSource::OGRSQLiteDataSource
    - OGRSQLiteDataSource*::GetRL2Context
    - OGRSQLiteDataSource*::Open
    - GDALDataset*::GetRasterYSize
    - OGRSQLiteDataSource*::GetDB
    - CPLGetBasenameSafe
    - OGRSQLiteDataSource*::Create
    - CSLDestroy
    - CSLFetchNameValueDef
    - EQUAL
    - sqlite3_get_table
    - rl2_destroy_pixel
    - OGRSQLiteDataSource*::StartTransaction
    - sqlite3_free
    - GDALColorTable*::GetColorEntry
    - rl2_set_palette_color
    - memcpy
    - CSLSetNameValue
    - EscapeNameAndQuoteIfNeeded
    - rl2_destroy_coverage
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRSQLiteDriverCreateCopy(const char *pszName,\n                                       GDALDataset
      *poSrcDS, int /* bStrict */,\n                                       char **papszOptions,\n
      \                                      GDALProgressFunc pfnProgress,\n                                       void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2170,1
    - Dst: rl2_delete_section_pyramid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2180,1
    - Dst: rl2_delete_all_pyramids
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2184,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2188,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2195,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2197,1
    - Dst: CPLIsPowerOfTwo
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2205,1
    - Dst: rl2_build_section_pyramid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2219,1
    - Dst: OGRSQLiteDataSource::GetRL2Context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2219,1
    - Dst: rl2_build_monolithic_pyramid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2225,1
    - Dst: OGRSQLiteDataSource::GetRL2Context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2225,1
    - Dst: rl2_build_monolithic_pyramid
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2232,1
    - Dst: OGRSQLiteDataSource::GetRL2Context
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2232,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2238,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2243,1
    - Dst: clear
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2245,1
    - Dst: OGRSQLiteDataSource::ListOverviews
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nBandsIn
    argTypes:
    - char*
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2249
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2249
    functionName: OGRSQLiteDataSource::IBuildOverviews
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - size
    - STARTS_WITH_CI
    - rl2_build_section_pyramid
    - rl2_delete_section_pyramid
    - OGRSQLiteDataSource::ListOverviews
    - OGRSQLiteDataSource::GetRL2Context
    - rl2_delete_all_pyramids
    - CPLError
    - rl2_build_monolithic_pyramid
    - CPLIsPowerOfTwo
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGRSQLiteDataSource::IBuildOverviews(\n    const char *pszResampling,
      int nOverviews, const int *panOverviewList,\n    int nBandsIn, const int * /*panBandList
      */,\n    GDALProgressFunc /*pfnProgress*/, void * /*pProgressData*/,\n    CSLConstList
      /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2259,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2260,1
    - Dst: List
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2262,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2265
    functionName: OGRSQLiteDataSource::GetMetadata
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - size
    - GDALPamDataset::GetMetadata
    - List
    linkageType: ''
    returnType: char
    signature: char **OGRSQLiteDataSource::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2275,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 2279
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2279
    functionName: OGRSQLiteDataSource::GetGeoTransform
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRSQLiteDataSource::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2287,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2290
    functionName: OGRSQLiteDataSource::GetSpatialRef
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/rasterlite2.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGRSQLiteDataSource::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - NUMTYPE
    - NUMTYPE
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: min0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NUMTYPE
    signature: NUMTYPE min0(NUMTYPE x, NUMTYPE y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - NUMTYPE
    - NUMTYPE
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: max0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NUMTYPE
    signature: NUMTYPE max0(NUMTYPE x, NUMTYPE y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:131,1
    - Dst: struct sqlite_rtree_bl*::malloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:131,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tr
    - kind
    argTypes:
    - struct sqlite_rtree_bl*
    - enum kind
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: node_new
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - struct sqlite_rtree_bl*::malloc
    - STATIC_CAST
    - memset
    linkageType: ''
    returnType: struct node
    signature: struct node *node_new(struct sqlite_rtree_bl *tr, enum kind kind)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:144,1
    - Dst: struct sqlite_rtree_bl*::free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tr
    - node
    argTypes:
    - struct sqlite_rtree_bl*
    - struct node*
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: node_free
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - node_free
    - struct sqlite_rtree_bl*::free
    linkageType: ''
    returnType: void
    signature: void node_free(struct sqlite_rtree_bl *tr, struct node *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min0
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:153,1
    - Dst: max0
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rect
    - other
    argTypes:
    - struct rect*
    - struct rect*
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: rect_expand
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - max0
    - min0
    linkageType: ''
    returnType: void
    signature: void rect_expand(struct rect *rect, const struct rect *other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rect
    argTypes:
    - struct rect*
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: rect_area
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: double
    signature: double rect_area(const struct rect *rect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:171,1
    - Dst: max0
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:171,1
    - Dst: min0
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rect
    - other
    argTypes:
    - struct rect*
    - struct rect*
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: rect_unioned_area
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - max0
    - STATIC_CAST
    - min0
    linkageType: ''
    returnType: double
    signature: "double rect_unioned_area(const struct rect *rect,\n                                const
      struct rect *other)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - rect
    - other
    argTypes:
    - struct rect*
    - struct rect*
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: rect_contains
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rect_contains(const struct rect *rect, const struct rect *other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rect
    argTypes:
    - struct rect*
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: rect_margin
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double rect_margin(const struct rect *rect)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - rect1
    - rect2
    argTypes:
    - struct rect*
    - struct rect*
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: rect_overlap
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double rect_overlap(const struct rect *rect1, const struct rect *rect2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:217,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: CompareAxis0
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: int
    signature: int CompareAxis0(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:234,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: CompareAxis1
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: int
    signature: int CompareAxis1(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:261,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:264,1
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:267,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:271,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:284,1
    - Dst: qsort
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:285,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:287,1
    - Dst: std::sort
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:292,1
    - Dst: rect_expand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:313,1
    - Dst: rect_expand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:315,1
    - Dst: rect_margin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:318,1
    - Dst: rect_margin
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:319,1
    - Dst: node_new
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:336,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 6
    argNames:
    - tr
    - node
    - extraRect
    - extraData
    - extraNode
    - right_out
    argTypes:
    - struct sqlite_rtree_bl*
    - struct node*
    - struct rect*
    - struct item
    - struct node*
    - struct node**
    constantsTouched: []
    func_position:
      end: 364
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 364
    functionName: node_split_rstartree
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - qsort
    - node_new
    - assert
    - rect_expand
    - std::sort
    - rect_margin
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool node_split_rstartree(struct sqlite_rtree_bl *tr,\n                                 struct
      node *node,\n                                 const struct rect *extraRect,\n
      \                                struct item extraData,\n                                 struct
      node *extraNode,\n                                 struct node **right_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - node
    - ir
    argTypes:
    - struct node*
    - struct rect*
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: node_choose_least_enlargement
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int node_choose_least_enlargement(const struct node *node,\n                                         const
      struct rect *ir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rect_contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:398,1
    - Dst: rect_contains
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - tr
    - node
    - rect
    - depth
    argTypes:
    - struct sqlite_rtree_bl*
    - struct node*
    - struct rect*
    - int
    constantsTouched: []
    func_position:
      end: 430
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 430
    functionName: node_choose
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - rect_contains
    linkageType: ''
    returnType: int
    signature: "int node_choose(struct sqlite_rtree_bl * tr,\n                       const
      struct node *node,\n                       const struct rect *rect,\n                       int
      depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rect_expand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct node*
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: node_rect_calc
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - rect_expand
    linkageType: ''
    returnType: struct rect
    signature: struct rect node_rect_calc(const struct node *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:468,1
    - Dst: rect_expand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:474,1
    - Dst: node_split_rstartree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:480,1
    - Dst: node_rect_calc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:484,1
    - Dst: node_rect_calc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:489,1
    - Dst: node_rect_calc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 9
    argNames:
    - tr
    - node
    - ir
    - item
    - depth
    - split
    - rectToInsert
    - itemToInsert
    - nodeToInsert
    argTypes:
    - struct sqlite_rtree_bl*
    - struct node*
    - struct rect*
    - struct item
    - int
    - bool*
    - struct rect*
    - struct item*
    - struct node**
    constantsTouched: []
    func_position:
      end: 500
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 500
    functionName: node_insert
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - node_insert
    - node_rect_calc
    - node_split_rstartree
    - rect_expand
    linkageType: ''
    returnType: bool
    signature: "bool node_insert(struct sqlite_rtree_bl *tr,\n                        struct
      node *node,\n                        const struct rect *ir,\n                        struct
      item item,\n                        int depth,\n                        bool
      *split,\n                        struct rect *rectToInsert,\n                        struct
      item *itemToInsert,\n                        struct node** nodeToInsert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:510,1
    - Dst: pfnMalloc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:510,1
    - Dst: memset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - sqlite_page_size
    - (*pfnMalloc)(size_t)
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 525
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 525
    functionName: sqlite_rtree_bl_new_with_allocator
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - pfnMalloc
    - memset
    - STATIC_CAST
    linkageType: ''
    returnType: struct sqlite_rtree_bl
    signature: "struct sqlite_rtree_bl *sqlite_rtree_bl_new_with_allocator(int sqlite_page_size,\n
      \                                             void *(*pfnMalloc)(size_t),\n
      \                                             void (*pfnFree)(void*))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_rtree_bl_new_with_allocator
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sqlite_page_size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - sqlite_rtree_bl_new_with_allocator
    linkageType: ''
    returnType: struct sqlite_rtree_bl
    signature: struct sqlite_rtree_bl *SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_new)(int
      sqlite_page_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: rtreeValueDown
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: float
    signature: float rtreeValueDown(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: rtreeValueUp
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: float
    signature: float rtreeValueUp(double d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:567,1
    - Dst: rtreeValueDown
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:568,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:569,1
    - Dst: rtreeValueUp
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:570,1
    - Dst: node_new
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:581,1
    - Dst: node_insert
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:590,1
    - Dst: rect_expand
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:595,1
    - Dst: node_new
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:599,1
    - Dst: node_split_rstartree
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:604,1
    - Dst: struct sqlite_rtree_bl*::free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:605,1
    - Dst: node_rect_calc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:608,1
    - Dst: node_rect_calc
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 6
    argNames:
    - tr
    - fid
    - minx
    - miny
    - maxx
    - maxy
    argTypes:
    - struct sqlite_rtree_bl*
    - int64_t
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 617
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 617
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - rtreeValueDown
    - node_rect_calc
    - node_new
    - rect_expand
    - struct sqlite_rtree_bl*::free
    - node_split_rstartree
    - node_insert
    - rtreeValueUp
    linkageType: ''
    returnType: bool
    signature: "bool SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_insert)(struct sqlite_rtree_bl
      *tr,\n                         int64_t fid,\n                         double
      minx, double miny,\n                         double maxx, double maxy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tr
    argTypes:
    - sqlite_rtree_bl*
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_ram_usage)(const sqlite_rtree_bl*
      tr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:626,1
    - Dst: struct sqlite_rtree_bl*::free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tr
    argTypes:
    - struct sqlite_rtree_bl*
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - node_free
    - struct sqlite_rtree_bl*::free
    linkageType: ''
    returnType: void
    signature: void SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_free)(struct sqlite_rtree_bl
      *tr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:633,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - n
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: write_be_uint16
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: void
    signature: void write_be_uint16(uint8_t* dest, uint16_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:639,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:640,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:641,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:642,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:643,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:644,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:645,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - i
    argTypes:
    - uint8_t*
    - int64_t
    constantsTouched: []
    func_position:
      end: 647
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 647
    functionName: write_be_int64
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    linkageType: ''
    returnType: void
    signature: void write_be_int64(uint8_t* dest, int64_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:651,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:652,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:653,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:654,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - f
    argTypes:
    - uint8_t*
    - float
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: write_be_float
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - STATIC_CAST
    - memcpy
    linkageType: ''
    returnType: void
    signature: void write_be_float(uint8_t* dest, float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: my_sqlite3_strdup
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * my_sqlite3_strdup(const char* s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_be_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:700,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:704,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:708,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:712,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:716,1
    - Dst: insert_into_db
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:720,1
    - Dst: write_be_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:731,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:735,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:739,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:743,1
    - Dst: write_be_float
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:747,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:752,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:753,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:754,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:758,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:758,1
    - Dst: write_be_uint16
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:768,1
    - Dst: STATIC_CAST
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:768,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:770,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:771,1
    - Dst: sqlite3_bind_blob
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:772,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:778,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:778,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:785,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:786,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:787,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:791,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:791,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 5
    argNames:
    - ctxt
    - node
    - p_cur_nodeno
    - parent_nodeno
    - pass
    argTypes:
    - struct rtree_insert_context*
    - struct node*
    - int64_t*
    - int64_t
    - PassType
    constantsTouched: []
    func_position:
      end: 798
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 798
    functionName: insert_into_db
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - write_be_float
    - sqlite3_bind_blob
    - write_be_int64
    - write_be_uint16
    - my_sqlite3_strdup
    - sqlite3_bind_int64
    - sqlite3_errmsg
    - insert_into_db
    - STATIC_CAST
    linkageType: ''
    returnType: bool
    signature: "bool insert_into_db(const struct rtree_insert_context* ctxt,\n                           const
      struct node* node,\n                           int64_t* p_cur_nodeno,\n                           int64_t
      parent_nodeno,\n                           PassType pass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 808
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 808
    functionName: IsLowercaseAlpha
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLowercaseAlpha(const char* s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLowercaseAlpha
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:825,1
    - Dst: IsLowercaseAlpha
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:826,1
    - Dst: IsLowercaseAlpha
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:827,1
    - Dst: IsLowercaseAlpha
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:828,1
    - Dst: IsLowercaseAlpha
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:829,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:831,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:837,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:843,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:853,1
    - Dst: sqlite3_exec
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:854,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:855,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:861,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:862,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:862,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:863,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:869,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:870,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:870,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:871,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:873,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:878,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:879,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:879,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:880,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:882,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:883,1
    - Dst: insert_into_db
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:900,1
    - Dst: insert_into_db
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:904,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:907,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:908,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:909,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 9
    argNames:
    - tr
    - hDB
    - rtree_name
    - rowid_colname
    - minx_colname
    - miny_colname
    - maxx_colname
    - maxy_colname
    - p_error_msg
    argTypes:
    - struct sqlite_rtree_bl*
    - sqlite3*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 911
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 911
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - sqlite3_exec
    - sqlite3_mprintf
    - CPL_IGNORE_RET_VAL_INT
    - sqlite3_free
    - sqlite3_finalize
    - insert_into_db
    - IsLowercaseAlpha
    linkageType: ''
    returnType: bool
    signature: "bool SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_serialize)(\n                               const
      struct sqlite_rtree_bl *tr,\n                               sqlite3* hDB,\n
      \                              const char* rtree_name,\n                               const
      char* rowid_colname,\n                               const char* minx_colname,\n
      \                              const char* miny_colname,\n                               const
      char* maxx_colname,\n                               const char* maxy_colname,\n
      \                              char** p_error_msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_get_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:932,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:934,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:936,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:939,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:956,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:956,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:957,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:960,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:960,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:961,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:967,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:973,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:978,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:984,1
    - Dst: progress_cbk
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:987,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:988,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:989,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:991,1
    - Dst: SQLITE_RTREE_BL_SYMBOL
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1007,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1011,1
    - Dst: progress_cbk
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1011,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1018,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1020,1
    - Dst: sqlite3_prepare_v2
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1020,1
    - Dst: sqlite3_free
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1021,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1024,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1024,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1025,1
    - Dst: sqlite3_step
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1028,1
    - Dst: sqlite3_reset
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1035,1
    - Dst: sqlite3_bind_int64
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1036,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1037,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1038,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1039,1
    - Dst: sqlite3_bind_double
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1040,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1044,1
    - Dst: sqlite3_errmsg
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1044,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1050,1
    - Dst: progress_cbk
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1052,1
    - Dst: my_sqlite3_strdup
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1055,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1060,1
    - Dst: snprintf
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1066,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1068,1
    - Dst: progress_cbk
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1068,1
    - Dst: sqlite3_finalize
      Src: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c:1071,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 14
    argNames:
    - hDB
    - feature_table_name
    - feature_table_fid_colname
    - feature_table_geom_colname
    - rtree_name
    - rowid_colname
    - minx_colname
    - miny_colname
    - maxx_colname
    - maxy_colname
    - max_ram_usage
    - p_error_msg
    - progress_cbk
    - progress_cbk_user_data
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - size_t
    - char**
    - sqlite_rtree_progress_callback
    - void*
    constantsTouched: []
    func_position:
      end: 1073
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 1073
    functionName: SQLITE_RTREE_BL_SYMBOL
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/sqlite/sqlite_rtree_bulk_load/sqlite_rtree_bulk_load.c
    functionUses: 1
    functionsReached:
    - sqlite3_free_table
    - sqlite3_reset
    - sqlite3_prepare_v2
    - sqlite3_finalize
    - progress_cbk
    - sqlite3_get_table
    - my_sqlite3_strdup
    - sqlite3_mprintf
    - sqlite3_step
    - CPL_IGNORE_RET_VAL_INT
    - sqlite3_free
    - sqlite3_errmsg
    - SQLITE_RTREE_BL_SYMBOL
    - snprintf
    - sqlite3_bind_int64
    - sqlite3_bind_double
    linkageType: ''
    returnType: bool
    signature: "bool SQLITE_RTREE_BL_SYMBOL(sqlite_rtree_bl_from_feature_table)(\n
      \                              sqlite3* hDB,\n                               const
      char* feature_table_name,\n                               const char* feature_table_fid_colname,\n
      \                              const char* feature_table_geom_colname,\n                               const
      char* rtree_name,\n                               const char* rowid_colname,\n
      \                              const char* minx_colname,\n                               const
      char* miny_colname,\n                               const char* maxx_colname,\n
      \                              const char* maxy_colname,\n                               size_t
      max_ram_usage,\n                               char** p_error_msg,\n                               sqlite_rtree_progress_callback
      progress_cbk,\n                               void* progress_cbk_user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pszName
    - hFileHandle
    argTypes:
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OGRWAsPDataSource::OGRWAsPDataSource
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGRWAsPDataSource::OGRWAsPDataSource(const char *pszName, VSILFILE
      *hFileHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:36,1
    - Dst: VSIFCloseL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: OGRWAsPDataSource::~OGRWAsPDataSource()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - reset
    linkageType: ''
    returnType: void
    signature: void OGRWAsPDataSource::~OGRWAsPDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:47,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:47,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: OGRWAsPDataSource::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - get
    linkageType: ''
    returnType: int
    signature: int OGRWAsPDataSource::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:62,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:62,1
    - Dst: GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:62,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: OGRWAsPDataSource::GetLayerByName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - get
    - GetName
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRWAsPDataSource::GetLayerByName(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:74,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:77,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:85,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:89,1
    - Dst: CPLString::find
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:89,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:90,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:91,1
    - Dst: OGRSpatialReference*::importFromProj4
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:92,1
    - Dst: CPLString::c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:92,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:95,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:101,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:102,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:103,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:105,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:106,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:106,1
    - Dst: OGRWAsPLayer::OGRWAsPLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:105,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:109,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:111,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:112,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:116,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:117,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:133,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:135,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:137,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:146,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:147,1
    - Dst: CreateField
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:152,1
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:155,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - bSilent
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 157
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 157
    functionName: OGRWAsPDataSource::Load
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::SetAxisMappingStrategy
    - c_str
    - CPLString::substr
    - CPLGetBasenameSafe
    - get
    - OGRWAsPLayer::OGRWAsPLayer
    - VSIFSeekL
    - CPLString::find
    - OGRSpatialReference*::Release
    - CPLString::c_str
    - CreateField
    - VSIFTellL
    - reset
    - CPLError
    - OGRSpatialReference*::importFromProj4
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWAsPDataSource::Load(bool bSilent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: OGRWAsPDataSource::GetLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *OGRWAsPDataSource::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:179,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:188,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:189,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:193,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:197,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:199,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:203,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:205,1
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:214,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:220,1
    - Dst: CPLString::substr
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:221,1
    - Dst: std::move
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:225,1
    - Dst: CPLString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:231,1
    - Dst: OGRGeometryFactory::haveGEOS
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:243,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:245,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:251,1
    - Dst: double::double
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:251,1
    - Dst: std::istringstream
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:252,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:254,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:268,1
    - Dst: double::double
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:268,1
    - Dst: std::istringstream
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:269,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:272,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:285,1
    - Dst: double::double
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:285,1
    - Dst: std::istringstream
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:289,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:299,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:300,1
    - Dst: reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:302,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:303,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:304,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:305,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:305,1
    - Dst: OGRWAsPLayer::OGRWAsPLayer
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:302,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:307,1
    - Dst: auto::exportToProj4
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:311,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:313,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:317,1
    - Dst: CPLFree
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:319,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:321,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:322,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:323,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp:324,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 325
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 325
    functionName: OGRWAsPDataSource::ICreateLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdatasource.cpp
    functionUses: 0
    functionsReached:
    - OGRGeometryFactory::haveGEOS
    - OGRSpatialReference*::Release
    - CPLString
    - CPLError
    - CPLString::empty
    - OGRSpatialReference*::SetAxisMappingStrategy
    - CPLString::substr
    - std::unique_ptr::release
    - std::move
    - auto::Clone
    - std::unique_ptr::reset
    - VSIFPrintfL
    - OGRGeomFieldDefn*::GetType
    - get
    - OGRWAsPLayer::OGRWAsPLayer
    - CPLFree
    - OGRGeometryTypeToName
    - CPLGetBasenameSafe
    - auto::exportToProj4
    - std::istringstream
    - OGRGeomFieldDefn*::GetSpatialRef
    - reset
    - double::double
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *\nOGRWAsPDataSource::ICreateLayer(const char *pszName,\n
      \                               const OGRGeomFieldDefn *poGeomFieldDefn,\n                                CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfRouhness1
    - dfRouhness2
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OGRWAsPLayer::isEqual
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: bool
    signature: bool isEqual(const double &dfRouhness1, const double &dfRouhness2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: OGRWAsPLayer::GetLayerDefn
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: OGRWAsPLayer::GetName
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: OGRWAsPLayer::GetDataset
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetDataset() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: OGRWAsPDataSource::GetLayerCount
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasp.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:29,1
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:34,1
    - Dst: std::make_unique<OGRWAsPDataSource>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:42,1
    - Dst: auto::Load
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:44,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: OGRWAsPDriverOpen
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - auto::Load
    - VSIFOpenL
    - GDALOpenInfo*::IsExtensionEqualToCI
    - std::make_unique<OGRWAsPDataSource>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGRWAsPDriverOpen(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:59,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:62,1
    - Dst: OGRWAsPDataSource::OGRWAsPDataSource
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: OGRWAsPDriverCreate
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VSIFOpenL
    - OGRWAsPDataSource::OGRWAsPDataSource
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *OGRWAsPDriverCreate(const char *pszName, int, int, int,\n
      \                                       GDALDataType, char **)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: OGRWAsPDriverDelete
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGRWAsPDriverDelete(const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:85,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:88,1
    - Dst: auto::SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:89,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:91,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:92,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:93,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:94,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:95,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:97,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:98,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:99,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:100,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: RegisterOGRWAsP
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwaspdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - auto::SetDescription
    linkageType: ''
    returnType: void
    signature: void RegisterOGRWAsP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:31,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:32,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:35,1
    - Dst: OGRWAsPLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:35,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:36,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:37,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:38,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - poDS
    - pszName
    - hFileHandle
    - poSpatialRef
    argTypes:
    - GDALDataset*
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: OGRWAsPLayer::OGRWAsPLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 2
    functionsReached:
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRWAsPLayer::GetName
    - Reference
    - VSIFTellL
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void OGRWAsPLayer::OGRWAsPLayer(GDALDataset *poDS, const char *pszName,\n
      \                          VSILFILE *hFileHandle,\n                           OGRSpatialReference
      *poSpatialRef)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:53,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:54,1
    - Dst: VSIFTellL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:56,1
    - Dst: SetDescription
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:61,1
    - Dst: OGRWAsPLayer::GetName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:61,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:62,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:63,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:64,1
    - Dst: Reference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 11
    argNames:
    - poDS
    - pszName
    - hFileHandle
    - poSpatialRef
    - sFirstFieldParam
    - sSecondFieldParam
    - sGeomFieldParam
    - bMergeParam
    - pdfToleranceParam
    - pdfAdjacentPointToleranceParam
    - pdfPointToCircleRadiusParam
    argTypes:
    - GDALDataset*
    - char*
    - VSILFILE*
    - OGRSpatialReference*
    - CPLString
    - CPLString
    - CPLString
    - bool
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: OGRWAsPLayer::OGRWAsPLayer
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 2
    functionsReached:
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRWAsPLayer::GetName
    - Reference
    - VSIFTellL
    - SetDescription
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void OGRWAsPLayer::OGRWAsPLayer(\n    GDALDataset *poDS, const char
      *pszName, VSILFILE *hFileHandle,\n    OGRSpatialReference *poSpatialRef, const
      CPLString &sFirstFieldParam,\n    const CPLString &sSecondFieldParam, const
      CPLString &sGeomFieldParam,\n    bool bMergeParam, double *pdfToleranceParam,\n
      \   double *pdfAdjacentPointToleranceParam, double *pdfPointToCircleRadiusParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:90,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:90,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:93,1
    - Dst: Boundary::poLine::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:94,1
    - Dst: Boundary::poLine::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:95,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:96,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:96,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:96,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:96,1
    - Dst: std::make_pair
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:97,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:97,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:97,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:97,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:100,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:101,1
    - Dst: PointMap::begin
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:102,1
    - Dst: PointMap::end
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:102,1
    - Dst: PointMap::const_iterator::second::size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:104,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:110,1
    - Dst: Boundary::poLine::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:111,1
    - Dst: Boundary::poLine::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:112,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:114,1
    - Dst: Boundary::poLine::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:115,1
    - Dst: Boundary::poLine::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:116,1
    - Dst: OGRWAsPLayer::isEqual
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:117,1
    - Dst: OGRWAsPLayer::isEqual
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:117,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:119,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:124,1
    - Dst: OGRWAsPLayer::isEqual
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:130,1
    - Dst: OGRWAsPLayer::isEqual
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:130,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:132,1
    - Dst: Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:137,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:146,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:148,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:149,1
    - Dst: Boundary*::poLine::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:161,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:162,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:166,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:170,1
    - Dst: Boundary*::poLine::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:171,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:172,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:173,1
    - Dst: OGRLineString*::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:174,1
    - Dst: Boundary*::poLine::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:175,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:187,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:191,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:199,1
    - Dst: Boundary*::poLine::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:203,1
    - Dst: swap
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:204,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:211,1
    - Dst: Boundary*::poLine::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:212,1
    - Dst: OGRLineString*::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:213,1
    - Dst: OGRPoint::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:214,1
    - Dst: OGRLineString*::reversePoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:215,1
    - Dst: Boundary*::poLine::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:216,1
    - Dst: assert
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:224,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:227,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:233,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:236,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:239,1
    - Dst: Release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:241,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:242,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:244,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 246
    functionName: OGRWAsPLayer::~OGRWAsPLayer()
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - Boundary*::poLine::addSubLineString
    - Equals
    - OGRLineString*::reversePoints
    - assert
    - getY
    - OGRPoint::getY
    - std::make_pair
    - PointMap::begin
    - OGRPoint::OGRPoint
    - swap
    - OGRLineString*::StartPoint
    - static_cast<int>
    - Boundary*::poLine::EndPoint
    - PointMap::const_iterator::second::size
    - OGRWAsPLayer::WriteRoughness
    - Boundary::poLine::StartPoint
    - OGRPoint::getX
    - Boundary*::poLine::reversePoints
    - PointMap::end
    - getX
    - Release
    - size
    - empty
    - OGRWAsPLayer::isEqual
    - Boundary::poLine::EndPoint
    - push_back
    - OGRPoint::Equals
    linkageType: ''
    returnType: void
    signature: void OGRWAsPLayer::~OGRWAsPLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:253,1
    - Dst: OGRLineString::clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:254,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:257,1
    - Dst: OGRLineString::Simplify
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:258,1
    - Dst: OGRLineString::clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:259,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:261,1
    - Dst: std::unique_ptr::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:262,1
    - Dst: std::unique_ptr::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:263,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:266,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:269,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:271,1
    - Dst: std::unique_ptr::StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:272,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:273,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:277,1
    - Dst: std::unique_ptr::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:277,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:277,1
    - Dst: fabs
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:278,1
    - Dst: std::unique_ptr::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:278,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:278,1
    - Dst: std::unique_ptr::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:280,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:281,1
    - Dst: auto::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:287,1
    - Dst: auto::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:287,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:289,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:289,1
    - Dst: get
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:292,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:298,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:300,1
    - Dst: std::unique_ptr::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:301,1
    - Dst: std::unique_ptr::getPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:302,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:312,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:313,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:313,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:313,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:314,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:314,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:314,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:315,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:315,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:315,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:316,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:316,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:316,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:317,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:317,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:317,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:322,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:323,1
    - Dst: OGRPoint::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:323,1
    - Dst: getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:323,1
    - Dst: OGRPoint::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:324,1
    - Dst: getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:324,1
    - Dst: std::unique_ptr::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:329,1
    - Dst: std::unique_ptr::setNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:334,1
    - Dst: std::unique_ptr::setPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:340,1
    - Dst: cos
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:341,1
    - Dst: sin
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:342,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:347,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - line
    argTypes:
    - OGRLineString
    constantsTouched: []
    func_position:
      end: 348
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 348
    functionName: OGRWAsPLayer::Simplify
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::setNumPoints
    - getY
    - OGRLineString::clone
    - std::unique_ptr::StartPoint
    - std::unique_ptr::getX
    - OGRPoint::getY
    - auto::setPoint
    - std::make_unique<OGRLineString>
    - std::unique_ptr::release
    - OGRPoint::OGRPoint
    - OGRLineString::getNumPoints
    - OGRLineString::Simplify
    - std::unique_ptr::reset
    - std::unique_ptr::setPoint
    - get
    - OGRPoint::getX
    - std::unique_ptr::EndPoint
    - std::unique_ptr::getY
    - sin
    - getX
    - std::unique_ptr::getNumPoints
    - std::unique_ptr::getPoint
    - auto::getNumPoints
    - auto::release
    - auto::addPoint
    - fabs
    - cos
    linkageType: ''
    returnType: OGRLineString
    signature: OGRLineString *OGRWAsPLayer::Simplify(const OGRLineString &line) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWAsPLayer::Simplify
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:357,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:363,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:368,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:369,1
    - Dst: std::unique_ptr::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:369,1
    - Dst: std::unique_ptr::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:369,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - poGeom
    - dfZ
    argTypes:
    - OGRLineString*
    - double
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: OGRWAsPLayer::WriteElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::getX
    - VSIFPrintfL
    - std::unique_ptr::getY
    - OGRWAsPLayer::Simplify
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWAsPLayer::WriteElevation(OGRLineString *poGeom, const double
      &dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:379,1
    - Dst: OGRWAsPLayer::WriteElevation
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:383,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:383,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:387,1
    - Dst: OGRWAsPLayer::WriteElevation
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:389,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:397,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:399,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - poGeom
    - dfZ
    argTypes:
    - OGRGeometry*
    - double
    constantsTouched: []
    func_position:
      end: 404
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 404
    functionName: OGRWAsPLayer::WriteElevation
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 1
    functionsReached:
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryTypeToName
    - OGRWAsPLayer::WriteElevation
    - CPLError
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWAsPLayer::WriteElevation(OGRGeometry *poGeom, const double
      &dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRPolygon*::getEnvelope
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:420,1
    - Dst: size
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:421,1
    - Dst: OGRWAsPLayer::isEqual
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:426,1
    - Dst: poPolygon::Intersection
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:429,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:432,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:437,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:439,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:447,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:448,1
    - Dst: OGRGeometry*::toMultiLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:450,1
    - Dst: StartPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:452,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:456,1
    - Dst: OGRLineString*::getNumPoints
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:458,1
    - Dst: OGRPoint*::Equals
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:459,1
    - Dst: OGRLineString*::addSubLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:461,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:466,1
    - Dst: clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:467,1
    - Dst: OGRLineString*::EndPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:469,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:472,1
    - Dst: OGREnvelope::Intersect
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:482,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:494,1
    - Dst: getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:497,1
    - Dst: wkbFlatten
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:498,1
    - Dst: OGREnvelope::Intersect
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:501,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:502,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:517,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:519,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:520,1
    - Dst: OGRPolygon*::clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:528,1
    - Dst: push_back
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:529,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 2
    argNames:
    - poGeom
    - dfZ
    argTypes:
    - OGRPolygon*
    - double
    constantsTouched: []
    func_position:
      end: 531
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 531
    functionName: OGRWAsPLayer::WriteRoughness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 1
    functionsReached:
    - StartPoint
    - OGREnvelope::Intersect
    - poPolygon::Intersection
    - OGRLineString*::getNumPoints
    - CPLError
    - OGRPoint::OGRPoint
    - OGRPolygon*::clone
    - OGRPolygon*::getEnvelope
    - OGRPoint*::Equals
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - OGRGeometry*::toMultiLineString
    - getGeometryType
    - OGRGeometry*::toGeometryCollection
    - OGRLineString*::EndPoint
    - OGRGeometry*::toLineString
    - size
    - OGRWAsPLayer::isEqual
    - OGRGeometryTypeToName
    - OGRLineString*::addSubLineString
    - push_back
    - clone
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWAsPLayer::WriteRoughness(OGRPolygon *poGeom, const double
      &dfZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWAsPLayer::Simplify
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:538,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:544,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:549,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:550,1
    - Dst: std::unique_ptr::getX
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:550,1
    - Dst: std::unique_ptr::getY
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:550,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - poGeom
    - dfZleft
    - dfZright
    argTypes:
    - OGRLineString*
    - double
    - double
    constantsTouched: []
    func_position:
      end: 555
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 555
    functionName: OGRWAsPLayer::WriteRoughness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::getX
    - VSIFPrintfL
    - std::unique_ptr::getY
    - OGRWAsPLayer::Simplify
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWAsPLayer::WriteRoughness(OGRLineString *poGeom,\n                                    const
      double &dfZleft,\n                                    const double &dfZright)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:561,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:565,1
    - Dst: OGRGeometry*::toLineString
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:565,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:568,1
    - Dst: OGRGeometry*::toPolygon
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:568,1
    - Dst: OGRGeometry*::toGeometryCollection
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:574,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:576,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:584,1
    - Dst: OGRGeometryTypeToName
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:586,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - poGeom
    - dfZleft
    - dfZright
    argTypes:
    - OGRGeometry*
    - double
    - double
    constantsTouched: []
    func_position:
      end: 591
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 591
    functionName: OGRWAsPLayer::WriteRoughness
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRGeometry*::toGeometryCollection
    - OGRGeometryTypeToName
    - OGRWAsPLayer::WriteRoughness
    - OGRGeometry*::toPolygon
    - CPLError
    - OGRGeometry*::toLineString
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWAsPLayer::WriteRoughness(OGRGeometry *poGeom, const double
      &dfZleft,\n                                    const double &dfZright)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:602,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:608,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:610,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:611,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:614,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:616,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:617,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:620,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:622,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:623,1
    - Dst: OGRFeature*::GetGeomFieldRef
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:626,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:630,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:639,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:641,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:642,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:645,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:650,1
    - Dst: OGRGeometry*::getCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:651,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:654,1
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:658,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:664,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:666,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:667,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:670,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:674,1
    - Dst: OGRWAsPLayer::WriteRoughness
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:678,1
    - Dst: OGRWAsPLayer::WriteElevation
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:678,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 679
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 679
    functionName: OGRWAsPLayer::ICreateFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - c_str
    - empty
    - OGRFeature*::GetGeomFieldRef
    - OGRFeature*::GetFieldAsDouble
    - OGRGeometry*::getCoordinateDimension
    - OGRWAsPLayer::AvgZ
    - OGRWAsPLayer::WriteRoughness
    - OGRPoint::OGRPoint
    - OGRWAsPLayer::WriteElevation
    - CPLError
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr OGRWAsPLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:688,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:691,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:692,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:692,1
    - Dst: empty
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:693,1
    - Dst: GetFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:694,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - poField
    - bApproxOK
    argTypes:
    - OGRFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 697
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 697
    functionName: OGRWAsPLayer::CreateField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - GetFieldIndex
    - empty
    - c_str
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWAsPLayer::CreateField(const OGRFieldDefn *poField,\n                                 CPL_UNUSED
      int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:707,1
    - Dst: auto::Clone
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:710,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:711,1
    - Dst: OGRGeomFieldDefn::SetSpatialRef
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:712,1
    - Dst: auto::Release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:713,1
    - Dst: AddGeomFieldDefn
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:715,1
    - Dst: GetGeomFieldIndex
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:720,1
    - Dst: c_str
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poGeomFieldIn
    - bApproxOK
    argTypes:
    - OGRGeomFieldDefn*
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 724
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 724
    functionName: OGRWAsPLayer::CreateGeomField
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - AddGeomFieldDefn
    - OGRGeomFieldDefn::SetSpatialRef
    - auto::Clone
    - OGRGeomFieldDefn*::GetSpatialRef
    - auto::Release
    - GetGeomFieldIndex
    - auto::SetAxisMappingStrategy
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGRWAsPLayer::CreateGeomField(const OGRGeomFieldDefn *poGeomFieldIn,\n
      \                                    CPL_UNUSED int bApproxOK)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:755,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:760,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:762,1
    - Dst: GetFieldCount
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:764,1
    - Dst: static_cast<int>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:769,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:771,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:776,1
    - Dst: auto::SetFID
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:777,1
    - Dst: auto::SetField
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:779,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:784,1
    - Dst: CPLReadLineL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:785,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:796,1
    - Dst: std::make_unique<OGRLineString>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:799,1
    - Dst: auto::setCoordinateDimension
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:800,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:801,1
    - Dst: auto::addPoint
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:804,1
    - Dst: auto::SetGeomFieldDirectly
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:806,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:806,1
    - Dst: auto::release
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:808,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 809
    functionName: OGRWAsPLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    - static_cast<int>
    - auto::SetFID
    - auto::setCoordinateDimension
    - auto::addPoint
    - auto::release
    - std::make_unique<OGRLineString>
    - auto::assignSpatialReference
    - auto::SetField
    - GetFieldCount
    - CPLError
    - auto::SetGeomFieldDirectly
    - std::make_unique<OGRFeature>
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRWAsPLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:818,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:819,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:820,1
    - Dst: EQUAL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 822
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 822
    functionName: OGRWAsPLayer::TestCapability
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGRWAsPLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: OGRWAsPLayer::ResetReading
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void OGRWAsPLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLineString*::getZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRLineString*
    constantsTouched: []
    func_position:
      end: 848
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 848
    functionName: OGRWAsPLayer::AvgZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 1
    functionsReached:
    - OGRLineString*::getZ
    linkageType: ''
    returnType: double
    signature: double OGRWAsPLayer::AvgZ(OGRLineString *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:853,1
    - Dst: OGRPolygon*::getExteriorRing
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRPolygon*
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: OGRWAsPLayer::AvgZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 2
    functionsReached:
    - OGRWAsPLayer::AvgZ
    - OGRPolygon*::getExteriorRing
    linkageType: ''
    returnType: double
    signature: double OGRWAsPLayer::AvgZ(OGRPolygon *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometryCollection*::getNumGeometries
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:859,1
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:859,1
    - Dst: OGRGeometryCollection*::getGeometryRef
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometryCollection*
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: OGRWAsPLayer::AvgZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 3
    functionsReached:
    - OGRWAsPLayer::AvgZ
    - OGRGeometryCollection*::getNumGeometries
    - OGRGeometryCollection*::getGeometryRef
    linkageType: ''
    returnType: double
    signature: double OGRWAsPLayer::AvgZ(OGRGeometryCollection *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:865,1
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:869,1
    - Dst: static_cast<OGRLineString *>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:869,1
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:872,1
    - Dst: static_cast<OGRPolygon *>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:872,1
    - Dst: OGRWAsPLayer::AvgZ
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:878,1
    - Dst: static_cast<OGRGeometryCollection *>
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:878,1
    - Dst: CPLError
      Src: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - poGeom
    argTypes:
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 885
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 885
    functionName: OGRWAsPLayer::AvgZ
    functionSourceFile: /src/gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp
    functionUses: 4
    functionsReached:
    - static_cast<OGRPolygon *>
    - OGRWAsPLayer::AvgZ
    - static_cast<OGRLineString *>
    - CPLError
    - static_cast<OGRGeometryCollection *>
    - OGRGeometry*::getGeometryType
    linkageType: ''
    returnType: double
    signature: double OGRWAsPLayer::AvgZ(OGRGeometry *poGeom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gdalallregister.cpp:53,1
    - Dst: auto::LoadPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: GDALRegisterPlugin
    functionSourceFile: /src/gdal/frmts/gdalallregister.cpp
    functionUses: 0
    functionsReached:
    - auto::LoadPlugin
    - GetGDALDriverManager
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALRegisterPlugin(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gdalallregister.cpp:80,1
    - Dst: auto::AutoLoadDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:82,1
    - Dst: auto::AutoLoadPythonDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:83,1
    - Dst: auto::AutoSkipDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:89,1
    - Dst: auto::ReorderDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: GDALRegisterPlugins
    functionSourceFile: /src/gdal/frmts/gdalallregister.cpp
    functionUses: 0
    functionsReached:
    - auto::AutoLoadPythonDrivers
    - auto::AutoSkipDrivers
    - GetGDALDriverManager
    - auto::ReorderDrivers
    - auto::AutoLoadDrivers
    linkageType: ''
    returnType: void
    signature: void GDALRegisterPlugins(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gdalallregister.cpp:114,1
    - Dst: DeclareExternalDeferredPlugins
      Src: /src/gdal/frmts/gdalallregister.cpp:117,1
    - Dst: DeclareDeferredOGRArrowPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:121,1
    - Dst: DeclareDeferredBASISU_KTX2Plugin
      Src: /src/gdal/frmts/gdalallregister.cpp:124,1
    - Dst: DeclareDeferredOGRCADPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:127,1
    - Dst: DeclareDeferredOGRCartoPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:130,1
    - Dst: DeclareDeferredDDSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:133,1
    - Dst: DeclareDeferredOGRDWGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:136,1
    - Dst: DeclareDeferredOGRDGNV8Plugin
      Src: /src/gdal/frmts/gdalallregister.cpp:137,1
    - Dst: DeclareDeferredOGRElasticPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:140,1
    - Dst: DeclareDeferredEXRPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:143,1
    - Dst: DeclareDeferredECWPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:146,1
    - Dst: DeclareDeferredOGRFileGDBPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:149,1
    - Dst: DeclareDeferredFITSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:152,1
    - Dst: DeclareDeferredGEORPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:155,1
    - Dst: DeclareDeferredGIFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:158,1
    - Dst: DeclareDeferredOGRGMLASPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:161,1
    - Dst: DeclareDeferredGRIBPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:164,1
    - Dst: DeclareDeferredGTAPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:167,1
    - Dst: DeclareDeferredOGRHANAPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:170,1
    - Dst: DeclareDeferredAVIFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:173,1
    - Dst: DeclareDeferredHEIFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:176,1
    - Dst: DeclareDeferredHDF4Plugin
      Src: /src/gdal/frmts/gdalallregister.cpp:179,1
    - Dst: DeclareDeferredKEAPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:184,1
    - Dst: DeclareDeferredHDF5Plugin
      Src: /src/gdal/frmts/gdalallregister.cpp:187,1
    - Dst: DeclareDeferredOGRIDBPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:190,1
    - Dst: DeclareDeferredJP2KAKPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:193,1
    - Dst: DeclareDeferredOPENJPEGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:196,1
    - Dst: DeclareDeferredJPEGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:199,1
    - Dst: DeclareDeferredJPEGXLPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:202,1
    - Dst: DeclareDeferredJPIPKAKPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:205,1
    - Dst: DeclareDeferredOGRLIBKMLPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:208,1
    - Dst: DeclareDeferredOGRMongoDBv3Plugin
      Src: /src/gdal/frmts/gdalallregister.cpp:211,1
    - Dst: DeclareDeferredMRFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:214,1
    - Dst: DeclareDeferredMrSIDPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:217,1
    - Dst: DeclareDeferredMSGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:220,1
    - Dst: DeclareDeferredOGRMSSQLSpatialPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:223,1
    - Dst: DeclareDeferredOGRMySQLPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:226,1
    - Dst: DeclareDeferredNetCDFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:229,1
    - Dst: DeclareDeferredNITFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:232,1
    - Dst: DeclareDeferredOGROCIPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:235,1
    - Dst: DeclareDeferredOGRODBCPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:238,1
    - Dst: DeclareDeferredOGROGDIPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:241,1
    - Dst: DeclareDeferredOGROpenFileGDBPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:244,1
    - Dst: DeclareDeferredOGRParquetPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:247,1
    - Dst: DeclareDeferredPCIDSKPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:250,1
    - Dst: DeclareDeferredPCRasterPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:253,1
    - Dst: DeclareDeferredPostGISRasterPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:256,1
    - Dst: DeclareDeferredOGRPLSCENESPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:259,1
    - Dst: DeclareDeferredPDFPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:262,1
    - Dst: DeclareDeferredPDSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:265,1
    - Dst: DeclareDeferredOGRPGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:268,1
    - Dst: DeclareDeferredPNGPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:271,1
    - Dst: DeclareDeferredRasterlitePlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:274,1
    - Dst: DeclareDeferredOGRSOSIPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:277,1
    - Dst: DeclareDeferredTileDBPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:280,1
    - Dst: DeclareDeferredOGRVFKPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:283,1
    - Dst: DeclareDeferredWCSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:286,1
    - Dst: DeclareDeferredWEBPPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:289,1
    - Dst: DeclareDeferredWMSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:292,1
    - Dst: DeclareDeferredWMTSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:295,1
    - Dst: DeclareDeferredOGRXLSPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:298,1
    - Dst: DeclareDeferredZarrPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:301,1
    - Dst: DeclareDeferredOGRXODRPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:304,1
    - Dst: DeclareDeferredOGRADBCPlugin
      Src: /src/gdal/frmts/gdalallregister.cpp:307,1
    - Dst: auto::AutoLoadDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:311,1
    - Dst: GDALRegister_VRT
      Src: /src/gdal/frmts/gdalallregister.cpp:317,1
    - Dst: GDALRegister_Derived
      Src: /src/gdal/frmts/gdalallregister.cpp:321,1
    - Dst: GDALRegister_GTI
      Src: /src/gdal/frmts/gdalallregister.cpp:325,1
    - Dst: GDALRegister_SNAP_TIFF
      Src: /src/gdal/frmts/gdalallregister.cpp:329,1
    - Dst: GDALRegister_GTiff
      Src: /src/gdal/frmts/gdalallregister.cpp:333,1
    - Dst: GDALRegister_COG
      Src: /src/gdal/frmts/gdalallregister.cpp:334,1
    - Dst: GDALRegister_LIBERTIFF
      Src: /src/gdal/frmts/gdalallregister.cpp:338,1
    - Dst: GDALRegister_NITF
      Src: /src/gdal/frmts/gdalallregister.cpp:342,1
    - Dst: GDALRegister_RPFTOC
      Src: /src/gdal/frmts/gdalallregister.cpp:343,1
    - Dst: GDALRegister_ECRGTOC
      Src: /src/gdal/frmts/gdalallregister.cpp:344,1
    - Dst: GDALRegister_HFA
      Src: /src/gdal/frmts/gdalallregister.cpp:348,1
    - Dst: GDALRegister_SAR_CEOS
      Src: /src/gdal/frmts/gdalallregister.cpp:352,1
    - Dst: GDALRegister_CEOS
      Src: /src/gdal/frmts/gdalallregister.cpp:356,1
    - Dst: GDALRegister_PALSARJaxa
      Src: /src/gdal/frmts/gdalallregister.cpp:360,1
    - Dst: GDALRegister_GFF
      Src: /src/gdal/frmts/gdalallregister.cpp:364,1
    - Dst: GDALRegister_ESRIC
      Src: /src/gdal/frmts/gdalallregister.cpp:368,1
    - Dst: GDALRegister_AIGrid
      Src: /src/gdal/frmts/gdalallregister.cpp:373,1
    - Dst: GDALRegister_AAIGrid
      Src: /src/gdal/frmts/gdalallregister.cpp:377,1
    - Dst: GDALRegister_GRASSASCIIGrid
      Src: /src/gdal/frmts/gdalallregister.cpp:378,1
    - Dst: GDALRegister_ISG
      Src: /src/gdal/frmts/gdalallregister.cpp:379,1
    - Dst: GDALRegister_DTED
      Src: /src/gdal/frmts/gdalallregister.cpp:383,1
    - Dst: GDALRegister_PNG
      Src: /src/gdal/frmts/gdalallregister.cpp:387,1
    - Dst: GDALRegister_DDS
      Src: /src/gdal/frmts/gdalallregister.cpp:391,1
    - Dst: GDALRegister_GTA
      Src: /src/gdal/frmts/gdalallregister.cpp:395,1
    - Dst: GDALRegister_JPEG
      Src: /src/gdal/frmts/gdalallregister.cpp:399,1
    - Dst: GDALRegister_MEM
      Src: /src/gdal/frmts/gdalallregister.cpp:403,1
    - Dst: GDALRegister_JDEM
      Src: /src/gdal/frmts/gdalallregister.cpp:407,1
    - Dst: GDALRegister_GIF
      Src: /src/gdal/frmts/gdalallregister.cpp:411,1
    - Dst: GDALRegister_BIGGIF
      Src: /src/gdal/frmts/gdalallregister.cpp:412,1
    - Dst: GDALRegister_Envisat
      Src: /src/gdal/frmts/gdalallregister.cpp:416,1
    - Dst: GDALRegister_FITS
      Src: /src/gdal/frmts/gdalallregister.cpp:420,1
    - Dst: GDALRegister_BSB
      Src: /src/gdal/frmts/gdalallregister.cpp:424,1
    - Dst: GDALRegister_BMP
      Src: /src/gdal/frmts/gdalallregister.cpp:428,1
    - Dst: GDALRegister_DIMAP
      Src: /src/gdal/frmts/gdalallregister.cpp:432,1
    - Dst: GDALRegister_AirSAR
      Src: /src/gdal/frmts/gdalallregister.cpp:436,1
    - Dst: GDALRegister_RS2
      Src: /src/gdal/frmts/gdalallregister.cpp:440,1
    - Dst: GDALRegister_SAFE
      Src: /src/gdal/frmts/gdalallregister.cpp:444,1
    - Dst: GDALRegister_PCIDSK
      Src: /src/gdal/frmts/gdalallregister.cpp:448,1
    - Dst: GDALRegister_PCRaster
      Src: /src/gdal/frmts/gdalallregister.cpp:452,1
    - Dst: GDALRegister_ILWIS
      Src: /src/gdal/frmts/gdalallregister.cpp:456,1
    - Dst: GDALRegister_SRTMHGT
      Src: /src/gdal/frmts/gdalallregister.cpp:460,1
    - Dst: GDALRegister_Leveller
      Src: /src/gdal/frmts/gdalallregister.cpp:464,1
    - Dst: GDALRegister_Terragen
      Src: /src/gdal/frmts/gdalallregister.cpp:468,1
    - Dst: GDALRegister_netCDF
      Src: /src/gdal/frmts/gdalallregister.cpp:472,1
    - Dst: GDALRegister_HDF4
      Src: /src/gdal/frmts/gdalallregister.cpp:476,1
    - Dst: GDALRegister_HDF4Image
      Src: /src/gdal/frmts/gdalallregister.cpp:477,1
    - Dst: GDALRegister_ISIS3
      Src: /src/gdal/frmts/gdalallregister.cpp:481,1
    - Dst: GDALRegister_ISIS2
      Src: /src/gdal/frmts/gdalallregister.cpp:482,1
    - Dst: GDALRegister_PDS
      Src: /src/gdal/frmts/gdalallregister.cpp:483,1
    - Dst: GDALRegister_PDS4
      Src: /src/gdal/frmts/gdalallregister.cpp:484,1
    - Dst: GDALRegister_VICAR
      Src: /src/gdal/frmts/gdalallregister.cpp:485,1
    - Dst: GDALRegister_TIL
      Src: /src/gdal/frmts/gdalallregister.cpp:489,1
    - Dst: GDALRegister_ERS
      Src: /src/gdal/frmts/gdalallregister.cpp:493,1
    - Dst: GDALRegister_JP2KAK
      Src: /src/gdal/frmts/gdalallregister.cpp:498,1
    - Dst: GDALRegister_JPIPKAK
      Src: /src/gdal/frmts/gdalallregister.cpp:503,1
    - Dst: GDALRegister_ECW
      Src: /src/gdal/frmts/gdalallregister.cpp:507,1
    - Dst: GDALRegister_JP2ECW
      Src: /src/gdal/frmts/gdalallregister.cpp:508,1
    - Dst: GDALRegister_JP2OpenJPEG
      Src: /src/gdal/frmts/gdalallregister.cpp:513,1
    - Dst: GDALRegister_L1B
      Src: /src/gdal/frmts/gdalallregister.cpp:517,1
    - Dst: GDALRegister_GRIB
      Src: /src/gdal/frmts/gdalallregister.cpp:521,1
    - Dst: GDALRegister_MrSID
      Src: /src/gdal/frmts/gdalallregister.cpp:525,1
    - Dst: GDALRegister_RMF
      Src: /src/gdal/frmts/gdalallregister.cpp:529,1
    - Dst: GDALRegister_WCS
      Src: /src/gdal/frmts/gdalallregister.cpp:533,1
    - Dst: GDALRegister_WMS
      Src: /src/gdal/frmts/gdalallregister.cpp:537,1
    - Dst: GDALRegister_MSGN
      Src: /src/gdal/frmts/gdalallregister.cpp:541,1
    - Dst: GDALRegister_MSG
      Src: /src/gdal/frmts/gdalallregister.cpp:545,1
    - Dst: GDALRegister_IDRISI
      Src: /src/gdal/frmts/gdalallregister.cpp:549,1
    - Dst: GDALRegister_GSBG
      Src: /src/gdal/frmts/gdalallregister.cpp:553,1
    - Dst: GDALRegister_GS7BG
      Src: /src/gdal/frmts/gdalallregister.cpp:554,1
    - Dst: GDALRegister_COSAR
      Src: /src/gdal/frmts/gdalallregister.cpp:558,1
    - Dst: GDALRegister_TSX
      Src: /src/gdal/frmts/gdalallregister.cpp:562,1
    - Dst: GDALRegister_COASP
      Src: /src/gdal/frmts/gdalallregister.cpp:566,1
    - Dst: GDALRegister_MAP
      Src: /src/gdal/frmts/gdalallregister.cpp:570,1
    - Dst: GDALRegister_KMLSUPEROVERLAY
      Src: /src/gdal/frmts/gdalallregister.cpp:574,1
    - Dst: GDALRegister_WEBP
      Src: /src/gdal/frmts/gdalallregister.cpp:578,1
    - Dst: GDALRegister_PDF
      Src: /src/gdal/frmts/gdalallregister.cpp:582,1
    - Dst: GDALRegister_MBTiles
      Src: /src/gdal/frmts/gdalallregister.cpp:586,1
    - Dst: GDALRegister_PLMOSAIC
      Src: /src/gdal/frmts/gdalallregister.cpp:590,1
    - Dst: GDALRegister_CALS
      Src: /src/gdal/frmts/gdalallregister.cpp:594,1
    - Dst: GDALRegister_WMTS
      Src: /src/gdal/frmts/gdalallregister.cpp:598,1
    - Dst: GDALRegister_SENTINEL2
      Src: /src/gdal/frmts/gdalallregister.cpp:602,1
    - Dst: GDALRegister_mrf
      Src: /src/gdal/frmts/gdalallregister.cpp:606,1
    - Dst: GDALRegister_TileDB
      Src: /src/gdal/frmts/gdalallregister.cpp:610,1
    - Dst: GDALRegister_RDB
      Src: /src/gdal/frmts/gdalallregister.cpp:614,1
    - Dst: GDALRegister_raw_no_sidecar
      Src: /src/gdal/frmts/gdalallregister.cpp:624,1
    - Dst: GDALRegister_RIK
      Src: /src/gdal/frmts/gdalallregister.cpp:633,1
    - Dst: GDALRegister_USGSDEM
      Src: /src/gdal/frmts/gdalallregister.cpp:637,1
    - Dst: GDALRegister_GXF
      Src: /src/gdal/frmts/gdalallregister.cpp:641,1
    - Dst: GDALRegister_KEA
      Src: /src/gdal/frmts/gdalallregister.cpp:646,1
    - Dst: GDALRegister_BAG
      Src: /src/gdal/frmts/gdalallregister.cpp:650,1
    - Dst: GDALRegister_S102
      Src: /src/gdal/frmts/gdalallregister.cpp:651,1
    - Dst: GDALRegister_S104
      Src: /src/gdal/frmts/gdalallregister.cpp:652,1
    - Dst: GDALRegister_S111
      Src: /src/gdal/frmts/gdalallregister.cpp:653,1
    - Dst: GDALRegister_HDF5
      Src: /src/gdal/frmts/gdalallregister.cpp:654,1
    - Dst: GDALRegister_HDF5Image
      Src: /src/gdal/frmts/gdalallregister.cpp:655,1
    - Dst: GDALRegister_NWT_GRD
      Src: /src/gdal/frmts/gdalallregister.cpp:659,1
    - Dst: GDALRegister_NWT_GRC
      Src: /src/gdal/frmts/gdalallregister.cpp:660,1
    - Dst: GDALRegister_ADRG
      Src: /src/gdal/frmts/gdalallregister.cpp:664,1
    - Dst: GDALRegister_SRP
      Src: /src/gdal/frmts/gdalallregister.cpp:665,1
    - Dst: GDALRegister_GEOR
      Src: /src/gdal/frmts/gdalallregister.cpp:669,1
    - Dst: GDALRegister_PostGISRaster
      Src: /src/gdal/frmts/gdalallregister.cpp:673,1
    - Dst: GDALRegister_SAGA
      Src: /src/gdal/frmts/gdalallregister.cpp:677,1
    - Dst: GDALRegister_XYZ
      Src: /src/gdal/frmts/gdalallregister.cpp:681,1
    - Dst: GDALRegister_HF2
      Src: /src/gdal/frmts/gdalallregister.cpp:685,1
    - Dst: GDALRegister_CTG
      Src: /src/gdal/frmts/gdalallregister.cpp:689,1
    - Dst: GDALRegister_ZMap
      Src: /src/gdal/frmts/gdalallregister.cpp:693,1
    - Dst: GDALRegister_NGSGEOID
      Src: /src/gdal/frmts/gdalallregister.cpp:697,1
    - Dst: GDALRegister_IRIS
      Src: /src/gdal/frmts/gdalallregister.cpp:701,1
    - Dst: GDALRegister_PRF
      Src: /src/gdal/frmts/gdalallregister.cpp:705,1
    - Dst: GDALRegister_EEDAI
      Src: /src/gdal/frmts/gdalallregister.cpp:709,1
    - Dst: GDALRegister_EEDA
      Src: /src/gdal/frmts/gdalallregister.cpp:710,1
    - Dst: GDALRegister_DAAS
      Src: /src/gdal/frmts/gdalallregister.cpp:714,1
    - Dst: GDALRegister_NULL
      Src: /src/gdal/frmts/gdalallregister.cpp:718,1
    - Dst: GDALRegister_SIGDEM
      Src: /src/gdal/frmts/gdalallregister.cpp:722,1
    - Dst: GDALRegister_EXR
      Src: /src/gdal/frmts/gdalallregister.cpp:726,1
    - Dst: GDALRegister_AVIF
      Src: /src/gdal/frmts/gdalallregister.cpp:730,1
    - Dst: GDALRegister_HEIF
      Src: /src/gdal/frmts/gdalallregister.cpp:734,1
    - Dst: GDALRegister_TGA
      Src: /src/gdal/frmts/gdalallregister.cpp:738,1
    - Dst: GDALRegister_OGCAPI
      Src: /src/gdal/frmts/gdalallregister.cpp:742,1
    - Dst: GDALRegister_STACTA
      Src: /src/gdal/frmts/gdalallregister.cpp:746,1
    - Dst: GDALRegister_STACIT
      Src: /src/gdal/frmts/gdalallregister.cpp:750,1
    - Dst: GDALRegister_JPEGXL
      Src: /src/gdal/frmts/gdalallregister.cpp:754,1
    - Dst: GDALRegister_BASISU
      Src: /src/gdal/frmts/gdalallregister.cpp:758,1
    - Dst: GDALRegister_KTX2
      Src: /src/gdal/frmts/gdalallregister.cpp:759,1
    - Dst: GDALRegister_GDALG
      Src: /src/gdal/frmts/gdalallregister.cpp:763,1
    - Dst: GNMRegisterAllInternal
      Src: /src/gdal/frmts/gdalallregister.cpp:775,1
    - Dst: OGRRegisterAllInternal
      Src: /src/gdal/frmts/gdalallregister.cpp:778,1
    - Dst: GDALRegister_raw_with_sidecar
      Src: /src/gdal/frmts/gdalallregister.cpp:786,1
    - Dst: GDALRegister_Zarr
      Src: /src/gdal/frmts/gdalallregister.cpp:790,1
    - Dst: GDALRegister_RCM
      Src: /src/gdal/frmts/gdalallregister.cpp:794,1
    - Dst: GDALRegister_HTTP
      Src: /src/gdal/frmts/gdalallregister.cpp:802,1
    - Dst: auto::AutoLoadPythonDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:805,1
    - Dst: auto::AutoSkipDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:811,1
    - Dst: auto::ReorderDrivers
      Src: /src/gdal/frmts/gdalallregister.cpp:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 200
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 814
    functionName: CPL_STDCALL::GDALAllRegister
    functionSourceFile: /src/gdal/frmts/gdalallregister.cpp
    functionUses: 0
    functionsReached:
    - GDALRegister_Leveller
    - GDALRegister_RPFTOC
    - DeclareDeferredJPEGPlugin
    - DeclareDeferredWEBPPlugin
    - auto::AutoSkipDrivers
    - GDALRegister_MSG
    - DeclareDeferredOGRXODRPlugin
    - GDALRegister_WCS
    - GDALRegister_CTG
    - DeclareDeferredOGRXLSPlugin
    - DeclareDeferredGEORPlugin
    - DeclareDeferredOGRADBCPlugin
    - GDALRegister_Derived
    - GetGDALDriverManager
    - DeclareDeferredEXRPlugin
    - DeclareDeferredWMTSPlugin
    - GDALRegister_SENTINEL2
    - GDALRegister_GTiff
    - GDALRegister_WMTS
    - GDALRegister_AVIF
    - GDALRegister_ECW
    - GDALRegister_GFF
    - GDALRegister_NWT_GRD
    - GDALRegister_NULL
    - GDALRegister_BAG
    - GDALRegister_STACIT
    - DeclareDeferredOGRGMLASPlugin
    - GDALRegister_Terragen
    - GDALRegister_GTI
    - DeclareDeferredOGRVFKPlugin
    - GDALRegister_GRASSASCIIGrid
    - GDALRegister_Envisat
    - DeclareDeferredPDFPlugin
    - GDALRegister_AirSAR
    - GDALRegister_SIGDEM
    - GDALRegister_HEIF
    - GDALRegister_RCM
    - GDALRegister_HDF4Image
    - GDALRegister_SAFE
    - DeclareDeferredOGRIDBPlugin
    - GDALRegister_HF2
    - GDALRegister_PCIDSK
    - DeclareDeferredOGRFileGDBPlugin
    - GDALRegister_WMS
    - GDALRegister_raw_no_sidecar
    - GDALRegister_JPEG
    - GDALRegister_KEA
    - DeclareDeferredOGRLIBKMLPlugin
    - GDALRegister_raw_with_sidecar
    - DeclareDeferredTileDBPlugin
    - GDALRegister_NGSGEOID
    - GDALRegister_COASP
    - DeclareDeferredJPIPKAKPlugin
    - DeclareDeferredGRIBPlugin
    - DeclareDeferredBASISU_KTX2Plugin
    - GDALRegister_PDS
    - GDALRegister_TGA
    - DeclareDeferredMrSIDPlugin
    - GDALRegister_BIGGIF
    - GDALRegister_GSBG
    - GDALRegister_HDF5
    - DeclareDeferredPDSPlugin
    - DeclareDeferredPCRasterPlugin
    - DeclareDeferredOGRElasticPlugin
    - DeclareDeferredJPEGXLPlugin
    - GDALRegister_PCRaster
    - GDALRegister_RMF
    - GDALRegister_EEDAI
    - GDALRegister_JP2KAK
    - GDALRegister_MBTiles
    - DeclareDeferredGIFPlugin
    - GDALRegister_WEBP
    - GDALRegister_SAGA
    - DeclareDeferredPostGISRasterPlugin
    - GDALRegister_IRIS
    - DeclareDeferredOGRMongoDBv3Plugin
    - DeclareDeferredOGRCADPlugin
    - GDALRegister_GTA
    - GDALRegister_L1B
    - GDALRegister_S102
    - GDALRegister_LIBERTIFF
    - GDALRegister_ILWIS
    - GDALRegister_JDEM
    - DeclareDeferredNITFPlugin
    - GDALRegister_DDS
    - GDALRegister_GDALG
    - DeclareDeferredOGRHANAPlugin
    - GDALRegister_DIMAP
    - GDALRegister_BSB
    - GDALRegister_JP2ECW
    - DeclareDeferredMSGPlugin
    - GDALRegister_PRF
    - GDALRegister_HDF4
    - GDALRegister_ZMap
    - GDALRegister_OGCAPI
    - GDALRegister_RDB
    - DeclareDeferredZarrPlugin
    - GDALRegister_TileDB
    - GDALRegister_HDF5Image
    - GDALRegister_NITF
    - DeclareDeferredFITSPlugin
    - GDALRegister_ISIS3
    - GDALRegister_GIF
    - GDALRegister_ADRG
    - DeclareDeferredPNGPlugin
    - DeclareDeferredGTAPlugin
    - DeclareDeferredAVIFPlugin
    - GDALRegister_KTX2
    - DeclareDeferredOGROpenFileGDBPlugin
    - GDALRegister_TSX
    - GDALRegister_USGSDEM
    - DeclareDeferredDDSPlugin
    - DeclareDeferredOGRODBCPlugin
    - DeclareDeferredOGRPLSCENESPlugin
    - DeclareDeferredWMSPlugin
    - GDALRegister_DTED
    - GDALRegister_MEM
    - GDALRegister_VICAR
    - DeclareDeferredOGRPGPlugin
    - OGRRegisterAllInternal
    - GDALRegister_VRT
    - DeclareDeferredOGRDGNV8Plugin
    - DeclareDeferredNetCDFPlugin
    - GDALRegister_netCDF
    - GDALRegister_MSGN
    - GDALRegister_DAAS
    - DeclareDeferredOGROGDIPlugin
    - GDALRegister_COSAR
    - GDALRegister_S111
    - auto::AutoLoadPythonDrivers
    - DeclareDeferredMRFPlugin
    - DeclareDeferredHDF4Plugin
    - GDALRegister_COG
    - DeclareDeferredOGRDWGPlugin
    - GDALRegister_ECRGTOC
    - GDALRegister_MrSID
    - GDALRegister_NWT_GRC
    - DeclareDeferredJP2KAKPlugin
    - GDALRegister_RIK
    - DeclareDeferredHDF5Plugin
    - auto::AutoLoadDrivers
    - DeclareDeferredOGRArrowPlugin
    - DeclareDeferredOGRParquetPlugin
    - GDALRegister_STACTA
    - GDALRegister_AIGrid
    - GDALRegister_MAP
    - GDALRegister_JPIPKAK
    - DeclareDeferredRasterlitePlugin
    - GDALRegister_JPEGXL
    - GDALRegister_GRIB
    - GDALRegister_AAIGrid
    - DeclareDeferredHEIFPlugin
    - auto::ReorderDrivers
    - GDALRegister_SRTMHGT
    - GDALRegister_mrf
    - GDALRegister_SRP
    - GDALRegister_SNAP_TIFF
    - DeclareDeferredOGROCIPlugin
    - GDALRegister_ESRIC
    - GDALRegister_RS2
    - GDALRegister_EXR
    - GDALRegister_ISIS2
    - GDALRegister_BASISU
    - DeclareDeferredOGRMSSQLSpatialPlugin
    - GDALRegister_HFA
    - GDALRegister_TIL
    - DeclareDeferredOGRMySQLPlugin
    - GDALRegister_SAR_CEOS
    - GDALRegister_PDF
    - GDALRegister_JP2OpenJPEG
    - GDALRegister_GXF
    - GDALRegister_PLMOSAIC
    - GDALRegister_BMP
    - GNMRegisterAllInternal
    - GDALRegister_CEOS
    - GDALRegister_IDRISI
    - DeclareExternalDeferredPlugins
    - GDALRegister_KMLSUPEROVERLAY
    - GDALRegister_XYZ
    - DeclareDeferredOGRSOSIPlugin
    - GDALRegister_PDS4
    - DeclareDeferredECWPlugin
    - GDALRegister_PALSARJaxa
    - GDALRegister_PostGISRaster
    - GDALRegister_CALS
    - DeclareDeferredWCSPlugin
    - GDALRegister_FITS
    - GDALRegister_GS7BG
    - DeclareDeferredOGRCartoPlugin
    - GDALRegister_HTTP
    - GDALRegister_Zarr
    - DeclareDeferredPCIDSKPlugin
    - GDALRegister_ISG
    - DeclareDeferredOPENJPEGPlugin
    - GDALRegister_PNG
    - DeclareDeferredKEAPlugin
    - GDALRegister_S104
    - GDALRegister_EEDA
    - GDALRegister_GEOR
    - GDALRegister_ERS
    linkageType: ''
    returnType: void
    signature: void CPL_STDCALL GDALAllRegister()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:52,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:53,1
    - Dst: auto::AddBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:60,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:62,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:62,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:80,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:85,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:86,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:114,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:115,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:115,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:116,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:138,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:138,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:139,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:149,1
    - Dst: GDALDriver*::CreateCopy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:150,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:150,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:150,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 14
    argNames:
    - filename
    - zoom
    - rxsize
    - rysize
    - int
    - int
    - rx
    - ry
    - dxsize
    - dysize
    - bands
    - poSrcDs
    - poOutputTileDriver
    - isJpegDriver
    argTypes:
    - std::string
    - CPL_UNUSED
    - int
    - int
    - CPL_UNUSED
    - CPL_UNUSED
    - int
    - int
    - int
    - int
    - int
    - GDALDataset*
    - GDALDriver*
    - bool
    constantsTouched: []
    func_position:
      end: 152
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 152
    functionName: GenerateTiles
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - auto::GetRasterBand
    - GDALDataset*::GetRasterBand
    - auto::AddBand
    - MEMDataset::Create
    - auto::GetRasterCount
    - GDALDriver*::CreateCopy
    - auto::get
    - CPL_IGNORE_RET_VAL
    - std::string::c_str
    - GDALRasterBand*::RasterIO
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void GenerateTiles(const std::string &filename, CPL_UNUSED int zoom,\n
      \                         int rxsize, int rysize, CPL_UNUSED int ix,\n                          CPL_UNUSED
      int iy, int rx, int ry, int dxsize,\n                          int dysize, int
      bands, GDALDataset *poSrcDs,\n                          GDALDriver *poOutputTileDriver,
      bool isJpegDriver)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:166,1
    - Dst: std::string
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:172,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:173,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:176,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:177,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:178,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:180,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:181,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:184,1
    - Dst: CPLEscapeString
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:188,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:189,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:190,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:192,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:193,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:194,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:195,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:196,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:197,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:206,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:207,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:208,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:209,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:210,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:211,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:212,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:213,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:214,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:215,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:216,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:218,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:219,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:220,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:221,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:222,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:223,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:224,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:225,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:226,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:227,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 9
    argNames:
    - filename
    - kmlfilename
    - north
    - south
    - east
    - west
    - tilesize
    - pszOverlayName
    - pszOverlayDescription
    argTypes:
    - char*
    - char*
    - double
    - double
    - double
    - double
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 231
    functionName: GenerateRootKml
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - CPLEscapeString
    - VSIFPrintfL
    - VSIFCloseL
    - CPLGetBasenameSafe
    - VSIFOpenL
    - std::string
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int GenerateRootKml(const char *filename, const char *kmlfilename,\n
      \                          double north, double south, double east, double west,\n
      \                          int tilesize, const char *pszOverlayName,\n                           const
      char *pszOverlayDescription)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:264,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:265,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:267,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:268,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:269,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:294,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:299,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:301,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:303,1
    - Dst: ceil
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:303,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:306,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:326,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:326,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:329,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:330,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:334,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:335,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:337,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:338,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:339,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:340,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:341,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:342,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:343,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:344,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:345,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:346,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:347,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:348,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:349,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:350,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:351,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:352,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:353,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:354,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:355,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:356,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:357,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:358,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:359,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:360,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:360,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:361,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:365,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:368,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:369,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:371,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:375,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:376,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:378,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:388,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:389,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:390,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:391,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:392,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:393,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:397,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:398,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:399,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:400,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:401,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:402,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:403,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:404,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:406,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:420,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:421,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:429,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:430,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:431,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:432,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:433,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:434,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:435,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:436,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:437,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:438,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:439,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:440,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:441,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:442,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:443,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:444,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:445,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:447,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:449,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:450,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:451,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:454,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:455,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:456,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 128
    argCount: 19
    argNames:
    - filename
    - zoom
    - ix
    - iy
    - zoomxpixel
    - zoomypixel
    - dxsize
    - dysize
    - south
    - west
    - xsize
    - ysize
    - maxzoom
    - poTransform
    - fileExt
    - fixAntiMeridian
    - pszAltitude
    - pszAltitudeMode
    - childTiles
    argTypes:
    - std::string
    - int
    - int
    - int
    - double
    - double
    - int
    - int
    - double
    - double
    - int
    - int
    - int
    - OGRCoordinateTransformation*
    - std::string
    - bool
    - char*
    - char*
    - std::vector<std::pair<std::pair<int, int>, bool>>
    constantsTouched: []
    func_position:
      end: 459
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 459
    functionName: GenerateChildKml
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - OGRCoordinateTransformation*::Transform
    - static_cast<int>
    - CPLError
    - VSIFPrintfL
    - VSIFCloseL
    - VSIFOpenL
    - strcmp
    - std::vector::push_back
    - ceil
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: "int GenerateChildKml(\n    const std::string &filename, int zoom,
      int ix, int iy, double zoomxpixel,\n    double zoomypixel, int dxsize, int dysize,
      double south, double west,\n    int xsize, int ysize, int maxzoom, OGRCoordinateTransformation
      *poTransform,\n    const std::string &fileExt, bool fixAntiMeridian, const char
      *pszAltitude,\n    const char *pszAltitudeMode,\n    const std::vector<std::pair<std::pair<int,
      int>, bool>> &childTiles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:478,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:486,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:486,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:487,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:515,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:515,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:516,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 7
    argNames:
    - rxsize
    - rysize
    - rx
    - ry
    - dxsize
    - dysize
    - poSrcDs
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 537
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 537
    functionName: KmlSuperOverlayReadDataset::DetectTransparency
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterBand
    - CPL_IGNORE_RET_VAL
    - GDALRasterBand*::RasterIO
    - std::vector::data
    linkageType: ''
    returnType: int
    signature: "int KmlSuperOverlayReadDataset::DetectTransparency(int rxsize, int
      rysize,\n                                                   int rx, int ry,
      int dxsize,\n                                                   int dysize,\n
      \                                                  GDALDataset *poSrcDs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 546
    functionName: KmlSuperOverlayDummyDataset::KmlSuperOverlayDummyDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KmlSuperOverlayDummyDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 550
    functionName: KmlSuperOverlayDummyDataset::~KmlSuperOverlayDummyDataset()
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KmlSuperOverlayDummyDataset::~KmlSuperOverlayDummyDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetCurrentDir
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:571,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:572,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:577,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:579,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:579,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:581,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:585,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:590,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:590,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:591,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:593,1
    - Dst: CPLGetCurrentDir
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:594,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:597,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:600,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:608,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:611,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:625,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:629,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:630,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:635,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:645,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:648,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:649,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:664,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:673,1
    - Dst: auto::IsProjected
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:674,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:676,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:677,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:678,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:680,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:681,1
    - Dst: std::unique_ptr::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:684,1
    - Dst: std::unique_ptr::Transform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:685,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:709,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:710,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:721,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:722,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:729,1
    - Dst: pow
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:729,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:732,1
    - Dst: fabs
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:732,1
    - Dst: pow
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:733,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:746,1
    - Dst: GenerateRootKml
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:747,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:747,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:748,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:750,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:750,1
    - Dst: GenerateRootKml
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:754,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:755,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:763,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:764,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:774,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:779,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:783,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:788,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:792,1
    - Dst: CPLError
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:798,1
    - Dst: std::stringstream::str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:840,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:841,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:841,1
    - Dst: std::stringstream::str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:853,1
    - Dst: std::stringstream::str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:854,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:855,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:855,1
    - Dst: std::stringstream::str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:899,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:902,1
    - Dst: GenerateTiles
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:905,1
    - Dst: std::stringstream::str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:911,1
    - Dst: std::make_pair
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:928,1
    - Dst: std::make_pair
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:929,1
    - Dst: std::map::count
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:933,1
    - Dst: std::vector<std::pair<std::pair<int, int>, bool>>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:936,1
    - Dst: push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:938,1
    - Dst: std::make_pair
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:939,1
    - Dst: std::make_pair
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:939,1
    - Dst: GenerateChildKml
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:940,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:942,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:947,1
    - Dst: std::map::clear
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:951,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:956,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:960,1
    - Dst: KmlSuperOverlayReadDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:961,1
    - Dst: std::make_unique<KmlSuperOverlayDummyDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:963,1
    - Dst: auto::release
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:964,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 187
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - CPL_UNUSED
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 965
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 965
    functionName: KmlSuperOverlayCreateCopy
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetAxisMappingStrategy
    - GenerateRootKml
    - strcmp
    - CPLGetCurrentDir
    - CPLError
    - std::vector::push_back
    - std::string::c_str
    - CPLGetExtensionSafe
    - std::map::count
    - GenerateChildKml
    - pow
    - CPLStrdup
    - std::make_pair
    - VSIMkdir
    - GetGDALDriverManager
    - GDALDataset*::GetSpatialRef
    - auto::IsProjected
    - pfnProgress
    - std::move
    - std::unique_ptr::Transform
    - std::unique_ptr::reset
    - GDALDataset*::GetGeoTransform
    - static_cast<int>
    - VSIUnlink
    - VSIFOpenL
    - std::map::clear
    - OGRCreateCoordinateTransformation
    - KmlSuperOverlayReadDataset::Open
    - CPLFree
    - CPLFormFilenameSafe
    - GenerateTiles
    - std::vector<std::pair<std::pair<int, int>, bool>>
    - std::unique_ptr::get
    - std::unique_ptr<GDALDataset>
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetPathSafe
    - auto::release
    - VSIFCloseL
    - std::make_unique<KmlSuperOverlayDummyDataset>
    - EQUAL
    - std::stringstream::str
    - fabs
    - push_back
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nKmlSuperOverlayCreateCopy(const char *pszFilename,
      GDALDataset *poSrcDS,\n                          CPL_UNUSED int bStrict, char
      **papszOptions,\n                          GDALProgressFunc pfnProgress, void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::substr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:986,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:987,1
    - Dst: strlen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:987,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - pszPathIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: KMLRemoveSlash
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    - strlen
    linkageType: ''
    returnType: std::string
    signature: std::string KMLRemoveSlash(const char *pszPathIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:998,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1006
    functionName: KmlSuperOverlayReadDataset::KmlSuperOverlayReadDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    - importFromWkt
    linkageType: ''
    returnType: void
    signature: void KmlSuperOverlayReadDataset::KmlSuperOverlayReadDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1016,1
    - Dst: KmlSuperOverlayReadDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1018
    functionName: KmlSuperOverlayReadDataset::~KmlSuperOverlayReadDataset()
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    - KmlSuperOverlayReadDataset::CloseDependentDatasets
    linkageType: ''
    returnType: void
    signature: void KmlSuperOverlayReadDataset::~KmlSuperOverlayReadDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1029,1
    - Dst: reset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1030,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1031,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1046,1
    - Dst: empty
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1052,1
    - Dst: clear
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1059
    functionName: KmlSuperOverlayReadDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - empty
    - clear
    - GetDescription
    - VSIUnlink
    - reset
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int KmlSuperOverlayReadDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: KmlSuperOverlayReadDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *KmlSuperOverlayReadDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1077,1
    - Dst: data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1079
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1079
    functionName: KmlSuperOverlayReadDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr KmlSuperOverlayReadDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - KmlSuperOverlayReadDataset*
    constantsTouched: []
    func_position:
      end: 1093
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1093
    functionName: KmlSuperOverlayRasterBand::KmlSuperOverlayRasterBand
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void KmlSuperOverlayRasterBand::KmlSuperOverlayRasterBand(\n    KmlSuperOverlayReadDataset
      *poDSIn, int /* nBand*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1112,1
    - Dst: KmlSuperOverlayRasterBand::IRasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1116
    functionName: KmlSuperOverlayRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - KmlSuperOverlayRasterBand::IRasterIO
    - INIT_RASTERIO_EXTRA_ARG
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr KmlSuperOverlayRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                            void *pData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALColorInterp>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1125
    functionName: KmlSuperOverlayRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GDALColorInterp>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp KmlSuperOverlayRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSuperOverlayReadDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1137,1
    - Dst: KmlSuperOverlayReadDataset*::IRasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1142
    functionName: KmlSuperOverlayRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<KmlSuperOverlayReadDataset *>
    - KmlSuperOverlayReadDataset*::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr KmlSuperOverlayRasterBand::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    GSpacing nPixelSpace, GSpacing nLineSpace,
      GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSuperOverlayReadDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1151,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1153,1
    - Dst: KmlSuperOverlayReadDataset*::m_apoOverviewDS::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1154
    functionName: KmlSuperOverlayRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<KmlSuperOverlayReadDataset *>
    - static_cast<int>
    - KmlSuperOverlayReadDataset*::m_apoOverviewDS::size
    linkageType: ''
    returnType: int
    signature: int KmlSuperOverlayRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSuperOverlayReadDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1163,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1165,1
    - Dst: KmlSuperOverlayReadDataset*::m_apoOverviewDS::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1165,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iOvr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1169
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1169
    functionName: KmlSuperOverlayRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<KmlSuperOverlayReadDataset *>
    - GetRasterBand
    - static_cast<int>
    - KmlSuperOverlayReadDataset*::m_apoOverviewDS::size
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *KmlSuperOverlayRasterBand::GetOverview(int iOvr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1178,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1180,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1189,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1190,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1191,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1192,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1199,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1202,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1203,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1204,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1207,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1209,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1211,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1213,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1214,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1214,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1215,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1215,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1216,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1217,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1218,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1219,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1221,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1222,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1223,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 2
    argNames:
    - psNode
    - adfExtents
    argTypes:
    - CPLXMLNode*
    - std::array<double, 4>
    constantsTouched: []
    func_position:
      end: 1232
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1232
    functionName: KmlSuperOverlayGetBoundingBox
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLGetXMLNode
    - CPLGetXMLValue
    - strcmp
    - CSLTokenizeString2
    - CPLStringList::size
    linkageType: ''
    returnType: bool
    signature: "bool KmlSuperOverlayGetBoundingBox(const CPLXMLNode *psNode,\n                                          std::array<double,
      4> &adfExtents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCopyRasterIOExtraArg
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1257,1
    - Dst: KmlSuperOverlayReadDataset::IRasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1266,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1305,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1306,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1307,1
    - Dst: KmlSuperOverlayGetBoundingBox
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1308,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1309,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1317,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1319,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1323,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1323,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1325,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1328,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1334,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1335,1
    - Dst: KMLRemoveSlash
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1338,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1342,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1342,1
    - Dst: KmlSuperOverlayReadDataset*::oMapChildren::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1351,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1354,1
    - Dst: KmlSuperOverlayReadDataset*::oMapChildren::erase
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1355,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1357,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1365,1
    - Dst: LinkedDataset::LinkedDataset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1371,1
    - Dst: cpl::down_cast<KmlSuperOverlayReadDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1375,1
    - Dst: KmlSuperOverlayReadDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1376,1
    - Dst: KmlSuperOverlayReadDataset*::MarkAsShared
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1379,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1381,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1382,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1389,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1405,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1410,1
    - Dst: KmlSuperOverlayReadDataset*::Reference
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1444,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1446,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1448,1
    - Dst: std::make_unique<VRTDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1458,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1459,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1460,1
    - Dst: auto::AddBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1464,1
    - Dst: static_cast<VRTSourcedRasterBand *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1466,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1467,1
    - Dst: auto::AddSimpleSource
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1471,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1472,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1475,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1475,1
    - Dst: auto::AddComplexSource
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1480,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1481,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1482,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1483,1
    - Dst: static_cast<VRTSourcedRasterBand *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1506,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1507,1
    - Dst: auto::AddSimpleSource
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1512,1
    - Dst: poDS::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1513,1
    - Dst: poDS::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1515,1
    - Dst: poDS::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1516,1
    - Dst: auto::AddComplexSource
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1521,1
    - Dst: poDS::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1522,1
    - Dst: poDS::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1523,1
    - Dst: poDS::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1524,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1534,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1535,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1536,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1537,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1540,1
    - Dst: auto::RasterIO
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1543,1
    - Dst: poDS::Dereference
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1550,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1570,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1571,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1573,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1585,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1586,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1587,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1588,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1591,1
    - Dst: GDALCreateScaledProgress
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1595,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1599,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1601,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1604,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 147
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1611
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1611
    functionName: KmlSuperOverlayReadDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - LinkedDataset::LinkedDataset
    - poDS::GetRasterBand
    - GDALCreateScaledProgress
    - KmlSuperOverlayReadDataset::IRasterIO
    - GetRasterBand
    - static_cast<VRTSourcedRasterBand *>
    - CPLDebug
    - strcmp
    - auto::GetRasterYSize
    - INIT_RASTERIO_EXTRA_ARG
    - CPLGetXMLValue
    - KMLRemoveSlash
    - STARTS_WITH
    - std::vector::push_back
    - KmlSuperOverlayReadDataset*::oMapChildren::erase
    - auto::AddComplexSource
    - CPLGetExtensionSafe
    - GDALClose
    - auto::GetRasterBand
    - KmlSuperOverlayGetBoundingBox
    - CPLString::c_str
    - KmlSuperOverlayReadDataset*::oMapChildren::size
    - GDALCopyWords
    - static_cast<int>
    - std::make_unique<VRTDataset>
    - poDS::Dereference
    - CPLSPrintf
    - auto::RasterIO
    - GetRasterYSize
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - auto::AddSimpleSource
    - static_cast<GByte *>
    - cpl::down_cast<KmlSuperOverlayReadDataset *>
    - KmlSuperOverlayReadDataset::Open
    - CPLFormFilenameSafe
    - GDALDestroyScaledProgress
    - CPLGetPathSafe
    - KmlSuperOverlayReadDataset*::Reference
    - GDALCopyRasterIOExtraArg
    - auto::GetRasterXSize
    - CPLGetXMLNode
    - auto::AddBand
    - poDS::GetRasterXSize
    - poDS::GetRasterYSize
    - EQUAL
    - KmlSuperOverlayReadDataset*::MarkAsShared
    - GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr KmlSuperOverlayReadDataset::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    int nBandCount, BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1626,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1627,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1628,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1634,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1635,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1636,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1637,1
    - Dst: KmlSuperOverlayFindRegionStartInternal
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1650,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 5
    argNames:
    - psNode
    - ppsRegion
    - ppsDocument
    - ppsGroundOverlay
    - ppsLink
    argTypes:
    - CPLXMLNode*
    - CPLXMLNode**
    - CPLXMLNode**
    - CPLXMLNode**
    - CPLXMLNode**
    constantsTouched: []
    func_position:
      end: 1659
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1659
    functionName: KmlSuperOverlayFindRegionStartInternal
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - CPLGetXMLNode
    - strcmp
    - KmlSuperOverlayFindRegionStartInternal
    linkageType: ''
    returnType: int
    signature: "int KmlSuperOverlayFindRegionStartInternal(CPLXMLNode *psNode,\n                                                  CPLXMLNode
      **ppsRegion,\n                                                  CPLXMLNode **ppsDocument,\n
      \                                                 CPLXMLNode **ppsGroundOverlay,\n
      \                                                 CPLXMLNode **ppsLink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlSuperOverlayFindRegionStartInternal
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - psNode
    - ppsRegion
    - ppsDocument
    - ppsGroundOverlay
    - ppsLink
    argTypes:
    - CPLXMLNode*
    - CPLXMLNode**
    - CPLXMLNode**
    - CPLXMLNode**
    - CPLXMLNode**
    constantsTouched: []
    func_position:
      end: 1681
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1681
    functionName: KmlSuperOverlayFindRegionStart
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - KmlSuperOverlayFindRegionStartInternal
    linkageType: ''
    returnType: int
    signature: "int KmlSuperOverlayFindRegionStart(CPLXMLNode *psNode,\n                                          CPLXMLNode
      **ppsRegion,\n                                          CPLXMLNode **ppsDocument,\n
      \                                         CPLXMLNode **ppsGroundOverlay,\n                                          CPLXMLNode
      **ppsLink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1691,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1697,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1699,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1699,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1709,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1710,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1711,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1714,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1715,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1716,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1719,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1720,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1721,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1722,1
    - Dst: strstr
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1723,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1726,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 17
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1731
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1731
    functionName: KmlSuperOverlayReadDataset::Identify
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALOpenInfo*::TryToIngest
    - reinterpret_cast<const char *>
    - strstr
    linkageType: ''
    returnType: int
    signature: int KmlSuperOverlayReadDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlSuperOverlayReadDataset::Identify
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1740,1
    - Dst: KmlSuperOverlayReadDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1744
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1744
    functionName: KmlSuperOverlayReadDataset::Open
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 3
    functionsReached:
    - KmlSuperOverlayReadDataset::Identify
    - KmlSuperOverlayReadDataset::Open
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *KmlSuperOverlayReadDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1755,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1757,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1757,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1758,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1764,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1765,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1768,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1769,1
    - Dst: KMLRemoveSlash
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1770,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1773,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1778,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1778,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1781,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1785,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1788,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1792,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1793,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1793,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1795,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1795,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1799,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - pszBaseFilename
    - pszIcon
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1804
      start: 1752
    functionDepth: 4
    functionLinenumber: 1752
    functionLinenumberEnd: 1804
    functionName: KmlSuperOverlayLoadIcon
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - CPLFree
    - CPLGetPathSafe
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - VSIUnlink
    - CPLSPrintf
    - VSIMalloc
    - EQUAL
    - VSIFOpenL
    - OGRAPISpyOpen
    - static_cast<GByte *>
    - VSIMemGenerateHiddenFilename
    - KMLRemoveSlash
    - STARTS_WITH
    - CPLFormFilenameSafe
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: std::unique_ptr<GDALDataset>
    signature: std::unique_ptr<GDALDataset> KmlSuperOverlayLoadIcon(const char *pszBaseFilename,
      const char *pszIcon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1818,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1819,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1820,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1822,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1822,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1825,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1827,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1830,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1831,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1831,1
    - Dst: KMLRemoveSlash
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1833,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1836,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1843,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1849,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1852,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1856,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1857,1
    - Dst: KmlSuperOverlayFindRegionStart
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1864,1
    - Dst: KmlSuperOverlayComputeDepth
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1870,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1873,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1877,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - osFilename
    - psDocument
    - nLevel
    argTypes:
    - std::string
    - CPLXMLNode*
    - int
    constantsTouched: []
    func_position:
      end: 1887
      start: 1810
    functionDepth: 3
    functionLinenumber: 1810
    functionLinenumberEnd: 1887
    functionName: KmlSuperOverlayComputeDepth
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - KmlSuperOverlayFindRegionStart
    - CPLFree
    - CPLGetPathSafe
    - VSIFCloseL
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - CPLSPrintf
    - EQUAL
    - VSIFOpenL
    - strcmp
    - CPLParseXMLString
    - KmlSuperOverlayComputeDepth
    - CPLGetXMLValue
    - KMLRemoveSlash
    - STARTS_WITH
    - std::string::c_str
    - CPLFormFilenameSafe
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: bool
    signature: "bool KmlSuperOverlayComputeDepth(const std::string &osFilename,\n
      \                                       CPLXMLNode *psDocument, int &nLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1930,1
    - Dst: data
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1932
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1932
    functionName: KmlSingleDocRasterDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GetGeoTransform(double *padfGeoTransform) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1937
    functionName: KmlSingleDocRasterDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1967,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1969
    functionName: KmlSingleDocRasterDataset::KmlSingleDocRasterDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    - importFromWkt
    linkageType: ''
    returnType: void
    signature: void KmlSingleDocRasterDataset::KmlSingleDocRasterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KmlSingleDocRasterDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 1978
    functionName: KmlSingleDocRasterDataset::~KmlSingleDocRasterDataset()
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - KmlSingleDocRasterDataset::CloseDependentDatasets
    linkageType: ''
    returnType: void
    signature: void KmlSingleDocRasterDataset::~KmlSingleDocRasterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1991,1
    - Dst: empty
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1993,1
    - Dst: clear
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:1996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 2000
    functionName: KmlSingleDocRasterDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - clear
    - empty
    - reset
    linkageType: ''
    returnType: int
    signature: int KmlSingleDocRasterDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2011,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2013,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2015,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2015,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2016,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2023,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2025,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2028,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2033,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2034,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2037,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2037,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2038,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2043,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 8
    argNames:
    - osDirname
    - oDesc
    - nLevel
    - nTileSize
    - nXSize
    - nYSize
    - nBands
    - bHasCT
    argTypes:
    - CPLString
    - KmlSingleDocRasterTilesDesc
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2049
      start: 2006
    functionDepth: 4
    functionLinenumber: 2006
    functionLinenumberEnd: 2049
    functionName: KmlSingleDocGetDimensions
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - auto::GetRasterXSize
    - auto::GetRasterBand
    - CPLSPrintf
    - auto::GetRasterCount
    - OGRAPISpyOpen
    - std::string::c_str
    - CPLFormFilenameSafe
    - auto::reset
    linkageType: ''
    returnType: bool
    signature: "bool KmlSingleDocGetDimensions(const CPLString &osDirname,\n                                      const
      KmlSingleDocRasterTilesDesc &oDesc,\n                                      int
      nLevel, int nTileSize, int &nXSize,\n                                      int
      &nYSize, int &nBands, int &bHasCT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2061,1
    - Dst: size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2061,1
    - Dst: size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2064,1
    - Dst: KmlSingleDocGetDimensions
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2069,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2070,1
    - Dst: size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2070,1
    - Dst: std::make_unique<KmlSingleDocRasterDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2076,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2079,1
    - Dst: size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2079,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2093,1
    - Dst: std::make_unique<KmlSingleDocRasterRasterBand>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2094,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2095,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2096,1
    - Dst: push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2098,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2055
    functionDepth: 5
    functionLinenumber: 2055
    functionLinenumberEnd: 2100
    functionName: KmlSingleDocRasterDataset::BuildOverviews
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - auto::SetBand
    - std::make_unique<KmlSingleDocRasterDataset>
    - static_cast<int>
    - auto::get
    - KmlSingleDocGetDimensions
    - auto::SetMetadataItem
    - std::move
    - push_back
    - std::make_unique<KmlSingleDocRasterRasterBand>
    linkageType: ''
    returnType: void
    signature: void KmlSingleDocRasterDataset::BuildOverviews()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - KmlSingleDocRasterDataset*
    - int
    constantsTouched: []
    func_position:
      end: 2114
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2114
    functionName: KmlSingleDocRasterRasterBand::KmlSingleDocRasterRasterBand
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void KmlSingleDocRasterRasterBand::KmlSingleDocRasterRasterBand(\n
      \   KmlSingleDocRasterDataset *poDSIn, int nBandIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSingleDocRasterDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2124,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2126,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2127,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2131,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2131,1
    - Dst: KmlSingleDocRasterDataset*::poCurTileDS::GetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2131,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2132,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2132,1
    - Dst: KmlSingleDocRasterDataset*::poCurTileDS::reset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2135,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2136,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2136,1
    - Dst: KmlSingleDocRasterDataset*::poCurTileDS::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2138,1
    - Dst: memset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2141,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2141,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2156,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2157,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2162,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2165,1
    - Dst: memset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2169,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2169,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2174,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2181,1
    - Dst: GDALColorTable*::GetColorEntry
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2189,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2194,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2197,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2200,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2203,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2210,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2212,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2216,1
    - Dst: memset
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2219,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2219,1
    - Dst: static_cast<KmlSingleDocRasterRasterBand *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2232,1
    - Dst: KmlSingleDocRasterDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2233,1
    - Dst: KmlSingleDocRasterRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2235,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2238,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2245
      start: 2120
    functionDepth: 4
    functionLinenumber: 2120
    functionLinenumberEnd: 2245
    functionName: KmlSingleDocRasterRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<KmlSingleDocRasterDataset *>
    - CPLGetFilename
    - KmlSingleDocRasterRasterBand*::GetLockedBlockRef
    - CPLDebug
    - strcmp
    - static_cast<GByte>
    - GDALRasterBlock*::DropLock
    - GDALDataset*::GetRasterCount
    - std::string::c_str
    - KmlSingleDocRasterDataset*::GetRasterBand
    - OGRAPISpyOpen
    - KmlSingleDocRasterDataset*::poCurTileDS::GetDescription
    - static_cast<KmlSingleDocRasterRasterBand *>
    - GDALDataset*::GetRasterBand
    - CPLSPrintf
    - static_cast<GByte *>
    - CPLFormFilenameSafe
    - KmlSingleDocRasterDataset*::poCurTileDS::get
    - static_cast<size_t>
    - KmlSingleDocRasterDataset*::poCurTileDS::reset
    - GDALColorTable*::GetColorEntry
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr KmlSingleDocRasterRasterBand::IReadBlock(int nBlockXOff, int
      nBlockYOff,\n                                                void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALColorInterp>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2251
    functionDepth: 0
    functionLinenumber: 2251
    functionLinenumberEnd: 2254
    functionName: KmlSingleDocRasterRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GDALColorInterp>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp KmlSingleDocRasterRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSingleDocRasterDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2263,1
    - Dst: KmlSingleDocRasterDataset*::BuildOverviews
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2264,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2266,1
    - Dst: KmlSingleDocRasterDataset*::m_apoOverviews::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2267
    functionName: KmlSingleDocRasterRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<KmlSingleDocRasterDataset *>
    - static_cast<int>
    - KmlSingleDocRasterDataset*::m_apoOverviews::size
    - KmlSingleDocRasterDataset*::BuildOverviews
    linkageType: ''
    returnType: int
    signature: int KmlSingleDocRasterRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<KmlSingleDocRasterDataset *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2276,1
    - Dst: KmlSingleDocRasterDataset*::BuildOverviews
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2277,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2279,1
    - Dst: KmlSingleDocRasterDataset*::m_apoOverviews::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2279,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iOvr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2283
      start: 2273
    functionDepth: 0
    functionLinenumber: 2273
    functionLinenumberEnd: 2283
    functionName: KmlSingleDocRasterRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<KmlSingleDocRasterDataset *>
    - static_cast<int>
    - GetRasterBand
    - KmlSingleDocRasterDataset*::m_apoOverviews::size
    - KmlSingleDocRasterDataset*::BuildOverviews
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *KmlSingleDocRasterRasterBand::GetOverview(int iOvr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2294,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2299,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2301,1
    - Dst: sscanf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2303,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2303,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2306,1
    - Dst: std::vector<KmlSingleDocRasterTilesDesc>::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2306,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2309,1
    - Dst: std::vector<KmlSingleDocRasterTilesDesc>::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2309,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2315,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2316,1
    - Dst: std::vector<KmlSingleDocRasterTilesDesc>::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2317,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2322,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2325,1
    - Dst: std::vector<KmlSingleDocRasterTilesDesc>::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2326,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2340,1
    - Dst: strcpy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2348,1
    - Dst: KmlSingleDocCollectTiles
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2359,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - psNode
    - aosDescs
    - osURLBase
    argTypes:
    - CPLXMLNode*
    - std::vector<KmlSingleDocRasterTilesDesc>
    - CPLString
    constantsTouched: []
    func_position:
      end: 2363
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2363
    functionName: KmlSingleDocCollectTiles
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - sscanf
    - CPLGetPathSafe
    - static_cast<int>
    - CPLGetFilename
    - KmlSingleDocCollectTiles
    - strcmp
    - std::vector<KmlSingleDocRasterTilesDesc>::push_back
    - strcpy
    - STARTS_WITH
    - std::vector<KmlSingleDocRasterTilesDesc>::size
    linkageType: ''
    returnType: void
    signature: "void KmlSingleDocCollectTiles(CPLXMLNode *psNode,\n                         std::vector<KmlSingleDocRasterTilesDesc>
      &aosDescs,\n                         CPLString &osURLBase)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2377,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2381,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2385,1
    - Dst: KmlSuperOverlayGetBoundingBox
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2388,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2392,1
    - Dst: KmlSingleDocCollectTiles
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2393,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2394,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2403,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2404,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2405,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2405,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2406,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2407,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2407,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2408,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2414,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2419,1
    - Dst: KmlSingleDocGetDimensions
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2424,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2425,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2425,1
    - Dst: std::make_unique<KmlSingleDocRasterDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2431,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2434,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2434,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2436,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2450,1
    - Dst: std::make_unique<KmlSingleDocRasterRasterBand>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2450,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2451,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2452,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2453,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2454,1
    - Dst: auto::release
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2456,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - pszFilename
    - osFilename
    - psRoot
    argTypes:
    - char*
    - CPLString
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2457
      start: 2373
    functionDepth: 5
    functionLinenumber: 2373
    functionLinenumberEnd: 2457
    functionName: KmlSingleDocRasterDataset::Open
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - auto::SetBand
    - std::vector::size
    - auto::get
    - strcmp
    - auto::GetRasterYSize
    - std::string::c_str
    - std::make_unique<KmlSingleDocRasterDataset>
    - KmlSuperOverlayGetBoundingBox
    - OGRAPISpyOpen
    - std::move
    - std::vector::empty
    - static_cast<int>
    - KmlSingleDocCollectTiles
    - CPLSPrintf
    - std::make_unique<KmlSingleDocRasterRasterBand>
    - auto::SetMetadataItem
    - CPLFormFilenameSafe
    - auto::SetDescription
    - std::unique_ptr<GDALDataset>
    - CPLGetPathSafe
    - auto::release
    - CPLGetXMLNode
    - std::vector::back
    - KmlSingleDocGetDimensions
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *KmlSingleDocRasterDataset::Open(const char *pszFilename,\n
      \                                            const CPLString &osFilename,\n
      \                                            CPLXMLNode *psRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - nXSize
    - nYSize
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2469
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2469
    functionName: KmlSingleOverlayRasterDataset::KmlSingleOverlayRasterDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KmlSingleOverlayRasterDataset(int nXSize, int nYSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2477
    functionName: KmlSingleOverlayRasterDataset::~KmlSingleOverlayRasterDataset()
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KmlSingleOverlayRasterDataset::~KmlSingleOverlayRasterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2489,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2494,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2503,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2518,1
    - Dst: KmlSuperOverlayGetBoundingBox
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2536,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2538,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2539,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2540,1
    - Dst: GDALOpenShared
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2541,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2541,1
    - Dst: std::make_unique<KmlSingleOverlayRasterDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2545,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2546,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2546,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2547,1
    - Dst: auto::AddBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2549,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2551,1
    - Dst: static_cast<VRTSourcedRasterBand *>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2553,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2553,1
    - Dst: auto::AddSimpleSource
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2554,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2555,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2556,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2556,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2557,1
    - Dst: auto::SetColorInterpretation
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2559,1
    - Dst: auto::GetColorInterpretation
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2560,1
    - Dst: auto::GetColorTable
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2562,1
    - Dst: auto::SetColorTable
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2564,1
    - Dst: GDALDataset*::Dereference
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2566,1
    - Dst: auto::SetGeoTransform
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2574,1
    - Dst: auto::SetProjection
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2575,1
    - Dst: auto::SetWritable
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2576,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2577,1
    - Dst: auto::release
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2579,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - pszFilename
    - osFilename
    - psRoot
    argTypes:
    - char*
    - CPLString
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2580
      start: 2485
    functionDepth: 2
    functionLinenumber: 2485
    functionLinenumberEnd: 2580
    functionName: KmlSingleOverlayRasterDataset::Open
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached:
    - auto::SetColorInterpretation
    - auto::GetColorInterpretation
    - static_cast<VRTSourcedRasterBand *>
    - strcmp
    - GDALDataset*::GetRasterCount
    - std::string::c_str
    - GDALDataset*::Dereference
    - auto::GetRasterBand
    - KmlSuperOverlayGetBoundingBox
    - FromHandle
    - GDALDataset*::GetRasterBand
    - GDALDataset*::GetRasterXSize
    - auto::AddSimpleSource
    - auto::SetColorTable
    - CPLFormFilenameSafe
    - auto::SetDescription
    - auto::GetColorTable
    - GDALDataset*::GetRasterYSize
    - CPLGetPathSafe
    - auto::release
    - CPLGetXMLNode
    - auto::AddBand
    - std::make_unique<KmlSingleOverlayRasterDataset>
    - GDALOpenShared
    - auto::SetProjection
    - auto::SetGeoTransform
    - auto::SetWritable
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *KmlSingleOverlayRasterDataset::Open(const char *pszFilename,\n
      \                                                const CPLString &osFilename,\n
      \                                                CPLXMLNode *psRoot)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2594,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2594,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2596,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2597,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2604,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2604,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2607,1
    - Dst: KMLRemoveSlash
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2608,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2612,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2614,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2620,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2625,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2628,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2632,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2633,1
    - Dst: KmlSingleDocRasterDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2638,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2641,1
    - Dst: KmlSuperOverlayFindRegionStart
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2649,1
    - Dst: KmlSingleOverlayRasterDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2656,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2658,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2666,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2666,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2668,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2673,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2674,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2677,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2678,1
    - Dst: KMLRemoveSlash
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2679,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2683,1
    - Dst: strcmp
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2689,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2690,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2702,1
    - Dst: KmlSuperOverlayReadDataset::Open
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2705,1
    - Dst: GDALDataset*::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2708,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2710,1
    - Dst: GDALDataset*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2712,1
    - Dst: empty
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2714,1
    - Dst: GDALDataset*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2716,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2723,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2724,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2725,1
    - Dst: KmlSuperOverlayGetBoundingBox
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2728,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2730,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2737,1
    - Dst: KmlSuperOverlayLoadIcon
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2740,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2743,1
    - Dst: KmlSuperOverlayComputeDepth
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2753,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2755,1
    - Dst: std::make_unique<KmlSuperOverlayReadDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2761,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2767,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2768,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2777,1
    - Dst: std::make_unique<KmlSuperOverlayRasterBand>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2777,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2778,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2779,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2780,1
    - Dst: std::make_unique<KmlSuperOverlayReadDataset>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2786,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2792,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2794,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2795,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2804,1
    - Dst: std::make_unique<KmlSuperOverlayRasterBand>
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2804,1
    - Dst: auto::get
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2805,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2806,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2807,1
    - Dst: auto::m_apoOverviewDS::push_back
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2809,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2809,1
    - Dst: std::move
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2811,1
    - Dst: auto::release
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2813,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 130
    argCount: 3
    argNames:
    - pszFilename
    - poParent
    - nRec
    argTypes:
    - char*
    - KmlSuperOverlayReadDataset*
    - int
    constantsTouched: []
    func_position:
      end: 2814
      start: 2586
    functionDepth: 5
    functionLinenumber: 2586
    functionLinenumberEnd: 2814
    functionName: KmlSuperOverlayReadDataset::Open
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 4
    functionsReached:
    - KmlSingleOverlayRasterDataset::Open
    - auto::SetBand
    - std::make_unique<KmlSuperOverlayRasterBand>
    - GDALDataset*::SetDescription
    - auto::get
    - std::make_unique<KmlSuperOverlayReadDataset>
    - strcmp
    - KmlSuperOverlayComputeDepth
    - auto::GetRasterYSize
    - KMLRemoveSlash
    - STARTS_WITH
    - CPLString::empty
    - CPLGetExtensionSafe
    - KmlSuperOverlayLoadIcon
    - KmlSuperOverlayGetBoundingBox
    - auto::m_apoOverviewDS::push_back
    - GDALDataset*::SetMetadataItem
    - std::move
    - KmlSuperOverlayFindRegionStart
    - CPLDestroyXMLNode
    - CPLSPrintf
    - CPLParseXMLString
    - VSIFOpenL
    - CPLAssert
    - auto::SetMetadataItem
    - KmlSuperOverlayReadDataset::Open
    - CPLFree
    - CPLFormFilenameSafe
    - auto::SetDescription
    - CPLGetPathSafe
    - empty
    - auto::GetRasterXSize
    - VSIFCloseL
    - auto::release
    - CPLGetXMLNode
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - KmlSingleDocRasterDataset::Open
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nKmlSuperOverlayReadDataset::Open(const char *pszFilename,\n
      \                                KmlSuperOverlayReadDataset *poParent, int nRec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 2824
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2824
    functionName: KmlSuperOverlayDatasetDelete
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr KmlSuperOverlayDatasetDelete(CPL_UNUSED const char *fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2833,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2836,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2838,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2839,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2840,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2841,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2845,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2847,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2875,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp:2882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2830
    functionDepth: 1
    functionLinenumber: 2830
    functionLinenumberEnd: 2883
    functionName: GDALRegister_KMLSUPEROVERLAY
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_KMLSUPEROVERLAY()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: LinkedDataset::LinkedDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LinkedDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: LinkedDataset::LinkedDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LinkedDataset(const LinkedDataset &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '&operator=(const LinkedDataset &)'
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LinkedDataset
    signature: LinkedDataset &operator=(const LinkedDataset &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: KmlSuperOverlayReadDataset::KmlSuperOverlayReadDataset
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KmlSuperOverlayReadDataset(const KmlSuperOverlayReadDataset &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: "&\n    operator=(const KmlSuperOverlayReadDataset &)"
    functionSourceFile: /src/gdal/frmts/kmlsuperoverlay/kmlsuperoverlaydataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KmlSuperOverlayReadDataset
    signature: "KmlSuperOverlayReadDataset &\n    operator=(const KmlSuperOverlayReadDataset
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:58,1
    - Dst: CPLString
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - psXMLNode
    - pszNodeType
    argTypes:
    - CPLXMLNode*
    - char**
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: GetFilePath
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLGetXMLValue
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFilePath(CPLXMLNode *psXMLNode, const char **pszNodeType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:141,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:144,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:147,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:150,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:155,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - poDSIn
    - eDataTypeIn
    - ePolIn
    - poBandIn
    argTypes:
    - TSXDataset*
    - GDALDataType
    - ePolarization
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 157
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 157
    functionName: TSXRasterBand::TSXRasterBand
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterBand
    - SetMetadataItem
    - GDALRasterBand*::GetBlockSize
    linkageType: ''
    returnType: void
    signature: "void TSXRasterBand::TSXRasterBand(TSXDataset *poDSIn, GDALDataType
      eDataTypeIn,\n                             ePolarization ePolIn, GDALDataset
      *poBandIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:166,1
    - Dst: reinterpret_cast<GDALRasterBandH>
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: TSXRasterBand::~TSXRasterBand()
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALRasterBandH>
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void TSXRasterBand::~TSXRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:181,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:182,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:182,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:193,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: TSXRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - memset
    - static_cast<size_t>
    - RasterIO
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr TSXRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:220,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: TSXDataset::TSXDataset
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void TSXDataset::TSXDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:236,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:240,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: TSXDataset::~TSXDataset()
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - FlushCache
    - GDALDeinitGCPs
    linkageType: ''
    returnType: void
    signature: void TSXDataset::~TSXDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:255,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:257,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:261,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:261,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:263,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:263,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:265,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:265,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:270,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:279,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:279,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:281,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:281,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:283,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:283,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:288,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 293
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 293
    functionName: TSXDataset::Identify
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - reinterpret_cast<char *>
    - VSIStatL
    - CPLGetFilename
    - CPLGetBasenameSafe
    - CPLFormCIFilenameSafe
    linkageType: ''
    returnType: int
    signature: int TSXDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:305,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:310,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:312,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:322,1
    - Dst: CPLError
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:325,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:328,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:330,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:332,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:338,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:344,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:347,1
    - Dst: atoi
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:350,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:358,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:364,1
    - Dst: reinterpret_cast<GDAL_GCP *>
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:373,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:373,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:388,1
    - Dst: strcmp
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:391,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:391,1
    - Dst: strcmp
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:392,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:392,1
    - Dst: strcmp
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:393,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:393,1
    - Dst: strcmp
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:394,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:394,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:396,1
    - Dst: CPLError
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:406,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:413,1
    - Dst: snprintf
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:419,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:420,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:421,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:422,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:422,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:423,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:423,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:424,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:424,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:425,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:425,1
    - Dst: std::move
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:432,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:434,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 1
    argNames:
    - pszGeorefFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 437
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 437
    functionName: TSXDataset::getGCPsFromGEOREF_XML
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRSpatialReference::OGRSpatialReference
    - CPLStrdup
    - OGRSpatialReference::SetGeogCS
    - CPLParseXMLFile
    - atoi
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - CPLGetXMLValue
    - EQUAL
    - strcmp
    - snprintf
    - std::move
    - reinterpret_cast<GDAL_GCP *>
    - CPLError
    - CPLCalloc
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: bool
    signature: bool TSXDataset::getGCPsFromGEOREF_XML(char *pszGeorefFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TSXDataset::Identify
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:448,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:458,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:466,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:467,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:474,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:483,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:485,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:491,1
    - Dst: CPLError
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:494,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:496,1
    - Dst: TSXDataset::TSXDataset
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:504,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:510,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:512,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:514,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:515,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:518,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:520,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:521,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:523,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:524,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:526,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:527,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:528,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:531,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:532,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:537,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:548,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:549,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:552,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:554,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:556,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:558,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:563,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:565,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:567,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:568,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:575,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:578,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:580,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:582,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:584,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:597,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:597,1
    - Dst: GetFilePath
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:598,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:601,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:603,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:606,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:606,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:608,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:611,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:612,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:612,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:615,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:616,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:620,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:624,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:628,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:637,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:643,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:643,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:643,1
    - Dst: TSXRasterBand::TSXRasterBand
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:647,1
    - Dst: TSXDataset*::SetBand
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:648,1
    - Dst: TSXDataset*::GetRasterCount
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:648,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:653,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:658,1
    - Dst: TSXDataset*::m_oSRS::IsEmpty
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:664,1
    - Dst: TSXDataset*::m_oSRS::Clear
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:671,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:680,1
    - Dst: TSXDataset*::GetRasterCount
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:686,1
    - Dst: TSXDataset*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:688,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:696,1
    - Dst: TSXDataset*::getGCPsFromGEOREF_XML
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:702,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:719,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:720,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:728,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:736,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:737,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:741,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:741,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:743,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:743,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:745,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:745,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:747,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:747,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:749,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:749,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:750,1
    - Dst: TSXDataset*::m_oGCPSRS::SetWellKnownGeogCS
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:757,1
    - Dst: TSXDataset*::m_oSRS::Clear
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:765,1
    - Dst: CPLError
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:776,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:781,1
    - Dst: TSXDataset*::SetDescription
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:786,1
    - Dst: TSXDataset*::TryLoadXML
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:787,1
    - Dst: TSXDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:792,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:794,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 141
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 797
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 797
    functionName: TSXDataset::Open
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - TSXDataset*::getGCPsFromGEOREF_XML
    - TSXDataset*::m_oGCPSRS::SetWellKnownGeogCS
    - CPLGetXMLValue
    - CPLError
    - std::string::c_str
    - CPLStrdup
    - TSXDataset*::TryLoadXML
    - CPLGetDirnameSafe
    - TSXDataset*::m_oSRS::Clear
    - TSXDataset*::SetBand
    - TSXRasterBand::TSXRasterBand
    - GDALDataset*::GetSpatialRef
    - CPLFormCIFilenameSafe
    - GDALDataset*::GetGeoTransform
    - TSXDataset::Identify
    - CPLAtof
    - STARTS_WITH_CI
    - FromHandle
    - TSXDataset*::m_oSRS::IsEmpty
    - CPLDestroyXMLNode
    - CPLSPrintf
    - TSXDataset*::GetRasterCount
    - CPLCalloc
    - CPLFree
    - CPLFormFilenameSafe
    - CPLParseXMLFile
    - CPLGetXMLNode
    - ReportUpdateNotSupportedByDriver
    - TSXDataset*::SetDescription
    - EQUAL
    - TSXDataset::TSXDataset
    - GetFilePath
    - TSXDataset*::oOvManager::Initialize
    - TSXDataset*::SetMetadataItem
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *TSXDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 806
    functionName: TSXDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TSXDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: TSXDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *TSXDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: TSXDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *TSXDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 834
    functionName: TSXDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *TSXDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 847
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 847
    functionName: TSXDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr TSXDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:855,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:858,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:860,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:861,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:862,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:863,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:864,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/tsx/tsxdataset.cpp:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 870
    functionName: GDALRegister_TSX
    functionSourceFile: /src/gdal/frmts/tsx/tsxdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_TSX()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/gdal/frmts/envisat/unwrapgcps.cpp:103,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - cnt
    - gcp
    argTypes:
    - int
    - GDAL_GCP*
    constantsTouched: []
    func_position:
      end: 104
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 104
    functionName: _suggest_flip_point
    functionSourceFile: /src/gdal/frmts/envisat/unwrapgcps.cpp
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: double
    signature: double _suggest_flip_point(const int cnt, GDAL_GCP *gcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/unwrapgcps.cpp:169,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - cnt
    - gcp
    argTypes:
    - int
    - GDAL_GCP*
    constantsTouched: []
    func_position:
      end: 186
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 186
    functionName: EnvisatUnwrapGCPs
    functionSourceFile: /src/gdal/frmts/envisat/unwrapgcps.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void EnvisatUnwrapGCPs(int cnt, GDAL_GCP *gcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size_t
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: CPL_IGNORE_RET_VAL_SIZET
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_SIZET(CPL_UNUSED size_t unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:130,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:140,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:140,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:141,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:146,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:146,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:147,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:147,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:152,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:160,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:162,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:163,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - EnvisatFile*
    constantsTouched: []
    func_position:
      end: 174
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 174
    functionName: EnvisatFile_SetupLevel0
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - CPL_IGNORE_RET_VAL_SIZET
    - CPLStrdup
    - VSIFSeekL
    - VSIFTellL
    - CPL_IGNORE_RET_VAL_INT
    - VSIFReadL
    - CPLCalloc
    linkageType: ''
    returnType: int
    signature: int EnvisatFile_SetupLevel0(EnvisatFile *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:214,1
    - Dst: strcmp
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:216,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:220,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:229,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:235,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:238,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:245,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:250,1
    - Dst: strcmp
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:252,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:258,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:260,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:261,1
    - Dst: S_NameValueList_Parse
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:266,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:269,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:276,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:277,1
    - Dst: EnvisatFile_GetKeyValueAsString
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:277,1
    - Dst: EnvisatFile_SetupLevel0
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:281,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:283,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:296,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:300,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:302,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:306,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:309,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:313,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:315,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:316,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:317,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:322,1
    - Dst: S_NameValueList_Parse
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:329,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:332,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:333,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:340,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:341,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:345,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:346,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:347,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:352,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:355,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:356,1
    - Dst: S_NameValueList_Parse
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:373,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:376,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:377,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:385,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:387,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:388,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:389,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:390,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:391,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:391,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:393,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:393,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:395,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:395,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:397,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:397,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:399,1
    - Dst: S_NameValueList_FindValue
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:399,1
    - Dst: S_NameValueList_Destroy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:402,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:408,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 106
    argCount: 3
    argNames:
    - self_ptr
    - filename
    - mode
    argTypes:
    - EnvisatFile**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 416
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 416
    functionName: EnvisatFile_Open
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - atoi
    - strcmp
    - EnvisatFile_GetKeyValueAsString
    - STARTS_WITH
    - CPLStrdup
    - EnvisatFile_SetupLevel0
    - S_NameValueList_Parse
    - CPLMalloc
    - SendError
    - S_NameValueList_Destroy
    - VSIFOpenL
    - snprintf
    - EnvisatFile_GetKeyValueAsInt
    - VSIFReadL
    - strstr
    - EnvisatFile_Close
    - CPLCalloc
    - CPLFree
    - S_NameValueList_FindValue
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_Open(EnvisatFile **self_ptr, const char *filename,\n
      \                    const char *mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:452,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:458,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:462,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:466,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:466,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:467,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:469,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:471,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:471,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:472,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:472,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:473,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:473,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:479,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:484,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:488,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:492,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:492,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:493,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:493,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:495,1
    - Dst: EnvisatFile_Open
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - self_ptr
    - filename
    - template_file
    argTypes:
    - EnvisatFile**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 502
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 502
    functionName: EnvisatFile_Create
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - CPL_IGNORE_RET_VAL_SIZET
    - VSIFCloseL
    - VSIFSeekL
    - EnvisatFile_Open
    - VSIFOpenL
    - snprintf
    - CPL_IGNORE_RET_VAL_INT
    - VSIFTellL
    - VSIFReadL
    - VSIFWriteL
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_Create(EnvisatFile **self_ptr, const char *filename,\n
      \                      const char *template_file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:534,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - EnvisatFile*
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: EnvisatFile_GetCurrentLength
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - EnvisatFile_GetDatasetInfo
    - EnvisatFile_GetKeyValueAsInt
    linkageType: ''
    returnType: int
    signature: int EnvisatFile_GetCurrentLength(EnvisatFile *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_NameValueList_Rewrite
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:576,1
    - Dst: S_NameValueList_Rewrite
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:580,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:588,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:598,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:599,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:602,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:603,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:607,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:609,1
    - Dst: S_NameValueList_Parse
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:613,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:617,1
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:620,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:624,1
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:629,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:630,1
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:635,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:636,1
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:641,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:642,1
    - Dst: S_NameValueList_Rewrite
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:646,1
    - Dst: S_NameValueList_Destroy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:650,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - EnvisatFile*
    constantsTouched: []
    func_position:
      end: 656
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 656
    functionName: EnvisatFile_RewriteHeader
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - VSIFSeekL
    - S_NameValueList_Destroy
    - S_NameValueList_Rewrite
    - S_NameValueList_Parse
    - EnvisatFile_GetKeyValueAsInt
    - snprintf
    - VSIFReadL
    - S_NameValueList_FindKey
    - CPLCalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int EnvisatFile_RewriteHeader(EnvisatFile *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_RewriteHeader
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:687,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:693,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:693,1
    - Dst: S_NameValueList_Destroy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:698,1
    - Dst: S_NameValueList_Destroy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:699,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:705,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:706,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:707,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:708,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:712,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:714,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - EnvisatFile*
    constantsTouched: []
    func_position:
      end: 717
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 717
    functionName: EnvisatFile_Close
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    - S_NameValueList_Destroy
    - CPL_IGNORE_RET_VAL_INT
    - EnvisatFile_RewriteHeader
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void EnvisatFile_Close(EnvisatFile *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - EnvisatFile*
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 744
    functionName: EnvisatFile_GetFilename
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EnvisatFile_GetFilename(EnvisatFile *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - mph_or_sph
    - key_index
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - int
    constantsTouched: []
    func_position:
      end: 797
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 797
    functionName: EnvisatFile_GetKeyByIndex
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *EnvisatFile_GetKeyByIndex(EnvisatFile *self,\n                                      EnvisatFile_HeaderFlag
      mph_or_sph,\n                                      int key_index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - default_value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 853
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 853
    functionName: EnvisatFile_GetKeyValueAsString
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached:
    - S_NameValueList_FindKey
    linkageType: ''
    returnType: char
    signature: "char *EnvisatFile_GetKeyValueAsString(EnvisatFile *self,\n                                            EnvisatFile_HeaderFlag
      mph_or_sph,\n                                            const char *key,\n
      \                                           const char *default_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:890,1
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:911,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:916,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:919,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:924,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:925,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:928,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:932,1
    - Dst: memset
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 938
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 938
    functionName: EnvisatFile_SetKeyValueAsString
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - snprintf
    - strlen
    - S_NameValueList_FindKey
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_SetKeyValueAsString(EnvisatFile *self,\n                                    EnvisatFile_HeaderFlag
      mph_or_sph,\n                                    const char *key, const char
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:988,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - default_value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 993
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 993
    functionName: EnvisatFile_GetKeyValueAsInt
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 3
    functionsReached:
    - atoi
    - S_NameValueList_FindKey
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_GetKeyValueAsInt(EnvisatFile *self,\n                                 EnvisatFile_HeaderFlag
      mph_or_sph,\n                                 const char *key, int default_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetKeyValueAsString
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1027,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1032,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1035,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1039,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1039,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1040,1
    - Dst: EnvisatFile_SetKeyValueAsString
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1043
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1043
    functionName: EnvisatFile_SetKeyValueAsInt
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - EnvisatFile_SetKeyValueAsString
    - EnvisatFile_GetKeyValueAsString
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_SetKeyValueAsInt(EnvisatFile *self,\n                                 EnvisatFile_HeaderFlag
      mph_or_sph,\n                                 const char *key, int value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1093,1
    - Dst: atof
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - default_value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 1098
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1098
    functionName: EnvisatFile_GetKeyValueAsDouble
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - atof
    - S_NameValueList_FindKey
    linkageType: ''
    returnType: double
    signature: "double EnvisatFile_GetKeyValueAsDouble(EnvisatFile *self,\n                                       EnvisatFile_HeaderFlag
      mph_or_sph,\n                                       const char *key, double
      default_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetKeyValueAsString
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1138,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1143,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1146,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1150,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1153,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1154,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1167,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1168,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1170,1
    - Dst: EnvisatFile_SetKeyValueAsString
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - mph_or_sph
    - key
    - value
    argTypes:
    - EnvisatFile*
    - EnvisatFile_HeaderFlag
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 1175
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1175
    functionName: EnvisatFile_SetKeyValueAsDouble
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - SendError
    - EnvisatFile_SetKeyValueAsString
    - CPLsnprintf
    - EnvisatFile_GetKeyValueAsString
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_SetKeyValueAsDouble(EnvisatFile *self,\n                                    EnvisatFile_HeaderFlag
      mph_or_sph,\n                                    const char *key, double value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1211,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1213,1
    - Dst: strncmp
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1225,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - ds_name
    argTypes:
    - EnvisatFile*
    - char*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1233
    functionName: EnvisatFile_GetDatasetIndex
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strncpy
    linkageType: ''
    returnType: int
    signature: int EnvisatFile_GetDatasetIndex(EnvisatFile *self, const char *ds_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 9
    argNames:
    - self
    - ds_index
    - ds_name
    - ds_type
    - filename
    - ds_offset
    - ds_size
    - num_dsr
    - dsr_size
    argTypes:
    - EnvisatFile*
    - int
    - char**
    - char**
    - char**
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1293
    functionName: EnvisatFile_GetDatasetInfo
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_GetDatasetInfo(EnvisatFile *self, int ds_index,\n
      \                              const char **ds_name, const char **ds_type,\n
      \                              const char **filename, int *ds_offset,\n                               int
      *ds_size, int *num_dsr, int *dsr_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - self
    - ds_index
    - ds_offset
    - ds_size
    - num_dsr
    - dsr_size
    argTypes:
    - EnvisatFile*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1336
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1336
    functionName: EnvisatFile_SetDatasetInfo
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_SetDatasetInfo(EnvisatFile *self, int ds_index, int
      ds_offset,\n                               int ds_size, int num_dsr, int dsr_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1371,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1378,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1383,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1386,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1390,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - self
    - ds_index
    - offset
    - size
    - buffer
    argTypes:
    - EnvisatFile*
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1397
    functionName: EnvisatFile_ReadDatasetChunk
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - SendError
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_ReadDatasetChunk(EnvisatFile *self, int ds_index,
      int offset,\n                                 int size, void *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1433,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1440,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1448,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1450,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1455,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - self
    - ds_index
    - record_index
    - buffer
    argTypes:
    - EnvisatFile*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1463
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1463
    functionName: EnvisatFile_WriteDatasetRecord
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - SendError
    - VSIFWriteL
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_WriteDatasetRecord(EnvisatFile *self, int ds_index,\n
      \                                  int record_index, void *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_ReadDatasetRecordChunk
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - ds_index
    - record_index
    - buffer
    argTypes:
    - EnvisatFile*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1498
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1498
    functionName: EnvisatFile_ReadDatasetRecord
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 0
    functionsReached:
    - EnvisatFile_ReadDatasetRecordChunk
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_ReadDatasetRecord(EnvisatFile *self, int ds_index,\n
      \                                 int record_index, void *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1537,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1547,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1554,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1561,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1569,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1571,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1575,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1578,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 6
    argNames:
    - self
    - ds_index
    - record_index
    - buffer
    - offset
    - size
    argTypes:
    - EnvisatFile*
    - int
    - int
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1583
      start: 1527
    functionDepth: 1
    functionLinenumber: 1527
    functionLinenumberEnd: 1583
    functionName: EnvisatFile_ReadDatasetRecordChunk
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - SendError
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: "int EnvisatFile_ReadDatasetRecordChunk(EnvisatFile *self, int ds_index,\n
      \                                      int record_index, void *buffer,\n                                       int
      offset, int size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - entry_count
    - entries
    argTypes:
    - char*
    - int
    - EnvisatNameValue**
    constantsTouched: []
    func_position:
      end: 1622
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1622
    functionName: S_NameValueList_FindKey
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 5
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int S_NameValueList_FindKey(const char *key, int entry_count,\n                            EnvisatNameValue
      **entries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_NameValueList_FindKey
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key
    - entry_count
    - entries
    - default_value
    argTypes:
    - char*
    - int
    - EnvisatNameValue**
    - char*
    constantsTouched: []
    func_position:
      end: 1660
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1660
    functionName: S_NameValueList_FindValue
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached:
    - S_NameValueList_FindKey
    linkageType: ''
    returnType: char
    signature: "char *S_NameValueList_FindValue(const char *key, int entry_count,\n
      \                                     EnvisatNameValue **entries,\n                                      const
      char *default_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1721,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1738,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1744,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1745,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1752,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1753,1
    - Dst: strncpy
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1754,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1770,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1771,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1799,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1803,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1804,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1810,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1815,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1816,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1817,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1818,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1819,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 4
    argNames:
    - text
    - text_offset
    - entry_count
    - entries
    argTypes:
    - char*
    - int
    - int*
    - EnvisatNameValue***
    constantsTouched: []
    func_position:
      end: 1829
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1829
    functionName: S_NameValueList_Parse
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 2
    functionsReached:
    - SendError
    - VSI_REALLOC_VERBOSE
    - CPLStrdup
    - strncpy
    - CPLMalloc
    - strstr
    - strlen
    - CPLCalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int S_NameValueList_Parse(const char *text, int text_offset, int *entry_count,\n
      \                         EnvisatNameValue ***entries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1862,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1864,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1868,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1868,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1869,1
    - Dst: SendError
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - fp
    - entry_count
    - entries
    argTypes:
    - VSILFILE*
    - int
    - EnvisatNameValue**
    constantsTouched: []
    func_position:
      end: 1877
      start: 1852
    functionDepth: 1
    functionLinenumber: 1852
    functionLinenumberEnd: 1877
    functionName: S_NameValueList_Rewrite
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 1
    functionsReached:
    - SendError
    - VSIFSeekL
    - VSIFWriteL
    - strlen
    linkageType: ''
    returnType: int
    signature: "int S_NameValueList_Rewrite(VSILFILE *fp, int entry_count,\n                            EnvisatNameValue
      **entries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1911,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1912,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1913,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1914,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1915,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/EnvisatFile.c:1918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - entry_count
    - entries
    argTypes:
    - int*
    - EnvisatNameValue***
    constantsTouched: []
    func_position:
      end: 1922
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1922
    functionName: S_NameValueList_Destroy
    functionSourceFile: /src/gdal/frmts/envisat/EnvisatFile.c
    functionUses: 3
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void S_NameValueList_Destroy(int *entry_count, EnvisatNameValue ***entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:25,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/envisat_dump.c:26,1
    - Dst: EnvisatFile_Open
      Src: /src/gdal/frmts/envisat/envisat_dump.c:29,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:31,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/envisat_dump.c:32,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:35,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:36,1
    - Dst: EnvisatFile_GetKeyByIndex
      Src: /src/gdal/frmts/envisat/envisat_dump.c:38,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:43,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:46,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:47,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:48,1
    - Dst: EnvisatFile_GetKeyByIndex
      Src: /src/gdal/frmts/envisat/envisat_dump.c:50,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:55,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:58,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:59,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:60,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisat_dump.c:67,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:72,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:74,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:75,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:76,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:77,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:78,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:79,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/envisat_dump.c:80,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/envisat_dump.c:83,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/envisat_dump.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 86
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/gdal/frmts/envisat/envisat_dump.c
    functionUses: 42
    functionsReached:
    - exit
    - EnvisatFile_Open
    - EnvisatFile_GetKeyByIndex
    - EnvisatFile_Close
    - printf
    - EnvisatFile_GetDatasetInfo
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:66,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:70,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - poDSIn
    - nBandIn
    - fpImageIn
    - nImgOffsetIn
    - nPrefixBytesIn
    argTypes:
    - GDALDataset*
    - int
    - VSILFILE*
    - vsi_l_offset
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: MerisL2FlagBand::MerisL2FlagBand
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - GetRasterXSize
    - static_cast<GByte *>
    linkageType: ''
    returnType: void
    signature: "void MerisL2FlagBand::MerisL2FlagBand(GDALDataset *poDSIn, int nBandIn,\n
      \                                VSILFILE *fpImageIn, vsi_l_offset nImgOffsetIn,\n
      \                                int nPrefixBytesIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: MerisL2FlagBand::~MerisL2FlagBand()
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void MerisL2FlagBand::~MerisL2FlagBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:87,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:88,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:92,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:94,1
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:96,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 128
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 128
    functionName: MerisL2FlagBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - CPLAssert
    - VSIFReadL
    - CPLError
    - static_cast<vsi_l_offset>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MerisL2FlagBand::IReadBlock(CPL_UNUSED int nBlockXOff, int
      nBlockYOff,\n                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:185,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: EnvisatDataset::EnvisatDataset
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    - importFromWkt
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::EnvisatDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatDataset::Close
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: EnvisatDataset::~EnvisatDataset()
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - EnvisatDataset::Close
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::~EnvisatDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:208,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:212,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:215,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:215,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:219,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:220,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:223,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 229
    functionName: EnvisatDataset::Close
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    - CSLDestroy
    - GDALDeinitGCPs
    - CPL_IGNORE_RET_VAL
    - OGRAPISpyFileClose
    - EnvisatFile_Close
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr EnvisatDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: EnvisatDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EnvisatDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: EnvisatDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *EnvisatDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: EnvisatDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *EnvisatDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatUnwrapGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: EnvisatDataset::UnwrapGCPs
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - EnvisatUnwrapGCPs
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::UnwrapGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:292,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:309,1
    - Dst: EnvisatFile_ReadDatasetRecord
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:313,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:317,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:318,1
    - Dst: GDALInitGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:331,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:333,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:336,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:337,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:339,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:342,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:344,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:346,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:348,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:362,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:363,1
    - Dst: GDALInitGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:367,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:369,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:372,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:373,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:375,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:378,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:379,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:381,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 391
    functionName: EnvisatDataset::ScanForGCPs_ASAR
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_MSBWORD32
    - CPLStrdup
    - EnvisatFile_ReadDatasetRecord
    - snprintf
    - GDALInitGCPs
    - EnvisatFile_GetDatasetInfo
    - CPLCalloc
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::ScanForGCPs_ASAR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:411,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:443,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:450,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:461,1
    - Dst: ADSRangeLastAfter::getDSRCount
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:469,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:471,1
    - Dst: ADSRangeLastAfter::getFirstOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:477,1
    - Dst: ADSRangeLastAfter::getLastOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:477,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:479,1
    - Dst: ADSRangeLastAfter::getFirstOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:486,1
    - Dst: ADSRangeLastAfter::getLastOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:486,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:486,1
    - Dst: ADSRangeLastAfter::getDSRCount
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:487,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:489,1
    - Dst: ADSRangeLastAfter::getFirstOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:493,1
    - Dst: ADSRangeLastAfter::getLastOffset
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:493,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:494,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:511,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:522,1
    - Dst: reinterpret_cast<GUInt32 *>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:525,1
    - Dst: reinterpret_cast<GUInt32 *>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:526,1
    - Dst: reinterpret_cast<GUInt32 *>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:528,1
    - Dst: reinterpret_cast<GUInt32 *>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:530,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:534,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:535,1
    - Dst: ADSRangeLastAfter::getDSRCount
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:535,1
    - Dst: ADSRangeLastAfter::getDSRCount
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:537,1
    - Dst: EnvisatFile_ReadDatasetRecordChunk
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:544,1
    - Dst: GDALInitGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:551,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:553,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:556,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:557,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:561,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:562,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:567,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:568,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:579,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 580
    functionName: EnvisatDataset::ScanForGCPs_MERIS
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - ADSRangeLastAfter::getDSRCount
    - static_cast<size_t>
    - CPLStrdup
    - ADSRangeLastAfter::getLastOffset
    - EnvisatFile_ReadDatasetRecordChunk
    - CPLDebug
    - ADSRangeLastAfter::getFirstOffset
    - EQUAL
    - GetRasterYSize
    - reinterpret_cast<GUInt32 *>
    - EnvisatFile_GetKeyValueAsInt
    - GDALInitGCPs
    - snprintf
    - INT32
    - EnvisatFile_GetDatasetInfo
    - CPLMalloc
    - CPLFree
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::ScanForGCPs_MERIS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:588,1
    - Dst: GDALDataset::GetMetadataDomainList
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: EnvisatDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - GDALDataset::GetMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **EnvisatDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:598,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:599,1
    - Dst: strncpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:605,1
    - Dst: atoi
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:614,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:630,1
    - Dst: EnvisatFile_ReadDatasetRecord
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:641,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:644,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:652,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:656,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:657,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:663,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:665,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 668
    functionName: EnvisatDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLSetNameValue
    - GDALDataset::GetMetadata
    - STARTS_WITH_CI
    - atoi
    - CSLDestroy
    - strncpy
    - EnvisatFile_ReadDatasetRecord
    - EnvisatFile_GetDatasetInfo
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **EnvisatDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:684,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:689,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:690,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:691,1
    - Dst: std::string::rfind
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:698,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:700,1
    - Dst: std::string::rfind
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:714,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:716,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:719,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:719,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:719,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 721
    functionName: EnvisatDataset::CollectDSDMetadata
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - std::string::rfind
    - std::string::resize
    - strlen
    - EnvisatFile_GetDatasetInfo
    - SetMetadataItem
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::CollectDSDMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:740,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:745,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:747,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:747,1
    - Dst: strncpy
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:753,1
    - Dst: EnvisatFile_ReadDatasetRecord
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:770,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:773,1
    - Dst: EnvisatFile_GetRecordDescriptor
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:778,1
    - Dst: EnvisatFile_GetFieldAsString
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:785,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:791,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:795,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:797,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:804,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 807
    functionName: EnvisatDataset::CollectADSMetadata
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - EnvisatFile_GetFieldAsString
    - strncpy
    - EQUAL
    - EnvisatFile_ReadDatasetRecord
    - snprintf
    - EnvisatFile_GetDatasetInfo
    - SetMetadataItem
    - CPLFree
    - EnvisatFile_GetRecordDescriptor
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::CollectADSMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:832,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:832,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:833,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:833,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:834,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:839,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:841,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:843,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 1
    argNames:
    - eMPHOrSPH
    argTypes:
    - EnvisatFile_HeaderFlag
    constantsTouched: []
    func_position:
      end: 845
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 845
    functionName: EnvisatDataset::CollectMetadata
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - SetMetadataItem
    - snprintf
    linkageType: ''
    returnType: void
    signature: void EnvisatDataset::CollectMetadata(EnvisatFile_HeaderFlag eMPHOrSPH)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:860,1
    - Dst: EnvisatFile_Open
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:867,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:881,1
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:885,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:888,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:893,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:902,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:903,1
    - Dst: std::make_unique<EnvisatDataset>
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:909,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:916,1
    - Dst: EnvisatFile_GetKeyValueAsInt
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:921,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:933,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:933,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:935,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:937,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:939,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:940,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:942,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:944,1
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:952,1
    - Dst: CPLError
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:974,1
    - Dst: swap
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:981,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:996,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1001,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1004,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1005,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1006,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1013,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1014,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1015,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1020,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1021,1
    - Dst: std::move
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1021,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1030,1
    - Dst: strstr
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1031,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1037,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1038,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1044,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1045,1
    - Dst: std::move
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1045,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1050,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1051,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1060,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1063,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1065,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1067,1
    - Dst: std::move
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1067,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1076,1
    - Dst: MerisL2FlagBand::MerisL2FlagBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1076,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1078,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1079,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1083,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1102,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1103,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1112,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1114,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1117,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1119,1
    - Dst: std::move
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1119,1
    - Dst: auto::CollectMetadata
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1128,1
    - Dst: auto::CollectMetadata
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1129,1
    - Dst: auto::CollectDSDMetadata
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1130,1
    - Dst: auto::CollectADSMetadata
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1131,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1133,1
    - Dst: auto::ScanForGCPs_MERIS
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1134,1
    - Dst: auto::ScanForGCPs_ASAR
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1136,1
    - Dst: auto::UnwrapGCPs
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1139,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1144,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1145,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1150,1
    - Dst: auto::get
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1150,1
    - Dst: auto::release
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1152,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 121
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1153
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 1153
    functionName: EnvisatDataset::Open
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::SetBand
    - auto::CollectADSMetadata
    - auto::CollectDSDMetadata
    - auto::get
    - auto::UnwrapGCPs
    - CPLError
    - EnvisatFile_Open
    - auto::CollectMetadata
    - swap
    - std::move
    - MerisL2FlagBand::MerisL2FlagBand
    - STARTS_WITH_CI
    - auto::ScanForGCPs_ASAR
    - auto::TryLoadXML
    - EnvisatFile_GetKeyValueAsInt
    - strstr
    - snprintf
    - EnvisatFile_Close
    - EnvisatFile_GetDatasetInfo
    - std::make_unique<EnvisatDataset>
    - auto::SetDescription
    - auto::ScanForGCPs_MERIS
    - RawRasterBand::Create
    - GDALGetDataTypeSize
    - auto::release
    - ReportUpdateNotSupportedByDriver
    - EQUAL
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *EnvisatDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1162,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1165,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1168,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1169,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1170,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1171,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1172,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/envisat/envisatdataset.cpp:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1177
    functionName: GDALRegister_Envisat
    functionSourceFile: /src/gdal/frmts/envisat/envisatdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_Envisat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1170,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1172,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1174,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1176,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1178,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1180,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/envisat/records.c:1185,1
    - Dst: strlen
      Src: /src/gdal/frmts/envisat/records.c:1192,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/envisat/records.c:1199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - pszProduct
    - pszDataset
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1206
    functionName: EnvisatFile_GetRecordDescriptor
    functionSourceFile: /src/gdal/frmts/envisat/records.c
    functionUses: 1
    functionsReached:
    - EQUALN
    - STARTS_WITH_CI
    - strlen
    linkageType: ''
    returnType: EnvisatRecordDescr
    signature: 'EnvisatRecordDescr *

      EnvisatFile_GetRecordDescriptor(const char *pszProduct, const char *pszDataset)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/records.c:1218,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1232,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1241,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1254,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1255,1
    - Dst: CPL_MSBWORD16
      Src: /src/gdal/frmts/envisat/records.c:1256,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1268,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1269,1
    - Dst: CPL_MSBWORD16
      Src: /src/gdal/frmts/envisat/records.c:1270,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1282,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1283,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/records.c:1284,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1296,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1297,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/records.c:1298,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1308,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/records.c:1310,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/envisat/records.c:1315,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/records.c:1326,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/envisat/records.c:1328,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/envisat/records.c:1332,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/envisat/records.c:1394,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/records.c:1399,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/records.c:1400,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/envisat/records.c:1401,1
    - Dst: snprintf
      Src: /src/gdal/frmts/envisat/records.c:1403,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/envisat/records.c:1410,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 106
    argCount: 5
    argNames:
    - pRecord
    - nRecLen
    - pField
    - szBuf
    - nBufLen
    argTypes:
    - void*
    - int
    - EnvisatFieldDescr*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1418
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1418
    functionName: EnvisatFile_GetFieldAsString
    functionSourceFile: /src/gdal/frmts/envisat/records.c
    functionUses: 1
    functionsReached:
    - CPL_MSBWORD32
    - CPLDebug
    - CPLsnprintf
    - CPLAssert
    - snprintf
    - CPL_SWAPDOUBLE
    - CPL_SWAP32PTR
    - memcpy
    - CPL_MSBWORD16
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr EnvisatFile_GetFieldAsString(const void *pRecord, int nRecLen,\n
      \                                   const EnvisatFieldDescr *pField,\n                                    char
      *szBuf, size_t nBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - daysIn
    - secsIn
    - usecsIn
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: TimeDelta::set
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(int daysIn, int secsIn, int usecsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta::set
      Src: /src/gdal/frmts/envisat/timedelta.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secsIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: TimeDelta::fromSeconds
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta::set
    linkageType: ''
    returnType: void
    signature: void fromSeconds(double secsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: TimeDelta::TimeDelta
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TimeDelta(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta::set
      Src: /src/gdal/frmts/envisat/timedelta.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - daysIn
    - secsIn
    - usecsIn
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: TimeDelta::TimeDelta
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta::set
    linkageType: ''
    returnType: void
    signature: void TimeDelta(int daysIn, int secsIn, int usecsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta::fromSeconds
      Src: /src/gdal/frmts/envisat/timedelta.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secsIn
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: TimeDelta::TimeDelta
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta::fromSeconds
    linkageType: ''
    returnType: void
    signature: void TimeDelta(double secsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: TimeDelta::getDays
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDays(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: TimeDelta::getSeconds
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getSeconds(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: TimeDelta::getMicroseconds
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getMicroseconds(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: operator double(void) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator double(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta
      Src: /src/gdal/frmts/envisat/timedelta.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: operator-(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta operator-(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta
      Src: /src/gdal/frmts/envisat/timedelta.hpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: operator+(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta operator+(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: operator/(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double operator/(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta
      Src: /src/gdal/frmts/envisat/timedelta.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: operator*(const int i) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta operator*(const int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeDelta
      Src: /src/gdal/frmts/envisat/timedelta.hpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: operator*(const double f) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached:
    - TimeDelta
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta operator*(const double f) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: operator==(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: operator>(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: operator<(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: operator!=(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: operator>=(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: operator<=(const TimeDelta &that) const
    functionSourceFile: /src/gdal/frmts/envisat/timedelta.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const TimeDelta &that) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:25,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/dumpgeo.c:26,1
    - Dst: EnvisatFile_Open
      Src: /src/gdal/frmts/envisat/dumpgeo.c:29,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:31,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/dumpgeo.c:32,1
    - Dst: EnvisatFile_GetDatasetIndex
      Src: /src/gdal/frmts/envisat/dumpgeo.c:35,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:38,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/dumpgeo.c:39,1
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/dumpgeo.c:42,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:46,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/dumpgeo.c:47,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/envisat/dumpgeo.c:50,1
    - Dst: EnvisatFile_ReadDatasetRecord
      Src: /src/gdal/frmts/envisat/dumpgeo.c:59,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:61,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:65,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:66,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:67,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:69,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:74,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:77,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:78,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:78,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:81,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:82,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:82,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:85,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:86,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:87,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:91,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:94,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:95,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:95,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:97,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:98,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:99,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:101,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:102,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:103,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:105,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:106,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:106,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:108,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:109,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:109,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:113,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:114,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:115,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:117,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:123,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:126,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:127,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:127,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:129,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:130,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:131,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:133,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/envisat/dumpgeo.c:134,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:135,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:137,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:138,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:138,1
    - Dst: memcpy
      Src: /src/gdal/frmts/envisat/dumpgeo.c:140,1
    - Dst: printf
      Src: /src/gdal/frmts/envisat/dumpgeo.c:141,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/envisat/dumpgeo.c:141,1
    - Dst: EnvisatFile_Close
      Src: /src/gdal/frmts/envisat/dumpgeo.c:145,1
    - Dst: exit
      Src: /src/gdal/frmts/envisat/dumpgeo.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 72
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 148
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 148
    functionName: main
    functionSourceFile: /src/gdal/frmts/envisat/dumpgeo.c
    functionUses: 42
    functionsReached:
    - EnvisatFile_GetDatasetIndex
    - exit
    - EnvisatFile_Open
    - EnvisatFile_ReadDatasetRecord
    - CPLAssert
    - CPL_SWAP32
    - CPL_SWAP32PTR
    - EnvisatFile_Close
    - printf
    - memcpy
    - EnvisatFile_GetDatasetInfo
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: ADSRange::ADSRange
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ADSRange()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - idx_firstIn
    - idx_lastIn
    - off_firstIn
    - off_lastIn
    - mjd_firstIn
    - mjd_lastIn
    - mjd_m_firstIn
    - mjd_m_lastIn
    argTypes:
    - int
    - int
    - int
    - int
    - TimeDelta
    - TimeDelta
    - TimeDelta
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ADSRange::ADSRange
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ADSRange(const int idx_firstIn, const int idx_lastIn, const int
      off_firstIn,\n             const int off_lastIn, const TimeDelta &mjd_firstIn,\n
      \            const TimeDelta &mjd_lastIn, const TimeDelta &mjd_m_firstIn,\n
      \            const TimeDelta &mjd_m_lastIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ADSRange::getDSRCount
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDSRCount(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ADSRange::getFirstIndex
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getFirstIndex(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: ADSRange::getLastIndex
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getLastIndex(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ADSRange::getFirstOffset
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getFirstOffset(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ADSRange::getLastOffset
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getLastOffset(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ADSRange::getFirstTime
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta getFirstTime(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: ADSRange::getLastTime
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta getLastTime(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ADSRange::getMDSRFirstTime
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta getMDSRFirstTime(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: ADSRange::getMDSRLastTime
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta getMDSRLastTime(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_GetDatasetInfo
      Src: /src/gdal/frmts/envisat/adsrange.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - envfileIn
    - indexIn
    argTypes:
    - EnvisatFile
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: DataSet
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.cpp
    functionUses: 0
    functionsReached:
    - EnvisatFile_GetDatasetInfo
    linkageType: ''
    returnType: void
    signature: void DataSet(EnvisatFile &envfileIn, int indexIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnvisatFile_ReadDatasetRecordChunk
      Src: /src/gdal/frmts/envisat/adsrange.cpp:50,1
    - Dst: TimeDelta
      Src: /src/gdal/frmts/envisat/adsrange.cpp:54,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/adsrange.cpp:54,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/adsrange.cpp:54,1
    - Dst: INT32
      Src: /src/gdal/frmts/envisat/adsrange.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ridx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: getMJD
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.cpp
    functionUses: 0
    functionsReached:
    - TimeDelta
    - EnvisatFile_ReadDatasetRecordChunk
    - INT32
    linkageType: ''
    returnType: TimeDelta
    signature: TimeDelta getMJD(int ridx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:81,1
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:82,1
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:89,1
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:96,1
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:113,1
    - Dst: DataSet::getMJD
      Src: /src/gdal/frmts/envisat/adsrange.cpp:120,1
    - Dst: floor
      Src: /src/gdal/frmts/envisat/adsrange.cpp:134,1
    - Dst: floor
      Src: /src/gdal/frmts/envisat/adsrange.cpp:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - envfile
    - ads_idx
    - mds_idx
    - line_interval
    argTypes:
    - EnvisatFile
    - int
    - int
    - TimeDelta
    constantsTouched: []
    func_position:
      end: 136
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 136
    functionName: ADSRangeLastAfter::ADSRangeLastAfter
    functionSourceFile: /src/gdal/frmts/envisat/adsrange.cpp
    functionUses: 0
    functionsReached:
    - floor
    - DataSet::getMJD
    linkageType: ''
    returnType: void
    signature: "void ADSRangeLastAfter::ADSRangeLastAfter(EnvisatFile &envfile, int
      ads_idx,\n                                     int mds_idx,\n                                     const
      TimeDelta &line_interval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:51,1
    - Dst: GetBlockSize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poBaseBandIn
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: PDS4WrapperRasterBand::PDS4WrapperRasterBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - GetBlockSize
    linkageType: ''
    returnType: void
    signature: void PDS4WrapperRasterBand::PDS4WrapperRasterBand(GDALRasterBand *poBaseBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMaskBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: PDS4WrapperRasterBand::SetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void PDS4WrapperRasterBand::SetMaskBand(GDALRasterBand *poMaskBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: PDS4WrapperRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4WrapperRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: PDS4WrapperRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4WrapperRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:96,1
    - Dst: PDS4Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: PDS4WrapperRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4WrapperRasterBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:112,1
    - Dst: PDS4Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: PDS4WrapperRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4WrapperRasterBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: PDS4WrapperRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4WrapperRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:139,1
    - Dst: PDS4Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: PDS4WrapperRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4WrapperRasterBand::SetNoDataValue(double dfNewNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:153,1
    - Dst: PDS4Dataset*::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:156,1
    - Dst: OGRNGWLayer::Fill
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dfRealValue
    - dfImaginaryValue
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: PDS4WrapperRasterBand::Fill
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - OGRNGWLayer::Fill
    - PDS4Dataset*::InitImageFile
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4WrapperRasterBand::Fill(double dfRealValue, double dfImaginaryValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:170,1
    - Dst: PDS4Dataset*::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:173,1
    - Dst: GDALGeoPackageDataset::ICanIWriteBlock
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: PDS4WrapperRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - GDALGeoPackageDataset::ICanIWriteBlock
    - PDS4Dataset*::InitImageFile
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PDS4WrapperRasterBand::IWriteBlock(int nXBlock, int nYBlock,\n
      \                                         void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:189,1
    - Dst: PDS4Dataset*::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:192,1
    - Dst: GDALProxyRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: PDS4WrapperRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::InitImageFile
    - GDALProxyRasterBand::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PDS4WrapperRasterBand::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    GSpacing nPixelSpace, GSpacing nLineSpace,
      GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - l_poDS
    - l_nBand
    - l_fpRaw
    - l_nImgOffset
    - l_nPixelOffset
    - l_nLineOffset
    - l_eDataType
    - eByteOrderIn
    argTypes:
    - GDALDataset*
    - int
    - VSILFILE*
    - vsi_l_offset
    - int
    - int
    - GDALDataType
    - RawRasterBand::ByteOrder
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: PDS4RawRasterBand::PDS4RawRasterBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PDS4RawRasterBand::PDS4RawRasterBand(GDALDataset *l_poDS, int
      l_nBand,\n                                     VSILFILE *l_fpRaw,\n                                     vsi_l_offset
      l_nImgOffset,\n                                     int l_nPixelOffset, int
      l_nLineOffset,\n                                     GDALDataType l_eDataType,\n
      \                                    RawRasterBand::ByteOrder eByteOrderIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMaskBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: PDS4RawRasterBand::SetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void PDS4RawRasterBand::SetMaskBand(GDALRasterBand *poMaskBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: PDS4RawRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4RawRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: PDS4RawRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4RawRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: PDS4RawRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4RawRasterBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: PDS4RawRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4RawRasterBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: PDS4RawRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PDS4RawRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: PDS4RawRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4RawRasterBand::SetNoDataValue(double dfNewNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:301,1
    - Dst: PDS4Dataset*::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:304,1
    - Dst: RawRasterBand::IWriteBlock
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: PDS4RawRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::InitImageFile
    - RawRasterBand::IWriteBlock
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4RawRasterBand::IWriteBlock(int nXBlock, int nYBlock, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:323,1
    - Dst: PDS4Dataset*::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:326,1
    - Dst: RawRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: PDS4RawRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<PDS4Dataset *>
    - PDS4Dataset*::InitImageFile
    - RawRasterBand::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PDS4RawRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                    int nXSize, int nYSize, void
      *pData,\n                                    int nBufXSize, int nBufYSize,\n
      \                                   GDALDataType eBufType, GSpacing nPixelSpace,\n
      \                                   GSpacing nLineSpace,\n                                    GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:344,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:345,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poBaseBand
    - adfConstants
    argTypes:
    - GDALRasterBand*
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: PDS4MaskBand::PDS4MaskBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::GetXSize
    - GDALRasterBand*::GetBlockSize
    - GDALRasterBand*::GetYSize
    linkageType: ''
    returnType: void
    signature: "void PDS4MaskBand::PDS4MaskBand(GDALRasterBand *poBaseBand,\n                           const
      std::vector<double> &adfConstants)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: PDS4MaskBand::~PDS4MaskBand()
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void PDS4MaskBand::~PDS4MaskBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:367,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:369,1
    - Dst: GDALCopyWord
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:372,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:373,1
    - Dst: std::find
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:381,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:381,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:381,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - pvBuffer
    - pabyDst
    - nReqXSize
    - nReqYSize
    - nBlockXSize
    - adfConstants
    argTypes:
    - void*
    - GByte*
    - int
    - int
    - int
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 392
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 392
    functionName: FillMask
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector<double>::size
    - std::vector::begin
    - static_cast<T *>
    - std::find
    - std::vector::push_back
    - GDALCopyWord
    linkageType: ''
    returnType: void
    signature: "void FillMask(void *pvBuffer, GByte *pabyDst, int nReqXSize,\n                     int
      nReqYSize, int nBlockXSize,\n                     const std::vector<double>
      &adfConstants)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:401,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:405,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:419,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:422,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:428,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:431,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:436,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:441,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:446,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:451,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:456,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:461,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:466,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 471
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 471
    functionName: PDS4MaskBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - FillMask
    - RasterIO
    - static_cast<GByte *>
    - static_cast<GSpacing>
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4MaskBand::IReadBlock(int nXBlock, int nYBlock, void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: PDS4Dataset::PDS4Dataset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::PDS4Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::Close
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: PDS4Dataset::~PDS4Dataset()
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::Close
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::~PDS4Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::InitImageFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:508,1
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:512,1
    - Dst: PDS4Dataset::WriteHeader
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:516,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:518,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:519,1
    - Dst: PDS4Dataset::CloseDependentDatasets
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:520,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:522,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 526
    functionName: PDS4Dataset::Close
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - PDS4Dataset::CloseDependentDatasets
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    - PDS4Dataset::WriteHeader
    - PDS4Dataset::InitImageFile
    - CSLDestroy
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawDataset::GetRawBinaryLayout
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: PDS4Dataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - RawDataset::GetRawBinaryLayout
    linkageType: ''
    returnType: bool
    signature: bool PDS4Dataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 563
    functionName: PDS4Dataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PDS4Dataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:571,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 574
    functionName: PDS4Dataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *PDS4Dataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:585,1
    - Dst: PDS4Dataset::SetSpatialRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: PDS4Dataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - Clear
    - PDS4Dataset::SetSpatialRef
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:602,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 607
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 607
    functionName: PDS4Dataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:621,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:626,1
    - Dst: PDS4Dataset::SetGeoTransform
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:629,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 631
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 631
    functionName: PDS4Dataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - memcpy
    - PDS4Dataset::SetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:640,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 649
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 649
    functionName: PDS4Dataset::SetMetadata
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALPamDataset::SetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:658,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:659,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:661,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:663,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:665,1
    - Dst: PDS4Dataset::GetFileList
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:669,1
    - Dst: CSLInsertStrings
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:670,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 674
    functionName: PDS4Dataset::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - empty
    - CSLInsertStrings
    - CSLAddString
    - CSLDestroy
    - CSLFindString
    - PDS4Dataset::GetFileList
    linkageType: ''
    returnType: char
    signature: char **PDS4Dataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:691,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:696,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:699,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:701,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - psParent
    - pszElementName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 715
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 715
    functionName: GetLinearValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLGetXMLNode
    - CPL_ARRAYSIZE
    - CPLError
    linkageType: ''
    returnType: double
    signature: "double GetLinearValue(const CPLXMLNode *psParent,\n                             const
      char *pszElementName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:733,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:738,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:741,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:743,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - psParent
    - pszElementName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 757
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 757
    functionName: GetResolutionValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLGetXMLNode
    - CPL_ARRAYSIZE
    - CPLError
    linkageType: ''
    returnType: double
    signature: "double GetResolutionValue(CPLXMLNode *psParent,\n                                 const
      char *pszElementName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:776,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:785,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:788,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:790,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - psParent
    - pszElementName
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 806
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 806
    functionName: GetAngularValue
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLGetXMLNode
    - CPL_ARRAYSIZE
    - CPLError
    linkageType: ''
    returnType: double
    signature: "double GetAngularValue(CPLXMLNode *psParent, const char *pszElementName,\n
      \                             bool *pbGotVal = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:819,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:823,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:830,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:842,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:844,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:846,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:848,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:852,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:856,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:862,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:865,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:865,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:872,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:874,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:875,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:885,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:887,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:891,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:898,1
    - Dst: std::abs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:898,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:903,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:909,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:912,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:914,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:914,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:917,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:922,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:924,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:930,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:931,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:933,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:935,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:938,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:941,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:949,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:956,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:961,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:963,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:965,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:974,1
    - Dst: GetAngularValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:977,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:981,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:983,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:985,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:987,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:990,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:997,1
    - Dst: OGRSpatialReference::SetLCC1SP
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1002,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1006,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1010,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1014,1
    - Dst: OGRSpatialReference::SetMercator2SP
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1019,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1024,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1026,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1028,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1034,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1035,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1040,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1042,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1044,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1046,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1049,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1050,1
    - Dst: OGRSpatialReference::SetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1051,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1059,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1063,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1063,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1065,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1065,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1069,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1072,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1072,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1074,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1074,1
    - Dst: OGRSpatialReference::SetHOM2PNO
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1078,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1082,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1084,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1086,1
    - Dst: OGRSpatialReference::SetPolyconic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1088,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1090,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1092,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1094,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1096,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1103,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1105,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1108,1
    - Dst: OGRSpatialReference::SetAE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1110,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1112,1
    - Dst: OGRSpatialReference::SetEC
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1114,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1118,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1120,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1122,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1124,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1126,1
    - Dst: OGRSpatialReference::SetMC
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1130,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1131,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1134,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1136,1
    - Dst: OGRSpatialReference::SetRobinson
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1138,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1141,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1143,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1145,1
    - Dst: OGRSpatialReference::SetVDG
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1147,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1149,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1162,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1166,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1170,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1172,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1178,1
    - Dst: PDS4Dataset::GetLayerCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1179,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1185,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1190,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1192,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1225,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1240,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1243,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1246,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1249,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1260,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1260,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1261,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1265,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1272,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1276,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1277,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1278,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1279,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1281,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1288,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1294,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1301,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1302,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1307,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1308,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1310,1
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1365,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1367,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1369,1
    - Dst: PDS4Dataset::GetLayerCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1371,1
    - Dst: GetGeomType
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1375,1
    - Dst: OGRSpatialReference::Clone
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1377,1
    - Dst: PDS4Dataset::SetSpatialRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1378,1
    - Dst: auto::Release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1379,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 229
    argCount: 1
    argNames:
    - psProduct
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1384
      start: 817
    functionDepth: 6
    functionLinenumber: 817
    functionLinenumberEnd: 1384
    functionName: PDS4Dataset::ReadGeoreferencing
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::SetSpatialRef
    - OGRSpatialReference::SetGeogCS
    - CPLDebug
    - OGRSpatialReference::SetLCC1SP
    - OGRSpatialReference::IsEmpty
    - CPLString
    - fabs
    - CPLError
    - CPLGetXMLValue
    - OGRSpatialReference::SetVDG
    - GetRasterCount
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetMercator2SP
    - OGRSpatialReference::SetLCC
    - std::abs
    - CPLString::c_str
    - OGRSpatialReference::SetLAEA
    - GetGeomType
    - std::move
    - OGRSpatialReference::Clone
    - OGRSpatialReference::SetOrthographic
    - OGRSpatialReference::SetProjection
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::SetMC
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetHOM2PNO
    - CPLString::Printf
    - OGRSpatialReference::SetEC
    - OGRSpatialReference::SetGnomonic
    - OGRSpatialReference::SetPolyconic
    - PDS4Dataset::GetLayerCount
    - OGRSpatialReference::SetProjCS
    - OGRSpatialReference::SetLinearUnits
    - OGRSpatialReference::SetEquirectangular2
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetRobinson
    - CPLGetXMLNode
    - OGRSpatialReference::SetTM
    - GetAngularValue
    - EQUAL
    - OGRSpatialReference::SetNormProjParm
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetAE
    - auto::Release
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetMercator
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::ReadGeoreferencing(CPLXMLNode *psProduct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::GetLayerCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1392,1
    - Dst: get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1395
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1395
    functionName: PDS4Dataset::GetLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::GetLayerCount
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *PDS4Dataset::GetLayer(int nIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1404,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1404,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1408,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1408,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1409,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1414,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1414,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1415,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1419,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1419,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1420,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1422,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1428
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1428
    functionName: FixupTableFilename
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - VSIStatL
    - CPLResetExtensionSafe
    - CPLString
    - std::string::c_str
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: std::string
    signature: std::string FixupTableFilename(const std::string &osFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FixupTableFilename
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1438,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1438,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1439,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1439,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1441,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1441,1
    - Dst: PDS4TableCharacter::PDS4TableCharacter
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1440,1
    - Dst: std::unique_ptr::ReadTableDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1442,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1447,1
    - Dst: PDS4EditableLayer::PDS4EditableLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1447,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1448,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszFilename
    - psTable
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1450
      start: 1434
    functionDepth: 2
    functionLinenumber: 1434
    functionLinenumberEnd: 1450
    functionName: PDS4Dataset::OpenTableCharacter
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - FixupTableFilename
    - c_str
    - CPLGetPathSafe
    - std::unique_ptr::release
    - PDS4TableCharacter::PDS4TableCharacter
    - std::unique_ptr::ReadTableDef
    - PDS4EditableLayer::PDS4EditableLayer
    - std::move
    - push_back
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool PDS4Dataset::OpenTableCharacter(const char *pszFilename,\n                                     const
      CPLXMLNode *psTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FixupTableFilename
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1460,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1460,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1461,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1461,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1463,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1463,1
    - Dst: PDS4TableBinary::PDS4TableBinary
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1463,1
    - Dst: std::unique_ptr::ReadTableDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1464,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1469,1
    - Dst: PDS4EditableLayer::PDS4EditableLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1469,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1470,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszFilename
    - psTable
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1472
    functionName: PDS4Dataset::OpenTableBinary
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - FixupTableFilename
    - c_str
    - CPLGetPathSafe
    - std::unique_ptr::release
    - std::unique_ptr::ReadTableDef
    - PDS4EditableLayer::PDS4EditableLayer
    - std::move
    - push_back
    - PDS4TableBinary::PDS4TableBinary
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool PDS4Dataset::OpenTableBinary(const char *pszFilename,\n                                  const
      CPLXMLNode *psTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FixupTableFilename
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1482,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1482,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1483,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1483,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1485,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1485,1
    - Dst: PDS4DelimitedTable::PDS4DelimitedTable
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1484,1
    - Dst: std::unique_ptr::ReadTableDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1486,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1491,1
    - Dst: PDS4EditableLayer::PDS4EditableLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1491,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1492,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszFilename
    - psTable
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1494
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1494
    functionName: PDS4Dataset::OpenTableDelimited
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - FixupTableFilename
    - c_str
    - CPLGetPathSafe
    - PDS4DelimitedTable::PDS4DelimitedTable
    - std::unique_ptr::release
    - std::unique_ptr::ReadTableDef
    - PDS4EditableLayer::PDS4EditableLayer
    - std::move
    - push_back
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool PDS4Dataset::OpenTableDelimited(const char *pszFilename,\n                                     const
      CPLXMLNode *psTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4DriverIdentify
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1504,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1510,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1515,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1518,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1519,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1520,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1522,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1523,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1525,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1526,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1527,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1532,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1533,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1537,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1539,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1542,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1546,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1547,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1549,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1553,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1557,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1560,1
    - Dst: std::make_unique<PDS4Dataset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1584,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1587,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1589,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1595,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1596,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1597,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1603,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1618,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1635,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1639,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1643,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1647,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1649,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1649,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1651,1
    - Dst: auto::OpenTableCharacter
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1653,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1656,1
    - Dst: auto::OpenTableBinary
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1658,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1661,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1662,1
    - Dst: auto::OpenTableDelimited
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1664,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1683,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1684,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1684,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1688,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1690,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1709,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1710,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1714,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1715,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1719,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1720,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1724,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1725,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1730,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1734,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1735,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1739,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1740,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1745,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1749,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1750,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1754,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1755,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1762,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1767,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1785,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1803,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1810,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1817,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1821,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1828,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1835,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1844,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1851,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1857,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1858,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1864,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1874,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1876,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1881,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1887,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1889,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1894,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1909,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1917,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1931,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1936,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1936,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1942,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1943,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1944,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1944,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1946,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1947,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1948,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1951,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1956,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1957,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1957,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1959,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1960,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1964,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1965,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1965,1
    - Dst: memcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1974,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1976,1
    - Dst: memcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1979,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1981,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1985,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1992,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1993,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1994,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:1995,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2004,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2009,1
    - Dst: std::make_unique<PDS4RawRasterBand>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2011,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2012,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2017,1
    - Dst: auto::SetNoDataValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2021,1
    - Dst: auto::SetOffset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2023,1
    - Dst: auto::SetScale
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2024,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2030,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2035,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2040,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2045,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2053,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2054,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2054,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2055,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2056,1
    - Dst: auto::SetMaskBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2058,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2059,1
    - Dst: PDS4MaskBand::PDS4MaskBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2059,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2062,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2062,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2067,1
    - Dst: auto::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2069,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2069,1
    - Dst: auto::m_apoLayers::empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2077,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2086,1
    - Dst: VSIIngestFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2086,1
    - Dst: auto::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2091,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2093,1
    - Dst: auto::ReadGeoreferencing
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2098,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2103,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2103,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2108,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2109,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2111,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 288
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2112
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 2112
    functionName: PDS4Dataset::OpenInternal
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - auto::OpenTableCharacter
    - CPL_ARRAYSIZE
    - auto::SetBand
    - atoi
    - std::vector::size
    - CPLDebug
    - memcmp
    - std::make_unique<PDS4RawRasterBand>
    - auto::get
    - strcmp
    - CPLString
    - CPLXMLTreeCloser::get
    - auto::SetNoDataValue
    - CPLGetXMLValue
    - CPLError
    - STARTS_WITH
    - static_cast<vsi_l_offset>
    - std::vector::push_back
    - CPLStringList::CPLStringList
    - std::string::c_str
    - auto::SetOffset
    - PDS4DriverIdentify
    - CPLGetConfigOption
    - auto::SetMaskBand
    - auto::OpenTableBinary
    - CPLStringList::List
    - auto::m_apoLayers::empty
    - CPLAtoGIntBig
    - CPLString::c_str
    - std::make_unique<PDS4Dataset>
    - std::move
    - strlen
    - CPLStringList::size
    - GDALGetDataTypeSizeBytes
    - CPLAtof
    - STARTS_WITH_CI
    - static_cast<int>
    - auto::OpenTableDelimited
    - CPLTestBool
    - auto::ReadGeoreferencing
    - auto::GDALDataset::SetMetadataItem
    - CPLSPrintf
    - auto::TryLoadXML
    - CPLStripXMLNamespace
    - PDS4MaskBand::PDS4MaskBand
    - CPL_IGNORE_RET_VAL
    - VSIIngestFile
    - CPLStringList::SetNameValue
    - auto::IsValid
    - GDALDataTypeIsComplex
    - CPLFormFilenameSafe
    - GDALCheckBandCount
    - auto::SetDescription
    - auto::GDALDataset::SetMetadata
    - CPLGetPathSafe
    - auto::release
    - CPLGetXMLNode
    - CSLDestroy
    - VSIFOpenExL
    - auto::GDALRasterBand::SetMetadataItem
    - GDALCheckDatasetDimensions
    - EQUAL
    - CSLDuplicate
    - VSIGetLastErrorMsg
    - VSIFree
    - auto::SetScale
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: PDS4Dataset
    signature: PDS4Dataset *PDS4Dataset::OpenInternal(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszCur
    - pszRef
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2123
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2123
    functionName: IsCARTVersionGTE
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsCARTVersionGTE(const char *pszCur, const char *pszRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2138,1
    - Dst: PDS4Dataset::GetLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2162,1
    - Dst: OGRLayer*::GetExtent
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2164,1
    - Dst: IsGeographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2182,1
    - Dst: CloneGeogCS
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2185,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2188,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2190,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2193,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2224,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2225,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2226,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2227,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2242,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2244,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2245,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2246,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2247,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2249,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2252,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2253,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2254,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2255,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2257,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2258,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2259,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2260,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2262,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2263,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2264,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2265,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2267,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2268,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2269,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2270,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2274,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2275,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2276,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2278,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2295,1
    - Dst: IsProjected
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2295,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2297,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2298,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2299,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2300,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2317,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2318,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2319,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2319,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2320,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2321,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2325,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2325,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2326,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2327,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2328,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2329,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2333,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2338,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2338,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2340,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2341,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2341,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2344,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2345,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2346,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2346,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2351,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2351,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2353,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2354,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2355,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2356,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2356,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2358,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2358,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2360,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2364,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2369,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2370,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2371,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2371,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2373,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2373,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2375,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2376,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2376,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2378,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2382,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2382,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2384,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2385,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2386,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2387,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2387,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2389,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2389,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2391,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2395,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2398,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2398,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2400,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2401,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2401,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2403,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2404,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2404,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2406,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2406,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2407,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2407,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2409,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2412,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2419,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2426,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2431,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2432,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2433,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2433,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2435,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2435,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2437,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2438,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2438,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2440,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2444,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2445,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2448,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2448,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2450,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2450,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2452,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2453,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2453,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2455,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2459,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2462,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2462,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2464,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2465,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2465,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2467,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2469,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2472,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2472,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2474,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2474,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2475,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2475,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2477,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2480,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2483,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2484,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2485,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2486,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2486,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2488,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2489,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2489,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2491,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2493,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2496,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2496,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2498,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2498,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2499,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2499,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2501,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2504,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2507,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2507,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2509,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2509,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2510,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2510,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2512,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2513,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2514,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2515,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2518,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2521,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2521,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2523,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2524,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2524,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2526,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2526,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2527,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2527,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2529,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2532,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2535,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2535,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2537,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2537,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2538,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2538,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2540,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2543,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2547,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2548,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2555,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2558,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2558,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2569,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2569,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2571,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2572,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2573,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2573,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2574,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2575,1
    - Dst: ProjParam
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2576,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2580,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2586,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2589,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2590,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2592,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2594,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2595,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2597,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2598,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2599,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2600,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2602,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2607,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2610,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2611,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2612,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2613,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2614,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2615,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2616,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2620,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2621,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2623,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2624,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2624,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2624,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2630,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2632,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2633,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2635,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2643,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2651,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2653,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2654,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2654,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2657,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2660,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2661,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2663,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2664,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2664,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2669,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2678,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2686,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2688,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2689,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2689,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2693,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2694,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2695,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2697,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2698,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2699,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2700,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2701,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2701,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2704,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2705,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2706,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2707,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2708,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2708,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2711,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2713,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2714,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2715,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2716,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2717,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2717,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2720,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2721,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2722,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2723,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2723,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2729,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2730,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2732,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2737,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2738,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2740,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2741,1
    - Dst: FixLong
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2741,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2741,1
    - Dst: IsCARTVersionGTE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2747,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2749,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2751,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2752,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2753,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2755,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2757,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2768,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2769,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2770,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2772,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2773,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2774,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2776,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2777,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2778,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2780,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2781,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2782,1
    - Dst: IsGeographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2785,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2787,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2788,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2789,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2790,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2792,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2793,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2794,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2795,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2797,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2798,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2799,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2800,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2802,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2803,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2804,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2805,1
    - Dst: IsProjected
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2808,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2810,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2811,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2812,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2813,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2815,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2816,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2817,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2818,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2820,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2821,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2822,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2823,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2826,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2827,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2828,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2829,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2837,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2838,1
    - Dst: IsGeographic
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2845,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2847,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2848,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2849,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2850,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2852,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2853,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2854,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2855,1
    - Dst: IsProjected
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2858,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2860,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2861,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2862,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2863,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2865,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2866,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2867,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2868,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2875,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2876,1
    - Dst: IsCARTVersionGTE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2877,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2879,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2880,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2881,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2884,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2885,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2886,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2892,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2893,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2897,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2899,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2901,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2901,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2905,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2907,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2907,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2912,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2912,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2922,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2924,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2925,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2927,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2933,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2934,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2936,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2939,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2944,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2945,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2947,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2950,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2952,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2953,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2955,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2958,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2962,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2964,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2966,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2967,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 294
    argCount: 2
    argNames:
    - psCart
    - pszCARTVersion
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 2969
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2969
    functionName: PDS4Dataset::WriteGeoreferencing
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - FixLong
    - CPLString
    - GetRasterCount
    - std::vector::push_back
    - CPLError
    - STARTS_WITH
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRCoordinateTransformation*::Transform
    - CPLCreateXMLElementAndValue
    - PDS4Dataset::GetLayer
    - CPLAddXMLChild
    - CPLString::size
    - CSLCount
    - CloneGeogCS
    - IsGeographic
    - CPLAtof
    - GetNormProjParm
    - c_str
    - ProjParam
    - CPLString::Printf
    - CPLSPrintf
    - strstr
    - OGRCreateCoordinateTransformation
    - OGRLayer*::GetExtent
    - CPLAddXMLAttributeAndValue
    - CPLString::assign
    - CPLCreateXMLNode
    - IsProjected
    - IsCARTVersionGTE
    - CSLDestroy
    - EQUAL
    linkageType: ''
    returnType: void
    signature: "void PDS4Dataset::WriteGeoreferencing(CPLXMLNode *psCart,\n                                      const
      char *pszCARTVersion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2978,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2982,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2983,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2986,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2988,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2989,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:2994,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3001,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3002,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3002,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3003,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3004,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3004,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3007,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3008,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3012,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3014,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3015,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3017,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3018,1
    - Dst: PDS4Dataset::SubstituteVariables
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3023,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - psNode
    - papszDict
    argTypes:
    - CPLXMLNode*
    - char**
    constantsTouched: []
    func_position:
      end: 3025
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 3025
    functionName: PDS4Dataset::SubstituteVariables
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - c_str
    - CPLStrdup
    - CPLString::find
    - CPLString::c_str
    - CPLString::replaceAll
    - strstr
    - CPLString
    - PDS4Dataset::SubstituteVariables
    - CPLError
    - CPLFree
    - CSLFetchNameValue
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::SubstituteVariables(CPLXMLNode *psNode, char **papszDict)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3038,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3039,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3049,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3054,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3060,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3073,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3078,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3089,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3103,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3109,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3112,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3117,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3118,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3129,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3134,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3136,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3147,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3161,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3163,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3167,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3169,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3181,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3184,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3186,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3190,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3194,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3199,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3202,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3206,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3031
    functionDepth: 1
    functionLinenumber: 3031
    functionLinenumberEnd: 3209
    functionName: PDS4Dataset::InitImageFile
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - static_cast<vsi_l_offset>
    - CPLAtoGIntBig
    - GetRasterBand
    - EQUAL
    - VSIFTruncateL
    - GDALSwapWords
    - VSIFree
    - GDALDataTypeIsComplex
    - CPLError
    - GDALCopyWords
    - FlushCache
    linkageType: ''
    returnType: bool
    signature: bool PDS4Dataset::InitImageFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3222,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3222,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3225,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3225,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - osPrefix
    - psFileAreaObservational
    argTypes:
    - CPLString
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3237
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3237
    functionName: GetSpecialConstants
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - STARTS_WITH
    - c_str
    - CPLCloneXMLTree
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *GetSpecialConstants(const CPLString &osPrefix,\n                                       CPLXMLNode
      *psFileAreaObservational)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3246,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3250,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3253,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3259,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3263,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3264,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3267,1
    - Dst: PDS4Dataset::WriteArray
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3272,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3274,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3243
    functionDepth: 1
    functionLinenumber: 3243
    functionLinenumberEnd: 3275
    functionName: PDS4Dataset::WriteHeaderAppendCase
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLGetXMLNode
    - GetDescription
    - CPLSerializeXMLTreeToFile
    - PDS4Dataset::WriteArray
    - CPLXMLTreeCloser::get
    - CPLError
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::WriteHeaderAppendCase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3289,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3289,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3295,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3296,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3307,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3309,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3310,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3310,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3311,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3313,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3313,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3315,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3316,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3317,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3318,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3319,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3334,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3335,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3345,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3345,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3353,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3354,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3355,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3362,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3363,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3364,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3369,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3370,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3371,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3372,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3373,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3378,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3379,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3380,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3381,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3386,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3387,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3390,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3391,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3392,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3392,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3393,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3394,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3396,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3397,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3398,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3398,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3399,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3401,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3402,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3406,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3407,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3408,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3408,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3409,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3410,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3412,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3413,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3414,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3414,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3415,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3417,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3418,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3425,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3429,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3430,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3435,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3437,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3437,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3443,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3444,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3445,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3446,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3447,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3465,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3466,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3467,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3468,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3469,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 4
    argNames:
    - osPrefix
    - psFAO
    - pszLocalIdentifierDefault
    - psTemplateSpecialConstants
    argTypes:
    - CPLString
    - CPLXMLNode*
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3471
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3471
    functionName: PDS4Dataset::WriteArray
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - CPLCreateXMLElementAndValue
    - CPLStrdup
    - CPLCreateXMLNode
    - CPLGetXMLNode
    - CPLAtoGIntBig
    - GetRasterBand
    - CPLAddXMLChild
    - CPLSPrintf
    - EQUAL
    - CPLFree
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: "void PDS4Dataset::WriteArray(const CPLString &osPrefix, CPLXMLNode
      *psFAO,\n                             const char *pszLocalIdentifierDefault,\n
      \                            CPLXMLNode *psTemplateSpecialConstants)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3480,1
    - Dst: IsDirtyHeader
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3485,1
    - Dst: GetFeatureCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3488,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3490,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3493,1
    - Dst: GetRawFieldCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3496,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3498,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3501,1
    - Dst: CPLExtractRelativePath
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3505,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3505,1
    - Dst: GetFileName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3506,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3513,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3514,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3519,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3519,1
    - Dst: RefreshFileAreaObservational
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3521,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3529,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3531,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3532,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3533,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3534,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3535,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3536,1
    - Dst: RefreshFileAreaObservational
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3537,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - psProduct
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 3540
      start: 3477
    functionDepth: 1
    functionLinenumber: 3477
    functionLinenumberEnd: 3540
    functionName: PDS4Dataset::WriteVectorLayers
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - GetFileName
    - CPLGetPathSafe
    - c_str
    - CPLCreateXMLElementAndValue
    - CPLCreateXMLNode
    - IsDirtyHeader
    - RefreshFileAreaObservational
    - strcmp
    - GetRawFieldCount
    - CPLError
    - CPLExtractRelativePath
    - STARTS_WITH
    - std::string::c_str
    - GetFeatureCount
    - GetName
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::WriteVectorLayers(CPLXMLNode *psProduct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3550,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3554,1
    - Dst: PDS4Dataset::GetLayerCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3554,1
    - Dst: PDS4Dataset::GetLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3555,1
    - Dst: PDS4Dataset::GetLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3557,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3562,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3563,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3566,1
    - Dst: GetSemiMajor
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3566,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3569,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3575,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3586,1
    - Dst: PDS4Dataset::SubstituteVariables
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3590,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3593,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3596,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3596,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3602,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3605,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3606,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3616,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3620,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3627,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3627,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3630,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3630,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3633,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3633,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3640,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3642,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3645,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3646,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3649,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3660,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3663,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3664,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3666,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3678,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3679,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3684,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3690,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3691,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3697,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3699,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3702,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3704,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3707,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3708,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3710,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3712,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3718,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3726,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3736,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3755,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3756,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3764,1
    - Dst: IsCARTVersionGTE
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3769,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3777,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3779,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3780,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3781,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3783,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3784,1
    - Dst: PDS4Dataset::WriteGeoreferencing
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3788,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3796,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3801,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3809,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3811,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3820,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3820,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3823,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3824,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3829,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3832,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3833,1
    - Dst: GetSpecialConstants
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3862,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3868,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3873,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3884,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3886,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3890,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3906,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3909,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3920,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3923,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3928,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3930,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3933,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3934,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3935,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3936,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3937,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3940,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3943,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3943,1
    - Dst: GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3950,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3951,1
    - Dst: GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3951,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3954,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3954,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3958,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3959,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3968,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3972,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3974,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3975,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3976,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3977,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3978,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3980,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3981,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3982,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3983,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3984,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3986,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3987,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3988,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3991,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3992,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:3999,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4000,1
    - Dst: PDS4Dataset::WriteArray
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4008,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 197
    argCount: 2
    argNames:
    - psProduct
    - pszCARTVersion
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 4012
      start: 3546
    functionDepth: 3
    functionLinenumber: 3546
    functionLinenumberEnd: 4012
    functionName: PDS4Dataset::CreateHeader
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPLGetFilename
    - GetDescription
    - strcmp
    - PDS4Dataset::WriteArray
    - CPLError
    - CPLGetXMLValue
    - GetRasterCount
    - STARTS_WITH
    - PDS4Dataset::WriteGeoreferencing
    - CSLFetchNameValue
    - GetSemiMajor
    - CPLCreateXMLElementAndValue
    - CPLStrdup
    - PDS4Dataset::GetLayer
    - CPLAtoGIntBig
    - CPLAddXMLChild
    - GetSpecialConstants
    - IsEmpty
    - c_str
    - CPLRemoveXMLChild
    - CPLDestroyXMLNode
    - CPLSPrintf
    - VSIFOpenL
    - CPLAssert
    - PDS4Dataset::GetLayerCount
    - strstr
    - VSIFReadL
    - CPLFree
    - CPLAddXMLAttributeAndValue
    - empty
    - VSIFCloseL
    - CPLCreateXMLNode
    - CPLGetXMLNode
    - IsCARTVersionGTE
    - EQUAL
    - GetDriver
    - PDS4Dataset::SubstituteVariables
    - fabs
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: "void PDS4Dataset::CreateHeader(CPLXMLNode *psProduct,\n                               const
      char *pszCARTVersion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::WriteHeaderAppendCase
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4024,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4032,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4033,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4035,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4036,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4040,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4042,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4043,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4054,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4065,1
    - Dst: PDS4GetEmbeddedTemplate
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4065,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4067,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4077,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4080,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4083,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4086,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4090,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4111,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4112,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4113,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4127,1
    - Dst: PDS4Dataset::CreateHeader
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4130,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4130,1
    - Dst: PDS4Dataset::WriteVectorLayers
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4133,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4135,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4135,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4136
      start: 4018
    functionDepth: 4
    functionLinenumber: 4018
    functionLinenumberEnd: 4136
    functionName: PDS4Dataset::WriteHeader
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - PDS4GetEmbeddedTemplate
    - GetDescription
    - CPLSerializeXMLTreeToFile
    - PDS4Dataset::WriteVectorLayers
    - CPLXMLTreeCloser::get
    - CPLError
    - STARTS_WITH
    - CPLString::resize
    - CPLString::empty
    - CPLString::c_str
    - strlen
    - CPLParseXMLString
    - PDS4Dataset::WriteHeaderAppendCase
    - CPLFree
    - empty
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CSLFetchNameValueDef
    - PDS4Dataset::CreateHeader
    linkageType: ''
    returnType: void
    signature: void PDS4Dataset::WriteHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4148,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4148,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4149,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4154,1
    - Dst: OGRGeomFieldDefn*::GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4156,1
    - Dst: isalnum
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4168,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4168,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4169,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4177,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4177,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4177,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4178,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4180,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4182,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4185,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4191,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4192,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4193,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4195,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4196,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4198,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4199,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4203,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4203,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4206,1
    - Dst: PDS4DelimitedTable::PDS4DelimitedTable
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4209,1
    - Dst: std::unique_ptr::InitializeNewLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4210,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4216,1
    - Dst: PDS4EditableLayer::PDS4EditableLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4216,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4217,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4217,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4222,1
    - Dst: static_cast<PDS4FixedWidthTable *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4223,1
    - Dst: PDS4TableCharacter::PDS4TableCharacter
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4224,1
    - Dst: static_cast<PDS4FixedWidthTable *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4225,1
    - Dst: PDS4TableBinary::PDS4TableBinary
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4226,1
    - Dst: std::unique_ptr::InitializeNewLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4227,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4233,1
    - Dst: PDS4EditableLayer::PDS4EditableLayer
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4233,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4234,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4234,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4236,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 4237
      start: 4142
    functionDepth: 1
    functionLinenumber: 4142
    functionLinenumberEnd: 4237
    functionName: PDS4Dataset::ICreateLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - std::string::c_str
    - static_cast<unsigned>
    - PDS4DelimitedTable::PDS4DelimitedTable
    - static_cast<unsigned char>
    - std::unique_ptr::release
    - VSIMkdir
    - CPLString::c_str
    - std::move
    - PDS4TableBinary::PDS4TableBinary
    - std::unique_ptr::InitializeNewLayer
    - c_str
    - OGRGeomFieldDefn*::GetType
    - PDS4TableCharacter::PDS4TableCharacter
    - PDS4EditableLayer::PDS4EditableLayer
    - CPLFormFilenameSafe
    - back
    - CPLGetPathSafe
    - VSIStatL
    - static_cast<PDS4FixedWidthTable *>
    - CPLGetBasenameSafe
    - EQUAL
    - OGRGeomFieldDefn*::GetSpatialRef
    - push_back
    - isalnum
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *PDS4Dataset::ICreateLayer(const char *pszName,\n                                    const
      OGRGeomFieldDefn *poGeomFieldDefn,\n                                    CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4245,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4251
      start: 4243
    functionDepth: 0
    functionLinenumber: 4243
    functionLinenumberEnd: 4251
    functionName: PDS4Dataset::TestCapability
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int PDS4Dataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::CreateInternal
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 4263
      start: 4257
    functionDepth: 1
    functionLinenumber: 4257
    functionLinenumberEnd: 4263
    functionName: PDS4Dataset::Create
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::CreateInternal
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *PDS4Dataset::Create(const char *pszFilename, int nXSize,\n
      \                                int nYSize, int nBandsIn, GDALDataType eType,\n
      \                                char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::PDS4Dataset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4280,1
    - Dst: PDS4Dataset*::SetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4281,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4288,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4288,1
    - Dst: CPLStringList::FetchBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4289,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4301,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4304,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4310,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4319,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4337,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4347,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4355,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4357,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4366,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4370,1
    - Dst: CPLStringList::FetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4378,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4380,1
    - Dst: static_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4386,1
    - Dst: PDS4Dataset::Open
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4386,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4394,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4394,1
    - Dst: auto::GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4396,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4397,1
    - Dst: auto::GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4397,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4415,1
    - Dst: GDALDataset*::GetRawBinaryLayout
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4421,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4423,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4433,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4437,1
    - Dst: RawBinaryLayout::osRawFilename::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4437,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4440,1
    - Dst: RawBinaryLayout::osRawFilename::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4441,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4453,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4454,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4455,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4457,1
    - Dst: auto::GetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4460,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4461,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4464,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4470,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4474,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4478,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4482,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4485,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4490,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4492,1
    - Dst: CPLStringList::FetchBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4494,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4500,1
    - Dst: static_cast<GDALDriver *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4506,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4506,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4509,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4518,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4520,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4521,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4525,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4525,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4528,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4529,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4534,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4537,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4539,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4543,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4544,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4547,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4549,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4552,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4558,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4561,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4563,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4566,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4567,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4573,1
    - Dst: VSISupportsRandomWrite
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4576,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4576,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4580,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4581,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4586,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4587,1
    - Dst: std::make_unique<PDS4Dataset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4591,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4592,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4600,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4604,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4604,1
    - Dst: CPLStringList::FetchBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4605,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4607,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4610,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4612,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4615,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4617,1
    - Dst: std::make_unique<PDS4WrapperRasterBand>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4625,1
    - Dst: auto::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4626,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4627,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4627,1
    - Dst: std::make_unique<PDS4RawRasterBand>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4631,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4632,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4637,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4637,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4641,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 200
    argCount: 7
    argNames:
    - pszFilename
    - poSrcDS
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptionsIn
    argTypes:
    - char*
    - GDALDataset*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 4642
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4642
    functionName: PDS4Dataset::CreateInternal
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - auto::SetBand
    - VSISupportsRandomWrite
    - CSLAddString
    - auto::get
    - std::make_unique<PDS4RawRasterBand>
    - auto::GetDriver
    - VSIFTellL
    - PDS4Dataset::PDS4Dataset
    - CPLError
    - static_cast<vsi_l_offset>
    - PDS4Dataset*::SetDescription
    - CPLStringList::List
    - GDALGetDataTypeName
    - auto::m_poExternalDS::GetRasterBand
    - std::make_unique<PDS4WrapperRasterBand>
    - CPLString::c_str
    - static_cast<GDALDriver *>
    - std::make_unique<PDS4Dataset>
    - std::move
    - RawBinaryLayout::osRawFilename::c_str
    - static_cast<PDS4Dataset *>
    - static_cast<int>
    - FromHandle
    - CPLFetchBool
    - PDS4Dataset::Open
    - VSIFSeekL
    - auto::GDALDataset::SetMetadataItem
    - VSIFOpenL
    - VSIFReadL
    - CPLStringList::SetNameValue
    - auto::SetDescription
    - GDALGetDriverByName
    - GDALOpenEx
    - GDALDriver*::Create
    - auto::release
    - CPLResetExtensionSafe
    - auto::GetDescription
    - CSLDestroy
    - CSLFetchNameValueDef
    - EQUAL
    - CSLDuplicate
    - GDALDataset*::GetDriver
    - CPLStringList::FetchBool
    - GDALDataset*::GetRawBinaryLayout
    - CSLSetNameValue
    - CPLStringList::FetchNameValueDef
    linkageType: ''
    returnType: PDS4Dataset
    signature: "PDS4Dataset *PDS4Dataset::CreateInternal(const char *pszFilename,\n
      \                                        GDALDataset *poSrcDS, int nXSize,\n
      \                                        int nYSize, int nBandsIn,\n                                         GDALDataType
      eType,\n                                         const char *const *papszOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4650,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4651,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4651,1
    - Dst: reinterpret_cast<VRTDataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4653,1
    - Dst: VRTDataset*::GetSingleSimpleSource
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poSrcDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 4658
      start: 4648
    functionDepth: 0
    functionLinenumber: 4648
    functionLinenumberEnd: 4658
    functionName: PDS4GetUnderlyingDataset
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDataset*::GetDriver
    - reinterpret_cast<VRTDataset *>
    - VRTDataset*::GetSingleSimpleSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *PDS4GetUnderlyingDataset(GDALDataset *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4GetUnderlyingDataset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4672,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4675,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4676,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4676,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4677,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4679,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4681,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4685,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4687,1
    - Dst: PDS4Dataset::Open
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4695,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4705,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4706,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4712,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4714,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4716,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4719,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4724,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4726,1
    - Dst: OGRSpatialReference::exportToProj4
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4728,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4731,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4745,1
    - Dst: std::abs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4745,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4749,1
    - Dst: std::abs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4750,1
    - Dst: std::abs
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4751,1
    - Dst: maxRelErrorGT
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4760,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4762,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4773,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4785,1
    - Dst: PDS4Dataset::CreateInternal
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4786,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4792,1
    - Dst: PDS4Dataset*::SetGeoTransform
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4797,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4800,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4801,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4801,1
    - Dst: PDS4Dataset*::SetProjection
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4803,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4803,1
    - Dst: PDS4Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4812,1
    - Dst: PDS4Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4816,1
    - Dst: PDS4Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4820,1
    - Dst: PDS4Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4822,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4823,1
    - Dst: PDS4Dataset*::SetMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4831,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4842,1
    - Dst: GDALDatasetCopyWholeRaster
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4844,1
    - Dst: PDS4Dataset*::FlushCache
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4846,1
    - Dst: PDS4Dataset*::SetMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4856,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 85
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4861
      start: 4664
    functionDepth: 6
    functionLinenumber: 4664
    functionLinenumberEnd: 4861
    functionName: PDS4Dataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::CreateInternal
    - PDS4Dataset*::GetRasterBand
    - strcmp
    - maxRelErrorGT
    - GDALDataset*::GetProjectionRef
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALDataset*::GetDescription
    - PDS4GetUnderlyingDataset
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::abs
    - strlen
    - PDS4Dataset*::SetGeoTransform
    - GDALDataset*::GetGeoTransform
    - PDS4Dataset*::SetMetadata
    - GDALDatasetCopyWholeRaster
    - OGRSpatialReference::SetFromUserInput
    - CPLFetchBool
    - OGRSpatialReference::exportToProj4
    - GDALDataset*::GetRasterBand
    - PDS4Dataset::Open
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - PDS4Dataset*::SetProjection
    - EQUAL
    - max
    - PDS4Dataset*::FlushCache
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *PDS4Dataset::CreateCopy(const char *pszFilename,\n                                     GDALDataset
      *poSrcDS, int bStrict,\n                                     char **papszOptions,\n
      \                                    GDALProgressFunc pfnProgress,\n                                     void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<PDS4Dataset>
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4875,1
    - Dst: PDS4Dataset::OpenInternal
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4875,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4878,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4879,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4890,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4892,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4894,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4898,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4909,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4913,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4915,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4916,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4921,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4924
      start: 4867
    functionDepth: 3
    functionLinenumber: 4867
    functionLinenumberEnd: 4924
    functionName: PDS4Dataset::Delete
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 0
    functionsReached:
    - PDS4Dataset::OpenInternal
    - std::unique_ptr<PDS4Dataset>
    - VSIUnlink
    - CSLDestroy
    - CPLGetLastErrorNo
    - EQUAL
    - CPLError
    - CSLCount
    - VSIStrerror
    - auto::reset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDS4Dataset::Delete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4933,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4936,1
    - Dst: PDS4DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4937,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pds4dataset.cpp:4944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4930
    functionDepth: 1
    functionLinenumber: 4930
    functionLinenumberEnd: 4945
    functionName: GDALRegister_PDS4
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - PDS4DriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_PDS4()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: ~ISISTiledBand()
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ISISTiledBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ISISTiledBand::IsValid
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: ~ISIS3RawRasterBand()
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ISIS3RawRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: ISIS3WrapperRasterBand::RefUnderlyingRasterBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: "GDALRasterBand *\n    RefUnderlyingRasterBand(bool /* bForceOpen */)
      const override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: ~ISIS3WrapperRasterBand()
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ISIS3WrapperRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: ISIS3WrapperRasterBand::GetMaskFlags
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaskFlags() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: ISIS3WrapperRasterBand::GetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetMaskBand() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:404,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:405,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:413,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:413,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:416,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:423,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 10
    argNames:
    - poDSIn
    - fpVSILIn
    - nBandIn
    - eDT
    - nTileXSize
    - nTileYSize
    - nFirstTileOffsetIn
    - nXTileOffsetIn
    - nYTileOffsetIn
    - bNativeOrderIn
    argTypes:
    - GDALDataset*
    - VSILFILE*
    - int
    - GDALDataType
    - int
    - int
    - GIntBig
    - GIntBig
    - GIntBig
    - int
    constantsTouched: []
    func_position:
      end: 443
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 443
    functionName: ISISTiledBand::ISISTiledBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - GDALDataset*::GetRasterYSize
    - GDALDataset*::GetRasterXSize
    - CPLError
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: void
    signature: "void ISISTiledBand::ISISTiledBand(GDALDataset *poDSIn, VSILFILE *fpVSILIn,\n
      \                            int nBandIn, GDALDataType eDT, int nTileXSize,\n
      \                            int nTileYSize, GIntBig nFirstTileOffsetIn,\n                             GIntBig
      nXTileOffsetIn, GIntBig nYTileOffsetIn,\n                             int bNativeOrderIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:452,1
    - Dst: ISIS3Dataset*::m_osExternalFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:453,1
    - Dst: ISIS3Dataset*::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:456,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:465,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:467,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:469,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:473,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:475,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:477,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 485
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 485
    functionName: ISISTiledBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - static_cast<int>
    - VSIFSeekL
    - GDALSwapWords
    - ISIS3Dataset*::m_osExternalFilename::empty
    - ISIS3Dataset*::WriteLabel
    - VSIFReadL
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISTiledBand::IReadBlock(int nXBlock, int nYBlock, void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - pBuffer
    - nItems
    - srcNoData
    - dstNoData
    argTypes:
    - T*
    - int
    - T
    - T
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: RemapNoDataT
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RemapNoDataT(T *pBuffer, int nItems, T srcNoData, T dstNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemapNoDataT
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:510,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:510,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:511,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:512,1
    - Dst: RemapNoDataT
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:516,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:516,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:517,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:518,1
    - Dst: RemapNoDataT
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:522,1
    - Dst: reinterpret_cast<GInt16 *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:522,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:523,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:524,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:528,1
    - Dst: RemapNoDataT
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:529,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:529,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:530,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - eDataType
    - pBuffer
    - nItems
    - dfSrcNoData
    - dfDstNoData
    argTypes:
    - GDALDataType
    - void*
    - int
    - double
    - double
    constantsTouched: []
    func_position:
      end: 533
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 533
    functionName: RemapNoData
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUInt16>
    - static_cast<float>
    - reinterpret_cast<GByte *>
    - reinterpret_cast<GInt16 *>
    - static_cast<GInt16>
    - static_cast<GByte>
    - RemapNoDataT
    - CPLAssert
    - reinterpret_cast<float *>
    - reinterpret_cast<GUInt16 *>
    linkageType: ''
    returnType: void
    signature: "void RemapNoData(GDALDataType eDataType, void *pBuffer, int nItems,\n
      \                       double dfSrcNoData, double dfDstNoData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:542,1
    - Dst: ISIS3Dataset*::m_osExternalFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:543,1
    - Dst: ISIS3Dataset*::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:546,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:551,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:567,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:571,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:578,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:581,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:587,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:589,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:591,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:596,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:598,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:600,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:602,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:607,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 610
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 610
    functionName: ISISTiledBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - RemapNoData
    - static_cast<int>
    - VSIFSeekL
    - GDALSwapWords
    - ISIS3Dataset*::m_osExternalFilename::empty
    - ISIS3Dataset*::WriteLabel
    - VSIFWriteL
    - static_cast<GByte *>
    - CPLError
    - GDALCopyWords
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISTiledBand::IWriteBlock(int nXBlock, int nYBlock, void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMaskBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: ISISTiledBand::SetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ISISTiledBand::SetMaskBand(GDALRasterBand *poMaskBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: ISISTiledBand::GetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISISTiledBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: ISISTiledBand::GetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISISTiledBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: ISISTiledBand::SetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISTiledBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 664
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 664
    functionName: ISISTiledBand::SetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISTiledBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: ISISTiledBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISISTiledBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfNewNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: ISISTiledBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISTiledBand::SetNoDataValue(double dfNewNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - l_poDS
    - l_nBand
    - l_fpRaw
    - l_nImgOffset
    - l_nPixelOffset
    - l_nLineOffset
    - l_eDataType
    - l_bNativeOrder
    argTypes:
    - GDALDataset*
    - int
    - VSILFILE*
    - vsi_l_offset
    - int
    - int
    - GDALDataType
    - int
    constantsTouched: []
    func_position:
      end: 703
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 703
    functionName: ISIS3RawRasterBand::ISIS3RawRasterBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ISIS3RawRasterBand::ISIS3RawRasterBand(GDALDataset *l_poDS, int
      l_nBand,\n                                       VSILFILE *l_fpRaw,\n                                       vsi_l_offset
      l_nImgOffset,\n                                       int l_nPixelOffset, int
      l_nLineOffset,\n                                       GDALDataType l_eDataType,\n
      \                                      int l_bNativeOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:712,1
    - Dst: ISIS3Dataset*::m_osExternalFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:713,1
    - Dst: ISIS3Dataset*::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:716,1
    - Dst: RawRasterBand::IReadBlock
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: ISIS3RawRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - RawRasterBand::IReadBlock
    - ISIS3Dataset*::m_osExternalFilename::empty
    - ISIS3Dataset*::WriteLabel
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3RawRasterBand::IReadBlock(int nXBlock, int nYBlock, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:728,1
    - Dst: ISIS3Dataset*::m_osExternalFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:729,1
    - Dst: ISIS3Dataset*::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:732,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:737,1
    - Dst: RawRasterBand::IWriteBlock
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 742
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 742
    functionName: ISIS3RawRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - RemapNoData
    - RawRasterBand::IWriteBlock
    - ISIS3Dataset*::m_osExternalFilename::empty
    - ISIS3Dataset*::WriteLabel
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3RawRasterBand::IWriteBlock(int nXBlock, int nYBlock, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:756,1
    - Dst: ISIS3Dataset*::m_osExternalFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:757,1
    - Dst: ISIS3Dataset*::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:760,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:769,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:774,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:775,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:776,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:779,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:780,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:784,1
    - Dst: RawRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:786,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:789,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:790,1
    - Dst: RawRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 797
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 797
    functionName: ISIS3RawRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - RemapNoData
    - static_cast<int>
    - reinterpret_cast<GByte *>
    - RawRasterBand::IRasterIO
    - ISIS3Dataset*::m_osExternalFilename::empty
    - ISIS3Dataset*::WriteLabel
    - VSIFree
    - GDALCopyWords
    - static_cast<GSpacing>
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr ISIS3RawRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                     int nXSize, int nYSize, void
      *pData,\n                                     int nBufXSize, int nBufYSize,\n
      \                                    GDALDataType eBufType,\n                                     GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                                     GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMaskBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: ISIS3RawRasterBand::SetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ISIS3RawRasterBand::SetMaskBand(GDALRasterBand *poMaskBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 818
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 818
    functionName: ISIS3RawRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3RawRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: ISIS3RawRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3RawRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 840
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 840
    functionName: ISIS3RawRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3RawRasterBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 851
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 851
    functionName: ISIS3RawRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3RawRasterBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: ISIS3RawRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3RawRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dfNewNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 872
    functionName: ISIS3RawRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3RawRasterBand::SetNoDataValue(double dfNewNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:882,1
    - Dst: GetBlockSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poBaseBandIn
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 884
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 884
    functionName: ISIS3WrapperRasterBand::ISIS3WrapperRasterBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - GetBlockSize
    linkageType: ''
    returnType: void
    signature: void ISIS3WrapperRasterBand::ISIS3WrapperRasterBand(GDALRasterBand
      *poBaseBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poMaskBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: ISIS3WrapperRasterBand::SetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ISIS3WrapperRasterBand::SetMaskBand(GDALRasterBand *poMaskBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 905
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 905
    functionName: ISIS3WrapperRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3WrapperRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 916
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 916
    functionName: ISIS3WrapperRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3WrapperRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:927,1
    - Dst: ISIS3Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 932
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 932
    functionName: ISIS3WrapperRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3WrapperRasterBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:943,1
    - Dst: ISIS3Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 948
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 948
    functionName: ISIS3WrapperRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3WrapperRasterBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 959
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 959
    functionName: ISIS3WrapperRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3WrapperRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:969,1
    - Dst: ISIS3Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - dfNewNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 975
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 975
    functionName: ISIS3WrapperRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3WrapperRasterBand::SetNoDataValue(double dfNewNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:983,1
    - Dst: ISIS3Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:992,1
    - Dst: ISIS3Dataset*::m_poExternalDS::FlushCache
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:994,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1016,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1033,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1044
    functionName: ISIS3WrapperRasterBand::InitFile
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - CPLAtoGIntBig
    - ISIS3Dataset*::m_poExternalDS::FlushCache
    - CPLError
    - ISIS3Dataset*::m_poExternalDS::GetRasterBand
    linkageType: ''
    returnType: void
    signature: void ISIS3WrapperRasterBand::InitFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1052,1
    - Dst: ISIS3WrapperRasterBand::InitFile
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1059,1
    - Dst: OGRNGWLayer::Fill
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - dfRealValue
    - dfImaginaryValue
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1063
      start: 1050
    functionDepth: 3
    functionLinenumber: 1050
    functionLinenumberEnd: 1063
    functionName: ISIS3WrapperRasterBand::Fill
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3WrapperRasterBand::InitFile
    - OGRNGWLayer::Fill
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3WrapperRasterBand::Fill(double dfRealValue, double dfImaginaryValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1073,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1076,1
    - Dst: ISIS3WrapperRasterBand::InitFile
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1081,1
    - Dst: GDALGeoPackageDataset::ICanIWriteBlock
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1084,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: ISIS3WrapperRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3WrapperRasterBand::InitFile
    - GDALGeoPackageDataset::ICanIWriteBlock
    - RemapNoData
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr ISIS3WrapperRasterBand::IWriteBlock(int nXBlock, int nYBlock,\n
      \                                          void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1097,1
    - Dst: ISIS3WrapperRasterBand::InitFile
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1101,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1110,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1115,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1116,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1117,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1120,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1121,1
    - Dst: RemapNoData
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1125,1
    - Dst: GDALProxyRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1127,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1130,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1131,1
    - Dst: GDALProxyRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1138
    functionName: ISIS3WrapperRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - GDALProxyRasterBand::IRasterIO
    - RemapNoData
    - static_cast<int>
    - reinterpret_cast<GByte *>
    - ISIS3WrapperRasterBand::InitFile
    - VSIFree
    - GDALCopyWords
    - static_cast<GSpacing>
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr ISIS3WrapperRasterBand::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    GSpacing nPixelSpace, GSpacing nLineSpace,
      GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1148,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1149,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poBaseBand
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 1151
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1151
    functionName: ISISMaskBand::ISISMaskBand
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::GetXSize
    - GDALRasterBand*::GetBlockSize
    - GDALRasterBand*::GetYSize
    linkageType: ''
    returnType: void
    signature: void ISISMaskBand::ISISMaskBand(GDALRasterBand *poBaseBand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1160
    functionName: ISISMaskBand::~ISISMaskBand()
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void ISISMaskBand::~ISISMaskBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 10
    argNames:
    - pvBuffer
    - pabyDst
    - nReqXSize
    - nReqYSize
    - nBlockXSize
    - NULL_VAL
    - LOW_REPR_SAT
    - LOW_INSTR_SAT
    - HIGH_INSTR_SAT
    - HIGH_REPR_SAT
    argTypes:
    - void*
    - GByte*
    - int
    - int
    - int
    - T
    - T
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 1189
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1189
    functionName: FillMask
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<T *>
    linkageType: ''
    returnType: void
    signature: "void FillMask(void *pvBuffer, GByte *pabyDst, int nReqXSize,\n                     int
      nReqYSize, int nBlockXSize, T NULL_VAL, T LOW_REPR_SAT,\n                     T
      LOW_INSTR_SAT, T HIGH_INSTR_SAT, T HIGH_REPR_SAT)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1198,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1202,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1216,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1219,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1225,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1228,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1234,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1240,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1246,1
    - Dst: FillMask
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1253
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1253
    functionName: ISISMaskBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - CPLAssert
    - FillMask
    - RasterIO
    - static_cast<GByte *>
    - static_cast<GSpacing>
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISISMaskBand::IReadBlock(int nXBlock, int nYBlock, void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetStripSurroundingQuotes
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1267,1
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1276,1
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1278
    functionName: ISIS3Dataset::ISIS3Dataset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - Deinit
    - SetStripSurroundingQuotes
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::ISIS3Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS3Dataset::Close
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1288
    functionName: ISIS3Dataset::~ISIS3Dataset()
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - ISIS3Dataset::Close
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::~ISIS3Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS3Dataset::WriteLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1300,1
    - Dst: reinterpret_cast<ISIS3WrapperRasterBand *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1304,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1304,1
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1307,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1311,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1316,1
    - Dst: ISIS3Dataset::CloseDependentDatasets
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1320,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1321,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1325
    functionName: ISIS3Dataset::Close
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    - ISIS3Dataset::WriteLabel
    - ISIS3Dataset::CloseDependentDatasets
    - GetRasterBand
    - OGRAPISpyFileClose
    - reinterpret_cast<ISIS3WrapperRasterBand *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3Dataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1349
    functionName: ISIS3Dataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ISIS3Dataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1360,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1361,1
    - Dst: Count
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1362,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1364,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1372
    functionName: ISIS3Dataset::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - Count
    - CSLAddString
    - CSLFindString
    - empty
    linkageType: ''
    returnType: char
    signature: char **ISIS3Dataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1381,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1385
    functionName: ISIS3Dataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *ISIS3Dataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1394,1
    - Dst: Clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1398,1
    - Dst: ISIS3Dataset::SetSpatialRef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1400,1
    - Dst: ISIS3Dataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1403
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1403
    functionName: ISIS3Dataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - Clear
    - GDALPamDataset::SetSpatialRef
    - ISIS3Dataset::SetSpatialRef
    - ISIS3Dataset::InvalidateLabel
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3Dataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1414,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1419
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1419
    functionName: ISIS3Dataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3Dataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::SetGeoTransform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1429,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1433,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1438,1
    - Dst: ISIS3Dataset::SetGeoTransform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1440,1
    - Dst: ISIS3Dataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1443
    functionName: ISIS3Dataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - ISIS3Dataset::SetGeoTransform
    - ISIS3Dataset::InvalidateLabel
    - GDALPamDataset::SetGeoTransform
    - CPLError
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3Dataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1452
    functionName: ISIS3Dataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **ISIS3Dataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1460,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1462,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1464,1
    - Dst: ISIS3Dataset::BuildLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1466,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1468,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1468,1
    - Dst: Format
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1470,1
    - Dst: InsertString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1471,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1471,1
    - Dst: List
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1473,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1476
    functionName: ISIS3Dataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ISIS3Dataset::BuildLabel
    - IsValid
    - GDALPamDataset::GetMetadata
    - EQUAL
    - InsertString
    - CPLAssert
    - CPLString::c_str
    - List
    - Format
    linkageType: ''
    returnType: char
    signature: char **ISIS3Dataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1484,1
    - Dst: Clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: ISIS3Dataset::InvalidateLabel
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 2
    functionsReached:
    - Clear
    - Deinit
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::InvalidateLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1495,1
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1497,1
    - Dst: ISIS3Dataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1498,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1501,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1502,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1503,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1508,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1509,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1517
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1517
    functionName: ISIS3Dataset::SetMetadata
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::SetMetadata
    - CPLJSONDocument::LoadMemory
    - ISIS3Dataset::InvalidateLabel
    - IsValid
    - reinterpret_cast<const GByte *>
    - EQUAL
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    - Deinit
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS3Dataset::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: osRawFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    functionName: ISIS3Dataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - osRawFilename::empty
    linkageType: ''
    returnType: bool
    signature: bool ISIS3Dataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout
      &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1540,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1541,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1543,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1543,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1545,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1547,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1548,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1549,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1550,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1551,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1552,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1553,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1553,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1555,1
    - Dst: GetValueAndUnits
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1557,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1561,1
    - Dst: auto::ToDouble
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1561,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1563,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1563,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1566,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1568,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1569,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1573,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1574,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1576,1
    - Dst: ToDouble
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1576,1
    - Dst: std::vector<double>::clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1580,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 4
    argNames:
    - obj
    - adfValues
    - aosUnits
    - nExpectedVals
    argTypes:
    - CPLJSONObject
    - std::vector<double>
    - std::vector<std::string>
    - int
    constantsTouched: []
    func_position:
      end: 1586
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1586
    functionName: GetValueAndUnits
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetType
    - auto::ToDouble
    - auto::ToString
    - CPLJSONObject::ToArray
    - std::vector<double>::clear
    - std::vector<std::string>::push_back
    - auto::GetType
    - CPLJSONObject::ToDouble
    - GetType
    - auto::IsValid
    - CPLJSONObject::GetObj
    - std::vector<double>::push_back
    - ToDouble
    - auto::Size
    - GetValueAndUnits
    linkageType: ''
    returnType: void
    signature: "void GetValueAndUnits(const CPLJSONObject &obj,\n                             std::vector<double>
      &adfValues,\n                             std::vector<std::string> &aosUnits,\n
      \                            int nExpectedVals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS3DriverIdentify
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1598,1
    - Dst: std::make_unique<ISIS3Dataset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1604,1
    - Dst: auto::m_oKeywords::Ingest
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1606,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1608,1
    - Dst: auto::m_oKeywords::GetJsonObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1612,1
    - Dst: auto::m_oJSonLabel::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1613,1
    - Dst: auto::m_oJSonLabel::GetChildren
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1616,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1618,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1620,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1621,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1622,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1624,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1627,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1628,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1631,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1632,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1633,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1634,1
    - Dst: auto::m_aosAdditionalFiles::AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1636,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1640,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1641,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1647,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1683,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1684,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1685,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1686,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1688,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1706,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1711,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1715,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1715,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1716,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1716,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1719,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1724,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1724,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1726,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1727,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1742,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1747,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1752,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1757,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1757,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1764,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1780,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1782,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1783,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1790,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1792,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1799,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1801,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1859,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1859,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1877,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1880,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1883,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1884,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1886,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1888,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1890,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1892,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1894,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1896,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1898,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1900,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1902,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1904,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1906,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1908,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1910,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1913,1
    - Dst: OGRSpatialReference::SetVerticalPerspective
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1920,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1923,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1944,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1947,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1951,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1963,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1988,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1989,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1990,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:1995,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2004,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2008,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2009,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2010,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2011,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2012,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2016,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2019,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2031,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2040,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2047,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2053,1
    - Dst: auto::m_oSRS::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2054,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2065,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2066,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2080,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2084,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2090,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2094,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2094,1
    - Dst: auto::m_poExternalDS::GetRasterXSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2099,1
    - Dst: auto::m_poExternalDS::GetRasterYSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2100,1
    - Dst: auto::m_poExternalDS::GetRasterCount
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2101,1
    - Dst: auto::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2102,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2105,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2108,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2115,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2117,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2121,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2122,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2122,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2128,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2128,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2131,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2131,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2135,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2136,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2137,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2138,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2144,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2148,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2151,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2161,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2165,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2169,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2170,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2191,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2196,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2200,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2223,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2229,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2229,1
    - Dst: v
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2229,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2235,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2237,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2245,1
    - Dst: auto::m_oJSonLabel::GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2258,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2259,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2259,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2261,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2263,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2263,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2266,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2266,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2268,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2270,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2275,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2278,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2278,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2280,1
    - Dst: ToArray
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2282,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2283,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2287,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2290,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2290,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2294,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2301,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2301,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2302,1
    - Dst: ToArray
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2304,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2305,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2309,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2311,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2311,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2315,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2321,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2321,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2322,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2322,1
    - Dst: GetValueAndUnits
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2324,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2327,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2327,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2328,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2330,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2331,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2331,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2332,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2332,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2334,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2334,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2337,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2337,1
    - Dst: GetValueAndUnits
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2339,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2343,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2347,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2350,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2350,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2354,1
    - Dst: std::make_unique<ISIS3WrapperRasterBand>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2374,1
    - Dst: auto::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2375,1
    - Dst: auto::SetMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2376,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2376,1
    - Dst: ISISMaskBand::ISISMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2376,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2377,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2377,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2378,1
    - Dst: std::make_unique<ISISTiledBand>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2382,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2383,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2385,1
    - Dst: auto::SetMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2389,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2389,1
    - Dst: ISISMaskBand::ISISMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2389,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2390,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2390,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2391,1
    - Dst: std::make_unique<ISIS3RawRasterBand>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2395,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2396,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2399,1
    - Dst: auto::SetMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2403,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2403,1
    - Dst: ISISMaskBand::ISISMaskBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2403,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2404,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2404,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2405,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2408,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2408,1
    - Dst: GDALRasterBand*::SetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2410,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2410,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2412,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2412,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2413,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2413,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2415,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2416,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2417,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2418,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2419,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2419,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2420,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2420,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2422,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2423,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2424,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2425,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2428,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2428,1
    - Dst: GDALRasterBand*::SetUnitType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2430,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2430,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2433,1
    - Dst: GDALRasterBand*::SetOffset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2442,1
    - Dst: GDALRasterBand*::SetScale
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2443,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2450,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2451,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2452,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2454,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2454,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2457,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2461,1
    - Dst: OGRSpatialReference::importFromESRI
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2462,1
    - Dst: auto::m_aosAdditionalFiles::AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2464,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2464,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2465,1
    - Dst: auto::m_oSRS::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2466,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2469,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2485,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2485,1
    - Dst: auto::m_aosAdditionalFiles::AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2489,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2490,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2496,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2496,1
    - Dst: auto::m_aosAdditionalFiles::AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2500,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2501,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2508,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2509,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2514,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2514,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2516,1
    CyclomaticComplexity: 142
    EdgeCount: 142
    ICount: 354
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2517
      start: 1592
    functionDepth: 6
    functionLinenumber: 1592
    functionLinenumberEnd: 2517
    functionName: ISIS3Dataset::Open
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetGeogCS
    - GetObj
    - std::vector::size
    - v
    - auto::GetType
    - CPLDebug
    - GDALRasterBand*::SetNoDataValue
    - CPLJSONObject::GetType
    - CPLAtoGIntBig
    - std::make_unique<ISIS3Dataset>
    - GetValueAndUnits
    - OGRSpatialReference::SetFromUserInput
    - ToString
    - auto::m_oKeywords::GetJsonObject
    - auto::SetDescription
    - CPLSM
    - OGRSpatialReference::SetVerticalPerspective
    - CSLDestroy
    - ISIS3DriverIdentify
    - GDALRasterBand*::SetUnitType
    - fabs
    - auto::m_oJSonLabel::GetChildren
    - auto::oOvManager::Initialize
    - auto::m_oJSonLabel::GetObj
    - GDALRasterBand*::SetMetadataItem
    - GDALDataset*::GetRasterCount
    - static_cast<vsi_l_offset>
    - std::vector::clear
    - std::string::c_str
    - CPLGetExtensionSafe
    - static_cast<GIntBig>
    - auto::SetMaskBand
    - std::move
    - std::vector::empty
    - auto::Size
    - CPLAtof
    - CPLJSONObject::ToString
    - static_cast<int>
    - FromHandle
    - OGRSpatialReference::SetPS
    - CPLString::Printf
    - auto::TryLoadXML
    - GDALDataset*::GetRasterXSize
    - GetType
    - std::make_unique<ISIS3WrapperRasterBand>
    - GDALRasterBand*::SetOffset
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetPathSafe
    - GDALDataset*::GetRasterYSize
    - CPLResetExtensionSafe
    - std::make_unique<ISIS3RawRasterBand>
    - EQUAL
    - OGRSpatialReference::SetMercator
    - GDALOpen
    - auto::SetBand
    - atoi
    - CPLString
    - std::vector::push_back
    - CPL_TO_BOOL
    - auto::GetRasterBand
    - OGRSpatialReference::SetLCC
    - auto::m_oJSonLabel::Add
    - CPLString::c_str
    - auto::GetKeyword
    - strlen
    - auto::m_oKeywords::Ingest
    - GetName
    - ToArray
    - c_str
    - GDALDataset*::GetRasterBand
    - CPLSPrintf
    - auto::IsValid
    - VSIStrerror
    - ISISMaskBand::ISISMaskBand
    - auto::m_aosAdditionalFiles::AddString
    - VSIFCloseL
    - CPLGetBasenameSafe
    - GDALCheckDatasetDimensions
    - OGRSpatialReference::SetSinusoidal
    - auto::m_poExternalDS::GetRasterYSize
    - auto::m_oSRS::SetAxisMappingStrategy
    - std::make_unique<ISISTiledBand>
    - auto::get
    - CPLError
    - GDALRasterBand*::SetScale
    - GDALReadWorldFile
    - auto::m_poExternalDS::GetRasterCount
    - GDALDataset*::GetMetadataItem
    - auto::m_poExternalDS::GetRasterBand
    - auto::m_poExternalDS::GetRasterXSize
    - OGRSpatialReference::importFromESRI
    - CPLFormCIFilenameSafe
    - OGRSpatialReference::SetOrthographic
    - auto::GetChildren
    - STARTS_WITH_CI
    - VSIFOpenL
    - OGRSpatialReference::SetProjCS
    - CPLFormFilenameSafe
    - OGRSpatialReference::SetEquirectangular2
    - GDALCheckBandCount
    - auto::release
    - VSIStatL
    - OGRSpatialReference::SetTM
    - max
    - GDALRasterBand*::SetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *ISIS3Dataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS3Dataset::GetKeyword
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszPath
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2528
      start: 2523
    functionDepth: 1
    functionLinenumber: 2523
    functionLinenumberEnd: 2528
    functionName: ISIS3Dataset::GetKeyword
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - ISIS3Dataset::GetKeyword
    linkageType: ''
    returnType: char
    signature: "char *ISIS3Dataset::GetKeyword(const char *pszPath,\n                                     const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - dfLong
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: ISIS3Dataset::FixLong
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ISIS3Dataset::FixLong(double dfLong)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2550,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2552,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2555,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2556,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2558,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2559,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2561,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2562,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2564,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2565,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2566,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2568,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2570,1
    - Dst: reinterpret_cast<ISIS3WrapperRasterBand *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2576,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2576,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2585,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2585,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2590,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2593,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2598,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2600,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2603,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2604,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2609,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2610,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2615,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2616,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2617,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2621,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2623,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2624,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2625,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2629,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2630,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2631,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2634,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2635,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2636,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2637,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2638,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2640,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2641,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2642,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2643,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2648,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2649,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2649,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2650,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2650,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2656,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2659,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2660,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2661,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2663,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2664,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2665,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2666,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2667,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2668,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2670,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2672,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2674,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2674,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2678,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2680,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2689,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2690,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2692,1
    - Dst: OGRSpatialReference::GetSemiMajor
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2692,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2693,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2694,1
    - Dst: OGRSpatialReference::GetSemiMinor
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2694,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2695,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2697,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2698,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2700,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2702,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2703,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2705,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2720,1
    - Dst: OGRSpatialReference::CloneGeogCS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2726,1
    - Dst: OGRSpatialReference*::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2729,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2732,1
    - Dst: OGRCoordinateTransformation*::Transform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2736,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2750,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2757,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2761,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2764,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2768,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2770,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2770,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2771,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2771,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2772,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2772,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2773,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2773,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2775,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2779,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2780,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2780,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2781,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2782,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2783,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2783,1
    - Dst: min
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2784,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2785,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2786,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2786,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2787,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2788,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2789,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2789,1
    - Dst: max
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2790,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2796,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2797,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2798,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2799,1
    - Dst: OGRSpatialReference::GetSemiMajor
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2799,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2801,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2803,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2804,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2806,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2810,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2811,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2811,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2815,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2825,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2828,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2830,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2831,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2832,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2832,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2834,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2836,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2839,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2841,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2842,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2843,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2843,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2847,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2849,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2850,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2851,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2851,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2853,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2855,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2856,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2857,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2860,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2862,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2863,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2864,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2864,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2866,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2868,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2869,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2870,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2873,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2875,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2876,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2877,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2877,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2879,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2881,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2882,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2883,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2886,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2888,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2889,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2890,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2890,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2892,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2894,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2895,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2897,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2898,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2900,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2903,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2906,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2907,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2908,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2908,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2910,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2911,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2914,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2915,1
    - Dst: OGRSpatialReference::GetSemiMajor
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2916,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2920,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2924,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2925,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2931,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2935,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2935,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2945,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2946,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2947,1
    - Dst: ISIS3Dataset::FixLong
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2947,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2948,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2952,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2958,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2962,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2964,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2966,1
    - Dst: OGRSpatialReference::GetNormProjParm
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2970,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2972,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2980,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2986,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2989,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2989,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2995,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2996,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2997,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2998,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:2999,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3000,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3002,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3002,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3006,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3008,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3010,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3011,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3012,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3013,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3017,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3018,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3019,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3023,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3024,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3025,1
    - Dst: ISIS3Dataset::BuildHistory
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3028,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3030,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3031,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3033,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3034,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3035,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3036,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3037,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3039,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3040,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3040,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3040,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3041,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3045,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3047,1
    - Dst: clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3051,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3052,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3056,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3058,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3061,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3063,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3069,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3070,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3071,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3076,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3077,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3078,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3083,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3085,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3089,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3090,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3097,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3097,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3099,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3099,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3102,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3103,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3105,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3109,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3110,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3112,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3116,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3120,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3121,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3122,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3123,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3125,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3129,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3133,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3133,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3134,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3139,1
    - Dst: Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3141,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3146,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3148,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3148,1
    - Dst: Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3149,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3150,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3153,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3158,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3164,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3165,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3165,1
    - Dst: Set
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3168,1
    - Dst: Delete
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3172,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3175,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3175,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3178,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 322
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 2547
    functionDepth: 6
    functionLinenumber: 2547
    functionLinenumberEnd: 3179
    functionName: ISIS3Dataset::BuildLabel
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - CPLGetFilename
    - clear
    - GetObj
    - ISIS3Dataset::FixLong
    - GetRasterBand
    - GetDescription
    - GetOrCreateJSONObject
    - CPLError
    - CPLJSONObject::Delete
    - STARTS_WITH
    - static_cast<vsi_l_offset>
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    - reinterpret_cast<ISIS3WrapperRasterBand *>
    - CPLJSONObject::GetType
    - static_cast<GIntBig>
    - OGRSpatialReference*::SetAxisMappingStrategy
    - OGRCoordinateTransformation*::Transform
    - IsValid
    - ISIS3Dataset::BuildHistory
    - CPLString::c_str
    - CPLString::size
    - OGRSpatialReference::GetNormProjParm
    - CPLJSONObject::ToInteger
    - std::move
    - CSLCount
    - GetInteger
    - OGRSpatialReference::IsGeographic
    - GetName
    - CPLAtof
    - CPLJSONObject::ToString
    - IsEmpty
    - static_cast<int>
    - CPLJSONObject::CPLJSONObject
    - CPLString::Printf
    - min
    - Delete
    - strstr
    - OGRSpatialReference::GetSemiMajor
    - OGRCreateCoordinateTransformation
    - CPLFormFilenameSafe
    - OGRSpatialReference::GetSemiMinor
    - size
    - CPLJSONObject
    - empty
    - CPLGetPathSafe
    - VSIStatL
    - Set
    - CSLDestroy
    - CPLJSONObject::GetChildren
    - EQUAL
    - max
    - CPLJSONObject::Set
    - push_back
    - CPLJSONObject::IsValid
    - CPLJSONObject::Add
    - OGRSpatialReference::CloneGeogCS
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::BuildLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3189,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3196,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3198,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3202,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3205,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3207,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3208,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3209,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3213,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3215,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3218,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3218,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3223,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3225,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3225,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3229,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3231,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3235,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3240,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3243,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3244,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3245,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3247,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3251,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3252,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3254,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3258,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3260,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3265,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3267,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3273,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3276,1
    - Dst: CPLGetExecPath
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3278,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3279,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3283,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3284,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3286,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3287,1
    - Dst: GDALVersionInfo
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3287,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3289,1
    - Dst: time
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3290,1
    - Dst: CPLUnixTimeToYMDHMS
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3294,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3295,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3296,1
    - Dst: gethostname
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3302,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3304,1
    - Dst: std::string
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3304,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3308,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3311,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3313,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3315,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3316,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3318,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3319,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3321,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3322,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3324,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3326,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3326,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3327,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3330,1
    - Dst: ISIS3Dataset::SerializeAsPDL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3332,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3335,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3185
    functionDepth: 1
    functionLinenumber: 3185
    functionLinenumberEnd: 3336
    functionName: ISIS3Dataset::BuildHistory
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLGetFilename
    - GetDescription
    - CPLDebug
    - CPLError
    - static_cast<vsi_l_offset>
    - CPLString::resize
    - CPLGetExecPath
    - GDALVersionInfo
    - CPLString::empty
    - gethostname
    - CPLGetConfigOption
    - CPLJSONObject::GetType
    - IsValid
    - CPLString::c_str
    - CPLJSONObject::ToInteger
    - CPLUnixTimeToYMDHMS
    - std::move
    - CPLJSONObject::ToString
    - static_cast<int>
    - CPLJSONObject::CPLJSONObject
    - VSIFSeekL
    - CPLString::clear
    - CPLSPrintf
    - VSIFOpenL
    - time
    - VSIFReadL
    - CPLFormFilenameSafe
    - CPLGetPathSafe
    - empty
    - VSIFCloseL
    - CPLJSONObject::Add
    - ISIS3Dataset::SerializeAsPDL
    - std::string
    - strcpy
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::BuildHistory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3346,1
    - Dst: ISIS3Dataset::BuildLabel
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3347,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3352,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3352,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3356,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3367,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3367,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3368,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3368,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3369,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3369,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3379,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3379,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3380,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3380,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3381,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3381,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3385,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3393,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3394,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3396,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3397,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3402,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3414,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3414,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3416,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3419,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3419,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3420,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3421,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3421,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3422,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3422,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3423,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3423,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3427,1
    - Dst: osPlaceHolder::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3429,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3433,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3437,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3437,1
    - Dst: osPlaceHolder::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3438,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3440,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3440,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3441,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3441,1
    - Dst: osPlaceHolder::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3442,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3443,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3448,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3449,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3449,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3451,1
    - Dst: reinterpret_cast<ISISTiledBand *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3459,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3459,1
    - Dst: reinterpret_cast<ISIS3RawRasterBand *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3468,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3469,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3481,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3482,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3488,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3490,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3490,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3491,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3494,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3502,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3503,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3503,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3506,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3512,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3517,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3519,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3521,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3522,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3522,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3522,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3528,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3529,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3529,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3530,1
    - Dst: AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3533,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3535,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3535,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3535,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3536,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3540,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3541,1
    - Dst: size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3547,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3550,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3553,1
    - Dst: osSrcFilename::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3554,1
    - Dst: osDstFilename::empty
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3559,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3561,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3564,1
    - Dst: osDstFilename::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3565,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3566,1
    - Dst: AddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3570,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3574,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3581,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3585,1
    - Dst: osSrcFilename::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3588,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3591,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3595,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3597,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3342
    functionDepth: 7
    functionLinenumber: 3342
    functionLinenumberEnd: 3599
    functionName: ISIS3Dataset::WriteLabel
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - GetDescription
    - GetRasterBand
    - VSIFTellL
    - CPLError
    - static_cast<vsi_l_offset>
    - reinterpret_cast<ISISTiledBand *>
    - CPLString::resize
    - AddString
    - osDstFilename::empty
    - IsValid
    - osSrcFilename::c_str
    - GDALSwapWords
    - VSIFTruncateL
    - CPLString::size
    - osPlaceHolder::empty
    - CPLString::c_str
    - strlen
    - osDstFilename::c_str
    - DIV_ROUND_UP
    - CPLMalloc
    - GDALCopyWords
    - c_str
    - static_cast<int>
    - reinterpret_cast<ISIS3RawRasterBand *>
    - VSIFSeekL
    - VSIFOpenL
    - CPLAssert
    - osPlaceHolder::size
    - static_cast<GByte *>
    - CPLFree
    - CPLFormFilenameSafe
    - size
    - static_cast<size_t>
    - CPLGetPathSafe
    - empty
    - ISIS3Dataset::BuildLabel
    - VSIFCloseL
    - VSIFWriteL
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ISIS3Dataset::WriteLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3607,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3608,1
    - Dst: ISIS3Dataset::SerializeAsPDL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3609,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3610,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - oObj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 3615
      start: 3605
    functionDepth: 1
    functionLinenumber: 3605
    functionLinenumberEnd: 3615
    functionName: ISIS3Dataset::SerializeAsPDL
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 2
    functionsReached:
    - VSIFCloseL
    - VSIUnlink
    - VSIFOpenL
    - ISIS3Dataset::SerializeAsPDL
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: CPLString
    signature: CPLString ISIS3Dataset::SerializeAsPDL(const CPLJSONObject &oObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3629,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3633,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3634,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3634,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3635,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3640,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3646,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3648,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3653,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3654,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3655,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3656,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3658,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3660,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3668,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3669,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3669,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3670,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3674,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3676,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3678,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3678,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3686,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3689,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3692,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3693,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3695,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3697,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3699,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3701,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3702,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3704,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3705,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3706,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3706,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3707,1
    - Dst: ISIS3Dataset::SerializeAsPDL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3708,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3709,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3709,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3711,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3713,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3714,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3714,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3715,1
    - Dst: ISIS3Dataset::SerializeAsPDL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3716,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3717,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3717,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3722,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3723,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3724,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3725,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3727,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3728,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3731,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3732,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3732,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3733,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3733,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3734,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3740,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3742,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3743,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3743,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3744,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3745,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3746,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3750,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3751,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3751,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3752,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3753,1
    - Dst: ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3761,1
    - Dst: strchr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3763,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3764,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3764,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3766,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3767,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3768,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3768,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3769,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3769,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3769,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3773,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3773,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3773,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3774,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3774,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3776,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3776,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3776,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3777,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3782,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3782,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3783,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3783,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3790,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3794,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3798,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3800,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3804,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3804,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3805,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3805,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3812,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3812,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3813,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3813,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3819,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3821,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3821,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3822,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3822,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3823,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3827,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3827,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3828,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3828,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3837,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3838,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3843,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3846,1
    - Dst: strchr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3848,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3849,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3849,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3851,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3852,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3853,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3853,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3856,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3860,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3864,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3874,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3878,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3882,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3887,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3888,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3899,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3903,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3907,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3915,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3917,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3917,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3921,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3927,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3931,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3935,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3935,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3940,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3944,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 167
    argCount: 3
    argNames:
    - fp
    - oObj
    - nDepth
    argTypes:
    - VSILFILE*
    - CPLJSONObject
    - int
    constantsTouched: []
    func_position:
      end: 3947
      start: 3621
    functionDepth: 1
    functionLinenumber: 3621
    functionLinenumberEnd: 3947
    functionName: ISIS3Dataset::SerializeAsPDL
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 3
    functionsReached:
    - GetObj
    - VSIFTellL
    - STARTS_WITH
    - CPLJSONObject::GetType
    - CPLString::c_str
    - CPLString::size
    - CPLJSONObject::ToInteger
    - strlen
    - GetName
    - CPLJSONObject::ToString
    - VSIFPrintfL
    - static_cast<int>
    - ToString
    - CPLSPrintf
    - CPLString::replaceAll
    - GetType
    - strstr
    - CPLString::append
    - CPLJSONObject::GetChildren
    - EQUAL
    - strchr
    - VSIFWriteL
    - ISIS3Dataset::SerializeAsPDL
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: void
    signature: "void ISIS3Dataset::SerializeAsPDL(VSILFILE *fp, const CPLJSONObject
      &oObj,\n                                  int nDepth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3960,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3965,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3976,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3977,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3977,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3979,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3989,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3992,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:3993,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4000,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4002,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4004,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4005,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4005,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4008,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4009,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4009,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4010,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4014,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4016,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4018,1
    - Dst: static_cast<GDALDriver *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4020,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4020,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4023,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4024,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4029,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4033,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4034,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4035,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4036,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4037,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4044,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4046,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4052,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4053,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4057,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4060,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4065,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4069,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4069,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4071,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4074,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4075,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4076,1
    - Dst: ISIS3Dataset::ISIS3Dataset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4081,1
    - Dst: ISIS3Dataset*::SetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4082,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4086,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4096,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4098,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4100,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4102,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4103,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4105,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4107,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4108,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4110,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4112,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4114,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4118,1
    - Dst: ISIS3Dataset*::m_poExternalDS::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4134,1
    - Dst: ISIS3WrapperRasterBand::ISIS3WrapperRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4133,1
    - Dst: ISISTiledBand::ISISTiledBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4139,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4152,1
    - Dst: ISIS3RawRasterBand::ISIS3RawRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4153,1
    - Dst: ISIS3Dataset*::SetBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4161,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4162,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 4166
      start: 3953
    functionDepth: 2
    functionLinenumber: 3953
    functionLinenumberEnd: 4166
    functionName: ISIS3Dataset::Create
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - ISIS3RawRasterBand::ISIS3RawRasterBand
    - ISIS3Dataset*::SetBand
    - CSLAddString
    - GDALRasterBand*::SetNoDataValue
    - ISIS3WrapperRasterBand::ISIS3WrapperRasterBand
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - CSLFetchNameValue
    - CPLGetExtensionSafe
    - ISIS3Dataset*::m_poExternalDS::GetRasterBand
    - ISISTiledBand::ISISTiledBand
    - ISIS3Dataset*::SetDescription
    - static_cast<GDALDriver *>
    - std::move
    - CPLFetchBool
    - ISIS3Dataset::ISIS3Dataset
    - CPLSPrintf
    - GDALGetDriverByName
    - GDALDriver*::Create
    - VSIFCloseL
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - CSLDestroy
    - EQUAL
    - VSIGetLastErrorMsg
    - CSLSetNameValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *ISIS3Dataset::Create(const char *pszFilename, int nXSize,\n
      \                                 int nYSize, int nBandsIn, GDALDataType eType,\n
      \                                 char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4174,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4175,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4175,1
    - Dst: reinterpret_cast<VRTDataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4177,1
    - Dst: VRTDataset*::GetSingleSimpleSource
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - poSrcDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 4182
      start: 4172
    functionDepth: 0
    functionLinenumber: 4172
    functionLinenumberEnd: 4182
    functionName: GetUnderlyingDataset
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 2
    functionsReached:
    - GDALGetDriverByName
    - GDALDataset*::GetDriver
    - reinterpret_cast<VRTDataset *>
    - VRTDataset*::GetSingleSimpleSource
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetUnderlyingDataset(GDALDataset *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4196,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4199,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4200,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4200,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4201,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4203,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4205,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4209,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4211,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4218,1
    - Dst: reinterpret_cast<ISIS3Dataset *>
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4219,1
    - Dst: ISIS3Dataset::Create
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4220,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4223,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4226,1
    - Dst: ISIS3Dataset*::SetGeoTransform
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4231,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4234,1
    - Dst: ISIS3Dataset*::SetSpatialRef
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4237,1
    - Dst: ISIS3Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4244,1
    - Dst: ISIS3Dataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4248,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4254,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4255,1
    - Dst: ISIS3Dataset*::SetMetadata
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4262,1
    - Dst: GDALDatasetCopyWholeRaster
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4269,1
    - Dst: ISIS3Dataset*::FlushCache
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4271,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4280
      start: 4188
    functionDepth: 3
    functionLinenumber: 4188
    functionLinenumberEnd: 4280
    functionName: ISIS3Dataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ISIS3Dataset *>
    - ISIS3Dataset*::SetGeoTransform
    - strcmp
    - CPLError
    - GDALDataset*::GetRasterCount
    - ISIS3Dataset*::SetSpatialRef
    - CPL_TO_BOOL
    - GDALDataset*::GetDescription
    - ISIS3Dataset*::SetMetadata
    - ISIS3Dataset*::FlushCache
    - GDALDataset*::GetSpatialRef
    - ISIS3Dataset::Create
    - GDALDataset*::GetGeoTransform
    - GDALDatasetCopyWholeRaster
    - GDALDataset*::GetRasterBand
    - GetUnderlyingDataset
    - CPLResetExtensionSafe
    - CSLFetchNameValueDef
    - EQUAL
    - ISIS3Dataset*::GetRasterBand
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *ISIS3Dataset::CreateCopy(const char *pszFilename,\n                                      GDALDataset
      *poSrcDS, int /*bStrict*/,\n                                      char **papszOptions,\n
      \                                     GDALProgressFunc pfnProgress,\n                                      void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4289,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4292,1
    - Dst: ISIS3DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4293,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/isis3dataset.cpp:4299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4300
      start: 4286
    functionDepth: 1
    functionLinenumber: 4286
    functionLinenumberEnd: 4300
    functionName: GDALRegister_ISIS3
    functionSourceFile: /src/gdal/frmts/pds/isis3dataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - ISIS3DriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_ISIS3()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: PDS4GetEmbeddedTemplate
    functionSourceFile: /src/gdal/frmts/pds/embedded_resources.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *PDS4GetEmbeddedTemplate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: VICARGetEmbeddedConf
    functionSourceFile: /src/gdal/frmts/pds/embedded_resources.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *VICARGetEmbeddedConf(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:27,1
    - Dst: NASAKeywordHandler::NASAKeywordHandler
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:29,1
    - Dst: NASAKeywordHandler::Ingest
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:30,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:39,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:40,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:42,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:43,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:43,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:45,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - pszHdr
    - fp
    - osVICARHeader
    argTypes:
    - char*
    - VSILFILE*
    - std::string
    constantsTouched: []
    func_position:
      end: 53
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 53
    functionName: GetVICARLabelOffsetFromPDS3
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - NASAKeywordHandler::NASAKeywordHandler
    - std::string::size
    - std::string::find
    - VSIFSeekL
    - std::string::resize
    - VSIFReadL
    - static_cast<vsi_l_offset>
    - NASAKeywordHandler::Ingest
    linkageType: ''
    returnType: vsi_l_offset
    signature: "vsi_l_offset GetVICARLabelOffsetFromPDS3(const char *pszHdr, VSILFILE
      *fp,\n                                         std::string &osVICARHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:66,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:67,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:76,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:76,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:77,1
    - Dst: GetVICARLabelOffsetFromPDS3
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:78,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: PDSDriverIdentify
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GetVICARLabelOffsetFromPDS3
    - CPLTestBool
    - CPLDebug
    - strstr
    - STARTS_WITH
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int PDSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:94,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:96,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:97,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:98,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: PDSDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void PDSDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:110,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:117,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:118,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:119,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:122,1
    - Dst: HasProductSomethingRootElement
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:129,1
    - Dst: HasPDS4Schema
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:131,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:144,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 148
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 148
    functionName: PDS4DriverIdentify
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - STARTS_WITH_CI
    - HasPDS4Schema
    - HasProductSomethingRootElement
    - strstr
    linkageType: ''
    returnType: int
    signature: int PDS4DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:158,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:160,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:161,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:162,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:163,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:165,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:167,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:169,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:170,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:171,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:174,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:175,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:176,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:177,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:178,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:180,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:198,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:275,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:313,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:316,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:319,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:320,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:321,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:323,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 325
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 325
    functionName: PDS4DriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void PDS4DriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: ISIS2DriverIdentify
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int ISIS2DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:348,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:349,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:350,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:352,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:353,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: ISIS2DriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void ISIS2DriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: ISIS3DriverIdentify
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int ISIS3DriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:378,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:379,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:380,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:382,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:383,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:384,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:385,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:387,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:388,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:461,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:462,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 464
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 464
    functionName: ISIS3DriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void ISIS3DriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:474,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:478,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:479,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:480,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:481,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:482,1
    - Dst: GetVICARLabelOffsetFromPDS3
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:495,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:498,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:507,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:510,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:511,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:512,1
    - Dst: HasFoundVICARKeywords
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:515,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:520,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:523,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:524,1
    - Dst: GetVICARLabelOffsetFromPDS3
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:526,1
    - Dst: HasFoundVICARKeywords
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:528,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:528,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:536,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 27
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 537
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 537
    functionName: VICARGetLabelOffset
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GetVICARLabelOffsetFromPDS3
    - GDALGetDriverByName
    - HasFoundVICARKeywords
    - GDALOpenInfo*::IsSingleAllowedDriver
    - atoi
    - strstr
    - static_cast<vsi_l_offset>
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: vsi_l_offset
    signature: vsi_l_offset VICARGetLabelOffset(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARGetLabelOffset
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:545,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: VICARDriverIdentify
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - VICARGetLabelOffset
    - static_cast<vsi_l_offset>
    linkageType: ''
    returnType: int
    signature: int VICARDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:554,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:555,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:556,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:557,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:558,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:559,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:560,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:562,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:605,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:606,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 608
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 608
    functionName: VICARDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void VICARDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:617,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:622,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:624,1
    - Dst: PDSDriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:627,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:628,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:631,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:633,1
    - Dst: PDS4DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:636,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:637,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:640,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:642,1
    - Dst: ISIS2DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:645,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:646,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:649,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:651,1
    - Dst: ISIS3DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:654,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:655,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:658,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:660,1
    - Dst: VICARDriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:663,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdrivercore.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 666
    functionName: DeclareDeferredPDSPlugin
    functionSourceFile: /src/gdal/frmts/pds/pdsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - ISIS3DriverSetCommonMetadata
    - PDSDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - ISIS2DriverSetCommonMetadata
    - VICARDriverSetCommonMetadata
    - auto::SetMetadataItem
    - PDS4DriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredPDSPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: PDSDataset::PDSDataset
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void PDSDataset::PDSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDSDataset::Close
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: PDSDataset::~PDSDataset()
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - PDSDataset::Close
    linkageType: ''
    returnType: void
    signature: void PDSDataset::~PDSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:152,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:156,1
    - Dst: PDSDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:160,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 165
    functionName: PDSDataset::Close
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRAPISpyFileClose
    - PDSDataset::CloseDependentDatasets
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDSDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: PDSDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PDSDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLInsertStrings
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:204,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:205,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:208,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: PDSDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLInsertStrings
    - CSLAddString
    - CSLDestroy
    - empty
    linkageType: ''
    returnType: char
    signature: char **PDSDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildOverviews
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:228,1
    - Dst: GDALGeoPackageDataset::IBuildOverviews
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nListBands
    - panBandList
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - int*
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: PDSDataset::IBuildOverviews
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - BuildOverviews
    - GDALGeoPackageDataset::IBuildOverviews
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PDSDataset::IBuildOverviews(const char *pszResampling, int
      nOverviews,\n                                   const int *panOverviewList,
      int nListBands,\n                                   const int *panBandList,\n
      \                                  GDALProgressFunc pfnProgress,\n                                   void
      *pProgressData,\n                                   CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RasterIO
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:251,1
    - Dst: RawDataset::IRasterIO
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: PDSDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - RasterIO
    - RawDataset::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PDSDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int nYOff,\n
      \                            int nXSize, int nYSize, void *pData, int nBufXSize,\n
      \                            int nBufYSize, GDALDataType eBufType,\n                             int
      nBandCount, BANDMAP_TYPE panBandMap,\n                             GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                             GSpacing nBandSpace,\n
      \                            GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:268,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: PDSDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *PDSDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:282,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: PDSDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PDSDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:299,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:299,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:300,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:300,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:316,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:318,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:319,1
    - Dst: PDSDataset::GetKeywordUnit
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:322,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:324,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:324,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:325,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:329,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:378,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:379,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:390,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:391,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:404,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:404,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:407,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:408,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:442,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:443,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:477,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:477,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:480,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:481,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:483,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:484,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:485,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:487,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:489,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:491,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:493,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:495,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:497,1
    - Dst: OGRSpatialReference::SetMercator2SP
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:501,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:506,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:509,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:511,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:513,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:516,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:518,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:520,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:522,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:526,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:528,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:531,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:533,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:535,1
    - Dst: OGRSpatialReference::SetCEA
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:537,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:539,1
    - Dst: OGRSpatialReference::SetMollweide
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:541,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:543,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:545,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:548,1
    - Dst: OGRSpatialReference::SetBonne
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:550,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:552,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:554,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:556,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:579,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:582,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:586,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:587,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:595,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:604,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:619,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:620,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:621,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:626,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:634,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:638,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:639,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:640,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:641,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:642,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:646,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:649,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:654,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:663,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:669,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:675,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:682,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:683,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:685,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:687,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:687,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:690,1
    - Dst: importFromESRI
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:694,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:695,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:739,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:742,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 140
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 743
    functionName: PDSDataset::ParseSRS
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetMollweide
    - OGRSpatialReference::SetGeogCS
    - OGRSpatialReference::SetCEA
    - PDSDataset::GetKeyword
    - CPLDebug
    - OGRSpatialReference::SetAxisMappingStrategy
    - GDALReadWorldFile
    - std::string::c_str
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetMercator2SP
    - PDSDataset::CleanString
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - CPLString::c_str
    - std::move
    - strlen
    - CPLFormCIFilenameSafe
    - OGRSpatialReference::SetOrthographic
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::SetPS
    - CPLString::Printf
    - OGRSpatialReference::SetGnomonic
    - VSIFOpenL
    - OGRSpatialReference::SetProjCS
    - OGRSpatialReference::SetEquirectangular2
    - importFromESRI
    - PDSDataset::GetKeywordUnit
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetPathSafe
    - VSIFCloseL
    - CPLGetBasenameSafe
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetBonne
    - fabs
    - OGRSpatialReference::SetMercator
    linkageType: ''
    returnType: void
    signature: void PDSDataset::ParseSRS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawDataset::GetRawBinaryLayout
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 755
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 755
    functionName: PDSDataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - RawDataset::GetRawBinaryLayout
    linkageType: ''
    returnType: bool
    signature: bool PDSDataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:763,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 781
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 781
    functionName: PDSConvertFromHex
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: GUInt32
    signature: GUInt32 PDSConvertFromHex(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:805,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:806,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:808,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:811,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:814,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:817,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:824,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:827,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:830,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:830,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:836,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:836,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:841,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:843,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:844,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:850,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:850,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:852,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:865,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:865,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:866,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:867,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:869,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:873,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:888,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:889,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:893,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:893,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:895,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:895,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:897,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:897,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:899,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:903,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:903,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:905,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:905,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:907,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:907,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:909,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:913,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:913,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:915,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:915,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:917,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:917,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:919,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:923,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:923,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:924,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:924,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:925,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:929,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:930,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:935,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:936,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:940,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:944,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:948,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:950,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:951,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:957,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:957,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:970,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:971,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:971,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:971,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:973,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:973,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:973,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:981,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:981,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:981,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1001,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1002,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1002,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1003,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1003,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1006,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1006,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1007,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1008,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1009,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1009,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1010,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1011,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1012,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1029,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1030,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1040,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1060,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1067,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1067,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1069,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1069,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1073,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1081,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1090,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1098,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1099,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1101,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1102,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1103,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1106,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1106,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1108,1
    - Dst: PDSDataset::GetKeywordSub
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1108,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1111,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1112,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1113,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1116,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1116,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1117,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1118,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1119,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1120,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1130,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1138,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1139,1
    - Dst: PDSConvertFromHex
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1142,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1144,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1148,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1156,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1157,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1174,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1177,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1178,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1178,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1187,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1189,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1189,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1206,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1206,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1212,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1212,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1212,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1215,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1215,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1215,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1215,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1221,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1221,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1221,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1221,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1222,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1223,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1223,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1224,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1225,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1225,1
    - Dst: CPLSM64
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1226,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1223,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1232,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1232,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1232,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1234,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1235,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1235,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1235,1
    - Dst: v
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1234,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1241,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1250,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1252,1
    - Dst: auto::SetStatistics
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1273,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1273,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1273,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1274,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1274,1
    - Dst: auto::SetNoDataValue
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1278,1
    - Dst: auto::SetOffset
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1281,1
    - Dst: auto::SetScale
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1282,1
    - Dst: auto::SetUnitType
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1284,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1286,1
    - Dst: SetBand
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1288,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1288,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 232
    argCount: 2
    argNames:
    - osPrefix
    - osFilenamePrefix
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1292
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 1292
    functionName: PDSDataset::ParseImage
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GetDescription
    - CPLAtofM
    - v
    - PDSDataset::GetKeyword
    - CPLDebug
    - auto::SetNoDataValue
    - auto::SetOffset
    - CPLError
    - static_cast<vsi_l_offset>
    - CPLString::empty
    - PDSDataset::GetKeywordSub
    - CPLString::substr
    - PDSDataset::CleanString
    - CPLSM64
    - auto::SetUnitType
    - CPLString::c_str
    - CPLString::size
    - std::move
    - strlen
    - CPLFormCIFilenameSafe
    - CPLString::back
    - STARTS_WITH_CI
    - c_str
    - static_cast<int>
    - auto::SetStatistics
    - VSIFOpenL
    - strstr
    - CPLString::find
    - PDSConvertFromHex
    - GDALCheckBandCount
    - CPLSM
    - VSIStrerror
    - static_cast<int64_t>
    - auto::SetDescription
    - SetBand
    - CPLGetPathSafe
    - RawRasterBand::Create
    - auto::SetScale
    - GDALCheckDatasetDimensions
    - EQUAL
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int PDSDataset::ParseImage(const CPLString &osPrefix,\n                           const
      CPLString &osFilenamePrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1313,1
    - Dst: GetBlockSize
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poBaseBandIn
    argTypes:
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 1315
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1315
    functionName: PDSWrapperRasterBand::PDSWrapperRasterBand
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterDataType
    - GetBlockSize
    linkageType: ''
    returnType: void
    signature: void PDSWrapperRasterBand(GDALRasterBand *poBaseBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    functionName: PDSWrapperRasterBand::RefUnderlyingRasterBand
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: 'GDALRasterBand *

      PDSWrapperRasterBand::RefUnderlyingRasterBand(bool /*bForceOpen*/) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1332,1
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1332,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1334,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1334,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1336,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1339,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1339,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1344,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1345,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1347,1
    - Dst: SetBand
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1349,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1350,1
    - Dst: PDSWrapperRasterBand::PDSWrapperRasterBand
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1354
    functionName: PDSDataset::ParseCompressedImage
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - SetBand
    - CPLGetPathSafe
    - FromHandle
    - GetRasterXSize
    - GetDescription
    - GetRasterBand
    - PDSDataset::GetKeyword
    - PDSDataset::CleanString
    - GetRasterYSize
    - PDSWrapperRasterBand::PDSWrapperRasterBand
    - GetRasterCount
    - CPLFormFilenameSafe
    - GDALOpen
    linkageType: ''
    returnType: int
    signature: int PDSDataset::ParseCompressedImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDSDriverIdentify
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1362,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1366,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1367,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1369,1
    - Dst: PDSDataset::PDSDataset
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1383,1
    - Dst: PDSDataset*::SetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1384,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1390,1
    - Dst: PDSDataset*::oKeywords::Ingest
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1392,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1395,1
    - Dst: PDSDataset*::m_aosPDSMD::InsertString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1398,1
    - Dst: PDSDataset*::oKeywords::GetJsonObject
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1399,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1402,1
    - Dst: PDSDataset*::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1411,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1414,1
    - Dst: PDSDataset*::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1414,1
    - Dst: PDSDataset::CleanString
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1419,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1419,1
    - Dst: PDSDataset*::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1421,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1426,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1426,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1427,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1429,1
    - Dst: PDSDataset*::GetDescription
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1429,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1431,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1433,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1434,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1436,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1440,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1445,1
    - Dst: PDSDataset*::ParseCompressedImage
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1447,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1462,1
    - Dst: PDSDataset*::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1462,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1463,1
    - Dst: PDSDataset*::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1463,1
    - Dst: PDSDataset*::ParseImage
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1466,1
    - Dst: PDSDataset*::ParseSRS
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1476,1
    - Dst: PDSDataset*::SetMetadataItem
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1504,1
    - Dst: PDSDataset*::TryLoadXML
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1510,1
    - Dst: PDSDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1515,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1518
      start: 1360
    functionDepth: 3
    functionLinenumber: 1360
    functionLinenumberEnd: 1518
    functionName: PDSDataset::Open
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - PDSDataset*::SetMetadataItem
    - PDSDataset*::oOvManager::Initialize
    - PDSDataset*::GetDescription
    - PDSDataset*::oKeywords::Ingest
    - CPLError
    - VSIStatExL
    - CPLString::empty
    - PDSDataset*::m_aosPDSMD::InsertString
    - PDSDataset*::ParseCompressedImage
    - PDSDataset::CleanString
    - PDSDataset::PDSDataset
    - PDSDataset*::TryLoadXML
    - std::move
    - strlen
    - PDSDataset*::ParseSRS
    - static_cast<int>
    - strstr
    - PDSDataset*::oKeywords::GetJsonObject
    - CPLFormFilenameSafe
    - CPLGetPathSafe
    - PDSDataset*::ParseImage
    - PDSDriverIdentify
    - VSIFCloseL
    - PDSDataset*::GetKeyword
    - PDSDataset*::SetDescription
    - EQUAL
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *PDSDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDSDataset::GetKeyword
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1528,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osPath
    - pszDefault
    argTypes:
    - std::string
    - char*
    constantsTouched: []
    func_position:
      end: 1529
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1529
    functionName: PDSDataset::GetKeyword
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 4
    functionsReached:
    - std::string::c_str
    - PDSDataset::GetKeyword
    linkageType: ''
    returnType: char
    signature: "char *PDSDataset::GetKeyword(const std::string &osPath,\n                                   const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1550,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1553,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1554,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - osPath
    - iSubscript
    - pszDefault
    argTypes:
    - std::string
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1559
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1559
    functionName: PDSDataset::GetKeywordSub
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 1
    functionsReached:
    - CSLCount
    - c_str
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: "char *PDSDataset::GetKeywordSub(const std::string &osPath, int iSubscript,\n
      \                                     const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1577,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1580,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1581,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pszPath
    - iSubscript
    - pszDefault
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1586
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1586
    functionName: PDSDataset::GetKeywordUnit
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 1
    functionsReached:
    - CSLCount
    - c_str
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: "char *PDSDataset::GetKeywordUnit(const char *pszPath, int iSubscript,\n
      \                                      const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1597,1
    - Dst: CPLString::at
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1598,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1598,1
    - Dst: CPLString::at
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1599,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1599,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1604,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - osInput
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1615
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1615
    functionName: PDSDataset::CleanString
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 4
    functionsReached:
    - CPLString::back
    - CPLString::size
    - CPLString::at
    - strlen
    - CPLFree
    linkageType: ''
    returnType: CPLString
    signature: CPLString PDSDataset::CleanString(const CPLString &osInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1624
    functionName: PDSDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **PDSDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1632,1
    - Dst: List
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1634,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1637
    functionName: PDSDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALPamDataset::GetMetadata
    - List
    linkageType: ''
    returnType: char
    signature: char **PDSDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1646,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1649,1
    - Dst: PDSDriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1650,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1654,1
    - Dst: GDALRegister_ISIS3
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1657,1
    - Dst: GDALRegister_ISIS2
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1658,1
    - Dst: GDALRegister_PDS4
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1659,1
    - Dst: GDALRegister_VICAR
      Src: /src/gdal/frmts/pds/pdsdataset.cpp:1660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1662
    functionName: GDALRegister_PDS
    functionSourceFile: /src/gdal/frmts/pds/pdsdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALRegister_PDS4
    - PDSDriverSetCommonMetadata
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - GDALRegister_VICAR
    - GDALRegister_ISIS2
    - GDALRegister_ISIS3
    linkageType: ''
    returnType: void
    signature: void GDALRegister_PDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: VICARDataset::GetLayerCount
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/frmts/pds/vicardataset.h:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: VICARDataset::GetLayer
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer(int i) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: '&GetJsonObject() const'
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject &GetJsonObject() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: VICARKeywordHandler::VICARKeywordHandler
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 0
    functionsReached:
    - Deinit
    linkageType: ''
    returnType: void
    signature: void VICARKeywordHandler::VICARKeywordHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: VICARKeywordHandler::~VICARKeywordHandler()
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void VICARKeywordHandler::~VICARKeywordHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:60,1
    - Dst: isspace
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:73,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:73,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:80,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:80,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:92,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:93,1
    - Dst: VICARKeywordHandler::Parse
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:105,1
    - Dst: VICARDataset::GetSpacings
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:118,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:124,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:125,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:125,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:126,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:127,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:127,1
    - Dst: simple_max
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:133,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:148,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:148,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:150,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:153,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:155,1
    - Dst: strchr
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:161,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:163,1
    - Dst: isspace
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:167,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:167,1
    - Dst: strchr
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:169,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:172,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:174,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:177,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:177,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:178,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:179,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:183,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:186,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:188,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:194,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:194,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:197,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:198,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:200,1
    - Dst: VICARKeywordHandler::Parse
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:201,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 2
    argNames:
    - fp
    - pabyHeader
    argTypes:
    - VSILFILE*
    - GByte*
    constantsTouched: []
    func_position:
      end: 202
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 202
    functionName: VICARKeywordHandler::Ingest
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 0
    functionsReached:
    - std::string::assign
    - CPLError
    - static_cast<vsi_l_offset>
    - simple_max
    - static_cast<unsigned char>
    - isspace
    - CPLAtoGIntBig
    - c_str
    - static_cast<int>
    - VSIFSeekL
    - strstr
    - VSIFReadL
    - static_cast<size_t>
    - CSLFetchNameValueDef
    - CSLDestroy
    - EQUAL
    - strchr
    - VSIFree
    - VICARKeywordHandler::Parse
    - VICARDataset::GetSpacings
    linkageType: ''
    returnType: bool
    signature: bool VICARKeywordHandler::Ingest(VSILFILE *fp, const GByte *pabyHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:213,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:214,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:215,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:219,1
    - Dst: VICARKeywordHandler::ReadPair
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:222,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:222,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:225,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:228,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:231,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:233,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:235,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:238,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:240,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:244,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:247,1
    - Dst: Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:251,1
    - Dst: Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 255
    functionName: VICARKeywordHandler::Parse
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 1
    functionsReached:
    - VICARKeywordHandler::ReadPair
    - CPLJSONObject
    - empty
    - Add
    - CPLJSONObject::CPLJSONObject
    - EQUAL
    - CPLJSONObject::Add
    - CSLSetNameValue
    linkageType: ''
    returnType: bool
    signature: bool VICARKeywordHandler::Parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:268,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:269,1
    - Dst: VICARKeywordHandler::ReadName
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:271,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:287,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:288,1
    - Dst: VICARKeywordHandler::ReadValue
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:289,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:291,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:296,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:298,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:300,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:300,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:304,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:304,1
    - Dst: VICARKeywordHandler::ReadValue
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:316,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:318,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:318,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:322,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:324,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:326,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:326,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:330,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:330,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - osName
    - osValue
    - oCur
    argTypes:
    - CPLString
    - CPLString
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 336
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 336
    functionName: VICARKeywordHandler::ReadPair
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 1
    functionsReached:
    - CPLAtof
    - CPLJSONArray::CPLJSONArray
    - atoi
    - CPLGetValueType
    - VICARKeywordHandler::ReadValue
    - CPLString::clear
    - EQUAL
    - VICARKeywordHandler::ReadName
    - CPLJSONObject::Add
    - CPLString::empty
    - CPLJSONArray::Add
    linkageType: ''
    returnType: bool
    signature: "bool VICARKeywordHandler::ReadPair(CPLString &osName, CPLString &osValue,\n
      \                                  CPLJSONObject &oCur)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:345,1
    - Dst: VICARKeywordHandler::SkipWhite
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:347,1
    - Dst: isspace
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:352,1
    - Dst: VICARKeywordHandler::SkipWhite
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:360,1
    - Dst: VICARKeywordHandler::SkipWhite
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - osWord
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 369
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 369
    functionName: VICARKeywordHandler::ReadName
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 1
    functionsReached:
    - isspace
    - CPLString::clear
    - VICARKeywordHandler::SkipWhite
    linkageType: ''
    returnType: bool
    signature: bool VICARKeywordHandler::ReadName(CPLString &osWord)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:379,1
    - Dst: VICARKeywordHandler::SkipWhite
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:381,1
    - Dst: isspace
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:411,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:422,1
    - Dst: VICARKeywordHandler::SkipWhite
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - osWord
    - bInList
    - bIsString
    argTypes:
    - CPLString
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 430
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 430
    functionName: VICARKeywordHandler::ReadValue
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 1
    functionsReached:
    - isspace
    - CPLString::clear
    - CPLGetValueType
    - VICARKeywordHandler::SkipWhite
    linkageType: ''
    returnType: bool
    signature: "bool VICARKeywordHandler::ReadValue(CPLString &osWord, bool bInList,\n
      \                                   bool &bIsString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/gdal/frmts/pds/vicarkeywordhandler.cpp:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: VICARKeywordHandler::SkipWhite
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 2
    functionsReached:
    - isspace
    linkageType: ''
    returnType: void
    signature: void VICARKeywordHandler::SkipWhite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pszPath
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: VICARKeywordHandler::GetKeyword
    functionSourceFile: /src/gdal/frmts/pds/vicarkeywordhandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *VICARKeywordHandler::GetKeyword(const char *pszPath,\n                                            const
      char *pszDefault) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4TableBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:62,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4dataset.h:75,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/frmts/pds/pds4dataset.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 94
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - CPLString::c_str
    - OGRFeatureDefn*::GetFieldCount
    - PDS4TableBaseLayer
    linkageType: ''
    returnType: class PDS4TableBaseLayer
    signature: class PDS4TableBaseLayer CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4FixedWidthTable
      Src: /src/gdal/frmts/pds/pds4dataset.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 156
    functionName: PDS4TableBaseLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 1
    functionsReached:
    - PDS4FixedWidthTable
    linkageType: ''
    returnType: class PDS4FixedWidthTable
    signature: class PDS4FixedWidthTable PDS4TableBaseLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: PDS4TableCharacter::GetSubType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetSubType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4TableCharacter::PDS4TableCharacter
      Src: /src/gdal/frmts/pds/pds4dataset.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: PDS4TableCharacter::NewLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4TableCharacter::PDS4TableCharacter
    linkageType: ''
    returnType: PDS4FixedWidthTable
    signature: "PDS4FixedWidthTable *NewLayer(PDS4Dataset *poDS, const char *pszName,\n
      \                                 const char *pszFilename) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: PDS4TableBinary::GetSubType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetSubType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4TableBinary::PDS4TableBinary
      Src: /src/gdal/frmts/pds/pds4dataset.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: PDS4TableBinary::NewLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4TableBinary::PDS4TableBinary
    linkageType: ''
    returnType: PDS4FixedWidthTable
    signature: "PDS4FixedWidthTable *NewLayer(PDS4Dataset *poDS, const char *pszName,\n
      \                                 const char *pszFilename) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4DelimitedTable
      Src: /src/gdal/frmts/pds/pds4dataset.h:246,1
    - Dst: PDS4DelimitedTable::PDS4DelimitedTable
      Src: /src/gdal/frmts/pds/pds4dataset.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 270
    functionName: PDS4TableBaseLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 1
    functionsReached:
    - PDS4DelimitedTable::PDS4DelimitedTable
    - PDS4DelimitedTable
    linkageType: ''
    returnType: class PDS4DelimitedTable
    signature: class PDS4DelimitedTable PDS4TableBaseLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psFAO
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: PDS4EditableLayer::RefreshFileAreaObservational
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: void
    signature: void RefreshFileAreaObservational(CPLXMLNode *psFAO)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: PDS4EditableLayer::GetFileName
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: char
    signature: char *GetFileName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PDS4EditableLayer::IsDirtyHeader
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: bool
    signature: bool IsDirtyHeader() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: PDS4EditableLayer::GetRawFieldCount
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: int
    signature: int GetRawFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4dataset.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: PDS4EditableLayer::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: char
    signature: char **GetFileList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4dataset.h:392,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4dataset.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: PDS4Dataset::GetLayerCount
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 3
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4Dataset::OpenInternal
      Src: /src/gdal/frmts/pds/pds4dataset.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: PDS4Dataset::Open
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 2
    functionsReached:
    - PDS4Dataset::OpenInternal
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: PDS4Dataset::GetOpenOptions
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *const *GetOpenOptions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: PDS4Dataset::MarkHeaderDirty
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MarkHeaderDirty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: ~PDS4RawRasterBand()
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PDS4RawRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.h:476,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: PDS4RawRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - c_str
    - static_cast<PDS4Dataset *>
    linkageType: ''
    returnType: char
    signature: char *GetUnitType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszUnits
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: PDS4RawRasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - static_cast<PDS4Dataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetUnitType(const char *pszUnits) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: PDS4WrapperRasterBand::RefUnderlyingRasterBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: "GDALRasterBand *\n    RefUnderlyingRasterBand(bool /*bForceOpen*/)
      const override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: ~PDS4WrapperRasterBand()
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PDS4WrapperRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.h:539,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4dataset.h:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: PDS4WrapperRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - c_str
    - static_cast<PDS4Dataset *>
    linkageType: ''
    returnType: char
    signature: char *GetUnitType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PDS4Dataset *>
      Src: /src/gdal/frmts/pds/pds4dataset.h:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszUnits
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: PDS4WrapperRasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached:
    - static_cast<PDS4Dataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetUnitType(const char *pszUnits) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: PDS4WrapperRasterBand::GetMaskFlags
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaskFlags() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: PDS4WrapperRasterBand::GetMaskBand
    functionSourceFile: /src/gdal/frmts/pds/pds4dataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetMaskBand() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: ISIS2Dataset::ISIS2Dataset
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void ISIS2Dataset::ISIS2Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS2Dataset::Close
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: ISIS2Dataset::~ISIS2Dataset()
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - ISIS2Dataset::Close
    linkageType: ''
    returnType: void
    signature: void ISIS2Dataset::~ISIS2Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:109,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:113,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: ISIS2Dataset::Close
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRAPISpyFileClose
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS2Dataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:131,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: ISIS2Dataset::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - empty
    linkageType: ''
    returnType: char
    signature: char **ISIS2Dataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:143,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: ISIS2Dataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *ISIS2Dataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:157,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: ISIS2Dataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ISIS2Dataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS2DriverIdentify
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:173,1
    - Dst: std::make_unique<ISIS2Dataset>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:179,1
    - Dst: auto::oKeywords::Ingest
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:181,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:183,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:187,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:204,1
    - Dst: auto::CleanString
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:206,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:207,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:212,1
    - Dst: auto::GetKeywordSub
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:213,1
    - Dst: auto::CleanString
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:214,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:215,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:218,1
    - Dst: auto::GetKeywordSub
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:218,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:219,1
    - Dst: auto::GetKeywordSub
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:219,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:224,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:225,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:244,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:261,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:262,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:263,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:264,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:265,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:265,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:269,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:290,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:296,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:297,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:298,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:299,1
    - Dst: strstr
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:341,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:350,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:351,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:354,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:354,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:355,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:355,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:362,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:363,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:373,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:374,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:382,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:386,1
    - Dst: auto::CleanString
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:387,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:421,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:422,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:425,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:425,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:427,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:433,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:434,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:436,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:439,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:441,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:443,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:444,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:446,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:448,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:450,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:452,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:454,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:456,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:458,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:460,1
    - Dst: OGRSpatialReference::OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:466,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:473,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:475,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:483,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:492,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:504,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:505,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:506,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:511,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:523,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:526,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:527,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:535,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:542,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:553,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:555,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:564,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:570,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:576,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:587,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:588,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:604,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:606,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:610,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:612,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:612,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:625,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:635,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:643,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:654,1
    - Dst: RawRasterBand::Create
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:662,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:663,1
    - Dst: auto::SetNoDataValue
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:673,1
    - Dst: auto::SetOffset
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:676,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:676,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:676,1
    - Dst: auto::SetScale
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:677,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:678,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:678,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:680,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:680,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:686,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:687,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:688,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:690,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:690,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:693,1
    - Dst: auto::m_oSRS::importFromESRI
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:697,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:699,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:714,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:718,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:724,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:725,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:730,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:730,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:732,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 226
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 733
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 733
    functionName: ISIS2Dataset::Open
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - auto::SetBand
    - std::make_unique<ISIS2Dataset>
    - atoi
    - OGRSpatialReference::SetGeogCS
    - CPLAtofM
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLDebug
    - auto::get
    - ISIS2DriverIdentify
    - auto::SetNoDataValue
    - CPLError
    - auto::CleanString
    - static_cast<vsi_l_offset>
    - auto::SetOffset
    - std::string::c_str
    - GDALReadWorldFile
    - auto::oKeywords::Ingest
    - auto::GetKeywordSub
    - CPLString::c_str
    - auto::GetKeyword
    - OGRSpatialReference::OGRSpatialReference::SetOrthographic
    - strlen
    - OGRSpatialReference::OGRSpatialReference::SetTM
    - CPLFormCIFilenameSafe
    - std::move
    - CPLAtof
    - auto::m_oSRS::importFromESRI
    - static_cast<float>
    - OGRSpatialReference::OGRSpatialReference::SetPS
    - auto::TryLoadXML
    - VSIFOpenL
    - strstr
    - OGRSpatialReference::SetProjCS
    - GDALCheckBandCount
    - VSIStrerror
    - auto::SetDescription
    - OGRSpatialReference::OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetPathSafe
    - RawRasterBand::Create
    - auto::release
    - VSIFCloseL
    - CPLGetBasenameSafe
    - CSLDestroy
    - OGRSpatialReference::OGRSpatialReference::SetLCC
    - GDALCheckDatasetDimensions
    - EQUAL
    - OGRSpatialReference::OGRSpatialReference::SetEquirectangular2
    - OGRSpatialReference::OGRSpatialReference::SetMercator
    - fabs
    - strcpy
    - auto::SetScale
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *ISIS2Dataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISIS2Dataset::GetKeyword
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszPath
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 744
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 744
    functionName: ISIS2Dataset::GetKeyword
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 1
    functionsReached:
    - ISIS2Dataset::GetKeyword
    linkageType: ''
    returnType: char
    signature: "char *ISIS2Dataset::GetKeyword(const char *pszPath,\n                                     const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:765,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:768,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:769,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pszPath
    - iSubscript
    - pszDefault
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 774
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 774
    functionName: ISIS2Dataset::GetKeywordSub
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - CSLCount
    - c_str
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: "char *ISIS2Dataset::GetKeywordSub(const char *pszPath, int iSubscript,\n
      \                                       const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:786,1
    - Dst: CPLString::at
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:787,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:787,1
    - Dst: CPLString::at
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:788,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:788,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:793,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:802,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - osInput
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 803
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 803
    functionName: ISIS2Dataset::CleanString
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::back
    - CPLString::size
    - CPLString::at
    - strlen
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ISIS2Dataset::CleanString(CPLString &osInput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:812,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:815,1
    - Dst: ISIS2DriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:816,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/isis2dataset.cpp:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 821
    functionName: GDALRegister_ISIS2
    functionSourceFile: /src/gdal/frmts/pds/isis2dataset.cpp
    functionUses: 2
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - ISIS2DriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void GDALRegister_ISIS2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:29,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:30,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:32,1
    - Dst: Reference
      Src: /src/gdal/frmts/pds/pds4vector.cpp:33,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:34,1
    - Dst: Reference
      Src: /src/gdal/frmts/pds/pds4vector.cpp:35,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/pds/pds4vector.cpp:36,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/pds4vector.cpp:39,1
    - Dst: GetOpenOptions
      Src: /src/gdal/frmts/pds/pds4vector.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: PDS4TableBaseLayer::PDS4TableBaseLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - CPLFetchBool
    - SetGeomType
    - OGRFeatureDefn::OGRFeatureDefn
    - GetOpenOptions
    - Reference
    - SetDescription
    linkageType: ''
    returnType: void
    signature: "void PDS4TableBaseLayer::PDS4TableBaseLayer(PDS4Dataset *poDS, const
      char *pszName,\n                                       const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/frmts/pds/pds4vector.cpp:48,1
    - Dst: Release
      Src: /src/gdal/frmts/pds/pds4vector.cpp:49,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: PDS4TableBaseLayer::~PDS4TableBaseLayer()
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void PDS4TableBaseLayer::~PDS4TableBaseLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:61,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/pds/pds4vector.cpp:65,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:69,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/pds/pds4vector.cpp:72,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/pds4vector.cpp:77,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/pds/pds4vector.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: PDS4TableBaseLayer::RenameFileTo
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    - VSIUnlink
    - VSIRename
    - VSIFCloseL
    linkageType: ''
    returnType: bool
    signature: bool PDS4TableBaseLayer::RenameFileTo(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:93,1
    - Dst: GetFileName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: PDS4TableBaseLayer::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - GetFileName
    linkageType: ''
    returnType: char
    signature: char **PDS4TableBaseLayer::GetFileList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: PDS4TableBaseLayer::GetFeatureCount
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig PDS4TableBaseLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:118,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:119,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:127,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:129,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:132,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:134,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:137,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:142,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:150,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:152,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:154,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:156,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:167,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:167,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:169,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:170,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:173,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:176,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:185,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:188,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:191,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:205,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:206,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:215,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/pds/pds4vector.cpp:217,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:220,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:223,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:226,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:231,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:237,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:246,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:246,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 249
    functionName: PDS4TableBaseLayer::SetupGeomField
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - SetGeomType
    - GetFieldCount
    - EQUAL
    - AddFieldDefn
    - GetFieldDefn
    - CPLError
    - GetFieldIndex
    linkageType: ''
    returnType: void
    signature: void PDS4TableBaseLayer::SetupGeomField()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:257,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:258,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:258,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:259,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:268,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:268,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/frmts/pds/pds4vector.cpp:279,1
    - Dst: OGRGeometry*::assignSpatialReference
      Src: /src/gdal/frmts/pds/pds4vector.cpp:282,1
    - Dst: GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:282,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/frmts/pds/pds4vector.cpp:283,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/pds/pds4vector.cpp:288,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/pds/pds4vector.cpp:289,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/pds/pds4vector.cpp:294,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/frmts/pds/pds4vector.cpp:297,1
    - Dst: OGRPoint::OGRPoint
      Src: /src/gdal/frmts/pds/pds4vector.cpp:301,1
    - Dst: OGRPoint*::assignSpatialReference
      Src: /src/gdal/frmts/pds/pds4vector.cpp:303,1
    - Dst: GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:303,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/frmts/pds/pds4vector.cpp:304,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - poRawFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 307
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 307
    functionName: PDS4TableBaseLayer::AddGeometryFromFields
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRGeometry*::assignSpatialReference
    - GetSpatialRef
    - OGRFeature*::GetFID
    - OGRPoint*::assignSpatialReference
    - OGRFeature*::GetRawFieldRef
    - GetFieldCount
    - OGRPoint::OGRPoint
    - OGRGeometryFactory::createFromWkt
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4TableBaseLayer::AddGeometryFromFields(OGRFeature *poRawFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:315,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:316,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:325,1
    - Dst: OGRFeature*::GetRawFieldRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:325,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:330,1
    - Dst: wkbFlatten
      Src: /src/gdal/frmts/pds/pds4vector.cpp:334,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:334,1
    - Dst: auto::toPoint
      Src: /src/gdal/frmts/pds/pds4vector.cpp:336,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:337,1
    - Dst: auto::getX
      Src: /src/gdal/frmts/pds/pds4vector.cpp:337,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:338,1
    - Dst: auto::getY
      Src: /src/gdal/frmts/pds/pds4vector.cpp:338,1
    - Dst: auto::getGeometryType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:339,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:341,1
    - Dst: auto::getZ
      Src: /src/gdal/frmts/pds/pds4vector.cpp:341,1
    - Dst: auto::exportToWkt
      Src: /src/gdal/frmts/pds/pds4vector.cpp:347,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:350,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:352,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 356
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 356
    functionName: PDS4TableBaseLayer::AddFieldsFromGeometry
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - auto::getZ
    - auto::toPoint
    - auto::getX
    - wkbFlatten
    - OGRFeature*::GetRawFieldRef
    - GetFieldCount
    - auto::exportToWkt
    - auto::getGeometryType
    - auto::getY
    - OGRFeature*::SetField
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeature*::GetGeometryRef
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4TableBaseLayer::AddFieldsFromGeometry(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4TableBaseLayer::MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: PDS4TableBaseLayer::MarkHeaderDirty
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 1
    functionsReached:
    - PDS4TableBaseLayer::MarkHeaderDirty
    linkageType: ''
    returnType: void
    signature: void PDS4TableBaseLayer::MarkHeaderDirty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:376,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:376,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:377,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:379,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:379,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4vector.cpp:382,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:383,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:386,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:386,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4vector.cpp:389,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:390,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:394,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:399,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:399,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:400,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:401,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:403,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:403,1
    - Dst: CPLRemoveXMLChild
      Src: /src/gdal/frmts/pds/pds4vector.cpp:404,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:405,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:409,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:410,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:411,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:411,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:413,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:416,1
    - Dst: isdigit
      Src: /src/gdal/frmts/pds/pds4vector.cpp:417,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:417,1
    - Dst: isalnum
      Src: /src/gdal/frmts/pds/pds4vector.cpp:423,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:423,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:424,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:428,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:429,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:432,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:432,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:433,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - psFAO
    - osPrefix
    - pszTableEltName
    - osDescription
    argTypes:
    - CPLXMLNode*
    - CPLString
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 437
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 437
    functionName: PDS4TableBaseLayer::RefreshFileAreaObservationalBeginningCommon
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCreateXMLElementAndValue
    - isdigit
    - static_cast<unsigned>
    - CPLRemoveXMLChild
    - CPLCreateXMLNode
    - CPLDestroyXMLNode
    - CPLGetXMLNode
    - static_cast<unsigned char>
    - CPLSPrintf
    - CPLAssert
    - CPLGetXMLValue
    - GetName
    - CPLString::empty
    - CPLAddXMLAttributeAndValue
    - isalnum
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *PDS4TableBaseLayer::RefreshFileAreaObservationalBeginningCommon(\n
      \   CPLXMLNode *psFAO, const CPLString &osPrefix, const char *pszTableEltName,\n
      \   CPLString &osDescription)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: PDS4TableBaseLayer::ParseLineEndingOption
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: void
    signature: void PDS4TableBaseLayer::ParseLineEndingOption(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: PDS4TableBaseLayer::GetDataset
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *PDS4TableBaseLayer::GetDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: PDS4FixedWidthTable::PDS4FixedWidthTable
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PDS4FixedWidthTable::PDS4FixedWidthTable(PDS4Dataset *poDS, const
      char *pszName,\n                                         const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: PDS4FixedWidthTable::ResetReading
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PDS4FixedWidthTable::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4FixedWidthTable::GetFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:501,1
    - Dst: FilterGeometry
      Src: /src/gdal/frmts/pds/pds4vector.cpp:509,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:509,1
    - Dst: Evaluate
      Src: /src/gdal/frmts/pds/pds4vector.cpp:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: PDS4FixedWidthTable::GetNextFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - auto::GetGeometryRef
    - PDS4FixedWidthTable::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4FixedWidthTable::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:525,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:529,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:533,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:535,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:537,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:537,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 542
    functionName: PDS4FixedWidthTable::TestCapability
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int PDS4FixedWidthTable::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:550,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:550,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:554,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:556,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:560,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:560,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:560,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:561,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:561,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:561,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:563,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:563,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/pds4vector.cpp:565,1
    - Dst: AddFieldsFromGeometry
      Src: /src/gdal/frmts/pds/pds4vector.cpp:567,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:568,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/pds/pds4vector.cpp:570,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:576,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:580,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:581,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:581,1
    - Dst: OGRFeature*::GetFieldAsDouble
      Src: /src/gdal/frmts/pds/pds4vector.cpp:582,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:587,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:591,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:596,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:597,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:598,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:603,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:604,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:605,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:610,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:611,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:612,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:617,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:618,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:619,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:625,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:626,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:630,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:631,1
    - Dst: min
      Src: /src/gdal/frmts/pds/pds4vector.cpp:631,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:631,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:632,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:633,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:637,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:637,1
    - Dst: min
      Src: /src/gdal/frmts/pds/pds4vector.cpp:638,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:638,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:639,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:640,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:641,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:645,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:645,1
    - Dst: min
      Src: /src/gdal/frmts/pds/pds4vector.cpp:646,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:646,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:647,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:648,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:649,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:653,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:653,1
    - Dst: min
      Src: /src/gdal/frmts/pds/pds4vector.cpp:654,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:654,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:655,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:656,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:657,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:661,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:661,1
    - Dst: min
      Src: /src/gdal/frmts/pds/pds4vector.cpp:662,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:662,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:663,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:664,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:665,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:669,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:670,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:671,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:672,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:676,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:677,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:678,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:679,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:683,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:684,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:684,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:685,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:686,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:687,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:691,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:692,1
    - Dst: OGRFeature*::GetFieldAsInteger
      Src: /src/gdal/frmts/pds/pds4vector.cpp:692,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:693,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:694,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:695,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:699,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:700,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:701,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:702,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:706,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:707,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:708,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:709,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:713,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:713,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:714,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:714,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:715,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:716,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:717,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:721,1
    - Dst: max
      Src: /src/gdal/frmts/pds/pds4vector.cpp:721,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:722,1
    - Dst: OGRFeature*::GetFieldAsInteger64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:722,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:723,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:724,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:725,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:733,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/frmts/pds/pds4vector.cpp:738,1
    - Dst: static_cast<float *>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:740,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:741,1
    - Dst: OGRFeature*::GetFieldAsDateTime
      Src: /src/gdal/frmts/pds/pds4vector.cpp:747,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:749,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:752,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:753,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:753,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:755,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:756,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:757,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:759,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:763,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:765,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:766,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:767,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:767,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:772,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:774,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:775,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:781,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:783,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:783,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:783,1
    - Dst: data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:784,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:784,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:787,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 146
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 793
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 793
    functionName: PDS4FixedWidthTable::ISetFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::GetFieldAsDateTime
    - OGRFeature*::GetFieldAsInteger64
    - OGRFeature*::GetFieldAsString
    - static_cast<GByte>
    - GetFieldDefn
    - CPLError
    - CPLString::resize
    - CPLString::empty
    - static_cast<GIntBig>
    - static_cast<GUInt16>
    - CPL_MSBPTR16
    - CPL_MSBPTR64
    - OGRFeature*::GetFieldAsDouble
    - OGRFeature*::GetFieldAsInteger
    - static_cast<float *>
    - CPLString::c_str
    - AddFieldsFromGeometry
    - CPLString::size
    - CPLString::data
    - CPL_LSBPTR16
    - static_cast<int>
    - GetAccess
    - CPL_LSBPTR64
    - static_cast<GUInt32>
    - OGRFeature*::GetFID
    - CPLString::Printf
    - VSIFSeekL
    - GetFieldCount
    - static_cast<GInt16>
    - min
    - CPLAssert
    - CPL_MSBPTR32
    - CPLFree
    - data
    - size
    - static_cast<GUInt64>
    - static_cast<size_t>
    - empty
    - max
    - VSIFWriteL
    - memset
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr PDS4FixedWidthTable::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:802,1
    - Dst: PDS4FixedWidthTable::ISetFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:803,1
    - Dst: MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:806,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 814
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 814
    functionName: PDS4FixedWidthTable::ICreateFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - PDS4FixedWidthTable::ISetFeature
    - MarkHeaderDirty
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr PDS4FixedWidthTable::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:826,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:827,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:831,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:832,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:833,1
    - Dst: substr
      Src: /src/gdal/frmts/pds/pds4vector.cpp:835,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:839,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:839,1
    - Dst: CPLString::Trim
      Src: /src/gdal/frmts/pds/pds4vector.cpp:841,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:842,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:851,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:851,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:852,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:852,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:853,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:854,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:859,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:859,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:860,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:860,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:861,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:862,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:867,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:867,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:868,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:868,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:869,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:870,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:875,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:875,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:876,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:876,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:877,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:878,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:883,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:883,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:884,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:884,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:885,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:890,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:890,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:891,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:891,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:892,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:897,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:897,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:898,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:898,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:899,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:900,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:905,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:905,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:906,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:906,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:907,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:908,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:913,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:913,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:914,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:914,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:915,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:916,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:921,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:921,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:922,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:922,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/pds/pds4vector.cpp:923,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:924,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:929,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:929,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:930,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:930,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:931,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:932,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:937,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:937,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:938,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:938,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:939,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:940,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:945,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:945,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:946,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:946,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:947,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:948,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:948,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:953,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:953,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:954,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:954,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/pds/pds4vector.cpp:955,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:956,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:956,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:961,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:961,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:962,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:962,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:963,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:964,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:969,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:969,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:970,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:970,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:971,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:972,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:977,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:977,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:978,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:978,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:979,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:980,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:980,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:985,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:985,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:986,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:986,1
    - Dst: CPL_MSBPTR64
      Src: /src/gdal/frmts/pds/pds4vector.cpp:987,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:988,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:988,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:992,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:993,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:993,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:997,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:997,1
    - Dst: AddGeometryFromFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1000,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 130
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1003
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 1003
    functionName: PDS4FixedWidthTable::GetFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 1
    functionsReached:
    - AddGeometryFromFields
    - STARTS_WITH
    - CPLString::empty
    - static_cast<GIntBig>
    - CPL_MSBPTR16
    - CPL_MSBPTR64
    - CPLString::c_str
    - CPLString::size
    - CPLString::Trim
    - CPLString::data
    - CPL_LSBPTR16
    - CPL_LSBPTR64
    - VSIFSeekL
    - CPLAssert
    - CPL_MSBPTR32
    - VSIFReadL
    - substr
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - EQUAL
    - OGRFeature*::SetField
    - memcpy
    - CPL_LSBPTR32
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4FixedWidthTable::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1017,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1022,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1023,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1027,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1031,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1032,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1036,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1037,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1043,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1044,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1051,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1052,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1058,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1059,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1065,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1066,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1073,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1074,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1080,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1081,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1088,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1092,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1093,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1099,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1100,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1107,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 70
    argCount: 4
    argNames:
    - pszDataType
    - nDTSize
    - eSubType
    - error
    argTypes:
    - char*
    - int
    - OGRFieldSubType
    - bool
    constantsTouched: []
    func_position:
      end: 1112
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1112
    functionName: GetFieldTypeFromPDS4DataType
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRFieldType
    signature: "OGRFieldType GetFieldTypeFromPDS4DataType(const char *pszDataType,\n
      \                                                int nDTSize,\n                                                 OGRFieldSubType
      &eSubType,\n                                                 bool &error)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1120,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1121,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1122,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1125,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1126,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1130,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1131,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1131,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1133,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1137,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1139,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1141,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1143,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1145,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1151,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1156,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1156,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1156,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1161,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1161,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1162,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1162,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1165,1
    - Dst: resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1168,1
    - Dst: PDS4FixedWidthTable::ReadFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1169,1
    - Dst: SetupGeomField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - psTable
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1177
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1177
    functionName: PDS4FixedWidthTable::ReadTableDef
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - size
    - c_str
    - static_cast<int>
    - GetAccess
    - atoi
    - CPLGetXMLValue
    - CPLGetXMLNode
    - CPLAtoGIntBig
    - EQUAL
    - VSIFOpenL
    - CPLAssert
    - PDS4FixedWidthTable::ReadFields
    - GetSubType
    - CPLError
    - resize
    - SetupGeomField
    linkageType: ''
    returnType: bool
    signature: bool PDS4FixedWidthTable::ReadTableDef(const CPLXMLNode *psTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1191,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1191,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1191,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1218,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1221,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1224,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1227,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1227,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1230,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1234,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1235,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1240,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1241,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1251,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1255,1
    - Dst: GetFieldTypeFromPDS4DataType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1259,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1263,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1267,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1272,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1274,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1275,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1276,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1278,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1282,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1284,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1284,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1286,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1289,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1290,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1290,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1319,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1325,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1325,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1329,1
    - Dst: PDS4FixedWidthTable::ReadFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1335,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1337,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 82
    argCount: 3
    argNames:
    - psParent
    - nBaseOffset
    - osSuffixFieldName
    argTypes:
    - CPLXMLNode*
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 1345
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1345
    functionName: PDS4FixedWidthTable::ReadFields
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - strcmp
    - CPLGetXMLValue
    - CPLError
    - STARTS_WITH
    - PDS4FixedWidthTable::ReadFields
    - strlen
    - AddFieldDefn
    - c_str
    - static_cast<int>
    - OGRFieldDefn::SetSubType
    - CPLSPrintf
    - GetSubType
    - GetFieldTypeFromPDS4DataType
    - CPLFree
    - size
    - const_cast<CPLXMLNode *>
    - OGRFieldDefn::SetWidth
    - CPLGetXMLNode
    - push_back
    linkageType: ''
    returnType: bool
    signature: "bool PDS4FixedWidthTable::ReadFields(const CPLXMLNode *psParent,\n
      \                                    int nBaseOffset,\n                                     const
      CPLString &osSuffixFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1354,1
    - Dst: RefreshFileAreaObservationalBeginningCommon
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1358,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1359,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1359,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1361,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1361,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1362,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1363,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1364,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1364,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1368,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1369,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1374,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1375,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1379,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1380,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1380,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1381,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1382,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1383,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1383,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1383,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1384,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1384,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1385,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1386,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1387,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1388,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1390,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1390,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1390,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1391,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1393,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1393,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1396,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1399,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1400,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1400,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1402,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1402,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1403,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1405,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1406,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1407,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1409,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1410,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1411,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1412,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1414,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1414,1
    - Dst: auto::m_osDataType::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1415,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1417,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1418,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1419,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1420,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1422,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1426,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1427,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1428,1
    - Dst: auto::m_osUnit::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1431,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1433,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1433,1
    - Dst: m_osUnit::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1434,1
    - Dst: auto::m_osDescription::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1437,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1439,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1440,1
    - Dst: m_osDescription::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1441,1
    - Dst: auto::m_osSpecialConstantsXML::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1443,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1446,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1449,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - psFAO
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1453
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1453
    functionName: PDS4FixedWidthTable::RefreshFileAreaObservational
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - auto::GetType
    - auto::m_osDescription::empty
    - GetFieldDefn
    - STARTS_WITH
    - CPLString::empty
    - CPLCreateXMLElementAndValue
    - CPLAddXMLChild
    - auto::m_osUnit::empty
    - c_str
    - static_cast<int>
    - auto::m_osDataType::c_str
    - RefreshFileAreaObservationalBeginningCommon
    - GetFieldCount
    - CPLSPrintf
    - auto::m_osSpecialConstantsXML::empty
    - CPLParseXMLString
    - CPLAssert
    - GetSubType
    - m_osUnit::c_str
    - auto::GetNameRef
    - CPLAddXMLAttributeAndValue
    - size
    - CPLCreateXMLNode
    - m_osDescription::c_str
    linkageType: ''
    returnType: void
    signature: void PDS4FixedWidthTable::RefreshFileAreaObservational(CPLXMLNode *psFAO)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1462,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1464,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1474,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1476,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1476,1
    - Dst: CreateFieldInternal
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1479,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1479,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1479,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1480,1
    - Dst: MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1485,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1486,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1487,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1488,1
    - Dst: resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - poFieldIn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1493
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1493
    functionName: PDS4FixedWidthTable::CreateField
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - back
    - empty
    - GetAccess
    - CreateFieldInternal
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - AddFieldDefn
    - MarkHeaderDirty
    - push_back
    - CPLError
    - resize
    - OGRFieldDefn*::GetWidth
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr PDS4FixedWidthTable::CreateField(const OGRFieldDefn *poFieldIn,
      int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1504,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1505,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1508,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1509,1
    - Dst: Assign
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1512,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1512,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1518,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1520,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1524,1
    - Dst: wkbFlatten
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1524,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1525,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1526,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1530,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1531,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1532,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1534,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1535,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1536,1
    - Dst: CreateFieldInternal
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1537,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1538,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1543,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1545,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1546,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1549,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1549,1
    - Dst: CreateFieldInternal
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1550,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1551,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1557,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1558,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1559,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1562,1
    - Dst: back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1562,1
    - Dst: CreateFieldInternal
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1563,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1564,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1568,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1570,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1573,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1574,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1575,1
    - Dst: auto::Release
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1576,1
    - Dst: GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1580,1
    - Dst: ParseLineEndingOption
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1582,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1584,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1584,1
    - Dst: resize
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1585,1
    - Dst: MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1588,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - poSRS
    - bForceGeographic
    - eGType
    - papszOptions
    argTypes:
    - OGRSpatialReference*
    - bool
    - OGRwkbGeometryType
    - char**
    constantsTouched: []
    func_position:
      end: 1590
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1590
    functionName: PDS4FixedWidthTable::InitializeNewLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - CreateFieldInternal
    - MarkHeaderDirty
    - CPLError
    - SetGeomType
    - Assign
    - AddFieldDefn
    - wkbFlatten
    - resize
    - c_str
    - static_cast<int>
    - GetFieldCount
    - VSIFOpenL
    - CPLAssert
    - GetSubType
    - auto::SetAxisMappingStrategy
    - OGRSpatialReference*::Clone
    - size
    - back
    - empty
    - ParseLineEndingOption
    - CSLFetchNameValueDef
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - CSLDuplicate
    - push_back
    - auto::Release
    linkageType: ''
    returnType: bool
    signature: "bool PDS4FixedWidthTable::InitializeNewLayer(const OGRSpatialReference
      *poSRS,\n                                             bool bForceGeographic,\n
      \                                            OGRwkbGeometryType eGType,\n                                             const
      char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1602
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1602
    functionName: PDS4TableCharacter::PDS4TableCharacter
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PDS4TableCharacter::PDS4TableCharacter(PDS4Dataset *poDS, const
      char *pszName,\n                                       const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - eType
    - eSubType
    - nWidth
    - f
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    - int
    - Field
    constantsTouched: []
    func_position:
      end: 1684
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1684
    functionName: PDS4TableCharacter::CreateFieldInternal
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool PDS4TableCharacter::CreateFieldInternal(OGRFieldType eType,\n
      \                                            OGRFieldSubType eSubType,\n                                             int
      nWidth, Field &f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1696
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1696
    functionName: PDS4TableBinary::PDS4TableBinary
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PDS4TableBinary::PDS4TableBinary(PDS4Dataset *poDS, const char
      *pszName,\n                                 const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1706,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1707,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1717,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - eType
    - eSubType
    - nWidth
    - f
    argTypes:
    - OGRFieldType
    - OGRFieldSubType
    - int
    - Field
    constantsTouched: []
    func_position:
      end: 1761
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1761
    functionName: PDS4TableBinary::CreateFieldInternal
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLString
    linkageType: ''
    returnType: bool
    signature: "bool PDS4TableBinary::CreateFieldInternal(OGRFieldType eType,\n                                          OGRFieldSubType
      eSubType, int nWidth,\n                                          Field &f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poDS
    - pszName
    - pszFilename
    argTypes:
    - PDS4Dataset*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1773
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1773
    functionName: PDS4DelimitedTable::PDS4DelimitedTable
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PDS4DelimitedTable::PDS4DelimitedTable(PDS4Dataset *poDS, const
      char *pszName,\n                                       const char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4DelimitedTable::GenerateVRT
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1779
    functionDepth: 1
    functionLinenumber: 1779
    functionLinenumberEnd: 1783
    functionName: PDS4DelimitedTable::~PDS4DelimitedTable()
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - PDS4DelimitedTable::GenerateVRT
    linkageType: ''
    returnType: void
    signature: void PDS4DelimitedTable::~PDS4DelimitedTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1791,1
    - Dst: FetchBool
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1796,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1803,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1808,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1809,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1810,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1810,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1812,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1813,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1814,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1816,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1816,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1818,1
    - Dst: OGRVRTGetSerializedGeometryType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1820,1
    - Dst: GetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1820,1
    - Dst: GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1822,1
    - Dst: GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1825,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1828,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1829,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1841,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1843,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1846,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1847,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1848,1
    - Dst: OGR_GetFieldTypeName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1849,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1849,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1850,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1852,1
    - Dst: OGR_GetFieldSubTypeName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1854,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1854,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1856,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1857,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1859,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1861,1
    - Dst: OGRFieldDefn*::GetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1861,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1863,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1864,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1871,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1874,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1875,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1877,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1882,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1885,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1886,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1888,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1889,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1891,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1894,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1896,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1900,1
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1902,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1903,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1789
    functionDepth: 2
    functionLinenumber: 1789
    functionLinenumberEnd: 1904
    functionName: PDS4DelimitedTable::GenerateVRT
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 1
    functionsReached:
    - CPLGetFilename
    - FetchBool
    - CPLSerializeXMLTreeToFile
    - GetFieldDefn
    - OGRFieldDefn*::GetWidth
    - CPLCreateXMLElementAndValue
    - GetGeomType
    - OGRFieldDefn*::GetSubType
    - OGR_GetFieldTypeName
    - GetName
    - GetSpatialRef
    - OGRFieldDefn*::GetNameRef
    - CPLDestroyXMLNode
    - CPLSPrintf
    - OGRFieldDefn*::GetType
    - CPL_IGNORE_RET_VAL
    - CPLFree
    - CPLAddXMLAttributeAndValue
    - VSIStatL
    - CPLCreateXMLNode
    - CPLResetExtensionSafe
    - OGRVRTGetSerializedGeometryType
    - OGR_GetFieldSubTypeName
    linkageType: ''
    returnType: void
    signature: void PDS4DelimitedTable::GenerateVRT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1910
    functionDepth: 1
    functionLinenumber: 1910
    functionLinenumberEnd: 1914
    functionName: PDS4DelimitedTable::ResetReading
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void PDS4DelimitedTable::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1931,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1931,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1933,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1938,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1939,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1941,1
    - Dst: m_osMissingConstant::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1945,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1952,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1952,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1953,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1959,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1963,1
    - Dst: AddGeometryFromFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1965,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1920
    functionDepth: 3
    functionLinenumber: 1920
    functionLinenumberEnd: 1968
    functionName: PDS4DelimitedTable::GetNextFeatureRaw
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - AddGeometryFromFields
    - CSLDestroy
    - GetFieldCount
    - m_osMissingConstant::empty
    - EQUAL
    - OGRFeature*::SetField
    - CSLCount
    - OGRFeature::OGRFeature
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4DelimitedTable::GetNextFeatureRaw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4DelimitedTable::GetNextFeatureRaw
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1978,1
    - Dst: FilterGeometry
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1985,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1985,1
    - Dst: Evaluate
      Src: /src/gdal/frmts/pds/pds4vector.cpp:1986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1974
    functionDepth: 4
    functionLinenumber: 1974
    functionLinenumberEnd: 1992
    functionName: PDS4DelimitedTable::GetNextFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - auto::GetGeometryRef
    - PDS4DelimitedTable::GetNextFeatureRaw
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *PDS4DelimitedTable::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2000,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2000,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2001,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2005,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2009,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2011,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2013,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2018
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2018
    functionName: PDS4DelimitedTable::TestCapability
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int PDS4DelimitedTable::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2026,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2031
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2031
    functionName: PDS4DelimitedTable::QuoteIfNeeded
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString PDS4DelimitedTable::QuoteIfNeeded(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2042,1
    - Dst: List
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2042,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2043,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2044,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2047,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2047,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2053,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2057,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2059,1
    - Dst: PDS4DelimitedTable::QuoteIfNeeded
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2061,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2061,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2064,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2064,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2065,1
    - Dst: AddFieldsFromGeometry
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2068,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2069,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2073,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2075,1
    - Dst: m_osMissingConstant::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2077,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2079,1
    - Dst: PDS4DelimitedTable::QuoteIfNeeded
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2081,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2085,1
    - Dst: PDS4DelimitedTable::QuoteIfNeeded
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2086,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2086,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2088,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2088,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2092,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 2095
      start: 2037
    functionDepth: 3
    functionLinenumber: 2037
    functionLinenumberEnd: 2095
    functionName: PDS4DelimitedTable::ICreateFeature
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - GetFieldDefn
    - OGRFeature*::IsFieldSetAndNotNull
    - OGRFeature*::SetFID
    - VSIFPrintfL
    - c_str
    - CSLFetchNameValueDef
    - OGRFeature*::GetFieldAsString
    - GetFieldCount
    - PDS4DelimitedTable::QuoteIfNeeded
    - AddFieldsFromGeometry
    - std::move
    - AddFieldDefn
    - push_back
    - List
    - VSIFTellL
    - m_osMissingConstant::empty
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr PDS4DelimitedTable::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2104,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2106,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2115,1
    - Dst: OGRFieldDefn*::GetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2123,1
    - Dst: MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2152,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2153,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2153,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2154,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - poFieldIn
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 2158
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2158
    functionName: PDS4DelimitedTable::CreateField
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - GetAccess
    - OGRFieldDefn*::GetType
    - OGRFieldDefn*::GetSubType
    - std::move
    - MarkHeaderDirty
    - push_back
    - CPLError
    - AddFieldDefn
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr PDS4DelimitedTable::CreateField(const OGRFieldDefn *poFieldIn,
      int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2166,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2167,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2171,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2172,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2176,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2177,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2177,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2179,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2179,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2183,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2185,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2187,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2189,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2194,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2204,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2208,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2212,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2216,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2222,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2227,1
    - Dst: PDS4DelimitedTable::ReadFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2232,1
    - Dst: SetupGeomField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2237,1
    - Dst: PDS4DelimitedTable::ResetReading
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2238,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - psTable
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2241
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2241
    functionName: PDS4DelimitedTable::ReadTableDef
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - c_str
    - GetAccess
    - CPLGetXMLValue
    - CPLGetXMLNode
    - CPLAtoGIntBig
    - EQUAL
    - VSIFOpenL
    - CPLAssert
    - CPLError
    - PDS4DelimitedTable::ResetReading
    - SetupGeomField
    - PDS4DelimitedTable::ReadFields
    linkageType: ''
    returnType: bool
    signature: bool PDS4DelimitedTable::ReadTableDef(const CPLXMLNode *psTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2254,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2272,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2273,1
    - Dst: const_cast<CPLXMLNode *>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2275,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2276,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2286,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2289,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2292,1
    - Dst: GetFieldTypeFromPDS4DataType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2297,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2300,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2304,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2310,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2312,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2313,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2314,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2316,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2318,1
    - Dst: strcmp
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2321,1
    - Dst: PDS4DelimitedTable::ReadFields
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2336,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2337,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - psParent
    - osSuffixFieldName
    argTypes:
    - CPLXMLNode*
    - CPLString
    constantsTouched: []
    func_position:
      end: 2345
      start: 2247
    functionDepth: 2
    functionLinenumber: 2247
    functionLinenumberEnd: 2345
    functionName: PDS4DelimitedTable::ReadFields
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - const_cast<CPLXMLNode *>
    - CPLError
    - OGRFieldDefn::SetWidth
    - CPLGetXMLNode
    - OGRFieldDefn::SetSubType
    - CPLSPrintf
    - strcmp
    - AddFieldDefn
    - push_back
    - GetFieldTypeFromPDS4DataType
    - CPLGetXMLValue
    - STARTS_WITH
    - CPLFree
    - PDS4DelimitedTable::ReadFields
    linkageType: ''
    returnType: bool
    signature: "bool PDS4DelimitedTable::ReadFields(const CPLXMLNode *psParent,\n
      \                                   const CPLString &osSuffixFieldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2354,1
    - Dst: RefreshFileAreaObservationalBeginningCommon
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2358,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2361,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2362,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2364,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2364,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2365,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2366,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2367,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2367,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2372,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2373,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2378,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2379,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2382,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2382,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2389,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2390,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2392,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2393,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2394,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2394,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2394,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2396,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2397,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2399,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2399,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2399,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2400,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2409,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2410,1
    - Dst: size
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2410,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2414,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2415,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2419,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2420,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2421,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2423,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2423,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2424,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2426,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2426,1
    - Dst: auto::m_osDataType::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2427,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2432,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2433,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2434,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2435,1
    - Dst: auto::m_osUnit::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2438,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2440,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2440,1
    - Dst: m_osUnit::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2441,1
    - Dst: auto::m_osDescription::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2444,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2446,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2446,1
    - Dst: m_osDescription::c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2447,1
    - Dst: auto::m_osSpecialConstantsXML::empty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2450,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2453,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - psFAO
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 2460
      start: 2351
    functionDepth: 2
    functionLinenumber: 2351
    functionLinenumberEnd: 2460
    functionName: PDS4DelimitedTable::RefreshFileAreaObservational
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - auto::m_osDescription::empty
    - GetFieldDefn
    - STARTS_WITH
    - CPLString::empty
    - auto::c_str
    - CPLCreateXMLElementAndValue
    - CPLAddXMLChild
    - auto::m_osUnit::empty
    - c_str
    - static_cast<int>
    - auto::m_osDataType::c_str
    - RefreshFileAreaObservationalBeginningCommon
    - GetFieldCount
    - CPLSPrintf
    - auto::m_osSpecialConstantsXML::empty
    - CPLParseXMLString
    - CPLAssert
    - m_osUnit::c_str
    - CPLAddXMLAttributeAndValue
    - size
    - CPLCreateXMLNode
    - m_osDescription::c_str
    linkageType: ''
    returnType: void
    signature: void PDS4DelimitedTable::RefreshFileAreaObservational(CPLXMLNode *psFAO)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4TableBaseLayer::GetFileList
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2468,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2469,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2471,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2466
    functionDepth: 2
    functionLinenumber: 2466
    functionLinenumberEnd: 2476
    functionName: PDS4DelimitedTable::GetFileList
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - PDS4TableBaseLayer::GetFileList
    - CPLResetExtensionSafe
    - CSLAddString
    - VSIStatL
    linkageType: ''
    returnType: char
    signature: char **PDS4DelimitedTable::GetFileList() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2487,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2488,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2491,1
    - Dst: c_str
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2492,1
    - Dst: Assign
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2495,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2495,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2499,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2503,1
    - Dst: wkbFlatten
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2503,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2504,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2505,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2509,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2510,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2511,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2514,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2514,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2518,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2520,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2521,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2524,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2524,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2529,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2530,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2531,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2534,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2534,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2538,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2538,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2545,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2547,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2550,1
    - Dst: auto::SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2551,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2552,1
    - Dst: auto::Release
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2553,1
    - Dst: ParseLineEndingOption
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2557,1
    - Dst: MarkHeaderDirty
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2560,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - poSRS
    - bForceGeographic
    - eGType
    - papszOptions
    argTypes:
    - OGRSpatialReference*
    - bool
    - OGRwkbGeometryType
    - char**
    constantsTouched: []
    func_position:
      end: 2562
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2562
    functionName: PDS4DelimitedTable::InitializeNewLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - GetGeomFieldDefn
    - MarkHeaderDirty
    - CPLError
    - CPLGetConfigOption
    - SetGeomType
    - Assign
    - std::move
    - AddFieldDefn
    - wkbFlatten
    - c_str
    - GetFieldCount
    - VSIFOpenL
    - CPLAssert
    - auto::SetAxisMappingStrategy
    - OGRSpatialReference*::Clone
    - ParseLineEndingOption
    - CSLFetchNameValueDef
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - CSLDuplicate
    - push_back
    - auto::Release
    linkageType: ''
    returnType: bool
    signature: "bool PDS4DelimitedTable::InitializeNewLayer(const OGRSpatialReference
      *poSRS,\n                                            bool bForceGeographic,\n
      \                                           OGRwkbGeometryType eGType,\n                                            const
      char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2574
    functionDepth: 0
    functionLinenumber: 2574
    functionLinenumberEnd: 2574
    functionName: PDS4EditableSynchronizer::PDS4EditableSynchronizer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PDS4EditableSynchronizer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<T *>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2585,1
    - Dst: auto::NewLayer
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2588,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2589,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2593,1
    - Dst: auto::m_poRawFeatureDefn::GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2593,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2599,1
    - Dst: auto::m_poRawFeatureDefn::GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2599,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2605,1
    - Dst: auto::m_poRawFeatureDefn::GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2605,1
    - Dst: auto::InitializeNewLayer
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2609,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2610,1
    - Dst: auto::GetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2611,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2611,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2614,1
    - Dst: copyField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2628,1
    - Dst: copyField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2633,1
    - Dst: copyField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2638,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2642,1
    - Dst: OGRFeatureDefn*::GetFieldCount
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2643,1
    - Dst: OGRFeatureDefn*::GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2645,1
    - Dst: auto::CreateField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2646,1
    - Dst: copyField
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2651,1
    - Dst: auto::m_aoFields::back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2651,1
    - Dst: auto::m_poRawFeatureDefn::GetFieldDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2654,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2655,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2655,1
    - Dst: auto::m_aoFields::back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2657,1
    - Dst: OGRLayer*::ResetReading
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2663,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2669,1
    - Dst: OGRLayer*::GetSpatialFilter
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2672,1
    - Dst: OGRGeometry*::clone
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2674,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2675,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2677,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2678,1
    - Dst: auto::push_back
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2679,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2685,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2685,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2686,1
    - Dst: get
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2686,1
    - Dst: auto::data
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2686,1
    - Dst: auto::CreateFeature
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2688,1
    - Dst: OGRLayer*::SetAttributeFilter
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2697,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2698,1
    - Dst: OGRLayer*::SetSpatialFilter
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2699,1
    - Dst: auto::RenameFileTo
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2703,1
    - Dst: auto::GetFileName
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2703,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2706,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - poEditableLayer
    - ppoDecoratedLayer
    argTypes:
    - OGRLayer*
    - OGRLayer**
    constantsTouched: []
    func_position:
      end: 2714
      start: 2581
    functionDepth: 2
    functionLinenumber: 2581
    functionLinenumberEnd: 2714
    functionName: PDS4EditableSynchronizer<T>::EditableSyncToDisk
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer*::GetSpatialFilter
    - auto::GetName
    - auto::GetType
    - OGRLayer*::SetSpatialFilter
    - OGRLayer*::SetAttributeFilter
    - auto::NewLayer
    - OGRFeature*::SetFrom
    - OGRGeometry*::clone
    - CPLStringList::List
    - auto::GetLayerDefn
    - auto::m_poRawFeatureDefn::GetFieldDefn
    - OGRLayer*::GetLayerDefn
    - copyField
    - auto::CreateField
    - OGRFeatureDefn*::GetFieldCount
    - auto::GetFileName
    - auto::GetSpatialRef
    - VSIUnlink
    - get
    - auto::RenameFileTo
    - auto::m_aoFields::back
    - auto::CreateFeature
    - OGRFieldDefn*::GetType
    - CPLStringList::SetNameValue
    - auto::GetGeomType
    - OGRLayer*::ResetReading
    - OGRFeature::OGRFeature
    - CPLFree
    - OGRFeatureDefn*::GetFieldDefn
    - auto::push_back
    - auto::data
    - auto::InitializeNewLayer
    - cpl::down_cast<T *>
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr PDS4EditableSynchronizer<T>::EditableSyncToDisk(OGRLayer *poEditableLayer,\n
      \                                               OGRLayer **ppoDecoratedLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableSynchronizer<PDS4FixedWidthTable>::PDS4EditableSynchronizer<PDS4FixedWidthTable>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poBaseLayer
    argTypes:
    - PDS4FixedWidthTable*
    constantsTouched: []
    func_position:
      end: 2727
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2727
    functionName: PDS4EditableLayer::PDS4EditableLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 4
    functionsReached:
    - PDS4EditableSynchronizer<PDS4FixedWidthTable>::PDS4EditableSynchronizer<PDS4FixedWidthTable>
    linkageType: ''
    returnType: void
    signature: void PDS4EditableLayer::PDS4EditableLayer(PDS4FixedWidthTable *poBaseLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PDS4EditableSynchronizer<PDS4DelimitedTable>::PDS4EditableSynchronizer<PDS4DelimitedTable>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poBaseLayer
    argTypes:
    - PDS4DelimitedTable*
    constantsTouched: []
    func_position:
      end: 2733
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2733
    functionName: PDS4EditableLayer::PDS4EditableLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 4
    functionsReached:
    - PDS4EditableSynchronizer<PDS4DelimitedTable>::PDS4EditableSynchronizer<PDS4DelimitedTable>
    linkageType: ''
    returnType: void
    signature: void PDS4EditableLayer::PDS4EditableLayer(PDS4DelimitedTable *poBaseLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2735
    functionName: PDS4EditableLayer::~PDS4EditableLayer()
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PDS4EditableLayer::~PDS4EditableLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<PDS4TableBaseLayer *>
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2743,1
    - Dst: OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2741
    functionDepth: 2
    functionLinenumber: 2741
    functionLinenumberEnd: 2745
    functionName: PDS4EditableLayer::GetBaseLayer
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 5
    functionsReached:
    - cpl::down_cast<PDS4TableBaseLayer *>
    - OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer
    linkageType: ''
    returnType: PDS4TableBaseLayer
    signature: PDS4TableBaseLayer *PDS4EditableLayer::GetBaseLayer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGeomType
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2753,1
    - Dst: GetLayerDefn
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2755,1
    - Dst: PDS4EditableLayer::GetBaseLayer
      Src: /src/gdal/frmts/pds/pds4vector.cpp:2756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 2759
      start: 2751
    functionDepth: 3
    functionLinenumber: 2751
    functionLinenumberEnd: 2759
    functionName: PDS4EditableLayer::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/pds4vector.cpp
    functionUses: 0
    functionsReached:
    - GetGeomType
    - GetLayerDefn
    - PDS4EditableLayer::GetBaseLayer
    linkageType: ''
    returnType: void
    signature: void PDS4EditableLayer::SetSpatialRef(OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: OGRVICARBinaryPrefixesLayer::HasError
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OGRVICARBinaryPrefixesLayer::ResetReading
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetReading() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: OGRVICARBinaryPrefixesLayer::GetLayerDefn
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: OGRVICARBinaryPrefixesLayer::TestCapability
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestCapability(const char *) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:159,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:161,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:163,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:165,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:167,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:169,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - pszStr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: OGRVICARBinaryPrefixesLayer::GetTypeFromString
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: OGRVICARBinaryPrefixesLayer::Type
    signature: OGRVICARBinaryPrefixesLayer::Type OGRVICARBinaryPrefixesLayer::GetTypeFromString(const
      char *pszStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/pds/vicardataset.cpp:196,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/pds/vicardataset.cpp:197,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:197,1
    - Dst: Reference
      Src: /src/gdal/frmts/pds/vicardataset.cpp:198,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:199,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:201,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:202,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:202,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/pds/vicardataset.cpp:204,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:206,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:209,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:211,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:212,1
    - Dst: auto::GetBool
      Src: /src/gdal/frmts/pds/vicardataset.cpp:213,1
    - Dst: OGRVICARBinaryPrefixesLayer::GetTypeFromString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:214,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:214,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:217,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:219,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:219,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:223,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:260,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:265,1
    - Dst: push_back
      Src: /src/gdal/frmts/pds/vicardataset.cpp:273,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:274,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/pds/vicardataset.cpp:275,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:289,1
    - Dst: resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:295,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 7
    argNames:
    - fp
    - nRecords
    - oDef
    - nFileOffset
    - nStride
    - eBINTByteOrder
    - eBREALByteOrder
    argTypes:
    - VSILFILE*
    - int
    - CPLJSONObject
    - vsi_l_offset
    - vsi_l_offset
    - RawRasterBand::ByteOrder
    - RawRasterBand::ByteOrder
    constantsTouched: []
    func_position:
      end: 296
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 296
    functionName: OGRVICARBinaryPrefixesLayer::OGRVICARBinaryPrefixesLayer
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetType
    - Reference
    - CPLError
    - auto::c_str
    - auto::ToArray
    - SetGeomType
    - AddFieldDefn
    - OGRVICARBinaryPrefixesLayer::GetTypeFromString
    - resize
    - auto::Size
    - GetName
    - auto::GetString
    - OGRFeatureDefn::OGRFeatureDefn
    - auto::empty
    - CPLAssert
    - auto::IsValid
    - SetDescription
    - auto::GetBool
    - push_back
    - CPLJSONObject::GetObj
    linkageType: ''
    returnType: void
    signature: "void OGRVICARBinaryPrefixesLayer::OGRVICARBinaryPrefixesLayer(\n    VSILFILE
      *fp, int nRecords, const CPLJSONObject &oDef,\n    vsi_l_offset nFileOffset,
      vsi_l_offset nStride,\n    RawRasterBand::ByteOrder eBINTByteOrder,\n    RawRasterBand::ByteOrder
      eBREALByteOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/frmts/pds/vicardataset.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: OGRVICARBinaryPrefixesLayer::~OGRVICARBinaryPrefixesLayer()
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void OGRVICARBinaryPrefixesLayer::~OGRVICARBinaryPrefixesLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:316,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:317,1
    - Dst: size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:317,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/pds/vicardataset.cpp:322,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/frmts/pds/vicardataset.cpp:323,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:329,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:334,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:337,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:339,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:345,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:348,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:350,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:350,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:356,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:359,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:361,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:367,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:370,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:372,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:378,1
    - Dst: CPLVaxToIEEEFloat
      Src: /src/gdal/frmts/pds/vicardataset.cpp:381,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:391,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:393,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:399,1
    - Dst: CPLVaxToIEEEDouble
      Src: /src/gdal/frmts/pds/vicardataset.cpp:402,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/pds/vicardataset.cpp:412,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:414,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:418,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/pds/vicardataset.cpp:421,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 424
    functionName: OGRVICARBinaryPrefixesLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<GIntBig>
    - CPLVaxToIEEEFloat
    - CPLVaxToIEEEDouble
    - VSIFSeekL
    - CPL_SWAP64PTR
    - CPLAssert
    - OGRFeature*::SetField
    - VSIFReadL
    - CPL_SWAP32PTR
    - OGRFeature*::GetFieldCount
    - OGRFeature::OGRFeature
    - memcpy
    - CPL_SWAP16PTR
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVICARBinaryPrefixesLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRVICARBinaryPrefixesLayer::GetNextRawFeature
      Src: /src/gdal/frmts/pds/vicardataset.cpp:434,1
    - Dst: FilterGeometry
      Src: /src/gdal/frmts/pds/vicardataset.cpp:439,1
    - Dst: auto::GetGeometryRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:439,1
    - Dst: Evaluate
      Src: /src/gdal/frmts/pds/vicardataset.cpp:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 447
    functionName: OGRVICARBinaryPrefixesLayer::GetNextFeature
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - auto::GetGeometryRef
    - OGRVICARBinaryPrefixesLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGRVICARBinaryPrefixesLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - poDSIn
    - nBandIn
    - fpRawIn
    - nImgOffsetIn
    - nPixelOffsetIn
    - nLineOffsetIn
    - eDataTypeIn
    - eByteOrderIn
    argTypes:
    - VICARDataset*
    - int
    - VSILFILE*
    - vsi_l_offset
    - int
    - int
    - GDALDataType
    - ByteOrder
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: VICARRawRasterBand::VICARRawRasterBand
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VICARRawRasterBand::VICARRawRasterBand(VICARDataset *poDSIn,
      int nBandIn,\n                                       VSILFILE *fpRawIn,\n                                       vsi_l_offset
      nImgOffsetIn,\n                                       int nPixelOffsetIn, int
      nLineOffsetIn,\n                                       GDALDataType eDataTypeIn,\n
      \                                      ByteOrder eByteOrderIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VICARDataset *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:496,1
    - Dst: VICARDataset*::WriteLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:498,1
    - Dst: RawRasterBand::IReadBlock
      Src: /src/gdal/frmts/pds/vicardataset.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: VICARRawRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - RawRasterBand::IReadBlock
    - VICARDataset*::WriteLabel
    - reinterpret_cast<VICARDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARRawRasterBand::IReadBlock(int nXBlock, int nYBlock, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VICARDataset *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:509,1
    - Dst: VICARDataset*::WriteLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:511,1
    - Dst: RawRasterBand::IWriteBlock
      Src: /src/gdal/frmts/pds/vicardataset.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nXBlock
    - nYBlock
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: VICARRawRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - RawRasterBand::IWriteBlock
    - VICARDataset*::WriteLabel
    - reinterpret_cast<VICARDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARRawRasterBand::IWriteBlock(int nXBlock, int nYBlock, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VICARDataset *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:527,1
    - Dst: VICARDataset*::WriteLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:529,1
    - Dst: RawRasterBand::IRasterIO
      Src: /src/gdal/frmts/pds/vicardataset.cpp:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 533
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 533
    functionName: VICARRawRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - RawRasterBand::IRasterIO
    - VICARDataset*::WriteLabel
    - reinterpret_cast<VICARDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr VICARRawRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                     int nXSize, int nYSize, void
      *pData,\n                                     int nBufXSize, int nBufYSize,\n
      \                                    GDALDataType eBufType,\n                                     GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                                     GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset*::GetRasterXSize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - poDSIn
    - nBandIn
    - eType
    argTypes:
    - VICARDataset*
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 560
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 560
    functionName: VICARBASICRasterBand::VICARBASICRasterBand
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - VICARDataset*::GetRasterXSize
    linkageType: ''
    returnType: void
    signature: "void VICARBASICRasterBand::VICARBASICRasterBand(VICARDataset *poDSIn,
      int nBandIn,\n                                           GDALDataType eType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: DecodeEncodeException::DecodeEncodeException
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeEncodeException()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:600,1
    - Dst: DecodeEncodeException
      Src: /src/gdal/frmts/pds/vicardataset.cpp:601,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:618,1
    - Dst: DecodeEncodeException
      Src: /src/gdal/frmts/pds/vicardataset.cpp:619,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - nbit
    - buffer
    - buffer_size
    - buffer_pos
    - bit1ptr
    argTypes:
    - int
    - unsigned char*
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 635
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 635
    functionName: grab1
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - DecodeEncodeException
    - static_cast<unsigned char>
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char grab1(int nbit, const unsigned char *buffer,\n                           size_t
      buffer_size, size_t &buffer_pos,\n                           int &bit1ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:660,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/frmts/pds/vicardataset.cpp:668,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:669,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:673,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:677,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:680,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:698,1
    - Dst: CPLUnsanitizedAdd
      Src: /src/gdal/frmts/pds/vicardataset.cpp:700,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:702,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:703,1
    - Dst: grab1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:708,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - code
    - code_size
    - buf
    - ns
    - wid
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 714
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 714
    functionName: basic_decode
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLUnsanitizedAdd
    - grab1
    - static_cast<unsigned char>
    linkageType: ''
    returnType: void
    signature: "void basic_decode(const unsigned char *code, size_t code_size,\n                         unsigned
      char *buf, int ns, int wid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:739,1
    - Dst: DecodeEncodeException
      Src: /src/gdal/frmts/pds/vicardataset.cpp:740,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:743,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:745,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:751,1
    - Dst: DecodeEncodeException
      Src: /src/gdal/frmts/pds/vicardataset.cpp:752,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - val
    - nbit
    - reg1
    - bit1ptr
    - coded_buffer
    - coded_buffer_pos
    - coded_buffer_size
    argTypes:
    - unsigned char
    - int
    - unsigned char*
    - int
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 759
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 759
    functionName: emit1
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - DecodeEncodeException
    - static_cast<unsigned char>
    linkageType: ''
    returnType: void
    signature: "void emit1(unsigned char val, int nbit, unsigned char *reg1,\n                  int
      &bit1ptr, unsigned char *coded_buffer,\n                  size_t &coded_buffer_pos,
      size_t coded_buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/gdal/frmts/pds/vicardataset.cpp:777,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:778,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:782,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:784,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:790,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:800,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:804,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:809,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:813,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:818,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:827,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:829,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:831,1
    - Dst: abs
      Src: /src/gdal/frmts/pds/vicardataset.cpp:835,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:837,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:842,1
    - Dst: emit1
      Src: /src/gdal/frmts/pds/vicardataset.cpp:844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 9
    argNames:
    - run
    - old
    - vold
    - val
    - reg1
    - bit1ptr
    - coded_buffer
    - coded_buffer_pos
    - coded_buffer_size
    argTypes:
    - int*
    - int*
    - int*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 851
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 851
    functionName: basic_encrypt
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - emit1
    - abs
    linkageType: ''
    returnType: void
    signature: "void basic_encrypt(int *run, int *old, int *vold, int val,\n                          unsigned
      char *reg1, int &bit1ptr,\n                          unsigned char *coded_buffer,
      size_t &coded_buffer_pos,\n                          size_t coded_buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: basic_encrypt
      Src: /src/gdal/frmts/pds/vicardataset.cpp:884,1
    - Dst: basic_encrypt
      Src: /src/gdal/frmts/pds/vicardataset.cpp:891,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:896,1
    - Dst: DecodeEncodeException
      Src: /src/gdal/frmts/pds/vicardataset.cpp:897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - unencodedBuf
    - coded_buffer
    - coded_buffer_size
    - ns
    - wid
    - totBytes
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    - int
    - size_t*
    constantsTouched: []
    func_position:
      end: 904
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 904
    functionName: basic_encode
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - DecodeEncodeException
    - basic_encrypt
    linkageType: ''
    returnType: void
    signature: "void basic_encode(const unsigned char *unencodedBuf,\n                         unsigned
      char *coded_buffer, size_t coded_buffer_size,\n                         int
      ns, int wid, size_t *totBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VICARDataset *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:918,1
    - Dst: memset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:926,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:926,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:937,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:944,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:951,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:953,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:959,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:961,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/vicardataset.cpp:965,1
    - Dst: simple_max
      Src: /src/gdal/frmts/pds/vicardataset.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:973,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:985,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:991,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:996,1
    - Dst: VICARDataset*::m_abyCodedBuffer::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1000,1
    - Dst: VICARDataset*::m_abyCodedBuffer::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1004,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1008,1
    - Dst: what
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1008,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1012,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1014,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1016,1
    - Dst: basic_decode
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1022,1
    - Dst: VICARDataset*::m_abyCodedBuffer::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1022,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1023,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1033,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - nYBlock
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1037
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 1037
    functionName: VICARBASICRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - VICARDataset*::m_abyCodedBuffer::data
    - static_cast<size_t>
    - static_cast<vsi_l_offset>
    - static_cast<unsigned>
    - VSIFSeekL
    - VICARDataset*::m_abyCodedBuffer::size
    - reinterpret_cast<VICARDataset *>
    - GDALSwapWords
    - static_cast<unsigned char *>
    - CPLAssert
    - basic_decode
    - VSIFReadL
    - CPLError
    - memset
    - VICARDataset*::m_abyCodedBuffer::resize
    - what
    - CPL_LSBPTR32
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr VICARBASICRasterBand::IReadBlock(int /*nXBlock*/, int nYBlock,\n
      \                                       void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VICARDataset *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1047,1
    - Dst: VICARDataset*::WriteLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1052,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1053,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1062,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1067,1
    - Dst: VICARDataset*::m_abyCodedBuffer::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1076,1
    - Dst: VICARDataset*::m_abyCodedBuffer::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1080,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1084,1
    - Dst: what
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1084,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1092,1
    - Dst: basic_encode
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1099,1
    - Dst: static_cast<unsigned char *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1100,1
    - Dst: VICARDataset*::m_abyCodedBuffer::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1101,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1111,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1117,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1121,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1122,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1123,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1124,1
    - Dst: VICARDataset*::m_abyCodedBuffer::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1124,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1131,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1133,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1135,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1136,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1137,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1138,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1139,1
    - Dst: VICARDataset*::m_abyCodedBuffer::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 2
    argNames:
    - nYBlock
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1148
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1148
    functionName: VICARBASICRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - VICARDataset*::m_abyCodedBuffer::data
    - static_cast<GUInt32>
    - VICARDataset*::WriteLabel
    - VICARDataset*::m_abyCodedBuffer::size
    - VSIFSeekL
    - basic_encode
    - reinterpret_cast<VICARDataset *>
    - GDALSwapWords
    - static_cast<unsigned char *>
    - VSIFTellL
    - VSIFWriteL
    - CPLError
    - static_cast<vsi_l_offset>
    - VICARDataset*::m_abyCodedBuffer::resize
    - what
    - CPL_LSBPTR32
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr VICARBASICRasterBand::IWriteBlock(int /*nXBlock*/, int nYBlock,\n
      \                                        void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1157,1
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1159
    functionName: VICARDataset::VICARDataset
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - Deinit
    linkageType: ''
    returnType: void
    signature: void VICARDataset::VICARDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset::Close
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1169
    functionName: VICARDataset::~VICARDataset()
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - VICARDataset::Close
    linkageType: ''
    returnType: void
    signature: void VICARDataset::~VICARDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset::WriteLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1181,1
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1183,1
    - Dst: VICARDataset::PatchLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1186,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1188,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1194
    functionName: VICARDataset::Close
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - VICARDataset::WriteLabel
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    - VICARDataset::PatchLabel
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1203,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1207
    functionName: VICARDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *VICARDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1216,1
    - Dst: Clear
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1220,1
    - Dst: VICARDataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: VICARDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - GDALPamDataset::SetSpatialRef
    - VICARDataset::InvalidateLabel
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1234,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1239
    functionName: VICARDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::SetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1249,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1253,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1258,1
    - Dst: VICARDataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1261
    functionName: VICARDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - VICARDataset::InvalidateLabel
    - GDALPamDataset::SetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawDataset::GetRawBinaryLayout
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1269,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 1273
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1273
    functionName: VICARDataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - RawDataset::GetRawBinaryLayout
    - GetDescription
    linkageType: ''
    returnType: bool
    signature: bool VICARDataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout
      &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1282
    functionName: VICARDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **VICARDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1290,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1292,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1294,1
    - Dst: VICARDataset::BuildLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1296,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1298,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1298,1
    - Dst: Format
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1300,1
    - Dst: InsertString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1301,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1301,1
    - Dst: List
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1303,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1306
    functionName: VICARDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - IsValid
    - GDALPamDataset::GetMetadata
    - VICARDataset::BuildLabel
    - EQUAL
    - InsertString
    - CPLAssert
    - CPLString::c_str
    - List
    - Format
    linkageType: ''
    returnType: char
    signature: char **VICARDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1314,1
    - Dst: Clear
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1316
    functionName: VICARDataset::InvalidateLabel
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 2
    functionsReached:
    - Clear
    - Deinit
    linkageType: ''
    returnType: void
    signature: void VICARDataset::InvalidateLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1325,1
    - Dst: Deinit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1327,1
    - Dst: VICARDataset::InvalidateLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1328,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1331,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1332,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1333,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1338,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1339,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1346,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1347
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1347
    functionName: VICARDataset::SetMetadata
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::SetMetadata
    - CPLJSONDocument::LoadMemory
    - IsValid
    - reinterpret_cast<const GByte *>
    - EQUAL
    - CPLJSONDocument::GetRoot
    - VICARDataset::InvalidateLabel
    - CPLJSONDocument::CPLJSONDocument
    - Deinit
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr VICARDataset::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1357
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1357
    functionName: SerializeString
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: std::string
    signature: std::string SerializeString(const std::string &s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1365,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1368,1
    - Dst: CPLJSONObject::ToBool
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1368,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1372,1
    - Dst: CPLJSONObject::ToInteger
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1372,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1377,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1377,1
    - Dst: CPLJSONObject::ToLong
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1377,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1378,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1385,1
    - Dst: simple_min
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1385,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1386,1
    - Dst: simple_max
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1386,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1387,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1387,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1389,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1390,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1396,1
    - Dst: SerializeString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1401,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1401,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1405,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1407,1
    - Dst: WriteLabelItemValue
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1411,1
    - Dst: SerializeString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1422,1
    - Dst: CPLJSONObject::Format
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1422,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - osLabel
    - obj
    argTypes:
    - std::string
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1424
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1424
    functionName: WriteLabelItemValue
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetType
    - static_cast<double>
    - simple_max
    - static_cast<GIntBig>
    - SerializeString
    - CPLJSONObject::ToString
    - std::string::find
    - CPLSPrintf
    - CPLJSONObject::ToBool
    - CPLJSONObject::ToInteger
    - CPLJSONObject::ToLong
    - WriteLabelItemValue
    - CPLJSONObject::ToArray
    - CPLJSONObject::Format
    - auto::Size
    - simple_min
    linkageType: ''
    returnType: void
    signature: void WriteLabelItemValue(std::string &osLabel, const CPLJSONObject
      &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1433,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1434,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1435,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1439,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1452,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1454,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1454,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 1
    argNames:
    - osItemName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1457
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1457
    functionName: SanitizeItemName
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::resize
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string SanitizeItemName(const std::string &osItemName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1464,1
    - Dst: SanitizeItemName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1468,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1468,1
    - Dst: CPLJSONObject::GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1468,1
    - Dst: WriteLabelItemValue
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - osLabel
    - obj
    argTypes:
    - std::string
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1471
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1471
    functionName: WriteLabelItem
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CPLJSONObject::GetName
    - SanitizeItemName
    - WriteLabelItemValue
    - std::string
    linkageType: ''
    returnType: void
    signature: "void WriteLabelItem(std::string &osLabel, const CPLJSONObject &obj,\n
      \                          const std::string &osItemName = std::string())"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1481,1
    - Dst: VICARDataset::BuildLabel
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1482,1
    - Dst: GetChildren
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1485,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1488,1
    - Dst: WriteLabelItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1496,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1499,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1500,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1500,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1502,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1505,1
    - Dst: SerializeString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1507,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1507,1
    - Dst: GetChildren
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1508,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1511,1
    - Dst: WriteLabelItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1519,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1525,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1526,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1526,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1528,1
    - Dst: GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1531,1
    - Dst: SerializeString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1533,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1533,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1534,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1535,1
    - Dst: WriteLabelItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1536,1
    - Dst: GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1537,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1538,1
    - Dst: WriteLabelItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1539,1
    - Dst: GetChildren
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1540,1
    - Dst: GetName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1543,1
    - Dst: WriteLabelItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1552,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1561,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1563,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1563,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1564,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1564,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1567,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1567,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1570,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1571,1
    - Dst: std::string::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1571,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1571,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1575,1
    - Dst: std::string
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1575,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1583,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1583,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1584,1
    - Dst: dynamic_cast<VICARRawRasterBand *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1591,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1591,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1477
    functionDepth: 3
    functionLinenumber: 1477
    functionLinenumberEnd: 1595
    functionName: VICARDataset::WriteLabel
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - GetObj
    - std::string::data
    - GetRasterBand
    - auto::GetType
    - VSIFTellL
    - dynamic_cast<VICARRawRasterBand *>
    - static_cast<vsi_l_offset>
    - SerializeString
    - IsValid
    - VSIFTruncateL
    - strlen
    - DIV_ROUND_UP
    - GetName
    - auto::GetChildren
    - static_cast<int>
    - VSIFSeekL
    - CPLSPrintf
    - VICARDataset::BuildLabel
    - CPLAssert
    - GetType
    - auto::IsValid
    - std::string::size
    - GetChildren
    - VSIFWriteL
    - std::string
    - WriteLabelItem
    linkageType: ''
    returnType: void
    signature: void VICARDataset::WriteLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1606,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1607,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1608,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1610,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1615,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1615,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1616,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1619,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1619,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1620,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1620,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1620,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1625,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1625,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1626,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1629,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1629,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1630,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1630,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1630,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1632,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1634
    functionName: VICARDataset::PatchLabel
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    - CPLString::Printf
    - VSIFSeekL
    - std::string::resize
    - CPLString::size
    - VSIFTellL
    - CPLAssert
    - strlen
    - VSIFWriteL
    - CPLString::data
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VICARDataset::PatchLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1643,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1645,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1648,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1650,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1651,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1653,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1655,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1677,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1680,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1682,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1683,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1684,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1685,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1686,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1687,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1688,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1689,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1690,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1691,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1692,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1693,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1694,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1695,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1696,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1697,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1698,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1699,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1700,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1701,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1702,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1703,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1708,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1709,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1716,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1717,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1722,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1723,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1723,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1725,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1726,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1727,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1728,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1729,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1730,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1736,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1737,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1739,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1740,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1742,1
    - Dst: VICARDataset::BuildLabelPropertyMap
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1744,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1749,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1750,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1752,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1753,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1755,1
    - Dst: VICARDataset::BuildLabelPropertyGeoTIFF
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1758,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1763,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1764
    functionName: VICARDataset::BuildLabel
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 2
    functionsReached:
    - IsEmpty
    - CPLJSONObject
    - empty
    - GetRasterBand
    - auto::Delete
    - auto::GetType
    - CPLAssert
    - CPLJSONObject::IsValid
    - CPL_IGNORE_RET_VAL
    - CPLJSONObject::Set
    - auto::IsValid
    - CPLJSONObject::GetObj
    - VICARDataset::BuildLabelPropertyGeoTIFF
    - std::move
    - VICARDataset::BuildLabelPropertyMap
    - auto::Set
    linkageType: ''
    returnType: void
    signature: void VICARDataset::BuildLabel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsProjected
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1772,1
    - Dst: IsGeographic
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1772,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1774,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1775,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1779,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1781,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1790,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1791,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1793,1
    - Dst: GetSemiMajor
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1793,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1794,1
    - Dst: GetSemiMajor
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1794,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1795,1
    - Dst: GetSemiMinor
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1795,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1797,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1798,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1800,1
    - Dst: empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1802,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1803,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1805,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1810,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1811,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1812,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1814,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1816,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1817,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1819,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1823,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1824,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1827,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1829,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1831,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1832,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1833,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1834,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1838,1
    - Dst: IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1842,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1844,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1846,1
    - Dst: GetNormProjParm
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1850,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1852,1
    - Dst: IsProjected
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1861,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1865,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1868,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1871,1
    - Dst: IsGeographic
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1873,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1876,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1879,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1882,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1889,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 1
    argNames:
    - oLabel
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1891
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1891
    functionName: VICARDataset::BuildLabelPropertyMap
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - GetSemiMajor
    - empty
    - GetNormProjParm
    - IsProjected
    - IsValid
    - GetSemiMinor
    - EQUAL
    - GetOrCreateJSONObject
    - CPLError
    - STARTS_WITH
    - CPLString::empty
    - auto::Add
    - IsGeographic
    linkageType: ''
    returnType: void
    signature: void VICARDataset::BuildLabelPropertyMap(CPLJSONObject &oLabel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1900,1
    - Dst: GetOrCreateJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1901,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1906,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1907,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1912,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1914,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1914,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1917,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1921,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1921,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1922,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1925,1
    - Dst: auto::SetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1927,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1928,1
    - Dst: GetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1929,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1930,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1933,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1933,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1936,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1936,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1940,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1940,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1941,1
    - Dst: GTIFNew
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1943,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1944,1
    - Dst: GDALGTIFKeyGetSHORT
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1950,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1952,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1953,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1953,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1954,1
    - Dst: GTIFValueNameEx
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1954,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1961,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1963,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1963,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1963,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1964,1
    - Dst: GDALGTIFKeyGetASCII
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1971,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1972,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1974,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1974,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1974,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1978,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1990,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:1997,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2000,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2004,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2005,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2005,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2006,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2006,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - oLabel
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 2007
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 2007
    functionName: VICARDataset::BuildLabelPropertyGeoTIFF
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGTIFKeyGetDOUBLE
    - GDALGTIFKeyGetSHORT
    - auto::Add
    - GTIFNew
    - CPLString
    - GetOrCreateJSONObject
    - CPLError
    - std::string::c_str
    - XTIFFClose
    - GDALGTIFKeyGetASCII
    - GetMetadataItem
    - GTIFFree
    - GTIFValueNameEx
    - static_cast<int>
    - FromHandle
    - VSIUnlink
    - GTIFKeyName
    - CPLSPrintf
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - auto::SetSpatialRef
    - auto::SetMetadataItem
    - VSI_TIFFOpen
    - GDALGetDriverByName
    - std::unique_ptr<GDALDataset>
    - GDALDriver*::Create
    - VSIFCloseL
    - auto::SetGeoTransform
    - TIFFGetField
    - VSIMemGenerateHiddenFilename
    - auto::reset
    linkageType: ''
    returnType: void
    signature: void VICARDataset::BuildLabelPropertyGeoTIFF(CPLJSONObject &oLabel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2020,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2022,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2023,1
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2041,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2042,1
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2051,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2052,1
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2066,1
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2069,1
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2096,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2097,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2124,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2124,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2126,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2129,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2130,1
    - Dst: OGRSpatialReference::SetEquirectangular2
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2132,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2134,1
    - Dst: OGRSpatialReference::SetOrthographic
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2136,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2138,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2140,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2142,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2144,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2146,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2148,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2150,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2154,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2157,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2159,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2161,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2163,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2165,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2167,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2170,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2172,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2174,1
    - Dst: OGRSpatialReference::SetCEA
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2176,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2178,1
    - Dst: OGRSpatialReference::SetMollweide
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2180,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2182,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2184,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2187,1
    - Dst: OGRSpatialReference::SetBonne
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2189,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2191,1
    - Dst: OGRSpatialReference::SetGnomonic
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2193,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2196,1
    - Dst: OGRSpatialReference::SetSOC
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2199,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2204,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2206,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2214,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2223,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2238,1
    - Dst: fabs
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2239,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2240,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2245,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2253,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2257,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2258,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2259,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2260,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2261,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2265,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2268,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2273,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2282,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2288,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2293,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2294,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2014
    functionDepth: 6
    functionLinenumber: 2014
    functionLinenumberEnd: 2306
    functionName: VICARDataset::ReadProjectionFromMapGroup
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetSOC
    - OGRSpatialReference::SetMollweide
    - OGRSpatialReference::SetGeogCS
    - OGRSpatialReference::SetCEA
    - CPLDebug
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetACEA
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - CPLString::c_str
    - SetAxisMappingStrategy
    - std::move
    - strlen
    - OGRSpatialReference::SetOrthographic
    - VICARDataset::GetKeyword
    - CPLAtof
    - OGRSpatialReference::SetPS
    - OGRSpatialReference::SetGnomonic
    - OGRSpatialReference::SetProjCS
    - OGRSpatialReference::SetEquirectangular2
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - OGRSpatialReference::SetBonne
    - fabs
    - OGRSpatialReference::SetMercator
    linkageType: ''
    returnType: void
    signature: void VICARDataset::ReadProjectionFromMapGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2321,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2326,1
    - Dst: LibgeotiffOneTimeInit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2327,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2332,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2332,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2336,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2336,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2340,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2342,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2342,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2349,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2350,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2351,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2352,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2353,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2354,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2355,1
    - Dst: GTIFNew
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2360,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2361,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2370,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2371,1
    - Dst: strlen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2371,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2382,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2382,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2393,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2393,1
    - Dst: GTIFWriteKeys
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2397,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2398,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2419,1
    - Dst: CPLString
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2419,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2425,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2428,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2429,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2429,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2430,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2430,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2441,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2442,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2444,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2445,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2445,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2451,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2451,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2451,1
    - Dst: auto::GetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2454,1
    - Dst: auto::GetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2458,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2466,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2469,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2469,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2313
    functionDepth: 4
    functionLinenumber: 2313
    functionLinenumberEnd: 2470
    functionName: VICARDataset::ReadProjectionFromGeoTIFFGroup
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GTIFKeySet
    - GTIFNew
    - CPLString
    - CPLError
    - std::vector::push_back
    - std::string::c_str
    - XTIFFClose
    - auto::GetGeoTransform
    - OGRAPISpyOpen
    - GTIFFree
    - strlen
    - VSIMemGenerateHiddenFilename
    - CSLTokenizeString2
    - CPLStringList::size
    - TIFFWriteEncodedStrip
    - CPLAtof
    - GTiffOneTimeInit
    - static_cast<int>
    - GTIFWriteKeys
    - auto::GetSpatialRef
    - VSIUnlink
    - CPLStringList::empty
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - TIFFWriteDirectory
    - VSI_TIFFOpen
    - std::unique_ptr<GDALDataset>
    - VSIFCloseL
    - OGRPGTableLayer::SetMetadataItem
    - TIFFSetField
    - LibgeotiffOneTimeInit
    linkageType: ''
    returnType: void
    signature: void VICARDataset::ReadProjectionFromGeoTIFFGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARGetLabelOffset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2482,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2483,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2488,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2489,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2491,1
    - Dst: VICARDataset::Open
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2492,1
    - Dst: std::make_unique<VICARDataset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2495,1
    - Dst: auto::oKeywords::Ingest
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2498,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2507,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2514,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2514,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2517,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2517,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2526,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2527,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2529,1
    - Dst: VICARDataset::GetDataTypeFromFormat
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2537,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2537,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2540,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2562,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2564,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2565,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2569,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2575,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2582,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2583,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2587,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2591,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2597,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2609,1
    - Dst: auto::ReadProjectionFromMapGroup
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2611,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2614,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2615,1
    - Dst: auto::ReadProjectionFromGeoTIFFGroup
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2617,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2622,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2622,1
    - Dst: auto::oKeywords::GetJsonObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2626,1
    - Dst: VICARDataset::GetSpacings
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2638,1
    - Dst: simple_max
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2640,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2643,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2647,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2647,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2657,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2658,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2661,1
    - Dst: VICARGetEmbeddedConf
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2661,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2671,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2672,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2676,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2682,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2688,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2689,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2693,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2697,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2703,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2707,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2707,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2709,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2710,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2712,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2713,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2714,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2715,1
    - Dst: auto::GetInteger
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2715,1
    - Dst: std::unique_ptr<OGRVICARBinaryPrefixesLayer>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2718,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2721,1
    - Dst: OGRVICARBinaryPrefixesLayer::OGRVICARBinaryPrefixesLayer
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2719,1
    - Dst: auto::HasError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2726,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2728,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2737,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2739,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2740,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2740,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2744,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2748,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2750,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2753,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2757,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2759,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2767,1
    - Dst: auto::m_anRecordOffsets::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2774,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2778,1
    - Dst: what
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2778,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2792,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2794,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2795,1
    - Dst: std::make_unique<VICARBASICRasterBand>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2809,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2809,1
    - Dst: std::make_unique<VICARRawRasterBand>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2814,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2815,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2816,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2818,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2818,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2820,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2824,1
    - Dst: std::unique_ptr::SetNoDataValue
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2829,1
    - Dst: std::unique_ptr::SetScale
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2832,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2832,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2833,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2833,1
    - Dst: std::unique_ptr::SetOffset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2834,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2834,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2835,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2835,1
    - Dst: std::unique_ptr::SetStatistics
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2841,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2841,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2841,1
    - Dst: std::unique_ptr::SetNoDataValue
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2845,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2845,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2847,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2847,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2853,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2854,1
    - Dst: std::unique_ptr::SetScale
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2856,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2862,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2862,1
    - Dst: std::unique_ptr::SetOffset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2864,1
    - Dst: std::unique_ptr::SetStatistics
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2873,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2873,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2873,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2874,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2874,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2876,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2876,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2885,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2885,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2887,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2889,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2890,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2890,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2892,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2892,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2907,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2941,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2945,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2945,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2947,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2948,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2959,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2964,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2964,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2966,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2989,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2992,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2992,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2993,1
    - Dst: auto::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2993,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2995,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:2996,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3018,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3025,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3030,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3030,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3032,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 226
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 3033
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 3033
    functionName: VICARDataset::Open
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - auto::SetBand
    - auto::ReadProjectionFromMapGroup
    - CPLJSONDocument::Load
    - auto::GetInteger
    - atoi
    - CPLAtofM
    - auto::GetType
    - CPLDebug
    - auto::get
    - CPLJSONDocument::GetRoot
    - auto::HasError
    - CPLError
    - static_cast<vsi_l_offset>
    - GDALReadWorldFile
    - VICARDataset::Open
    - std::make_unique<VICARDataset>
    - CPL_TO_BOOL
    - simple_max
    - VICARGetLabelOffset
    - auto::oKeywords::Ingest
    - auto::ReadProjectionFromGeoTIFFGroup
    - CPLString::c_str
    - auto::GetKeyword
    - std::move
    - std::make_unique<VICARRawRasterBand>
    - std::unique_ptr<OGRVICARBinaryPrefixesLayer>
    - OGRVICARBinaryPrefixesLayer::OGRVICARBinaryPrefixesLayer
    - VICARGetEmbeddedConf
    - std::unique_ptr::SetScale
    - CPLAtof
    - CPLJSONDocument::LoadMemory
    - std::unique_ptr::SetStatistics
    - static_cast<int>
    - CPLString::Printf
    - VICARDataset::GetDataTypeFromFormat
    - auto::TryLoadXML
    - std::unique_ptr::SetOffset
    - CPLJSONDocument::CPLJSONDocument
    - auto::IsValid
    - auto::SetMetadataItem
    - auto::oOvManager::Initialize
    - what
    - GDALCheckBandCount
    - static_cast<double>
    - static_cast<GUInt64>
    - auto::release
    - auto::GetObj
    - auto::m_anRecordOffsets::resize
    - GDALCheckDatasetDimensions
    - EQUAL
    - std::unique_ptr::SetNoDataValue
    - GDALDataTypeIsInteger
    - VICARDataset::GetSpacings
    - auto::oKeywords::GetJsonObject
    - std::make_unique<VICARBASICRasterBand>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *VICARDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszPath
    - pszDefault
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3044
      start: 3039
    functionDepth: 1
    functionLinenumber: 3039
    functionLinenumberEnd: 3044
    functionName: VICARDataset::GetKeyword
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 2
    functionsReached:
    - VICARDataset::GetKeyword
    linkageType: ''
    returnType: char
    signature: "char *VICARDataset::GetKeyword(const char *pszPath,\n                                     const
      char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3052,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3055,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3055,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3058,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3058,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3061,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3064,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3067,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3067,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - pszFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3071
      start: 3050
    functionDepth: 0
    functionLinenumber: 3050
    functionLinenumberEnd: 3071
    functionName: VICARDataset::GetDataTypeFromFormat
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: GDALDataType
    signature: GDALDataType VICARDataset::GetDataTypeFromFormat(const char *pszFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset::GetDataTypeFromFormat
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3084,1
    - Dst: VICARKeywordHandler::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3084,1
    - Dst: atoi
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3090,1
    - Dst: VICARKeywordHandler::GetKeyword
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3090,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3096,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3098,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3098,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3098,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3101,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3101,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3101,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3101,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3102,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3102,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3102,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3104,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3107,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3107,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3107,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3109,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3109,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3109,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3109,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3110,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3110,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3110,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3112,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3116,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3116,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3116,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3116,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3117,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3117,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3117,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3118,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3118,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3118,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3122,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3138,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3138,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3138,1
    - Dst: CPLSM
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3138,1
    - Dst: v
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 7
    argNames:
    - keywords
    - nPixelOffset
    - nLineOffset
    - nBandOffset
    - nImageOffsetWithoutNBB
    - nNBB
    - nImageSize
    argTypes:
    - VICARKeywordHandler
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3147
      start: 3077
    functionDepth: 1
    functionLinenumber: 3077
    functionLinenumberEnd: 3147
    functionName: VICARDataset::GetSpacings
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - v
    - VICARDataset::GetDataTypeFromFormat
    - EQUAL
    - VICARKeywordHandler::GetKeyword
    - CPLError
    - CPLSM
    linkageType: ''
    returnType: bool
    signature: "bool VICARDataset::GetSpacings(const VICARKeywordHandler &keywords,\n
      \                              uint64_t &nPixelOffset, uint64_t &nLineOffset,\n
      \                              uint64_t &nBandOffset,\n                               uint64_t
      &nImageOffsetWithoutNBB, uint64_t &nNBB,\n                               uint64_t
      &nImageSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VICARDataset::CreateInternal
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 3159
      start: 3153
    functionDepth: 1
    functionLinenumber: 3153
    functionLinenumberEnd: 3159
    functionName: VICARDataset::Create
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - VICARDataset::CreateInternal
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *VICARDataset::Create(const char *pszFilename, int nXSize,\n
      \                                 int nYSize, int nBandsIn, GDALDataType eType,\n
      \                                 char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3169,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3176,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3184,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3191,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3195,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3199,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3205,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3209,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3211,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3221,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3222,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3224,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3226,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3231,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3238,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3242,1
    - Dst: what
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3242,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3247,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3248,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3253,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3256,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3257,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3264,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3270,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3271,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3277,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3280,1
    - Dst: VSIGetLastErrorMsg
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3281,1
    - Dst: VICARDataset::VICARDataset
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3285,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3291,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3292,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3293,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3294,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3296,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3298,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3300,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3302,1
    - Dst: std::move
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3304,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3311,1
    - Dst: VICARBASICRasterBand::VICARBASICRasterBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3317,1
    - Dst: VICARRawRasterBand::VICARRawRasterBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3321,1
    - Dst: VICARDataset*::SetBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3328,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 3332
      start: 3161
    functionDepth: 1
    functionLinenumber: 3161
    functionLinenumberEnd: 3332
    functionName: VICARDataset::CreateInternal
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 1
    functionsReached:
    - VICARBASICRasterBand::VICARBASICRasterBand
    - CPLJSONDocument::Load
    - CPLJSONDocument::GetRoot
    - CPLError
    - static_cast<vsi_l_offset>
    - std::move
    - VICARDataset::VICARDataset
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::Deinit
    - CPLFetchBool
    - VICARRawRasterBand::VICARRawRasterBand
    - CPLJSONObject::CPLJSONObject
    - VICARDataset*::SetBand
    - what
    - std::vector::resize
    - static_cast<GUInt64>
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - reinterpret_cast<const GByte *>
    - EQUAL
    - VSIGetLastErrorMsg
    - CPLJSONObject::IsValid
    - GDALDataTypeIsInteger
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: VICARDataset
    signature: "VICARDataset *VICARDataset::CreateInternal(const char *pszFilename,
      int nXSize,\n                                           int nYSize, int nBandsIn,\n
      \                                          GDALDataType eType,\n                                           char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3344,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3346,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3353,1
    - Dst: std::unique_ptr<VICARDataset>
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3354,1
    - Dst: VICARDataset::CreateInternal
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3354,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3360,1
    - Dst: auto::SetGeoTransform
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3365,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3368,1
    - Dst: auto::SetSpatialRef
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3371,1
    - Dst: auto::m_oSrcJSonLabel::IsValid
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3374,1
    - Dst: auto::SetMetadata
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3379,1
    - Dst: GDALDatasetCopyWholeRaster
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3384,1
    - Dst: auto::get
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3384,1
    - Dst: auto::FlushCache
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3386,1
    - Dst: auto::release
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3392,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3393
      start: 3338
    functionDepth: 2
    functionLinenumber: 3338
    functionLinenumberEnd: 3393
    functionName: VICARDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<VICARDataset>
    - auto::FlushCache
    - auto::release
    - GDALDataset*::GetRasterBand
    - auto::SetMetadata
    - auto::m_oSrcJSonLabel::IsValid
    - auto::get
    - GDALDataset*::GetSpatialRef
    - auto::SetGeoTransform
    - auto::SetSpatialRef
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALDataset*::GetGeoTransform
    - GDALDatasetCopyWholeRaster
    - VICARDataset::CreateInternal
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *VICARDataset::CreateCopy(const char *pszFilename,\n                                      GDALDataset
      *poSrcDS, int /*bStrict*/,\n                                      char **papszOptions,\n
      \                                     GDALProgressFunc pfnProgress,\n                                      void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3402,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3405,1
    - Dst: VICARDriverSetCommonMetadata
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3406,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pds/vicardataset.cpp:3412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3413
    functionName: GDALRegister_VICAR
    functionSourceFile: /src/gdal/frmts/pds/vicardataset.cpp
    functionUses: 2
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - VICARDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void GDALRegister_VICAR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/json_utils.h:16,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/pds/json_utils.h:16,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/pds/json_utils.h:18,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/pds/json_utils.h:19,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/pds/json_utils.h:22,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/pds/json_utils.h:24,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/pds/json_utils.h:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - oParent
    - osKey
    argTypes:
    - CPLJSONObject
    - std::string
    constantsTouched: []
    func_position:
      end: 28
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 28
    functionName: GetOrCreateJSONObject
    functionSourceFile: /src/gdal/frmts/pds/json_utils.h
    functionUses: 3
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject
    - CPLJSONObject::Deinit
    - CPLJSONObject::Add
    - CPLJSONObject::IsValid
    - CPLJSONObject::Delete
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject GetOrCreateJSONObject(CPLJSONObject &oParent,\n                                           const
      std::string &osKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - colourInterpretation
    - channel
    argTypes:
    - GDALColorInterp
    - heif_channel*
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: mapColourInterpretation
    functionSourceFile: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr mapColourInterpretation(GDALColorInterp colourInterpretation,\n
      \                                     heif_channel *channel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:59,1
    - Dst: LIBHEIF_HAVE_VERSION
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:63,1
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:64,1
    - Dst: LIBHEIF_HAVE_VERSION
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:69,1
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:70,1
    - Dst: LIBHEIF_HAVE_VERSION
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:75,1
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:76,1
    - Dst: LIBHEIF_HAVE_VERSION
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:81,1
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:82,1
    - Dst: LIBHEIF_HAVE_VERSION
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:87,1
    - Dst: strcmp
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:88,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 96
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 96
    functionName: getCompressionType
    functionSourceFile: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - strcmp
    - LIBHEIF_HAVE_VERSION
    linkageType: ''
    returnType: heif_compression_format
    signature: heif_compression_format getCompressionType(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:105,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:108,1
    - Dst: heif_encoder_set_lossy_quality
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - encoder
    - papszOptions
    argTypes:
    - heif_encoder*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: setEncoderParameters
    functionSourceFile: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - heif_encoder_set_lossy_quality
    - atoi
    linkageType: ''
    returnType: void
    signature: "void setEncoderParameters(heif_encoder *encoder,\n                                 CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - data
    - size
    - userdata
    argTypes:
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: GDALHEIFDataset::VFS_WriterCallback
    functionSourceFile: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp
    functionUses: 0
    functionsReached:
    - static_cast<VSILFILE *>
    linkageType: ''
    returnType: heif_error
    signature: "heif_error GDALHEIFDataset::VFS_WriterCallback(struct heif_context
      *,\n                                               const void *data, size_t
      size,\n                                               void *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:153,1
    - Dst: heif_context_alloc
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:159,1
    - Dst: getCompressionType
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:161,1
    - Dst: heif_context_get_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:163,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:166,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:168,1
    - Dst: setEncoderParameters
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:173,1
    - Dst: heif_image_create
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:178,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:178,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:178,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:182,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:183,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:184,1
    - Dst: GDALDataset*::GetBands
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:189,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:191,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:193,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:194,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:195,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:196,1
    - Dst: mapColourInterpretation
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:201,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:201,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:204,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:205,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:206,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:207,1
    - Dst: heif_image_add_plane
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:211,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:211,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:212,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:215,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:216,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:217,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:218,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:224,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:225,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:225,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:226,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:226,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:231,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:232,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:233,1
    - Dst: heif_context_encode_image
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:243,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:246,1
    - Dst: heif_image_handle_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:249,1
    - Dst: heif_encoding_options_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:250,1
    - Dst: heif_encoder_release
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:251,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:253,1
    - Dst: ReportError
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:256,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:258,1
    - Dst: heif_context_write
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:264,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:265,1
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:267,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp:269,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - GDALProgressFunc pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - CPL_UNUSED**
    - CPL_UNUSED
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 270
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 270
    functionName: GDALHEIFDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/heif/heifdatasetcreatecopy.cpp
    functionUses: 0
    functionsReached:
    - heif_image_create
    - RasterIO
    - CPLError
    - heif_image_add_plane
    - GDALDataset*::GetBands
    - heif_encoding_options_free
    - GetColorInterpretation
    - heif_context_write
    - OGRAPISpyOpen
    - heif_context_free
    - heif_encoder_release
    - ReportError
    - heif_image_release
    - setEncoderParameters
    - heif_context_alloc
    - GDALDataset*::GetRasterXSize
    - VSIFOpenL
    - heif_context_get_encoder_for_format
    - GDALDataset*::GetRasterYSize
    - heif_image_handle_release
    - mapColourInterpretation
    - VSIFCloseL
    - GetRasterDataType
    - getCompressionType
    - heif_context_encode_image
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nGDALHEIFDataset::CreateCopy(const char *pszFilename,
      GDALDataset *poSrcDS, int,\n                            CPL_UNUSED char **papszOptions,\n
      \                           CPL_UNUSED GDALProgressFunc pfnProgress,\n                            CPL_UNUSED
      void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:28,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:36,1
    - Dst: memcpy
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:41,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:43,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:45,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:49,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:58,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: HEIFDriverIdentifySimplified
    functionSourceFile: /src/gdal/frmts/heif/heifdrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - static_cast<uint32_t>
    - memcmp
    - memcpy
    linkageType: ''
    returnType: int
    signature: int HEIFDriverIdentifySimplified(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:75,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:78,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:79,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:80,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:82,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:85,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:88,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: HEIFDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/heif/heifdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void HEIFDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:101,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:105,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:107,1
    - Dst: HEIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:110,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/heif/heifdrivercore.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: DeclareDeferredHEIFPlugin
    functionSourceFile: /src/gdal/frmts/heif/heifdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - HEIFDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredHEIFPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALColorInterp>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: GDALHEIFRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GDALColorInterp>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:40,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:41,1
    - Dst: GDALHEIFDataset*::m_apoOvrDS::size
      Src: /src/gdal/frmts/heif/heifdataset.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: GDALHEIFRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALHEIFDataset*::m_apoOvrDS::size
    - static_cast<int>
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: int
    signature: int GetOverviewCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/heif/heifdataset.cpp:46,1
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:48,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/heif/heifdataset.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: GDALHEIFRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALHEIFRasterBand::GetOverviewCount
    - GetRasterBand
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetOverview(int idx) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_context_alloc
      Src: /src/gdal/frmts/heif/heifdataset.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: GDALHEIFDataset::GDALHEIFDataset
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - heif_context_alloc
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::GDALHEIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_context_free
      Src: /src/gdal/frmts/heif/heifdataset.cpp:76,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:79,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:83,1
    - Dst: heif_image_handle_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: GDALHEIFDataset::~GDALHEIFDataset()
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - heif_image_handle_release
    - VSIFCloseL
    - heif_image_release
    - heif_context_free
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::~GDALHEIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:97,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:98,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: GDALHEIFDataset::GetPositionCbk
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFTellL
    - static_cast<int64_t>
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: int64_t
    signature: int64_t GDALHEIFDataset::GetPositionCbk(void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:107,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/heif/heifdataset.cpp:112,1
    - Dst: GDALHEIFDataset*::m_fpL::Seek
      Src: /src/gdal/frmts/heif/heifdataset.cpp:124,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - size
    - userdata
    argTypes:
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: GDALHEIFDataset::ReadCbk
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALHEIFDataset*::m_fpL::Seek
    - CPLDebugOnly
    - VSIFReadL
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: int
    signature: int GDALHEIFDataset::ReadCbk(void *data, size_t size, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:137,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:138,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - position
    - userdata
    argTypes:
    - int64_t
    - void*
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: GDALHEIFDataset::SeekCbk
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<vsi_l_offset>
    - VSIFSeekL
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: int
    signature: int GDALHEIFDataset::SeekCbk(int64_t position, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:149,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - target_size
    - userdata
    argTypes:
    - int64_t
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: GDALHEIFDataset::WaitForFileSizeCbk
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - static_cast<GDALHEIFDataset *>
    linkageType: ''
    returnType: enum heif_reader_grow_status
    signature: enum heif_reader_grow_status GDALHEIFDataset::WaitForFileSizeCbk(int64_t
      target_size, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:165,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/heif/heifdataset.cpp:170,1
    - Dst: GDALHEIFDataset*::m_fpL::HasPRead
      Src: /src/gdal/frmts/heif/heifdataset.cpp:180,1
    - Dst: GDALHEIFDataset*::m_fpL::GetAdviseReadTotalBytesLimit
      Src: /src/gdal/frmts/heif/heifdataset.cpp:181,1
    - Dst: GDALHEIFDataset*::m_fpL::AdviseRead
      Src: /src/gdal/frmts/heif/heifdataset.cpp:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - start_pos
    - end_pos
    - userdata
    argTypes:
    - uint64_t
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 205
    functionName: GDALHEIFDataset::RequestRangeCbk
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - GDALHEIFDataset*::m_fpL::GetAdviseReadTotalBytesLimit
    - static_cast<GDALHEIFDataset *>
    - GDALHEIFDataset*::m_fpL::HasPRead
    - GDALHEIFDataset*::m_fpL::AdviseRead
    linkageType: ''
    returnType: struct heif_reader_range_request_result
    signature: "struct heif_reader_range_request_result GDALHEIFDataset::RequestRangeCbk(uint64_t
      start_pos, uint64_t end_pos,\n                                 void *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/heif/heifdataset.cpp:221,1
    - Dst: atoi
      Src: /src/gdal/frmts/heif/heifdataset.cpp:227,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:232,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:247,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:256,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:261,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:262,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:263,1
    - Dst: heif_context_read_from_reader
      Src: /src/gdal/frmts/heif/heifdataset.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:269,1
    - Dst: heif_context_read_from_file
      Src: /src/gdal/frmts/heif/heifdataset.cpp:275,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/heif/heifdataset.cpp:275,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:278,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/heif/heifdataset.cpp:290,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/heif/heifdataset.cpp:293,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:294,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:295,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/heif/heifdataset.cpp:296,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:296,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:297,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:299,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/heif/heifdataset.cpp:299,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:304,1
    - Dst: heif_context_get_list_of_top_level_image_IDs
      Src: /src/gdal/frmts/heif/heifdataset.cpp:314,1
    - Dst: heif_context_get_image_handle
      Src: /src/gdal/frmts/heif/heifdataset.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:321,1
    - Dst: heif_image_handle_get_image_tiling
      Src: /src/gdal/frmts/heif/heifdataset.cpp:327,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:330,1
    - Dst: heif_image_handle_get_width
      Src: /src/gdal/frmts/heif/heifdataset.cpp:336,1
    - Dst: heif_image_handle_get_height
      Src: /src/gdal/frmts/heif/heifdataset.cpp:337,1
    - Dst: SetBand
      Src: /src/gdal/frmts/heif/heifdataset.cpp:342,1
    - Dst: GDALHEIFRasterBand::GDALHEIFRasterBand
      Src: /src/gdal/frmts/heif/heifdataset.cpp:342,1
    - Dst: GDALHEIFDataset::ReadMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:345,1
    - Dst: GDALHEIFDataset::OpenThumbnails
      Src: /src/gdal/frmts/heif/heifdataset.cpp:347,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:350,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/heif/heifdataset.cpp:352,1
    - Dst: SetSubdatasetName
      Src: /src/gdal/frmts/heif/heifdataset.cpp:358,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:358,1
    - Dst: SetPhysicalFilename
      Src: /src/gdal/frmts/heif/heifdataset.cpp:359,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/heif/heifdataset.cpp:359,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/heif/heifdataset.cpp:361,1
    - Dst: TryLoadXML
      Src: /src/gdal/frmts/heif/heifdataset.cpp:362,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/heif/heifdataset.cpp:362,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 365
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 365
    functionName: GDALHEIFDataset::Init
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GDALHEIFDataset::ReadMetadata
    - OGRPGTableLayer::SetMetadata
    - heif_context_get_image_handle
    - memcmp
    - heif_context_get_list_of_top_level_image_IDs
    - TryLoadXML
    - VSIFTellL
    - CPLError
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - BUILD_LIBHEIF_VERSION
    - GDALHEIFDataset::OpenThumbnails
    - GetGDALDriverManager
    - heif_context_read_from_reader
    - CPLString::c_str
    - heif_image_handle_get_width
    - STARTS_WITH_CI
    - heif_image_handle_get_height
    - SetSubdatasetName
    - VSIFSeekL
    - heif_image_handle_get_image_tiling
    - CPLSPrintf
    - GDALOpenInfo*::GetSiblingFiles
    - VSIFOpenL
    - CPLStringList::SetNameValue
    - SetPhysicalFilename
    - SetDescription
    - heif_context_read_from_file
    - SetBand
    - GDALHEIFRasterBand::GDALHEIFRasterBand
    linkageType: ''
    returnType: bool
    signature: bool GDALHEIFDataset::Init(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:373,1
    - Dst: GDALHEIFDataset::processProperties
      Src: /src/gdal/frmts/heif/heifdataset.cpp:374,1
    - Dst: GDALHEIFDataset::ReadUserDescription
      Src: /src/gdal/frmts/heif/heifdataset.cpp:375,1
    - Dst: heif_image_handle_get_list_of_metadata_block_IDs
      Src: /src/gdal/frmts/heif/heifdataset.cpp:383,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:391,1
    - Dst: heif_image_handle_get_metadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:395,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:406,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:407,1
    - Dst: memcpy
      Src: /src/gdal/frmts/heif/heifdataset.cpp:414,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/heif/heifdataset.cpp:415,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:417,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:418,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/heif/heifdataset.cpp:429,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/heif/heifdataset.cpp:431,1
    - Dst: memcpy
      Src: /src/gdal/frmts/heif/heifdataset.cpp:441,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/heif/heifdataset.cpp:444,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:449,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:453,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:458,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:463,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:469,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/heif/heifdataset.cpp:470,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:473,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/heif/heifdataset.cpp:474,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:476,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:478,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/heif/heifdataset.cpp:482,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/heif/heifdataset.cpp:489,1
    - Dst: heif_image_handle_get_metadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:490,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/heif/heifdataset.cpp:491,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:494,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 499
    functionName: GDALHEIFDataset::ReadMetadata
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - OGRPGTableLayer::SetMetadata
    - memcmp
    - CPL_SWAP32PTR
    - heif_image_handle_get_metadata
    - GDALHEIFDataset::processProperties
    - BUILD_LIBHEIF_VERSION
    - std::string::find
    - VSIUnlink
    - std::string::resize
    - CPL_MSBPTR32
    - VSIFileFromMemBuffer
    - GDALHEIFDataset::ReadUserDescription
    - VSIFCloseL
    - EXIFExtractMetadata
    - CSLDestroy
    - EQUAL
    - heif_image_handle_get_list_of_metadata_block_IDs
    - VSIMemGenerateHiddenFilename
    - memcpy
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::ReadMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_item_get_property_raw_size
      Src: /src/gdal/frmts/heif/heifdataset.cpp:508,1
    - Dst: std::make_shared<std::vector<uint8_t>>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:517,1
    - Dst: heif_item_get_property_raw_data
      Src: /src/gdal/frmts/heif/heifdataset.cpp:518,1
    - Dst: std::shared_ptr<std::vector<GByte>>::data
      Src: /src/gdal/frmts/heif/heifdataset.cpp:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - m_hCtxt
    - item_id
    - prop_id
    - data
    argTypes:
    - heif_context*
    - heif_item_id
    - heif_property_id
    - std::shared_ptr<std::vector<GByte>>
    constantsTouched: []
    func_position:
      end: 525
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 525
    functionName: GetPropertyData
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - heif_item_get_property_raw_size
    - std::make_shared<std::vector<uint8_t>>
    - std::shared_ptr<std::vector<GByte>>::data
    - heif_item_get_property_raw_data
    linkageType: ''
    returnType: bool
    signature: "bool GetPropertyData(heif_context *m_hCtxt, heif_item_id item_id,\n
      \                           heif_property_id prop_id,\n                            std::shared_ptr<std::vector<GByte>>
      &data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_fourcc
      Src: /src/gdal/frmts/heif/heifdataset.cpp:530,1
    - Dst: heif_fourcc
      Src: /src/gdal/frmts/heif/heifdataset.cpp:532,1
    - Dst: heif_fourcc
      Src: /src/gdal/frmts/heif/heifdataset.cpp:534,1
    - Dst: heif_image_handle_get_item_id
      Src: /src/gdal/frmts/heif/heifdataset.cpp:537,1
    - Dst: heif_item_get_property_type
      Src: /src/gdal/frmts/heif/heifdataset.cpp:544,1
    - Dst: GetPropertyData
      Src: /src/gdal/frmts/heif/heifdataset.cpp:548,1
    - Dst: addGCPs
      Src: /src/gdal/frmts/heif/heifdataset.cpp:552,1
    - Dst: std::shared_ptr::data
      Src: /src/gdal/frmts/heif/heifdataset.cpp:552,1
    - Dst: std::shared_ptr::size
      Src: /src/gdal/frmts/heif/heifdataset.cpp:552,1
    - Dst: GetPropertyData
      Src: /src/gdal/frmts/heif/heifdataset.cpp:557,1
    - Dst: setModelTransformation
      Src: /src/gdal/frmts/heif/heifdataset.cpp:561,1
    - Dst: std::shared_ptr::data
      Src: /src/gdal/frmts/heif/heifdataset.cpp:561,1
    - Dst: std::shared_ptr::size
      Src: /src/gdal/frmts/heif/heifdataset.cpp:561,1
    - Dst: GetPropertyData
      Src: /src/gdal/frmts/heif/heifdataset.cpp:566,1
    - Dst: extractSRS
      Src: /src/gdal/frmts/heif/heifdataset.cpp:570,1
    - Dst: std::shared_ptr::data
      Src: /src/gdal/frmts/heif/heifdataset.cpp:570,1
    - Dst: std::shared_ptr::size
      Src: /src/gdal/frmts/heif/heifdataset.cpp:570,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 573
    functionName: GDALHEIFDataset::processProperties
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::size
    - addGCPs
    - heif_image_handle_get_item_id
    - heif_item_get_property_type
    - GetPropertyData
    - heif_fourcc
    - setModelTransformation
    - extractSRS
    - std::shared_ptr::data
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::processProperties()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_image_handle_get_item_id
      Src: /src/gdal/frmts/heif/heifdataset.cpp:581,1
    - Dst: heif_item_get_property_user_description
      Src: /src/gdal/frmts/heif/heifdataset.cpp:590,1
    - Dst: strlen
      Src: /src/gdal/frmts/heif/heifdataset.cpp:595,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:600,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/heif/heifdataset.cpp:600,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:601,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/heif/heifdataset.cpp:602,1
    - Dst: strlen
      Src: /src/gdal/frmts/heif/heifdataset.cpp:603,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:605,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/heif/heifdataset.cpp:605,1
    - Dst: heif_property_user_description_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 610
    functionName: GDALHEIFDataset::ReadUserDescription
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - heif_item_get_property_user_description
    - heif_property_user_description_release
    - heif_image_handle_get_item_id
    - strlen
    - SetMetadataItem
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::ReadUserDescription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: heif_image_handle_get_list_of_thumbnail_IDs
      Src: /src/gdal/frmts/heif/heifdataset.cpp:625,1
    - Dst: heif_image_handle_get_thumbnail
      Src: /src/gdal/frmts/heif/heifdataset.cpp:628,1
    - Dst: heif_image_handle_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:637,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:640,1
    - Dst: heif_image_handle_get_luma_bits_per_pixel
      Src: /src/gdal/frmts/heif/heifdataset.cpp:643,1
    - Dst: heif_image_handle_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:645,1
    - Dst: std::make_unique<GDALHEIFDataset>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:650,1
    - Dst: heif_image_handle_get_width
      Src: /src/gdal/frmts/heif/heifdataset.cpp:653,1
    - Dst: heif_image_handle_get_height
      Src: /src/gdal/frmts/heif/heifdataset.cpp:654,1
    - Dst: heif_image_handle_get_image_tiling
      Src: /src/gdal/frmts/heif/heifdataset.cpp:656,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:660,1
    - Dst: heif_image_handle_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:662,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/heif/heifdataset.cpp:668,1
    - Dst: auto::get
      Src: /src/gdal/frmts/heif/heifdataset.cpp:668,1
    - Dst: GDALHEIFRasterBand::GDALHEIFRasterBand
      Src: /src/gdal/frmts/heif/heifdataset.cpp:668,1
    - Dst: push_back
      Src: /src/gdal/frmts/heif/heifdataset.cpp:670,1
    - Dst: std::move
      Src: /src/gdal/frmts/heif/heifdataset.cpp:670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 671
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 671
    functionName: GDALHEIFDataset::OpenThumbnails
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - auto::SetBand
    - BUILD_LIBHEIF_VERSION
    - heif_image_handle_get_height
    - heif_image_handle_release
    - heif_image_handle_get_thumbnail
    - heif_image_handle_get_list_of_thumbnail_IDs
    - std::make_unique<GDALHEIFDataset>
    - heif_image_handle_get_image_tiling
    - auto::get
    - heif_image_handle_get_luma_bits_per_pixel
    - GDALHEIFRasterBand::GDALHEIFRasterBand
    - std::move
    - push_back
    - CPLError
    - heif_image_handle_get_width
    linkageType: ''
    returnType: void
    signature: void GDALHEIFDataset::OpenThumbnails()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/heif/heifdataset.cpp:680,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:686,1
    - Dst: heif_check_filetype
      Src: /src/gdal/frmts/heif/heifdataset.cpp:688,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/heif/heifdataset.cpp:695,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:720,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:721,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:722,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:723,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:724,1
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:725,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 727
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 727
    functionName: HEIFDriverIdentify
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - static_cast<int>
    - BUILD_LIBHEIF_VERSION
    - heif_check_filetype
    - CPLDebug
    - memcmp
    linkageType: ''
    returnType: int
    signature: int HEIFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HEIFDriverIdentify
      Src: /src/gdal/frmts/heif/heifdataset.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:741,1
    - Dst: std::make_unique<GDALHEIFDataset>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:746,1
    - Dst: auto::Init
      Src: /src/gdal/frmts/heif/heifdataset.cpp:747,1
    - Dst: auto::release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 751
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 751
    functionName: GDALHEIFDataset::OpenHEIF
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - std::make_unique<GDALHEIFDataset>
    - auto::Init
    - CPLError
    - HEIFDriverIdentify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GDALHEIFDataset::OpenHEIF(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/frmts/heif/heifdataset.cpp:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 766
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 766
    functionName: HEIFIdentifyOnlyAVIF
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int HEIFIdentifyOnlyAVIF(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HEIFIdentifyOnlyAVIF
      Src: /src/gdal/frmts/heif/heifdataset.cpp:774,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:778,1
    - Dst: std::make_unique<GDALHEIFDataset>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:783,1
    - Dst: auto::Init
      Src: /src/gdal/frmts/heif/heifdataset.cpp:784,1
    - Dst: auto::release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 788
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 788
    functionName: GDALHEIFDataset::OpenAVIF
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::release
    - HEIFIdentifyOnlyAVIF
    - std::make_unique<GDALHEIFDataset>
    - auto::Init
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GDALHEIFDataset::OpenAVIF(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:801,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:810,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/heif/heifdataset.cpp:810,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/heif/heifdataset.cpp:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GDALHEIFDataset*
    - int
    constantsTouched: []
    func_position:
      end: 822
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 822
    functionName: GDALHEIFRasterBand::GDALHEIFRasterBand
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 2
    functionsReached:
    - OGRPGTableLayer::SetMetadataItem
    - BUILD_LIBHEIF_VERSION
    - GetRasterXSize
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void GDALHEIFRasterBand::GDALHEIFRasterBand(GDALHEIFDataset *poDSIn,
      int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:831,1
    - Dst: heif_decoding_options_alloc
      Src: /src/gdal/frmts/heif/heifdataset.cpp:837,1
    - Dst: heif_image_handle_decode_image_tile
      Src: /src/gdal/frmts/heif/heifdataset.cpp:839,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:860,1
    - Dst: heif_decoding_options_free
      Src: /src/gdal/frmts/heif/heifdataset.cpp:863,1
    - Dst: heif_decoding_options_free
      Src: /src/gdal/frmts/heif/heifdataset.cpp:866,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:881,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:896,1
    - Dst: reinterpret_cast<const GUInt16 *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:897,1
    - Dst: heif_image_release
      Src: /src/gdal/frmts/heif/heifdataset.cpp:901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 903
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 903
    functionName: GDALHEIFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - heif_decoding_options_alloc
    - heif_image_release
    - heif_image_handle_decode_image_tile
    - static_cast<GDALHEIFDataset *>
    - static_cast<GUInt16 *>
    - static_cast<GByte *>
    - CPLError
    - reinterpret_cast<const GUInt16 *>
    - heif_decoding_options_free
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALHEIFRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                     void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALHEIFDataset *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:907,1
    - Dst: heif_decode_image
      Src: /src/gdal/frmts/heif/heifdataset.cpp:913,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:917,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:928,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:942,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/heif/heifdataset.cpp:949,1
    - Dst: CPLError
      Src: /src/gdal/frmts/heif/heifdataset.cpp:951,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:961,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:965,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:966,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:971,1
    - Dst: reinterpret_cast<const GUInt16 *>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:972,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/heif/heifdataset.cpp:973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 977
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 977
    functionName: GDALHEIFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - BUILD_LIBHEIF_VERSION
    - GDALGetDataTypeSize
    - static_cast<GDALHEIFDataset *>
    - static_cast<GByte *>
    - static_cast<GUInt16 *>
    - heif_decode_image
    - CPLError
    - reinterpret_cast<const GUInt16 *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALHEIFRasterBand::IReadBlock(int, int nBlockYOff, void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFDataset::GetGeoTransform
      Src: /src/gdal/frmts/heif/heifdataset.cpp:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 988
    functionName: GDALHEIFDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALHEIFDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALHEIFDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFDataset::GetSpatialRef
      Src: /src/gdal/frmts/heif/heifdataset.cpp:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 996
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 996
    functionName: GDALHEIFDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALHEIFDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALHEIFDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFDataset::GetGCPCount
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1001
    functionName: GDALHEIFDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALHEIFDataset::GetGCPCount
    linkageType: ''
    returnType: int
    signature: int GDALHEIFDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFDataset::GetGCPs
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1006
    functionName: GDALHEIFDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALHEIFDataset::GetGCPs
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *GDALHEIFDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALHEIFDataset::GetSpatialRef
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1011
    functionName: GDALHEIFDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALHEIFDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALHEIFDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1021,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1024,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1027,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1029,1
    - Dst: HEIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1030,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1032,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1033,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1035,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1037,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1039,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1043,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1045,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1046,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1048,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1050,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1052,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1054,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1056,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1058,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1060,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1062,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1064,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1066,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1068,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1069,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1071,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1073,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1075,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1078,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1079,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1081,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1083,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1085,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1088,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1089,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1091,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1093,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1095,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1099,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1102,1
    - Dst: heif_have_encoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1106,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1114,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1116,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1117,1
    - Dst: auto::RegisterDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1124,1
    - Dst: BUILD_LIBHEIF_VERSION
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1127,1
    - Dst: heif_have_decoder_for_format
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1130,1
    - Dst: auto::IsKnownDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1131,1
    - Dst: auto::IsKnownDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1131,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1133,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1134,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1136,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1138,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1139,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1141,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1142,1
    - Dst: auto::RegisterDriver
      Src: /src/gdal/frmts/heif/heifdataset.cpp:1147,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1150
    functionName: GDALRegister_HEIF
    functionSourceFile: /src/gdal/frmts/heif/heifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - BUILD_LIBHEIF_VERSION
    - GDALDriver*::SetMetadataItem
    - auto::IsKnownDriver
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - heif_have_encoder_for_format
    - auto::RegisterDriver
    - HEIFDriverSetCommonMetadata
    - heif_have_decoder_for_format
    linkageType: ''
    returnType: void
    signature: void GDALRegister_HEIF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - X
    - p
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: READ_GINT32
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: USING_NAMESPACE_LERC1
    signature: USING_NAMESPACE_LERC1 READ_GINT32(int &X, const char *&p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - X
    - p
    argTypes:
    - float
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: READ_FLOAT
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void READ_FLOAT(float &X, const char *&p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:76,1
    - Dst: Lerc1Image::computeNumBytesNeededToWriteVoidImage
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:77,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:80,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:86,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:91,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:96,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:101,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:110,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:115,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:119,1
    - Dst: READ_FLOAT
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:125,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:130,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:138,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:143,1
    - Dst: READ_GINT32
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:148,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:156,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 2
    argNames:
    - s
    - sz
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 157
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 157
    functionName: checkV1
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - READ_GINT32
    - READ_FLOAT
    - Lerc1Image::computeNumBytesNeededToWriteVoidImage
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int checkV1(const char *s, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::resize
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:166,1
    - Dst: zImg
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:174,1
    - Dst: Lerc1Image::SetMask
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:175,1
    - Dst: CPLIsEqual
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:175,1
    - Dst: zImg
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:184,1
    - Dst: Lerc1Image::SetMask
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:185,1
    - Dst: CPLIsEqual
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - zImg
    - src
    - img
    - stride
    argTypes:
    - Lerc1Image
    - T*
    - ILImage
    - GInt32
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: Lerc1ImgFill
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - zImg
    - Lerc1Image::resize
    - CPLIsEqual
    - Lerc1Image::SetMask
    linkageType: ''
    returnType: void
    signature: "void Lerc1ImgFill(Lerc1Image &zImg, T *src, const ILImage &img,\n
      \                        GInt32 stride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:195,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:195,1
    - Dst: Lerc1Image::getHeight
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:198,1
    - Dst: Lerc1Image::getWidth
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:198,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:206,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:206,1
    - Dst: zImg
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:206,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:214,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:214,1
    - Dst: zImg
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - zImg
    - dst
    - img
    - stride
    argTypes:
    - Lerc1Image
    - T*
    - ILImage
    - GInt32
    constantsTouched: []
    func_position:
      end: 218
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 218
    functionName: Lerc1ImgUFill
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - GDALIsValueInRange
    - zImg
    - Lerc1Image::getWidth
    - Lerc1Image::getHeight
    - static_cast<T>
    - Lerc1Image::IsValid
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1ImgUFill(Lerc1Image &zImg, T *dst, const ILImage &img,\n
      \                         GInt32 stride)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::Lerc1Image
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:223,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:225,1
    - Dst: FILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:234,1
    - Dst: FILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:237,1
    - Dst: FILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:240,1
    - Dst: FILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:243,1
    - Dst: FILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:246,1
    - Dst: Lerc1Image::write
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:258,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:260,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:269,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:270,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - dst
    - src
    - img
    - precision
    argTypes:
    - buf_mgr
    - buf_mgr
    - ILImage
    - double
    constantsTouched: []
    func_position:
      end: 272
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 272
    functionName: CompressLERC1
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - Lerc1Image::Lerc1Image
    - reinterpret_cast<char *>
    - Lerc1Image::write
    - CPLDebug
    - FILL
    - CPLError
    - reinterpret_cast<Lerc1NS::Byte *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr CompressLERC1(buf_mgr &dst, buf_mgr &src, const ILImage &img,\n
      \                           double precision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::Lerc1Image
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:278,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:282,1
    - Dst: checkV1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:287,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:287,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:289,1
    - Dst: Lerc1Image::read
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:294,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:296,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:309,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:312,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:315,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:318,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:321,1
    - Dst: UFILL
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:338,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - dst
    - src
    - img
    argTypes:
    - buf_mgr
    - buf_mgr
    - ILImage
    constantsTouched: []
    func_position:
      end: 345
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 345
    functionName: DecompressLERC1
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - Lerc1Image::Lerc1Image
    - reinterpret_cast<char *>
    - Lerc1Image::read
    - UFILL
    - reinterpret_cast<Lerc1NS::Byte *>
    - CPLError
    - checkV1
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr DecompressLERC1(buf_mgr &dst, const buf_mgr &src,\n                              const
      ILImage &img)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - L2type
    argTypes:
    - L2NS::DataType
    constantsTouched: []
    func_position:
      end: 379
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 379
    functionName: L2toGDT
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALDataType
    signature: GDALDataType L2toGDT(L2NS::DataType L2type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - dt
    argTypes:
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 408
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 408
    functionName: GDTtoL2
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: L2NS::DataType
    signature: L2NS::DataType GDTtoL2(GDALDataType dt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Lerc1NS::Byte>::resize
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:421,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:423,1
    - Dst: std::vector<Lerc1NS::Byte>::size
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bm
    - src
    - img
    argTypes:
    - std::vector<Lerc1NS::Byte>
    - T*
    - ILImage
    constantsTouched: []
    func_position:
      end: 441
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 441
    functionName: MaskFill
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Lerc1NS::Byte>::resize
    - std::vector<Lerc1NS::Byte>::size
    - static_cast<T>
    linkageType: ''
    returnType: size_t
    signature: "size_t MaskFill(std::vector<Lerc1NS::Byte> &bm, const T *src,\n                       const
      ILImage &img)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Lerc1NS::Byte>::size
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:451,1
    - Dst: T
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - bm
    - data
    - img
    argTypes:
    - std::vector<Lerc1NS::Byte>
    - T*
    - ILImage
    constantsTouched: []
    func_position:
      end: 468
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 468
    functionName: UnMask
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - T
    - std::vector<Lerc1NS::Byte>::size
    linkageType: ''
    returnType: void
    signature: void UnMask(std::vector<Lerc1NS::Byte> &bm, T *data, const ILImage
      &img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:473,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:474,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:475,1
    - Dst: MASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:488,1
    - Dst: MASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:491,1
    - Dst: MASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:494,1
    - Dst: MASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:497,1
    - Dst: MASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:500,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:516,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:517,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:517,1
    - Dst: lerc_encodeForVersion
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:519,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:520,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:521,1
    - Dst: GDTtoL2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:521,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:522,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:525,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:526,1
    - Dst: static_cast<L2NS::ErrCode>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:528,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:531,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:536,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - dst
    - src
    - img
    - precision
    - l2ver
    argTypes:
    - buf_mgr
    - buf_mgr
    - ILImage
    - double
    - int
    constantsTouched: []
    func_position:
      end: 538
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 538
    functionName: CompressLERC2
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - MASK
    - static_cast<size_t>
    - static_cast<int>
    - LERC_AT_LEAST_VERSION
    - static_cast<unsigned int>
    - std::vector::size
    - static_cast<L2NS::ErrCode>
    - reinterpret_cast<Lerc1NS::Byte *>
    - GDTtoL2
    - lerc_encodeForVersion
    - CPLError
    - std::vector::empty
    - reinterpret_cast<void *>
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr CompressLERC2(buf_mgr &dst, buf_mgr &src, const ILImage &img,\n
      \                           double precision, int l2ver)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::computeNumBytesNeededToWriteVoidImage
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:543,1
    - Dst: LERC_Band::IsLerc1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:544,1
    - Dst: DecompressLERC1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:545,1
    - Dst: LERC_Band::IsLerc2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:548,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:550,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:554,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:555,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:556,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:560,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:560,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:560,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:561,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:562,1
    - Dst: lerc_decode
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:568,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:568,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:569,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:570,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:574,1
    - Dst: GDTtoL2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:574,1
    - Dst: static_cast<L2NS::ErrCode>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:575,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:577,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:582,1
    - Dst: UNMASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:590,1
    - Dst: UNMASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:593,1
    - Dst: UNMASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:596,1
    - Dst: UNMASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:599,1
    - Dst: UNMASK
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:602,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 615
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 615
    functionName: LERC_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - DecompressLERC1
    - static_cast<size_t>
    - LERC_Band::IsLerc2
    - static_cast<int>
    - LERC_AT_LEAST_VERSION
    - static_cast<unsigned int>
    - static_cast<L2NS::ErrCode>
    - reinterpret_cast<Lerc1NS::Byte *>
    - GDTtoL2
    - Lerc1Image::computeNumBytesNeededToWriteVoidImage
    - LERC_Band::IsLerc1
    - CPLError
    - UNMASK
    - std::vector::empty
    - lerc_decode
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr LERC_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressLERC2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:620,1
    - Dst: CompressLERC1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: LERC_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - CompressLERC2
    - CompressLERC1
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr LERC_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:633,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:639,1
    - Dst: LERC_Band::IsLerc1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:640,1
    - Dst: LERC_Band::IsLerc2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:640,1
    - Dst: LERC_Band::IsLerc1
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:648,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:649,1
    - Dst: Lerc1Image::computeNumBytesNeededToWriteVoidImage
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:649,1
    - Dst: Lerc1Image::getwh
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:651,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:651,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:653,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:653,1
    - Dst: LERC_Band::IsLerc2
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:656,1
    - Dst: VSIIngestFile
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:668,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:673,1
    - Dst: lerc_getBlobInfo
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:675,1
    - Dst: reinterpret_cast<Lerc1NS::Byte *>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:675,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:676,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:676,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:677,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:677,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:678,1
    - Dst: static_cast<L2NS::ErrCode>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:679,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:680,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:682,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:683,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:684,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:685,1
    - Dst: L2toGDT
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:686,1
    - Dst: static_cast<L2NS::DataType>
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:687,1
    - Dst: INFOIDX
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:687,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:696,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:697,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:698,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:699,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:700,1
    - Dst: CompName
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:700,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:701,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:701,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:702,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:705,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:709,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:712,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:713,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 716
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 716
    functionName: LERC_Band::GetMRFConfig
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - Lerc1Image::getwh
    - INFOIDX
    - GDALGetDataTypeName
    - CPLCreateXMLElementAndValue
    - LERC_Band::IsLerc2
    - static_cast<unsigned int>
    - static_cast<L2NS::ErrCode>
    - CPLString::size
    - strlen
    - LERC_Band::IsLerc1
    - L2toGDT
    - std::vector::data
    - static_cast<int>
    - XMLSetAttributeVal
    - VSIIngestFile
    - reinterpret_cast<Lerc1NS::Byte *>
    - static_cast<L2NS::DataType>
    - CompName
    - CPLString::assign
    - CPLCreateXMLNode
    - CSLFetchNameValueDef
    - Lerc1Image::computeNumBytesNeededToWriteVoidImage
    - VSIFree
    - lerc_getBlobInfo
    - GDALGetDataTypeByName
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *LERC_Band::GetMRFConfig(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:724,1
    - Dst: strtod
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:731,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:731,1
    - Dst: max
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:734,1
    - Dst: strtod
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:734,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:734,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:737,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:740,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:740,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:745,1
    - Dst: MRFDataset*::SetPBufferSize
      Src: /src/gdal/frmts/mrf/LERC_band.cpp:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 750
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 750
    functionName: LERC_Band::LERC_Band
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - strtod
    - max
    - GetOptlist
    - MRFDataset*::SetPBufferSize
    - CPLError
    - GetOptionValue
    linkageType: ''
    returnType: void
    signature: void LERC_Band::LERC_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 754
    functionName: LERC_Band::~LERC_Band()
    functionSourceFile: /src/gdal/frmts/mrf/LERC_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LERC_Band::~LERC_Band()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:60,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: uniq_memfname
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - VSIMemGenerateHiddenFilename
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: NAMESPACE_MRF_START
    signature: NAMESPACE_MRF_START uniq_memfname(const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:74,1
    - Dst: uniq_memfname
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:76,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:79,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:88,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:91,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:96,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:99,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:101,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:102,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:106,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:108,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:113,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:116,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:117,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:121,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:121,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:122,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:123,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - dst
    - src
    - img
    - papszOptions
    argTypes:
    - buf_mgr
    - buf_mgr
    - ILImage
    - char**
    constantsTouched: []
    func_position:
      end: 127
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 127
    functionName: CompressTIF
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - uniq_memfname
    - GDALDriver*::Create
    - VSIStatL
    - VSIFCloseL
    - GDALDataset*::GetRasterBand
    - VSIUnlink
    - GetGDALDriverManager
    - CPLString::c_str
    - VSIFOpenL
    - VSIFReadL
    - CPLError
    - GDALDataset*::RasterIO
    - GDALClose
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr CompressTIF(buf_mgr &dst, const buf_mgr &src, const ILImage
      &img,\n                          char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_memfname
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:134,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:140,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:141,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:144,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:147,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:147,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:150,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:152,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:154,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:155,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:159,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:161,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:162,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:163,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:168,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:170,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:171,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:178,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:185,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:187,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:188,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:194,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:196,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:199,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:200,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:203,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:204,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - dst
    - src
    - img
    argTypes:
    - buf_mgr
    - buf_mgr
    - ILImage
    constantsTouched: []
    func_position:
      end: 206
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 206
    functionName: DecompressTIF
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - uniq_memfname
    - GDALOpenEx
    - FromHandle
    - GDALDataset*::GetRasterYSize
    - VSIFCloseL
    - GDALDataset*::GetRasterBand
    - static_cast<GSpacing>
    - VSIUnlink
    - CPLString::c_str
    - GDALDataset*::GetRasterXSize
    - CPLError
    - GDALDataset*::GetRasterCount
    - VSIFileFromMemBuffer
    - GDALDataset*::RasterIO
    - GDALClose
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr DecompressTIF(buf_mgr &dst, const buf_mgr &src,\n                            const
      ILImage &img)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecompressTIF
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: TIF_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - DecompressTIF
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr TIF_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressTIF
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TIF_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - CompressTIF
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr TIF_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset*::SetPBufferSize
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:222,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:225,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:226,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:227,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:228,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:229,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:230,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:238,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: TIF_Band::TIF_Band
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - CSLAddNameValue
    - CPLOPrintf
    - MRFDataset*::SetPBufferSize
    linkageType: ''
    returnType: void
    signature: void TIF_Band::TIF_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/Tif_band.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: TIF_Band::~TIF_Band()
    functionSourceFile: /src/gdal/frmts/mrf/Tif_band.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void TIF_Band::~TIF_Band()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - src
    - img
    argTypes:
    - buf_mgr
    - ILImage
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: AllAlpha
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool AllAlpha(const buf_mgr &src, const ILImage &img)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - stop
    - target
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: RGBA2RGB
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RGBA2RGB(const char *start, const char *stop, char *target)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - stop
    - source_end
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: RGB2RGBA
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void RGB2RGBA(const char *start, char *stop, const char *source_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - stop
    - target
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: LA2L
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LA2L(const char *start, const char *stop, char *target)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - stop
    - source_end
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: L2LA
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void L2LA(const char *start, char *stop, const char *source_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:91,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: initBuffer
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLMalloc
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr initBuffer(buf_mgr &b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:105,1
    - Dst: JPEG_Codec::IsJPEG
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:108,1
    - Dst: JPEG_Codec::DecompressJPEG
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:117,1
    - Dst: RGB2RGBA
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:121,1
    - Dst: L2LA
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:124,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:128,1
    - Dst: PNG_Codec::DecompressPNG
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 140
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 140
    functionName: JPNG_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - JPEG_Codec::IsJPEG
    - JPEG_Codec::DecompressJPEG
    - L2LA
    - PNG_Codec::DecompressPNG
    - memcpy
    - RGB2RGBA
    - CPL_LSBWORD32
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPNG_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:146,1
    - Dst: initBuffer
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:147,1
    - Dst: AllAlpha
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:151,1
    - Dst: RGBA2RGB
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:154,1
    - Dst: LA2L
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:156,1
    - Dst: JPEG_Codec::CompressJPEG
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:164,1
    - Dst: AllAlpha
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:166,1
    - Dst: PNG_Codec::CompressPNG
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:170,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 177
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 177
    functionName: JPNG_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - RGBA2RGB
    - LA2L
    - PNG_Codec::CompressPNG
    - AllAlpha
    - initBuffer
    - JPEG_Codec::CompressJPEG
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPNG_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:197,1
    - Dst: MRFDataset*::GetPhotometricInterpretation
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:204,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:214,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:215,1
    - Dst: SetPBufferSize
      Src: /src/gdal/frmts/mrf/JPNG_band.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 220
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 220
    functionName: JPNG_Band::JPNG_Band
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - SetPBufferSize
    - GetOptlist
    - MRFDataset*::GetPhotometricInterpretation
    linkageType: ''
    returnType: void
    signature: void JPNG_Band::JPNG_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: JPNG_Band::~JPNG_Band()
    functionSourceFile: /src/gdal/frmts/mrf/JPNG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JPNG_Band::~JPNG_Band()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: Packer
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMESPACE_MRF_START
    signature: NAMESPACE_MRF_START Packer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - max_count
    argTypes:
    - Byte*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: run_length
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_length(const Byte *s, int max_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Byte *>
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:84,1
    - Dst: static_cast<Byte>
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:88,1
    - Dst: UC
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:108,1
    - Dst: UC
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:112,1
    - Dst: UC
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ibuffer
    - obuf
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: toYarn
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached:
    - UC
    - reinterpret_cast<Byte *>
    - static_cast<Byte>
    linkageType: ''
    returnType: size_t
    signature: "size_t toYarn(const char *ibuffer, char *obuf, size_t len,\n                     Byte
      CODE = 0xC3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Byte *>
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:140,1
    - Dst: memset
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 4
    argNames:
    - ibuffer
    - ilen
    - obuf
    - olen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 196
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 196
    functionName: fromYarn
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached:
    - memset
    - reinterpret_cast<Byte *>
    linkageType: ''
    returnType: size_t
    signature: "size_t fromYarn(const char *ibuffer, size_t ilen, char *obuf,\n                       size_t
      olen, Byte CODE = 0xC3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UC
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - Byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: getLeastUsed
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached:
    - UC
    linkageType: ''
    returnType: Byte
    signature: Byte getLeastUsed(const Byte *src, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fromYarn
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - storage_manager*
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: RLEC3Packer::load
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached:
    - fromYarn
    linkageType: ''
    returnType: int
    signature: int RLEC3Packer::load(storage_manager *src, storage_manager *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLeastUsed
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:234,1
    - Dst: reinterpret_cast<const Byte *>
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:234,1
    - Dst: static_cast<char>
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:235,1
    - Dst: toYarn
      Src: /src/gdal/frmts/mrf/Packer_RLE.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - storage_manager*
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: RLEC3Packer::store
    functionSourceFile: /src/gdal/frmts/mrf/Packer_RLE.cpp
    functionUses: 0
    functionsReached:
    - toYarn
    - static_cast<char>
    - reinterpret_cast<const Byte *>
    - getLeastUsed
    linkageType: ''
    returnType: int
    signature: int RLEC3Packer::store(storage_manager *src, storage_manager *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: MRFJPEGStruct
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MRFJPEGStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: j_common_ptr::err::format_message
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:171,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - msgLevel
    argTypes:
    - j_common_ptr
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: emitMessage
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - j_common_ptr::err::format_message
    linkageType: ''
    returnType: void
    signature: void emitMessage(j_common_ptr cinfo, int msgLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: j_common_ptr::err::format_message
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:182,1
    - Dst: longjmp
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: errorExit
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - longjmp
    - j_common_ptr::err::format_message
    linkageType: ''
    returnType: void
    signature: void errorExit(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: stub_source_dec
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stub_source_dec(j_decompress_ptr /*cinfo*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:201,1
    - Dst: j_decompress_ptr::err::error_exit
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: fill_input_buffer_dec
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - j_decompress_ptr::err::error_exit
    linkageType: ''
    returnType: boolean
    signature: boolean fill_input_buffer_dec(j_decompress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:215,1
    - Dst: static_cast<long>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - l
    argTypes:
    - j_decompress_ptr
    - long
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: skip_input_data_dec
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<long>
    linkageType: ''
    returnType: void
    signature: void skip_input_data_dec(j_decompress_ptr cinfo, long l)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: init_or_terminate_destination
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_or_terminate_destination(j_compress_ptr /*cinfo*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: empty_output_buffer
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: boolean empty_output_buffer(j_compress_ptr /*cinfo*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMask::clear
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - mask
    - src
    - nc
    argTypes:
    - BitMask
    - T*
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 255
    functionName: update_mask
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - BitMask::clear
    linkageType: ''
    returnType: int
    signature: int update_mask(BitMask &mask, T *src, int nc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<JOCTET *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:279,1
    - Dst: memset
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:285,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:288,1
    - Dst: jpeg_create_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:292,1
    - Dst: jpeg_set_defaults
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:318,1
    - Dst: jpeg_set_quality
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:321,1
    - Dst: jpeg_set_colorspace
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:332,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:357,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:358,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:368,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:375,1
    - Dst: setjmp
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:384,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:386,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:387,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:388,1
    - Dst: BitMask::size
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:410,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:411,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:411,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:414,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:415,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:416,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:421,1
    - Dst: BitMask::set_packer
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:426,1
    - Dst: BitMask::store
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:427,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:429,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:431,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:432,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:446,1
    - Dst: jpeg_start_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:453,1
    - Dst: jpeg_write_marker
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:456,1
    - Dst: reinterpret_cast<JOCTET *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:457,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:458,1
    - Dst: jpeg12_write_scanlines
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:461,1
    - Dst: jpeg_write_scanlines
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:463,1
    - Dst: jpeg_finish_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:465,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:466,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:468,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:469,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 100
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 474
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 474
    functionName: JPEG_Codec::CompressJPEG
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 1
    functionsReached:
    - BitMask::set_packer
    - jpeg_set_defaults
    - static_cast<unsigned short>
    - jpeg_start_compress
    - CPLError
    - jpeg_finish_compress
    - reinterpret_cast<char *>
    - jpeg_std_error
    - static_cast<unsigned int>
    - jpeg_destroy_compress
    - BitMask::size
    - CPLMalloc
    - jpeg_write_scanlines
    - jpeg12_write_scanlines
    - setjmp
    - reinterpret_cast<JOCTET *>
    - CPLFree
    - jpeg_set_colorspace
    - jpeg_set_quality
    - jpeg_write_marker
    - jpeg_create_compress
    - memset
    - BitMask::store
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPEG_Codec::CompressJPEG(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:494,1
    - Dst: longjmp
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: ProgressMonitor
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - longjmp
    linkageType: ''
    returnType: void
    signature: void ProgressMonitor(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMask*::isSet
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:522,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - sJ
    - s
    - nc
    argTypes:
    - MRFJPEGStruct
    - T*
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 549
    functionName: apply_mask
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - BitMask*::isSet
    linkageType: ''
    returnType: void
    signature: void apply_mask(MRFJPEGStruct &sJ, T *s, int nc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERREXIT
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:557,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:565,1
    - Dst: ERREXIT
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:566,1
    - Dst: reinterpret_cast<MRFJPEGStruct *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:568,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:571,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:572,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:572,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:583,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:591,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:591,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:593,1
    - Dst: BitMask*::load
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:595,1
    - Dst: ERREXIT
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:597,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pcinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 604
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 604
    functionName: MaskProcessor
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<int>
    - reinterpret_cast<const char *>
    - const_cast<char *>
    - BitMask*::load
    - EQUALN
    - reinterpret_cast<MRFJPEGStruct *>
    - ERREXIT
    linkageType: ''
    returnType: boolean
    signature: boolean MaskProcessor(j_decompress_ptr pcinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMask::set_packer
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:627,1
    - Dst: memset
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:629,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:635,1
    - Dst: reinterpret_cast<JOCTET *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:640,1
    - Dst: jpeg_create_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:648,1
    - Dst: setjmp
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:650,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:652,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:653,1
    - Dst: jpeg_set_marker_processor
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:658,1
    - Dst: jpeg_read_header
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:659,1
    - Dst: jpeg_has_multiple_scans
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:664,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:671,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:683,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:686,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:696,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:697,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:698,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:699,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:720,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:722,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:724,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:731,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:733,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:735,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:738,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:740,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:743,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:745,1
    - Dst: jpeg_start_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:754,1
    - Dst: jpeg12_read_scanlines
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:765,1
    - Dst: MRF_JSAMPARRAY
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:765,1
    - Dst: jpeg_read_scanlines
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:767,1
    - Dst: MRF_JSAMPARRAY
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:767,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:770,1
    - Dst: jpeg_finish_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:774,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:775,1
    - Dst: apply_mask
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:779,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:779,1
    - Dst: apply_mask
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:782,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:782,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 2
    argNames:
    - dst
    - isrc
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 786
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 786
    functionName: JPEG_Codec::DecompressJPEG
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - BitMask::set_packer
    - jpeg_destroy_decompress
    - jpeg_read_header
    - jpeg_start_decompress
    - CPLError
    - static_cast<vsi_l_offset>
    - CPLGetConfigOption
    - apply_mask
    - static_cast<unsigned>
    - reinterpret_cast<char *>
    - jpeg_std_error
    - jpeg_has_multiple_scans
    - jpeg12_read_scanlines
    - static_cast<int>
    - jpeg_create_decompress
    - setjmp
    - reinterpret_cast<JOCTET *>
    - jpeg_read_scanlines
    - jpeg_set_marker_processor
    - reinterpret_cast<GUInt16 *>
    - static_cast<size_t>
    - MRF_JSAMPARRAY
    - jpeg_finish_decompress
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPEG_Codec::DecompressJPEG(buf_mgr &dst, const buf_mgr &isrc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:801,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 805
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 805
    functionName: isbrunsli
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBWORD32
    linkageType: ''
    returnType: bool
    signature: bool isbrunsli(const buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isbrunsli
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:809,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:812,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 816
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 816
    functionName: JPEG_Codec::IsJPEG
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 1
    functionsReached:
    - isbrunsli
    - memcpy
    - CPL_LSBWORD32
    linkageType: ''
    returnType: bool
    signature: bool JPEG_Codec::IsJPEG(const buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::vector<GByte> *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:822,1
    - Dst: auto::insert
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:823,1
    - Dst: auto::end
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - data
    - size
    argTypes:
    - void*
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 825
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 825
    functionName: brunsli_fun_callback
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - auto::insert
    - static_cast<std::vector<GByte> *>
    linkageType: ''
    returnType: size_t
    signature: size_t brunsli_fun_callback(void *out, const GByte *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecompressJPEG12
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:833,1
    - Dst: isbrunsli
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:835,1
    - Dst: DecompressJPEG
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:836,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:840,1
    - Dst: DecodeBrunsli
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:847,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:847,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:850,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:856,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:856,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:857,1
    - Dst: JPEG_Band::Decompress
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 860
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 860
    functionName: JPEG_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 1
    functionsReached:
    - DecompressJPEG
    - DecompressJPEG12
    - reinterpret_cast<char *>
    - JPEG_Band::Decompress
    - reinterpret_cast<uint8_t *>
    - std::vector::size
    - DecodeBrunsli
    - isbrunsli
    - CPLError
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPEG_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressJPEG12
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:866,1
    - Dst: CompressJPEG
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:869,1
    - Dst: CompressJPEG
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:872,1
    - Dst: EncodeBrunsli
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:878,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:878,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:881,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:886,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:888,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:892,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:892,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:892,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:893,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 896
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 896
    functionName: JPEG_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - EncodeBrunsli
    - CompressJPEG
    - reinterpret_cast<uint8_t *>
    - std::vector::size
    - CPLError
    - CompressJPEG12
    - memcpy
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JPEG_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:910,1
    - Dst: MRFDataset*::GetPhotometricInterpretation
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:917,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:929,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:930,1
    - Dst: SetPBufferSize
      Src: /src/gdal/frmts/mrf/JPEG_band.cpp:940,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 941
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 941
    functionName: JPEG_Band::JPEG_Band
    functionSourceFile: /src/gdal/frmts/mrf/JPEG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - SetPBufferSize
    - GetOptlist
    - MRFDataset*::GetPhotometricInterpretation
    linkageType: ''
    returnType: void
    signature: void JPEG_Band::JPEG_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - comp
    argTypes:
    - ILCompression
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: CompName
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CompName(ILCompression comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - ILOrder
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: OrderName
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OrderName(ILOrder val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILCompression
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:144,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:145,1
    - Dst: ILCompression
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:147,1
    - Dst: ILCompression
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - opt
    - def
    argTypes:
    - char*
    - ILCompression
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: CompToken
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - ILCompression
    linkageType: ''
    returnType: ILCompression
    signature: ILCompression CompToken(const char *opt, ILCompression def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILOrder
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:160,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:161,1
    - Dst: ILOrder
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:163,1
    - Dst: ILOrder
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - opt
    - def
    argTypes:
    - char*
    - ILOrder
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: OrderToken
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - ILOrder
    linkageType: ''
    returnType: ILOrder
    signature: ILOrder OrderToken(const char *opt, ILOrder def)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - sz
    argTypes:
    - std::ostream
    - ILSize
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: '&operator<<(std::ostream &out, const ILSize &sz)'
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const ILSize &sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - t
    argTypes:
    - std::ostream
    - ILIdx
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: '&operator<<(std::ostream &out, const ILIdx &t)'
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream &operator<<(std::ostream &out, const ILIdx &t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:188,1
    - Dst: fprintf
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:192,1
    - Dst: fwrite
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:197,1
    - Dst: fprintf
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:203,1
    - Dst: fwrite
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:204,1
    - Dst: fprintf
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:207,1
    - Dst: fwrite
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:208,1
    - Dst: fprintf
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:211,1
    - Dst: fclose
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - fname
    - data
    - sz
    argTypes:
    - char*
    - char*
    - ILSize
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: ppmWrite
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - fclose
    - fwrite
    - fopen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ppmWrite(const char *fname, const char *data, const ILSize &sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:224,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:228,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:229,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:230,1
    - Dst: simple_max
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:235,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:235,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - full
    - scale
    argTypes:
    - ILImage
    - int
    constantsTouched: []
    func_position:
      end: 241
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: IdxSize
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - pcount
    - static_cast<int>
    - CPLError
    - simple_max
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig IdxSize(const ILImage &full, const int scale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:245,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:245,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: ILImage::ILImage
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - pcount
    - ILSize
    linkageType: ''
    returnType: void
    signature: void ILImage::ILImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:267,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:267,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:268,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:274,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:276,1
    - Dst: CPLString::replace
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - in
    - ext
    argTypes:
    - CPLString
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 278
    functionName: getFname
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - CPLString::replace
    - CPLString::size
    - CPLString
    - strlen
    - CPLString::find
    linkageType: ''
    returnType: CPLString
    signature: CPLString getFname(const CPLString &in, const char *ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:293,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:294,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:295,1
    - Dst: CPLString::find_first_not_of
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:302,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:303,1
    - Dst: CPLString::find_first_of
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:304,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:309,1
    - Dst: CPLString::find_last_of
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:309,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 4
    argNames:
    - node
    - token
    - in
    - def
    argTypes:
    - CPLXMLNode*
    - char*
    - CPLString
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 310
    functionName: getFname
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 1
    functionsReached:
    - CPLString::substr
    - CPLString::find_first_not_of
    - CPLString::find_first_of
    - CPLGetXMLValue
    - EQUALN
    - getFname
    - CPLString::empty
    - CPLString::find_last_of
    linkageType: ''
    returnType: CPLString
    signature: "CPLString getFname(CPLXMLNode *node, const char *token, const CPLString
      &in,\n                   const char *def)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atof
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - node
    - pszPath
    - def
    argTypes:
    - CPLXMLNode*
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: getXMLNum
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - atof
    linkageType: ''
    returnType: double
    signature: double getXMLNum(CPLXMLNode *node, const char *pszPath, double def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - img
    argTypes:
    - ILSize
    - ILImage
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: IdxOffset
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig IdxOffset(const ILSize &pos, const ILImage &img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - comp
    argTypes:
    - GDALDataType
    - ILCompression
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: is_Endianness_Dependent
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeSize
    linkageType: ''
    returnType: bool
    signature: bool is_Endianness_Dependent(GDALDataType dt, ILCompression comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:355,1
    - Dst: PNG_Band::PNG_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:361,1
    - Dst: JPEG_Band::JPEG_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:366,1
    - Dst: JPNG_Band::JPNG_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:371,1
    - Dst: Raw_Band::Raw_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:375,1
    - Dst: LERC_Band::LERC_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:379,1
    - Dst: QB3_Band::QB3_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:384,1
    - Dst: Raw_Band::Raw_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:389,1
    - Dst: MRFRasterBand*::SetDeflate
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:390,1
    - Dst: Raw_Band::Raw_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:395,1
    - Dst: MRFRasterBand*::SetZstd
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:396,1
    - Dst: TIF_Band::TIF_Band
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:402,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:405,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:411,1
    - Dst: MRFRasterBand*::SetAccess
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 420
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 420
    functionName: newMRFRasterBand
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - JPNG_Band::JPNG_Band
    - CPLErrorReset
    - LERC_Band::LERC_Band
    - Raw_Band::Raw_Band
    - QB3_Band::QB3_Band
    - CPLError
    - MRFRasterBand*::SetAccess
    - MRFRasterBand*::SetZstd
    - CPLGetLastErrorNo
    - MRFRasterBand*::SetDeflate
    - JPEG_Band::JPEG_Band
    - TIF_Band::TIF_Band
    - PNG_Band::PNG_Band
    linkageType: ''
    returnType: MRFRasterBand
    signature: "MRFRasterBand *newMRFRasterBand(MRFDataset *pDS, const ILImage &image,
      int b,\n                                int level)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:427,1
    - Dst: log
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - base
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: logbase
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double logbase(double val, double base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLIsEqual
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - base
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: IsPower
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - CPLIsEqual
    linkageType: ''
    returnType: int
    signature: int IsPower(double value, double base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - psRoot
    - pszElement
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 476
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 476
    functionName: SearchXMLSiblings
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *SearchXMLSiblings(CPLXMLNode *psRoot, const char *pszElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::FormatC
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:485,1
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:486,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:486,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - frmt
    argTypes:
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 494
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 494
    functionName: PrintDouble
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 3
    functionsReached:
    - CPLString::c_str
    - CPLString::FormatC
    - CPLString
    - CPLStrtod
    linkageType: ''
    returnType: CPLString
    signature: CPLString PrintDouble(double d, const char *frmt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:499,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - parent
    - pszName
    - pszVal
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: XMLSetAttributeVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 1
    functionsReached:
    - CPLCreateXMLNode
    - CPLSetXMLValue
    linkageType: ''
    returnType: void
    signature: "void XMLSetAttributeVal(CPLXMLNode *parent, const char *pszName,\n
      \                       const char *pszVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:506,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parent
    - pszName
    - val
    - frmt
    argTypes:
    - CPLXMLNode*
    - char*
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: XMLSetAttributeVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 2
    functionsReached:
    - PrintDouble
    - XMLSetAttributeVal
    linkageType: ''
    returnType: void
    signature: "void XMLSetAttributeVal(CPLXMLNode *parent, const char *pszName,\n
      \                       const double val, const char *frmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:512,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:513,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:514,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:516,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - parent
    - pszName
    - sz
    - frmt
    argTypes:
    - CPLXMLNode*
    - char*
    - ILSize
    - char*
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: XMLSetAttributeVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 3
    functionsReached:
    - CPLCreateXMLNode
    - XMLSetAttributeVal
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *XMLSetAttributeVal(CPLXMLNode *parent, const char *pszName,\n
      \                              const ILSize &sz, const char *frmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::empty
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:528,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:534,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:538,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:538,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:540,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:542,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:543,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - parent
    - pszName
    - values
    argTypes:
    - CPLXMLNode*
    - char*
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 545
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 545
    functionName: XMLSetAttributeVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 3
    functionsReached:
    - CPLCreateXMLNode
    - std::vector<double>::size
    - CPLString::pop_back
    - std::vector<double>::empty
    - CPLSetXMLValue
    - PrintDouble
    - CPLString::append
    linkageType: ''
    returnType: void
    signature: "void XMLSetAttributeVal(CPLXMLNode *parent, const char *pszName,\n
      \                       std::vector<double> const &values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:557,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:567,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fname
    - sz
    - eAccess
    argTypes:
    - char*
    - GIntBig
    - GDALAccess
    constantsTouched: []
    func_position:
      end: 574
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 574
    functionName: CheckFileSize
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    - VSIStatL
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int CheckFileSize(const char *fname, GIntBig sz, GDALAccess eAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRegister_mrf
      Src: /src/gdal/frmts/mrf/mrf_util.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: GDALRegister_MRF
    functionSourceFile: /src/gdal/frmts/mrf/mrf_util.cpp
    functionUses: 0
    functionsReached:
    - GDALRegister_mrf
    linkageType: ''
    returnType: void
    signature: void GDALRegister_MRF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:92,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - src
    - c
    - stride
    argTypes:
    - void*
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: cpy_stride_out
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: void
    signature: void cpy_stride_out(void *dst, void *src, int c, int stride)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - b
    - bytecount
    - ndv
    argTypes:
    - T*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: isAllVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: int
    signature: int isAllVal(const T *b, size_t bytecount, double ndv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:132,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:133,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:134,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:135,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:136,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:137,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:138,1
    - Dst: TEST_T
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - gt
    - b
    - bytecount
    - ndv
    argTypes:
    - GDALDataType
    - void*
    - size_t
    - double
    constantsTouched: []
    func_position:
      end: 148
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 148
    functionName: isAllVal
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - TEST_T
    linkageType: ''
    returnType: int
    signature: int isAllVal(GDALDataType gt, void *b, size_t bytecount, double ndv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:155,1
    - Dst: swab16
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:161,1
    - Dst: swab32
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:168,1
    - Dst: swab64
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - src
    - img
    argTypes:
    - buf_mgr
    - ILImage
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: swab_buff
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - swab32
    - swab64
    - swab16
    - GDALGetDataTypeSize
    linkageType: ''
    returnType: void
    signature: void swab_buff(buf_mgr &src, const ILImage &img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:188,1
    - Dst: reinterpret_cast<Bytef *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:189,1
    - Dst: reinterpret_cast<Bytef *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:191,1
    - Dst: deflateInit2
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:206,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:209,1
    - Dst: deflate
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:213,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:216,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - src
    - dst
    - flags
    argTypes:
    - buf_mgr
    - buf_mgr
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 222
    functionName: ZPack
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Bytef *>
    - deflate
    - memset
    - deflateEnd
    - deflateInit2
    linkageType: ''
    returnType: int
    signature: int ZPack(const buf_mgr &src, buf_mgr &dst, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:232,1
    - Dst: reinterpret_cast<Bytef *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:233,1
    - Dst: reinterpret_cast<Bytef *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:235,1
    - Dst: inflateInit2
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:240,1
    - Dst: inflate
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:244,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:247,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - src
    - dst
    - flags
    argTypes:
    - buf_mgr
    - buf_mgr
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 253
    functionName: ZUnPack
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Bytef *>
    - inflate
    - inflateInit2
    - inflateEnd
    - memset
    linkageType: ''
    returnType: int
    signature: int ZUnPack(const buf_mgr &src, buf_mgr &dst, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:273,1
    - Dst: ZPack
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:279,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:287,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:289,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:300,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - src
    - extrasize
    - flags
    argTypes:
    - buf_mgr
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 303
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 303
    functionName: DeflateBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - VSIMalloc
    - CPLError
    - memcpy
    - CPLFree
    - ZPack
    linkageType: ''
    returnType: void
    signature: void *DeflateBlock(buf_mgr &src, size_t extrasize, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:318,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:318,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - src
    - factor
    argTypes:
    - buf_mgr
    - size_t
    constantsTouched: []
    func_position:
      end: 331
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 331
    functionName: rankfilter
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - reinterpret_cast<GByte *>
    - std::vector::data
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: "CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW rankfilter(buf_mgr &src,\n                                                            size_t
      factor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:337,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:354,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - src
    - factor
    argTypes:
    - buf_mgr
    - size_t
    constantsTouched: []
    func_position:
      end: 356
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 356
    functionName: derank
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - memcpy
    - reinterpret_cast<GByte *>
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: "CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW derank(buf_mgr &src,\n                                                        size_t
      factor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rankfilter
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:371,1
    - Dst: ZSTD_compressBound
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:379,1
    - Dst: ZSTD_compressBound
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:381,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:382,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:383,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:391,1
    - Dst: ZSTD_compressStream2
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:396,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:397,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:402,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:410,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:415,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - src
    - extrasize
    - c_level
    - cctx
    - ranks
    argTypes:
    - buf_mgr
    - size_t
    - int
    - ZSTD_CCtx*
    - size_t
    constantsTouched: []
    func_position:
      end: 418
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 418
    functionName: ZstdCompBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - ZSTD_compressStream2
    - memcpy
    - ZSTD_compressBound
    - ZSTD_isError
    - rankfilter
    - CPLError
    - ZSTD_CCtx_setParameter
    - std::vector::empty
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void *ZstdCompBlock(buf_mgr &src, size_t extrasize, int c_level,\n
      \                          ZSTD_CCtx *cctx, size_t ranks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:429,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:432,1
    - Dst: MRFRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:443,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:446,1
    - Dst: GetOptlist
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:448,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:453,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:455,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:457,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:459,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:468,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - parent_dataset
    - image
    - band
    - ov
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 476
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 476
    functionName: MRFRasterBand::MRFRasterBand
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetOptlist
    - CPLError
    - MRFRasterBand::GetNoDataValue
    linkageType: ''
    returnType: void
    signature: "void MRFRasterBand::MRFRasterBand(MRFDataset *parent_dataset, const
      ILImage &image,\n                             int band, int ov)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:481,1
    - Dst: back
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:483,1
    - Dst: pop_back
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: MRFRasterBand::~MRFRasterBand()
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    linkageType: ''
    returnType: void
    signature: void MRFRasterBand::~MRFRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opt
    - def
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: MRFRasterBand::GetOptionValue
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    linkageType: ''
    returnType: char
    signature: "char *MRFRasterBand::GetOptionValue(const char *opt,\n                                          const
      char *def) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:502,1
    - Dst: std::vector<double>::size
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - std::vector<double>
    - int
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: getBandValue
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - std::vector<double>::size
    - static_cast<int>
    linkageType: ''
    returnType: double
    signature: double getBandValue(const std::vector<double> &v, int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:513,1
    - Dst: GInt32
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:517,1
    - Dst: vNoData::size
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:517,1
    - Dst: vNoData::resize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 524
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 524
    functionName: MRFRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - vNoData::size
    - GInt32
    - vNoData::resize
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::SetNoDataValue(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:529,1
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:530,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 534
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 534
    functionName: MRFRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - getBandValue
    - std::vector::empty
    - GDALPamRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double MRFRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:539,1
    - Dst: MRFRasterBand::GetMinimum
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:540,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: MRFRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - MRFRasterBand::GetMinimum
    - getBandValue
    - std::vector::empty
    linkageType: ''
    returnType: double
    signature: double MRFRasterBand::GetMinimum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:549,1
    - Dst: MRFRasterBand::GetMaximum
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:550,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 554
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 554
    functionName: MRFRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - getBandValue
    - std::vector::empty
    - MRFRasterBand::GetMaximum
    linkageType: ''
    returnType: double
    signature: double MRFRasterBand::GetMaximum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - count
    - ndv
    argTypes:
    - void*
    - size_t
    - T
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: buff_fill
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<T *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr buff_fill(void *b, size_t count, const T ndv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:582,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:590,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:592,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:594,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:596,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:598,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:600,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:602,1
    - Dst: bf
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 611
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 611
    functionName: MRFRasterBand::FillBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - memset
    - bf
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::FillBlock(void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:625,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:626,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:627,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:632,1
    - Dst: GDALRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:636,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:639,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:639,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:640,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:645,1
    - Dst: DropLock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 649
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 649
    functionName: MRFRasterBand::FillBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - DropLock
    - GDALRasterBand*::GetLockedBlockRef
    - GetRasterBand
    - GDALRasterBand*::GetOverviewCount
    - GDALRasterBand*::GetOverview
    - GDALRasterBlock*::GetDataRef
    - std::vector::push_back
    - MRFRasterBand::FillBlock
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::FillBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:663,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:664,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:665,1
    - Dst: GDALRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:671,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:674,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:675,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:686,1
    - Dst: CpySI
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:689,1
    - Dst: CpySI
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:692,1
    - Dst: CpySI
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:695,1
    - Dst: CpySI
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:698,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:706,1
    - Dst: DropLock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:707,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 710
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 710
    functionName: MRFRasterBand::ReadInterleavedBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeSize
    - std::vector::size
    - DropLock
    - GDALRasterBand*::GetLockedBlockRef
    - GetRasterBand
    - GDALRasterBand*::GetOverviewCount
    - CpySI
    - GDALRasterBand*::GetOverview
    - GDALRasterBlock*::GetDataRef
    - std::vector::push_back
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::ReadInterleavedBlock(int xblk, int yblk, void
      *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:723,1
    - Dst: source::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:723,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:724,1
    - Dst: MRFRasterBand::FetchClonedBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:728,1
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:732,1
    - Dst: GetSrcDS
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:735,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:737,1
    - Dst: source::c_str
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:738,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:748,1
    - Dst: GetPBuffer
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:770,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:774,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:777,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:778,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:779,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:791,1
    - Dst: MRFRasterBand::ReadInterleavedBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:797,1
    - Dst: isAllVal
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:807,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:810,1
    - Dst: MRFRasterBand::ReadInterleavedBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:813,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:822,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:828,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:829,1
    - Dst: Compress
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:830,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:839,1
    - Dst: DeflateBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:840,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:844,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:855,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:855,1
    - Dst: ZstdCompBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:856,1
    - Dst: getzsc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:857,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:860,1
    - Dst: duration_cast<nanoseconds>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:868,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:868,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:871,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:872,1
    - Dst: MRFRasterBand::ReadInterleavedBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:879,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 880
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 880
    functionName: MRFRasterBand::FetchBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - WriteTile
    - MRFRasterBand::FetchClonedBlock
    - assert
    - CPLDebug
    - MRFRasterBand::ReadInterleavedBlock
    - pcount
    - CPLError
    - isAllVal
    - IdxOffset
    - ZstdCompBlock
    - source::empty
    - duration_cast<nanoseconds>
    - GDALGetDataTypeSizeBytes
    - getzsc
    - GetPBuffer
    - GetSrcDS
    - steady_clock::now
    - CPLAssert
    - static_cast<char *>
    - MRFRasterBand::FillBlock
    - CPLFree
    - static_cast<size_t>
    - source::c_str
    - Compress
    - DeflateBlock
    - GDALDataset*::RasterIO
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::FetchBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:893,1
    - Dst: assert
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:897,1
    - Dst: static_cast<MRFDataset *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:898,1
    - Dst: GetSrcDS
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:898,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:901,1
    - Dst: source::c_str
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:902,1
    - Dst: DataMode
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:906,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:911,1
    - Dst: MRFDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:911,1
    - Dst: MRFRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:912,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:913,1
    - Dst: MRFRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:913,1
    - Dst: MRFRasterBand*::IReadBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:916,1
    - Dst: ReadTileIdx
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:924,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:926,1
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:931,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:937,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:940,1
    - Dst: MRFDataset*::DataFP
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:943,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:946,1
    - Dst: source::c_str
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:948,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:955,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:962,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:967,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:969,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:969,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:971,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:972,1
    - Dst: MRFDataset*::current::datfname::c_str
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:974,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:979,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:980,1
    - Dst: MRFRasterBand::IReadBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:984,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 985
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 985
    functionName: MRFRasterBand::FetchClonedBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - WriteTile
    - GIntBig
    - assert
    - CPLDebug
    - DataMode
    - CPLError
    - MRFDataset*::DataFP
    - IdxOffset
    - ReadTileIdx
    - GetSrcDS
    - static_cast<MRFRasterBand *>
    - VSIFSeekL
    - MRFRasterBand*::GetOverviewCount
    - static_cast<MRFDataset *>
    - MRFRasterBand*::GetOverview
    - VSIFReadL
    - MRFRasterBand::IReadBlock
    - MRFRasterBand::FillBlock
    - CPLFree
    - static_cast<size_t>
    - source::c_str
    - MRFDataset*::current::datfname::c_str
    - MRFDataset*::GetRasterBand
    - MRFRasterBand*::IReadBlock
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::FetchClonedBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1001,1
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1003,1
    - Dst: source::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1006,1
    - Dst: MRFRasterBand::FetchBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1007,1
    - Dst: ReadTileIdx
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1010,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1014,1
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1016,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1019,1
    - Dst: source::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1028,1
    - Dst: IdxMode
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1028,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1029,1
    - Dst: MRFRasterBand::FetchBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1032,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1035,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1057,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1061,1
    - Dst: DataFP
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1064,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1073,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1080,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1081,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1081,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1083,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1085,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1086,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1087,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1087,1
    - Dst: memset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1092,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1092,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1093,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1096,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1103,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1104,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1111,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1111,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1114,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1115,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1116,1
    - Dst: ZUnPack
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1120,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1122,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1128,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1130,1
    - Dst: getzsd
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1138,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1141,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1142,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1147,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1148,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1155,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1155,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1159,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1160,1
    - Dst: ZSTD_decompressDCtx
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1164,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1166,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1170,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1175,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1181,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1181,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1185,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1186,1
    - Dst: derank
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1187,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1193,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1194,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1198,1
    - Dst: GetPBuffer
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1199,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1203,1
    - Dst: Decompress
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1204,1
    - Dst: duration_cast<nanoseconds>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1207,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1207,1
    - Dst: is_Endianness_Dependent
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1213,1
    - Dst: swab_buff
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1214,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1216,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1219,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1222,1
    - Dst: MRFRasterBand::FillBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1223,1
    - Dst: MRFRasterBand::ReadInterleavedBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1231,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 116
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1232
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1232
    functionName: MRFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - getzsd
    - CPLDebug
    - VSIMalloc
    - derank
    - MRFRasterBand::ReadInterleavedBlock
    - ZSTD_decompressDCtx
    - CPLError
    - IdxOffset
    - reinterpret_cast<char *>
    - ReadTileIdx
    - CPLPopErrorHandler
    - Decompress
    - source::empty
    - duration_cast<nanoseconds>
    - GDALGetDataTypeSizeBytes
    - swab_buff
    - static_cast<int>
    - GetPBuffer
    - is_Endianness_Dependent
    - VSIFSeekL
    - IdxMode
    - DataFP
    - steady_clock::now
    - ZSTD_isError
    - VSIFReadL
    - static_cast<char *>
    - MRFRasterBand::FillBlock
    - CPLFree
    - static_cast<size_t>
    - MRFRasterBand::FetchBlock
    - CPLPushErrorHandler
    - memset
    - ZUnPack
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::IReadBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1248,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1250,1
    - Dst: Crystalize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1254,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1256,1
    - Dst: isAllVal
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1267,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1268,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1271,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1275,1
    - Dst: GetPBuffer
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1276,1
    - Dst: GetPBufferSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1277,1
    - Dst: is_Endianness_Dependent
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1280,1
    - Dst: swab_buff
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1281,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1283,1
    - Dst: Compress
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1287,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1293,1
    - Dst: DeflateBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1295,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1298,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1308,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1308,1
    - Dst: ZstdCompBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1309,1
    - Dst: getzsc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1310,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1313,1
    - Dst: duration_cast<nanoseconds>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1320,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1320,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1321,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1337,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1350,1
    - Dst: bandbit
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1351,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1355,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1358,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1359,1
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1359,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1365,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1365,1
    - Dst: bandbit
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1366,1
    - Dst: isAllVal
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1375,1
    - Dst: blockSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1375,1
    - Dst: bandbit
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1376,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1385,1
    - Dst: CpySO
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1388,1
    - Dst: CpySO
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1391,1
    - Dst: CpySO
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1394,1
    - Dst: CpySO
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1397,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1401,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1404,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1407,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1408,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1410,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1417,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1418,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1427,1
    - Dst: AllBandMask
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1427,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1429,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1430,1
    - Dst: AllBandMask
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1433,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1434,1
    - Dst: AllBandMask
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1437,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1441,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1449,1
    - Dst: Compress
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1451,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1455,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1456,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1467,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1468,1
    - Dst: DeflateBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1469,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1470,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1474,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1480,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1481,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1485,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1485,1
    - Dst: ZstdCompBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1486,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1487,1
    - Dst: getzsc
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1489,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1491,1
    - Dst: duration_cast<nanoseconds>
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1497,1
    - Dst: steady_clock::now
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1497,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1501,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1502,1
    - Dst: WriteTile
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1507,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1508,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 128
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1512
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1512
    functionName: MRFRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - WriteTile
    - GIntBig
    - GetRasterBand
    - CPLDebug
    - GetPBufferSize
    - CPLError
    - GDALRasterBlock*::DropLock
    - TryGetLockedBlockRef
    - bandbit
    - IdxOffset
    - reinterpret_cast<char *>
    - ZstdCompBlock
    - blockSizeBytes
    - ILSize
    - Crystalize
    - GDALRasterBand*::GetOverview
    - GDALRasterBlock*::GetDataRef
    - duration_cast<nanoseconds>
    - AllBandMask
    - GDALGetDataTypeSizeBytes
    - swab_buff
    - getzsc
    - GetPBuffer
    - is_Endianness_Dependent
    - CpySO
    - steady_clock::now
    - CPLAssert
    - static_cast<char *>
    - GDALRasterBlock*::MarkClean
    - CPLFree
    - static_cast<size_t>
    - GDALGetDataTypeSize
    - Compress
    - DeflateBlock
    - reinterpret_cast<MRFRasterBand *>
    - memcpy
    - isAllVal
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFRasterBand::IWriteBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: source::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1521,1
    - Dst: ReadTileIdx
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1533,1
    - Dst: source::empty
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1542,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - xblk
    - yblk
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1543
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1543
    functionName: MRFRasterBand::TestBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - source::empty
    - ReadTileIdx
    linkageType: ''
    returnType: bool
    signature: bool MRFRasterBand::TestBlock(int xblk, int yblk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1552
    functionName: MRFRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    linkageType: ''
    returnType: int
    signature: int MRFRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1557,1
    - Dst: GDALOpenFileGDBRasterBand::GetOverview
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1560
      start: 1554
    functionDepth: 2
    functionLinenumber: 1554
    functionLinenumberEnd: 1560
    functionName: MRFRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - size
    - GDALOpenFileGDBRasterBand::GetOverview
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *MRFRasterBand::GetOverview(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 1569
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1569
    functionName: Raw_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr Raw_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::IReadBlock
      Src: /src/gdal/frmts/mrf/mrf_band.cpp:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1574
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1574
    functionName: MRFLRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/mrf/mrf_band.cpp
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::IReadBlock
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFLRasterBand::IReadBlock(int xblk, int yblk, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:24,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:32,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:35,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:38,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:41,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:44,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:47,1
    - Dst: CREATE_QB3
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:50,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:53,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:61,1
    - Dst: qb3_max_encoded_size
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:69,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:71,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:77,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:78,1
    - Dst: GetPhotometricInterpretation
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:78,1
    - Dst: qb3_set_encoder_coreband
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:81,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:84,1
    - Dst: qb3_set_encoder_coreband
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:85,1
    - Dst: data
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:85,1
    - Dst: qb3_set_encoder_mode
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:88,1
    - Dst: qb3_set_encoder_mode
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:93,1
    - Dst: qb3_encode
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:96,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:99,1
    - Dst: qb3_max_encoded_size
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:105,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:107,1
    - Dst: qb3_destroy_encoder
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:116,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 118
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 118
    functionName: QB3_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/QB3_band.cpp
    functionUses: 0
    functionsReached:
    - qb3_max_encoded_size
    - static_cast<size_t>
    - qb3_encode
    - empty
    - EQUAL
    - qb3_set_encoder_coreband
    - qb3_destroy_encoder
    - CPLError
    - CREATE_QB3
    - data
    - GetPhotometricInterpretation
    - qb3_set_encoder_mode
    linkageType: ''
    returnType: NAMESPACE_MRF_START
    signature: NAMESPACE_MRF_START QB3_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qb3_read_start
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:123,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:126,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:134,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:135,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:136,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:138,1
    - Dst: qb3_read_info
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:143,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:145,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:150,1
    - Dst: qb3_decoded_size
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:150,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:152,1
    - Dst: qb3_read_data
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:157,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:160,1
    - Dst: qb3_destroy_decoder
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:168,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 170
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 170
    functionName: QB3_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/QB3_band.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - qb3_destroy_decoder
    - qb3_read_info
    - qb3_read_start
    - qb3_read_data
    - qb3_decoded_size
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr QB3_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:185,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:190,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:190,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:192,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:200,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:201,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:204,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:204,1
    - Dst: resize
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:205,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:209,1
    - Dst: std::isdigit
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:210,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:212,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:215,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:222,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:227,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:229,1
    - Dst: MRFDataset*::SetPBufferSize
      Src: /src/gdal/frmts/mrf/QB3_band.cpp:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 238
    functionName: QB3_Band::QB3_Band
    functionSourceFile: /src/gdal/frmts/mrf/QB3_band.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - GDALDataTypeIsInteger
    - static_cast<size_t>
    - CSLTokenizeString2
    - atoi
    - CSLDestroy
    - std::isdigit
    - strlen
    - MRFDataset*::SetPBufferSize
    - GDALDataTypeIsComplex
    - CPLError
    - resize
    - std::string::c_str
    - GetOptionValue
    linkageType: ''
    returnType: void
    signature: void QB3_Band::QB3_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Chunks
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Chunks(int x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Chunks
      Src: /src/gdal/frmts/mrf/BitMask2D.h:94,1
    - Dst: BitMap2D::init
      Src: /src/gdal/frmts/mrf/BitMask2D.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: BitMap2D::BitMap2D
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - Chunks
    - BitMap2D::init
    linkageType: ''
    returnType: void
    signature: void BitMap2D(unsigned int width, unsigned int height)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: BitMap2D::getWidth
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: BitMap2D::getHeight
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::size
      Src: /src/gdal/frmts/mrf/BitMask2D.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: BitMap2D::size
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 1
    functionsReached:
    - BitMap2D::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::_idx
      Src: /src/gdal/frmts/mrf/BitMask2D.h:121,1
    - Dst: BitMap2D::_bitmask
      Src: /src/gdal/frmts/mrf/BitMask2D.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: BitMap2D::isSet
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - BitMap2D::_bitmask
    - BitMap2D::_idx
    linkageType: ''
    returnType: bool
    signature: bool isSet(int x, int y) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::_idx
      Src: /src/gdal/frmts/mrf/BitMask2D.h:126,1
    - Dst: BitMap2D::_bitmask
      Src: /src/gdal/frmts/mrf/BitMask2D.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: BitMap2D::set
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - BitMap2D::_bitmask
    - BitMap2D::_idx
    linkageType: ''
    returnType: void
    signature: void set(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::_idx
      Src: /src/gdal/frmts/mrf/BitMask2D.h:131,1
    - Dst: BitMap2D::_bitmask
      Src: /src/gdal/frmts/mrf/BitMask2D.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: BitMap2D::clear
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - BitMap2D::_bitmask
    - BitMap2D::_idx
    linkageType: ''
    returnType: void
    signature: void clear(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::set
      Src: /src/gdal/frmts/mrf/BitMask2D.h:138,1
    - Dst: BitMap2D::clear
      Src: /src/gdal/frmts/mrf/BitMask2D.h:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: BitMap2D::assign
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - BitMap2D::set
    - BitMap2D::clear
    linkageType: ''
    returnType: void
    signature: void assign(int x, int y, bool val = true)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::_idx
      Src: /src/gdal/frmts/mrf/BitMask2D.h:146,1
    - Dst: BitMap2D::_bitmask
      Src: /src/gdal/frmts/mrf/BitMask2D.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: BitMap2D::flip
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached:
    - BitMap2D::_bitmask
    - BitMap2D::_idx
    linkageType: ''
    returnType: void
    signature: void flip(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::assign
      Src: /src/gdal/frmts/mrf/BitMask2D.h:153,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:154,1
    - Dst: Chunks
      Src: /src/gdal/frmts/mrf/BitMask2D.h:154,1
    - Dst: Chunks
      Src: /src/gdal/frmts/mrf/BitMask2D.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: BitMap2D::init
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - BitMap2D::assign
    - Chunks
    linkageType: ''
    returnType: void
    signature: void init(T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packer
    argTypes:
    - Packer*
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: BitMap2D::set_packer
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_packer(Packer *packer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:168,1
    - Dst: BitMap2D::size
      Src: /src/gdal/frmts/mrf/BitMask2D.h:168,1
    - Dst: BitMap2D::swab
      Src: /src/gdal/frmts/mrf/BitMask2D.h:170,1
    - Dst: BitMap2D::store
      Src: /src/gdal/frmts/mrf/BitMask2D.h:172,1
    - Dst: Packer
      Src: /src/gdal/frmts/mrf/BitMask2D.h:174,1
    - Dst: BitMap2D::swab
      Src: /src/gdal/frmts/mrf/BitMask2D.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: BitMap2D::store
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 1
    functionsReached:
    - BitMap2D::store
    - reinterpret_cast<char *>
    - BitMap2D::size
    - Packer
    - BitMap2D::swab
    linkageType: ''
    returnType: int
    signature: int store(storage_manager *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:182,1
    - Dst: BitMap2D::size
      Src: /src/gdal/frmts/mrf/BitMask2D.h:182,1
    - Dst: BitMap2D::load
      Src: /src/gdal/frmts/mrf/BitMask2D.h:184,1
    - Dst: Packer
      Src: /src/gdal/frmts/mrf/BitMask2D.h:186,1
    - Dst: BitMap2D::swab
      Src: /src/gdal/frmts/mrf/BitMask2D.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: BitMap2D::load
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 1
    functionsReached:
    - BitMap2D::load
    - reinterpret_cast<char *>
    - BitMap2D::size
    - Packer
    - BitMap2D::swab
    linkageType: ''
    returnType: int
    signature: int load(storage_manager *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: BitMap2D::_idx
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _idx(int x, int y) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: BitMap2D::_bitmask
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 4
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T _bitmask(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: BitMap2D::swab
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swab()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMap2D::size
      Src: /src/gdal/frmts/mrf/BitMask2D.h:214,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/mrf/BitMask2D.h:218,1
    - Dst: reinterpret_cast<GUIntBig *>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:218,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/mrf/BitMask2D.h:222,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/mrf/BitMask2D.h:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 225
    functionName: BitMap2D::swab
    functionSourceFile: /src/gdal/frmts/mrf/BitMask2D.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<GUIntBig *>
    - BitMap2D::size
    - CPL_SWAP64PTR
    - reinterpret_cast<GUInt16 *>
    - CPL_SWAP16PTR
    linkageType: ''
    returnType: void
    signature: void swab()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: IsLerc1
    functionSourceFile: /src/gdal/frmts/mrf/mrfdrivercore.cpp
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool IsLerc1(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: IsLerc2
    functionSourceFile: /src/gdal/frmts/mrf/mrfdrivercore.cpp
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool IsLerc2(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:80,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:84,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:91,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:92,1
    - Dst: IsLerc1
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:96,1
    - Dst: IsLerc2
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:96,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:101,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:102,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:103,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:103,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 110
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 110
    functionName: MRFDriverIdentify
    functionSourceFile: /src/gdal/frmts/mrf/mrfdrivercore.cpp
    functionUses: 0
    functionsReached:
    - CPLGetPathSafe
    - CPLString::assign
    - IsLerc1
    - CPLString::size
    - strlen
    - IsLerc2
    - CPLString::find
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int MRFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:118,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:119,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:120,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:121,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:122,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:123,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:125,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:135,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:140,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:141,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: MRFDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/mrf/mrfdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void MRFDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:152,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:156,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:158,1
    - Dst: MRFDriverSetCommonMetadata
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:161,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/mrf/mrfdrivercore.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: DeclareDeferredMRFPlugin
    functionSourceFile: /src/gdal/frmts/mrf/mrfdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - MRFDriverSetCommonMetadata
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredMRFPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: storage_manager
    functionSourceFile: /src/gdal/frmts/mrf/Packer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMESPACE_MRF_START
    signature: NAMESPACE_MRF_START storage_manager
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/gdal/frmts/mrf/Packer.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - storage_manager*
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: Packer::load
    functionSourceFile: /src/gdal/frmts/mrf/Packer.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: int
    signature: int load(storage_manager *src, storage_manager *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Packer::load
      Src: /src/gdal/frmts/mrf/Packer.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - storage_manager*
    - storage_manager*
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Packer::store
    functionSourceFile: /src/gdal/frmts/mrf/Packer.h
    functionUses: 0
    functionsReached:
    - Packer::load
    linkageType: ''
    returnType: int
    signature: int store(storage_manager *src, storage_manager *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: flush_png
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMESPACE_MRF_START
    signature: NAMESPACE_MRF_START flush_png(png_structp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - png_const_charp
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: pngWH
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void pngWH(png_struct * /*png*/, png_const_charp message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:89,1
    - Dst: longjmp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:90,1
    - Dst: png_jmpbuf
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - png
    - message
    argTypes:
    - png_struct*
    - png_const_charp
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: pngEH
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - longjmp
    - png_jmpbuf
    linkageType: ''
    returnType: void
    signature: void pngEH(png_struct *png, png_const_charp message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png_get_io_ptr
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:98,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:101,1
    - Dst: longjmp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:103,1
    - Dst: png_jmpbuf
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:103,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pngp
    - data
    - length
    argTypes:
    - png_structp
    - png_bytep
    - png_size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: read_png
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - longjmp
    - CPLError
    - memcpy
    - png_jmpbuf
    - png_get_io_ptr
    linkageType: ''
    returnType: void
    signature: void read_png(png_structp pngp, png_bytep data, png_size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png_get_io_ptr
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:112,1
    - Dst: assert
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:114,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pngp
    - data
    - length
    argTypes:
    - png_structp
    - png_bytep
    - png_size_t
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: write_png
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - assert
    - png_get_io_ptr
    - memcpy
    linkageType: ''
    returnType: void
    signature: void write_png(png_structp pngp, png_bytep data, png_size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<volatile png_bytep *>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:129,1
    - Dst: png_create_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:132,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:136,1
    - Dst: png_create_info_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:141,1
    - Dst: png_destroy_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:144,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:145,1
    - Dst: setjmp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:149,1
    - Dst: png_jmpbuf
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:149,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:151,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:153,1
    - Dst: png_destroy_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:154,1
    - Dst: png_set_read_fn
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:159,1
    - Dst: png_read_info
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:161,1
    - Dst: png_get_bit_depth
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:163,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:167,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:168,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:168,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:169,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:169,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:172,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:172,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:173,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:174,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:174,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:175,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:175,1
    - Dst: auto::RasterIO
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:178,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:179,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:180,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:180,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:181,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:181,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:182,1
    - Dst: png_destroy_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:184,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:185,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:185,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:189,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:189,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:192,1
    - Dst: png_get_image_height
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:192,1
    - Dst: png_get_rowbytes
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:194,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:196,1
    - Dst: png_destroy_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:198,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:202,1
    - Dst: png_get_bit_depth
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:209,1
    - Dst: png_set_swap
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:211,1
    - Dst: png_read_update_info
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:213,1
    - Dst: png_read_image
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:220,1
    - Dst: png_read_end
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:224,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:229,1
    - Dst: png_destroy_read_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 232
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 232
    functionName: PNG_Codec::DecompressPNG
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - reinterpret_cast<GByte *>
    - png_read_end
    - png_set_swap
    - auto::GetRasterYSize
    - CPLError
    - png_create_read_struct
    - CPLString::c_str
    - reinterpret_cast<volatile png_bytep *>
    - OGRAPISpyOpen
    - png_read_update_info
    - CPLMalloc
    - setjmp
    - VSIUnlink
    - png_create_info_struct
    - png_set_read_fn
    - auto::RasterIO
    - png_get_image_height
    - png_destroy_read_struct
    - VSIFileFromMemBuffer
    - CPLFree
    - png_jmpbuf
    - png_get_rowbytes
    - std::unique_ptr<GDALDataset>
    - auto::GetRasterXSize
    - VSIFCloseL
    - auto::GetRasterCount
    - png_read_info
    - png_get_bit_depth
    - VSIMemGenerateHiddenFilename
    - static_cast<GInt32>
    - png_read_image
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PNG_Codec::DecompressPNG(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png_create_write_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:248,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:251,1
    - Dst: png_create_info_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:255,1
    - Dst: png_destroy_write_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:258,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:259,1
    - Dst: setjmp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:264,1
    - Dst: png_jmpbuf
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:264,1
    - Dst: png_destroy_write_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:267,1
    - Dst: png_set_write_fn
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:271,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:294,1
    - Dst: png_set_IHDR
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:300,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:301,1
    - Dst: png_get_asm_flags
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:311,1
    - Dst: png_get_asm_flagmask
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:312,1
    - Dst: png_set_asm_flags
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:313,1
    - Dst: png_set_compression_level
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:317,1
    - Dst: std::clamp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:317,1
    - Dst: png_set_compression_strategy
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:321,1
    - Dst: png_set_PLTE
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:326,1
    - Dst: png_set_tRNS
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:328,1
    - Dst: png_write_info
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:332,1
    - Dst: png_set_swap
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:336,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:340,1
    - Dst: setjmp
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:342,1
    - Dst: png_jmpbuf
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:342,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:344,1
    - Dst: png_destroy_write_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:345,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:346,1
    - Dst: png_write_image
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:355,1
    - Dst: png_write_end
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:356,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:359,1
    - Dst: png_destroy_write_struct
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:360,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 368
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 368
    functionName: PNG_Codec::CompressPNG
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 1
    functionsReached:
    - png_set_compression_strategy
    - png_set_swap
    - std::clamp
    - png_set_PLTE
    - CPLError
    - png_get_asm_flags
    - png_set_IHDR
    - png_set_write_fn
    - png_write_image
    - png_set_tRNS
    - CPLMalloc
    - png_write_end
    - png_set_asm_flags
    - png_create_write_struct
    - setjmp
    - png_create_info_struct
    - png_destroy_write_struct
    - png_jmpbuf
    - CPLFree
    - GDALGetDataTypeSize
    - png_write_info
    - png_set_compression_level
    - png_get_asm_flagmask
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PNG_Codec::CompressPNG(buf_mgr &dst, const buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:373,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:376,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - poCT
    - codec
    argTypes:
    - GDALColorTable*
    - PNG_Codec
    constantsTouched: []
    func_position:
      end: 399
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 399
    functionName: ResetPalette
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - GDALColorTable*::GetColorEntryCount
    - GDALColorTable*::GetColorEntryAsRGB
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void ResetPalette(GDALColorTable *poCT, PNG_Codec &codec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecompressPNG
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: PNG_Band::Decompress
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - DecompressPNG
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PNG_Band::Decompress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetColorTable
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:410,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:413,1
    - Dst: ResetPalette
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:417,1
    - Dst: CompressPNG
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 422
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 422
    functionName: PNG_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CompressPNG
    - GetColorTable
    - ResetPalette
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PNG_Band::Compress(buf_mgr &dst, buf_mgr &src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:434,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:440,1
    - Dst: SetPBufferSize
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:446,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/PNG_band.cpp:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 448
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 448
    functionName: PNG_Band::PNG_Band
    functionSourceFile: /src/gdal/frmts/mrf/PNG_band.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - SetPBufferSize
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: void PNG_Band::PNG_Band(MRFDataset *pDS, const ILImage &image, int
      b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:104,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sz
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: MRFDataset::SetPBuffer
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: bool
    signature: bool MRFDataset::SetPBuffer(unsigned int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:121,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:121,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:122,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:122,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:123,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:123,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:124,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: GetXMLColorEntry
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<short>
    - getXMLNum
    linkageType: ''
    returnType: GDALColorEntry
    signature: GDALColorEntry GetXMLColorEntry(CPLXMLNode *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:139,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:139,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:146,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 151
    functionName: MRFDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - ToHandle
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int MRFDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::Crystalize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:156,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:159,1
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:162,1
    - Dst: MRFDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:163,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:166,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:168,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:173,1
    - Dst: ZSTD_freeCCtx
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:176,1
    - Dst: static_cast<ZSTD_CCtx *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:176,1
    - Dst: ZSTD_freeDCtx
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:177,1
    - Dst: static_cast<ZSTD_DCtx *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:177,1
    - Dst: count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:180,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:181,1
    - Dst: count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:182,1
    - Dst: count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:184,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:185,1
    - Dst: count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 187
    functionName: MRFDataset::~MRFDataset()
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - OGRDGNV8DataSource::FlushCache
    - VSIFCloseL
    - static_cast<ZSTD_CCtx *>
    - MRFDataset::CloseDependentDatasets
    - static_cast<ZSTD_DCtx *>
    - ZSTD_freeDCtx
    - CPLDebug
    - MRFDataset::Crystalize
    - ZSTD_freeCCtx
    - CPLError
    - CPLFree
    - count
    linkageType: ''
    returnType: void
    signature: void MRFDataset::~MRFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:202,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:207,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:207,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:208,1
    - Dst: MRFDataset::Crystalize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:210,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:212,1
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArgs
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 224
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 224
    functionName: MRFDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLDebug
    - MRFDataset::Crystalize
    - OGRNGWDataset::IRasterIO
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MRFDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int nYOff,\n
      \                            int nXSize, int nYSize, void *pData, int nBufXSize,\n
      \                            int nBufYSize, GDALDataType eBufType,\n                             int
      nBandCount, BANDMAP_TYPE panBandMap,\n                             GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                             GSpacing nBandSpace,\n
      \                            GDALRasterIOExtraArg *psExtraArgs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:244,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:249,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:255,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:257,1
    - Dst: GDALDataset::IBuildOverviews
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:258,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:266,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:269,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:269,1
    - Dst: auto*::overviews::empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:271,1
    - Dst: GDALDataset::IBuildOverviews
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:272,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:277,1
    - Dst: MRFDataset::ReadConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:292,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:297,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:299,1
    - Dst: strtod
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:308,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:308,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:310,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:314,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:319,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:320,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:321,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:323,1
    - Dst: MRFDataset::AddOverviews
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:331,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:334,1
    - Dst: CheckFileSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:337,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:339,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:346,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:347,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:347,1
    - Dst: MRFDataset::WriteConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:349,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:351,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:355,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:360,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:367,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:368,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:369,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:370,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:378,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:383,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:387,1
    - Dst: std::pow
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:389,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:394,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:394,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:397,1
    - Dst: IsPower
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:410,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:412,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:421,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:421,1
    - Dst: MRFRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:426,1
    - Dst: std::pow
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:433,1
    - Dst: std::pow
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:445,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:447,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:448,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:452,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:452,1
    - Dst: static_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:455,1
    - Dst: auto::GetOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:456,1
    - Dst: PatchOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:459,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:473,1
    - Dst: GetOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:476,1
    - Dst: GetOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:480,1
    - Dst: GDALCreateScaledProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:483,1
    - Dst: GDALRegenerateOverviewsMultiBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:487,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:490,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:493,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:498,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 117
    argCount: 8
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nBandsIn
    - panBandList
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - int*
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 506
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 506
    functionName: MRFDataset::IBuildOverviews
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    - GDALCreateScaledProgress
    - GetRasterBand
    - CPLDebug
    - MRFDataset::ReadConfig
    - MRFDataset::AddOverviews
    - CPLGetXMLValue
    - CPLError
    - EQUALN
    - CPLGetConfigOption
    - IsPower
    - CheckFileSize
    - pfnProgress
    - MRFDataset::WriteConfig
    - auto::GetOverview
    - std::pow
    - CPLTestBool
    - static_cast<int>
    - GetAccess
    - strtod
    - static_cast<MRFRasterBand *>
    - auto*::overviews::empty
    - CPLDestroyXMLNode
    - MRFRasterBand*::GetOverviewCount
    - std::vector::resize
    - GDALDestroyScaledProgress
    - GetOverview
    - EQUAL
    - GDALDataset::IBuildOverviews
    - PatchOverview
    - GDALRegenerateOverviewsMultiBand
    - CPLSetXMLValue
    - PrintDouble
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MRFDataset::IBuildOverviews(const char *pszResampling, int
      nOverviews,\n                                   const int *panOverviewList,
      int nBandsIn,\n                                   const int *panBandList,\n
      \                                  GDALProgressFunc pfnProgress,\n                                   void
      *pProgressData,\n                                   CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::clear
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:517,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:518,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:519,1
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:519,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - pszList
    argTypes:
    - std::vector<double>
    - char*
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: list2vec
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStrtod
    - CSLDestroy
    - std::vector<double>::push_back
    - CSLCount
    - std::vector<double>::clear
    linkageType: ''
    returnType: void
    signature: void list2vec(std::vector<double> &v, const char *pszList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: list2vec
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: MRFDataset::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - list2vec
    linkageType: ''
    returnType: void
    signature: void MRFDataset::SetNoDataValue(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: list2vec
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: MRFDataset::SetMinValue
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - list2vec
    linkageType: ''
    returnType: void
    signature: void MRFDataset::SetMinValue(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: list2vec
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: MRFDataset::SetMaxValue
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - list2vec
    linkageType: ''
    returnType: void
    signature: void MRFDataset::SetMaxValue(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:549,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: MRFDataset::ReadConfig
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLParseXMLString
    - CPLParseXMLFile
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *MRFDataset::ReadConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSerializeXMLTreeToFile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: MRFDataset::WriteConfig
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLSerializeXMLTreeToFile
    linkageType: ''
    returnType: int
    signature: int MRFDataset::WriteConfig(CPLXMLNode *config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vector<string>::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:578,1
    - Dst: string::substr
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:578,1
    - Dst: vector<string>::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:581,1
    - Dst: string::substr
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - theStringVector
    - theString
    argTypes:
    - vector<string>
    - string
    constantsTouched: []
    func_position:
      end: 584
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 584
    functionName: stringSplit
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - vector<string>::push_back
    - string::substr
    linkageType: ''
    returnType: void
    signature: "void stringSplit(vector<string> &theStringVector,  // Altered/returned
      value\n            const string &theString, size_t start = 0,\n            const
      char theDelimiter = ' ')"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vector<string>::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:591,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:593,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - theStringVector
    - prefix
    - def
    argTypes:
    - vector<string>
    - char
    - int
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: getnum
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - vector<string>::size
    - atoi
    linkageType: ''
    returnType: int
    signature: "int getnum(const vector<string> &theStringVector, const char prefix,\n
      \                 int def)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDriverIdentify
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:603,1
    - Dst: string::assign
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:621,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:622,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:623,1
    - Dst: string::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:624,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:626,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:626,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:627,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:627,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:627,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:628,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:628,1
    - Dst: string
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:630,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:631,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:631,1
    - Dst: LERC_Band::GetMRFConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:635,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:640,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:641,1
    - Dst: stringSplit
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:649,1
    - Dst: getnum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:650,1
    - Dst: getnum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:651,1
    - Dst: getnum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:652,1
    - Dst: string::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:653,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:654,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:655,1
    - Dst: MRFDataset::MRFDataset
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:663,1
    - Dst: string::empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:665,1
    - Dst: MRFDataset*::ProcessOpenOptions
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:675,1
    - Dst: MRFDataset*::Initialize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:678,1
    - Dst: MRFDataset::MRFDataset
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:682,1
    - Dst: MRFDataset*::cds::Initialize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:686,1
    - Dst: MRFDataset*::LevelInit
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:688,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:690,1
    - Dst: MRFDataset*::SetVersion
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:700,1
    - Dst: MRFDataset*::SetPhysicalFilename
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:709,1
    - Dst: MRFDataset*::TryLoadXML
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:712,1
    - Dst: MRFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 720
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 720
    functionName: MRFDataset::Open
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - getnum
    - MRFDataset*::SetVersion
    - string::empty
    - string::size
    - MRFDriverIdentify
    - EQUALN
    - STARTS_WITH
    - MRFDataset*::ProcessOpenOptions
    - MRFDataset*::LevelInit
    - MRFDataset*::Initialize
    - MRFDataset::MRFDataset
    - MRFDataset*::oOvManager::Initialize
    - strlen
    - MRFDataset*::TryLoadXML
    - string
    - MRFDataset*::SetPhysicalFilename
    - CPLDestroyXMLNode
    - stringSplit
    - CPLParseXMLString
    - string::c_str
    - MRFDataset*::cds::Initialize
    - CPLGetPathSafe
    - CPLParseXMLFile
    - LERC_Band::GetMRFConfig
    - string::assign
    - string::resize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *MRFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:727,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:735,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:735,1
    - Dst: MRFRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:737,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:740,1
    - Dst: MRFRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 747
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 747
    functionName: MRFDataset::SetVersion
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - reinterpret_cast<MRFRasterBand *>
    - MRFRasterBand*::GetOverview
    - MRFRasterBand*::GetOverviewCount
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::SetVersion(int version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:752,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:754,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:759,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:760,1
    - Dst: MRFDataset::GetSpatialRef
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:767,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:771,1
    - Dst: OrderName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:771,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:772,1
    - Dst: CompName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:772,1
    - Dst: MRFDataset::GetGeoTransform
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:774,1
    - Dst: SetBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:787,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:787,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:788,1
    - Dst: MRFLRasterBand::MRFLRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 790
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 790
    functionName: MRFDataset::LevelInit
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - SetBand
    - CompName
    - GetRasterBand
    - OrderName
    - reinterpret_cast<MRFRasterBand *>
    - MRFDataset::GetGeoTransform
    - MRFDataset::GetSpatialRef
    - CPLError
    - MRFLRasterBand::MRFLRasterBand
    - SetMetadataItem
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::LevelInit(const int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:797,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:797,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - pszValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 799
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 799
    functionName: 'on'
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1531
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: bool on(const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:818,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:824,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:828,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:828,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:828,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:829,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:829,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:830,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:830,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:831,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:831,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:836,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:838,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:843,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:843,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:844,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:846,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:850,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:850,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:850,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:851,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:851,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:853,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:853,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:857,1
    - Dst: CompToken
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:864,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:867,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:878,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:887,1
    - Dst: GDALColorTable*::CreateColorRamp
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:888,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:890,1
    - Dst: GetXMLColorEntry
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:894,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:898,1
    - Dst: GDALColorTable*::SetColorEntry
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:904,1
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:905,1
    - Dst: GetXMLColorEntry
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:908,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:913,1
    - Dst: GDALColorTable*::CreateColorRamp
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:918,1
    - Dst: MRFDataset*::SetColorTable
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:929,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:941,1
    - Dst: OrderToken
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:947,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:948,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:952,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:953,1
    - Dst: MRFDataset*::SetPhotometricInterpretation
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:959,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:961,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:961,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:964,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:970,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:971,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:971,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:972,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:974,1
    - Dst: is_Endianness_Dependent
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:979,1
    - Dst: 'on'
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:980,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:980,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:982,1
    - Dst: MRFDataset*::SetNoDataValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:987,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:988,1
    - Dst: MRFDataset*::SetMinValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:990,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:991,1
    - Dst: MRFDataset*::SetMaxValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:993,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1007,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1014,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1022,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1022,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1023,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1024,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1024,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1027,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1027,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1028,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1029,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1029,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 103
    argCount: 3
    argNames:
    - image
    - ds
    - defimage
    argTypes:
    - ILImage
    - MRFDataset*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1032
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 1032
    functionName: Init_Raster
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - MRFDataset*::SetColorTable
    - MRFDataset*::GetFname
    - GDALColorTable::GDALColorTable
    - getXMLNum
    - MRFDataset*::SetMinValue
    - CPLGetXMLValue
    - GDALColorTable*::SetColorEntry
    - CPLError
    - pcount
    - GDALColorTable*::CreateColorRamp
    - GDALGetDataTypeName
    - GetXMLColorEntry
    - OrderToken
    - 'on'
    - ILSize
    - getFname
    - static_cast<int>
    - MRFDataset*::SetPhotometricInterpretation
    - is_Endianness_Dependent
    - min
    - MRFDataset*::SetMaxValue
    - GDALCheckBandCount
    - MRFDataset*::SetNoDataValue
    - SearchXMLSiblings
    - CompToken
    - GDALGetDataTypeSize
    - CPLGetXMLNode
    - GDALGetDataTypeByName
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr Init_Raster(ILImage &image, MRFDataset *ds, CPLXMLNode *defimage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1039,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1043,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1043,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1044,1
    - Dst: string::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1057
    functionName: MRFDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - string::c_str
    - VSIStatExL
    - empty
    linkageType: ''
    returnType: char
    signature: char **MRFDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string::find_first_of
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1068,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1071,1
    - Dst: string::substr
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - fname
    argTypes:
    - string
    constantsTouched: []
    func_position:
      end: 1073
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1073
    functionName: mkdir_r
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - string::substr
    - VSIMkdir
    - string::find_first_of
    linkageType: ''
    returnType: void
    signature: void mkdir_r(string const &fname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1092,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1098,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1110,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1113,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1116,1
    - Dst: mkdir_r
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1119,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1120,1
    - Dst: CheckFileSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1130,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1132,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1134,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1138,1
    - Dst: CheckFileSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1147,1
    - Dst: CPLSleep
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1149,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1153,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1155,1
    - Dst: MRFDataset::IsSingleTile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1160,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1164,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1166,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1168,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1177,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1187,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1189,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1192,1
    - Dst: CheckFileSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1196,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1198,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1200,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1207,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1207,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1211,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1213,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1217
    functionName: MRFDataset::IdxFP
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - mkdir_r
    - empty
    - idxfname::c_str
    - CPLSleep
    - VSIFCloseL
    - CheckFileSize
    - MRFDataset::IsSingleTile
    - VSIFOpenL
    - CPLError
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *MRFDataset::IdxFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1231,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1237,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1242,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1248,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1251,1
    - Dst: datfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1251,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1256,1
    - Dst: mkdir_r
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1260,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1263,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1269,1
    - Dst: strerror
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1269,1
    - Dst: datfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1272
    functionName: MRFDataset::DataFP
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - mkdir_r
    - empty
    - strerror
    - CPLDebug
    - VSIFOpenL
    - CPLError
    - datfname::c_str
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *MRFDataset::DataFP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1278,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1280,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1283,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1286,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1288,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1292,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1295,1
    - Dst: MRFDataset::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1295,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1296,1
    - Dst: datfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1296,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1297,1
    - Dst: MRFDataset::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1297,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1298,1
    - Dst: idxfname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1298,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1300,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1300,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1303,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1304,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1310,1
    - Dst: CompName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1310,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1314,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1315,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1318,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1319,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1321,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1321,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1321,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1324,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1325,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1326,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1327,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1334,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1337,1
    - Dst: GetColorEntryCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1337,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1341,1
    - Dst: GetColorEntry
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1342,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1344,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1345,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1346,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1348,1
    - Dst: is_Endianness_Dependent
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1352,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1353,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1357,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1358,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1364,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1365,1
    - Dst: CPLSetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1366,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1366,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1368,1
    - Dst: MRFDataset::GetGeoTransform
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1372,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1380,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1381,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1382,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1383,1
    - Dst: XMLSetAttributeVal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1384,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1388,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1389,1
    - Dst: Count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1391,1
    - Dst: size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1394,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1399,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1400,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1404
    functionName: MRFDataset::BuildConfig
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    - GetColorEntryCount
    - GDALGetDataTypeName
    - CPLCreateXMLElementAndValue
    - getFname
    - datfname::c_str
    - MRFDataset::GetFname
    - is_Endianness_Dependent
    - XMLSetAttributeVal
    - GetColorEntry
    - Count
    - CPLString::pop_back
    - static_cast<double>
    - size
    - empty
    - idxfname::c_str
    - CompName
    - CPLCreateXMLNode
    - MRFDataset::GetGeoTransform
    - EQUAL
    - CPLSetXMLValue
    - PrintDouble
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *MRFDataset::BuildConfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init_Raster
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1420,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1420,1
    - Dst: 'on'
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1424,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1424,1
    - Dst: 'on'
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1425,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1425,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1426,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1426,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1429,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1430,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1430,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1435,1
    - Dst: atof
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1440,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1440,1
    - Dst: atof
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1441,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1441,1
    - Dst: atof
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1442,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1442,1
    - Dst: atof
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1443,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1443,1
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1456,1
    - Dst: SetFromUserInput
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1457,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1459,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1465,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1465,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1467,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1467,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1473,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1479,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1488,1
    - Dst: OrderName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1488,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1489,1
    - Dst: CompName
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1489,1
    - Dst: is_Endianness_Dependent
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1491,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1492,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1502,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1507,1
    - Dst: 'on'
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1510,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1510,1
    - Dst: Assign
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1512,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1512,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1513,1
    - Dst: Count
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1517,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1523,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1524,1
    - Dst: FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1524,1
    - Dst: newMRFRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1532,1
    - Dst: MRFDataset::GetColorTable
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1553,1
    - Dst: FetchBoolean
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1557,1
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1561,1
    - Dst: MRFRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1567,1
    - Dst: SetBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1568,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1571,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1577,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1577,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1579,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1582,1
    - Dst: MRFDataset::AddOverviews
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1587,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1591,1
    - Dst: IdxSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1596,1
    - Dst: MRFDataset::GetPBufferSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1601,1
    - Dst: MRFDataset::SetPBuffer
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1601,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1609,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 1
    argNames:
    - config
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 1614
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1614
    functionName: MRFDataset::Initialize
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    - atoi
    - atof
    - MRFDataset::GetColorTable
    - getXMLNum
    - MRFDataset::AddOverviews
    - FetchBoolean
    - CPLError
    - CPLGetXMLValue
    - CPLString::resize
    - MRFRasterBand*::SetColorInterpretation
    - Assign
    - MRFDataset::SetPBuffer
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - 'on'
    - strlen
    - CSLTokenizeString2
    - newMRFRasterBand
    - SetMetadataItem
    - SetFromUserInput
    - MRFDataset::GetPBufferSize
    - is_Endianness_Dependent
    - OrderName
    - Init_Raster
    - Count
    - IdxSize
    - SetBand
    - CompName
    - empty
    - VSIStatL
    - CPLGetXMLNode
    - EQUAL
    - FetchNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::Initialize(CPLXMLNode *config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find_first_of
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1619
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1619
    functionName: has_path
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find_first_of
    linkageType: ''
    returnType: bool
    signature: bool has_path(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find_first_of
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1624,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1625,1
    - Dst: isalpha
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1626,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 1629
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1629
    functionName: is_absolute
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::size
    - CPLString::find_first_of
    - isalpha
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool is_absolute(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1635,1
    - Dst: CPLString::find_first_of
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1635,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1637,1
    - Dst: CPLString::find_last_of
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - path
    argTypes:
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1641
      start: 1633
    functionDepth: 1
    functionLinenumber: 1633
    functionLinenumberEnd: 1641
    functionName: make_absolute
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::find_last_of
    - CPLString::find_first_of
    - CPLString::substr
    - is_absolute
    linkageType: ''
    returnType: bool
    signature: bool make_absolute(CPLString &name, const CPLString &path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1650,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1654,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1657,1
    - Dst: GDALOpenShared
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1657,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1657,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1658,1
    - Dst: make_absolute
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1661,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1662,1
    - Dst: GDALOpenShared
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1663,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1663,1
    - Dst: find
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1665,1
    - Dst: has_path
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1665,1
    - Dst: dynamic_cast<MRFDataset *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1669,1
    - Dst: make_absolute
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1676,1
    - Dst: make_absolute
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1677,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1681
    functionName: MRFDataset::GetSrcDS
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - FromHandle
    - empty
    - find
    - has_path
    - GDALOpenShared
    - CPLPopErrorHandler
    - make_absolute
    - CPLPushErrorHandler
    - dynamic_cast<MRFDataset *>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *MRFDataset::GetSrcDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1701,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1702,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1704,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1713,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1713,1
    - Dst: MRFRasterBand*::GetOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1714,1
    - Dst: MRFRasterBand*::AddOverview
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1715,1
    - Dst: newMRFRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - scaleIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1722
      start: 1689
    functionDepth: 4
    functionLinenumber: 1689
    functionLinenumberEnd: 1722
    functionName: MRFDataset::AddOverviews
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 2
    functionsReached:
    - MRFRasterBand*::AddOverview
    - GetRasterBand
    - reinterpret_cast<MRFRasterBand *>
    - MRFRasterBand*::GetOverview
    - newMRFRasterBand
    - pcount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig MRFDataset::AddOverviews(int scaleIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1730,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1733
    functionName: CSLAddIfMissing
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CSLSetNameValue
    - CSLFetchNameValue
    linkageType: ''
    returnType: char
    signature: "char **CSLAddIfMissing(char **papszList, const char *pszName,\n                              const
      char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILImage::ILImage
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1742,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1749,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1752,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1754,1
    - Dst: CSLAddIfMissing
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1761,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1763,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1766,1
    - Dst: CSLAddIfMissing
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1769,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1770,1
    - Dst: CSLAddIfMissing
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1771,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1772,1
    - Dst: reinterpret_cast<MRFDataset *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1778,1
    - Dst: MRFDataset::Create
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1779,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1782,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1791,1
    - Dst: MRFDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1792,1
    - Dst: GDALRasterBand*::GetNoDataValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1793,1
    - Dst: MRFDataset*::vNoData::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1796,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1797,1
    - Dst: GDALRasterBand*::GetMinimum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1799,1
    - Dst: MRFDataset*::vMin::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1801,1
    - Dst: GDALRasterBand*::GetMaximum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1802,1
    - Dst: MRFDataset*::vMax::push_back
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1804,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1808,1
    - Dst: GDALRasterBand*::SetMetadata
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1809,1
    - Dst: GDALRasterBand*::GetMetadata
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1811,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1812,1
    - Dst: GDALRasterBand*::SetMetadata
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1813,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1818,1
    - Dst: MRFDataset*::SetGeoTransform
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1819,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1821,1
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1827,1
    - Dst: MRFDataset*::SetColorTable
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1828,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1828,1
    - Dst: MRFDataset*::Crystalize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1831,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1832,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1838,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1838,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1842,1
    - Dst: MRFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1847,1
    - Dst: MRFDataset*::GetPhysicalFilename
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1847,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1849,1
    - Dst: 'on'
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1856,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1856,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1866,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1871,1
    - Dst: MRFDataset*::ZenCopy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1878,1
    - Dst: GDALDatasetCopyWholeRaster
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1884,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1889,1
    - Dst: MRFDataset*::CloneInfo
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1893,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1902
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1902
    functionName: MRFDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - MRFDataset*::ZenCopy
    - GDALRasterBand*::GetNoDataValue
    - CPLOPrintf
    - reinterpret_cast<MRFDataset *>
    - MRFDataset*::SetColorTable
    - GDALRasterBand*::GetBlockSize
    - GDALRasterBand*::SetNoDataValue
    - CPLString
    - CPLError
    - MRFDataset*::SetGeoTransform
    - CSLFetchNameValue
    - MRFDataset*::CloneInfo
    - 'on'
    - CSLAddIfMissing
    - GDALDataset*::GetSpatialRef
    - MRFDataset*::GetPhysicalFilename
    - MRFDataset*::oOvManager::Initialize
    - CSLCount
    - ILImage::ILImage
    - GDALDataset*::GetGeoTransform
    - GDALRasterBand*::GetColorTable
    - GDALDatasetCopyWholeRaster
    - GDALRasterBand*::GetMaximum
    - MRFDataset*::Crystalize
    - GDALRasterBand*::GetColorInterpretation
    - c_str
    - GDALRasterBand*::SetMetadata
    - GDALRasterBand*::GetMetadata
    - GDALDataset*::GetRasterBand
    - MRFDataset::Create
    - MRFDataset*::vMax::push_back
    - CSLDestroy
    - MRFDataset*::GetRasterBand
    - CSLAddNameValue
    - GDALRasterBand*::GetRasterDataType
    - MRFDataset*::vMin::push_back
    - MRFDataset*::vNoData::push_back
    - PrintDouble
    - GDALRasterBand*::GetMinimum
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *MRFDataset::CreateCopy(const char *pszFilename,\n                                    GDALDataset
      *poSrcDS, int /*bStrict*/,\n                                    char **papszOptions,\n
      \                                   GDALProgressFunc pfnProgress,\n                                    void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - buffer
    - mask
    - nPixels
    - nBands
    - bFBO
    argTypes:
    - T*
    - GByte*
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1942
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1942
    functionName: ZenFilter
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZenFilter(T *buffer, GByte *mask, int nPixels, int nBands,\n
      \                     bool bFBO)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POINTER1
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1951,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1963,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1964,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1965,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1967,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1977,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1978,1
    - Dst: GDALRasterBand*::GetMaskBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1979,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1986,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1992,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:1994,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2005,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2005,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2010,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2011,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2012,1
    - Dst: GDALDataset*::AdviseRead
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2019,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2031,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2035,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2041,1
    - Dst: MatchCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2049,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2049,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2054,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2056,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2057,1
    - Dst: ZenFilter
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2067,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2067,1
    - Dst: ZenFilter
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2071,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2071,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2075,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2083,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2085,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2086,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2095,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2096,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2099,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2102,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 61
    argCount: 3
    argNames:
    - poSrc
    - pfnProgress
    - pProgressData
    argTypes:
    - GDALDataset*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 2107
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 2107
    functionName: MRFDataset::ZenCopy
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - MatchCount
    - reinterpret_cast<GByte *>
    - GDALDataset*::AdviseRead
    - GetRasterBand
    - static_cast<GByte>
    - RasterIO
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALRasterBand*::RasterIO
    - pfnProgress
    - VALIDATE_POINTER1
    - GDALRasterBand*::GetMaskBand
    - GDALDataset*::GetRasterBand
    - GDALDataset*::GetRasterXSize
    - reinterpret_cast<GUInt16 *>
    - CPLFree
    - GDALDataset*::GetRasterYSize
    - GDALRasterBand*::GetRasterDataType
    - static_cast<GSpacing>
    - VSI_MALLOC_VERBOSE
    - GDALDataset*::RasterIO
    - ZenFilter
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MRFDataset::ZenCopy(GDALDataset *poSrc, GDALProgressFunc pfnProgress,\n
      \                          void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::FetchBoolean
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2114,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2118
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2118
    functionName: MRFDataset::ProcessOpenOptions
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::FetchBoolean
    - atoi
    linkageType: ''
    returnType: void
    signature: void MRFDataset::ProcessOpenOptions(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2123,1
    - Dst: CompToken
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2128,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2129,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2131,1
    - Dst: OrderToken
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2132,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2133,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2135,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2137,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2139,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2141,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2143,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2145,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2147,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2149,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2151,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2153,1
    - Dst: CPLStringList::FetchBoolean
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2155,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2157,1
    - Dst: CPLStringList::FetchBoolean
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2161,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2164,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2166,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2168,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2172,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2176,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2180,1
    - Dst: atoi
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2182,1
    - Dst: Assign
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2184,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2185,1
    - Dst: CPLStringList::FetchNameValue
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2185,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 2193
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2193
    functionName: MRFDataset::ProcessCreateOptions
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CompToken
    - CPLStringList::FetchBoolean
    - atoi
    - Assign
    - assert
    - OrderToken
    - CPLString
    - CSLTokenizeString2
    - CPLStringList::FetchNameValue
    linkageType: ''
    returnType: void
    signature: void MRFDataset::ProcessCreateOptions(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2208,1
    - Dst: MRFDataset::MRFDataset
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2212,1
    - Dst: stringSplit
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2225,1
    - Dst: getnum
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2228,1
    - Dst: MRFDataset*::fname::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2229,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2233,1
    - Dst: MRFDataset*::fname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2233,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2236,1
    - Dst: MRFDataset*::fname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2236,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2239,1
    - Dst: MRFDataset*::fname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2239,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2242,1
    - Dst: MRFDataset*::fname::c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2243,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2248,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2253,1
    - Dst: ILSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2260,1
    - Dst: MRFDataset*::ProcessCreateOptions
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2276,1
    - Dst: ILImage::datfname::empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2279,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2280,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2280,1
    - Dst: ILImage::idxfname::empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2281,1
    - Dst: getFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2282,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2282,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2289,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2289,1
    - Dst: MRFDataset*::SetDescription
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2295,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2295,1
    - Dst: MRFDataset*::BuildConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2298,1
    - Dst: MRFDataset*::Initialize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2299,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2300,1
    - Dst: MRFDataset*::GetPBufferSize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2309,1
    - Dst: MRFDataset*::SetPBuffer
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2310,1
    - Dst: MRFDataset*::SetPhysicalFilename
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2317,1
    - Dst: MRFDataset*::GetFname
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 6
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 2319
      start: 2202
    functionDepth: 2
    functionLinenumber: 2202
    functionLinenumberEnd: 2319
    functionName: MRFDataset::Create
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1
    functionsReached:
    - MRFDataset*::fname::c_str
    - getnum
    - MRFDataset*::GetFname
    - CPLError
    - STARTS_WITH
    - MRFDataset*::fname::resize
    - MRFDataset*::Initialize
    - MRFDataset*::BuildConfig
    - MRFDataset*::SetPBuffer
    - MRFDataset*::SetDescription
    - MRFDataset*::GetPBufferSize
    - MRFDataset::MRFDataset
    - ILSize
    - ILImage::datfname::empty
    - getFname
    - MRFDataset*::SetPhysicalFilename
    - c_str
    - CPLDestroyXMLNode
    - stringSplit
    - VSIFOpenL
    - VSIFCloseL
    - ILImage::idxfname::empty
    - MRFDataset*::ProcessCreateOptions
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *MRFDataset::Create(const char *pszName, int nXSize, int
      nYSize,\n                                int nBandsIn, GDALDataType eType,\n
      \                               char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2331,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2331,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2332,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2332,1
    - Dst: MRFDataset::BuildConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2338,1
    - Dst: MRFDataset::WriteConfig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2339,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2341,1
    - Dst: MRFDataset::IdxFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2342,1
    - Dst: MRFDataset::DataFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2321
    functionDepth: 3
    functionLinenumber: 2321
    functionLinenumberEnd: 2346
    functionName: MRFDataset::Crystalize
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 2
    functionsReached:
    - MRFDataset::DataFP
    - MRFDataset::BuildConfig
    - CPLDestroyXMLNode
    - GetDescription
    - MRFDataset::IdxFP
    - MRFDataset::WriteConfig
    - strlen
    - EQUALN
    linkageType: ''
    returnType: int
    signature: int MRFDataset::Crystalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::IdxFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2351,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2353,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2354,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2354,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2356,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2358,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2358,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2349
    functionDepth: 3
    functionLinenumber: 2349
    functionLinenumberEnd: 2361
    functionName: MRFDataset::AddVersion
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - MRFDataset::IdxFP
    - VSIFSeekL
    - VSIFWriteL
    - VSIFReadL
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::AddVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::DataFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2377,1
    - Dst: MRFDataset::IdxFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2378,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2394,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2395,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2404,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2405,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2414,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2414,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2419,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2419,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2420,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2421,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2421,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2421,1
    - Dst: std::equal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2423,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2423,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2423,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2424,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2425,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2430,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2430,1
    - Dst: GUIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2430,1
    - Dst: MRFDataset::AddVersion
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2447,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2455,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2456,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2461,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2462,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2463,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2463,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2466,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2467,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2467,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2471,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2479,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2480,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2480,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2481,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2482,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2482,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2482,1
    - Dst: std::equal
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2483,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2483,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2483,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2484,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2490,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2495,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2499,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2500,1
    - Dst: GUIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2507,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2509,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2510,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2512,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 3
    argNames:
    - buff
    - infooffset
    - size
    argTypes:
    - void*
    - GUIntBig
    - GUIntBig
    constantsTouched: []
    func_position:
      end: 2517
      start: 2372
    functionDepth: 4
    functionLinenumber: 2372
    functionLinenumberEnd: 2517
    functionName: MRFDataset::WriteTile
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - GIntBig
    - std::vector::size
    - MRFDataset::AddVersion
    - VSIFTellL
    - CPLError
    - std::vector::clear
    - std::vector::end
    - std::vector::begin
    - std::vector::data
    - MRFDataset::DataFP
    - MRFDataset::IdxFP
    - VSIFSeekL
    - min
    - VSIFReadL
    - static_cast<GByte *>
    - std::vector::resize
    - std::equal
    - static_cast<size_t>
    - GUIntBig
    - VSIFWriteL
    - net64
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::WriteTile(void *buff, GUIntBig infooffset, GUIntBig
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2521,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2523,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - gt
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 2530
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2530
    functionName: MRFDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - GetAccess
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::SetGeoTransform(double *gt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2534,1
    - Dst: MRFDataset::DataFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2534,1
    - Dst: reinterpret_cast<MRFRasterBand *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2536,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2538
    functionName: MRFDataset::IsSingleTile
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    - MRFDataset::DataFP
    - empty
    - reinterpret_cast<MRFRasterBand *>
    linkageType: ''
    returnType: bool
    signature: bool MRFDataset::IsSingleTile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2545,1
    - Dst: GetMetadata
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2546,1
    - Dst: GetGCPCount
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - gt
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 2551
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2551
    functionName: MRFDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 2
    functionsReached:
    - GetGCPCount
    - memcpy
    - GetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MRFDataset::GetGeoTransform(double *gt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::IdxFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2563,1
    - Dst: IdxOffset
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2569,1
    - Dst: MRFDataset::IsSingleTile
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2577,1
    - Dst: MRFDataset::DataFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2580,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2581,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2582,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2585,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2585,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2591,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2595,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2596,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2599,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2600,1
    - Dst: assert
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2610,1
    - Dst: assert
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2611,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2619,1
    - Dst: static_cast<MRFDataset *>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2625,1
    - Dst: MRFDataset::GetSrcDS
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2625,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2628,1
    - Dst: MRFDataset*::IdxFP
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2632,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2635,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2639,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2640,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2640,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2641,1
    - Dst: vector::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2641,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2643,1
    - Dst: vector::begin
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2648,1
    - Dst: vector::end
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2648,1
    - Dst: net64
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2651,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2655,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2656,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2656,1
    - Dst: GIntBig
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2657,1
    - Dst: vector::size
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2657,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2659,1
    - Dst: MRFDataset::ReadTileIdx
      Src: /src/gdal/frmts/mrf/marfa_dataset.cpp:2664,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - tinfo
    - pos
    - img
    - bias
    argTypes:
    - ILIdx
    - ILSize
    - ILImage
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2665
      start: 2560
    functionDepth: 4
    functionLinenumber: 2560
    functionLinenumberEnd: 2665
    functionName: MRFDataset::ReadTileIdx
    functionSourceFile: /src/gdal/frmts/mrf/marfa_dataset.cpp
    functionUses: 1
    functionsReached:
    - GIntBig
    - assert
    - VSIFTellL
    - CPLError
    - static_cast<GIntBig>
    - IdxOffset
    - MRFDataset::IsSingleTile
    - vector::begin
    - MRFDataset::GetSrcDS
    - MRFDataset::DataFP
    - MRFDataset::IdxFP
    - VSIFSeekL
    - min
    - static_cast<MRFDataset *>
    - VSIFReadL
    - vector::end
    - MRFDataset::ReadTileIdx
    - static_cast<size_t>
    - MRFDataset*::IdxFP
    - VSIFWriteL
    - net64
    - vector::size
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MRFDataset::ReadTileIdx(ILIdx &tinfo, const ILSize &pos,\n
      \                              const ILImage &img, const GIntBig bias)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: ILSize
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ILSize(const int x_ = -1, const int y_ = -1, const int z_ = -1,\n
      \                   const int c_ = -1, const int l_ = -1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ILSize
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: operator==(const ILSize &other) const
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ILSize &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - ILSize
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: operator!=(const ILSize &other) const
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ILSize &other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned short int
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: swab16
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short int
    signature: unsigned short int swab16(const unsigned short int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swab16
      Src: /src/gdal/frmts/mrf/marfa.h:247,1
    - Dst: swab16
      Src: /src/gdal/frmts/mrf/marfa.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: swab32
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - swab16
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int swab32(unsigned int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swab32
      Src: /src/gdal/frmts/mrf/marfa.h:253,1
    - Dst: swab32
      Src: /src/gdal/frmts/mrf/marfa.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long long int
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: swab64
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - swab32
    linkageType: ''
    returnType: unsigned long long int
    signature: unsigned long long int swab64(const unsigned long long int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned short
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: net16
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short net16(const unsigned short x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: net32
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int net32(const unsigned int x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: net64
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long net64(const unsigned long long x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - buff
    - sz
    - val
    argTypes:
    - T*
    - int
    - T
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: MatchCount
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MatchCount(T *buff, int sz, T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - sz
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: pcount
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pcount(const int n, const int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa.h:332,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa.h:333,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa.h:334,1
    - Dst: pcount
      Src: /src/gdal/frmts/mrf/marfa.h:335,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/mrf/marfa.h:336,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/mrf/marfa.h:337,1
    - Dst: simple_max
      Src: /src/gdal/frmts/mrf/marfa.h:338,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mrf/marfa.h:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - size
    - psz
    argTypes:
    - ILSize
    - ILSize
    constantsTouched: []
    func_position:
      end: 347
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 347
    functionName: pcount
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 6
    functionsReached:
    - pcount
    - simple_max
    - CPLError
    - static_cast<GIntBig>
    linkageType: ''
    returnType: ILSize
    signature: ILSize pcount(const ILSize &size, const ILSize &psz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: MRFDataset::Delete
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr Delete(const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/mrf/marfa.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: MRFDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/frmts/mrf/marfa.h:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: MRFDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetSpatialRef(const OGRSpatialReference *poSRS) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: '&GetPhotometricInterpretation()'
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString &GetPhotometricInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - photo
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: MRFDataset::SetPhotometricInterpretation
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr SetPhotometricInterpretation(const char *photo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pct
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: MRFDataset::SetColorTable
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetColorTable(GDALColorTable *pct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: MRFDataset::GetColorTable
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: MRFDataset::GetFname
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFname()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: MRFDataset::SetPBufferSize
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPBufferSize(unsigned int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: MRFDataset::GetPBufferSize
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int GetPBufferSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::SetPBuffer
      Src: /src/gdal/frmts/mrf/marfa.h:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: MRFDataset::GetPBuffer
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - MRFDataset::SetPBuffer
    linkageType: ''
    returnType: void
    signature: void *GetPBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::IdxFP
      Src: /src/gdal/frmts/mrf/marfa.h:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: MRFDataset::IdxMode
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - MRFDataset::IdxFP
    linkageType: ''
    returnType: GDALRWFlag
    signature: GDALRWFlag IdxMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFDataset::DataFP
      Src: /src/gdal/frmts/mrf/marfa.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: MRFDataset::DataMode
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - MRFDataset::DataFP
    linkageType: ''
    returnType: GDALRWFlag
    signature: GDALRWFlag DataMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtx
      Src: /src/gdal/frmts/mrf/marfa.h:629,1
    - Dst: static_cast<ZSTD_CCtx *>
      Src: /src/gdal/frmts/mrf/marfa.h:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: MRFDataset::getzsc
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - static_cast<ZSTD_CCtx *>
    - ZSTD_createCCtx
    linkageType: ''
    returnType: ZSTD_CCtx
    signature: ZSTD_CCtx *getzsc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDCtx
      Src: /src/gdal/frmts/mrf/marfa.h:636,1
    - Dst: static_cast<ZSTD_DCtx *>
      Src: /src/gdal/frmts/mrf/marfa.h:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: MRFDataset::getzsd
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - static_cast<ZSTD_DCtx *>
    - ZSTD_createDCtx
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx *getzsd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFRasterBand
      Src: /src/gdal/frmts/mrf/marfa.h:649,1
    - Dst: ILImage::ILImage
      Src: /src/gdal/frmts/mrf/marfa.h:723,1
    - Dst: MRFDataset*::IdxFP
      Src: /src/gdal/frmts/mrf/marfa.h:728,1
    - Dst: MRFDataset*::IdxMode
      Src: /src/gdal/frmts/mrf/marfa.h:733,1
    - Dst: MRFDataset*::DataFP
      Src: /src/gdal/frmts/mrf/marfa.h:738,1
    - Dst: MRFDataset*::DataMode
      Src: /src/gdal/frmts/mrf/marfa.h:743,1
    - Dst: bandbit
      Src: /src/gdal/frmts/mrf/marfa.h:773,1
    - Dst: bandbit
      Src: /src/gdal/frmts/mrf/marfa.h:778,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/mrf/marfa.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 791
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 791
    functionName: GDALPamRasterBand
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - bandbit
    - MRFDataset*::IdxMode
    - MRFDataset*::IdxFP
    - MRFRasterBand
    - MRFDataset*::DataMode
    - std::vector::push_back
    - ILImage::ILImage
    - MRFDataset*::DataFP
    linkageType: ''
    returnType: class MRFRasterBand
    signature: class MRFRasterBand GDALPamRasterBand
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - ILImage
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: PNG_Codec::PNG_Codec
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PNG_Codec(const ILImage &image)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa.h:812,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mrf/marfa.h:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: ~PNG_Codec()
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ~PNG_Codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - ILImage
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: JPEG_Codec::JPEG_Codec
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JPEG_Codec(const ILImage &image)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 891
    functionName: ~JPEG_Band()
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~JPEG_Band()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - pDS
    - image
    - b
    - level
    argTypes:
    - MRFDataset*
    - ILImage
    - int
    - int
    constantsTouched: []
    func_position:
      end: 926
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 926
    functionName: Raw_Band::Raw_Band
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw_Band(MRFDataset *pDS, const ILImage &image, int b, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Raw_Band::Decompress
      Src: /src/gdal/frmts/mrf/marfa.h:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - buf_mgr
    - buf_mgr
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: Raw_Band::Compress
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached:
    - Raw_Band::Decompress
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr Compress(buf_mgr &dst, buf_mgr &src) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/frmts/mrf/marfa.h:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 978
    functionName: LERC_Band::IsLerc1
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool IsLerc1(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/frmts/mrf/marfa.h:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 984
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 984
    functionName: LERC_Band::IsLerc2
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool IsLerc2(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 998
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 998
    functionName: ~QB3_Band()
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~QB3_Band()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/mrf/marfa.h:1020,1
    - Dst: MRFRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/mrf/marfa.h:1021,1
    - Dst: MRFRasterBand*::GetAccess
      Src: /src/gdal/frmts/mrf/marfa.h:1022,1
    - Dst: MRFRasterBand*::GetXSize
      Src: /src/gdal/frmts/mrf/marfa.h:1023,1
    - Dst: MRFRasterBand*::GetYSize
      Src: /src/gdal/frmts/mrf/marfa.h:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - MRFRasterBand*
    constantsTouched: []
    func_position:
      end: 1025
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1025
    functionName: MRFLRasterBand::MRFLRasterBand
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFRasterBand*::GetRasterDataType
    - MRFRasterBand*::GetXSize
    - MRFRasterBand*::GetAccess
    - MRFRasterBand*::GetYSize
    - MRFRasterBand*::GetBlockSize
    linkageType: ''
    returnType: void
    signature: void MRFLRasterBand(MRFRasterBand *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::IWriteBlock
      Src: /src/gdal/frmts/mrf/marfa.h:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xblk
    - yblk
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1032
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    functionName: MRFLRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::IWriteBlock
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IWriteBlock(int xblk, int yblk, void *buffer) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::GetColorTable
      Src: /src/gdal/frmts/mrf/marfa.h:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1037
    functionName: MRFLRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::GetColorTable
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GetColorTable() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::GetColorInterpretation
      Src: /src/gdal/frmts/mrf/marfa.h:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1042
    functionName: MRFLRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::GetColorInterpretation
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/mrf/marfa.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1047
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1047
    functionName: MRFLRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double GetNoDataValue(int *pbSuccess) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::GetMinimum
      Src: /src/gdal/frmts/mrf/marfa.h:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: MRFLRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::GetMinimum
    linkageType: ''
    returnType: double
    signature: double GetMinimum(int *b) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MRFLRasterBand::GetMaximum
      Src: /src/gdal/frmts/mrf/marfa.h:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1057
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1057
    functionName: MRFLRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 1
    functionsReached:
    - MRFLRasterBand::GetMaximum
    linkageType: ''
    returnType: double
    signature: double GetMaximum(int *b) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1063
    functionName: MRFLRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetOverviewCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1068
    functionName: MRFLRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/mrf/marfa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GetOverview(int) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: BitMaskV1::BitMaskV1
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitMaskV1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: BitMaskV1::size
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMaskV1::SetValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:58,1
    - Dst: BitMaskV1::SetInvalid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - k
    - v
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: BitMaskV1::Set
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached:
    - BitMaskV1::SetValid
    - BitMaskV1::SetInvalid
    linkageType: ''
    returnType: void
    signature: void Set(int k, bool v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMaskV1::Bit
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: BitMaskV1::IsValid
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached:
    - BitMaskV1::Bit
    linkageType: ''
    returnType: Byte
    signature: Byte IsValid(int k) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMaskV1::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:72,1
    - Dst: BitMaskV1::size
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - nCols
    - nRows
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: BitMaskV1::resize
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - BitMaskV1::resize
    - BitMaskV1::size
    linkageType: ''
    returnType: void
    signature: void resize(int nCols, int nRows)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Byte>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: BitMaskV1::Bit
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - static_cast<Byte>
    linkageType: ''
    returnType: Byte
    signature: Byte Bit(int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMaskV1::Bit
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: BitMaskV1::SetValid
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - BitMaskV1::Bit
    linkageType: ''
    returnType: void
    signature: void SetValid(int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitMaskV1::Bit
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: BitMaskV1::SetInvalid
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - BitMaskV1::Bit
    linkageType: ''
    returnType: void
    signature: void SetInvalid(int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: TImage::TImage
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: ~TImage()
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:119,1
    - Dst: TImage::getSize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: TImage::setsize
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached:
    - TImage::getSize
    - resize
    linkageType: ''
    returnType: bool
    signature: bool setsize(int width, int height)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: TImage::getWidth
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getWidth() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: TImage::getHeight
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHeight() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: TImage::getSize
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: '&operator()(int row, int col) const'
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator()(int row, int col) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: '&operator()(int row, int col)'
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator()(int row, int col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TImage::data
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: TImage::data
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - TImage::data
    linkageType: ''
    returnType: T
    signature: T *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: Lerc1Image::InfoFromComputeNumBytes
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void InfoFromComputeNumBytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: Lerc1Image::Lerc1Image
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lerc1Image()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: ~Lerc1Image()
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Lerc1Image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:230,1
    - Dst: Lerc1Image::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:231,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:231,1
    - Dst: getHeight
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: Lerc1Image::resize
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 2
    functionsReached:
    - getHeight
    - Lerc1Image::resize
    - setsize
    - getWidth
    linkageType: ''
    returnType: void
    signature: void resize(int width, int height)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:236,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Lerc1Image::IsValid
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 2
    functionsReached:
    - getWidth
    - Lerc1Image::IsValid
    linkageType: ''
    returnType: bool
    signature: bool IsValid(int row, int col) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Set
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:241,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - row
    - col
    - v
    argTypes:
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Lerc1Image::SetMask
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.h
    functionUses: 1
    functionsReached:
    - Set
    - getWidth
    linkageType: ''
    returnType: void
    signature: void SetMask(int row, int col, bool v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:49,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - Byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: BitMaskV1::RLEdecompress
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - data
    linkageType: ''
    returnType: bool
    signature: bool BitMaskV1::RLEdecompress(const Byte *src, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - max_count
    argTypes:
    - Byte*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: run_length
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_length(const Byte *s, int max_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:110,1
    - Dst: WRITE_COUNT
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:147,1
    - Dst: WRITE_COUNT
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - dst
    argTypes:
    - Byte*
    constantsTouched: []
    func_position:
      end: 162
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 162
    functionName: BitMaskV1::RLEcompress
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - data
    - WRITE_COUNT
    linkageType: ''
    returnType: int
    signature: int BitMaskV1::RLEcompress(Byte *dst) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 197
    functionName: BitMaskV1::RLEsize
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: int
    signature: int BitMaskV1::RLEsize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: numBytesUInt
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int numBytesUInt(unsigned int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: nBits
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nBits(unsigned int v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:230,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:236,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:239,1
    - Dst: std::vector<unsigned int>::size
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:239,1
    - Dst: std::vector<unsigned int>::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:243,1
    - Dst: std::vector<unsigned int>::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:244,1
    - Dst: std::vector<unsigned int>::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:248,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:275,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:277,1
    - Dst: reinterpret_cast<Byte *>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - ppByte
    - size
    - d
    argTypes:
    - Byte**
    - size_t
    - std::vector<unsigned int>
    constantsTouched: []
    func_position:
      end: 286
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 286
    functionName: blockread
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector<unsigned int>::resize
    - reinterpret_cast<Byte *>
    - std::vector<unsigned int>::size
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool blockread(Byte **ppByte, size_t &size, std::vector<unsigned int>
      &d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: Lerc1Image::computeNumBytesNeededToWriteVoidImage
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Lerc1Image::computeNumBytesNeededToWriteVoidImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:313,1
    - Dst: getSize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:318,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:319,1
    - Dst: RLEsize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:321,1
    - Dst: Lerc1Image::findTiling
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - maxZError
    - onlyZPart
    - info
    argTypes:
    - double
    - bool
    - InfoFromComputeNumBytes*
    constantsTouched: []
    func_position:
      end: 343
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 343
    functionName: Lerc1Image::computeNumBytesNeededToWrite
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - Lerc1Image::findTiling
    - RLEsize
    - getSize
    - Lerc1Image::IsValid
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int Lerc1Image::computeNumBytesNeededToWrite(double maxZError,
      bool onlyZPart,\n                                         InfoFromComputeNumBytes
      *info) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:354,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:358,1
    - Dst: c_str
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:358,1
    - Dst: size
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:358,1
    - Dst: size
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:359,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:363,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:364,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:365,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:366,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:367,1
    - Dst: Lerc1Image::computeNumBytesNeededToWrite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:370,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:393,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:394,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:395,1
    - Dst: WRVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:396,1
    - Dst: RLEcompress
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:401,1
    - Dst: Lerc1Image::writeTiles
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:406,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ppByte
    - maxZError
    - zPart
    argTypes:
    - Byte**
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 419
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 419
    functionName: Lerc1Image::write
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - size
    - c_str
    - getSize
    - RLEcompress
    - WRVAR
    - Lerc1Image::computeNumBytesNeededToWrite
    - Lerc1Image::writeTiles
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool Lerc1Image::write(Byte **ppByte, double maxZError, bool zPart)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:436,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:448,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:449,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:450,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:451,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:452,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:460,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:465,1
    - Dst: getHeight
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:465,1
    - Dst: Lerc1Image::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:470,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:479,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:480,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:481,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:482,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:485,1
    - Dst: Lerc1Image::readTiles
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:489,1
    - Dst: getSize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:502,1
    - Dst: Set
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:503,1
    - Dst: RLEdecompress
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:507,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:507,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 4
    argNames:
    - ppByte
    - nRemainingBytes
    - maxZError
    - ZPart
    argTypes:
    - Byte**
    - size_t
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 516
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 516
    functionName: Lerc1Image::read
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - RLEdecompress
    - reinterpret_cast<char *>
    - Set
    - getSize
    - RDVAR
    - Lerc1Image::readTiles
    - getHeight
    - Lerc1Image::resize
    - getWidth
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::read(Byte **ppByte, size_t &nRemainingBytes, double
      maxZError,\n                      bool ZPart)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:538,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:539,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:540,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:541,1
    - Dst: RDVAR
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:542,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:549,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - pByte
    - nBytes
    - width
    - height
    argTypes:
    - Byte*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 554
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 554
    functionName: Lerc1Image::getwh
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - RDVAR
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::getwh(const Byte *pByte, size_t nBytes, int &width,\n
      \                      int &height)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::writeTiles
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:562,1
    - Dst: Lerc1Image::writeTiles
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - maxZError
    - numTilesVertA
    - numTilesHoriA
    - numBytesOptA
    - maxValInImgA
    argTypes:
    - double
    - int
    - int
    - int
    - float
    constantsTouched: []
    func_position:
      end: 589
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 589
    functionName: Lerc1Image::findTiling
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - Lerc1Image::writeTiles
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::findTiling(double maxZError, int &numTilesVertA,\n
      \                           int &numTilesHoriA, int &numBytesOptA,\n                            float
      &maxValInImgA) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:595,1
    - Dst: static_cast<Byte>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:597,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:597,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ptr
    - z
    - n
    argTypes:
    - Byte*
    - float
    - int
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: writeFlt
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - memcpy
    - static_cast<Byte>
    linkageType: ''
    returnType: Byte
    signature: Byte *writeFlt(Byte *ptr, float z, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - z
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 614
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 614
    functionName: numBytesFlt
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - std::isfinite
    linkageType: ''
    returnType: int
    signature: int numBytesFlt(float z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:620,1
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:620,1
    - Dst: numBytesUInt
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:628,1
    - Dst: nBits
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - nValues
    - zMin
    - zMax
    - maxZError
    argTypes:
    - int
    - float
    - float
    - double
    constantsTouched: []
    func_position:
      end: 629
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: numBytesZTile
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - nBits
    - std::isfinite
    - numBytesUInt
    linkageType: ''
    returnType: int
    signature: int numBytesZTile(int nValues, float zMin, float zMax, double maxZError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getHeight
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:641,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:644,1
    - Dst: Lerc1Image::computeZStats
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:649,1
    - Dst: Lerc1Image::isallsameval
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:660,1
    - Dst: numBytesZTile
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:665,1
    - Dst: floorf
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:674,1
    - Dst: floorf
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:680,1
    - Dst: Lerc1Image::isallsameval
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:698,1
    - Dst: writeFlt
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:702,1
    - Dst: Lerc1Image::writeZTile
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:707,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 6
    argNames:
    - maxZError
    - numTilesV
    - numTilesH
    - bArr
    - numBytes
    - maxValInImg
    argTypes:
    - double
    - int
    - int
    - Byte*
    - int
    - float
    constantsTouched: []
    func_position:
      end: 717
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 717
    functionName: Lerc1Image::writeTiles
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 2
    functionsReached:
    - numBytesZTile
    - Lerc1Image::writeZTile
    - floorf
    - writeFlt
    - Lerc1Image::computeZStats
    - getHeight
    - Lerc1Image::isallsameval
    - getWidth
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::writeTiles(double maxZError, int numTilesV, int numTilesH,\n
      \                           Byte *bArr, int &numBytes, float &maxValInImg) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getHeight
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:729,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:732,1
    - Dst: Lerc1Image::readZTile
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 6
    argNames:
    - maxZErrorInFile
    - numTilesV
    - numTilesH
    - maxValInImg
    - bArr
    - nRemainingBytes
    argTypes:
    - double
    - int
    - int
    - float
    - Byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 741
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 741
    functionName: Lerc1Image::readTiles
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - Lerc1Image::readZTile
    - getHeight
    - getWidth
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::readTiles(double maxZErrorInFile, int numTilesV,
      int numTilesH,\n                           float maxValInImg, Byte *bArr,\n
      \                          size_t nRemainingBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getHeight
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:747,1
    - Dst: getWidth
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:747,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:755,1
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 8
    argNames:
    - r0
    - r1
    - c0
    - c1
    - zMin
    - zMax
    - numValidPixel
    - numFinite
    argTypes:
    - int
    - int
    - int
    - int
    - float
    - float
    - int
    - int
    constantsTouched: []
    func_position:
      end: 771
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 771
    functionName: Lerc1Image::computeZStats
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - Lerc1Image::IsValid
    - std::isfinite
    - getHeight
    - getWidth
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::computeZStats(int r0, int r1, int c0, int c1, float
      &zMin,\n                               float &zMax, int &numValidPixel,\n                               int
      &numFinite) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint32_t *>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - r0
    - r1
    - c0
    - c1
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: Lerc1Image::isallsameval
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const uint32_t *>
    linkageType: ''
    returnType: bool
    signature: bool Lerc1Image::isallsameval(int r0, int r1, int c0, int c1) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:801,1
    - Dst: std::isfinite
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:801,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:807,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:809,1
    - Dst: writeFlt
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:825,1
    - Dst: numBytesUInt
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:829,1
    - Dst: static_cast<Byte>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:833,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:834,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:842,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:845,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:856,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:874,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:879,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 10
    argNames:
    - ppByte
    - numBytes
    - r0
    - r1
    - c0
    - c1
    - numValidPixel
    - zMin
    - zMax
    - maxZError
    argTypes:
    - Byte**
    - int
    - int
    - int
    - int
    - int
    - int
    - float
    - float
    - double
    constantsTouched: []
    func_position:
      end: 882
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 882
    functionName: Lerc1Image::writeZTile
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - std::isfinite
    - static_cast<int>
    - static_cast<unsigned int>
    - writeFlt
    - static_cast<Byte>
    - numBytesUInt
    - memcpy
    - Lerc1Image::IsValid
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::writeZTile(Byte **ppByte, int &numBytes, int r0,
      int r1,\n                            int c0, int c1, int numValidPixel, float
      zMin,\n                            float zMax, double maxZError) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:891,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:897,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:898,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:900,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - n
    argTypes:
    - Byte*
    - int
    constantsTouched: []
    func_position:
      end: 901
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 901
    functionName: readFlt
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - memcpy
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float readFlt(const Byte *ptr, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:933,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:937,1
    - Dst: Lerc1Image::resize
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:960,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:960,1
    - Dst: blockread
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:962,1
    - Dst: Lerc1Image::IsValid
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:970,1
    - Dst: min
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:974,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp:975,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 8
    argNames:
    - ppByte
    - nRemainingBytes
    - r0
    - r1
    - c0
    - c1
    - maxZErrorInFile
    - maxZInImg
    argTypes:
    - Byte**
    - size_t
    - int
    - int
    - int
    - int
    - double
    - float
    constantsTouched: []
    func_position:
      end: 982
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 982
    functionName: Lerc1Image::readZTile
    functionSourceFile: /src/gdal/frmts/mrf/LERCV1/Lerc1Image.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - static_cast<float>
    - blockread
    - min
    - memcpy
    - Lerc1Image::resize
    - Lerc1Image::IsValid
    linkageType: ''
    returnType: bool
    signature: "bool Lerc1Image::readZTile(Byte **ppByte, size_t &nRemainingBytes,
      int r0,\n                           int r1, int c0, int c1, double maxZErrorInFile,\n
      \                          float maxZInImg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: GTADriverIdentify
    functionSourceFile: /src/gdal/frmts/gta/gtadrivercore.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int GTADriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:39,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:67,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 72
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 72
    functionName: GTADriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/gta/gtadrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void GTADriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:81,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:85,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:87,1
    - Dst: GTADriverSetCommonMetadata
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:90,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gta/gtadrivercore.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: DeclareDeferredGTAPlugin
    functionSourceFile: /src/gdal/frmts/gta/gtadrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - GTADriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredGTAPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/gta/gtadataset.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pszString
    - padfDoubles
    - nCount
    argTypes:
    - char*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: ScanDoubles
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLStrtod
    linkageType: ''
    returnType: void
    signature: void ScanDoubles(const char *pszString, double *padfDoubles, int nCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::FormatC
      Src: /src/gdal/frmts/gta/gtadataset.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - padfDoubles
    - nCount
    argTypes:
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: PrintDoubles
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::FormatC
    linkageType: ''
    returnType: CPLString
    signature: CPLString PrintDoubles(const double *padfDoubles, int nCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/frmts/gta/gtadataset.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfVal
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: PrintDouble
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 8
    functionsReached:
    - CPLString
    linkageType: ''
    returnType: CPLString
    signature: CPLString PrintDouble(double dfVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: GTAIO::GTAIO
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTAIO() throw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/gdal/frmts/gta/gtadataset.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: ~GTAIO()
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~GTAIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pszFilename
    - pszMode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: GTAIO::open
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFOpenL
    linkageType: ''
    returnType: int
    signature: int open(const char *pszFilename, const char *pszMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: GTAIO::close
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: GTAIO::tell
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFTellL
    linkageType: ''
    returnType: vsi_l_offset
    signature: vsi_l_offset tell()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - size
    - error
    argTypes:
    - void*
    - size_t
    - bool*
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: GTAIO::read
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFReadL
    linkageType: ''
    returnType: size_t
    signature: size_t read(void *buffer, size_t size, bool *error) throw() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - size
    - error
    argTypes:
    - void*
    - size_t
    - bool*
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: GTAIO::write
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFWriteL
    linkageType: ''
    returnType: size_t
    signature: "size_t write(const void *buffer, size_t size,\n                         bool
      *error) throw() override"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: GTAIO::seekable
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool seekable() throw() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - offset
    - whence
    - error
    argTypes:
    - intmax_t
    - int
    - bool*
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: GTAIO::seek
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void seek(intmax_t offset, int whence, bool *error) throw() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:320,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:358,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:363,1
    - Dst: GTADataset*::oHeader::component_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:363,1
    - Dst: GTADataset*::oHeader::component_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:367,1
    - Dst: GTADataset*::oHeader::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:373,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/gta/gtadataset.cpp:375,1
    - Dst: GTADataset*::oHeader::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:376,1
    - Dst: GTADataset*::oHeader::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:379,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gta/gtadataset.cpp:383,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:403,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gta/gtadataset.cpp:404,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:406,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTADataset*
    - int
    constantsTouched: []
    func_position:
      end: 410
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 410
    functionName: GTARasterBand::GTARasterBand
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - GTADataset*::oHeader::component_type
    - GTADataset*::oHeader::component_size
    - STARTS_WITH
    - strcmp
    - VSIFree
    - SetDescription
    - GTADataset*::oHeader::component_taglist
    - SetMetadataItem
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void GTARasterBand::GTARasterBand(GTADataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:419,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: GTARasterBand::~GTARasterBand()
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void GTARasterBand::~GTARasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:432,1
    - Dst: atoi
      Src: /src/gdal/frmts/gta/gtadataset.cpp:439,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gta/gtadataset.cpp:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 454
    functionName: GTARasterBand::GetCategoryNames
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - CSLAddString
    - atoi
    linkageType: ''
    returnType: char
    signature: char **GTARasterBand::GetCategoryNames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: GTARasterBand::SetCategoryNames
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetCategoryNames(char **)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:475,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gta/gtadataset.cpp:482,1
    - Dst: GDALRasterBand::GetMinimum
      Src: /src/gdal/frmts/gta/gtadataset.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 488
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 488
    functionName: GTARasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - GDALRasterBand::GetMinimum
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double GTARasterBand::GetMinimum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:497,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gta/gtadataset.cpp:504,1
    - Dst: GDALRasterBand::GetMaximum
      Src: /src/gdal/frmts/gta/gtadataset.cpp:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: GTARasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - GDALRasterBand::GetMaximum
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double GTARasterBand::GetMaximum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:519,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gta/gtadataset.cpp:526,1
    - Dst: GDALRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/gta/gtadataset.cpp:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: GTARasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - GDALRasterBand::GetNoDataValue
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double GTARasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: GTARasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetNoDataValue(double)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:553,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gta/gtadataset.cpp:560,1
    - Dst: GDALRasterBand::GetOffset
      Src: /src/gdal/frmts/gta/gtadataset.cpp:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 566
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 566
    functionName: GTARasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - GDALRasterBand::GetOffset
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double GTARasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: GTARasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetOffset(double)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:587,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gta/gtadataset.cpp:594,1
    - Dst: GDALRasterBand::GetScale
      Src: /src/gdal/frmts/gta/gtadataset.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 600
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 600
    functionName: GTARasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - GDALRasterBand::GetScale
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: double GTARasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: GTARasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetScale(double)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 625
    functionName: GTARasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    linkageType: ''
    returnType: char
    signature: char *GTARasterBand::GetUnitType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: GTARasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetUnitType(const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:646,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:651,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:653,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:655,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:657,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:659,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:661,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:663,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:665,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:667,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:669,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:671,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:675,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:677,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:679,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 683
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 683
    functionName: GTARasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTADataset *>
    - EQUAL
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GTARasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: GTARasterBand::SetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::SetColorInterpretation(GDALColorInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:704,1
    - Dst: GTADataset*::ReadBlock
      Src: /src/gdal/frmts/gta/gtadataset.cpp:707,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:713,1
    - Dst: GTADataset*::oHeader::element_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:718,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 731
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 731
    functionName: GTARasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - GTADataset*::oHeader::compression
    - GTADataset*::ReadBlock
    - GTADataset*::oHeader::element_size
    - cpl::down_cast<GTADataset *>
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTADataset *>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:740,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:742,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:744,1
    - Dst: GTADataset*::ReadBlock
      Src: /src/gdal/frmts/gta/gtadataset.cpp:750,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:762,1
    - Dst: GTADataset*::WriteBlock
      Src: /src/gdal/frmts/gta/gtadataset.cpp:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 772
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 772
    functionName: GTARasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - GTADataset*::oHeader::compression
    - GTADataset*::WriteBlock
    - GTADataset*::ReadBlock
    - cpl::down_cast<GTADataset *>
    - CPLError
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTARasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:787,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:788,1
    - Dst: memset
      Src: /src/gdal/frmts/gta/gtadataset.cpp:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: GTADataset::GTADataset
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - memset
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void GTADataset::GTADataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/gta/gtadataset.cpp:799,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:802,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:803,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:805,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 807
    functionName: GTADataset::~GTADataset()
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void GTADataset::~GTADataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:819,1
    - Dst: data_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:823,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gta/gtadataset.cpp:824,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:825,1
    - Dst: data_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:825,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:827,1
    - Dst: read_data
      Src: /src/gdal/frmts/gta/gtadataset.cpp:836,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:840,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:840,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/gta/gtadataset.cpp:856,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:857,1
    - Dst: element_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:857,1
    - Dst: read_block
      Src: /src/gdal/frmts/gta/gtadataset.cpp:870,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:874,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:874,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - nBlockXOff
    - nBlockYOff
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 882
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 882
    functionName: GTADataset::ReadBlock
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - compression
    - read_data
    - VSI_MALLOC2_VERBOSE
    - element_size
    - read_block
    - CPLError
    - data_size
    - what
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::ReadBlock(int nBlockXOff, int nBlockYOff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_block
      Src: /src/gdal/frmts/gta/gtadataset.cpp:901,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:905,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 910
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 910
    functionName: GTADataset::WriteBlock
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - what
    - write_block
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::WriteBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gta/gtadataset.cpp:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 928
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 928
    functionName: GTADataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 940
    functionName: GTADataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::SetGeoTransform(double *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gta/gtadataset.cpp:949,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/gta/gtadataset.cpp:953,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gta/gtadataset.cpp:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 955
    functionName: GTADataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - importFromWkt
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GTADataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: GTADataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::SetSpatialRef(const OGRSpatialReference *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: GTADataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTADataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gta/gtadataset.cpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 987
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 987
    functionName: GTADataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GTADataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 997
    functionName: GTADataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *GTADataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    functionName: GTADataset::SetGCPs
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTADataset::SetGCPs(int, const GDAL_GCP *, const OGRSpatialReference
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTADriverIdentify
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1018,1
    - Dst: GTADataset::GTADataset
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1024,1
    - Dst: GTADataset*::oGTAIO::open
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1026,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1029,1
    - Dst: GTADataset*::oHeader::read_from
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1040,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1044,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1044,1
    - Dst: GTADataset*::oGTAIO::tell
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1048,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1051,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1054,1
    - Dst: GTADataset*::oHeader::dimensions
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1061,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1063,1
    - Dst: GTADataset*::oHeader::dimensions
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1066,1
    - Dst: GTADataset*::oHeader::dimension_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1073,1
    - Dst: GTADataset*::oHeader::dimension_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1074,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1076,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1082,1
    - Dst: GTADataset*::oHeader::dimension_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1082,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1083,1
    - Dst: GTADataset*::oHeader::dimension_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1083,1
    - Dst: GTADataset*::oHeader::components
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1086,1
    - Dst: GTADataset*::oHeader::element_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1087,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1089,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1095,1
    - Dst: GTADataset*::oHeader::components
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1095,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1100,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1101,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1102,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1103,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1104,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1105,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1106,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1107,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1108,1
    - Dst: GTADataset*::oHeader::component_type
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1109,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1111,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1123,1
    - Dst: ScanDoubles
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1126,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1126,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1134,1
    - Dst: GTADataset*::m_oGCPSRS::importFromWkt
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1136,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1137,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1139,1
    - Dst: atoi
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1142,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1142,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1150,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1164,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1164,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1167,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1168,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1170,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1172,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1173,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1177,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1179,1
    - Dst: ScanDoubles
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1182,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1183,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1195,1
    - Dst: GTADataset*::SetDescription
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1197,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1197,1
    - Dst: GTADataset*::oHeader::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1199,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1202,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1222,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1224,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1225,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1232,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1234,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1235,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1236,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1237,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1238,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1239,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1240,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1241,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1242,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1243,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1244,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1245,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1246,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1247,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1248,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1249,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1250,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1251,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1252,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1253,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1254,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1255,1
    - Dst: GTADataset*::oHeader::compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1256,1
    - Dst: GTADataset*::SetMetadataItem
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1257,1
    - Dst: GTADataset*::SetBand
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1264,1
    - Dst: GTARasterBand::GTARasterBand
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1264,1
    - Dst: GTADataset*::SetDescription
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1270,1
    - Dst: GTADataset*::TryLoadXML
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1271,1
    - Dst: GTADataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1276,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 145
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1279
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1279
    functionName: GTADataset::Open
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - GTADataset*::TryLoadXML
    - GTADataset*::oHeader::read_from
    - atoi
    - GTADataset*::oHeader::dimensions
    - GTADataset*::oGTAIO::open
    - strcmp
    - GTARasterBand::GTARasterBand
    - GTADataset*::oGTAIO::tell
    - CPLError
    - STARTS_WITH
    - GTADataset*::oHeader::component_type
    - VSIStrdup
    - GTADataset*::m_oGCPSRS::importFromWkt
    - GTADataset*::oHeader::element_size
    - GTADataset*::oHeader::dimension_size
    - ScanDoubles
    - GTADataset*::SetDescription
    - static_cast<int>
    - GTADataset*::SetBand
    - CPLSPrintf
    - GTADataset*::oOvManager::Initialize
    - snprintf
    - GTADriverIdentify
    - GTADataset*::oHeader::global_taglist
    - GTADataset*::oHeader::components
    - what
    - GTADataset::GTADataset
    - GTADataset*::oHeader::compression
    - VSI_MALLOC2_VERBOSE
    - VSIFree
    - GTADataset*::SetMetadataItem
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GTADataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1291,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1303,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1305,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1307,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1309,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1311,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1313,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1315,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1317,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1319,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1321,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1323,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1325,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1327,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1330,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1335,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1336,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1341,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1343,1
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1344,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1346,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1348,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1351,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1358,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1388,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1393,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1401,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1406,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1418,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1422,1
    - Dst: gta::header::set_compression
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1430,1
    - Dst: gta::header::set_dimensions
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1431,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1431,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1432,1
    - Dst: gta::header::set_components
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1433,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1433,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1438,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1455,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1456,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1471,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1474,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1476,1
    - Dst: PrintDoubles
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1477,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1480,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1482,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1483,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1483,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1484,1
    - Dst: GDALDataset*::GetGCPProjection
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1485,1
    - Dst: GDALDataset*::GetGCPs
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1486,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1487,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1491,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1492,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1496,1
    - Dst: gta::header::global_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1505,1
    - Dst: PrintDoubles
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1506,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1510,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1512,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1517,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1532,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1533,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1551,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1552,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1555,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1556,1
    - Dst: GDALRasterBand*::GetNoDataValue
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1561,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1563,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1564,1
    - Dst: GDALRasterBand*::GetMinimum
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1568,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1570,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1571,1
    - Dst: GDALRasterBand*::GetMaximum
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1574,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1576,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1577,1
    - Dst: GDALRasterBand*::GetOffset
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1581,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1583,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1584,1
    - Dst: GDALRasterBand*::GetScale
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1587,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1589,1
    - Dst: PrintDouble
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1590,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1594,1
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1596,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1598,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1600,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1602,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1604,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1606,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1608,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1610,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1612,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1614,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1617,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1620,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1623,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1626,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1629,1
    - Dst: gta::header::component_taglist
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1632,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1638,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1638,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1639,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1642,1
    - Dst: GTAIO::GTAIO
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1648,1
    - Dst: GTAIO::open
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1649,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1651,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1661,1
    - Dst: gta::header::write_to
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1668,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1671,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1674,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1676,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1677,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1687,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1688,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1689,1
    - Dst: gta::header::element_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1689,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1693,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1695,1
    - Dst: gta::header::component_size
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1698,1
    - Dst: gta::header::write_elements
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1700,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1701,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1702,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1702,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1705,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1707,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1714,1
    - Dst: what
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1714,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1715,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1718,1
    - Dst: GTAIO::close
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1720,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1726,1
    - Dst: GTADataset*::CloneInfo
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1730,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 255
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1733
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1733
    functionName: GTACreateCopy
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::GetNoDataValue
    - PrintDoubles
    - gta::header::component_taglist
    - GDALRasterBand*::GetScale
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALRasterBand*::RasterIO
    - gta::header::write_elements
    - gta::header::set_components
    - GTADataset*::CloneInfo
    - pfnProgress
    - gta::header::element_size
    - gta::header::set_compression
    - GDALDataset*::GetGeoTransform
    - GTAIO::open
    - gta::header::global_taglist
    - GDALRasterBand*::GetMaximum
    - GDALRasterBand*::GetColorInterpretation
    - gta::header::set_dimensions
    - GDALDataset*::GetRasterBand
    - GDALRasterBand*::GetOffset
    - CPLSPrintf
    - GDALDataset*::GetRasterXSize
    - GDALDataset*::GetGCPCount
    - GDALDataset*::GetGCPProjection
    - snprintf
    - gta::header::write_to
    - GDALDataset*::GetGCPs
    - what
    - GTAIO::close
    - GDALDataset*::GetRasterYSize
    - gta::header::component_size
    - VSI_MALLOC2_VERBOSE
    - EQUAL
    - VSIFree
    - GDALRasterBand*::GetRasterDataType
    - GTAIO::GTAIO
    - GDALOpen
    - PrintDouble
    - GDALRasterBand*::GetMinimum
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GTACreateCopy(const char *pszFilename, GDALDataset *poSrcDS,\n
      \                                 int bStrict, char **papszOptions,\n                                  GDALProgressFunc
      pfnProgress,\n                                  void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1742,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1745,1
    - Dst: GTADriverSetCommonMetadata
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1746,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gta/gtadataset.cpp:1751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1752
    functionName: GDALRegister_GTA
    functionSourceFile: /src/gdal/frmts/gta/gtadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GTADriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_GTA()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/aigrid/aigopen.c:41,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigopen.c:42,1
    - Dst: strlen
      Src: /src/gdal/frmts/aigrid/aigopen.c:42,1
    - Dst: strlen
      Src: /src/gdal/frmts/aigrid/aigopen.c:46,1
    - Dst: strcpy
      Src: /src/gdal/frmts/aigrid/aigopen.c:56,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/aigrid/aigopen.c:62,1
    - Dst: AIGReadHeader
      Src: /src/gdal/frmts/aigrid/aigopen.c:70,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:72,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:73,1
    - Dst: AIGReadBounds
      Src: /src/gdal/frmts/aigrid/aigopen.c:80,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:82,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:92,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:94,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:107,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:110,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:119,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:124,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:130,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:131,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:145,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:148,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/frmts/aigrid/aigopen.c:155,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:160,1
    - Dst: AIGReadStatistics
      Src: /src/gdal/frmts/aigrid/aigopen.c:167,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigopen.c:169,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - pszInputName
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 174
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 174
    functionName: AIGOpen
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 0
    functionsReached:
    - AIGReadHeader
    - CPLStrdup
    - CPLError
    - VSI_CALLOC_VERBOSE
    - EQUAL
    - strlen
    - AIGReadBounds
    - AIGReadStatistics
    - strcpy
    - CPLCalloc
    - AIGClose
    - CPLFree
    linkageType: ''
    returnType: AIGInfo_t
    signature: AIGInfo_t *AIGOpen(const char *pszInputName, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/aigrid/aigopen.c:194,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/aigopen.c:216,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/aigopen.c:218,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/aigopen.c:220,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/aigopen.c:226,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/aigopen.c:227,1
    - Dst: AIGLLOpen
      Src: /src/gdal/frmts/aigrid/aigopen.c:230,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:238,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:244,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:248,1
    - Dst: AIGReadBlockIndex
      Src: /src/gdal/frmts/aigrid/aigopen.c:254,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - psInfo
    - iTileX
    - iTileY
    argTypes:
    - AIGInfo_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 255
    functionName: AIGAccessTile
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 0
    functionsReached:
    - CPLAssert
    - snprintf
    - CPLMalloc
    - AIGReadBlockIndex
    - CPLError
    - AIGLLOpen
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGAccessTile(AIGInfo_t *psInfo, int iTileX, int iTileY)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AIGAccessTile
      Src: /src/gdal/frmts/aigrid/aigopen.c:277,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:305,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/aigrid/aigopen.c:312,1
    - Dst: AIGReadBlock
      Src: /src/gdal/frmts/aigrid/aigopen.c:323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - psInfo
    - nBlockXOff
    - nBlockYOff
    - panData
    argTypes:
    - AIGInfo_t*
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 343
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 343
    functionName: AIGReadTile
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 0
    functionsReached:
    - AIGAccessTile
    - AIGReadBlock
    - CPLError
    - CPLDebug
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGReadTile(AIGInfo_t *psInfo, int nBlockXOff, int nBlockYOff,\n
      \                  GInt32 *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AIGAccessTile
      Src: /src/gdal/frmts/aigrid/aigopen.c:365,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigopen.c:393,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/aigrid/aigopen.c:400,1
    - Dst: AIGReadBlock
      Src: /src/gdal/frmts/aigrid/aigopen.c:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - psInfo
    - nBlockXOff
    - nBlockYOff
    - pafData
    argTypes:
    - AIGInfo_t*
    - int
    - int
    - float*
    constantsTouched: []
    func_position:
      end: 431
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 431
    functionName: AIGReadFloatTile
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 0
    functionsReached:
    - AIGAccessTile
    - AIGReadBlock
    - CPLError
    - CPLDebug
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGReadFloatTile(AIGInfo_t *psInfo, int nBlockXOff, int nBlockYOff,\n
      \                       float *pafData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/aigopen.c:449,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/aigopen.c:450,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:452,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:453,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:458,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:459,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - psInfo
    argTypes:
    - AIGInfo_t*
    constantsTouched: []
    func_position:
      end: 461
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 461
    functionName: AIGClose
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 1
    functionsReached:
    - CPLFree
    - CPL_IGNORE_RET_VAL_INT
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void AIGClose(AIGInfo_t *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/aigrid/aigopen.c:475,1
    - Dst: strlen
      Src: /src/gdal/frmts/aigrid/aigopen.c:481,1
    - Dst: toupper
      Src: /src/gdal/frmts/aigrid/aigopen.c:484,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/aigrid/aigopen.c:487,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigopen.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pszFilename
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: AIGLLOpen
    functionSourceFile: /src/gdal/frmts/aigrid/aigopen.c
    functionUses: 1
    functionsReached:
    - VSIFOpenL
    - CPLFree
    - strlen
    - toupper
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *AIGLLOpen(const char *pszFilename, const char *pszAccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3635
    functionDepth: 1
    functionLinenumber: 3635
    functionLinenumberEnd: 3638
    functionName: Fax3Unexpected
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void Fax3Unexpected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a0
    - lastx
    argTypes:
    - GUInt32
    - GUInt32
    constantsTouched: []
    func_position:
      end: 3647
      start: 3642
    functionDepth: 1
    functionLinenumber: 3642
    functionLinenumberEnd: 3647
    functionName: Fax3BadLength
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void Fax3BadLength(GUInt32 a0, GUInt32 lastx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3651
    functionDepth: 1
    functionLinenumber: 3651
    functionLinenumberEnd: 3654
    functionName: Fax3PrematureEOF
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void Fax3PrematureEOF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isAligned
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3831,1
    - Dst: ZERO
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3842,1
    - Dst: isAligned
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3873,1
    - Dst: FILL
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3884,1
    - Dst: assert
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3895,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 4
    argNames:
    - buf
    - runs
    - erun
    - lastx
    argTypes:
    - unsigned char*
    - GUInt32*
    - GUInt32*
    - GUInt32
    constantsTouched: []
    func_position:
      end: 3896
      start: 3795
    functionDepth: 0
    functionLinenumber: 3795
    functionLinenumberEnd: 3896
    functionName: aig_TIFFFax3fillruns
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - ZERO
    - assert
    - FILL
    - isAligned
    linkageType: ''
    returnType: void
    signature: "void aig_TIFFFax3fillruns(unsigned char *buf, GUInt32 *runs,\n                                 GUInt32
      *erun, GUInt32 lastx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_STATE
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3914,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3918,1
    - Dst: CACHE_STATE
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3923,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3931,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3932,1
    - Dst: fflush
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3933,1
    - Dst: LOOKUP16
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3960,1
    - Dst: SETVAL
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3967,1
    - Dst: unexpected
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3975,1
    - Dst: LOOKUP16
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3984,1
    - Dst: SETVAL
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3991,1
    - Dst: unexpected
      Src: /src/gdal/frmts/aigrid/aigccitt.c:3999,1
    - Dst: prematureEOF
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4010,1
    - Dst: CLEANUP_RUNS
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4011,1
    - Dst: CLEANUP_RUNS
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4014,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4029,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4034,1
    - Dst: isAligned
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4035,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4047,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4050,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 106
    argCount: 5
    argNames:
    - tif
    - buf
    - occ
    - rawcp
    - rawcc
    argTypes:
    - Fax3BaseState*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 4053
      start: 3911
    functionDepth: 1
    functionLinenumber: 3911
    functionLinenumberEnd: 4053
    functionName: Fax3DecodeRLE
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - CACHE_STATE
    - CLEANUP_RUNS
    - fflush
    - UNCACHE_STATE
    - unexpected
    - SETVAL
    - ClrBits
    - DECLARE_STATE
    - LOOKUP16
    - CPLError
    - printf
    - prematureEOF
    - isAligned
    linkageType: ''
    returnType: int
    signature: "int Fax3DecodeRLE(Fax3BaseState *tif, unsigned char *buf, int occ,\n
      \                        unsigned char *rawcp, int rawcc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4068,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4074,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4075,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4079,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4099,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4109,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4110,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4111,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4113,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4115,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4117,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4117,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4118,1
    - Dst: Fax3DecodeRLE
      Src: /src/gdal/frmts/aigrid/aigccitt.c:4121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - pabySrcData
    - nSrcBytes
    - pabyDstData
    - nDstBytes
    - nBlockXSize
    - nBlockYSize
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 4125
      start: 4059
    functionDepth: 1
    functionLinenumber: 4059
    functionLinenumberEnd: 4125
    functionName: DecompressCCITTRLETile
    functionSourceFile: /src/gdal/frmts/aigrid/aigccitt.c
    functionUses: 0
    functionsReached:
    - CPLError
    - memset
    - Fax3DecodeRLE
    - DecoderState
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr DecompressCCITTRLETile(unsigned char *pabySrcData, int nSrcBytes,\n
      \                             unsigned char *pabyDstData, int nDstBytes,\n                              int
      nBlockXSize, CPL_UNUSED int nBlockYSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/aigrid/aitest.c:37,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/aitest.c:38,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/aitest.c:42,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:80,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 30
    argCount: 2
    argNames:
    - psInfo
    - bVerbose
    argTypes:
    - AIGInfo_t*
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 85
    functionName: DumpMagic
    functionSourceFile: /src/gdal/frmts/aigrid/aitest.c
    functionUses: 0
    functionsReached:
    - printf
    - VSIFSeekL
    - VSIFReadL
    linkageType: ''
    returnType: void
    signature: void DumpMagic(AIGInfo_t *psInfo, int bVerbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aitest.c:105,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aitest.c:108,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aitest.c:111,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aitest.c:113,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aitest.c:114,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:125,1
    - Dst: exit
      Src: /src/gdal/frmts/aigrid/aitest.c:126,1
    - Dst: AIGOpen
      Src: /src/gdal/frmts/aigrid/aitest.c:132,1
    - Dst: exit
      Src: /src/gdal/frmts/aigrid/aitest.c:134,1
    - Dst: AIGAccessTile
      Src: /src/gdal/frmts/aigrid/aitest.c:136,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:141,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:142,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:146,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:150,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:154,1
    - Dst: DumpMagic
      Src: /src/gdal/frmts/aigrid/aitest.c:162,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/aitest.c:168,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aitest.c:170,1
    - Dst: AIGReadBlock
      Src: /src/gdal/frmts/aigrid/aitest.c:179,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:184,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:188,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:198,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:203,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:205,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:208,1
    - Dst: printf
      Src: /src/gdal/frmts/aigrid/aitest.c:210,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aitest.c:214,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aitest.c:216,1
    - Dst: exit
      Src: /src/gdal/frmts/aigrid/aitest.c:218,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 219
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 219
    functionName: main
    functionSourceFile: /src/gdal/frmts/aigrid/aitest.c
    functionUses: 42
    functionsReached:
    - DumpMagic
    - atoi
    - AIGOpen
    - exit
    - AIGReadBlock
    - EQUAL
    - AIGAccessTile
    - printf
    - CPLMalloc
    - AIGClose
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - AIGDataset*
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 118
    functionName: AIGRasterBand::AIGRasterBand
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AIGRasterBand::AIGRasterBand(AIGDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:127,1
    - Dst: VSIMalloc3
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:132,1
    - Dst: AIGReadTile
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:134,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:137,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:167,1
    - Dst: AIGReadFloatTile
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 176
    functionName: AIGRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIMalloc3
    - AIGReadFloatTile
    - AIGReadTile
    - CPLFree
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:185,1
    - Dst: AIGDataset*::ReadRAT
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:192,1
    - Dst: GDALPamRasterBand::GetDefaultRAT
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: AIGRasterBand::GetDefaultRAT
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - AIGDataset*::ReadRAT
    - GDALPamRasterBand::GetDefaultRAT
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: GDALRasterAttributeTable
    signature: GDALRasterAttributeTable *AIGRasterBand::GetDefaultRAT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: AIGRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: double
    signature: double AIGRasterBand::GetMinimum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: AIGRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: double
    signature: double AIGRasterBand::GetMaximum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: AIGRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double AIGRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:261,1
    - Dst: GDALPamRasterBand::GetColorInterpretation
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: AIGRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::GetColorInterpretation
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp AIGRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<AIGDataset *>
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:276,1
    - Dst: GDALPamRasterBand::GetColorTable
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: AIGRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::GetColorTable
    - cpl::down_cast<AIGDataset *>
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *AIGRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: AIGDataset::AIGDataset
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void AIGDataset::AIGDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:308,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:309,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: AIGDataset::~AIGDataset()
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - AIGClose
    - CSLDestroy
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void AIGDataset::~AIGDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:335,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:335,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:338,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:340,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:340,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: AIGDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - CSLAddString
    - CSLDestroy
    - EQUAL
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: char
    signature: char **AIGDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_STDCALL::CPLGetErrorHandlerUserData
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:364,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:365,1
    - Dst: strstr
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:366,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:368,1
    - Dst: std::vector*::push_back
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:374,1
    - Dst: std::move
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - eErr
    - 'no'
    - msg
    argTypes:
    - CPLErr
    - CPLErrorNum
    - char*
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: CPL_STDCALL::AIGErrorHandlerVATOpen
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - std::vector*::push_back
    - std::move
    - strstr
    - CPL_STDCALL::CPLGetErrorHandlerUserData
    linkageType: ''
    returnType: void
    signature: "void CPL_STDCALL AIGErrorHandlerVATOpen(CPLErr eErr, CPLErrorNum no,\n
      \                                              const char *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:394,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:396,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:397,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:406,1
    - Dst: CPLPushErrorHandlerEx
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:412,1
    - Dst: AVCBinReadOpen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:414,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:416,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:420,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:420,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:423,1
    - Dst: AIGErrorDescription::osMsg::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:423,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:426,1
    - Dst: GDALDefaultRasterAttributeTable::GDALDefaultRasterAttributeTable
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:435,1
    - Dst: CPLString::Trim
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:444,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:446,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:448,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:456,1
    - Dst: AVCBinReadNextTableRec
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:465,1
    - Dst: SetValue
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:483,1
    - Dst: CPLString::Trim
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:483,1
    - Dst: SetValue
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:489,1
    - Dst: SetValue
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:492,1
    - Dst: SetValue
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:498,1
    - Dst: SetValue
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:501,1
    - Dst: AVCBinReadClose
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:512,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:516,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 517
    functionName: AIGDataset::ReadRAT
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetFilename
    - CPLDebug
    - CPLError
    - CPLErrorReset
    - std::vector::end
    - AVCBinReadClose
    - CPLPushErrorHandlerEx
    - std::vector::begin
    - CPLString::c_str
    - CPLPopErrorHandler
    - CreateColumn
    - CPLString::Trim
    - AVCBinReadNextTableRec
    - SetValue
    - GDALDefaultRasterAttributeTable::GDALDefaultRasterAttributeTable
    - VSIStatL
    - AIGErrorDescription::osMsg::c_str
    - EQUAL
    - AVCBinReadOpen
    linkageType: ''
    returnType: void
    signature: void AIGDataset::ReadRAT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::size
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:535,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:535,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:535,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:537,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:556,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:556,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:557,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:559,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:559,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:560,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:581,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:581,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:582,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:588,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:588,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:589,1
    - Dst: strlen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:601,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:609,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:612,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:617,1
    - Dst: AIGOpen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:625,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:625,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:629,1
    - Dst: AIGClose
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:638,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:639,1
    - Dst: AIGDataset::AIGDataset
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:645,1
    - Dst: CPLCleanTrailingSlashSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:655,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:661,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:662,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:662,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:662,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:662,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:665,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:670,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:673,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:676,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:677,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:679,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:681,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:682,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:684,1
    - Dst: std::move
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:685,1
    - Dst: std::move
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:688,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:691,1
    - Dst: AIGDataset*::TranslateColorTable
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:692,1
    - Dst: AIGDataset*::SetBand
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:704,1
    - Dst: AIGRasterBand::AIGRasterBand
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:704,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:710,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:711,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:711,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:713,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:714,1
    - Dst: CSLLoad
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:716,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:716,1
    - Dst: OGRSpatialReference::importFromESRI
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:718,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:722,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:723,1
    - Dst: OSR_GDS
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:723,1
    - Dst: std::move
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:731,1
    - Dst: AIGDataset*::SetDescription
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:738,1
    - Dst: AIGDataset*::TryLoadXML
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:739,1
    - Dst: AIGDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:744,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 93
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 747
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 747
    functionName: AIGDataset::Open
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - AIGDataset*::SetDescription
    - AIGDataset*::TranslateColorTable
    - CPLGetFilename
    - OGRSpatialReference::SetAxisMappingStrategy
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - CPLGetExtensionSafe
    - CPLErrorReset
    - CPLGetDirnameSafe
    - AIGRasterBand::AIGRasterBand
    - CPLString::c_str
    - CPLString::size
    - std::move
    - strlen
    - OGRSpatialReference::importFromESRI
    - CPLFormCIFilenameSafe
    - AIGDataset*::oOvManager::Initialize
    - OGRSpatialReference::IsGeographic
    - OSR_GDS
    - CPLString::Printf
    - AIGDataset::AIGDataset
    - CPLFormFilenameSafe
    - OGRSpatialReference::OGRSpatialReference
    - VSIStatL
    - ReportUpdateNotSupportedByDriver
    - CSLDestroy
    - AIGOpen
    - CSLLoad
    - EQUAL
    - AIGDataset*::TryLoadXML
    - CPLCleanTrailingSlashSafe
    - AIGDataset*::SetBand
    - AIGClose
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *AIGDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 765
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 765
    functionName: AIGDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: AIGDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *AIGDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:788,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:794,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:799,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:800,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:801,1
    - Dst: atoi
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:802,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:810,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:811,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:817,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:820,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:823,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 1
    argNames:
    - pszClrFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 824
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 824
    functionName: AIGDataset::TranslateColorTable
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - atoi
    - SetColorEntry
    - CSLDestroy
    - GDALColorTable::GDALColorTable
    - CSLCount
    linkageType: ''
    returnType: void
    signature: void AIGDataset::TranslateColorTable(const char *pszClrFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:839,1
    - Dst: strlen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:839,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:851,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - papszNV
    - pszField
    - pszDefaultValue
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 859
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 859
    functionName: OSR_GDS
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 2
    functionsReached:
    - CSLCount
    - EQUALN
    - CSLDestroy
    - strlen
    linkageType: ''
    returnType: CPLString
    signature: "CPLString OSR_GDS(char **papszNV, const char *pszField,\n                         const
      char *pszDefaultValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:876,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:877,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:881,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:882,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:890,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:895,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:909,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:909,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:911,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:915,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:917,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:923,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:925,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:927,1
    - Dst: c_str
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:928,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:929,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:930,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:942,1
    - Dst: VSI_ISREG
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:943,1
    - Dst: CPLMoveFile
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:945,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:947,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:949,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:950,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:956,1
    - Dst: CPLUnlinkTree
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:958,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:960,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:965,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:966,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - pszNewName
    - pszOldName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 968
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 968
    functionName: AIGRename
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLGetPathSafe
    - CPLMoveFile
    - VSIStatL
    - CPLUnlinkTree
    - CSLAddString
    - CSLDestroy
    - VSIMkdir
    - VSI_ISREG
    - CPLString::size
    - CPLAssert
    - CPLError
    - EQUALN
    - VSIRename
    - VSIStrerror
    - GDALOpen
    - CPLGetExtensionSafe
    - GDALClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGRename(const char *pszNewName, const char *pszOldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpen
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:982,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:987,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:998,1
    - Dst: VSI_ISREG
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:999,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1001,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1003,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1005,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1017,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1018,1
    - Dst: CPLUnlinkTree
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1020,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - pszDatasetname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1026
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1026
    functionName: AIGDelete
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLUnlinkTree
    - VSIStatL
    - VSIUnlink
    - VSI_ISREG
    - VSI_ISDIR
    - CPLError
    - VSIStrerror
    - GDALOpen
    - GDALClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGDelete(const char *pszDatasetname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1035,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1038,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1040,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1041,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1042,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1043,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1044,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/aigrid/aigdataset.cpp:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1052
    functionName: GDALRegister_AIGrid
    functionSourceFile: /src/gdal/frmts/aigrid/aigdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_AIGrid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - pafData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - float*
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: AIGProcessRaw32BitFloatBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRaw32BitFloatBlock(GByte *pabyCur, int nDataSize,\n
      \                                          int nMin, int nBlockXSize,\n                                           int
      nBlockYSize, float *pafData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: AIGProcessIntConstBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessIntConstBlock(GByte *pabyCur, int nDataSize, int
      nMin,\n                                      int nBlockXSize, int nBlockYSize,\n
      \                                     GInt32 *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: AIGRolloverSignedAdd
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW AIGRolloverSignedAdd(GInt32 a,
      GInt32 b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:125,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:134,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:135,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: AIGProcessRaw32BitBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - AIGRolloverSignedAdd
    - CPL_MSBWORD32
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRaw32BitBlock(GByte *pabyCur, int nDataSize, int
      nMin,\n                                      int nBlockXSize, int nBlockYSize,\n
      \                                     GInt32 *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:158,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: AIGProcessRaw16BitBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - AIGRolloverSignedAdd
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRaw16BitBlock(GByte *pabyCur, int nDataSize, int
      nMin,\n                                      int nBlockXSize, int nBlockYSize,\n
      \                                     GInt32 *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:189,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:199,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: AIGProcessRaw4BitBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - AIGRolloverSignedAdd
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRaw4BitBlock(GByte *pabyCur, int nDataSize, int nMin,\n
      \                                    int nBlockXSize, int nBlockYSize,\n                                     GInt32
      *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:222,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: AIGProcessRaw1BitBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - AIGRolloverSignedAdd
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRaw1BitBlock(GByte *pabyCur, int nDataSize, int nMin,\n
      \                                    int nBlockXSize, int nBlockYSize,\n                                     GInt32
      *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:255,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: AIGProcessRawBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - AIGRolloverSignedAdd
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessRawBlock(GByte *pabyCur, int nDataSize, int nMin,\n
      \                                int nBlockXSize, int nBlockYSize,\n                                 GInt32
      *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/aigrid/gridlib.c:288,1
    - Dst: DecompressCCITTRLETile
      Src: /src/gdal/frmts/aigrid/gridlib.c:294,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:298,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:309,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: AIGProcessFFBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - DecompressCCITTRLETile
    - AIGRolloverSignedAdd
    - CPLFree
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessFFBlock(GByte *pabyCur, int nDataSize, int nMin,\n
      \                               int nBlockXSize, int nBlockYSize,\n                                GInt32
      *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:356,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:365,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:370,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:374,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:375,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:391,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:400,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:404,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:423,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:432,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:436,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:452,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:472,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:481,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:498,1
    - Dst: AIGRolloverSignedAdd
      Src: /src/gdal/frmts/aigrid/gridlib.c:508,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:528,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:550,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 103
    argCount: 7
    argNames:
    - pabyCur
    - nDataSize
    - nMin
    - nMagic
    - nBlockXSize
    - nBlockYSize
    - panData
    argTypes:
    - GByte*
    - int
    - int
    - int
    - int
    - int
    - GInt32*
    constantsTouched: []
    func_position:
      end: 556
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 556
    functionName: AIGProcessBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - AIGRolloverSignedAdd
    - CPL_MSBWORD32
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGProcessBlock(GByte *pabyCur, int nDataSize, int nMin,\n
      \                             int nMagic, int nBlockXSize, int nBlockYSize,\n
      \                             GInt32 *panData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:590,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/aigrid/gridlib.c:595,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:598,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/aigrid/gridlib.c:603,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:604,1
    - Dst: memset
      Src: /src/gdal/frmts/aigrid/gridlib.c:606,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:607,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:610,1
    - Dst: memset
      Src: /src/gdal/frmts/aigrid/gridlib.c:619,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:620,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:623,1
    - Dst: AIGProcessRaw32BitFloatBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:634,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:636,1
    - Dst: AIGProcessRaw32BitBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:643,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:645,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:661,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:665,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:676,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:679,1
    - Dst: memset
      Src: /src/gdal/frmts/aigrid/gridlib.c:685,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:686,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:689,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:695,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:696,1
    - Dst: AIGProcessRawBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:729,1
    - Dst: AIGProcessRaw4BitBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:734,1
    - Dst: AIGProcessRaw1BitBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:739,1
    - Dst: AIGProcessIntConstBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:744,1
    - Dst: AIGProcessRaw16BitBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:749,1
    - Dst: AIGProcessRaw32BitBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:754,1
    - Dst: AIGProcessFFBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:759,1
    - Dst: AIGProcessBlock
      Src: /src/gdal/frmts/aigrid/gridlib.c:764,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/frmts/aigrid/gridlib.c:772,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:781,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 8
    argNames:
    - fp
    - nBlockOffset
    - nBlockSize
    - nBlockXSize
    - nBlockYSize
    - panData
    - nCellType
    - bCompressed
    argTypes:
    - VSILFILE*
    - GUInt32
    - int
    - int
    - int
    - GInt32*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 784
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 784
    functionName: AIGReadBlock
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 3
    functionsReached:
    - CPL_MSBWORD32
    - AIGProcessRaw16BitBlock
    - memcpy
    - AIGProcessFFBlock
    - AIGProcessRawBlock
    - VSIFSeekL
    - AIGProcessRaw32BitFloatBlock
    - AIGProcessRaw4BitBlock
    - AIGProcessIntConstBlock
    - VSIMalloc
    - AIGProcessRaw1BitBlock
    - CPLErrorOnce
    - VSIFReadL
    - CPLError
    - memset
    - AIGProcessRaw32BitBlock
    - CPLFree
    - AIGProcessBlock
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGReadBlock(VSILFILE *fp, GUInt32 nBlockOffset, int nBlockSize,\n
      \                   int nBlockXSize, int nBlockYSize, GInt32 *panData,\n                    int
      nCellType, int bCompressed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/gridlib.c:804,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/gridlib.c:805,1
    - Dst: AIGLLOpen
      Src: /src/gdal/frmts/aigrid/gridlib.c:807,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:811,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:814,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:818,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:825,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:827,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:827,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:831,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:831,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:836,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:837,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:838,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:839,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:840,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:841,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:842,1
    - Dst: memcpy
      Src: /src/gdal/frmts/aigrid/gridlib.c:843,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:846,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:847,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:848,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:849,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:850,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/aigrid/gridlib.c:851,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:852,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - pszCoverName
    - psInfo
    argTypes:
    - char*
    - AIGInfo_t*
    constantsTouched: []
    func_position:
      end: 859
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 859
    functionName: AIGReadHeader
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    - AIGLLOpen
    - snprintf
    - CPL_IGNORE_RET_VAL_INT
    - VSIFReadL
    - CPL_SWAP32
    - CPLError
    - CPL_SWAPDOUBLE
    - CPLMalloc
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGReadHeader(const char *pszCoverName, AIGInfo_t *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/gridlib.c:883,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/gridlib.c:884,1
    - Dst: AIGLLOpen
      Src: /src/gdal/frmts/aigrid/gridlib.c:887,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:891,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:894,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:898,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:904,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:906,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:906,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:911,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:914,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:914,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:921,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:923,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:923,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/aigrid/gridlib.c:930,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:930,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:932,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:932,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:936,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:939,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:940,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:940,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:946,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:947,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:947,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/aigrid/gridlib.c:960,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/aigrid/gridlib.c:961,1
    - Dst: "nFileSize < 100 ||\n            (vsi_l_offset)psTInfo->nBlocks >"
      Src: /src/gdal/frmts/aigrid/gridlib.c:962,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:965,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:965,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/aigrid/gridlib.c:969,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:972,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:972,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/aigrid/gridlib.c:975,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:976,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:978,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:980,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:980,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:981,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:985,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:985,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/aigrid/gridlib.c:991,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/aigrid/gridlib.c:992,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:995,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:996,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:999,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:1010,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:1013,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1015,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1016,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1019,1
    - Dst: CPL_MSBWORD32
      Src: /src/gdal/frmts/aigrid/gridlib.c:1024,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:1027,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1029,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1030,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1033,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1039,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 3
    argNames:
    - psInfo
    - psTInfo
    - pszBasename
    argTypes:
    - AIGInfo_t*
    - AIGTileInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 1042
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 1042
    functionName: AIGReadBlockIndex
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 1
    functionsReached:
    - CPL_MSBWORD32
    - VSIFCloseL
    - AIGLLOpen
    - VSIFSeekL
    - "nFileSize < 100 ||\n            (vsi_l_offset)psTInfo->nBlocks >"
    - VSI_MALLOC2_VERBOSE
    - snprintf
    - CPL_IGNORE_RET_VAL_INT
    - VSIFReadL
    - VSIFTellL
    - CPLError
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr AIGReadBlockIndex(AIGInfo_t *psInfo, AIGTileInfo *psTInfo,\n
      \                        const char *pszBasename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/gridlib.c:1061,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/gridlib.c:1062,1
    - Dst: AIGLLOpen
      Src: /src/gdal/frmts/aigrid/gridlib.c:1064,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:1068,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1071,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1075,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:1080,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:1082,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:1082,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:1086,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:1086,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1089,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1090,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1091,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - pszCoverName
    - psInfo
    argTypes:
    - char*
    - AIGInfo_t*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1101
    functionName: AIGReadBounds
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    - AIGLLOpen
    - snprintf
    - CPL_IGNORE_RET_VAL_INT
    - VSIFReadL
    - CPL_SWAPDOUBLE
    - CPLError
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGReadBounds(const char *pszCoverName, AIGInfo_t *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/aigrid/gridlib.c:1126,1
    - Dst: snprintf
      Src: /src/gdal/frmts/aigrid/gridlib.c:1127,1
    - Dst: AIGLLOpen
      Src: /src/gdal/frmts/aigrid/gridlib.c:1129,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:1133,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1136,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/aigrid/gridlib.c:1143,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/aigrid/gridlib.c:1145,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/aigrid/gridlib.c:1145,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1150,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1151,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1152,1
    - Dst: CPL_SWAPDOUBLE
      Src: /src/gdal/frmts/aigrid/gridlib.c:1153,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/aigrid/gridlib.c:1165,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/aigrid/gridlib.c:1166,1
    - Dst: CPL_LSBPTR64
      Src: /src/gdal/frmts/aigrid/gridlib.c:1167,1
    - Dst: CPLError
      Src: /src/gdal/frmts/aigrid/gridlib.c:1175,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1177,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/aigrid/gridlib.c:1181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - pszCoverName
    - psInfo
    argTypes:
    - char*
    - AIGInfo_t*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1109
    functionDepth: 2
    functionLinenumber: 1109
    functionLinenumberEnd: 1183
    functionName: AIGReadStatistics
    functionSourceFile: /src/gdal/frmts/aigrid/gridlib.c
    functionUses: 1
    functionsReached:
    - CPL_LSBPTR64
    - VSIFCloseL
    - AIGLLOpen
    - snprintf
    - CPL_IGNORE_RET_VAL_INT
    - VSIFReadL
    - CPL_SWAPDOUBLE
    - CPLError
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr AIGReadStatistics(const char *pszCoverName, AIGInfo_t *psInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:22,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:33,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:37,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:41,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:54,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:56,1
    - Dst: DDFModule::Open
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:62,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:63,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:70,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:73,1
    - Dst: DDFFieldDefn*::SetRepeatingFlag
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:76,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:84,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:87,1
    - Dst: DDFModule::GetInterchangeLevel
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:87,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:88,1
    - Dst: DDFModule::GetLeaderIden
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:88,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:89,1
    - Dst: DDFModule::GetCodeExtensionIndicator
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:90,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:91,1
    - Dst: DDFModule::GetVersionNumber
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:91,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:92,1
    - Dst: DDFModule::GetAppIndicator
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:92,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:93,1
    - Dst: DDFModule::GetExtendedCharSet
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:93,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:94,1
    - Dst: DDFModule::GetFieldControlLength
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:95,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:96,1
    - Dst: DDFModule::GetSizeFieldLength
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:96,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:97,1
    - Dst: DDFModule::GetSizeFieldPos
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:97,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:98,1
    - Dst: DDFModule::GetSizeFieldTag
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:98,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:100,1
    - Dst: DDFModule::GetField
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:105,1
    - Dst: DDFFieldDefn*::GetDataStructCode
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:107,1
    - Dst: DDFFieldDefn*::GetDataTypeCode
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:131,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:166,1
    - Dst: DDFFieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:168,1
    - Dst: DDFFieldDefn*::GetDescription
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:168,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:173,1
    - Dst: DDFFieldDefn*::GetArrayDescr
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:173,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:174,1
    - Dst: DDFFieldDefn*::GetFormatControls
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:175,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:177,1
    - Dst: DDFFieldDefn*::GetSubfield
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:181,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:182,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:183,1
    - Dst: DDFSubfieldDefn*::GetFormat
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:183,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:185,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:189,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:190,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:192,1
    - Dst: DDFRecord*::GetReuseHeader
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:195,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:196,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:197,1
    - Dst: DDFRecord*::GetDataSize
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:197,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:198,1
    - Dst: DDFRecord*::GetSizeFieldTag
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:198,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:199,1
    - Dst: DDFRecord*::GetSizeFieldPos
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:199,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:200,1
    - Dst: DDFRecord*::GetSizeFieldLength
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:201,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:203,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:207,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:208,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:210,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:211,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:212,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:212,1
    - Dst: DDFFieldDefn*::GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:217,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:219,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:221,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:222,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:225,1
    - Dst: DDFFieldDefn*::GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:229,1
    - Dst: DDFFieldDefn*::GetSubfield
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:233,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:235,1
    - Dst: DDFSubfieldDefn*::GetType
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:237,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:241,1
    - Dst: DDFSubfieldDefn*::ExtractFloatData
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:242,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:245,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:246,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:252,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:255,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:257,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:262,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:276,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:278,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:284,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:285,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:288,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:290,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:296,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:298,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:300,1
    - Dst: DDFModule::Dump
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:304,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:307,1
    - Dst: DDFModule::GetFP
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:307,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:308,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:309,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:311,1
    - Dst: DDFRecord*::Dump
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:312,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:314,1
    - Dst: DDFModule::GetFP
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:314,1
    - Dst: DDFModule::Close
      Src: /src/gdal/frmts/iso8211/8211dump.cpp:318,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 165
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 319
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 319
    functionName: main
    functionSourceFile: /src/gdal/frmts/iso8211/8211dump.cpp
    functionUses: 42
    functionsReached:
    - DDFRecord*::GetSizeFieldPos
    - DDFRecord*::GetSizeFieldTag
    - DDFModule::GetSizeFieldPos
    - DDFSubfieldDefn*::GetType
    - VSIFTellL
    - DDFSubfieldDefn*::ExtractStringData
    - DDFModule::GetAppIndicator
    - DDFSubfieldDefn*::ExtractFloatData
    - printf
    - DDFModule::ReadRecord
    - DDFFieldDefn*::GetSubfield
    - DDFFieldDefn*::GetFormatControls
    - DDFFieldDefn*::GetDataStructCode
    - DDFFieldDefn*::GetDataTypeCode
    - DDFModule::Dump
    - DDFModule::GetInterchangeLevel
    - fprintf
    - DDFModule::GetSizeFieldLength
    - DDFSubfieldDefn*::GetDataLength
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - DDFRecord*::GetDataSize
    - DDFFieldDefn*::GetName
    - DDFModule::GetField
    - DDFSubfieldDefn*::GetName
    - DDFModule::Close
    - DDFField*::GetRepeatCount
    - DDFModule::GetFP
    - DDFFieldDefn*::SetRepeatingFlag
    - CPLFree
    - DDFModule::GetCodeExtensionIndicator
    - DDFSubfieldDefn*::GetFormat
    - DDFFieldDefn*::GetSubfieldCount
    - DDFSubfieldDefn*::ExtractIntData
    - DDFModule::GetSizeFieldTag
    - exit
    - DDFModule::Open
    - DDFRecord*::GetField
    - EQUAL
    - DDFModule::GetFieldControlLength
    - DDFFieldDefn*::GetArrayDescr
    - DDFFieldDefn*::GetDescription
    - DDFRecord*::GetSizeFieldLength
    - DDFModule::GetLeaderIden
    - DDFRecord*::GetReuseHeader
    - DDFModule::GetExtendedCharSet
    - DDFField*::GetFieldDefn
    - DDFRecord*::Dump
    - DDFModule::GetVersionNumber
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char **papszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: DDFFieldDefn::DDFFieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::DDFFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:48,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:49,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:50,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:51,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: DDFFieldDefn::~DDFFieldDefn()
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::~DDFFieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFSubfieldDefn::DDFSubfieldDefn
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:65,1
    - Dst: DDFSubfieldDefn*::SetName
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:67,1
    - Dst: DDFSubfieldDefn*::SetFormat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:68,1
    - Dst: DDFFieldDefn::AddSubfield
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszFormat
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: DDFFieldDefn::AddSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - DDFFieldDefn::AddSubfield
    - DDFSubfieldDefn::DDFSubfieldDefn
    - DDFSubfieldDefn*::SetFormat
    - DDFSubfieldDefn*::SetName
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::AddSubfield(const char *pszName, const char *pszFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DDFSubfieldDefn **>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:81,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:82,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:92,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:94,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:95,1
    - Dst: strcpy
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:103,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:106,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:108,1
    - Dst: DDFSubfieldDefn*::GetFormat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:108,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:109,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:111,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:118,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:120,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:121,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:121,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:121,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:122,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:123,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:124,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:125,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - poNewSFDefn
    - bDontAddToFormat
    argTypes:
    - DDFSubfieldDefn*
    - int
    constantsTouched: []
    func_position:
      end: 126
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 126
    functionName: DDFFieldDefn::AddSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLStrdup
    - DDFSubfieldDefn*::GetName
    - strcat
    - CPLRealloc
    - strlen
    - static_cast<DDFSubfieldDefn **>
    - strcpy
    - CPLFree
    - DDFSubfieldDefn*::GetFormat
    linkageType: ''
    returnType: void
    signature: "void DDFFieldDefn::AddSubfield(DDFSubfieldDefn *poNewSFDefn,\n                               int
      bDontAddToFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:142,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:144,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:145,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:146,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:152,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - pszTagIn
    - pszFieldName
    - pszDescription
    - eDataStructCode
    - eDataTypeCode
    - pszFormat
    argTypes:
    - char*
    - char*
    - char*
    - DDF_data_struct_code
    - DDF_data_type_code
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: DDFFieldDefn::Create
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - CPLStrdup
    linkageType: ''
    returnType: int
    signature: "int DDFFieldDefn::Create(const char *pszTagIn, const char *pszFieldName,\n
      \                        const char *pszDescription,\n                         DDF_data_struct_code
      eDataStructCode,\n                         DDF_data_type_code eDataTypeCode,\n
      \                        const char *pszFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:168,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszVal
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: DDFFieldDefn::SetFormatControls
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::SetFormatControls(const char *pszVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:181,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:183,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:183,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:184,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:184,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:186,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:188,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:194,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:194,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:230,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:232,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:233,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:233,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:234,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:236,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:237,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:237,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:238,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:240,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:240,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:241,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - poModuleIn
    - ppachData
    - pnLength
    argTypes:
    - DDFModule*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 244
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 244
    functionName: DDFFieldDefn::GenerateDDREntry
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLAssert
    - snprintf
    - strlen
    - static_cast<char *>
    - CPLMalloc
    linkageType: ''
    returnType: int
    signature: "int DDFFieldDefn::GenerateDDREntry(DDFModule *poModuleIn, char **ppachData,\n
      \                                  int *pnLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:261,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:325,1
    - Dst: DDFFetchVariable
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:338,1
    - Dst: DDFFetchVariable
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:343,1
    - Dst: DDFFetchVariable
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:348,1
    - Dst: DDFFieldDefn::BuildSubfields
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:357,1
    - Dst: DDFFieldDefn::ApplyFormats
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 4
    argNames:
    - poModuleIn
    - pszTagIn
    - nFieldEntrySize
    - pachFieldArea
    argTypes:
    - DDFModule*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 364
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 364
    functionName: DDFFieldDefn::Initialize
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - DDFFetchVariable
    - DDFFieldDefn::BuildSubfields
    - CPLError
    - DDFFieldDefn::ApplyFormats
    linkageType: ''
    returnType: int
    signature: "int DDFFieldDefn::Initialize(DDFModule *poModuleIn, const char *pszTagIn,\n
      \                            int nFieldEntrySize, const char *pachFieldArea)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:383,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:385,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:386,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:387,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:388,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:389,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:410,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:414,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:447,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:452,1
    - Dst: DDFFieldDefn::Dump
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:455,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 456
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 456
    functionName: DDFFieldDefn::Dump
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - fprintf
    - DDFFieldDefn::Dump
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::Dump(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:482,1
    - Dst: strrchr
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:483,1
    - Dst: DDFSubfieldDefn::DDFSubfieldDefn
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:507,1
    - Dst: DDFSubfieldDefn*::SetName
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:509,1
    - Dst: DDFFieldDefn::AddSubfield
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:510,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 514
    functionName: DDFFieldDefn::BuildSubfields
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - DDFFieldDefn::AddSubfield
    - CSLDestroy
    - DDFSubfieldDefn*::SetName
    - strrchr
    - DDFSubfieldDefn::DDFSubfieldDefn
    linkageType: ''
    returnType: void
    signature: void DDFFieldDefn::BuildSubfields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:553,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:554,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:559,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - pszSrc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 564
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 564
    functionName: DDFFieldDefn::ExtractSubstring
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *DDFFieldDefn::ExtractSubstring(const char *pszSrc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:597,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:598,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:609,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:610,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:615,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:615,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:618,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:621,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:623,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:624,1
    - Dst: isdigit
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:629,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:629,1
    - Dst: isdigit
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:642,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:642,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:654,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:655,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:668,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:669,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:674,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:674,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:677,1
    - Dst: strcat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:681,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:687,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:689,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:691,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:692,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:699,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:699,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 80
    argCount: 1
    argNames:
    - pszSrc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 708
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 708
    functionName: DDFFieldDefn::ExpandFormat
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - static_cast<unsigned char>
    - strcat
    - CPLRealloc
    - strlen
    - static_cast<char *>
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *DDFFieldDefn::ExpandFormat(const char *pszSrc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:724,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:725,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:727,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:727,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:741,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:741,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:744,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:754,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:775,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:775,1
    - Dst: SetFormat
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:780,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:782,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:790,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:794,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:794,1
    - Dst: GetWidth
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:806,1
    - Dst: GetWidth
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:813,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:815,1
    - Dst: static_cast<CPLErrorNum>
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:816,1
    - Dst: GetWidth
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:821,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 826
    functionName: DDFFieldDefn::ApplyFormats
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - static_cast<CPLErrorNum>
    - GetWidth
    - CSLDestroy
    - SetFormat
    - strlen
    - CPLError
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int DDFFieldDefn::ApplyFormats()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:846,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pszMnemonic
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 851
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 851
    functionName: DDFFieldDefn::FindSubfieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetName
    linkageType: ''
    returnType: DDFSubfieldDefn
    signature: 'DDFSubfieldDefn *

      DDFFieldDefn::FindSubfieldDefn(const char *pszMnemonic) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 877
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 877
    functionName: DDFFieldDefn::GetSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: DDFSubfieldDefn
    signature: DDFSubfieldDefn *DDFFieldDefn::GetSubfield(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFFieldDefn::GetDefaultValue
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:899,1
    - Dst: DDFFieldDefn::GetDefaultValue
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:921,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:924,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddffielddefn.cpp:931,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pnSize
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 934
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 934
    functionName: DDFFieldDefn::GetDefaultValue
    functionSourceFile: /src/gdal/frmts/iso8211/ddffielddefn.cpp
    functionUses: 1
    functionsReached:
    - DDFFieldDefn::GetDefaultValue
    - CPLAssert
    linkageType: ''
    returnType: char
    signature: char *DDFFieldDefn::GetDefaultValue(int *pnSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: DDFSubfieldDefn::DDFSubfieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 2
    functionsReached:
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void DDFSubfieldDefn::DDFSubfieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:46,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:47,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: DDFSubfieldDefn::~DDFSubfieldDefn()
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DDFSubfieldDefn::~DDFSubfieldDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:60,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:62,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:64,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszNewName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: DDFSubfieldDefn::SetName
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - static_cast<int>
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void DDFSubfieldDefn::SetName(const char *pszNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:83,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:84,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:91,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:94,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:131,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:134,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:154,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:160,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:179,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:186,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - pszFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 194
    functionName: DDFSubfieldDefn::SetFormat
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLFree
    - CPLStrdup
    - atoi
    linkageType: ''
    returnType: int
    signature: int DDFSubfieldDefn::SetFormat(const char *pszFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:212,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:213,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: DDFSubfieldDefn::Dump
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DDFSubfieldDefn::Dump(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:255,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 35
    argCount: 3
    argNames:
    - pachSourceData
    - nMaxBytes
    - pnConsumedBytes
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 347
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 347
    functionName: DDFSubfieldDefn::GetDataLength
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::GetDataLength(const char *pachSourceData, int
      nMaxBytes,\n                                   int *pnConsumedBytes) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:399,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:402,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pachSourceData
    - nMaxBytes
    - pnConsumedBytes
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: DDFSubfieldDefn::ExtractStringData
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *DDFSubfieldDefn::ExtractStringData(const char *pachSourceData,\n
      \                                              int nMaxBytes,\n                                               int
      *pnConsumedBytes) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:454,1
    - Dst: DDFSubfieldDefn::ExtractStringData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:455,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:465,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:471,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:473,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:495,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - pachSourceData
    - nMaxBytes
    - pnConsumedBytes
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 555
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 555
    functionName: DDFSubfieldDefn::ExtractFloatData
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - static_cast<int>
    - CPLError
    - memcpy
    - DDFSubfieldDefn::ExtractStringData
    linkageType: ''
    returnType: double
    signature: "double DDFSubfieldDefn::ExtractFloatData(const char *pachSourceData,\n
      \                                        int nMaxBytes,\n                                         int
      *pnConsumedBytes) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:595,1
    - Dst: DDFSubfieldDefn::ExtractStringData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:596,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:607,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:612,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:612,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:633,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - pachSourceData
    - nMaxBytes
    - pnConsumedBytes
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 693
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 693
    functionName: DDFSubfieldDefn::ExtractIntData
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - atoi
    - min
    - CPLError
    - memcpy
    - DDFSubfieldDefn::ExtractStringData
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::ExtractIntData(const char *pachSourceData, int
      nMaxBytes,\n                                    int *pnConsumedBytes) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:716,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:720,1
    - Dst: DDFSubfieldDefn::ExtractFloatData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:721,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:723,1
    - Dst: DDFSubfieldDefn::ExtractIntData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:724,1
    - Dst: DDFSubfieldDefn::ExtractStringData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:729,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:731,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:732,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:733,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:736,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:738,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:741,1
    - Dst: DDFSubfieldDefn::ExtractStringData
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:742,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pachData
    - nMaxBytes
    - fp
    argTypes:
    - char*
    - int
    - FILE*
    constantsTouched: []
    func_position:
      end: 743
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 743
    functionName: DDFSubfieldDefn::DumpData
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn::ExtractFloatData
    - fprintf
    - min
    - DDFSubfieldDefn::ExtractStringData
    - DDFSubfieldDefn::ExtractIntData
    linkageType: ''
    returnType: void
    signature: "void DDFSubfieldDefn::DumpData(const char *pachData, int nMaxBytes,\n
      \                              FILE *fp) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:795,1
    - Dst: GetType
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:797,1
    - Dst: GetType
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:797,1
    - Dst: memset
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - pachData
    - nBytesAvailable
    - pnBytesUsed
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 808
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 808
    functionName: DDFSubfieldDefn::GetDefaultValue
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - memset
    - GetBinaryFormat
    - GetType
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::GetDefaultValue(char *pachData, int nBytesAvailable,\n
      \                                    int *pnBytesUsed) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:829,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:829,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:851,1
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:856,1
    - Dst: memset
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:858,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:860,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:860,1
    - Dst: memset
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:864,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:866,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - pachData
    - nBytesAvailable
    - pnBytesUsed
    - pszValue
    - nValueLength
    argTypes:
    - char*
    - int
    - int*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 871
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 871
    functionName: DDFSubfieldDefn::FormatStringValue
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - GetBinaryFormat
    - static_cast<int>
    - strncpy
    - min
    - strlen
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::FormatStringValue(char *pachData, int nBytesAvailable,\n
      \                                      int *pnBytesUsed, const char *pszValue,\n
      \                                      int nValueLength) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:891,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:895,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:895,1
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:901,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:901,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:916,1
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:924,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:933,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:933,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:955,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:959,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - pachData
    - nBytesAvailable
    - pnBytesUsed
    - nNewValue
    argTypes:
    - char*
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 965
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 965
    functionName: DDFSubfieldDefn::FormatIntValue
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - GetBinaryFormat
    - static_cast<int>
    - strncpy
    - CPLAssert
    - snprintf
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::FormatIntValue(char *pachData, int nBytesAvailable,\n
      \                                   int *pnBytesUsed, int nNewValue) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:985,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:989,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:989,1
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:995,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:995,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:1010,1
    - Dst: GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:1015,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:1021,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:1021,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp:1025,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - pachData
    - nBytesAvailable
    - pnBytesUsed
    - dfNewValue
    argTypes:
    - char*
    - int
    - int*
    - double
    constantsTouched: []
    func_position:
      end: 1031
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 1031
    functionName: DDFSubfieldDefn::FormatFloatValue
    functionSourceFile: /src/gdal/frmts/iso8211/ddfsubfielddefn.cpp
    functionUses: 0
    functionsReached:
    - GetBinaryFormat
    - static_cast<int>
    - strncpy
    - CPLsnprintf
    - CPLAssert
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int DDFSubfieldDefn::FormatFloatValue(char *pachData, int nBytesAvailable,\n
      \                                     int *pnBytesUsed, double dfNewValue) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule
      Src: /src/gdal/frmts/iso8211/iso8211.h:67,1
    - Dst: const_cast<DDFFieldDefn *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:90,1
    - Dst: const_cast<const DDFModule *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 198
    functionName: DDFModule
    functionSourceFile: /src/gdal/frmts/iso8211/iso8211.h
    functionUses: 6
    functionsReached:
    - const_cast<const DDFModule *>
    - const_cast<DDFFieldDefn *>
    - DDFModule
    linkageType: ''
    returnType: class CPL_ODLL
    signature: class CPL_ODLL DDFModule
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/iso8211.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 351
    functionName: DDFFieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/iso8211.h
    functionUses: 2
    functionsReached:
    - DDFFieldDefn
    linkageType: ''
    returnType: class CPL_ODLL
    signature: class CPL_ODLL DDFFieldDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFSubfieldDefn
      Src: /src/gdal/frmts/iso8211/iso8211.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 472
    functionName: DDFSubfieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/iso8211.h
    functionUses: 3
    functionsReached:
    - DDFSubfieldDefn
    linkageType: ''
    returnType: class CPL_ODLL
    signature: class CPL_ODLL DDFSubfieldDefn
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<DDFField *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:508,1
    - Dst: const_cast<const DDFRecord *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:509,1
    - Dst: const_cast<DDFField *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:516,1
    - Dst: const_cast<const DDFRecord *>
      Src: /src/gdal/frmts/iso8211/iso8211.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 642
    functionName: DDFRecord
    functionSourceFile: /src/gdal/frmts/iso8211/iso8211.h
    functionUses: 1
    functionsReached:
    - const_cast<DDFField *>
    - const_cast<const DDFRecord *>
    linkageType: ''
    returnType: class CPL_ODLL
    signature: class CPL_ODLL DDFRecord
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField
      Src: /src/gdal/frmts/iso8211/iso8211.h:662,1
    - Dst: poDefn
      Src: /src/gdal/frmts/iso8211/iso8211.h:662,1
    - Dst: nDataSize
      Src: /src/gdal/frmts/iso8211/iso8211.h:662,1
    - Dst: pachData
      Src: /src/gdal/frmts/iso8211/iso8211.h:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 710
    functionName: DDFField
    functionSourceFile: /src/gdal/frmts/iso8211/iso8211.h
    functionUses: 1
    functionsReached:
    - DDFField
    - nDataSize
    - pachData
    - poDefn
    linkageType: ''
    returnType: class CPL_ODLL
    signature: class CPL_ODLL DDFField
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule*::GetSizeFieldTag
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poModuleIn
    argTypes:
    - DDFModule*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: DDFRecord::DDFRecord
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - DDFModule*::GetSizeFieldTag
    linkageType: ''
    returnType: void
    signature: void DDFRecord::DDFRecord(DDFModule *poModuleIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::Clear
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:49,1
    - Dst: RemoveCloneRecord
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: DDFRecord::~DDFRecord()
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - RemoveCloneRecord
    - DDFRecord::Clear
    linkageType: ''
    returnType: void
    signature: void DDFRecord::~DDFRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:72,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:73,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:74,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:75,1
    - Dst: DDFRecord::Dump
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: DDFRecord::Dump
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    - DDFRecord::Dump
    linkageType: ''
    returnType: void
    signature: void DDFRecord::Dump(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::ReadHeader
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:105,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:117,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:118,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:119,1
    - Dst: VSIFEofL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:121,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:121,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 137
    functionName: DDFRecord::Read
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - VSIFEofL
    - GetFP
    - CPLAssert
    - DDFRecord::ReadHeader
    - VSIFReadL
    - CPLError
    linkageType: ''
    returnType: int
    signature: int DDFRecord::Read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::ResetDirectory
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:159,1
    - Dst: memset
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:166,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:168,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:173,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:192,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 195
    functionName: DDFRecord::Write
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - GetFP
    - VSIFWriteL
    - snprintf
    - memset
    - DDFRecord::ResetDirectory
    linkageType: ''
    returnType: int
    signature: int DDFRecord::Write()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: DDFRecord::Clear
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DDFRecord::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::Clear
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:235,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:243,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:244,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:244,1
    - Dst: VSIFEofL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:245,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:245,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:259,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:270,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:272,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:281,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:298,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:318,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:321,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:321,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:324,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:345,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:349,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:349,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:352,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:361,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:368,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:385,1
    - Dst: DDFField::DDFField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:405,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:418,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:423,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:426,1
    - Dst: FindFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:433,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:437,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:447,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:458,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:475,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:495,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:515,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:515,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:517,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:519,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:529,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:530,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:532,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:541,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:543,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:550,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:557,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:558,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:559,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:573,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:582,1
    - Dst: GetFP
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:582,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:584,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:586,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:596,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:601,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:602,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:603,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:604,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:611,1
    - Dst: DDFField::DDFField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:620,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:631,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:636,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:639,1
    - Dst: FindFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:644,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:648,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:659,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:669,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 196
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 677
    functionName: DDFRecord::ReadHeader
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - strncpy
    - CPLDebug
    - VSIFTellL
    - CPLError
    - DDFField::DDFField
    - VSIFEofL
    - FindFieldDefn
    - CPLRealloc
    - CPLMalloc
    - DDFScanInt
    - DDFRecord::Clear
    - static_cast<int>
    - Initialize
    - VSIFSeekL
    - VSIFReadL
    - CPLFree
    - GetFP
    - memcpy
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: int DDFRecord::ReadHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:701,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:702,1
    - Dst: DDFFieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pszName
    - iFieldIndex
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 712
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 712
    functionName: DDFRecord::FindField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - DDFFieldDefn*::GetName
    - GetFieldDefn
    linkageType: ''
    returnType: DDFField
    signature: DDFField *DDFRecord::FindField(const char *pszName, int iFieldIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: DDFRecord::GetField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DDFField
    signature: DDFField *DDFRecord::GetField(int i) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:770,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:778,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - pnSuccess
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 805
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 805
    functionName: DDFRecord::GetIntSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::FindField
    - DDFField*::GetFieldDefn
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::GetIntSubfield(const char *pszField, int iFieldIndex,\n
      \                             const char *pszSubfield, int iSubfieldIndex,\n
      \                             int *pnSuccess) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:842,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - pnSuccess
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 875
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 875
    functionName: DDFRecord::GetFloatSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::FindField
    - DDFField*::GetFieldDefn
    linkageType: ''
    returnType: double
    signature: "double DDFRecord::GetFloatSubfield(const char *pszField, int iFieldIndex,\n
      \                                  const char *pszSubfield, int iSubfieldIndex,\n
      \                                  int *pnSuccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:914,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:922,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - pnSuccess
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 942
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 942
    functionName: DDFRecord::GetStringSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::FindField
    - DDFField*::GetFieldDefn
    - DDFSubfieldDefn*::ExtractStringData
    linkageType: ''
    returnType: char
    signature: "char *DDFRecord::GetStringSubfield(const char *pszField, int iFieldIndex,\n
      \                                        const char *pszSubfield,\n                                         int
      iSubfieldIndex, int *pnSuccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:967,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:973,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:974,1
    - Dst: DDFField::DDFField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:978,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:983,1
    - Dst: GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:983,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:984,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:984,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:986,1
    - Dst: AddCloneRecord
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 993
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 993
    functionName: DDFRecord::Clone
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFField::DDFField
    - static_cast<int>
    - Initialize
    - DDFRecord::DDFRecord
    - GetData
    - GetFieldDefn
    - GetDataSize
    - CPLMalloc
    - memcpy
    - AddCloneRecord
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFRecord::Clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1028,1
    - Dst: DDFModule*::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1030,1
    - Dst: DDFFieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1030,1
    - Dst: DDFRecord::Clone
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1037,1
    - Dst: DDFModule*::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1046,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1046,1
    - Dst: DDFField*::Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1048,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1048,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1048,1
    - Dst: RemoveCloneRecord
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1051,1
    - Dst: DDFModule*::AddCloneRecord
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - poTargetModule
    argTypes:
    - DDFModule*
    constantsTouched: []
    func_position:
      end: 1056
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1056
    functionName: DDFRecord::CloneOn
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - GetFieldDefn
    - DDFField*::GetData
    - DDFField*::Initialize
    - DDFModule*::AddCloneRecord
    - DDFFieldDefn*::GetName
    - RemoveCloneRecord
    - DDFModule*::FindFieldDefn
    - DDFField*::GetDataSize
    - DDFRecord::Clone
    - DDFField*::GetFieldDefn
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFRecord::CloneOn(DDFModule *poTargetModule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::ResizeField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - poTarget
    argTypes:
    - DDFField*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1116
    functionName: DDFRecord::DeleteField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::ResizeField
    linkageType: ''
    returnType: int
    signature: int DDFRecord::DeleteField(DDFField *poTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1154,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1167,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1176,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1176,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1177,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1187,1
    - Dst: GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1187,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1188,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1188,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1189,1
    - Dst: memmove
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1196,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1197,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1197,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1198,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1198,1
    - Dst: DDFField*::Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1203,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1203,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1203,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1204,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1216,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1216,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1218,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1227,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1227,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - poField
    - nNewDataSize
    argTypes:
    - DDFField*
    - int
    constantsTouched: []
    func_position:
      end: 1234
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1234
    functionName: DDFRecord::ResizeField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - DDFField*::GetData
    - static_cast<int>
    - Initialize
    - DDFField*::GetFieldDefn
    - GetData
    - CPLRealloc
    - CPLAssert
    - DDFField*::GetDataSize
    - GetFieldDefn
    - DDFField*::Initialize
    - GetDataSize
    - memmove
    linkageType: ''
    returnType: int
    signature: int DDFRecord::ResizeField(DDFField *poField, int nNewDataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField::DDFField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1264,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1267,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1278,1
    - Dst: GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1278,1
    - Dst: Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1282,1
    - Dst: GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1284,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1285,1
    - Dst: DDFRecord::CreateDefaultFieldInstance
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - poDefn
    argTypes:
    - DDFFieldDefn*
    constantsTouched: []
    func_position:
      end: 1295
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1295
    functionName: DDFRecord::AddField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFField::DDFField
    - DDFRecord::CreateDefaultFieldInstance
    - Initialize
    - GetData
    - GetDataSize
    - memcpy
    linkageType: ''
    returnType: DDFField
    signature: DDFField *DDFRecord::AddField(DDFFieldDefn *poDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1332,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1342,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1344,1
    - Dst: DDFRecord::ResizeField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1351,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1355,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1370,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1372,1
    - Dst: DDFField*::GetInstanceData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1377,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1390,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1390,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1391,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1392,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1393,1
    - Dst: DDFRecord::ResizeField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1398,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1400,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1400,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1401,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - poField
    - iIndexWithinField
    - pachRawData
    - nRawDataSize
    argTypes:
    - DDFField*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1404
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1404
    functionName: DDFRecord::SetFieldRaw
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::ResizeField
    - DDFField*::GetData
    - DDFField*::GetInstanceData
    - DDFField*::GetDataSize
    - DDFField*::GetRepeatCount
    - DDFField*::GetFieldDefn
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::SetFieldRaw(DDFField *poField, int iIndexWithinField,\n
      \                          const char *pachRawData, int nRawDataSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1429,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1451,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1461,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1461,1
    - Dst: memmove
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1463,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1463,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1464,1
    - Dst: DDFRecord::ResizeField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1471,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1471,1
    - Dst: memmove
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1480,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1480,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1481,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1483,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1483,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - poField
    - iIndexWithinField
    - nStartOffset
    - nOldSize
    - pachRawData
    - nRawDataSize
    argTypes:
    - DDFField*
    - int
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1488
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1488
    functionName: DDFRecord::UpdateFieldRaw
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord::ResizeField
    - DDFField*::GetData
    - DDFField*::GetDataSize
    - DDFField*::GetRepeatCount
    - memcpy
    - memmove
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::UpdateFieldRaw(DDFField *poField, int iIndexWithinField,\n
      \                             int nStartOffset, int nOldSize,\n                              const
      char *pachRawData, int nRawDataSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1523,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1531,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1531,1
    - Dst: DDFField*::Initialize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1533,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1533,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1534,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1537,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1549,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1552,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1555,1
    - Dst: DDFFieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1556,1
    - Dst: DDFField*::GetDataSize
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1556,1
    - Dst: DDFField*::GetData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1561
    functionName: DDFRecord::ResetDirectory
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - DDFField*::GetData
    - static_cast<int>
    - DDFField*::GetFieldDefn
    - DDFFieldDefn*::GetName
    - DDFField*::GetDataSize
    - snprintf
    - DDFField*::Initialize
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DDFRecord::ResetDirectory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poField
    - iIndexWithinField
    argTypes:
    - DDFField*
    - int
    constantsTouched: []
    func_position:
      end: 1599
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1599
    functionName: DDFRecord::CreateDefaultFieldInstance
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 1
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::CreateDefaultFieldInstance(DDFField *poField,\n                                          int
      iIndexWithinField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1631,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1639,1
    - Dst: DDFSubfieldDefn*::FormatStringValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1648,1
    - Dst: DDFRecord::CreateDefaultFieldInstance
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1667,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1670,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1682,1
    - Dst: DDFSubfieldDefn*::FormatStringValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1686,1
    - Dst: DDFSubfieldDefn*::FormatStringValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1702,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1709,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - pszValue
    - nValueLength
    argTypes:
    - char*
    - int
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1712
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1712
    functionName: DDFRecord::SetStringSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::FormatStringValue
    - DDFSubfieldDefn*::GetDataLength
    - DDFRecord::CreateDefaultFieldInstance
    - DDFField*::GetSubfieldData
    - DDFRecord::FindField
    - DDFField*::GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::SetStringSubfield(const char *pszField, int iFieldIndex,\n
      \                                const char *pszSubfield, int iSubfieldIndex,\n
      \                                const char *pszValue, int nValueLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1741,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1749,1
    - Dst: DDFSubfieldDefn*::FormatIntValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1758,1
    - Dst: DDFRecord::CreateDefaultFieldInstance
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1776,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1779,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1791,1
    - Dst: DDFSubfieldDefn*::FormatIntValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1795,1
    - Dst: DDFSubfieldDefn*::FormatIntValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1811,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - nNewValue
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1820
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1820
    functionName: DDFRecord::SetIntSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::GetDataLength
    - DDFRecord::CreateDefaultFieldInstance
    - DDFField*::GetSubfieldData
    - DDFRecord::FindField
    - DDFSubfieldDefn*::FormatIntValue
    - DDFField*::GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::SetIntSubfield(const char *pszField, int iFieldIndex,\n
      \                             const char *pszSubfield, int iSubfieldIndex,\n
      \                             int nNewValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::FindField
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1849,1
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1857,1
    - Dst: DDFSubfieldDefn*::FormatFloatValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1866,1
    - Dst: DDFRecord::CreateDefaultFieldInstance
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1884,1
    - Dst: DDFField*::GetSubfieldData
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1887,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1899,1
    - Dst: DDFSubfieldDefn*::FormatFloatValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1903,1
    - Dst: DDFSubfieldDefn*::FormatFloatValue
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1918,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfrecord.cpp:1924,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - pszField
    - iFieldIndex
    - pszSubfield
    - iSubfieldIndex
    - dfNewValue
    argTypes:
    - char*
    - int
    - char*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 1927
      start: 1841
    functionDepth: 2
    functionLinenumber: 1841
    functionLinenumberEnd: 1927
    functionName: DDFRecord::SetFloatSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/ddfrecord.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::GetDataLength
    - DDFRecord::CreateDefaultFieldInstance
    - DDFField*::GetSubfieldData
    - DDFRecord::FindField
    - DDFSubfieldDefn*::FormatFloatValue
    - DDFField*::GetFieldDefn
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int DDFRecord::SetFloatSubfield(const char *pszField, int iFieldIndex,\n
      \                               const char *pszSubfield, int iSubfieldIndex,\n
      \                               double dfNewValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: DDFModule::DDFModule
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 5
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: void
    signature: void DDFModule::DDFModule()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::Close
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: DDFModule::~DDFModule()
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - DDFModule::Close
    linkageType: ''
    returnType: void
    signature: void DDFModule::~DDFModule()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:80,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:80,1
    - Dst: RemoveIsCloneFlag
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:98,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:103,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 114
    functionName: DDFModule::Close
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 2
    functionsReached:
    - RemoveIsCloneFlag
    - CPLFree
    - CPL_IGNORE_RET_VAL
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void DDFModule::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::Close
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:146,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:152,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:152,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:153,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:158,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:168,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:170,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:170,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:174,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:205,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:211,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:212,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:217,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:218,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:219,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:235,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:235,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:239,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:250,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:252,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:256,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:259,1
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:288,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:292,1
    - Dst: DDFScanInt
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:295,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:303,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:307,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:311,1
    - Dst: DDFFieldDefn*::Initialize
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:312,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:314,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:319,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:325,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 2
    argNames:
    - pszFilename
    - bFailQuietly
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 328
    functionName: DDFModule::Open
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 3
    functionsReached:
    - DDFFieldDefn*::Initialize
    - VSIStatL
    - VSIFCloseL
    - VSI_ISDIR
    - strncpy
    - DDFModule::Close
    - DDFModule::AddField
    - VSIFOpenL
    - DDFFieldDefn::DDFFieldDefn
    - CPL_IGNORE_RET_VAL
    - VSIFTellL
    - VSIFReadL
    - CPLError
    - DDFScanInt
    - memcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int DDFModule::Open(const char *pszFilename, int bFailQuietly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 9
    argNames:
    - chInterchangeLevel
    - chLeaderIden
    - chCodeExtensionIndicator
    - chVersionNumber
    - chAppIndicator
    - pszExtendedCharSet
    - nSizeFieldLength
    - nSizeFieldPos
    - nSizeFieldTag
    argTypes:
    - char
    - char
    - char
    - char
    - char
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 353
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 353
    functionName: DDFModule::Initialize
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int DDFModule::Initialize(char chInterchangeLevel, char chLeaderIden,\n
      \                         char chCodeExtensionIndicator, char chVersionNumber,\n
      \                         char chAppIndicator, const char *pszExtendedCharSet,\n
      \                         int nSizeFieldLength, int nSizeFieldPos,\n                          int
      nSizeFieldTag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:362,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:367,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:370,1
    - Dst: GenerateDDREntry
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:394,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:403,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:409,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:411,1
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:413,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:414,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:416,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:418,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:431,1
    - Dst: GenerateDDREntry
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:434,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:436,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:436,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:436,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:438,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:439,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:440,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:441,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:443,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:444,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:449,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:455,1
    - Dst: GenerateDDREntry
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:465,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:466,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 471
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 471
    functionName: DDFModule::Create
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - GenerateDDREntry
    - VSIFOpenL
    - CPLAssert
    - snprintf
    - strlen
    - VSIFWriteL
    - CPLError
    - memcpy
    - CPLFree
    - GetName
    linkageType: ''
    returnType: int
    signature: int DDFModule::Create(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:490,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:491,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:492,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:493,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:494,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:496,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:497,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:498,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:499,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:500,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:501,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:502,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:503,1
    - Dst: DDFModule::Dump
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 509
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 509
    functionName: DDFModule::Dump
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 2
    functionsReached:
    - DDFModule::Dump
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DDFModule::Dump(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:543,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:553,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - pszFieldName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 558
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 558
    functionName: DDFModule::FindFieldDefn
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - strcmp
    - GetName
    linkageType: ''
    returnType: DDFFieldDefn
    signature: DDFFieldDefn *DDFModule::FindFieldDefn(const char *pszFieldName) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:582,1
    - Dst: Read
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 588
    functionName: DDFModule::ReadRecord
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 2
    functionsReached:
    - DDFRecord::DDFRecord
    - Read
    linkageType: ''
    returnType: DDFRecord
    signature: DDFRecord *DDFModule::ReadRecord()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poNewFDefn
    argTypes:
    - DDFFieldDefn*
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: DDFModule::AddField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 1
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void DDFModule::AddField(DDFFieldDefn *poNewFDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: DDFModule::GetField
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DDFFieldDefn
    signature: DDFFieldDefn *DDFModule::GetField(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poRecordIn
    argTypes:
    - DDFRecord*
    constantsTouched: []
    func_position:
      end: 657
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 657
    functionName: DDFModule::AddCloneRecord
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - CPLRealloc
    linkageType: ''
    returnType: void
    signature: void DDFModule::AddCloneRecord(DDFRecord *poRecordIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poRecordIn
    argTypes:
    - DDFRecord*
    constantsTouched: []
    func_position:
      end: 679
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 679
    functionName: DDFModule::RemoveCloneRecord
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: void
    signature: void DDFModule::RemoveCloneRecord(DDFRecord *poRecordIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:704,1
    - Dst: Clear
      Src: /src/gdal/frmts/iso8211/ddfmodule.cpp:708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - nOffset
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 709
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 709
    functionName: DDFModule::Rewind
    functionSourceFile: /src/gdal/frmts/iso8211/ddfmodule.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - VSIFSeekL
    linkageType: ''
    returnType: void
    signature: void DDFModule::Rewind(long nOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/timetest.cpp:29,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/timetest.cpp:30,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/timetest.cpp:34,1
    - Dst: DDFModule::Open
      Src: /src/gdal/frmts/iso8211/timetest.cpp:44,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/timetest.cpp:46,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/timetest.cpp:58,1
    - Dst: DDFRecord*::GetFieldCount
      Src: /src/gdal/frmts/iso8211/timetest.cpp:63,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/frmts/iso8211/timetest.cpp:65,1
    - Dst: ViewRecordField
      Src: /src/gdal/frmts/iso8211/timetest.cpp:67,1
    - Dst: DDFModule::Close
      Src: /src/gdal/frmts/iso8211/timetest.cpp:75,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/timetest.cpp:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 79
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/gdal/frmts/iso8211/timetest.cpp
    functionUses: 42
    functionsReached:
    - DDFModule::DDFModule
    - DDFRecord*::GetFieldCount
    - exit
    - DDFModule::Open
    - DDFRecord*::GetField
    - DDFModule::Close
    - ViewRecordField
    - printf
    - DDFModule::ReadRecord
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char **papszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/timetest.cpp:90,1
    - Dst: DDFFieldDefn*::GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/timetest.cpp:113,1
    - Dst: DDFFieldDefn*::GetSubfield
      Src: /src/gdal/frmts/iso8211/timetest.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poField
    argTypes:
    - DDFField*
    constantsTouched: []
    func_position:
      end: 123
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 123
    functionName: ViewRecordField
    functionSourceFile: /src/gdal/frmts/iso8211/timetest.cpp
    functionUses: 1
    functionsReached:
    - DDFFieldDefn*::GetSubfield
    - DDFField*::GetFieldDefn
    - DDFFieldDefn*::GetSubfieldCount
    linkageType: ''
    returnType: void
    signature: void ViewRecordField(DDFField *poField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFSubfieldDefn*::GetType
      Src: /src/gdal/frmts/iso8211/timetest.cpp:135,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/frmts/iso8211/timetest.cpp:138,1
    - Dst: DDFSubfieldDefn*::ExtractFloatData
      Src: /src/gdal/frmts/iso8211/timetest.cpp:143,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/timetest.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - poSFDefn
    - pachFieldData
    - nBytesRemaining
    argTypes:
    - DDFSubfieldDefn*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 157
    functionName: ViewSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/timetest.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::ExtractFloatData
    - DDFSubfieldDefn*::ExtractStringData
    - DDFSubfieldDefn*::GetType
    - DDFSubfieldDefn*::ExtractIntData
    linkageType: ''
    returnType: int
    signature: "int ViewSubfield(DDFSubfieldDefn *poSFDefn, const char *pachFieldData,\n
      \                       int nBytesRemaining)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:22,1
    - Dst: DDFModule::Initialize
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:24,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:29,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:31,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:37,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:42,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:44,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:47,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:52,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:54,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:57,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:58,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:59,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:60,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:61,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:62,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:63,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:64,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:65,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:66,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:67,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:68,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:69,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:70,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:71,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:72,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:74,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:79,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:81,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:84,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:85,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:86,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:87,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:88,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:89,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:90,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:91,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:92,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:93,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:94,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:96,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:101,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:103,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:106,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:107,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:108,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:109,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:110,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:111,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:112,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:113,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:114,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:115,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:116,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:117,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:118,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:120,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:125,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:127,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:130,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:131,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:132,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:133,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:135,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:140,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:142,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:146,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:147,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:149,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:154,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:156,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:160,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:161,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:163,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:168,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:170,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:174,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:175,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:176,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:178,1
    - Dst: DDFModule::Dump
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:188,1
    - Dst: DDFModule::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:190,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:195,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:196,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:196,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:197,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:199,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:199,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:201,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:202,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:203,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:204,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:205,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:206,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:207,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:208,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:209,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:210,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:211,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:212,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:213,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:214,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:215,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:216,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:218,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:218,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:220,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:221,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:222,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:223,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:224,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:225,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:226,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:227,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:228,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:229,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:230,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:232,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:238,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:240,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:240,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:241,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:243,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:243,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:245,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:246,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:247,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:248,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:249,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:250,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:251,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:252,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:253,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:254,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:255,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:256,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:258,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:264,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:266,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:266,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:267,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:269,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:269,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:271,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:272,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:273,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:274,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:276,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:276,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:278,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:279,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:280,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:282,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:283,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:284,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 148
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 289
    functionName: mk_s57
    functionSourceFile: /src/gdal/frmts/iso8211/mkcatalog.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord*::SetStringSubfield
    - DDFRecord*::SetFloatSubfield
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - DDFFieldDefn*::Create
    - DDFFieldDefn*::AddSubfield
    - DDFModule::Dump
    - DDFRecord::DDFRecord
    - DDFModule::AddField
    - DDFFieldDefn::DDFFieldDefn
    - DDFRecord*::SetFieldRaw
    - DDFRecord*::AddField
    - DDFRecord*::Write
    - DDFRecord*::SetIntSubfield
    - DDFModule::Initialize
    - DDFModule::Create
    linkageType: ''
    returnType: void
    signature: void mk_s57()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:299,1
    - Dst: DDFModule::Initialize
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:301,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:306,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:308,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:312,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:317,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:319,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:323,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:328,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:330,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:333,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:334,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:335,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:336,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:337,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:338,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:339,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:340,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:341,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:342,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:343,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:344,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:346,1
    - Dst: DDFModule::Dump
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:348,1
    - Dst: DDFModule::Create
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:350,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:355,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:356,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:356,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:357,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:359,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:359,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:360,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:361,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:362,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:363,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:364,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:365,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:367,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:373,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:375,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:375,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:376,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:378,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:378,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:379,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:380,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:381,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:382,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:383,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:384,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:385,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:386,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:387,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:388,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 391
    functionName: mk_catalog
    functionSourceFile: /src/gdal/frmts/iso8211/mkcatalog.cpp
    functionUses: 0
    functionsReached:
    - DDFRecord*::SetStringSubfield
    - DDFRecord*::SetFloatSubfield
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - DDFFieldDefn*::Create
    - DDFFieldDefn*::AddSubfield
    - DDFModule::Dump
    - DDFRecord::DDFRecord
    - DDFModule::AddField
    - DDFFieldDefn::DDFFieldDefn
    - DDFRecord*::SetFieldRaw
    - DDFRecord*::AddField
    - DDFRecord*::Write
    - DDFRecord*::SetIntSubfield
    - DDFModule::Initialize
    - DDFModule::Create
    linkageType: ''
    returnType: void
    signature: void mk_catalog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mk_s57
      Src: /src/gdal/frmts/iso8211/mkcatalog.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: main
    functionSourceFile: /src/gdal/frmts/iso8211/mkcatalog.cpp
    functionUses: 42
    functionsReached:
    - mk_s57
    linkageType: ''
    returnType: int
    signature: int main(int /* nArgc */, char ** /* papszArgv */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:47,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:48,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:51,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:54,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:55,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:58,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:61,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:63,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:72,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:76,1
    - Dst: strlen
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:77,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:79,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:80,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:88,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:89,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:92,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:93,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:97,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:98,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:101,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:102,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:105,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:106,1
    - Dst: snprintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:110,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:112,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:115,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:115,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:116,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:119,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:119,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:120,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:121,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:122,1
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:124,1
    - Dst: DDFModule::Initialize
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:125,1
    - Dst: DDFModule::SetFieldControlLength
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:129,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:129,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:130,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:131,1
    - Dst: DDFModule::GetFieldControlLength
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:131,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:140,1
    - Dst: DDFFieldDefn::DDFFieldDefn
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:142,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:147,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:149,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:151,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:153,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:159,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:161,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:163,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:165,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:167,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:169,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:171,1
    - Dst: DDFFieldDefn*::Create
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:186,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:186,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:187,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:195,1
    - Dst: DDFFieldDefn*::AddSubfield
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:197,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:198,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:199,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:205,1
    - Dst: DDFFieldDefn*::SetFormatControls
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:207,1
    - Dst: DDFModule::AddField
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:209,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:212,1
    - Dst: DDFModule::Create
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:217,1
    - Dst: DDFRecord::DDFRecord
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:221,1
    - Dst: DDFRecord*::SetSizeFieldLength
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:228,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:228,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:229,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:230,1
    - Dst: DDFRecord*::GetSizeFieldLength
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:230,1
    - Dst: DDFRecord*::SetSizeFieldPos
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:231,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:231,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:232,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:233,1
    - Dst: DDFRecord*::GetSizeFieldPos
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:233,1
    - Dst: DDFRecord*::SetSizeFieldTag
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:234,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:234,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:235,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:236,1
    - Dst: DDFRecord*::GetSizeFieldTag
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:236,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:242,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:247,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:250,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:252,1
    - Dst: DDFRecord*::AddField
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:258,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:261,1
    - Dst: DDFRecord*::SetFieldRaw
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:282,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:284,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:293,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:304,1
    - Dst: DDFRecord*::SetFloatSubfield
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:306,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:309,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:311,1
    - Dst: DDFRecord*::SetIntSubfield
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:314,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:317,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:319,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:321,1
    - Dst: strcmp
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:326,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:328,1
    - Dst: DDFRecord*::SetStringSubfield
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:351,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:355,1
    - Dst: DDFRecord*::Write
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:365,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:372,1
    - Dst: DDFModule::Close
      Src: /src/gdal/frmts/iso8211/8211createfromxml.cpp:374,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 163
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 377
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 377
    functionName: main
    functionSourceFile: /src/gdal/frmts/iso8211/8211createfromxml.cpp
    functionUses: 42
    functionsReached:
    - DDFRecord*::GetSizeFieldPos
    - DDFRecord*::SetSizeFieldPos
    - atoi
    - DDFRecord*::SetSizeFieldLength
    - DDFFieldDefn*::Create
    - DDFRecord::DDFRecord
    - DDFRecord*::GetSizeFieldTag
    - DDFModule::SetFieldControlLength
    - strcmp
    - CPLGetXMLValue
    - printf
    - DDFModule::Initialize
    - STARTS_WITH
    - DDFRecord*::SetFloatSubfield
    - fprintf
    - DDFModule::AddField
    - DDFFieldDefn::DDFFieldDefn
    - strlen
    - DDFRecord*::SetIntSubfield
    - DDFModule::Create
    - CPLAtof
    - DDFRecord*::SetStringSubfield
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - CPLDestroyXMLNode
    - CPLSPrintf
    - DDFModule::Close
    - DDFRecord*::SetFieldRaw
    - DDFRecord*::Write
    - DDFRecord*::AddField
    - snprintf
    - CPLFree
    - CPLParseXMLFile
    - DDFFieldDefn*::AddSubfield
    - exit
    - DDFModule::GetFieldControlLength
    - DDFRecord*::SetSizeFieldTag
    - DDFRecord*::GetSizeFieldLength
    - CPLSearchXMLNode
    - DDFFieldDefn*::SetFormatControls
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char *papszArgv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - poDefnIn
    - pachDataIn
    - nDataSizeIn
    argTypes:
    - DDFFieldDefn*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: DDFField::Initialize
    functionSourceFile: /src/gdal/frmts/iso8211/ddffield.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DDFField::Initialize(DDFFieldDefn *poDefnIn, const char *pachDataIn,\n
      \                         int nDataSizeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:61,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:63,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:64,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:64,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:65,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:67,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:68,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:71,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:73,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:77,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:78,1
    - Dst: DDFField::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:85,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:89,1
    - Dst: GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:93,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:95,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 105
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 105
    functionName: DDFField::Dump
    functionSourceFile: /src/gdal/frmts/iso8211/ddffield.cpp
    functionUses: 0
    functionsReached:
    - DDFField::GetRepeatCount
    - GetSubfieldCount
    - atoi
    - GetSubfield
    - fprintf
    - min
    - GetName
    linkageType: ''
    returnType: void
    signature: void DDFField::Dump(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFixedWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:142,1
    - Dst: GetFixedWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:144,1
    - Dst: GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:150,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:152,1
    - Dst: CPLError
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:156,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:158,1
    - Dst: GetName
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:158,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - poSFDefn
    - pnMaxBytes
    - iSubfieldIndex
    argTypes:
    - DDFSubfieldDefn*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 181
    functionName: DDFField::GetSubfieldData
    functionSourceFile: /src/gdal/frmts/iso8211/ddffield.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::GetDataLength
    - GetSubfield
    - GetSubfieldCount
    - GetFixedWidth
    - DDFSubfieldDefn*::GetName
    - CPLError
    - GetName
    linkageType: ''
    returnType: char
    signature: "char *DDFField::GetSubfieldData(const DDFSubfieldDefn *poSFDefn,\n
      \                                     int *pnMaxBytes, int iSubfieldIndex) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsRepeating
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:201,1
    - Dst: GetFixedWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:208,1
    - Dst: GetFixedWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:210,1
    - Dst: GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:228,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:230,1
    - Dst: DDFSubfieldDefn*::GetWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:233,1
    - Dst: DDFSubfieldDefn*::GetWidth
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:234,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 254
    functionName: DDFField::GetRepeatCount
    functionSourceFile: /src/gdal/frmts/iso8211/ddffield.cpp
    functionUses: 1
    functionsReached:
    - DDFSubfieldDefn*::GetDataLength
    - GetSubfield
    - GetSubfieldCount
    - GetFixedWidth
    - DDFSubfieldDefn*::GetWidth
    - IsRepeating
    linkageType: ''
    returnType: int
    signature: int DDFField::GetRepeatCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:287,1
    - Dst: GetDataSize
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:291,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:301,1
    - Dst: GetSubfield
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:315,1
    - Dst: GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:315,1
    - Dst: DDFSubfieldDefn*::GetDataLength
      Src: /src/gdal/frmts/iso8211/ddffield.cpp:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - nInstance
    - pnInstanceSize
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 331
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 331
    functionName: DDFField::GetInstanceData
    functionSourceFile: /src/gdal/frmts/iso8211/ddffield.cpp
    functionUses: 0
    functionsReached:
    - GetDataSize
    - DDFSubfieldDefn*::GetDataLength
    - GetSubfieldCount
    - GetSubfield
    linkageType: ''
    returnType: char
    signature: char *DDFField::GetInstanceData(int nInstance, int *pnInstanceSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/iso8211/ddfutils.cpp:36,1
    - Dst: atoi
      Src: /src/gdal/frmts/iso8211/ddfutils.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pszString
    - nMaxChars
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: DDFScanInt
    functionSourceFile: /src/gdal/frmts/iso8211/ddfutils.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - atoi
    linkageType: ''
    returnType: int
    signature: int DDFScanInt(const char *pszString, int nMaxChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pszRecord
    - nMaxChars
    - nDelimChar
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: DDFScanVariable
    functionSourceFile: /src/gdal/frmts/iso8211/ddfutils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DDFScanVariable(const char *pszRecord, int nMaxChars, int nDelimChar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/frmts/iso8211/ddfutils.cpp:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - pszRecord
    - nMaxChars
    - nDelimChar1
    - nDelimChar2
    - pnConsumedChars
    argTypes:
    - char*
    - int
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: DDFFetchVariable
    functionSourceFile: /src/gdal/frmts/iso8211/ddfutils.cpp
    functionUses: 1
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: char
    signature: "char *DDFFetchVariable(const char *pszRecord, int nMaxChars, int nDelimChar1,\n
      \                      int nDelimChar2, int *pnConsumedChars)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFModule::DDFModule
      Src: /src/gdal/frmts/iso8211/8211view.cpp:29,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211view.cpp:35,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:43,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211view.cpp:44,1
    - Dst: DDFModule::Open
      Src: /src/gdal/frmts/iso8211/8211view.cpp:51,1
    - Dst: exit
      Src: /src/gdal/frmts/iso8211/8211view.cpp:53,1
    - Dst: DDFModule::FindFieldDefn
      Src: /src/gdal/frmts/iso8211/8211view.cpp:58,1
    - Dst: fprintf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:61,1
    - Dst: DDFFieldDefn*::SetRepeatingFlag
      Src: /src/gdal/frmts/iso8211/8211view.cpp:64,1
    - Dst: DDFModule::ReadRecord
      Src: /src/gdal/frmts/iso8211/8211view.cpp:73,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:75,1
    - Dst: DDFRecord*::GetDataSize
      Src: /src/gdal/frmts/iso8211/8211view.cpp:75,1
    - Dst: DDFRecord*::GetFieldCount
      Src: /src/gdal/frmts/iso8211/8211view.cpp:80,1
    - Dst: DDFRecord*::GetField
      Src: /src/gdal/frmts/iso8211/8211view.cpp:82,1
    - Dst: ViewRecordField
      Src: /src/gdal/frmts/iso8211/8211view.cpp:84,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - nArgc
    - papszArgv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 87
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 87
    functionName: main
    functionSourceFile: /src/gdal/frmts/iso8211/8211view.cpp
    functionUses: 42
    functionsReached:
    - DDFModule::DDFModule
    - DDFModule::FindFieldDefn
    - DDFRecord*::GetFieldCount
    - exit
    - DDFModule::Open
    - fprintf
    - DDFRecord*::GetDataSize
    - EQUAL
    - DDFRecord*::GetField
    - ViewRecordField
    - printf
    - DDFFieldDefn*::SetRepeatingFlag
    - DDFModule::ReadRecord
    linkageType: ''
    returnType: int
    signature: int main(int nArgc, char **papszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFField*::GetFieldDefn
      Src: /src/gdal/frmts/iso8211/8211view.cpp:98,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:101,1
    - Dst: DDFFieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:101,1
    - Dst: DDFFieldDefn*::GetDescription
      Src: /src/gdal/frmts/iso8211/8211view.cpp:102,1
    - Dst: DDFField*::GetRepeatCount
      Src: /src/gdal/frmts/iso8211/8211view.cpp:115,1
    - Dst: DDFFieldDefn*::GetSubfieldCount
      Src: /src/gdal/frmts/iso8211/8211view.cpp:122,1
    - Dst: DDFFieldDefn*::GetSubfield
      Src: /src/gdal/frmts/iso8211/8211view.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - poField
    argTypes:
    - DDFField*
    constantsTouched: []
    func_position:
      end: 132
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 132
    functionName: ViewRecordField
    functionSourceFile: /src/gdal/frmts/iso8211/8211view.cpp
    functionUses: 2
    functionsReached:
    - DDFFieldDefn*::GetSubfield
    - DDFFieldDefn*::GetSubfieldCount
    - DDFFieldDefn*::GetName
    - printf
    - DDFFieldDefn*::GetDescription
    - DDFField*::GetRepeatCount
    - DDFField*::GetFieldDefn
    linkageType: ''
    returnType: void
    signature: void ViewRecordField(const DDFField *poField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DDFSubfieldDefn*::GetType
      Src: /src/gdal/frmts/iso8211/8211view.cpp:144,1
    - Dst: DDFSubfieldDefn*::GetBinaryFormat
      Src: /src/gdal/frmts/iso8211/8211view.cpp:147,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:148,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:148,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/iso8211/8211view.cpp:149,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/frmts/iso8211/8211view.cpp:149,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:152,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:152,1
    - Dst: DDFSubfieldDefn*::ExtractIntData
      Src: /src/gdal/frmts/iso8211/8211view.cpp:153,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:158,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:158,1
    - Dst: DDFSubfieldDefn*::ExtractFloatData
      Src: /src/gdal/frmts/iso8211/8211view.cpp:159,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:164,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:164,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/8211view.cpp:165,1
    - Dst: DDFSubfieldDefn*::ExtractStringData
      Src: /src/gdal/frmts/iso8211/8211view.cpp:171,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:174,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:174,1
    - Dst: min
      Src: /src/gdal/frmts/iso8211/8211view.cpp:175,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:176,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:179,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211view.cpp:183,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:183,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:189,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/iso8211/8211view.cpp:191,1
    - Dst: DDFSubfieldDefn*::GetName
      Src: /src/gdal/frmts/iso8211/8211view.cpp:191,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:198,1
    - Dst: printf
      Src: /src/gdal/frmts/iso8211/8211view.cpp:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - poSFDefn
    - pachFieldData
    - nBytesRemaining
    argTypes:
    - DDFSubfieldDefn*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 208
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 208
    functionName: ViewSubfield
    functionSourceFile: /src/gdal/frmts/iso8211/8211view.cpp
    functionUses: 0
    functionsReached:
    - DDFSubfieldDefn*::GetBinaryFormat
    - DDFSubfieldDefn*::ExtractIntData
    - static_cast<unsigned int>
    - DDFSubfieldDefn*::GetType
    - DDFSubfieldDefn*::GetName
    - min
    - EQUAL
    - DDFSubfieldDefn*::ExtractStringData
    - DDFSubfieldDefn*::ExtractFloatData
    - printf
    linkageType: ''
    returnType: int
    signature: "int ViewSubfield(const DDFSubfieldDefn *poSFDefn,\n                        const
      char *pachFieldData, int nBytesRemaining)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - papszStrList
    - pszName
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 333
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 333
    functionName: myCSLFetchNameValue
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - EQUALN
    linkageType: ''
    returnType: char
    signature: char *myCSLFetchNameValue(char **papszStrList, const char *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:348,1
    - Dst: strcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:359,1
    - Dst: strcat
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:360,1
    - Dst: strcat
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:361,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - papszList
    - pszSeparator
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: myCSLSetNameValueSeparator
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - CPLFree
    - strcat
    - strcpy
    linkageType: ''
    returnType: void
    signature: "void myCSLSetNameValueSeparator(char **papszList,\n                                       const
      char *pszSeparator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:473,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 482
    functionName: IdrisiDataset::IdrisiDataset
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - GDALColorTable::GDALColorTable
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void IdrisiDataset::IdrisiDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:490,1
    - Dst: cpl::down_cast<IdrisiRasterBand *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:505,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:505,1
    - Dst: IdrisiRasterBand*::ComputeStatistics
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:506,1
    - Dst: IdrisiRasterBand*::SetMinMax
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:517,1
    - Dst: myCSLSetNameValueSeparator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:520,1
    - Dst: SaveAsCRLF
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:521,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:523,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:529,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:530,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:532,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 536
    functionName: IdrisiDataset::~IdrisiDataset()
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - IdrisiRasterBand*::SetMinMax
    - cpl::down_cast<IdrisiRasterBand *>
    - VSIFCloseL
    - SaveAsCRLF
    - GetRasterBand
    - CSLDestroy
    - myCSLSetNameValueSeparator
    - IdrisiRasterBand*::ComputeStatistics
    - CPLFree
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void IdrisiDataset::~IdrisiDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:545,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:553,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:555,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:555,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:558,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:560,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:560,1
    - Dst: myCSLSetNameValueSeparator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:568,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:572,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:574,1
    - Dst: IdrisiDataset::IdrisiDataset
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:582,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:584,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:588,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:592,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:597,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:602,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:602,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:603,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:604,1
    - Dst: atoi_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:611,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:611,1
    - Dst: atoi_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:612,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:612,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:613,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:630,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:633,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:633,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:635,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:638,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:638,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:640,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:643,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:643,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:645,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:648,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:648,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:649,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:649,1
    - Dst: IdrisiDataset*::SetBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:650,1
    - Dst: IdrisiRasterBand::IdrisiRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:650,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:654,1
    - Dst: cpl::down_cast<IdrisiRasterBand *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:663,1
    - Dst: IdrisiDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:663,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:681,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:682,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:682,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:683,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:684,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:688,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:689,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:690,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:691,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:692,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:717,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:718,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:718,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:727,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:731,1
    - Dst: IdrisiDataset*::poColorTable::SetColorEntry
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:738,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:741,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:753,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:756,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:758,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:760,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:762,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:765,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:782,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:783,1
    - Dst: sscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:790,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:796,1
    - Dst: CPLParseNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:798,1
    - Dst: sscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:801,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:805,1
    - Dst: IdrisiDataset*::poColorTable::GetColorEntryCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:815,1
    - Dst: IdrisiDataset*::poColorTable::CreateColorRamp
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:831,1
    - Dst: IdrisiDataset*::SetDescription
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:839,1
    - Dst: IdrisiDataset*::TryLoadXML
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:840,1
    - Dst: IdrisiDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:846,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 144
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 849
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 849
    functionName: IdrisiDataset::Open
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - FileExists
    - CPLError
    - EQUALN
    - std::string::c_str
    - sscanf
    - CPLStrdup
    - IdrisiDataset*::SetBand
    - IdrisiDataset*::oOvManager::Initialize
    - myCSLSetNameValueSeparator
    - myCSLFetchNameValue
    - IdrisiRasterBand::IdrisiRasterBand
    - CPLAtof_nz
    - strlen
    - CSLCount
    - GDALOpenInfo*::IsExtensionEqualToCI
    - IdrisiDataset*::poColorTable::GetColorEntryCount
    - IdrisiDataset::IdrisiDataset
    - STARTS_WITH_CI
    - atoi_nz
    - VSIFSeekL
    - IdrisiDataset*::poColorTable::CreateColorRamp
    - VSIFOpenL
    - VSIFReadL
    - IdrisiDataset*::poColorTable::SetColorEntry
    - cpl::down_cast<IdrisiRasterBand *>
    - VSIFCloseL
    - CPLResetExtensionSafe
    - CSLDestroy
    - IdrisiDataset*::GetRasterBand
    - CPLParseNameValue
    - GDALCheckDatasetDimensions
    - EQUAL
    - IdrisiDataset*::SetDescription
    - CSLDuplicate
    - IdrisiDataset*::TryLoadXML
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *IdrisiDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:865,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:875,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:879,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:906,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:910,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:914,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:918,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:922,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:926,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:930,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:934,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:937,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:940,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:945,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:946,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:947,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:948,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:950,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:950,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:951,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:951,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:952,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:953,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:954,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:955,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:956,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:956,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:957,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:958,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:958,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:959,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:960,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:961,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:962,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:963,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:964,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:965,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:966,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:967,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:968,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:969,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:970,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:971,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:974,1
    - Dst: myCSLSetNameValueSeparator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:976,1
    - Dst: SaveAsCRLF
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:977,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:977,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:978,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:984,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:988,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:997,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:998,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:999,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1001,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 78
    argCount: 5
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 1002
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 1002
    functionName: IdrisiDataset::Create
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeName
    - VSIFCloseL
    - SaveAsCRLF
    - CPLResetExtensionSafe
    - CSLDestroy
    - CPLSPrintf
    - myCSLSetNameValueSeparator
    - CSLAddNameValue
    - VSIFOpenL
    - VSIFTruncateL
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *IdrisiDataset::Create(const char *pszFilename, int nXSize,\n
      \                                  int nYSize, int nBandsIn, GDALDataType eType,\n
      \                                  char ** /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pfnProgress
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1014,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1020,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1020,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1022,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1026,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1029,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1030,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1031,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1032,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1034,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1046,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1048,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1054,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1057,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1068,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1071,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1081,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1082,1
    - Dst: GDALRasterBand*::GetStatistics
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1092,1
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1119,1
    - Dst: IdrisiDataset::Create
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1119,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1120,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1120,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1121,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1131,1
    - Dst: IdrisiDataset*::SetGeoTransform
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1133,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1136,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1136,1
    - Dst: IdrisiDataset*::SetProjection
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1138,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1138,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1147,1
    - Dst: cpl::down_cast<IdrisiRasterBand *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1149,1
    - Dst: IdrisiDataset*::GetRasterBand
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1149,1
    - Dst: IdrisiRasterBand*::SetUnitType
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1153,1
    - Dst: GDALRasterBand*::GetUnitType
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1153,1
    - Dst: IdrisiRasterBand*::SetColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1154,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1154,1
    - Dst: IdrisiRasterBand*::SetCategoryNames
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1155,1
    - Dst: GDALRasterBand*::GetCategoryNames
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1155,1
    - Dst: GDALRasterBand*::GetDefaultRAT
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1157,1
    - Dst: IdrisiRasterBand*::SetDefaultRAT
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1161,1
    - Dst: GDALRasterBand*::GetMinimum
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1165,1
    - Dst: GDALRasterBand*::GetMaximum
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1166,1
    - Dst: IdrisiRasterBand*::SetMinMax
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1167,1
    - Dst: IdrisiRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1171,1
    - Dst: GDALDatasetCopyWholeRaster
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1178,1
    - Dst: IdrisiDataset*::FlushCache
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1190,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 67
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1193
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1193
    functionName: IdrisiDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - IdrisiRasterBand*::SetColorTable
    - GDALDataset*::GetProjectionRef
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALGetDataTypeName
    - IdrisiRasterBand*::SetDefaultRAT
    - GDALRasterBand*::GetUnitType
    - IdrisiRasterBand*::SetCategoryNames
    - GDALRasterBand*::GetStatistics
    - pfnProgress
    - GDALDataset*::GetGeoTransform
    - GDALRasterBand*::GetColorTable
    - GDALDatasetCopyWholeRaster
    - IdrisiDataset*::FlushCache
    - GDALRasterBand*::GetMaximum
    - GDALDataset*::GetRasterBand
    - IdrisiRasterBand*::SetUnitType
    - GDALDataset*::GetRasterXSize
    - IdrisiDataset::Create
    - IdrisiRasterBand*::SetNoDataValue
    - GDALDataset*::GetRasterYSize
    - IdrisiRasterBand*::SetMinMax
    - cpl::down_cast<IdrisiDataset *>
    - IdrisiDataset*::SetGeoTransform
    - cpl::down_cast<IdrisiRasterBand *>
    - GDALRasterBand*::GetDefaultRAT
    - IdrisiDataset*::GetRasterBand
    - GDALRasterBand*::GetCategoryNames
    - IdrisiDataset*::SetProjection
    - EQUAL
    - GDALRasterBand*::GetRasterDataType
    - GDALRasterBand*::GetMinimum
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *IdrisiDataset::CreateCopy(const char *pszFilename,\n
      \                                      GDALDataset *poSrcDS, int bStrict,\n
      \                                      char **papszOptions,\n                                       GDALProgressFunc
      pfnProgress,\n                                       void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1207,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1209,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1209,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1211,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1211,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1215,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1217,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1217,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1219,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1219,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1227,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1229,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1229,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1231,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1231,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1235,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1237,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1237,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1239,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1239,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1247,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1249,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1249,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1251,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1251,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1255,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1257,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1257,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1259,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1264
    functionName: IdrisiDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLResetExtensionSafe
    - std::string::c_str
    - FileExists
    linkageType: ''
    returnType: char
    signature: char **IdrisiDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1272,1
    - Dst: memcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1287
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1287
    functionName: IdrisiDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1297,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1324,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1324,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1325,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1325,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1326,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1326,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1327,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1327,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1328,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1329,1
    - Dst: fabs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1329,1
    - Dst: memcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1338
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1338
    functionName: IdrisiDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CPLSPrintf
    - fabs
    - CPLError
    - memcpy
    - CSLSetNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1346,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1350,1
    - Dst: IdrisiGeoReference2Wkt
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1355,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1359
    functionName: IdrisiDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - IdrisiGeoReference2Wkt
    - IsEmpty
    - GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *IdrisiDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1367,1
    - Dst: IdrisiDataset::Wkt2GeoReference
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1374,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1376,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1377,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1379,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1383
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1383
    functionName: IdrisiDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - CPLFree
    - CSLSetNameValue
    - IdrisiDataset::Wkt2GeoReference
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IdrisiDataset*::GetRasterXSize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1392,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1393,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1394,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1394,1
    - Dst: IdrisiDataset*::GetRasterXSize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1395,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1395,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - poDSIn
    - nBandIn
    - eDataTypeIn
    argTypes:
    - IdrisiDataset*
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 1404
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1404
    functionName: IdrisiRasterBand::IdrisiRasterBand
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDataTypeSizeBytes
    - static_cast<GByte *>
    - IdrisiDataset*::GetRasterXSize
    - GetRasterXSize
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: void
    signature: "void IdrisiRasterBand::IdrisiRasterBand(IdrisiDataset *poDSIn, int
      nBandIn,\n                                   GDALDataType eDataTypeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1418
    functionName: IdrisiRasterBand::~IdrisiRasterBand()
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void IdrisiRasterBand::~IdrisiRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1427,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1429,1
    - Dst: vsi_l_offset
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1429,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1432,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1435,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1439,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1441,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1444,1
    - Dst: memcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1457,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1466
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1466
    functionName: IdrisiRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - VSIFSeekL
    - vsi_l_offset
    - GDALSwapWords
    - VSIFReadL
    - CPLError
    - memcpy
    - VSIStrerror
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr IdrisiRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1475,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1480,1
    - Dst: memcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1485,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1491,1
    - Dst: vsi_l_offset
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1491,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1493,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1505,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1508,1
    - Dst: vsi_l_offset
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1508,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1510,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1512,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1515,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1622
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1622
    functionName: IdrisiRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - VSIFSeekL
    - vsi_l_offset
    - GDALSwapWords
    - VSIFWriteL
    - VSIFReadL
    - CPLError
    - memcpy
    - VSIStrerror
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr IdrisiRasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff,\n
      \                                    void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1630,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1632,1
    - Dst: MRFRasterBand::GetMinimum
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1633,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1636,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1645
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1645
    functionName: IdrisiRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - MRFRasterBand::GetMinimum
    - CPLsscanf
    - cpl::down_cast<IdrisiDataset *>
    - myCSLFetchNameValue
    linkageType: ''
    returnType: double
    signature: double IdrisiRasterBand::GetMinimum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1653,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1655,1
    - Dst: MRFRasterBand::GetMaximum
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1656,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1659,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1668
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1668
    functionName: IdrisiRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CPLsscanf
    - MRFRasterBand::GetMaximum
    - cpl::down_cast<IdrisiDataset *>
    - myCSLFetchNameValue
    linkageType: ''
    returnType: double
    signature: double IdrisiRasterBand::GetMaximum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1676,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1680,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1681,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1682,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1683,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1691,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1694,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1706
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1706
    functionName: IdrisiRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLAtof_nz
    - cpl::down_cast<IdrisiDataset *>
    - myCSLFetchNameValue
    linkageType: ''
    returnType: double
    signature: double IdrisiRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1714,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1716,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1717,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dfNoDataValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1722
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1722
    functionName: IdrisiRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - CSLSetNameValue
    - cpl::down_cast<IdrisiDataset *>
    - CPLSPrintf
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetNoDataValue(double dfNoDataValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1730,1
    - Dst: IdrisiDataset*::poColorTable::GetColorEntryCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1728
    functionDepth: 0
    functionLinenumber: 1728
    functionLinenumberEnd: 1749
    functionName: IdrisiRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - IdrisiDataset*::poColorTable::GetColorEntryCount
    - cpl::down_cast<IdrisiDataset *>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp IdrisiRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1760
    functionName: IdrisiRasterBand::GetCategoryNames
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    linkageType: ''
    returnType: char
    signature: char **IdrisiRasterBand::GetCategoryNames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1773,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1775,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1776,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1783,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1784,1
    - Dst: CSLRemoveStrings
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1798,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1804,1
    - Dst: CSLInsertString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1807,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1808,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1808,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - papszCategoryNames
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1819
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1819
    functionName: IdrisiRasterBand::SetCategoryNames
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - CSLInsertString
    - CSLDestroy
    - CPLSPrintf
    - CSLRemoveStrings
    - CSLDuplicate
    - strlen
    - CSLCount
    - EQUALN
    - CSLSetNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetCategoryNames(char **papszCategoryNames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1827,1
    - Dst: IdrisiDataset*::poColorTable::GetColorEntryCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1835
    functionName: IdrisiRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - IdrisiDataset*::poColorTable::GetColorEntryCount
    - cpl::down_cast<IdrisiDataset *>
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *IdrisiRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1848,1
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1853,1
    - Dst: GDALColorTable*::Clone
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1857,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1860,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1861,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1861,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1865,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1867,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1869,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1871,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1873,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1875,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1877,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1879,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1884,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1886,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1890,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1895,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1899,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1901,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - poColorTable
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 1905
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1905
    functionName: IdrisiRasterBand::SetColorTable
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - VSIFCloseL
    - CPLResetExtensionSafe
    - GDALColorTable*::GetColorEntryCount
    - GDALColorTable*::Clone
    - GDALColorTable*::GetColorEntryAsRGB
    - VSIFOpenL
    - VSIFWriteL
    - std::string::c_str
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetColorTable(GDALColorTable *poColorTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1916
    functionName: IdrisiRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    linkageType: ''
    returnType: char
    signature: char *IdrisiRasterBand::GetUnitType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1924,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1926,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1929,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pszUnitType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1938
      start: 1922
    functionDepth: 1
    functionLinenumber: 1922
    functionLinenumberEnd: 1938
    functionName: IdrisiRasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - CSLSetNameValue
    - cpl::down_cast<IdrisiDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetUnitType(const char *pszUnitType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1946,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1954,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1955,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1955,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1957,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1958,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1958,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1966,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1968,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1969,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1971,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1972,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1974,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1975,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1977,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1981,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1982,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1983,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1984,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1985,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1986,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1987,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:1988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - dfMin
    - dfMax
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1992
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 1992
    functionName: IdrisiRasterBand::SetMinMax
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - CPLSPrintf
    - myCSLFetchNameValue
    - CPLsscanf
    - CSLSetNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetMinMax(double dfMin, double dfMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IdrisiRasterBand::SetMinMax
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2001,1
    - Dst: IdrisiRasterBand::SetStatistics
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfMin
    - dfMax
    - dfMean
    - dfStdDev
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2004
      start: 1998
    functionDepth: 2
    functionLinenumber: 1998
    functionLinenumberEnd: 2004
    functionName: IdrisiRasterBand::SetStatistics
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - IdrisiRasterBand::SetMinMax
    - IdrisiRasterBand::SetStatistics
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr IdrisiRasterBand::SetStatistics(double dfMin, double dfMax,\n
      \                                      double dfMean, double dfStdDev)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IdrisiRasterBand::GetColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2035,1
    - Dst: IdrisiRasterBand::GetColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2036,1
    - Dst: GDALRasterAttributeTable*::GetColumnCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2038,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2040,1
    - Dst: GDALRasterAttributeTable*::GetNameOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2040,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2049,1
    - Dst: GDALRasterAttributeTable*::GetTypeOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2050,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2059,1
    - Dst: IdrisiRasterBand::GetCategoryNames
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2059,1
    - Dst: GDALRasterAttributeTable*::GetColOfUsage
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2061,1
    - Dst: GDALRasterAttributeTable*::GetColumnCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2064,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2066,1
    - Dst: GDALRasterAttributeTable*::GetNameOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2066,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2071,1
    - Dst: GDALRasterAttributeTable*::GetNameOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2071,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2076,1
    - Dst: GDALRasterAttributeTable*::GetNameOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2076,1
    - Dst: GDALRasterAttributeTable*::GetColumnCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2088,1
    - Dst: GDALRasterAttributeTable*::GetTypeOfCol
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2090,1
    - Dst: GDALRasterAttributeTable*::GetValueAsInt
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2120,1
    - Dst: GDALColorTable*::SetColorEntry
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2136,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2141,1
    - Dst: GDALRasterAttributeTable*::GetValueAsString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2142,1
    - Dst: GDALRasterAttributeTable*::GetValueAsInt
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2150,1
    - Dst: GDALColorTable*::SetColorEntry
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2163,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2167,1
    - Dst: IdrisiRasterBand::SetColorTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2177,1
    - Dst: IdrisiRasterBand::SetCategoryNames
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2187,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2188,1
    - Dst: GDALRasterAttributeTable*::Clone
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2200,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 1
    argNames:
    - poRAT
    argTypes:
    - GDALRasterAttributeTable*
    constantsTouched: []
    func_position:
      end: 2203
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2203
    functionName: IdrisiRasterBand::SetDefaultRAT
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - GDALRasterAttributeTable*::GetTypeOfCol
    - GDALRasterAttributeTable*::GetColOfUsage
    - GDALRasterAttributeTable*::GetValueAsInt
    - CSLAddString
    - IdrisiRasterBand::SetColorTable
    - CSLDestroy
    - GDALRasterAttributeTable*::Clone
    - GDALColorTable::GDALColorTable
    - IdrisiRasterBand::GetColorTable
    - IdrisiRasterBand::GetCategoryNames
    - GDALRasterAttributeTable*::GetValueAsString
    - CSLCount
    - IdrisiRasterBand::SetCategoryNames
    - GDALRasterAttributeTable*::GetColumnCount
    - GDALColorTable*::SetColorEntry
    - GDALRasterAttributeTable*::GetNameOfCol
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr IdrisiRasterBand::SetDefaultRAT(const GDALRasterAttributeTable
      *poRAT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<IdrisiDataset *>
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2211,1
    - Dst: GDALDefaultRasterAttributeTable::GDALDefaultRasterAttributeTable
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2229,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2235,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2236,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2240,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2241,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2242,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2243,1
    - Dst: CreateColumn
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2245,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2258,1
    - Dst: SetRowCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2262,1
    - Dst: GetRowCount
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2262,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2263,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2264,1
    - Dst: IdrisiDataset*::poColorTable::GetColorEntryAsRGB
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2267,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2268,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2269,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2270,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2271,1
    - Dst: SetValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2278
    functionName: IdrisiRasterBand::GetDefaultRAT
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<IdrisiDataset *>
    - SetRowCount
    - GetRowCount
    - EQUAL
    - SetValue
    - CreateColumn
    - IdrisiDataset*::poColorTable::GetColorEntryAsRGB
    - GDALDefaultRasterAttributeTable::GDALDefaultRasterAttributeTable
    linkageType: ''
    returnType: GDALRasterAttributeTable
    signature: GDALRasterAttributeTable *IdrisiRasterBand::GetDefaultRAT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2320,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2322,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2327,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2337,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2337,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2339,1
    - Dst: CPLStrlwr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2348,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2354,1
    - Dst: sscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2358,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2359,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2360,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2361,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2369,1
    - Dst: sscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2374,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2380,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2382,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2391,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2391,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2395,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2406,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2416,1
    - Dst: FileExists
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2425,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2427,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2430,1
    - Dst: OGRSpatialReference::SetLocalCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2432,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2437,1
    - Dst: myCSLSetNameValueSeparator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2449,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2454,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2456,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2461,1
    - Dst: myCSLFetchNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2461,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2487,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2491,1
    - Dst: CPLAtof_nz
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2494,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2496,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2502,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2510,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2511,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2511,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2512,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2526,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2526,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2528,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2531,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2531,1
    - Dst: proj_query_geodetic_crs_from_datum
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2537,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2538,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2540,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2542,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2542,1
    - Dst: atoi
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2549,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2551,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2554,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2556,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2559,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2570,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2570,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2572,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2574,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2574,1
    - Dst: atoi
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2580,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2582,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2585,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2590,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2598,1
    - Dst: OGRSpatialReference::SetTOWGS84
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2608,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2615,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2617,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2618,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2619,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2620,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2649,1
    - Dst: OGRSpatialReference::SetMercator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2651,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2654,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2656,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2659,1
    - Dst: OGRSpatialReference::SetTM
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2661,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2664,1
    - Dst: OGRSpatialReference::SetLCC
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2666,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2669,1
    - Dst: OGRSpatialReference::SetEquirectangular
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2673,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2676,1
    - Dst: OGRSpatialReference::SetProjection
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2678,1
    - Dst: OGRSpatialReference::SetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2679,1
    - Dst: OGRSpatialReference::SetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2680,1
    - Dst: OGRSpatialReference::SetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2681,1
    - Dst: OGRSpatialReference::SetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2682,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2684,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2685,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2686,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2687,1
    - Dst: OGRSpatialReference::SetLAEA
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2689,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2692,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2693,1
    - Dst: OGRSpatialReference::SetPS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2695,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2698,1
    - Dst: OGRSpatialReference::SetStereographic
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2700,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2703,1
    - Dst: OGRSpatialReference::SetOS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2705,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2708,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2709,1
    - Dst: OGRSpatialReference::SetACEA
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2711,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2714,1
    - Dst: OGRSpatialReference::SetSinusoidal
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2716,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2718,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2719,1
    - Dst: OGRSpatialReference::SetCEA
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2721,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2725,1
    - Dst: OGRSpatialReference::Clear
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2730,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2732,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2733,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2734,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2735,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2748,1
    - Dst: OGRSpatialReference::SetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2753,1
    - Dst: OGRSpatialReference::SetProjCS
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2760,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2762,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2763,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2764,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2765,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 170
    argCount: 4
    argNames:
    - pszFilename
    - pszRefSystem
    - pszRefUnits
    - oSRS
    argTypes:
    - char*
    - char*
    - char*
    - OGRSpatialReference
    constantsTouched: []
    func_position:
      end: 2768
      start: 2312
    functionDepth: 7
    functionLinenumber: 2312
    functionLinenumberEnd: 2768
    functionName: IdrisiGeoReference2Wkt
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - OGRSpatialReference::SetGeogCS
    - OGRSpatialReference::SetCEA
    - CPLStrlwr
    - proj_list_get
    - CPLDebug
    - OGRSpatialReference::SetOS
    - OGRSpatialReference::SetTOWGS84
    - CPLsscanf
    - FileExists
    - OGRSpatialReference::SetEquirectangular
    - proj_create_from_name
    - EQUALN
    - OGRSpatialReference::SetProjParm
    - CPLError
    - OGRSpatialReference::SetMercator
    - sscanf
    - OGRSpatialReference::SetStereographic
    - OGRSpatialReference::SetACEA
    - CPLStrdup
    - myCSLSetNameValueSeparator
    - myCSLFetchNameValue
    - OGRSpatialReference::SetLCC
    - OGRSpatialReference::SetLAEA
    - CPLAtof_nz
    - OGRSpatialReference::SetProjection
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::importFromEPSG
    - STARTS_WITH_CI
    - proj_destroy
    - OGRSpatialReference::SetPS
    - proj_list_get_count
    - proj_list_destroy
    - CPLSPrintf
    - OGRSpatialReference::SetLocalCS
    - strstr
    - OGRSpatialReference::SetStatePlane
    - OGRSpatialReference::Clear
    - OGRSpatialReference::SetProjCS
    - OGRSpatialReference::SetLinearUnits
    - CPLFree
    - CSLDestroy
    - OGRSpatialReference::SetTM
    - EQUAL
    - OGRSpatialReference::SetSinusoidal
    - proj_query_geodetic_crs_from_datum
    - OGRSpatialReference::SetUTM
    - OSRGetProjTLSContext
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr IdrisiGeoReference2Wkt(const char *pszFilename, const char
      *pszRefSystem,\n                              const char *pszRefUnits,\n                              OGRSpatialReference
      &oSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::IsEmpty
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2794,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2796,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2797,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2805,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2807,1
    - Dst: GetUnitDefault
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2808,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2808,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2809,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2809,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2817,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2823,1
    - Dst: atoi
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2825,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2825,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2828,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2829,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2829,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2830,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2832,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2833,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2835,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2836,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2837,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2842,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2843,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2844,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2862,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2866,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2866,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2869,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2870,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2871,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2880,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2881,1
    - Dst: strlen
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2885,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2891,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2908,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2910,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2911,1
    - Dst: GetUnitDefault
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2913,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2913,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2914,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2914,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2915,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2918,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2929,1
    - Dst: strstr
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2930,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2934,1
    - Dst: OGRSpatialReference::FindProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2935,1
    - Dst: fabs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2939,1
    - Dst: fabs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2940,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2941,1
    - Dst: GetSpcs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2941,1
    - Dst: NAD83to27
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2950,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2951,1
    - Dst: GetUnitDefault
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2954,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2954,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2955,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2955,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2962,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2968,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2972,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2976,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2980,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2986,1
    - Dst: fabs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2992,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:2999,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3001,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3006,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3010,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3014,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3018,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3022,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3033,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3036,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3037,1
    - Dst: OGRSpatialReference::GetTOWGS84
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3056,1
    - Dst: OGRSpatialReference::IsProjected
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3069,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3071,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3072,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3072,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3073,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3074,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3075,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3076,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3077,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3078,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3079,1
    - Dst: OGRSpatialReference::GetProjParm
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3087,1
    - Dst: GetUnitDefault
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3095,1
    - Dst: OGRSpatialReference::GetAttrValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3095,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3096,1
    - Dst: OGRSpatialReference::GetLinearUnits
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3096,1
    - Dst: GetUnitDefault
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3100,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3108,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3109,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3110,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3111,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3112,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3114,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3115,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3116,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3117,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3118,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3119,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3120,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3121,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3122,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3123,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3124,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3125,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3126,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3128,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3128,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3129,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3130,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3131,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3134,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3134,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3137,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3137,1
    - Dst: myCSLSetNameValueSeparator
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3138,1
    - Dst: SaveAsCRLF
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3139,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3139,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3140,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3142,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3142,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3143,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3145,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3146,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3147,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3148,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3149,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 178
    argCount: 3
    argNames:
    - oSRS
    - pszRefSystem
    - pszRefUnit
    argTypes:
    - OGRSpatialReference
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 3152
      start: 2787
    functionDepth: 6
    functionLinenumber: 2787
    functionLinenumberEnd: 3152
    functionName: IdrisiDataset::Wkt2GeoReference
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - SaveAsCRLF
    - CPLDebug
    - OGRSpatialReference::IsEmpty
    - CPLString::empty
    - OGRSpatialReference::IsProjected
    - CPLStrdup
    - myCSLSetNameValueSeparator
    - OGRSpatialReference::GetAttrValue
    - strlen
    - OGRSpatialReference::IsLocal
    - OGRSpatialReference::IsGeographic
    - OGRSpatialReference::FindProjParm
    - STARTS_WITH_CI
    - NAD83to27
    - OGRSpatialReference::GetTOWGS84
    - CPLSPrintf
    - strstr
    - GetUnitDefault
    - CPLFree
    - OGRSpatialReference::GetLinearUnits
    - GetSpcs
    - OGRSpatialReference::GetProjParm
    - CPLResetExtensionSafe
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - CSLAddNameValue
    - OGRSpatialReference::GetAuthorityCode
    - fabs
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr IdrisiDataset::Wkt2GeoReference(const OGRSpatialReference &oSRS,\n
      \                                      char **pszRefSystem, char **pszRefUnit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3163
      start: 3158
    functionDepth: 1
    functionLinenumber: 3158
    functionLinenumberEnd: 3163
    functionName: FileExists
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 9
    functionsReached:
    - VSIStatL
    linkageType: ''
    returnType: bool
    signature: bool FileExists(const char *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszState
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3179
      start: 3169
    functionDepth: 0
    functionLinenumber: 3169
    functionLinenumberEnd: 3179
    functionName: GetStateCode
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int GetStateCode(const char *pszState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3195
      start: 3185
    functionDepth: 0
    functionLinenumber: 3185
    functionLinenumberEnd: 3195
    functionName: GetStateName
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetStateName(int nCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dfLon
    - dfLat
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 3212
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3212
    functionName: GetSpcs
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetSpcs(double dfLon, double dfLat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3221,1
    - Dst: memcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3226,1
    - Dst: strcpy
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pszOutRef
    - pszInRef
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3230
      start: 3217
    functionDepth: 0
    functionLinenumber: 3217
    functionLinenumberEnd: 3230
    functionName: NAD83to27
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - strcpy
    - memcpy
    - strncpy
    linkageType: ''
    returnType: void
    signature: void NAD83to27(char *pszOutRef, char *pszInRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszUnitName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3246
      start: 3236
    functionDepth: 0
    functionLinenumber: 3236
    functionLinenumberEnd: 3246
    functionName: GetUnitIndex
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int GetUnitIndex(const char *pszUnitName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pszToMeter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3268
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3268
    functionName: GetToMeterIndex
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: int
    signature: int GetToMeterIndex(const char *pszToMeter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetToMeterIndex
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3280,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3285,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pszUnitName
    - pszToMeter
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3290
      start: 3274
    functionDepth: 1
    functionLinenumber: 3274
    functionLinenumberEnd: 3290
    functionName: GetUnitDefault
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - GetToMeterIndex
    - CPLStrdup
    linkageType: ''
    returnType: char
    signature: char *GetUnitDefault(const char *pszUnitName, const char *pszToMeter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3305,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3316,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3327,1
    - Dst: CPLError
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - papszStrList
    - pszFname
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 3338
      start: 3303
    functionDepth: 1
    functionLinenumber: 3303
    functionLinenumberEnd: 3338
    functionName: SaveAsCRLF
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - VSIFOpenL
    - VSIFPrintfL
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int SaveAsCRLF(char **papszStrList, const char *pszFname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3346,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3349,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3351,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3352,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3353,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3354,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3355,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3356,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3358,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/idrisi/IdrisiDataset.cpp:3364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3365
    functionName: GDALRegister_IDRISI
    functionSourceFile: /src/gdal/frmts/idrisi/IdrisiDataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_IDRISI()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: GFFDataset::GFFDataset
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GFFDataset::GFFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: GFFDataset::~GFFDataset()
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void GFFDataset::~GFFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - eDataType
    argTypes:
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: GFFSampleSize
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long GFFSampleSize(GDALDataType eDataType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFFSampleSize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:115,1
    - Dst: GFFDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:115,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:116,1
    - Dst: GFFSampleSize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:116,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - poDSIn
    - nBandIn
    - eDataTypeIn
    argTypes:
    - GFFDataset*
    - int
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: GFFRasterBand::GFFRasterBand
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached:
    - GFFDataset*::GetRasterXSize
    - static_cast<int>
    - GetRasterXSize
    - GFFSampleSize
    linkageType: ''
    returnType: void
    signature: "void GFFRasterBand::GFFRasterBand(GFFDataset *poDSIn, int nBandIn,\n
      \                            GDALDataType eDataTypeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GFFDataset *>
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:134,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:137,1
    - Dst: GFFDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:138,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:142,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:146,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:149,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: GFFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GFFDataset *>
    - VSIFSeekL
    - GDALSwapWords
    - VSIFReadL
    - GDALDataTypeIsComplex
    - GFFDataset*::GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GFFRasterBand::IReadBlock(int /* nBlockXOff */, int nBlockYOff,\n
      \                                void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: GFFDataset::Identify
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int GFFDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GFFDataset::Identify
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:185,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:193,1
    - Dst: GFFDataset::GFFDataset
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:197,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:203,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:204,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:206,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:207,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:208,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:209,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:210,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:211,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:212,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:215,1
    - Dst: CPL_LSBPTR16
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:216,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:220,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:234,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:235,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:237,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:238,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:239,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:240,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:241,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:242,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:243,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:244,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:245,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:246,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:267,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:291,1
    - Dst: GFFDataset*::SetBand
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:298,1
    - Dst: GFFRasterBand::GFFRasterBand
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:298,1
    - Dst: GFFDataset*::SetDescription
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:303,1
    - Dst: GFFDataset*::TryLoadXML
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:304,1
    - Dst: GFFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 312
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 312
    functionName: GFFDataset::Open
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_LSBPTR16
    - GFFDataset::Identify
    - GFFDataset::GFFDataset
    - VSIFSeekL
    - ReportUpdateNotSupportedByDriver
    - GFFRasterBand::GFFRasterBand
    - GFFDataset*::oOvManager::Initialize
    - GFFDataset*::TryLoadXML
    - VSIFReadL
    - CPLError
    - GFFDataset*::SetDescription
    - CPL_LSBPTR32
    - GFFDataset*::SetBand
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GFFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:320,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:323,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:325,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:326,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:327,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:330,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:331,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:332,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gff/gff_dataset.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: GDALRegister_GFF
    functionSourceFile: /src/gdal/frmts/gff/gff_dataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_GFF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:29,1
    - Dst: strncmp
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:30,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: PCRasterDriverIdentify
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - static_cast<int>
    - reinterpret_cast<char *>
    linkageType: ''
    returnType: int
    signature: int PCRasterDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:46,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:50,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:53,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:54,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: PCRasterDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void PCRasterDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:65,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:69,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:71,1
    - Dst: PCRasterDriverSetCommonMetadata
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:74,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: DeclareDeferredPCRasterPlugin
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - PCRasterDriverSetCommonMetadata
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredPCRasterPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PCRasterDriverIdentify
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:41,1
    - Dst: mapOpen
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:45,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:49,1
    - Dst: PCRasterDataset::PCRasterDataset
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:50,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:51,1
    - Dst: PCRasterDataset*::SetDescription
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:64,1
    - Dst: PCRasterDataset*::TryLoadXML
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:65,1
    - Dst: PCRasterDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - info
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 71
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 71
    functionName: PCRasterDataset::open
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached:
    - PCRasterDataset*::TryLoadXML
    - CPLErrorReset
    - PCRasterDataset::PCRasterDataset
    - PCRasterDriverIdentify
    - mapOpen
    - CPLGetLastErrorType
    - PCRasterDataset*::SetDescription
    - PCRasterDataset*::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *PCRasterDataset::open(GDALOpenInfo *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:95,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:101,1
    - Dst: GDALType2CellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:107,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:107,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:111,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:120,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:122,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:125,1
    - Dst: string2ValueScale
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:126,1
    - Dst: GDALType2ValueScale
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:127,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:127,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:131,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:143,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:147,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:148,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:149,1
    - Dst: GDALType2CellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:155,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:155,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:159,1
    - Dst: fitValueScale
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:167,1
    - Dst: Rcreate
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:172,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:177,1
    - Dst: RuseAs
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:186,1
    - Dst: MstrError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:187,1
    - Dst: Mclose
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:188,1
    - Dst: missingValue
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:199,1
    - Dst: missingValue
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:202,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:218,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:219,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:219,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:220,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:221,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:223,1
    - Dst: alterToStdMV
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:236,1
    - Dst: castValuesToBooleanRange
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:241,1
    - Dst: RputRow
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:245,1
    - Dst: progress
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:247,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:247,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:250,1
    - Dst: Mclose
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:257,1
    - Dst: free
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:260,1
    - Dst: reinterpret_cast<GDALPamDataset *>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:270,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:270,1
    - Dst: GDALPamDataset*::CloneInfo
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:273,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 6
    argNames:
    - filename
    - source
    - strict
    - options
    - progress
    - progressData
    argTypes:
    - char*
    - GDALDataset*
    - CPL_UNUSED
    - CPL_UNUSED**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 276
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 276
    functionName: PCRasterDataset::createCopy
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - alterToStdMV
    - static_cast<REAL8>
    - GDALRasterBand*::RasterIO
    - MstrError
    - std::string::empty
    - progress
    - reinterpret_cast<GDALPamDataset *>
    - GDALDataset*::GetMetadataItem
    - Rcreate
    - GDALType2CellRepresentation
    - fitValueScale
    - RputRow
    - GDALType2ValueScale
    - RuseAs
    - GDALDataset*::GetGeoTransform
    - free
    - Mclose
    - static_cast<int>
    - castValuesToBooleanRange
    - GDALPamDataset*::CloneInfo
    - GDALDataset*::GetRasterBand
    - string2ValueScale
    - missingValue
    - static_cast<double>
    - GDALRasterBand*::GetRasterDataType
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nPCRasterDataset::createCopy(char const *filename, GDALDataset
      *source,\n                            CPL_UNUSED int strict, CPL_UNUSED char
      **options,\n                            GDALProgressFunc progress, void *progressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:294,1
    - Dst: RgetNrCols
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:294,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:295,1
    - Dst: RgetNrRows
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:295,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:296,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:300,1
    - Dst: RgetXUL
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:300,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:301,1
    - Dst: RgetYUL
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:301,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:302,1
    - Dst: RgetCellSize
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:302,1
    - Dst: RgetUseCellRepr
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:303,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:306,1
    - Dst: RgetValueScale
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:309,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:312,1
    - Dst: missingValue
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:315,1
    - Dst: SetBand
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:319,1
    - Dst: PCRasterRasterBand::PCRasterRasterBand
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:319,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:321,1
    - Dst: valueScale2String
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - mapIn
    - eAccessIn
    argTypes:
    - MAP*
    - GDALAccess
    constantsTouched: []
    func_position:
      end: 323
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 323
    functionName: PCRasterDataset::PCRasterDataset
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - missingValue
    - RgetUseCellRepr
    - SetBand
    - static_cast<int>
    - valueScale2String
    - RgetNrCols
    - RgetValueScale
    - GDALCheckDatasetDimensions
    - RgetCellSize
    - RgetXUL
    - PCRasterRasterBand::PCRasterRasterBand
    - RgetNrRows
    - CPLError
    - SetMetadataItem
    - RgetYUL
    linkageType: ''
    returnType: void
    signature: void PCRasterDataset::PCRasterDataset(MAP *mapIn, GDALAccess eAccessIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:331,1
    - Dst: Mclose
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: PCRasterDataset::~PCRasterDataset()
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached:
    - Mclose
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void PCRasterDataset::~PCRasterDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - transform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: PCRasterDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PCRasterDataset::GetGeoTransform(double *transform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: PCRasterDataset::map
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MAP
    signature: MAP *PCRasterDataset::map() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: PCRasterDataset::cellRepresentation
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CSF_CR
    signature: CSF_CR PCRasterDataset::cellRepresentation() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: PCRasterDataset::valueScale
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CSF_VS
    signature: CSF_VS PCRasterDataset::valueScale() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: PCRasterDataset::defaultNoDataValue
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PCRasterDataset::defaultNoDataValue() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:417,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:427,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:438,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:442,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:453,1
    - Dst: string2ValueScale
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:459,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:463,1
    - Dst: GDALType2CellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:472,1
    - Dst: Rcreate
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:487,1
    - Dst: Mclose
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:492,1
    - Dst: reinterpret_cast<GDALPamDataset *>
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:499,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:499,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - filename
    - nr_cols
    - nr_rows
    - nrBands
    - gdalType
    - papszParamList
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 502
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 502
    functionName: PCRasterDataset::create
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeName
    - Mclose
    - reinterpret_cast<GDALPamDataset *>
    - Rcreate
    - GDALType2CellRepresentation
    - string2ValueScale
    - CPLError
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *PCRasterDataset::create(const char *filename, int nr_cols,\n
      \                                    int nr_rows, int nrBands,\n                                     GDALDataType
      gdalType,\n                                     char **papszParamList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:508,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterdataset.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - transform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 528
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 528
    functionName: PCRasterDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PCRasterDataset::SetGeoTransform(double *transform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: PCRasterDataset::location_changed
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PCRasterDataset::location_changed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:66,1
    - Dst: T
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:70,1
    - Dst: T
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:70,1
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: operator()(T &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - T
    - pcr::isMV
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void operator()(T &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:84,1
    - Dst: UINT1
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:86,1
    - Dst: UINT1
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - UINT1
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: operator()(UINT1 &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    - UINT1
    linkageType: ''
    returnType: void
    signature: void operator()(UINT1 &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:95,1
    - Dst: UINT2
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:97,1
    - Dst: UINT2
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - UINT2
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: operator()(UINT2 &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    - UINT2
    linkageType: ''
    returnType: void
    signature: void operator()(UINT2 &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:106,1
    - Dst: UINT4
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:108,1
    - Dst: UINT4
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - UINT4
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: operator()(UINT4 &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    - UINT4
    linkageType: ''
    returnType: void
    signature: void operator()(UINT4 &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:117,1
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:118,1
    - Dst: REAL4
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - REAL4
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: operator()(REAL4 &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - REAL4
    - static_cast<REAL4>
    - pcr::isMV
    linkageType: ''
    returnType: void
    signature: void operator()(REAL4 &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:129,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:133,1
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:136,1
    - Dst: UINT1
      Src: /src/gdal/frmts/pcraster/pcrasterutil.h:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - UINT1
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: operator()(UINT1 &value) const
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.h
    functionUses: 0
    functionsReached:
    - CPLError
    - pcr::isMV
    - UINT1
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void operator()(UINT1 &value) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cellRepresentation2GDALType
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:38,1
    - Dst: PCRasterDataset*::cellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:38,1
    - Dst: PCRasterDataset*::GetRasterXSize
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dataset
    argTypes:
    - PCRasterDataset*
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: PCRasterRasterBand::PCRasterRasterBand
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 1
    functionsReached:
    - PCRasterDataset*::cellRepresentation
    - PCRasterDataset*::GetRasterXSize
    - cellRepresentation2GDALType
    linkageType: ''
    returnType: void
    signature: void PCRasterRasterBand::PCRasterRasterBand(PCRasterDataset *dataset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: PCRasterRasterBand::~PCRasterRasterBand()
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PCRasterRasterBand::~PCRasterRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: defaultNoDataValue
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - success
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: PCRasterRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - defaultNoDataValue
    linkageType: ''
    returnType: double
    signature: double PCRasterRasterBand::GetNoDataValue(int *success)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:66,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:73,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:73,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:73,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:74,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:80,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:80,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:80,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:81,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:87,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:87,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:87,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:88,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:94,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:94,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:94,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:95,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:103,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:103,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:103,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:104,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:110,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:110,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:110,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:111,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:117,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:117,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:117,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:118,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:124,1
    - Dst: RgetMinVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:124,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:124,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 1
    argNames:
    - success
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 142
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 142
    functionName: PCRasterRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - RgetMinVal
    - map
    - cellRepresentation
    - CPL_TO_BOOL
    linkageType: ''
    returnType: double
    signature: double PCRasterRasterBand::GetMinimum(int *success)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:149,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:154,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:154,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:154,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:155,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:161,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:161,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:161,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:162,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:168,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:168,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:168,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:169,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:177,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:177,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:177,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:178,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:184,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:184,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:184,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:185,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:191,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:191,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:191,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:192,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:198,1
    - Dst: RgetMaxVal
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:198,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:198,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - success
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 216
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 216
    functionName: PCRasterRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - map
    - cellRepresentation
    - RgetMaxVal
    - CPL_TO_BOOL
    linkageType: ''
    returnType: double
    signature: double PCRasterRasterBand::GetMaximum(int *success)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alterFromStdMV
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:229,1
    - Dst: cellRepresentation
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:229,1
    - Dst: PCRasterRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nBlockXoff
    - nBlockYoff
    - buffer
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: PCRasterRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - alterFromStdMV
    - cellRepresentation
    - PCRasterRasterBand::GetNoDataValue
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PCRasterRasterBand::IReadBlock(CPL_UNUSED int nBlockXoff, int
      nBlockYoff,\n                                      void *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand::IRasterIO
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:245,1
    - Dst: GDALRasterBand::IRasterIO
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: PCRasterRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PCRasterRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                     int nXSize, int nYSize, void
      *pData,\n                                     int nBufXSize, int nBufYSize,\n
      \                                    GDALDataType eBufType,\n                                     GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                                     GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valueScale
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:264,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:271,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:274,1
    - Dst: location_changed
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:280,1
    - Dst: PCRasterRasterBand::poDS::GetGeoTransform
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:286,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:290,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:291,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:292,1
    - Dst: RputXUL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:295,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:295,1
    - Dst: RputYUL
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:296,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:296,1
    - Dst: RputCellSize
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:297,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:297,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:307,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:311,1
    - Dst: alterToStdMV
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:319,1
    - Dst: PCRasterRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:319,1
    - Dst: alterToStdMV
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:325,1
    - Dst: PCRasterRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:325,1
    - Dst: alterToStdMV
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:331,1
    - Dst: PCRasterRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:331,1
    - Dst: castValuesToBooleanRange
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:345,1
    - Dst: castValuesToLddRange
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:350,1
    - Dst: castValuesToDirectionRange
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:355,1
    - Dst: RputRow
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:364,1
    - Dst: map
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:364,1
    - Dst: free
      Src: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp:365,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 3
    argNames:
    - nBlockXoff
    - nBlockYoff
    - source
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 368
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 368
    functionName: PCRasterRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeName
    - RputYUL
    - alterToStdMV
    - free
    - castValuesToBooleanRange
    - castValuesToDirectionRange
    - valueScale
    - memcpy
    - RputRow
    - PCRasterRasterBand::poDS::GetGeoTransform
    - map
    - castValuesToLddRange
    - PCRasterRasterBand::GetNoDataValue
    - CPLError
    - location_changed
    - static_cast<REAL8>
    - RputXUL
    - RputCellSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr PCRasterRasterBand::IWriteBlock(CPL_UNUSED int nBlockXoff,\n
      \                                      int nBlockYoff, void *source)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodata
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: PCRasterRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr PCRasterRasterBand::SetNoDataValue(double nodata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/frmts/pcraster/pcrastermisc.cpp:20,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/pcraster/pcrastermisc.cpp:23,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/pcraster/pcrastermisc.cpp:26,1
    - Dst: PCRasterDriverSetCommonMetadata
      Src: /src/gdal/frmts/pcraster/pcrastermisc.cpp:27,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/pcraster/pcrastermisc.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: GDALRegister_PCRaster
    functionSourceFile: /src/gdal/frmts/pcraster/pcrastermisc.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - PCRasterDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void GDALRegister_PCRaster()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - cellRepresentation
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 83
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 83
    functionName: cellRepresentation2GDALType
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GDALDataType
    signature: GDALDataType cellRepresentation2GDALType(CSF_CR cellRepresentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - string
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 131
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 131
    functionName: string2ValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CSF_VS
    signature: CSF_VS string2ValueScale(std::string const &string)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - valueScale
    argTypes:
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 195
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 195
    functionName: valueScale2String
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string valueScale2String(CSF_VS valueScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - cellRepresentation
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 255
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 255
    functionName: cellRepresentation2String
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cellRepresentation2String(CSF_CR cellRepresentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 308
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 308
    functionName: GDALType2ValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached:
    - CPLAssert
    linkageType: ''
    returnType: CSF_VS
    signature: CSF_VS GDALType2ValueScale(GDALDataType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - type
    - exact
    argTypes:
    - GDALDataType
    - bool
    constantsTouched: []
    func_position:
      end: 374
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 374
    functionName: GDALType2CellRepresentation
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CSF_CR
    signature: CSF_CR GDALType2CellRepresentation(GDALDataType type, bool exact)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT1
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:398,1
    - Dst: INT4
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:404,1
    - Dst: cpl::lowest
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:412,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:419,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:424,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:429,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:434,1
    - Dst: CPLError
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - cellRepresentation
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 447
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 447
    functionName: missingValue
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - INT4
    - CPLError
    - cpl::lowest
    - UINT1
    linkageType: ''
    returnType: double
    signature: double missingValue(CSF_CR cellRepresentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mopen
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:456,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - MOPEN_PERM
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: mapOpen
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached:
    - Mopen
    - std::string::c_str
    linkageType: ''
    returnType: MAP
    signature: MAP *mapOpen(std::string const &filename, MOPEN_PERM mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:470,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:471,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:472,1
    - Dst: pcr::AlterFromStdMV<UINT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:473,1
    - Dst: static_cast<UINT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:473,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:478,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:479,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:479,1
    - Dst: pcr::AlterFromStdMV<INT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:480,1
    - Dst: static_cast<INT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:480,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:485,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:486,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:487,1
    - Dst: pcr::AlterFromStdMV<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:488,1
    - Dst: static_cast<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:488,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:493,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:494,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:495,1
    - Dst: pcr::AlterFromStdMV<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:496,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:496,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:503,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:504,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:504,1
    - Dst: pcr::AlterFromStdMV<INT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:505,1
    - Dst: static_cast<INT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:505,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:510,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:511,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:511,1
    - Dst: pcr::AlterFromStdMV<INT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:512,1
    - Dst: static_cast<INT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:512,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:517,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:518,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:519,1
    - Dst: pcr::AlterFromStdMV<UINT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:520,1
    - Dst: static_cast<UINT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:520,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:525,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:526,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:527,1
    - Dst: pcr::AlterFromStdMV<UINT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:528,1
    - Dst: static_cast<UINT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:528,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:533,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - buffer
    - size
    - cellRepresentation
    - missingValue
    argTypes:
    - void*
    - size_t
    - CSF_CR
    - double
    constantsTouched: []
    func_position:
      end: 537
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 537
    functionName: alterFromStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached:
    - static_cast<INT1 *>
    - static_cast<INT2 *>
    - std::for_each
    - pcr::AlterFromStdMV<INT4>
    - static_cast<UINT2>
    - pcr::AlterFromStdMV<INT2>
    - static_cast<UINT4 *>
    - static_cast<REAL8>
    - static_cast<INT4>
    - static_cast<INT1>
    - pcr::AlterFromStdMV<REAL8>
    - static_cast<UINT1>
    - CPLAssert
    - pcr::AlterFromStdMV<INT1>
    - pcr::AlterFromStdMV<UINT1>
    - static_cast<UINT2 *>
    - pcr::AlterFromStdMV<UINT2>
    - static_cast<UINT1 *>
    - static_cast<REAL4 *>
    - static_cast<REAL8 *>
    - static_cast<INT4 *>
    - static_cast<UINT4>
    - pcr::AlterFromStdMV<UINT4>
    - static_cast<REAL4>
    - static_cast<INT2>
    - pcr::AlterFromStdMV<REAL4>
    linkageType: ''
    returnType: void
    signature: "void alterFromStdMV(void *buffer, size_t size, CSF_CR cellRepresentation,\n
      \                   double missingValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:548,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:549,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:550,1
    - Dst: pcr::AlterToStdMV<UINT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:551,1
    - Dst: static_cast<UINT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:551,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:556,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:557,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:557,1
    - Dst: pcr::AlterToStdMV<INT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:558,1
    - Dst: static_cast<INT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:558,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:563,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:564,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:565,1
    - Dst: pcr::AlterToStdMV<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:566,1
    - Dst: static_cast<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:566,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:571,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:572,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:573,1
    - Dst: pcr::AlterToStdMV<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:574,1
    - Dst: static_cast<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:574,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:581,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:582,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:582,1
    - Dst: pcr::AlterToStdMV<INT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:583,1
    - Dst: static_cast<INT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:583,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:588,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:589,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:589,1
    - Dst: pcr::AlterToStdMV<INT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:590,1
    - Dst: static_cast<INT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:590,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:595,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:596,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:597,1
    - Dst: pcr::AlterToStdMV<UINT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:598,1
    - Dst: static_cast<UINT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:598,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:603,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:604,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:605,1
    - Dst: pcr::AlterToStdMV<UINT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:606,1
    - Dst: static_cast<UINT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:606,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:611,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - buffer
    - size
    - cellRepresentation
    - missingValue
    argTypes:
    - void*
    - size_t
    - CSF_CR
    - double
    constantsTouched: []
    func_position:
      end: 615
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 615
    functionName: alterToStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 2
    functionsReached:
    - static_cast<INT1 *>
    - static_cast<INT2 *>
    - std::for_each
    - static_cast<UINT2>
    - pcr::AlterToStdMV<INT4>
    - pcr::AlterToStdMV<UINT1>
    - static_cast<UINT4 *>
    - static_cast<REAL8>
    - pcr::AlterToStdMV<REAL8>
    - static_cast<INT4>
    - pcr::AlterToStdMV<REAL4>
    - pcr::AlterToStdMV<UINT4>
    - static_cast<INT1>
    - static_cast<UINT1>
    - CPLAssert
    - pcr::AlterToStdMV<INT2>
    - pcr::AlterToStdMV<INT1>
    - pcr::AlterToStdMV<UINT2>
    - static_cast<UINT2 *>
    - static_cast<UINT4>
    - static_cast<UINT1 *>
    - static_cast<REAL4 *>
    - static_cast<REAL8 *>
    - static_cast<INT4 *>
    - static_cast<REAL4>
    - static_cast<INT2>
    linkageType: ''
    returnType: void
    signature: "void alterToStdMV(void *buffer, size_t size, CSF_CR cellRepresentation,\n
      \                 double missingValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - valueScale
    - cellRepresentation
    argTypes:
    - CSF_VS
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 696
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 696
    functionName: fitValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CSF_VS
    signature: CSF_VS fitValueScale(CSF_VS valueScale, CSF_CR cellRepresentation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:707,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:707,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:708,1
    - Dst: CastToBooleanRange<UINT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:709,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:714,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:714,1
    - Dst: static_cast<INT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:715,1
    - Dst: CastToBooleanRange<INT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:716,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:721,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:721,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:722,1
    - Dst: CastToBooleanRange<REAL4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:723,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:728,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:728,1
    - Dst: static_cast<REAL8 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:729,1
    - Dst: CastToBooleanRange<REAL8>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:730,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:737,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:737,1
    - Dst: static_cast<INT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:738,1
    - Dst: CastToBooleanRange<INT1>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:739,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:744,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:744,1
    - Dst: static_cast<INT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:745,1
    - Dst: CastToBooleanRange<INT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:746,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:751,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:751,1
    - Dst: static_cast<UINT2 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:752,1
    - Dst: CastToBooleanRange<UINT2>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:753,1
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:758,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:758,1
    - Dst: static_cast<UINT4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:759,1
    - Dst: CastToBooleanRange<UINT4>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:760,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:765,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - buffer
    - size
    - cellRepresentation
    argTypes:
    - void*
    - size_t
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 769
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 769
    functionName: castValuesToBooleanRange
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 2
    functionsReached:
    - static_cast<INT1 *>
    - static_cast<INT2 *>
    - std::for_each
    - CastToBooleanRange<INT2>
    - static_cast<UINT1 *>
    - static_cast<REAL4 *>
    - static_cast<REAL8 *>
    - static_cast<INT4 *>
    - static_cast<UINT2 *>
    - CastToBooleanRange<UINT2>
    - CastToBooleanRange<UINT1>
    - CastToBooleanRange<INT1>
    - CastToBooleanRange<REAL4>
    - static_cast<UINT4 *>
    - CastToBooleanRange<UINT4>
    - CPLAssert
    - CastToBooleanRange<REAL8>
    - CastToBooleanRange<INT4>
    linkageType: ''
    returnType: void
    signature: "void castValuesToBooleanRange(void *buffer, size_t size,\n                              CSF_CR
      cellRepresentation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:773,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:773,1
    - Dst: static_cast<REAL4 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:774,1
    - Dst: CastToDirection
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: castValuesToDirectionRange
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached:
    - CastToDirection
    - std::for_each
    - static_cast<REAL4 *>
    linkageType: ''
    returnType: void
    signature: void castValuesToDirectionRange(void *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:779,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:779,1
    - Dst: static_cast<UINT1 *>
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:780,1
    - Dst: CastToLdd
      Src: /src/gdal/frmts/pcraster/pcrasterutil.cpp:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: castValuesToLddRange
    functionSourceFile: /src/gdal/frmts/pcraster/pcrasterutil.cpp
    functionUses: 1
    functionsReached:
    - std::for_each
    - CastToLdd
    - static_cast<UINT1 *>
    linkageType: ''
    returnType: void
    signature: void castValuesToLddRange(void *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfAttributeSize
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 16
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 16
    functionName: NrLegendEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached:
    - CsfAttributeSize
    linkageType: ''
    returnType: int
    signature: int NrLegendEntries(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - CSF_LEGEND*
    - CSF_LEGEND*
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: CmpEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CmpEntries(\n\tCSF_LEGEND *e1,\n\tCSF_LEGEND *e2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:31,1
    - Dst: qsort
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l
    - nr
    argTypes:
    - CSF_LEGEND*
    - size_t
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: SortEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached:
    - qsort
    - PRECOND
    linkageType: ''
    returnType: void
    signature: "void SortEntries(\n\tCSF_LEGEND *l, /* version 2 legend */\n\tsize_t
      \       nr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:45,1
    - Dst: NrLegendEntries
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: MgetNrLegendEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached:
    - NrLegendEntries
    - ABS
    linkageType: ''
    returnType: size_t
    signature: "size_t MgetNrLegendEntries(\n\tMAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NrLegendEntries
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:63,1
    - Dst: CsfGetAttrPosSize
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:65,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:69,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:81,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:82,1
    - Dst: SortEntries
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - m
    - l
    argTypes:
    - MAP*
    - CSF_LEGEND*
    constantsTouched: []
    func_position:
      end: 86
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 86
    functionName: MgetLegend
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached:
    - MAP*::read
    - CsfGetAttrPosSize
    - SortEntries
    - NrLegendEntries
    - csf_fseek
    linkageType: ''
    returnType: int
    signature: "int MgetLegend(\n\tMAP *m,        /* Map handle */\n\tCSF_LEGEND *l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MdelAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:112,1
    - Dst: SortEntries
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:114,1
    - Dst: CsfSeekAttrSpace
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:115,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:120,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:121,1
    - Dst: CsfStringPad
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:122,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/legend.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - m
    - l
    - nrEntries
    argTypes:
    - MAP*
    - CSF_LEGEND*
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: MputLegend
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/legend.c
    functionUses: 0
    functionsReached:
    - SortEntries
    - CsfStringPad
    - MdelAttribute
    - CsfSeekAttrSpace
    - M_ERROR
    - MAP*::write
    linkageType: ''
    returnType: int
    signature: "int MputLegend(\n\tMAP *m,        /* Map handle */\n\tCSF_LEGEND *l,
      /* read-write, array with name and entries, the entries\n\t                *
      are sorted before writing to the file.\n\t                * Strings are padded
      with zeros.\n\t                */\n\tsize_t nrEntries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: MnativeEndian
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/endian.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MnativeEndian(const MAP *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MnativeEndian
      Src: /src/gdal/frmts/pcraster/libcsf/endian.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: RputDoNotChangeValues
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/endian.c
    functionUses: 0
    functionsReached:
    - MnativeEndian
    linkageType: ''
    returnType: int
    signature: int RputDoNotChangeValues(const MAP *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: ResetMerrno
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/reseterr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetMerrno(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/pmaxval.c:26,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/pmaxval.c:29,1
    - Dst: MAP*::app2file
      Src: /src/gdal/frmts/pcraster/libcsf/pmaxval.c:32,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/pmaxval.c:35,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/pmaxval.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - map
    - maxVal
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: RputMaxVal
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pmaxval.c
    functionUses: 0
    functionsReached:
    - RgetCellRepr
    - CHECKHANDLE
    - MAP*::app2file
    - CsfGetVarType
    linkageType: ''
    returnType: void
    signature: "void RputMaxVal(\n\tMAP *map, /* map handle */\n\tconst void *maxVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _fseeki64
      Src: /src/gdal/frmts/pcraster/libcsf/file.c:11,1
    - Dst: fseek
      Src: /src/gdal/frmts/pcraster/libcsf/file.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - offset
    - origin
    argTypes:
    - FILE*
    - CSF_FADDR
    - int
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: csf_fseek
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/file.c
    functionUses: 1
    functionsReached:
    - _fseeki64
    - fseek
    linkageType: ''
    returnType: int
    signature: "int csf_fseek(\n    FILE* file,\n    CSF_FADDR offset,\n    int origin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftelli64
      Src: /src/gdal/frmts/pcraster/libcsf/file.c:22,1
    - Dst: ftell
      Src: /src/gdal/frmts/pcraster/libcsf/file.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: csf_ftell
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/file.c
    functionUses: 0
    functionsReached:
    - _ftelli64
    - ftell
    linkageType: ''
    returnType: CSF_FADDR
    signature: "CSF_FADDR csf_ftell(\n    FILE* file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/delattr.c:23,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/delattr.c:25,1
    - Dst: CsfGetAttrBlockAndIdx
      Src: /src/gdal/frmts/pcraster/libcsf/delattr.c:29,1
    - Dst: CsfWriteAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/delattr.c:34,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/delattr.c:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - m
    - id
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    constantsTouched: []
    func_position:
      end: 43
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 43
    functionName: MdelAttribute
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/delattr.c
    functionUses: 1
    functionsReached:
    - M_ERROR
    - CsfGetAttrBlockAndIdx
    - WRITE_ENABLE
    - CsfWriteAttrBlock
    linkageType: ''
    returnType: CSF_ATTR_ID
    signature: "CSF_ATTR_ID MdelAttribute(\n\tMAP *m,     /* map handle */\n\tCSF_ATTR_ID
      id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RputSomeCells
      Src: /src/gdal/frmts/pcraster/libcsf/_putcell.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - map
    - rowNr
    - colNr
    - cellValue
    argTypes:
    - MAP*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 28
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 28
    functionName: RputCell
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/_putcell.c
    functionUses: 0
    functionsReached:
    - RputSomeCells
    linkageType: ''
    returnType: size_t
    signature: 'size_t RputCell(

      MAP *map,         /* map handle */

      size_t rowNr,      /* Row number of cell */

      size_t colNr,      /* Column number of cell */

      void *cellValue)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/pgisfid.c:17,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/pgisfid.c:18,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/pgisfid.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - gisFileId
    argTypes:
    - MAP*
    - UINT4
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: MputGisFileId
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pgisfid.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: UINT4
    signature: "UINT4 MputGisFileId(\n\tMAP *map,          /* map handle */\n\tUINT4
      gisFileId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - ATTR_CNTRL_BLOCK*
    constantsTouched: []
    func_position:
      end: 19
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 19
    functionName: InitBlock
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InitBlock(\n\tATTR_CNTRL_BLOCK *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:38,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:38,1
    - Dst: CsfAttributeSize
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:39,1
    - Dst: MdelAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:40,1
    - Dst: CsfPutAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - m
    - id
    - itemSize
    - nitems
    - attr
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: CsfUpdateAttribute
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putattr.c
    functionUses: 0
    functionsReached:
    - MdelAttribute
    - CsfValidSize
    - CsfPutAttribute
    - CsfAttributeSize
    - PRECOND
    linkageType: ''
    returnType: CSF_ATTR_ID
    signature: "CSF_ATTR_ID CsfUpdateAttribute(\n\tMAP *m,       \t\t/* map handle
      */\n\tCSF_ATTR_ID id,               /* attribute identification */\n\tsize_t
      itemSize,        /* size of each attribute element.\n\t                         *
      1 or sizeof(char) in case of a\n\t                         * string\n\t                         */\n\tsize_t
      nitems,          /* number of attribute elements or\n\t                         *
      strlen+1 in case of a variable character\n\t                         * string
      field. Don't forget to pad a\n\t                         * non-variable field
      with '\\0'!\n\t                         */\n\tvoid *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:81,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:81,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:82,1
    - Dst: CsfSeekAttrSpace
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:84,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:87,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - m
    - id
    - itemSize
    - nitems
    - attr
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 94
    functionName: CsfPutAttribute
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putattr.c
    functionUses: 1
    functionsReached:
    - CsfSeekAttrSpace
    - CsfValidSize
    - M_ERROR
    - MAP*::write
    - PRECOND
    linkageType: ''
    returnType: CSF_ATTR_ID
    signature: "CSF_ATTR_ID CsfPutAttribute(\n\tMAP *m,       \t\t/* map handle */\n\tCSF_ATTR_ID
      id,               /* attribute identification */\n\tsize_t itemSize,        /*
      size of each attribute element.\n\t                         * 1 or sizeof(char)
      in case of a\n\t                         * string\n\t                         */\n\tsize_t
      nitems,          /* number of attribute elements or\n\t                         *
      strlen+1 in case of a variable character\n\t                         * string
      field. Don't forget to pad a\n\t                         * non-variable field
      with '\\0'!\n\t                         */\n\tvoid *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:120,1
    - Dst: MattributeAvail
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:122,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:124,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:128,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:130,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:144,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:144,1
    - Dst: CsfWriteAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:154,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:156,1
    - Dst: InitBlock
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:160,1
    - Dst: CsfReadAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:167,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:174,1
    - Dst: assert
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:190,1
    - Dst: CsfWriteAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:216,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:218,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:221,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putattr.c:223,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - m
    - id
    - size
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - size_t
    constantsTouched: []
    func_position:
      end: 227
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 227
    functionName: CsfSeekAttrSpace
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putattr.c
    functionUses: 2
    functionsReached:
    - WRITE_ENABLE
    - CsfReadAttrBlock
    - InitBlock
    - assert
    - CELLSIZE
    - MattributeAvail
    - RgetCellRepr
    - csf_fseek
    - memset
    - M_ERROR
    - POSTCOND
    - CsfWriteAttrBlock
    linkageType: ''
    returnType: CSF_FADDR32
    signature: "CSF_FADDR32 CsfSeekAttrSpace(\n\tMAP *m,       \t\t/* map handle */\n\tCSF_ATTR_ID
      id,         /* attribute identification only for check if available */\n\tsize_t
      size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfReadAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/gattrblk.c:25,1
    - Dst: CsfGetAttrIndex
      Src: /src/gdal/frmts/pcraster/libcsf/gattrblk.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - m
    - id
    - b
    - i
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - ATTR_CNTRL_BLOCK*
    - int*
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: CsfGetAttrBlockAndIdx
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gattrblk.c
    functionUses: 1
    functionsReached:
    - CsfGetAttrIndex
    - CsfReadAttrBlock
    linkageType: ''
    returnType: CSF_FADDR32
    signature: "CSF_FADDR32 CsfGetAttrBlockAndIdx(\n\tMAP *m,     /* map handle */\n\tCSF_ATTR_ID
      id,   /* identification of the attribute */\n\tATTR_CNTRL_BLOCK *b, /* write-only,
      attribute control block containing\n\t                      * the id information.\n\t
      \                     */\n\tint *i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttrBlockAndIdx
      Src: /src/gdal/frmts/pcraster/libcsf/gattrblk.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - id
    - b
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - ATTR_CNTRL_BLOCK*
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: CsfGetAttrBlock
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gattrblk.c
    functionUses: 0
    functionsReached:
    - CsfGetAttrBlockAndIdx
    linkageType: ''
    returnType: CSF_FADDR32
    signature: "CSF_FADDR32 CsfGetAttrBlock(\n\tMAP *m,     /* map handle */\n\tCSF_ATTR_ID
      id,   /* identification of the attribute */\n\tATTR_CNTRL_BLOCK *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttrBlockAndIdx
      Src: /src/gdal/frmts/pcraster/libcsf/gattrblk.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - m
    - id
    - size
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - size_t*
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: CsfGetAttrPosSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gattrblk.c
    functionUses: 1
    functionsReached:
    - CsfGetAttrBlockAndIdx
    linkageType: ''
    returnType: CSF_FADDR32
    signature: "CSF_FADDR32 CsfGetAttrPosSize(\n\tMAP *m,     /* map handle */\n\tCSF_ATTR_ID
      id,   /* identification of the attribute */\n\tsize_t *size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsMVcellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/ismv.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - cellValue
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: IsMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ismv.c
    functionUses: 0
    functionsReached:
    - IsMVcellRepr
    linkageType: ''
    returnType: int
    signature: "int IsMV(\n\tconst MAP *map, /* map handle */\n\tconst void *cellValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/ismv.c:24,1
    - Dst: IS_REAL
      Src: /src/gdal/frmts/pcraster/libcsf/ismv.c:32,1
    - Dst: IS_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/ismv.c:35,1
    - Dst: IS_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/ismv.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - cellRepr
    - cellValue
    argTypes:
    - CSF_CR
    - void*
    constantsTouched: []
    func_position:
      end: 48
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 48
    functionName: IsMVcellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ismv.c
    functionUses: 1
    functionsReached:
    - IS_SIGNED
    - IS_MV_REAL8
    - IS_MV_REAL4
    - IS_REAL
    linkageType: ''
    returnType: int
    signature: "int IsMVcellRepr(\n\tCSF_CR cellRepr,        /* cell representation
      of argument cellValue.\n\t                        * That is one of the constants
      prefixed by CR_.\n\t                        */\n\tconst void *cellValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: DetMinMaxINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxINT1(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: DetMinMaxINT2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxINT2(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: DetMinMaxINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxINT4(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: DetMinMaxUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxUINT1(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: DetMinMaxUINT2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxUINT2(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DET
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: DetMinMaxUINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - DET
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxUINT4(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:169,1
    - Dst: IS_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:171,1
    - Dst: IS_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:177,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 186
    functionName: DetMinMaxREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - IS_MV_REAL4
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxREAL4(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:208,1
    - Dst: IS_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:210,1
    - Dst: IS_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - minIn
    - maxIn
    - nrCells
    - bufIn
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 228
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 228
    functionName: DetMinMaxREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 0
    functionsReached:
    - IS_MV_REAL8
    linkageType: ''
    returnType: void
    signature: 'void DetMinMaxREAL8(

      void *minIn,   /* read-write.  adjusted minimum */

      void *maxIn,  /* read-write.  adjusted maximum */

      size_t nrCells,/* number of cells in buf */

      const void *bufIn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAP*::app2file
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:257,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:273,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:273,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:274,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:274,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:276,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:282,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:284,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:286,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/putsomec.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - map
    - offset
    - nrCells
    - buf
    argTypes:
    - MAP*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 287
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 287
    functionName: RputSomeCells
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putsomec.c
    functionUses: 1
    functionsReached:
    - LOG_CELLSIZE
    - CSF_UNIQ_CR_MASK
    - CELLSIZE
    - MAP*::app2file
    - csf_fseek
    - MAP*::write
    - PRECOND
    linkageType: ''
    returnType: size_t
    signature: "size_t RputSomeCells(\n\tMAP *map,\t/* map handle */\n\tsize_t offset,
      \  /* offset from pixel (row,col) = (0,0) */\n\tsize_t nrCells,  /* number of
      cells to be read */\n\tvoid *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: MopenPerm
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum MOPEN_PERM
    signature: "enum MOPEN_PERM MopenPerm(\n\tconst MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfIsBootedCsfKernel
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:46,1
    - Dst: CsfBootCsfKernel
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:47,1
    - Dst: CSF_MALLOC
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:49,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:53,1
    - Dst: CSF_MALLOC
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:57,1
    - Dst: strlen
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:57,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:60,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:63,1
    - Dst: IS_BAD_ACCESS_MODE
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:66,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:68,1
    - Dst: fopen
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:75,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:78,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:88,1
    - Dst: csf_ftell
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:89,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:91,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:95,1
    - Dst: fread
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:96,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:98,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:103,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:119,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:120,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:121,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:122,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:123,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:124,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:125,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:126,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:130,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:131,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:132,1
    - Dst: fread
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:134,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:136,1
    - Dst: fread
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:138,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:140,1
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:143,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:143,1
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:144,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:144,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:147,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:148,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:149,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:150,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:151,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:152,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:154,1
    - Dst: strncmp
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:159,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:161,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:166,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:175,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:197,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:217,1
    - Dst: CsfFinishMapInit
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:221,1
    - Dst: CsfRegisterMap
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:223,1
    - Dst: IsMV
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:231,1
    - Dst: IsMV
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:232,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:240,1
    - Dst: fclose
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:241,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:243,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/mopen.c:245,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 149
    argCount: 2
    argNames:
    - fileName
    - mode
    argTypes:
    - char*
    - enum MOPEN_PERM
    constantsTouched: []
    func_position:
      end: 248
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 248
    functionName: Mopen
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mopen.c
    functionUses: 1
    functionsReached:
    - IS_BAD_ACCESS_MODE
    - MAP*::read
    - strncmp
    - CsfSwap
    - CELLSIZE
    - CSF_FREE
    - PRECOND
    - fopen
    - fread
    - csf_ftell
    - fprintf
    - IsMV
    - strlen
    - CsfIsBootedCsfKernel
    - csf_fseek
    - CSF_MALLOC
    - M_ERROR
    - fclose
    - CsfRegisterMap
    - POSTCOND
    - CsfFinishMapInit
    - CsfBootCsfKernel
    - strcpy
    linkageType: ''
    returnType: MAP
    signature: "MAP *Mopen(\n\tconst char *fileName, /* file name */\n\tenum MOPEN_PERM
      mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mclose
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:36,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:37,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: CsfCloseCsfKernel
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 0
    functionsReached:
    - CSF_FREE
    - Mclose
    - fprintf
    linkageType: ''
    returnType: void
    signature: void CsfCloseCsfKernel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:54,1
    - Dst: calloc
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:56,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:58,1
    - Dst: exit
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:59,1
    - Dst: atexit
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:62,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:63,1
    - Dst: exit
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: CsfBootCsfKernel
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    - calloc
    - atexit
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: void CsfBootCsfKernel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: CsfIsBootedCsfKernel
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CsfIsBootedCsfKernel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:100,1
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:102,1
    - Dst: exit
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: CsfRegisterMap
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 1
    functionsReached:
    - realloc
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void CsfRegisterMap(\n  MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:121,1
    - Dst: CsfIsValidMap
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: CsfUnloadMap
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 0
    functionsReached:
    - CsfIsValidMap
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: "void CsfUnloadMap(\n  MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfIsBootedCsfKernel
      Src: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: CsfIsValidMap
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/kernlcsf.c
    functionUses: 1
    functionsReached:
    - CsfIsBootedCsfKernel
    linkageType: ''
    returnType: int
    signature: "int CsfIsValidMap(\n  const MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/rmalloc.c:25,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/rmalloc.c:27,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/rmalloc.c:27,1
    - Dst: CSF_MALLOC
      Src: /src/gdal/frmts/pcraster/libcsf/rmalloc.c:30,1
    - Dst: CSFSIZEOF
      Src: /src/gdal/frmts/pcraster/libcsf/rmalloc.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - nrOfCells
    argTypes:
    - MAP*
    - size_t
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: Rmalloc
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rmalloc.c
    functionUses: 0
    functionsReached:
    - LOG_CELLSIZE
    - CSF_MALLOC
    - RgetCellRepr
    - CSFSIZEOF
    linkageType: ''
    returnType: void
    signature: "void *Rmalloc(\n\tconst MAP *m,      /* map handle */\n\tsize_t nrOfCells)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: MgetMapDataType
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gdattype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT4
    signature: "UINT4 MgetMapDataType(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: RgetNrRows
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gnrrows.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t RgetNrRows(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/attrsize.c:16,1
    - Dst: CsfGetAttrBlockAndIdx
      Src: /src/gdal/frmts/pcraster/libcsf/attrsize.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - m
    - id
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    constantsTouched: []
    func_position:
      end: 21
      start: 10
    functionDepth: 2
    functionLinenumber: 10
    functionLinenumberEnd: 21
    functionName: CsfAttributeSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/attrsize.c
    functionUses: 2
    functionsReached:
    - memset
    - CsfGetAttrBlockAndIdx
    linkageType: ''
    returnType: size_t
    signature: "size_t CsfAttributeSize(\n\t MAP   *m,    /* map handle */\n\t CSF_ATTR_ID
      id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - id
    - b
    argTypes:
    - CSF_ATTR_ID
    - ATTR_CNTRL_BLOCK*
    constantsTouched: []
    func_position:
      end: 20
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 20
    functionName: CsfGetAttrIndex
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gattridx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CsfGetAttrIndex(\n\tCSF_ATTR_ID id,  /* id to be found */\n\tconst
      ATTR_CNTRL_BLOCK *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RrowCol2Coords
      Src: /src/gdal/frmts/pcraster/libcsf/rcoords.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - m
    - inCellPos
    - row
    - col
    - x
    - y
    argTypes:
    - MAP*
    - int
    - size_t
    - size_t
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: RgetCoords
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcoords.c
    functionUses: 0
    functionsReached:
    - RrowCol2Coords
    linkageType: ''
    returnType: int
    signature: "int RgetCoords(\n\tconst MAP *m,\t/* map handle */\n\tint inCellPos,
      \ /* nonzero if you want the co-ordinate\n\t\t\t * at the centre of the cell,
      0 if you\n\t\t\t * want the upper left co-ordinate of the cell\n\t\t\t */\n\tsize_t
      row,      /* Row number (relates to y position). */\n\tsize_t col,      /* Column
      number (relates to x position). */\n\tdouble *x,      /* write-only. Returns
      x of true co-ordinate */\n\tdouble *y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - m
    - row
    - col
    - x
    - y
    argTypes:
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: RasterRowCol2Coords
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcoords.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RasterRowCol2Coords(\n\tconst CSF_RASTER_LOCATION_ATTRIBUTES
      *m, /* raster handle */\n\tdouble row,  /* Row number (relates to y position).
      */\n\tdouble col,  /* Column number (relates to x position). */\n\tdouble *x,
      \  /* write-only. x co-ordinate */\n\tdouble *y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/rcoords.c:94,1
    - Dst: RasterRowCol2Coords
      Src: /src/gdal/frmts/pcraster/libcsf/rcoords.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - m
    - row
    - col
    - x
    - y
    argTypes:
    - MAP*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: RrowCol2Coords
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcoords.c
    functionUses: 1
    functionsReached:
    - RasterRowCol2Coords
    - M_ERROR
    linkageType: ''
    returnType: int
    signature: "int RrowCol2Coords(const MAP *m, /* map handle */\n\t\t    double
      row,  /* Row number (relates to y position). */\n\t\t    double col,  /* Column
      number (relates to x position). */\n\t\t    double *x,   /* write-only. x co-ordinate
      */\n\t\t    double *y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetValueScale
      Src: /src/gdal/frmts/pcraster/libcsf/vsvers.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: RgetValueScaleVersion
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/vsvers.c
    functionUses: 0
    functionsReached:
    - RgetValueScale
    linkageType: ''
    returnType: int
    signature: "int RgetValueScaleVersion(\n\tconst MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/pminval.c:27,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/pminval.c:30,1
    - Dst: MAP*::app2file
      Src: /src/gdal/frmts/pcraster/libcsf/pminval.c:33,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/pminval.c:36,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/pminval.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - map
    - minVal
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: RputMinVal
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pminval.c
    functionUses: 0
    functionsReached:
    - RgetCellRepr
    - CHECKHANDLE
    - MAP*::app2file
    - CsfGetVarType
    linkageType: ''
    returnType: void
    signature: "void RputMinVal(\n  MAP *map, /* map handle */\n  const void *minVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: RgetNrCols
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gnrcols.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t RgetNrCols(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RdontTrackMinMax
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/trackmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RdontTrackMinMax(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/gversion.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: MgetVersion
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gversion.c
    functionUses: 0
    functionsReached:
    - CHECKHANDLE
    linkageType: ''
    returnType: UINT4
    signature: "UINT4 MgetVersion(\n const MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: CsfDummyConversion
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/dumconv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CsfDummyConversion(\n  size_t  nrCells,\n  void   *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/ggisfid.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: MgetGisFileId
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ggisfid.c
    functionUses: 0
    functionsReached:
    - CHECKHANDLE
    linkageType: ''
    returnType: UINT4
    signature: "UINT4 MgetGisFileId(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - vs
    argTypes:
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: RvalueScale2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/vs2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RvalueScale2(\n\tCSF_VS    vs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: RgetValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gvalscal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CSF_VS
    signature: "CSF_VS RgetValueScale(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: MgetFileName
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/filename.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *MgetFileName(\n\tconst MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/pcraster/libcsf/mperror.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - userString
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Mperror
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mperror.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void Mperror(\n\tconst char *userString)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mperror
      Src: /src/gdal/frmts/pcraster/libcsf/mperror.c:66,1
    - Dst: exit
      Src: /src/gdal/frmts/pcraster/libcsf/mperror.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - userString
    - exitCode
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: MperrorExit
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mperror.c
    functionUses: 0
    functionsReached:
    - Mperror
    - exit
    linkageType: ''
    returnType: void
    signature: "void MperrorExit(\n\tconst char *userString, /* prefix string */\n\tint
      exitCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: MstrError
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mperror.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MstrError(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:26,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:28,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:30,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:32,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:32,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:35,1
    - Dst: MAP*::file2app
      Src: /src/gdal/frmts/pcraster/libcsf/_gsomece.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - map
    - offset
    - nrCells
    - buf
    argTypes:
    - MAP*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 39
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 39
    functionName: RgetSomeCells
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/_gsomece.c
    functionUses: 0
    functionsReached:
    - LOG_CELLSIZE
    - MAP*::read
    - MAP*::file2app
    - CELLSIZE
    - RgetCellRepr
    - csf_fseek
    - PRECOND
    linkageType: ''
    returnType: size_t
    signature: "size_t RgetSomeCells(\n\tMAP *map,\t/* map handle */\n\tsize_t offset,
      \  /* offset from pixel (row,col) = (0,0) */\n\tsize_t nrCells,  /* number of
      cells to be read */\n\tvoid *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfAttributeSize
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: MgetHistorySize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfAttributeSize
    linkageType: ''
    returnType: size_t
    signature: size_t MgetHistorySize(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfAttributeSize
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: MgetDescriptionSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfAttributeSize
    linkageType: ''
    returnType: size_t
    signature: size_t MgetDescriptionSize(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: MgetNrColourPaletteEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - POSTCOND
    linkageType: ''
    returnType: size_t
    signature: size_t MgetNrColourPaletteEntries(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: MgetNrGreyPaletteEntries
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - POSTCOND
    linkageType: ''
    returnType: size_t
    signature: size_t MgetNrGreyPaletteEntries(MAP *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - des
    argTypes:
    - MAP*
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: MgetDescription
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfGetAttribute
    linkageType: ''
    returnType: int
    signature: "int MgetDescription(MAP *m,    /* the map to get it from */\n\t\tchar
      *des)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - history
    argTypes:
    - MAP*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: MgetHistory
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfGetAttribute
    linkageType: ''
    returnType: int
    signature: "int MgetHistory(MAP *m,    /* the map to get it from */\n\t\tchar
      *history)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - pal
    argTypes:
    - MAP*
    - UINT2*
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: MgetColourPalette
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfGetAttribute
    linkageType: ''
    returnType: int
    signature: "int MgetColourPalette(MAP *m, /* the map to get it from */\n\tUINT2
      *pal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfGetAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - pal
    argTypes:
    - MAP*
    - UINT2*
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: MgetGreyPalette
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfGetAttribute
    linkageType: ''
    returnType: int
    signature: "int MgetGreyPalette(MAP *m, /* the map to get it from */\n\tUINT2
      *pal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfUpdateAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:123,1
    - Dst: strlen
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - des
    argTypes:
    - MAP*
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: MputDescription
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfUpdateAttribute
    - strlen
    linkageType: ''
    returnType: int
    signature: "int MputDescription(MAP *m,    /* the map to get it from */\n\t\tchar
      *des)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfUpdateAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:139,1
    - Dst: strlen
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - history
    argTypes:
    - MAP*
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: MputHistory
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfUpdateAttribute
    - strlen
    linkageType: ''
    returnType: int
    signature: "int MputHistory(MAP *m,    /* the map to get it from */\n\t\tchar
      *history)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfUpdateAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - pal
    - nrTupels
    argTypes:
    - MAP*
    - UINT2*
    - size_t
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: MputColourPalette
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfUpdateAttribute
    linkageType: ''
    returnType: int
    signature: "int MputColourPalette(MAP *m, /* the map to get it from */\n\tUINT2
      *pal, /* the new palette */\n\tsize_t nrTupels)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfUpdateAttribute
      Src: /src/gdal/frmts/pcraster/libcsf/moreattr.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - pal
    - nrTupels
    argTypes:
    - MAP*
    - UINT2*
    - size_t
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: MputGreyPalette
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/moreattr.c
    functionUses: 0
    functionsReached:
    - CsfUpdateAttribute
    linkageType: ''
    returnType: int
    signature: "int MputGreyPalette(MAP *m, /* the map to get it from */\n\tUINT2
      *pal, /* the new grey palette */\n\tsize_t nrTupels)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - dfRound
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: RoundDown
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rextend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double RoundDown(\n\tdouble v,\n\tdouble dfRound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - dfRound
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: RoundUp
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rextend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double RoundUp(\n\tdouble v,\n\tdouble dfRound)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundDown
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:81,1
    - Dst: RoundUp
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:82,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:83,1
    - Dst: ceil
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:84,1
    - Dst: RoundDown
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:89,1
    - Dst: RoundUp
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:90,1
    - Dst: RoundUp
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:96,1
    - Dst: RoundDown
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:97,1
    - Dst: ceil
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:99,1
    - Dst: fabs
      Src: /src/gdal/frmts/pcraster/libcsf/rextend.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 11
    argNames:
    - xUL
    - yUL
    - nrRows
    - nrCols
    - x_1
    - y_1
    - x_2
    - y_2
    - projection
    - cellSize
    - rounding
    argTypes:
    - REAL8*
    - REAL8*
    - size_t*
    - size_t*
    - double
    - double
    - double
    - double
    - CSF_PT
    - REAL8
    - double
    constantsTouched: []
    func_position:
      end: 100
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 100
    functionName: RcomputeExtend
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rextend.c
    functionUses: 0
    functionsReached:
    - RoundDown
    - RoundUp
    - fabs
    - ceil
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: "void RcomputeExtend(\n\tREAL8 *xUL,     /* write-only, resulting xUL
      */\n\tREAL8 *yUL,     /* write-only, resulting yUL */\n\tsize_t *nrRows, /*
      write-only, resulting nrRows */\n\tsize_t *nrCols, /* write-only, resulting
      nrCols */\n\tdouble x_1,      /* first x-coordinate */ \n\tdouble y_1,      /*
      first y-coordinate */\n\tdouble x_2,      /* second x-coordinate */\n\tdouble
      y_2,      /* second y-coordinate */\n\tCSF_PT projection, /* required projection
      */\n\tREAL8 cellSize, /* required cellsize, > 0 */\n\tdouble rounding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - m
    - x
    - y
    - row
    - col
    argTypes:
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 44
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 44
    functionName: RasterCoords2RowCol
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rrowcol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RasterCoords2RowCol(\n const CSF_RASTER_LOCATION_ATTRIBUTES *m,\n
      double x,      /* x of true co-ordinate */\n double y,      /* y of true co-ordinate
      */\n double *row,   /* write-only. Row index (y-pos). floor(row) is row number,\n
      \                * if (row >= 0) then fmod(row, 1) is in-pixel displacement
      from pixel-top,\n                 * if (row <0) then fmod(row, 1) is in-pixel
      displacement from pixel-bottom. \n                 */\n double *col)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RasterCoords2RowCol
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - m
    - x
    - y
    - row
    - col
    argTypes:
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: RasterCoords2RowColChecked
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rrowcol.c
    functionUses: 0
    functionsReached:
    - RasterCoords2RowCol
    linkageType: ''
    returnType: int
    signature: "int RasterCoords2RowColChecked(\n const CSF_RASTER_LOCATION_ATTRIBUTES
      *m,\n double x,      /* x of true co-ordinate */\n double y,      /* y of true
      co-ordinate */\n double *row, \n double *col)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:95,1
    - Dst: RasterCoords2RowCol
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - m
    - x
    - y
    - row
    - col
    argTypes:
    - MAP*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: Rcoords2RowCol
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rrowcol.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - RasterCoords2RowCol
    linkageType: ''
    returnType: int
    signature: "int Rcoords2RowCol(\n const MAP *m,  /* map handle */\n double x,
      \     /* x of true co-ordinate */\n double y,      /* y of true co-ordinate
      */\n double *row,   /* write-only. Row index (y-pos). floor(row) is row number,\n
      \                * if (row >= 0) then fmod(row, 1) is in-pixel displacement
      from pixel-top,\n                 * if (row <0) then fmod(row, 1) is in-pixel
      displacement from pixel-bottom. \n                 */\n double *col)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rcoords2RowCol
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:132,1
    - Dst: floor
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:135,1
    - Dst: floor
      Src: /src/gdal/frmts/pcraster/libcsf/rrowcol.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - m
    - x
    - y
    - row
    - col
    argTypes:
    - MAP*
    - double
    - double
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 139
    functionName: RgetRowCol
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rrowcol.c
    functionUses: 0
    functionsReached:
    - floor
    - Rcoords2RowCol
    linkageType: ''
    returnType: int
    signature: "int RgetRowCol(\n\tconst MAP *m, /* map handle */\n\tdouble x,     /*
      x of true co-ordinate */\n\tdouble y,     /* y of true co-ordinate */\n\tsize_t
      *row,   /* write-only. Row number (y-pos).\n\t               * Undefined if
      (x,y) is outside of map\n\t               */\n\tsize_t *col)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - nrCells
    - Buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 17
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 17
    functionName: UINT1tLdd
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UINT1tLdd(size_t nrCells, void *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nrCells
    - Buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: INT2tLdd
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - ABS
    linkageType: ''
    returnType: void
    signature: void INT2tLdd(size_t nrCells, void *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: INT1tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void INT1tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: INT2tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void INT2tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: INT4tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void INT4tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: UINT1tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void UINT1tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: UINT2tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void UINT2tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: UINT4tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void UINT4tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: REAL4tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void REAL4tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOBOOL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: REAL8tBoolean
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - TOBOOL
    linkageType: ''
    returnType: void
    signature: void REAL8tBoolean(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: UINT1tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: void UINT1tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: UINT1tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: void UINT1tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: UINT1tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: void UINT1tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: INT4tUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void INT4tUINT1(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: INT2tUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void INT2tUINT1(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: UINT2tUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void UINT2tUINT1(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: INT4tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void INT4tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: INT4tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: void INT4tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: REAL4tUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void REAL4tUINT1(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: REAL4tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void REAL4tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: REAL4tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: void REAL4tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: REAL8tUINT1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void REAL8tUINT1(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: REAL8tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void REAL8tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_BIG_TO_SMALL
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: REAL8tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_BIG_TO_SMALL
    linkageType: ''
    returnType: void
    signature: void REAL8tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: INT1tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT1tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: INT1tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT1tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: INT1tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT1tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: INT2tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT2tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: INT2tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT2tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: INT2tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void INT2tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: UINT2tINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void UINT2tINT4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: UINT2tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void UINT2tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: UINT2tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void UINT2tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: UINT4tREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void UINT4tREAL4(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transform2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: UINT4tREAL8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - Transform2
    linkageType: ''
    returnType: void
    signature: void UINT4tREAL8(size_t nrCells, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:187,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:189,1
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:190,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:194,1
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - nrCells
    - buf
    - src
    argTypes:
    - size_t
    - void*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: ConvertToINT2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    - IS_SIGNED
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: void ConvertToINT2( size_t nrCells, void *buf, CSF_CR src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:201,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:203,1
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:204,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:208,1
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - nrCells
    - buf
    - src
    argTypes:
    - size_t
    - void*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: ConvertToINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    - IS_SIGNED
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: void ConvertToINT4( size_t nrCells, void *buf, CSF_CR src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: UINT1tUINT2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: 'void UINT1tUINT2(

      size_t nrCells,

      void *buf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONV_SMALL_TO_BIG
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nrCells
    - buf
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: UINT2tUINT4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CONV_SMALL_TO_BIG
    linkageType: ''
    returnType: void
    signature: 'void UINT2tUINT4(

      size_t nrCells,

      void *buf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:234,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:236,1
    - Dst: INT4tREAL4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:237,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:241,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - nrCells
    - buf
    - src
    argTypes:
    - size_t
    - void*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: ConvertToREAL4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - IS_SIGNED
    - INT4tREAL4
    - POSTCOND
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ConvertToREAL4( size_t nrCells, void *buf, CSF_CR src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConvertToINT2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:272,1
    - Dst: ConvertToINT4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:276,1
    - Dst: ConvertToREAL4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:280,1
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:284,1
    - Dst: ConvertToINT2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:286,1
    - Dst: UINT1tUINT2
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:292,1
    - Dst: ConvertToINT4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:298,1
    - Dst: UINT2tUINT4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:304,1
    - Dst: ConvertToREAL4
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:308,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:312,1
    - Dst: REAL4tREAL8
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - nrCells
    - buf
    - destCellRepr
    - currCellRepr
    argTypes:
    - size_t
    - void*
    - CSF_CR
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 317
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 317
    functionName: Transform2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 11
    functionsReached:
    - ConvertToINT4
    - ConvertToINT2
    - UINT1tUINT2
    - ConvertToREAL4
    - UINT2tUINT4
    - IS_SIGNED
    - POSTCOND
    - REAL4tREAL8
    linkageType: ''
    returnType: void
    signature: "void Transform2(\n\tsize_t nrCells,\n\tvoid  *buf,\n\tCSF_CR destCellRepr,
      /* the output representation */\n\tCSF_CR currCellRepr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:361,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:361,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:362,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:362,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cr
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: ConvFuncBool
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CSF_UNIQ_CR_MASK
    - PRECOND
    linkageType: ''
    returnType: CSF_CONV_FUNC
    signature: CSF_CONV_FUNC ConvFuncBool(CSF_CR cr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:370,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:370,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:371,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:371,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:372,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:372,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:373,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:373,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:379,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - destType
    - srcType
    argTypes:
    - CSF_CR
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: ConvFunc
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CSF_UNIQ_CR_MASK
    - PRECOND
    linkageType: ''
    returnType: CSF_CONV_FUNC
    signature: CSF_CONV_FUNC ConvFunc(CSF_CR destType, CSF_CR srcType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:390,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:390,1
    - Dst: CSF_UNIQ_CR_MASK
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cr
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: HasInFileCellReprType2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 0
    functionsReached:
    - CSF_UNIQ_CR_MASK
    - PRECOND
    linkageType: ''
    returnType: int
    signature: int HasInFileCellReprType2(CSF_CR cr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:446,1
    - Dst: RgetValueScale
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:447,1
    - Dst: memcpy
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:460,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:466,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:470,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:477,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:479,1
    - Dst: ConvFuncBool
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:483,1
    - Dst: ConvFunc
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:484,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:492,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:508,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:509,1
    - Dst: assert
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:521,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:526,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:537,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:539,1
    - Dst: ConvFunc
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:543,1
    - Dst: ConvFunc
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:544,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:545,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/ruseas.c:549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 88
    argCount: 2
    argNames:
    - m
    - useType
    argTypes:
    - MAP*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 554
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 554
    functionName: RuseAs
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/ruseas.c
    functionUses: 1
    functionsReached:
    - WRITE_ENABLE
    - RgetValueScale
    - assert
    - ConvFunc
    - RgetCellRepr
    - ConvFuncBool
    - M_ERROR
    - memcpy
    - POSTCOND
    linkageType: ''
    returnType: int
    signature: "int RuseAs(\n\tMAP *m,          /* map handle */\n\tCSF_CR useType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetMVcellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/setmv.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - c
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: SetMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/setmv.c
    functionUses: 0
    functionsReached:
    - SetMVcellRepr
    linkageType: ''
    returnType: void
    signature: "void SetMV(\n\tconst MAP *m, /* map handle */\n\tvoid *c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/setmv.c:50,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - cellRepr
    - c
    argTypes:
    - CSF_CR
    - void*
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: SetMVcellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/setmv.c
    functionUses: 1
    functionsReached:
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: "void SetMVcellRepr(\n\tCSF_CR cellRepr, /* cell representation, one
      of the CR_* constants */\n\tvoid *c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/gvartype.c:8,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/gvartype.c:17,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/gvartype.c:17,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - dest
    - src
    - cellRepr
    argTypes:
    - void*
    - CSF_VAR_TYPE*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 20
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 20
    functionName: CsfGetVarType
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gvartype.c
    functionUses: 2
    functionsReached:
    - LOG_CELLSIZE
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: void CsfGetVarType( void *dest, const CSF_VAR_TYPE *src, CSF_CR cellRepr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: CsfValidSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CsfValidSize(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:39,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:39,1
    - Dst: fwrite
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - n
    - f
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: CsfWritePlain
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached:
    - fwrite
    - CsfValidSize
    - PRECOND
    linkageType: ''
    returnType: size_t
    signature: size_t CsfWritePlain(void *buf, size_t size, size_t n, FILE  *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:44,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:44,1
    - Dst: fread
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - n
    - f
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: CsfReadPlain
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached:
    - fread
    - CsfValidSize
    - PRECOND
    linkageType: ''
    returnType: size_t
    signature: size_t CsfReadPlain(void *buf, size_t size, size_t n, FILE  *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Swap1
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap1(unsigned char *buf,  size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: Swap2
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap2(unsigned char *b,  size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Swap4
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap4(unsigned char *b,  size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: Swap8
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap8(unsigned char *b,  size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:102,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:102,1
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - size
    - n
    argTypes:
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: CsfSwap
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 1
    functionsReached:
    - CsfValidSize
    - PRECOND
    linkageType: ''
    returnType: void
    signature: void CsfSwap(void *buf, size_t size, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:110,1
    - Dst: fwrite
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - n
    - f
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: CsfWriteSwapped
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached:
    - fwrite
    - CsfSwap
    linkageType: ''
    returnType: size_t
    signature: size_t CsfWriteSwapped(void *buf, size_t size, size_t n, FILE  *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/swapio.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - n
    - f
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: CsfReadSwapped
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/swapio.c
    functionUses: 0
    functionsReached:
    - CsfSwap
    linkageType: ''
    returnType: size_t
    signature: size_t CsfReadSwapped(void *buf, size_t size, size_t n, FILE  *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetSomeCells
      Src: /src/gdal/frmts/pcraster/libcsf/_getrow.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - rowNr
    - buf
    argTypes:
    - MAP*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 25
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 25
    functionName: RgetRow
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/_getrow.c
    functionUses: 0
    functionsReached:
    - RgetSomeCells
    linkageType: ''
    returnType: size_t
    signature: "size_t RgetRow(\n\tMAP *map,        /* map handle */\n\tsize_t rowNr,
      \    /* row number to be read */\n\tvoid *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:24,1
    - Dst: CsfValidSize
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:24,1
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:25,1
    - Dst: READ_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:27,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:29,1
    - Dst: CsfGetAttrBlockAndIdx
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:33,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:36,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:38,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:40,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/getattr.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - m
    - id
    - elSize
    - nmemb
    - attr
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    - size_t
    - size_t*
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 47
    functionName: CsfGetAttribute
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/getattr.c
    functionUses: 4
    functionsReached:
    - CsfGetAttrBlockAndIdx
    - MAP*::read
    - CHECKHANDLE_GOTO
    - CsfValidSize
    - READ_ENABLE
    - csf_fseek
    - M_ERROR
    - POSTCOND
    - PRECOND
    linkageType: ''
    returnType: CSF_ATTR_ID
    signature: "CSF_ATTR_ID CsfGetAttribute(\n\t MAP *m, /* map handle */\n\t CSF_ATTR_ID
      id, /* id of attribute to be read */\n\t size_t  elSize, /* size of each data-element
      */\n\t size_t *nmemb, /* write-only. How many elSize members are read. */\n\t
      void  *attr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfIsBootedCsfKernel
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:59,1
    - Dst: CsfBootCsfKernel
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:60,1
    - Dst: CSF_MALLOC
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:62,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:65,1
    - Dst: CSF_MALLOC
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:68,1
    - Dst: strlen
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:68,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:71,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:81,1
    - Dst: PROG_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:90,1
    - Dst: IS_REAL
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:96,1
    - Dst: PROG_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:98,1
    - Dst: IS_REAL
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:104,1
    - Dst: PROG_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:106,1
    - Dst: PROG_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:111,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:117,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:123,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:128,1
    - Dst: fopen
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:130,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:136,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:143,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:144,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:148,1
    - Dst: strcpy
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:149,1
    - Dst: PROJ_DEC_T2B
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:152,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:169,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:170,1
    - Dst: CsfFinishMapInit
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:178,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:190,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:196,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:197,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:199,1
    - Dst: fflush
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:202,1
    - Dst: csf_ftell
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:203,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:205,1
    - Dst: CsfRegisterMap
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:211,1
    - Dst: fclose
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:215,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:217,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/create2.c:219,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 10
    argNames:
    - fileName
    - nrRows
    - nrCols
    - cellRepr
    - dataType
    - projection
    - xUL
    - yUL
    - angle
    - cellSize
    argTypes:
    - char*
    - size_t
    - size_t
    - CSF_CR
    - CSF_VS
    - CSF_PT
    - REAL8
    - REAL8
    - REAL8
    - REAL8
    constantsTouched: []
    func_position:
      end: 222
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 222
    functionName: Rcreate
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/create2.c
    functionUses: 2
    functionsReached:
    - fflush
    - CsfSetVarTypeMV
    - PROJ_DEC_T2B
    - CSF_FREE
    - fopen
    - csf_ftell
    - strlen
    - CsfIsBootedCsfKernel
    - IS_REAL
    - csf_fseek
    - CSF_MALLOC
    - M_ERROR
    - fclose
    - PROG_ERROR
    - CsfRegisterMap
    - MAP*::write
    - LOG_CELLSIZE
    - CsfFinishMapInit
    - CsfBootCsfKernel
    - strcpy
    - memset
    linkageType: ''
    returnType: MAP
    signature: "MAP *Rcreate(\n\tconst char *fileName,  /* name of the file to be
      created */\n\tsize_t nrRows,          /* the number of rows */\n\tsize_t nrCols,
      \         /* the number of columns */\n\tCSF_CR cellRepr,       /* the cell
      representation must be complaint with the data type\n\t                        */\n\tCSF_VS
      dataType,      /* a.k.a. the value scale.\n\t                       */\n\tCSF_PT
      projection,     /* \n\t                        */\n\tREAL8 xUL,              /*
      x co-ordinate of upper left */\n\tREAL8 yUL,              /* y co-ordinate of
      upper left */\n\tREAL8 angle,           /* counter clockwise rotation angle\n\t
      \                       * of the grid top compared to the\n\t                        *
      x-axis in radians. Legal value are \n\t                        * between -0.5
      pi and 0.5 pi\n\t                        */\n\tREAL8 cellSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/rattrblk.c:12,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/rattrblk.c:16,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/rattrblk.c:17,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/rattrblk.c:18,1
    - Dst: MAP*::read
      Src: /src/gdal/frmts/pcraster/libcsf/rattrblk.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - m
    - pos
    - b
    argTypes:
    - MAP*
    - CSF_FADDR32
    - ATTR_CNTRL_BLOCK*
    constantsTouched: []
    func_position:
      end: 21
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 21
    functionName: CsfReadAttrBlock
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rattrblk.c
    functionUses: 2
    functionsReached:
    - csf_fseek
    - MAP*::read
    linkageType: ''
    returnType: void
    signature: "void CsfReadAttrBlock(\n\tMAP *m,              /* map handle */\n\tCSF_FADDR32
      pos,           /* file position of block to be read */\n\tATTR_CNTRL_BLOCK *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/gety0.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: RgetYUL
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gety0.c
    functionUses: 1
    functionsReached:
    - CHECKHANDLE
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RgetYUL(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:19,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:20,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:22,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:26,1
    - Dst: RgetNrCols
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:27,1
    - Dst: Rmalloc
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:29,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:32,1
    - Dst: SetMemMV
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:37,1
    - Dst: RgetNrRows
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:39,1
    - Dst: RputRow
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:41,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:43,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:46,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:48,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:49,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/putallmv.c:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 56
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 56
    functionName: RputAllMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putallmv.c
    functionUses: 0
    functionsReached:
    - WRITE_ENABLE
    - RgetNrCols
    - CsfSetVarTypeMV
    - RputRow
    - SetMemMV
    - Rmalloc
    - RgetCellRepr
    - CHECKHANDLE_GOTO
    - RgetNrRows
    - M_ERROR
    - CSF_FREE
    linkageType: ''
    returnType: int
    signature: "int RputAllMV(\n\tMAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/rdup2.c:26,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/rdup2.c:31,1
    - Dst: Rcreate
      Src: /src/gdal/frmts/pcraster/libcsf/rdup2.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - toFile
    - from
    - cellRepr
    - dataType
    argTypes:
    - char*
    - MAP*
    - CSF_CR
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 48
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 48
    functionName: Rdup
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rdup2.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - CHECKHANDLE_GOTO
    - Rcreate
    linkageType: ''
    returnType: MAP
    signature: "MAP *Rdup(\n\tconst char *toFile, /* file name of map to be created
      */\n\tconst MAP *from,    /* map to clone from */\n\tCSF_CR cellRepr,     /*
      cell representation of new map  */\n\tCSF_VS dataType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/gdal/frmts/pcraster/libcsf/setangle.c:40,1
    - Dst: sin
      Src: /src/gdal/frmts/pcraster/libcsf/setangle.c:41,1
    - Dst: MgetProjection
      Src: /src/gdal/frmts/pcraster/libcsf/setangle.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: CsfFinishMapInit
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/setangle.c
    functionUses: 2
    functionsReached:
    - MgetProjection
    - sin
    - cos
    linkageType: ''
    returnType: void
    signature: "void CsfFinishMapInit(\n\tMAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - vs
    argTypes:
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: RdefaultCellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/vsdef.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CSF_CR
    signature: "CSF_CR RdefaultCellRepr(\n\tCSF_VS     vs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:26,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:27,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:27,1
    - Dst: MAP*::file2app
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:29,1
    - Dst: SetMV
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:32,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:34,1
    - Dst: IsMV
      Src: /src/gdal/frmts/pcraster/libcsf/gminval.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - map
    - minVal
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: RgetMinVal
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gminval.c
    functionUses: 1
    functionsReached:
    - MAP*::file2app
    - IsMV
    - RgetCellRepr
    - SetMV
    - CHECKHANDLE
    - CsfGetVarType
    linkageType: ''
    returnType: int
    signature: "int RgetMinVal(\n\tconst MAP *map, /* map handle */\n\tvoid *minVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CsfIsValidMap
      Src: /src/gdal/frmts/pcraster/libcsf/attravai.c:20,1
    - Dst: CsfGetAttrBlock
      Src: /src/gdal/frmts/pcraster/libcsf/attravai.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - id
    argTypes:
    - MAP*
    - CSF_ATTR_ID
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: MattributeAvail
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/attravai.c
    functionUses: 1
    functionsReached:
    - CsfGetAttrBlock
    - CsfIsValidMap
    linkageType: ''
    returnType: int
    signature: "int MattributeAvail(\n\tMAP *m,    /* map handle */\n\tCSF_ATTR_ID
      id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/csfsup.c:16,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/csfsup.c:23,1
    - Dst: CSFSIZEOF
      Src: /src/gdal/frmts/pcraster/libcsf/csfsup.c:23,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - nrElements
    - cellRepr
    argTypes:
    - void*
    - size_t
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: SetMemMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/csfsup.c
    functionUses: 1
    functionsReached:
    - memset
    - CSFSIZEOF
    linkageType: ''
    returnType: void
    signature: "void SetMemMV(\n\tvoid *buf,\t\t/* write-only buffer with cells */\n\tsize_t
      nrElements,      /* number of cells */\n\tCSF_CR cellRepr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/gputproj.c:23,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/gputproj.c:24,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/gputproj.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - p
    argTypes:
    - MAP*
    - CSF_PT
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: MputProjection
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gputproj.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: CSF_PT
    signature: "CSF_PT MputProjection(\n\tMAP *map,      /* map handle */\n\tCSF_PT
      p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:21,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:25,1
    - Dst: CsfSetVarTypeMV
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:26,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:30,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:33,1
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:36,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:36,1
    - Dst: CsfSwap
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:37,1
    - Dst: CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:37,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:40,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:41,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:43,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:44,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:45,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:46,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:47,1
    - Dst: fwrite
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:48,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:49,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:52,1
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:57,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:58,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:59,1
    - Dst: fwrite
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:60,1
    - Dst: fwrite
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:61,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:62,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:63,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:64,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:65,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:66,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:67,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:68,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:69,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:72,1
    - Dst: fclose
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:77,1
    - Dst: CsfUnloadMap
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:78,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:82,1
    - Dst: strlen
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:82,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:83,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:85,1
    - Dst: CSF_FREE
      Src: /src/gdal/frmts/pcraster/libcsf/mclose.c:86,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 33
    argCount: 1
    argNames:
    - m
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 90
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 90
    functionName: Mclose
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/mclose.c
    functionUses: 4
    functionsReached:
    - fwrite
    - WRITE_ENABLE
    - fclose
    - CsfSetVarTypeMV
    - CsfUnloadMap
    - CsfSwap
    - CELLSIZE
    - csf_fseek
    - strlen
    - CHECKHANDLE_GOTO
    - memset
    - M_ERROR
    - MAP*::write
    - CSF_FREE
    linkageType: ''
    returnType: int
    signature: "int Mclose(\n  MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/pcraster/libcsf/strconst.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - cr
    argTypes:
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: RstrCellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/strconst.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *RstrCellRepr(CSF_CR cr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/pcraster/libcsf/strconst.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - vs
    argTypes:
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: RstrValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/strconst.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *RstrValueScale(CSF_VS vs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSF_PT
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: MstrProjection
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/strconst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MstrProjection(CSF_PT p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/rcomp.c:25,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/rcomp.c:31,1
    - Dst: MgetProjection
      Src: /src/gdal/frmts/pcraster/libcsf/rcomp.c:36,1
    - Dst: MgetProjection
      Src: /src/gdal/frmts/pcraster/libcsf/rcomp.c:36,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - MAP*
    - MAP*
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: Rcompare
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcomp.c
    functionUses: 0
    functionsReached:
    - MgetProjection
    - M_ERROR
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: int
    signature: "int Rcompare(\n\tconst MAP *m1, /* map handle 1 */\n\tconst MAP *m2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/rcomp.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - l
    - m
    argTypes:
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    - MAP*
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: RgetLocationAttributes
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcomp.c
    functionUses: 0
    functionsReached:
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: int
    signature: "int RgetLocationAttributes(\n\tCSF_RASTER_LOCATION_ATTRIBUTES *l,
      /* fill in this struct */\n\tconst MAP *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    - CSF_RASTER_LOCATION_ATTRIBUTES*
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: RcompareLocationAttributes
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/rcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RcompareLocationAttributes(\n\tconst CSF_RASTER_LOCATION_ATTRIBUTES
      *m1, /* */\n\tconst CSF_RASTER_LOCATION_ATTRIBUTES *m2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: csf_fseek
      Src: /src/gdal/frmts/pcraster/libcsf/wattrblk.c:15,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/wattrblk.c:19,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/wattrblk.c:20,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/wattrblk.c:21,1
    - Dst: MAP*::write
      Src: /src/gdal/frmts/pcraster/libcsf/wattrblk.c:25,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - m
    - pos
    - b
    argTypes:
    - MAP*
    - CSF_FADDR32
    - ATTR_CNTRL_BLOCK*
    constantsTouched: []
    func_position:
      end: 26
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 26
    functionName: CsfWriteAttrBlock
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/wattrblk.c
    functionUses: 2
    functionsReached:
    - csf_fseek
    - MAP*::write
    linkageType: ''
    returnType: int
    signature: "int CsfWriteAttrBlock(\n\tMAP *m,          /* map handle */\n\tCSF_FADDR32
      pos,       /* file position where the block is written */\n\tATTR_CNTRL_BLOCK
      *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:25,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:26,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:26,1
    - Dst: MAP*::file2app
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:28,1
    - Dst: SetMV
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:31,1
    - Dst: CsfGetVarType
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:33,1
    - Dst: IsMV
      Src: /src/gdal/frmts/pcraster/libcsf/gmaxval.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - map
    - maxVal
    argTypes:
    - MAP*
    - void*
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: RgetMaxVal
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gmaxval.c
    functionUses: 1
    functionsReached:
    - MAP*::file2app
    - IsMV
    - RgetCellRepr
    - SetMV
    - CHECKHANDLE
    - CsfGetVarType
    linkageType: ''
    returnType: int
    signature: "int RgetMaxVal(\n\tconst MAP *map, /* map handle */\n\tvoid *maxVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SIGNED
      Src: /src/gdal/frmts/pcraster/libcsf/setvtmv.c:9,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/setvtmv.c:10,1
    - Dst: POSTCOND
      Src: /src/gdal/frmts/pcraster/libcsf/setvtmv.c:16,1
    - Dst: LOG_CELLSIZE
      Src: /src/gdal/frmts/pcraster/libcsf/setvtmv.c:16,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - var
    - cellRepr
    argTypes:
    - CSF_VAR_TYPE*
    - CSF_CR
    constantsTouched: []
    func_position:
      end: 24
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 24
    functionName: CsfSetVarTypeMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/setvtmv.c
    functionUses: 3
    functionsReached:
    - LOG_CELLSIZE
    - IS_SIGNED
    - POSTCOND
    linkageType: ''
    returnType: void
    signature: void CsfSetVarTypeMV( CSF_VAR_TYPE *var, CSF_CR cellRepr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetSomeCells
      Src: /src/gdal/frmts/pcraster/libcsf/_getcell.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - map
    - rowNr
    - colNr
    - cellValue
    argTypes:
    - MAP*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: RgetCell
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/_getcell.c
    functionUses: 0
    functionsReached:
    - RgetSomeCells
    linkageType: ''
    returnType: size_t
    signature: "size_t RgetCell(\n\tMAP *map,        /* map handle */\n\tsize_t rowNr,
      \    /* row number of cell */\n\tsize_t colNr,     /* column number of cell
      */\n\tvoid *cellValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/pvalscal.c:22,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/pvalscal.c:23,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/pvalscal.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - valueScale
    argTypes:
    - MAP*
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: RputValueScale
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pvalscal.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: CSF_VS
    signature: "CSF_VS RputValueScale(\n\tMAP *map,         /* map handle */\n\tCSF_VS
      valueScale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRECOND
      Src: /src/gdal/frmts/pcraster/libcsf/strpad.c:29,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/strpad.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - reqSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: CsfStringPad
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/strpad.c
    functionUses: 1
    functionsReached:
    - memset
    - PRECOND
    linkageType: ''
    returnType: char
    signature: char *CsfStringPad(char *s, size_t reqSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgetValueScale
      Src: /src/gdal/frmts/pcraster/libcsf/vsis.c:64,1
    - Dst: RgetCellRepr
      Src: /src/gdal/frmts/pcraster/libcsf/vsis.c:76,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/vsis.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - m
    - vs
    argTypes:
    - MAP*
    - CSF_VS
    constantsTouched: []
    func_position:
      end: 91
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 91
    functionName: RvalueScaleIs
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/vsis.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - RgetCellRepr
    - RgetValueScale
    linkageType: ''
    returnType: int
    signature: "int RvalueScaleIs(\n\tconst MAP *m, /* a version 1 map handle */\n\tCSF_VS
      \    vs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: RgetCellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gcellrep.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: CSF_CR
    signature: "CSF_CR RgetCellRepr(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: RgetUseCellRepr
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gcellrep.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CSF_CR
    signature: "CSF_CR RgetUseCellRepr(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RputSomeCells
      Src: /src/gdal/frmts/pcraster/libcsf/_rputrow.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - rowNr
    - buf
    argTypes:
    - MAP*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: RputRow
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/_rputrow.c
    functionUses: 3
    functionsReached:
    - RputSomeCells
    linkageType: ''
    returnType: size_t
    signature: 'size_t RputRow(

      MAP *map,         /* map handle */

      size_t rowNr,      /* Row number of row */

      void *buf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/putx0.c:17,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/putx0.c:18,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/putx0.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - xUL
    argTypes:
    - MAP*
    - REAL8
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: RputXUL
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/putx0.c
    functionUses: 1
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RputXUL(\n\tMAP *map, /* map handle */\n\tREAL8 xUL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/puty0.c:18,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/puty0.c:19,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/puty0.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - yUL
    argTypes:
    - MAP*
    - REAL8
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: RputYUL
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/puty0.c
    functionUses: 1
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RputYUL(\n\tMAP *map, /* map handle */\n\tREAL8 yUL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached:
    - pcr::isMV
    linkageType: ''
    returnType: bool
    signature: bool isMV(T* v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - PCR_UINT8
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isMV(const PCR_UINT8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - PCR_INT8
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isMV(const PCR_INT8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - REAL4
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached:
    - IS_MV_REAL4
    linkageType: ''
    returnType: bool
    signature: bool isMV(const REAL4& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - REAL8
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached:
    - IS_MV_REAL8
    linkageType: ''
    returnType: bool
    signature: bool isMV(const REAL8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: pcr::isMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 7
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool isMV(std::string const& string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached:
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void setMV(T *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - PCR_UINT8
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setMV(PCR_UINT8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - PCR_INT8
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setMV(PCR_INT8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_MV_REAL4
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - REAL4
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached:
    - SET_MV_REAL4
    linkageType: ''
    returnType: void
    signature: void setMV(REAL4& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_MV_REAL8
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:165,1
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - REAL8
    constantsTouched: []
    func_position:
      end: 175
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 175
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached:
    - SET_MV_REAL8
    - memset
    linkageType: ''
    returnType: void
    signature: void setMV(REAL8& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setMV(std::string& string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 4
    functionsReached:
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void setMV(T *v, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: pcr::detail::setMVMemSet
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void setMVMemSet(T *v, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - INT1*
    - size_t
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: pcr::setMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void setMV(INT1 *v, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nonStdMV
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: pcr::AlterToStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AlterToStdMV(T nonStdMV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:237,1
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: operator()(T& v)
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void operator()(T& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::setMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nonStdMV
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: pcr::ToStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - pcr::setMV
    linkageType: ''
    returnType: void
    signature: void ToStdMV(T nonStdMV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: operator()(T const& v)
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    linkageType: ''
    returnType: T
    signature: T operator()(T const& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - otherMV
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: pcr::AlterFromStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AlterFromStdMV(T otherMV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: operator()(T& v)
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    linkageType: ''
    returnType: void
    signature: void operator()(T& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - otherMV
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: pcr::FromStdMV
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FromStdMV(T otherMV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcr::isMV
      Src: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: operator()(const T& v)
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/pcrtypes.h
    functionUses: 0
    functionsReached:
    - pcr::isMV
    linkageType: ''
    returnType: T
    signature: T operator()(const T& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/angle.c:24,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/angle.c:25,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/angle.c:27,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/angle.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - map
    - angle
    argTypes:
    - MAP*
    - REAL8
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: RputAngle
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/angle.c
    functionUses: 0
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RputAngle(\n\tMAP *map,    /* map handle */\n\tREAL8 angle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: RgetAngle
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/angle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RgetAngle(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/getx0.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: RgetXUL
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/getx0.c
    functionUses: 1
    functionsReached:
    - CHECKHANDLE
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RgetXUL(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:36,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: RgetCellSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/cellsize.c
    functionUses: 1
    functionsReached:
    - M_ERROR
    - CHECKHANDLE
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RgetCellSize(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECKHANDLE_GOTO
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:59,1
    - Dst: WRITE_ENABLE
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:60,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:62,1
    - Dst: M_ERROR
      Src: /src/gdal/frmts/pcraster/libcsf/cellsize.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - map
    - cellSize
    argTypes:
    - MAP*
    - REAL8
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: RputCellSize
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/cellsize.c
    functionUses: 1
    functionsReached:
    - M_ERROR
    - WRITE_ENABLE
    - CHECKHANDLE_GOTO
    linkageType: ''
    returnType: REAL8
    signature: "REAL8 RputCellSize(\n\tMAP *map, /* map handle */\n\tREAL8 cellSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - MAP*
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: MgetProjection
    functionSourceFile: /src/gdal/frmts/pcraster/libcsf/gproj.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CSF_PT
    signature: "CSF_PT MgetProjection(\n\tconst MAP *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:46,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:51,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pszCalibName
    - pszFilename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: FormatCalibration
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: "CPLString FormatCalibration(const char *pszCalibName,\n                                   const
      char *pszFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:70,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: IsValidXMLFile
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLXMLTreeCloser::get
    linkageType: ''
    returnType: bool
    signature: bool IsValidXMLFile(const char *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:122,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - papszList
    - tableSize
    - stepSize
    - numberOfValues
    - pixelFirstLutValue
    argTypes:
    - CSLConstList
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 194
    functionName: InterpolateValues
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    linkageType: ''
    returnType: double
    signature: "double *InterpolateValues(CSLConstList papszList, int tableSize,\n
      \                                int stepSize, int numberOfValues,\n                                 int
      pixelFirstLutValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:214,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:215,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:218,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:219,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:225,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:225,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:227,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:229,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 15
    argCount: 3
    argNames:
    - dataType
    - poBandFile
    - isNITF
    argTypes:
    - GDALDataType
    - GDALDataset*
    - bool
    constantsTouched: []
    func_position:
      end: 252
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 252
    functionName: checkBandFileMappingRCM
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterBand
    - GDALDataset*::GetRasterCount
    - GDALRasterBand*::GetRasterDataType
    - GDALDataTypeIsComplex
    linkageType: ''
    returnType: BandMappingRCM
    signature: "BandMappingRCM checkBandFileMappingRCM(GDALDataType dataType,\n                                              GDALDataset
      *poBandFile,\n                                              bool isNITF)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:274,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:278,1
    - Dst: GetBlockSize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:281,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:283,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 8
    argNames:
    - poDSIn
    - nBandIn
    - eDataTypeIn
    - pszPole
    - poBandFileIn
    - bTwoBandComplex
    - isOneFilePerPolIn
    - isNITFIn
    argTypes:
    - RCMDataset*
    - int
    - GDALDataType
    - char*
    - GDALDataset*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: RCMRasterBand::RCMRasterBand
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - SetMetadataItem
    - GetBlockSize
    - GetRasterBand
    - strlen
    linkageType: ''
    returnType: void
    signature: "void RCMRasterBand::RCMRasterBand(RCMDataset *poDSIn, int nBandIn,\n
      \                            GDALDataType eDataTypeIn, const char *pszPole,\n
      \                            GDALDataset *poBandFileIn, bool bTwoBandComplex,\n
      \                            bool isOneFilePerPolIn, bool isNITFIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:297,1
    - Dst: reinterpret_cast<GDALRasterBandH>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: RCMRasterBand::~RCMRasterBand()
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALRasterBandH>
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void RCMRasterBand::~RCMRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetActualBlockSize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:309,1
    - Dst: memset
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:314,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:315,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:315,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:321,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:335,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:339,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:344,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:347,1
    - Dst: IsComplexData
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:351,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:359,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:363,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:370,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:372,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:375,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 383
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 383
    functionName: RCMRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - GetRasterBand
    - IsComplexData
    - GetActualBlockSize
    - CPLAssert
    - RasterIO
    - memset
    - static_cast<GSpacing>
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr RCMRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:401,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:401,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:408,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:408,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:408,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:411,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:411,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:411,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:413,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:413,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:413,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:416,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:416,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:416,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:420,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:428,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:428,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:428,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:435,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:447,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:449,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:454,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:454,1
    - Dst: RCMCalibRasterBand::m_poBandDataset::GetRasterXSize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:456,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:468,1
    - Dst: InterpolateValues
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:475,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:475,1
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:490,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:491,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:494,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:494,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:497,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:502,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:502,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:507,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:507,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:512,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:512,1
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:515,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:516,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:516,1
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:518,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:519,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:519,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 521
    functionName: RCMCalibRasterBand::ReadLUT
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLError
    - atoi
    - CSLTokenizeString2
    - CPLGetXMLValue
    - strcat
    - InterpolateValues
    - snprintf
    - abs
    - CPLXMLTreeCloser::get
    - CPLString
    - GetRasterCount
    - SetMetadataItem
    - CPLFree
    - RCMCalibRasterBand::m_poBandDataset::GetRasterXSize
    - CPLStringList::List
    linkageType: ''
    returnType: void
    signature: void RCMCalibRasterBand::ReadLUT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:546,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:546,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:548,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:555,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:555,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:563,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:566,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:568,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:569,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:571,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:573,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:581,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:581,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:583,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:583,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:585,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:585,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:590,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:597,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:598,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:600,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:602,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:604,1
    - Dst: InterpolateValues
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:608,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:615,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 625
    functionName: RCMCalibRasterBand::ReadNoiseLevels
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLGetXMLValue
    - CSLDestroy
    - EQUAL
    - InterpolateValues
    - snprintf
    - abs
    - CPLXMLTreeCloser::get
    - GetRasterCount
    linkageType: ''
    returnType: void
    signature: void RCMCalibRasterBand::ReadNoiseLevels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:636,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:637,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:641,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:643,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:651,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:652,1
    - Dst: RCMCalibRasterBand::ReadLUT
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:654,1
    - Dst: RCMCalibRasterBand::ReadNoiseLevels
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 8
    argNames:
    - poDataset
    - pszPolarization
    - eType
    - poBandDataset
    - eCalib
    - pszLUT
    - pszNoiseLevels
    - eOriginalType
    argTypes:
    - RCMDataset*
    - char*
    - GDALDataType
    - GDALDataset*
    - eCalibration
    - char*
    - char*
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 656
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 656
    functionName: RCMCalibRasterBand::RCMCalibRasterBand
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIStrdup
    - GDALDataset*::GetRasterBand
    - GDALRasterBand*::GetBlockSize
    - RCMCalibRasterBand::ReadLUT
    - strlen
    - SetMetadataItem
    - RCMCalibRasterBand::ReadNoiseLevels
    linkageType: ''
    returnType: void
    signature: "void RCMCalibRasterBand::RCMCalibRasterBand(\n    RCMDataset *poDataset,
      const char *pszPolarization, GDALDataType eType,\n    GDALDataset *poBandDataset,
      eCalibration eCalib, const char *pszLUT,\n    const char *pszNoiseLevels, GDALDataType
      eOriginalType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:664,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:665,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:666,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:667,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: RCMCalibRasterBand::~RCMCalibRasterBand()
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void RCMCalibRasterBand::~RCMCalibRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetActualBlockSize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:681,1
    - Dst: memset
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:686,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:687,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:687,1
    - Dst: static_cast<GInt16 *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:694,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:695,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:696,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:700,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:702,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:720,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:739,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:742,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:763,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:767,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:789,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:793,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:813,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:817,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:823,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:844,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:846,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:855,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:876,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:878,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:887,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:887,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:888,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:891,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:908,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:910,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:914,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:920,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:920,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:923,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:939,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:941,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:945,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:949,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 953
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 953
    functionName: RCMCalibRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<GInt16 *>
    - static_cast<float>
    - VSI_MALLOC2_VERBOSE
    - GDALSwapWords
    - static_cast<GUInt16 *>
    - GetActualBlockSize
    - CPLAssert
    - RasterIO
    - reinterpret_cast<float *>
    - static_cast<GByte *>
    - GetRasterCount
    - memset
    - static_cast<GSpacing>
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr RCMCalibRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                     void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 973
    functionName: RCMDataset::RCMDataset
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RCMDataset::RCMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:982,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:986,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:987,1
    - Dst: RCMDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:990,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:993,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:996,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1000
    functionName: RCMDataset::~RCMDataset()
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - RCMDataset::CloseDependentDatasets
    - OGRDGNV8DataSource::FlushCache
    - CSLDestroy
    - GDALDeinitGCPs
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void RCMDataset::~RCMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1020
    functionName: RCMDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RCMDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLInsertStrings
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1034
    functionName: RCMDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLInsertStrings
    linkageType: ''
    returnType: char
    signature: char **RCMDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RCMDatasetIdentify
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1046,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1057,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1058,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1062,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1064,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1068,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1072,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1073,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1077,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1083,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1099,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1100,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1109,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1112,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1116,1
    - Dst: GetMetadataProduct
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1117,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1135,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1140,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1143,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1148,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1149,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1152,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1162,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1168,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1171,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1178,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1178,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1181,1
    - Dst: std::make_unique<RCMDataset>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1190,1
    - Dst: std::move
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1192,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1197,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1197,1
    - Dst: atoi
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1199,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1200,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1201,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1214,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1218,1
    - Dst: auto::psProduct::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1218,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1219,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1221,1
    - Dst: auto::psProduct::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1222,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1224,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1227,1
    - Dst: auto::psProduct::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1227,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1229,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1231,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1234,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1237,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1239,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1241,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1243,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1245,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1248,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1250,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1253,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1255,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1257,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1265,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1268,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1269,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1269,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1285,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1286,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1287,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1298,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1303,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1309,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1314,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1320,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1325,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1339,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1356,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1365,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1375,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1388,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1395,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1401,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1406,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1418,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1422,1
    - Dst: auto::psProduct::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1422,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1425,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1432,1
    - Dst: auto::psProduct::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1433,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1436,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1445,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1447,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1453,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1457,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1460,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1463,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1464,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1465,1
    - Dst: std::istringstream
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1476,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1476,1
    - Dst: c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1476,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1486,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1502,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1528,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1535,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1535,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1536,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1550,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1551,1
    - Dst: IsValidXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1555,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1572,1
    - Dst: abs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1572,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1580,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1580,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1586,1
    - Dst: CPLString::length
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1588,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1590,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1594,1
    - Dst: InterpolateValues
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1605,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1608,1
    - Dst: CPLString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1617,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1623,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1634,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1638,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1650,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1662,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1663,1
    - Dst: IsValidXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1666,1
    - Dst: std::move
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1668,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1677,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1689,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1696,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1708,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1719,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1720,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1724,1
    - Dst: IsValidXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1725,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1728,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1731,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1731,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1732,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1733,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1739,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1749,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1750,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1751,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1752,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1753,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1756,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1758,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1762,1
    - Dst: IsValidXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1763,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1766,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1769,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1769,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1770,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1771,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1777,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1788,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1789,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1790,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1791,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1792,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1795,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1797,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1801,1
    - Dst: IsValidXMLFile
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1802,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1805,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1808,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1808,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1809,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1810,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1815,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1825,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1826,1
    - Dst: strcat
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1827,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1828,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1829,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1832,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1834,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1857,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1858,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1860,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1863,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1883,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1883,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1887,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1890,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1892,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1897,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1903,1
    - Dst: checkBandFileMappingRCM
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1907,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1907,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1910,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1911,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1928,1
    - Dst: auto::release
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1928,1
    - Dst: RCMRasterBand::RCMRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1927,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1931,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1931,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1953,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1954,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1964,1
    - Dst: auto::release
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1964,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1965,1
    - Dst: RCMCalibRasterBand::RCMCalibRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1963,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1966,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1966,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1972,1
    - Dst: auto::release
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1972,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1973,1
    - Dst: RCMCalibRasterBand::RCMCalibRasterBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1971,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1974,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1974,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1978,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1983,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1983,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1984,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1987,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:1992,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2000,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2003,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2010,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2011,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2013,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2014,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2017,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2018,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2020,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2021,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2023,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2024,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2026,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2027,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2029,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2030,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2032,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2035,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2036,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2039,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2040,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2043,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2046,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2048,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2050,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2052,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2054,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2056,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2058,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2060,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2066,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2072,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2075,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2076,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2079,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2080,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2082,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2083,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2085,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2086,1
    - Dst: fabs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2143,1
    - Dst: fabs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2144,1
    - Dst: fabs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2146,1
    - Dst: fabs
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2146,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2149,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2164,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2169,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2173,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2183,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2186,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2187,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2189,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2193,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2194,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2196,1
    - Dst: SetWellKnownGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2197,1
    - Dst: OGRSpatialReference::SetGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2203,1
    - Dst: SetGeogCS
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2204,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2215,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2218,1
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2230,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2230,1
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2232,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2232,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2235,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2238,1
    - Dst: SetUTM
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2240,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2268,1
    - Dst: SetACEA
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2271,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2275,1
    - Dst: SetLCC
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2278,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2282,1
    - Dst: SetStatePlane
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2292,1
    - Dst: std::move
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2299,1
    - Dst: CPLError
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2303,1
    - Dst: std::move
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2309,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2315,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2326,1
    - Dst: reinterpret_cast<GDAL_GCP *>
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2330,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2331,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2340,1
    - Dst: snprintf
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2346,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2347,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2348,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2350,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2350,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2352,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2352,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2353,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2354,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2355,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2356,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2357,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2358,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2363,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2365,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2367,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2372,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2413,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2418,1
    - Dst: auto::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2421,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2422,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2437,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2437,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2443,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2443,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2449,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2449,1
    - Dst: FormatCalibration
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2455,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2455,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2464,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2468,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2473,1
    - Dst: auto::SetPhysicalFilename
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2475,1
    - Dst: auto::SetSubdatasetName
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2476,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2478,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2484,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2484,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2486,1
    - Dst: auto::get
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2486,1
    - Dst: auto::release
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2488,1
    CyclomaticComplexity: 159
    EdgeCount: 159
    ICount: 515
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2489
      start: 1040
    functionDepth: 6
    functionLinenumber: 1040
    functionLinenumberEnd: 2489
    functionName: RCMDataset::Open
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::SetBand
    - SetLCC
    - CPL_ARRAYSIZE
    - atoi
    - OGRSpatialReference::SetGeogCS
    - CSLAddString
    - auto::get
    - std::make_unique<RCMDataset>
    - SetWellKnownGeogCS
    - CPLString
    - CPLXMLTreeCloser::get
    - reinterpret_cast<GDAL_GCP *>
    - CPLGetXMLValue
    - CPLError
    - std::string::c_str
    - CPLStringList::CPLStringList
    - RCMDatasetIdentify
    - auto::psProduct::get
    - auto::GetRasterBand
    - VSIStrdup
    - CPLStrdup
    - VSI_ISDIR
    - RCMRasterBand::RCMRasterBand
    - CPLString::c_str
    - OGRAPISpyOpen
    - SetStatePlane
    - std::move
    - strlen
    - SetUTM
    - CPLFormCIFilenameSafe
    - CSLTokenizeString2
    - CPLString::length
    - CPLAtof
    - STARTS_WITH_CI
    - c_str
    - SetACEA
    - CPLStrtod
    - auto::SetPhysicalFilename
    - CPLStringList::AddString
    - RCMCalibRasterBand::RCMCalibRasterBand
    - strcat
    - auto::TryLoadXML
    - InterpolateValues
    - abs
    - snprintf
    - CPL_IGNORE_RET_VAL
    - auto::SetMetadataItem
    - GetMetadataProduct
    - CPLCalloc
    - OGRSpatialReference::SetWellKnownGeogCS
    - CPLFormFilenameSafe
    - CPLFree
    - auto::SetDescription
    - CPLString::append
    - auto::GDALDataset::SetMetadata
    - std::unique_ptr<GDALDataset>
    - OGRSpatialReference::OGRSpatialReference
    - CPLGetPathSafe
    - FormatCalibration
    - VSIStatL
    - auto::release
    - SetGeogCS
    - CPLGetXMLNode
    - ReportUpdateNotSupportedByDriver
    - CSLDestroy
    - GDALCheckDatasetDimensions
    - EQUAL
    - std::istringstream
    - CPLString::compare
    - auto::GetRasterCount
    - auto::SetSubdatasetName
    - IsValidXMLFile
    - fabs
    - checkBandFileMappingRCM
    - CSLSetNameValue
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *RCMDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2499
    functionName: RCMDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RCMDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2509
    functionName: RCMDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *RCMDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2519
    functionName: RCMDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *RCMDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2525
    functionDepth: 1
    functionLinenumber: 2525
    functionLinenumberEnd: 2529
    functionName: RCMDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *RCMDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 2546
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2546
    functionName: RCMDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr RCMDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2554,1
    - Dst: GDALDataset::GetMetadataDomainList
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2552
    functionDepth: 1
    functionLinenumber: 2552
    functionLinenumberEnd: 2556
    functionName: RCMDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    - GDALDataset::GetMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **RCMDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2565,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2562
    functionDepth: 0
    functionLinenumber: 2562
    functionLinenumberEnd: 2570
    functionName: RCMDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::GetMetadata
    - STARTS_WITH_CI
    linkageType: ''
    returnType: char
    signature: char **RCMDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2579,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2584,1
    - Dst: RCMDriverSetCommonMetadata
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2585,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/rcm/rcmdataset.cpp:2589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2576
    functionDepth: 1
    functionLinenumber: 2576
    functionLinenumberEnd: 2590
    functionName: GDALRegister_RCM
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.cpp
    functionUses: 1
    functionsReached:
    - RCMDriverSetCommonMetadata
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_RCM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/frmts/rcm/rcmdataset.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: RCMDataset::GetProduct
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GetProduct()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: RCMDataset::IsComplexData
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsComplexData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: RCMDataset::GetRealBitsComplexData
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetRealBitsComplexData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: RCMDataset::GetImaginaryBitsComplexData
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetImaginaryBitsComplexData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: RCMDataset::GetMagnitudeBits
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMagnitudeBits()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: RCMDataset::GetIncidenceAngle
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double *GetIncidenceAngle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: RCMDataset::GetIncidenceAngleSize
    functionSourceFile: /src/gdal/frmts/rcm/rcmdataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetIncidenceAngleSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:21,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:22,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:31,1
    - Dst: c_str
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:31,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:36,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:39,1
    - Dst: strstr
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:47,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:50,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:54,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:60,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:64,1
    - Dst: IsRCM
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:66,1
    - Dst: CPLFormCIFilenameSafe
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:72,1
    - Dst: GetMetadataProduct
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:73,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:76,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:76,1
    - Dst: IsRCM
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:78,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:85,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:86,1
    - Dst: strlen
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:86,1
    - Dst: strstr
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:96,1
    - Dst: strstr
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:96,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 97
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 97
    functionName: RCMDatasetIdentify
    functionSourceFile: /src/gdal/frmts/rcm/rcmdrivercore.cpp
    functionUses: 1
    functionsReached:
    - IsRCM
    - c_str
    - STARTS_WITH_CI
    - VSIStatL
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - EQUAL
    - strlen
    - strstr
    - CPLFormCIFilenameSafe
    - GetMetadataProduct
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: int RCMDatasetIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:106,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:107,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:112,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: RCMDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/rcm/rcmdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void RCMDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:123,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:128,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:130,1
    - Dst: RCMDriverSetCommonMetadata
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:133,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/rcm/rcmdrivercore.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: DeclareDeferredRCMPlugin
    functionSourceFile: /src/gdal/frmts/rcm/rcmdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - RCMDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredRCMPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdrivercore.h:41,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdrivercore.h:42,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/rcm/rcmdrivercore.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: GetMetadataProduct
    functionSourceFile: /src/gdal/frmts/rcm/rcmdrivercore.h
    functionUses: 2
    functionsReached:
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetMetadataProduct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:100,1
    - Dst: size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: FITSDataset::GetLayerCount
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: FITSLayer::GetLayerDefn
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: FITSLayer::SetCreationOptions
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCreationOptions(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:231,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:234,1
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:234,1
    - Dst: Reference
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:235,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:236,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:237,1
    - Dst: GetName
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:237,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:239,1
    - Dst: LoadMetadata
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:241,1
    - Dst: fits_get_num_rowsll
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:244,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:247,1
    - Dst: fits_get_num_cols
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:251,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:254,1
    - Dst: resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:261,1
    - Dst: fits_read_btblhdrll
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:266,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:267,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:271,1
    - Dst: resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:276,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:276,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:276,1
    - Dst: fits_get_bcolparmsll
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:292,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:299,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:299,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:314,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:315,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:321,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:321,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:324,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:330,1
    - Dst: fits_get_coltypell
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:392,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:398,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:403,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:511,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:517,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:533,1
    - Dst: OGRFieldDefn::SetSubType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:534,1
    - Dst: OGRFieldDefn::SetWidth
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:536,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:536,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:537,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:541,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:544,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 208
    argCount: 3
    argNames:
    - poDS
    - hduNum
    - pszExtName
    argTypes:
    - FITSDataset*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 546
    functionName: FITSLayer::FITSLayer
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - LoadMetadata
    - fits_get_num_cols
    - CPLDebug
    - Reference
    - CPLError
    - fits_get_bcolparmsll
    - fits_get_coltypell
    - SetGeomType
    - strlen
    - AddFieldDefn
    - resize
    - fits_get_num_rowsll
    - GetName
    - std::vector::data
    - emplace_back
    - c_str
    - static_cast<int>
    - OGRFeatureDefn::OGRFeatureDefn
    - CPLSPrintf
    - OGRFieldDefn::SetSubType
    - SetDescription
    - fits_read_btblhdrll
    - OGRFieldDefn::SetWidth
    - fits_read_key
    - FITSLayer::SetActiveHDU
    linkageType: ''
    returnType: void
    signature: void FITSLayer::FITSLayer(FITSDataset *poDS, int hduNum, const char
      *pszExtName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::RunDeferredFieldCreation
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:554,1
    - Dst: size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:556,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:558,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:561,1
    - Dst: CPLParseNameValue
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:562,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:564,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:564,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:566,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:570,1
    - Dst: Release
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: FITSLayer::~FITSLayer()
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - STARTS_WITH_CI
    - CPLParseNameValue
    - CPL_IGNORE_RET_VAL
    - strlen
    - FITSLayer::RunDeferredFieldCreation
    - CPLError
    - GetFieldIndex
    - CPLFree
    - Release
    linkageType: ''
    returnType: void
    signature: void FITSLayer::~FITSLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:584,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 590
    functionName: FITSLayer::SetActiveHDU
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - fits_movabs_hdu
    linkageType: ''
    returnType: void
    signature: void FITSLayer::SetActiveHDU()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: FITSLayer::GetFeatureCount
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer::GetFeatureCount
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig FITSLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: FITSLayer::ResetReading
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FITSLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_read_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:623,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:624,1
    - Dst: static_cast<T_FITS>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:626,1
    - Dst: OGRFeature*::SetFieldNull
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:628,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:633,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:636,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:636,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:639,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:639,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:643,1
    - Dst: static_cast<T_GDAL>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:643,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:648,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:650,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:651,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - hFITS
    - colDesc
    - iField
    - irow
    - poFeature
    - nRepeat
    argTypes:
    - fitsfile*
    - ColDesc
    - int
    - LONGLONG
    - OGRFeature*
    - int
    constantsTouched: []
    func_position:
      end: 653
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 653
    functionName: Read
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 48
    functionsReached:
    - static_cast<double>
    - static_cast<T_FITS>
    - std::vector::push_back
    - OGRFeature*::SetFieldNull
    - fits_read_col
    - OGRFeature*::SetField
    - static_cast<T_GDAL>
    - std::vector::reserve
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void Read(fitsfile *hFITS, const ColDesc &colDesc, int iField,\n                     LONGLONG
      irow, OGRFeature *poFeature, int nRepeat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::GetFeature
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: FITSLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSLayer::GetFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FITSLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONGLONG>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:674,1
    - Dst: FITSLayer::RunDeferredFieldCreation
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:678,1
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:680,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:682,1
    - Dst: fits_read_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:692,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:693,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:696,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:701,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:704,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:706,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:706,1
    - Dst: fits_read_col_bit
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:712,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:714,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:720,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:725,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:733,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:738,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:746,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:751,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:757,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:764,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:770,1
    - Dst: fits_read_col_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:772,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:776,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:776,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:778,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:778,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:785,1
    - Dst: fits_read_col_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:787,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:790,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:790,1
    - Dst: OGRPMTilesDataset::Read
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:795,1
    - Dst: fits_read_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:801,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:802,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:804,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:806,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:806,1
    - Dst: fits_read_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:811,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:812,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:813,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:815,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:816,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:818,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:820,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:820,1
    - Dst: fits_read_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:825,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:826,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:827,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:830,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:831,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:834,1
    - Dst: OGRFeature*::SetField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:836,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:836,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:840,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:844,1
    - Dst: fits_read_descriptll
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:856,1
    - Dst: ReadField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:858,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:859,1
    - Dst: ReadField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:863,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:866,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 105
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 868
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 868
    functionName: FITSLayer::GetFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - std::vector::push_back
    - CPLError
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - fits_read_col_str
    - std::vector::reserve
    - fits_read_descriptll
    - std::vector::data
    - static_cast<int>
    - static_cast<LONGLONG>
    - CPLStringList::AddString
    - ReadField
    - CPLSPrintf
    - std::string::resize
    - FITSLayer::RunDeferredFieldCreation
    - OGRFeature::OGRFeature
    - fits_read_col_bit
    - OGRPMTilesDataset::Read
    - fits_read_col
    - FITSLayer::SetActiveHDU
    - OGRFeature*::SetField
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *FITSLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:876,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:879,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:882,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:882,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:883,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:883,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 889
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 889
    functionName: FITSLayer::TestCapability
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GetAccess
    linkageType: ''
    returnType: int
    signature: int FITSLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:897,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:900,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:910,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:921,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:926,1
    - Dst: fits_insert_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:927,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:931,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:935,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:936,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:966,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:970,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:972,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:974,1
    - Dst: CPLString::Trim
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:982,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:990,1
    - Dst: CPLString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:993,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1001,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1001,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1002,1
    - Dst: fits_write_key_longwarn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1007,1
    - Dst: fits_update_key_longstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1013,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1017,1
    - Dst: GetFieldDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1022,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1025,1
    - Dst: auto::GetSubType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1026,1
    - Dst: strtol
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1034,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1034,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1038,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1039,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1039,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1041,1
    - Dst: FlushCreationPendingBitField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1044,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1047,1
    - Dst: std::move
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1049,1
    - Dst: FlushCreationPendingBitField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1062,1
    - Dst: empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1066,1
    - Dst: back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1066,1
    - Dst: atoi
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1085,1
    - Dst: OGRFeature*::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1091,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1096,1
    - Dst: OGRFeature*::GetFieldAsIntegerList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1097,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1101,1
    - Dst: OGRFeature*::GetFieldAsInteger64List
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1102,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1106,1
    - Dst: OGRFeature*::GetFieldAsDoubleList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1107,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1111,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1113,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1118,1
    - Dst: atoi
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1121,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1121,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1122,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1133,1
    - Dst: CPLString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1135,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1135,1
    - Dst: auto::GetWidth
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1187,1
    - Dst: auto::GetWidth
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1194,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1195,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1202,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1208,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1212,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1222,1
    - Dst: fits_insert_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1224,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1228,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1234,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1237,1
    - Dst: fits_update_key_longstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1238,1
    - Dst: CPLString::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1238,1
    - Dst: auto::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1239,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1242,1
    - Dst: clear
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1245,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1246,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1246,1
    - Dst: size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1246,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1247,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 176
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1248
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 1248
    functionName: FITSLayer::RunDeferredFieldCreation
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 2
    functionsReached:
    - OGRFeature*::GetFieldAsDoubleList
    - OGRFeature*::IsFieldSetAndNotNull
    - fits_insert_col
    - std::string::assign
    - atoi
    - std::map::end
    - clear
    - std::set::insert
    - auto::GetType
    - CPLString
    - GetFieldDefn
    - CPLError
    - STARTS_WITH
    - OGRFeature*::GetFieldAsIntegerList
    - CPLString::empty
    - auto::c_str
    - fits_update_key_longstr
    - FlushCreationPendingBitField
    - auto::GetWidth
    - fits_write_key_longwarn
    - std::move
    - strlen
    - CPLString::Trim
    - CPLString::data
    - emplace_back
    - c_str
    - static_cast<int>
    - CPLString::Printf
    - CPLString::clear
    - auto::empty
    - CPLSPrintf
    - std::set::find
    - std::map::find
    - CPLAssert
    - GetFieldCount
    - CPL_IGNORE_RET_VAL
    - OGRFeature*::GetFieldAsInteger64List
    - CPLFree
    - size
    - back
    - empty
    - auto::data
    - strtol
    - EQUAL
    - auto::GetSubType
    - FITSLayer::SetActiveHDU
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void FITSLayer::RunDeferredFieldCreation(const OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::TestCapability
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1256,1
    - Dst: GetFieldIndex
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1258,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1258,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1260,1
    - Dst: OGRFieldDefn*::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1261,1
    - Dst: OGRFieldDefn*::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1264,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1266,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1270,1
    - Dst: GetFieldCount
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1270,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - poField
    argTypes:
    - OGRFieldDefn*
    constantsTouched: []
    func_position:
      end: 1273
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1273
    functionName: FITSLayer::CreateField
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSLayer::TestCapability
    - OGRFieldDefn*::GetNameRef
    - GetFieldCount
    - OGRFieldDefn*::GetType
    - AddFieldDefn
    - CPLError
    - GetFieldIndex
    - emplace_back
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FITSLayer::CreateField(const OGRFieldDefn *poField, int /* bApproxOK
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1281,1
    - Dst: floor
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1282
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1282
    functionName: Round
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - floor
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T Round(double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1287
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1287
    functionName: Round
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Round<double>(double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    functionName: Round
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float Round<float>(double dfValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1304,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1305,1
    - Dst: min
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1315,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1318,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1321,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1321,1
    - Dst: OGRFeature*::IsFieldNull
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1333,1
    - Dst: static_cast<T_FITS>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1335,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1336,1
    - Dst: Round
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1346,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1347,1
    - Dst: static_cast<T_FITS>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1352,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1353,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1359,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1362,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1367,1
    - Dst: Round
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1367,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1370,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1371,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1377,1
    - Dst: static_cast<T_FITS>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1377,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1379,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1380,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - hFITS
    - colDesc
    - iField
    - irow
    - poFeature
    argTypes:
    - fitsfile*
    - ColDesc
    - int
    - LONGLONG
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1384
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1384
    functionName: Write
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 60
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - static_cast<GIntBig>
    - static_cast<T_FITS>
    - std::vector::push_back
    - fits_write_col
    - Round
    - auto::GetType
    - min
    - CPLAssert
    - OGRFeature*::IsFieldNull
    - CPLError
    - auto::GetNameRef
    - std::vector::reserve
    - std::vector::data
    linkageType: ''
    returnType: int
    signature: "int Write(fitsfile *hFITS, const ColDesc &colDesc, int iField,\n                     LONGLONG
      irow, const OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1397,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1398,1
    - Dst: OGRFeature*::GetFieldAsStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1400,1
    - Dst: min
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1403,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1406,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1409,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1409,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1417,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1418,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1419,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1421,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1422,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1429,1
    - Dst: OGRFeature*::GetFieldAsString
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1429,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1431,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1432,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1433,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - hFITS
    - colDesc
    - iField
    - irow
    - poFeature
    argTypes:
    - fitsfile*
    - ColDesc
    - int
    - LONGLONG
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1437
    functionName: Write
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 60
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - static_cast<GIntBig>
    - fits_write_col
    - OGRFeature*::GetFieldAsString
    - auto::GetType
    - min
    - OGRFeature*::GetFieldAsStringList
    - CPLsscanf
    - static_cast<T>
    - CPLError
    - auto::GetNameRef
    - std::vector::data
    linkageType: ''
    returnType: int
    signature: "int Write(fitsfile *hFITS, const ColDesc &colDesc, int iField,\n                     LONGLONG
      irow, const OGRFeature *poFeature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1446,1
    - Dst: OGRFeature*::GetFieldDefnRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1450,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1462,1
    - Dst: min
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1467,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1470,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1473,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1474,1
    - Dst: ToLogical
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1479,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1481,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1482,1
    - Dst: fits_write_col
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1487,1
    - Dst: fits_write_col_bit
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1494,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1501,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1509,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1520,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1528,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1539,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1549,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1558,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1566,1
    - Dst: OGRFeature*::GetFieldAsStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1568,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1573,1
    - Dst: auto::GetNameRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1576,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1577,1
    - Dst: fits_write_col_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1579,1
    - Dst: fits_write_col_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1586,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1592,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1600,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1608,1
    - Dst: OGRAmigoCloudDataSource::IsReadWrite
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1613,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1618,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1622,1
    - Dst: WriteField
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1631,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 2
    argNames:
    - poFeature
    - nRow
    argTypes:
    - OGRFeature*
    - LONGLONG
    constantsTouched: []
    func_position:
      end: 1635
      start: 1444
    functionDepth: 3
    functionLinenumber: 1444
    functionLinenumberEnd: 1635
    functionName: FITSLayer::SetOrCreateFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFieldDefnRef
    - static_cast<GIntBig>
    - ToLogical
    - OGRAmigoCloudDataSource::IsReadWrite
    - fits_write_col_str
    - fits_write_col
    - auto::GetType
    - CPLDebug
    - min
    - fits_write_col_bit
    - FITSLayer::SetActiveHDU
    - OGRFeature*::GetFieldAsStringList
    - CPLError
    - auto::GetNameRef
    - WriteField
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool FITSLayer::SetOrCreateFeature(const OGRFeature *poFeature, LONGLONG
      nRow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::TestCapability
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1643,1
    - Dst: FITSLayer::RunDeferredFieldCreation
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1646,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1649,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1654
      start: 1641
    functionDepth: 4
    functionLinenumber: 1641
    functionLinenumberEnd: 1654
    functionName: FITSLayer::ICreateFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSLayer::TestCapability
    - FITSLayer::SetActiveHDU
    - OGRFeature*::SetFID
    - FITSLayer::RunDeferredFieldCreation
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FITSLayer::ICreateFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::TestCapability
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1662,1
    - Dst: FITSLayer::RunDeferredFieldCreation
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1665,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1667,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1674
      start: 1660
    functionDepth: 4
    functionLinenumber: 1660
    functionLinenumberEnd: 1674
    functionName: FITSLayer::ISetFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSLayer::TestCapability
    - OGRFeature*::GetFID
    - FITSLayer::SetActiveHDU
    - FITSLayer::RunDeferredFieldCreation
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FITSLayer::ISetFeature(OGRFeature *poFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSLayer::TestCapability
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1682,1
    - Dst: FITSLayer::SetActiveHDU
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1688,1
    - Dst: fits_delete_rows
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1694
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1694
    functionName: FITSLayer::DeleteFeature
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSLayer::TestCapability
    - FITSLayer::SetActiveHDU
    - fits_delete_rows
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr FITSLayer::DeleteFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - FITSDataset*
    - int
    constantsTouched: []
    func_position:
      end: 1708
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1708
    functionName: FITSRasterBand::FITSRasterBand
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FITSRasterBand::FITSRasterBand(FITSDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1717
    functionName: FITSRasterBand::~FITSRasterBand()
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void FITSRasterBand::~FITSRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1734,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1735,1
    - Dst: static_cast<LONGLONG>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1740,1
    - Dst: static_cast<LONGLONG>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1741,1
    - Dst: memset
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1749,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1750,1
    - Dst: fits_read_img
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1755,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1773
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1773
    functionName: FITSRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - fits_read_img
    - GDALGetDataTypeSize
    - static_cast<LONGLONG>
    - CPLAssert
    - CPLError
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr FITSRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff, int nBlockYOff,\n
      \                                 void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONGLONG>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1794,1
    - Dst: static_cast<LONGLONG>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1795,1
    - Dst: fits_write_img
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1798,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1821
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1821
    functionName: FITSRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - fits_write_img
    - static_cast<LONGLONG>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr FITSRasterBand::IWriteBlock(CPL_UNUSED int nBlockXOff, int
      nBlockYOff,\n                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1847
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1847
    functionName: isIgnorableFITSHeader
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool isIgnorableFITSHeader(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1862
    functionName: FITSDataset::FITSDataset
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void FITSDataset::FITSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1874,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1881,1
    - Dst: fits_write_key_longwarn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1882,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1885,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1887,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1894,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1901,1
    - Dst: isIgnorableFITSHeader
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1902,1
    - Dst: fits_update_key_longstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1921,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1923,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1930,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1933,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1939,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1946,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1952,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1954,1
    - Dst: GDALGeoPackageDataset::IGetRasterBand
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1962,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1967,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1973,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1975,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1979,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1985,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1987,1
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1994,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1994,1
    - Dst: FITSDataset::WriteFITSInfo
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:1999,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2003,1
    - Dst: fits_close_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2007,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2010,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 2014
    functionName: FITSDataset::~FITSDataset()
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - fits_update_key_longstr
    - GDALGeoPackageDataset::IGetRasterBand
    - fits_close_file
    - GetDescription
    - fits_update_key
    - isIgnorableFITSHeader
    - fits_movabs_hdu
    - fits_write_key_longwarn
    - strlen
    - GDALPamDataset::GetSpatialRef
    - FITSDataset::WriteFITSInfo
    - CPLError
    - GDALPamDataset::SetSpatialRef
    - CPLFree
    - FlushCache
    - clear
    linkageType: ''
    returnType: void
    signature: void FITSDataset::~FITSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_is_compressed_image
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2025,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2027,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2031,1
    - Dst: fits_get_hduoff
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2036,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2041,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 2046
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2046
    functionName: FITSDataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - GetDescription
    - GetRasterBand
    - fits_is_compressed_image
    - fits_get_hduoff
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: bool
    signature: bool FITSDataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2062,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2065,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2067,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2073,1
    - Dst: fits_get_img_param
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2084,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2087,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2089,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2095,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2103,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2151,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2152,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2160,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2161,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2166,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2167,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2172,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2174,1
    - Dst: SetBand
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2180,1
    - Dst: FITSRasterBand::FITSRasterBand
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2180,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 3
    argNames:
    - hFITS
    - isExistingFile
    - hduNum
    argTypes:
    - fitsfile*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 2183
      start: 2052
    functionDepth: 1
    functionLinenumber: 2052
    functionLinenumberEnd: 2183
    functionName: FITSDataset::Init
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - SetBand
    - static_cast<int>
    - GetDescription
    - fits_read_key
    - fits_movabs_hdu
    - FITSRasterBand::FITSRasterBand
    - fits_get_img_param
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSDataset::Init(fitsfile *hFITS, bool isExistingFile, int
      hduNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2198,1
    - Dst: fits_get_hdrspace
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2203,1
    - Dst: fits_read_keyn
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2206,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2209,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2211,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2214,1
    - Dst: isIgnorableFITSHeader
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2220,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2228,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2231,1
    - Dst: strrchr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2234,1
    - Dst: strlen
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2234,1
    - Dst: fits_read_key_longstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2238,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2243,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2246,1
    - Dst: GDALMajorObject*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2249,1
    - Dst: free
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2250,1
    - Dst: GDALMajorObject*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - poTarget
    argTypes:
    - GDALMajorObject*
    constantsTouched: []
    func_position:
      end: 2258
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2258
    functionName: FITSDataset::LoadMetadata
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - free
    - GetDescription
    - fits_read_key_longstr
    - fits_read_keyn
    - isIgnorableFITSHeader
    - strcmp
    - GDALMajorObject*::SetMetadataItem
    - strlen
    - strrchr
    - CPLError
    - fits_get_hdrspace
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: void
    signature: void FITSDataset::LoadMetadata(GDALMajorObject *poTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2267,1
    - Dst: List
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2269,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2273
    functionName: FITSDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALPamDataset::GetMetadata
    - List
    linkageType: ''
    returnType: char
    signature: char **FITSDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSDataset::GetLayerCount
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2281,1
    - Dst: get
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2284
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2284
    functionName: FITSDataset::GetLayer
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - FITSDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *FITSDataset::GetLayer(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSDataset::TestCapability
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2294,1
    - Dst: OGRGeomFieldDefn*::GetType
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2297,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2300,1
    - Dst: fits_get_num_hdus
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2306,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2309,1
    - Dst: fits_create_tbl
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2323,1
    - Dst: FITSLayer::FITSLayer
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2338,1
    - Dst: auto::SetCreationOptions
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2339,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2340,1
    - Dst: std::unique_ptr<FITSLayer>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2340,1
    - Dst: back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - pszName
    - poGeomFieldDefn
    - papszOptions
    argTypes:
    - char*
    - OGRGeomFieldDefn*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2342
      start: 2290
    functionDepth: 3
    functionLinenumber: 2290
    functionLinenumberEnd: 2342
    functionName: FITSDataset::ICreateLayer
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - back
    - std::unique_ptr<FITSLayer>
    - OGRGeomFieldDefn*::GetType
    - fits_create_tbl
    - fits_get_num_hdus
    - FITSDataset::TestCapability
    - CPLError
    - emplace_back
    - auto::SetCreationOptions
    - FITSLayer::FITSLayer
    linkageType: ''
    returnType: OGRLayer
    signature: "OGRLayer *FITSDataset::ICreateLayer(const char *pszName,\n                                    const
      OGRGeomFieldDefn *poGeomFieldDefn,\n                                    CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2353
      start: 2348
    functionDepth: 0
    functionLinenumber: 2348
    functionLinenumberEnd: 2353
    functionName: FITSDataset::TestCapability
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int FITSDataset::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSDriverIdentify
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2362,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2367,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2370,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2372,1
    - Dst: atoi
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2377,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2380,1
    - Dst: fits_open_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2389,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2389,1
    - Dst: fits_open_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2391,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2391,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2394,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2395,1
    - Dst: fits_close_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2397,1
    - Dst: std::make_unique<FITSDataset>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2401,1
    - Dst: auto::SetPhysicalFilename
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2405,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2412,1
    - Dst: fits_get_num_hdus
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2417,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2426,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2433,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2437,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2441,1
    - Dst: auto::m_apoLayers::push_back
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2448,1
    - Dst: std::unique_ptr<FITSLayer>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2448,1
    - Dst: auto::get
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2449,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2449,1
    - Dst: FITSLayer::FITSLayer
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2449,1
    - Dst: fits_get_img_param
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2462,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2480,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2481,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2482,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2484,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2486,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2486,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2487,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2489,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2494,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2495,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2503,1
    - Dst: CPLStringList::Clear
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2505,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2513,1
    - Dst: fits_get_img_param
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2520,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2543,1
    - Dst: CPLGetExecPath
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2544,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2544,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2544,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2546,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2546,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2550,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2557,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2565,1
    - Dst: auto::m_apoLayers::empty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2571,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2578,1
    - Dst: CPLGetExecPath
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2579,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2579,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2579,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2581,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2581,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2585,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2592,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2600,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2609,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2612,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2616,1
    - Dst: auto::Init
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2621,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2634,1
    - Dst: auto::LoadMetadata
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2637,1
    - Dst: auto::get
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2637,1
    - Dst: fits_movabs_hdu
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2640,1
    - Dst: auto::LoadMetadata
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2648,1
    - Dst: auto::get
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2648,1
    - Dst: auto::LoadFITSInfo
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2649,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2655,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2656,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2661,1
    - Dst: auto::get
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2661,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2662,1
    - Dst: auto::release
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2664,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 153
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2665
      start: 2359
    functionDepth: 3
    functionLinenumber: 2359
    functionLinenumberEnd: 2665
    functionName: FITSDataset::Open
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - fits_close_file
    - std::unique_ptr<FITSLayer>
    - CPLStringList::Clear
    - FITSDriverIdentify
    - auto::get
    - CPLStringList::AddNameValue
    - auto::LoadMetadata
    - fits_open_file
    - fits_get_num_hdus
    - fits_get_img_param
    - CPLError
    - STARTS_WITH
    - CPLGetExecPath
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLString::empty
    - auto::m_apoLayers::empty
    - CPLString::c_str
    - auto::LoadFITSInfo
    - CSLTokenizeString2
    - CPLStringList::size
    - auto::m_apoLayers::push_back
    - static_cast<int>
    - auto::SetPhysicalFilename
    - CPLSPrintf
    - auto::Init
    - auto::TryLoadXML
    - GDALOpenInfo*::GetSiblingFiles
    - std::string::resize
    - auto::SetDescription
    - FITSLayer::FITSLayer
    - auto::release
    - std::string::size
    - CPLGetBasenameSafe
    - fits_read_key
    - std::make_unique<FITSDataset>
    - fits_movabs_hdu
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *FITSDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_create_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2685,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2688,1
    - Dst: FITSDataset::FITSDataset
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2695,1
    - Dst: FITSDataset*::SetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2698,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2711,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2748,1
    - Dst: fits_create_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2757,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2760,1
    - Dst: fits_create_img
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2768,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2773,1
    - Dst: fits_close_file
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2776,1
    - Dst: FITSDataset::FITSDataset
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2780,1
    - Dst: FITSDataset*::SetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2784,1
    - Dst: FITSDataset*::Init
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2787,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszParamList
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 2796
      start: 2673
    functionDepth: 1
    functionLinenumber: 2673
    functionLinenumberEnd: 2796
    functionName: FITSDataset::Create
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - FITSDataset*::SetDescription
    - fits_close_file
    - FITSDataset::FITSDataset
    - fits_create_file
    - FITSDataset*::Init
    - fits_create_img
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *FITSDataset::Create(const char *pszFilename, int nXSize,\n
      \                                int nYSize, int nBandsIn, GDALDataType eType,\n
      \                                CPL_UNUSED char **papszParamList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2805
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2805
    functionName: FITSDataset::Delete
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSDataset::Delete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2839,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2841,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2842,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2843,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2845,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2847,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2848,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2849,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2851,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2853,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2854,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2855,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2857,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2859,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2860,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2861,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2863,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2865,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2866,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2867,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2869,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2871,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2872,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2873,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2875,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2877,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2878,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2879,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2881,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2883,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2884,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2885,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2889,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2890,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2891,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2894,1
    - Dst: const_cast<void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2896,1
    - Dst: static_cast<const void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2896,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2896,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2906,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2911,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2913,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2917,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2922,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2924,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2928,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2933,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2935,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2942,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2943,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2954,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2956,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2957,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2959,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2961,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2962,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2963,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2965,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2967,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2968,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2969,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2971,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2972,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2974,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2975,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2976,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2978,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2979,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2980,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2982,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2983,1
    - Dst: GetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2984,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:2999,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3000,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3002,1
    - Dst: const_cast<void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3004,1
    - Dst: static_cast<const void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3004,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3004,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3009,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3011,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3016,1
    - Dst: const_cast<void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3018,1
    - Dst: static_cast<const void *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3018,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3018,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3023,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3025,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3038,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3049,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3064,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3068,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3070,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3074,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3078,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3080,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3084,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3088,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3090,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3094,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3098,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3100,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3133,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3138,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3140,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3145,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3150,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3152,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3157,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3162,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3164,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3169,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3174,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3176,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3181,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3186,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3188,1
    - Dst: fits_update_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3193,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3198,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3200,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 198
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 3206
    functionName: FITSDataset::WriteFITSInfo
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<const void *>
    - c_str
    - std::string::assign
    - fits_update_key
    - GetDescription
    - assign
    - GetProjParm
    - strstr
    - const_cast<void *>
    - append
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void FITSDataset::WriteFITSInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3212
    functionDepth: 1
    functionLinenumber: 3212
    functionLinenumberEnd: 3216
    functionName: FITSDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *FITSDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3225,1
    - Dst: Clear
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3227,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 3238
      start: 3222
    functionDepth: 1
    functionLinenumber: 3222
    functionLinenumberEnd: 3238
    functionName: FITSDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - SetAxisMappingStrategy
    - OGRSpatialReference*::IsEmpty
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 3253
      start: 3244
    functionDepth: 0
    functionLinenumber: 3244
    functionLinenumberEnd: 3253
    functionName: FITSDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 3266
      start: 3259
    functionDepth: 0
    functionLinenumber: 3259
    functionLinenumberEnd: 3266
    functionName: FITSDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 3278
      start: 3272
    functionDepth: 0
    functionLinenumber: 3272
    functionLinenumberEnd: 3278
    functionName: FITSRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double FITSRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 3293
      start: 3284
    functionDepth: 0
    functionLinenumber: 3284
    functionLinenumberEnd: 3293
    functionName: FITSRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSRasterBand::SetOffset(double dfNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 3305
      start: 3299
    functionDepth: 0
    functionLinenumber: 3299
    functionLinenumberEnd: 3305
    functionName: FITSRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double FITSRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dfNewValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 3320
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3320
    functionName: FITSRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSRasterBand::SetScale(double dfNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 3346
      start: 3326
    functionDepth: 0
    functionLinenumber: 3326
    functionLinenumberEnd: 3346
    functionName: FITSRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double FITSRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - dfNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 3370
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3370
    functionName: FITSRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSRasterBand::SetNoDataValue(double dfNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3376
    functionDepth: 0
    functionLinenumber: 3376
    functionLinenumberEnd: 3390
    functionName: FITSRasterBand::DeleteNoDataValue
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr FITSRasterBand::DeleteNoDataValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3412,1
    - Dst: strncpy
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3415,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3416,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3420,1
    - Dst: std::string::append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3421,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3422,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3423,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3425,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3428,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3434,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3437,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3451,1
    - Dst: strstr
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3455,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3458,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3460,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3462,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3464,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3468,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3476,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3480,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3482,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3484,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3486,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3488,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3499,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3501,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3503,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3505,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3546,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3548,1
    - Dst: SetSinusoidal
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3549,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3555,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3557,1
    - Dst: SetMercator
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3558,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3563,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3565,1
    - Dst: SetEquirectangular2
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3573,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3577,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3579,1
    - Dst: SetLAEA
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3580,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3584,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3586,1
    - Dst: SetLCC1SP
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3587,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3592,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3594,1
    - Dst: SetOrthographic
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3595,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3600,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3602,1
    - Dst: SetProjection
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3603,1
    - Dst: strcmp
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3608,1
    - Dst: assign
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3610,1
    - Dst: SetStereographic
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3611,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3616,1
    - Dst: append
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3620,1
    - Dst: SetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3621,1
    - Dst: SetProjParm
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3622,1
    - Dst: SetNode
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3624,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3624,1
    - Dst: SetGeogCS
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3626,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3626,1
    - Dst: c_str
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3626,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3632,1
    - Dst: CPLError
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3638,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3396
    functionDepth: 1
    functionLinenumber: 3396
    functionLinenumberEnd: 3641
    functionName: FITSDataset::LoadGeoreferencing
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::assign
    - SetLAEA
    - std::string::append
    - strncpy
    - CPLDebug
    - SetSinusoidal
    - SetProjection
    - SetStereographic
    - strcmp
    - CPLError
    - std::string::c_str
    - SetLCC1SP
    - c_str
    - SetNode
    - assign
    - strstr
    - append
    - SetProjParm
    - SetOrthographic
    - SetEquirectangular2
    - SetMercator
    - SetGeogCS
    - fits_read_key
    linkageType: ''
    returnType: void
    signature: void FITSDataset::LoadGeoreferencing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FITSDataset::LoadGeoreferencing
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3654,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3656,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3657,1
    - Dst: cpl::down_cast<FITSRasterBand *>
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3663,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3663,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3667,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3673,1
    - Dst: fits_read_key
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3647
    functionDepth: 2
    functionLinenumber: 3647
    functionLinenumberEnd: 3690
    functionName: FITSDataset::LoadFITSInfo
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - fits_read_key
    - CPLAssert
    - FITSDataset::LoadGeoreferencing
    - cpl::down_cast<FITSRasterBand *>
    linkageType: ''
    returnType: void
    signature: void FITSDataset::LoadFITSInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3699,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3702,1
    - Dst: FITSDriverSetCommonMetadata
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3703,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/fits/fitsdataset.cpp:3709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3696
    functionDepth: 1
    functionLinenumber: 3696
    functionLinenumberEnd: 3710
    functionName: GDALRegister_FITS
    functionSourceFile: /src/gdal/frmts/fits/fitsdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - FITSDriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_FITS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:24,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:30,1
    - Dst: memcmp
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: FITSDriverIdentify
    functionSourceFile: /src/gdal/frmts/fits/fitsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH
    - memcmp
    - static_cast<size_t>
    linkageType: ''
    returnType: int
    signature: int FITSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:44,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:45,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:46,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:47,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:48,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:50,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:51,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:53,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:55,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:58,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:74,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: FITSDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/fits/fitsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void FITSDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:85,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:89,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:91,1
    - Dst: FITSDriverSetCommonMetadata
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:94,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/fits/fitsdrivercore.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: DeclareDeferredFITSPlugin
    functionSourceFile: /src/gdal/frmts/fits/fitsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - FITSDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredFITSPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:82,1
    - Dst: CPLString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:82,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFilename
    - eAccess
    argTypes:
    - char*
    - GDALAccess
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: MBTILESOpenSQLiteDB
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - GDALOpenEx
    - CPLString
    linkageType: ''
    returnType: GDALDatasetH
    signature: "GDALDatasetH MBTILESOpenSQLiteDB(const char *pszFilename,\n                                        GDALAccess
      eAccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:124,1
    - Dst: size
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: MBTilesDataset::GetLayerCount
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: MBTilesDataset::IGetRasterCount
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IGetRasterCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nBand
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: MBTilesDataset::IGetRasterBand
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *IGetRasterBand(int nBand) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: MBTilesDataset::IGetDB
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite3
    signature: sqlite3 *IGetDB() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: MBTilesDataset::IGetUpdate
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IGetUpdate() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: MBTilesDataset::IGetFilename
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    linkageType: ''
    returnType: char
    signature: char *IGetFilename() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: MBTilesVectorLayer::GetLayerDefn
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poDSIn
    - nTileSize
    argTypes:
    - MBTilesDataset*
    - int
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: MBTilesBand::MBTilesBand
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MBTilesBand::MBTilesBand(MBTilesDataset *poDSIn, int nTileSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 68
    argCount: 3
    argNames:
    - p
    - end
    - len
    argTypes:
    - char*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 400
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 400
    functionName: utf8decode
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned utf8decode(const char *p, const char *end, int *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesDataset::HasNonEmptyGrids
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:413,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:420,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:424,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:425,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:429,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:430,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:432,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:433,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:439,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:440,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:452,1
    - Dst: OGR_L_ResetReading
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:455,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:456,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 464
    functionName: MBTilesDataset::HasNonEmptyGrids
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - OGR_L_GetNextFeature
    - OGR_F_Destroy
    - GDALDatasetReleaseResultSet
    - OGR_L_ResetReading
    - GDALDatasetGetLayerByName
    - GDALDatasetExecuteSQL
    - CPLDebug
    - MBTilesDataset::HasNonEmptyGrids
    - OGR_F_IsFieldSetAndNotNull
    linkageType: ''
    returnType: bool
    signature: bool MBTilesDataset::HasNonEmptyGrids()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:474,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:507,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:508,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:512,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:513,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:515,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:516,1
    - Dst: OGR_F_GetFieldAsBinary
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:521,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:524,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:527,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:528,1
    - Dst: memset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:533,1
    - Dst: inflateInit
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:534,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:536,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:537,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:538,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:546,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:549,1
    - Dst: OGRJSonParse
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:569,1
    - Dst: json_object_is_type
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:574,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:576,1
    - Dst: json_object_is_type
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:578,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:592,1
    - Dst: json_object_is_type
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:595,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:597,1
    - Dst: json_object_get_string
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:597,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:613,1
    - Dst: CPL_json_object_object_get
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:647,1
    - Dst: json_object_is_type
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:649,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:650,1
    - Dst: json_object_array_length
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:650,1
    - Dst: json_object_array_get_idx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:652,1
    - Dst: json_object_is_type
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:654,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:656,1
    - Dst: json_object_get_string
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:656,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:661,1
    - Dst: json_object_put
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:666,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:667,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:669,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:671,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 104
    argCount: 2
    argNames:
    - iPixel
    - iLine
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 674
      start: 470
    functionDepth: 6
    functionLinenumber: 470
    functionLinenumberEnd: 674
    functionName: MBTilesDataset::FindKey
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - GetRasterBand
    - CPLDebug
    - VSIMalloc
    - CPL_json_object_object_get
    - OGR_L_GetNextFeature
    - OGR_F_GetFieldAsBinary
    - CPLStrdup
    - json_object_is_type
    - inflateInit
    - inflateEnd
    - GDALDatasetReleaseResultSet
    - OGRJSonParse
    - json_object_array_get_idx
    - json_object_array_length
    - static_cast<int>
    - GDALDatasetExecuteSQL
    - json_object_get_string
    - CPLFree
    - json_object_put
    - VSIFree
    - memset
    - OGR_F_IsFieldSetAndNotNull
    linkageType: ''
    returnType: char
    signature: char *MBTilesDataset::FindKey(int iPixel, int iLine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:682,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: MBTilesBand::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - CSLAddString
    linkageType: ''
    returnType: char
    signature: char **MBTilesBand::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:699,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:700,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:701,1
    - Dst: MBTilesDataset*::HasNonEmptyGrids
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:705,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:713,1
    - Dst: sscanf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:715,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:718,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:724,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:728,1
    - Dst: GetDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:730,1
    - Dst: GetDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:733,1
    - Dst: GDALInvGeoTransform
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:736,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:739,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:742,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:749,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:750,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:764,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:767,1
    - Dst: strchr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:768,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:777,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:779,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:782,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:784,1
    - Dst: CPLEscapeString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:792,1
    - Dst: CPLEscapeString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:794,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:797,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:800,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:802,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:807,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:809,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:815,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 816
      start: 690
    functionDepth: 5
    functionLinenumber: 690
    functionLinenumberEnd: 816
    functionName: MBTilesBand::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - CPLDebug
    - GetYSize
    - OGR_L_GetNextFeature
    - sscanf
    - CPLEscapeString
    - GetDataset
    - MBTilesDataset*::HasNonEmptyGrids
    - GetXSize
    - GDALInvGeoTransform
    - GDALDatasetReleaseResultSet
    - CPLAtof
    - STARTS_WITH_CI
    - c_str
    - OGRDGNV8DataSource::GetMetadataItem
    - floor
    - GDALDatasetExecuteSQL
    - CPLFree
    - GDALDatasetGetLayerByName
    - EQUAL
    - strchr
    - OGR_F_IsFieldSetAndNotNull
    linkageType: ''
    returnType: char
    signature: "char *MBTilesBand::GetMetadataItem(const char *pszName,\n                                         const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 830
    functionName: MBTilesBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    linkageType: ''
    returnType: int
    signature: int MBTilesBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverview
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:841,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - nLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 851
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 851
    functionName: MBTilesBand::GetOverview
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterBand
    - GDALOpenFileGDBRasterBand::GetOverview
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *MBTilesBand::GetOverview(int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:882,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 884
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 884
    functionName: MBTilesDataset::MBTilesDataset
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: void MBTilesDataset::MBTilesDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:893,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:895,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:903,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:908,1
    - Dst: sqlite3_close
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:913,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:917,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:918,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:919,1
    - Dst: empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:924,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:926,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 928
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 928
    functionName: MBTilesDataset::~MBTilesDataset()
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - clear
    - sqlite3_vfs_unregister
    - VSIUnlink
    - sqlite3_close
    - CPLFree
    - FlushCache
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void MBTilesDataset::~MBTilesDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:940,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 947
    functionName: MBTilesDataset::IStartTransaction
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr MBTilesDataset::IStartTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:959,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 966
    functionName: MBTilesDataset::ICommitTransaction
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - sqlite3_free
    linkageType: ''
    returnType: OGRErr
    signature: OGRErr MBTilesDataset::ICommitTransaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:976,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 989
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 989
    functionName: MBTilesDataset::ICanIWriteBlock
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool MBTilesDataset::ICanIWriteBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1002,1
    - Dst: FlushTiles
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1008
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1008
    functionName: MBTilesDataset::IFlushCacheWithErrCode
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::FlushCache
    - FlushTiles
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MBTilesDataset::IFlushCacheWithErrCode(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nRow
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: MBTilesDataset::GetRowFromIntoTopConvention
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MBTilesDataset::GetRowFromIntoTopConvention(int nRow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: MBTilesDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MBTilesDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    functionName: SphericalMercatorToLongLat
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphericalMercatorToLongLat(double *x, double *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: LongLatToSphericalMercator
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LongLatToSphericalMercator(double *x, double *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1061,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1067,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1074,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1082,1
    - Dst: SphericalMercatorToLongLat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1091,1
    - Dst: SphericalMercatorToLongLat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1092,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1093,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1097,1
    - Dst: SphericalMercatorToLongLat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1106,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1112,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1118,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1119,1
    - Dst: empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1121,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1123,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1125,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1126,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1127,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1133,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1142,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1144,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1144,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1153,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1159,1
    - Dst: MBTilesDataset::FinalizeRasterRegistration
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1162,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1163
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1163
    functionName: MBTilesDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - MBTilesDataset::FinalizeRasterRegistration
    - c_str
    - empty
    - SphericalMercatorToLongLat
    - memcpy
    - CPLString::Printf
    - GetRasterBand
    - sqlite3_mprintf
    - sqlite3_free
    - fabs
    - CPLError
    - sqlite3_exec
    - CPLString::empty
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MBTilesDataset::SetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1172,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1179,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1187
    functionName: MBTilesDataset::ComputeTileAndPixelShifts
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - floor
    - GetRasterBand
    linkageType: ''
    returnType: void
    signature: void MBTilesDataset::ComputeTileAndPixelShifts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesDataset::ComputeTileAndPixelShifts
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1198,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1208,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1216,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1217,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1218,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1221,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1222,1
    - Dst: MBTilesDataset::MBTilesDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1227,1
    - Dst: MBTilesDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1228,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1230,1
    - Dst: MBTilesDataset*::InitRaster
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1238
    functionName: MBTilesDataset::FinalizeRasterRegistration
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - MBTilesDataset::MBTilesDataset
    - MBTilesDataset*::InitRaster
    - GetRasterBand
    - MBTilesDataset::ComputeTileAndPixelShifts
    - sqlite3_mprintf
    - MBTilesDataset*::ShareLockWithParentDataset
    - sqlite3_free
    - CPLCalloc
    - sqlite3_exec
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MBTilesDataset::FinalizeRasterRegistration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1271,1
    - Dst: SetBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1283,1
    - Dst: MBTilesBand::MBTilesBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1283,1
    - Dst: MBTilesDataset::ComputeTileAndPixelShifts
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1285,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1287,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1288,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1288,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1301,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1301,1
    - Dst: MBTilesDataset*::GetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 8
    argNames:
    - poParentDS
    - nZoomLevel
    - nBandCount
    - nTileSize
    - dfGDALMinX
    - dfGDALMinY
    - dfGDALMaxX
    - dfGDALMaxY
    argTypes:
    - MBTilesDataset*
    - int
    - int
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1306
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1306
    functionName: MBTilesDataset::InitRaster
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - SetBand
    - MBTilesDataset*::GetDescription
    - MBTilesBand::MBTilesBand
    - OGRPGTableLayer::SetMetadataItem
    - MBTilesDataset::ComputeTileAndPixelShifts
    - CPLSPrintf
    - SetDescription
    - VSI_MALLOC3_VERBOSE
    linkageType: ''
    returnType: bool
    signature: "bool MBTilesDataset::InitRaster(MBTilesDataset *poParentDS, int nZoomLevel,\n
      \                               int nBandCount, int nTileSize,\n                                double
      dfGDALMinX, double dfGDALMinY,\n                                double dfGDALMaxX,
      double dfGDALMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1315
    functionName: MBTilesDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *MBTilesDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1325,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1330,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1331,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1331,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1332,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1333,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1333,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1340
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1340
    functionName: MBTilesDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - OGRSpatialReference*::GetAuthorityCode
    - EQUAL
    - OGRSpatialReference*::GetAuthorityName
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr MBTilesDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1348,1
    - Dst: GDALDataset::GetMetadataDomainList
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1350
    functionName: MBTilesDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - BuildMetadataDomainList
    - GDALDataset::GetMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **MBTilesDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1358,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1359,1
    - Dst: List
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1362,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1365,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1365,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1367,1
    - Dst: OGR_FD_GetFieldCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1373,1
    - Dst: OGR_L_GetLayerDefn
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1373,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1375,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1380,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1382,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1383,1
    - Dst: OGR_F_GetFieldAsString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1385,1
    - Dst: OGR_F_GetFieldAsString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1386,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1387,1
    - Dst: strstr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1388,1
    - Dst: strstr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1389,1
    - Dst: strstr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1390,1
    - Dst: strstr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1391,1
    - Dst: AddNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1393,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1396,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1398,1
    - Dst: List
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1400,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1356
    functionDepth: 5
    functionLinenumber: 1356
    functionLinenumberEnd: 1401
    functionName: MBTilesDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_L_GetNextFeature
    - OGR_F_Destroy
    - OGR_L_GetLayerDefn
    - GDALDatasetExecuteSQL
    - GDALPamDataset::GetMetadata
    - STARTS_WITH
    - EQUAL
    - OGR_F_IsFieldSetAndNotNull
    - OGR_F_GetFieldAsString
    - OGR_FD_GetFieldCount
    - strstr
    - List
    - CPLStringList
    - AddNameValue
    - GDALDatasetReleaseResultSet
    linkageType: ''
    returnType: char
    signature: char **MBTilesDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1410,1
    - Dst: GDALPamDataset::GetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1417
    functionName: MBTilesDataset::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALPamDataset::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *MBTilesDataset::GetMetadataItem(const char *pszName,\n                                            const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesDataset::GetLayerCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1426,1
    - Dst: get
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iLayer
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1429
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1429
    functionName: MBTilesDataset::GetLayer
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - MBTilesDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *MBTilesDataset::GetLayer(int iLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeatureDefn::OGRFeatureDefn
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1440,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1443,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1444,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1445,1
    - Dst: OGRSpatialReference*::SetFromUserInput
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1446,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1447,1
    - Dst: OGRSpatialReference*::Release
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1448,1
    - Dst: Reference
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1449,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1454,1
    - Dst: OGRMVTInitFields
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1458,1
    - Dst: OGRAPISpy_L_SetSpatialFilter
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1468,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1473,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1473,1
    - Dst: MBTilesVectorLayer::GetNextSrcFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1476,1
    - Dst: OGRFeature*::GetFieldCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1482,1
    - Dst: MBTilesVectorLayer::ResetReading
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1488,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1494,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 11
    argNames:
    - poDS
    - pszLayerName
    - oFields
    - oAttributesFromTileStats
    - bJsonField
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - eGeomType
    - bZoomLevelFromSpatialFilter
    argTypes:
    - MBTilesDataset*
    - char*
    - CPLJSONObject
    - CPLJSONArray
    - bool
    - double
    - double
    - double
    - double
    - OGRwkbGeometryType
    - bool
    constantsTouched: []
    func_position:
      end: 1496
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1496
    functionName: MBTilesVectorLayer::MBTilesVectorLayer
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRMVTInitFields
    - OGRSpatialReference::OGRSpatialReference
    - SetGeomType
    - GetGeomFieldDefn
    - OGRFeatureDefn::OGRFeatureDefn
    - OGRAPISpy_L_SetSpatialFilter
    - CPLJSONObject::GetChildren
    - MBTilesVectorLayer::ResetReading
    - OGRSpatialReference*::Release
    - OGRSpatialReference*::SetFromUserInput
    - Reference
    - AddFieldDefn
    - CPLJSONObject::IsValid
    - OGRFeature*::GetFieldCount
    - SetDescription
    - MBTilesVectorLayer::GetNextSrcFeature
    linkageType: ''
    returnType: void
    signature: "void MBTilesVectorLayer::MBTilesVectorLayer(\n    MBTilesDataset *poDS,
      const char *pszLayerName,\n    const CPLJSONObject &oFields, const CPLJSONArray
      &oAttributesFromTileStats,\n    bool bJsonField, double dfMinX, double dfMinY,
      double dfMaxX, double dfMaxY,\n    OGRwkbGeometryType eGeomType, bool bZoomLevelFromSpatialFilter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1504,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1506,1
    - Dst: empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1507,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1509,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1513
    functionName: MBTilesVectorLayer::~MBTilesVectorLayer()
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - empty
    - VSIUnlink
    - GDALDatasetReleaseResultSet
    - Release
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void MBTilesVectorLayer::~MBTilesVectorLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1521,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1522,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1527
    functionName: MBTilesVectorLayer::TestCapability
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int MBTilesVectorLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 1538
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1538
    functionName: MBTilesVectorLayer::IGetExtent
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr MBTilesVectorLayer::IGetExtent(int /* iGeomField */,\n                                      OGREnvelope
      *psExtent, bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1547,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1551,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1553,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1560,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1561
    functionName: MBTilesVectorLayer::ResetReading
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLString::Printf
    - GDALDatasetExecuteSQL
    - CPLString::c_str
    - GDALDatasetReleaseResultSet
    - GDALClose
    linkageType: ''
    returnType: void
    signature: void MBTilesVectorLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1570,1
    - Dst: max
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1598,1
    - Dst: min
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1600,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1600,1
    - Dst: log
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1600,1
    - Dst: log
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1601,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1603,1
    - Dst: max
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1606,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1607,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1608,1
    - Dst: max
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1609,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1610,1
    - Dst: floor
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1611,1
    - Dst: min
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1613,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1613,1
    - Dst: ceil
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1613,1
    - Dst: min
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1617,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1617,1
    - Dst: ceil
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1617,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 1634
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1634
    functionName: MBTilesVectorLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - floor
    - OGRLayer::ISetSpatialFilter
    - log
    - CPLDebug
    - min
    - max
    - ceil
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr MBTilesVectorLayer::ISetSpatialFilter(int iGeomField,\n                                             const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesVectorLayer::GetNextRawFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1644,1
    - Dst: FilterGeometry
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1649,1
    - Dst: OGRFeature*::GetGeometryRef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1649,1
    - Dst: Evaluate
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1657
    functionName: MBTilesVectorLayer::GetNextFeature
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - Evaluate
    - FilterGeometry
    - OGRFeature*::GetGeometryRef
    - MBTilesVectorLayer::GetNextRawFeature
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *MBTilesVectorLayer::GetNextFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesVectorLayer::ResetReading
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1670,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1673,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1678,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1682,1
    - Dst: OGR_F_GetFieldAsBinary
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1684,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1685,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1685,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1686,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1687,1
    - Dst: empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1689,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1691,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1693,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1694,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1695,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1695,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1700,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1703,1
    - Dst: m_osMetadataMemFilename::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1704,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1706,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1706,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1709,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1713,1
    - Dst: GetName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1713,1
    - Dst: OGR_L_GetFeatureCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1716,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1718,1
    - Dst: MBTilesVectorLayer::ResetReading
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1722,1
    - Dst: OGRLayer::GetFeatureCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1726,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - bForce
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1727
      start: 1663
    functionDepth: 5
    functionLinenumber: 1663
    functionLinenumberEnd: 1727
    functionName: MBTilesVectorLayer::GetFeatureCount
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - OGR_L_GetFeatureCount
    - OGRLayer::GetFeatureCount
    - MBTilesVectorLayer::ResetReading
    - OGR_F_GetFieldAsInteger
    - GDALClose
    - OGR_L_GetNextFeature
    - OGR_F_GetFieldAsBinary
    - CPLMalloc
    - GetName
    - c_str
    - VSIUnlink
    - CPLSPrintf
    - static_cast<GByte *>
    - VSIFileFromMemBuffer
    - GDALOpenEx
    - empty
    - VSIFCloseL
    - m_osMetadataMemFilename::c_str
    - GDALDatasetGetLayerByName
    - CSLDestroy
    - VSIMemGenerateHiddenFilename
    - memcpy
    - CSLSetNameValue
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig MBTilesVectorLayer::GetFeatureCount(int bForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesVectorLayer::ResetReading
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1741,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1750,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1751,1
    - Dst: GetName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1751,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1755,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1761,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1764,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1765,1
    - Dst: OGR_F_GetFieldAsBinary
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1768,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1769,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1769,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1770,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1771,1
    - Dst: empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1773,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1775,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1777,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1778,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1779,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1779,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1784,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1787,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1787,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1789,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1789,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1790,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1791,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1792,1
    - Dst: m_osMetadataMemFilename::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1794,1
    - Dst: m_osClip::empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1795,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1798,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1801,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1801,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1804,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1807,1
    - Dst: GetName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1807,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1809,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1810,1
    - Dst: GetName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1810,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1814,1
    - Dst: reinterpret_cast<OGRFeature *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1820,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1733
    functionDepth: 5
    functionLinenumber: 1733
    functionLinenumberEnd: 1821
    functionName: MBTilesVectorLayer::GetNextSrcFeature
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - OGR_F_Destroy
    - reinterpret_cast<OGRFeature *>
    - CPLDebug
    - MBTilesVectorLayer::ResetReading
    - OGR_F_GetFieldAsInteger
    - GDALClose
    - OGR_L_GetNextFeature
    - OGR_F_GetFieldAsBinary
    - CPLMalloc
    - GetName
    - c_str
    - VSIUnlink
    - CPLSPrintf
    - static_cast<GByte *>
    - VSIFileFromMemBuffer
    - GDALOpenEx
    - empty
    - m_osClip::empty
    - VSIFCloseL
    - m_osMetadataMemFilename::c_str
    - GDALDatasetGetLayerByName
    - CSLDestroy
    - VSIMemGenerateHiddenFilename
    - memcpy
    - CSLSetNameValue
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *MBTilesVectorLayer::GetNextSrcFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRMVTCreateFeatureFrom
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1830,1
    - Dst: GetSpatialRef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSrcFeature
    argTypes:
    - OGRFeature*
    constantsTouched: []
    func_position:
      end: 1832
      start: 1827
    functionDepth: 4
    functionLinenumber: 1827
    functionLinenumberEnd: 1832
    functionName: MBTilesVectorLayer::CreateFeatureFrom
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GetSpatialRef
    - OGRMVTCreateFeatureFrom
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *MBTilesVectorLayer::CreateFeatureFrom(OGRFeature *poSrcFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesVectorLayer::GetNextSrcFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1840,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1845,1
    - Dst: MBTilesVectorLayer::CreateFeatureFrom
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1846,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1847,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1838
    functionDepth: 6
    functionLinenumber: 1838
    functionLinenumberEnd: 1851
    functionName: MBTilesVectorLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GIntBig>
    - OGRFeature*::GetFID
    - MBTilesVectorLayer::GetNextSrcFeature
    - MBTilesVectorLayer::CreateFeatureFrom
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *MBTilesVectorLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1865,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1870,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1870,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1873,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1876,1
    - Dst: OGR_F_GetFieldAsBinary
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1880,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1881,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1881,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1882,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1883,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1884,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1886,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1887,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1888,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1889,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1894,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1894,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1896,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1896,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1898,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1898,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1899,1
    - Dst: m_osMetadataMemFilename::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1901,1
    - Dst: m_osClip::empty
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1902,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1905,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1907,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1907,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1910,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1915,1
    - Dst: GetName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1915,1
    - Dst: reinterpret_cast<OGRFeature *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1918,1
    - Dst: OGR_L_GetFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1919,1
    - Dst: MBTilesVectorLayer::CreateFeatureFrom
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1922,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1923,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1928,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1930,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 1933
      start: 1857
    functionDepth: 5
    functionLinenumber: 1857
    functionLinenumberEnd: 1933
    functionName: MBTilesVectorLayer::GetFeature
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - reinterpret_cast<OGRFeature *>
    - OGR_F_GetFieldAsBinary
    - OGR_L_GetNextFeature
    - GDALClose
    - CPLString::c_str
    - CPLMalloc
    - GDALDatasetReleaseResultSet
    - GetName
    - c_str
    - CPLString::Printf
    - VSIUnlink
    - GDALDatasetExecuteSQL
    - CPLSPrintf
    - OGR_L_GetFeature
    - static_cast<GByte *>
    - VSIFileFromMemBuffer
    - GDALOpenEx
    - m_osClip::empty
    - VSIFCloseL
    - m_osMetadataMemFilename::c_str
    - GDALDatasetGetLayerByName
    - CSLDestroy
    - MBTilesVectorLayer::CreateFeatureFrom
    - VSIMemGenerateHiddenFilename
    - memcpy
    - CSLSetNameValue
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *MBTilesVectorLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1944,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1945,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1946,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1947,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1950,1
    - Dst: OGR_F_GetFieldAsString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1953,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1954,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1955,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1956,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1956,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1957,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1959,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1963,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1964,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1966,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1967,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1969,1
    - Dst: CPLJSONArray::Deinit
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1970,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1972,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1974,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1976,1
    - Dst: GetObj
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1978,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1979,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1979,1
    - Dst: CPLJSONArray::IsValid
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1982,1
    - Dst: OGRMVTFindGeomTypeFromTileStat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1984,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1985,1
    - Dst: GetObj
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1988,1
    - Dst: OGRMVTFindAttributesFromTileStat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1990,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1991,1
    - Dst: push_back
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1992,1
    - Dst: std::unique_ptr<OGRLayer>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1993,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1994,1
    - Dst: MBTilesVectorLayer::MBTilesVectorLayer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:1993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - bZoomLevelFromSpatialFilter
    - bJsonField
    argTypes:
    - double
    - double
    - double
    - double
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1999
      start: 1939
    functionDepth: 5
    functionLinenumber: 1939
    functionLinenumberEnd: 1999
    functionName: MBTilesDataset::InitVector
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - MBTilesVectorLayer::MBTilesVectorLayer
    - GetObj
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - OGR_L_GetNextFeature
    - CPLJSONArray::CPLJSONArray
    - CPLJSONObject::GetType
    - CPLJSONDocument::Save
    - CPLJSONArray::IsValid
    - CPLJSONArray::Deinit
    - GDALDatasetReleaseResultSet
    - OGRMVTFindGeomTypeFromTileStat
    - CPLJSONObject::ToString
    - CPLJSONDocument::LoadMemory
    - GDALDatasetExecuteSQL
    - CPLJSONArray::Size
    - OGR_F_GetFieldAsString
    - CPL_IGNORE_RET_VAL
    - std::unique_ptr<OGRLayer>
    - reinterpret_cast<const GByte *>
    - OGRMVTFindAttributesFromTileStat
    - push_back
    - CPLJSONObject::IsValid
    - VSIMemGenerateHiddenFilename
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: "void MBTilesDataset::InitVector(double dfMinX, double dfMinY, double
      dfMaxX,\n                                double dfMaxY, bool bZoomLevelFromSpatialFilter,\n
      \                               bool bJsonField)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2009,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2015,1
    - Dst: strstr
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2018,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2026
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2026
    functionName: MBTilesDataset::Identify
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsExtensionEqualToCI
    - strstr
    linkageType: ''
    returnType: int
    signature: int MBTilesDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2042,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2043,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2046,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2050,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2052,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2055,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2059,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2062,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2064,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2067,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2072,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2082,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2085,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2086,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2089,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2093,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2095,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2104,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2107,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2108,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2111,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2116,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2118,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2123,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2124,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2130,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2133,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2137,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2138,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2140,1
    - Dst: OGR_F_GetFieldAsInteger
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2141,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2145,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2146,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 4
    argNames:
    - hDS
    - bHasMap
    - nMinLevel
    - nMaxLevel
    argTypes:
    - GDALDatasetH
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2151
      start: 2032
    functionDepth: 5
    functionLinenumber: 2032
    functionLinenumberEnd: 2151
    functionName: MBTilesGetMinMaxZoomLevel
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_L_GetNextFeature
    - OGR_F_Destroy
    - GDALDatasetReleaseResultSet
    - GDALDatasetExecuteSQL
    - CPLDebug
    - CPLSPrintf
    - OGR_F_GetFieldAsInteger
    - OGR_F_IsFieldSetAndNotNull
    linkageType: ''
    returnType: int
    signature: "int MBTilesGetMinMaxZoomLevel(GDALDatasetH hDS, int bHasMap,\n                                     int
      &nMinLevel, int &nMaxLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfTileCoord
    - nZoomLevel
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2160
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2160
    functionName: MBTilesTileCoordToWorldCoord
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MBTilesTileCoordToWorldCoord(double dfTileCoord, int nZoomLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfWorldCoord
    - nZoomLevel
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: MBTilesWorldCoordToTileCoord
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double MBTilesWorldCoordToTileCoord(double dfWorldCoord, int nZoomLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2186,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2187,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2190,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2195,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2196,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2196,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2197,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2197,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2198,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2198,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2199,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2199,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2200,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2200,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2201,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2201,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2203,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2209,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2210,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2211,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2212,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2213,1
    - Dst: LongLatToSphericalMercator
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2214,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2225,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2227,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2229,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2240,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2241,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2247,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2250,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2254,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2255,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2256,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2257,1
    - Dst: MBTilesTileCoordToWorldCoord
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2265,1
    - Dst: MBTilesTileCoordToWorldCoord
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2266,1
    - Dst: MBTilesTileCoordToWorldCoord
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2267,1
    - Dst: MBTilesTileCoordToWorldCoord
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2268,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2273,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2274,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 7
    argNames:
    - hDS
    - bUseBounds
    - nMaxLevel
    - minX
    - minY
    - maxX
    - maxY
    argTypes:
    - GDALDatasetH
    - bool
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2278
      start: 2175
    functionDepth: 5
    functionLinenumber: 2175
    functionLinenumberEnd: 2278
    functionName: MBTilesGetBounds
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_L_GetNextFeature
    - CPLAtof
    - OGR_F_Destroy
    - CPLError
    - MBTilesTileCoordToWorldCoord
    - GDALDatasetExecuteSQL
    - LongLatToSphericalMercator
    - CPLDebug
    - CSLDestroy
    - OGR_F_IsFieldSetAndNotNull
    - fabs
    - CSLCount
    - GDALDatasetReleaseResultSet
    linkageType: ''
    returnType: bool
    signature: "bool MBTilesGetBounds(GDALDatasetH hDS, bool bUseBounds, int nMaxLevel,\n
      \                            double &minX, double &minY, double &maxX,\n                             double
      &maxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TileProperties *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2298,1
    - Dst: memcmp
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2316,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2323,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2324,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2328,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2329,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2336,1
    - Dst: memcmp
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2367,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2372,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2374,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2376,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2378,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2380,1
    - Dst: memcmp
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2392,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2397,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2399,1
    - Dst: memcpy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2401,1
    - Dst: CPL_MSBPTR16
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2403,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2405,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - fp
    - pabyBuffer
    - nBufferSize
    - pfnUserData
    argTypes:
    - CPL_UNUSED*
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 2420
      start: 2295
    functionDepth: 1
    functionLinenumber: 2295
    functionLinenumberEnd: 2420
    functionName: MBTilesCurlReadCbk
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TileProperties *>
    - CPL_MSBPTR16
    - memcmp
    - CPLDebug
    - CPL_MSBPTR32
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MBTilesCurlReadCbk(CPL_UNUSED VSILFILE *fp, void *pabyBuffer,\n
      \                             size_t nBufferSize, void *pfnUserData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<OGRSQLiteBaseDataSource *>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2443,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2444,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2445,1
    - Dst: auto::GetVSILFILE
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2448,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2457,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2464,1
    - Dst: VSICurlInstallReadCbk
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2468,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2472,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2473,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2474,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2475,1
    - Dst: VSICurlUninstallReadCbk
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2477,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2483,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2485,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2492,1
    - Dst: MBTILESOpenSQLiteDB
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2493,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2493,1
    - Dst: CPLGetLastErrorType
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2503,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2505,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2505,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2506,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2511,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2519,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2522,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2523,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2528,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2531,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2540,1
    - Dst: OGR_F_GetFieldAsBinary
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2543,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2545,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2545,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2545,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2548,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2548,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2552,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2552,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2553,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2554,1
    - Dst: GDALGetRasterCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2558,1
    - Dst: GDALGetRasterXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2561,1
    - Dst: GDALGetRasterYSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2561,1
    - Dst: GDALGetRasterDataType
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2562,1
    - Dst: GDALGetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2562,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2564,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2566,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2567,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2567,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2568,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2569,1
    - Dst: GDALGetRasterXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2573,1
    - Dst: GDALGetRasterColorTable
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2575,1
    - Dst: GDALGetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2575,1
    - Dst: GDALGetColorEntryCount
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2579,1
    - Dst: GDALGetColorEntry
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2582,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2588,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2589,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2589,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2590,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2591,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 86
    argCount: 8
    argNames:
    - bIsVSICURL
    - hDS
    - nMaxLevel
    - nMinTileRow
    - nMaxTileRow
    - nMinTileCol
    - nMaxTileCol
    - nTileSize
    argTypes:
    - bool
    - GDALDatasetH
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2594
      start: 2426
    functionDepth: 5
    functionLinenumber: 2426
    functionLinenumberEnd: 2594
    functionName: MBTilesGetBandCountAndTileSize
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - CPLDebug
    - VSICurlUninstallReadCbk
    - auto::GetVSILFILE
    - CPLError
    - MBTILESOpenSQLiteDB
    - GDALClose
    - OGR_L_GetNextFeature
    - OGR_F_GetFieldAsBinary
    - CPLErrorReset
    - CPLGetLastErrorMsg
    - VSICurlInstallReadCbk
    - CPLString::c_str
    - CPLPopErrorHandler
    - GDALDatasetReleaseResultSet
    - dynamic_cast<OGRSQLiteBaseDataSource *>
    - GDALGetRasterBand
    - GDALGetRasterColorTable
    - FromHandle
    - GDALGetRasterCount
    - VSIUnlink
    - GDALDatasetExecuteSQL
    - CPLSPrintf
    - CPLGetLastErrorNo
    - CPLAssert
    - VSIFileFromMemBuffer
    - GDALGetRasterDataType
    - GDALOpenEx
    - GDALGetRasterXSize
    - VSIFCloseL
    - GDALGetColorEntry
    - GDALGetRasterYSize
    - GDALGetColorEntryCount
    - CPLPushErrorHandler
    - CPLGetLastErrorType
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: int
    signature: "int MBTilesGetBandCountAndTileSize(bool bIsVSICURL, GDALDatasetH &hDS,\n
      \                                         int nMaxLevel, int nMinTileRow,\n
      \                                         int nMaxTileRow, int nMinTileCol,\n
      \                                         int nMaxTileCol, int &nTileSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBTilesDataset::Identify
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2605,1
    - Dst: MBTILESOpenSQLiteDB
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2620,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2645,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2645,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2651,1
    - Dst: c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2651,1
    - Dst: GDALDatasetGetLayerByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2655,1
    - Dst: GDALDatasetExecuteSQL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2660,1
    - Dst: OGR_L_GetNextFeature
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2665,1
    - Dst: OGR_F_IsFieldSetAndNotNull
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2668,1
    - Dst: strcmp
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2670,1
    - Dst: OGR_F_GetFieldAsString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2670,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2674,1
    - Dst: OGR_F_Destroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2678,1
    - Dst: GDALDatasetReleaseResultSet
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2680,1
    - Dst: MBTilesGetMinMaxZoomLevel
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2691,1
    - Dst: atoi
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2696,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2700,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2709,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2716,1
    - Dst: MBTilesGetBounds
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2749,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2754,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2759,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2761,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2763,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2765,1
    - Dst: MBTilesGetBandCountAndTileSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2781,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2782,1
    - Dst: MBTilesDataset::MBTilesDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2814,1
    - Dst: GDALGetInternalHandle
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2817,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2819,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2825,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2831,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2835,1
    - Dst: MBTilesDataset*::InitVector
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2840,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2841,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2843,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2843,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2845,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2848,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2853,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2860,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2869,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2869,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2873,1
    - Dst: GDALGPKGMBTilesGetTileFormat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2882,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2884,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2884,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2886,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2888,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2891,1
    - Dst: MBTilesDataset*::ParseCompressionOptions
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2897,1
    - Dst: MBTilesDataset::MBTilesDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2907,1
    - Dst: MBTilesDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2908,1
    - Dst: MBTilesDataset*::InitRaster
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2909,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2912,1
    - Dst: MBTilesDataset*::GetRasterXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2917,1
    - Dst: MBTilesDataset*::GetRasterYSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2918,1
    - Dst: MBTilesDataset*::SetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2929,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2931,1
    - Dst: MBTilesDataset*::TryLoadXML
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2932,1
    - Dst: MBTilesDataset*::SetPamFlags
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2935,1
    - Dst: MBTilesDataset*::GetPamFlags
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2935,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2941,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 146
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2944
      start: 2600
    functionDepth: 6
    functionLinenumber: 2600
    functionLinenumberEnd: 2944
    functionName: MBTilesDataset::Open
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - OGR_F_Destroy
    - atoi
    - GDALGetInternalHandle
    - CPLDebug
    - MBTilesDataset*::GetRasterXSize
    - strcmp
    - MBTilesGetMinMaxZoomLevel
    - MBTilesDataset*::ShareLockWithParentDataset
    - CPLError
    - CPLGetConfigOption
    - MBTILESOpenSQLiteDB
    - MBTilesGetBounds
    - OGR_L_GetNextFeature
    - GDALClose
    - MBTilesDataset*::InitRaster
    - MBTilesDataset*::TryLoadXML
    - CPLString::c_str
    - CPLRealloc
    - MBTilesDataset*::GetRasterYSize
    - MBTilesDataset*::SetPamFlags
    - GDALDatasetReleaseResultSet
    - CPLAtof
    - c_str
    - STARTS_WITH_CI
    - CPLTestBool
    - CPLFetchBool
    - GDALDatasetExecuteSQL
    - MBTilesGetBandCountAndTileSize
    - MBTilesDataset*::InitVector
    - CPLAssert
    - OGR_F_GetFieldAsString
    - MBTilesDataset::MBTilesDataset
    - MBTilesDataset*::ParseCompressionOptions
    - MBTilesDataset*::SetDescription
    - GDALDatasetGetLayerByName
    - CSLFetchNameValueDef
    - MBTilesDataset::Identify
    - EQUAL
    - MBTilesDataset*::GetPamFlags
    - GDALGPKGMBTilesGetTileFormat
    - OGR_F_IsFieldSetAndNotNull
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *MBTilesDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2958,1
    - Dst: OGRMVTWriterDatasetCreate
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2959,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2961,1
    - Dst: MBTilesDataset::MBTilesDataset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2966,1
    - Dst: MBTilesDataset*::CreateInternal
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 2974
      start: 2950
    functionDepth: 4
    functionLinenumber: 2950
    functionLinenumberEnd: 2974
    functionName: MBTilesDataset::Create
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - MBTilesDataset::MBTilesDataset
    - OGRMVTWriterDatasetCreate
    - CSLDestroy
    - MBTilesDataset*::CreateInternal
    - CSLSetNameValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *MBTilesDataset::Create(const char *pszFilename, int nXSize,\n
      \                                   int nYSize, int nBandsIn, GDALDataType eDT,\n
      \                                   char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2986,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2991,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2999,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:2999,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3001,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3001,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3002,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3002,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3004,1
    - Dst: const_cast<const char **>
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3004,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3010,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3011,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3013,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3014,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3017,1
    - Dst: OGRSQLiteCreateVFS
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3019,1
    - Dst: sqlite3_vfs_register
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3020,1
    - Dst: sqlite3_open_v2
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3021,1
    - Dst: sqlite3_open
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3027,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3032,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3036,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3038,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3048,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3052,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3056,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3060,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3061,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3065,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3066,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3069,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3071,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3072,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3074,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3075,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3076,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3078,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3079,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3080,1
    - Dst: GDALGPKGMBTilesGetTileFormat
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3084,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3088,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3091,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3092,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3096,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3099,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3100,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3108,1
    - Dst: SetBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3115,1
    - Dst: MBTilesBand::MBTilesBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3115,1
    - Dst: MBTilesDataset::ParseCompressionOptions
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eDT
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 3120
      start: 2980
    functionDepth: 2
    functionLinenumber: 2980
    functionLinenumberEnd: 3120
    functionName: MBTilesDataset::CreateInternal
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const char **>
    - OGRSQLiteCreateVFS
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - std::string::c_str
    - MBTilesDataset::ParseCompressionOptions
    - sqlite3_mprintf
    - sqlite3_open_v2
    - sqlite3_open
    - CPLTestBool
    - CPLFetchBool
    - VSIUnlink
    - SetDescription
    - sqlite3_exec
    - VSI_MALLOC3_VERBOSE
    - SetBand
    - MBTilesBand::MBTilesBand
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - sqlite3_vfs_register
    - sqlite3_free
    - GDALGPKGMBTilesGetTileFormat
    linkageType: ''
    returnType: bool
    signature: "bool MBTilesDataset::CreateInternal(const char *pszFilename, int nXSize,\n
      \                                   int nYSize, int nBandsIn, GDALDataType eDT,\n
      \                                   char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3153,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3170,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3171,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3175,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3194,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3195,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3196,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3197,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3198,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3199,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3200,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3200,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3201,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3202,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3203,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3205,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3205,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3207,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3207,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3208,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3208,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3208,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3209,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3210,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3213,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3214,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3214,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3223,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3227,1
    - Dst: GDALSuggestedWarpOutput2
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3236,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3240,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3241,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3245,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3247,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3263,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3292,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3294,1
    - Dst: fabs
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3300,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3302,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3307,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3334,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3337,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3338,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3338,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3339,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3340,1
    - Dst: atoi
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3341,1
    - Dst: OGRSpatialReference::GetAuthorityCode
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3341,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3355,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3363,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3366,1
    - Dst: MBTilesDataset::Create
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3374,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3378,1
    - Dst: GDALDataset*::SetGeoTransform
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3381,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3383,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3385,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3386,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3389,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3390,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3393,1
    - Dst: GDALCreateApproxTransformer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3402,1
    - Dst: GDALApproxTransformerOwnsSubtransformer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3404,1
    - Dst: GDALCreateWarpOptions
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3409,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3411,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3434,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3435,1
    - Dst: GDALWarpOperation::GDALWarpOperation
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3455,1
    - Dst: GDALWarpOperation::Initialize
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3457,1
    - Dst: GDALWarpOperation::ChunkAndWarpImage
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3463,1
    - Dst: GDALDestroyTransformer
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3471,1
    - Dst: GDALDestroyWarpOptions
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3472,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 157
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3475
      start: 3143
    functionDepth: 6
    functionLinenumber: 3143
    functionLinenumberEnd: 3475
    functionName: MBTilesDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALWarpOperation::Initialize
    - atoi
    - GDALTranslateOptionsFree
    - GDALDataset*::GetProjectionRef
    - MBTilesDataset::Create
    - CPLError
    - CPLStringList::CPLStringList
    - GDALWarpOperation::ChunkAndWarpImage
    - CPLStringList::List
    - GDALApproxTransformerOwnsSubtransformer
    - GDALDataset*::SetGeoTransform
    - ToHandle
    - GDALDataset*::GetSpatialRef
    - GDALDestroyGenImgProjTransformer
    - std::unique_ptr::reset
    - GDALSuggestedWarpOutput2
    - GDALDataset*::GetGeoTransform
    - CPLMalloc
    - auto::IsGeographic
    - OGRSpatialReference::SetFromUserInput
    - GDALCreateApproxTransformer
    - FromHandle
    - GDALDataset*::GetRasterBand
    - CPLStringList::AddString
    - GDALTranslateOptionsNew
    - GDALCreateWarpOptions
    - CPLSPrintf
    - GDALDataset*::GetRasterXSize
    - GDALDestroyTransformer
    - OGRSpatialReference::AutoIdentifyEPSG
    - std::unique_ptr::get
    - OGRSpatialReference::OGRSpatialReference
    - GDALDestroyWarpOptions
    - GDALTranslate
    - CSLDestroy
    - GDALCreateGenImgProjTransformer2
    - EQUAL
    - OGRSpatialReference::GetAuthorityCode
    - fabs
    - GDALWarpOperation::GDALWarpOperation
    - CSLSetNameValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *MBTilesDataset::CreateCopy(const char *pszFilename,\n
      \                                       GDALDataset *poSrcDS, int /*bStrict*/,\n
      \                                       char **papszOptions,\n                                        GDALProgressFunc
      pfnProgress,\n                                        void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3485,1
    - Dst: atoi
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3489,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3494
      start: 3481
    functionDepth: 1
    functionLinenumber: 3481
    functionLinenumberEnd: 3494
    functionName: MBTilesDataset::ParseCompressionOptions
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - CPLTestBool
    - atoi
    linkageType: ''
    returnType: void
    signature: void MBTilesDataset::ParseCompressionOptions(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3508
      start: 3500
    functionDepth: 0
    functionLinenumber: 3500
    functionLinenumberEnd: 3508
    functionName: GetFloorPowerOfTwo
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetFloorPowerOfTwo(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAccess
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3515,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3517,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3524,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3532,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3537,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3540,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3542,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3549,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3552,1
    - Dst: sqlite3_mprintf
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3555,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3558,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3559,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3567,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3575,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3580,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3597,1
    - Dst: GetFloorPowerOfTwo
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3602,1
    - Dst: CPLError
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3604,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3612,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3620,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3625,1
    - Dst: MBTilesDataset*::GetRasterBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3634,1
    - Dst: GDALRegenerateOverviewsMultiBand
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3640,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3646,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3648,1
    - Dst: sqlite3_get_table
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3659,1
    - Dst: atoi
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3665,1
    - Dst: sqlite3_free_table
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3667,1
    - Dst: min
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3676,1
    - Dst: sqlite3_exec
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3683,1
    - Dst: sqlite3_free
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3684,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 7
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nBandsIn
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3689
      start: 3510
    functionDepth: 2
    functionLinenumber: 3510
    functionLinenumberEnd: 3689
    functionName: MBTilesDataset::IBuildOverviews
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free_table
    - GetAccess
    - atoi
    - GetFloorPowerOfTwo
    - GDALRegenerateOverviewsMultiBand
    - CPLDebug
    - min
    - sqlite3_get_table
    - sqlite3_mprintf
    - sqlite3_free
    - CPLError
    - CPLCalloc
    - sqlite3_exec
    - CPLFree
    - FlushCache
    - MBTilesDataset*::GetRasterBand
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr MBTilesDataset::IBuildOverviews(\n    const char *pszResampling,
      int nOverviews, const int *panOverviewList,\n    int nBandsIn, const int * /*panBandList*/,
      GDALProgressFunc pfnProgress,\n    void *pProgressData, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3698,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3701,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3704,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3706,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3707,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3708,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3709,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3710,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3712,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3713,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3731,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3768,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3816,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3819,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3820,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3822,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3825,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3829,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3831,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp:3838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3695
    functionDepth: 1
    functionLinenumber: 3695
    functionLinenumberEnd: 3839
    functionName: GDALRegister_MBTiles
    functionSourceFile: /src/gdal/frmts/mbtiles/mbtilesdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_MBTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:49,1
    - Dst: isspace
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:55,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:55,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:64,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:64,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:64,1
    - Dst: min
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:72,1
    - Dst: atoi
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 74
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 74
    functionName: ReadInt
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - static_cast<unsigned char>
    - isspace
    - VSIFSeekL
    - min
    - CPL_IGNORE_RET_VAL
    - VSIFTellL
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int ReadInt(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:95,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - psBuffer
    argTypes:
    - Buffer*
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: USGSDEMRefillBuffer
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - memmove
    - VSIFReadL
    linkageType: ''
    returnType: void
    signature: void USGSDEMRefillBuffer(Buffer *psBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psBuffer
    argTypes:
    - Buffer*
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: USGSDEMGetCurrentFilePos
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFTellL
    linkageType: ''
    returnType: vsi_l_offset
    signature: vsi_l_offset USGSDEMGetCurrentFilePos(const Buffer *psBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:117,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:121,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:125,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - psBuffer
    - nNewPos
    argTypes:
    - Buffer*
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: USGSDEMSetCurrentFilePos
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - CPL_IGNORE_RET_VAL
    - static_cast<int>
    - VSIFTellL
    linkageType: ''
    returnType: void
    signature: void USGSDEMSetCurrentFilePos(Buffer *psBuffer, vsi_l_offset nNewPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: USGSDEMRefillBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:143,1
    - Dst: isspace
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:154,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:154,1
    - Dst: USGSDEMRefillBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:177,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:182,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:209,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 1
    argNames:
    - psBuffer
    argTypes:
    - Buffer*
    constantsTouched: []
    func_position:
      end: 212
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 212
    functionName: USGSDEMReadIntFromBuffer
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - USGSDEMRefillBuffer
    - isspace
    - static_cast<int>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: int
    signature: int USGSDEMReadIntFromBuffer(Buffer *psBuffer, int *pbSuccess = nullptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: USGSDEMRefillBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - psBuffer
    - nCharCount
    argTypes:
    - Buffer*
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 249
    functionName: USGSDEMReadDoubleFromBuffer
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - USGSDEMRefillBuffer
    linkageType: ''
    returnType: double
    signature: "double USGSDEMReadDoubleFromBuffer(Buffer *psBuffer, int nCharCount,\n
      \                                         int *pbSuccess = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:260,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:260,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - nCharCount
    argTypes:
    - VSILFILE*
    - int
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: DConvert
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    linkageType: ''
    returnType: double
    signature: double DConvert(VSILFILE *fp, int nCharCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: USGSDEMDataset*::GetRasterXSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:338,1
    - Dst: USGSDEMDataset*::GetRasterYSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - poDSIn
    argTypes:
    - USGSDEMDataset*
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: USGSDEMRasterBand::USGSDEMRasterBand
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - USGSDEMDataset*::GetRasterYSize
    - USGSDEMDataset*::GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void USGSDEMRasterBand::USGSDEMRasterBand(USGSDEMDataset *poDSIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<USGSDEMDataset *>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:351,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:356,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:356,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:357,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:357,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:358,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:358,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:363,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:363,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:374,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:374,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:379,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:384,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:391,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:397,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:406,1
    - Dst: USGSDEMReadDoubleFromBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:413,1
    - Dst: USGSDEMReadDoubleFromBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:425,1
    - Dst: USGSDEMReadDoubleFromBuffer
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:429,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:432,1
    - Dst: USGSDEMDataset*::m_oSRS::IsGeographic
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:436,1
    - Dst: std::isfinite
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:442,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:450,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:452,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:462,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:468,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:472,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:483,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:488,1
    - Dst: reinterpret_cast<GInt16 *>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:489,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:489,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:494,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:494,1
    - Dst: USGSDEMGetCurrentFilePos
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:505,1
    - Dst: USGSDEMSetCurrentFilePos
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:509,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:513,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - void*
    constantsTouched: []
    func_position:
      end: 516
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 516
    functionName: USGSDEMRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<USGSDEMDataset *>
    - CPLDebug
    - USGSDEMDataset*::m_oSRS::IsGeographic
    - GetYSize
    - USGSDEMSetCurrentFilePos
    - USGSDEMGetCurrentFilePos
    - reinterpret_cast<char *>
    - GetXSize
    - GDALCopyWords
    - CPLMalloc
    - GDALGetDataTypeSizeBytes
    - VSIFSeekL
    - static_cast<GInt16>
    - CPL_IGNORE_RET_VAL
    - USGSDEMReadDoubleFromBuffer
    - CPLFree
    - std::isfinite
    - reinterpret_cast<GInt16 *>
    - GetRasterDataType
    - reinterpret_cast<float *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr USGSDEMRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff,\n
      \                                    CPL_UNUSED int nBlockYOff, void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 529
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 529
    functionName: USGSDEMRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double USGSDEMRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<USGSDEMDataset *>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: USGSDEMRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<USGSDEMDataset *>
    linkageType: ''
    returnType: char
    signature: char *USGSDEMRasterBand::GetUnitType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:555,1
    - Dst: memset
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 557
    functionName: USGSDEMDataset::USGSDEMDataset
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - memset
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void USGSDEMDataset::USGSDEMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:566,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:569,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: USGSDEMDataset::~USGSDEMDataset()
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_IGNORE_RET_VAL
    - FlushCache
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void USGSDEMDataset::~USGSDEMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:585,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:585,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:594,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:594,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:599,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:600,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:601,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:602,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:605,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:605,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:608,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:609,1
    - Dst: CPLError
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:612,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:628,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:628,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:630,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:631,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:632,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:641,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:641,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:645,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:645,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:655,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:655,1
    - Dst: DConvert
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:660,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:673,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:673,1
    - Dst: DConvert
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:677,1
    - Dst: DConvert
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:678,1
    - Dst: min
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:683,1
    - Dst: max
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:684,1
    - Dst: min
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:685,1
    - Dst: max
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:686,1
    - Dst: DConvert
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:688,1
    - Dst: DConvert
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:689,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:691,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:691,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:697,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:698,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:705,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:705,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:707,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:707,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:717,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:717,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:720,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:720,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:726,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:731,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:735,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:739,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:746,1
    - Dst: OGRSpatialReference::SetWellKnownGeogCS
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:752,1
    - Dst: OGRSpatialReference::SetUTM
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:760,1
    - Dst: abs
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:760,1
    - Dst: OGRSpatialReference::SetLinearUnitsAndUpdateParameters
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:763,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:764,1
    - Dst: snprintf
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:766,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:768,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:775,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:776,1
    - Dst: OGRSpatialReference::SetStatePlane
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:778,1
    - Dst: std::move
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:781,1
    - Dst: floor
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:794,1
    - Dst: ceil
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:795,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:798,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:798,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:799,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:800,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:801,1
    - Dst: ReadInt
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:802,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:806,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:822,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:836,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 129
    argCount: 1
    argNames:
    - InDem
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 843
      start: 582
    functionDepth: 6
    functionLinenumber: 582
    functionLinenumberEnd: 843
    functionName: USGSDEMDataset::LoadFromFile
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLError
    - ceil
    - std::move
    - ReadInt
    - OGRSpatialReference::SetLinearUnitsAndUpdateParameters
    - CPLAtof
    - static_cast<int>
    - floor
    - VSIFSeekL
    - min
    - CPL_IGNORE_RET_VAL
    - abs
    - VSIFReadL
    - snprintf
    - OGRSpatialReference::SetStatePlane
    - DConvert
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SetNode
    - GDALCheckDatasetDimensions
    - max
    - OGRSpatialReference::SetUTM
    - OGRSpatialReference::SetWellKnownGeogCS
    linkageType: ''
    returnType: int
    signature: int USGSDEMDataset::LoadFromFile(VSILFILE *InDem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: USGSDEMDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr USGSDEMDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: USGSDEMDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *USGSDEMDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:876,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:877,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:878,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:879,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:880,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:883,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:884,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 888
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 888
    functionName: USGSDEMDataset::Identify
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int USGSDEMDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: USGSDEMDataset::Identify
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:897,1
    - Dst: USGSDEMDataset::USGSDEMDataset
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:903,1
    - Dst: USGSDEMDataset*::LoadFromFile
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:911,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:923,1
    - Dst: USGSDEMDataset*::SetBand
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:930,1
    - Dst: USGSDEMRasterBand::USGSDEMRasterBand
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:930,1
    - Dst: USGSDEMDataset*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:932,1
    - Dst: USGSDEMDataset*::SetDescription
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:937,1
    - Dst: USGSDEMDataset*::TryLoadXML
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:938,1
    - Dst: USGSDEMDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 946
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 946
    functionName: USGSDEMDataset::Open
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 0
    functionsReached:
    - USGSDEMDataset*::SetBand
    - USGSDEMDataset*::LoadFromFile
    - USGSDEMRasterBand::USGSDEMRasterBand
    - ReportUpdateNotSupportedByDriver
    - USGSDEMDataset*::SetDescription
    - USGSDEMDataset*::TryLoadXML
    - USGSDEMDataset*::SetMetadataItem
    - USGSDEMDataset::USGSDEMDataset
    - USGSDEMDataset::Identify
    - USGSDEMDataset*::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *USGSDEMDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:955,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:958,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:960,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:961,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:962,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:963,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:965,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:968,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 974
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 974
    functionName: GDALRegister_USGSDEM
    functionSourceFile: /src/gdal/frmts/usgsdem/usgsdemdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_USGSDEM()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ZarrDataset::GetRootGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: std::shared_ptr<GDALGroup> GetRootGroup() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::GetAttribute
      Src: /src/gdal/frmts/zarr/zarr.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: ZarrAttributeGroup::GetAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached:
    - ZarrAttributeGroup::GetAttribute
    linkageType: ''
    returnType: std::shared_ptr<GDALAttribute>
    signature: std::shared_ptr<GDALAttribute> GetAttribute(const std::string &osName)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: ZarrAttributeGroup::GetAttributes
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    linkageType: ''
    returnType: std::vector<std::shared_ptr<GDALAttribute>>
    signature: std::vector<std::shared_ptr<GDALAttribute>> GetAttributes(CSLConstList
      papszOptions = nullptr) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr.h:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - osName
    - anDimensions
    - oDataType
    argTypes:
    - std::string
    - std::vector<GUInt64>
    - GDALExtendedDataType
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: ZarrAttributeGroup::CreateAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached:
    - ZarrAttributeGroup::CreateAttribute
    linkageType: ''
    returnType: std::shared_ptr<GDALAttribute>
    signature: "std::shared_ptr<GDALAttribute> CreateAttribute(const std::string &osName,\n
      \                   const std::vector<GUInt64> &anDimensions,\n                    const
      GDALExtendedDataType &oDataType,\n                    CSLConstList /* papszOptions
      */ = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: ZarrAttributeGroup::DeleteAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DeleteAttribute(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:190,1
    - Dst: std::dynamic_pointer_cast<MEMAttribute>
      Src: /src/gdal/frmts/zarr/zarr.h:193,1
    - Dst: auto::SetWritable
      Src: /src/gdal/frmts/zarr/zarr.h:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - bUpdatable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: ZarrAttributeGroup::SetUpdatable
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    - auto::SetWritable
    - std::dynamic_pointer_cast<MEMAttribute>
    linkageType: ''
    returnType: void
    signature: void SetUpdatable(bool bUpdatable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:202,1
    - Dst: std::dynamic_pointer_cast<MEMAttribute>
      Src: /src/gdal/frmts/zarr/zarr.h:205,1
    - Dst: auto::SetModified
      Src: /src/gdal/frmts/zarr/zarr.h:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: ZarrAttributeGroup::UnsetModified
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    - std::dynamic_pointer_cast<MEMAttribute>
    - auto::SetModified
    linkageType: ''
    returnType: void
    signature: void UnsetModified()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:215,1
    - Dst: std::dynamic_pointer_cast<MEMAttribute>
      Src: /src/gdal/frmts/zarr/zarr.h:218,1
    - Dst: auto::IsModified
      Src: /src/gdal/frmts/zarr/zarr.h:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: ZarrAttributeGroup::IsModified
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    - auto::IsModified
    - std::dynamic_pointer_cast<MEMAttribute>
    linkageType: ''
    returnType: bool
    signature: bool IsModified() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: ZarrSharedResource::IsUpdatable
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUpdatable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: ZarrSharedResource::EnableZMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnableZMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: '&GetPAM()'
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GDALPamMultiDim>
    signature: std::shared_ptr<GDALPamMultiDim> &GetPAM()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: '&GetOpenOptions() const'
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList &GetOpenOptions() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOpenOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: ZarrSharedResource::SetOpenOptions
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOpenOptions(CSLConstList papszOpenOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr.h:300,1
    - Dst: ZarrSharedResource::OpenRootGroup
      Src: /src/gdal/frmts/zarr/zarr.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: ZarrSharedResource::GetRootGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - lock
    - ZarrSharedResource::OpenRootGroup
    linkageType: ''
    returnType: std::shared_ptr<ZarrGroupBase>
    signature: std::shared_ptr<ZarrGroupBase> GetRootGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poRootGroup
    argTypes:
    - std::shared_ptr<ZarrGroupBase>
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: ZarrSharedResource::SetRootGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRootGroup(const std::shared_ptr<ZarrGroupBase> &poRootGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrSharedResource::AddArrayInLoading
      Src: /src/gdal/frmts/zarr/zarr.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poSharedResource
    - osFilename
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: ZarrSharedResource::SetFilenameAdder
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrSharedResource::AddArrayInLoading
    linkageType: ''
    returnType: void
    signature: "void SetFilenameAdder(\n            const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n            const std::string &osFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemoveArrayInLoading
      Src: /src/gdal/frmts/zarr/zarr.h:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: ~SetFilenameAdder()
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - RemoveArrayInLoading
    linkageType: ''
    returnType: void
    signature: void ~SetFilenameAdder()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: ZarrSharedResource::ok
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::ZarrAttributeGroup
      Src: /src/gdal/frmts/zarr/zarr.h:372,1
    - Dst: ZarrGroupBase
      Src: /src/gdal/frmts/zarr/zarr.h:399,1
    - Dst: LoadAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:404,1
    - Dst: ZarrAttributeGroup::GetAttribute
      Src: /src/gdal/frmts/zarr/zarr.h:405,1
    - Dst: LoadAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:411,1
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:412,1
    - Dst: std::static_pointer_cast<GDALGroup>
      Src: /src/gdal/frmts/zarr/zarr.h:446,1
    - Dst: OpenZarrGroup
      Src: /src/gdal/frmts/zarr/zarr.h:447,1
    - Dst: std::static_pointer_cast<GDALMDArray>
      Src: /src/gdal/frmts/zarr/zarr.h:457,1
    - Dst: OpenZarrArray
      Src: /src/gdal/frmts/zarr/zarr.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 499
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    - OpenZarrArray
    - ZarrGroupBase
    - ZarrAttributeGroup::ZarrAttributeGroup
    - LoadAttributes
    - ZarrAttributeGroup::GetAttribute
    - OpenZarrGroup
    - std::static_pointer_cast<GDALGroup>
    - std::static_pointer_cast<GDALMDArray>
    linkageType: ''
    returnType: class ZarrGroupBase
    signature: class ZarrGroupBase CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poSharedResource
    - osParentName
    - osName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: ZarrV2Group::ZarrV2Group
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZarrV2Group(const std::shared_ptr<ZarrSharedResource> &poSharedResource,\n
      \               const std::string &osParentName, const std::string &osName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: ZarrV3Group::SetExplored
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetExplored()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrSharedResource>::IsUpdatable
      Src: /src/gdal/frmts/zarr/zarr.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - poSharedResource
    - poParentGroup
    - osParentName
    - osName
    - osType
    - osDirection
    - nSize
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::weak_ptr<ZarrGroupBase>
    - std::string
    - std::string
    - std::string
    - std::string
    - GUInt64
    constantsTouched: []
    func_position:
      end: 635
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 635
    functionName: ZarrDimension::ZarrDimension
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - std::shared_ptr<ZarrSharedResource>::IsUpdatable
    linkageType: ''
    returnType: void
    signature: "void ZarrDimension(const std::shared_ptr<ZarrSharedResource> &poSharedResource,\n
      \                 const std::weak_ptr<ZarrGroupBase> &poParentGroup,\n                  const
      std::string &osParentName, const std::string &osName,\n                  const
      std::string &osType, const std::string &osDirection,\n                  GUInt64
      nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 642
    functionName: ZarrDimension::IsModified
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsModified() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: ZarrDimension::SetXArrayDimension
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetXArrayDimension()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: ZarrDimension::IsXArrayDimension
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsXArrayDimension() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrByteVectorQuickResize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 697
    functionName: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrByteVectorQuickResize(const ZarrByteVectorQuickResize &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 699
    functionName: "&\n    operator=(const ZarrByteVectorQuickResize &)"
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZarrByteVectorQuickResize
    signature: "ZarrByteVectorQuickResize &\n    operator=(const ZarrByteVectorQuickResize
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrByteVectorQuickResize(ZarrByteVectorQuickResize &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 703
    functionName: "&\n    operator=(ZarrByteVectorQuickResize &&)"
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZarrByteVectorQuickResize
    signature: "ZarrByteVectorQuickResize &\n    operator=(ZarrByteVectorQuickResize
      &&)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr.h:707,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr.h:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nNewSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: ZarrByteVectorQuickResize::resize
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached:
    - ZarrByteVectorQuickResize::size
    - ZarrByteVectorQuickResize::resize
    linkageType: ''
    returnType: void
    signature: void resize(size_t nNewSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: ZarrByteVectorQuickResize::empty
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 720
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 720
    functionName: ZarrByteVectorQuickResize::size
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr.h:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 727
    functionName: ZarrByteVectorQuickResize::capacity
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrByteVectorQuickResize::size
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr.h:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: ZarrByteVectorQuickResize::data
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 1
    functionsReached:
    - ZarrByteVectorQuickResize::data
    linkageType: ''
    returnType: GByte
    signature: GByte *data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr.h:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: ZarrByteVectorQuickResize::data
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 2
    functionsReached:
    - ZarrByteVectorQuickResize::data
    linkageType: ''
    returnType: GByte
    signature: GByte *data() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: operator[](size_t idx) const
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte operator[](size_t idx) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: '&operator[](size_t idx)'
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: GByte &operator[](size_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALExtendedDataType::GDALExtendedDataType
      Src: /src/gdal/frmts/zarr/zarr.h:759,1
    - Dst: ZarrAttributeGroup::ZarrAttributeGroup
      Src: /src/gdal/frmts/zarr/zarr.h:775,1
    - Dst: ZarrArray
      Src: /src/gdal/frmts/zarr/zarr.h:877,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr.h:916,1
    - Dst: ZarrAttributeGroup::Init
      Src: /src/gdal/frmts/zarr/zarr.h:988,1
    - Dst: ZarrAttributeGroup::GetAttribute
      Src: /src/gdal/frmts/zarr/zarr.h:999,1
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr.h:1005,1
    - Dst: std::shared_ptr::GetRootGroup
      Src: /src/gdal/frmts/zarr/zarr.h:1049,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr.h:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 1065
    functionName: GDALPamMDArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrAttributeGroup::GetAttributes
    - std::shared_ptr::GetRootGroup
    - ZarrAttributeGroup::Init
    - ZarrAttributeGroup::ZarrAttributeGroup
    - GDALExtendedDataType::GDALExtendedDataType
    - ZarrAttributeGroup::GetAttribute
    - ZarrArray
    - CPLStringList::SetNameValue
    - CPLStringList::List
    linkageType: ''
    returnType: class ZarrArray
    signature: class ZarrArray GDALPamMDArray
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: ZarrV2Array::ZarrV2Array
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array(const ZarrV2Array &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1107
    functionName: '&operator=(const ZarrV2Array &)'
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZarrV2Array
    signature: ZarrV2Array &operator=(const ZarrV2Array &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - osDecompressorId
    - psComp
    - psDecomp
    argTypes:
    - std::string
    - CPLCompressor*
    - CPLCompressor*
    constantsTouched: []
    func_position:
      end: 1129
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1129
    functionName: ZarrV2Array::SetCompressorDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetCompressorDecompressor(const std::string &osDecompressorId,\n
      \                                  const CPLCompressor *psComp,\n                                   const
      CPLCompressor *psDecomp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: GetEltCount
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetEltCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Codec
      Src: /src/gdal/frmts/zarr/zarr.h:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1223
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - ZarrV3Codec
    linkageType: ''
    returnType: class ZarrV3Codec
    signature: class ZarrV3Codec CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1247
    functionName: CPL_NON_FINAL
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class ZarrV3CodecAbstractCompressor
    signature: class ZarrV3CodecAbstractCompressor CPL_NON_FINAL
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1252
    functionName: GetOutputType
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IOType
    signature: IOType GetOutputType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1345
    functionName: ZarrV3CodecBytes::GetInputType
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IOType
    signature: IOType GetInputType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1350
    functionName: ZarrV3CodecBytes::GetOutputType
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IOType
    signature: IOType GetOutputType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1363
    functionName: ZarrV3CodecBytes::IsNoOp
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNoOp() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1368
    functionName: ZarrV3CodecBytes::IsNoOp
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNoOp() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: ZarrV3CodecTranspose::GetInputType
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IOType
    signature: IOType GetInputType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1412
    functionName: ZarrV3CodecTranspose::GetOutputType
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IOType
    signature: IOType GetOutputType() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - oInputArrayMetadata
    argTypes:
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 1449
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1449
    functionName: ZarrV3CodecSequence::ZarrV3CodecSequence
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecSequence(const ZarrArrayMetadata &oInputArrayMetadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1459
    functionName: '&GetJSon() const'
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject &GetJSon() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1509
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1509
    functionName: ZarrV3Array::SetIsV2ChunkKeyEncoding
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetIsV2ChunkKeyEncoding(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr.h:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - poCodecs
    argTypes:
    - std::unique_ptr<ZarrV3CodecSequence>
    constantsTouched: []
    func_position:
      end: 1514
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1514
    functionName: ZarrV3Array::SetCodecs
    functionSourceFile: /src/gdal/frmts/zarr/zarr.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SetCodecs(std::unique_ptr<ZarrV3CodecSequence> &&poCodecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '&GetMapKeys() const'
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, VSIKerchunkKeyInfo>
    signature: std::map<std::string, VSIKerchunkKeyInfo> &GetMapKeys() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:69,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - abyValue
    argTypes:
    - std::string
    - std::vector<GByte>
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: VSIKerchunkRefFile::AddInlineContent
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AddInlineContent(const std::string &key, std::vector<GByte> &&abyValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:76,1
    - Dst: std::vector::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:78,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:79,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:80,1
    - Dst: std::string_view::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:80,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:80,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:81,1
    - Dst: std::string_view::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:81,1
    - Dst: std::string_view::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:82,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:86,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:89,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:92,1
    - Dst: std::vector::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:96,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:97,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:97,1
    - Dst: std::string_view::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:97,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:98,1
    - Dst: std::string_view::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:98,1
    - Dst: std::string_view::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:98,1
    - Dst: VSIKerchunkRefFile::AddInlineContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:101,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - std::string
    - std::string_view
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: VSIKerchunkRefFile::AddInlineContent
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 1
    functionsReached:
    - std::vector::end
    - CPLError
    - VSIKerchunkRefFile::AddInlineContent
    - reinterpret_cast<const GByte *>
    - std::string_view::size
    - std::move
    - strlen
    - std::vector::push_back
    - std::string_view::data
    - std::string::c_str
    - cpl::starts_with
    - std::vector::resize
    - std::vector::insert
    linkageType: ''
    returnType: bool
    signature: bool AddInlineContent(const std::string &key, const std::string_view
      &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:108,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - key
    - osURI
    - nOffset
    - nSize
    argTypes:
    - std::string
    - std::string
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: VSIKerchunkRefFile::AddReferencedContent
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::move
    linkageType: ''
    returnType: void
    signature: "void AddReferencedContent(const std::string &key, const std::string
      &osURI,\n                              uint64_t nOffset, uint32_t nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: VSIKerchunkJSONRefFileSystem::VSIKerchunkJSONRefFileSystem
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - IsFileSystemInstantiated
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkJSONRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: ~VSIKerchunkJSONRefFileSystem()
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - IsFileSystemInstantiated
    linkageType: ''
    returnType: void
    signature: void ~VSIKerchunkJSONRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: '&IsFileSystemInstantiated()'
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool &IsFileSystemInstantiated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:182,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:183,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:184,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:185,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:187,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:187,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:215,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:219,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:219,1
    - Dst: strstr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:230,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:234,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:237,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:243,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:250,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:257,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:257,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:259,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 262
    functionName: VSIKerchunkJSONRefFileSystem::SplitFilename
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - strstr
    - strlen
    - std::string
    - CPLError
    - STARTS_WITH
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> VSIKerchunkJSONRefFileSystem::SplitFilename(const
      char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPrettyFormatting
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refFile
    argTypes:
    - std::shared_ptr<VSIKerchunkRefFile>
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: VSIKerchunkJSONRefParser::VSIKerchunkJSONRefParser
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - SetPrettyFormatting
    linkageType: ''
    returnType: void
    signature: "void VSIKerchunkJSONRefParser(\n        const std::shared_ptr<VSIKerchunkRefFile>
      &refFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: ~VSIKerchunkJSONRefParser()
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~VSIKerchunkJSONRefParser()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddInlineContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:295,1
    - Dst: std::string_view
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:296,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:298,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:301,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:303,1
    - Dst: assign
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:309,1
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContentInArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:313,1
    - Dst: Add
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:318,1
    - Dst: std::string_view
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - pszValue
    - nLength
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 320
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 320
    functionName: VSIKerchunkJSONRefParser::String
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - Add
    - assign
    - StopParsing
    - std::string_view
    - VSIKerchunkJSONRefParser::UnexpectedContentInArray
    - AddInlineContent
    - clear
    linkageType: ''
    returnType: void
    signature: void String(const char *pszValue, size_t nLength) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:330,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:333,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:333,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:335,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:337,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:342,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:343,1
    - Dst: assign
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:348,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:353,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:354,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:356,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:361,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:362,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:366,1
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContentInArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:371,1
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:376,1
    - Dst: AddSerializedValue
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:381,1
    - Dst: std::string_view
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:381,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - pszValue
    - nLength
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 383
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 383
    functionName: VSIKerchunkJSONRefParser::Number
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - VSIKerchunkJSONRefParser::UnexpectedContent
    - c_str
    - AddSerializedValue
    - find
    - assign
    - StopParsing
    - static_cast<uint32_t>
    - std::string_view
    - CPLError
    - VSIKerchunkJSONRefParser::UnexpectedContentInArray
    - std::strtoull
    linkageType: ''
    returnType: void
    signature: void Number(const char *pszValue, size_t nLength) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:389,1
    - Dst: Add
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: VSIKerchunkJSONRefParser::Boolean
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - Add
    - VSIKerchunkJSONRefParser::UnexpectedContent
    linkageType: ''
    returnType: void
    signature: void Boolean(bool b) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:401,1
    - Dst: AddNull
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: VSIKerchunkJSONRefParser::Null
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkJSONRefParser::UnexpectedContent
    - AddNull
    linkageType: ''
    returnType: void
    signature: void Null() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContentInArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:413,1
    - Dst: StartObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 424
    functionName: VSIKerchunkJSONRefParser::StartObject
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkJSONRefParser::UnexpectedContentInArray
    - StartObj
    linkageType: ''
    returnType: void
    signature: void StartObject() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkJSONRefParser::FinishObjectValueProcessing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:430,1
    - Dst: EndObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 437
    functionName: VSIKerchunkJSONRefParser::EndObject
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkJSONRefParser::FinishObjectValueProcessing
    - EndObj
    linkageType: ''
    returnType: void
    signature: void EndObject() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:443,1
    - Dst: memcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:444,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:454,1
    - Dst: memcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:455,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:457,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:460,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:463,1
    - Dst: memcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:464,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:466,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:469,1
    - Dst: VSIKerchunkJSONRefParser::FinishObjectValueProcessing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:474,1
    - Dst: assign
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:475,1
    - Dst: AddObjKey
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:479,1
    - Dst: std::string_view
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:479,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - pszKey
    - nLength
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 482
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 482
    functionName: VSIKerchunkJSONRefParser::StartObjectMember
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - StopParsing
    - memcmp
    - assign
    - VSIKerchunkJSONRefParser::FinishObjectValueProcessing
    - AddObjKey
    - strlen
    - std::string_view
    - CPLError
    linkageType: ''
    returnType: void
    signature: void StartObjectMember(const char *pszKey, size_t nLength) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:491,1
    - Dst: VSIKerchunkJSONRefParser::UnexpectedContentInArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:498,1
    - Dst: VSIKerchunkJSONRefParser::StartArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 506
    functionName: VSIKerchunkJSONRefParser::StartArray
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 1
    functionsReached:
    - VSIKerchunkJSONRefParser::UnexpectedContentInArray
    - VSIKerchunkJSONRefParser::StartArray
    - clear
    linkageType: ''
    returnType: void
    signature: void StartArray() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:514,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:517,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:518,1
    - Dst: AddReferencedContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:522,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:525,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:526,1
    - Dst: VSIKerchunkJSONRefParser::EndArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 535
    functionName: VSIKerchunkJSONRefParser::EndArray
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - AddReferencedContent
    - VSIKerchunkJSONRefParser::EndArray
    - StopParsing
    - CPLError
    - clear
    linkageType: ''
    returnType: void
    signature: void EndArray() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: VSIKerchunkJSONRefParser::StartArrayMember
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartArrayMember() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszMessage
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: VSIKerchunkJSONRefParser::Exception
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: void
    signature: void Exception(const char *pszMessage) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:565,1
    - Dst: GetString
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:567,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:568,1
    - Dst: AddInlineContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:568,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:570,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 574
    functionName: VSIKerchunkJSONRefParser::FinishObjectValueProcessing
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 2
    functionsReached:
    - empty
    - GetString
    - CPL_IGNORE_RET_VAL
    - AddInlineContent
    - clear
    linkageType: ''
    returnType: void
    signature: void FinishObjectValueProcessing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:578,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: VSIKerchunkJSONRefParser::UnexpectedContent
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 3
    functionsReached:
    - CPLError
    - StopParsing
    linkageType: ''
    returnType: void
    signature: void UnexpectedContent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:584,1
    - Dst: StopParsing
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: VSIKerchunkJSONRefParser::UnexpectedContentInArray
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 4
    functionsReached:
    - CPLError
    - StopParsing
    linkageType: ''
    returnType: void
    signature: void UnexpectedContentInArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<VSIKerchunkRefFile>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:601,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:604,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:605,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:610,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:610,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:613,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:613,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:613,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:616,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:617,1
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:621,1
    - Dst: auto::Seek
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:623,1
    - Dst: auto::Tell
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:624,1
    - Dst: auto::Seek
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:625,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:629,1
    - Dst: VSIKerchunkJSONRefParser::Parse
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:636,1
    - Dst: std::string::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:636,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:645,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:647,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:647,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:654,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:655,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:657,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:665,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:667,1
    - Dst: auto::Tell
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:667,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:667,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:669,1
    - Dst: auto::Tell
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:674,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:676,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:677,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:681,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - osJSONFilename
    - pfnProgress
    - pProgressData
    argTypes:
    - std::string
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 684
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 684
    functionName: VSIKerchunkJSONRefFileSystem::LoadStreaming
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - CPLDebugOnly
    - what
    - CPLError
    - VSIKerchunkJSONRefParser::Parse
    - std::string::data
    - std::string::size
    - static_cast<uint64_t>
    - auto::Seek
    - CPLDebug
    - VSIFOpenL
    - VSIVirtualHandleUniquePtr
    - auto::Tell
    - std::string::resize
    - pfnProgress
    - std::make_shared<VSIKerchunkRefFile>
    - std::string::c_str
    - cpl::starts_with
    - VSIFileManager::GetHandler
    linkageType: ''
    returnType: std::shared_ptr<VSIKerchunkRefFile>
    signature: "std::shared_ptr<VSIKerchunkRefFile> VSIKerchunkJSONRefFileSystem::LoadStreaming(const
      std::string &osJSONFilename,\n                                            GDALProgressFunc
      pfnProgress,\n                                            void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:697,1
    - Dst: VSIVirtualHandleUniquePtr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:700,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:700,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:700,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:703,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:704,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:709,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:711,1
    - Dst: ZARRIsLikelyStreamableKerchunkJSONRefContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:712,1
    - Dst: VSIKerchunkJSONRefFileSystem::LoadStreaming
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:714,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:717,1
    - Dst: VSIKerchunkJSONRefFileSystem::LoadStreaming
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:719,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:722,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:727,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:729,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:731,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:736,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:737,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:738,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:739,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:743,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:745,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:746,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:748,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:753,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:755,1
    - Dst: auto::ToInteger
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:759,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:761,1
    - Dst: auto::ToInteger
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:763,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:770,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:772,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:778,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:780,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:786,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:787,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:789,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:794,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:796,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:802,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:804,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:811,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:813,1
    - Dst: std::make_shared<VSIKerchunkRefFile>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:818,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:819,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:821,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:822,1
    - Dst: auto::AddInlineContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:824,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:824,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:829,1
    - Dst: Format
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:832,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:833,1
    - Dst: auto::AddInlineContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:834,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:836,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:838,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:843,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:843,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:845,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:848,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:851,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:853,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:856,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:859,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:861,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:862,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:863,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:865,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:869,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:872,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:873,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:874,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:875,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:875,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:876,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:878,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:882,1
    - Dst: auto::AddReferencedContent
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:887,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:888,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:889,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:889,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:890,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:890,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:890,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:895,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:898,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 3
    argNames:
    - osJSONFilename
    - pfnProgress
    - pProgressData
    argTypes:
    - std::string
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 904
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 904
    functionName: VSIKerchunkJSONRefFileSystem::LoadInternal
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkJSONRefFileSystem::LoadStreaming
    - CPLJSONDocument::Load
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - static_cast<uint32_t>
    - CPLError
    - std::string::c_str
    - CPLJSONObject::GetType
    - simple_max
    - std::move
    - CPLJSONObject::IsValid
    - std::make_shared<VSIKerchunkRefFile>
    - Format
    - auto::Size
    - GetName
    - auto::AddInlineContent
    - ToLong
    - ToArray
    - CPLTestBool
    - ToString
    - CPLJSONObject::CPLJSONObject
    - static_cast<uint64_t>
    - VSIFOpenL
    - std::string::resize
    - GetType
    - CPL_IGNORE_RET_VAL
    - auto::IsValid
    - auto::AddReferencedContent
    - CPLDebugOnly
    - auto::GetObj
    - ZARRIsLikelyStreamableKerchunkJSONRefContent
    - CPLJSONObject::GetChildren
    - EQUAL
    - VSIVirtualHandleUniquePtr
    - auto::ToInteger
    - CPLJSONObject::GetObj
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: std::shared_ptr<VSIKerchunkRefFile>
    signature: "std::shared_ptr<VSIKerchunkRefFile> VSIKerchunkJSONRefFileSystem::LoadInternal(const
      std::string &osJSONFilename,\n                                           GDALProgressFunc
      pfnProgress,\n                                           void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryGet
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:915,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:916,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:921,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:923,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:925,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:928,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:932,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:932,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:933,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:935,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:936,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:937,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:940,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:940,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:941,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:942,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:943,1
    - Dst: GDALGetCacheDirectory
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:945,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:946,1
    - Dst: VSIGetPathSpecificOption
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:948,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:949,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:950,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:950,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:953,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:954,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:954,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:955,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:956,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:958,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:958,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:958,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:963,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:964,1
    - Dst: VSIMkdirRecursive
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:968,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:968,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:969,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:969,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:970,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:972,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:973,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:974,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:978,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:978,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:981,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:982,1
    - Dst: strstr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:986,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:988,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:991,1
    - Dst: CPLLockFileEx
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:992,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:992,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:993,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:998,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:999,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1002,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1005,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1008,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1010,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1015,1
    - Dst: release
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1029,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1036,1
    - Dst: CPLUnlockFileEx
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1038,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1048,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1048,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1048,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1053,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1055,1
    - Dst: VSIKerchunkJSONRefFileSystem::LoadInternal
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1059,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1063,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1065,1
    - Dst: strstr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1068,1
    - Dst: CPLSleep
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1071,1
    - Dst: std::shared_ptr::ConvertToParquetRef
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1074,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1076,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1078,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1082,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1084,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1085,1
    - Dst: LockFileHolder::release
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1088,1
    - Dst: insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1089,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1092,1
    - Dst: VSIKerchunkJSONRefFileSystem::LoadInternal
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1096,1
    - Dst: insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1098,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1099,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 2
    argNames:
    - osJSONFilename
    - bUseCache
    argTypes:
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 1100
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 1100
    functionName: VSIKerchunkJSONRefFileSystem::Load
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - CPLUnlockFileEx
    - CPLDebug
    - CPLLockFileEx
    - std::shared_ptr::ConvertToParquetRef
    - CPLError
    - tryGet
    - std::string::c_str
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - std::string::empty
    - GDALGetCacheDirectory
    - insert
    - VSI_ISDIR
    - VSIMkdirRecursive
    - CPLTestBool
    - release
    - static_cast<uint64_t>
    - CPLSPrintf
    - CPLAssert
    - VSIGetPathSpecificOption
    - strstr
    - CPLStringList::SetNameValue
    - CPLFormFilenameSafe
    - GDALGetDriverByName
    - CPLSleep
    - VSIStatL
    - CPLGetBasenameSafe
    - VSIKerchunkJSONRefFileSystem::LoadInternal
    - std::string
    - LockFileHolder::release
    linkageType: ''
    returnType: std::pair<std::shared_ptr<VSIKerchunkRefFile>, std::string>
    signature: "std::pair<std::shared_ptr<VSIKerchunkRefFile>, std::string> VSIKerchunkJSONRefFileSystem::Load(const
      std::string &osJSONFilename,\n                                   bool bUseCache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Serializer *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1120,1
    - Dst: Serializer*::m_poFile::Write
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1121,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1121,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1126,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1126,1
    - Dst: std::unique_ptr<VSIVirtualHandle>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1128,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1129,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1129,1
    - Dst: auto::get
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1132,1
    - Dst: CPLJSonStreamingWriter::StartObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1144,1
    - Dst: CPLJSonStreamingWriter::AddObjKey
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1145,1
    - Dst: CPLJSonStreamingWriter::StartObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1146,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1153,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1153,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1154,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1156,1
    - Dst: std::string::append
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1158,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1158,1
    - Dst: abyValue::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1158,1
    - Dst: abyValue::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1159,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1160,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1160,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1162,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1163,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1168,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1170,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1170,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1172,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1173,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1174,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1174,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1175,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1175,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1179,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1181,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1182,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1190,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1196,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1200,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1208,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1210,1
    - Dst: CPLJSonStreamingWriter::clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1211,1
    - Dst: CPLJSonStreamingWriter::AddObjKey
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1216,1
    - Dst: CPLJSonStreamingWriter::AddSerializedValue
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1217,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1221,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1221,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1222,1
    - Dst: CPLJSonStreamingWriter::EndObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1234,1
    - Dst: CPLJSonStreamingWriter::AddObjKey
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1235,1
    - Dst: CPLJSonStreamingWriter::Add
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1236,1
    - Dst: CPLJSonStreamingWriter::EndObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1237,1
    - Dst: auto::Close
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1240,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1241,1
    - Dst: CPLJSonStreamingWriter::clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1245,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1246,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1246,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1253,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1253,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1254,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1260,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1260,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1261,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1262,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1266,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1266,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1266,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1267,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1267,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1268,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1269,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1270,1
    - Dst: auto::anChunkCount::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1271,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1274,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1277,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1278,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1280,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1283,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1284,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1299,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1301,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1309,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1313,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1318,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1319,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1320,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1325,1
    - Dst: std::unique_ptr::Close
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1339,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1341,1
    - Dst: std::unique_ptr::GetDescription
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1343,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1346,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1348,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1349,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1349,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1349,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1352,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1354,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1355,1
    - Dst: VSIMkdirRecursive
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1356,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1357,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1357,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1358,1
    - Dst: auto::Create
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1358,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1358,1
    - Dst: std::unique_ptr::CreateLayer
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1362,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1363,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1363,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1364,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1369,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1373,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1377,1
    - Dst: OGRLayer*::CreateField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1381,1
    - Dst: std::make_unique<OGRFeature>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1389,1
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1389,1
    - Dst: auto::chunkInfo::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1390,1
    - Dst: auto::chunkInfo::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1391,1
    - Dst: auto::SetField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1395,1
    - Dst: auto*::posURI::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1395,1
    - Dst: auto::SetField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1396,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1397,1
    - Dst: auto::SetField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1398,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1398,1
    - Dst: auto*::abyValue::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1399,1
    - Dst: auto*::abyValue::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1401,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1402,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1404,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1407,1
    - Dst: auto::SetField
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1410,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1411,1
    - Dst: auto*::abyValue::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1411,1
    - Dst: static_cast<const void *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1412,1
    - Dst: auto*::abyValue::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1412,1
    - Dst: OGRLayer*::CreateFeature
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1416,1
    - Dst: auto::get
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1416,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1418,1
    - Dst: std::unique_ptr::GetDescription
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1420,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1426,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1426,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1427,1
    - Dst: std::unique_ptr::Close
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1436,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1438,1
    - Dst: std::unique_ptr::GetDescription
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1439,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1442,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1446,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1446,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1449,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1450,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1450,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1455,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 156
    argCount: 3
    argNames:
    - osCacheDir
    - pfnProgress
    - pProgressData
    argTypes:
    - std::string
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1458
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1458
    functionName: VSIKerchunkRefFile::ConvertToParquetRef
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - CPLJSonStreamingWriter::Add
    - auto*::abyValue::size
    - CPLGetFilename
    - std::map::end
    - std::string::append
    - auto::Close
    - auto::get
    - abyValue::size
    - CPLJSONDocument::GetRoot
    - auto::Create
    - strcmp
    - auto::chunkInfo::find
    - auto::chunkInfo::end
    - auto::SetField
    - CPLError
    - std::vector::push_back
    - std::string::c_str
    - CPLStringList::CPLStringList
    - auto*::abyValue::empty
    - CPLStringList::List
    - simple_max
    - static_cast<GIntBig>
    - static_cast<Serializer *>
    - static_cast<const void *>
    - auto::anChunkCount::empty
    - CPLGetDirnameSafe
    - CPLJSonStreamingWriter::StartObj
    - abyValue::data
    - GetGDALDriverManager
    - std::unique_ptr::CreateLayer
    - VSIMkdirRecursive
    - pfnProgress
    - CPLJSonStreamingWriter::AddSerializedValue
    - std::move
    - strlen
    - std::unique_ptr::Close
    - OGRLayer*::GetLayerDefn
    - CSLTokenizeString2
    - std::unique_ptr::reset
    - CPLStringList::size
    - auto::Size
    - CPLJSonStreamingWriter::clear
    - cpl::ends_with
    - OGRLayer*::CreateFeature
    - std::make_unique<OGRFeature>
    - VSIRename
    - Serializer*::m_poFile::Write
    - CPLJSONDocument::LoadMemory
    - c_str
    - std::unique_ptr<VSIVirtualHandle>
    - reinterpret_cast<const char *>
    - std::unique_ptr::GetDescription
    - static_cast<int>
    - VSIUnlink
    - OGRLayer*::CreateField
    - CPLSPrintf
    - auto*::posURI::c_str
    - VSIFOpenL
    - std::map::find
    - CPLAssert
    - auto::IsValid
    - auto::anChunkCount::size
    - CPLJSonStreamingWriter::AddObjKey
    - CPLStringList::SetNameValue
    - auto*::abyValue::data
    - CPLFormFilenameSafe
    - CPLJSonStreamingWriter::EndObj
    - static_cast<double>
    - static_cast<size_t>
    - CPLDebugOnly
    - CPLGetPathSafe
    - CPLGetBasenameSafe
    - ToLong
    - CPLJSONDocument::CPLJSONDocument
    - std::strtoull
    - auto::reset
    linkageType: ''
    returnType: bool
    signature: "bool VSIKerchunkRefFile::ConvertToParquetRef(const std::string &osCacheDir,\n
      \                                            GDALProgressFunc pfnProgress,\n
      \                                            void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1469,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1471,1
    - Dst: cpl::down_cast<VSIKerchunkJSONRefFileSystem *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1477,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1478,1
    - Dst: auto::m_oCache::tryGet
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1480,1
    - Dst: auto::LoadInternal
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1486,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1493,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1495,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1496,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1499,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1503,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1509,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - pszSrcJSONFilename
    - pszDstDirname
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - char*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1518
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1518
    functionName: VSIKerchunkConvertJSONToParquet
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - GDALDestroyScaledProgress
    - auto::m_oCache::tryGet
    - VSIMkdir
    - cpl::down_cast<VSIKerchunkJSONRefFileSystem *>
    - auto::LoadInternal
    - CPLError
    - what
    - VSIFileManager::GetHandler
    linkageType: ''
    returnType: bool
    signature: "bool VSIKerchunkConvertJSONToParquet(const char *pszSrcJSONFilename,\n
      \                                    const char *pszDstDirname,\n                                     GDALProgressFunc
      pfnProgress,\n                                     void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1529,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1530,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1530,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1534,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1541,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1544,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1545,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1545,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1546,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1547,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1552,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1553,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1559,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1560,1
    - Dst: auto::abyValue::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1560,1
    - Dst: auto::abyValue::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1561,1
    - Dst: VSIKerchunkMorphURIToVSIPath
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1565,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1566,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1566,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1567,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1571,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1572,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1573,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1574,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1575,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1578,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - pszFilename
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1580
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1580
    functionName: VSIKerchunkJSONRefFileSystem::Open
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLDebugOnly
    - c_str
    - GetMapKeys
    - empty
    - auto::abyValue::size
    - CPLGetPathSafe
    - CPLSPrintf
    - const_cast<GByte *>
    - VSIFOpenL
    - strcmp
    - std::string::c_str
    - std::move
    - VSIKerchunkMorphURIToVSIPath
    - VSIFileFromMemBuffer
    - auto::abyValue::data
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: VSIVirtualHandle
    signature: "VSIVirtualHandle *\nVSIKerchunkJSONRefFileSystem::Open(const char
      *pszFilename,\n                                   const char *pszAccess, bool
      /* bSetError */,\n                                   CSLConstList /* papszOptions
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1589,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1590,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1593,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1600,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1603,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1604,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1604,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1605,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1606,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1611,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1617,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1618,1
    - Dst: cpl::contains
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1620,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1620,1
    - Dst: cpl::contains
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1621,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1621,1
    - Dst: auto::abyValue::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1633,1
    - Dst: VSIKerchunkMorphURIToVSIPath
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1643,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1644,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1644,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1645,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1647,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1647,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - pszFilename
    - pStatBuf
    - nFlags
    argTypes:
    - char*
    - VSIStatBufL*
    - int
    constantsTouched: []
    func_position:
      end: 1653
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1653
    functionName: VSIKerchunkJSONRefFileSystem::Stat
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLDebugOnly
    - c_str
    - GetMapKeys
    - empty
    - auto::abyValue::size
    - CPLGetPathSafe
    - CPLSPrintf
    - std::string::c_str
    - memset
    - VSIKerchunkMorphURIToVSIPath
    - VSIStatExL
    - CPLFormFilenameSafe
    - cpl::contains
    linkageType: ''
    returnType: int
    signature: "int VSIKerchunkJSONRefFileSystem::Stat(const char *pszFilename,\n
      \                                      VSIStatBufL *pStatBuf, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1662,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1665,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1672,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1675,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1676,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1676,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1677,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1678,1
    - Dst: GetMapKeys
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1684,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1686,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1688,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1690,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1692,1
    - Dst: substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1692,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1694,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1694,1
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1695,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1696,1
    - Dst: substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1698,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1698,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1699,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1701,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1701,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1703,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1703,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1707,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1711,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1711,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1713,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1714
    functionName: VSIKerchunkJSONRefFileSystem::ReadDirEx
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLDebugOnly
    - c_str
    - GetMapKeys
    - empty
    - cpl::starts_with
    - std::string::find
    - CPLStringList::AddString
    - find
    - std::set::insert
    - CPLSPrintf
    - VSIReadDirEx
    - CPLStringList::StealList
    - std::move
    - substr
    - std::string::substr
    - CPLFormFilenameSafe
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: "char **VSIKerchunkJSONRefFileSystem::ReadDirEx(const char *pszDirname,\n
      \                                              int nMaxFiles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkJSONRefFileSystem::IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1725,1
    - Dst: std::make_unique<VSIKerchunkJSONRefFileSystem>
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1727,1
    - Dst: VSIFileManager::InstallHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1728,1
    - Dst: VSIFileManager::InstallHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1731
    functionName: VSIInstallKerchunkJSONRefFileSystem
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_json_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIFileManager::InstallHandler
    - std::make_unique<VSIKerchunkJSONRefFileSystem>
    - VSIKerchunkJSONRefFileSystem::IsFileSystemInstantiated
    linkageType: ''
    returnType: void
    signature: void VSIInstallKerchunkJSONRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - aoDims
    - oType
    - aoDtypeElts
    - anBlockSize
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: ZarrV3Array::ZarrV3Array
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZarrV3Array::ZarrV3Array(\n    const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n    const std::string &osParentName, const std::string &osName,\n
      \   const std::vector<std::shared_ptr<GDALDimension>> &aoDims,\n    const GDALExtendedDataType
      &oType, const std::vector<DtypeElt> &aoDtypeElts,\n    const std::vector<GUInt64>
      &anBlockSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrV3Array>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:54,1
    - Dst: ZarrV3Array::ZarrV3Array
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:55,1
    - Dst: auto::SetSelf
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - aoDims
    - oType
    - aoDtypeElts
    - anBlockSize
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: ZarrV3Array::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - auto::SetSelf
    - std::shared_ptr<ZarrV3Array>
    - ZarrV3Array::ZarrV3Array
    linkageType: ''
    returnType: std::shared_ptr<ZarrV3Array>
    signature: "std::shared_ptr<ZarrV3Array> ZarrV3Array::Create(const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n                    const std::string &osParentName, const
      std::string &osName,\n                    const std::vector<std::shared_ptr<GDALDimension>>
      &aoDims,\n                    const GDALExtendedDataType &oType,\n                    const
      std::vector<DtypeElt> &aoDtypeElts,\n                    const std::vector<GUInt64>
      &anBlockSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::Flush
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ZarrV3Array::~ZarrV3Array()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3Array::Flush
    linkageType: ''
    returnType: void
    signature: void ZarrV3Array::~ZarrV3Array()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::FlushDirtyTile
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:82,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:84,1
    - Dst: dynamic_cast<const ZarrDimension *>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:89,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:89,1
    - Dst: auto::IsXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:90,1
    - Dst: auto::IsModified
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:92,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:102,1
    - Dst: IsModified
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:103,1
    - Dst: SerializeSpecialAttributes
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:108,1
    - Dst: ZarrV3Array::Serialize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 118
    functionName: ZarrV3Array::Flush
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - IsModified
    - SerializeSpecialAttributes
    - ZarrV3Array::FlushDirtyTile
    - empty
    - dynamic_cast<const ZarrDimension *>
    - CPLJSONObject::CPLJSONObject
    - get
    - ZarrV3Array::Serialize
    - auto::IsModified
    - auto::IsXArrayDimension
    linkageType: ''
    returnType: void
    signature: void ZarrV3Array::Flush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:126,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:127,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:129,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:130,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:132,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:135,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:135,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:135,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:137,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:139,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:139,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:142,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:143,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:144,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:145,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:146,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:147,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:150,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:150,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:152,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:156,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:157,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:158,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:159,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:160,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:161,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:166,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:167,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:168,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:170,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:174,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:179,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:180,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:181,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:184,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:184,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:186,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:189,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:190,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:192,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:193,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:195,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:196,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:198,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:200,1
    - Dst: SerializeNumericNoData
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:204,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:210,1
    - Dst: GetJSon
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:210,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:213,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:216,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:218,1
    - Dst: dynamic_cast<const ZarrDimension *>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:222,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:222,1
    - Dst: auto::IsXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:223,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:225,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:225,1
    - Dst: CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:229,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:233,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:235,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:241,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - oAttrs
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 242
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 242
    functionName: ZarrV3Array::Serialize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - cpl::infinity
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - static_cast<GInt64>
    - std::isnan
    - CPLJSONArray::CPLJSONArray
    - GetJSon
    - CPLJSONDocument::Save
    - GDALCopyWords
    - SerializeNumericNoData
    - GetSize
    - GetName
    - CPLJSONArray
    - CPLJSONArray::Add
    - ToString
    - CPLJSONObject::CPLJSONObject
    - dynamic_cast<const ZarrDimension *>
    - get
    - GetNumericDataType
    - CPLJSONArray::Size
    - auto::IsXArrayDimension
    - empty
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: void
    signature: void ZarrV3Array::Serialize(const CPLJSONObject &oAttrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: ZarrV3Array::NeedDecodedBuffer
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3Array::NeedDecodedBuffer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::NeedDecodedBuffer
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:272,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:277,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:278,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:280,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:283,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:286,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:288,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:296,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:298,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:303,1
    - Dst: ZarrV3Array::AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 310
    functionName: ZarrV3Array::AllocateWorkingBuffers
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<GUIntBig>
    - static_cast<size_t>
    - CPLTestBool
    - ZarrV3Array::AllocateWorkingBuffers
    - ZarrV3Array::NeedDecodedBuffer
    - CPLError
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3Array::AllocateWorkingBuffers() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:325,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:329,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:329,1
    - Dst: ZarrV3Array::NeedDecodedBuffer
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:333,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:338,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:342,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:346,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - abyRawTileData
    - abyDecodedTileData
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 354
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 354
    functionName: ZarrV3Array::AllocateWorkingBuffers
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - ZarrByteVectorQuickResize::resize
    - ZarrV3Array::NeedDecodedBuffer
    - CPLError
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3Array::AllocateWorkingBuffers(\n    ZarrByteVectorQuickResize
      &abyRawTileData,\n    ZarrByteVectorQuickResize &abyDecodedTileData) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::LoadTileData
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:363,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tileIndices
    - bMissingTileOut
    argTypes:
    - uint64_t*
    - bool
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: ZarrV3Array::LoadTileData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - get
    - ZarrV3Array::LoadTileData
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3Array::LoadTileData(const uint64_t *tileIndices,\n                               bool
      &bMissingTileOut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::BuildTileFilename
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:385,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:389,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:389,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:394,1
    - Dst: OpenTilePresenceCache
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:395,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:398,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:399,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:400,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:401,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:402,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:403,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:405,1
    - Dst: auto::Read
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:408,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:408,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:408,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:409,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:409,1
    - Dst: unlock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:414,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:416,1
    - Dst: unlock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:422,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:429,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:430,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:431,1
    - Dst: VSIFOpenEx2L
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:438,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:438,1
    - Dst: VSIFOpenEx2L
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:442,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:442,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:446,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:453,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:454,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:462,1
    - Dst: ZarrByteVectorQuickResize::capacity
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:462,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:464,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:470,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:474,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:475,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:476,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:477,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:477,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:479,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:480,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:487,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:487,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:491,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:493,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:497,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:498,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:498,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:499,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:503,1
    - Dst: ZarrV3CodecSequence*::Decode
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:508,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:510,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:512,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:518,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:522,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:524,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:527,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:528,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:528,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:529,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:533,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:537,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:539,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:540,1
    - Dst: DecodeSourceElt
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:545,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 6
    argNames:
    - tileIndices
    - bUseMutex
    - poCodecs
    - abyRawTileData
    - abyDecodedTileData
    - bMissingTileOut
    argTypes:
    - uint64_t*
    - bool
    - ZarrV3CodecSequence*
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - bool
    constantsTouched: []
    func_position:
      end: 554
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 554
    functionName: ZarrV3Array::LoadTileData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - VSIFTellL
    - DecodeSourceElt
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - simple_max
    - static_cast<unsigned>
    - ZarrByteVectorQuickResize::resize
    - ZarrV3Array::BuildTileFilename
    - unlock
    - OpenTilePresenceCache
    - ZarrByteVectorQuickResize::data
    - GetSize
    - std::vector::data
    - GDALExtendedDataType::Create
    - ZarrByteVectorQuickResize::size
    - VSIFSeekL
    - ZarrByteVectorQuickResize::empty
    - CPLGetErrorCounter
    - CPLAssert
    - VSIFReadL
    - lock
    - VSIFileManager::GetHandler
    - size
    - static_cast<GUInt64>
    - CPLDebugOnly
    - back
    - static_cast<size_t>
    - empty
    - VSIFCloseL
    - ZarrByteVectorQuickResize::capacity
    - VSIFOpenEx2L
    - ZarrV3CodecSequence*::Decode
    - auto::Read
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3Array::LoadTileData(const uint64_t *tileIndices, bool bUseMutex,\n
      \                              ZarrV3CodecSequence *poCodecs,\n                               ZarrByteVectorQuickResize
      &abyRawTileData,\n                               ZarrByteVectorQuickResize &abyDecodedTileData,\n
      \                              bool &bMissingTileOut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IAdviseReadCommon
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:567,1
    - Dst: GDALGetGlobalThreadPool
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:580,1
    - Dst: assert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:607,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:607,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:608,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:618,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:619,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:620,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:621,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:621,1
    - Dst: static_cast<const JobStruct *>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:627,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:630,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:632,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:633,1
    - Dst: auto::m_poCodecs::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:638,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:658,1
    - Dst: auto::AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:662,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:686,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:687,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:689,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:692,1
    - Dst: CPLWorkerThreadPool*::SubmitJob
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:702,1
    - Dst: CPLWorkerThreadPool*::WaitEvent
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:719,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 3
    argNames:
    - arrayStartIdx
    - count
    - papszOptions
    argTypes:
    - GUInt64*
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 723
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 723
    functionName: ZarrV3Array::IAdviseRead
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<size_t>
    - auto::m_poCodecs::Clone
    - auto::GetDimensions
    - assert
    - static_cast<const JobStruct *>
    - auto::AllocateWorkingBuffers
    - std::vector::emplace_back
    - ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    - min
    - ZarrByteVectorQuickResize::empty
    - CPLWorkerThreadPool*::SubmitJob
    - CPLWorkerThreadPool*::WaitEvent
    - std::move
    - swap
    - IAdviseReadCommon
    - GetSize
    - GDALGetGlobalThreadPool
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3Array::IAdviseRead(const GUInt64 *arrayStartIdx, const
      size_t *count,\n                              CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3Array::BuildTileFilename
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:735,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:735,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:740,1
    - Dst: IsEmptyTile
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:742,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:747,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:747,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:749,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:751,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:752,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:752,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:757,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:762,1
    - Dst: EncodeElt
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:766,1
    - Dst: Encode
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:773,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:775,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:782,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:782,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:784,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:784,1
    - Dst: VSIMkdirRecursive
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:786,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:786,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:788,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:789,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:790,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:796,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:796,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:799,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:800,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:801,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:807,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:807,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:810,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:811,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:814,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:816,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 819
    functionName: ZarrV3Array::FlushDirtyTile
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - CPLDebugOnly
    - IsEmptyTile
    - empty
    - VSIStatL
    - VSIFCloseL
    - ZarrV3Array::BuildTileFilename
    - VSIUnlink
    - CPLGetDirnameSafe
    - VSIMkdirRecursive
    - VSIFOpenL
    - EncodeElt
    - Encode
    - VSIFWriteL
    - CPLError
    - resize
    - std::string::c_str
    - data
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3Array::FlushDirtyTile() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:827,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:829,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:830,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:830,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:835,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:835,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:841,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - tileIndices
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 849
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 849
    functionName: ZarrV3Array::BuildTileFilename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 2
    functionsReached:
    - size
    - c_str
    - empty
    - CPLGetDirnameSafe
    - std::to_string
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::string
    signature: std::string ZarrV3Array::BuildTileFilename(const uint64_t *tileIndices)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:857,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:857,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: ZarrV3Array::GetDataDirectory
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - CPLGetDirnameSafe
    - c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string ZarrV3Array::GetDataDirectory() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:870,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:874,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:878,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:881,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:882,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 884
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 884
    functionName: ZarrV3Array::GetTileIndicesFromFilename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList
    - c_str
    - CSLTokenizeString2
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList ZarrV3Array::GetTileIndicesFromFilename(const char *pszFilename)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:895,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:897,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:979,1
    - Dst: DtypeElt::gdalType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:980,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:989,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:990,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:993,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:995,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:996,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 2
    argNames:
    - obj
    - elts
    argTypes:
    - CPLJSONObject
    - std::vector<DtypeElt>
    constantsTouched: []
    func_position:
      end: 997
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 997
    functionName: ParseDtypeV3
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - GDALExtendedDataType::Create
    - std::vector<DtypeElt>::emplace_back
    - DtypeElt::gdalType::GetSize
    - CPLError
    linkageType: ''
    returnType: GDALExtendedDataType
    signature: "GDALExtendedDataType ParseDtypeV3(const CPLJSONObject &obj,\n                                         std::vector<DtypeElt>
      &elts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1012,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - osVal
    - bOK
    argTypes:
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 1023
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1023
    functionName: ParseNoDataStringAsDouble
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - cpl::infinity
    linkageType: ''
    returnType: double
    signature: double ParseNoDataStringAsDouble(const std::string &osVal, bool &bOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1032,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1033,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1034,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1036,1
    - Dst: CPLJSONObject::ToDouble
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1036,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1038,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1040,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1041,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1041,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1043,1
    - Dst: static_cast<Tint>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1048,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1049,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1049,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1053,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1058,1
    - Dst: ParseNoDataStringAsDouble
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - oObj
    - bOK
    argTypes:
    - CPLJSONObject
    - bool
    constantsTouched: []
    func_position:
      end: 1066
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1066
    functionName: ParseNoDataComponent
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - static_cast<Tint>
    - ParseNoDataStringAsDouble
    - static_cast<T>
    - CPLJSONObject::ToDouble
    - STARTS_WITH
    - memcpy
    - std::strtoull
    - auto::c_str
    - auto::size
    linkageType: ''
    returnType: T
    signature: T ParseNoDataComponent(const CPLJSONObject &oObj, bool &bOK)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrSharedResource::SetFilenameAdder::ok
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1081,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1086,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1088,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1097,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1100,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1100,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1104,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1105,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1107,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1112,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1113,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1115,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1121,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1123,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1129,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1131,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1136,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1137,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1139,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1145,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1145,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1147,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1154,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1156,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1164,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1175,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1182,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1185,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1187,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1190,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1201,1
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1203,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1207,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1209,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1209,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1212,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1215,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1215,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1217,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1217,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1218,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1218,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1218,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1218,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1229,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1230,1
    - Dst: auto::second::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1233,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1233,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1240,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1252,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1252,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1257,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1258,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1258,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1258,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1263,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1263,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1265,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1266,1
    - Dst: ZarrV3Group::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1268,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1269,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1277,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1277,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1278,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1280,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1288,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1290,1
    - Dst: auto::second::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1291,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1291,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1299,1
    - Dst: ZarrArray::GetDimensionTypeDirection
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1301,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1305,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1307,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1307,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1308,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1308,1
    - Dst: auto::SetXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1309,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1315,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1317,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1318,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1318,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1320,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1322,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1324,1
    - Dst: FindDimension
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1325,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1331,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1337,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1339,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1345,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1347,1
    - Dst: IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1350,1
    - Dst: ParseDtypeV3
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1353,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1354,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1355,1
    - Dst: ZarrArray::ParseChunkSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1359,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1365,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1367,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1369,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1373,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1375,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1375,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1378,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1383,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1384,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1384,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1386,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1386,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1388,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1393,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1395,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1395,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1397,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1399,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1401,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1401,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1402,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1406,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1412,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1412,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1414,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1414,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1416,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1421,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1423,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1423,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1425,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1427,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1429,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1429,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1430,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1434,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1446,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1449,1
    - Dst: static_cast<GFloat16>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1452,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1453,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1454,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1456,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1459,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1460,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1462,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1464,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1465,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1469,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1481,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1485,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1485,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1486,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1487,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1489,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1496,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1496,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1497,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1498,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1502,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1502,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1503,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1504,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1509,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1510,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1511,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1511,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1513,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1524,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1527,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1527,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1528,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1528,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1529,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1529,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1534,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1534,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1544,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1547,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1547,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1548,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1548,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1549,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1549,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1554,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1560,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1564,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1566,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1569,1
    - Dst: ZarrArrayMetadata::anBlockSizes::push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1573,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1574,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1575,1
    - Dst: std::make_unique<ZarrV3CodecSequence>
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1576,1
    - Dst: std::unique_ptr::InitFromJson
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1577,1
    - Dst: ZarrV3Array::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1582,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1582,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1586,1
    - Dst: auto::SetFilename
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1587,1
    - Dst: auto::SetIsV2ChunkKeyEncoding
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1588,1
    - Dst: auto::SetDimSeparator
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1589,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1590,1
    - Dst: auto::RegisterNoDataValue
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1592,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1592,1
    - Dst: auto::ParseSpecialAttributes
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1594,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1594,1
    - Dst: auto::SetAttributes
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1595,1
    - Dst: auto::SetDtype
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1596,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1597,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1598,1
    - Dst: GetString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1598,1
    - Dst: auto::SetStructuralInfo
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1600,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1601,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1601,1
    - Dst: auto::SetCodecs
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1604,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1604,1
    - Dst: RegisterArray
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1605,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1608,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1608,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1608,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1610,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1610,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1611,1
    - Dst: auto::second::SetIndexingVariable
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1613,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1617,1
    - Dst: GetOpenOptions
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1617,1
    - Dst: auto::CacheTilePresence
      Src: /src/gdal/frmts/zarr/zarr_v3_array.cpp:1620,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 270
    argCount: 3
    argNames:
    - osArrayName
    - osZarrayFilename
    - oRoot
    argTypes:
    - std::string
    - std::string
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1624
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1624
    functionName: ZarrV3Group::LoadArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_array.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONDocument::Load
    - std::vector::size
    - auto::GetType
    - std::string::empty
    - ZarrV3Array::Create
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - GDALCopyWords
    - ToString
    - auto::SetXArrayDimension
    - CPLJSONObject::GetChildren
    - CPLJSONObject::IsValid
    - std::string
    - ZarrSharedResource::SetFilenameAdder::ok
    - auto::SetDtype
    - GetString
    - GetFullName
    - std::string::c_str
    - ZarrArray::GetDimensionTypeDirection
    - RegisterArray
    - auto::SetStructuralInfo
    - auto::ParseSpecialAttributes
    - find
    - auto::GetNumericDataType
    - std::move
    - auto::Size
    - std::vector::empty
    - std::vector::data
    - auto::ToString
    - CPLAssert
    - GetType
    - GDALDataTypeIsComplex
    - ParseDtypeV3
    - static_cast<GUInt64>
    - CPLGetPathSafe
    - std::unique_ptr::InitFromJson
    - CPLJSONObject::Clone
    - std::vector::back
    - ToLong
    - auto::SetFilename
    - auto::SetUpdatable
    - ZarrArray::ParseChunkSize
    - auto::GetName
    - std::vector::emplace_back
    - auto::c_str
    - ZarrArrayMetadata::anBlockSizes::push_back
    - auto::SetAttributes
    - GetSize
    - GetName
    - ToArray
    - c_str
    - std::make_shared<ZarrDimension>
    - CPLSPrintf
    - auto::IsValid
    - auto::SetDimSeparator
    - lock
    - std::vector::resize
    - auto::second::SetIndexingVariable
    - auto::SetIsV2ChunkKeyEncoding
    - ZarrV3Group::LoadArray
    - FindDimension
    - GetOpenOptions
    - CPLJSONDocument::GetRoot
    - auto::GetClass
    - auto::second::GetSize
    - CPLError
    - STARTS_WITH
    - auto::size
    - auto::ToArray
    - auto::SetCodecs
    - end
    - std::make_unique<ZarrV3CodecSequence>
    - IsValid
    - auto::CacheTilePresence
    - CPLTestBool
    - auto::GetSize
    - CPLFormFilenameSafe
    - static_cast<size_t>
    - static_cast<GFloat16>
    - VSIStatL
    - auto::RegisterNoDataValue
    - CPLJSONDocument::CPLJSONDocument
    - memcpy
    linkageType: ''
    returnType: std::shared_ptr<ZarrArray>
    signature: "std::shared_ptr<ZarrArray> ZarrV3Group::LoadArray(const std::string
      &osArrayName,\n                       const std::string &osZarrayFilename,\n
      \                      const CPLJSONObject &oRoot) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrV3Group>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:30,1
    - Dst: ZarrV3Group::ZarrV3Group
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:30,1
    - Dst: auto::SetSelf
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - osRootDirectoryName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: ZarrV3Group::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3Group::ZarrV3Group
    - auto::SetSelf
    - std::shared_ptr<ZarrV3Group>
    linkageType: ''
    returnType: std::shared_ptr<ZarrV3Group>
    signature: "std::shared_ptr<ZarrV3Group> ZarrV3Group::Create(const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n                    const std::string &osParentName, const
      std::string &osName,\n                    const std::string &osRootDirectoryName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:43,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:46,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:47,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:51,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:51,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:53,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:53,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:56,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:56,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:58,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:59,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:61,1
    - Dst: ZarrV3Group::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: ZarrV3Group::OpenZarrArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLJSONDocument::Load
    - VSIStatL
    - find
    - ZarrV3Group::LoadArray
    - CPLJSONDocument::GetRoot
    - CheckValidAndErrorOutIfNot
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::shared_ptr<ZarrArray>
    signature: "std::shared_ptr<ZarrArray> ZarrV3Group::OpenZarrArray(const std::string
      &osName,\n                                                      CSLConstList)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:79,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:79,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:82,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:84,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:85,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:87,1
    - Dst: Init
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: ZarrV3Group::LoadAttributes
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLJSONDocument::Load
    - VSIStatL
    - Init
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void ZarrV3Group::LoadAttributes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIOpenDir
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:102,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:102,1
    - Dst: VSIGetNextDirEntry
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:105,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:107,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:109,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:110,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:113,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:113,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:114,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:114,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:116,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:117,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:117,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:119,1
    - Dst: auto::GetInteger
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:120,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:122,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:126,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:129,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:129,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:129,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:130,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:132,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:137,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:137,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:137,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:138,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:145,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:154,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:154,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:154,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:155,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:157,1
    - Dst: VSICloseDir
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 163
    functionName: ZarrV3Group::ExploreDirectory
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLJSONDocument::Load
    - auto::GetInteger
    - VSIStatL
    - auto::GetString
    - VSI_ISDIR
    - VSIGetNextDirEntry
    - CPLJSONDocument::GetRoot
    - begin
    - std::find
    - VSICloseDir
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    - CPLFormFilenameSafe
    - VSIOpenDir
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void ZarrV3Group::ExploreDirectory() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - osDirectoryName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: ZarrV3Group::ZarrV3Group
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZarrV3Group::ZarrV3Group(\n    const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n    const std::string &osParentName, const std::string &osName,\n
      \   const std::string &osDirectoryName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsModified
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:184,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:186,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:187,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:188,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:189,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:190,1
    - Dst: Serialize
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:190,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:191,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:192,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 195
    functionName: ZarrV3Group::~ZarrV3Group()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - IsModified
    - c_str
    - CPLJSONDocument::Save
    - CPLJSONDocument::GetRoot
    - Serialize
    - CPLJSONDocument::CPLJSONDocument
    - CPLFormFilenameSafe
    - auto::Add
    linkageType: ''
    returnType: void
    signature: void ZarrV3Group::~ZarrV3Group()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:204,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:207,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:208,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:212,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:212,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:212,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:214,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:214,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:218,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:220,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:221,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:221,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:223,1
    - Dst: auto::GetInteger
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:224,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:226,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:230,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:233,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:234,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:234,1
    - Dst: ZarrV3Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:237,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:238,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:240,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:240,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:241,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:249,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:249,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:249,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:253,1
    - Dst: ZarrV3Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:256,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:256,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:259,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:259,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 266
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 266
    functionName: ZarrV3Group::OpenZarrGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::Load
    - auto::GetInteger
    - CPLJSONDocument::GetRoot
    - CPLError
    - GetFullName
    - std::string::c_str
    - end
    - ZarrV3Group::Create
    - find
    - VSI_ISDIR
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - c_str
    - auto::GetString
    - CheckValidAndErrorOutIfNot
    - lock
    - CPLFormFilenameSafe
    - VSIStatL
    - CPLJSONDocument::CPLJSONDocument
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrGroupBase>
    signature: std::shared_ptr<ZarrGroupBase> ZarrV3Group::OpenZarrGroup(const std::string
      &osName, CSLConstList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:277,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:277,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:280,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:280,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:282,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:287,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:288,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:294,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:294,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:295,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:298,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:299,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:302,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:307,1
    - Dst: ZarrV3Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:309,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - poSharedResource
    - osParentFullName
    - osName
    - osDirectoryName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 314
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 314
    functionName: ZarrV3Group::CreateOnDisk
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3Group::Create
    - VSIFPrintfL
    - VSIStatL
    - VSIFCloseL
    - VSIMkdir
    - VSIFOpenL
    - CPLError
    - std::string::c_str
    - CPLFormFilenameSafe
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrV3Group>
    signature: "std::shared_ptr<ZarrV3Group> ZarrV3Group::CreateOnDisk(\n    const
      std::shared_ptr<ZarrSharedResource> &poSharedResource,\n    const std::string
      &osParentFullName, const std::string &osName,\n    const std::string &osDirectoryName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:329,1
    - Dst: IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:333,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:335,1
    - Dst: GetGroupNames
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:339,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:341,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:341,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:341,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:342,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:344,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:350,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:350,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:350,1
    - Dst: ZarrV3Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:351,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:351,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:356,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:356,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 360
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 360
    functionName: ZarrV3Group::CreateGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - ZarrV3Group::CreateOnDisk
    - CPLError
    - GetGroupNames
    - IsValidObjectName
    - begin
    - std::find
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - CheckValidAndErrorOutIfNot
    - lock
    - GetFullName
    - std::string::c_str
    - CPLFormFilenameSafe
    - emplace_back
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: "std::shared_ptr<GDALGroup> ZarrV3Group::CreateGroup(const std::string
      &osName,\n                         CSLConstList /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:369,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:372,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:380,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:386,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:392,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:398,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:404,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:410,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:416,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:422,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:428,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:434,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:440,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:453,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:459,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:465,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:477,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:478,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:479,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:480,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:484,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:490,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 95
    argCount: 2
    argNames:
    - oDataType
    - aoDtypeElts
    argTypes:
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    constantsTouched: []
    func_position:
      end: 493
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 493
    functionName: FillDTypeElts
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeName
    - CPLJSONObject
    - CPLJSONObject::Deinit
    - CPLJSONObject::CPLJSONObject
    - GDALExtendedDataType::GetNumericDataType
    - std::vector<DtypeElt>::emplace_back
    - CPLJSONObject::Set
    - CPLError
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject FillDTypeElts(const GDALExtendedDataType &oDataType,\n
      \                                  std::vector<DtypeElt> &aoDtypeElts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:509,1
    - Dst: IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:513,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:515,1
    - Dst: GDALExtendedDataType::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:519,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:521,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:526,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:526,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:528,1
    - Dst: FillDTypeElts
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:534,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:535,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:535,1
    - Dst: GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:538,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:540,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:540,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:540,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:541,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:543,1
    - Dst: ZarrArray::FillBlockSize
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:549,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:557,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:557,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:558,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:558,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:561,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:561,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:564,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:568,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:569,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:575,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:581,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:582,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:583,1
    - Dst: ZarrV3CodecTranspose::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:584,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:585,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:592,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:593,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:594,1
    - Dst: ZarrV3CodecBytes::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:594,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:595,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:596,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:601,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:603,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:604,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:607,1
    - Dst: ZarrV3CodecGZip::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:608,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:608,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:609,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:611,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:613,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:620,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:621,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:621,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:633,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:635,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:640,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:641,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:642,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:647,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:647,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:648,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:648,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:649,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:649,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:658,1
    - Dst: ZarrV3CodecBlosc::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:659,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:661,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:663,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:665,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:666,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:671,1
    - Dst: ZarrV3CodecZstd::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:671,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:672,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:673,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:675,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:677,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:682,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:685,1
    - Dst: ZarrArrayMetadata::anBlockSizes::push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:689,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:690,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:691,1
    - Dst: std::make_unique<ZarrV3CodecSequence>
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:692,1
    - Dst: std::unique_ptr::InitFromJson
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:693,1
    - Dst: ZarrV3Array::Create
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:698,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:698,1
    - Dst: auto::SetNew
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:703,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:705,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:705,1
    - Dst: auto::SetFilename
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:706,1
    - Dst: auto::SetDimSeparator
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:707,1
    - Dst: auto::SetDtype
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:708,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:709,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:710,1
    - Dst: GetString
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:710,1
    - Dst: auto::SetStructuralInfo
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:712,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:713,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:713,1
    - Dst: auto::SetCodecs
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:716,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:716,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:717,1
    - Dst: auto::SetDefinitionModified
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:718,1
    - Dst: auto::Flush
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:719,1
    - Dst: RegisterArray
      Src: /src/gdal/frmts/zarr/zarr_v3_group.cpp:720,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 4
    argNames:
    - osName
    - aoDimensions
    - oDataType
    - papszOptions
    argTypes:
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 723
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 723
    functionName: ZarrV3Group::CreateMDArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_group.cpp
    functionUses: 0
    functionsReached:
    - auto::SetDtype
    - atoi
    - ZarrV3CodecBytes::GetConfiguration
    - IsValidObjectName
    - GetString
    - auto::SetFilename
    - CPLXMLTreeCloser::get
    - CPLError
    - CPLGetXMLValue
    - GetFullName
    - std::string::c_str
    - CPLGetCompressor
    - ZarrV3CodecZstd::GetConfiguration
    - CPLJSONArray::CPLJSONArray
    - FillDTypeElts
    - end
    - std::make_unique<ZarrV3CodecSequence>
    - ZarrArray::FillBlockSize
    - auto::SetStructuralInfo
    - auto::SetCodecs
    - auto::SetUpdatable
    - RegisterArray
    - auto::SetNew
    - VSIMkdir
    - ZarrV3Array::Create
    - std::move
    - GDALExtendedDataType::GetClass
    - ZarrArrayMetadata::anBlockSizes::push_back
    - std::vector::empty
    - CPLJSONArray::Add
    - c_str
    - ToString
    - CPLJSONObject::CPLJSONObject
    - CPLJSONArray::Size
    - begin
    - auto::IsValid
    - CheckValidAndErrorOutIfNot
    - auto::SetDimSeparator
    - CPLFormFilenameSafe
    - ZarrV3CodecTranspose::GetConfiguration
    - static_cast<size_t>
    - ZarrV3CodecBlosc::GetConfiguration
    - GetMDArrayNames
    - VSIStatL
    - std::unique_ptr::InitFromJson
    - CPLGetXMLNode
    - CSLFetchNameValueDef
    - std::vector::back
    - EQUAL
    - auto::SetDefinitionModified
    - std::find
    - auto::Flush
    - CPLJSONObject::Add
    - ZarrV3CodecGZip::GetConfiguration
    linkageType: ''
    returnType: std::shared_ptr<GDALMDArray>
    signature: "std::shared_ptr<GDALMDArray> ZarrV3Group::CreateMDArray(\n    const
      std::string &osName,\n    const std::vector<std::shared_ptr<GDALDimension>>
      &aoDimensions,\n    const GDALExtendedDataType &oDataType, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIInstallKerchunkJSONRefFileSystem
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:26,1
    - Dst: VSIInstallKerchunkParquetRefFileSystem
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: VSIInstallKerchunkFileSystems
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk.cpp
    functionUses: 0
    functionsReached:
    - VSIInstallKerchunkJSONRefFileSystem
    - VSIInstallKerchunkParquetRefFileSystem
    linkageType: ''
    returnType: void
    signature: void VSIInstallKerchunkFileSystems()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkParquetRefFileSystemCleanCache
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: VSIKerchunkFileSystemsCleanCache
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkParquetRefFileSystemCleanCache
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkFileSystemsCleanCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:59,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:59,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:61,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:62,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:62,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:66,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:66,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:68,1
    - Dst: VSIIsLocal
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:71,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:71,1
    - Dst: VSIIsLocal
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:71,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:71,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:77,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:82,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:83,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:85,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:87,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:89,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk.cpp:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - osURI
    - osRootDirname
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 95
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 95
    functionName: VSIKerchunkMorphURIToVSIPath
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - CPLIsFilenameRelative
    - strlen
    - VSIIsLocal
    - std::string
    - CPLError
    - STARTS_WITH
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::string
    signature: "std::string VSIKerchunkMorphURIToVSIPath(const std::string &osURI,\n
      \                                        const std::string &osRootDirname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMGroup::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - osParentName
    - bContainerIsGroup
    argTypes:
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: ZarrAttributeGroup::ZarrAttributeGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_attribute.cpp
    functionUses: 2
    functionsReached:
    - MEMGroup::Create
    linkageType: ''
    returnType: void
    signature: "void ZarrAttributeGroup::ZarrAttributeGroup(const std::string &osParentName,\n
      \                                      bool bContainerIsGroup)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:43,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:45,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:48,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:56,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:57,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:57,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:65,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:67,1
    - Dst: std::shared_ptr::GetDataType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:68,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:75,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:76,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:76,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:85,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:87,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:94,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:95,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:95,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:104,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:106,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:113,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:114,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:115,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:123,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:125,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:131,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:141,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:185,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:186,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:187,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:188,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:202,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:207,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:209,1
    - Dst: std::shared_ptr::GetDataType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:211,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:218,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:221,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:228,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:231,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:238,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:240,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:263,1
    - Dst: ZarrAttributeGroup::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:266,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:266,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:273,1
    - Dst: std::shared_ptr::Write
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:275,1
    - Dst: std::shared_ptr::GetDataType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:276,1
    - Dst: std::dynamic_pointer_cast<MEMAttribute>
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:280,1
    - Dst: auto::SetModified
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:282,1
    - Dst: ZarrAttributeGroup::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:284,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 2
    argNames:
    - obj
    - bUpdatable
    argTypes:
    - CPLJSONObject
    - bool
    constantsTouched: []
    func_position:
      end: 285
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 285
    functionName: ZarrAttributeGroup::Init
    functionSourceFile: /src/gdal/frmts/zarr/zarr_attribute.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetType
    - ToArray
    - GDALExtendedDataType::Create
    - ZarrAttributeGroup::SetUpdatable
    - ToString
    - std::shared_ptr::GetDataType
    - CPLJSONObject::GetChildren
    - auto::SetModified
    - GetType
    - GDALExtendedDataType::CreateString
    - std::shared_ptr::Write
    - ZarrAttributeGroup::CreateAttribute
    - GetName
    - std::dynamic_pointer_cast<MEMAttribute>
    linkageType: ''
    returnType: void
    signature: void ZarrAttributeGroup::Init(const CPLJSONObject &obj, bool bUpdatable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:293,1
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:294,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:297,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:298,1
    - Dst: GetDimensionsSize
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:300,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:301,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:306,1
    - Dst: auto::GetSubType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:307,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:308,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:310,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:310,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:310,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:314,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:314,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:319,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:319,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:322,1
    - Dst: ReadAsStringArray
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:324,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:325,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:326,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:328,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:330,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:330,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:334,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:337,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:340,1
    - Dst: GetDimensionsSize
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:342,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:343,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:344,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:350,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:350,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:350,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:356,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:356,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:356,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:361,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:361,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:364,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:366,1
    - Dst: ReadAsInt64Array
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:370,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:373,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:373,1
    - Dst: ReadAsInt64Array
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:379,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:382,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:382,1
    - Dst: ReadAsDoubleArray
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:387,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:390,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:393,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:397,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:400,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 405
    functionName: ZarrAttributeGroup::Serialize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_attribute.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - auto::GetClass
    - static_cast<GInt64>
    - CPLError
    - auto::size
    - ZarrAttributeGroup::GetAttributes
    - CPLJSONArray::CPLJSONArray
    - auto::GetNumericDataType
    - GetDataType
    - GetName
    - CPLJSONArray::Add
    - CPLJSONDocument::LoadMemory
    - CPLJSONObject::CPLJSONObject
    - static_cast<uint64_t>
    - auto::GetSubType
    - ReadAsStringArray
    - GetDimensionsSize
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    - ReadAsDoubleArray
    - ReadAsInt64Array
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrAttributeGroup::Serialize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFullName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:414,1
    - Dst: SetFullName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:416,1
    - Dst: ZarrAttributeGroup::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:417,1
    - Dst: ZarrAttributeGroup::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:420,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - osNewParentFullName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 422
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 422
    functionName: ZarrAttributeGroup::ParentRenamed
    functionSourceFile: /src/gdal/frmts/zarr/zarr_attribute.cpp
    functionUses: 1
    functionsReached:
    - SetFullName
    - ZarrAttributeGroup::GetAttributes
    - GetFullName
    - ZarrAttributeGroup::ParentRenamed
    linkageType: ''
    returnType: void
    signature: void ZarrAttributeGroup::ParentRenamed(const std::string &osNewParentFullName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deleted
      Src: /src/gdal/frmts/zarr/zarr_attribute.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: ZarrAttributeGroup::ParentDeleted
    functionSourceFile: /src/gdal/frmts/zarr/zarr_attribute.cpp
    functionUses: 0
    functionsReached:
    - Deleted
    linkageType: ''
    returnType: void
    signature: void ZarrAttributeGroup::ParentDeleted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: VSIKerchunkParquetRefFileSystem::VSIKerchunkParquetRefFileSystem
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - IsFileSystemInstantiated
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkParquetRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: '&IsFileSystemInstantiated()'
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool &IsFileSystemInstantiated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkParquetRefFileSystem::CleanCache
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:121,1
    - Dst: IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: VSIKerchunkParquetRefFileSystem::~VSIKerchunkParquetRefFileSystem()
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - VSIKerchunkParquetRefFileSystem::CleanCache
    - IsFileSystemInstantiated
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkParquetRefFileSystem::~VSIKerchunkParquetRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALIsInGlobalDestructor
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:133,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: VSIKerchunkParquetRefFileSystem::CleanCache
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 1
    functionsReached:
    - clear
    - GDALIsInGlobalDestructor
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkParquetRefFileSystem::CleanCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:153,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:154,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:154,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:184,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:188,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:188,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:196,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:200,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 202
    functionName: VSIKerchunkParquetRefFileSystem::SplitFilename
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - STARTS_WITH
    - strlen
    - std::string
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> VSIKerchunkParquetRefFileSystem::SplitFilename(const
      char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryGet
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:212,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:215,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:218,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:219,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:221,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:223,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:227,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:228,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:229,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:230,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:232,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:238,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:239,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:240,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:242,1
    - Dst: std::make_shared<VSIKerchunkParquetRefFile>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:248,1
    - Dst: auto::ToInteger
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:249,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:252,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:257,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:259,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:260,1
    - Dst: Format
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:263,1
    - Dst: std::vector::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:265,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:266,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:267,1
    - Dst: std::string::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:267,1
    - Dst: reinterpret_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:268,1
    - Dst: std::string::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:268,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:269,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:271,1
    - Dst: cpl::ends_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:273,1
    - Dst: GetArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:275,1
    - Dst: GetArray
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:276,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:277,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:282,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:285,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:287,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:290,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:293,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:293,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:299,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:302,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:307,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:320,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:324,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:329,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:333,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:337,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:339,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:341,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:345,1
    - Dst: VSIZarrArrayInfo::anChunkCount::push_back
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:349,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:351,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:352,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:352,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:353,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:359,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:362,1
    - Dst: insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:367,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - osRootFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 369
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 369
    functionName: VSIKerchunkParquetRefFileSystem::Load
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::Load
    - std::string::data
    - VSIZarrArrayInfo::anChunkCount::push_back
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - CPLError
    - tryGet
    - std::string::c_str
    - simple_max
    - std::vector::end
    - insert
    - std::move
    - strlen
    - DIV_ROUND_UP
    - Format
    - auto::Size
    - GetName
    - auto::GetChildren
    - std::vector::insert
    - cpl::ends_with
    - GetType
    - auto::IsValid
    - CPLFormFilenameSafe
    - auto::GetObj
    - std::string::size
    - std::string::substr
    - reinterpret_cast<const GByte *>
    - auto::ToInteger
    - GetArray
    - CPLJSONDocument::CPLJSONDocument
    - std::make_shared<VSIKerchunkParquetRefFile>
    linkageType: ''
    returnType: std::shared_ptr<VSIKerchunkParquetRefFile>
    signature: std::shared_ptr<VSIKerchunkParquetRefFile> VSIKerchunkParquetRefFileSystem::Load(const
      std::string &osRootFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:383,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:383,1
    - Dst: std::shared_ptr<VSIKerchunkParquetRefFile>::m_oMapArrayInfo::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:384,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:385,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:385,1
    - Dst: std::shared_ptr<VSIKerchunkParquetRefFile>::m_oMapArrayInfo::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:386,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:386,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:391,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:392,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:392,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:393,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:394,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:394,1
    - Dst: auto::anChunkCount::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:395,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:398,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:401,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:401,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:403,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:419,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:426,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:427,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:427,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:427,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:430,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:431,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:433,1
    - Dst: "std::make_unique<lru11::Cache<\n                    std::string, std::shared_ptr<GDALDataset>>>"
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:439,1
    - Dst: tryGet
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:443,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:449,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:450,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:450,1
    - Dst: insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:454,1
    - Dst: std::shared_ptr::GetLayerCount
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:457,1
    - Dst: std::shared_ptr::GetLayer
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:461,1
    - Dst: auto::GetLayerDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:462,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:463,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:464,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:465,1
    - Dst: auto::GetFieldIndex
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:466,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:469,1
    - Dst: IsIntOrInt64
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:471,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:472,1
    - Dst: IsIntOrInt64
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:473,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:474,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:475,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:479,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:479,1
    - Dst: ChunkInfo::poFeature::reset
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:480,1
    - Dst: auto::GetFeature
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:484,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:486,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 41
    argCount: 3
    argNames:
    - osRootFilename
    - refFile
    - osKey
    argTypes:
    - std::string
    - std::shared_ptr<VSIKerchunkParquetRefFile>
    - std::string
    constantsTouched: []
    func_position:
      end: 492
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 492
    functionName: VSIKerchunkParquetRefFileSystem::GetChunkInfo
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - ChunkInfo::poFeature::reset
    - CPLGetFilename
    - IsIntOrInt64
    - "std::make_unique<lru11::Cache<\n                    std::string, std::shared_ptr<GDALDataset>>>"
    - strcmp
    - std::shared_ptr::GetLayerCount
    - std::vector::push_back
    - tryGet
    - CPLError
    - std::string::c_str
    - auto::GetFieldIndex
    - std::string::empty
    - auto::GetLayerDefn
    - std::shared_ptr::GetLayer
    - auto::anChunkCount::empty
    - insert
    - OGRAPISpyOpen
    - strlen
    - CSLTokenizeString2
    - CPLStringList::size
    - auto::GetFieldDefn
    - CPLSPrintf
    - auto::anChunkCount::size
    - auto::GetFeature
    - CPLFormFilenameSafe
    - std::shared_ptr<VSIKerchunkParquetRefFile>::m_oMapArrayInfo::end
    - static_cast<size_t>
    - CPLDebugOnly
    - CPLGetPathSafe
    - std::shared_ptr<VSIKerchunkParquetRefFile>::m_oMapArrayInfo::find
    - std::strtoull
    linkageType: ''
    returnType: VSIKerchunkParquetRefFileSystem::ChunkInfo
    signature: "VSIKerchunkParquetRefFileSystem::ChunkInfo VSIKerchunkParquetRefFileSystem::GetChunkInfo(\n
      \   const std::string &osRootFilename,\n    const std::shared_ptr<VSIKerchunkParquetRefFile>
      &refFile,\n    const std::string &osKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:502,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:503,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:503,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:507,1
    - Dst: VSIKerchunkParquetRefFileSystem::Load
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:510,1
    - Dst: auto::m_oMapKeys::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:514,1
    - Dst: auto::m_oMapKeys::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:515,1
    - Dst: VSIKerchunkParquetRefFileSystem::GetChunkInfo
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:517,1
    - Dst: auto::poFeature::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:520,1
    - Dst: auto::poFeature::GetRawFieldRef
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:522,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:529,1
    - Dst: VSIKerchunkMorphURIToVSIPath
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:539,1
    - Dst: auto::poFeature::GetFieldAsString
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:540,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:542,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:546,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:547,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:548,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:549,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:550,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:553,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:553,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:561,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:561,1
    - Dst: auto::data
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:561,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - pszFilename
    - pszAccess
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 563
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 563
    functionName: VSIKerchunkParquetRefFileSystem::Open
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - auto::size
    - std::string::c_str
    - std::string::empty
    - VSIKerchunkParquetRefFileSystem::GetChunkInfo
    - auto::poFeature::GetFieldAsString
    - auto::m_oMapKeys::end
    - auto::poFeature::GetRawFieldRef
    - auto::poFeature::IsFieldSetAndNotNull
    - std::move
    - CPLSPrintf
    - const_cast<GByte *>
    - VSIFOpenL
    - VSIKerchunkMorphURIToVSIPath
    - VSIFileFromMemBuffer
    - CPLDebugOnly
    - empty
    - auto::data
    - VSIKerchunkParquetRefFileSystem::Load
    - auto::m_oMapKeys::find
    linkageType: ''
    returnType: VSIVirtualHandle
    signature: "VSIVirtualHandle *VSIKerchunkParquetRefFileSystem::Open(\n    const
      char *pszFilename, const char *pszAccess, bool /* bSetError */,\n    CSLConstList
      /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:572,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:573,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:576,1
    - Dst: VSIKerchunkParquetRefFileSystem::Load
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:579,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:583,1
    - Dst: auto::m_oMapKeys::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:589,1
    - Dst: auto::m_oMapKeys::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:590,1
    - Dst: VSIKerchunkParquetRefFileSystem::GetChunkInfo
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:592,1
    - Dst: auto::poFeature::IsFieldSetAndNotNull
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:595,1
    - Dst: auto::poFeature::GetFieldAsBinary
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:598,1
    - Dst: auto::poFeature::GetFieldAsInteger64
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:604,1
    - Dst: VSIKerchunkMorphURIToVSIPath
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:607,1
    - Dst: auto::poFeature::GetFieldAsString
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:608,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:610,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:612,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:612,1
    - Dst: cpl::contains
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:619,1
    - Dst: cpl::contains
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:620,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - pszFilename
    - pStatBuf
    - nFlags
    argTypes:
    - char*
    - VSIStatBufL*
    - int
    constantsTouched: []
    func_position:
      end: 634
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 634
    functionName: VSIKerchunkParquetRefFileSystem::Stat
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - CPLDebugOnly
    - auto::poFeature::GetFieldAsInteger64
    - auto::poFeature::GetFieldAsBinary
    - empty
    - VSIKerchunkParquetRefFileSystem::Load
    - auto::m_oMapKeys::find
    - VSIKerchunkParquetRefFileSystem::GetChunkInfo
    - auto::poFeature::GetFieldAsString
    - auto::m_oMapKeys::end
    - std::string::c_str
    - auto::poFeature::IsFieldSetAndNotNull
    - memset
    - auto::size
    - VSIStatExL
    - VSIKerchunkMorphURIToVSIPath
    - cpl::contains
    linkageType: ''
    returnType: int
    signature: "int VSIKerchunkParquetRefFileSystem::Stat(const char *pszFilename,\n
      \                                         VSIStatBufL *pStatBuf, int nFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:643,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:646,1
    - Dst: VSIKerchunkParquetRefFileSystem::Load
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:649,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:656,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:658,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:660,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:662,1
    - Dst: substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:662,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:664,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:664,1
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:665,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:666,1
    - Dst: substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:668,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:668,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:669,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:671,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:671,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:673,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:673,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:677,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:681,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:681,1
    - Dst: auto::m_oMapArrayInfo::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:685,1
    - Dst: auto::m_oMapArrayInfo::end
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:686,1
    - Dst: auto::anChunkCount::empty
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:689,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:691,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:706,1
    - Dst: auto::anChunkCount::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:707,1
    - Dst: Enumerate
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:710,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:715,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:717,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:719,1
    - Dst: Enumerate
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:724,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:728,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 729
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 729
    functionName: VSIKerchunkParquetRefFileSystem::ReadDirEx
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - CPLStringList::StealList
    - auto::m_oMapArrayInfo::find
    - CPLStringList::CPLStringList
    - auto::anChunkCount::empty
    - std::string::find
    - find
    - auto::m_oMapArrayInfo::end
    - std::move
    - CPLStringList::size
    - c_str
    - CPLStringList::AddString
    - Enumerate
    - CPLSPrintf
    - std::string::resize
    - auto::anChunkCount::size
    - substr
    - size
    - CPLDebugOnly
    - empty
    - VSIKerchunkParquetRefFileSystem::Load
    - std::string::substr
    - cpl::starts_with
    linkageType: ''
    returnType: char
    signature: "char **VSIKerchunkParquetRefFileSystem::ReadDirEx(const char *pszDirname,\n
      \                                                 int nMaxFiles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkParquetRefFileSystem::IsFileSystemInstantiated
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:740,1
    - Dst: VSIFileManager::InstallHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:742,1
    - Dst: std::make_unique<VSIKerchunkParquetRefFileSystem>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 746
    functionName: VSIInstallKerchunkParquetRefFileSystem
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 1
    functionsReached:
    - VSIFileManager::InstallHandler
    - VSIKerchunkParquetRefFileSystem::IsFileSystemInstantiated
    - std::make_unique<VSIKerchunkParquetRefFileSystem>
    linkageType: ''
    returnType: void
    signature: void VSIInstallKerchunkParquetRefFileSystem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<VSIKerchunkParquetRefFileSystem *>
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:754,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:755,1
    - Dst: auto::CleanCache
      Src: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: VSIKerchunkParquetRefFileSystemCleanCache
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_parquet_ref.cpp
    functionUses: 1
    functionsReached:
    - auto::CleanCache
    - VSIFileManager::GetHandler
    - dynamic_cast<VSIKerchunkParquetRefFileSystem *>
    linkageType: ''
    returnType: void
    signature: void VSIKerchunkParquetRefFileSystemCleanCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:33,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:34,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:34,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:35,1
    - Dst: const_cast<GByte *>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:36,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:36,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:39,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:39,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:40,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:53,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:62,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:64,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:67,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:68,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:80,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:81,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_compressors.cpp:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - input_data
    - input_size
    - output_data
    - output_size
    argTypes:
    - void*
    - size_t
    - void**
    - size_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 89
    functionName: ZarrTIFFDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_compressors.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<GDALDataset>
    - static_cast<size_t>
    - CPLError
    - auto::GetRasterBand
    - VSIFCloseL
    - static_cast<uint64_t>
    - GDALSwapWordsEx
    - static_cast<const GByte *>
    - const_cast<GByte *>
    - OGRAPISpyOpen
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool ZarrTIFFDecompressor(const void *input_data, size_t input_size,\n
      \                                void **output_data, size_t *output_size,\n
      \                                CSLConstList /* options */,\n                                 void
      * /* compressor_user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: ZarrGetTIFFDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_compressors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLCompressor
    signature: CPLCompressor *ZarrGetTIFFDecompressor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::Flush
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: ZarrGroupBase::~ZarrGroupBase()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - second::Flush
    linkageType: ''
    returnType: void
    signature: void ZarrGroupBase::~ZarrGroupBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:42,1
    - Dst: ExploreDirectory
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: ZarrGroupBase::GetMDArrayNames
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - ExploreDirectory
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ZarrGroupBase::GetMDArrayNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrArray>::GetName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:57,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:58,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:58,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:58,1
    - Dst: std::shared_ptr<ZarrArray>::GetName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:58,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:59,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:61,1
    - Dst: std::shared_ptr<ZarrArray>::GetName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:61,1
    - Dst: std::shared_ptr<ZarrArray>::RegisterGroup
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:63,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:64,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - std::shared_ptr<ZarrArray>
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: ZarrGroupBase::RegisterArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::find
    - std::shared_ptr<ZarrArray>::RegisterGroup
    - std::shared_ptr<ZarrArray>::GetName
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - lock
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void ZarrGroupBase::RegisterArray(const std::shared_ptr<ZarrArray>
      &array) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:73,1
    - Dst: ExploreDirectory
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: ZarrGroupBase::GetGroupNames
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - ExploreDirectory
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ZarrGroupBase::GetGroupNames(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:89,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:94,1
    - Dst: ZarrGroupBase::GetGroupNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:99,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:101,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:101,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:101,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:104,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:105,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:110,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:110,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:110,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:111,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:111,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:113,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:114,1
    - Dst: DeleteZMetadataItemRecursive
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:118,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:120,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:122,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:123,1
    - Dst: auto::second::Deleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:125,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 130
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 130
    functionName: ZarrGroupBase::DeleteGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - ZarrGroupBase::GetGroupNames
    - c_str
    - CPLError
    - erase
    - find
    - DeleteZMetadataItemRecursive
    - auto::second::Deleted
    - begin
    - std::find
    - CheckValidAndErrorOutIfNot
    - VSIRmdirRecursive
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool ZarrGroupBase::DeleteGroup(const std::string &osName,\n                                CSLConstList
      /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::ParentDeleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:139,1
    - Dst: second::ParentDeleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:142,1
    - Dst: ParentDeleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:144,1
    - Dst: second::ParentDeleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: ZarrGroupBase::NotifyChildrenOfDeletion
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - second::ParentDeleted
    - ParentDeleted
    linkageType: ''
    returnType: void
    signature: void ZarrGroupBase::NotifyChildrenOfDeletion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:163,1
    - Dst: std::vector<GUInt64>::size
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:167,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:169,1
    - Dst: LoadAttributes
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:173,1
    - Dst: ZarrGroupBase::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - osName
    - anDimensions
    - oDataType
    - papszOptions
    argTypes:
    - std::string
    - std::vector<GUInt64>
    - GDALExtendedDataType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 176
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 176
    functionName: ZarrGroupBase::CreateAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - LoadAttributes
    - std::vector<GUInt64>::size
    - CheckValidAndErrorOutIfNot
    - ZarrGroupBase::CreateAttribute
    linkageType: ''
    returnType: std::shared_ptr<GDALAttribute>
    signature: "std::shared_ptr<GDALAttribute> ZarrGroupBase::CreateAttribute(\n    const
      std::string &osName, const std::vector<GUInt64> &anDimensions,\n    const GDALExtendedDataType
      &oDataType, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:189,1
    - Dst: LoadAttributes
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:194,1
    - Dst: ZarrGroupBase::DeleteAttribute
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: ZarrGroupBase::DeleteAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 1
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - ZarrGroupBase::DeleteAttribute
    - LoadAttributes
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ZarrGroupBase::DeleteAttribute(const std::string &osName, CSLConstList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:205,1
    - Dst: ZarrGroupBase::GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:212,1
    - Dst: OpenMDArray
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:215,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: ZarrGroupBase::GetDimensions
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - OpenMDArray
    - std::vector::push_back
    - ZarrGroupBase::GetMDArrayNames
    linkageType: ''
    returnType: std::vector<std::shared_ptr<GDALDimension>>
    signature: std::vector<std::shared_ptr<GDALDimension>> ZarrGroupBase::GetDimensions(CSLConstList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:234,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:239,1
    - Dst: ZarrGroupBase::GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:244,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:246,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:246,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:246,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:247,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:249,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:250,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:255,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:255,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:255,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:256,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:256,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:258,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:259,1
    - Dst: DeleteZMetadataItemRecursive
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:263,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:265,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:267,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:268,1
    - Dst: auto::second::Deleted
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:270,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 275
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 275
    functionName: ZarrGroupBase::DeleteMDArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - erase
    - CPLError
    - find
    - DeleteZMetadataItemRecursive
    - auto::second::Deleted
    - ZarrGroupBase::GetMDArrayNames
    - std::find
    - begin
    - CheckValidAndErrorOutIfNot
    - VSIRmdirRecursive
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: bool
    signature: "bool ZarrGroupBase::DeleteMDArray(const std::string &osName,\n                                  CSLConstList
      /*papszOptions*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:285,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:288,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:290,1
    - Dst: ZarrGroupBase::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:294,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:296,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:296,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:298,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:302,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:304,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:304,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:304,1
    - Dst: auto::SetXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - osName
    - osType
    - osDirection
    - nSize
    argTypes:
    - std::string
    - std::string
    - std::string
    - GUInt64
    constantsTouched: []
    func_position:
      end: 309
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 309
    functionName: ZarrGroupBase::CreateDimension
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - end
    - CPLError
    - std::make_shared<ZarrDimension>
    - find
    - auto::SetXArrayDimension
    - ZarrGroupBase::GetDimensions
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - CheckValidAndErrorOutIfNot
    - lock
    - GetFullName
    linkageType: ''
    returnType: std::shared_ptr<GDALDimension>
    signature: "std::shared_ptr<GDALDimension> ZarrGroupBase::CreateDimension(\n    const
      std::string &osName, const std::string &osType,\n    const std::string &osDirection,
      GUInt64 nSize, CSLConstList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:318,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:318,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:320,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:324,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:325,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:327,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:330,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:331,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - osOldName
    - osNewName
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 334
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 334
    functionName: ZarrGroupBase::RenameDimension
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - erase
    - find
    - CPLAssert
    - std::move
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool ZarrGroupBase::RenameDimension(const std::string &osOldName,\n
      \                                   const std::string &osNewName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrGroupBase::GetGroupNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:343,1
    - Dst: OpenZarrGroup
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:346,1
    - Dst: auto::UpdateDimensionSize
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:349,1
    - Dst: ZarrGroupBase::GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:352,1
    - Dst: OpenZarrArray
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:359,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:363,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:365,1
    - Dst: std::shared_ptr<GDALDimension>::GetFullName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:365,1
    - Dst: std::dynamic_pointer_cast<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:368,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:369,1
    - Dst: auto::SetSize
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:370,1
    - Dst: std::shared_ptr<GDALDimension>::GetSize
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:370,1
    - Dst: auto::SetDefinitionModified
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - poUpdatedDim
    argTypes:
    - std::shared_ptr<GDALDimension>
    constantsTouched: []
    func_position:
      end: 376
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 376
    functionName: ZarrGroupBase::UpdateDimensionSize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - OpenZarrArray
    - ZarrGroupBase::GetGroupNames
    - auto::GetDimensions
    - std::shared_ptr<GDALDimension>::GetFullName
    - std::dynamic_pointer_cast<ZarrDimension>
    - CPLAssert
    - ZarrGroupBase::GetMDArrayNames
    - std::shared_ptr<GDALDimension>::GetSize
    - auto::SetDefinitionModified
    - auto::SetSize
    - OpenZarrGroup
    - GetFullName
    - auto::UpdateDimensionSize
    linkageType: ''
    returnType: void
    signature: "void ZarrGroupBase::UpdateDimensionSize(\n    const std::shared_ptr<GDALDimension>
      &poUpdatedDim)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:394,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:395,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:397,1
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:398,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - osOldName
    - osNewName
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 401
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 401
    functionName: ZarrGroupBase::NotifyArrayRenamed
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - std::move
    - erase
    linkageType: ''
    returnType: void
    signature: "void ZarrGroupBase::NotifyArrayRenamed(const std::string &osOldName,\n
      \                                      const std::string &osNewName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:410,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:411,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:412,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:413,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:414,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: ZarrGroupBase::IsValidObjectName
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::find
    - STARTS_WITH
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool ZarrGroupBase::IsValidObjectName(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrGroupBase::GetGroupNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:424,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:425,1
    - Dst: auto::begin
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:425,1
    - Dst: auto::end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:425,1
    - Dst: auto::end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:426,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:428,1
    - Dst: ZarrGroupBase::GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:433,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:434,1
    - Dst: auto::begin
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:434,1
    - Dst: auto::end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:434,1
    - Dst: auto::end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:435,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 443
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 443
    functionName: ZarrGroupBase::CheckArrayOrGroupWithSameNameDoesNotExist
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - ZarrGroupBase::GetGroupNames
    - ZarrGroupBase::GetMDArrayNames
    - std::find
    - CPLError
    - auto::begin
    - auto::end
    linkageType: ''
    returnType: bool
    signature: "bool ZarrGroupBase::CheckArrayOrGroupWithSameNameDoesNotExist(\n    const
      std::string &osName) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:456,1
    - Dst: ZarrGroupBase::IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:460,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:462,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:467,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:471,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:471,1
    - Dst: auto::CheckArrayOrGroupWithSameNameDoesNotExist
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:474,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:479,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:479,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:479,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:482,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:482,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:482,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:484,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:485,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:485,1
    - Dst: auto::m_oMapGroups::find
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:491,1
    - Dst: auto::m_oMapGroups::end
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:492,1
    - Dst: auto::m_oMapGroups::erase
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:494,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:495,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:495,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:497,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:497,1
    - Dst: RenameZMetadataRecursive
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:510,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:513,1
    - Dst: BaseRename
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:515,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - osNewName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 518
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 518
    functionName: ZarrGroupBase::Rename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - auto::m_oMapGroups::find
    - CPLError
    - std::string::c_str
    - BaseRename
    - auto::m_oMapGroups::end
    - std::move
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - VSIRename
    - c_str
    - RenameZMetadataRecursive
    - auto::m_oMapGroups::erase
    - std::string::resize
    - CPLAssert
    - CheckValidAndErrorOutIfNot
    - lock
    - size
    - ZarrGroupBase::IsValidObjectName
    - std::string::size
    - auto::CheckArrayOrGroupWithSameNameDoesNotExist
    linkageType: ''
    returnType: bool
    signature: bool ZarrGroupBase::Rename(const std::string &osNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:526,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:526,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:528,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:530,1
    - Dst: auto::m_osDirectoryName::c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:530,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:531,1
    - Dst: GDALGroup::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - osNewParentFullName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: ZarrGroupBase::ParentRenamed
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - auto::m_osDirectoryName::c_str
    - CPLAssert
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - lock
    - CPLFormFilenameSafe
    - GDALGroup::ParentRenamed
    linkageType: ''
    returnType: void
    signature: void ZarrGroupBase::ParentRenamed(const std::string &osNewParentFullName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: second::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:543,1
    - Dst: second::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:546,1
    - Dst: ZarrGroupBase::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:548,1
    - Dst: second::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_group.cpp:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: ZarrGroupBase::NotifyChildrenOfRenaming
    functionSourceFile: /src/gdal/frmts/zarr/zarr_group.cpp
    functionUses: 0
    functionsReached:
    - second::ParentRenamed
    - ZarrGroupBase::ParentRenamed
    linkageType: ''
    returnType: void
    signature: void ZarrGroupBase::NotifyChildrenOfRenaming()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:23,1
    - Dst: ZarrDimension::IsXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:27,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:29,1
    - Dst: ZarrGroupBase::IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:34,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:36,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:40,1
    - Dst: auto::RenameDimension
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:42,1
    - Dst: BaseRename
      Src: /src/gdal/frmts/zarr/zarr_dimension.cpp:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - osNewName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 53
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 53
    functionName: ZarrDimension::Rename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_dimension.cpp
    functionUses: 0
    functionsReached:
    - BaseRename
    - ZarrGroupBase::IsValidObjectName
    - ZarrDimension::IsXArrayDimension
    - CPLError
    - lock
    - auto::RenameDimension
    linkageType: ''
    returnType: bool
    signature: bool ZarrDimension::Rename(const std::string &osNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:40,1
    - Dst: std::bad_alloc
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:41,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:51,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:55,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:57,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pszStr
    - needByteSwap
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: UTF8ToUCS4
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - CPL_SWAP32PTR
    - memcpy
    - std::bad_alloc
    - std::vector::resize
    linkageType: ''
    returnType: std::vector<GByte>
    signature: std::vector<GByte> UTF8ToUCS4(const char *pszStr, bool needByteSwap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:67,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:77,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ucs4Ptr
    - nSize
    - needByteSwap
    argTypes:
    - uint8_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: UCS4ToUTF8
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - memcpy
    - CPL_SWAP32PTR
    linkageType: ''
    returnType: char
    signature: char *UCS4ToUTF8(const uint8_t *ucs4Ptr, size_t nSize, bool needByteSwap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:103,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:103,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:106,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:109,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:111,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:114,1
    - Dst: std::vector<GUInt64>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - oChunks
    - oType
    - anBlockSize
    argTypes:
    - CPLJSONArray
    - GDALExtendedDataType
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 119
    functionName: ZarrArray::ParseChunkSize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<GUInt64>
    - static_cast<size_t>
    - ToLong
    - CPLError
    - std::vector<GUInt64>::emplace_back
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::ParseChunkSize(const CPLJSONArray &oChunks,\n                                            const
      GDALExtendedDataType &oType,\n                                            std::vector<GUInt64>
      &anBlockSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::shared_ptr<GDALDimension>>::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:131,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:138,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:140,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - osName
    - aoDims
    - anBlockSize
    argTypes:
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: ZarrArray::ComputeTileCount
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - std::string::c_str
    - CPLError
    - std::vector<std::shared_ptr<GDALDimension>>::size
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t ZarrArray::ComputeTileCount(\n    const std::string &osName,\n
      \   const std::vector<std::shared_ptr<GDALDimension>> &aoDims,\n    const std::vector<GUInt64>
      &anBlockSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrSharedResource>::GetPAM
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:165,1
    - Dst: ZarrArray::ComputeTileCount
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:170,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:180,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:183,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - aoDims
    - oType
    - aoDtypeElts
    - anBlockSize
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 185
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 185
    functionName: ZarrArray::ZarrArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLTestBool
    - std::shared_ptr<ZarrSharedResource>::GetPAM
    - CPLGetConfigOption
    - ZarrArray::ComputeTileCount
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::ZarrArray(\n    const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n    const std::string &osParentName, const std::string &osName,\n
      \   const std::vector<std::shared_ptr<GDALDimension>> &aoDims,\n    const GDALExtendedDataType
      &oType, const std::vector<DtypeElt> &aoDtypeElts,\n    const std::vector<GUInt64>
      &anBlockSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeDynamicMemory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:195,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:196,1
    - Dst: ZarrArray::DeallocateDecodedTileData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: ZarrArray::~ZarrArray()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - FreeDynamicMemory
    - CPLFree
    - ZarrArray::DeallocateDecodedTileData
    linkageType: ''
    returnType: void
    signature: void ZarrArray::~ZarrArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnsetModified
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:209,1
    - Dst: Serialize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:211,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:215,1
    - Dst: exportToWkt
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:218,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:220,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:222,1
    - Dst: exportToPROJJSON
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:227,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:230,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:231,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:231,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:233,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:233,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:236,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:242,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:244,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:245,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:249,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:252,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:255,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:259,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:265,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:269,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:275,1
    - Dst: auto::Set
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 284
    functionName: ZarrArray::SerializeSpecialAttributes
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - empty
    - std::string
    - CPLJSONObject::CPLJSONObject
    - CPLJSONObject::Add
    - UnsetModified
    - exportToPROJJSON
    - auto::Delete
    - CPLJSONDocument::GetRoot
    - EQUAL
    - Serialize
    - exportToWkt
    - CPLJSONDocument::CPLJSONDocument
    - CPLFree
    - auto::Set
    - auto::Add
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrArray::SerializeSpecialAttributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::shared_ptr<GDALDimension>>::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:296,1
    - Dst: std::vector<GUInt64>::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:297,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:303,1
    - Dst: std::max<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:303,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:303,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:304,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:306,1
    - Dst: std::max<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:306,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:306,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:307,1
    - Dst: std::max<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:311,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:311,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:318,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:318,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:319,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:319,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:321,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:328,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:328,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:331,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:336,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:338,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - aoDimensions
    - oDataType
    - anBlockSize
    - papszOptions
    argTypes:
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<GUInt64>
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 346
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 346
    functionName: ZarrArray::FillBlockSize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - static_cast<GUInt64>
    - static_cast<size_t>
    - CPLError
    - CSLTokenizeString2
    - std::vector<GUInt64>::resize
    - CPLAtoGIntBig
    - min
    - std::max<GUInt64>
    - std::vector<std::shared_ptr<GDALDimension>>::size
    - CPLStringList
    - auto::size
    - GetSize
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::FillBlockSize(\n    const std::vector<std::shared_ptr<GDALDimension>>
      &aoDimensions,\n    const GDALExtendedDataType &oDataType, std::vector<GUInt64>
      &anBlockSize,\n    CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:354,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:369,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 375
    functionName: ZarrArray::DeallocateDecodedTileData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - VSIFree
    - empty
    linkageType: ''
    returnType: void
    signature: void ZarrArray::DeallocateDecodedTileData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8ToUCS4
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:396,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:397,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:398,1
    - Dst: auto::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:398,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:399,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:402,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:407,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:413,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:418,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:427,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:428,1
    - Dst: gdalType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:428,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:435,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:443,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:450,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:459,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:460,1
    - Dst: reinterpret_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:460,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:462,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:469,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:476,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:477,1
    - Dst: reinterpret_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:477,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:479,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:483,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:491,1
    - Dst: gdalType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:491,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:497,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:501,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:511,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:512,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:514,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:519,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:524,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:525,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 3
    argNames:
    - elts
    - pSrc
    - pDst
    argTypes:
    - std::vector<DtypeElt>
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 529
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 529
    functionName: ZarrArray::EncodeElt
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - gdalType::GetNumericDataType
    - CPL_SWAP64
    - auto::data
    - reinterpret_cast<const uint64_t *>
    - reinterpret_cast<const uint32_t *>
    - min
    - CPLAssert
    - CPL_SWAP32
    - UTF8ToUCS4
    - CPLError
    - memset
    - auto::size
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::EncodeElt(const std::vector<DtypeElt> &elts, const
      GByte *pSrc,\n                          GByte *pDst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:537,1
    - Dst: GetNoDataValueAsInt64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:539,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:540,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:540,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:542,1
    - Dst: GetNoDataValueAsUInt64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:544,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:545,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:545,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:550,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:551,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:552,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:553,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:554,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:555,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:556,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:556,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:557,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:557,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - oRoot
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 561
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 561
    functionName: ZarrArray::SerializeNumericNoData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - GDALDataTypeIsInteger
    - GetNoDataValueAsInt64
    - cpl::infinity
    - static_cast<uint64_t>
    - GetNumericDataType
    - GetNoDataValueAsUInt64
    - static_cast<GInt64>
    - CPLJSONObject::Add
    - std::isnan
    linkageType: ''
    returnType: void
    signature: void ZarrArray::SerializeNumericNoData(CPLJSONObject &oRoot) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:569,1
    - Dst: GDALPamMDArray::GetSpatialRef
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 575
    functionName: ZarrArray::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - GDALPamMDArray::GetSpatialRef
    linkageType: ''
    returnType: std::shared_ptr<OGRSpatialReference>
    signature: std::shared_ptr<OGRSpatialReference> ZarrArray::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:583,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:588,1
    - Dst: ZarrArray::RegisterNoDataValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pRawNoData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 594
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 594
    functionName: ZarrArray::SetRawNoDataValue
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - ZarrArray::RegisterNoDataValue
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::SetRawNoDataValue(const void *pRawNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeDynamicMemory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:604,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:609,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:614,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:617,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:617,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:619,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pNoData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 623
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 623
    functionName: ZarrArray::RegisterNoDataValue
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - GetSize
    - static_cast<GByte *>
    - GDALExtendedDataType::CopyValue
    - memset
    - CPLMalloc
    - FreeDynamicMemory
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void ZarrArray::RegisterNoDataValue(const void *pNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:648,1
    - Dst: Stack
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:649,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:657,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:665,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:674,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:682,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:686,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:698,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:699,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:701,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:702,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:704,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:705,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:707,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:711,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - abySrc
    - abyDst
    - bDecode
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - bool
    constantsTouched: []
    func_position:
      end: 728
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 728
    functionName: ZarrArray::BlockTranspose
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint16_t *>
    - static_cast<uint32_t *>
    - memcpy
    - static_cast<uint64_t *>
    - static_cast<const uint16_t *>
    - Stack
    - std::vector::emplace_back
    - static_cast<const uint64_t *>
    - ZarrByteVectorQuickResize::data
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::BlockTranspose(const ZarrByteVectorQuickResize &abySrc,\n
      \                              ZarrByteVectorQuickResize &abyDst,\n                               bool
      bDecode) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:744,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:745,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:749,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:756,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:759,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:760,1
    - Dst: gdalType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:760,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:762,1
    - Dst: reinterpret_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:767,1
    - Dst: CPL_SWAP16
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:768,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:774,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:775,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:776,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:783,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:784,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:785,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:786,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:787,1
    - Dst: CPL_SWAP32
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:788,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:793,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:794,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:795,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:801,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:802,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:803,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:804,1
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:805,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:806,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:810,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:818,1
    - Dst: gdalType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:818,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:820,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:822,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:826,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:833,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:834,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:837,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:839,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:843,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:844,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 3
    argNames:
    - elts
    - pSrc
    - pDst
    argTypes:
    - std::vector<DtypeElt>
    - GByte*
    - GByte*
    constantsTouched: []
    func_position:
      end: 848
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 848
    functionName: ZarrArray::DecodeSourceElt
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - gdalType::GetNumericDataType
    - CPL_SWAP64
    - CPL_SWAP16
    - reinterpret_cast<uint16_t *>
    - reinterpret_cast<uint32_t *>
    - CPLAssert
    - VSIFree
    - CPL_SWAP32
    - memcpy
    - reinterpret_cast<uint64_t *>
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::DecodeSourceElt(const std::vector<DtypeElt> &elts,\n
      \                               const GByte *pSrc, GByte *pDst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:862,1
    - Dst: std::vector<uint64_t>::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:866,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:878,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:910,1
    - Dst: max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:915,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:917,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:922,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:923,1
    - Dst: max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:923,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:930,1
    - Dst: CPLGetNumCPUs
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:931,1
    - Dst: max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:933,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:933,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:938,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:941,1
    - Dst: std::vector<uint64_t>::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:946,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:950,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:951,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:963,1
    - Dst: std::vector<uint64_t>::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:963,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:969,1
    - Dst: std::vector<uint64_t>::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:969,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:974,1
    - Dst: std::vector<uint64_t>::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:974,1
    - Dst: assert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:996,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 7
    argNames:
    - arrayStartIdx
    - count
    - papszOptions
    - anIndicesCur
    - nThreadsMax
    - anReqTilesIndices
    - nReqTiles
    argTypes:
    - GUInt64*
    - size_t*
    - CSLConstList
    - std::vector<uint64_t>
    - int
    - std::vector<uint64_t>
    - size_t
    constantsTouched: []
    func_position:
      end: 999
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 999
    functionName: ZarrArray::IAdviseReadCommon
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<GUIntBig>
    - static_cast<size_t>
    - CPLError
    - atoi
    - assert
    - CPLDebug
    - EQUAL
    - max
    - CPLGetNumCPUs
    - std::vector<uint64_t>::resize
    - CheckValidAndErrorOutIfNot
    - memcpy
    - what
    - std::vector<uint64_t>::data
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::IAdviseReadCommon(const GUInt64 *arrayStartIdx,\n
      \                                 const size_t *count,\n                                  CSLConstList
      papszOptions,\n                                  std::vector<uint64_t> &anIndicesCur,\n
      \                                 int &nThreadsMax,\n                                  std::vector<uint64_t>
      &anReqTilesIndices,\n                                  size_t &nReqTiles) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1010,1
    - Dst: AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1013,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1033,1
    - Dst: GDALExtendedDataType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1033,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1042,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1043,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1044,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1057,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1059,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1068,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1069,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1070,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1082,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1083,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1085,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1087,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1101,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1109,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1117,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1118,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1119,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1123,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1129,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1132,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1133,1
    - Dst: auto::second::abyDecoded::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1136,1
    - Dst: auto::second::abyDecoded::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1142,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1147,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1149,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1155,1
    - Dst: FlushDirtyTile
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1163,1
    - Dst: LoadTileData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1168,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1168,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1176,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1177,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1178,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1189,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1192,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1198,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1200,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1203,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1206,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1216,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1217,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1231,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1236,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1238,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1240,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1241,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1241,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1242,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1243,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1244,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1250,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1257,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1261,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1265,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1269,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1273,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1274,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1278,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1287,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1288,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1290,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1291,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1293,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1294,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1296,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1297,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1300,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1301,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1302,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1303,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1307,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1312,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1318,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1328,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1336,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1336,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1339,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1341,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1342,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1343,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1344,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1345,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1346,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1353,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1360,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1361,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1364,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1365,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1369,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1370,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1374,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1375,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1379,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1380,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1381,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1382,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1386,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1391,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1393,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1395,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1402,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1408,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1411,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1416,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1465,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1473,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1487,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 252
    argCount: 6
    argNames:
    - arrayStartIdx
    - count
    - arrayStep
    - bufferStride
    - bufferDataType
    - pDstBuffer
    argTypes:
    - GUInt64*
    - size_t*
    - GInt64*
    - GPtrDiff_t*
    - GDALExtendedDataType
    - void*
    constantsTouched: []
    func_position:
      end: 1496
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1496
    functionName: ZarrArray::IRead
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - static_cast<uint32_t *>
    - static_cast<uint64_t *>
    - std::vector::size
    - static_cast<const uint64_t *>
    - std::vector::push_back
    - simple_max
    - static_cast<GIntBig>
    - end
    - static_cast<GPtrDiff_t>
    - static_cast<const uint16_t *>
    - find
    - GetClass
    - GDALCopyWords64
    - GDALCopyWords
    - std::vector::empty
    - GetSize
    - std::vector::data
    - GDALExtendedDataType::GetSize
    - auto::second::abyDecoded::data
    - static_cast<uint16_t *>
    - static_cast<int>
    - static_cast<const uint8_t *>
    - min
    - GetNumericDataType
    - CPLAssert
    - FlushDirtyTile
    - static_cast<GByte *>
    - CheckValidAndErrorOutIfNot
    - auto::second::abyDecoded::empty
    - GDALExtendedDataType::CopyValue
    - static_cast<uint8_t *>
    - data
    - std::vector::resize
    - static_cast<GUInt64>
    - CPLDebugOnly
    - static_cast<size_t>
    - back
    - empty
    - LoadTileData
    - GDALExtendedDataType::GetNumericDataType
    - AllocateWorkingBuffers
    - memset
    - memcpy
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::IRead(const GUInt64 *arrayStartIdx, const size_t *count,\n
      \                     const GInt64 *arrayStep, const GPtrDiff_t *bufferStride,\n
      \                     const GDALExtendedDataType &bufferDataType,\n                      void
      *pDstBuffer) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1507,1
    - Dst: AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1510,1
    - Dst: clear
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1513,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1535,1
    - Dst: GDALExtendedDataType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1535,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1544,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1545,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1546,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1559,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1561,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1570,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1571,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1572,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1584,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1585,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1587,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1589,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1603,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1616,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1628,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1631,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1653,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1656,1
    - Dst: FlushDirtyTile
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1663,1
    - Dst: ZarrArray::DeallocateDecodedTileData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1673,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1674,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1674,1
    - Dst: LoadTileData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1683,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1683,1
    - Dst: ZarrArray::DeallocateDecodedTileData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1691,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1695,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1695,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1701,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1703,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1704,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1705,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1706,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1706,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1707,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1713,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1725,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1737,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1751,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1752,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1755,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1756,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1760,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1761,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1765,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1766,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1770,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1771,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1772,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1773,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1777,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1781,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1782,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1784,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1786,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1787,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1788,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1789,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1790,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1791,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1799,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1806,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1807,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1810,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1811,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1815,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1816,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1820,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1821,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1825,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1826,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1827,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1828,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1832,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1837,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1839,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1846,1
    - Dst: UTF8ToUCS4
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1851,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1853,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1854,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1855,1
    - Dst: auto::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1855,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1856,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1859,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1864,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1870,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1875,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1876,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1878,1
    - Dst: memset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1883,1
    - Dst: NeedsFreeDynamicMemory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1888,1
    - Dst: FreeDynamicMemory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1889,1
    - Dst: GDALExtendedDataType::CopyValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1890,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1906,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1922,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1945,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1953,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1967,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 236
    argCount: 6
    argNames:
    - arrayStartIdx
    - count
    - arrayStep
    - bufferStride
    - bufferDataType
    - pSrcBuffer
    argTypes:
    - GUInt64*
    - size_t*
    - GInt64*
    - GPtrDiff_t*
    - GDALExtendedDataType
    - void*
    constantsTouched: []
    func_position:
      end: 1976
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1976
    functionName: ZarrArray::IWrite
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t *>
    - static_cast<uint64_t *>
    - static_cast<const GByte *>
    - static_cast<const uint64_t *>
    - std::vector::push_back
    - CPLError
    - auto::size
    - static_cast<GIntBig>
    - simple_max
    - static_cast<GPtrDiff_t>
    - static_cast<const uint16_t *>
    - GetClass
    - GDALCopyWords64
    - std::vector::empty
    - GetSize
    - std::vector::data
    - GDALExtendedDataType::GetSize
    - static_cast<uint16_t *>
    - static_cast<int>
    - static_cast<const uint8_t *>
    - NeedsFreeDynamicMemory
    - min
    - GetNumericDataType
    - CPLAssert
    - FlushDirtyTile
    - CheckValidAndErrorOutIfNot
    - GDALExtendedDataType::CopyValue
    - static_cast<uint8_t *>
    - FreeDynamicMemory
    - std::vector::resize
    - static_cast<GUInt64>
    - static_cast<size_t>
    - ZarrArray::DeallocateDecodedTileData
    - back
    - empty
    - LoadTileData
    - auto::data
    - GDALExtendedDataType::GetNumericDataType
    - AllocateWorkingBuffers
    - UTF8ToUCS4
    - memset
    - memcpy
    - static_cast<const uint32_t *>
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::IWrite(const GUInt64 *arrayStartIdx, const size_t
      *count,\n                       const GInt64 *arrayStep, const GPtrDiff_t *bufferStride,\n
      \                      const GDALExtendedDataType &bufferDataType,\n                       const
      void *pSrcBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1984,1
    - Dst: GetNoDataValueAsDouble
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1985,1
    - Dst: reinterpret_cast<const size_t *>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1991,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:1991,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2005,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2006,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2006,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2010,1
    - Dst: GDALBufferHasOnlyNoData
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2011,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2011,1
    - Dst: GetNoDataValueAsDouble
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2011,1
    - Dst: GDALDataTypeIsInteger
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2017,1
    - Dst: GDALDataTypeIsSigned
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2018,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - abyTile
    argTypes:
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 2024
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 2024
    functionName: ZarrArray::IsEmptyTile
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - GDALDataTypeIsSigned
    - reinterpret_cast<const size_t *>
    - GetClass
    - GetNumericDataType
    - GDALDataTypeIsComplex
    - GDALDataTypeIsInteger
    - GetNoDataValueAsDouble
    - ZarrByteVectorQuickResize::data
    - GDALBufferHasOnlyNoData
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::IsEmptyTile(const ZarrByteVectorQuickResize &abyTile)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCacheRootGroup
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2041,1
    - Dst: MassageName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2045,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2045,1
    - Dst: auto::OpenMDArray
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2047,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2048,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2052,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2053,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2054,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2054,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2060,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2063,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2065,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2074,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2076,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2076,1
    - Dst: auto::GetAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2080,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2082,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2085,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2089,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2090,1
    - Dst: auto::CreateDimension
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2099,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2100,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2101,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2101,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2102,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2106,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2108,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2112,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2112,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2112,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2117,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2118,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2118,1
    - Dst: auto::CreateMDArray
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2120,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2121,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2124,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2125,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2125,1
    - Dst: auto::SetNoDataValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2128,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - bCanCreate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2138
      start: 2030
    functionDepth: 2
    functionLinenumber: 2030
    functionLinenumberEnd: 2138
    functionName: ZarrArray::OpenTilePresenceCache
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - MassageName
    - auto::CreateMDArray
    - CPLDebug
    - std::vector::emplace_back
    - auto::SetNoDataValue
    - CPLError
    - GetFullName
    - std::string::c_str
    - auto::size
    - CPLStringList::CPLStringList
    - CPLStringList::List
    - std::string::empty
    - auto::CreateDimension
    - auto::GetDataType
    - auto::OpenMDArray
    - GetSize
    - GDALExtendedDataType::Create
    - std::to_string
    - min
    - auto::GetSize
    - CPLStringList::SetNameValue
    - auto::GetAttribute
    - size
    - GetCacheRootGroup
    - auto::GetDimensions
    - std::string
    linkageType: ''
    returnType: std::shared_ptr<GDALMDArray>
    signature: std::shared_ptr<GDALMDArray> ZarrArray::OpenTilePresenceCache(bool
      bCanCreate) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDataDirectory
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2149,1
    - Dst: VSICloseDir
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2164,1
    - Dst: VSIOpenDir
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2168,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2168,1
    - Dst: ZarrArray::OpenTilePresenceCache
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2173,1
    - Dst: auto::GetAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2179,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2181,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2183,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2187,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2188,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2189,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2190,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2191,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2192,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2194,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2197,1
    - Dst: VSIGetNextDirEntry
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2201,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2203,1
    - Dst: GetTileIndicesFromFilename
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2205,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2206,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2209,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2209,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2209,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2213,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2215,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2220,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2220,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2221,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2234,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2244,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2245,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2245,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2245,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2246,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2253,1
    - Dst: auto::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2256,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2257,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2261,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2263,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2265,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2144
    functionDepth: 3
    functionLinenumber: 2144
    functionLinenumberEnd: 2273
    functionName: ZarrArray::CacheTilePresence
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - GetDataDirectory
    - auto::GetName
    - CPLDebug
    - VSIGetNextDirEntry
    - CPLString
    - std::string::c_str
    - auto::CreateAttribute
    - auto::Write
    - CPLAtoGIntBig
    - VSI_ISDIR
    - GDALExtendedDataType::CreateString
    - CPLStringList::size
    - GetSize
    - std::vector::data
    - GDALExtendedDataType::Create
    - static_cast<int>
    - GetTileIndicesFromFilename
    - ZarrArray::OpenTilePresenceCache
    - VSICloseDir
    - auto::GetAttribute
    - size
    - static_cast<GUInt64>
    - auto::GetDimensions
    - VSIOpenDir
    - CPLGetValueType
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::CacheTilePresence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2283,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2288,1
    - Dst: std::vector<GUInt64>::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2292,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2294,1
    - Dst: ZarrArray::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - osName
    - anDimensions
    - oDataType
    - papszOptions
    argTypes:
    - std::string
    - std::vector<GUInt64>
    - GDALExtendedDataType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2300
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2300
    functionName: ZarrArray::CreateAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - ZarrArray::CreateAttribute
    - CPLError
    - std::vector<GUInt64>::size
    linkageType: ''
    returnType: std::shared_ptr<GDALAttribute>
    signature: "std::shared_ptr<GDALAttribute> ZarrArray::CreateAttribute(\n    const
      std::string &osName, const std::vector<GUInt64> &anDimensions,\n    const GDALExtendedDataType
      &oDataType, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2308,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2313,1
    - Dst: ZarrArray::DeleteAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2319
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2319
    functionName: ZarrArray::DeleteAttribute
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - CPLError
    - ZarrArray::DeleteAttribute
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::DeleteAttribute(const std::string &osName, CSLConstList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2327,1
    - Dst: GDALPamMDArray::SetSpatialRef
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2332,1
    - Dst: reset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2334,1
    - Dst: reset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2336,1
    - Dst: OGRSpatialReference*::Clone
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 2339
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2339
    functionName: ZarrArray::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - OGRSpatialReference*::Clone
    - GDALPamMDArray::SetSpatialRef
    - reset
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2347,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - osUnit
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2359
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2359
    functionName: ZarrArray::SetUnit
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    - CPLError
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::SetUnit(const std::string &osUnit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pbHasOffset
    - peStorageType
    argTypes:
    - bool*
    - GDALDataType*
    constantsTouched: []
    func_position:
      end: 2373
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2373
    functionName: ZarrArray::GetOffset
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double ZarrArray::GetOffset(bool *pbHasOffset,\n                            GDALDataType
      *peStorageType) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pbHasScale
    - peStorageType
    argTypes:
    - bool*
    - GDALDataType*
    constantsTouched: []
    func_position:
      end: 2386
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2386
    functionName: ZarrArray::GetScale
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ZarrArray::GetScale(bool *pbHasScale, GDALDataType *peStorageType)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dfOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2401
      start: 2392
    functionDepth: 0
    functionLinenumber: 2392
    functionLinenumberEnd: 2401
    functionName: ZarrArray::SetOffset
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::SetOffset(double dfOffset, GDALDataType /* eStorageType
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dfScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 2416
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2416
    functionName: ZarrArray::SetScale
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - CheckValidAndErrorOutIfNot
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::SetScale(double dfScale, GDALDataType /* eStorageType
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2429,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2431,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2435,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2437,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2441,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2451,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2460,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2464,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2468,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2472,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2477,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2479,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - oAttributes
    - osType
    - osDirection
    argTypes:
    - CPLJSONObject
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 2481
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2481
    functionName: ZarrArray::GetDimensionTypeDirection
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Delete
    - auto::ToString
    - auto::GetType
    - ToString
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::GetDimensionTypeDirection(CPLJSONObject &oAttributes,\n
      \                                         std::string &osType,\n                                          std::string
      &osDirection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2490,1
    - Dst: GetAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2494,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2496,1
    - Dst: auto::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2497,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2502,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2505,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2508,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2513,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2514,1
    - Dst: auto::OpenMDArray
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2516,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2519,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2487
    functionDepth: 1
    functionLinenumber: 2487
    functionLinenumberEnd: 2534
    functionName: ZarrArray::GetCoordinateVariables
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - GetAttribute
    - auto::GetDimensionCount
    - CPLError
    - CSLTokenizeString2
    - auto::GetDataType
    - std::vector::emplace_back
    - auto::OpenMDArray
    - CheckValidAndErrorOutIfNot
    - lock
    - CPLStringList::size
    - GetName
    linkageType: ''
    returnType: std::vector<std::shared_ptr<GDALMDArray>>
    signature: std::vector<std::shared_ptr<GDALMDArray>> ZarrArray::GetCoordinateVariables()
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2543,1
    - Dst: IsWritable
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2546,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2548,1
    - Dst: GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2553,1
    - Dst: std::vector<GUInt64>::size
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2554,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2556,1
    - Dst: GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2561,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2566,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2566,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2567,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2569,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2574,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2576,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2578,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2583,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2584,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2588,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2588,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2591,1
    - Dst: std::dynamic_pointer_cast<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2596,1
    - Dst: auto::SetSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2599,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2600,1
    - Dst: auto::GetFullName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2600,1
    - Dst: UpdateDimensionSize
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2603,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2608,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - anNewDimSizes
    argTypes:
    - std::vector<GUInt64>
    constantsTouched: []
    func_position:
      end: 2613
      start: 2540
    functionDepth: 1
    functionLinenumber: 2540
    functionLinenumberEnd: 2613
    functionName: ZarrArray::Resize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - auto::GetFullName
    - CPLError
    - std::map::end
    - IsWritable
    - get
    - auto::GetName
    - auto::SetSize
    - std::dynamic_pointer_cast<ZarrDimension>
    - std::map::find
    - CPLAssert
    - std::vector<GUInt64>::size
    - UpdateDimensionSize
    - CheckValidAndErrorOutIfNot
    - GetDimensions
    - GetDimensionCount
    - GetSize
    - std::vector::empty
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::Resize(const std::vector<GUInt64> &anNewDimSizes,\n
      \                      CSLConstList /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrArray::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2619
    functionDepth: 1
    functionLinenumber: 2619
    functionLinenumberEnd: 2622
    functionName: ZarrArray::NotifyChildrenOfRenaming
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - ZarrArray::ParentRenamed
    linkageType: ''
    returnType: void
    signature: void ZarrArray::NotifyChildrenOfRenaming()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrAttributeGroup::ParentRenamed
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2630,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2632,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2634,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2636,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2637,1
    - Dst: auto::GetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2637,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2638,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2640,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - osNewParentFullName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2641
      start: 2628
    functionDepth: 3
    functionLinenumber: 2628
    functionLinenumberEnd: 2641
    functionName: ZarrArray::ParentRenamed
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - CPLGetFilename
    - ZarrAttributeGroup::ParentRenamed
    - CPLAssert
    - lock
    - auto::GetDirectoryName
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void ZarrArray::ParentRenamed(const std::string &osNewParentFullName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2649,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2654,1
    - Dst: ZarrGroupBase::IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2658,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2660,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2664,1
    - Dst: auto::CheckArrayOrGroupWithSameNameDoesNotExist
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2667,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2672,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2672,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2672,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2673,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2674,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2674,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2675,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2676,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2676,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2678,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2678,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2678,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2680,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2681,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2681,1
    - Dst: RenameZMetadataRecursive
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2685,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2689,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2689,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2690,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2690,1
    - Dst: auto::NotifyArrayRenamed
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2694,1
    - Dst: BaseRename
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - osNewName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 2700
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2700
    functionName: ZarrArray::Rename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - BaseRename
    - ZarrGroupBase::IsValidObjectName
    - c_str
    - CPLError
    - CPLGetFilename
    - RenameZMetadataRecursive
    - CPLGetDirnameSafe
    - auto::CheckArrayOrGroupWithSameNameDoesNotExist
    - VSIRename
    - CheckValidAndErrorOutIfNot
    - lock
    - std::string::c_str
    - CPLFormFilenameSafe
    - auto::NotifyArrayRenamed
    linkageType: ''
    returnType: bool
    signature: bool ZarrArray::Rename(const std::string &osNewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParentDeleted
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2709
    functionName: ZarrArray::NotifyChildrenOfDeletion
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - ParentDeleted
    linkageType: ''
    returnType: void
    signature: void ZarrArray::NotifyChildrenOfDeletion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2720,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2725,1
    - Dst: std::make_shared<OGRSpatialReference>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2727,1
    - Dst: std::shared_ptr::SetAxisMappingStrategy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2728,1
    - Dst: std::shared_ptr::SetFromUserInput
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2729,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2730,1
    - Dst: "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2731,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2735,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2738,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2746,1
    - Dst: std::shared_ptr<GDALGroup>::OpenMDArray
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2749,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2749,1
    - Dst: std::make_shared<OGRSpatialReference>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2752,1
    - Dst: std::shared_ptr::SetAxisMappingStrategy
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2753,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2754,1
    - Dst: auto::GetAttributes
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2755,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2757,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2759,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2759,1
    - Dst: ReadAsString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2760,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2762,1
    - Dst: ReadAsDoubleArray
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2765,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2767,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2769,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2771,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2771,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2772,1
    - Dst: std::shared_ptr::importFromCF1
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2775,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2775,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2778,1
    - Dst: GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2789,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2791,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2793,1
    - Dst: GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2797,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2799,1
    - Dst: GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2799,1
    - Dst: std::shared_ptr::GetDataAxisToSRSAxisMapping
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2804,1
    - Dst: std::shared_ptr::SetDataAxisToSRSAxisMapping
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2807,1
    - Dst: std::shared_ptr::SetDataAxisToSRSAxisMapping
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2810,1
    - Dst: SetSRS
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2813,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2817,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2819,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2820,1
    - Dst: RegisterUnit
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2821,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2825,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2831,1
    - Dst: RegisterOffset
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2832,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2836,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2842,1
    - Dst: RegisterScale
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2843,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 65
    argCount: 2
    argNames:
    - poGroup
    - oAttributes
    argTypes:
    - std::shared_ptr<GDALGroup>
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 2845
      start: 2715
    functionDepth: 1
    functionLinenumber: 2715
    functionLinenumberEnd: 2845
    functionName: ZarrArray::ParseSpecialAttributes
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - RegisterUnit
    - std::shared_ptr::importFromCF1
    - auto::GetType
    - GetDimensionCount
    - std::shared_ptr<GDALGroup>::OpenMDArray
    - CPLJSONObject::Delete
    - GetDimensions
    - std::string::c_str
    - CPLStringList::CPLStringList
    - SetSRS
    - CPLStringList::List
    - std::string::empty
    - std::make_shared<OGRSpatialReference>
    - ReadAsString
    - std::shared_ptr::SetAxisMappingStrategy
    - RegisterOffset
    - GetDataType
    - std::shared_ptr::SetFromUserInput
    - GetName
    - auto::ToString
    - static_cast<int>
    - RegisterScale
    - CPLSPrintf
    - GetType
    - auto::IsValid
    - CPLStringList::SetNameValue
    - std::shared_ptr::SetDataAxisToSRSAxisMapping
    - std::shared_ptr::GetDataAxisToSRSAxisMapping
    - "OGRSpatialReference::\n                            SET_FROM_USER_INPUT_LIMITATIONS_get"
    - auto::GetAttributes
    - ReadAsDoubleArray
    linkageType: ''
    returnType: void
    signature: "void ZarrArray::ParseSpecialAttributes(\n    const std::shared_ptr<GDALGroup>
      &poGroup, CPLJSONObject &oAttributes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2856,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2857,1
    - Dst: GetAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2859,1
    - Dst: ZarrArray::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2863,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2863,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2870,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2870,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2870,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2871,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2872,1
    - Dst: GDALPamMDArray::SetStatistics
      Src: /src/gdal/frmts/zarr/zarr_array.cpp:2875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 7
    argNames:
    - bApproxStats
    - dfMin
    - dfMax
    - dfMean
    - dfStdDev
    - nValidCount
    - papszOptions
    argTypes:
    - bool
    - double
    - double
    - double
    - double
    - GUInt64
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2877
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2877
    functionName: ZarrArray::SetStatistics
    functionSourceFile: /src/gdal/frmts/zarr/zarr_array.cpp
    functionUses: 0
    functionsReached:
    - GetAttribute
    - CPLTestBool
    - ZarrArray::CreateAttribute
    - auto::Write
    - GDALExtendedDataType::Create
    - CSLFetchNameValueDef
    - GetDataType
    - GDALPamMDArray::SetStatistics
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: "bool ZarrArray::SetStatistics(bool bApproxStats, double dfMin, double
      dfMax,\n                              double dfMean, double dfStdDev,\n                              GUInt64
      nValidCount, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:26,1
    - Dst: Add
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:27,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:27,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:30,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:30,1
    - Dst: pop_back
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:32,1
    - Dst: std::make_shared<GDALPamMultiDim>
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:34,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:35,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - osRootDirectoryName
    - bUpdatable
    argTypes:
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: ZarrSharedResource::ZarrSharedResource
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - back
    - CPLJSONObject
    - empty
    - c_str
    - Add
    - std::make_shared<GDALPamMultiDim>
    - pop_back
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::ZarrSharedResource(const std::string &osRootDirectoryName,\n
      \                                      bool bUpdatable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrSharedResource>
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:46,1
    - Dst: ZarrSharedResource::ZarrSharedResource
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - osRootDirectoryName
    - bUpdatable
    argTypes:
    - std::string
    - bool
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: ZarrSharedResource::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - ZarrSharedResource::ZarrSharedResource
    - std::shared_ptr<ZarrSharedResource>
    linkageType: ''
    returnType: std::shared_ptr<ZarrSharedResource>
    signature: "std::shared_ptr<ZarrSharedResource> ZarrSharedResource::Create(const
      std::string &osRootDirectoryName,\n                           bool bUpdatable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIKerchunkFileSystemsCleanCache
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:59,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:63,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:64,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:65,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:65,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: ZarrSharedResource::~ZarrSharedResource()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLJSONDocument::Save
    - CPLJSONDocument::SetRoot
    - CPLJSONDocument::CPLJSONDocument
    - VSIKerchunkFileSystemsCleanCache
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void ZarrSharedResource::~ZarrSharedResource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Group::Create
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:77,1
    - Dst: shared_from_this
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:77,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:77,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:78,1
    - Dst: auto::SetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:79,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:81,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:82,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:84,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:85,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:85,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:87,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:88,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:90,1
    - Dst: IsValid
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:91,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:95,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:96,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:96,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:98,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:98,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:100,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:101,1
    - Dst: auto::InitFromZGroup
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:103,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:103,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:109,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:109,1
    - Dst: auto::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:110,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:111,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:116,1
    - Dst: strstr
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:117,1
    - Dst: CPLGetLastErrorMsg
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:123,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:124,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:125,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:125,1
    - Dst: GetOpenOptions
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:125,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:127,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:127,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:131,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:132,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:136,1
    - Dst: auto::InitFromZMetadata
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:138,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:143,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:144,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:145,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:145,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:147,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:148,1
    - Dst: auto::InitFromZGroup
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:151,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:151,1
    - Dst: ZarrV3Group::Create
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:158,1
    - Dst: shared_from_this
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:158,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:158,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:160,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:162,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:163,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:165,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:165,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:167,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:168,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:170,1
    - Dst: auto::GetInteger
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:171,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:173,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:177,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:181,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:181,1
    - Dst: auto::SetExplored
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:182,1
    - Dst: auto::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:183,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:194,1
    - Dst: VSIOpenDir
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:201,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:201,1
    - Dst: VSIGetNextDirEntry
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:205,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:207,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:208,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:208,1
    - Dst: VSICloseDir
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:214,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 219
    functionName: ZarrSharedResource::OpenRootGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONDocument::Load
    - auto::GetInteger
    - CPLGetFilename
    - GetOpenOptions
    - VSIGetNextDirEntry
    - CPLJSONDocument::GetRoot
    - strcmp
    - auto::SetDirectoryName
    - CPLError
    - std::string::c_str
    - auto::SetExplored
    - ZarrV3Group::Create
    - shared_from_this
    - auto::InitFromZMetadata
    - IsValid
    - CPLGetLastErrorMsg
    - CPLGetDirnameSafe
    - VSI_ISDIR
    - auto::LoadArray
    - c_str
    - CPLTestBool
    - auto::GetString
    - CPLGetErrorCounter
    - strstr
    - VSICloseDir
    - CPLFormFilenameSafe
    - CPLJSONObject
    - VSIStatL
    - auto::InitFromZGroup
    - CPLGetBasenameSafe
    - CSLFetchNameValueDef
    - std::string
    - CPLJSONDocument::CPLJSONDocument
    - ZarrV2Group::Create
    - VSIOpenDir
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrGroupBase>
    signature: std::shared_ptr<ZarrGroupBase> ZarrSharedResource::OpenRootGroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:231,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:232,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:232,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:232,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:233,1
    - Dst: auto::DeleteNoSplitName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:238,1
    - Dst: auto::AddNoSplitName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - osFilename
    - obj
    argTypes:
    - std::string
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: ZarrSharedResource::SetZMetadataItem
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - auto::DeleteNoSplitName
    - auto::AddNoSplitName
    - CPLString::replaceAll
    - CPLAssert
    - CPLString::c_str
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::SetZMetadataItem(const std::string &osFilename,\n
      \                                         const CPLJSONObject &obj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:253,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:254,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:254,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:254,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:255,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:261,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:263,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:263,1
    - Dst: auto::DeleteNoSplitName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:265,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - osFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 269
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 269
    functionName: ZarrSharedResource::DeleteZMetadataItemRecursive
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - auto::DeleteNoSplitName
    - CPLString::replaceAll
    - CPLAssert
    - CPLString::c_str
    - STARTS_WITH
    - GetName
    - auto::GetChildren
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::DeleteZMetadataItemRecursive(\n    const
      std::string &osFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:281,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:282,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:282,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:282,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:283,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:286,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:287,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:287,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:287,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:288,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:298,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:300,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:300,1
    - Dst: auto::DeleteNoSplitName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:302,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:302,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:304,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:304,1
    - Dst: auto::AddNoSplitName
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - osOldFilename
    - osNewFilename
    argTypes:
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 309
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 309
    functionName: ZarrSharedResource::RenameZMetadataRecursive
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - auto::DeleteNoSplitName
    - auto::AddNoSplitName
    - CPLString::replaceAll
    - CPLAssert
    - CPLString::c_str
    - strlen
    - STARTS_WITH
    - GetName
    - auto::GetChildren
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::RenameZMetadataRecursive(\n    const std::string
      &osOldFilename, const std::string &osNewFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:318,1
    - Dst: ZarrSharedResource::OpenRootGroup
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:320,1
    - Dst: auto::UpdateDimensionSize
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:323,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:327,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poDim
    argTypes:
    - std::shared_ptr<GDALDimension>
    constantsTouched: []
    func_position:
      end: 330
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 330
    functionName: ZarrSharedResource::UpdateDimensionSize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - ZarrSharedResource::OpenRootGroup
    - CPLError
    - lock
    - auto::reset
    - auto::UpdateDimensionSize
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::UpdateDimensionSize(\n    const std::shared_ptr<GDALDimension>
      &poDim)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:339,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:340,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:342,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:343,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:346,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:348,1
    - Dst: insert
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - osZarrayFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: ZarrSharedResource::AddArrayInLoading
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 1
    functionsReached:
    - size
    - end
    - insert
    - find
    - CPLError
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool ZarrSharedResource::AddArrayInLoading(const std::string &osZarrayFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/frmts/zarr/zarr_sharedresource.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - osZarrayFilename
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: ZarrSharedResource::RemoveArrayInLoading
    functionSourceFile: /src/gdal/frmts/zarr/zarr_sharedresource.cpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: "void ZarrSharedResource::RemoveArrayInLoading(\n    const std::string
      &osZarrayFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:33,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:41,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:52,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:64,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:65,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:83,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:91,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:98,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 5
    argNames:
    - input_data
    - input_size
    - output_data
    - output_size
    - options
    argTypes:
    - void*
    - size_t
    - void**
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 100
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 100
    functionName: ZarrShuffleCompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - VSIFree
    - CPLError
    - static_cast<uint8_t *>
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: "bool ZarrShuffleCompressor(const void *input_data, size_t input_size,\n
      \                                 void **output_data, size_t *output_size,\n
      \                                 CSLConstList options,\n                                  void
      * /* compressor_user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:124,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:135,1
    - Dst: static_cast<uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:146,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:147,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:165,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:180,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 5
    argNames:
    - input_data
    - input_size
    - output_data
    - output_size
    - options
    argTypes:
    - void*
    - size_t
    - void**
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 182
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 182
    functionName: ZarrShuffleDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - VSIFree
    - CPLError
    - static_cast<uint8_t *>
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: bool
    signature: "bool ZarrShuffleDecompressor(const void *input_data, size_t input_size,\n
      \                                   void **output_data, size_t *output_size,\n
      \                                   CSLConstList options,\n                                    void
      * /* compressor_user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: ZarrGetShuffleCompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLCompressor
    signature: CPLCompressor *ZarrGetShuffleCompressor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: ZarrGetShuffleDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLCompressor
    signature: CPLCompressor *ZarrGetShuffleDecompressor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:230,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:235,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:235,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:237,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:246,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:251,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:256,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:256,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:267,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:271,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:283,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:285,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:299,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:308,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:312,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:316,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:316,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:317,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:317,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:318,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:321,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:325,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:342,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:350,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:357,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 5
    argNames:
    - input_data
    - input_size
    - output_data
    - output_size
    - options
    argTypes:
    - void*
    - size_t
    - void**
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 359
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 359
    functionName: ZarrQuantizeDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - GDALSwapWordsEx
    - EQUAL
    - VSIFree
    - GDALCopyWords64
    - CPLError
    - memcpy
    - VSI_MALLOC_VERBOSE
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: "bool ZarrQuantizeDecompressor(const void *input_data, size_t input_size,\n
      \                                    void **output_data, size_t *output_size,\n
      \                                    CSLConstList options,\n                                     void
      * /* compressor_user_data */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: ZarrGetQuantizeDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLCompressor
    signature: CPLCompressor *ZarrGetQuantizeDecompressor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:392,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:403,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:412,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:422,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:428,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:428,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:430,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:439,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:445,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:451,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:451,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:451,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:453,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:469,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:483,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:497,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:506,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:510,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:514,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:514,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:515,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:515,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:516,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:519,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:529,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:534,1
    - Dst: GDALSwapWordsEx
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:543,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:560,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:568,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_filters.cpp:575,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 104
    argCount: 5
    argNames:
    - input_data
    - input_size
    - output_data
    - output_size
    - options
    argTypes:
    - void*
    - size_t
    - void**
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 577
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 577
    functionName: ZarrFixedScaleOffsetDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<float>
    - GDALSwapWordsEx
    - EQUAL
    - CPLAssert
    - VSIFree
    - GDALCopyWords64
    - CPLError
    - memcpy
    - VSI_MALLOC_VERBOSE
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: "bool ZarrFixedScaleOffsetDecompressor(const void *input_data,\n                                             size_t
      input_size,\n                                             void **output_data,\n
      \                                            size_t *output_size,\n                                             CSLConstList
      options,\n                                             void * /* compressor_user_data
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: ZarrGetFixedScaleOffsetDecompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_filters.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLCompressor
    signature: CPLCompressor *ZarrGetFixedScaleOffsetDecompressor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: ZarrV3Codec::ZarrV3Codec
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3Codec::ZarrV3Codec(const std::string &osName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ZarrV3Codec::~ZarrV3Codec()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3Codec::~ZarrV3Codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: ZarrV3CodecAbstractCompressor::ZarrV3CodecAbstractCompressor
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZarrV3CodecAbstractCompressor::ZarrV3CodecAbstractCompressor(\n
      \   const std::string &osName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:49,1
    - Dst: ZarrByteVectorQuickResize::capacity
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:49,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:57,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:59,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:61,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: ZarrV3CodecAbstractCompressor::Encode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - ZarrByteVectorQuickResize::resize
    - ZarrByteVectorQuickResize::size
    - ZarrByteVectorQuickResize::capacity
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecAbstractCompressor::Encode(\n    const ZarrByteVectorQuickResize
      &abySrc,\n    ZarrByteVectorQuickResize &abyDst) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:76,1
    - Dst: ZarrByteVectorQuickResize::capacity
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:76,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:84,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:86,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:88,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 93
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: ZarrV3CodecAbstractCompressor::Decode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - ZarrByteVectorQuickResize::resize
    - ZarrByteVectorQuickResize::size
    - ZarrByteVectorQuickResize::capacity
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecAbstractCompressor::Decode(\n    const ZarrByteVectorQuickResize
      &abySrc,\n    ZarrByteVectorQuickResize &abyDst) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: ZarrV3CodecGZip::ZarrV3CodecGZip
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecGZip::ZarrV3CodecGZip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:109,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: ZarrV3CodecGZip::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrV3CodecGZip::GetConfiguration(int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:123,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:124,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:127,1
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:131,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:138,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:142,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:147,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:149,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:151,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:154,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:159,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:160,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:164,1
    - Dst: auto::ToInteger
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:168,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:171,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:178,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - configuration
    - oInputArrayMetadata
    - oOutputArrayMetadata
    argTypes:
    - CPLJSONObject
    - ZarrArrayMetadata
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 181
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 181
    functionName: ZarrV3CodecGZip::InitFromConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - SetNameValue
    - CPLGetDecompressor
    - auto::GetType
    - CPLJSONObject::Clone
    - CPLJSONObject::GetChildren
    - CPLSPrintf
    - CPLJSONObject::GetObj
    - auto::ToInteger
    - auto::IsValid
    - CPLJSONObject::IsValid
    - CPLError
    - CPLGetCompressor
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecGZip::InitFromConfiguration(\n    const CPLJSONObject
      &configuration,\n    const ZarrArrayMetadata &oInputArrayMetadata,\n    ZarrArrayMetadata
      &oOutputArrayMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecGZip>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:189,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: ZarrV3CodecGZip::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZarrV3CodecGZip>
    - auto::InitFromConfiguration
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3Codec>
    signature: std::unique_ptr<ZarrV3Codec> ZarrV3CodecGZip::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: ZarrV3CodecZstd::ZarrV3CodecZstd
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecZstd::ZarrV3CodecZstd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:211,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:212,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - nLevel
    - checksum
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: ZarrV3CodecZstd::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject ZarrV3CodecZstd::GetConfiguration(int nLevel,\n                                                             bool
      checksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:226,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:227,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:230,1
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:234,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:242,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:244,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:246,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:251,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:253,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:253,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:255,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:258,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:263,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:264,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:268,1
    - Dst: auto::ToInteger
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:272,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:275,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:281,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:282,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:286,1
    - Dst: auto::ToBool
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:290,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:294,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:294,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:296,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - configuration
    - oInputArrayMetadata
    - oOutputArrayMetadata
    argTypes:
    - CPLJSONObject
    - ZarrArrayMetadata
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 299
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 299
    functionName: ZarrV3CodecZstd::InitFromConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - SetNameValue
    - CPLGetDecompressor
    - auto::GetType
    - CPLJSONObject::Clone
    - CPLJSONObject::GetChildren
    - CPLSPrintf
    - CPLJSONObject::GetObj
    - auto::ToInteger
    - auto::IsValid
    - CPLJSONObject::IsValid
    - CPLError
    - auto::ToBool
    - CPLGetCompressor
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecZstd::InitFromConfiguration(\n    const CPLJSONObject
      &configuration,\n    const ZarrArrayMetadata &oInputArrayMetadata,\n    ZarrArrayMetadata
      &oOutputArrayMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecZstd>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:307,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: ZarrV3CodecZstd::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZarrV3CodecZstd>
    - auto::InitFromConfiguration
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3Codec>
    signature: std::unique_ptr<ZarrV3Codec> ZarrV3CodecZstd::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: ZarrV3CodecBlosc::ZarrV3CodecBlosc
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecBlosc::ZarrV3CodecBlosc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:331,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:332,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:333,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:334,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:335,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:336,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - cname
    - clevel
    - shuffle
    - typesize
    - blocksize
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: ZarrV3CodecBlosc::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    - strcmp
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject ZarrV3CodecBlosc::GetConfiguration(const char *cname,
      int clevel,\n                                   const char *shuffle, int typesize,\n
      \                                  int blocksize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:350,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:351,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:354,1
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:358,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:363,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:364,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:366,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:371,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:373,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:377,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:380,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:385,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:386,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:388,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:392,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:392,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:394,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:395,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:397,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:399,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:406,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:410,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:410,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:413,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:414,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:416,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:420,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:421,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:422,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:423,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:424,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:425,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:428,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:433,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:434,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:436,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:438,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:443,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:444,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:447,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:448,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:450,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:452,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:457,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:458,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 3
    argNames:
    - configuration
    - oInputArrayMetadata
    - oOutputArrayMetadata
    argTypes:
    - CPLJSONObject
    - ZarrArrayMetadata
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 462
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 462
    functionName: ZarrV3CodecBlosc::InitFromConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - SetNameValue
    - auto::ToString
    - CPLGetDecompressor
    - auto::GetType
    - CPLJSONObject::Clone
    - CPLJSONObject::GetChildren
    - CPLSPrintf
    - CPLJSONObject::GetObj
    - auto::IsValid
    - CPLJSONObject::IsValid
    - CPLError
    - CPLGetCompressor
    - GetName
    - auto::c_str
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecBlosc::InitFromConfiguration(\n    const CPLJSONObject
      &configuration,\n    const ZarrArrayMetadata &oInputArrayMetadata,\n    ZarrArrayMetadata
      &oOutputArrayMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecBlosc>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:470,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: ZarrV3CodecBlosc::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZarrV3CodecBlosc>
    - auto::InitFromConfiguration
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3Codec>
    signature: std::unique_ptr<ZarrV3Codec> ZarrV3CodecBlosc::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: ZarrV3CodecBytes::ZarrV3CodecBytes
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecBytes::ZarrV3CodecBytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:491,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bLittle
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: ZarrV3CodecBytes::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrV3CodecBytes::GetConfiguration(bool bLittle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:505,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:510,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:512,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:514,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:519,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:521,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:523,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:526,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:531,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:532,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:534,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:536,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:540,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:542,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - configuration
    - oInputArrayMetadata
    - oOutputArrayMetadata
    argTypes:
    - CPLJSONObject
    - ZarrArrayMetadata
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 554
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 554
    functionName: ZarrV3CodecBytes::InitFromConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - auto::ToString
    - auto::GetType
    - CPLJSONObject::GetChildren
    - CPLJSONObject::Clone
    - CPLJSONObject::GetObj
    - auto::IsValid
    - CPLJSONObject::IsValid
    - CPLError
    - GetName
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecBytes::InitFromConfiguration(\n    const CPLJSONObject
      &configuration,\n    const ZarrArrayMetadata &oInputArrayMetadata,\n    ZarrArrayMetadata
      &oOutputArrayMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecBytes>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:562,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: ZarrV3CodecBytes::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - auto::InitFromConfiguration
    - std::make_unique<ZarrV3CodecBytes>
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3Codec>
    signature: std::unique_ptr<ZarrV3Codec> ZarrV3CodecBytes::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:576,1
    - Dst: ZarrV3CodecBytes::IsNoOp
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:576,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:580,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:582,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:586,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:586,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:587,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:589,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:590,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:604,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:613,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:622,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 630
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 630
    functionName: ZarrV3CodecBytes::Encode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - ZarrByteVectorQuickResize::resize
    - memcpy
    - ZarrByteVectorQuickResize::size
    - CPLAssert
    - ZarrV3CodecBytes::IsNoOp
    - CPLError
    - ZarrByteVectorQuickResize::data
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecBytes::Encode(const ZarrByteVectorQuickResize &abySrc,\n
      \                             ZarrByteVectorQuickResize &abyDst) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3CodecBytes::Encode
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: ZarrV3CodecBytes::Decode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3CodecBytes::Encode
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecBytes::Decode(const ZarrByteVectorQuickResize &abySrc,\n
      \                             ZarrByteVectorQuickResize &abyDst) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: ZarrV3CodecTranspose::ZarrV3CodecTranspose
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrV3CodecTranspose::ZarrV3CodecTranspose()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:656,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: ZarrV3CodecTranspose::IsNoOp
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3CodecTranspose::IsNoOp() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:671,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:672,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:674,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - anOrder
    argTypes:
    - std::vector<int>
    constantsTouched: []
    func_position:
      end: 677
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 677
    functionName: ZarrV3CodecTranspose::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    - CPLJSONArray::CPLJSONArray
    - CPLJSONArray::Add
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrV3CodecTranspose::GetConfiguration(const std::vector<int>
      &anOrder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:686,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:687,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - osOrder
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 690
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 690
    functionName: ZarrV3CodecTranspose::GetConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::Add
    - CPLJSONObject::CPLJSONObject
    - CPLJSONArray::CPLJSONArray
    linkageType: ''
    returnType: CPLJSONObject
    signature: CPLJSONObject ZarrV3CodecTranspose::GetConfiguration(const std::string
      &osOrder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:701,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:705,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:706,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:708,1
    - Dst: CPLJSONObject::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:713,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:715,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:717,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:720,1
    - Dst: CPLJSONObject::GetObj
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:725,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:727,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:729,1
    - Dst: push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:734,1
    - Dst: push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:748,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:753,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:755,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:756,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:758,1
    - Dst: ZarrArrayMetadata::anBlockSizes::clear
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:764,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:770,1
    - Dst: push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:776,1
    - Dst: ZarrArrayMetadata::anBlockSizes::push_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:777,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:783,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:789,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:789,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - configuration
    - oInputArrayMetadata
    - oOutputArrayMetadata
    argTypes:
    - CPLJSONObject
    - ZarrArrayMetadata
    - ZarrArrayMetadata
    constantsTouched: []
    func_position:
      end: 797
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 797
    functionName: ZarrV3CodecTranspose::InitFromConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - auto::ToString
    - size
    - ZarrArrayMetadata::anBlockSizes::clear
    - auto::GetType
    - CPLJSONObject::GetChildren
    - CPLJSONObject::Clone
    - ZarrArrayMetadata::anBlockSizes::push_back
    - CPLJSONObject::GetObj
    - push_back
    - CPLJSONObject::IsValid
    - CPLError
    - resize
    - auto::Size
    - GetName
    - auto::ToArray
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecTranspose::InitFromConfiguration(\n    const CPLJSONObject
      &configuration,\n    const ZarrArrayMetadata &oInputArrayMetadata,\n    ZarrArrayMetadata
      &oOutputArrayMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecTranspose>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:805,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: ZarrV3CodecTranspose::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZarrV3CodecTranspose>
    - auto::InitFromConfiguration
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3Codec>
    signature: std::unique_ptr<ZarrV3Codec> ZarrV3CodecTranspose::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:820,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:820,1
    - Dst: anBlockSizes::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:820,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:821,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:821,1
    - Dst: anBlockSizes::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:822,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:826,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:827,1
    - Dst: GetEltCount
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:827,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:829,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:833,1
    - Dst: GetEltCount
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:833,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:845,1
    - Dst: Stack
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:846,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:856,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:865,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:877,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:886,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:891,1
    - Dst: static_cast<uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:903,1
    - Dst: static_cast<const uint16_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:904,1
    - Dst: static_cast<uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:906,1
    - Dst: static_cast<const uint32_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:907,1
    - Dst: static_cast<uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:909,1
    - Dst: static_cast<const uint64_t *>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:910,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:912,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:916,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 3
    argNames:
    - abySrc
    - abyDst
    - bEncodeDirection
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - bool
    constantsTouched: []
    func_position:
      end: 935
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 935
    functionName: ZarrV3CodecTranspose::Transpose
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - size
    - GetEltCount
    - static_cast<size_t>
    - static_cast<uint16_t *>
    - ZarrByteVectorQuickResize::resize
    - static_cast<uint32_t *>
    - ZarrByteVectorQuickResize::size
    - static_cast<const uint16_t *>
    - static_cast<uint64_t *>
    - anBlockSizes::size
    - Stack
    - memcpy
    - std::vector::emplace_back
    - CPLAssert
    - static_cast<const uint64_t *>
    - CPLError
    - ZarrByteVectorQuickResize::data
    - static_cast<const uint32_t *>
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecTranspose::Transpose(const ZarrByteVectorQuickResize
      &abySrc,\n                                     ZarrByteVectorQuickResize &abyDst,\n
      \                                    bool bEncodeDirection) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:944,1
    - Dst: ZarrV3CodecTranspose::IsNoOp
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:944,1
    - Dst: ZarrV3CodecTranspose::Transpose
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 947
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 947
    functionName: ZarrV3CodecTranspose::Encode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - ZarrV3CodecTranspose::IsNoOp
    - ZarrV3CodecTranspose::Transpose
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecTranspose::Encode(const ZarrByteVectorQuickResize
      &abySrc,\n                                  ZarrByteVectorQuickResize &abyDst)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:956,1
    - Dst: ZarrV3CodecTranspose::IsNoOp
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:956,1
    - Dst: ZarrV3CodecTranspose::Transpose
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - abySrc
    - abyDst
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 959
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 959
    functionName: ZarrV3CodecTranspose::Decode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - ZarrV3CodecTranspose::IsNoOp
    - ZarrV3CodecTranspose::Transpose
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV3CodecTranspose::Decode(const ZarrByteVectorQuickResize
      &abySrc,\n                                  ZarrByteVectorQuickResize &abyDst)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZarrV3CodecSequence>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:967,1
    - Dst: auto::m_apoCodecs::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:969,1
    - Dst: ZarrV3CodecSequence::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:969,1
    - Dst: ZarrV3CodecSequence::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 972
    functionName: ZarrV3CodecSequence::Clone
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - auto::m_apoCodecs::emplace_back
    - std::make_unique<ZarrV3CodecSequence>
    - ZarrV3CodecSequence::Clone
    linkageType: ''
    returnType: std::unique_ptr<ZarrV3CodecSequence>
    signature: std::unique_ptr<ZarrV3CodecSequence> ZarrV3CodecSequence::Clone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:980,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:982,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:985,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1001,1
    - Dst: std::make_unique<ZarrV3CodecBytes>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1004,1
    - Dst: auto::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1006,1
    - Dst: ZarrV3CodecBytes::GetConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1007,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1009,1
    - Dst: auto::GetOutputType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1010,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1011,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1014,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1014,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1023,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1026,1
    - Dst: std::make_unique<ZarrV3CodecGZip>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1029,1
    - Dst: std::make_unique<ZarrV3CodecBlosc>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1031,1
    - Dst: std::make_unique<ZarrV3CodecZstd>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1033,1
    - Dst: std::make_unique<ZarrV3CodecBytes>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1036,1
    - Dst: std::make_unique<ZarrV3CodecTranspose>
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1038,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1041,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1042,1
    - Dst: std::unique_ptr::GetInputType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1046,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1050,1
    - Dst: std::unique_ptr::GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1052,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1052,1
    - Dst: InsertImplicitEndianCodecIfNeeded
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1058,1
    - Dst: std::unique_ptr::InitFromConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1062,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1068,1
    - Dst: std::unique_ptr::GetOutputType
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1069,1
    - Dst: std::unique_ptr::GetName
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1070,1
    - Dst: std::unique_ptr::IsNoOp
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1072,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1073,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1073,1
    - Dst: InsertImplicitEndianCodecIfNeeded
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1076,1
    - Dst: CPLJSONObject::Clone
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1078,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - oCodecs
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1080
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1080
    functionName: ZarrV3CodecSequence::InitFromJson
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3CodecBytes::GetConfiguration
    - auto::GetName
    - std::make_unique<ZarrV3CodecBlosc>
    - std::make_unique<ZarrV3CodecTranspose>
    - std::make_unique<ZarrV3CodecZstd>
    - std::unique_ptr::IsNoOp
    - CPLError
    - InsertImplicitEndianCodecIfNeeded
    - std::string::c_str
    - std::make_unique<ZarrV3CodecGZip>
    - auto::c_str
    - CPLJSONObject::GetType
    - std::move
    - emplace_back
    - std::unique_ptr::GetName
    - ToString
    - auto::GetOutputType
    - std::unique_ptr::GetInputType
    - std::make_unique<ZarrV3CodecBytes>
    - GetType
    - CPLJSONObject::ToArray
    - std::unique_ptr::InitFromConfiguration
    - CPLJSONObject::Clone
    - std::unique_ptr::GetOutputType
    - auto::InitFromConfiguration
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3CodecSequence::InitFromJson(const CPLJSONObject &oCodecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1088,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1096,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1100,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1100,1
    - Dst: resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1103,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1106,1
    - Dst: ZarrByteVectorQuickResize::capacity
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1106,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1111,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1115,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1115,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - abyBuffer
    argTypes:
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 1122
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1122
    functionName: ZarrV3CodecSequence::AllocateBuffer
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - ZarrByteVectorQuickResize::resize
    - ZarrByteVectorQuickResize::capacity
    - CPLError
    - resize
    - what
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3CodecSequence::AllocateBuffer(ZarrByteVectorQuickResize
      &abyBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3CodecSequence::AllocateBuffer
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1130,1
    - Dst: ZarrV3CodecSequence::Encode
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1134,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - abyBuffer
    argTypes:
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 1139
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1139
    functionName: ZarrV3CodecSequence::Encode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 1
    functionsReached:
    - ZarrV3CodecSequence::AllocateBuffer
    - swap
    - ZarrV3CodecSequence::Encode
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3CodecSequence::Encode(ZarrByteVectorQuickResize &abyBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV3CodecSequence::AllocateBuffer
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1147,1
    - Dst: rbegin
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1149,1
    - Dst: rend
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1149,1
    - Dst: auto::Decode
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1152,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v3_codec.cpp:1154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - abyBuffer
    argTypes:
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 1157
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1157
    functionName: ZarrV3CodecSequence::Decode
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v3_codec.cpp
    functionUses: 0
    functionsReached:
    - rend
    - rbegin
    - auto::Decode
    - swap
    - ZarrV3CodecSequence::AllocateBuffer
    linkageType: ''
    returnType: bool
    signature: bool ZarrV3CodecSequence::Decode(ZarrByteVectorQuickResize &abyBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_inline.hpp:52,1
    - Dst: std::string_view::find
      Src: /src/gdal/frmts/zarr/vsikerchunk_inline.hpp:53,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    constantsTouched: []
    func_position:
      end: 59
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 59
    functionName: ZARRIsLikelyStreamableKerchunkJSONRefContent
    functionSourceFile: /src/gdal/frmts/zarr/vsikerchunk_inline.hpp
    functionUses: 1
    functionsReached:
    - std::string_view::find
    linkageType: ''
    returnType: bool
    signature: bool ZARRIsLikelyStreamableKerchunkJSONRefContent(const std::string_view
      &str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - src_orig
    - dst
    - len
    argTypes:
    - uint8_t*
    - uint32_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 96
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 96
    functionName: FcUtf8ToUcs4
    functionSourceFile: /src/gdal/frmts/zarr/ucs4_utf8.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int FcUtf8ToUcs4(const uint8_t *src_orig, uint32_t *dst, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:105,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:110,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:115,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:125,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:138,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/ucs4_utf8.hpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ucs4
    - dest
    argTypes:
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 141
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 141
    functionName: FcUcs4ToUtf8
    functionSourceFile: /src/gdal/frmts/zarr/ucs4_utf8.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: int
    signature: int FcUcs4ToUtf8(uint32_t ucs4, uint8_t *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Deinit
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - aoDims
    - oType
    - aoDtypeElts
    - anBlockSize
    - bFortranOrder
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    - std::vector<GUInt64>
    - bool
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: ZarrV2Array::ZarrV2Array
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - Deinit
    linkageType: ''
    returnType: void
    signature: "void ZarrV2Array::ZarrV2Array(\n    const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n    const std::string &osParentName, const std::string &osName,\n
      \   const std::vector<std::shared_ptr<GDALDimension>> &aoDims,\n    const GDALExtendedDataType
      &oType, const std::vector<DtypeElt> &aoDtypeElts,\n    const std::vector<GUInt64>
      &anBlockSize, bool bFortranOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrV2Array>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:57,1
    - Dst: ZarrV2Array::ZarrV2Array
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:58,1
    - Dst: auto::SetSelf
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - aoDims
    - oType
    - aoDtypeElts
    - anBlockSize
    - bFortranOrder
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - std::vector<DtypeElt>
    - std::vector<GUInt64>
    - bool
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: ZarrV2Array::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - auto::SetSelf
    - std::shared_ptr<ZarrV2Array>
    - ZarrV2Array::ZarrV2Array
    linkageType: ''
    returnType: std::shared_ptr<ZarrV2Array>
    signature: "std::shared_ptr<ZarrV2Array> ZarrV2Array::Create(const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n                    const std::string &osParentName, const
      std::string &osName,\n                    const std::vector<std::shared_ptr<GDALDimension>>
      &aoDims,\n                    const GDALExtendedDataType &oType,\n                    const
      std::vector<DtypeElt> &aoDtypeElts,\n                    const std::vector<GUInt64>
      &anBlockSize, bool bFortranOrder)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Array::Flush
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ZarrV2Array::~ZarrV2Array()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - ZarrV2Array::Flush
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array::~ZarrV2Array()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Array::FlushDirtyTile
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:85,1
    - Dst: ZarrV2Array::Serialize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:89,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:93,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:95,1
    - Dst: dynamic_cast<const ZarrDimension *>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:100,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:100,1
    - Dst: auto::IsXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:101,1
    - Dst: auto::IsModified
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:103,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:105,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:105,1
    - Dst: CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:109,1
    - Dst: IsModified
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:115,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:116,1
    - Dst: SerializeSpecialAttributes
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:121,1
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:123,1
    - Dst: auto::Delete
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:125,1
    - Dst: auto::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:126,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:129,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:130,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:132,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:132,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:132,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:134,1
    - Dst: SetZMetadataItem
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:135,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: ZarrV2Array::Flush
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - ZarrV2Array::FlushDirtyTile
    - SetZMetadataItem
    - CPLJSONDocument::SetRoot
    - IsModified
    - CPLJSONArray::CPLJSONArray
    - CPLJSONDocument::Save
    - CPLGetDirnameSafe
    - auto::IsModified
    - CPLJSONArray
    - GetName
    - CPLJSONArray::Add
    - c_str
    - ZarrV2Array::Serialize
    - dynamic_cast<const ZarrDimension *>
    - get
    - auto::Delete
    - CPLJSONArray::Size
    - auto::IsXArrayDimension
    - CPLFormFilenameSafe
    - SerializeSpecialAttributes
    - empty
    - CPLJSONDocument::CPLJSONDocument
    - auto::Add
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array::Flush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:145,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:147,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:148,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: StripUselessItemsFromCompressorConfiguration
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::Delete
    linkageType: ''
    returnType: void
    signature: void StripUselessItemsFromCompressorConfiguration(CPLJSONObject &o)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:159,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:160,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:162,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:165,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:165,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:167,1
    - Dst: IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:169,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:171,1
    - Dst: StripUselessItemsFromCompressorConfiguration
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:173,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:177,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:180,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:181,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:183,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:187,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:191,1
    - Dst: SerializeNumericNoData
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:195,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:203,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:212,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:213,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:217,1
    - Dst: EncodeElt
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:227,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:230,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:231,1
    - Dst: Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:236,1
    - Dst: CPLJSONObject::AddNull
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:237,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:239,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:241,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:243,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:246,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:246,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:246,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:248,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:250,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:254,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:257,1
    - Dst: SetZMetadataItem
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 260
    functionName: ZarrV2Array::Serialize
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::AddNull
    - CPLJSONDocument::GetRoot
    - SetZMetadataItem
    - static_cast<GInt64>
    - CPLJSONArray::CPLJSONArray
    - CPLJSONDocument::Save
    - IsValid
    - GetClass
    - EncodeElt
    - StripUselessItemsFromCompressorConfiguration
    - Size
    - GetSize
    - SerializeNumericNoData
    - CPLJSONArray::Add
    - GetType
    - CPLFree
    - CPLJSONObject::Add
    - CPLJSONDocument::CPLJSONDocument
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array::Serialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:270,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:271,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: ZarrV2Array::NeedDecodedBuffer
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - GetSize
    - GetClass
    linkageType: ''
    returnType: bool
    signature: bool ZarrV2Array::NeedDecodedBuffer() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:302,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:304,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:306,1
    - Dst: ZarrV2Array::NeedDecodedBuffer
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:311,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:316,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:317,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:319,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:322,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:325,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:327,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:335,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:335,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:337,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:342,1
    - Dst: ZarrV2Array::AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 349
    functionName: ZarrV2Array::AllocateWorkingBuffers
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - simple_max
    - CPLGetConfigOption
    - static_cast<size_t>
    - CPLTestBool
    - static_cast<GUIntBig>
    - ZarrV2Array::NeedDecodedBuffer
    - ZarrV2Array::AllocateWorkingBuffers
    - CPLError
    - Size
    linkageType: ''
    returnType: bool
    signature: bool ZarrV2Array::AllocateWorkingBuffers() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:366,1
    - Dst: Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:367,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:368,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:372,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:372,1
    - Dst: ZarrV2Array::NeedDecodedBuffer
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:376,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:381,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:385,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:389,1
    - Dst: what
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - abyRawTileData
    - abyTmpRawTileData
    - abyDecodedTileData
    argTypes:
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    constantsTouched: []
    func_position:
      end: 398
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 398
    functionName: ZarrV2Array::AllocateWorkingBuffers
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - ZarrByteVectorQuickResize::resize
    - ZarrV2Array::NeedDecodedBuffer
    - CPLError
    - Size
    - what
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV2Array::AllocateWorkingBuffers(\n    ZarrByteVectorQuickResize
      &abyRawTileData,\n    ZarrByteVectorQuickResize &abyTmpRawTileData,\n    ZarrByteVectorQuickResize
      &abyDecodedTileData) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Array::LoadTileData
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tileIndices
    - bMissingTileOut
    argTypes:
    - uint64_t*
    - bool
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: ZarrV2Array::LoadTileData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - ZarrV2Array::LoadTileData
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV2Array::LoadTileData(const uint64_t *tileIndices,\n                               bool
      &bMissingTileOut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Array::BuildTileFilename
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:431,1
    - Dst: VSIFileManager::GetHandler
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:435,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:435,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:440,1
    - Dst: OpenTilePresenceCache
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:441,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:444,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:445,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:446,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:447,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:448,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:449,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:451,1
    - Dst: auto::Read
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:454,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:454,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:454,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:455,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:455,1
    - Dst: unlock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:460,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:461,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:462,1
    - Dst: unlock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:468,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:475,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:476,1
    - Dst: back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:477,1
    - Dst: VSIFOpenEx2L
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:484,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:484,1
    - Dst: VSIFOpenEx2L
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:488,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:488,1
    - Dst: CPLGetErrorCounter
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:492,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:499,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:500,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:511,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:515,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:516,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:517,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:518,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:518,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:520,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:521,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:526,1
    - Dst: ZarrByteVectorQuickResize::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:529,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:529,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:533,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:535,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:540,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:541,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:541,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:542,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:544,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:546,1
    - Dst: CPLCompressor*::pfnFunc
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:552,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:553,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:553,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:559,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:565,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:573,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:575,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:575,1
    - Dst: ZarrGetShuffleDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:575,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:576,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:576,1
    - Dst: ZarrGetQuantizeDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:577,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:578,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:578,1
    - Dst: ZarrGetFixedScaleOffsetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:579,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:580,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:580,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:581,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:583,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:584,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:586,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:586,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:587,1
    - Dst: auto::pfnFunc
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:591,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:592,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:593,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:595,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:596,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:597,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:602,1
    - Dst: ZarrByteVectorQuickResize::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:604,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:606,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:608,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:612,1
    - Dst: BlockTranspose
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:614,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:615,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:618,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:622,1
    - Dst: ZarrByteVectorQuickResize::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:624,1
    - Dst: DecodeSourceElt
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:629,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 7
    argNames:
    - tileIndices
    - bUseMutex
    - psDecompressor
    - abyRawTileData
    - abyTmpRawTileData
    - abyDecodedTileData
    - bMissingTileOut
    argTypes:
    - uint64_t*
    - bool
    - CPLCompressor*
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - ZarrByteVectorQuickResize
    - bool
    constantsTouched: []
    func_position:
      end: 639
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 639
    functionName: ZarrV2Array::LoadTileData
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - ZarrGetQuantizeDecompressor
    - ZarrGetShuffleDecompressor
    - auto::pfnFunc
    - VSIFTellL
    - DecodeSourceElt
    - CPLError
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - CPLStringList::CPLStringList
    - auto::c_str
    - CPLStringList::List
    - simple_max
    - ZarrGetFixedScaleOffsetDecompressor
    - ZarrByteVectorQuickResize::resize
    - ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    - unlock
    - swap
    - OpenTilePresenceCache
    - ZarrByteVectorQuickResize::data
    - GetSize
    - GetName
    - auto::GetChildren
    - std::vector::data
    - CPLCompressor*::pfnFunc
    - GDALExtendedDataType::Create
    - ToString
    - ZarrByteVectorQuickResize::size
    - VSIFSeekL
    - ZarrByteVectorQuickResize::empty
    - CPLGetErrorCounter
    - CPLAssert
    - VSIFReadL
    - CPLStringList::SetNameValue
    - ZarrV2Array::BuildTileFilename
    - lock
    - VSIFileManager::GetHandler
    - size
    - static_cast<GUInt64>
    - CPLDebugOnly
    - back
    - static_cast<size_t>
    - empty
    - CPLGetDecompressor
    - VSIFCloseL
    - BlockTranspose
    - EQUAL
    - VSIFOpenEx2L
    - auto::Read
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV2Array::LoadTileData(const uint64_t *tileIndices, bool bUseMutex,\n
      \                              const CPLCompressor *psDecompressor,\n                               ZarrByteVectorQuickResize
      &abyRawTileData,\n                               ZarrByteVectorQuickResize &abyTmpRawTileData,\n
      \                              ZarrByteVectorQuickResize &abyDecodedTileData,\n
      \                              bool &bMissingTileOut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IAdviseReadCommon
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:652,1
    - Dst: GDALGetGlobalThreadPool
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:665,1
    - Dst: assert
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:692,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:692,1
    - Dst: simple_max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:693,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:703,1
    - Dst: min
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:704,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:705,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:706,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:706,1
    - Dst: static_cast<const JobStruct *>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:712,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:715,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:717,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:718,1
    - Dst: ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:719,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:721,1
    - Dst: auto::m_osDecompressorId::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:721,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:740,1
    - Dst: auto::AllocateWorkingBuffers
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:744,1
    - Dst: ZarrByteVectorQuickResize::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:769,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:770,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:772,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:775,1
    - Dst: CPLWorkerThreadPool*::SubmitJob
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:785,1
    - Dst: CPLWorkerThreadPool*::WaitEvent
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:802,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - arrayStartIdx
    - count
    - papszOptions
    argTypes:
    - GUInt64*
    - size_t*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 806
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 806
    functionName: ZarrV2Array::IAdviseRead
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - assert
    - auto::AllocateWorkingBuffers
    - std::vector::emplace_back
    - auto::m_osDecompressorId::c_str
    - simple_max
    - CPLWorkerThreadPool*::SubmitJob
    - ZarrByteVectorQuickResize::ZarrByteVectorQuickResize
    - std::move
    - swap
    - IAdviseReadCommon
    - GetSize
    - GDALGetGlobalThreadPool
    - ZarrByteVectorQuickResize::empty
    - min
    - CPLWorkerThreadPool*::WaitEvent
    - static_cast<size_t>
    - CPLGetDecompressor
    - auto::GetDimensions
    - static_cast<const JobStruct *>
    linkageType: ''
    returnType: bool
    signature: "bool ZarrV2Array::IAdviseRead(const GUInt64 *arrayStartIdx, const
      size_t *count,\n                              CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrV2Array::BuildTileFilename
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:818,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:818,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:823,1
    - Dst: IsEmptyTile
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:825,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:830,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:830,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:832,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:834,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:835,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:835,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:840,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:845,1
    - Dst: EncodeElt
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:849,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:853,1
    - Dst: BlockTranspose
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:855,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:856,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:862,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:865,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:866,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:870,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:870,1
    - Dst: ZarrGetShuffleCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:871,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:872,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:872,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:873,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:875,1
    - Dst: GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:876,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:878,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:878,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:879,1
    - Dst: auto::pfnFunc
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:883,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:884,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:885,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:887,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:888,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:889,1
    - Dst: swap
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:894,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:899,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:899,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:901,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:901,1
    - Dst: VSIMkdirRecursive
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:903,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:903,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:905,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:906,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:916,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:918,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:922,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:922,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:925,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:926,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:933,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:933,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:936,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:937,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:947,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:947,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:952,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:953,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:961,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:963,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:965,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:965,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:966,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:968,1
    - Dst: GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:969,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:971,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:973,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:973,1
    - Dst: GDALGetNonComplexDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:974,1
    - Dst: GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:975,1
    - Dst: pfnFunc
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:978,1
    - Dst: data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:979,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:980,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:982,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:983,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:986,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:990,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:990,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:990,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:991,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:993,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:994,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:998,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 1001
    functionName: ZarrV2Array::FlushDirtyTile
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - pfnFunc
    - std::vector::size
    - auto::pfnFunc
    - CPLError
    - CPLGetCompressor
    - std::string::c_str
    - CPLStringList::CPLStringList
    - auto::c_str
    - CPLStringList::List
    - CPLGetDirnameSafe
    - GetClass
    - VSIMkdirRecursive
    - EncodeElt
    - swap
    - GetName
    - auto::GetChildren
    - GDALGetDataTypeSizeBytes
    - std::vector::data
    - c_str
    - IsEmptyTile
    - ToString
    - VSIUnlink
    - CPLSPrintf
    - VSIFOpenL
    - CPLAssert
    - GetNumericDataType
    - CPLStringList::SetNameValue
    - ZarrV2Array::BuildTileFilename
    - data
    - std::vector::resize
    - GDALGetNonComplexDataType
    - CPLDebugOnly
    - static_cast<size_t>
    - empty
    - VSIStatL
    - BlockTranspose
    - VSIFCloseL
    - GetChildren
    - EQUAL
    - ZarrGetShuffleCompressor
    - VSIFWriteL
    linkageType: ''
    returnType: bool
    signature: bool ZarrV2Array::FlushDirtyTile() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1010,1
    - Dst: size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1016,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1018,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1020,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1024,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1024,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1024,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tileIndices
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1026
    functionName: ZarrV2Array::BuildTileFilename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 2
    functionsReached:
    - size
    - std::string::empty
    - c_str
    - empty
    - CPLGetDirnameSafe
    - std::to_string
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::string
    signature: std::string ZarrV2Array::BuildTileFilename(const uint64_t *tileIndices)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1034,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1035
    functionName: ZarrV2Array::GetDataDirectory
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - CPLGetDirnameSafe
    - c_str
    linkageType: ''
    returnType: std::string
    signature: std::string ZarrV2Array::GetDataDirectory() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1044,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1045,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1046
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1046
    functionName: ZarrV2Array::GetTileIndicesFromFilename
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList
    - c_str
    - CSLTokenizeString2
    linkageType: ''
    returnType: CPLStringList
    signature: CPLStringList ZarrV2Array::GetTileIndicesFromFilename(const char *pszFilename)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1054,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1056,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1057,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1069,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1071,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1075,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1076,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1076,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1077,1
    - Dst: max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1081,1
    - Dst: GetAlignment
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1081,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 1
    argNames:
    - obj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1088
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1088
    functionName: GetAlignment
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - ToArray
    - max
    - GetType
    - auto::IsValid
    - CPLJSONObject::ToArray
    - auto::size
    - auto::Size
    - GetAlignment
    linkageType: ''
    returnType: size_t
    signature: size_t GetAlignment(const CPLJSONObject &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1098,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1100,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1105,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1109,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1109,1
    - Dst: std::vector<DtypeElt>::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1123,1
    - Dst: std::vector<DtypeElt>::back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1126,1
    - Dst: std::vector<DtypeElt>::back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1126,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1205,1
    - Dst: DtypeElt::gdalType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1206,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1207,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1208,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1217,1
    - Dst: DtypeElt::gdalType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1218,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1219,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1220,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1224,1
    - Dst: DtypeElt::gdalType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1225,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1226,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1227,1
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1229,1
    - Dst: CPLJSONObject::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1232,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1238,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1239,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1239,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1240,1
    - Dst: ParseDtype
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1245,1
    - Dst: GDALExtendedDataType::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1246,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1247,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1253,1
    - Dst: assert
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1256,1
    - Dst: max
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1257,1
    - Dst: AlignOffsetOn
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1258,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1259,1
    - Dst: std::unique_ptr<GDALEDTComponent>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1259,1
    - Dst: GDALEDTComponent::GDALEDTComponent
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1260,1
    - Dst: GDALExtendedDataType::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1261,1
    - Dst: AlignOffsetOn
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1266,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1267,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1267,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1268,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1271,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1273,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1274,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 123
    argCount: 2
    argNames:
    - obj
    - elts
    argTypes:
    - CPLJSONObject
    - std::vector<DtypeElt>
    constantsTouched: []
    func_position:
      end: 1275
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1275
    functionName: ParseDtype
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - ParseDtype
    - atoi
    - assert
    - std::vector::emplace_back
    - CPLError
    - auto::size
    - auto::c_str
    - CPLJSONObject::GetType
    - std::unique_ptr<GDALEDTComponent>
    - std::move
    - DtypeElt::gdalType::GetSize
    - GDALExtendedDataType::GetClass
    - GDALExtendedDataType::CreateString
    - auto::Size
    - std::vector<DtypeElt>::empty
    - CPLJSONObject::ToString
    - ToArray
    - std::vector<DtypeElt>::back
    - GDALExtendedDataType::Create
    - GDALExtendedDataType::GetSize
    - ToString
    - AlignOffsetOn
    - GetType
    - auto::IsValid
    - CPLJSONObject::ToArray
    - GDALEDTComponent::GDALEDTComponent
    - GDALExtendedDataType::GetNumericDataType
    - std::vector<DtypeElt>::emplace_back
    - max
    linkageType: ''
    returnType: GDALExtendedDataType
    signature: "GDALExtendedDataType ParseDtype(const CPLJSONObject &obj,\n                                       std::vector<DtypeElt>
      &elts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALExtendedDataType::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1281,1
    - Dst: GDALExtendedDataType::GetComponents
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1283,1
    - Dst: SetGDALOffset
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1287,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dt
    - nBaseOffset
    - elts
    - iCurElt
    argTypes:
    - GDALExtendedDataType
    - size_t
    - std::vector<DtypeElt>
    - size_t
    constantsTouched: []
    func_position:
      end: 1295
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1295
    functionName: SetGDALOffset
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - GDALExtendedDataType::GetComponents
    - SetGDALOffset
    - GetType
    - GDALExtendedDataType::GetClass
    linkageType: ''
    returnType: void
    signature: "void SetGDALOffset(const GDALExtendedDataType &dt,\n                          const
      size_t nBaseOffset, std::vector<DtypeElt> &elts,\n                          size_t
      &iCurElt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrSharedResource::SetFilenameAdder::ok
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1311,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1317,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1318,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1324,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1335,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1340,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1341,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1343,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1348,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1349,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1351,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1356,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1356,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1358,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1366,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1367,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1368,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1368,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1371,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1373,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1379,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1380,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1381,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1381,1
    - Dst: CPLJSONDocument::SaveAsString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1381,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1382,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1386,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1388,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1388,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1391,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1394,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1394,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1396,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1396,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1397,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1397,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1397,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1397,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1409,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1410,1
    - Dst: auto::second::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1413,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1413,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1420,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1434,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1434,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1436,1
    - Dst: auto::m_oMapDimensions::find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1439,1
    - Dst: auto::m_oMapDimensions::end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1440,1
    - Dst: auto::second::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1441,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1441,1
    - Dst: auto::m_poParent::lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1446,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1453,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1453,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1458,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1459,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1459,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1459,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1464,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1464,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1466,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1467,1
    - Dst: ZarrV2Group::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1469,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1469,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1470,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1478,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1478,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1479,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1481,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1489,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1490,1
    - Dst: auto::second::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1491,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1491,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1499,1
    - Dst: ZarrArray::GetDimensionTypeDirection
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1501,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1505,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1507,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1507,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1508,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1508,1
    - Dst: auto::SetXArrayDimension
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1509,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1515,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1517,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1518,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1518,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1521,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1523,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1525,1
    - Dst: FindDimension
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1526,1
    - Dst: CPLJSONObject::Delete
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1531,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1536,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1543,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1544,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1546,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1547,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1547,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1550,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1550,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1551,1
    - Dst: auto::m_poParent::lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1554,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1557,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1560,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1562,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1564,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1566,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1566,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1566,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1568,1
    - Dst: ZarrArray::GetDimensionTypeDirection
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1576,1
    - Dst: std::make_shared<ZarrDimension>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1579,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1581,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1582,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1583,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1584,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1587,1
    - Dst: auto::OpenDimensionFromFullname
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1590,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1592,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1592,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1594,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1597,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1601,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1606,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1608,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1615,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1623,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1625,1
    - Dst: ParseDtype
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1629,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1630,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1631,1
    - Dst: SetGDALOffset
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1634,1
    - Dst: ZarrArray::ParseChunkSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1637,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1640,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1641,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1659,1
    - Dst: FreeDynamicMemory
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1660,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1667,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1671,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1673,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1674,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1677,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1681,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1689,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1690,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1691,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1691,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1693,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1693,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1695,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1699,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1700,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1702,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1706,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1707,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1712,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1713,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1716,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1721,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1725,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1729,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1733,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1736,1
    - Dst: static_cast<GFloat16>
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1739,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1740,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1741,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1743,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1746,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1747,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1749,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1751,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1752,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1756,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1760,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1766,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1767,1
    - Dst: auto::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1767,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1768,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1770,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1772,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1772,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1776,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1781,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1782,1
    - Dst: auto::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1782,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1783,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1785,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1786,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1787,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1787,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1789,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1792,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1792,1
    - Dst: ZarrArray::DecodeSourceElt
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1793,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1793,1
    - Dst: auto::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1802,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1805,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1809,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1809,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1810,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1811,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1813,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1820,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1820,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1821,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1822,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1826,1
    - Dst: auto::GetSize
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1826,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1827,1
    - Dst: auto::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1828,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1833,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1839,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1848,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1850,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1853,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1857,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1859,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1860,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1862,1
    - Dst: ZarrGetTIFFDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1867,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1871,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1871,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1872,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1872,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1875,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1877,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1884,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1888,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1890,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1892,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1895,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1898,1
    - Dst: auto::ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1900,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1903,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1904,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1906,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1909,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1909,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1910,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1910,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1911,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1911,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1914,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1914,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1916,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1916,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1920,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1921,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1929,1
    - Dst: ZarrV2Array::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1933,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1933,1
    - Dst: auto::SetCompressorJson
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1938,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1939,1
    - Dst: auto::SetFilename
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1940,1
    - Dst: auto::SetDimSeparator
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1941,1
    - Dst: auto::SetCompressorDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1942,1
    - Dst: auto::SetFilters
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1944,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1945,1
    - Dst: auto::RegisterNoDataValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1947,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1947,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1951,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1953,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1954,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1954,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1956,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1957,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1957,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1958,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1962,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1962,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1964,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1965,1
    - Dst: ZarrV2Group::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1967,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1968,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1968,1
    - Dst: auto::ParseSpecialAttributes
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1974,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1974,1
    - Dst: auto::SetAttributes
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1975,1
    - Dst: auto::SetDtype
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1976,1
    - Dst: RegisterArray
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1977,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1980,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1980,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1980,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1982,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1982,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1983,1
    - Dst: auto::second::SetIndexingVariable
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1985,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1989,1
    - Dst: GetOpenOptions
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1989,1
    - Dst: auto::CacheTilePresence
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:1992,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 321
    argCount: 5
    argNames:
    - osArrayName
    - osZarrayFilename
    - oRoot
    - bLoadedFromZMetadata
    - oAttributesIn
    argTypes:
    - std::string
    - std::string
    - CPLJSONObject
    - bool
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1996
      start: 1301
    functionDepth: 3
    functionLinenumber: 1301
    functionLinenumberEnd: 1996
    functionName: ZarrV2Group::LoadArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 1
    functionsReached:
    - CPLJSONDocument::Load
    - std::vector::size
    - auto::GetType
    - CPLJSONObject::Delete
    - ZarrV2Array::Create
    - std::string::empty
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - GDALCopyWords
    - ToString
    - cpl::quiet_NaN
    - ZarrArray::DecodeSourceElt
    - auto::data
    - CPLGetDecompressor
    - auto::SetXArrayDimension
    - CPLJSONDocument::SaveAsString
    - std::string
    - auto::SetCompressorDecompressor
    - ZarrSharedResource::SetFilenameAdder::ok
    - auto::SetDtype
    - cpl::infinity
    - auto::SetCompressorJson
    - CPLJSONDocument::SetRoot
    - GetFullName
    - std::string::c_str
    - CPLGetCompressor
    - ZarrArray::GetDimensionTypeDirection
    - RegisterArray
    - auto::ParseSpecialAttributes
    - find
    - auto::GetNumericDataType
    - std::move
    - auto::Size
    - std::vector::empty
    - auto::m_poParent::lock
    - std::vector::data
    - auto::ToString
    - CPLJSONDocument::LoadMemory
    - CPLAssert
    - GetType
    - auto::m_oMapDimensions::find
    - static_cast<GUInt64>
    - CPLGetPathSafe
    - std::vector::back
    - EQUAL
    - auto::m_oMapDimensions::end
    - ToLong
    - auto::SetFilename
    - auto::SetUpdatable
    - ParseDtype
    - ZarrArray::ParseChunkSize
    - auto::GetName
    - std::vector::emplace_back
    - auto::c_str
    - SetGDALOffset
    - CPLGetDirnameSafe
    - auto::SetFilters
    - auto::SetAttributes
    - GetSize
    - GetName
    - ToArray
    - c_str
    - std::make_shared<ZarrDimension>
    - CPLSPrintf
    - auto::IsValid
    - auto::SetDimSeparator
    - lock
    - std::vector::resize
    - auto::second::SetIndexingVariable
    - CPLJSONObject
    - empty
    - CPLGetValueType
    - FindDimension
    - GetOpenOptions
    - CPLJSONDocument::GetRoot
    - auto::GetClass
    - auto::second::GetSize
    - CPLError
    - auto::size
    - auto::ToArray
    - CPLJSONArray::CPLJSONArray
    - end
    - ZarrV2Group::LoadArray
    - auto::CacheTilePresence
    - CPLTestBool
    - auto::empty
    - CPL_IGNORE_RET_VAL
    - auto::GetSize
    - FreeDynamicMemory
    - CPLFormFilenameSafe
    - static_cast<GFloat16>
    - VSIStatL
    - auto::RegisterNoDataValue
    - ZarrGetTIFFDecompressor
    - auto::OpenDimensionFromFullname
    - CPLJSONDocument::CPLJSONDocument
    - memcpy
    linkageType: ''
    returnType: std::shared_ptr<ZarrArray>
    signature: "std::shared_ptr<ZarrArray> ZarrV2Group::LoadArray(const std::string
      &osArrayName,\n                       const std::string &osZarrayFilename,\n
      \                      const CPLJSONObject &oRoot, bool bLoadedFromZMetadata,\n
      \                      const CPLJSONObject &oAttributesIn) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2005,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2006,1
    - Dst: CPLJSONObject::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oCompressor
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 2008
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2008
    functionName: ZarrV2Array::SetCompressorJson
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONObject::GetType
    - CPLJSONObject::ToString
    - SetNameValue
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array::SetCompressorJson(const CPLJSONObject &oCompressor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONArray::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2017,1
    - Dst: SetNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2018,1
    - Dst: CPLJSONArray::ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_array.cpp:2019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oFiltersArray
    argTypes:
    - CPLJSONArray
    constantsTouched: []
    func_position:
      end: 2020
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2020
    functionName: ZarrV2Array::SetFilters
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_array.cpp
    functionUses: 0
    functionsReached:
    - SetNameValue
    - CPLJSONArray::ToString
    - CPLJSONArray::Size
    linkageType: ''
    returnType: void
    signature: void ZarrV2Array::SetFilters(const CPLJSONArray &oFiltersArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poRootGroup
    argTypes:
    - std::shared_ptr<GDALGroup>
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ZarrDataset::ZarrDataset
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZarrDataset::ZarrDataset(const std::shared_ptr<GDALGroup> &poRootGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:47,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:48,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:51,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:54,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:54,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:55,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:59,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:61,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:64,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:64,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:65,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:66,1
    - Dst: ZarrDataset::OpenMultidim
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:67,1
    - Dst: ZarrSharedResource::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:72,1
    - Dst: auto::SetOpenOptions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:73,1
    - Dst: auto::GetRootGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:75,1
    - Dst: ZarrDataset::ZarrDataset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pszFilename
    - bUpdateMode
    - papszOpenOptionsIn
    argTypes:
    - char*
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 79
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 79
    functionName: ZarrDataset::OpenMultidim
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - CPLString::back
    - CPLDebugOnly
    - CPLJSONDocument::Load
    - ZarrDataset::ZarrDataset
    - ZarrDataset::OpenMultidim
    - ZarrSharedResource::Create
    - auto::GetRootGroup
    - CPLSPrintf
    - auto::SetOpenOptions
    - CPLJSONDocument::GetRoot
    - CPLString::c_str
    - CPLString::pop_back
    - CPLJSONDocument::CPLJSONDocument
    - STARTS_WITH
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *ZarrDataset::OpenMultidim(const char *pszFilename,\n
      \                                      bool bUpdateMode,\n                                       CSLConstList
      papszOpenOptionsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:90,1
    - Dst: std::shared_ptr<GDALGroup>::GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:94,1
    - Dst: std::shared_ptr<GDALGroup>::GetFullName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:97,1
    - Dst: std::vector<std::string>::emplace_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:104,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:104,1
    - Dst: std::vector<std::string>::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:105,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:107,1
    - Dst: std::shared_ptr<GDALGroup>::GetGroupNames
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:113,1
    - Dst: std::shared_ptr<GDALGroup>::OpenGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:116,1
    - Dst: ExploreGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - poGroup
    - aosArrays
    - nRecCount
    argTypes:
    - std::shared_ptr<GDALGroup>
    - std::vector<std::string>
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 124
    functionName: ExploreGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<GDALGroup>::GetGroupNames
    - ExploreGroup
    - std::shared_ptr<GDALGroup>::GetFullName
    - std::move
    - std::shared_ptr<GDALGroup>::OpenGroup
    - CPLError
    - std::shared_ptr<GDALGroup>::GetMDArrayNames
    - std::vector<std::string>::size
    - std::vector<std::string>::emplace_back
    linkageType: ''
    returnType: bool
    signature: "bool ExploreGroup(const std::shared_ptr<GDALGroup> &poGroup,\n                         std::vector<std::string>
      &aosArrays, int nRecCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:133,1
    - Dst: FetchNameValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: ZarrDataset::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - FetchNameValue
    linkageType: ''
    returnType: char
    signature: "char *ZarrDataset::GetMetadataItem(const char *pszName,\n                                         const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:144,1
    - Dst: List
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: ZarrDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - List
    linkageType: ''
    returnType: char
    signature: char **ZarrDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<GDALMDArray>::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:169,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:172,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:177,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:183,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:184,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:187,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:188,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:193,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:196,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:204,1
    - Dst: CPLGetValueType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:210,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:213,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:221,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 4
    argNames:
    - poArray
    - poOpenInfo
    - iXDim
    - iYDim
    argTypes:
    - std::shared_ptr<GDALMDArray>
    - GDALOpenInfo*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: GetXYDimensionIndices
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr<GDALMDArray>::GetDimensions
    - GetType
    - CPLError
    - GetName
    - CPLGetValueType
    linkageType: ''
    returnType: void
    signature: "void GetXYDimensionIndices(const std::shared_ptr<GDALMDArray> &poArray,\n
      \                                 const GDALOpenInfo *poOpenInfo, size_t &iXDim,\n
      \                                 size_t &iYDim)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<GDALMDArray>::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:237,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:238,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - poArray
    - iXDim
    - iYDim
    argTypes:
    - std::shared_ptr<GDALMDArray>
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: GetExtraDimSampleCount
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<GDALMDArray>::GetDimensions
    - GetSize
    - auto::size
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t GetExtraDimSampleCount(const std::shared_ptr<GDALMDArray>
      &poArray,\n                       size_t iXDim, size_t iYDim)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZARRDriverIdentify
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:252,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:258,1
    - Dst: std::make_unique<ZarrDummyDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:270,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:271,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:271,1
    - Dst: auto::release
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:272,1
    - Dst: ZARRIsLikelyKerchunkJSONRef
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:278,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:280,1
    - Dst: ZarrDataset::Open
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:291,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:293,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:294,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:297,1
    - Dst: ZarrDataset::Open
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:301,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:307,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:309,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:311,1
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:315,1
    - Dst: cpl::starts_with
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:316,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:317,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:320,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:320,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:321,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:324,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:345,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:345,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:346,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:346,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:351,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:353,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:353,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:356,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:359,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:361,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:362,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:362,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:367,1
    - Dst: ZarrDataset::OpenMultidim
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:368,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:368,1
    - Dst: auto::release
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:373,1
    - Dst: auto::GetRootGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:376,1
    - Dst: std::make_unique<ZarrDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:378,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:387,1
    - Dst: auto::OpenMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:390,1
    - Dst: auto::OpenMDArrayFromFullname
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:391,1
    - Dst: GetXYDimensionIndices
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:394,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:396,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:398,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:408,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:412,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:413,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:414,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:418,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:422,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:423,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:424,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:431,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:436,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:437,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:439,1
    - Dst: std::shared_ptr::at
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:447,1
    - Dst: GetXYDimensionIndices
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:451,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:454,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:456,1
    - Dst: ExploreGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:462,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:463,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:471,1
    - Dst: auto::OpenMDArrayFromFullname
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:473,1
    - Dst: std::shared_ptr::GetFullName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:475,1
    - Dst: auto::OpenMDArrayFromFullname
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:481,1
    - Dst: auto::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:482,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:484,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:486,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:491,1
    - Dst: std::string::clear
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:492,1
    - Dst: GetXYDimensionIndices
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:500,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:505,1
    - Dst: std::shared_ptr::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:507,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:512,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:514,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:518,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:518,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:519,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:523,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:527,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:527,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:528,1
    - Dst: auto::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:535,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:537,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:539,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:539,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:541,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:541,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:542,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:542,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:544,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:545,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:553,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:555,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:556,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:558,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:559,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:560,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:562,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:563,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:564,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:567,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:567,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:576,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:578,1
    - Dst: auto::OpenMDArrayFromFullname
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:580,1
    - Dst: auto::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:588,1
    - Dst: auto::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:595,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:598,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:600,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:602,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:602,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:606,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:610,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:613,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:614,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:621,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:621,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:623,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:623,1
    - Dst: auto::m_aosSubdatasets::AddString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:624,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:624,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:626,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:626,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:627,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:635,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:639,1
    - Dst: std::shared_ptr::AsClassicDataset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:639,1
    - Dst: std::shared_ptr::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:644,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:649,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:652,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:656,1
    - Dst: std::shared_ptr::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:663,1
    - Dst: GetIndexingVariable
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:663,1
    - Dst: auto::GetFullName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:670,1
    - Dst: auto::m_aosSubdatasets::Clear
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:680,1
    - Dst: auto::m_aosSubdatasets::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:684,1
    - Dst: auto::SetMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:686,1
    - Dst: auto::m_aosSubdatasets::List
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:686,1
    - Dst: auto::release
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:688,1
    - Dst: auto::release
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:691,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 206
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 692
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 692
    functionName: ZarrDataset::Open
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::reset
    - auto::m_aosSubdatasets::List
    - ExploreGroup
    - std::shared_ptr::AsClassicDataset
    - std::shared_ptr::GetDimensionCount
    - auto::m_aosSubdatasets::AddString
    - std::vector::size
    - std::vector::emplace_back
    - ZARRIsLikelyKerchunkJSONRef
    - CPLError
    - std::vector::push_back
    - STARTS_WITH
    - std::string::c_str
    - auto::size
    - CPLString::empty
    - CPLGetExtensionSafe
    - std::string::empty
    - GDALGetDataTypeName
    - ZarrDataset::OpenMultidim
    - auto::GetRootGroup
    - CPLAtoGIntBig
    - auto::GetDataType
    - VSI_ISDIR
    - auto::OpenMDArray
    - CPLString::c_str
    - std::move
    - strlen
    - CSLTokenizeString2
    - CPLStringList::size
    - std::vector::empty
    - GetSize
    - std::shared_ptr::at
    - GetName
    - auto::m_aosSubdatasets::empty
    - ZarrDataset::Open
    - c_str
    - auto::GetDimensionCount
    - static_cast<int>
    - auto::GetFullName
    - std::make_unique<ZarrDataset>
    - auto::OpenMDArrayFromFullname
    - auto::SetMetadata
    - static_cast<uint64_t>
    - std::string::clear
    - CPLSPrintf
    - GetIndexingVariable
    - std::shared_ptr::GetFullName
    - auto::SetDescription
    - std::unique_ptr<GDALDataset>
    - GetXYDimensionIndices
    - auto::release
    - VSIStatL
    - auto::GetDimensions
    - auto::m_aosSubdatasets::Clear
    - ZARRDriverIdentify
    - std::shared_ptr::GetDimensions
    - std::make_unique<ZarrDummyDataset>
    - std::string
    - cpl::starts_with
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *ZarrDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:700,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:702,1
    - Dst: VSIRmdirRecursive
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: ZarrDatasetDelete
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VSIRmdirRecursive
    - STARTS_WITH
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDatasetDelete(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:716,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:716,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:718,1
    - Dst: VSIRename
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pszNewName
    - pszOldName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 724
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 724
    functionName: ZarrDatasetRename
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - STARTS_WITH
    - VSIRename
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDatasetRename(const char *pszNewName, const char *pszOldName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:733,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:733,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:735,1
    - Dst: VSISync
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:741,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:741,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pszNewName
    - pszOldName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 745
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 745
    functionName: ZarrDatasetCopyFiles
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - VSISync
    - std::string
    - CPLError
    - STARTS_WITH
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr ZarrDatasetCopyFiles(const char *pszNewName,\n                                   const
      char *pszOldName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrDriver::InitMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:764,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: ZarrDriver::GetMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadata
    - ZarrDriver::InitMetadata
    linkageType: ''
    returnType: char
    signature: char **GetMetadata(const char *pszDomain) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:773,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:773,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:774,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:775,1
    - Dst: ZarrDriver::InitMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:777,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 780
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 780
    functionName: ZarrDriver::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - ZarrDriver::InitMetadata
    linkageType: ''
    returnType: char
    signature: "char *ZarrDriver::GetMetadataItem(const char *pszName,\n                                        const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:797,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:802,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:808,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:814,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:815,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:815,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:816,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:816,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:820,1
    - Dst: blosc_list_compressors
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:821,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:827,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:831,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:831,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:832,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:833,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:834,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:836,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:839,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:840,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:844,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:844,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:845,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:846,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:847,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:849,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:852,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:853,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:857,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:857,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:858,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:859,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:860,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:865,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:865,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:866,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:868,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:870,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:873,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:876,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:877,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:881,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:882,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:886,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:886,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:887,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:888,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:889,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:892,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:893,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:897,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:898,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:902,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:902,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:903,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:904,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:905,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:912,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:915,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:919,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:920,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:929,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:930,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:930,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:942,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:943,1
    - Dst: CPLCloneXMLTree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:949,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:952,1
    - Dst: CPLString::toupper
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:959,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:962,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:964,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:964,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:968,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:988,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:989,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:992,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:992,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:995,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:995,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1004,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1008,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1010,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1014,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1019,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1019,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1020,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1021,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1022,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1027,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1027,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1028,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1030,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1031,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1034,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1037,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1037,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1038,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1039,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1040,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1043,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1044,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1048,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1049,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1053,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1053,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1054,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1056,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1057,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1061,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1064,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1064,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1065,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1067,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1068,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1072,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1075,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1075,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1076,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1077,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1079,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1082,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1083,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1087,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1088,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1092,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1092,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1093,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1095,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1096,1
    - Dst: GDALDriver::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1102,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1103,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 132
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 1106
    functionName: ZarrDriver::InitMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - CPLCloneXMLTree
    - CPLFree
    - CPLString::toupper
    - CPLStrdup
    - CPLCreateXMLNode
    - CPLGetXMLNode
    - CPLGetCompressor
    - CSLDestroy
    - CPLAddXMLChild
    - EQUAL
    - CPLString::c_str
    - CPLString
    - GDALDriver::SetMetadataItem
    - CPLXMLTreeCloser::get
    - std::string::c_str
    - blosc_list_compressors
    - CPLAddXMLAttributeAndValue
    linkageType: ''
    returnType: void
    signature: void ZarrDriver::InitMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrSharedResource::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1121,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1122,1
    - Dst: ZarrV3Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1124,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1124,1
    - Dst: auto::EnableZMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1133,1
    - Dst: ZarrV2Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1135,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1135,1
    - Dst: ZarrDataset::ZarrDataset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1141,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pszFilename
    - papszOptions
    argTypes:
    - char*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1144
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1144
    functionName: ZarrDataset::CreateMultiDimensional
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - ZarrV3Group::CreateOnDisk
    - ZarrSharedResource::Create
    - auto::EnableZMetadata
    - ZarrV2Group::CreateOnDisk
    - EQUAL
    - std::string
    - ZarrDataset::ZarrDataset
    - auto::SetDescription
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *\nZarrDataset::CreateMultiDimensional(const char *pszFilename,\n
      \                                   CSLConstList /*papszRootGroupOptions*/,\n
      \                                   CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1156,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1160,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1174,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1180,1
    - Dst: ZarrDataset::OpenMultidim
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1180,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1183,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1186,1
    - Dst: auto::GetRootGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1186,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1198,1
    - Dst: ZarrSharedResource::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1209,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1210,1
    - Dst: ZarrV3Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1212,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1212,1
    - Dst: auto::EnableZMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1221,1
    - Dst: ZarrV2Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1223,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1223,1
    - Dst: auto::SetRootGroup
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1226,1
    - Dst: std::make_unique<ZarrDataset>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1231,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1232,1
    - Dst: std::shared_ptr::reset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1242,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1243,1
    - Dst: VSIRmdir
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1247,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1248,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1256,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1257,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1261,1
    - Dst: VSIRmdir
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1263,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1263,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1267,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1268,1
    - Dst: VSIRmdir
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1270,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1270,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1273,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1274,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1275,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1277,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1277,1
    - Dst: VSIRmdir
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1281,1
    - Dst: std::shared_ptr::GetDimensions
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1288,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1291,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1292,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1292,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1296,1
    - Dst: GetSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1297,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1297,1
    - Dst: std::shared_ptr::CreateDimension
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1305,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1305,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1306,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1306,1
    - Dst: std::shared_ptr::CreateDimension
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1311,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1311,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1312,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1312,1
    - Dst: std::shared_ptr::CreateDimension
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1318,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1318,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1318,1
    - Dst: std::shared_ptr::CreateDimension
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1320,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1320,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1320,1
    - Dst: CleanupCreatedFiles
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1324,1
    - Dst: std::shared_ptr::CreateDimension
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1334,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1334,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1334,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1339,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1339,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1353,1
    - Dst: std::shared_ptr::CreateMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1354,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1355,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1356,1
    - Dst: CleanupCreatedFiles
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1359,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1362,1
    - Dst: auto::m_poSingleArray::GetView
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1366,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1367,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1368,1
    - Dst: ZarrRasterBand::ZarrRasterBand
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1368,1
    - Dst: std::shared_ptr::CreateMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1377,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1378,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1379,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1380,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1381,1
    - Dst: CleanupCreatedFiles
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1384,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1387,1
    - Dst: ZarrRasterBand::ZarrRasterBand
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1387,1
    - Dst: auto::release
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1391,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 105
    argCount: 6
    argNames:
    - pszName
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 1392
      start: 1150
    functionDepth: 4
    functionLinenumber: 1150
    functionLinenumberEnd: 1392
    functionName: ZarrDataset::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::reset
    - std::shared_ptr::CreateMDArray
    - auto::m_poSingleArray::GetView
    - auto::SetBand
    - strcmp
    - VSIRmdir
    - CPLError
    - std::string::c_str
    - ZarrV3Group::CreateOnDisk
    - ZarrDataset::OpenMultidim
    - auto::GetRootGroup
    - ZarrSharedResource::Create
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - CPLStringList::size
    - GetSize
    - GetName
    - GDALExtendedDataType::Create
    - auto::SetRootGroup
    - std::make_unique<ZarrDataset>
    - std::shared_ptr::CreateDimension
    - VSIUnlink
    - CPLSPrintf
    - CPL_IGNORE_RET_VAL
    - auto::SetMetadataItem
    - CPLFormFilenameSafe
    - auto::SetDescription
    - ZarrRasterBand::ZarrRasterBand
    - static_cast<GUInt64>
    - std::unique_ptr<GDALDataset>
    - auto::release
    - CPLGetBasenameSafe
    - auto::EnableZMetadata
    - ZarrV2Group::CreateOnDisk
    - EQUAL
    - VSIReadDirEx
    - std::shared_ptr::GetDimensions
    - std::string
    - CleanupCreatedFiles
    - auto::reset
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *ZarrDataset::Create(const char *pszName, int nXSize,
      int nYSize,\n                                 int nBandsIn, GDALDataType eType,\n
      \                                char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrDataset::FlushCache
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: ZarrDataset::~ZarrDataset()
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - ZarrDataset::FlushCache
    linkageType: ''
    returnType: void
    signature: void ZarrDataset::~ZarrDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1409,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1415,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1420,1
    - Dst: GetAttribute
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1421,1
    - Dst: CreateAttribute
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1423,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1424,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1436,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1437,1
    - Dst: GDALGetColorInterpretationName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1438,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1440,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1446
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1446
    functionName: ZarrDataset::FlushCache
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUInt64>
    - GetAttribute
    - auto::Write
    - GDALDataset::FlushCache
    - CreateAttribute
    - GetColorInterpretation
    - GDALGetColorInterpretationName
    - GDALExtendedDataType::CreateString
    - std::vector::push_back
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDataset::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<ZarrRasterBand *>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1455,1
    - Dst: ZarrDataset::GetSpatialRef
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1459
    functionName: ZarrDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<ZarrRasterBand *>
    - ZarrDataset::GetSpatialRef
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *ZarrDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<ZarrRasterBand *>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1469,1
    - Dst: ZarrDataset::SetSpatialRef
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: ZarrDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<ZarrRasterBand *>
    - ZarrDataset::SetSpatialRef
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1483
    functionName: ZarrDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1493,1
    - Dst: memcpy
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1500,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1503,1
    - Dst: OpenMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1505,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1505,1
    - Dst: CreateMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1507,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1507,1
    - Dst: SetIndexingVariable
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1511,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1515,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1517,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1522,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1530,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1531,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1531,1
    - Dst: OpenMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1538,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1538,1
    - Dst: CreateMDArray
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1540,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1540,1
    - Dst: SetIndexingVariable
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1544,1
    - Dst: std::vector::reserve
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1548,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1550,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1555,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1563,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1564,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1571
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1571
    functionName: ZarrDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALExtendedDataType::Create
    - auto::Write
    - CreateMDArray
    - auto::GetDataType
    - std::vector::emplace_back
    - OpenMDArray
    - CPLError
    - SetIndexingVariable
    - memcpy
    - GetName
    - std::vector::reserve
    - std::vector::data
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1581,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1587,1
    - Dst: cpl::down_cast<ZarrRasterBand *>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1588,1
    - Dst: get
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1588,1
    - Dst: auto*::CreateAttribute
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1597,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1604,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1608,1
    - Dst: OGRPGTableLayer::SetMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1612,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - papszMetadata
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1613
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1613
    functionName: ZarrDataset::SetMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<ZarrRasterBand *>
    - auto*::CreateAttribute
    - auto::Write
    - get
    - OGRPGTableLayer::SetMetadata
    - GDALExtendedDataType::CreateString
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrDataset::SetMetadata(char **papszMetadata, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1622,1
    - Dst: std::shared_ptr<GDALMDArray>::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1622,1
    - Dst: std::shared_ptr<GDALMDArray>::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1623,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1624,1
    - Dst: std::shared_ptr<GDALMDArray>::GetBlockSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1624,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1625,1
    - Dst: std::shared_ptr<GDALMDArray>::GetBlockSize
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poArray
    argTypes:
    - std::shared_ptr<GDALMDArray>
    constantsTouched: []
    func_position:
      end: 1626
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1626
    functionName: ZarrRasterBand::ZarrRasterBand
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::shared_ptr<GDALMDArray>::GetBlockSize
    - std::shared_ptr<GDALMDArray>::GetDimensionCount
    - assert
    - std::shared_ptr<GDALMDArray>::GetDataType
    linkageType: ''
    returnType: void
    signature: void ZarrRasterBand::ZarrRasterBand(const std::shared_ptr<GDALMDArray>
      &poArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNoDataValueAsDouble
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1639
      start: 1632
    functionDepth: 0
    functionLinenumber: 1632
    functionLinenumberEnd: 1639
    functionName: ZarrRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - GetNoDataValueAsDouble
    linkageType: ''
    returnType: double
    signature: double ZarrRasterBand::GetNoDataValue(int *pbHasNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::GetNoDataValueAsInt64
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1652
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1652
    functionName: ZarrRasterBand::GetNoDataValueAsInt64
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - ZarrRasterBand::GetNoDataValueAsInt64
    linkageType: ''
    returnType: int64_t
    signature: int64_t ZarrRasterBand::GetNoDataValueAsInt64(int *pbHasNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::GetNoDataValueAsUInt64
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1665
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1665
    functionName: ZarrRasterBand::GetNoDataValueAsUInt64
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - ZarrRasterBand::GetNoDataValueAsUInt64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ZarrRasterBand::GetNoDataValueAsUInt64(int *pbHasNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::SetNoDataValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1674
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1674
    functionName: ZarrRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - ZarrRasterBand::SetNoDataValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetNoDataValue(double dfNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::SetNoDataValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNoData
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 1683
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1683
    functionName: ZarrRasterBand::SetNoDataValueAsInt64
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - ZarrRasterBand::SetNoDataValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetNoDataValueAsInt64(int64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::SetNoDataValue
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nNoData
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1692
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1692
    functionName: ZarrRasterBand::SetNoDataValueAsUInt64
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - ZarrRasterBand::SetNoDataValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetNoDataValueAsUInt64(uint64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1705
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1705
    functionName: ZarrRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ZarrRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::SetOffset
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfNewOffset
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1714
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1714
    functionName: ZarrRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - ZarrRasterBand::SetOffset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetOffset(double dfNewOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1727
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1727
    functionName: ZarrRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ZarrRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZarrRasterBand::SetScale
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dfNewScale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1736
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1736
    functionName: ZarrRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - ZarrRasterBand::SetScale
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetScale(double dfNewScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnit
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1745
    functionName: ZarrRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - GetUnit
    linkageType: ''
    returnType: char
    signature: char *ZarrRasterBand::GetUnitType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUnit
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszNewValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1755
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1755
    functionName: ZarrRasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - SetUnit
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetUnitType(const char *pszNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1764
    functionName: ZarrRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp ZarrRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<ZarrDataset *>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1772,1
    - Dst: GDALExtendedDataType::CreateString
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1776,1
    - Dst: GetAttribute
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1777,1
    - Dst: auto::GetDimensionCount
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1778,1
    - Dst: auto::GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1779,1
    - Dst: CreateAttribute
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1782,1
    - Dst: auto::Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - eColorInterp
    argTypes:
    - GDALColorInterp
    constantsTouched: []
    func_position:
      end: 1796
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1796
    functionName: ZarrRasterBand::SetColorInterpretation
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - GetAttribute
    - auto::GetDimensionCount
    - auto::Write
    - CreateAttribute
    - auto::GetDataType
    - cpl::down_cast<ZarrDataset *>
    - GDALExtendedDataType::CreateString
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::SetColorInterpretation(GDALColorInterp eColorInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1809,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1810,1
    - Dst: Read
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1815,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1819
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1819
    functionName: ZarrRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUInt64>
    - Read
    - GetDataType
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1831,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1832,1
    - Dst: Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1837,1
    - Dst: GetDataType
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pData
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1841
      start: 1825
    functionDepth: 1
    functionLinenumber: 1825
    functionLinenumberEnd: 1841
    functionName: ZarrRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - Write
    - static_cast<GUInt64>
    - GetDataType
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr ZarrRasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff,
      void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1859,1
    - Dst: static_cast<GUInt64>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1860,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1865,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1866,1
    - Dst: Read
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1870,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1872,1
    - Dst: Write
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1878,1
    - Dst: GDALExtendedDataType::Create
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1880,1
    - Dst: GDALRasterBand::IRasterIO
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpaceBuf
    - nLineSpaceBuf
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1888
      start: 1847
    functionDepth: 4
    functionLinenumber: 1847
    functionLinenumberEnd: 1888
    functionName: ZarrRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - Write
    - static_cast<GUInt64>
    - GDALRasterBand::IRasterIO
    - GDALExtendedDataType::Create
    - static_cast<GPtrDiff_t>
    - Read
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr ZarrRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                 int nXSize, int nYSize, void *pData,\n
      \                                int nBufXSize, int nBufYSize,\n                                 GDALDataType
      eBufType, GSpacing nPixelSpaceBuf,\n                                 GSpacing
      nLineSpaceBuf,\n                                 GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1901,1
    - Dst: VSIKerchunkConvertJSONToParquet
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1904,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1904,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1909,1
    - Dst: ZarrDataset::Open
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1911,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1916,1
    - Dst: auto::DefaultCreateCopy
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1922
      start: 1895
    functionDepth: 2
    functionLinenumber: 1895
    functionLinenumberEnd: 1922
    functionName: ZarrDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 0
    functionsReached:
    - ZarrDataset::Open
    - VSIKerchunkConvertJSONToParquet
    - auto::DefaultCreateCopy
    - GDALDataset*::GetDescription
    - CPLFetchBool
    - GetGDALDriverManager
    - std::string
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *ZarrDataset::CreateCopy(const char *pszFilename,\n                                     GDALDataset
      *poSrcDS, int bStrict,\n                                     char **papszOptions,\n
      \                                    GDALProgressFunc pfnProgress,\n                                     void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1931,1
    - Dst: VSIInstallKerchunkFileSystems
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1934,1
    - Dst: ZarrDriver::ZarrDriver
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1936,1
    - Dst: ZARRDriverSetCommonMetadata
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1937,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/zarr/zarrdriver.cpp:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1928
    functionDepth: 3
    functionLinenumber: 1928
    functionLinenumberEnd: 1948
    functionName: GDALRegister_Zarr
    functionSourceFile: /src/gdal/frmts/zarr/zarrdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GetGDALDriverManager
    - ZARRDriverSetCommonMetadata
    - ZarrDriver::ZarrDriver
    - VSIInstallKerchunkFileSystems
    linkageType: ''
    returnType: void
    signature: void GDALRegister_Zarr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:26,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:29,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:32,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:33,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:37,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: CheckExistenceOfOneZarrFile
    functionSourceFile: /src/gdal/frmts/zarr/zarrdrivercore.cpp
    functionUses: 0
    functionsReached:
    - CPLFormFilenameSafe
    - VSIStatL
    linkageType: ''
    returnType: bool
    signature: bool CheckExistenceOfOneZarrFile(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:51,1
    - Dst: ZARRIsLikelyStreamableKerchunkJSONRefContent
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:55,1
    - Dst: std::string_view
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: ZARRIsLikelyKerchunkJSONRef
    functionSourceFile: /src/gdal/frmts/zarr/zarrdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - std::string_view
    - ZARRIsLikelyStreamableKerchunkJSONRefContent
    linkageType: ''
    returnType: bool
    signature: bool ZARRIsLikelyKerchunkJSONRef(const GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:71,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:72,1
    - Dst: ZARRIsLikelyKerchunkJSONRef
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:77,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:81,1
    - Dst: CheckExistenceOfOneZarrFile
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: ZARRDriverIdentify
    functionSourceFile: /src/gdal/frmts/zarr/zarrdrivercore.cpp
    functionUses: 1
    functionsReached:
    - ZARRIsLikelyKerchunkJSONRef
    - STARTS_WITH
    - CheckExistenceOfOneZarrFile
    linkageType: ''
    returnType: int
    signature: int ZARRDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:100,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:101,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:102,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:103,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:104,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:105,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:109,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:110,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:111,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:113,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:141,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:154,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:155,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:156,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:157,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:159,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 164
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 164
    functionName: ZARRDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarrdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void ZARRDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:173,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:177,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:179,1
    - Dst: ZARRDriverSetCommonMetadata
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:182,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/zarr/zarrdrivercore.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: DeclareDeferredZarrPlugin
    functionSourceFile: /src/gdal/frmts/zarr/zarrdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    - ZARRDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredZarrPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<ZarrV2Group>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:31,1
    - Dst: ZarrV2Group::ZarrV2Group
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:32,1
    - Dst: auto::SetSelf
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - poSharedResource
    - osParentName
    - osName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: ZarrV2Group::Create
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 1
    functionsReached:
    - ZarrV2Group::ZarrV2Group
    - auto::SetSelf
    - std::shared_ptr<ZarrV2Group>
    linkageType: ''
    returnType: std::shared_ptr<ZarrV2Group>
    signature: "std::shared_ptr<ZarrV2Group> ZarrV2Group::Create(const std::shared_ptr<ZarrSharedResource>
      &poSharedResource,\n                    const std::string &osParentName, const
      std::string &osName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsModified
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:43,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:45,1
    - Dst: CPLJSONDocument::SetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:46,1
    - Dst: Serialize
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:46,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:48,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:48,1
    - Dst: CPLJSONDocument::Save
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:49,1
    - Dst: SetZMetadataItem
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:50,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: ZarrV2Group::~ZarrV2Group()
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - IsModified
    - c_str
    - CPLJSONDocument::Save
    - CPLJSONDocument::SetRoot
    - SetZMetadataItem
    - CPLJSONDocument::GetRoot
    - Serialize
    - CPLJSONDocument::CPLJSONDocument
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void ZarrV2Group::~ZarrV2Group()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:60,1
    - Dst: VSIReadDir
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:64,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:64,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:66,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:68,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:72,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:74,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:75,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:76,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:77,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:85,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:87,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:88,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:91,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:91,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:92,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:92,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:94,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:94,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:94,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:95,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:97,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:103,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:103,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:104,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:104,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 109
    functionName: ZarrV2Group::ExploreDirectory
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - empty
    - VSIStatL
    - strcmp
    - begin
    - std::find
    - strlen
    - VSIReadDir
    - CPLStringList::size
    - std::string::c_str
    - CPLFormFilenameSafe
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void ZarrV2Group::ExploreDirectory() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:118,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:121,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:122,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:125,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:127,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:128,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:131,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:131,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:132,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:132,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:134,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:135,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:137,1
    - Dst: ZarrV2Group::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:138,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: ZarrV2Group::OpenZarrArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLJSONDocument::Load
    - empty
    - VSIStatL
    - ZarrV2Group::LoadArray
    - CPLJSONObject
    - find
    - CPLJSONDocument::GetRoot
    - CheckValidAndErrorOutIfNot
    - CPLJSONDocument::CPLJSONDocument
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: std::shared_ptr<ZarrArray>
    signature: "std::shared_ptr<ZarrArray> ZarrV2Group::OpenZarrArray(const std::string
      &osName,\n                                                      CSLConstList)
      const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:153,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:156,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:157,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:160,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:162,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:163,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:163,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:166,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:166,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:167,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:167,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:169,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:170,1
    - Dst: ZarrV2Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:174,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:174,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:176,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:176,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:177,1
    - Dst: auto::SetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:178,1
    - Dst: auto::InitFromZGroup
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:184,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: ZarrV2Group::OpenZarrGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLJSONDocument::Load
    - empty
    - VSIStatL
    - ZarrV2Group::Create
    - lock
    - auto::InitFromZGroup
    - find
    - CPLJSONDocument::GetRoot
    - auto::SetDirectoryName
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - CheckValidAndErrorOutIfNot
    - CPLJSONDocument::CPLJSONDocument
    - GetFullName
    - std::string::c_str
    - CPLFormFilenameSafe
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrGroupBase>
    signature: std::shared_ptr<ZarrGroupBase> ZarrV2Group::OpenZarrGroup(const std::string
      &osName, CSLConstList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:199,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:203,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:205,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:205,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:207,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:209,1
    - Dst: Init
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: ZarrV2Group::LoadAttributes
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::Load
    - c_str
    - empty
    - Init
    - CPLJSONDocument::GetRoot
    - CPLJSONDocument::CPLJSONDocument
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void ZarrV2Group::LoadAttributes() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::dynamic_pointer_cast<ZarrV2Group>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:220,1
    - Dst: OpenGroupFromFullname
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:221,1
    - Dst: std::string::rfind
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:227,1
    - Dst: ZarrV2Group::GetOrCreateSubGroup
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:231,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:231,1
    - Dst: ZarrV2Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:235,1
    - Dst: auto::GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:235,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:236,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:237,1
    - Dst: auto::m_pSelf::lock
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:238,1
    - Dst: auto::SetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:239,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:240,1
    - Dst: auto::m_osDirectoryName::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:240,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:241,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:245,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:247,1
    - Dst: auto::m_aosGroups::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:248,1
    - Dst: auto::GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - osSubGroupFullname
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 250
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 250
    functionName: ZarrV2Group::GetOrCreateSubGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 1
    functionsReached:
    - OpenGroupFromFullname
    - auto::GetFullName
    - auto::m_aosGroups::emplace_back
    - std::dynamic_pointer_cast<ZarrV2Group>
    - CPLFormFilenameSafe
    - std::string::rfind
    - auto::m_pSelf::lock
    - auto::GetName
    - ZarrV2Group::GetOrCreateSubGroup
    - auto::m_osDirectoryName::c_str
    - auto::SetDirectoryName
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - std::string::substr
    - ZarrV2Group::Create
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrV2Group>
    signature: std::shared_ptr<ZarrV2Group> ZarrV2Group::GetOrCreateSubGroup(const
      std::string &osSubGroupFullname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:263,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:265,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:271,1
    - Dst: std::count
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:272,1
    - Dst: std::string::begin
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:272,1
    - Dst: std::string::end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:272,1
    - Dst: Init
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:279,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:281,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:281,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:282,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:282,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:282,1
    - Dst: ZarrV2Group::GetOrCreateSubGroup
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:285,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:286,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:286,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:286,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:288,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:288,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:289,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:289,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:289,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:293,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:293,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:293,1
    - Dst: auto::rfind
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:302,1
    - Dst: ZarrV2Group::GetOrCreateSubGroup
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:306,1
    - Dst: auto::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:307,1
    - Dst: auto::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:312,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:313,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:314,1
    - Dst: auto::m_osDirectoryName::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:314,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:315,1
    - Dst: auto::LoadArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:318,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:335,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:336,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:336,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:337,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:337,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:337,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:340,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:340,1
    - Dst: strlen
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:340,1
    - Dst: std::dynamic_pointer_cast<ZarrV2Group>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:341,1
    - Dst: OpenGroupFromFullname
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:342,1
    - Dst: auto::m_oAttrGroup::Init
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:345,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:349,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:350,1
    - Dst: std::string::rfind
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:353,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:357,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:360,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:361,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:362,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:363,1
    - Dst: CreateArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:365,1
    - Dst: std::map::erase
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:367,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:373,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:376,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:376,1
    - Dst: CreateArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:386,1
    - Dst: std::map::erase
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:387,1
    - Dst: CreateArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:393,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:393,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 1
    argNames:
    - obj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 395
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 395
    functionName: ZarrV2Group::InitFromZMetadata
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - OpenGroupFromFullname
    - auto::rfind
    - std::map::end
    - Init
    - auto::GetType
    - std::vector::emplace_back
    - std::string::end
    - auto::m_osDirectoryName::c_str
    - auto::m_oAttrGroup::Init
    - auto::c_str
    - std::dynamic_pointer_cast<ZarrV2Group>
    - std::move
    - strlen
    - auto::Size
    - GetName
    - auto::GetChildren
    - auto::LoadArray
    - ToArray
    - ToString
    - ZarrV2Group::GetOrCreateSubGroup
    - std::map::find
    - auto::substr
    - auto::IsValid
    - std::map::erase
    - CPLFormFilenameSafe
    - std::string::begin
    - std::count
    - CPLJSONObject
    - std::string::size
    - std::string::rfind
    - CreateArray
    - std::string::substr
    linkageType: ''
    returnType: void
    signature: void ZarrV2Group::InitFromZMetadata(const CPLJSONObject &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:406,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:410,1
    - Dst: IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:417,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:418,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:420,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:421,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:421,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:424,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:426,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:427,1
    - Dst: ZarrV2Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:429,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:430,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:430,1
    - Dst: auto::SetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:432,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:433,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:433,1
    - Dst: auto::InitFromZGroup
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:434,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:434,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:439,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:439,1
    - Dst: auto::GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:441,1
    - Dst: auto::GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:443,1
    - Dst: empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:450,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:451,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:452,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:458,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:460,1
    - Dst: ToLong
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:461,1
    - Dst: IsValidName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:462,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:464,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:465,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:469,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:470,1
    - Dst: CreateDimension
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:474,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:475,1
    - Dst: std::string
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:476,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:481,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:486,1
    - Dst: IsValidName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:487,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:488,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:488,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:489,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:489,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:490,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:491,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:493,1
    - Dst: OpenMDArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:494,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:502,1
    - Dst: IsValidName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:503,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:504,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:504,1
    - Dst: find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:505,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:505,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:506,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:507,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:509,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:510,1
    - Dst: ToArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:516,1
    - Dst: ToString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:519,1
    - Dst: IsValidName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:520,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:521,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:521,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:523,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:524,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 1
    argNames:
    - obj
    argTypes:
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 529
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 529
    functionName: ZarrV2Group::InitFromZGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::Load
    - CPLGetFilename
    - std::set::insert
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - CreateDimension
    - auto::SetDirectoryName
    - CPLError
    - std::string::c_str
    - auto::c_str
    - end
    - IsValid
    - find
    - IsValidName
    - ToLong
    - GetName
    - auto::GetChildren
    - emplace_back
    - ToArray
    - auto::GetFullName
    - c_str
    - ToString
    - std::set::find
    - OpenMDArray
    - lock
    - CPLFormFilenameSafe
    - CPLGetPathSafe
    - empty
    - VSIStatL
    - auto::InitFromZGroup
    - std::string
    - CPLJSONDocument::CPLJSONDocument
    - ZarrV2Group::Create
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: bool ZarrV2Group::InitFromZGroup(const CPLJSONObject &obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:540,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:540,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:543,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:543,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:545,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:546,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:550,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:551,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:557,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:558,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:558,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:561,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:562,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:565,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:566,1
    - Dst: ZarrV2Group::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:568,1
    - Dst: auto::SetDirectoryName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:569,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:570,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:573,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:574,1
    - Dst: std::shared_ptr<ZarrSharedResource>::SetZMetadataItem
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - poSharedResource
    - osParentName
    - osName
    - osDirectoryName
    argTypes:
    - std::shared_ptr<ZarrSharedResource>
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 578
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 578
    functionName: ZarrV2Group::CreateOnDisk
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 2
    functionsReached:
    - VSIFPrintfL
    - ZarrV2Group::Create
    - VSIStatL
    - VSIFCloseL
    - CPLJSONObject::CPLJSONObject
    - std::shared_ptr<ZarrSharedResource>::SetZMetadataItem
    - CPLJSONObject::Add
    - VSIMkdir
    - VSIFOpenL
    - auto::SetDirectoryName
    - CPLError
    - std::string::c_str
    - CPLFormFilenameSafe
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<ZarrV2Group>
    signature: "std::shared_ptr<ZarrV2Group> ZarrV2Group::CreateOnDisk(\n    const
      std::shared_ptr<ZarrSharedResource> &poSharedResource,\n    const std::string
      &osParentName, const std::string &osName,\n    const std::string &osDirectoryName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:588,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:593,1
    - Dst: IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:599,1
    - Dst: GetGroupNames
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:603,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:605,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:605,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:605,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:606,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:608,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:614,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:614,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:614,1
    - Dst: ZarrV2Group::CreateOnDisk
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:615,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:615,1
    - Dst: std::dynamic_pointer_cast<ZarrGroupBase>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:620,1
    - Dst: lock
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:620,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - osName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 624
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 624
    functionName: ZarrV2Group::CreateGroup
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - end
    - c_str
    - CPLError
    - GetGroupNames
    - IsValidObjectName
    - ZarrV2Group::CreateOnDisk
    - begin
    - std::find
    - std::dynamic_pointer_cast<ZarrGroupBase>
    - CheckValidAndErrorOutIfNot
    - lock
    - GetFullName
    - std::string::c_str
    - CPLFormFilenameSafe
    - emplace_back
    linkageType: ''
    returnType: std::shared_ptr<GDALGroup>
    signature: "std::shared_ptr<GDALGroup> ZarrV2Group::CreateGroup(const std::string
      &osName,\n                         CSLConstList /* papszOptions */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:635,1
    - Dst: GDALExtendedDataType::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:636,1
    - Dst: GDALExtendedDataType::GetMaxStringLength
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:647,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:649,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:651,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:652,1
    - Dst: GDALExtendedDataType::GetMaxStringLength
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:660,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:664,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:666,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:666,1
    - Dst: GDALExtendedDataType::GetMaxStringLength
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:667,1
    - Dst: GDALExtendedDataType::GetMaxStringLength
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:672,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:673,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:675,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:675,1
    - Dst: GDALExtendedDataType::GetMaxStringLength
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:676,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:680,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:686,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:694,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:700,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:706,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:712,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:718,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:724,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:730,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:736,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:742,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:748,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:754,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:767,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:773,1
    - Dst: CPLJSONObject::Set
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:779,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:791,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:792,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:793,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:794,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:798,1
    - Dst: std::vector<DtypeElt>::emplace_back
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:804,1
    - Dst: GDALExtendedDataType::GetComponents
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:810,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:811,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:814,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:815,1
    - Dst: GetName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:815,1
    - Dst: FillDTypeElts
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:816,1
    - Dst: GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:817,1
    - Dst: GetOffset
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:817,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:819,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:821,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:822,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:825,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:826,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:828,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:829,1
    - Dst: std::move
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:831,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 138
    argCount: 4
    argNames:
    - oDataType
    - nGDALStartOffset
    - aoDtypeElts
    - bUseUnicode
    argTypes:
    - GDALExtendedDataType
    - size_t
    - std::vector<DtypeElt>
    - bool
    constantsTouched: []
    func_position:
      end: 836
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 836
    functionName: FillDTypeElts
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 2
    functionsReached:
    - auto::GetType
    - CPLError
    - GDALGetDataTypeName
    - CPLJSONArray::CPLJSONArray
    - FillDTypeElts
    - GDALExtendedDataType::GetComponents
    - std::move
    - GDALExtendedDataType::GetClass
    - GetName
    - GDALGetDataTypeSizeBytes
    - CPLJSONArray::Add
    - static_cast<int>
    - CPLJSONObject::Deinit
    - CPLJSONObject::CPLJSONObject
    - CPLSPrintf
    - GetType
    - auto::IsValid
    - GetOffset
    - CPLJSONObject
    - GDALExtendedDataType::GetNumericDataType
    - std::vector<DtypeElt>::emplace_back
    - GDALExtendedDataType::GetMaxStringLength
    - CPLJSONObject::Set
    linkageType: ''
    returnType: CPLJSONObject
    signature: "CPLJSONObject FillDTypeElts(const GDALExtendedDataType &oDataType,\n
      \                                  size_t nGDALStartOffset,\n                                   std::vector<DtypeElt>
      &aoDtypeElts,\n                                   bool bUseUnicode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckValidAndErrorOutIfNot
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:847,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:852,1
    - Dst: IsValidObjectName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:856,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:858,1
    - Dst: FillDTypeElts
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:866,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:867,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:867,1
    - Dst: GetMDArrayNames
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:870,1
    - Dst: std::find
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:872,1
    - Dst: begin
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:872,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:872,1
    - Dst: end
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:873,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:875,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:880,1
    - Dst: CPLJSONObject::Deinit
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:881,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:886,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:888,1
    - Dst: CPLGetDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:889,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:892,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:903,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:903,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:903,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:910,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:925,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:926,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:932,1
    - Dst: CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:934,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:935,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:937,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:941,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:942,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:943,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:943,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:945,1
    - Dst: CPLJSONArray::CPLJSONArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:954,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:957,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:959,1
    - Dst: CPLGetCompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:960,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:963,1
    - Dst: CPLJSONObject::CPLJSONObject
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:969,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:970,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:970,1
    - Dst: CPLJSONArray::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:971,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:979,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:979,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:979,1
    - Dst: strcmp
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:986,1
    - Dst: CPLString
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1002,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1003,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1004,1
    - Dst: atoi
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1004,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1006,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1014,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1015,1
    - Dst: GDALExtendedDataType::GetClass
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1017,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1019,1
    - Dst: GDALExtendedDataType::GetNumericDataType
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1023,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1028,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1031,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1034,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1037,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1040,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1043,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1046,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1049,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1052,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1055,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1058,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1061,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1064,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1067,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1070,1
    - Dst: CPLJSONObject::Add
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1073,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1082,1
    - Dst: c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1082,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1082,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1083,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1083,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1086,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1086,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1088,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1089,1
    - Dst: CPLError
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1093,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1094,1
    - Dst: ZarrArray::FillBlockSize
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1100,1
    - Dst: ZarrV2Array::Create
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1110,1
    - Dst: GetFullName
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1110,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1117,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1117,1
    - Dst: auto::SetNew
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1118,1
    - Dst: auto::SetFilename
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1119,1
    - Dst: auto::SetDimSeparator
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1120,1
    - Dst: auto::SetDtype
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1121,1
    - Dst: auto::SetCompressorDecompressor
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1122,1
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1124,1
    - Dst: auto::SetCompressorJson
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1125,1
    - Dst: auto::SetFilters
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1126,1
    - Dst: auto::SetUpdatable
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1127,1
    - Dst: auto::SetDefinitionModified
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1128,1
    - Dst: auto::Flush
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1129,1
    - Dst: RegisterArray
      Src: /src/gdal/frmts/zarr/zarr_v2_group.cpp:1130,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 158
    argCount: 4
    argNames:
    - osName
    - aoDimensions
    - oDataType
    - papszOptions
    argTypes:
    - std::string
    - std::vector<std::shared_ptr<GDALDimension>>
    - GDALExtendedDataType
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 1133
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 1133
    functionName: ZarrV2Group::CreateMDArray
    functionSourceFile: /src/gdal/frmts/zarr/zarr_v2_group.cpp
    functionUses: 0
    functionsReached:
    - auto::SetDtype
    - atoi
    - IsValidObjectName
    - auto::SetFilename
    - auto::SetCompressorJson
    - strcmp
    - CPLString
    - CPLXMLTreeCloser::get
    - CPLError
    - STARTS_WITH
    - CPLGetCompressor
    - std::string::c_str
    - GetFullName
    - CSLFetchNameValue
    - ZarrV2Array::Create
    - CPLJSONArray::CPLJSONArray
    - FillDTypeElts
    - end
    - RegisterArray
    - ZarrArray::FillBlockSize
    - auto::SetNew
    - VSIMkdir
    - auto::SetFilters
    - GDALExtendedDataType::GetClass
    - std::vector::empty
    - CPLJSONArray::Add
    - c_str
    - CPLJSONObject::Deinit
    - CPLJSONObject::CPLJSONObject
    - begin
    - auto::IsValid
    - CheckValidAndErrorOutIfNot
    - auto::SetDimSeparator
    - CPLFormFilenameSafe
    - CPLJSONObject
    - GetMDArrayNames
    - CPLGetDecompressor
    - VSIStatL
    - CPLGetXMLNode
    - GDALExtendedDataType::GetNumericDataType
    - EQUAL
    - auto::SetDefinitionModified
    - std::find
    - auto::Flush
    - CPLJSONObject::IsValid
    - CPLJSONObject::Add
    - auto::SetCompressorDecompressor
    - auto::SetUpdatable
    linkageType: ''
    returnType: std::shared_ptr<GDALMDArray>
    signature: "std::shared_ptr<GDALMDArray> ZarrV2Group::CreateMDArray(\n    const
      std::string &osName,\n    const std::vector<std::shared_ptr<GDALDimension>>
      &aoDimensions,\n    const GDALExtendedDataType &oDataType, CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 36
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 36
    functionName: WMSMiniDriver_OGCAPICoverage::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_OGCAPICoverage::Initialize(CPLXMLNode *config,\n
      \                                        CPL_UNUSED char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:46,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:47,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:48,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:49,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:50,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - request
    - iri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    constantsTouched: []
    func_position:
      end: 61
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 61
    functionName: WMSMiniDriver_OGCAPICoverage::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp
    functionUses: 0
    functionsReached:
    - URLSearchAndReplace
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_OGCAPICoverage::TiledImageRequest(\n    WMSHTTPRequest
      &request, const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: WMSMiniDriver_WMS::WMSMiniDriver_WMS
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_WMS::WMSMiniDriver_WMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: WMSMiniDriver_WMS::~WMSMiniDriver_WMS()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_WMS::~WMSMiniDriver_WMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:33,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:35,1
    - Dst: max
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:37,1
    - Dst: max
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - iri
    - what
    argTypes:
    - GDALWMSImageRequestInfo
    - char
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: GetBBoxCoord
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: double
    signature: double GetBBoxCoord(const GDALWMSImageRequestInfo &iri, char what)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:54,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:57,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:64,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:76,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:84,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:97,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:102,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:121,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:139,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:141,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:143,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:145,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:151,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:153,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:154,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:155,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:156,1
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:159,1
    - Dst: toupper
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:162,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:191,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 198
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 198
    functionName: WMSMiniDriver_WMS::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - CPLError
    - ProjToSRS
    - VersionStringToInt
    - static_cast<unsigned char>
    - toupper
    - CPLGetXMLValue
    - CPLGetConfigOption
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_WMS::Initialize(CPLXMLNode *config,\n                                     CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - caps
    argTypes:
    - WMSMiniDriverCapabilities*
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: WMSMiniDriver_WMS::GetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_WMS::GetCapabilities(WMSMiniDriverCapabilities *caps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:212,1
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:216,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:219,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:222,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:222,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:222,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:223,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:224,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:224,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:225,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:225,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:227,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:228,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:228,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:229,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:230,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:230,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:231,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:232,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - url
    - iri
    - pszRequest
    argTypes:
    - CPLString
    - GDALWMSImageRequestInfo
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: WMSMiniDriver_WMS::BuildURL
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLOPrintf
    - empty
    - GetBBoxCoord
    - CPLString::ifind
    - URLPrepare
    linkageType: ''
    returnType: void
    signature: "void WMSMiniDriver_WMS::BuildURL(CPLString &url,\n                                 const
      GDALWMSImageRequestInfo &iri,\n                                 const char *pszRequest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSMiniDriver_WMS::BuildURL
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: WMSMiniDriver_WMS::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached:
    - WMSMiniDriver_WMS::BuildURL
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_WMS::TiledImageRequest(\n    WMSHTTPRequest &request,
      const GDALWMSImageRequestInfo &iri,\n    CPL_UNUSED const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSMiniDriver_WMS::BuildURL
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:249,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:250,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:251,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_wms.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - url
    - iri
    - tiri
    - nXInBlock
    - nYInBlock
    argTypes:
    - CPLString
    - GDALWMSImageRequestInfo
    - CPL_UNUSED
    - int
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: WMSMiniDriver_WMS::GetTiledImageInfo
    functionSourceFile: /src/gdal/frmts/wms/minidriver_wms.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - WMSMiniDriver_WMS::BuildURL
    - CPLOPrintf
    linkageType: ''
    returnType: void
    signature: "void WMSMiniDriver_WMS::GetTiledImageInfo(\n    CPLString &url, const
      GDALWMSImageRequestInfo &iri,\n    CPL_UNUSED const GDALWMSTiledImageRequestInfo
      &tiri, int nXInBlock,\n    int nYInBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: WMSMiniDriver_OGCAPIMaps::WMSMiniDriver_OGCAPIMaps
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapimaps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_OGCAPIMaps()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: WMSMiniDriver::~WMSMiniDriver()
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver::~WMSMiniDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: WMSMiniDriverFactory::~WMSMiniDriverFactory()
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverFactory::~WMSMiniDriverFactory()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: GDALWMSCacheImpl::~GDALWMSCacheImpl()
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSCacheImpl::~GDALWMSCacheImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:57,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:58,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:60,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:61,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:62,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:63,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:64,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:65,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:66,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:70,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:71,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:73,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:74,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:79,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:79,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:80,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:80,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:80,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:82,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:83,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:84,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:85,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:86,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:86,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:92,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:93,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:94,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:95,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:96,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:97,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:98,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:99,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:100,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:101,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:102,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:104,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:105,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:106,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:107,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:109,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:109,1
    - Dst: CPLString::pop_back
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:110,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:112,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:117,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:117,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:117,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:119,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:121,1
    - Dst: std::move
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:125,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:130,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:132,1
    - Dst: std::move
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:136,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:140,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:144,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:146,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:154,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:156,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:157,1
    - Dst: OGRSpatialReference::AutoIdentifyEPSG
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:158,1
    - Dst: OGRSpatialReference::GetAreaOfUse
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:162,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:166,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:171,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:172,1
    - Dst: OGRSpatialReference::GetWGS84SRS
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:176,1
    - Dst: auto::Transform
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:181,1
    - Dst: auto::Transform
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:182,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:184,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:197,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:199,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:204,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:211,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:213,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:221,1
    - Dst: swap
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:223,1
    - Dst: swap
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:224,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:234,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:247,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:304,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:319,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:343,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:343,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:344,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:344,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:344,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:346,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:346,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:350,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:351,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:353,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:355,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:355,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:357,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 129
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 358
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 358
    functionName: GDALWMSDatasetGetConfigFromURL
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - VersionStringToInt
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - CPLDebug
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - CPLError
    - OGRSpatialReference::GetAreaOfUse
    - CPLString::empty
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::unique_ptr<OGRCoordinateTransformation>
    - CPLString::c_str
    - CPLString::size
    - std::move
    - strlen
    - swap
    - CSLCount
    - OGRSpatialReference::SetFromUserInput
    - CPLString::back
    - STARTS_WITH_CI
    - CPLSPrintf
    - CPLParseXMLString
    - CPLURLAddKVP
    - CPLString::pop_back
    - OGRSpatialReference::AutoIdentifyEPSG
    - OGRCreateCoordinateTransformation
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - CSLDestroy
    - auto::Transform
    - CPLString::compare
    - OGRSpatialReference::GetWGS84SRS
    - CPLURLGetValue
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GDALWMSDatasetGetConfigFromURL(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:366,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:370,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:384,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:385,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:387,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:387,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:387,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:389,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:389,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:389,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:399,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:418,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:440,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:445,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:448,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:450,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:458,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:459,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:459,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:459,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:462,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:462,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:462,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:470,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:476,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:492,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:501,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:523,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:523,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:525,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:527,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 65
    argCount: 1
    argNames:
    - psXML
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 528
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 528
    functionName: GDALWMSDatasetGetConfigFromTileMap
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - CPLGetXMLNode
    - CPLAtofM
    - CPLDebug
    - CPLSPrintf
    - EQUAL
    - CPLString::c_str
    - strcmp
    - CPLParseXMLString
    - strlen
    - STARTS_WITH
    - CPLString::resize
    - CPLFree
    - CPLString::empty
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *GDALWMSDatasetGetConfigFromTileMap(CPLXMLNode *psXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:537,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:538,1
    - Dst: std::string
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:538,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:540,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:542,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:544,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:551,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:553,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:558,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:561,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:563,1
    - Dst: ToArray
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:571,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:572,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:574,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:578,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:580,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:582,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:590,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:596,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:601,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:604,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:606,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:609,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:611,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:614,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:616,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:628,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:629,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:631,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:637,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:637,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:638,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:651,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:657,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:659,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:660,1
    - Dst: OGRSpatialReference::FindBestMatch
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:662,1
    - Dst: auto::Release
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:666,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:669,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:670,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:674,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:676,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:680,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:683,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:702,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:703,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:703,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:705,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:705,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:707,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 2
    argNames:
    - pszURL
    - pszContent
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 708
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 708
    functionName: GDALWMSDatasetGetConfigFromArcGISJSON
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - cpl::infinity
    - atoi
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - CPLString::resize
    - CPLString::empty
    - CPLString::c_str
    - auto::Size
    - GetInteger
    - ToArray
    - CPLJSONDocument::LoadMemory
    - auto::GetString
    - CPLSPrintf
    - CPLParseXMLString
    - CPLAssert
    - strstr
    - auto::IsValid
    - OGRSpatialReference::FindBestMatch
    - GetDouble
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromWkt
    - std::string
    - EQUAL
    - auto::Release
    - fabs
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *GDALWMSDatasetGetConfigFromArcGISJSON(const char *pszURL,\n
      \                                                        const char *pszContent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSDriverIdentify
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:722,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:726,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:728,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:731,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:733,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:736,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:737,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:738,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:739,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:740,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:741,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:743,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:746,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:748,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:748,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:753,1
    - Dst: GDALWMSDatasetGetConfigFromArcGISJSON
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:756,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:758,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:762,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:763,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:765,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:766,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:767,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:769,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:770,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:771,1
    - Dst: GDALWMSDatasetGetConfigFromURL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:772,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:773,1
    - Dst: GDALWMSMetaDataset::DownloadGetTileService
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:774,1
    - Dst: GDALWMSMetaDataset::DownloadGetCapabilities
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:776,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:779,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:780,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:781,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:783,1
    - Dst: GDALWMSMetaDataset::AnalyzeGetCapabilities
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:786,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:787,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:791,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:793,1
    - Dst: GDALWMSMetaDataset::AnalyzeGetTileService
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:797,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:798,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:802,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:804,1
    - Dst: GDALWMSDatasetGetConfigFromTileMap
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:807,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:808,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:811,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:812,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:814,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:817,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:822,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:829,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:833,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:837,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:839,1
    - Dst: GDALWMSMetaDataset::AnalyzeTileMapService
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:842,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:843,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:847,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:852,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:856,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:856,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:861,1
    - Dst: sscanf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:870,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:870,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:879,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:894,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:895,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:897,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:900,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:904,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:905,1
    - Dst: std::string::back
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:905,1
    - Dst: std::string::pop_back
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:906,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:908,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:908,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:912,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:913,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:914,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:916,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:921,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:927,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:929,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:931,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:932,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:935,1
    - Dst: GetArray
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:941,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:942,1
    - Dst: ToInteger
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:948,1
    - Dst: max
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:958,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:964,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:981,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:982,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:994,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:995,1
    - Dst: GDALWMSDataset::GDALWMSDataset
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:999,1
    - Dst: GDALWMSDataset*::Initialize
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1000,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1006,1
    - Dst: GDALWMSDataset*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1019,1
    - Dst: GDALWMSDataset*::SetDescription
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1020,1
    - Dst: GDALWMSDataset*::TryLoadXML
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1021,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 141
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1026
      start: 714
    functionDepth: 8
    functionLinenumber: 714
    functionLinenumberEnd: 1026
    functionName: GDALWMSDataset::Open
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALWMSDataset*::Initialize
    - GDALWMSDatasetGetConfigFromURL
    - GDALWMSDatasetGetConfigFromTileMap
    - CPLJSONDocument::GetRoot
    - ToInteger
    - CPLString
    - CPLError
    - STARTS_WITH
    - CPLString::empty
    - std::string::empty
    - sscanf
    - GDALWMSDataset::GDALWMSDataset
    - GDALOpenInfo*::IsSingleAllowedDriver
    - GDALWMSMetaDataset::AnalyzeTileMapService
    - GDALWMSDataset*::TryLoadXML
    - CPLString::c_str
    - strlen
    - auto::Size
    - GetInteger
    - std::string::back
    - CPLJSONDocument::LoadMemory
    - STARTS_WITH_CI
    - c_str
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - CPLDestroyXMLNode
    - CPLSPrintf
    - CPLParseXMLString
    - WMSDriverIdentify
    - CPLJSONObject::GetArray
    - strstr
    - GDALWMSMetaDataset::AnalyzeGetTileService
    - CPLFree
    - GDALWMSMetaDataset::DownloadGetCapabilities
    - GDALWMSMetaDataset::DownloadGetTileService
    - GDALWMSDataset*::SetMetadataItem
    - GDALWMSMetaDataset::AnalyzeGetCapabilities
    - CPLParseXMLFile
    - GDALWMSDatasetGetConfigFromArcGISJSON
    - CPLGetXMLNode
    - GDALWMSDataset*::SetDescription
    - ReportUpdateNotSupportedByDriver
    - EQUAL
    - max
    - GetArray
    - CPLHTTPDestroyResult
    - CPLJSONDocument::CPLJSONDocument
    - GDALOpen
    - std::string::pop_back
    - CPLURLGetValue
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GDALWMSDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1038,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1038,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1039,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1041,1
    - Dst: insert
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1049,1
    - Dst: make_pair
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1049,1
    - Dst: static_cast<CPLString>
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1050,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1051,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1053,1
    - Dst: end
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1055,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1055,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - URI
    - papszHTTPOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1059
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1059
    functionName: GDALWMSDataset::GetServerConfig
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - end
    - static_cast<CPLString>
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - make_pair
    - insert
    - find
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: char
    signature: "char *GDALWMSDataset::GetServerConfig(const char *URI,\n                                            char
      **papszHTTPOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1066,1
    - Dst: GDALWMSDataset::DestroyCfgMutex
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: GDALWMSDataset::ClearConfigCache
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALWMSDataset::DestroyCfgMutex
    - clear
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataset::ClearConfigCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyMutex
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1075
    functionName: GDALWMSDataset::DestroyCfgMutex
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 1
    functionsReached:
    - CPLDestroyMutex
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataset::DestroyCfgMutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1088,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1089,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1089,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1091,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1099,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1104,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1108,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1108,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1109,1
    - Dst: GDALWMSDataset::Open
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - GDALProgressFunc pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - CPL_UNUSED
    - CPL_UNUSED**
    - CPL_UNUSED
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 1113
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1113
    functionName: GDALWMSDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - EQUAL
    - VSIFOpenL
    - GDALDataset*::GetDriver
    - VSIFWriteL
    - strlen
    - GDALWMSDataset::Open
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALWMSDataset::CreateCopy(const char *pszFilename,\n
      \                                       GDALDataset *poSrcDS,\n                                        CPL_UNUSED
      int bStrict,\n                                        CPL_UNUSED char **papszOptions,\n
      \                                       CPL_UNUSED GDALProgressFunc pfnProgress,\n
      \                                       CPL_UNUSED void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSDataset::DestroyCfgMutex
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GDALDriver *d
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: WMSDeregister
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALWMSDataset::DestroyCfgMutex
    linkageType: ''
    returnType: void
    signature: void WMSDeregister(CPL_UNUSED GDALDriver *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1152,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1156,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1157,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1158,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1159,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1160,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1161,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1162,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1163,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1164,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1165,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1166,1
    - Dst: RegisterMinidriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1167,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1169,1
    - Dst: WMSDriverSetCommonMetadata
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1170,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/wms/wmsdriver.cpp:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: GDALRegister_WMS
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - WMSDriverSetCommonMetadata
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - RegisterMinidriver
    linkageType: ''
    returnType: void
    signature: void GDALRegister_WMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:60,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poRoot
    - pszPath
    - pszDefault
    argTypes:
    - CPLXMLNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: getXMLNum
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 3
    functionsReached:
    - CPLAtof
    - CPLGetXMLValue
    linkageType: ''
    returnType: double
    signature: "double getXMLNum(const CPLXMLNode *poRoot, const char *pszPath,\n
      \                       const char *pszDefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:71,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:71,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:72,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:72,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:73,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:73,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:74,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: GetXMLColorEntry
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 1
    functionsReached:
    - static_cast<short>
    - getXMLNum
    linkageType: ''
    returnType: GDALColorEntry
    signature: GDALColorEntry GetXMLColorEntry(const CPLXMLNode *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - psRoot
    - pszElement
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: SearchXMLSiblings
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: CPLXMLNode
    signature: "CPLXMLNode *SearchXMLSiblings(const CPLXMLNode *psRoot,\n                                           const
      char *pszElement)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:143,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:145,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:145,1
    - Dst: SearchLeafGroupName
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:150,1
    - Dst: SearchLeafGroupName
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - psRoot
    - name
    argTypes:
    - CPLXMLNode*
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: SearchLeafGroupName
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLGetXMLValue
    - SearchLeafGroupName
    - SearchXMLSiblings
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *SearchLeafGroupName(CPLXMLNode *psRoot, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - nbands
    - band
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 188
    functionName: BandInterp
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp BandInterp(int nbands, int band)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: FindBbox
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FindBbox(CPLString in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:228,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:230,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:240,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:255,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:257,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:261,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:267,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:271,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - cdata
    - substs
    - keys
    - ret
    argTypes:
    - char*
    - char**
    - char**
    - CPLString
    constantsTouched: []
    func_position:
      end: 282
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 282
    functionName: FindChangePattern
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLString::clear
    - CPLString::find
    - EQUAL
    - CSLTokenizeString2
    - CPLStringList::size
    - URLSearchAndReplace
    linkageType: ''
    returnType: void
    signature: "void FindChangePattern(const char *cdata, const char *const *substs,\n
      \                             const char *const *keys, CPLString &ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: WMSMiniDriver_TiledWMS::WMSMiniDriver_TiledWMS
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TiledWMS::WMSMiniDriver_TiledWMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: WMSMiniDriver_TiledWMS::~WMSMiniDriver_TiledWMS()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TiledWMS::~WMSMiniDriver_TiledWMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: WMSMiniDriver_TiledWMS::Scale
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached:
    - CPLsscanf
    linkageType: ''
    returnType: double
    signature: double WMSMiniDriver_TiledWMS::Scale(const char *request) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::Assign
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:321,1
    - Dst: CSLRemoveStrings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:321,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - list
    - i
    argTypes:
    - CPLStringList
    - int
    constantsTouched: []
    func_position:
      end: 325
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 325
    functionName: WMSMiniDriver_TiledWMS::GetLowestScale
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached:
    - CSLRemoveStrings
    - CPLStringList::StealList
    - CPLStringList::Assign
    linkageType: ''
    returnType: CPLString
    signature: "CPLString WMSMiniDriver_TiledWMS::GetLowestScale(CPLStringList &list,\n
      \                                                int i) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:338,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:339,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:340,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:341,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:346,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:348,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:349,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:352,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:354,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:355,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:356,1
    - Dst: CSLFetchNameValueMultiple
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:362,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:370,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:370,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:371,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:375,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:378,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:379,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:380,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:383,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:383,1
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:384,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:387,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:388,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:391,1
    - Dst: WMSUtilDecode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:401,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:402,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:414,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:415,1
    - Dst: CPLXMLTreeCloser::reset
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:419,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:419,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:421,1
    - Dst: CPLSearchXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:425,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:425,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:426,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:435,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:436,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:438,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:438,1
    - Dst: SetFromUserInput
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:442,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:444,1
    - Dst: SearchLeafGroupName
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:446,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:447,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:450,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:454,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:455,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:458,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:460,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:465,1
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:466,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:471,1
    - Dst: WMSSetNoDataValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:477,1
    - Dst: SetTileOO
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:478,1
    - Dst: WMSSetMinValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:482,1
    - Dst: WMSSetMaxValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:485,1
    - Dst: WMSSetBandsCount
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:488,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:490,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:490,1
    - Dst: WMSSetDataType
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:491,1
    - Dst: SetTileOO
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:493,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:493,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:495,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:497,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:500,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:502,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:507,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:511,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:515,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:522,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:524,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:526,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:528,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:531,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:535,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:555,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:557,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:562,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:563,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:563,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:564,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:566,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:569,1
    - Dst: std::make_unique<GDALColorTable>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:577,1
    - Dst: auto::CreateColorRamp
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:578,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:580,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:584,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:584,1
    - Dst: GetXMLColorEntry
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:585,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:588,1
    - Dst: auto::SetColorEntry
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:591,1
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:592,1
    - Dst: GetXMLColorEntry
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:595,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:596,1
    - Dst: getXMLNum
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:597,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:597,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:599,1
    - Dst: auto::CreateColorRamp
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:602,1
    - Dst: SetColorTable
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:610,1
    - Dst: auto::release
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:610,1
    - Dst: SearchXMLSiblings
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:624,1
    - Dst: FindChangePattern
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:630,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:632,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:635,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:640,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:642,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:644,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:645,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:648,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:652,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:660,1
    - Dst: CPLsscanf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:662,1
    - Dst: CPLStringList::FetchNameValueDef
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:662,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:664,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:668,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:670,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:670,1
    - Dst: modf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:681,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:681,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:684,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:689,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:698,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:699,1
    - Dst: WMSSetBlockSize
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:708,1
    - Dst: WMSSetRasterSize
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:709,1
    - Dst: WMSSetDataWindow
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:712,1
    - Dst: WMSSetClamp
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:714,1
    - Dst: WMSMiniDriver_TiledWMS::GetLowestScale
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:719,1
    - Dst: fabs
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:723,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:724,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:731,1
    - Dst: CPLString::replace
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:732,1
    - Dst: CPLStringList::InsertString
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:733,1
    - Dst: mGetBand
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:740,1
    - Dst: GDALWMSRasterBand::GDALWMSRasterBand
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:745,1
    - Dst: GDALWMSRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:747,1
    - Dst: GDALWMSRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:749,1
    - Dst: BandInterp
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:749,1
    - Dst: mSetBand
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:750,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:756,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:759,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:762,1
    - Dst: GetMetadataItem
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:763,1
    - Dst: CSLFetchBoolean
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:772,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:774,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:774,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:782,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:783,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:783,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:785,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:787,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:792,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:792,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:793,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:795,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:796,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:796,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:798,1
    - Dst: CPLStringList::empty
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:802,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:807,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:807,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:813,1
    - Dst: CPLString::find_first_of
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:821,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:824,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:825,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:828,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:828,1
    - Dst: CPLCreateXMLElementAndValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:830,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:831,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:831,1
    - Dst: CPLAddXMLAttributeAndValue
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:833,1
    - Dst: CPLSerializeXMLTree
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:841,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:841,1
    - Dst: SetXML
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:842,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:846,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:852,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:852,1
    - Dst: std::move
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:855,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 223
    argCount: 2
    argNames:
    - config
    - OpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 857
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 857
    functionName: WMSMiniDriver_TiledWMS::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached:
    - SearchLeafGroupName
    - CPLOPrintf
    - CPLGetXMLValue
    - CPLStringList::CPLStringList
    - GDALGetDataTypeName
    - CPLString::replace
    - auto::SetColorEntry
    - CPLStringList::InsertString
    - CSLCount
    - SetFromUserInput
    - SetColorTable
    - CPLParseXMLString
    - CPLStringList::empty
    - CSLFetchBoolean
    - CPLAddXMLAttributeAndValue
    - CPLGetXMLNode
    - WMSUtilDecode
    - WMSSetDataWindow
    - fabs
    - std::set::end
    - SetXML
    - std::set::insert
    - CSLFetchNameValue
    - CPLCreateXMLElementAndValue
    - GetMetadataItem
    - CPLSerializeXMLTree
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - CPLXMLTreeCloser::reset
    - std::move
    - SetMetadataItem
    - static_cast<int>
    - auto::CreateColorRamp
    - mGetBand
    - CPLString::find
    - CPLFree
    - mSetBand
    - ProjToSRS
    - CSLFetchNameValueDef
    - GDALGetDataTypeByName
    - CPLStringList::FetchNameValueDef
    - atoi
    - CPLsscanf
    - CPLString::empty
    - WMSSetClamp
    - WMSSetBandsCount
    - CPLString::c_str
    - GDALWMSRasterBand::GDALWMSRasterBand
    - WMSSetRasterSize
    - IsEmpty
    - c_str
    - CPLStringList::AddString
    - GDALWMSRasterBand*::SetColorInterpretation
    - WMSSetNoDataValue
    - std::set::find
    - CPLStringList::SetNameValue
    - WMSSetBlockSize
    - SearchXMLSiblings
    - empty
    - CPLSearchXMLNode
    - WMSSetMaxValue
    - WMSMiniDriver_TiledWMS::GetLowestScale
    - CPLString::find_first_of
    - getXMLNum
    - CPLXMLTreeCloser::get
    - CPLError
    - BandInterp
    - modf
    - WMSSetDataType
    - CPLString::substr
    - GetXMLColorEntry
    - CPLString::size
    - WMSSetMinValue
    - CSLTokenizeString2
    - std::make_unique<GDALColorTable>
    - GDALCheckBandCount
    - auto::release
    - FindChangePattern
    - CSLFetchNameValueMultiple
    - SetTileOO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TiledWMS::Initialize(CPLXMLNode *config,\n                                          CPL_UNUSED
      char **OpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:865,1
    - Dst: CSLGetField
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:866,1
    - Dst: List
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:866,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 870
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 870
    functionName: WMSMiniDriver_TiledWMS::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tiled_wms.cpp
    functionUses: 0
    functionsReached:
    - URLPrepare
    - URLSearchAndReplace
    - CSLGetField
    - List
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TiledWMS::TiledImageRequest(\n    WMSHTTPRequest
      &request, const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: WMSMiniDriver_WorldWind::WMSMiniDriver_WorldWind
    functionSourceFile: /src/gdal/frmts/wms/minidriver_worldwind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_WorldWind::WMSMiniDriver_WorldWind()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: WMSMiniDriver_WorldWind::~WMSMiniDriver_WorldWind()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_worldwind.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_WorldWind::~WMSMiniDriver_WorldWind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:31,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:32,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:34,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:36,1
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:43,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:44,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: WMSMiniDriver_WorldWind::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_worldwind.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLOPrintf
    - empty
    - CPLGetXMLValue
    - URLPrepare
    - importFromEPSG
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_WorldWind::Initialize(CPLXMLNode *config,\n                                           CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSGetDataWindow
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:56,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_worldwind.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: WMSMiniDriver_WorldWind::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_worldwind.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    - WMSGetDataWindow
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_WorldWind::TiledImageRequest(\n    WMSHTTPRequest
      &request, const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: WMSMiniDriver_TMS::WMSMiniDriver_TMS
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TMS::WMSMiniDriver_TMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: WMSMiniDriver_TMS::~WMSMiniDriver_TMS()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TMS::~WMSMiniDriver_TMS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:35,1
    - Dst: back
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:37,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:46,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:54,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:56,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:58,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:60,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: WMSMiniDriver_TMS::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tms.cpp
    functionUses: 0
    functionsReached:
    - back
    - atoi
    - CPLGetXMLValue
    - find
    - CPLError
    - URLSearchAndReplace
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TMS::Initialize(CPLXMLNode *config,\n                                     CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSGetDataWindow
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:71,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:83,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:92,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:93,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:94,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:100,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_tms.cpp:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 106
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 106
    functionName: WMSMiniDriver_TMS::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tms.cpp
    functionUses: 0
    functionsReached:
    - URLSearchAndReplace
    - static_cast<int>
    - WMSGetDataWindow
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TMS::TiledImageRequest(WMSHTTPRequest &request,\n
      \                                    const GDALWMSImageRequestInfo &iri,\n                                     const
      GDALWMSTiledImageRequestInfo &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_ogcapimaps.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 35
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 35
    functionName: WMSMiniDriver_OGCAPIMaps::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapimaps.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_OGCAPIMaps::Initialize(CPLXMLNode *config,\n
      \                                           CPL_UNUSED char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_ogcapimaps.cpp:45,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_ogcapimaps.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - request
    - iri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: WMSMiniDriver_OGCAPIMaps::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapimaps.cpp
    functionUses: 0
    functionsReached:
    - URLPrepare
    - CPLOPrintf
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_OGCAPIMaps::TiledImageRequest(\n    WMSHTTPRequest
      &request, const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: WMSMiniDriver_MRF_ns::ILSize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - GInt32
    - GInt32
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: WMSMiniDriver_MRF_ns::ILSize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ILSize(GInt32 _x, GInt32 _y, GInt32 _z = 1, GInt32 _c = 1, GInt32
      _l = -1)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: WMSMiniDriver_VirtualEarth::WMSMiniDriver_VirtualEarth
    functionSourceFile: /src/gdal/frmts/wms/minidriver_virtualearth.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_VirtualEarth::WMSMiniDriver_VirtualEarth()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: WMSMiniDriver_VirtualEarth::~WMSMiniDriver_VirtualEarth()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_virtualearth.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_VirtualEarth::~WMSMiniDriver_VirtualEarth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:35,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:36,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:38,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:43,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:45,1
    - Dst: WMSSetDefaultBlockSize
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:51,1
    - Dst: WMSSetDefaultDataWindowCoordinates
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:52,1
    - Dst: WMSSetDefaultTileLevel
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:54,1
    - Dst: WMSSetDefaultOverviewCount
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:55,1
    - Dst: WMSSetNeedsDataWindow
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:56,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: WMSMiniDriver_VirtualEarth::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_virtualearth.cpp
    functionUses: 0
    functionsReached:
    - WMSSetNeedsDataWindow
    - WMSSetDefaultBlockSize
    - CPLError
    - empty
    - find
    - WMSSetDefaultDataWindowCoordinates
    - WMSSetDefaultOverviewCount
    - WMSSetDefaultTileLevel
    - CPLGetXMLValue
    - importFromEPSG
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_VirtualEarth::Initialize(CPLXMLNode *config,\n
      \                                      CPL_UNUSED char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:85,1
    - Dst: URLSearchAndReplace
      Src: /src/gdal/frmts/wms/minidriver_virtualearth.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - CPL_UNUSED
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: WMSMiniDriver_VirtualEarth::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_virtualearth.cpp
    functionUses: 0
    functionsReached:
    - URLSearchAndReplace
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_VirtualEarth::TiledImageRequest(\n    WMSHTTPRequest
      &request, CPL_UNUSED const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: WMSMiniDriver_OGCAPICoverage::WMSMiniDriver_OGCAPICoverage
    functionSourceFile: /src/gdal/frmts/wms/minidriver_ogcapicoverage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_OGCAPICoverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: WMSMiniDriver_TileService::WMSMiniDriver_TileService
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tileservice.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TileService::WMSMiniDriver_TileService()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: WMSMiniDriver_TileService::~WMSMiniDriver_TileService()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tileservice.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_TileService::~WMSMiniDriver_TileService()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:31,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:32,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:34,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:36,1
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:42,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: WMSMiniDriver_TileService::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tileservice.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - CPLOPrintf
    - empty
    - CPLGetXMLValue
    - URLPrepare
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TileService::Initialize(CPLXMLNode *config,\n
      \                                            CPL_UNUSED char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_tileservice.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - CPL_UNUSED
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: WMSMiniDriver_TileService::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_tileservice.cpp
    functionUses: 0
    functionsReached:
    - CPLOPrintf
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_TileService::TiledImageRequest(\n    WMSHTTPRequest
      &request, CPL_UNUSED const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: GDALWMSDataWindow::GDALWMSDataWindow
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataWindow()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: GDALWMSRasterIOHint::GDALWMSRasterIOHint
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSRasterIOHint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: WMSMiniDriverCapabilities::WMSMiniDriverCapabilities
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverCapabilities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/wms/wmsdriver.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: WMSMiniDriver::WMSMiniDriver
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: WMSMiniDriver::EndInit
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr EndInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - WMSMiniDriverCapabilities *caps
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: WMSMiniDriver::GetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetCapabilities(CPL_UNUSED WMSMiniDriverCapabilities *caps)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - url
    - iri
    - tiri
    - nXInBlock
    - nYInBlock
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: WMSMiniDriver::GetTiledImageInfo
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GetTiledImageInfo(CPL_UNUSED CPLString &url,\n                      CPL_UNUSED
      const GDALWMSImageRequestInfo &iri,\n                      CPL_UNUSED const
      GDALWMSTiledImageRequestInfo &tiri,\n                      CPL_UNUSED int nXInBlock,
      CPL_UNUSED int nYInBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: '&GetSpatialRef() const'
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference &GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: WMSMiniDriver::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: WMSMiniDriverFactory::WMSMiniDriverFactory
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverFactory()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - soPath
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: GDALWMSCacheImpl::GDALWMSCacheImpl
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSCacheImpl(const CPLString &soPath, CPLXMLNode * /*pConfig*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: GDALWMSCache::CachePath
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLString
    signature: CPLString CachePath() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pct
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: GDALWMSDataset::SetColorTable
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetColorTable(GDALColorTable *pct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetBand
      Src: /src/gdal/frmts/wms/wmsdriver.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - band
    argTypes:
    - int
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: GDALWMSDataset::mSetBand
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - SetBand
    linkageType: ''
    returnType: void
    signature: void mSetBand(int i, GDALRasterBand *band)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/wmsdriver.h:333,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/wmsdriver.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: GDALWMSDataset::mGetBand
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - reinterpret_cast<GDALWMSRasterBand *>
    linkageType: ''
    returnType: GDALWMSRasterBand
    signature: GDALWMSRasterBand *mGetBand(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: GDALWMSDataset::WMSGetDataWindow
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALWMSDataWindow
    signature: GDALWMSDataWindow *WMSGetDataWindow() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: GDALWMSDataset::WMSSetBlockSize
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetBlockSize(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: GDALWMSDataset::WMSSetRasterSize
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetRasterSize(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: GDALWMSDataset::WMSSetBandsCount
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetBandsCount(int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: GDALWMSDataset::WMSSetClamp
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetClamp(bool flag = true)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - GDALDataType
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: GDALWMSDataset::WMSSetDataType
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDataType(GDALDataType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - window
    argTypes:
    - GDALWMSDataWindow
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: GDALWMSDataset::WMSSetDataWindow
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDataWindow(const GDALWMSDataWindow &window)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: GDALWMSDataset::WMSSetDefaultBlockSize
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDefaultBlockSize(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - x0
    - y0
    - x1
    - y1
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: GDALWMSDataset::WMSSetDefaultDataWindowCoordinates
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WMSSetDefaultDataWindowCoordinates(double x0, double y0, double
      x1,\n                                            double y1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tilecountx
    - tilecounty
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: GDALWMSDataset::WMSSetDefaultTileCount
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDefaultTileCount(int tilecountx, int tilecounty)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tlevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: GDALWMSDataset::WMSSetDefaultTileLevel
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDefaultTileLevel(int tlevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - overview_count
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: GDALWMSDataset::WMSSetDefaultOverviewCount
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetDefaultOverviewCount(int overview_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: GDALWMSDataset::WMSSetNeedsDataWindow
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSSetNeedsDataWindow(bool flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::clear
      Src: /src/gdal/frmts/wms/wmsdriver.h:415,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/wms/wmsdriver.h:416,1
    - Dst: std::vector<double>::push_back
      Src: /src/gdal/frmts/wms/wmsdriver.h:417,1
    - Dst: CPLStrtod
      Src: /src/gdal/frmts/wms/wmsdriver.h:417,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsdriver.h:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - pszList
    argTypes:
    - std::vector<double>
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: GDALWMSDataset::list2vec
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - CPLStrtod
    - CSLDestroy
    - std::vector<double>::push_back
    - CSLCount
    - std::vector<double>::clear
    linkageType: ''
    returnType: void
    signature: void list2vec(std::vector<double> &v, const char *pszList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSDataset::list2vec
      Src: /src/gdal/frmts/wms/wmsdriver.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszNoData
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: GDALWMSDataset::WMSSetNoDataValue
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - GDALWMSDataset::list2vec
    linkageType: ''
    returnType: void
    signature: void WMSSetNoDataValue(const char *pszNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSDataset::list2vec
      Src: /src/gdal/frmts/wms/wmsdriver.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszMin
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: GDALWMSDataset::WMSSetMinValue
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - GDALWMSDataset::list2vec
    linkageType: ''
    returnType: void
    signature: void WMSSetMinValue(const char *pszMin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSDataset::list2vec
      Src: /src/gdal/frmts/wms/wmsdriver.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszMax
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: GDALWMSDataset::WMSSetMaxValue
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - GDALWMSDataset::list2vec
    linkageType: ''
    returnType: void
    signature: void WMSSetMaxValue(const char *pszMax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/wms/wmsdriver.h:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - psz
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: GDALWMSDataset::SetXML
    functionSourceFile: /src/gdal/frmts/wms/wmsdriver.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void SetXML(const char *psz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: WMSMiniDriver_AGS::WMSMiniDriver_AGS
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_AGS::WMSMiniDriver_AGS()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: WMSMiniDriver_AGS::~WMSMiniDriver_AGS()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_AGS::~WMSMiniDriver_AGS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:32,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:34,1
    - Dst: max
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:36,1
    - Dst: max
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - iri
    - what
    argTypes:
    - GDALWMSImageRequestInfo
    - char
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: GetBBoxCoord
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 1
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: double
    signature: double GetBBoxCoord(const GDALWMSImageRequestInfo &iri, char what)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: WMSMiniDriver_AGS::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    linkageType: ''
    returnType: char
    signature: char **WMSMiniDriver_AGS::GetMetadataDomainList(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:52,1
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:53,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:53,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:55,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:60,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:61,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:62,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:64,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:69,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:70,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:72,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:72,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:73,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:79,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:82,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:88,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 96
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 96
    functionName: WMSMiniDriver_AGS::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached:
    - size
    - STARTS_WITH_CI
    - empty
    - CPLError
    - ProjToSRS
    - find
    - CPLString
    - CPLGetXMLValue
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_AGS::Initialize(CPLXMLNode *config,\n                                     CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - caps
    argTypes:
    - WMSMiniDriverCapabilities*
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: WMSMiniDriver_AGS::GetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_AGS::GetCapabilities(WMSMiniDriverCapabilities *caps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:111,1
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:112,1
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:117,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:120,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:121,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:122,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:123,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:124,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:125,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:126,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:126,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:127,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:127,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:128,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:128,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:129,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:130,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:132,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:141,1
    - Dst: CPLEscapeString
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:143,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:144,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSImageRequestInfo
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 153
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 153
    functionName: WMSMiniDriver_AGS::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached:
    - CPLEscapeString
    - c_str
    - CPLOPrintf
    - empty
    - GetBBoxCoord
    - CPLString::ifind
    - URLPrepare
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_AGS::TiledImageRequest(\n    WMSHTTPRequest &request,
      const GDALWMSImageRequestInfo &iri,\n    CPL_UNUSED const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ifind
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:162,1
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:167,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:180,1
    - Dst: std::to_string
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:180,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:184,1
    - Dst: CPLString::replace
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:187,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:187,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:190,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:191,1
    - Dst: find
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:192,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:199,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:200,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:201,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:202,1
    - Dst: GetBBoxCoord
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:203,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - url
    - iri
    - tiri
    - nXInBlock
    - nYInBlock
    argTypes:
    - CPLString
    - GDALWMSImageRequestInfo
    - CPL_UNUSED
    - int
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 205
    functionName: WMSMiniDriver_AGS::GetTiledImageInfo
    functionSourceFile: /src/gdal/frmts/wms/minidriver_arcgis_server.cpp
    functionUses: 0
    functionsReached:
    - CPLString::replace
    - CPLOPrintf
    - GetBBoxCoord
    - find
    - std::to_string
    - ifind
    - CPLString::find
    - URLPrepare
    linkageType: ''
    returnType: void
    signature: "void WMSMiniDriver_AGS::GetTiledImageInfo(\n    CPLString &url, const
      GDALWMSImageRequestInfo &iri,\n    CPL_UNUSED const GDALWMSTiledImageRequestInfo
      &tiri, int nXInBlock,\n    int nYInBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: GDALWMSDataset::GDALWMSDataset
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 1
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataset::GDALWMSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:64,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: GDALWMSDataset::~GDALWMSDataset()
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataset::~GDALWMSDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:79,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:93,1
    - Dst: insert
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:104,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:110,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:115,1
    - Dst: insert
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:123,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:125,1
    - Dst: StrToBool
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:135,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:138,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:152,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:156,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:169,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:174,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:174,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:180,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:191,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:215,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:243,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:260,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:263,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:271,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:272,1
    - Dst: GDALWMSCache::GDALWMSCache
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:274,1
    - Dst: GDALWMSDataset::Initialize
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:275,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:276,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:281,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:290,1
    - Dst: CachePath
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:290,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:300,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:314,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:315,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:317,1
    - Dst: NewWMSMiniDriver
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:322,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:325,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:327,1
    - Dst: GDALWMSDataset::Initialize
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:333,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:335,1
    - Dst: GetCapabilities
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:343,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:364,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:364,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:366,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:367,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:367,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:369,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:372,1
    - Dst: StrToBool
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:381,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:384,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:393,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:396,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:406,1
    - Dst: Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:407,1
    - Dst: Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:408,1
    - Dst: Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:409,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:410,1
    - Dst: Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:411,1
    - Dst: Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:413,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:416,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:444,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:445,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:446,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:451,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:458,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:462,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:471,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:472,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:481,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:489,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:501,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:509,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:520,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:530,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:531,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:535,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:546,1
    - Dst: max
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:562,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:563,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:563,1
    - Dst: ceil
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:563,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:583,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:587,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:597,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:597,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:600,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:609,1
    - Dst: GDALWMSDataset::SetTileOO
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:610,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:611,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:614,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:629,1
    - Dst: GDALCheckBandCount
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:630,1
    - Dst: GDALWMSRasterBand::GDALWMSRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:645,1
    - Dst: SetBand
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:647,1
    - Dst: GDALWMSRasterBand*::AddOverview
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:651,1
    - Dst: ProjToSRS
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:666,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:667,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:669,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:681,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:685,1
    - Dst: GDALWMSDataset::SetTileOO
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:687,1
    - Dst: GDALWMSDataset::WMSSetNoDataValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:688,1
    - Dst: GDALWMSDataset::WMSSetMinValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:692,1
    - Dst: GDALWMSDataset::WMSSetMaxValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:695,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:701,1
    - Dst: GDALWMSDataset::GetSpatialRef
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:703,1
    - Dst: auto::IsEmpty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:704,1
    - Dst: EndInit
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:713,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 311
    argCount: 2
    argNames:
    - config
    - l_papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - char**
    constantsTouched: []
    func_position:
      end: 716
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 716
    functionName: GDALWMSDataset::Initialize
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSDataset::GetSpatialRef
    - atoi
    - GDALWMSDataset::Initialize
    - EndInit
    - CPLString
    - CPLError
    - CPLGetXMLValue
    - ceil
    - CPLGetConfigOption
    - STARTS_WITH
    - CPLString::empty
    - GDALWMSCache::GDALWMSCache
    - insert
    - GDALWMSDataset::WMSSetNoDataValue
    - GetCapabilities
    - CPLString::c_str
    - GDALWMSRasterBand::GDALWMSRasterBand
    - strlen
    - CachePath
    - CSLCount
    - SetMetadataItem
    - CPLAtof
    - IsEmpty
    - CPLTestBool
    - static_cast<int>
    - StrToBool
    - CPLString::Printf
    - GDALWMSRasterBand*::AddOverview
    - min
    - GDALWMSDataset::WMSSetMinValue
    - CPLFree
    - GDALCheckBandCount
    - auto::IsEmpty
    - SetBand
    - GDALWMSDataset::WMSSetMaxValue
    - ProjToSRS
    - NewWMSMiniDriver
    - CPLGetXMLNode
    - CSLDestroy
    - GDALCheckDatasetDimensions
    - Printf
    - GDALWMSDataset::SetTileOO
    - max
    - GDALGetDataTypeByName
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSDataset::Initialize(CPLXMLNode *config, char **l_papszOpenOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 15
    argNames:
    - rw
    - x0
    - y0
    - sx
    - sy
    - buffer
    - bsx
    - bsy
    - bdt
    - band_count
    - band_map
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 752
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 752
    functionName: GDALWMSDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSDataset::IRasterIO(GDALRWFlag rw, int x0, int y0, int
      sx, int sy,\n                                 void *buffer, int bsx, int bsy,\n
      \                                GDALDataType bdt, int band_count,\n                                 BANDMAP_TYPE
      band_map, GSpacing nPixelSpace,\n                                 GSpacing nLineSpace,
      GSpacing nBandSpace,\n                                 GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: GDALWMSDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 1
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GDALWMSDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: GDALWMSDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSDataset::SetSpatialRef(const OGRSpatialReference *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:787,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - gt
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 794
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 794
    functionName: GDALWMSDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSDataset::GetGeoTransform(double *gt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: GDALWMSDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSDataset::SetGeoTransform(CPL_UNUSED double *gt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:818,1
    - Dst: GDALRasterBand*::AdviseRead
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 10
    argNames:
    - x0
    - y0
    - sx
    - sy
    - bsx
    - bsy
    - bdt
    - band_count
    - band_map
    - options
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - GDALDataType
    - CPL_UNUSED
    - CPL_UNUSED*
    - char**
    constantsTouched: []
    func_position:
      end: 822
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 822
    functionName: GDALWMSDataset::AdviseRead
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - GDALRasterBand*::AdviseRead
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSDataset::AdviseRead(int x0, int y0, int sx, int sy,
      int bsx,\n                                  int bsy, GDALDataType bdt,\n                                  CPL_UNUSED
      int band_count,\n                                  CPL_UNUSED int *band_map,
      char **options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:830,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: GDALWMSDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **GDALWMSDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:840,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:841,1
    - Dst: size
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:843,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:843,1
    - Dst: GDALPamDataset::GetMetadataItem
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 847
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 847
    functionName: GDALWMSDataset::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - size
    - c_str
    - GDALPamDataset::GetMetadataItem
    linkageType: ''
    returnType: char
    signature: "char *GDALWMSDataset::GetMetadataItem(const char *pszName,\n                                            const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:857,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:857,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:859,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:860,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:862,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:865,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:866,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:869,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:871,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:872,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:875,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:875,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:877,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:878,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 882
    functionName: GDALWMSDataset::GetHTTPRequestOpts
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - empty
    - CPLOPrintf
    - CSLAddString
    - CSLAddNameValue
    linkageType: ''
    returnType: char
    signature: char *const *GDALWMSDataset::GetHTTPRequestOpts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:886,1
    - Dst: CSLRemoveStrings
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:890,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:891,1
    - Dst: CSLAddNameValue
      Src: /src/gdal/frmts/wms/gdalwmsdataset.cpp:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pszName
    - pszValue
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 893
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 893
    functionName: GDALWMSDataset::SetTileOO
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsdataset.cpp
    functionUses: 1
    functionsReached:
    - CSLRemoveStrings
    - strlen
    - CSLAddNameValue
    linkageType: ''
    returnType: void
    signature: void GDALWMSDataset::SetTileOO(const char *pszName, const char *pszValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:27,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:32,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:37,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:38,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:43,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:44,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:45,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:50,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:51,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:52,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:57,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:62,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:67,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:68,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:73,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:78,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:79,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:80,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:81,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:82,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:87,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:92,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:97,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 41
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 103
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 103
    functionName: WMSDriverIdentify
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    - strstr
    - CPLString
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int WMSDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: WMSDriverSubdatasetInfo
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSDriverSubdatasetInfo(const std::string &fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:124,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:124,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:129,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:129,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:131,1
    - Dst: erase
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:137,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:137,1
    - Dst: length
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:138,1
    - Dst: erase
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:139,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:140,1
    - Dst: erase
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: WMSDriverSubdatasetInfo::parseFileName
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - erase
    - c_str
    - STARTS_WITH_CI
    - find
    - length
    - CPLString::empty
    - CPLURLGetValue
    linkageType: ''
    returnType: void
    signature: void WMSDriverSubdatasetInfo::parseFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:153,1
    - Dst: std::make_unique<WMSDriverSubdatasetInfo>
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:156,1
    - Dst: std::unique_ptr::GetSubdatasetComponent
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:157,1
    - Dst: std::unique_ptr::GetPathComponent
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:158,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: WMSDriverGetSubdatasetInfo
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetSubdatasetComponent
    - std::unique_ptr::GetPathComponent
    - std::make_unique<WMSDriverSubdatasetInfo>
    - std::unique_ptr::release
    - STARTS_WITH
    linkageType: ''
    returnType: GDALSubdatasetInfo
    signature: GDALSubdatasetInfo *WMSDriverGetSubdatasetInfo(const char *pszFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:172,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:173,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:174,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:175,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:176,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:177,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:181,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: WMSDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void WMSDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:192,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:196,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:198,1
    - Dst: WMSDriverSetCommonMetadata
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:201,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/wms/wmsdrivercore.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: DeclareDeferredWMSPlugin
    functionSourceFile: /src/gdal/frmts/wms/wmsdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - WMSDriverSetCommonMetadata
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredWMSPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALWMSCache *>
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:21,1
    - Dst: GDALWMSCache*::Clean
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: CleanCacheThread
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GDALWMSCache *>
    - GDALWMSCache*::Clean
    linkageType: ''
    returnType: void
    signature: void CleanCacheThread(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:39,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:50,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:51,1
    - Dst: atol
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:57,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:63,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - soPath
    - pConfig
    argTypes:
    - CPLString
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 67
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 67
    functionName: GDALWMSFileCache::GDALWMSFileCache
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - atol
    - atoi
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void GDALWMSFileCache(const CPLString &soPath, CPLXMLNode *pConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSFileCache::GetFilePath
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:75,1
    - Dst: GDALWMSFileCache::MakeDirs
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:76,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:76,1
    - Dst: CPLCopyFile
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:77,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:80,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pszKey
    - osFileName
    argTypes:
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: GDALWMSFileCache::Insert
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CPLCopyFile
    - GDALWMSFileCache::GetFilePath
    - CPLGetDirnameSafe
    - GDALWMSFileCache::MakeDirs
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr Insert(const char *pszKey,\n                          const
      CPLString &osFileName) override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:89,1
    - Dst: GDALWMSFileCache::GetFilePath
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: GDALWMSFileCache::GetItemStatus
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - GDALWMSFileCache::GetFilePath
    - VSIStatL
    linkageType: ''
    returnType: enum GDALWMSCacheItemStatus
    signature: enum GDALWMSCacheItemStatus GetItemStatus(const char *pszKey) const
      override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:100,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:100,1
    - Dst: GDALWMSFileCache::GetFilePath
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszKey
    - papszOpenOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: GDALWMSFileCache::GetDataset
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenEx
    - FromHandle
    - GDALWMSFileCache::GetFilePath
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GetDataset(const char *pszKey,\n                                    char
      **papszOpenOptions) const override"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:117,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:121,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:123,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:123,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:125,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:130,1
    - Dst: static_cast<long>
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:133,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:141,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:142,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:142,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:143,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:145,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:147,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:147,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 152
    functionName: GDALWMSFileCache::Clean
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - static_cast<long>
    - VSIStatL
    - static_cast<unsigned int>
    - std::vector::size
    - VSIUnlink
    - CSLDestroy
    - VSI_ISDIR
    - CPLDebug
    - time
    - std::vector::push_back
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: void
    signature: void Clean() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:160,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:160,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:162,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:167,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:168,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:170,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pszKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 173
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 173
    functionName: GDALWMSFileCache::GetFilePath
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 3
    functionsReached:
    - CPLString::back
    - CPLString::empty
    - CPLString::append
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetFilePath(const char *pszKey) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSFileCache::IsPathExists
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:177,1
    - Dst: GDALWMSFileCache::MakeDirs
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:182,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:182,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: GDALWMSFileCache::MakeDirs
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 2
    functionsReached:
    - GDALWMSFileCache::MakeDirs
    - CPLGetDirnameSafe
    - VSIMkdir
    - GDALWMSFileCache::IsPathExists
    linkageType: ''
    returnType: void
    signature: void MakeDirs(const char *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIStatL
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: GDALWMSFileCache::IsPathExists
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached:
    - VSIStatL
    linkageType: ''
    returnType: bool
    signature: bool IsPathExists(const char *pszPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: GDALWMSFileCache::GetCleanThreadRunTimeout
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GDALWMSFileCache::GetCleanThreadRunTimeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: GDALWMSCache::GDALWMSCache
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSCache::GDALWMSCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJoinThread
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: GDALWMSCache::~GDALWMSCache()
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - CPLJoinThread
    linkageType: ''
    returnType: void
    signature: void GDALWMSCache::~GDALWMSCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:238,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:251,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:252,1
    - Dst: NullifyIfEmpty
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:261,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:261,1
    - Dst: NullifyIfEmpty
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:264,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:264,1
    - Dst: NullifyIfEmpty
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:273,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:273,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:277,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:278,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:283,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:285,1
    - Dst: CPLMD5String
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:286,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:293,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:293,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:295,1
    - Dst: CPLMD5String
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:296,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:298,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:298,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:302,1
    - Dst: GDALWMSFileCache::GDALWMSFileCache
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:304,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - pszUrl
    - pConfig
    argTypes:
    - char*
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 308
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 308
    functionName: GDALWMSCache::Initialize
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - c_str
    - NullifyIfEmpty
    - GDALWMSFileCache::GDALWMSFileCache
    - CPLMD5String
    - CPLSPrintf
    - CPLDebug
    - EQUAL
    - CPLGetXMLValue
    - CPLGetConfigOption
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSCache::Initialize(const char *pszUrl, CPLXMLNode *pConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSCache::Insert
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:315,1
    - Dst: time
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:321,1
    - Dst: CPLJoinThread
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:325,1
    - Dst: CPLCreateJoinableThread
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:327,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - pszKey
    - soFileName
    argTypes:
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 334
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 334
    functionName: GDALWMSCache::Insert
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached:
    - time
    - GDALWMSCache::Insert
    - CPLJoinThread
    - CPLCreateJoinableThread
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSCache::Insert(const char *pszKey, const CPLString &soFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSCache::GetItemStatus
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pszKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: GDALWMSCache::GetItemStatus
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSCache::GetItemStatus
    linkageType: ''
    returnType: enum GDALWMSCacheItemStatus
    signature: enum GDALWMSCacheItemStatus GDALWMSCache::GetItemStatus(const char
      *pszKey) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSCache::GetDataset
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszKey
    - papszOpenOptions
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: GDALWMSCache::GetDataset
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSCache::GetDataset
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALWMSCache::GetDataset(const char *pszKey,\n                                      char
      **papszOpenOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:360,1
    - Dst: GDALWMSCache::Clean
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:361,1
    - Dst: time
      Src: /src/gdal/frmts/wms/gdalwmscache.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 366
    functionName: GDALWMSCache::Clean
    functionSourceFile: /src/gdal/frmts/wms/gdalwmscache.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSCache::Clean
    - time
    - CPLDebug
    linkageType: ''
    returnType: void
    signature: void GDALWMSCache::Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: WMSMiniDriver_IIP::WMSMiniDriver_IIP
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIP::WMSMiniDriver_IIP()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: WMSMiniDriver_IIP::~WMSMiniDriver_IIP()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIP::~WMSMiniDriver_IIP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_iip.cpp:29,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_iip.cpp:30,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_iip.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: WMSMiniDriver_IIP::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iip.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    - CPLError
    - empty
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_IIP::Initialize(CPLXMLNode *config,\n                                     CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - caps
    argTypes:
    - WMSMiniDriverCapabilities*
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: WMSMiniDriver_IIP::GetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIP::GetCapabilities(WMSMiniDriverCapabilities *caps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: URLPrepare
      Src: /src/gdal/frmts/wms/minidriver_iip.cpp:53,1
    - Dst: CPLOPrintf
      Src: /src/gdal/frmts/wms/minidriver_iip.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - request
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: WMSMiniDriver_IIP::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iip.cpp
    functionUses: 0
    functionsReached:
    - URLPrepare
    - CPLOPrintf
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_IIP::TiledImageRequest(WMSHTTPRequest &request,\n
      \                                    const GDALWMSImageRequestInfo & /* iri
      */,\n                                     const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WMSHTTPRequest *>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:21,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:34,1
    - Dst: VSIRealloc
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:35,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:38,1
    - Dst: WMSHTTPRequest*::Error::Printf
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:40,1
    - Dst: static_cast<unsigned int>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:42,1
    - Dst: memcpy
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - buffer
    - count
    - nmemb
    - req
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 53
    functionName: WriteFunc
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GByte *>
    - static_cast<unsigned int>
    - WMSHTTPRequest*::Error::Printf
    - VSIFree
    - memcpy
    - VSIRealloc
    - reinterpret_cast<WMSHTTPRequest *>
    linkageType: ''
    returnType: size_t
    signature: size_t WriteFunc(void *buffer, size_t count, size_t nmemb, void *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:59,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:60,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:74,1
    - Dst: WMSHTTPRequest*::URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - msg
    - pasRequest
    - nRequestCount
    argTypes:
    - CURLMsg*
    - WMSHTTPRequest*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: ProcessCurlErrors
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - WMSHTTPRequest*::URL::c_str
    - STARTS_WITH
    linkageType: ''
    returnType: void
    signature: "void ProcessCurlErrors(CURLMsg *msg, WMSHTTPRequest *pasRequest,\n
      \                             int nRequestCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:91,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:94,1
    - Dst: WMSHTTPRequest*::Range::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:99,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:101,1
    - Dst: curl_easy_setopt
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:101,1
    - Dst: WMSHTTPRequest*::Range::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:102,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:105,1
    - Dst: curl_easy_setopt
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:105,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:107,1
    - Dst: curl_easy_setopt
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:107,1
    - Dst: WMSHTTPRequest*::m_curl_error::resize
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:110,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:111,1
    - Dst: curl_easy_setopt
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:111,1
    - Dst: static_cast<struct curl_slist *>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:115,1
    - Dst: CPLHTTPSetOptions
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:115,1
    - Dst: WMSHTTPRequest*::URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:116,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:119,1
    - Dst: curl_easy_setopt
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - psRequest
    argTypes:
    - WMSHTTPRequest*
    constantsTouched: []
    func_position:
      end: 123
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 123
    functionName: WMSHTTPInitializeRequest
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.cpp
    functionUses: 0
    functionsReached:
    - WMSHTTPRequest*::m_curl_error::resize
    - WMSHTTPRequest*::Range::empty
    - WMSHTTPRequest*::Range::c_str
    - static_cast<struct curl_slist *>
    - curl_easy_setopt
    - CPL_IGNORE_RET_VAL
    - CPLHTTPSetOptions
    - CPLError
    - WMSHTTPRequest*::URL::c_str
    - curl_easy_init
    linkageType: ''
    returnType: void
    signature: void WMSHTTPInitializeRequest(WMSHTTPRequest *psRequest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:128,1
    - Dst: curl_slist_free_all
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:130,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: WMSHTTPRequest::~WMSHTTPRequest()
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - curl_easy_cleanup
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void WMSHTTPRequest::~WMSHTTPRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:146,1
    - Dst: MAX
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:153,1
    - Dst: MIN
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:153,1
    - Dst: atoi
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:153,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:157,1
    - Dst: URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:157,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:159,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:159,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:164,1
    - Dst: URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:164,1
    - Dst: const_cast<char **>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:165,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:172,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:181,1
    - Dst: curl_multi_init
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:186,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:189,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:198,1
    - Dst: URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:199,1
    - Dst: curl_multi_add_handle
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:200,1
    - Dst: curl_multi_perform
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:210,1
    - Dst: curl_multi_info_read
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:217,1
    - Dst: ProcessCurlErrors
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:220,1
    - Dst: curl_multi_remove_handle
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:222,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:226,1
    - Dst: URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:227,1
    - Dst: curl_multi_add_handle
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:228,1
    - Dst: curl_multi_wait
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:238,1
    - Dst: curl_multi_info_read
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:247,1
    - Dst: ProcessCurlErrors
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:252,1
    - Dst: CPLHTTPRestoreSigPipeHandler
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:257,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:262,1
    - Dst: curl_easy_getinfo
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:274,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:278,1
    - Dst: WMSHTTPRequest*::URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:278,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:279,1
    - Dst: curl_easy_getinfo
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:282,1
    - Dst: WMSHTTPRequest*::Error::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:286,1
    - Dst: WMSHTTPRequest*::Error::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:293,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:294,1
    - Dst: WMSHTTPRequest*::URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:294,1
    - Dst: WMSHTTPRequest*::Error::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:299,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:301,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:304,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:306,1
    - Dst: WMSHTTPRequest*::URL::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:308,1
    - Dst: WMSHTTPRequest*::ContentType::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:309,1
    - Dst: WMSHTTPRequest*::ContentType::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:309,1
    - Dst: WMSHTTPRequest*::Error::empty
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:311,1
    - Dst: WMSHTTPRequest*::Error::c_str
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:311,1
    - Dst: curl_multi_remove_handle
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:313,1
    - Dst: curl_multi_cleanup
      Src: /src/gdal/frmts/wms/gdalhttp.cpp:316,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 2
    argNames:
    - pasRequest
    - nRequestCount
    argTypes:
    - WMSHTTPRequest*
    - int
    constantsTouched: []
    func_position:
      end: 319
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 319
    functionName: WMSHTTPFetchMulti
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.cpp
    functionUses: 0
    functionsReached:
    - curl_multi_remove_handle
    - MIN
    - atoi
    - WMSHTTPRequest*::ContentType::empty
    - curl_multi_cleanup
    - CPLDebug
    - strcmp
    - curl_multi_wait
    - CPLError
    - STARTS_WITH
    - CPLGetConfigOption
    - WMSHTTPRequest*::Error::c_str
    - CPLHTTPRestoreSigPipeHandler
    - ProcessCurlErrors
    - curl_multi_perform
    - URL::c_str
    - MAX
    - curl_multi_info_read
    - curl_multi_add_handle
    - const_cast<char **>
    - CPLTestBool
    - static_cast<int>
    - reinterpret_cast<const char *>
    - WMSHTTPRequest*::ContentType::c_str
    - CPLHTTPFetch
    - CPLAssert
    - strstr
    - WMSHTTPRequest*::URL::c_str
    - curl_easy_getinfo
    - CPLHTTPDestroyResult
    - WMSHTTPRequest*::Error::empty
    - curl_multi_init
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr WMSHTTPFetchMulti(WMSHTTPRequest *pasRequest, int nRequestCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: WMSMiniDriverManager::WMSMiniDriverManager
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/frmts/wms/minidriver.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ~WMSMiniDriverManager()
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void ~WMSMiniDriverManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver.cpp:46,1
    - Dst: clear
      Src: /src/gdal/frmts/wms/minidriver.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: WMSMiniDriverManager::erase
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverManager::erase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver.cpp:53,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver.cpp:54,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/minidriver.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: WMSMiniDriverManager::Find
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLString::c_str
    - EQUAL
    linkageType: ''
    returnType: WMSMiniDriverFactory
    signature: WMSMiniDriverFactory *WMSMiniDriverManager::Find(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WMSMiniDriverManager::Find
      Src: /src/gdal/frmts/wms/minidriver.cpp:62,1
    - Dst: push_back
      Src: /src/gdal/frmts/wms/minidriver.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mdf
    argTypes:
    - WMSMiniDriverFactory*
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: WMSMiniDriverManager::Register
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - WMSMiniDriverManager::Find
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriverManager::Register(WMSMiniDriverFactory *mdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Find
      Src: /src/gdal/frmts/wms/minidriver.cpp:75,1
    - Dst: WMSMiniDriverFactory*::New
      Src: /src/gdal/frmts/wms/minidriver.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: NewWMSMiniDriver
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 1
    functionsReached:
    - WMSMiniDriverFactory*::New
    - Find
    linkageType: ''
    returnType: WMSMiniDriver
    signature: WMSMiniDriver *NewWMSMiniDriver(const CPLString &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Register
      Src: /src/gdal/frmts/wms/minidriver.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdf
    argTypes:
    - WMSMiniDriverFactory*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: WMSRegisterMiniDriverFactory
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - Register
    linkageType: ''
    returnType: void
    signature: void WMSRegisterMiniDriverFactory(WMSMiniDriverFactory *mdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/gdal/frmts/wms/minidriver.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GDALDriver
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: WMSDeregisterMiniDrivers
    functionSourceFile: /src/gdal/frmts/wms/minidriver.cpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void WMSDeregisterMiniDrivers(CPL_UNUSED GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:27,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:38,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:40,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:46,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - parent_dataset
    - band
    - scale
    argTypes:
    - GDALWMSDataset*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 54
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 54
    functionName: GDALWMSRasterBand::GDALWMSRasterBand
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 2
    functionsReached:
    - printf
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void GDALWMSRasterBand::GDALWMSRasterBand(GDALWMSDataset *parent_dataset,
      int band,\n                                     double scale)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:58,1
    - Dst: back
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:60,1
    - Dst: pop_back
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: GDALWMSRasterBand::~GDALWMSRasterBand()
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - back
    - empty
    linkageType: ''
    returnType: void
    signature: void GDALWMSRasterBand::~GDALWMSRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:72,1
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:99,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:100,1
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:102,1
    - Dst: GDALWMSRasterBand*::GetOverview
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:103,1
    - Dst: GDALWMSRasterBand*::IsBlockInCache
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:104,1
    - Dst: GDALWMSRasterBand::AskMiniDriverForBlock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:117,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:120,1
    - Dst: WMSHTTPRequest::Error::c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:121,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:125,1
    - Dst: GDALWMSRasterBand::EmptyBlock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:129,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:131,1
    - Dst: GDALWMSCache*::GetItemStatus
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:140,1
    - Dst: GDALWMSRasterBand::ReadBlockFromCache
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:148,1
    - Dst: GDALWMSRasterBand::EmptyBlock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:164,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:166,1
    - Dst: WMSHTTPInitializeRequest
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:175,1
    - Dst: WMSHTTPFetchMulti
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:183,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:186,1
    - Dst: BufferToVSIFile
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:203,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:204,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:211,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:212,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:213,1
    - Dst: GDALWMSRasterBand::ReportWMSException
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:215,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:217,1
    - Dst: GDALWMSCache*::Insert
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:230,1
    - Dst: GDALWMSRasterBand::ReadBlockFromFile
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:234,1
    - Dst: GDALWMSCache*::Insert
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:240,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:244,1
    - Dst: WMSHTTPRequest::URL::c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:247,1
    - Dst: GDALWMSRasterBand::EmptyBlock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:253,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:255,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:258,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:265,1
    - Dst: GDALWMSRasterBand::ReadBlockFromCache
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:268,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:275,1
    - Dst: m_http_zeroblock_codes::find
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:276,1
    - Dst: m_http_zeroblock_codes::end
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:278,1
    - Dst: GDALWMSRasterBand::EmptyBlock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:282,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:284,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:291,1
    - Dst: WMSHTTPRequest::URL::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:298,1
    - Dst: WMSHTTPRequest::Error::c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:298,1
    - Dst: WMSHTTPRequest::Error::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:301,1
    - Dst: WMSHTTPRequest::Error::c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:301,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 121
    argCount: 8
    argNames:
    - x
    - y
    - buffer
    - bx0
    - by0
    - bx1
    - by1
    - advise_read
    argTypes:
    - int
    - int
    - void*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 310
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 310
    functionName: GDALWMSRasterBand::ReadBlocks
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - WMSHTTPFetchMulti
    - WMSHTTPRequest::URL::empty
    - GetRasterBand
    - CPLDebug
    - GDALWMSRasterBand::ReadBlockFromCache
    - static_cast<GDALWMSRasterBand *>
    - CPLError
    - CPLString::empty
    - BufferToVSIFile
    - GDALWMSRasterBand*::GetOverview
    - GDALWMSCache*::GetItemStatus
    - GDALWMSRasterBand::ReportWMSException
    - m_http_zeroblock_codes::end
    - WMSHTTPRequest::Error::empty
    - GDALWMSRasterBand::ReadBlockFromFile
    - STARTS_WITH_CI
    - static_cast<int>
    - VSIUnlink
    - GDALWMSRasterBand::EmptyBlock
    - GDALWMSCache*::Insert
    - GDALWMSRasterBand::AskMiniDriverForBlock
    - static_cast<size_t>
    - WMSHTTPRequest::URL::c_str
    - m_http_zeroblock_codes::find
    - WMSHTTPRequest::Error::c_str
    - EQUAL
    - GDALWMSRasterBand*::IsBlockInCache
    - WMSHTTPInitializeRequest
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::ReadBlocks(int x, int y, void *buffer, int
      bx0,\n                                     int by0, int bx1, int by1, int advise_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:335,1
    - Dst: max
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:336,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:337,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:338,1
    - Dst: GDALWMSRasterBand::ReadBlocks
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - x
    - y
    - buffer
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 352
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 352
    functionName: GDALWMSRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    - GDALWMSRasterBand::ReadBlocks
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSRasterBand::IReadBlock(int x, int y, void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand::IRasterIO
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 12
    argNames:
    - rw
    - x0
    - y0
    - sx
    - sy
    - buffer
    - bsx
    - bsy
    - bdt
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 380
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 380
    functionName: GDALWMSRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::IRasterIO(GDALRWFlag rw, int x0, int y0,
      int sx,\n                                    int sy, void *buffer, int bsx,
      int bsy,\n                                    GDALDataType bdt, GSpacing nPixelSpace,\n
      \                                   GSpacing nLineSpace,\n                                    GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: GDALWMSRasterBand::HasArbitraryOverviews
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GDALWMSRasterBand::HasArbitraryOverviews()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:390,1
    - Dst: size
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: GDALWMSRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int GDALWMSRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:395,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:395,1
    - Dst: size
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: GDALWMSRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - empty
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GDALWMSRasterBand::GetOverview(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSRasterBand::GDALWMSRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:404,1
    - Dst: GDALWMSRasterBand*::GetXSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:405,1
    - Dst: GDALWMSRasterBand*::GetYSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:405,1
    - Dst: begin
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:410,1
    - Dst: end
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:411,1
    - Dst: insert
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:417,1
    - Dst: begin
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:418,1
    - Dst: end
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - scale
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 425
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 425
    functionName: GDALWMSRasterBand::AddOverview
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - end
    - GDALWMSRasterBand*::GetYSize
    - insert
    - GDALWMSRasterBand*::GetXSize
    - GDALWMSRasterBand::GDALWMSRasterBand
    - begin
    linkageType: ''
    returnType: bool
    signature: bool GDALWMSRasterBand::AddOverview(double scale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:430,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: GDALWMSRasterBand::IsBlockInCache
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBlock*::DropLock
    - TryGetLockedBlockRef
    linkageType: ''
    returnType: bool
    signature: bool GDALWMSRasterBand::IsBlockInCache(int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSRasterBand::ComputeRequestInfo
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:445,1
    - Dst: m_mini_driver::TiledImageRequest
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - x
    - y
    argTypes:
    - WMSHTTPRequest
    - int
    - int
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: GDALWMSRasterBand::AskMiniDriverForBlock
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - m_mini_driver::TiledImageRequest
    - GDALWMSRasterBand::ComputeRequestInfo
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSRasterBand::AskMiniDriverForBlock(WMSHTTPRequest &r,
      int x, int y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:459,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:460,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:461,1
    - Dst: min
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - iri
    - tiri
    - x
    - y
    argTypes:
    - GDALWMSImageRequestInfo
    - GDALWMSTiledImageRequestInfo
    - int
    - int
    constantsTouched: []
    func_position:
      end: 484
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 484
    functionName: GDALWMSRasterBand::ComputeRequestInfo
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: "void GDALWMSRasterBand::ComputeRequestInfo(GDALWMSImageRequestInfo
      &iri,\n                                           GDALWMSTiledImageRequestInfo
      &tiri,\n                                           int x, int y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLMerge
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:496,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 500
    functionName: GDALWMSRasterBand::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - CSLMerge
    - CSLDestroy
    linkageType: ''
    returnType: char
    signature: char **GDALWMSRasterBand::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:506,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:507,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:508,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:509,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:519,1
    - Dst: sscanf
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:521,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:524,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:531,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:535,1
    - Dst: GetGeoTransform
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:538,1
    - Dst: GDALInvGeoTransform
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:541,1
    - Dst: floor
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:545,1
    - Dst: floor
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:548,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:556,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:557,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:558,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:559,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:565,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:565,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:570,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:572,1
    - Dst: GDALRasterBand*::GetMetadataItem
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:574,1
    - Dst: GDALWMSRasterBand::ComputeRequestInfo
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:582,1
    - Dst: m_mini_driver::GetTiledImageInfo
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:585,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:588,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:591,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:591,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:597,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:597,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:605,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:610,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:611,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:613,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:620,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:621,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:622,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:625,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:631,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:643,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:646,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:652,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 653
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 653
    functionName: GDALWMSRasterBand::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - CPLDebug
    - strcmp
    - GetYSize
    - CPLString::empty
    - sscanf
    - GetXSize
    - GDALInvGeoTransform
    - CPLString::c_str
    - CPLPopErrorHandler
    - GDALRasterBand*::GetOverview
    - CPLAtof
    - STARTS_WITH_CI
    - c_str
    - OGRDGNV8DataSource::GetMetadataItem
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - floor
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - CPLFree
    - empty
    - EQUAL
    - GDALWMSRasterBand::ComputeRequestInfo
    - CPLHTTPDestroyResult
    - CPLPushErrorHandler
    - GetGeoTransform
    - GDALRasterBand*::GetMetadataItem
    - m_mini_driver::GetTiledImageInfo
    linkageType: ''
    returnType: char
    signature: "char *GDALWMSRasterBand::GetMetadataItem(const char *pszName,\n                                               const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - nSourceBands
    - nWmsBands
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 693
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 693
    functionName: GetBandMapForExpand
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *GetBandMapForExpand(int nSourceBands, int nWmsBands)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:718,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:731,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:733,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:734,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:736,1
    - Dst: GByte::GByte
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:741,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:747,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:748,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:750,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:752,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:754,1
    - Dst: GByte::GByte
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:768,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:771,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:772,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:773,1
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:805,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:806,1
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:809,1
    - Dst: GDALWMSRasterBand*::GetOverview
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:810,1
    - Dst: GDALWMSRasterBand*::IsBlockInCache
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:812,1
    - Dst: GDALWMSRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:814,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:817,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:820,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:853,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:858,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:862,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:872,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:886,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:890,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:900,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:914,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:922,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:927,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 6
    argNames:
    - ds
    - x
    - y
    - to_buffer_band
    - buffer
    - advise_read
    argTypes:
    - GDALDataset*
    - int
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 935
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 935
    functionName: GDALWMSRasterBand::ReadBlockFromDataset
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - GByte::GByte
    - GDALWMSRasterBand*::GetLockedBlockRef
    - GDALDataset*::GetRasterBand
    - reinterpret_cast<GByte *>
    - GDALColorTable*::GetColorEntryAsRGB
    - GetRasterBand
    - GDALWMSRasterBand*::GetOverview
    - GDALRasterBlock*::DropLock
    - static_cast<GByte>
    - static_cast<GDALWMSRasterBand *>
    - GDALRasterBand*::GetRasterDataType
    - GDALWMSRasterBand*::IsBlockInCache
    - GDALRasterBlock*::GetDataRef
    - CPLError
    - GDALDataset*::GetRasterCount
    - GDALRasterBand*::GetColorTable
    - GDALDataset*::RasterIO
    - GDALClose
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::ReadBlockFromDataset(GDALDataset *ds, int
      x, int y,\n                                               int to_buffer_band,
      void *buffer,\n                                               int advise_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:941,1
    - Dst: GDALOpenEx
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:941,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:946,1
    - Dst: GDALWMSRasterBand::ReadBlockFromDataset
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - soFileName
    - x
    - y
    - to_buffer_band
    - buffer
    - advise_read
    argTypes:
    - CPLString
    - int
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 952
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 952
    functionName: GDALWMSRasterBand::ReadBlockFromFile
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - GDALWMSRasterBand::ReadBlockFromDataset
    - GDALOpenEx
    - FromHandle
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::ReadBlockFromFile(const CPLString &soFileName,
      int x,\n                                            int y, int to_buffer_band,\n
      \                                           void *buffer, int advise_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:961,1
    - Dst: GDALWMSCache*::GetDataset
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:965,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:968,1
    - Dst: GDALWMSRasterBand::ReadBlockFromDataset
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - pszKey
    - x
    - y
    - to_buffer_band
    - buffer
    - advise_read
    argTypes:
    - char*
    - int
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 974
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 974
    functionName: GDALWMSRasterBand::ReadBlockFromCache
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - GDALWMSRasterBand::ReadBlockFromDataset
    - GDALWMSCache*::GetDataset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::ReadBlockFromCache(const char *pszKey, int
      x, int y,\n                                             int to_buffer_band,
      void *buffer,\n                                             int advise_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:987,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:988,1
    - Dst: static_cast<GDALWMSRasterBand *>
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:990,1
    - Dst: GDALWMSRasterBand*::GetOverview
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:991,1
    - Dst: GDALWMSRasterBand*::IsBlockInCache
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:998,1
    - Dst: GDALWMSRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1000,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1003,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1006,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1019,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1020,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1025,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - x
    - y
    - to_buffer_band
    - buffer
    argTypes:
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1031
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1031
    functionName: GDALWMSRasterBand::EmptyBlock
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSRasterBand*::GetLockedBlockRef
    - GDALWMSRasterBand*::GetOverview
    - GetRasterBand
    - GDALRasterBlock*::DropLock
    - static_cast<GDALWMSRasterBand *>
    - GDALWMSRasterBand*::IsBlockInCache
    - GDALRasterBlock*::GetDataRef
    - CPLError
    - GDALCopyWords
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::EmptyBlock(int x, int y, int to_buffer_band,\n
      \                                    void *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1038,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1042,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1046,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1056,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1064,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1072,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1081,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1091,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1100
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1100
    functionName: GDALWMSRasterBand::ReportWMSException
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 1
    functionsReached:
    - CPLError
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - CPLParseXMLFile
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSRasterBand::ReportWMSException(const char *file_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALWMSRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1117,1
    - Dst: GDALWMSRasterBand::GetOverview
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1123,1
    - Dst: GDALRasterBand*::AdviseRead
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1127,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1142,1
    - Dst: GDALWMSRasterBand::ReadBlocks
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1156,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 8
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nBufXSize
    - nBufYSize
    - eDT
    - papszOptions
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 1157
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1157
    functionName: GDALWMSRasterBand::AdviseRead
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::AdviseRead
    - GDALWMSRasterBand::GetOverviewCount
    - GDALWMSRasterBand::ReadBlocks
    - CPLDebug
    - GDALWMSRasterBand::GetOverview
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GDALWMSRasterBand::AdviseRead(int nXOff, int nYOff, int nXSize,\n
      \                                    int nYSize, int nBufXSize, int nBufYSize,\n
      \                                    GDALDataType eDT, char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: GDALWMSRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GDALWMSRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eNewInterp
    argTypes:
    - GDALColorInterp
    constantsTouched: []
    func_position:
      end: 1168
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1168
    functionName: GDALWMSRasterBand::SetColorInterpretation
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GDALWMSRasterBand::SetColorInterpretation(GDALColorInterp eNewInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::size
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - std::vector<double>
    - size_t
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: getBandValue
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 3
    functionsReached:
    - std::vector<double>::size
    linkageType: ''
    returnType: double
    signature: double getBandValue(const std::vector<double> &v, size_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1183,1
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1184,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1188
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1188
    functionName: GDALWMSRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - getBandValue
    - std::vector::empty
    - GDALPamRasterBand::GetNoDataValue
    linkageType: ''
    returnType: double
    signature: double GDALWMSRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1193,1
    - Dst: MRFRasterBand::GetMinimum
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1194,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1198
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1198
    functionName: GDALWMSRasterBand::GetMinimum
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - MRFRasterBand::GetMinimum
    - getBandValue
    - std::vector::empty
    linkageType: ''
    returnType: double
    signature: double GDALWMSRasterBand::GetMinimum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1203,1
    - Dst: MRFRasterBand::GetMaximum
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1204,1
    - Dst: getBandValue
      Src: /src/gdal/frmts/wms/gdalwmsrasterband.cpp:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1208
    functionName: GDALWMSRasterBand::GetMaximum
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached:
    - getBandValue
    - std::vector::empty
    - MRFRasterBand::GetMaximum
    linkageType: ''
    returnType: double
    signature: double GDALWMSRasterBand::GetMaximum(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: GDALWMSRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/wms/gdalwmsrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GDALWMSRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: WMSHTTPRequest
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSHTTPRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: WMSHTTPRequest
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSHTTPRequest(const WMSHTTPRequest &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '&operator=(const WMSHTTPRequest &)'
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WMSHTTPRequest
    signature: WMSHTTPRequest &operator=(const WMSHTTPRequest &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: WMSHTTPRequest
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSHTTPRequest(WMSHTTPRequest &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '&operator=(WMSHTTPRequest &&)'
    functionSourceFile: /src/gdal/frmts/wms/gdalhttp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WMSHTTPRequest
    signature: WMSHTTPRequest &operator=(WMSHTTPRequest &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/wms/wmsutils.cpp:17,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/wms/wmsutils.cpp:18,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsutils.cpp:24,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:24,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/wms/wmsutils.cpp:26,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:28,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:28,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/wms/wmsutils.cpp:34,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:35,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/wms/wmsutils.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - proj
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: ProjToSRS
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 4
    functionsReached:
    - OGRSpatialReference::importFromEPSG
    - OGRSpatialReference::SetFromUserInput
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - OGRSpatialReference::SetAxisMappingStrategy
    - EQUAL
    - CPLString::c_str
    - strcmp
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference ProjToSRS(const CPLString &proj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/wmsutils.cpp:44,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/wmsutils.cpp:46,1
    - Dst: CPLString::rbegin
      Src: /src/gdal/frmts/wms/wmsutils.cpp:50,1
    - Dst: CPLString::rbegin
      Src: /src/gdal/frmts/wms/wmsutils.cpp:50,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/wms/wmsutils.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - url
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: URLPrepare
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 8
    functionsReached:
    - CPLString::find
    - CPLString::rbegin
    - CPLString::append
    linkageType: ''
    returnType: void
    signature: void URLPrepare(CPLString &url)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/wms/wmsutils.cpp:57,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/wms/wmsutils.cpp:58,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:58,1
    - Dst: CPLString
      Src: /src/gdal/frmts/wms/wmsutils.cpp:60,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: BufferToVSIFile
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 1
    functionsReached:
    - VSIFCloseL
    - CPLString::c_str
    - CPLString
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    linkageType: ''
    returnType: CPLString
    signature: CPLString BufferToVSIFile(GByte *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: VersionStringToInt
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VersionStringToInt(const char *version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:89,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:90,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:90,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:90,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:92,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:92,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:92,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:93,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:93,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:93,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: StrToBool
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int StrToBool(const char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/wms/wmsutils.cpp:110,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/frmts/wms/wmsutils.cpp:111,1
    - Dst: va_end
      Src: /src/gdal/frmts/wms/wmsutils.cpp:112,1
    - Dst: CPLString*::replace
      Src: /src/gdal/frmts/wms/wmsutils.cpp:114,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsutils.cpp:114,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/wmsutils.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - base
    - search
    - fmt
    argTypes:
    - CPLString*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: URLSearchAndReplace
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - va_start
    - va_end
    - CPLString*::replace
    - strlen
    - CPLString::vPrintf
    linkageType: ''
    returnType: int
    signature: "int URLSearchAndReplace(CPLString *base, const char *search, const
      char *fmt,\n                        ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:121,1
    - Dst: CPLString::begin
      Src: /src/gdal/frmts/wms/wmsutils.cpp:123,1
    - Dst: CPLString::end
      Src: /src/gdal/frmts/wms/wmsutils.cpp:123,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/wms/wmsutils.cpp:124,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/wms/wmsutils.cpp:127,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:129,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/wms/wmsutils.cpp:133,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/wmsutils.cpp:133,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsutils.cpp:134,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:136,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:138,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:138,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/wms/wmsutils.cpp:139,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:142,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:144,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:146,1
    - Dst: reinterpret_cast<void *>
      Src: /src/gdal/frmts/wms/wmsutils.cpp:146,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/wms/wmsutils.cpp:147,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/wms/wmsutils.cpp:147,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/wms/wmsutils.cpp:148,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/wms/wmsutils.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - s
    - encoding
    argTypes:
    - CPLString
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 152
    functionName: WMSUtilDecode
    functionSourceFile: /src/gdal/frmts/wms/wmsutils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - CPLString::end
    - reinterpret_cast<void *>
    - CPLString::assign
    - VSIFCloseL
    - std::vector::size
    - VSIFSeekL
    - CPLString::clear
    - EQUAL
    - VSIFOpenL
    - CPLString::c_str
    - VSIFReadL
    - std::vector::push_back
    - CPLString::begin
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *WMSUtilDecode(CPLString &s, const char *encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: WMSMiniDriver_IIIFImage::WMSMiniDriver_IIIFImage
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iiifimage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIIFImage::WMSMiniDriver_IIIFImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: WMSMiniDriver_IIIFImage::~WMSMiniDriver_IIIFImage()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iiifimage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIIFImage::~WMSMiniDriver_IIIFImage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:32,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:33,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:35,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:42,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:44,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: WMSMiniDriver_IIIFImage::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iiifimage.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLValue
    - CPLError
    - EQUAL
    - empty
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_IIIFImage::Initialize(CPLXMLNode *config,\n                                           CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - caps
    argTypes:
    - WMSMiniDriverCapabilities*
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: WMSMiniDriver_IIIFImage::GetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iiifimage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_IIIFImage::GetCapabilities(WMSMiniDriverCapabilities
      *caps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:64,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:64,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:69,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:77,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:78,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:79,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:84,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:86,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:87,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:88,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:89,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:90,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:90,1
    - Dst: min
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:91,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:91,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_iiifimage.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - request
    - tiri
    argTypes:
    - WMSHTTPRequest
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 95
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 95
    functionName: WMSMiniDriver_IIIFImage::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_iiifimage.cpp
    functionUses: 0
    functionsReached:
    - CPLString::back
    - c_str
    - GetRasterXSize
    - GDALRasterBand*::GetXSize
    - GetRasterBand
    - CPLSPrintf
    - min
    - GetRasterYSize
    - CPLString::empty
    - GDALRasterBand*::GetYSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_IIIFImage::TiledImageRequest(\n    WMSHTTPRequest
      &request, const GDALWMSImageRequestInfo & /* iri */,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: GDALWMSMetaDataset::GDALWMSMetaDataset
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GDALWMSMetaDataset::GDALWMSMetaDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: GDALWMSMetaDataset::~GDALWMSMetaDataset()
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - CSLDestroy
    linkageType: ''
    returnType: void
    signature: void GDALWMSMetaDataset::~GDALWMSMetaDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:43,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:44,1
    - Dst: snprintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:46,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDesc
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: GDALWMSMetaDataset::AddSubDataset
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - CSLSetNameValue
    - snprintf
    linkageType: ''
    returnType: void
    signature: void GDALWMSMetaDataset::AddSubDataset(const char *pszName, const char
      *pszDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:58,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:61,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:62,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:63,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:64,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:65,1
    - Dst: CPLURLGetValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:66,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:68,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:72,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:73,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:74,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:76,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:77,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:78,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:79,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:80,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:81,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:82,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:83,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:84,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:86,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:93,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:97,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:102,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:104,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:108,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:111,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:113,1
    - Dst: GDALWMSMetaDataset::AnalyzeGetCapabilities
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:118,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:120,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 124
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 124
    functionName: GDALWMSMetaDataset::DownloadGetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - GDALWMSMetaDataset::AnalyzeGetCapabilities
    - CPLHTTPFetch
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - CPLURLAddKVP
    - CPLHTTPDestroyResult
    - CPLError
    - CPLString::empty
    - CPLURLGetValue
    linkageType: ''
    returnType: GDALDataset
    signature: 'GDALDataset *

      GDALWMSMetaDataset::DownloadGetCapabilities(GDALOpenInfo *poOpenInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:134,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:138,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:139,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:141,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:142,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:143,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:144,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:145,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:146,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:147,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:148,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:149,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:150,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:152,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:159,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:163,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:168,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:170,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:174,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:177,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:179,1
    - Dst: GDALWMSMetaDataset::AnalyzeGetTileService
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:183,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:185,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 189
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 189
    functionName: GDALWMSMetaDataset::DownloadGetTileService
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - CPLHTTPFetch
    - CPLDestroyXMLNode
    - GDALWMSMetaDataset::AnalyzeGetTileService
    - CPLParseXMLString
    - CPLURLAddKVP
    - CPLHTTPDestroyResult
    - CPLError
    linkageType: ''
    returnType: GDALDataset
    signature: 'GDALDataset *

      GDALWMSMetaDataset::DownloadGetTileService(GDALOpenInfo *poOpenInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:197,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: GDALWMSMetaDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **GDALWMSMetaDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:208,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: GDALWMSMetaDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALPamDataset::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **GDALWMSMetaDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:226,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:227,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:228,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:231,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:232,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:233,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:233,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:233,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:235,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:238,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:239,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:241,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:242,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:244,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:244,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:245,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:246,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:247,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:251,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:257,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:259,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:260,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:264,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 10
    argNames:
    - pszLayerName
    - pszTitle
    - pszAbstract
    - pszSRS
    - pszMinX
    - pszMinY
    - pszMaxX
    - pszMaxY
    - osFormat
    - osTransparent
    argTypes:
    - char*
    - char*
    - CPL_UNUSED*
    - char*
    - char*
    - char*
    - char*
    - char*
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 271
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 271
    functionName: GDALWMSMetaDataset::AddSubDataset
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - c_str
    - empty
    - GDALWMSMetaDataset::AddSubDataset
    - VersionStringToInt
    - CPLSPrintf
    - CPLURLAddKVP
    - std::string::c_str
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void GDALWMSMetaDataset::AddSubDataset(\n    const char *pszLayerName,
      const char *pszTitle,\n    CPL_UNUSED const char *pszAbstract, const char *pszSRS,
      const char *pszMinX,\n    const char *pszMinY, const char *pszMaxX, const char
      *pszMaxY,\n    const std::string &osFormat, const std::string &osTransparent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:283,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:284,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:285,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:287,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:288,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:288,1
    - Dst: VersionStringToInt
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:288,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:290,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:293,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:295,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:296,1
    - Dst: WMSCTileSetDesc::osMinX::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:296,1
    - Dst: WMSCTileSetDesc::osMinY::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:297,1
    - Dst: WMSCTileSetDesc::osMaxX::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:298,1
    - Dst: WMSCTileSetDesc::osMaxY::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:299,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:302,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:303,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:305,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:307,1
    - Dst: WMSCTileSetDesc::osLayers::c_str
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:308,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:310,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:311,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:313,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:314,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:316,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:317,1
    - Dst: CPLURLAddKVP
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:318,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:322,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:328,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:330,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:331,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:335,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:340,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - oWMSCTileSetDesc
    - pszTitle
    - osTransparent
    argTypes:
    - WMSCTileSetDesc
    - char*
    - CPLString
    constantsTouched: []
    func_position:
      end: 342
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 342
    functionName: GDALWMSMetaDataset::AddWMSCSubDataset
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - WMSCTileSetDesc::osMaxX::c_str
    - empty
    - GDALWMSMetaDataset::AddSubDataset
    - CPLFree
    - VersionStringToInt
    - WMSCTileSetDesc::osLayers::c_str
    - WMSCTileSetDesc::osMinX::c_str
    - CPLSPrintf
    - CPLDebug
    - CPLURLAddKVP
    - WMSCTileSetDesc::osMaxY::c_str
    - WMSCTileSetDesc::osMinY::c_str
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void GDALWMSMetaDataset::AddWMSCSubDataset(WMSCTileSetDesc &oWMSCTileSetDesc,\n
      \                                          const char *pszTitle,\n                                           const
      CPLString &osTransparent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:379,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:386,1
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:403,1
    - Dst: GetCRS
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:406,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:407,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:409,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:419,1
    - Dst: GetCRS
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:420,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:427,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:428,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:429,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:430,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:446,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:449,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:455,1
    - Dst: end
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:456,1
    - Dst: GDALWMSMetaDataset::AddWMSCSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:458,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:462,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:473,1
    - Dst: GDALWMSMetaDataset::ExploreLayer
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:474,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 62
    argCount: 9
    argNames:
    - psXML
    - osFormat
    - osTransparent
    - osPreferredSRS
    - pszSRS
    - pszMinX
    - pszMinY
    - pszMaxX
    - pszMaxY
    argTypes:
    - CPLXMLNode*
    - CPLString
    - CPLString
    - CPLString
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 478
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 478
    functionName: GDALWMSMetaDataset::ExploreLayer
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSMetaDataset::AddWMSCSubDataset
    - end
    - CPLError
    - GDALWMSMetaDataset::AddSubDataset
    - CPLGetXMLNode
    - find
    - EQUAL
    - strcmp
    - GetCRS
    - CPLGetXMLValue
    - GDALWMSMetaDataset::ExploreLayer
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void GDALWMSMetaDataset::ExploreLayer(CPLXMLNode *psXML,\n                                      const
      CPLString &osFormat,\n                                      const CPLString
      &osTransparent,\n                                      const CPLString &osPreferredSRS,\n
      \                                     const char *pszSRS, const char *pszMinX,\n
      \                                     const char *pszMinY, const char *pszMaxX,\n
      \                                     const char *pszMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:489,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:495,1
    - Dst: strstr
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:521,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:553,1
    - Dst: find
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:567,1
    - Dst: end
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:568,1
    - Dst: std::move
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:589,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 51
    argCount: 1
    argNames:
    - psXML
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 592
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 592
    functionName: GDALWMSMetaDataset::ParseWMSCTileSets
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - end
    - CPLGetXMLNode
    - find
    - CSLDestroy
    - EQUAL
    - std::move
    - strstr
    linkageType: ''
    returnType: void
    signature: void GDALWMSMetaDataset::ParseWMSCTileSets(CPLXMLNode *psXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:603,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:604,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:606,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:608,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:611,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:615,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:624,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:629,1
    - Dst: GDALWMSMetaDataset::GDALWMSMetaDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:631,1
    - Dst: GDALWMSMetaDataset*::ParseWMSCTileSets
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:640,1
    - Dst: GDALWMSMetaDataset*::ExploreLayer
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:641,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - psXML
    - osFormat
    - osTransparent
    - osPreferredSRS
    argTypes:
    - CPLXMLNode*
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 644
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 644
    functionName: GDALWMSMetaDataset::AnalyzeGetCapabilities
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 2
    functionsReached:
    - GDALWMSMetaDataset::GDALWMSMetaDataset
    - CPLGetXMLNode
    - GDALWMSMetaDataset*::ExploreLayer
    - strcmp
    - GDALWMSMetaDataset*::ParseWMSCTileSets
    - CPLGetXMLValue
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALWMSMetaDataset::AnalyzeGetCapabilities(\n    CPLXMLNode
      *psXML, const std::string &osFormat,\n    const std::string &osTransparent,
      const std::string &osPreferredSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:668,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:669,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:676,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:682,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:684,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:685,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:689,1
    - Dst: GDALWMSMetaDataset::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - pszTiledGroupName
    - pszTitle
    - papszChanges
    argTypes:
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 696
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 696
    functionName: GDALWMSMetaDataset::AddTiledSubDataset
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALWMSMetaDataset::AddSubDataset
    - CPLFree
    - empty
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: "void GDALWMSMetaDataset::AddTiledSubDataset(const char *pszTiledGroupName,\n
      \                                           const char *pszTitle,\n                                            const
      char *const *papszChanges)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:710,1
    - Dst: CPLString::toupper
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:711,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:720,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:726,1
    - Dst: GDALWMSMetaDataset::AddTiledSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:728,1
    - Dst: CPLString::toupper
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:733,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:734,1
    - Dst: GDALWMSMetaDataset::AddTiledSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:735,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:740,1
    - Dst: GDALWMSMetaDataset::AnalyzeGetTileServiceRecurse
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:742,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:745,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - psXML
    - poOpenInfo
    argTypes:
    - CPLXMLNode*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 746
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 746
    functionName: GDALWMSMetaDataset::AnalyzeGetTileServiceRecurse
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSMetaDataset::AddTiledSubDataset
    - CPLString::toupper
    - CSLFetchNameValueDef
    - GDALWMSMetaDataset::AnalyzeGetTileServiceRecurse
    - EQUAL
    - CPLString::find
    - CPLFree
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void GDALWMSMetaDataset::AnalyzeGetTileServiceRecurse(CPLXMLNode *psXML,\n
      \                                                     GDALOpenInfo *poOpenInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:756,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:757,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:759,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:762,1
    - Dst: GDALWMSMetaDataset::GDALWMSMetaDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:771,1
    - Dst: GDALWMSMetaDataset*::AnalyzeGetTileServiceRecurse
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - psXML
    - poOpenInfo
    argTypes:
    - CPLXMLNode*
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 778
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 778
    functionName: GDALWMSMetaDataset::AnalyzeGetTileService
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 2
    functionsReached:
    - GDALWMSMetaDataset::GDALWMSMetaDataset
    - CPLGetXMLNode
    - strcmp
    - CPLGetXMLValue
    - GDALWMSMetaDataset*::AnalyzeGetTileServiceRecurse
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALWMSMetaDataset::AnalyzeGetTileService(CPLXMLNode
      *psXML,\n                                                       GDALOpenInfo
      *poOpenInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:786,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:789,1
    - Dst: GDALWMSMetaDataset::GDALWMSMetaDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:793,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:798,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:808,1
    - Dst: strlen
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:809,1
    - Dst: GDALWMSMetaDataset*::AddSubDataset
      Src: /src/gdal/frmts/wms/wmsmetadataset.cpp:811,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - psXML
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 817
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 817
    functionName: GDALWMSMetaDataset::AnalyzeTileMapService
    functionSourceFile: /src/gdal/frmts/wms/wmsmetadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALWMSMetaDataset::GDALWMSMetaDataset
    - GDALWMSMetaDataset*::AddSubDataset
    - CPLGetXMLNode
    - EQUAL
    - strlen
    - CPLString::resize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GDALWMSMetaDataset::AnalyzeTileMapService(CPLXMLNode *psXML)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - sz
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: pcount
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pcount(const int n, const int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:58,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:59,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:60,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:61,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - size
    - psz
    argTypes:
    - ILSize
    - ILSize
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: pcount
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 7
    functionsReached:
    - pcount
    - static_cast<GIntBig>
    linkageType: ''
    returnType: ILSize
    signature: ILSize pcount(const ILSize &size, const ILSize &psz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<VSILFILE *>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:72,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:73,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - user_data
    - buff
    - count
    - offset
    argTypes:
    - void*
    - void*
    - size_t
    - off_t
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: pread_VSIL
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFReadL
    - reinterpret_cast<VSILFILE *>
    linkageType: ''
    returnType: size_t
    signature: "size_t pread_VSIL(void *user_data, void *buff, size_t count,\n                         off_t
      offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WMSHTTPRequest *>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:83,1
    - Dst: WMSHTTPRequest::Range::Printf
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:84,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:85,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:86,1
    - Dst: WMSHTTPInitializeRequest
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:87,1
    - Dst: WMSHTTPFetchMulti
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:88,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:90,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:99,1
    - Dst: WMSHTTPRequest::URL::c_str
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:101,1
    - Dst: memset
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:107,1
    - Dst: memcpy
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - user_data
    - buff
    - count
    - offset
    argTypes:
    - void*
    - void*
    - size_t
    - off_t
    constantsTouched: []
    func_position:
      end: 110
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 110
    functionName: pread_curl
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPLError
    - WMSHTTPFetchMulti
    - WMSHTTPRequest::URL::c_str
    - WMSHTTPRequest::Range::Printf
    - WMSHTTPInitializeRequest
    - memset
    - memcpy
    - reinterpret_cast<WMSHTTPRequest *>
    linkageType: ''
    returnType: size_t
    signature: "size_t pread_curl(void *user_data, void *buff, size_t count,\n                         off_t
      offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - user_data
    - fn
    - size
    - count
    argTypes:
    - void*
    - pread_t
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: SectorCache::SectorCache
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SectorCache::SectorCache(void *user_data, pread_t fn, unsigned
      int size,\n                         unsigned int count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:123,1
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:134,1
    - Dst: resize
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:136,1
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:136,1
    - Dst: back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:137,1
    - Dst: rand
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:145,1
    - Dst: Sector*::range::resize
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:152,1
    - Dst: reader
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:153,1
    - Dst: static_cast<off_t>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:154,1
    - Dst: back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:164,1
    - Dst: pop_back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - address
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 168
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 168
    functionName: SectorCache::data
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - size
    - back
    - reader
    - Sector*::range::resize
    - static_cast<off_t>
    - pop_back
    - resize
    - rand
    linkageType: ''
    returnType: void
    signature: void *SectorCache::data(size_t address)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: WMSMiniDriver_MRF::WMSMiniDriver_MRF
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_MRF::WMSMiniDriver_MRF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: WMSMiniDriver_MRF::~WMSMiniDriver_MRF()
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void WMSMiniDriver_MRF::~WMSMiniDriver_MRF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:194,1
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:195,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:197,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:203,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:205,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:207,1
    - Dst: WMSSetDefaultOverviewCount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:212,1
    - Dst: WMSSetDefaultTileCount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:213,1
    - Dst: WMSSetDefaultBlockSize
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:214,1
    - Dst: WMSSetDefaultTileLevel
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:215,1
    - Dst: WMSSetNeedsDataWindow
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:216,1
    - Dst: push_back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:217,1
    - Dst: push_back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - config
    - papszOpenOptions
    argTypes:
    - CPLXMLNode*
    - CPL_UNUSED**
    constantsTouched: []
    func_position:
      end: 225
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 225
    functionName: WMSMiniDriver_MRF::Initialize
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - WMSSetNeedsDataWindow
    - WMSSetDefaultTileCount
    - WMSSetDefaultBlockSize
    - CPLError
    - empty
    - EQUAL
    - WMSSetDefaultOverviewCount
    - WMSSetDefaultTileLevel
    - push_back
    - CPLGetXMLValue
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_MRF::Initialize(CPLXMLNode *config,\n                                     CPL_UNUSED
      char **papszOpenOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:231,1
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:231,1
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:232,1
    - Dst: CPLString::ifind
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - CPLString
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: is_url
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - CPLString::ifind
    linkageType: ''
    returnType: int
    signature: int is_url(const CPLString &value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:239,1
    - Dst: is_url
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:241,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:244,1
    - Dst: CPLError
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:247,1
    - Dst: c_str
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:248,1
    - Dst: SectorCache::SectorCache
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:251,1
    - Dst: WMSHTTPRequest::WMSHTTPRequest
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:262,1
    - Dst: GetHTTPRequestOpts
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:264,1
    - Dst: SectorCache::SectorCache
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:265,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:271,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:271,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:274,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:277,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:288,1
    - Dst: push_back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:289,1
    - Dst: push_back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:291,1
    - Dst: back
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:291,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:294,1
    - Dst: pcount
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 299
    functionName: WMSMiniDriver_MRF::EndInit
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - back
    - empty
    - pcount
    - GetRasterBand
    - SectorCache::SectorCache
    - VSIFOpenL
    - GetRasterYSize
    - WMSHTTPRequest::WMSHTTPRequest
    - push_back
    - CPLError
    - is_url
    - GetRasterXSize
    - GetHTTPRequestOpts
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr WMSMiniDriver_MRF::EndInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:307,1
    - Dst: size
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:307,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:308,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:310,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tiri
    argTypes:
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: WMSMiniDriver_MRF::GetIndexAddress
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - size
    - static_cast<size_t>
    - static_cast<int>
    linkageType: ''
    returnType: size_t
    signature: "size_t WMSMiniDriver_MRF::GetIndexAddress(\n    const GDALWMSTiledImageRequestInfo
      &tiri) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:324,1
    - Dst: memcpy
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:342,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:345,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:346,1
    - Dst: memcpy
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:352,1
    - Dst: CPL_SWAP64
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:355,1
    - Dst: WMSHTTPRequest::Range::Printf
      Src: /src/gdal/frmts/wms/minidriver_mrf.cpp:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - request
    - iri
    - tiri
    argTypes:
    - WMSHTTPRequest
    - CPL_UNUSED
    - GDALWMSTiledImageRequestInfo
    constantsTouched: []
    func_position:
      end: 371
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 371
    functionName: WMSMiniDriver_MRF::TiledImageRequest
    functionSourceFile: /src/gdal/frmts/wms/minidriver_mrf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - memcpy
    - CPL_SWAP64
    - WMSHTTPRequest::Range::Printf
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr WMSMiniDriver_MRF::TiledImageRequest(\n    WMSHTTPRequest &request,
      CPL_UNUSED const GDALWMSImageRequestInfo &iri,\n    const GDALWMSTiledImageRequestInfo
      &tiri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:40,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:44,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:45,1
    - Dst: STACTADataset*::GetRasterXSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:46,1
    - Dst: STACTADataset*::GetRasterYSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:47,1
    - Dst: GDALRasterBand*::GetNoDataValue
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - poDSIn
    - nBandIn
    - poProtoBand
    argTypes:
    - STACTADataset*
    - int
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: STACTARasterBand::STACTARasterBand
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::GetColorInterpretation
    - GDALRasterBand*::GetNoDataValue
    - GDALRasterBand*::GetBlockSize
    - STACTADataset*::GetRasterYSize
    - STACTADataset*::GetRasterXSize
    - GDALRasterBand*::GetRasterDataType
    linkageType: ''
    returnType: void
    signature: "void STACTARasterBand::STACTARasterBand(STACTADataset *poDSIn, int
      nBandIn,\n                                   GDALRasterBand *poProtoBand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<STACTADataset *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:58,1
    - Dst: auto::m_poDS::GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: STACTARasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - auto::m_poDS::GetRasterBand
    - cpl::down_cast<STACTADataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTARasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<STACTADataset *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:74,1
    - Dst: auto::m_apoOverviewDS::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:76,1
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:79,1
    - Dst: auto::m_poDS::GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: STACTARasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - auto::m_poDS::GetRasterBand
    - cpl::down_cast<STACTADataset *>
    - auto::m_apoOverviewDS::size
    - TryOverviewRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTARasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                   int nXSize, int nYSize, void
      *pData,\n                                   int nBufXSize, int nBufYSize,\n
      \                                  GDALDataType eBufType, GSpacing nPixelSpace,\n
      \                                  GSpacing nLineSpace,\n                                   GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:104,1
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:107,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: STACTADataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - TryOverviewRasterIO
    - RasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTADataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                int nXSize, int nYSize, void *pData,\n
      \                               int nBufXSize, int nBufYSize,\n                                GDALDataType
      eBufType, int nBandCount,\n                                BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n                                GSpacing nLineSpace,
      GSpacing nBandSpace,\n                                GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<STACTADataset *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:128,1
    - Dst: STACTADataset*::m_apoOverviewDS::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: STACTARasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<STACTADataset *>
    - STACTADataset*::m_apoOverviewDS::size
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int STACTARasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<STACTADataset *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:137,1
    - Dst: STACTARasterBand::GetOverviewCount
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:138,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nIdx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: STACTARasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<STACTADataset *>
    - GetRasterBand
    - STACTARasterBand::GetOverviewCount
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *STACTARasterBand::GetOverview(int nIdx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: STACTARasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STACTARasterBand::GetNoDataValue(int *pbHasNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:160,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:164,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:170,1
    - Dst: STACTARawDataset*::GetRasterXSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:177,1
    - Dst: STACTARawDataset*::GetRasterYSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:178,1
    - Dst: GDALRasterBand*::GetNoDataValue
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - poDSIn
    - nBandIn
    - poProtoBand
    argTypes:
    - STACTARawDataset*
    - int
    - GDALRasterBand*
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: STACTARawRasterBand::STACTARawRasterBand
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::GetColorInterpretation
    - GDALRasterBand*::GetNoDataValue
    - STACTARawDataset*::GetRasterXSize
    - GDALRasterBand*::GetBlockSize
    - GDALRasterBand*::GetRasterDataType
    - STACTARawDataset*::GetRasterYSize
    linkageType: ''
    returnType: void
    signature: "void STACTARawRasterBand::STACTARawRasterBand(STACTARawDataset *poDSIn,
      int nBandIn,\n                                         GDALRasterBand *poProtoBand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACTARawDataset*::GetRasterXSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:195,1
    - Dst: STACTARawDataset*::GetRasterYSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - poDSIn
    - nBandIn
    - eDT
    - bSetNoData
    - dfNoData
    argTypes:
    - STACTARawDataset*
    - int
    - GDALDataType
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: STACTARawRasterBand::STACTARawRasterBand
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - STACTARawDataset*::GetRasterXSize
    - STACTARawDataset*::GetRasterYSize
    linkageType: ''
    returnType: void
    signature: "void STACTARawRasterBand::STACTARawRasterBand(STACTARawDataset *poDSIn,
      int nBandIn,\n                                         GDALDataType eDT, bool
      bSetNoData,\n                                         double dfNoData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbHasNoData
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: STACTARawRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double STACTARawRasterBand::GetNoDataValue(int *pbHasNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:224,1
    - Dst: STACTARawRasterBand::IRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:226,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: STACTARawRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GSpacing>
    - STACTARawRasterBand::IRasterIO
    - INIT_RASTERIO_EXTRA_ARG
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTARawRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                      void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:242,1
    - Dst: cpl::down_cast<STACTARawDataset *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:244,1
    - Dst: GDALRasterBand::IRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:275,1
    - Dst: auto::IRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 285
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 285
    functionName: STACTARawRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALRasterBand::IRasterIO
    - CPLDebugOnly
    - cpl::down_cast<STACTARawDataset *>
    - auto::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTARawRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                      int nXSize, int nYSize, void
      *pData,\n                                      int nBufXSize, int nBufYSize,\n
      \                                     GDALDataType eBufType,\n                                      GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                                      GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:297,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:325,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:339,1
    - Dst: STACTARawDataset::IRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:344,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:347,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:348,1
    - Dst: std::unique_ptr<MEMDataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:355,1
    - Dst: MEMDataset::Create
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:355,1
    - Dst: MEMCreateRasterBandEx
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:359,1
    - Dst: auto::get
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:360,1
    - Dst: auto::AddMEMBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:363,1
    - Dst: auto::RasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:375,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:383,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:411,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:412,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:413,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:414,1
    - Dst: m_oCacheTileDS::getPtr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:430,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:439,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:440,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:441,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:442,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:443,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:444,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:445,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:446,1
    - Dst: VSIIsLocal
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:448,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:448,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:451,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:452,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:454,1
    - Dst: m_oCacheTileDS::insert
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:459,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:464,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:465,1
    - Dst: VSIIngestFile
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:470,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:472,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:475,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:477,1
    - Dst: std::string
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:478,1
    - Dst: CPLString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:479,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:483,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:483,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:485,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:486,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:488,1
    - Dst: std::unique_ptr::MarkSuppressOnClose
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:490,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:492,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:495,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:496,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:498,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:500,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:502,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:502,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:504,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:506,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:511,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:512,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:513,1
    - Dst: c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:513,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:515,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:517,1
    - Dst: m_oCacheTileDS::insert
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:523,1
    - Dst: std::move
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:524,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:528,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:529,1
    - Dst: m_oCacheTileDS::insert
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:532,1
    - Dst: std::move
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:533,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:543,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:558,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:559,1
    - Dst: std::unique_ptr::RasterIO
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:560,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:562,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:574,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:574,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:585,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:589,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:590,1
    - Dst: max
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:599,1
    - Dst: max
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:610,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 129
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 619
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 619
    functionName: STACTARawDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    - auto::get
    - GDALDataset::IRasterIO
    - CPLString
    - INIT_RASTERIO_EXTRA_ARG
    - CPLError
    - STARTS_WITH
    - CPLStringList::CPLStringList
    - std::unique_ptr<MEMDataset>
    - CPLStringList::List
    - m_oCacheTileDS::insert
    - std::unique_ptr::RasterIO
    - CPLString::c_str
    - OGRAPISpyOpen
    - MEMCreateRasterBandEx
    - CPLPopErrorHandler
    - std::move
    - VSIIsLocal
    - GDALCopyWords
    - auto::AddMEMBand
    - std::unique_ptr::MarkSuppressOnClose
    - c_str
    - static_cast<int>
    - CPLStringList::AddString
    - VSIUnlink
    - MEMDataset::Create
    - CPLSPrintf
    - auto::RasterIO
    - CPLString::replaceAll
    - VSIFOpenL
    - VSIIngestFile
    - static_cast<GByte *>
    - STACTARawDataset::IRasterIO
    - VSIFileFromMemBuffer
    - CPLDebugOnly
    - std::unique_ptr<GDALDataset>
    - VSIFCloseL
    - max
    - m_oCacheTileDS::getPtr
    - CPLPushErrorHandler
    - std::string
    - VSIMemGenerateHiddenFilename
    - static_cast<GSpacing>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr STACTARawDataset::IRasterIO(\n    GDALRWFlag eRWFlag, int nXOff,
      int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize, int nBufYSize,
      GDALDataType eBufType,\n    int nBandCount, BANDMAP_TYPE panBandMap, GSpacing
      nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: STACTARawDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr STACTARawDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:637,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:643,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:644,1
    - Dst: FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:650,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:651,1
    - Dst: std::isspace
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:665,1
    - Dst: static_cast<unsigned char>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:665,1
    - Dst: strstr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:672,1
    - Dst: strstr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:673,1
    - Dst: strstr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:674,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:684,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 689
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 689
    functionName: STACTADataset::Identify
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::TryToIngest
    - static_cast<unsigned char>
    - GDALOpenInfo*::IsExtensionEqualToCI
    - std::isspace
    - strstr
    - FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    - STARTS_WITH
    linkageType: ''
    returnType: int
    signature: int STACTADataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:700,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:702,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:704,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:704,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:705,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:708,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:710,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:714,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:715,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:716,1
    - Dst: CPLJSONDocument::LoadUrl
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:718,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:723,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:726,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:728,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:729,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:731,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:736,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:737,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:739,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:743,1
    - Dst: auto::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:744,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:746,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:750,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:751,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:751,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:753,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:757,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:758,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:760,1
    - Dst: auto::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:765,1
    - Dst: auto::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:765,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:766,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:766,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:771,1
    - Dst: auto::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:773,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:777,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:779,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:780,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:781,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:781,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:784,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:785,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:786,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:794,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:795,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:796,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:796,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:799,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:800,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:801,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:808,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:810,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:812,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:813,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:814,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:816,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:817,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:821,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:823,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:825,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:826,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:826,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:828,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:830,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:834,1
    - Dst: auto::Format
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:835,1
    - Dst: auto::GetString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:839,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:840,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:842,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:844,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:846,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:847,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:849,1
    - Dst: strlen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:849,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:851,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:853,1
    - Dst: strlen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:853,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:856,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:857,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:859,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:860,1
    - Dst: CPLProjectRelativeFilenameSafe
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:861,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:862,1
    - Dst: auto::GetObj
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:867,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:868,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:870,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:872,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:879,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:880,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:882,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:885,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:886,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:887,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:888,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:889,1
    - Dst: auto::tileMatrixList
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:893,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:894,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:897,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:897,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:899,1
    - Dst: auto::GetArray
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:902,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:908,1
    - Dst: auto::GetArray
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:908,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:910,1
    - Dst: auto::GetArray
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:910,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:916,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:918,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:918,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:918,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:920,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:926,1
    - Dst: GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:952,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:954,1
    - Dst: GetString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:959,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:971,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:973,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:976,1
    - Dst: GetObj
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:978,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:979,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:981,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:984,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:985,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:986,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:990,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:991,1
    - Dst: cpl::infinity
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:992,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:996,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:997,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:998,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1002,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1005,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1006,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1007,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1010,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1011,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1012,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1014,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1015,1
    - Dst: auto::ToDouble
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1015,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1017,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1019,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1020,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1021,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1025,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1027,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1028,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1029,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1033,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1034,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1034,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1034,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1039,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1041,1
    - Dst: auto::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1041,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1046,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1047,1
    - Dst: CPLString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1053,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1055,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1056,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1057,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1058,1
    - Dst: CPLString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1059,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1065,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1066,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1066,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1066,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1068,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1075,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1076,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1082,1
    - Dst: std::unique_ptr::GetRasterCount
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1086,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1096,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1097,1
    - Dst: std::make_unique<STACTARawDataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1109,1
    - Dst: auto::InitRaster
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1110,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1110,1
    - Dst: auto::get
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1111,1
    - Dst: auto::m_osURLTemplate::replaceAll
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1116,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1121,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1122,1
    - Dst: memcpy
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1124,1
    - Dst: std::move
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1126,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1146,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1146,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1147,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1147,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1148,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1148,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1149,1
    - Dst: fabs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1149,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1151,1
    - Dst: std::move
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1151,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1157,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1158,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1159,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1160,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1161,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1161,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1162,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1162,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1163,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1163,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1164,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1164,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1166,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1166,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1168,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1168,1
    - Dst: auto::get
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1168,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1170,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1173,1
    - Dst: std::move
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1173,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1174,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1174,1
    - Dst: CPLError
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1180,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1185,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1187,1
    - Dst: STACTARasterBand::STACTARasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1188,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1189,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1189,1
    - Dst: GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1192,1
    - Dst: GetChildren
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1194,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1196,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1199,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1199,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1201,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1202,1
    - Dst: strlen
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1202,1
    - Dst: ToString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1203,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1205,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1206,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1207,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1208,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1209,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1210,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1212,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1213,1
    - Dst: ToString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1214,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1220,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1221,1
    - Dst: ToString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1221,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1226,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1227,1
    - Dst: GetType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1228,1
    - Dst: GetString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1230,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1235,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1236,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1241,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1243,1
    - Dst: auto::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1245,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1246,1
    - Dst: SetBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1250,1
    - Dst: auto::GetChildren
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1254,1
    - Dst: GetName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1256,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1260,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1260,1
    - Dst: ToString
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1261,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1269,1
    - Dst: OGRPGTableLayer::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1277,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1280,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1280,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 260
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1284
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 1284
    functionName: STACTADataset::Open
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetArray
    - auto::m_osURLTemplate::replaceAll
    - CPLJSONDocument::Load
    - GetObj
    - std::map::end
    - std::vector::size
    - auto::GetType
    - std::unique_ptr::GetRasterCount
    - auto::GetRasterYSize
    - STACTARasterBand::STACTARasterBand
    - CPLStringList::CPLStringList
    - gdal::TileMatrixSet::parse
    - std::make_unique<STACTARawDataset>
    - ToString
    - std::map::find
    - cpl::quiet_NaN
    - auto::GetObj
    - GetChildren
    - fabs
    - cpl::infinity
    - GetString
    - GetRasterBand
    - auto::GDALRasterBand::SetMetadataItem
    - std::string::c_str
    - CPLStringList::List
    - std::move
    - GetInteger
    - auto::Size
    - std::vector::empty
    - auto::ToString
    - auto::GetString
    - static_cast<int>
    - FromHandle
    - CPLAssert
    - GetType
    - auto::InitRaster
    - CSLFetchNameValueDef
    - GDALTranslateOptionsFree
    - CPLString
    - CPLProjectRelativeFilenameSafe
    - auto::tileMatrixList
    - CPLJSONDocument::LoadUrl
    - std::vector::push_back
    - GetRasterCount
    - CPLGetConfigOption
    - CPLString::empty
    - auto::c_str
    - CPLGetDirnameSafe
    - ToHandle
    - CPLString::c_str
    - OGRAPISpyOpen
    - CPLPopErrorHandler
    - strlen
    - std::unique_ptr::reset
    - CPLStringList::size
    - GetName
    - auto::ToDouble
    - CPLStringList::AddString
    - CPLSPrintf
    - auto::IsValid
    - GetDouble
    - SetBand
    - auto::GetRasterXSize
    - GDALTranslate
    - CPLPushErrorHandler
    - auto::get
    - CPLJSONDocument::GetRoot
    - CPLError
    - STARTS_WITH
    - auto::size
    - auto::Format
    - CPLString::substr
    - CSLTokenizeString2
    - emplace_back
    - auto::GetChildren
    - CPLTestBool
    - GDALTranslateOptionsNew
    - auto::empty
    - auto::GetRasterDataType
    - CPLString::replaceAll
    - std::unique_ptr::get
    - OGRPGTableLayer::SetMetadataItem
    - CPLJSONDocument::CPLJSONDocument
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool STACTADataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1292,1
    - Dst: clear
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1293,1
    - Dst: clear
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1295
    functionName: STACTADataset::~STACTADataset()
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - clear
    - reset
    linkageType: ''
    returnType: void
    signature: void STACTADataset::~STACTADataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1303,1
    - Dst: GDALDataset::FlushCache
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: STACTADataset::FlushCache
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::FlushCache
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr STACTADataset::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<CPLString, Limits>::find
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1322,1
    - Dst: std::map<CPLString, Limits>::end
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1323,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1337,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1339,1
    - Dst: STACTARawRasterBand::STACTARawRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1340,1
    - Dst: SetBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1341,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1346,1
    - Dst: std::vector<GDALDataType>::size
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1346,1
    - Dst: STACTARawRasterBand::STACTARawRasterBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1348,1
    - Dst: SetBand
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1350,1
    - Dst: gdal::TileMatrixSet*::crs
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1354,1
    - Dst: SetFromUserInput
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1357,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1361,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 8
    argNames:
    - poProtoDS
    - aeDT
    - abSetNoData
    - adfNoData
    - poTMS
    - osTMId
    - oTM
    - oMapLimits
    argTypes:
    - GDALDataset*
    - std::vector<GDALDataType>
    - std::vector<bool>
    - std::vector<double>
    - gdal::TileMatrixSet*
    - std::string
    - gdal::TileMatrixSet::TileMatrix
    - std::map<CPLString, Limits>
    constantsTouched: []
    func_position:
      end: 1371
      start: 1311
    functionDepth: 2
    functionLinenumber: 1311
    functionLinenumberEnd: 1371
    functionName: STACTARawDataset::InitRaster
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - SetBand
    - static_cast<int>
    - std::map<CPLString, Limits>::find
    - GDALDataset*::GetRasterBand
    - std::vector<GDALDataType>::size
    - std::map<CPLString, Limits>::end
    - SetMetadataItem
    - SetAxisMappingStrategy
    - STACTARawRasterBand::STACTARawRasterBand
    - GDALDataset*::GetRasterCount
    - gdal::TileMatrixSet*::crs
    - SetFromUserInput
    linkageType: ''
    returnType: bool
    signature: "bool STACTARawDataset::InitRaster(GDALDataset *poProtoDS,\n                                  const
      std::vector<GDALDataType> &aeDT,\n                                  const std::vector<bool>
      &abSetNoData,\n                                  const std::vector<double> &adfNoData,\n
      \                                 const gdal::TileMatrixSet *poTMS,\n                                  const
      std::string &osTMId,\n                                  const gdal::TileMatrixSet::TileMatrix
      &oTM,\n                                  const std::map<CPLString, Limits> &oMapLimits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1380
    functionName: STACTADataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *STACTADataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1390
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1390
    functionName: STACTADataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr STACTADataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACTADataset::Identify
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1398,1
    - Dst: std::make_unique<STACTADataset>
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1400,1
    - Dst: auto::Open
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1401,1
    - Dst: auto::release
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1404
      start: 1396
    functionDepth: 5
    functionLinenumber: 1396
    functionLinenumberEnd: 1404
    functionName: STACTADataset::OpenStatic
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 0
    functionsReached:
    - auto::Open
    - std::make_unique<STACTADataset>
    - auto::release
    - STACTADataset::Identify
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *STACTADataset::OpenStatic(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1413,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1416,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1418,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1419,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1420,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1422,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1423,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1424,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1425,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1426,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/stacta/stactadataset.cpp:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1439
    functionName: GDALRegister_STACTA
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_STACTA()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: STACTARasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/frmts/stacta/stactadataset.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: STACTARasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *GetUnitType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: STACTARasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetScale(int *pbHasValue = nullptr) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: STACTARasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GetOffset(int *pbHasValue = nullptr) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: STACTARawDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GetSpatialRef() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: STACTARawRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/stacta/stactadataset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:26,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: GIFDriverIdentify
    functionSourceFile: /src/gdal/frmts/gif/gifdrivercore.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int GIFDriverIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:36,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:37,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:38,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:40,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:41,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:42,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:43,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: BIGGIFDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/gif/gifdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void BIGGIFDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:55,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:56,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:57,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:59,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:60,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:61,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:62,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:64,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:70,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:73,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: GIFDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/gif/gifdrivercore.cpp
    functionUses: 0
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void GIFDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:84,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:89,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:91,1
    - Dst: GIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:94,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:95,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:98,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:100,1
    - Dst: BIGGIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:103,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gif/gifdrivercore.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 106
    functionName: DeclareDeferredGIFPlugin
    functionSourceFile: /src/gdal/frmts/gif/gifdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - GetGDALDriverManager
    - BIGGIFDriverSetCommonMetadata
    - auto::SetMetadataItem
    - GIFDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredGIFPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFAbstractDataset
      Src: /src/gdal/frmts/gif/gifabstractdataset.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 72
    functionName: GDALPamDataset
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.h
    functionUses: 0
    functionsReached:
    - GIFAbstractDataset
    linkageType: ''
    returnType: class GIFAbstractDataset
    signature: class GIFAbstractDataset GDALPamDataset
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFAbstractRasterBand
      Src: /src/gdal/frmts/gif/gifabstractdataset.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: GDALPamRasterBand
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.h
    functionUses: 0
    functionsReached:
    - GIFAbstractRasterBand
    linkageType: ''
    returnType: class GIFAbstractRasterBand
    signature: class GIFAbstractRasterBand GDALPamRasterBand
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: GIFAbstractDataset::GIFAbstractDataset
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GIFAbstractDataset::GIFAbstractDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:44,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:48,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:49,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:53,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: GIFAbstractDataset::~GIFAbstractDataset()
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - GIFAbstractDataset::myDGifCloseFile
    - GDALDeinitGCPs
    - CPLFree
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void GIFAbstractDataset::~GIFAbstractDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:73,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:77,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:92,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:109,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:121,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:121,1
    - Dst: strlen
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:126,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:139,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:147,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:150,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 153
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 153
    functionName: GIFCollectXMPMetadata
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - memcmp
    - VSIFTellL
    - strlen
    - VSIFReadL
    - VSIFree
    - memcpy
    linkageType: ''
    returnType: CPLString
    signature: CPLString GIFCollectXMPMetadata(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFCollectXMPMetadata
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:165,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:166,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:172,1
    - Dst: SetMetadata
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 181
    functionName: GIFAbstractDataset::CollectXMPMetadata
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - SetMetadata
    - CPLString::c_str
    - CPLString::empty
    - GIFCollectXMPMetadata
    linkageType: ''
    returnType: void
    signature: void GIFAbstractDataset::CollectXMPMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:189,1
    - Dst: OGRWFSDataSource::GetMetadataDomainList
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: GIFAbstractDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadataDomainList
    - BuildMetadataDomainList
    linkageType: ''
    returnType: char
    signature: char **GIFAbstractDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:202,1
    - Dst: GIFAbstractDataset::CollectXMPMetadata
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:203,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: GIFAbstractDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GIFAbstractDataset::CollectXMPMetadata
    - GDALPamDataset::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **GIFAbstractDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:216,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: GIFAbstractDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GIFAbstractDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::GetGCPCount
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: GIFAbstractDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::GetGCPCount
    linkageType: ''
    returnType: int
    signature: int GIFAbstractDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::GetGCPs
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: GIFAbstractDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::GetGCPs
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *GIFAbstractDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:258,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:259,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: GIFAbstractDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CSLFindString
    - empty
    linkageType: ''
    returnType: char
    signature: char **GIFAbstractDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALReadWorldFile2
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:276,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:277,1
    - Dst: GDALReadWorldFile2
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:281,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:282,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: GIFAbstractDataset::DetectGeoreferencing
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - GDALOpenInfo*::GetSiblingFiles
    - GDALReadWorldFile2
    linkageType: ''
    returnType: void
    signature: void GIFAbstractDataset::DetectGeoreferencing(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifOpen
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:300,1
    - Dst: DGifOpen
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - userPtr
    - readFunc
    argTypes:
    - void*
    - InputFunc
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: GIFAbstractDataset::myDGifOpen
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - DGifOpen
    linkageType: ''
    returnType: GifFileType
    signature: GifFileType *GIFAbstractDataset::myDGifOpen(void *userPtr, InputFunc
      readFunc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifCloseFile
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:315,1
    - Dst: DGifCloseFile
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - hGifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: GIFAbstractDataset::myDGifCloseFile
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 1
    functionsReached:
    - DGifCloseFile
    linkageType: ''
    returnType: int
    signature: int GIFAbstractDataset::myDGifCloseFile(GifFileType *hGifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EGifCloseFile
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:330,1
    - Dst: EGifCloseFile
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - hGifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: GIFAbstractDataset::myEGifCloseFile
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - EGifCloseFile
    linkageType: ''
    returnType: int
    signature: int GIFAbstractDataset::myEGifCloseFile(GifFileType *hGifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:346,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - psGFile
    - pabyBuffer
    - nBytesToRead
    argTypes:
    - GifFileType*
    - GifByteType*
    - int
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: GIFAbstractDataset::ReadFunc
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: "int GIFAbstractDataset::ReadFunc(GifFileType *psGFile, GifByteType
      *pabyBuffer,\n                                 int nBytesToRead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifGetRecordType
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:358,1
    - Dst: DGifGetExtension
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:367,1
    - Dst: DGifGetExtensionNext
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - hGifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 378
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 378
    functionName: GIFAbstractDataset::FindFirstImage
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - DGifGetExtension
    - DGifGetRecordType
    - DGifGetExtensionNext
    linkageType: ''
    returnType: GifRecordType
    signature: GifRecordType GIFAbstractDataset::FindFirstImage(GifFileType *hGifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:397,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:412,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:414,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:425,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:457,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:471,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:484,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:485,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 5
    argNames:
    - poDSIn
    - nBandIn
    - psSavedImage
    - nBackground
    - bAdvertiseInterlacedMDI
    argTypes:
    - GIFAbstractDataset*
    - int
    - SavedImage*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 487
    functionName: GIFAbstractRasterBand::GIFAbstractRasterBand
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - SetColorEntry
    - GDALColorTable::GDALColorTable
    - snprintf
    - CPLCalloc
    - SetMetadataItem
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: "void GIFAbstractRasterBand::GIFAbstractRasterBand(GIFAbstractDataset
      *poDSIn,\n                                             int nBandIn,\n                                             SavedImage
      *psSavedImage,\n                                             int nBackground,\n
      \                                            int bAdvertiseInterlacedMDI)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/gif/gifabstractdataset.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: GIFAbstractRasterBand::~GIFAbstractRasterBand()
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GIFAbstractRasterBand::~GIFAbstractRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: GIFAbstractRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GIFAbstractRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: GIFAbstractRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GIFAbstractRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: GIFAbstractRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/gif/gifabstractdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GIFAbstractRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poDSIn
    - nBackground
    argTypes:
    - BIGGIFDataset*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: BIGGifRasterBand::BIGGifRasterBand
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIGGifRasterBand::BIGGifRasterBand(BIGGIFDataset *poDSIn, int
      nBackground)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BIGGIFDataset *>
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:84,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:86,1
    - Dst: BIGGIFDataset*::poWorkDS::RasterIO
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:96,1
    - Dst: BIGGIFDataset*::ReOpen
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:106,1
    - Dst: DGifGetLine
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:116,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:119,1
    - Dst: BIGGIFDataset*::poWorkDS::RasterIO
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 135
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 135
    functionName: BIGGifRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached:
    - BIGGIFDataset*::ReOpen
    - CPLAssert
    - cpl::down_cast<BIGGIFDataset *>
    - CPLError
    - DGifGetLine
    - BIGGIFDataset*::poWorkDS::RasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr BIGGifRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff, int
      nBlockYOff,\n                                    void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: BIGGIFDataset::BIGGIFDataset
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIGGIFDataset::BIGGIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRDGNV8DataSource::FlushCache
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:158,1
    - Dst: BIGGIFDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: BIGGIFDataset::~BIGGIFDataset()
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached:
    - BIGGIFDataset::CloseDependentDatasets
    - OGRDGNV8DataSource::FlushCache
    linkageType: ''
    returnType: void
    signature: void BIGGIFDataset::~BIGGIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetDescription
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:175,1
    - Dst: GetDriver
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:176,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:178,1
    - Dst: GDALDriver*::Delete
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: BIGGIFDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::Delete
    - GetDescription
    - GetDriver
    - GDALClose
    linkageType: ''
    returnType: int
    signature: int BIGGIFDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:204,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:215,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:223,1
    - Dst: GDALDriver*::Create
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:227,1
    - Dst: const_cast<char **>
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:229,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:236,1
    - Dst: GIFAbstractDataset::myDGifOpen
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:239,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:242,1
    - Dst: FindFirstImage
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:251,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:254,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:257,1
    - Dst: DGifGetImageDesc
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:262,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:264,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 273
    functionName: BIGGIFDataset::ReOpen
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached:
    - const_cast<char **>
    - GDALGetDriverByName
    - GDALDriver*::Create
    - GIFAbstractDataset::myDGifCloseFile
    - VSIFSeekL
    - FindFirstImage
    - DGifGetImageDesc
    - CPLError
    - GIFAbstractDataset::myDGifOpen
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr BIGGIFDataset::ReOpen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFDriverIdentify
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:282,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:287,1
    - Dst: BIGGIFDataset::BIGGIFDataset
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:294,1
    - Dst: BIGGIFDataset*::ReOpen
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:299,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:311,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:320,1
    - Dst: BIGGIFDataset*::SetBand
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:328,1
    - Dst: BIGGifRasterBand::BIGGifRasterBand
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:329,1
    - Dst: BIGGIFDataset*::DetectGeoreferencing
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:334,1
    - Dst: BIGGIFDataset*::SetDescription
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:339,1
    - Dst: BIGGIFDataset*::TryLoadXML
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:340,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:340,1
    - Dst: BIGGIFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:345,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 349
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 349
    functionName: BIGGIFDataset::Open
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 0
    functionsReached:
    - BIGGIFDataset*::TryLoadXML
    - BIGGIFDataset*::SetBand
    - ReportUpdateNotSupportedByDriver
    - CPLDebug
    - GDALCheckDatasetDimensions
    - BIGGIFDataset*::ReOpen
    - BIGGifRasterBand::BIGGifRasterBand
    - GDALOpenInfo*::GetSiblingFiles
    - BIGGIFDataset::BIGGIFDataset
    - BIGGIFDataset*::DetectGeoreferencing
    - GIFDriverIdentify
    - BIGGIFDataset*::SetDescription
    - BIGGIFDataset*::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *BIGGIFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:358,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:361,1
    - Dst: BIGGIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:362,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gif/biggifdataset.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 367
    functionName: GDALRegister_BIGGIF
    functionSourceFile: /src/gdal/frmts/gif/biggifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - BIGGIFDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void GDALRegister_BIGGIF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSILFILE *>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:45,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:46,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gif/gifdataset.cpp:47,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:60,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:60,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:62,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:65,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - psGFile
    - pabyBuffer
    - nBytesToWrite
    argTypes:
    - GifFileType*
    - GifByteType*
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 66
    functionName: VSIGIFWriteFunc
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<const char *>
    - memcmp
    - VSIFWriteL
    - VSIFTellL
    - static_cast<VSILFILE *>
    linkageType: ''
    returnType: CPL_C_END
    signature: "CPL_C_END VSIGIFWriteFunc(GifFileType *psGFile, const GifByteType
      *pabyBuffer,\n                           int nBytesToWrite)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: GIFDataset::~GIFDataset()
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GIFDataset::~GIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - poDSIn
    - nBandIn
    - psSavedImage
    - nBackground
    argTypes:
    - GIFDataset*
    - int
    - SavedImage*
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: GIFRasterBand::GIFRasterBand
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GIFRasterBand::GIFRasterBand(GIFDataset *poDSIn, int nBandIn,\n
      \                            SavedImage *psSavedImage, int nBackground)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gif/gifdataset.cpp:125,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/gifdataset.cpp:129,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/gifdataset.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: GIFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached:
    - memset
    - CPLAssert
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GIFRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff, int nBlockYOff,\n
      \                                void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: GIFDataset::GIFDataset
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GIFDataset::GIFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GIFDriverIdentify
      Src: /src/gdal/frmts/gif/gifdataset.cpp:162,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/gif/gifdataset.cpp:167,1
    - Dst: GIFAbstractDataset::myDGifOpen
      Src: /src/gdal/frmts/gif/gifdataset.cpp:178,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:181,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:182,1
    - Dst: FindFirstImage
      Src: /src/gdal/frmts/gif/gifdataset.cpp:196,1
    - Dst: DGifGetImageDesc
      Src: /src/gdal/frmts/gif/gifdataset.cpp:198,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:202,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gif/gifdataset.cpp:204,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:207,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:210,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:215,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:217,1
    - Dst: GIFAbstractDataset::myDGifOpen
      Src: /src/gdal/frmts/gif/gifdataset.cpp:219,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:222,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:223,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:235,1
    - Dst: GIFAbstractDataset::myDGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:236,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gif/gifdataset.cpp:240,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:249,1
    - Dst: GIFDataset::GIFDataset
      Src: /src/gdal/frmts/gif/gifdataset.cpp:260,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/gif/gifdataset.cpp:271,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gif/gifdataset.cpp:291,1
    - Dst: GIFDataset*::SetBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:298,1
    - Dst: GIFRasterBand::GIFRasterBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:299,1
    - Dst: GIFDataset*::DetectGeoreferencing
      Src: /src/gdal/frmts/gif/gifdataset.cpp:311,1
    - Dst: GIFDataset*::SetDescription
      Src: /src/gdal/frmts/gif/gifdataset.cpp:316,1
    - Dst: GIFDataset*::TryLoadXML
      Src: /src/gdal/frmts/gif/gifdataset.cpp:317,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/gifdataset.cpp:317,1
    - Dst: GIFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gif/gifdataset.cpp:322,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gif/gifdataset.cpp:323,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 326
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 326
    functionName: GIFDataset::Open
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached:
    - GIFDataset*::DetectGeoreferencing
    - GIFAbstractDataset::myDGifCloseFile
    - DGifGetImageDesc
    - CPLDebug
    - GIFDataset::GIFDataset
    - FindFirstImage
    - CPLError
    - GIFDataset*::SetDescription
    - GIFRasterBand::GIFRasterBand
    - GIFDataset*::SetBand
    - GIFDataset*::TryLoadXML
    - VSIFSeekL
    - GDALOpenInfo*::GetSiblingFiles
    - GIFDriverIdentify
    - GIFAbstractDataset::myDGifOpen
    - static_cast<double>
    - GIFDataset*::oOvManager::Initialize
    - VSIFCloseL
    - ReportUpdateNotSupportedByDriver
    - GDALCheckDatasetDimensions
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GIFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:349,1
    - Dst: PrintGifError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:352,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - GifFileType *hGifFile
    - pszMsg
    argTypes:
    - CPL_UNUSED
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: GDALPrintGifError
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - PrintGifError
    linkageType: ''
    returnType: void
    signature: "void GDALPrintGifError(CPL_UNUSED GifFileType *hGifFile,\n                              const
      char *pszMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:379,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:389,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:395,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:397,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gif/gifdataset.cpp:400,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:401,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:409,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:412,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gif/gifdataset.cpp:413,1
    - Dst: EGifOpen
      Src: /src/gdal/frmts/gif/gifdataset.cpp:419,1
    - Dst: EGifOpen
      Src: /src/gdal/frmts/gif/gifdataset.cpp:421,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:425,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:426,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:436,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/gif/gifdataset.cpp:439,1
    - Dst: GifMakeMapObject
      Src: /src/gdal/frmts/gif/gifdataset.cpp:441,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:444,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:446,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:447,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:452,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:453,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:454,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/gif/gifdataset.cpp:459,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/gif/gifdataset.cpp:462,1
    - Dst: GifMakeMapObject
      Src: /src/gdal/frmts/gif/gifdataset.cpp:465,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:468,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:470,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:471,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/gif/gifdataset.cpp:475,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/gif/gifdataset.cpp:479,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:480,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:481,1
    - Dst: static_cast<GifByteType>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:482,1
    - Dst: EGifPutScreenDesc
      Src: /src/gdal/frmts/gif/gifdataset.cpp:495,1
    - Dst: GifFreeMapObject
      Src: /src/gdal/frmts/gif/gifdataset.cpp:499,1
    - Dst: GDALPrintGifError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:500,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:501,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:502,1
    - Dst: GifFreeMapObject
      Src: /src/gdal/frmts/gif/gifdataset.cpp:506,1
    - Dst: EGifPutExtension
      Src: /src/gdal/frmts/gif/gifdataset.cpp:517,1
    - Dst: EGifPutImageDesc
      Src: /src/gdal/frmts/gif/gifdataset.cpp:520,1
    - Dst: GDALPrintGifError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:523,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:524,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:525,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:533,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gif/gifdataset.cpp:533,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gif/gifdataset.cpp:535,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:537,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/gif/gifdataset.cpp:544,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:546,1
    - Dst: EGifPutLine
      Src: /src/gdal/frmts/gif/gifdataset.cpp:549,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:551,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gif/gifdataset.cpp:556,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/gif/gifdataset.cpp:573,1
    - Dst: EGifPutLine
      Src: /src/gdal/frmts/gif/gifdataset.cpp:577,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:579,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gif/gifdataset.cpp:585,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gif/gifdataset.cpp:594,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:600,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gif/gifdataset.cpp:602,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:608,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gif/gifdataset.cpp:614,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/gif/gifdataset.cpp:618,1
    - Dst: GDALWriteWorldFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:619,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/gif/gifdataset.cpp:628,1
    - Dst: static_cast<GDALPamDataset *>
      Src: /src/gdal/frmts/gif/gifdataset.cpp:629,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/gif/gifdataset.cpp:629,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/gif/gifdataset.cpp:630,1
    - Dst: GDALPamDataset*::CloneInfo
      Src: /src/gdal/frmts/gif/gifdataset.cpp:633,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/gif/gifdataset.cpp:638,1
    - Dst: GIFDataset::GIFDataset
      Src: /src/gdal/frmts/gif/gifdataset.cpp:640,1
    - Dst: GIFDataset*::SetBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:644,1
    - Dst: GIFRasterBand::GIFRasterBand
      Src: /src/gdal/frmts/gif/gifdataset.cpp:645,1
    - Dst: GIFAbstractDataset::myEGifCloseFile
      Src: /src/gdal/frmts/gif/gifdataset.cpp:651,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gif/gifdataset.cpp:653,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gif/gifdataset.cpp:655,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 144
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 657
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 657
    functionName: GIFDataset::CreateCopy
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALColorTable*::GetColorEntryCount
    - GDALPrintGifError
    - static_cast<GDALPamDataset *>
    - GIFDataset::GIFDataset
    - CPLError
    - GDALRasterBand*::RasterIO
    - GDALGetDataTypeName
    - CPLErrorReset
    - GIFAbstractDataset::myEGifCloseFile
    - GDALWriteWorldFile
    - pfnProgress
    - CPLPopErrorHandler
    - EGifPutExtension
    - GIFRasterBand::GIFRasterBand
    - EGifPutImageDesc
    - GIFDataset*::SetBand
    - CPLMalloc
    - GDALDataset*::GetGeoTransform
    - GDALRasterBand*::GetColorTable
    - GDALPamDataset*::CloneInfo
    - CPLFetchBool
    - GDALDataset*::GetRasterBand
    - EGifPutScreenDesc
    - GifMakeMapObject
    - VSIFOpenL
    - static_cast<GByte *>
    - CPLFree
    - VSIStrerror
    - EGifOpen
    - VSIFCloseL
    - GifFreeMapObject
    - GDALColorTable*::GetColorEntryAsRGB
    - EGifPutLine
    - static_cast<GifByteType>
    - CPLPushErrorHandler
    - static_cast<GSpacing>
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GIFDataset::CreateCopy(const char *pszFilename,\n                                    GDALDataset
      *poSrcDS, int bStrict,\n                                    char **papszOptions,\n
      \                                   GDALProgressFunc pfnProgress,\n                                    void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gif/gifdataset.cpp:666,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gif/gifdataset.cpp:669,1
    - Dst: GIFDriverSetCommonMetadata
      Src: /src/gdal/frmts/gif/gifdataset.cpp:671,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gif/gifdataset.cpp:675,1
    - Dst: GDALRegister_BIGGIF
      Src: /src/gdal/frmts/gif/gifdataset.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: GDALRegister_GIF
    functionSourceFile: /src/gdal/frmts/gif/gifdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    - GDALRegister_BIGGIF
    - GIFDriverSetCommonMetadata
    linkageType: ''
    returnType: void
    signature: void GDALRegister_GIF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:87,1
    - Dst: open
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:93,1
    - Dst: EGifOpenFileHandle
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:103,1
    - Dst: close
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - FileName
    - TestExistence
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 107
    functionName: EGifOpenFileName
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - open
    - EGifOpenFileHandle
    - close
    linkageType: ''
    returnType: GifFileType
    signature: "GifFileType *\nEGifOpenFileName(const char *FileName,\n                 int
      TestExistence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:122,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:128,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:130,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:132,1
    - Dst: _InitHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:136,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:137,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:138,1
    - Dst: setmode
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:144,1
    - Dst: fdopen
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:147,1
    - Dst: setvbuf
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - FileHandle
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 165
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 165
    functionName: EGifOpenFileHandle
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - free
    - setmode
    - setvbuf
    - malloc
    - memset
    - _InitHashTable
    - fdopen
    linkageType: ''
    returnType: GifFileType
    signature: 'GifFileType *

      EGifOpenFileHandle(int FileHandle)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:178,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:184,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:186,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:188,1
    - Dst: _InitHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:193,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:195,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - userData
    - writeFunc
    argTypes:
    - void*
    - OutputFunc
    constantsTouched: []
    func_position:
      end: 212
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 212
    functionName: EGifOpen
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - memset
    - free
    - malloc
    - _InitHashTable
    linkageType: ''
    returnType: GifFileType
    signature: "GifFileType *\nEGifOpen(void *userData,\n         OutputFunc writeFunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Version
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: EGifSetGifVersion
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: void EGifSetGifVersion(const char *Version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:245,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:253,1
    - Dst: strlen
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:254,1
    - Dst: strlen
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:254,1
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:265,1
    - Dst: EGifPutWord
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:278,1
    - Dst: EGifPutWord
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:279,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:293,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 6
    argNames:
    - GifFile
    - Width
    - Height
    - ColorRes
    - BackGround
    - ColorMap
    argTypes:
    - GifFileType*
    - int
    - int
    - int
    - int
    - ColorMapObject*
    constantsTouched: []
    func_position:
      end: 315
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 315
    functionName: EGifPutScreenDesc
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - WRITE
    - IS_WRITEABLE
    - strlen
    - MakeMapObject
    - EGifPutWord
    linkageType: ''
    returnType: int
    signature: "int EGifPutScreenDesc(GifFileType * GifFile,\n                  int
      Width,\n                  int Height,\n                  int ColorRes,\n                  int
      BackGround,\n                  const ColorMapObject * ColorMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:421,1
    - Dst: EGifCompressLine
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - GifFile
    - Line
    - LineLen
    argTypes:
    - GifFileType*
    - GifPixelType*
    - int
    constantsTouched: []
    func_position:
      end: 442
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 442
    functionName: EGifPutLine
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - EGifCompressLine
    - IS_WRITEABLE
    linkageType: ''
    returnType: int
    signature: "int EGifPutLine(GifFileType * GifFile,\n            GifPixelType *
      Line,\n            int LineLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:453,1
    - Dst: EGifCompressLine
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - GifFile
    - Pixel
    argTypes:
    - GifFileType*
    - GifPixelType
    constantsTouched: []
    func_position:
      end: 470
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 470
    functionName: EGifPutPixel
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - EGifCompressLine
    - IS_WRITEABLE
    linkageType: ''
    returnType: int
    signature: "int EGifPutPixel(GifFileType * GifFile,\n             GifPixelType
      Pixel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:482,1
    - Dst: EGifPutExtension
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:484,1
    - Dst: EGifPutExtensionFirst
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:488,1
    - Dst: EGifPutExtensionNext
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:497,1
    - Dst: EGifPutExtensionLast
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - GifFile
    - Comment
    argTypes:
    - GifFileType*
    - char*
    constantsTouched: []
    func_position:
      end: 509
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 509
    functionName: EGifPutComment
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - EGifPutExtensionFirst
    - EGifPutExtensionNext
    - EGifPutExtensionLast
    - EGifPutExtension
    - strlen
    linkageType: ''
    returnType: int
    signature: "int EGifPutComment(GifFileType * GifFile,\n               const char
      *Comment)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:525,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:532,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:537,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - GifFile
    - ExtCode
    - ExtLen
    - Extension
    argTypes:
    - GifFileType*
    - int
    - int
    - VoidPtr
    constantsTouched: []
    func_position:
      end: 543
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 543
    functionName: EGifPutExtensionFirst
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - IS_WRITEABLE
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutExtensionFirst(GifFileType * GifFile,\n                      int
      ExtCode,\n                      int ExtLen,\n                      const VoidPtr
      Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:557,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:564,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - GifFile
    - ExtCode
    - ExtLen
    - Extension
    argTypes:
    - GifFileType*
    - int
    - int
    - VoidPtr
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: EGifPutExtensionNext
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - IS_WRITEABLE
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutExtensionNext(GifFileType * GifFile,\n                     int
      ExtCode,\n                     int ExtLen,\n                     const VoidPtr
      Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:582,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:591,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:592,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - GifFile
    - ExtCode
    - ExtLen
    - Extension
    argTypes:
    - GifFileType*
    - int
    - int
    - VoidPtr
    constantsTouched: []
    func_position:
      end: 600
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 600
    functionName: EGifPutExtensionLast
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - IS_WRITEABLE
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutExtensionLast(GifFileType * GifFile,\n                     int
      ExtCode,\n                     int ExtLen,\n                     const VoidPtr
      Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:617,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:624,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:629,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:631,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - GifFile
    - ExtCode
    - ExtLen
    - Extension
    argTypes:
    - GifFileType*
    - int
    - int
    - VoidPtr
    constantsTouched: []
    func_position:
      end: 636
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 636
    functionName: EGifPutExtension
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 2
    functionsReached:
    - IS_WRITEABLE
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutExtension(GifFileType * GifFile,\n                 int
      ExtCode,\n                 int ExtLen,\n                 const VoidPtr Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:652,1
    - Dst: EGifPutCodeNext
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - GifFile
    - CodeSize
    - CodeBlock
    argTypes:
    - GifFileType*
    - int
    - GifByteType*
    constantsTouched: []
    func_position:
      end: 668
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 668
    functionName: EGifPutCode
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - EGifPutCodeNext
    - IS_WRITEABLE
    linkageType: ''
    returnType: int
    signature: "int EGifPutCode(GifFileType * GifFile,\n            int CodeSize,\n
      \           const GifByteType * CodeBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:683,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - GifFile
    - CodeBlock
    argTypes:
    - GifFileType*
    - GifByteType*
    constantsTouched: []
    func_position:
      end: 698
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 698
    functionName: EGifPutCodeNext
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutCodeNext(GifFileType * GifFile,\n                const
      GifByteType * CodeBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WRITEABLE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:714,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:717,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:724,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:727,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:731,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:736,1
    - Dst: fclose
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:739,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:741,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:742,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:746,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:747,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 750
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 750
    functionName: EGifCloseFile
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 2
    functionsReached:
    - free
    - fclose
    - WRITE
    - IS_WRITEABLE
    - FreeMapObject
    linkageType: ''
    returnType: int
    signature: int EGifCloseFile(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Word
    - GifFile
    argTypes:
    - int
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 771
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 771
    functionName: EGifPutWord
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifPutWord(int Word,\n            GifFileType * GifFile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:794,1
    - Dst: _ClearHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:808,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 815
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 815
    functionName: EGifSetupCompress
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - _ClearHashTable
    - EGifCompressOutput
    - WRITE
    linkageType: ''
    returnType: int
    signature: int EGifSetupCompress(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ExistsHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:847,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:856,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:867,1
    - Dst: _ClearHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:875,1
    - Dst: _InsertHashTable
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:878,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:889,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:893,1
    - Dst: EGifCompressOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:897,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - GifFile
    - Line
    - LineLen
    argTypes:
    - GifFileType*
    - GifPixelType*
    - int
    constantsTouched: []
    func_position:
      end: 904
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 904
    functionName: EGifCompressLine
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 2
    functionsReached:
    - _ExistsHashTable
    - _ClearHashTable
    - _InsertHashTable
    - EGifCompressOutput
    linkageType: ''
    returnType: int
    signature: "int EGifCompressLine(GifFileType * GifFile,\n                 GifPixelType
      * Line,\n                 int LineLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EGifBufferedOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:922,1
    - Dst: EGifBufferedOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:929,1
    - Dst: EGifBufferedOutput
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:937,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - GifFile
    - Code
    argTypes:
    - GifFileType*
    - int
    constantsTouched: []
    func_position:
      end: 952
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 952
    functionName: EGifCompressOutput
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 2
    functionsReached:
    - EGifBufferedOutput
    linkageType: ''
    returnType: int
    signature: "int EGifCompressOutput(GifFileType * GifFile,\n                   int
      Code)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:968,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:974,1
    - Dst: WRITE
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - GifFile
    - Buf
    - c
    argTypes:
    - GifFileType*
    - GifByteType*
    - int
    constantsTouched: []
    func_position:
      end: 991
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 991
    functionName: EGifBufferedOutput
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 1
    functionsReached:
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int EGifBufferedOutput(GifFileType * GifFile,\n                   GifByteType
      * Buf,\n                   int c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1017,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1019,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1021,1
    - Dst: EGifPutScreenDesc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1023,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1029,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1032,1
    - Dst: EGifPutExtension
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1053,1
    - Dst: EGifPutExtensionFirst
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1060,1
    - Dst: EGifPutExtensionNext
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1066,1
    - Dst: EGifPutExtensionLast
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1069,1
    - Dst: EGifPutImageDesc
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1075,1
    - Dst: EGifPutLine
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1085,1
    - Dst: EGifCloseFile
      Src: /src/gdal/frmts/gif/giflib/egif_lib.c:1092,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 1
    argNames:
    - GifFileOut
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 1096
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1096
    functionName: EGifSpew
    functionSourceFile: /src/gdal/frmts/gif/giflib/egif_lib.c
    functionUses: 0
    functionsReached:
    - EGifPutExtensionFirst
    - EGifPutExtensionNext
    - EGifPutExtensionLast
    - EGifCloseFile
    - EGifPutScreenDesc
    - EGifPutExtension
    - EGifPutLine
    - EGifPutImageDesc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int EGifSpew(GifFileType * GifFileOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:74,1
    - Dst: DGifOpenFileHandle
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: DGifOpenFileName
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 0
    functionsReached:
    - open
    - DGifOpenFileHandle
    linkageType: ''
    returnType: GifFileType
    signature: 'GifFileType *

      DGifOpenFileName(const char *FileName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:100,1
    - Dst: close
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:103,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:107,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:109,1
    - Dst: close
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:112,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:113,1
    - Dst: setmode
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:117,1
    - Dst: fdopen
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:120,1
    - Dst: setvbuf
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:123,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:136,1
    - Dst: fclose
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:138,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:139,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:140,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:147,1
    - Dst: fclose
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:149,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:150,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:151,1
    - Dst: DGifGetScreenDesc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:155,1
    - Dst: fclose
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:156,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:157,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 1
    argNames:
    - FileHandle
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 165
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 165
    functionName: DGifOpenFileHandle
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - free
    - close
    - fclose
    - setmode
    - strncmp
    - DGifGetScreenDesc
    - setvbuf
    - malloc
    - READ
    - memset
    - fdopen
    linkageType: ''
    returnType: GifFileType
    signature: 'GifFileType *

      DGifOpenFileHandle(int FileHandle)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:180,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:186,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:188,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:191,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:205,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:207,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:208,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:215,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:217,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:218,1
    - Dst: DGifGetScreenDesc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:222,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:223,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - userData
    - readFunc
    argTypes:
    - void*
    - InputFunc
    constantsTouched: []
    func_position:
      end: 231
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 231
    functionName: DGifOpen
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 3
    functionsReached:
    - free
    - strncmp
    - READ
    - malloc
    - memset
    - DGifGetScreenDesc
    linkageType: ''
    returnType: GifFileType
    signature: "GifFileType *\nDGifOpen(void *userData,\n         InputFunc readFunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:244,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:251,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:252,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:256,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:258,1
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:267,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:276,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 291
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 291
    functionName: DGifGetScreenDesc
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - DGifGetWord
    - IS_READABLE
    - READ
    - MakeMapObject
    - FreeMapObject
    linkageType: ''
    returnType: int
    signature: int DGifGetScreenDesc(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:303,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - GifFile
    - Type
    argTypes:
    - GifFileType*
    - GifRecordType*
    constantsTouched: []
    func_position:
      end: 332
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 332
    functionName: DGifGetRecordType
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - IS_READABLE
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifGetRecordType(GifFileType * GifFile,\n                  GifRecordType
      * Type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:346,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:352,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:353,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:354,1
    - Dst: DGifGetWord
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:355,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:358,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:360,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:367,1
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:372,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:381,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:382,1
    - Dst: realloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:394,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:404,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:411,1
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:413,1
    - Dst: DGifSetupDecompress
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:430,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 433
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 433
    functionName: DGifGetImageDesc
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - DGifSetupDecompress
    - DGifGetWord
    - IS_READABLE
    - READ
    - MakeMapObject
    - realloc
    - malloc
    - memcpy
    - FreeMapObject
    linkageType: ''
    returnType: int
    signature: int DGifGetImageDesc(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:489,1
    - Dst: DGifDecompressLine
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:504,1
    - Dst: DGifGetCodeNext
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:510,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - GifFile
    - Pixel
    argTypes:
    - GifFileType*
    - GifPixelType
    constantsTouched: []
    func_position:
      end: 517
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 517
    functionName: DGifGetPixel
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 0
    functionsReached:
    - IS_READABLE
    - DGifDecompressLine
    - DGifGetCodeNext
    linkageType: ''
    returnType: int
    signature: "int DGifGetPixel(GifFileType * GifFile,\n             GifPixelType
      Pixel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:534,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:541,1
    - Dst: DGifGetExtensionNext
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - GifFile
    - ExtCode
    - Extension
    argTypes:
    - GifFileType*
    - int*
    - GifByteType**
    constantsTouched: []
    func_position:
      end: 548
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 548
    functionName: DGifGetExtension
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - IS_READABLE
    - DGifGetExtensionNext
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifGetExtension(GifFileType * GifFile,\n                 int
      *ExtCode,\n                 GifByteType ** Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:563,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - GifFile
    - Extension
    argTypes:
    - GifFileType*
    - GifByteType**
    constantsTouched: []
    func_position:
      end: 580
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 580
    functionName: DGifGetExtensionNext
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifGetExtensionNext(GifFileType * GifFile,\n                     GifByteType
      ** Extension)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:596,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:605,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:610,1
    - Dst: FreeSavedImages
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:615,1
    - Dst: fclose
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:619,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:621,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:622,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:626,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 630
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 630
    functionName: DGifCloseFile
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 4
    functionsReached:
    - free
    - fclose
    - FreeSavedImages
    - IS_READABLE
    - FreeMapObject
    linkageType: ''
    returnType: int
    signature: int DGifCloseFile(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - GifFile
    - Word
    argTypes:
    - GifFileType*
    - GifWord*
    constantsTouched: []
    func_position:
      end: 649
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 649
    functionName: DGifGetWord
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifGetWord(GifFileType * GifFile,\n            GifWord *Word)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:665,1
    - Dst: DGifGetCodeNext
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - GifFile
    - CodeSize
    - CodeBlock
    argTypes:
    - GifFileType*
    - int*
    - GifByteType**
    constantsTouched: []
    func_position:
      end: 674
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 674
    functionName: DGifGetCode
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 0
    functionsReached:
    - IS_READABLE
    - DGifGetCodeNext
    linkageType: ''
    returnType: int
    signature: "int DGifGetCode(GifFileType * GifFile,\n            int *CodeSize,\n
      \           GifByteType ** CodeBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:690,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - GifFile
    - CodeBlock
    argTypes:
    - GifFileType*
    - GifByteType**
    constantsTouched: []
    func_position:
      end: 712
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 712
    functionName: DGifGetCodeNext
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifGetCodeNext(GifFileType * GifFile,\n                GifByteType
      ** CodeBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 748
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 748
    functionName: DGifSetupDecompress
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - READ
    linkageType: ''
    returnType: int
    signature: int DGifSetupDecompress(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifDecompressInput
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:786,1
    - Dst: DGifGetPrefixChar
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:823,1
    - Dst: DGifGetPrefixChar
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:828,1
    - Dst: DGifGetPrefixChar
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:864,1
    - Dst: DGifGetPrefixChar
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:867,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 3
    argNames:
    - GifFile
    - Line
    - LineLen
    argTypes:
    - GifFileType*
    - GifPixelType*
    - int
    constantsTouched: []
    func_position:
      end: 878
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 878
    functionName: DGifDecompressLine
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - DGifGetPrefixChar
    - DGifDecompressInput
    linkageType: ''
    returnType: int
    signature: "int DGifDecompressLine(GifFileType * GifFile,\n                   GifPixelType
      * Line,\n                   int LineLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - Prefix
    - Code
    - ClearCode
    argTypes:
    - GifPrefixType*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 900
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 900
    functionName: DGifGetPrefixChar
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DGifGetPrefixChar(GifPrefixType *Prefix,\n                  int
      Code,\n                  int ClearCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_READABLE
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:913,1
    - Dst: DGifDecompressInput
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:919,1
    - Dst: DGifGetCodeNext
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - GifFile
    - Code
    argTypes:
    - GifFileType*
    - int*
    constantsTouched: []
    func_position:
      end: 938
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 938
    functionName: DGifGetLZCodes
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 0
    functionsReached:
    - IS_READABLE
    - DGifGetCodeNext
    - DGifDecompressInput
    linkageType: ''
    returnType: int
    signature: "int DGifGetLZCodes(GifFileType * GifFile,\n               int *Code)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifBufferedInput
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:967,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - GifFile
    - Code
    argTypes:
    - GifFileType*
    - int*
    constantsTouched: []
    func_position:
      end: 991
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 991
    functionName: DGifDecompressInput
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 2
    functionsReached:
    - DGifBufferedInput
    linkageType: ''
    returnType: int
    signature: "int DGifDecompressInput(GifFileType * GifFile,\n                    int
      *Code)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1007,1
    - Dst: READ
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - GifFile
    - Buf
    - NextByte
    argTypes:
    - GifFileType*
    - GifByteType*
    - GifByteType*
    constantsTouched: []
    func_position:
      end: 1034
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1034
    functionName: DGifBufferedInput
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 1
    functionsReached:
    - READ
    linkageType: ''
    returnType: int
    signature: "int DGifBufferedInput(GifFileType * GifFile,\n                  GifByteType
      * Buf,\n                  GifByteType * NextByte)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DGifGetRecordType
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1056,1
    - Dst: DGifGetImageDesc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1063,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1081,1
    - Dst: DGifGetLine
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1087,1
    - Dst: DGifGetExtension
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1107,1
    - Dst: AddExtensionBlock
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1115,1
    - Dst: DGifGetExtensionNext
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1121,1
    - Dst: FreeExtension
      Src: /src/gdal/frmts/gif/giflib/dgif_lib.c:1142,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 1145
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1145
    functionName: DGifSlurp
    functionSourceFile: /src/gdal/frmts/gif/giflib/dgif_lib.c
    functionUses: 0
    functionsReached:
    - DGifGetExtensionNext
    - AddExtensionBlock
    - DGifGetRecordType
    - DGifGetImageDesc
    - malloc
    - DGifGetLine
    - DGifGetExtension
    - FreeExtension
    linkageType: ''
    returnType: int
    signature: int DGifSlurp(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: BitSize
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BitSize(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitSize
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:56,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:60,1
    - Dst: calloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:65,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:67,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:68,1
    - Dst: BitSize
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:73,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ColorCount
    - ColorMap
    argTypes:
    - int
    - GifColorType*
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: MakeMapObject
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 4
    functionsReached:
    - free
    - calloc
    - malloc
    - memcpy
    - BitSize
    linkageType: ''
    returnType: ColorMapObject
    signature: "ColorMapObject *\nMakeMapObject(int ColorCount,\n              const
      GifColorType * ColorMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:90,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Object
    argTypes:
    - ColorMapObject*
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: FreeMapObject
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreeMapObject(ColorMapObject * Object)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:115,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - Object
    - fp
    argTypes:
    - ColorMapObject*
    - FILE*
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: DumpColorMap
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void DumpColorMap(ColorMapObject * Object,\n             FILE * fp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:144,1
    - Dst: MAX
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:144,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:177,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:191,1
    - Dst: BitSize
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:195,1
    - Dst: realloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:211,1
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - ColorIn1
    - ColorIn2
    - ColorTransIn2
    argTypes:
    - ColorMapObject*
    - ColorMapObject*
    - GifPixelType[]
    constantsTouched: []
    func_position:
      end: 225
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 225
    functionName: UnionColorMap
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MAX
    - MakeMapObject
    - realloc
    - FreeMapObject
    - BitSize
    linkageType: ''
    returnType: ColorMapObject
    signature: "ColorMapObject *\nUnionColorMap(const ColorMapObject * ColorIn1,\n
      \             const ColorMapObject * ColorIn2,\n              GifPixelType ColorTransIn2[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - Image
    - Translation
    argTypes:
    - SavedImage*
    - GifPixelType[]
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: ApplyTranslation
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ApplyTranslation(SavedImage * Image,\n                 GifPixelType
      Translation[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - New
    - Function
    argTypes:
    - SavedImage*
    - int
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: MakeExtension
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MakeExtension(SavedImage * New,\n              int Function)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:270,1
    - Dst: realloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:272,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:286,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - New
    - Len
    - ExtData
    argTypes:
    - SavedImage*
    - int
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 296
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 296
    functionName: AddExtensionBlock
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 1
    functionsReached:
    - realloc
    - memcpy
    - malloc
    linkageType: ''
    returnType: int
    signature: "int AddExtensionBlock(SavedImage * New,\n                  int Len,\n
      \                 unsigned char ExtData[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:308,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - Image
    argTypes:
    - SavedImage*
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: FreeExtension
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreeExtension(SavedImage * Image)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:334,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:340,1
    - Dst: FreeExtension
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 352
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 352
    functionName: FreeLastSavedImage
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached:
    - free
    - FreeMapObject
    - FreeExtension
    linkageType: ''
    returnType: void
    signature: void FreeLastSavedImage(GifFileType *GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:364,1
    - Dst: realloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:366,1
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:373,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:376,1
    - Dst: MakeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:386,1
    - Dst: FreeLastSavedImage
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:390,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:396,1
    - Dst: FreeLastSavedImage
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:400,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:403,1
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:409,1
    - Dst: FreeLastSavedImage
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:413,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - GifFile
    - CopyFrom
    argTypes:
    - GifFileType*
    - SavedImage*
    constantsTouched: []
    func_position:
      end: 434
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 434
    functionName: MakeSavedImage
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 0
    functionsReached:
    - malloc
    - MakeMapObject
    - realloc
    - memset
    - FreeLastSavedImage
    - memcpy
    linkageType: ''
    returnType: SavedImage
    signature: "SavedImage *\nMakeSavedImage(GifFileType * GifFile,\n               const
      SavedImage * CopyFrom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeMapObject
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:447,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:452,1
    - Dst: FreeExtension
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:455,1
    - Dst: free
      Src: /src/gdal/frmts/gif/giflib/gifalloc.c:457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - GifFile
    argTypes:
    - GifFileType*
    constantsTouched: []
    func_position:
      end: 459
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 459
    functionName: FreeSavedImages
    functionSourceFile: /src/gdal/frmts/gif/giflib/gifalloc.c
    functionUses: 1
    functionsReached:
    - free
    - FreeMapObject
    - FreeExtension
    linkageType: ''
    returnType: void
    signature: void FreeSavedImages(GifFileType * GifFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:42,1
    - Dst: _ClearHashTable
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: _InitHashTable
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 2
    functionsReached:
    - _ClearHashTable
    - malloc
    linkageType: ''
    returnType: GifHashTableType
    signature: GifHashTableType *_InitHashTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - HashTable
    argTypes:
    - GifHashTableType*
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: _ClearHashTable
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _ClearHashTable(GifHashTableType *HashTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HT_GET_KEY
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:74,1
    - Dst: HT_PUT_KEY
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:80,1
    - Dst: HT_PUT_CODE
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - HashTable
    - Key
    - Code
    argTypes:
    - GifHashTableType*
    - UINT32
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: _InsertHashTable
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 1
    functionsReached:
    - HT_GET_KEY
    - HT_PUT_CODE
    - HT_PUT_KEY
    linkageType: ''
    returnType: void
    signature: void _InsertHashTable(GifHashTableType *HashTable, UINT32 Key, int
      Code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HT_GET_KEY
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:97,1
    - Dst: HT_GET_CODE
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - HashTable
    - Key
    argTypes:
    - GifHashTableType*
    - UINT32
    constantsTouched: []
    func_position:
      end: 106
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 106
    functionName: _ExistsHashTable
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 1
    functionsReached:
    - HT_GET_KEY
    - HT_GET_CODE
    linkageType: ''
    returnType: int
    signature: int _ExistsHashTable(GifHashTableType *HashTable, UINT32 Key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Item
    argTypes:
    - UINT32
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: KeyItem
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int KeyItem(UINT32 Item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/gif/giflib/gif_hash.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: HashTablePrintHitRatio
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_hash.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void HashTablePrintHitRatio(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: GifLastError
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GifLastError(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gif/giflib/gif_err.c:116,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gif/giflib/gif_err.c:118,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 119
    functionName: PrintGifError
    functionSourceFile: /src/gdal/frmts/gif/giflib/gif_err.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintGifError(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pnDescriptionCount
    argTypes:
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: CPL_STDCALL::GDALGetDerivedDatasetDescriptions
    functionSourceFile: /src/gdal/frmts/derived/derivedlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DerivedDatasetDescription
    signature: 'DerivedDatasetDescription *CPL_STDCALL

      GDALGetDerivedDatasetDescriptions(unsigned int *pnDescriptionCount)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetWritable
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nXSize
    - nYSize
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: DerivedDataset::DerivedDataset
    functionSourceFile: /src/gdal/frmts/derived/deriveddataset.cpp
    functionUses: 0
    functionsReached:
    - SetWritable
    linkageType: ''
    returnType: void
    signature: void DerivedDataset::DerivedDataset(int nXSize, int nYSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: DerivedDataset::~DerivedDataset()
    functionSourceFile: /src/gdal/frmts/derived/deriveddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DerivedDataset::~DerivedDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: DerivedDataset::Identify
    functionSourceFile: /src/gdal/frmts/derived/deriveddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DerivedDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:76,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:78,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:79,1
    - Dst: GDALGetDerivedDatasetDescriptions
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:88,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:98,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:108,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:108,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:110,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:119,1
    - Dst: DerivedDataset::DerivedDataset
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:126,1
    - Dst: DerivedDataset*::SetMetadata
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:129,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:129,1
    - Dst: DerivedDataset*::SetMetadata
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:134,1
    - Dst: DerivedDataset*::SetProjection
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:138,1
    - Dst: GDALDataset*::GetProjectionRef
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:138,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:142,1
    - Dst: DerivedDataset*::SetGeoTransform
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:146,1
    - Dst: DerivedDataset*::SetGCPs
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:152,1
    - Dst: GDALDataset*::GetGCPs
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:152,1
    - Dst: VRTDerivedRasterBand::VRTDerivedRasterBand
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:158,1
    - Dst: DerivedDataset*::SetBand
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:159,1
    - Dst: VRTDerivedRasterBand*::SetPixelFunctionName
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:161,1
    - Dst: VRTDerivedRasterBand*::SetSourceTransferType
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:162,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:163,1
    - Dst: VRTDerivedRasterBand*::AddComplexSource
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:165,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:169,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:173,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:175,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:177,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:178,1
    - Dst: DerivedDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:180,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 184
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 184
    functionName: DerivedDataset::Open
    functionSourceFile: /src/gdal/frmts/derived/deriveddataset.cpp
    functionUses: 0
    functionsReached:
    - DerivedDataset*::SetProjection
    - DerivedDataset*::SetBand
    - CPLGetFilename
    - DerivedDataset*::SetMetadata
    - CPLDebug
    - GDALGetDerivedDatasetDescriptions
    - VRTDerivedRasterBand*::SetPixelFunctionName
    - GDALDataset*::GetProjectionRef
    - GDALClose
    - CPLString::substr
    - DerivedDataset::DerivedDataset
    - CPLString::c_str
    - CPLString::size
    - GDALDataset*::GetGeoTransform
    - DerivedDataset*::SetGeoTransform
    - GDALDataset*::GetRasterBand
    - GDALDataset*::GetGCPs
    - CPLFormFilenameSafe
    - GDALDataset*::GetMetadata
    - CPLGetPathSafe
    - VSIStatL
    - VRTDerivedRasterBand::VRTDerivedRasterBand
    - VRTDerivedRasterBand*::AddComplexSource
    - DerivedDataset*::SetGCPs
    - VRTDerivedRasterBand*::SetSourceTransferType
    - DerivedDataset*::oOvManager::Initialize
    - GDALGetDataTypeByName
    - GDALOpen
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *DerivedDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:188,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:191,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:193,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:195,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:197,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:199,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:201,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/derived/deriveddataset.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: GDALRegister_Derived
    functionSourceFile: /src/gdal/frmts/derived/deriveddataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_Derived()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: typedef
    functionSourceFile: /src/gdal/frmts/derived/derivedlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_C_START
    signature: CPL_C_START typedef
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset::GetLayerCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:135,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:136,1
    - Dst: size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: OGCAPIDataset::GetLayerCount
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - OGCAPIDataset::GetLayerCount
    linkageType: ''
    returnType: int
    signature: int GetLayerCount() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset::GetLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:141,1
    - Dst: OGCAPIDataset::GetLayerCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:142,1
    - Dst: get
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: OGCAPIDataset::GetLayer
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPIDataset::GetLayer
    - get
    - OGCAPIDataset::GetLayerCount
    linkageType: ''
    returnType: OGRLayer
    signature: OGRLayer *GetLayer(int idx) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - poLayer
    - pszName
    argTypes:
    - OGCAPITiledLayer*
    - char*
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OGCAPITiledLayerFeatureDefn::OGCAPITiledLayerFeatureDefn
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGCAPITiledLayerFeatureDefn(OGCAPITiledLayer *poLayer, const char
      *pszName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OGCAPITiledLayerFeatureDefn::InvalidateLayer
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvalidateLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: OGCAPITiledLayer::GetLayerDefn
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRFeatureDefn
    signature: OGRFeatureDefn *GetLayerDefn() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPITiledLayer::GetName
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: OGCAPITiledLayer::GetName
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPITiledLayer::GetName
    linkageType: ''
    returnType: char
    signature: char *GetName() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPITiledLayer::GetGeomType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: OGCAPITiledLayer::GetGeomType
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPITiledLayer::GetGeomType
    linkageType: ''
    returnType: OGRwkbGeometryType
    signature: OGRwkbGeometryType GetGeomType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: OGCAPITiledLayer::GetFeatureCount
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GIntBig
    signature: GIntBig GetFeatureCount(int /* bForce */) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EstablishFields
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:318,1
    - Dst: OGRFeatureDefn::GetFieldCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: OGCAPITiledLayerFeatureDefn::GetFieldCount
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - EstablishFields
    - OGRFeatureDefn::GetFieldCount
    linkageType: ''
    returnType: int
    signature: int OGCAPITiledLayerFeatureDefn::GetFieldCount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: OGCAPIDataset::OGCAPIDataset
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OGCAPIDataset::OGCAPIDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:347,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:347,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:348,1
    - Dst: OGCAPIDataset::CloseDependentDatasets
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: OGCAPIDataset::~OGCAPIDataset()
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset::CloseDependentDatasets
    - CPLHTTPFetch
    - CSLDestroy
    - CPLHTTPDestroyResult
    linkageType: ''
    returnType: void
    signature: void OGCAPIDataset::~OGCAPIDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:360,1
    - Dst: clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:364,1
    - Dst: clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:365,1
    - Dst: clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    functionName: OGCAPIDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - empty
    - clear
    linkageType: ''
    returnType: int
    signature: int OGCAPIDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - padfGeoTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: OGCAPIDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr OGCAPIDataset::GetGeoTransform(double *padfGeoTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: OGCAPIDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *OGCAPIDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:398,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:400,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:401,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:404,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pszGotContentType
    - pszExpectedContentType
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 416
    functionName: CheckContentType
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - CSLTokenizeString2
    - CPLStringList::size
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool CheckContentType(const char *pszGotContentType,\n                             const
      char *pszExpectedContentType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:436,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:442,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:445,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:445,1
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:447,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:450,1
    - Dst: c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:450,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:454,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:454,1
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:456,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:457,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:458,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:460,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:473,1
    - Dst: CPLHTTPFetch
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:476,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:477,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:483,1
    - Dst: std::string::append
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:494,1
    - Dst: CPLStrnlen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:494,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:496,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:496,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:497,1
    - Dst: strstr
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:507,1
    - Dst: CheckContentType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:508,1
    - Dst: CheckContentType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:509,1
    - Dst: strstr
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:515,1
    - Dst: CheckContentType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:517,1
    - Dst: CheckContentType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:518,1
    - Dst: strstr
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:530,1
    - Dst: CheckContentType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:532,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:541,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:544,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:551,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:554,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:556,1
    - Dst: CPLString::assign
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:562,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:562,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:565,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:565,1
    - Dst: CPLHTTPDestroyResult
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:568,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 7
    argNames:
    - osURL
    - pszPostContent
    - pszAccept
    - osResult
    - osContentType
    - bEmptyContentOK
    - paosHeaders
    argTypes:
    - CPLString
    - char*
    - char*
    - CPLString
    - CPLString
    - bool
    - CPLStringList*
    constantsTouched: []
    func_position:
      end: 570
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 570
    functionName: OGCAPIDataset::Download
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - std::string::append
    - CPLDebug
    - CPLStrnlen
    - CPLError
    - std::string::c_str
    - CPLString::empty
    - CPLString::c_str
    - c_str
    - CPLHTTPDestroyResult
    - reinterpret_cast<const char *>
    - CPLHTTPFetch
    - CPLString::clear
    - CPLSPrintf
    - strstr
    - CPLString::find
    - empty
    - CPLString::assign
    - CSLDestroy
    - CSLDuplicate
    - CheckContentType
    - CSLSetNameValue
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::Download(const CPLString &osURL, const char *pszPostContent,\n
      \                            const char *pszAccept, CPLString &osResult,\n                             CPLString
      &osContentType, bool bEmptyContentOK,\n                             CPLStringList
      *paosHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset::Download
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:583,1
    - Dst: CPLJSONDocument::LoadMemory
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - osURL
    - oDoc
    - pszPostContent
    - pszAccept
    - paosHeaders
    argTypes:
    - CPLString
    - CPLJSONDocument
    - char*
    - char*
    - CPLStringList*
    constantsTouched: []
    func_position:
      end: 587
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 587
    functionName: OGCAPIDataset::DownloadJSon
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - CPLJSONDocument::LoadMemory
    - OGCAPIDataset::Download
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::DownloadJSon(const CPLString &osURL, CPLJSONDocument
      &oDoc,\n                                 const char *pszPostContent,\n                                 const
      char *pszAccept,\n                                 CPLStringList *paosHeaders)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:600,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:600,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:601,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:601,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:602,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:602,1
    - Dst: OGCAPIDataset::Download
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:605,1
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:611,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:615,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:616,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:616,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:616,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:617,1
    - Dst: size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:618,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:622,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:623,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:623,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:627,1
    - Dst: c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:627,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:630,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - osURLPattern
    - nMatrix
    - nColumn
    - nRow
    - bEmptyContent
    - nOpenTileFlags
    - osPrefix
    - papszOpenTileOptions
    argTypes:
    - CPLString
    - int
    - int
    - int
    - bool
    - unsigned int
    - CPLString
    - char**
    constantsTouched: []
    func_position:
      end: 633
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 633
    functionName: OGCAPIDataset::OpenTile
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::unique_ptr<GDALDataset>
    - c_str
    - empty
    - VSIFCloseL
    - reinterpret_cast<GByte *>
    - OGCAPIDataset::Download
    - VSIUnlink
    - CPLSPrintf
    - CPLString::replaceAll
    - CPLString::c_str
    - OGRAPISpyOpen
    - VSIMemGenerateHiddenFilename
    - VSIFileFromMemBuffer
    - CPLString::empty
    linkageType: ''
    returnType: std::unique_ptr<GDALDataset>
    signature: "std::unique_ptr<GDALDataset> OGCAPIDataset::OpenTile(const CPLString
      &osURLPattern, int nMatrix, int nColumn,\n                        int nRow,
      bool &bEmptyContent,\n                        unsigned int nOpenTileFlags, const
      CPLString &osPrefix,\n                        const char *const *papszOpenTileOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:641,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:643,1
    - Dst: GDALOpenInfo*::IsSingleAllowedDriver
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 650
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 650
    functionName: OGCAPIDataset::Identify
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenInfo*::IsExtensionEqualToCI
    - STARTS_WITH_CI
    - GDALOpenInfo*::IsSingleAllowedDriver
    linkageType: ''
    returnType: int
    signature: int OGCAPIDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - href
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 661
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 661
    functionName: OGCAPIDataset::BuildURL
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString OGCAPIDataset::BuildURL(const std::string &href) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:671,1
    - Dst: strlen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:672,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:673,1
    - Dst: strlen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:674,1
    - Dst: strchr
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:675,1
    - Dst: assign
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - osURL
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: OGCAPIDataset::SetRootURLFromURL
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - STARTS_WITH
    - assign
    - strlen
    linkageType: ''
    returnType: void
    signature: void OGCAPIDataset::SetRootURLFromURL(const std::string &osURL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset::OpenTile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:702,1
    - Dst: std::unique_ptr::GetBands
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - osContentType
    - osImageURL
    argTypes:
    - std::string
    - CPLString
    constantsTouched: []
    func_position:
      end: 709
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 709
    functionName: OGCAPIDataset::FigureBands
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset::OpenTile
    - std::unique_ptr::GetBands
    linkageType: ''
    returnType: int
    signature: "int OGCAPIDataset::FigureBands(const std::string &osContentType,\n
      \                              const CPLString &osImageURL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:717,1
    - Dst: CPLJSONDocument::Load
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:718,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:720,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:721,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:723,1
    - Dst: auto::ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:728,1
    - Dst: OGCAPIDataset::SetRootURLFromURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:729,1
    - Dst: VSIIngestFile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:733,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:737,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:738,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:738,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:738,1
    - Dst: OGCAPIDataset::InitFromCollection
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 742
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 742
    functionName: OGCAPIDataset::InitFromFile
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - auto::ToString
    - CPLJSONDocument::Load
    - OGCAPIDataset::DownloadJSon
    - auto::GetType
    - CPLJSONDocument::GetRoot
    - CPLString::c_str
    - OGCAPIDataset::SetRootURLFromURL
    - VSIIngestFile
    - CPLError
    - CPLJSONDocument::CPLJSONDocument
    - CPLFree
    - OGCAPIDataset::InitFromCollection
    linkageType: ''
    returnType: bool
    signature: bool OGCAPIDataset::InitFromFile(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONObject::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:754,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:771,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:771,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:772,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - oScaleDenominator
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - CPLJSONObject
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 779
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 779
    functionName: OGCAPIDataset::ProcessScale
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - max
    - static_cast<int>
    - CPLJSONObject::IsValid
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::ProcessScale(const CPLJSONObject &oScaleDenominator,\n
      \                                const double dfXMin, const double dfYMin,\n
      \                                const double dfXMax, const double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:788,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:789,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:790,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:792,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:792,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:795,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:796,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:798,1
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:801,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:802,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:804,1
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:807,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:808,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:810,1
    - Dst: OGCAPIDataset::ProcessScale
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:830,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:852,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:853,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:868,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:868,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:870,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:872,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:872,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:883,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:883,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:885,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:887,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:887,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:897,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:897,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:903,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:905,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:905,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:912,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:912,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:914,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:916,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:916,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:924,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:924,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:926,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:928,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:928,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:933,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:933,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:934,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:934,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:934,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:936,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:943,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:943,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:944,1
    - Dst: OGCAPIDataset::InitWithCoverageAPI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:946,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:947,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:949,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:949,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:950,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:950,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:953,1
    - Dst: OGCAPIDataset::InitWithTilesAPI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:954,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:956,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:957,1
    - Dst: OGCAPIDataset::InitWithTilesAPI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:958,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:960,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:963,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:963,1
    - Dst: OGCAPIDataset::InitWithMapAPI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:965,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:968,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:968,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:969,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:969,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:972,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:972,1
    - Dst: c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:973,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:978,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 91
    argCount: 2
    argNames:
    - poOpenInfo
    - oDoc
    argTypes:
    - GDALOpenInfo*
    - CPLJSONDocument
    constantsTouched: []
    func_position:
      end: 981
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 981
    functionName: OGCAPIDataset::InitFromCollection
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPIDataset::BuildURL
    - GetString
    - CPLJSONObject::GetString
    - CPLJSONDocument::GetRoot
    - CPLError
    - CPLString::empty
    - auto::c_str
    - OGRAPISpyOpen
    - SetMetadataItem
    - OGCAPIDataset::ProcessScale
    - auto::Size
    - ToArray
    - c_str
    - ToString
    - auto::empty
    - OGCAPIDataset::InitWithMapAPI
    - CPLJSONObject::GetArray
    - OGCAPIDataset::InitWithTilesAPI
    - auto::IsValid
    - std::unique_ptr<GDALDataset>
    - EQUAL
    - OGCAPIDataset::InitWithCoverageAPI
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::InitFromCollection(GDALOpenInfo *poOpenInfo,\n
      \                                      CPLJSONDocument &oDoc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:993,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:995,1
    - Dst: OGCAPIDataset::SetRootURLFromURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:998,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1000,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1001,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1003,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1007,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1008,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1011,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1012,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1014,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1014,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1017,1
    - Dst: GetObj
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1018,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1020,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1020,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1023,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1025,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1027,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1031,1
    - Dst: OGCAPIDataset::InitFromCollection
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1034,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1039,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1042,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1043,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1046,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1047,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1047,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1048,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1048,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1053,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1054,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1054,1
    - Dst: CPLString::clear
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1059,1
    - Dst: GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1060,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1063,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1064,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1066,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1066,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1069,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1070,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1072,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1072,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1075,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1080,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1080,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1081,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1081,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1082,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1083,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1084,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1084,1
    - Dst: SetMetadata
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1086,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1086,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 48
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1089
      start: 987
    functionDepth: 5
    functionLinenumber: 987
    functionLinenumberEnd: 1089
    functionName: OGCAPIDataset::InitFromURL
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - GetObj
    - OGCAPIDataset::BuildURL
    - GetString
    - CPLStringList::AddNameValue
    - CPLJSONDocument::GetRoot
    - SetMetadata
    - CPLStringList::CPLStringList
    - auto::c_str
    - CPLString::empty
    - CPLStringList::List
    - CPLString::c_str
    - OGCAPIDataset::DownloadJSon
    - ToString
    - CPLString::clear
    - auto::empty
    - CPLSPrintf
    - auto::IsValid
    - OGCAPIDataset::InitFromCollection
    - EQUAL
    - OGCAPIDataset::SetRootURLFromURL
    - GetArray
    - CPLJSONDocument::CPLJSONDocument
    linkageType: ''
    returnType: bool
    signature: bool OGCAPIDataset::InitFromURL(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1115,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1118,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1119,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1121,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1122,1
    - Dst: std::pair<std::string, CPLString>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1123,1
    - Dst: std::transform
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1133,1
    - Dst: std::map<std::string, std::string>::begin
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1133,1
    - Dst: std::map<std::string, std::string>::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1133,1
    - Dst: std::back_inserter
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1134,1
    - Dst: std::map<std::string, std::string>::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1142,1
    - Dst: std::map<std::string, std::string>::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1143,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1151,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1153,1
    - Dst: std::pair<std::string, CPLString>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - papszOptionOptions
    - oMapItemUrls
    argTypes:
    - char**
    - std::map<std::string, std::string>
    constantsTouched: []
    func_position:
      end: 1156
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1156
    functionName: SelectImageURL
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - std::map<std::string, std::string>::find
    - std::transform
    - std::pair<std::string, CPLString>
    - std::map::end
    - CSLFetchNameValueDef
    - std::back_inserter
    - std::map::find
    - CPLError
    - std::map<std::string, std::string>::begin
    - std::string::c_str
    - std::map<std::string, std::string>::end
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: "std::pair<std::string, std::string> SelectImageURL(const char *const
      *papszOptionOptions,\n               std::map<std::string, std::string> &oMapItemUrls)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1169,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1169,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1170,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1171,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1173,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1175,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1176,1
    - Dst: CPLString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - papszOptionOptions
    - osMVT_URL
    - osGEOJSON_URL
    argTypes:
    - char**
    - CPLString
    - CPLString
    constantsTouched: []
    func_position:
      end: 1178
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1178
    functionName: SelectVectorFormatURL
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLString
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString SelectVectorFormatURL(const char *const *papszOptionOptions,\n
      \                     const CPLString &osMVT_URL,\n                      const
      CPLString &osGEOJSON_URL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1188,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1195,1
    - Dst: IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1197,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1199,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1200,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1200,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1206,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1206,1
    - Dst: SelectImageURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1211,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1215,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1217,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1231,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1232,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1241,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1263,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1264,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1264,1
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1265,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1266,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1270,1
    - Dst: SetBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1272,1
    - Dst: OGCAPIMapWrapperBand::OGCAPIMapWrapperBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1272,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - poOpenInfo
    - oRoot
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - GDALOpenInfo*
    - CPLJSONObject
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1277
      start: 1184
    functionDepth: 4
    functionLinenumber: 1184
    functionLinenumberEnd: 1277
    functionName: OGCAPIDataset::InitWithMapAPI
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPIDataset::BuildURL
    - CPLDebug
    - GetRasterCount
    - CPLError
    - OGCAPIMapWrapperBand::OGCAPIMapWrapperBand
    - std::string::empty
    - IsValid
    - CPLString::c_str
    - SetAxisMappingStrategy
    - OGRAPISpyOpen
    - SetMetadataItem
    - ToArray
    - ToString
    - CPLString::Printf
    - CPLFree
    - SetBand
    - SelectImageURL
    - reset
    - importFromEPSG
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::InitWithMapAPI(GDALOpenInfo *poOpenInfo,\n                                   const
      CPLJSONObject &oRoot, double dfXMin,\n                                   double
      dfYMin, double dfXMax, double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1293,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1297,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1300,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1300,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1302,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1305,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1306,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1309,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1311,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1311,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1312,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1313,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1313,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1315,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1320,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1322,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1322,1
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1323,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1324,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1324,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1326,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1332,1
    - Dst: auto::GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1334,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1335,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1337,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1341,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1342,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1345,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1368,1
    - Dst: CPLString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1369,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1372,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1378,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1379,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1386,1
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1388,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1389,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1389,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1391,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1392,1
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1395,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1396,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1396,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1401,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1402,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1403,1
    - Dst: GetDouble
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1404,1
    - Dst: swap
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1408,1
    - Dst: swap
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1409,1
    - Dst: swap
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1410,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1421,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1421,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1422,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1422,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1429,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1430,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1435,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1435,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1437,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1440,1
    - Dst: strlen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1441,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1442,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1442,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1445,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1446,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1447,1
    - Dst: OGRSpatialReference::EPSGTreatsAsLatLong
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1450,1
    - Dst: OGRSpatialReference::EPSGTreatsAsNorthingEasting
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1451,1
    - Dst: swap
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1463,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1475,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1476,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1479,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1480,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1489,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1489,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1492,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1494,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1494,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1495,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1495,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1512,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1535,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1536,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1537,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1538,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1538,1
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1539,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1540,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1544,1
    - Dst: SetBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1546,1
    - Dst: OGCAPIMapWrapperBand::OGCAPIMapWrapperBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1546,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1548,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 100
    argCount: 7
    argNames:
    - poOpenInfo
    - osCoverageURL
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    - oJsonCollection
    argTypes:
    - GDALOpenInfo*
    - CPLString
    - double
    - double
    - double
    - double
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 1551
      start: 1283
    functionDepth: 7
    functionLinenumber: 1283
    functionLinenumberEnd: 1551
    functionName: OGCAPIDataset::InitWithCoverageAPI
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - auto::GetArray
    - std::map::end
    - OGCAPIDataset::BuildURL
    - GetString
    - OGRSpatialReference::EPSGTreatsAsLatLong
    - CPLDebug
    - CPLJSONDocument::GetRoot
    - OGRSpatialReference::EPSGTreatsAsNorthingEasting
    - CPLString
    - GetRasterCount
    - STARTS_WITH
    - std::string::c_str
    - CPLString::empty
    - OGCAPIMapWrapperBand::OGCAPIMapWrapperBand
    - std::string::empty
    - GDALGetDataTypeName
    - std::string::find
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - CPLString::c_str
    - SetAxisMappingStrategy
    - OGRAPISpyOpen
    - swap
    - strlen
    - OGCAPIDataset::DownloadJSon
    - auto::Size
    - SetMetadataItem
    - ToArray
    - OGRSpatialReference::SetFromUserInput
    - static_cast<int>
    - ToString
    - CPLString::Printf
    - auto::empty
    - CPLSPrintf
    - std::map::find
    - std::string::resize
    - CPLJSONObject::GetArray
    - auto::IsValid
    - CPLString::find
    - GetDouble
    - CPLFree
    - SetBand
    - OGRSpatialReference::OGRSpatialReference
    - std::string::substr
    - max
    - reset
    - CPLJSONDocument::CPLJSONDocument
    - importFromEPSG
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::InitWithCoverageAPI(GDALOpenInfo *poOpenInfo,\n
      \                                       const CPLString &osCoverageURL,\n                                        double
      dfXMin, double dfYMin,\n                                        double dfXMax,
      double dfYMax,\n                                        const CPLJSONObject
      &oJsonCollection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1561,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - OGCAPIDataset*
    - int
    constantsTouched: []
    func_position:
      end: 1564
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1564
    functionName: OGCAPIMapWrapperBand::OGCAPIMapWrapperBand
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 2
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    linkageType: ''
    returnType: void
    signature: void OGCAPIMapWrapperBand::OGCAPIMapWrapperBand(OGCAPIDataset *poDSIn,
      int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1573,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1576
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1576
    functionName: OGCAPIMapWrapperBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGCAPIMapWrapperBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                       void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1587,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1591
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1591
    functionName: OGCAPIMapWrapperBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGCAPIMapWrapperBand::IRasterIO(\n    GDALRWFlag eRWFlag, int
      nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize, int
      nBufYSize, GDALDataType eBufType,\n    GSpacing nPixelSpace, GSpacing nLineSpace,
      GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1599,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1601
    functionName: OGCAPIMapWrapperBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: int
    signature: int OGCAPIMapWrapperBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1609,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1611
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1611
    functionName: OGCAPIMapWrapperBand::GetOverview
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *OGCAPIMapWrapperBand::GetOverview(int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1619,1
    - Dst: OGCAPIDataset*::m_poWMSDS::GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1625
    functionName: OGCAPIMapWrapperBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_poWMSDS::GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp OGCAPIMapWrapperBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1643,1
    - Dst: auto::GetGeometryPropertyCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1646,1
    - Dst: auto::GetGeometryProperty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1647,1
    - Dst: static_cast<OGRwkbGeometryType>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1649,1
    - Dst: auto::GetGeometryProperty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1650,1
    - Dst: auto::GetProperty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1656,1
    - Dst: GML_GetOGRFieldType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1659,1
    - Dst: auto::GetType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1659,1
    - Dst: std::make_unique<OGRFieldDefn>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1662,1
    - Dst: auto::SetSubType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1663,1
    - Dst: std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1664,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - osURL
    - apoFields
    - eGeomType
    argTypes:
    - std::string
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 1674
      start: 1631
    functionDepth: 1
    functionLinenumber: 1631
    functionLinenumberEnd: 1674
    functionName: ParseXMLSchema
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - auto::GetGeometryProperty
    - auto::SetSubType
    - std::vector::size
    - static_cast<OGRwkbGeometryType>
    - auto::GetType
    - auto::GetProperty
    - GML_GetOGRFieldType
    - auto::GetGeometryPropertyCount
    - std::move
    - std::vector<std::unique_ptr<OGRFieldDefn>>::emplace_back
    - std::make_unique<OGRFieldDefn>
    linkageType: ''
    returnType: bool
    signature: "bool ParseXMLSchema(const std::string &osURL,\n               std::vector<std::unique_ptr<OGRFieldDefn>>
      &apoFields,\n               OGRwkbGeometryType &eGeomType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLJSONDocument::CPLJSONDocument
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1687,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1688,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1688,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1691,1
    - Dst: ToArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1691,1
    - Dst: auto::Size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1692,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1694,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1704,1
    - Dst: GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1705,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1708,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1713,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1716,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1718,1
    - Dst: auto::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1722,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1730,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1732,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1735,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1735,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1738,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1740,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1740,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1746,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1749,1
    - Dst: auto::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1750,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1753,1
    - Dst: auto::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1755,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1757,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1759,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1761,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1764,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1766,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1771,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1771,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1774,1
    - Dst: auto::IsValid
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1775,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1777,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1790,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1791,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1799,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1799,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1801,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1803,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1803,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1808,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1810,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1810,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1816,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1816,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1824,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1824,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1828,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1828,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1833,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1835,1
    - Dst: CPLJSONDocument::GetRoot
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1843,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1854,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1855,1
    - Dst: GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1859,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1860,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1863,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1864,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1865,1
    - Dst: GetInteger
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1866,1
    - Dst: SelectImageURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1875,1
    - Dst: SelectVectorFormatURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1879,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1881,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1881,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1883,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1890,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1891,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1893,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1894,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1897,1
    - Dst: CPLString::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1898,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1900,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1901,1
    - Dst: OGCAPIDataset::DownloadJSon
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1907,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1907,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1911,1
    - Dst: CPLJSONDocument::SaveAsString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1911,1
    - Dst: SetFromUserInput
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1915,1
    - Dst: auto::crs
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1916,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1917,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1922,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1925,1
    - Dst: CPLJSONObject::GetString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1927,1
    - Dst: CPLJSONObject::GetArray
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1937,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1939,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1940,1
    - Dst: OGCAPIDataset::BuildURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1942,1
    - Dst: ToString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1942,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1948,1
    - Dst: ParseXMLSchema
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1950,1
    - Dst: auto::tileMatrixList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1953,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1960,1
    - Dst: std::map::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1961,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1962,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1981,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1984,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1985,1
    - Dst: min
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1986,1
    - Dst: min
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1987,1
    - Dst: std::unique_ptr<OGCAPITiledLayer>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1994,1
    - Dst: OGCAPITiledLayer::OGCAPITiledLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1994,1
    - Dst: auto::SetMinMaxXY
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1997,1
    - Dst: auto::SetExtent
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:1998,1
    - Dst: auto::SetFields
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2000,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2001,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2001,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2007,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2012,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2013,1
    - Dst: OGRSpatialReference::SetAxisMappingStrategy
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2014,1
    - Dst: std::unique_ptr<OGRCoordinateTransformation>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2015,1
    - Dst: OGRCreateCoordinateTransformation
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2016,1
    - Dst: auto::TransformBounds
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2019,1
    - Dst: auto::tileMatrixList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2034,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2036,1
    - Dst: mId::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2036,1
    - Dst: std::map::find
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2048,1
    - Dst: std::map::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2049,1
    - Dst: std::map::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2050,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2065,1
    - Dst: mId::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2065,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2066,1
    - Dst: CPLString::replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2067,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2093,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2122,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2127,1
    - Dst: CreateWMS_XML
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2130,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2132,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2134,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2138,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2138,1
    - Dst: std::sort
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2142,1
    - Dst: auto::begin
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2142,1
    - Dst: auto::end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2142,1
    - Dst: auto::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2151,1
    - Dst: CPLError
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2156,1
    - Dst: CreateWMS_XML
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2165,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2169,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2173,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2177,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2178,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2179,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2179,1
    - Dst: back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2180,1
    - Dst: auto::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2185,1
    - Dst: CreateWMS_XML
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2190,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2194,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2198,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2202,1
    - Dst: std::move
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2203,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2204,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2204,1
    - Dst: back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2205,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2210,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2214,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2215,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2216,1
    - Dst: GDALBuildVRTOptionsNew
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2218,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2218,1
    - Dst: GDALBuildVRT
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2219,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2220,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2220,1
    - Dst: GDALBuildVRTOptionsFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2222,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2225,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2226,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2229,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2230,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2231,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2232,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2233,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2233,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2234,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2234,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2235,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2235,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2236,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2236,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2238,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2238,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2239,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2240,1
    - Dst: back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2240,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2242,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2245,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2246,1
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2251,1
    - Dst: std::reverse
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2253,1
    - Dst: begin
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2253,1
    - Dst: end
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2254,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2255,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2256,1
    - Dst: OGCAPIDataset::GetGeoTransform
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2257,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2259,1
    - Dst: SetBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2261,1
    - Dst: OGCAPITilesWrapperBand::OGCAPITilesWrapperBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2261,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2263,1
    CyclomaticComplexity: 120
    EdgeCount: 120
    ICount: 249
    argCount: 9
    argNames:
    - poOpenInfo
    - osTilesURL
    - bIsMap
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    - bBBOXIsInCRS84
    - oJsonCollection
    argTypes:
    - GDALOpenInfo*
    - CPLString
    - bool
    - double
    - double
    - double
    - double
    - bool
    - CPLJSONObject
    constantsTouched: []
    func_position:
      end: 2270
      start: 1680
    functionDepth: 7
    functionLinenumber: 1680
    functionLinenumberEnd: 2270
    functionName: OGCAPIDataset::InitWithTilesAPI
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - ParseXMLSchema
    - std::map::end
    - std::vector::size
    - CPLDebug
    - CPLStringList::CPLStringList
    - std::string::empty
    - SelectVectorFormatURL
    - std::unique_ptr<OGRCoordinateTransformation>
    - gdal::TileMatrixSet::parse
    - SetFromUserInput
    - ToString
    - OGCAPITilesWrapperBand::OGCAPITilesWrapperBand
    - GetRasterYSize
    - std::map::find
    - auto::crs
    - auto::SetFields
    - back
    - CPLJSONDocument::SaveAsString
    - std::map::empty
    - GetString
    - std::string::c_str
    - CPLStringList::List
    - CreateWMS_XML
    - GDALBuildVRTOptionsNew
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::unique_ptr<OGCAPITiledLayer>
    - std::move
    - auto::Size
    - GetInteger
    - std::vector::empty
    - SetMetadataItem
    - OGRSpatialReference::importFromEPSG
    - static_cast<int>
    - FromHandle
    - CPLString::Printf
    - min
    - CPLString::find
    - CPLFree
    - OGRSpatialReference::OGRSpatialReference
    - EQUAL
    - GetArray
    - GetRasterXSize
    - auto::TransformBounds
    - OGCAPIDataset::BuildURL
    - GDALTranslateOptionsFree
    - OGCAPIDataset::GetGeoTransform
    - auto::SetMinMaxXY
    - std::vector::emplace_back
    - auto::SetExtent
    - GetRasterCount
    - CPLGetConfigOption
    - std::reverse
    - CPLString::empty
    - auto::end
    - auto::find
    - std::string::find
    - GDALBuildVRT
    - ToHandle
    - CPLString::c_str
    - SetAxisMappingStrategy
    - OGRAPISpyOpen
    - GDALBuildVRTOptionsFree
    - ToArray
    - CPLStringList::AddString
    - OGCAPITiledLayer::OGCAPITiledLayer
    - CPLSPrintf
    - auto::IsValid
    - OGRCreateCoordinateTransformation
    - SetBand
    - empty
    - GDALTranslate
    - SelectImageURL
    - mId::c_str
    - CPLJSONObject::GetString
    - OGRSpatialReference::SetAxisMappingStrategy
    - CPLJSONDocument::GetRoot
    - CPLError
    - auto::size
    - auto::begin
    - end
    - std::sort
    - OGCAPIDataset::DownloadJSon
    - emplace_back
    - CPLTestBool
    - GDALTranslateOptionsNew
    - auto::empty
    - CPLString::replaceAll
    - begin
    - CPLJSONObject::GetArray
    - max
    - CPLJSONDocument::CPLJSONDocument
    - auto::tileMatrixList
    linkageType: ''
    returnType: bool
    signature: "bool OGCAPIDataset::InitWithTilesAPI(GDALOpenInfo *poOpenInfo,\n                                     const
      CPLString &osTilesURL, bool bIsMap,\n                                     double
      dfXMin, double dfYMin,\n                                     double dfXMax,
      double dfYMax,\n                                     bool bBBOXIsInCRS84,\n
      \                                    const CPLJSONObject &oJsonCollection)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2281,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - OGCAPIDataset*
    - int
    constantsTouched: []
    func_position:
      end: 2286
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2286
    functionName: OGCAPITilesWrapperBand::OGCAPITilesWrapperBand
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - GetRasterBand
    linkageType: ''
    returnType: void
    signature: "void OGCAPITilesWrapperBand::OGCAPITilesWrapperBand(OGCAPIDataset
      *poDSIn,\n                                               int nBandIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2295,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2298
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2298
    functionName: OGCAPITilesWrapperBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGCAPITilesWrapperBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                         void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2309,1
    - Dst: OGCAPIDataset*::m_apoDatasetsCropped::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2312,1
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2315,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 2325
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2325
    functionName: OGCAPITilesWrapperBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_apoDatasetsCropped::size
    - GetRasterBand
    - TryOverviewRasterIO
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGCAPITilesWrapperBand::IRasterIO(\n    GDALRWFlag eRWFlag,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    GSpacing nPixelSpace, GSpacing nLineSpace,
      GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2333,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2334,1
    - Dst: OGCAPIDataset*::m_apoDatasetsCropped::size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2335
    functionName: OGCAPITilesWrapperBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPIDataset*::m_apoDatasetsCropped::size
    - static_cast<int>
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: int
    signature: int OGCAPITilesWrapperBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2343,1
    - Dst: OGCAPITilesWrapperBand::GetOverviewCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2344,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - nLevel
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2347
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2347
    functionName: OGCAPITilesWrapperBand::GetOverview
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - OGCAPITilesWrapperBand::GetOverviewCount
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *OGCAPITilesWrapperBand::GetOverview(int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<OGCAPIDataset *>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2355,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2359
    functionName: OGCAPITilesWrapperBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - cpl::down_cast<OGCAPIDataset *>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp OGCAPITilesWrapperBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2373,1
    - Dst: size
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2377,1
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2380,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2388,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2396,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 2407
      start: 2365
    functionDepth: 1
    functionLinenumber: 2365
    functionLinenumberEnd: 2407
    functionName: OGCAPIDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - TryOverviewRasterIO
    - RasterIO
    - GDALDataset::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr OGCAPIDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                int nXSize, int nYSize, void *pData,\n
      \                               int nBufXSize, int nBufYSize,\n                                GDALDataType
      eBufType, int nBandCount,\n                                BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n                                GSpacing nLineSpace,
      GSpacing nBandSpace,\n                                GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2421,1
    - Dst: OGCAPITiledLayerFeatureDefn::OGCAPITiledLayerFeatureDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2420,1
    - Dst: SetDescription
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2422,1
    - Dst: OGCAPITiledLayer::GetName
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2422,1
    - Dst: SetGeomType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2423,1
    - Dst: OGCAPIDataset*::m_oSRS::Clone
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2426,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2427,1
    - Dst: auto::Dereference
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2428,1
    - Dst: Reference
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2430,1
    - Dst: replaceAll
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2431,1
    - Dst: gdal::TileMatrixSet::TileMatrix::mId::c_str
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - poDS
    - bInvertAxis
    - osTileURL
    - bIsMVT
    - tileMatrix
    - eGeomType
    argTypes:
    - OGCAPIDataset*
    - bool
    - CPLString
    - bool
    - gdal::TileMatrixSet::TileMatrix
    - OGRwkbGeometryType
    constantsTouched: []
    func_position:
      end: 2432
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2432
    functionName: OGCAPITiledLayer::OGCAPITiledLayer
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - c_str
    - SetGeomType
    - OGCAPITiledLayerFeatureDefn::OGCAPITiledLayerFeatureDefn
    - GetGeomFieldDefn
    - replaceAll
    - auto::Dereference
    - gdal::TileMatrixSet::TileMatrix::mId::c_str
    - Reference
    - OGCAPITiledLayer::GetName
    - SetDescription
    - OGCAPIDataset*::m_oSRS::Clone
    linkageType: ''
    returnType: void
    signature: "void OGCAPITiledLayer::OGCAPITiledLayer(\n    OGCAPIDataset *poDS,
      bool bInvertAxis, const CPLString &osTileURL,\n    bool bIsMVT, const gdal::TileMatrixSet::TileMatrix
      &tileMatrix,\n    OGRwkbGeometryType eGeomType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InvalidateLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2440,1
    - Dst: Release
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2442
    functionName: OGCAPITiledLayer::~OGCAPITiledLayer()
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - Release
    - InvalidateLayer
    linkageType: ''
    returnType: void
    signature: void OGCAPITiledLayer::~OGCAPITiledLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - nRow
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2460
      start: 2448
    functionDepth: 0
    functionLinenumber: 2448
    functionLinenumberEnd: 2460
    functionName: OGCAPITiledLayer::GetCoalesceFactorForRow
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OGCAPITiledLayer::GetCoalesceFactorForRow(int nRow) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPITiledLayer::ResetReading
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2470,1
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2479
    functionName: OGCAPITiledLayer::ResetReading
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPITiledLayer::ResetReading
    - reset
    linkageType: ''
    returnType: void
    signature: void OGCAPITiledLayer::ResetReading()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2494,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2502,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2504,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2506,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2508,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2510,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2512,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2514,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2516,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2519,1
    - Dst: OGCAPITiledLayer::OpenTile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2523,1
    - Dst: stoi
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2524,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - nX
    - nY
    - bEmptyContent
    argTypes:
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2528
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2528
    functionName: OGCAPITiledLayer::OpenTile
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - OGCAPITiledLayer::OpenTile
    - std::unique_ptr::release
    - CPLSPrintf
    - CPLStringList::SetNameValue
    - stoi
    - CPLStringList::CPLStringList
    - CPLStringList::List
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGCAPITiledLayer::OpenTile(int nX, int nY, bool &bEmptyContent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer*::GetLayerDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2539,1
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2543,1
    - Dst: auto::GetFieldDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - poUnderlyingLayer
    argTypes:
    - OGRLayer*
    constantsTouched: []
    func_position:
      end: 2546
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2546
    functionName: OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - AddFieldDefn
    - auto::GetFieldDefn
    - OGRLayer*::GetLayerDefn
    linkageType: ''
    returnType: void
    signature: void OGCAPITiledLayer::FinalizeFeatureDefnWithLayer(OGRLayer *poUnderlyingLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRFeature::OGRFeature
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2560,1
    - Dst: OGRFeature*::GetFID
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2562,1
    - Dst: OGRFeature*::StealGeometry
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2564,1
    - Dst: OGCAPITiledLayer::GetGeomType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2565,1
    - Dst: OGRGeometryFactory::forceTo
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2568,1
    - Dst: OGCAPITiledLayer::GetGeomType
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2568,1
    - Dst: OGRFeature*::SetFrom
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2570,1
    - Dst: OGRFeature*::SetFID
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2571,1
    - Dst: GetGeomFieldCount
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2572,1
    - Dst: auto::assignSpatialReference
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2574,1
    - Dst: GetGeomFieldDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2575,1
    - Dst: OGRFeature*::SetGeometryDirectly
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - poSrcFeature
    - nX
    - nY
    argTypes:
    - OGRFeature*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2580
      start: 2552
    functionDepth: 6
    functionLinenumber: 2552
    functionLinenumberEnd: 2580
    functionName: OGCAPITiledLayer::BuildFeature
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGRFeature*::GetFID
    - auto::assignSpatialReference
    - GetGeomFieldDefn
    - OGRFeature*::StealGeometry
    - OGCAPITiledLayer::GetGeomType
    - OGRGeometryFactory::forceTo
    - OGRFeature*::SetFrom
    - OGRFeature::OGRFeature
    - GetGeomFieldCount
    - OGRFeature*::SetGeometryDirectly
    - OGRFeature*::SetFID
    linkageType: ''
    returnType: OGRFeature
    signature: "OGRFeature *OGCAPITiledLayer::BuildFeature(OGRFeature *poSrcFeature,
      int nX,\n                                           int nY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2586
    functionDepth: 0
    functionLinenumber: 2586
    functionLinenumberEnd: 2607
    functionName: OGCAPITiledLayer::IncrementTileIndices
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool OGCAPITiledLayer::IncrementTileIndices()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2624,1
    - Dst: OGCAPITiledLayer::OpenTile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2624,1
    - Dst: OGCAPITiledLayer::IncrementTileIndices
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2627,1
    - Dst: GetLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2635,1
    - Dst: OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2640,1
    - Dst: GetNextFeature
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2643,1
    - Dst: OGCAPITiledLayer::BuildFeature
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2646,1
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2649,1
    - Dst: OGCAPITiledLayer::IncrementTileIndices
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2613
    functionDepth: 7
    functionLinenumber: 2613
    functionLinenumberEnd: 2655
    functionName: OGCAPITiledLayer::GetNextRawFeature
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPITiledLayer::OpenTile
    - OGCAPITiledLayer::IncrementTileIndices
    - GetNextFeature
    - OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
    - reset
    - OGCAPITiledLayer::BuildFeature
    - GetLayer
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGCAPITiledLayer::GetNextRawFeature()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::GetLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2676,1
    - Dst: OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2679,1
    - Dst: OGRLayer*::GetFeature
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2680,1
    - Dst: OGCAPITiledLayer::BuildFeature
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - nFID
    argTypes:
    - GIntBig
    constantsTouched: []
    func_position:
      end: 2684
      start: 2661
    functionDepth: 7
    functionLinenumber: 2661
    functionLinenumberEnd: 2684
    functionName: OGCAPITiledLayer::GetFeature
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGRLayer*::GetFeature
    - OGCAPITiledLayer::BuildFeature
    - OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
    - std::unique_ptr::GetLayer
    linkageType: ''
    returnType: OGRFeature
    signature: OGRFeature *OGCAPITiledLayer::GetFeature(GIntBig nFID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2701,1
    - Dst: OGCAPITiledLayer::OpenTile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2701,1
    - Dst: OGCAPITiledLayer::IncrementTileIndices
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2704,1
    - Dst: GetLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2708,1
    - Dst: OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2711,1
    - Dst: reset
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2726,1
    - Dst: OGCAPITiledLayer::OpenTile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2727,1
    - Dst: GetLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2732,1
    - Dst: OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2735,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2744,1
    - Dst: OGCAPITiledLayer::ResetReading
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2748,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2690
    functionDepth: 2
    functionLinenumber: 2690
    functionLinenumberEnd: 2750
    functionName: OGCAPITiledLayer::EstablishFields
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPITiledLayer::ResetReading
    - OGCAPITiledLayer::OpenTile
    - OGCAPITiledLayer::IncrementTileIndices
    - CPLDebug
    - OGCAPITiledLayer::FinalizeFeatureDefnWithLayer
    - reset
    - GetLayer
    linkageType: ''
    returnType: void
    signature: void OGCAPITiledLayer::EstablishFields()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dfXMin
    - dfYMin
    - dfXMax
    - dfYMax
    argTypes:
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 2763
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2763
    functionName: OGCAPITiledLayer::SetExtent
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OGCAPITiledLayer::SetExtent(double dfXMin, double dfYMin, double
      dfXMax,\n                                 double dfYMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psExtent
    argTypes:
    - OGREnvelope*
    constantsTouched: []
    func_position:
      end: 2774
      start: 2769
    functionDepth: 0
    functionLinenumber: 2769
    functionLinenumberEnd: 2774
    functionName: OGCAPITiledLayer::IGetExtent
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGCAPITiledLayer::IGetExtent(int /* iGeomField */, OGREnvelope
      *psExtent,\n                                    bool /* bForce */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRLayer::ISetSpatialFilter
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2783,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2802,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2804,1
    - Dst: floor
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2804,1
    - Dst: max
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2805,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2807,1
    - Dst: floor
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2807,1
    - Dst: min
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2808,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2810,1
    - Dst: floor
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2810,1
    - Dst: min
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2811,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2813,1
    - Dst: floor
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2813,1
    - Dst: OGCAPITiledLayer::ResetReading
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - iGeomField
    - poGeomIn
    argTypes:
    - int
    - OGRGeometry*
    constantsTouched: []
    func_position:
      end: 2826
      start: 2780
    functionDepth: 2
    functionLinenumber: 2780
    functionLinenumberEnd: 2826
    functionName: OGCAPITiledLayer::ISetSpatialFilter
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPITiledLayer::ResetReading
    - static_cast<int>
    - floor
    - OGRLayer::ISetSpatialFilter
    - min
    - max
    linkageType: ''
    returnType: OGRErr
    signature: "OGRErr OGCAPITiledLayer::ISetSpatialFilter(int iGeomField,\n                                           const
      OGRGeometry *poGeomIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2834,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2836,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2838,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pszCap
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2843
      start: 2832
    functionDepth: 0
    functionLinenumber: 2832
    functionLinenumberEnd: 2843
    functionName: OGCAPITiledLayer::TestCapability
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: int
    signature: int OGCAPITiledLayer::TestCapability(const char *pszCap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPITiledLayer::ResetReading
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - minCol
    - minRow
    - maxCol
    - maxRow
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2861
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2861
    functionName: OGCAPITiledLayer::SetMinMaxXY
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - OGCAPITiledLayer::ResetReading
    linkageType: ''
    returnType: void
    signature: "void OGCAPITiledLayer::SetMinMaxXY(int minCol, int minRow, int maxCol,\n
      \                                  int maxRow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddFieldDefn
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2873,1
    - Dst: get
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - apoFields
    argTypes:
    - std::vector<std::unique_ptr<OGRFieldDefn>>
    constantsTouched: []
    func_position:
      end: 2875
      start: 2867
    functionDepth: 0
    functionLinenumber: 2867
    functionLinenumberEnd: 2875
    functionName: OGCAPITiledLayer::SetFields
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - get
    - AddFieldDefn
    linkageType: ''
    returnType: void
    signature: "void OGCAPITiledLayer::SetFields(\n    const std::vector<std::unique_ptr<OGRFieldDefn>>
      &apoFields)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGCAPIDataset::Identify
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2883,1
    - Dst: std::make_unique<OGCAPIDataset>
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2885,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2886,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2887,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2888,1
    - Dst: auto::InitFromURL
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2890,1
    - Dst: auto::InitFromFile
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2895,1
    - Dst: auto::release
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2899
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2899
    functionName: OGCAPIDataset::Open
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - OGCAPIDataset::Identify
    - auto::release
    - std::make_unique<OGCAPIDataset>
    - auto::InitFromURL
    - auto::InitFromFile
    - STARTS_WITH
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *OGCAPIDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2908,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2911,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2913,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2914,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2915,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2916,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2918,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2920,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp:2974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2905
    functionDepth: 1
    functionLinenumber: 2905
    functionLinenumberEnd: 2975
    functionName: GDALRegister_OGCAPI
    functionSourceFile: /src/gdal/frmts/ogcapi/gdalogcapidataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_OGCAPI()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - pszStr
    - pszPrefixAfterS2X
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: IsS2Prefixed
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: bool
    signature: bool IsS2Prefixed(const char *pszStr, const char *pszPrefixAfterS2X)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SENTINEL2DatasetContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: SENTINEL2DatasetContainer::~SENTINEL2DatasetContainer()
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SENTINEL2DatasetContainer::~SENTINEL2DatasetContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - poDSIn
    - nBandIn
    - eType
    - nXSize
    - nYSize
    - nSaturatedVal
    - nNodataVal
    argTypes:
    - GDALDataset*
    - int
    - GDALDataType
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: SENTINEL2AlphaBand::SENTINEL2AlphaBand
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SENTINEL2AlphaBand::SENTINEL2AlphaBand(GDALDataset *poDSIn, int
      nBandIn,\n                                       GDALDataType eType, int nXSize,\n
      \                                      int nYSize, int nSaturatedVal,\n                                       int
      nNodataVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:273,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:281,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:293,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:294,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:308,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:308,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:318,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:319,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 328
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 328
    functionName: SENTINEL2AlphaBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUInt16>
    - GetRasterBand
    - static_cast<GByte *>
    - GDALCopyWords
    - reinterpret_cast<GUInt16 *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr SENTINEL2AlphaBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                     int nXSize, int nYSize, void
      *pData,\n                                     int nBufXSize, int nBufYSize,\n
      \                                    GDALDataType eBufType,\n                                     GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                                     GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetWritable
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nXSize
    - nYSize
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: SENTINEL2Dataset::SENTINEL2Dataset
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - SetWritable
    linkageType: ''
    returnType: void
    signature: void SENTINEL2Dataset::SENTINEL2Dataset(int nXSize, int nYSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: SENTINEL2Dataset::~SENTINEL2Dataset()
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SENTINEL2Dataset::~SENTINEL2Dataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:355,1
    - Dst: size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:356,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:357,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:360,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:361,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: SENTINEL2Dataset::GetFileList
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - CPLStringList::AddString
    - CSLDestroy
    - CPLStringList::StealList
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **SENTINEL2Dataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:371,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:373,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:375,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:377,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:379,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:386,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:392,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:393,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:394,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:395,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:396,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:396,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:407,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:408,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:411,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:412,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:415,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:416,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:419,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:420,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:423,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:424,1
    - Dst: SENTINEL2isZipped
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:427,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 31
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 431
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 431
    functionName: SENTINEL2Dataset::Identify
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - SENTINEL2isZipped
    - IsS2Prefixed
    - STARTS_WITH_CI
    - EQUAL
    - strstr
    - CPLGetExtensionSafe
    linkageType: ''
    returnType: int
    signature: int SENTINEL2Dataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - psNode
    argTypes:
    - CPLXMLNode*
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: SENTINEL2_CPLXMLNodeHolder::SENTINEL2_CPLXMLNodeHolder
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SENTINEL2_CPLXMLNodeHolder(CPLXMLNode *psNode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: ~SENTINEL2_CPLXMLNodeHolder()
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLDestroyXMLNode
    linkageType: ''
    returnType: void
    signature: void ~SENTINEL2_CPLXMLNodeHolder()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: SENTINEL2_CPLXMLNodeHolder::Release
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLXMLNode
    signature: CPLXMLNode *Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SENTINEL2Dataset::Identify
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:468,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:473,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:475,1
    - Dst: SENTINEL2Dataset::OpenL1BSubdataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:476,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:479,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:481,1
    - Dst: SENTINEL2Dataset::OpenL1BSubdatasetWithGeoloc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:482,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:485,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:487,1
    - Dst: SENTINEL2Dataset::OpenL1C_L2ASubdataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:488,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:491,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:493,1
    - Dst: SENTINEL2Dataset::OpenL1CTileSubdataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:494,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:497,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:499,1
    - Dst: SENTINEL2Dataset::OpenL1C_L2ASubdataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:500,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:504,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:505,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:506,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:506,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:514,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:522,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:523,1
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:525,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:525,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:527,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:527,1
    - Dst: SENTINEL2Dataset::Open
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:529,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:531,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:532,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:532,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:539,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:539,1
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:542,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:542,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:544,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:544,1
    - Dst: SENTINEL2Dataset::Open
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:546,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:548,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:549,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:549,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:556,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:556,1
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:559,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:559,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:561,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:561,1
    - Dst: SENTINEL2Dataset::Open
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:563,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:569,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:570,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:572,1
    - Dst: SENTINEL2Dataset::OpenL1BUserProduct
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:573,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:576,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:577,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:579,1
    - Dst: SENTINEL2Dataset::OpenL1BGranule
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:580,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:583,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:584,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:586,1
    - Dst: SENTINEL2Dataset::OpenL1C_L2A
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:587,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:590,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:591,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:593,1
    - Dst: SENTINEL2Dataset::OpenL1CTile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:594,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:597,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:598,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:600,1
    - Dst: SENTINEL2Dataset::OpenL1C_L2A
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:601,1
    - Dst: SENTINEL2isZipped
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:604,1
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:607,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:607,1
    - Dst: VSIOpenDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:610,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:610,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:613,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:614,1
    - Dst: VSIGetNextDirEntry
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:617,1
    - Dst: VSI_ISREG
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:620,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:621,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:622,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:623,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:624,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:625,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:626,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:629,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:629,1
    - Dst: VSICloseDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:631,1
    - Dst: SENTINEL2Dataset::Open
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:632,1
    - Dst: VSICloseDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:635,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 96
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 639
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 639
    functionName: SENTINEL2Dataset::Open
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - SENTINEL2isZipped
    - strncmp
    - CPLDebug
    - VSIGetNextDirEntry
    - CPLString
    - CPLError
    - SENTINEL2Dataset::OpenL1BSubdataset
    - CPLGetExtensionSafe
    - IsS2Prefixed
    - SENTINEL2Dataset::OpenL1BUserProduct
    - CPLString::c_str
    - CPLString::size
    - strlen
    - SENTINEL2Dataset::OpenL1CTileSubdataset
    - STARTS_WITH_CI
    - SENTINEL2Dataset::OpenL1BGranule
    - SENTINEL2Dataset::Identify
    - SENTINEL2Dataset::OpenL1CTile
    - CPL_IGNORE_RET_VAL
    - strstr
    - VSICloseDir
    - SENTINEL2Dataset::OpenL1BSubdatasetWithGeoloc
    - SENTINEL2Dataset::Open
    - VSI_ISREG
    - EQUAL
    - SENTINEL2Dataset::OpenL1C_L2ASubdataset
    - SENTINEL2Dataset::OpenL1C_L2A
    - VSIOpenDir
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *SENTINEL2Dataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:656,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:659,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:660,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:662,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:663,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:664,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:666,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:667,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:668,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 2
    argNames:
    - pszHeader
    - nHeaderBytes
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: SENTINEL2isZipped
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool SENTINEL2isZipped(const char *pszHeader, int nHeaderBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszBandName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: SENTINEL2GetBandDesc
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: SENTINEL2BandDescription
    signature: 'SENTINEL2BandDescription *

      SENTINEL2GetBandDesc(const char *pszBandName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pszBandName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: SENTINEL2GetL2ABandDesc
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: SENTINEL2_L2A_BandDescription
    signature: 'SENTINEL2_L2A_BandDescription *

      SENTINEL2GetL2ABandDesc(const char *pszBandName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:720,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:723,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:726,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:727,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:729,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:733,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:736,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:737,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:738,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:740,1
    - Dst: strcpy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:744,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:747,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:750,1
    - Dst: strstr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:751,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:752,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:754,1
    - Dst: strcpy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:758,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:761,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:769,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:772,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:773,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:777,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:783,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:786,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:787,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:795,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:796,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:799,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:801,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:802,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:814,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:816,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:816,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:819,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:819,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:823,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:824,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:830,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:831,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:837,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:839,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:841,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:843,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:843,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:846,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:846,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:850,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:851,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:857,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:858,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:864,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:866,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 80
    argCount: 3
    argNames:
    - eLevel
    - osGranuleMTDPath
    - nDesiredResolution
    argTypes:
    - SENTINEL2Level
    - CPLString
    - int
    constantsTouched: []
    func_position:
      end: 871
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 871
    functionName: SENTINEL2GetGranuleInfo
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - static_cast<size_t>
    - STARTS_WITH_CI
    - atoi
    - VSIFCloseL
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLGetXMLValue
    - CPLParseXMLString
    - VSIFOpenL
    - CPLString::c_str
    - CPLStripXMLNamespace
    - strcpy
    - strstr
    - VSIFReadL
    - strlen
    - CPLError
    - EQUAL
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetGranuleInfo(\n    SENTINEL2Level eLevel, const CPLString
      &osGranuleMTDPath,\n    int nDesiredResolution, int *pnEPSGCode = nullptr, double
      *pdfULX = nullptr,\n    double *pdfULY = nullptr, int *pnResolution = nullptr,\n
      \   int *pnWidth = nullptr, int *pnHeight = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pszBasename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 885
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 885
    functionName: SENTINEL2GetPathSeparator
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: char
    signature: char SENTINEL2GetPathSeparator(const char *pszBasename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:902,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:902,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:905,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:909,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:913,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:917,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:923,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:927,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:931,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:945,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:959,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:967,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:968,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:976,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:986,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:987,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:988,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1001,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1008,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1009,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1011,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1014,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1016,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1017,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1026,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1026,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1028,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1036,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1036,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1038,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1039,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1045,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1045,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1059,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1061,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1064,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1065,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1066,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1067,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1072,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1085,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1085,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 96
    argCount: 4
    argNames:
    - psMainMTD
    - eLevel
    - pszFilename
    - osList
    argTypes:
    - CPLXMLNode*
    - SENTINEL2Level
    - char*
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 1090
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 1090
    functionName: SENTINEL2GetGranuleList
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - CPLDebug
    - CPLString
    - CPLError
    - EQUALN
    - CPLString::resize
    - CPLString::substr
    - CPLGetDirnameSafe
    - insert
    - CPLString::c_str
    - CPLString::size
    - std::move
    - strlen
    - CPLSPrintf
    - std::set::find
    - CPLGetXMLNode
    - EQUAL
    - std::vector<CPLString>::push_back
    - std::set::end
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetGranuleList(\n    CPLXMLNode *psMainMTD, SENTINEL2Level
      eLevel, const char *pszFilename,\n    std::vector<CPLString> &osList, std::set<int>
      *poSetResolutions = nullptr,\n    std::map<int, std::set<CPLString>> *poMapResolutionsToBands
      = nullptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1099,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1102,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1102,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1105,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1109,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1110,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1113,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1117,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1130,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1132,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1137,1
    - Dst: c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1137,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1146,1
    - Dst: c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1146,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1154,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1158,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1166,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1176,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1177,1
    - Dst: c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1177,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1184,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1189,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1193,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1196,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1205,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1206,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1209,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1209,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1218,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1219,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1224,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1230,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1236,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1243,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1247,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1259,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1269,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1274,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1278,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1281,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1294,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1301,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1302
    functionName: SENTINEL2GetUserProductMetadata
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - c_str
    - CPLGetXMLNode
    - CPLGetXMLValue
    - CPLSPrintf
    - CPLStringList::AddNameValue
    - EQUAL
    - CPLStringList::StealList
    - CPLString
    - CPLError
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: "char **SENTINEL2GetUserProductMetadata(CPLXMLNode *psMainMTD,\n                                              const
      char *pszRootNode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1317,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1326,1
    - Dst: SENTINEL2GetBandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1332,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1335,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1338,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1340,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1342,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1343,1
    - Dst: std::set<int>::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1345,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1347,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - psProductInfo
    - oSetResolutions
    - oMapResolutionsToBands
    argTypes:
    - CPLXMLNode*
    - std::set<int>
    - std::map<int, std::set<CPLString>>
    constantsTouched: []
    func_position:
      end: 1351
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1351
    functionName: SENTINEL2GetResolutionSet
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - std::set<int>::empty
    - atoi
    - CPLGetXMLNode
    - insert
    - std::set<int>::insert
    - CPLDebug
    - EQUAL
    - SENTINEL2GetBandDesc
    - std::move
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetResolutionSet(\n    CPLXMLNode *psProductInfo, std::set<int>
      &oSetResolutions,\n    std::map<int, std::set<CPLString>> &oMapResolutionsToBands)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1364,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1365,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1366,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - pszPosList
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1390
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1390
    functionName: SENTINEL2GetPolygonWKTFromPosList
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLDestroy
    linkageType: ''
    returnType: CPLString
    signature: CPLString SENTINEL2GetPolygonWKTFromPosList(const char *pszPosList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set<CPLString>::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1401,1
    - Dst: std::set<CPLString>::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1402,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1404,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1409,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - oBandnames
    argTypes:
    - std::set<CPLString>
    constantsTouched: []
    func_position:
      end: 1415
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1415
    functionName: SENTINEL2GetBandListForResolution
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - std::set<CPLString>::begin
    - CPLString
    - std::set<CPLString>::end
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: CPLString SENTINEL2GetBandListForResolution(const std::set<CPLString>
      &oBandnames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1423,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1426,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1434,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1437,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1439,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1443,1
    - Dst: std::make_unique<SENTINEL2DatasetContainer>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1448,1
    - Dst: auto::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1451,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1452,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1454,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1457,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1457,1
    - Dst: auto::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1459,1
    - Dst: SENTINEL2GetPolygonWKTFromPosList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1469,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1470,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1471,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1471,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1479,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1480,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1482,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1482,1
    - Dst: VSI_ISDIR
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1483,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1483,1
    - Dst: VSIReadDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1486,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1486,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1489,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1491,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1492,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1492,1
    - Dst: VSIReadDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1496,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1496,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1500,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1500,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1502,1
    - Dst: std::sort
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1505,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1505,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1505,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1508,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1509,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1510,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1512,1
    - Dst: c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1512,1
    - Dst: auto::release
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1520,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1522,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1524,1
    - Dst: SENTINEL2GetResolutionSet
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1532,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1535,1
    - Dst: SENTINEL2GetGranuleList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1540,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1543,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1549,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1551,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1552,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1556,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1557,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1558,1
    - Dst: c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1558,1
    - Dst: SENTINEL2GetBandListForResolution
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1562,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1566,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1567,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1568,1
    - Dst: auto::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1569,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1570,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1570,1
    - Dst: auto::release
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1577,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1578
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1578
    functionName: SENTINEL2Dataset::OpenL1BUserProduct
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<SENTINEL2DatasetContainer>
    - CPLGetFilename
    - std::vector::size
    - CPLDebug
    - CPLError
    - std::vector::push_back
    - std::string::c_str
    - CPLString::empty
    - CPLGetExtensionSafe
    - IsS2Prefixed
    - std::vector::end
    - VSI_ISDIR
    - std::vector::begin
    - std::sort
    - CPLString::c_str
    - c_str
    - auto::GDALDataset::SetMetadataItem
    - SENTINEL2GetResolutionSet
    - CPLSPrintf
    - CPLStripXMLNamespace
    - CPLFormFilenameSafe
    - CPLFree
    - SENTINEL2GetGranuleList
    - auto::GDALDataset::SetMetadata
    - SENTINEL2GetBandListForResolution
    - SENTINEL2GetPolygonWKTFromPosList
    - CPLGetPathSafe
    - const_cast<char *>
    - VSIStatL
    - CPLParseXMLFile
    - auto::release
    - CPLGetXMLNode
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - std::set::begin
    - VSIReadDir
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *SENTINEL2Dataset::OpenL1BUserProduct(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1586,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1588,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1591,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1595,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1605,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1609,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1616,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1618,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1621,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1623,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1626,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1628,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1631,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1634,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1637,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1646,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1652,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1653
    functionName: SENTINEL2GetL1BGranuleMetadata
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - CPLGetXMLValue
    - CPLStringList::AddNameValue
    - CPLStringList::StealList
    - CPLError
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **SENTINEL2GetL1BGranuleMetadata(CPLXMLNode *psMainMTD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1663,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1668,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1669,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1670,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1672,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1672,1
    - Dst: SENTINEL2GetL2ABandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1676,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1676,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1680,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1683,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1693,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1693,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1699,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1714,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1725,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1730,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1730,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1736,1
    - Dst: size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1743,1
    - Dst: substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1744,1
    - Dst: substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1746,1
    - Dst: substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1747,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1752,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1753,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1757,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1757,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1760,1
    - Dst: std::string::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1761,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1771,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 73
    argCount: 3
    argNames:
    - osGranulePath
    - osGranuleName
    - osBandName
    argTypes:
    - std::string
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 1775
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1775
    functionName: SENTINEL2GetTilename
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - size
    - SENTINEL2GetL2ABandDesc
    - atoi
    - std::string::size
    - CPLSPrintf
    - CPLDebug
    - CPLString::size
    - CPLString
    - substr
    - std::string::substr
    - CPLString::resize
    - std::string::c_str
    - CPLString::empty
    linkageType: ''
    returnType: CPLString
    signature: "CPLString SENTINEL2GetTilename(const std::string &osGranulePath,\n
      \                    const std::string &osGranuleName,\n                     const
      std::string &osBandName,\n                     const std::string &osProductURI
      = CPLString(),\n                     bool bIsPreview = false, int nPrecisionL2A
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1785,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1786,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1786,1
    - Dst: CPLIsFilenameRelative
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1792,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1795,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1796,1
    - Dst: std::string::find
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1797,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1799,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1799,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1799,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1809,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1809,1
    - Dst: IsS2Prefixed
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1810,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1811,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1811,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1813,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1817,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1819
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1819
    functionName: SENTINEL2GetMainMTDFilenameFromGranuleMTD
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - IsS2Prefixed
    - CPLGetPathSafe
    - std::string::find
    - CPLGetDirnameSafe
    - CSLDestroy
    - CPLIsFilenameRelative
    - strlen
    - EQUALN
    - std::string::c_str
    - CPLFormFilenameSafe
    linkageType: ''
    returnType: CPLString
    signature: CPLString SENTINEL2GetMainMTDFilenameFromGranuleMTD(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1835,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1837,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1837,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1839,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1842,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1844,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1845,1
    - Dst: SENTINEL2GetResolutionSet
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1849,1
    - Dst: SENTINEL2GetUserProductMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1853,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1858,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1874,1
    - Dst: SENTINEL2GetTilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1877,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1878,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1879,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1881,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1883,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1884,1
    - Dst: std::set<int>::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1885,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 7
    argNames:
    - pszFilename
    - pszRootPathWithoutEqual
    - nResolutionOfInterest
    - oSetResolutions
    - oMapResolutionsToBands
    - papszMD
    - ppsRootMainMTD
    argTypes:
    - char*
    - char*
    - int
    - std::set<int>
    - std::map<int, std::set<CPLString>>
    - char**
    - CPLXMLNode**
    constantsTouched: []
    func_position:
      end: 1889
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1889
    functionName: SENTINEL2GetResolutionSetAndMainMDFromGranule
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CPLGetPathSafe
    - atoi
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CPLDestroyXMLNode
    - SENTINEL2GetTilename
    - SENTINEL2GetResolutionSet
    - SENTINEL2GetUserProductMetadata
    - CPLSPrintf
    - CPLGetBasenameSafe
    - VSIStatExL
    - CPLStripXMLNamespace
    - insert
    - std::set<int>::insert
    - std::move
    - CPLGetConfigOption
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void SENTINEL2GetResolutionSetAndMainMDFromGranule(\n    const char
      *pszFilename, const char *pszRootPathWithoutEqual,\n    int nResolutionOfInterest,
      std::set<int> &oSetResolutions,\n    std::map<int, std::set<CPLString>> &oMapResolutionsToBands,
      char **&papszMD,\n    CPLXMLNode **ppsRootMainMTD)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1900,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1903,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1911,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1914,1
    - Dst: SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1916,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1918,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1921,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1921,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1923,1
    - Dst: SENTINEL2GetResolutionSetAndMainMDFromGranule
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1929,1
    - Dst: CSLMerge
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1936,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1937,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1941,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1942,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1945,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1948,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1949,1
    - Dst: SENTINEL2GetPolygonWKTFromPosList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1959,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1960,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1961,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1961,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1966,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1967,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1971,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1972,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1973,1
    - Dst: SENTINEL2GetBandListForResolution
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1976,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1979,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1980,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1981,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1982,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1982,1
    - Dst: SENTINEL2_CPLXMLNodeHolder::Release
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:1990,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - pszFilename
    - ppsRoot
    - nResolutionOfInterest
    - poBandSet
    argTypes:
    - char*
    - CPLXMLNode**
    - int
    - std::set<CPLString>*
    constantsTouched: []
    func_position:
      end: 1994
      start: 1895
    functionDepth: 3
    functionLinenumber: 1895
    functionLinenumberEnd: 1994
    functionName: SENTINEL2Dataset::OpenL1BGranule
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - CSLMerge
    - CPLString::empty
    - CSLFetchNameValue
    - SENTINEL2_CPLXMLNodeHolder::Release
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
    - CPLString::c_str
    - SENTINEL2GetResolutionSetAndMainMDFromGranule
    - CPLSPrintf
    - CPLStripXMLNamespace
    - CPLFree
    - SENTINEL2GetBandListForResolution
    - SENTINEL2GetPolygonWKTFromPosList
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
    - const_cast<char *>
    - CPLParseXMLFile
    - CSLDestroy
    - SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
    - std::set::begin
    - CSLSetNameValue
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *SENTINEL2Dataset::OpenL1BGranule(const char *pszFilename,\n
      \                                             CPLXMLNode **ppsRoot,\n                                              int
      nResolutionOfInterest,\n                                              std::set<CPLString>
      *poBandSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2005,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2006,1
    - Dst: SENTINEL2GetBandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2011,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2015,1
    - Dst: GDALRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2016,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2017,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2018,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2019,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2020,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2021,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2022,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2023,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2025,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2027,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2029,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2031,1
    - Dst: SENTINEL2GetL2ABandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2037,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2037,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2044,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2044,1
    - Dst: GDALRasterBand*::SetDescription
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - poBand
    - osBandName
    argTypes:
    - GDALRasterBand*
    - std::string
    constantsTouched: []
    func_position:
      end: 2047
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2047
    functionName: SENTINEL2SetBandMetadata
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - GDALRasterBand*::SetColorInterpretation
    - SENTINEL2GetL2ABandDesc
    - CPLString::substr
    - atoi
    - CPLSPrintf
    - SENTINEL2GetBandDesc
    - GDALRasterBand*::SetMetadataItem
    - std::string::c_str
    - GDALRasterBand*::SetDescription
    linkageType: ''
    returnType: void
    signature: "void SENTINEL2SetBandMetadata(GDALRasterBand *poBand,\n                                     const
      std::string &osBandName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2056,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2056,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2057,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2059,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2061,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2069,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2073,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2073,1
    - Dst: SENTINEL2Dataset::OpenL1BGranule
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2078,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2081,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2082,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2089,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2090,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2092,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2095,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2106,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2110,1
    - Dst: SENTINEL2GetTilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2112,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2113,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2114,1
    - Dst: SENTINEL2GetTileInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2115,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2121,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2135,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2136,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2136,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2142,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2150,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2155,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2156,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2163,1
    - Dst: SENTINEL2Dataset::SENTINEL2Dataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2168,1
    - Dst: SENTINEL2Dataset*::aosNonJP2Files::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2169,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2172,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2172,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2173,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2173,1
    - Dst: VRTSourcedRasterBand::VRTSourcedRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2199,1
    - Dst: SENTINEL2AlphaBand::SENTINEL2AlphaBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2204,1
    - Dst: SENTINEL2Dataset*::SetBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2209,1
    - Dst: VRTSourcedRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2211,1
    - Dst: SENTINEL2SetBandMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2217,1
    - Dst: SENTINEL2GetTilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2222,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2223,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2224,1
    - Dst: SENTINEL2GetTileInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2230,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2237,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2245,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2250,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2252,1
    - Dst: VRTSourcedRasterBand*::AddSimpleSource
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2258,1
    - Dst: VRTSourcedRasterBand*::AddComplexSource
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2264,1
    - Dst: VRTSourcedRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2272,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2272,1
    - Dst: OGRGeometryFactory::createFromWkt
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2289,1
    - Dst: wkbFlatten
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2292,1
    - Dst: OGRGeometry*::getGeometryType
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2292,1
    - Dst: reinterpret_cast<OGRPolygon *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2295,1
    - Dst: OGRLinearRing*::getNumPoints
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2296,1
    - Dst: memset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2299,1
    - Dst: OGRLinearRing*::getX
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2302,1
    - Dst: OGRLinearRing*::getY
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2303,1
    - Dst: OGRLinearRing*::getZ
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2304,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2317,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2326,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2329,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2332,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2333,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2334,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2335,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2339,1
    - Dst: SENTINEL2Dataset*::SetGCPs
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2343,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2344,1
    - Dst: SENTINEL2Dataset*::SetDescription
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2353,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2356,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2356,1
    - Dst: SENTINEL2Dataset*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2357,1
    - Dst: SENTINEL2Dataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2358,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 146
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2053
    functionDepth: 4
    functionLinenumber: 2053
    functionLinenumberEnd: 2361
    functionName: SENTINEL2Dataset::OpenL1BSubdataset
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - VRTSourcedRasterBand*::AddComplexSource
    - VRTSourcedRasterBand*::SetMetadataItem
    - atoi
    - std::vector::size
    - SENTINEL2GetTilename
    - SENTINEL2SetBandMetadata
    - CPLDebug
    - OGRLinearRing*::getY
    - OGRLinearRing*::getX
    - VRTSourcedRasterBand*::SetColorInterpretation
    - std::vector::push_back
    - CPLError
    - CPLString::resize
    - CPLGetXMLValue
    - VSIStatExL
    - VRTSourcedRasterBand::VRTSourcedRasterBand
    - SENTINEL2AlphaBand::SENTINEL2AlphaBand
    - CPLString::c_str
    - strlen
    - SENTINEL2Dataset*::SetGCPs
    - CSLCount
    - wkbFlatten
    - OGRGeometry*::getGeometryType
    - CPLAtof
    - SENTINEL2Dataset*::GDALDataset::SetMetadata
    - OGRLinearRing*::getNumPoints
    - STARTS_WITH_CI
    - SENTINEL2Dataset*::aosNonJP2Files::push_back
    - SENTINEL2Dataset::OpenL1BGranule
    - SENTINEL2Dataset*::SetDescription
    - CPLSPrintf
    - GDALDeinitGCPs
    - CPLAssert
    - SENTINEL2Dataset*::oOvManager::Initialize
    - SENTINEL2Dataset*::SetMetadataItem
    - SENTINEL2Dataset::SENTINEL2Dataset
    - GDALDataset*::GetMetadata
    - reinterpret_cast<OGRPolygon *>
    - SENTINEL2Dataset*::SetBand
    - OGRLinearRing*::getZ
    - CPLGetPathSafe
    - SENTINEL2GetTileInfo
    - CPLGetXMLNode
    - CPLGetBasenameSafe
    - CSLDestroy
    - EQUAL
    - VRTSourcedRasterBand*::AddSimpleSource
    - OGRGeometryFactory::createFromWkt
    - std::set::begin
    - memset
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *SENTINEL2Dataset::OpenL1BSubdataset(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2371,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2372,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2374,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2376,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2378,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2387,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2390,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2397,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2397,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2406,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2406,1
    - Dst: VSIReadDir
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2409,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2409,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2413,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2413,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2419,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2421,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2423,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2423,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2427,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2430,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2432,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2434,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2436,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2436,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2439,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2440,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2443,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2443,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2446,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2446,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2450,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2451,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2468,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2469,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2472,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2479,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2487,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2488,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2495,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2497,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2499,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2499,1
    - Dst: std::sort
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2502,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2502,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2502,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2511,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2520,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2523,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2523,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2523,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2523,1
    - Dst: SENTINEL2GetBandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2525,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2525,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2528,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2529,1
    - Dst: std::make_unique<SENTINEL2Dataset>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2540,1
    - Dst: auto::get
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2545,1
    - Dst: VRTSourcedRasterBand::VRTSourcedRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2544,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2546,1
    - Dst: SENTINEL2SetBandMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2548,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2552,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2552,1
    - Dst: SENTINEL2GetTilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2561,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2561,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2564,1
    - Dst: SENTINEL2GetTileInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2572,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2572,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2580,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2586,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2589,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2598,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2598,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2603,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2604,1
    - Dst: auto::AddSimpleSource
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2608,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2608,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2615,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2615,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2623,1
    - Dst: CPLFormFilenameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2624,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2624,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2628,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2628,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2629,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2630,1
    - Dst: std::string::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2632,1
    - Dst: std::string::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2632,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2632,1
    - Dst: SENTINEL2GetResolutionSetAndMainMDFromGranule
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2634,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2635,1
    - Dst: cpl::IterateNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2638,1
    - Dst: const_cast<CSLConstList>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2638,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2640,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2641,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2643,1
    - Dst: std::string
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2646,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2652,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2653,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2654,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2654,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2657,1
    - Dst: auto::GetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2657,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2658,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2658,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2659,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2659,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2661,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2662,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2664,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2667,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2667,1
    - Dst: auto::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2670,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2670,1
    - Dst: auto::release
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2673,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 107
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 2674
      start: 2367
    functionDepth: 4
    functionLinenumber: 2367
    functionLinenumberEnd: 2674
    functionName: SENTINEL2Dataset::OpenL1BSubdatasetWithGeoloc
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - auto::SetBand
    - atoi
    - SENTINEL2GetTilename
    - SENTINEL2SetBandMetadata
    - auto::get
    - CPLDebug
    - CPLString
    - CPLXMLTreeCloser::get
    - CPLError
    - CPLGetXMLValue
    - std::vector::push_back
    - std::string::c_str
    - VSIStatExL
    - auto::GetMetadata
    - VRTSourcedRasterBand::VRTSourcedRasterBand
    - CPLStringList::List
    - std::string::empty
    - std::vector::end
    - CPLGetDirnameSafe
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - std::vector::begin
    - std::sort
    - OGRAPISpyOpen
    - SENTINEL2GetResolutionSetAndMainMDFromGranule
    - strlen
    - CSLTokenizeString2
    - CPLStringList::size
    - std::vector::empty
    - OGRSpatialReference::SetFromUserInput
    - STARTS_WITH_CI
    - auto::SetMetadata
    - CPLSPrintf
    - const_cast<CSLConstList>
    - CPLStripXMLNamespace
    - CPLAssert
    - std::string::resize
    - CPL_IGNORE_RET_VAL
    - auto::AddSimpleSource
    - auto::SetMetadataItem
    - CPLStringList::SetNameValue
    - CPLFormFilenameSafe
    - std::unique_ptr<GDALDataset>
    - OGRSpatialReference::OGRSpatialReference
    - SENTINEL2GetTileInfo
    - auto::release
    - CPLParseXMLFile
    - CPLGetXMLNode
    - std::make_unique<SENTINEL2Dataset>
    - std::string::size
    - cpl::IterateNameValue
    - CSLDestroy
    - EQUAL
    - CSLDuplicate
    - SENTINEL2GetBandDesc
    - std::string
    - VSIReadDir
    linkageType: ''
    returnType: GDALDataset
    signature: 'GDALDataset *

      SENTINEL2Dataset::OpenL1BSubdatasetWithGeoloc(GDALOpenInfo *poOpenInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2684,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2688,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2694,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2697,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2712,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2721,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2729,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2736,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2738,1
    - Dst: L1CSafeCompatGranuleDescription::osBandPrefixPath::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2743,1
    - Dst: L1CSafeCompatGranuleDescription::osBandPrefixPath::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2743,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2749,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2749,1
    - Dst: std::vector<L1CSafeCompatGranuleDescription>::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2751,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2751,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - psMainMTD
    - pszFilename
    - osList
    argTypes:
    - CPLXMLNode*
    - char*
    - std::vector<L1CSafeCompatGranuleDescription>
    constantsTouched: []
    func_position:
      end: 2756
      start: 2680
    functionDepth: 1
    functionLinenumber: 2680
    functionLinenumberEnd: 2756
    functionName: SENTINEL2GetGranuleList_L1CSafeCompact
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - L1CSafeCompatGranuleDescription::osBandPrefixPath::resize
    - CPLGetXMLNode
    - CPLGetDirnameSafe
    - std::vector<L1CSafeCompatGranuleDescription>::push_back
    - CPLDebug
    - EQUAL
    - std::move
    - strlen
    - CPLError
    - L1CSafeCompatGranuleDescription::osBandPrefixPath::size
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetGranuleList_L1CSafeCompact(\n    CPLXMLNode *psMainMTD,
      const char *pszFilename,\n    std::vector<L1CSafeCompatGranuleDescription> &osList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2768,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2772,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2776,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2781,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2785,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2788,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2804,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2813,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2821,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2831,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2832,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2834,1
    - Dst: L1CSafeCompatGranuleDescription::osBandPrefixPath::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2840,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2842,1
    - Dst: L1CSafeCompatGranuleDescription::osBandPrefixPath::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2845,1
    - Dst: L1CSafeCompatGranuleDescription::osBandPrefixPath::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2845,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2850,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2850,1
    - Dst: L1CSafeCompatGranuleDescription::osMTDTLPath::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2851,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2853,1
    - Dst: L1CSafeCompatGranuleDescription::osMTDTLPath::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2856,1
    - Dst: L1CSafeCompatGranuleDescription::osMTDTLPath::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2856,1
    - Dst: std::vector<L1CSafeCompatGranuleDescription>::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2858,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2858,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 3
    argNames:
    - psMainMTD
    - pszFilename
    - osList
    argTypes:
    - CPLXMLNode*
    - char*
    - std::vector<L1CSafeCompatGranuleDescription>
    constantsTouched: []
    func_position:
      end: 2863
      start: 2762
    functionDepth: 1
    functionLinenumber: 2762
    functionLinenumberEnd: 2863
    functionName: SENTINEL2GetGranuleList_L2ASafeCompact
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - L1CSafeCompatGranuleDescription::osBandPrefixPath::resize
    - L1CSafeCompatGranuleDescription::osMTDTLPath::size
    - CPLGetXMLNode
    - CPLGetDirnameSafe
    - CPLGetXMLValue
    - L1CSafeCompatGranuleDescription::osMTDTLPath::resize
    - std::vector<L1CSafeCompatGranuleDescription>::push_back
    - CPLDebug
    - EQUAL
    - std::move
    - strlen
    - CPLError
    - L1CSafeCompatGranuleDescription::osBandPrefixPath::size
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetGranuleList_L2ASafeCompact(\n    CPLXMLNode *psMainMTD,
      const char *pszFilename,\n    std::vector<L1CSafeCompatGranuleDescription> &osList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2872,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2875,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2883,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2886,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2892,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2896,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2900,1
    - Dst: strcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2916,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2918,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2920,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2922,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2923,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2929,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2930,1
    - Dst: SENTINEL2GetResolutionSet
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2936,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2939,1
    - Dst: SENTINEL2GetGranuleList_L1CSafeCompact
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2949,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2952,1
    - Dst: SENTINEL2GetGranuleList_L2ASafeCompact
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2956,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2959,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2962,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2964,1
    - Dst: SENTINEL2GetGranuleList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2968,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2973,1
    - Dst: std::set::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2976,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2978,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2983,1
    - Dst: SENTINEL2GetGranuleInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2986,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2987,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2989,1
    - Dst: SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2993,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2997,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:2998,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3000,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3003,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3003,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3005,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3013,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3014,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3018,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3019,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3022,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3023,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3024,1
    - Dst: SENTINEL2GetBandListForResolution
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3028,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3031,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3032,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3034,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3036,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3038,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3039,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3040,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3040,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3050,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3051,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3054,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3055,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3056,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3062,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3064,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3066,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3067,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3068,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3068,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3076,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3077,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3080,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3081,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3082,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3088,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3090,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3092,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3093,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3094,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3094,1
    - Dst: SENTINEL2GetPolygonWKTFromPosList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3110,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3111,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3112,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3112,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 109
    argCount: 2
    argNames:
    - pszFilename
    - eLevel
    argTypes:
    - char*
    - SENTINEL2Level
    constantsTouched: []
    func_position:
      end: 3116
      start: 2869
    functionDepth: 2
    functionLinenumber: 2869
    functionLinenumberEnd: 3116
    functionName: SENTINEL2Dataset::OpenL1C_L2A
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - std::vector::size
    - std::set::insert
    - CPLDebug
    - strcmp
    - std::vector::push_back
    - CPLError
    - CPLString::empty
    - insert
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
    - CPLString::c_str
    - std::move
    - SENTINEL2GetGranuleList_L1CSafeCompact
    - SENTINEL2GetResolutionSet
    - SENTINEL2GetGranuleList_L2ASafeCompact
    - CPLSPrintf
    - CPLStripXMLNamespace
    - std::set::empty
    - CPLFree
    - SENTINEL2GetGranuleList
    - SENTINEL2GetBandListForResolution
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
    - SENTINEL2GetGranuleInfo
    - SENTINEL2GetPolygonWKTFromPosList
    - const_cast<char *>
    - CPLParseXMLFile
    - CPLGetXMLNode
    - CSLDestroy
    - SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
    - std::set::begin
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *SENTINEL2Dataset::OpenL1C_L2A(const char *pszFilename,\n
      \                                          SENTINEL2Level eLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3124,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3126,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3129,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3132,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3142,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3146,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3149,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3158,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3122
    functionDepth: 1
    functionLinenumber: 3122
    functionLinenumberEnd: 3165
    functionName: SENTINEL2GetL1BCTileMetadata
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetXMLNode
    - CPLStringList::AddNameValue
    - CPLStringList::StealList
    - CPLError
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: char
    signature: char **SENTINEL2GetL1BCTileMetadata(CPLXMLNode *psMainMTD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3176,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3179,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3187,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3190,1
    - Dst: SENTINEL2GetResolutionSetAndMainMDFromGranule
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3195,1
    - Dst: SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3201,1
    - Dst: CSLMerge
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3204,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3205,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3209,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3210,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3213,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3216,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3217,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3219,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3222,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3222,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3224,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3229,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3230,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3234,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3235,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3236,1
    - Dst: SENTINEL2GetBandListForResolution
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3240,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3243,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3244,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3245,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3246,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3246,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3253,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3254,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3255,1
    - Dst: SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3259,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3260,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - pszFilename
    - ppsRootMainMTD
    - nResolutionOfInterest
    - poBandSet
    argTypes:
    - char*
    - CPLXMLNode**
    - int
    - std::set<CPLString>*
    constantsTouched: []
    func_position:
      end: 3264
      start: 3171
    functionDepth: 3
    functionLinenumber: 3171
    functionLinenumberEnd: 3264
    functionName: SENTINEL2Dataset::OpenL1CTile
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - CPLDebug
    - CSLMerge
    - CPLString::empty
    - CSLFetchNameValue
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadata
    - CPLString::c_str
    - SENTINEL2GetResolutionSetAndMainMDFromGranule
    - CPLSPrintf
    - CPLStripXMLNamespace
    - CPLFree
    - SENTINEL2GetBandListForResolution
    - SENTINEL2DatasetContainer*::GDALDataset::SetMetadataItem
    - const_cast<char *>
    - CPLParseXMLFile
    - CSLDestroy
    - SENTINEL2DatasetContainer::SENTINEL2DatasetContainer
    - std::set::begin
    - CSLSetNameValue
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *SENTINEL2Dataset::OpenL1CTile(const char *pszFilename,\n
      \                                          CPLXMLNode **ppsRootMainMTD,\n                                           int
      nResolutionOfInterest,\n                                           std::set<CPLString>
      *poBandSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3282,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - poOpenInfo
    - pszName
    - pszDefaultVal
    argTypes:
    - GDALOpenInfo*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3284
      start: 3270
    functionDepth: 1
    functionLinenumber: 3270
    functionLinenumberEnd: 3284
    functionName: SENTINEL2GetOption
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - CPLSPrintf
    linkageType: ''
    returnType: char
    signature: "char *SENTINEL2GetOption(GDALOpenInfo *poOpenInfo,\n                                      const
      char *pszName,\n                                      const char *pszDefaultVal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3295,1
    - Dst: strncmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pszUnit
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3318
      start: 3290
    functionDepth: 0
    functionLinenumber: 3290
    functionLinenumberEnd: 3318
    functionName: LaunderUnit
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: CPLString
    signature: CPLString LaunderUnit(const char *pszUnit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3329,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3333,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3335,1
    - Dst: memcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3338,1
    - Dst: GDALJP2Box::ReadFirst
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3343,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3345,1
    - Dst: GDALJP2Box::GetType
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3345,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3347,1
    - Dst: GDALJP2Box::GetType
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3347,1
    - Dst: GDALJP2Box::ReadFirstChild
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3350,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3353,1
    - Dst: GDALJP2Box::GetType
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3353,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3355,1
    - Dst: GDALJP2Box::GetType
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3355,1
    - Dst: GDALJP2Box::ReadBoxData
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3357,1
    - Dst: GDALJP2Box::GetDataLength
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3358,1
    - Dst: memcpy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3364,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3365,1
    - Dst: memcpy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3370,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3371,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3384,1
    - Dst: GDALJP2Box::ReadNextChild
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3387,1
    - Dst: GDALJP2Box::ReadNext
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3393,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3397,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3402,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3403,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3403,1
    - Dst: auto::GetRasterCount
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3408,1
    - Dst: auto::GetRasterXSize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3412,1
    - Dst: auto::GetRasterYSize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3414,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3423,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3424,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3424,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3426,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 4
    argNames:
    - pszFilename
    - pnWidth
    - pnHeight
    - pnBits
    argTypes:
    - char*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 3432
      start: 3324
    functionDepth: 4
    functionLinenumber: 3324
    functionLinenumberEnd: 3432
    functionName: SENTINEL2GetTileInfo
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 2
    functionsReached:
    - atoi
    - memcmp
    - auto::GetRasterYSize
    - auto::GetRasterBand
    - OGRAPISpyOpen
    - GDALJP2Box::ReadFirst
    - strlen
    - GDALJP2Box::ReadFirstChild
    - GDALJP2Box::ReadBoxData
    - CPLSPrintf
    - GDALJP2Box::ReadNext
    - VSIFOpenL
    - CPL_MSBPTR32
    - VSIFReadL
    - CPLFree
    - GDALJP2Box::GetType
    - std::unique_ptr<GDALDataset>
    - auto::GetRasterXSize
    - GDALGetDataTypeSize
    - VSIFCloseL
    - GDALJP2Box::ReadNextChild
    - auto::GetRasterCount
    - EQUAL
    - GDALJP2Box::GetDataLength
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool SENTINEL2GetTileInfo(const char *pszFilename, int *pnWidth,\n
      \                                int *pnHeight, int *pnBits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3444,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3444,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3445,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3449,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3453,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3453,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3454,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3455,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3459,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3464,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3464,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3466,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3480,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3485,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3485,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3487,1
    - Dst: CPLParseXMLFile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3489,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3492,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3492,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3500,1
    - Dst: CPLStripXMLNamespace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3503,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3507,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3509,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3513,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3518,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3532,1
    - Dst: strcmp
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3547,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3550,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3552,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3553,1
    - Dst: insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3559,1
    - Dst: SENTINEL2GetGranuleList_L1CSafeCompact
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3564,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3567,1
    - Dst: SENTINEL2GetGranuleList_L2ASafeCompact
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3571,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3574,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3577,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3579,1
    - Dst: SENTINEL2GetGranuleList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3583,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3587,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3595,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3596,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3597,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3602,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3606,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3615,1
    - Dst: SENTINEL2GetBandDesc
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3619,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3622,1
    - Dst: atoi
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3629,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3631,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3631,1
    - Dst: std::set::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3633,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3635,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3644,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3647,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3648,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3650,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3653,1
    - Dst: SENTINEL2Dataset::CreateL1CL2ADataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3677,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3681,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3684,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3688,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3691,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3691,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3693,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3696,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3697,1
    - Dst: SENTINEL2Dataset*::AddL1CL2ABandMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3702,1
    - Dst: SENTINEL2Dataset*::SetDescription
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3707,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3710,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3711,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3713,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3714,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3717,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3717,1
    - Dst: SENTINEL2Dataset*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3719,1
    - Dst: SENTINEL2Dataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3720,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 130
    argCount: 2
    argNames:
    - poOpenInfo
    - eLevel
    argTypes:
    - GDALOpenInfo*
    - SENTINEL2Level
    constantsTouched: []
    func_position:
      end: 3723
      start: 3438
    functionDepth: 2
    functionLinenumber: 3438
    functionLinenumberEnd: 3723
    functionName: SENTINEL2Dataset::OpenL1C_L2ASubdataset
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - atoi
    - std::vector::size
    - std::set::insert
    - SENTINEL2Dataset::CreateL1CL2ADataset
    - CPLDebug
    - strcmp
    - CPLString
    - std::vector::push_back
    - CPLGetXMLValue
    - CPLError
    - CPLString::resize
    - std::string::c_str
    - CPLString::empty
    - CPLString::substr
    - insert
    - CPLString::c_str
    - std::move
    - strlen
    - SENTINEL2GetGranuleList_L1CSafeCompact
    - std::vector::empty
    - SENTINEL2Dataset*::GDALDataset::SetMetadata
    - STARTS_WITH_CI
    - SENTINEL2Dataset*::SetDescription
    - SENTINEL2GetGranuleList_L2ASafeCompact
    - CPLSPrintf
    - CPLStripXMLNamespace
    - CPLAssert
    - SENTINEL2Dataset*::oOvManager::Initialize
    - std::set::empty
    - SENTINEL2Dataset*::SetMetadataItem
    - CPLFree
    - SENTINEL2GetGranuleList
    - static_cast<size_t>
    - const_cast<char *>
    - CPLParseXMLFile
    - CPLGetXMLNode
    - SENTINEL2Dataset*::AddL1CL2ABandMetadata
    - CSLDestroy
    - EQUAL
    - SENTINEL2GetBandDesc
    - std::set::begin
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *SENTINEL2Dataset::OpenL1C_L2ASubdataset(GDALOpenInfo
      *poOpenInfo,\n                                                     SENTINEL2Level
      eLevel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3734,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3741,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3747,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3754,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3766,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3770,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3774,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3777,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3779,1
    - Dst: LaunderUnit
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3781,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3790,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3799,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3811,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3815,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3819,1
    - Dst: GDALRasterBand*::GDALRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3822,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3839,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3844,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3850,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3850,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3852,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3867,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3868,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3875,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3880,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3885,1
    - Dst: max
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3890,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3892,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3901,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3902,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3903,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 76
    argCount: 3
    argNames:
    - eLevel
    - psRoot
    - aosBands
    argTypes:
    - SENTINEL2Level
    - CPLXMLNode*
    - std::vector<CPLString>
    constantsTouched: []
    func_position:
      end: 3906
      start: 3729
    functionDepth: 2
    functionLinenumber: 3729
    functionLinenumberEnd: 3906
    functionName: SENTINEL2Dataset::AddL1CL2ABandMetadata
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - LaunderUnit
    - static_cast<int>
    - STARTS_WITH_CI
    - CPLStringList
    - CPLGetXMLNode
    - std::vector::size
    - GetRasterBand
    - EQUAL
    - GDALRasterBand*::GDALRasterBand::SetMetadataItem
    - max
    - CPLGetXMLValue
    - std::vector::resize
    - std::vector<CPLString>::size
    linkageType: ''
    returnType: void
    signature: "void SENTINEL2Dataset::AddL1CL2ABandMetadata(\n    SENTINEL2Level
      eLevel, CPLXMLNode *psRoot,\n    const std::vector<CPLString> &aosBands)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3935,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3935,1
    - Dst: std::vector<L1CSafeCompatGranuleDescription>::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3935,1
    - Dst: std::vector<CPLString>::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3938,1
    - Dst: SENTINEL2GetGranuleInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3946,1
    - Dst: std::vector<CPLString>::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3953,1
    - Dst: CPLGetPathSafe
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3967,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3979,1
    - Dst: std::move
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3979,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3984,1
    - Dst: SENTINEL2Dataset::SENTINEL2Dataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:3993,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4004,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4006,1
    - Dst: OGRSpatialReference::exportToWkt
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4007,1
    - Dst: SENTINEL2Dataset*::SetProjection
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4009,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4010,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4014,1
    - Dst: SENTINEL2Dataset*::SetGeoTransform
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4024,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4025,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4028,1
    - Dst: VRTSourcedRasterBand::VRTSourcedRasterBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4046,1
    - Dst: SENTINEL2AlphaBand::SENTINEL2AlphaBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4051,1
    - Dst: SENTINEL2Dataset*::SetBand
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4056,1
    - Dst: VRTSourcedRasterBand*::SetColorInterpretation
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4058,1
    - Dst: SENTINEL2SetBandMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4064,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4069,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4083,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4085,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4086,1
    - Dst: SENTINEL2GetTilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4094,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4095,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4099,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4100,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4100,1
    - Dst: CPLString::insert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4102,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4102,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4104,1
    - Dst: CPLString::replace
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4106,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4106,1
    - Dst: SENTINEL2GetTileInfo
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4115,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4122,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4130,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4135,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4137,1
    - Dst: VRTSourcedRasterBand*::AddSimpleSource
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4148,1
    - Dst: VRTSourcedRasterBand*::AddComplexSource
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4155,1
    - Dst: VRTSourcedRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4164,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4164,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 114
    argCount: 15
    argNames:
    - eLevel
    - pType
    - bIsSafeCompact
    - aosGranuleList
    - aoL1CSafeCompactGranuleList
    - aosNonJP2Files
    - nSubDSPrecision
    - bIsPreview
    - bIsTCI
    - nSubDSEPSGCode
    - bAlpha
    - aosBands
    - nSaturatedVal
    - nNodataVal
    - osProductURI
    argTypes:
    - SENTINEL2Level
    - SENTINEL2ProductType
    - bool
    - std::vector<CPLString>
    - std::vector<L1CSafeCompatGranuleDescription>
    - std::vector<CPLString>
    - int
    - bool
    - bool
    - int
    - bool
    - std::vector<CPLString>
    - int
    - int
    - CPLString
    constantsTouched: []
    func_position:
      end: 4170
      start: 3912
    functionDepth: 7
    functionLinenumber: 3912
    functionLinenumberEnd: 4170
    functionName: SENTINEL2Dataset::CreateL1CL2ADataset
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::exportToWkt
    - VRTSourcedRasterBand*::AddComplexSource
    - VRTSourcedRasterBand*::SetMetadataItem
    - CPLGetFilename
    - std::vector::size
    - SENTINEL2GetTilename
    - SENTINEL2SetBandMetadata
    - CPLDebug
    - SENTINEL2Dataset*::SetProjection
    - VRTSourcedRasterBand*::SetColorInterpretation
    - CPLError
    - std::vector::push_back
    - VSIStatExL
    - VRTSourcedRasterBand::VRTSourcedRasterBand
    - SENTINEL2Dataset*::GDALDataset::SetMetadataItem
    - std::vector<CPLString>::size
    - CPLString::replace
    - SENTINEL2AlphaBand::SENTINEL2AlphaBand
    - CPLString::substr
    - CPLString::c_str
    - CPLString::size
    - SENTINEL2Dataset*::SetGeoTransform
    - std::move
    - OGRSpatialReference::importFromEPSG
    - CPLSPrintf
    - CPLAssert
    - CPLString::insert
    - CPLFree
    - SENTINEL2Dataset::SENTINEL2Dataset
    - SENTINEL2Dataset*::SetBand
    - SENTINEL2GetGranuleInfo
    - CPLGetPathSafe
    - OGRSpatialReference::OGRSpatialReference
    - SENTINEL2GetTileInfo
    - VRTSourcedRasterBand*::AddSimpleSource
    - std::vector<L1CSafeCompatGranuleDescription>::size
    - std::vector<CPLString>::push_back
    linkageType: ''
    returnType: SENTINEL2Dataset
    signature: "SENTINEL2Dataset *SENTINEL2Dataset::CreateL1CL2ADataset(\n    SENTINEL2Level
      eLevel, SENTINEL2ProductType pType, bool bIsSafeCompact,\n    const std::vector<CPLString>
      &aosGranuleList,\n    const std::vector<L1CSafeCompatGranuleDescription>\n        &aoL1CSafeCompactGranuleList,\n
      \   std::vector<CPLString> &aosNonJP2Files, int nSubDSPrecision,\n    bool bIsPreview,
      bool bIsTCI,\n    int nSubDSEPSGCode, /* or -1 if not known at this point */\n
      \   bool bAlpha, const std::vector<CPLString> &aosBands, int nSaturatedVal,\n
      \   int nNodataVal, const CPLString &osProductURI)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4179,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4179,1
    - Dst: strlen
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4180,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4182,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4184,1
    - Dst: CPLError
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4193,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4197,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4197,1
    - Dst: SENTINEL2Dataset::OpenL1CTile
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4202,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4210,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4211,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4212,1
    - Dst: std::set::begin
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4217,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4218,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4223,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4236,1
    - Dst: SENTINEL2Dataset::CreateL1CL2ADataset
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4247,1
    - Dst: std::vector<L1CSafeCompatGranuleDescription>
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4250,1
    - Dst: CPLString
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4254,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4262,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4262,1
    - Dst: SENTINEL2Dataset*::GDALDataset::SetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4263,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4263,1
    - Dst: SENTINEL2Dataset*::AddL1CL2ABandMetadata
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4272,1
    - Dst: SENTINEL2Dataset*::SetDescription
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4277,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4280,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4280,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4283,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4283,1
    - Dst: SENTINEL2Dataset*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4284,1
    - Dst: SENTINEL2Dataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4285,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 4288
      start: 4176
    functionDepth: 8
    functionLinenumber: 4176
    functionLinenumberEnd: 4288
    functionName: SENTINEL2Dataset::OpenL1CTileSubdataset
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - SENTINEL2Dataset::CreateL1CL2ADataset
    - CPLString
    - std::vector::push_back
    - CPLError
    - CPLString::resize
    - CPLString::c_str
    - strlen
    - SENTINEL2Dataset*::GDALDataset::SetMetadata
    - STARTS_WITH_CI
    - SENTINEL2Dataset*::SetDescription
    - CPLSPrintf
    - CPLAssert
    - SENTINEL2Dataset::OpenL1CTile
    - SENTINEL2Dataset*::oOvManager::Initialize
    - SENTINEL2Dataset*::SetMetadataItem
    - GDALDataset*::GetMetadata
    - SENTINEL2Dataset*::AddL1CL2ABandMetadata
    - std::vector<L1CSafeCompatGranuleDescription>
    - std::set::begin
    - std::set::end
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *SENTINEL2Dataset::OpenL1CTileSubdataset(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4296,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4299,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4301,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4302,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4303,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4304,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4305,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4307,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4309,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp:4325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4326
      start: 4294
    functionDepth: 1
    functionLinenumber: 4294
    functionLinenumberEnd: 4326
    functionName: GDALRegister_SENTINEL2
    functionSourceFile: /src/gdal/frmts/sentinel2/sentinel2dataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_SENTINEL2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GXFDataset*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: GXFRasterBand::GXFRasterBand
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void GXFRasterBand::GXFRasterBand(GXFDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GXFDataset *>
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:86,1
    - Dst: fabs
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bGotNoDataValue
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: GXFRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GXFDataset *>
    - fabs
    linkageType: ''
    returnType: double
    signature: double GXFRasterBand::GetNoDataValue(int *bGotNoDataValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GXFDataset *>
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:102,1
    - Dst: GXFGetScanline
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:110,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:116,1
    - Dst: GXFGetScanline
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 127
    functionName: GXFRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - cpl::down_cast<GXFDataset *>
    - GXFGetScanline
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff, int nBlockYOff,\n
      \                                void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: GXFDataset::GXFDataset
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - SetAxisMappingStrategy
    linkageType: ''
    returnType: void
    signature: void GXFDataset::GXFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:152,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: GXFDataset::~GXFDataset()
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - FlushCache
    - GXFClose
    linkageType: ''
    returnType: void
    signature: void GXFDataset::~GXFDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GXFGetPosition
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:170,1
    - Dst: cos
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:179,1
    - Dst: sin
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:180,1
    - Dst: sin
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:181,1
    - Dst: cos
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 191
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: GXFDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - sin
    - cos
    - GXFGetPosition
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GXFDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: GXFDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GXFDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:225,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:228,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:231,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:251,1
    - Dst: GDALOpenInfo*::TryToIngest
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:251,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:257,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:264,1
    - Dst: GXFOpen
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:271,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:281,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:282,1
    - Dst: GXFDataset::GXFDataset
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:289,1
    - Dst: GDALGetDataTypeByName
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:292,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:295,1
    - Dst: GXFDataset*::m_oSRS::importFromWkt
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:308,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:309,1
    - Dst: GXFGetRawInfo
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:314,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:319,1
    - Dst: GXFDataset*::SetBand
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:329,1
    - Dst: GXFRasterBand::GXFRasterBand
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:329,1
    - Dst: GXFDataset*::SetDescription
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:334,1
    - Dst: GXFDataset*::TryLoadXML
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:335,1
    - Dst: GXFDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:340,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:341,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 57
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 344
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 344
    functionName: GXFDataset::Open
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 0
    functionsReached:
    - GXFDataset::GXFDataset
    - GXFDataset*::SetBand
    - GXFDataset*::SetDescription
    - CPLError
    - STARTS_WITH
    - GDALOpenInfo*::TryToIngest
    - GXFGetRawInfo
    - GXFDataset*::m_oSRS::importFromWkt
    - STARTS_WITH_CI
    - GXFRasterBand::GXFRasterBand
    - GXFOpen
    - GDALOpenInfo*::GetSiblingFiles
    - CPL_IGNORE_RET_VAL
    - GXFDataset*::oOvManager::Initialize
    - CPLFree
    - GXFClose
    - VSIFCloseL
    - GXFDataset*::TryLoadXML
    - ReportUpdateNotSupportedByDriver
    - GDALGetDataTypeByName
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GXFDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:353,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:356,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:358,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:359,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:360,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:362,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:363,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:364,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gxf/gxfdataset.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: GDALRegister_GXF
    functionSourceFile: /src/gdal/frmts/gxf/gxfdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_GXF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:46,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:49,1
    - Dst: isspace
      Src: /src/gdal/frmts/gxf/gxfopen.c:58,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:63,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxfopen.c:70,1
    - Dst: isspace
      Src: /src/gdal/frmts/gxf/gxfopen.c:76,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:84,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:87,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:106,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxfopen.c:110,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:122,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:123,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:126,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxfopen.c:128,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:130,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxfopen.c:130,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:132,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gxf/gxfopen.c:137,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:144,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gxf/gxfopen.c:146,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gxf/gxfopen.c:147,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:149,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gxf/gxfopen.c:152,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:158,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 164
    functionName: GXFReadHeaderValue
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached:
    - CPLReadLineL
    - CPLStrdup
    - isspace
    - CSLAddString
    - CSLDestroy
    - strncpy
    - VSIFSeekL
    - EQUAL
    - VSIFTellL
    - strlen
    - VSIFReadL
    - strcpy
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **GXFReadHeaderValue(VSILFILE *fp, char *pszHTitle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gxf/gxfopen.c:196,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:201,1
    - Dst: VSICalloc
      Src: /src/gdal/frmts/gxf/gxfopen.c:209,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gxf/gxfopen.c:218,1
    - Dst: GXFReadHeaderValue
      Src: /src/gdal/frmts/gxf/gxfopen.c:223,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:226,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:228,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxfopen.c:229,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:231,1
    - Dst: atoi
      Src: /src/gdal/frmts/gxf/gxfopen.c:233,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:235,1
    - Dst: atoi
      Src: /src/gdal/frmts/gxf/gxfopen.c:237,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:239,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:241,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:243,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:245,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:247,1
    - Dst: memset
      Src: /src/gdal/frmts/gxf/gxfopen.c:249,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gxf/gxfopen.c:250,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:251,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:253,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:255,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:257,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:259,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:261,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:263,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:265,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:267,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:269,1
    - Dst: atoi
      Src: /src/gdal/frmts/gxf/gxfopen.c:271,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:273,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:279,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:285,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/gxf/gxfopen.c:290,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxfopen.c:292,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gxf/gxfopen.c:294,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:295,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:300,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:302,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/gxf/gxfopen.c:308,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxfopen.c:310,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:312,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:313,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxfopen.c:316,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxfopen.c:317,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:319,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:321,1
    - Dst: atoi
      Src: /src/gdal/frmts/gxf/gxfopen.c:323,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:326,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfopen.c:327,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:332,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:336,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gxf/gxfopen.c:341,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfopen.c:343,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:344,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfopen.c:357,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gxf/gxfopen.c:366,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gxf/gxfopen.c:367,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gxf/gxfopen.c:368,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gxf/gxfopen.c:369,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfopen.c:372,1
    - Dst: VSICalloc
      Src: /src/gdal/frmts/gxf/gxfopen.c:378,1
    - Dst: GXFClose
      Src: /src/gdal/frmts/gxf/gxfopen.c:381,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gxf/gxfopen.c:385,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 122
    argCount: 1
    argNames:
    - pszFilename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 400
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 400
    functionName: GXFOpen
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 1
    functionsReached:
    - CPLAtof
    - STARTS_WITH_CI
    - CPLStrdup
    - atoi
    - VSIStrdup
    - GXFClose
    - GXFReadHeaderValue
    - CSLDestroy
    - VSICalloc
    - strncpy
    - VSIFSeekL
    - VSIFOpenL
    - CSLTokenizeStringComplex
    - VSIFTellL
    - CPLError
    - memset
    - CSLCount
    - CPLFree
    linkageType: ''
    returnType: GXFHandle
    signature: GXFHandle GXFOpen(const char *pszFilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:417,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:418,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:419,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxfopen.c:420,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:421,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:422,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gxf/gxfopen.c:424,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:426,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - hGXF
    argTypes:
    - GXFHandle
    constantsTouched: []
    func_position:
      end: 429
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 429
    functionName: GXFClose
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 3
    functionsReached:
    - CSLDestroy
    - CPLReadLineL
    - CPLFree
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void GXFClose(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - psGXF
    - pszText
    - bScale
    argTypes:
    - GXFInfo_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 455
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 455
    functionName: GXFParseBase90
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW GXFParseBase90(GXFInfo_t *psGXF,
      const char *pszText, int bScale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gxf/gxfopen.c:469,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:474,1
    - Dst: isspace
      Src: /src/gdal/frmts/gxf/gxfopen.c:492,1
    - Dst: isspace
      Src: /src/gdal/frmts/gxf/gxfopen.c:498,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gxf/gxfopen.c:503,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxfopen.c:509,1
    - Dst: isspace
      Src: /src/gdal/frmts/gxf/gxfopen.c:513,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:547,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxfopen.c:550,1
    - Dst: GXFParseBase90
      Src: /src/gdal/frmts/gxf/gxfopen.c:556,1
    - Dst: CPLReadLineL
      Src: /src/gdal/frmts/gxf/gxfopen.c:562,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxfopen.c:565,1
    - Dst: GXFParseBase90
      Src: /src/gdal/frmts/gxf/gxfopen.c:574,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:578,1
    - Dst: GXFParseBase90
      Src: /src/gdal/frmts/gxf/gxfopen.c:589,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gxf/gxfopen.c:603,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 4
    argNames:
    - psGXF
    - iOffset
    - pnNewOffset
    - padfLineBuf
    argTypes:
    - GXFInfo_t*
    - vsi_l_offset
    - vsi_l_offset*
    - double*
    constantsTouched: []
    func_position:
      end: 607
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 607
    functionName: GXFReadRawScanlineFrom
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLReadLineL
    - isspace
    - VSIFSeekL
    - strncmp
    - GXFParseBase90
    - VSIFTellL
    - strlen
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFReadRawScanlineFrom(GXFInfo_t *psGXF, vsi_l_offset iOffset,\n
      \                                    vsi_l_offset *pnNewOffset,\n                                     double
      *padfLineBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:651,1
    - Dst: GXFGetRawScanline
      Src: /src/gdal/frmts/gxf/gxfopen.c:656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - hGXF
    - iScanline
    - padfLineBuf
    argTypes:
    - GXFHandle
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 673
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 673
    functionName: GXFGetScanline
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 1
    functionsReached:
    - CPLError
    - GXFGetRawScanline
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GXFGetScanline(GXFHandle hGXF, int iScanline, double *padfLineBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:709,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gxf/gxfopen.c:723,1
    - Dst: GXFGetRawScanline
      Src: /src/gdal/frmts/gxf/gxfopen.c:729,1
    - Dst: GXFReadRawScanlineFrom
      Src: /src/gdal/frmts/gxf/gxfopen.c:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - hGXF
    - iScanline
    - padfLineBuf
    argTypes:
    - GXFHandle
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 744
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 744
    functionName: GXFGetRawScanline
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 2
    functionsReached:
    - CPLError
    - GXFReadRawScanlineFrom
    - CPLAssert
    - GXFGetRawScanline
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GXFGetRawScanline(GXFHandle hGXF, int iScanline, double *padfLineBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/frmts/gxf/gxfopen.c:761,1
    - Dst: GXFGetRawScanline
      Src: /src/gdal/frmts/gxf/gxfopen.c:770,1
    - Dst: MIN
      Src: /src/gdal/frmts/gxf/gxfopen.c:778,1
    - Dst: MAX
      Src: /src/gdal/frmts/gxf/gxfopen.c:780,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gxf/gxfopen.c:785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - hGXF
    argTypes:
    - GXFHandle
    constantsTouched: []
    func_position:
      end: 795
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 795
    functionName: GXFScanForZMinMax
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached:
    - MIN
    - VSICalloc
    - MAX
    - VSIFree
    - GXFGetRawScanline
    linkageType: ''
    returnType: void
    signature: void GXFScanForZMinMax(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GXFScanForZMinMax
      Src: /src/gdal/frmts/gxf/gxfopen.c:858,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 7
    argNames:
    - hGXF
    - pnXSize
    - pnYSize
    - pnSense
    - pdfZMin
    - pdfZMax
    - pdfDummy
    argTypes:
    - GXFHandle
    - int*
    - int*
    - int*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 871
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 871
    functionName: GXFGetRawInfo
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 1
    functionsReached:
    - GXFScanForZMinMax
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFGetRawInfo(GXFHandle hGXF, int *pnXSize, int *pnYSize, int
      *pnSense,\n                     double *pdfZMin, double *pdfZMax, double *pdfDummy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: GXFGetMapProjection
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **GXFGetMapProjection(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 915
    functionName: GXFGetMapDatumTransform
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **GXFGetMapDatumTransform(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - hGXF
    - pdfXOrigin
    - pdfYOrigin
    - pdfXPixelSize
    - pdfYPixelSize
    - pdfRotation
    argTypes:
    - GXFHandle
    - double*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 969
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 969
    functionName: GXFGetRawPosition
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFGetRawPosition(GXFHandle hGXF, double *pdfXOrigin, double
      *pdfYOrigin,\n                         double *pdfXPixelSize, double *pdfYPixelSize,\n
      \                        double *pdfRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gxf/gxfopen.c:1045,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - hGXF
    - pdfXOrigin
    - pdfYOrigin
    - pdfXPixelSize
    - pdfYPixelSize
    - pdfRotation
    argTypes:
    - GXFHandle
    - double*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1067
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1067
    functionName: GXFGetPosition
    functionSourceFile: /src/gdal/frmts/gxf/gxfopen.c
    functionUses: 1
    functionsReached:
    - CPLError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFGetPosition(GXFHandle hGXF, double *pdfXOrigin, double *pdfYOrigin,\n
      \                     double *pdfXPixelSize, double *pdfYPixelSize,\n                      double
      *pdfRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:64,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:65,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:72,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:73,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:74,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:79,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:81,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:85,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:86,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:92,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:94,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:95,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:97,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:98,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:100,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:101,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:103,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:104,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:106,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:107,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:110,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:111,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:117,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:119,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:121,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:122,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:125,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:127,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:128,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:131,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:133,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:134,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:137,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:139,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:140,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:143,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:145,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:146,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:149,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:151,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:152,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:156,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:157,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:162,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:164,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:165,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:167,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:168,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:170,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:171,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:173,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:174,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:176,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:177,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:180,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:181,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:186,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:188,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:189,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:191,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:192,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:194,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:195,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:197,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:198,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:201,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:202,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:206,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:208,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:209,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:211,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:212,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:214,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:215,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:217,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:219,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:224,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:224,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:231,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:232,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:234,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:235,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:237,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:238,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:241,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:242,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:244,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:246,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:247,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:249,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:250,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:252,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:253,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:255,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:256,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:258,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:259,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:261,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:262,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:265,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:266,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:268,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:270,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:271,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:273,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:274,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:276,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:277,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:279,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:280,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:283,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:284,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:286,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:288,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:289,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:291,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:292,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:294,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:295,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:297,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:298,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:301,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:302,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:306,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:308,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:310,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:311,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:313,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:314,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:316,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:317,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:319,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:320,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:322,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:323,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:326,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:327,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:331,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:333,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:335,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:336,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:338,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:339,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:341,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:342,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:344,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:345,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:347,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:348,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:351,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:352,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:358,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:360,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:361,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:363,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:364,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:366,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:367,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:369,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:370,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:373,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:374,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:380,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:382,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:383,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:385,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:386,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:388,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:389,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:391,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:392,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:394,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:395,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:398,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:399,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:405,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:407,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:408,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:410,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:411,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:413,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:414,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:416,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:417,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:419,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:420,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:423,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:424,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:426,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:428,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:429,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:431,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:432,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:434,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:435,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:437,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:438,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:440,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:441,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:443,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:444,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:447,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:447,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:449,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:451,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:452,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:454,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:455,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:459,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:460,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:462,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:463,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:465,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:466,1
    - Dst: SAFE_strcat
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:471,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 213
    argCount: 1
    argNames:
    - hGXF
    argTypes:
    - GXFHandle
    constantsTouched: []
    func_position:
      end: 472
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 472
    functionName: GXFGetMapProjectionAsPROJ4
    functionSourceFile: /src/gdal/frmts/gxf/gxf_proj4.c
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CPLStrdup
    - EQUAL
    - CSLTokenizeStringComplex
    - strlen
    - SAFE_strcat
    - CSLCount
    linkageType: ''
    returnType: char
    signature: char *GXFGetMapProjectionAsPROJ4(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GXFGetPosition
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:572,1
    - Dst: GXFGetMapProjectionAsPROJ4
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:580,1
    - Dst: strstr
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:581,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxf_proj4.c:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - hGXF
    - pdfXOrigin
    - pdfYOrigin
    - pdfXPixelSize
    - pdfYPixelSize
    - pdfRotation
    argTypes:
    - GXFHandle
    - double*
    - double*
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 595
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 595
    functionName: GXFGetPROJ4Position
    functionSourceFile: /src/gdal/frmts/gxf/gxf_proj4.c
    functionUses: 0
    functionsReached:
    - GXFGetMapProjectionAsPROJ4
    - CPLFree
    - GXFGetPosition
    - strstr
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GXFGetPROJ4Position(GXFHandle hGXF, double *pdfXOrigin,\n                           double
      *pdfYOrigin, double *pdfXPixelSize,\n                           double *pdfYPixelSize,
      double *pdfRotation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:149,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:151,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:152,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 1
    argNames:
    - ppszDatum
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 156
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 156
    functionName: WKTMassageDatum
    functionSourceFile: /src/gdal/frmts/gxf/gxf_ogcwkt.c
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void WKTMassageDatum(char **ppszDatum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:182,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:188,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:188,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 11
    argNames:
    - pszProjection
    - nProjectionSize
    - papszMethods
    - pszTransformName
    - pszParm1
    - pszParm2
    - pszParm3
    - pszParm4
    - pszParm5
    - pszParm6
    - pszParm7
    argTypes:
    - char*
    - size_t
    - char**
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: OGCWKTSetProj
    functionSourceFile: /src/gdal/frmts/gxf/gxf_ogcwkt.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void OGCWKTSetProj(char *pszProjection, size_t nProjectionSize,\n
      \                         char **papszMethods, const char *pszTransformName,\n
      \                         const char *pszParm1, const char *pszParm2,\n                          const
      char *pszParm3, const char *pszParm4,\n                          const char
      *pszParm5, const char *pszParm6,\n                          const char *pszParm7)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:259,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:260,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:262,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:263,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:264,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:273,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:274,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:275,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:283,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:288,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:290,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:297,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:299,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:306,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:308,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:315,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:317,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:323,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:325,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:332,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:334,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:341,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:343,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:351,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:354,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:360,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:362,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:368,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:370,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:376,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:378,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:385,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:387,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:393,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:394,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:396,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:403,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:405,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:412,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:414,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:421,1
    - Dst: OGCWKTSetProj
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:423,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:430,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:435,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:437,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:438,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:440,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:440,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:441,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:451,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:455,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:456,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:458,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:461,1
    - Dst: pow
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:474,1
    - Dst: OSRCalcInvFlattening
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:475,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:478,1
    - Dst: WKTMassageDatum
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:479,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:481,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:489,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:492,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:493,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:493,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:493,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:496,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:496,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:496,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:499,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:502,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:502,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:503,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:503,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:508,1
    - Dst: strlen
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:510,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:511,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:514,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:517,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:522,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gxf/gxf_ogcwkt.c:525,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 99
    argCount: 1
    argNames:
    - hGXF
    argTypes:
    - GXFHandle
    constantsTouched: []
    func_position:
      end: 526
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 526
    functionName: GXFGetMapProjectionAsOGCWKT
    functionSourceFile: /src/gdal/frmts/gxf/gxf_ogcwkt.c
    functionUses: 0
    functionsReached:
    - pow
    - CPLStrdup
    - CSLDestroy
    - OGCWKTSetProj
    - EQUAL
    - WKTMassageDatum
    - CSLTokenizeStringComplex
    - CPLsnprintf
    - strcpy
    - strlen
    - CPLAssert
    - snprintf
    - CSLCount
    - OSRCalcInvFlattening
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char *GXFGetMapProjectionAsOGCWKT(GXFHandle hGXF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XTIFFInitialize
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: LibgeotiffOneTimeInit
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - XTIFFInitialize
    linkageType: ''
    returnType: void
    signature: void LibgeotiffOneTimeInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFreeMemory
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ppszTarget
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: GTIFToCPLRecycleString
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFFreeMemory
    linkageType: ''
    returnType: void
    signature: void GTIFToCPLRecycleString(char **ppszTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:186,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:188,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:189,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 1
    argNames:
    - ppszDatum
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: WKTMassageDatum
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void WKTMassageDatum(char **ppszDatum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:225,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:243,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - pszCitation
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: GTIFCleanupImagineNames
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - memmove
    - strstr
    linkageType: ''
    returnType: void
    signature: void GTIFCleanupImagineNames(char *pszCitation)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyInfo
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:266,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:270,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:271,1
    - Dst: GTIFTypeName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:272,1
    - Dst: GTIFTypeName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:272,1
    - Dst: GTIFKeyGet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - hGTIF
    - key
    - pData
    - nIndex
    - nCount
    - expected_tagtype
    argTypes:
    - GTIF*
    - geokey_t
    - void*
    - int
    - int
    - tagtype_t
    constantsTouched: []
    func_position:
      end: 276
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 276
    functionName: GDALGTIFKeyGet
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFKeyName
    - GTIFTypeName
    - GTIFKeyGet
    - CPLError
    - GTIFKeyInfo
    linkageType: ''
    returnType: int
    signature: "int GDALGTIFKeyGet(GTIF *hGTIF, geokey_t key, void *pData, int nIndex,\n
      \                         int nCount, tagtype_t expected_tagtype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGTIFKeyGet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hGTIF
    - key
    - szStr
    - szStrMaxLen
    argTypes:
    - GTIF*
    - geokey_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: GDALGTIFKeyGetASCII
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - GDALGTIFKeyGet
    linkageType: ''
    returnType: int
    signature: int GDALGTIFKeyGetASCII(GTIF *hGTIF, geokey_t key, char *szStr, int
      szStrMaxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGTIFKeyGet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hGTIF
    - key
    - pnVal
    - nIndex
    - nCount
    argTypes:
    - GTIF*
    - geokey_t
    - unsigned short*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: GDALGTIFKeyGetSHORT
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - GDALGTIFKeyGet
    linkageType: ''
    returnType: int
    signature: "int GDALGTIFKeyGetSHORT(GTIF *hGTIF, geokey_t key, unsigned short
      *pnVal,\n                        int nIndex, int nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGTIFKeyGet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hGTIF
    - key
    - pdfVal
    - nIndex
    - nCount
    argTypes:
    - GTIF*
    - geokey_t
    - double*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: GDALGTIFKeyGetDOUBLE
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - GDALGTIFKeyGet
    linkageType: ''
    returnType: int
    signature: "int GDALGTIFKeyGetDOUBLE(GTIF *hGTIF, geokey_t key, double *pdfVal,
      int nIndex,\n                         int nCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:322,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:338,1
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:340,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:340,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:341,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:350,1
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:358,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:358,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:360,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:372,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:375,1
    - Dst: proj_get_name
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:378,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:382,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:384,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:387,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:390,1
    - Dst: std::string::clear
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:392,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:397,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:399,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:403,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:406,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:406,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:407,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:408,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:409,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:410,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:411,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:420,1
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:422,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:422,1
    - Dst: proj_uom_get_info_from_database
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:425,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:429,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:432,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:433,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:434,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:437,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:441,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:442,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:443,1
    - Dst: OGRSpatialReference::SetAuthority
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:444,1
    - Dst: OGRSpatialReference::SetNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:450,1
    - Dst: OGRSpatialReference::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:451,1
    - Dst: OGR_SRSNode::OGR_SRSNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:451,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 5
    argNames:
    - hGTIF
    - oSRS
    - pszVertCSName
    - verticalDatum
    - verticalUnits
    argTypes:
    - GTIF*
    - OGRSpatialReference
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 452
      start: 313
    functionDepth: 6
    functionLinenumber: 313
    functionLinenumberEnd: 452
    functionName: FillCompoundCRSWithManualVertCS
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - proj_list_get
    - OGRSpatialReference::SetAuthority
    - proj_create_from_name
    - std::string::c_str
    - OGRSpatialReference::GetAttrNode
    - std::string::empty
    - GTIFGetPROJContext
    - proj_uom_get_info_from_database
    - proj_destroy
    - proj_crs_get_datum
    - std::string::clear
    - proj_list_destroy
    - static_cast<PJ_CONTEXT *>
    - snprintf
    - proj_get_name
    - OGRSpatialReference::SetNode
    - CPLsnprintf
    - OGR_SRSNode::OGR_SRSNode
    - proj_create_from_database
    linkageType: ''
    returnType: void
    signature: "void FillCompoundCRSWithManualVertCS(GTIF *hGTIF,\n                                            OGRSpatialReference
      &oSRS,\n                                            const char *pszVertCSName,\n
      \                                           int verticalDatum,\n                                            int
      verticalUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:464,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:464,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:465,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:470,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:473,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:479,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:482,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - hGTIF
    - searchType
    - pszName
    argTypes:
    - GTIF*
    - PJ_TYPE
    - char*
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: GTIFGetEPSGOfficialName
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFGetPROJContext
    - CPLStrdup
    - proj_destroy
    - proj_list_get_count
    - proj_list_get
    - proj_list_destroy
    - static_cast<PJ_CONTEXT *>
    - proj_create_from_name
    linkageType: ''
    returnType: char
    signature: "char *GTIFGetEPSGOfficialName(GTIF *hGTIF, PJ_TYPE searchType,\n                                     const
      char *pszName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFGetOGISDefnAsOSR
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1830,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1833,1
    - Dst: OSRDestroySpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1836,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1839,1
    - Dst: OSRDestroySpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hGTIF
    - psDefn
    argTypes:
    - GTIF*
    - GTIFDefn*
    constantsTouched: []
    func_position:
      end: 1843
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1843
    functionName: GTIFGetOGISDefn
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFGetOGISDefnAsOSR
    - CPLFree
    - FromHandle
    - OSRDestroySpatialReference
    linkageType: ''
    returnType: char
    signature: char *GTIFGetOGISDefn(GTIF *hGTIF, GTIFDefn *psDefn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1857,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1858,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1860,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1861,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1863,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1863,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1864,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1866,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1866,1
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1871,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1871,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1873,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1878,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1881,1
    - Dst: WKTMassageDatum
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1888,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1889,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1894,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1897,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1900,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1902,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 2
    argNames:
    - psGTIF
    - pszOGCName
    argTypes:
    - GTIF*
    - char*
    constantsTouched: []
    func_position:
      end: 1906
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1906
    functionName: OGCDatumName2EPSGDatumCode
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFGetPROJContext
    - atoi
    - proj_destroy
    - proj_list_get_count
    - proj_list_get
    - proj_list_destroy
    - EQUAL
    - static_cast<PJ_CONTEXT *>
    - WKTMassageDatum
    - proj_create_from_name
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int OGCDatumName2EPSGDatumCode(GTIF *psGTIF, const char *pszOGCName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1922,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1923,1
    - Dst: GTIFSetFromOGISDefnEx
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1927,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psGTIF
    - pszOGCWKT
    argTypes:
    - GTIF*
    - char*
    constantsTouched: []
    func_position:
      end: 1929
      start: 1914
    functionDepth: 2
    functionLinenumber: 1914
    functionLinenumberEnd: 1929
    functionName: GTIFSetFromOGISDefn
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - GTIFSetFromOGISDefnEx
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference::importFromWkt
    - ToHandle
    linkageType: ''
    returnType: int
    signature: int GTIFSetFromOGISDefn(GTIF *psGTIF, const char *pszOGCWKT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1937,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1939,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1946,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1947,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1947,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1956,1
    - Dst: GTIFSetVersionNumbers
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1961,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1965,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1977,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1978,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1978,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1980,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1981,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1981,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1983,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1984,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1984,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1986,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1987,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1987,1
    - Dst: OGRSpatialReference*::IsLocal
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1994,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:1997,1
    - Dst: OGRSpatialReference::StripVertical
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2000,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2001,1
    - Dst: OGRSpatialReference::IsLocal
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2001,1
    - Dst: OGRSpatialReference*::GetSemiMajor
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2005,1
    - Dst: OGRSpatialReference*::GetInvFlattening
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2006,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2020,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2021,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2021,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2022,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2022,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2023,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2024,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2024,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2025,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2025,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2026,1
    - Dst: OGCDatumName2EPSGDatumCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2028,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2028,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2035,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2036,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2036,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2037,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2037,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2038,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2039,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2039,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2040,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2040,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2056,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2057,1
    - Dst: OGRSpatialReference::IsGeographic
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2058,1
    - Dst: OGRSpatialReference::GetAxesCount
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2058,1
    - Dst: static_cast<PJ_CONTEXT *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2068,1
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2069,1
    - Dst: proj_create_from_name
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2071,1
    - Dst: OGRSpatialReference::GetName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2072,1
    - Dst: proj_list_get_count
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2076,1
    - Dst: proj_list_get
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2078,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2085,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2087,1
    - Dst: proj_list_destroy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2090,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2129,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2129,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2130,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2130,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2131,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2131,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2132,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2132,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2133,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2133,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2135,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2135,1
    - Dst: std::abs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2136,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2136,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2138,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2146,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2147,1
    - Dst: OGRSpatialReference*::GetAuthorityName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2147,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2149,1
    - Dst: OGRSpatialReference*::GetAuthorityCode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2149,1
    - Dst: PROJ_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2161,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2162,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2163,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2163,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2164,1
    - Dst: OGRSpatialReference::DemoteTo2D
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2167,1
    - Dst: OGRSpatialReference*::GetAngularUnits
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2178,1
    - Dst: std::fabs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2191,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2192,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2192,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2211,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2213,1
    - Dst: OGRSpatialReference*::IsGeocentric
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2216,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2218,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2223,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2224,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2228,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2230,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2232,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2233,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2235,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2238,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2239,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2239,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2242,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2243,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2243,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2246,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2247,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2247,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2250,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2251,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2251,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2254,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2256,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2258,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2260,1
    - Dst: OGRSpatialReference*::GetUTMZone
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2263,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2265,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2276,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2283,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2292,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2297,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2300,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2304,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2306,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2308,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2309,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2311,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2314,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2315,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2315,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2318,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2319,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2319,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2322,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2324,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2326,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2328,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2330,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2332,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2335,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2337,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2339,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2340,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2342,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2345,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2346,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2346,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2349,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2350,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2350,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2353,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2355,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2357,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2359,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2361,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2363,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2366,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2367,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2370,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2372,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2373,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2375,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2377,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2378,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2378,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2381,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2382,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2382,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2385,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2386,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2388,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2388,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2391,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2392,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2395,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2397,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2399,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2401,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2404,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2406,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2408,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2409,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2411,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2414,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2415,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2415,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2418,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2419,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2419,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2422,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2424,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2426,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2428,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2430,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2432,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2435,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2437,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2439,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2440,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2442,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2445,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2446,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2446,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2449,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2450,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2450,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2453,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2455,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2457,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2459,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2461,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2463,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2466,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2468,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2470,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2471,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2473,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2476,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2477,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2477,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2480,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2481,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2481,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2484,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2486,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2488,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2490,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2492,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2494,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2497,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2499,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2501,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2502,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2504,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2507,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2508,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2508,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2511,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2512,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2512,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2515,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2516,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2518,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2519,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2519,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2522,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2524,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2526,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2528,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2530,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2532,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2535,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2538,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2540,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2541,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2543,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2546,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2547,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2547,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2550,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2551,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2551,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2554,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2555,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2557,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2558,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2558,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2561,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2563,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2565,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2567,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2569,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2571,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2574,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2576,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2578,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2579,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2581,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2584,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2585,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2585,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2588,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2589,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2589,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2592,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2593,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2595,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2597,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2599,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2601,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2603,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2605,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2608,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2610,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2612,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2613,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2615,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2618,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2619,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2619,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2622,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2623,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2623,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2626,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2628,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2630,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2632,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2635,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2637,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2639,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2640,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2642,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2645,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2646,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2646,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2649,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2650,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2650,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2653,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2654,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2654,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2657,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2658,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2658,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2661,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2663,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2665,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2667,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2670,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2672,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2674,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2675,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2677,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2679,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2680,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2683,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2684,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2687,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2689,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2691,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2693,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2695,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2697,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2700,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2702,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2704,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2705,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2707,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2710,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2711,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2711,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2714,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2715,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2715,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2718,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2720,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2722,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2724,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2727,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2729,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2731,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2732,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2734,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2737,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2738,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2738,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2741,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2742,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2742,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2745,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2747,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2749,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2751,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2754,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2756,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2758,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2759,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2761,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2764,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2765,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2765,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2768,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2769,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2769,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2772,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2773,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2773,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2776,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2778,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2780,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2782,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2785,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2787,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2789,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2790,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2792,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2794,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2795,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2795,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2798,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2799,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2799,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2802,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2804,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2806,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2808,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2811,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2813,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2815,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2816,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2818,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2821,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2822,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2822,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2825,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2826,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2826,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2829,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2831,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2833,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2835,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2838,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2840,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2842,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2843,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2845,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2848,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2849,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2849,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2852,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2853,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2853,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2856,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2858,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2860,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2862,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2865,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2867,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2869,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2870,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2872,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2875,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2876,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2876,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2879,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2880,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2880,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2883,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2885,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2887,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2889,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2892,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2894,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2896,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2897,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2899,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2901,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2902,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2902,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2905,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2907,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2909,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2911,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2914,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2916,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2918,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2919,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2921,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2923,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2924,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2924,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2927,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2929,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2931,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2933,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2936,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2938,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2940,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2941,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2943,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2946,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2947,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2947,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2950,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2952,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2954,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2956,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2959,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2961,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2963,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2964,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2966,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2969,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2970,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2970,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2973,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2974,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2974,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2977,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2978,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2978,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2981,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2982,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2982,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2985,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2987,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2989,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2991,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2994,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2996,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2998,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:2999,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3001,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3004,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3005,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3005,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3008,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3009,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3009,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3012,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3014,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3016,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3018,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3020,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3022,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3025,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3027,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3029,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3030,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3032,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3035,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3036,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3036,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3039,1
    - Dst: ConvertAngularParam
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3040,1
    - Dst: OGRSpatialReference*::GetNormProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3040,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3043,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3045,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3047,1
    - Dst: OGRSpatialReference*::GetProjParm
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3049,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3060,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3070,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3077,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3077,1
    - Dst: OGRSpatialReference*::GetExtension
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3092,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3093,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3093,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3094,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3098,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3104,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3105,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3108,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3110,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3111,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3119,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3120,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3122,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3136,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3137,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3138,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3140,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3144,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3145,1
    - Dst: OGRSpatialReference*::IsGeocentric
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3151,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3153,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3156,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3159,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3162,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3165,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3171,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3172,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3172,1
    - Dst: SetLinearUnitCitation
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3174,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3174,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3185,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3185,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3186,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3188,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3188,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3189,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3191,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3191,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3192,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3194,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3194,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3195,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3197,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3197,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3198,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3200,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3200,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3201,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3210,1
    - Dst: OGRSpatialReference*::GetName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3219,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3220,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3222,1
    - Dst: OGRSpatialReference*::IsLocal
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3222,1
    - Dst: OGRSpatialReference*::IsGeocentric
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3223,1
    - Dst: OGRSpatialReference*::GetName
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3228,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3237,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3239,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3241,1
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3251,1
    - Dst: std::fabs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3252,1
    - Dst: OGRSpatialReference*::GetAngularUnits
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3252,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3252,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3265,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3269,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3271,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3275,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3277,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3279,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3283,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3285,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3287,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3289,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3292,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3295,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3298,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3299,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3299,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3300,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3300,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3303,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3305,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3313,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3318,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3322,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3322,1
    - Dst: SetGeogCSCitation
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3324,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3325,1
    - Dst: OGRSpatialReference*::GetTOWGS84
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3337,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3345,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3348,1
    - Dst: OGRSpatialReference::importFromEPSG
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3350,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3350,1
    - Dst: OGRSpatialReference::AddGuessedTOWGS84
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3352,1
    - Dst: OGRSpatialReference::GetTOWGS84
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3353,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3354,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3362,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3362,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3363,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3364,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3375,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3379,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3388,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3394,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3395,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3398,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3399,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3403,1
    - Dst: OGRSpatialReference*::GetAttrValue
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3410,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3417,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3417,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3419,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3420,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3424,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3433,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3433,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3435,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3436,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3440,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3447,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3454,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3463,1
    - Dst: second::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3463,1
    CyclomaticComplexity: 234
    EdgeCount: 234
    ICount: 597
    argCount: 4
    argNames:
    - psGTIF
    - hSRS
    - eFlavor
    - eVersion
    argTypes:
    - GTIF*
    - OGRSpatialReferenceH
    - GTIFFKeysFlavorEnum
    - GeoTIFFVersionEnum
    constantsTouched: []
    func_position:
      end: 3467
      start: 1931
    functionDepth: 7
    functionLinenumber: 1931
    functionLinenumberEnd: 3467
    functionName: GTIFSetFromOGISDefnEx
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - OGRSpatialReference::DemoteTo2D
    - OGRSpatialReference*::IsGeocentric
    - OGRSpatialReference*::GetAttrNode
    - atoi
    - OGRSpatialReference*::GetAuthorityCode
    - GTIFSetVersionNumbers
    - proj_list_get
    - GDALGTIFKeyGetDOUBLE
    - OGRSpatialReference::GetName
    - memcmp
    - GTIFKeySet
    - CPLError
    - proj_create_from_name
    - std::string::c_str
    - OGRSpatialReference*::GetAxesCount
    - CPL_TO_BOOL
    - std::fabs
    - CPLGetConfigOption
    - OGRSpatialReference*::GetExtension
    - std::string::empty
    - GTIFGetPROJContext
    - PROJ_AT_LEAST_VERSION
    - OGRSpatialReference*::GetAngularUnits
    - OGRSpatialReference*::GetUTMZone
    - OGCDatumName2EPSGDatumCode
    - std::abs
    - static_cast<short>
    - OGRSpatialReference::StripVertical
    - OGRSpatialReference::IsLocal
    - second::c_str
    - OGRSpatialReference*::IsLocal
    - OGRSpatialReference::IsGeographic
    - CPLAtof
    - OGRSpatialReference::importFromEPSG
    - CPLTestBool
    - OGRSpatialReference*::GetAuthorityName
    - FromHandle
    - proj_destroy
    - OGRSpatialReference*::GetAttrValue
    - OGRSpatialReference*::IsProjected
    - proj_list_get_count
    - OGRSpatialReference*::GetSemiMajor
    - OGRSpatialReference*::exportToWkt
    - SetLinearUnitCitation
    - proj_list_destroy
    - static_cast<PJ_CONTEXT *>
    - strcat
    - CPLAssert
    - OGRSpatialReference*::GetInvFlattening
    - strstr
    - CPLFree
    - OGRSpatialReference::GetAxesCount
    - OGRSpatialReference::OGRSpatialReference
    - OGRSpatialReference*::GetNormProjParm
    - SetGeogCSCitation
    - OGRSpatialReference::GetTOWGS84
    - ConvertAngularParam
    - OGRSpatialReference*::IsCompound
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - OGRSpatialReference*::GetTOWGS84
    - OGRSpatialReference::AddGuessedTOWGS84
    - GTIFAtof
    - fabs
    - strcpy
    - OGR_SRSNode*::GetChild
    - OGRSpatialReference*::GetName
    - OGRSpatialReference*::GetProjParm
    linkageType: ''
    returnType: int
    signature: "int GTIFSetFromOGISDefnEx(GTIF *psGTIF, OGRSpatialReferenceH hSRS,\n
      \                         GTIFFKeysFlavorEnum eFlavor,\n                          GeoTIFFVersionEnum
      eVersion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFWktFromMemBufEx
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3481,1
    - Dst: OSRExportToWkt
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3487,1
    - Dst: OSRDestroySpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - nSize
    - pabyBuffer
    - ppszWKT
    - padfGeoTransform
    - pnGCPCount
    - ppasGCPList
    argTypes:
    - int
    - unsigned char*
    - char**
    - double*
    - int*
    - GDAL_GCP**
    constantsTouched: []
    func_position:
      end: 3492
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3492
    functionName: GTIFWktFromMemBuf
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - OSRDestroySpatialReference
    - GTIFWktFromMemBufEx
    - OSRExportToWkt
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFWktFromMemBuf(int nSize, unsigned char *pabyBuffer, char
      **ppszWKT,\n                         double *padfGeoTransform, int *pnGCPCount,\n
      \                        GDAL_GCP **ppasGCPList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3502,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3507,1
    - Dst: LibgeotiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3508,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3514,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3514,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3521,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3521,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3525,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3527,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3527,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3528,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3528,1
    - Dst: GTIFNew
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3539,1
    - Dst: GTIFAttachPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3541,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3541,1
    - Dst: GDALGTIFKeyGetSHORT
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3544,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3546,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3550,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3550,1
    - Dst: GTIFAllocDefn
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3562,1
    - Dst: GTIFGetDefn
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3563,1
    - Dst: GTIFGetOGISDefnAsOSR
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3565,1
    - Dst: GTIFFreeDefn
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3567,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3571,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3591,1
    - Dst: std::abs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3595,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3597,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3616,1
    - Dst: static_cast<GDAL_GCP *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3622,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3622,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3629,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3630,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3631,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3639,1
    - Dst: GTiffDatasetReadRPCTag
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3656,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3662,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3663,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3663,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3665,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3665,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 8
    argNames:
    - nSize
    - pabyBuffer
    - phSRS
    - padfGeoTransform
    - pnGCPCount
    - ppasGCPList
    - pbPixelIsPoint
    - ppapszRPCMD
    argTypes:
    - int
    - unsigned char*
    - OGRSpatialReferenceH*
    - double*
    - int*
    - GDAL_GCP**
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 3671
      start: 3494
    functionDepth: 4
    functionLinenumber: 3494
    functionLinenumberEnd: 3671
    functionName: GTIFWktFromMemBufEx
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - GTiffDatasetReadRPCTag
    - GDALGTIFKeyGetSHORT
    - static_cast<unsigned short>
    - GTIFNew
    - CPLError
    - CPLGetConfigOption
    - std::string::c_str
    - XTIFFClose
    - static_cast<GDAL_GCP *>
    - CPLStrdup
    - GTIFAllocDefn
    - std::abs
    - GTIFFree
    - LibgeotiffOneTimeInit
    - VSIMemGenerateHiddenFilename
    - GTiffOneTimeInit
    - CPLTestBool
    - VSIUnlink
    - GTIFAttachPROJContext
    - GTIFGetDefn
    - GTIFFreeDefn
    - CPL_IGNORE_RET_VAL
    - snprintf
    - VSIFileFromMemBuffer
    - CPLCalloc
    - VSI_TIFFOpen
    - VSIFCloseL
    - GTIFGetOGISDefnAsOSR
    - TIFFGetField
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFWktFromMemBufEx(int nSize, unsigned char *pabyBuffer,\n
      \                          OGRSpatialReferenceH *phSRS,\n                           double
      *padfGeoTransform, int *pnGCPCount,\n                           GDAL_GCP **ppasGCPList,
      int *pbPixelIsPoint,\n                           char ***ppapszRPCMD)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3681,1
    - Dst: OGRSpatialReference::importFromWkt
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3683,1
    - Dst: GTIFMemBufFromSRS
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3684,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - pszWKT
    - padfGeoTransform
    - nGCPCount
    - pasGCPList
    - pnSize
    - ppabyBuffer
    argTypes:
    - char*
    - double*
    - int
    - GDAL_GCP*
    - int*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 3687
      start: 3677
    functionDepth: 2
    functionLinenumber: 3677
    functionLinenumberEnd: 3687
    functionName: GTIFMemBufFromWkt
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::OGRSpatialReference
    - GTIFMemBufFromSRS
    - OGRSpatialReference::importFromWkt
    - ToHandle
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFMemBufFromWkt(const char *pszWKT, const double *padfGeoTransform,\n
      \                        int nGCPCount, const GDAL_GCP *pasGCPList, int *pnSize,\n
      \                        unsigned char **ppabyBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3697,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3702,1
    - Dst: LibgeotiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3703,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3708,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3708,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3712,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3712,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3716,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3718,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3718,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3719,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3719,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3726,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3727,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3728,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3729,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3730,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3731,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3732,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3742,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3742,1
    - Dst: GTIFNew
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3748,1
    - Dst: GTIFAttachPROJContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3751,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3751,1
    - Dst: GTIFSetFromOGISDefnEx
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3754,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3759,1
    - Dst: GTIFWriteKeys
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3763,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3764,1
    - Dst: std::abs
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3774,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3782,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3795,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3817,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3840,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3841,1
    - Dst: GTiffDatasetWriteRPCTag
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3849,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3857,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3857,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3858,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3858,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3859,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3861,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3862,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3862,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3871,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3871,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp:3872,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 8
    argNames:
    - hSRS
    - padfGeoTransform
    - nGCPCount
    - pasGCPList
    - pnSize
    - ppabyBuffer
    - bPixelIsPoint
    - papszRPCMD
    argTypes:
    - OGRSpatialReferenceH
    - double*
    - int
    - GDAL_GCP*
    - int*
    - unsigned char**
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 3875
      start: 3689
    functionDepth: 8
    functionLinenumber: 3689
    functionLinenumberEnd: 3875
    functionName: GTIFMemBufFromSRS
    functionSourceFile: /src/gdal/frmts/gtiff/gt_wkt_srs.cpp
    functionUses: 1
    functionsReached:
    - GTiffDatasetWriteRPCTag
    - GTIFKeySet
    - GTIFNew
    - CPLError
    - CPLGetConfigOption
    - std::string::c_str
    - XTIFFClose
    - reinterpret_cast<char *>
    - std::abs
    - GTIFFree
    - LibgeotiffOneTimeInit
    - VSIMemGenerateHiddenFilename
    - TIFFWriteEncodedStrip
    - VSIGetMemFileBuffer
    - GTiffOneTimeInit
    - CPLTestBool
    - GTIFWriteKeys
    - static_cast<int>
    - GTIFSetFromOGISDefnEx
    - VSIUnlink
    - GTIFAttachPROJContext
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - CPLFree
    - TIFFWriteDirectory
    - VSI_TIFFOpen
    - VSIFCloseL
    - TIFFWriteCheck
    - TIFFSetField
    - TIFFIsTiled
    - OSRGetProjTLSContext
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFMemBufFromSRS(OGRSpatialReferenceH hSRS,\n                         const
      double *padfGeoTransform, int nGCPCount,\n                         const GDAL_GCP
      *pasGCPList, int *pnSize,\n                         unsigned char **ppabyBuffer,
      int bPixelIsPoint,\n                         char **papszRPCMD)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:82,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:85,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: GTiffGetWebPLevel
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<signed char>
    - atoi
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetWebPLevel(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: GTiffGetWebPLossless
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLFetchBool
    linkageType: ''
    returnType: bool
    signature: bool GTiffGetWebPLossless(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:100,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: GTiffGetLERCMaxZError
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: double
    signature: double GTiffGetLERCMaxZError(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:105,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:105,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: GTiffGetLERCMaxZErrorOverview
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: double
    signature: double GTiffGetLERCMaxZErrorOverview(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:113,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: GTiffGetJXLLossless
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - CSLFetchNameValueDef
    linkageType: ''
    returnType: bool
    signature: bool GTiffGetJXLLossless(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:119,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: GTiffGetJXLEffort
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValueDef
    - atoi
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GTiffGetJXLEffort(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:124,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:125,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: GTiffGetJXLDistance
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CSLFetchNameValueDef
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float GTiffGetJXLDistance(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:130,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:130,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: GTiffGetJXLAlphaDistance
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - CSLFetchNameValueDef
    - static_cast<float>
    linkageType: ''
    returnType: float
    signature: float GTiffGetJXLAlphaDistance(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:155,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:156,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:158,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:163,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:172,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:172,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:172,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:173,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:173,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:175,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:175,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:191,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:194,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:198,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:204,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:211,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:221,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:223,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:223,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:229,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:231,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:236,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:238,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:243,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:245,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:255,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:283,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:294,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:330,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:339,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:340,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:342,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:346,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:352,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:352,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:353,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:354,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:361,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:367,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:368,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:370,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:373,1
    - Dst: GTiffDataset::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:394,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:401,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:408,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:409,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:409,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:413,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:413,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:414,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:415,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:416,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:416,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:418,1
    - Dst: GTiffDataset::WriteRawStripOrTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:424,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:425,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:430,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:431,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 433
    functionName: GTiffDataset::FillEmptyTiles
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::WriteRawStripOrTile
    - GetRasterBand
    - VSIFTellL
    - static_cast<vsi_l_offset>
    - GTiffDataset::WriteEncodedTileOrStrip
    - static_cast<GPtrDiff_t>
    - VSI_TIFFGetVSILFile
    - VSIFTruncateL
    - TIFFClientdata
    - GDALCopyWords64
    - ReportError
    - GTiffDataset::IsBlockAvailable
    - VSI_CALLOC_VERBOSE
    - static_cast<int>
    - VSIFSeekL
    - TIFFTileSize
    - CPLAssert
    - static_cast<toff_t>
    - VSIFReadL
    - static_cast<GByte *>
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - static_cast<size_t>
    - TIFFStripSize
    - TIFFGetField
    - VSIFree
    - TIFFIsTiled
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::FillEmptyTiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALBufferHasOnlyNoData
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - pBuffer
    - nWidth
    - nHeight
    - nLineStride
    - nComponents
    argTypes:
    - void*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 453
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 453
    functionName: GTiffDataset::HasOnlyNoData
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GDALBufferHasOnlyNoData
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::HasOnlyNoData(const void *pBuffer, int nWidth,
      int nHeight,\n                                 int nLineStride, int nComponents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:461,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:470,1
    - Dst: static_cast<const signed char *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:471,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:472,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:474,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:475,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:476,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:480,1
    - Dst: static_cast<const GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:481,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:482,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:486,1
    - Dst: static_cast<const GInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:487,1
    - Dst: static_cast<GInt16>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:488,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:492,1
    - Dst: static_cast<const GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:493,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:494,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:498,1
    - Dst: static_cast<const GInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:499,1
    - Dst: static_cast<GInt32>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:500,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:504,1
    - Dst: static_cast<const std::uint64_t *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:505,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:506,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:510,1
    - Dst: static_cast<const std::int64_t *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:511,1
    - Dst: static_cast<std::int64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:512,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:516,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:517,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:518,1
    - Dst: static_cast<const float *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:518,1
    - Dst: GDALIsValueInRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:519,1
    - Dst: static_cast<const float *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:520,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:521,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:525,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:526,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:527,1
    - Dst: static_cast<const double *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:527,1
    - Dst: static_cast<const double *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:528,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 38
    argCount: 1
    argNames:
    - pBuffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 531
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 531
    functionName: GTiffDataset::IsFirstPixelEqualToNoData
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const GUInt16 *>
    - GetRasterBand
    - static_cast<const GByte *>
    - static_cast<GByte>
    - std::isnan
    - CPL_TO_BOOL
    - static_cast<const signed char *>
    - static_cast<const GInt16 *>
    - static_cast<GUInt16>
    - static_cast<const std::int64_t *>
    - static_cast<const double *>
    - static_cast<std::int64_t>
    - static_cast<signed char>
    - static_cast<GUInt32>
    - static_cast<float>
    - static_cast<GInt16>
    - static_cast<const GUInt32 *>
    - static_cast<const std::uint64_t *>
    - static_cast<const float *>
    - GDALIsValueInRange
    - static_cast<const GInt32 *>
    - static_cast<std::uint64_t>
    - static_cast<GInt32>
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::IsFirstPixelEqualToNoData(const void *pBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:549,1
    - Dst: cpl::quiet_NaN
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:554,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:566,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:570,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - pBuffer
    - nActualBlockWidth
    - nActualBlockHeight
    - nStrileHeight
    argTypes:
    - T*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 593
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 593
    functionName: GTiffDataset::WriteDealWithLercAndNan
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - cpl::quiet_NaN
    - defined
    - std::isnan
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::WriteDealWithLercAndNan(T *pBuffer, int nActualBlockWidth,\n
      \                                          int nActualBlockHeight,\n                                           int
      nStrileHeight)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::IsFirstPixelEqualToNoData
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:615,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:617,1
    - Dst: GTiffDataset::HasOnlyNoData
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:622,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:650,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:650,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:653,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:657,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:659,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:661,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:673,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:691,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:692,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:694,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:705,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:705,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:707,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:709,1
    - Dst: defined
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:715,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:721,1
    - Dst: GTiffDataset::WriteDealWithLercAndNan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:722,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:722,1
    - Dst: GTiffDataset::WriteDealWithLercAndNan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:726,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:726,1
    - Dst: GTiffDataset::DiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:736,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:741,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:743,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:748,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:748,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:751,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:753,1
    - Dst: GTiffDataset::SubmitCompressionJob
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:763,1
    - Dst: TIFFWriteEncodedTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:766,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 49
    argCount: 3
    argNames:
    - tile
    - pabyData
    - bPreserveDataBuffer
    argTypes:
    - uint32_t
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 767
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 767
    functionName: GTiffDataset::WriteEncodedTile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - GTiffDataset::SubmitCompressionJob
    - GTiffDataset::DiscardLsb
    - GetRasterBand
    - CPLDebug
    - static_cast<uint32_t>
    - static_cast<GPtrDiff_t>
    - GTiffDataset::HasOnlyNoData
    - defined
    - CPLMalloc
    - reinterpret_cast<double *>
    - GTiffDataset::IsFirstPixelEqualToNoData
    - GTiffDataset::WriteDealWithLercAndNan
    - ReportError
    - GTiffDataset::IsBlockAvailable
    - TIFFTileSize
    - static_cast<GByte *>
    - TIFFWriteEncodedTile
    - VSIFWriteL
    - reinterpret_cast<float *>
    - memcpy
    - TIFFIsByteSwapped
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::WriteEncodedTile(uint32_t tile, GByte *pabyData,\n
      \                                   int bPreserveDataBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:776,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:776,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:787,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:789,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:791,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:794,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:794,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:795,1
    - Dst: GTiffDataset::IsFirstPixelEqualToNoData
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:801,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:803,1
    - Dst: GTiffDataset::HasOnlyNoData
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:808,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:822,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:826,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:828,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:829,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:841,1
    - Dst: GTiffDataset::WriteDealWithLercAndNan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:842,1
    - Dst: reinterpret_cast<float *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:842,1
    - Dst: GTiffDataset::WriteDealWithLercAndNan
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:845,1
    - Dst: reinterpret_cast<double *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:845,1
    - Dst: GTiffDataset::DiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:855,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:860,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:862,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:867,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:867,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:870,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:872,1
    - Dst: GTiffDataset::SubmitCompressionJob
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:882,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:885,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 3
    argNames:
    - strip
    - pabyData
    - bPreserveDataBuffer
    argTypes:
    - uint32_t
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 886
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 886
    functionName: GTiffDataset::WriteEncodedStrip
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - GTiffDataset::SubmitCompressionJob
    - GTiffDataset::DiscardLsb
    - GetRasterBand
    - CPLDebug
    - static_cast<uint32_t>
    - static_cast<GPtrDiff_t>
    - GTiffDataset::HasOnlyNoData
    - TIFFWriteEncodedStrip
    - CPLMalloc
    - reinterpret_cast<double *>
    - GTiffDataset::IsFirstPixelEqualToNoData
    - GTiffDataset::WriteDealWithLercAndNan
    - ReportError
    - GTiffDataset::IsBlockAvailable
    - GetRasterYSize
    - static_cast<GByte *>
    - TIFFStripSize
    - VSIFWriteL
    - reinterpret_cast<float *>
    - memcpy
    - TIFFIsByteSwapped
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::WriteEncodedStrip(uint32_t strip, GByte *pabyData,\n
      \                                    int bPreserveDataBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:901,1
    - Dst: GTiffDataset::IsMultiThreadedReadCompatible
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:911,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:913,1
    - Dst: GDALGetGlobalThreadPool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:917,1
    - Dst: CreateJobQueue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:919,1
    - Dst: resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:926,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:927,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:928,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:931,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:931,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:934,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:934,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:935,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:946,1
    - Dst: TIFFWriteBufferSetup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:947,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:952,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:952,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:953,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:955,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 29
    argCount: 2
    argNames:
    - bUpdateMode
    - papszOptions
    argTypes:
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 959
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 959
    functionName: GTiffDataset::InitCompressionThreads
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - size
    - ReportError
    - static_cast<int>
    - CPLStrdup
    - CreateJobQueue
    - CPLDebug
    - CPLSPrintf
    - EQUAL
    - memset
    - CPL_IGNORE_RET_VAL
    - TIFFWriteBufferSetup
    - VSIMemGenerateHiddenFilename
    - GTiffDataset::IsMultiThreadedReadCompatible
    - resize
    - CPLGetConfigOption
    - GDALGetGlobalThreadPool
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::InitCompressionThreads(bool bUpdateMode,\n                                          CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GTiffCompressionJob *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:967,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:970,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:971,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:973,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:974,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:975,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:976,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:977,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:978,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:979,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:980,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:981,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:982,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:984,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:987,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:992,1
    - Dst: GTiffDataset*::RestoreVolatileParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:996,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1006,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1007,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1011,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1015,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1019,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1020,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1025,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1035,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1036,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1052
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 1052
    functionName: GTiffDataset::ThreadCompressionFunc
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - VSI_TIFFOpen
    - XTIFFClose
    - VSIGetMemFileBuffer
    - static_cast<GPtrDiff_t>
    - GTiffDataset*::RestoreVolatileParameters
    - VSIFCloseL
    - VSIFOpenL
    - CPLAssert
    - TIFFGetField
    - static_cast<GTiffCompressionJob *>
    - TIFFSetField
    - CPLError
    - static_cast<vsi_l_offset>
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::ThreadCompressionFunc(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1063,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1064,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1071,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1072,1
    - Dst: TIFFSetWriteOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1080,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1084,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1085,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1090,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1097,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1109,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1116,1
    - Dst: VSI_TIFFSeek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1129,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1132,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1133,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1133,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1134,1
    - Dst: VSI_TIFFSeek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1138,1
    - Dst: VSI_TIFFWrite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1140,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1153,1
    - Dst: VSI_TIFFSeek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1158,1
    - Dst: VSI_TIFFSeek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1166,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1168,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1169,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1169,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1170,1
    - Dst: VSI_TIFFSeek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1174,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1180,1
    - Dst: VSI_TIFFWrite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1181,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1186,1
    - Dst: TIFFWriteRawTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1187,1
    - Dst: TIFFWriteRawStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1190,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1195,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1199,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1202,1
    - Dst: VSI_TIFFWrite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1203,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 3
    argNames:
    - nStripOrTile
    - pabyCompressedBuffer
    - nCompressedBufferSize
    argTypes:
    - int
    - GByte*
    - GPtrDiff_t
    constantsTouched: []
    func_position:
      end: 1206
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1206
    functionName: GTiffDataset::WriteRawStripOrTile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - ReportError
    - TIFFWriteRawStrip
    - VSI_TIFFSeek
    - TIFFSetWriteOffset
    - VSI_TIFFGetVSILFile
    - TIFFWriteRawTile
    - CPLDebug
    - TIFFGetField
    - TIFFClientdata
    - VSIFReadL
    - TIFFIsTiled
    - VSI_TIFFWrite
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::WriteRawStripOrTile(int nStripOrTile,\n                                       GByte
      *pabyCompressedBuffer,\n                                       GPtrDiff_t nCompressedBufferSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auto::m_poCompressQueue::get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1215,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1220,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1220,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1220,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1221,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1222,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1222,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1236,1
    - Dst: auto::GetPool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1241,1
    - Dst: poDS::WriteRawStripOrTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1251,1
    - Dst: auto::pop
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1264
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1264
    functionName: GTiffDataset::WaitCompletionForJobIdx
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - poDS::WriteRawStripOrTile
    - static_cast<size_t>
    - auto::GetPool
    - auto::m_poCompressQueue::get
    - auto::empty
    - CPLDebug
    - auto::pop
    - CPLAssert
    - auto::size
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WaitCompletionForJobIdx(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poCompressQueue::get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1272,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1273,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1280,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1282,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1282,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1286,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1287,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1288,1
    - Dst: GTiffDataset::WaitCompletionForJobIdx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1290,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1290,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1292,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1292,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1293,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1294,1
    - Dst: GTiffDataset::WaitCompletionForJobIdx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1295,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - nBlockId
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1299
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1299
    functionName: GTiffDataset::WaitCompletionForBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - GTiffDataset::WaitCompletionForJobIdx
    - get
    - auto::empty
    - auto::front
    - CPLAssert
    - m_poCompressQueue::get
    - auto::size
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WaitCompletionForBlock(int nBlockId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_poCompressQueue::get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1311,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1312,1
    - Dst: auto::WaitCompletion
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1319,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1325,1
    - Dst: GTiffDataset::WaitCompletionForJobIdx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1327,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1327,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1335,1
    - Dst: TIFFIsBigEndian
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1335,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1337,1
    - Dst: VSI_REALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1337,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1341,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1346,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1348,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1353,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1373,1
    - Dst: SetupJob
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1374,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1377,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1377,1
    - Dst: GTiffDataset::ThreadCompressionFunc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1379,1
    - Dst: GTiffCompressionJob::poDS::WriteRawStripOrTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1383,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1388,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1389,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1390,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1404,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1404,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1406,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1406,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1407,1
    - Dst: GTiffDataset::WaitCompletionForJobIdx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1408,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1422,1
    - Dst: auto::SubmitJob
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1428,1
    - Dst: auto::push
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1429,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 60
    argCount: 4
    argNames:
    - nStripOrTile
    - pabyData
    - cc
    - nHeight
    argTypes:
    - int
    - GByte*
    - GPtrDiff_t
    - int
    constantsTouched: []
    func_position:
      end: 1433
      start: 1305
    functionDepth: 2
    functionLinenumber: 1305
    functionLinenumberEnd: 1433
    functionName: GTiffDataset::SubmitCompressionJob
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - auto::WaitCompletion
    - GTIFFSupportsPredictor
    - GTiffCompressionJob::poDS::WriteRawStripOrTile
    - SetupJob
    - auto::size
    - TIFFIsBigEndian
    - CPL_TO_BOOL
    - CPLStrdup
    - auto::push
    - GTiffDataset::ThreadCompressionFunc
    - VSI_REALLOC_VERBOSE
    - get
    - VSIUnlink
    - auto::empty
    - CPLAssert
    - static_cast<GByte *>
    - m_poCompressQueue::get
    - CPLFree
    - auto::SubmitJob
    - GTiffDataset::WaitCompletionForJobIdx
    - auto::front
    - TIFFGetField
    - VSIMemGenerateHiddenFilename
    - memset
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::SubmitCompressionJob(int nStripOrTile, GByte *pabyData,\n
      \                                       GPtrDiff_t cc, int nHeight)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - value
    - bHasNoData
    - nodata
    argTypes:
    - T
    - bool
    - T
    constantsTouched: []
    func_position:
      end: 1442
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1442
    functionName: MustNotDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MustNotDiscardLsb(T value, bool bHasNoData, T nodata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - value
    - bHasNoData
    - nodata
    argTypes:
    - float
    - bool
    - float
    constantsTouched: []
    func_position:
      end: 1448
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1448
    functionName: MustNotDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::isfinite
    linkageType: ''
    returnType: bool
    signature: bool MustNotDiscardLsb<float>(float value, bool bHasNoData, float nodata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - value
    - bHasNoData
    - nodata
    argTypes:
    - double
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 1454
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1454
    functionName: MustNotDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::isfinite
    linkageType: ''
    returnType: bool
    signature: bool MustNotDiscardLsb<double>(double value, bool bHasNoData, double
      nodata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1461,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1461,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1462,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - T
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1464
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1464
    functionName: AdjustValueInt
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T AdjustValueInt(T value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - int8_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1469
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1469
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: int8_t
    signature: int8_t AdjustValue<int8_t>(int8_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - uint8_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1475
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1475
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t AdjustValue<uint8_t>(uint8_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - int16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1481
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1481
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: int16_t
    signature: int16_t AdjustValue<int16_t>(int16_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1487
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1487
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t AdjustValue<uint16_t>(uint16_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1493
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1493
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: int32_t
    signature: int32_t AdjustValue<int32_t>(int32_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - uint32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1499
      start: 1496
    functionDepth: 2
    functionLinenumber: 1496
    functionLinenumberEnd: 1499
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t AdjustValue<uint32_t>(uint32_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - int64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1505
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1505
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: int64_t
    signature: int64_t AdjustValue<int64_t>(int64_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustValueInt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - nRoundUpBitTest
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1511
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1511
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - AdjustValueInt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t AdjustValue<uint64_t>(uint64_t value, uint64_t nRoundUpBitTest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nextafter
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1516,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - GFloat16
    constantsTouched: []
    func_position:
      end: 1517
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1517
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - nextafter
    linkageType: ''
    returnType: GFloat16
    signature: GFloat16 AdjustValue<GFloat16>(GFloat16 value, uint64_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::nextafter
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1521,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 1522
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1522
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::nextafter
    - simple_max
    linkageType: ''
    returnType: float
    signature: float AdjustValue<float>(float value, uint64_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::nextafter
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1526,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1527
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1527
    functionName: AdjustValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::nextafter
    - simple_max
    linkageType: ''
    returnType: double
    signature: double AdjustValue<double>(double value, uint64_t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1537,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1538,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1538,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1541,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1541,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1546
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1546
    functionName: RoundValueDiscardLsbUnsigned
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<uint64_t>
    - reinterpret_cast<const T *>
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: "T RoundValueDiscardLsbUnsigned(const void *ptr, uint64_t nMask,\n
      \                              uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1552,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1555,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1559,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1559,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1560,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1560,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1562
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1562
    functionName: RoundValueDiscardLsbSigned
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<uint64_t>
    - reinterpret_cast<const T *>
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: "T RoundValueDiscardLsbSigned(const void *ptr, uint64_t nMask,\n                             uint64_t
      nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1570
      start: 1565
    functionDepth: 2
    functionLinenumber: 1565
    functionLinenumberEnd: 1570
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t RoundValueDiscardLsb<uint16_t, uint16_t>(const void *ptr,\n
      \                                                 uint64_t nMask,\n                                                  uint64_t
      nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1578
      start: 1573
    functionDepth: 2
    functionLinenumber: 1573
    functionLinenumberEnd: 1578
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t RoundValueDiscardLsb<uint32_t, uint32_t>(const void *ptr,\n
      \                                                 uint64_t nMask,\n                                                  uint64_t
      nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1586
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1586
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RoundValueDiscardLsb<uint64_t, uint64_t>(const void *ptr,\n
      \                                                 uint64_t nMask,\n                                                  uint64_t
      nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbSigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1593
      start: 1589
    functionDepth: 2
    functionLinenumber: 1589
    functionLinenumberEnd: 1593
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbSigned
    linkageType: ''
    returnType: int8_t
    signature: "int8_t RoundValueDiscardLsb<int8_t, int8_t>(const void *ptr, uint64_t
      nMask,\n                                            uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbSigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1600
      start: 1596
    functionDepth: 2
    functionLinenumber: 1596
    functionLinenumberEnd: 1600
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbSigned
    linkageType: ''
    returnType: int16_t
    signature: "int16_t RoundValueDiscardLsb<int16_t, int16_t>(const void *ptr, uint64_t
      nMask,\n                                               uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbSigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1607
      start: 1603
    functionDepth: 2
    functionLinenumber: 1603
    functionLinenumberEnd: 1607
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbSigned
    linkageType: ''
    returnType: int32_t
    signature: "int32_t RoundValueDiscardLsb<int32_t, int32_t>(const void *ptr, uint64_t
      nMask,\n                                               uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbSigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1614
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1614
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbSigned
    linkageType: ''
    returnType: int64_t
    signature: "int64_t RoundValueDiscardLsb<int64_t, int64_t>(const void *ptr, uint64_t
      nMask,\n                                               uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1622
      start: 1617
    functionDepth: 2
    functionLinenumber: 1617
    functionLinenumberEnd: 1622
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t RoundValueDiscardLsb<GFloat16, uint16_t>(const void *ptr,\n
      \                                                 uint64_t nMask,\n                                                  uint64_t
      nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1629
      start: 1625
    functionDepth: 2
    functionLinenumber: 1625
    functionLinenumberEnd: 1629
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t RoundValueDiscardLsb<float, uint32_t>(const void *ptr, uint64_t
      nMask,\n                                               uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundValueDiscardLsbUnsigned
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - nMask
    - nRoundUpBitTest
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1636
      start: 1632
    functionDepth: 2
    functionLinenumber: 1632
    functionLinenumberEnd: 1636
    functionName: RoundValueDiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsbUnsigned
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RoundValueDiscardLsb<double, uint64_t>(const void *ptr, uint64_t
      nMask,\n                                                uint64_t nRoundUpBitTest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MustNotDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1652,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1652,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1658,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1660,1
    - Dst: RoundValueDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1661,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1662,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1667,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1667,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1668,1
    - Dst: MustNotDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1673,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1673,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1676,1
    - Dst: AdjustValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1677,1
    - Dst: MustNotDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1687,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1688,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1694,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1697,1
    - Dst: RoundValueDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1698,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1699,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1705,1
    - Dst: static_cast<T>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1705,1
    - Dst: reinterpret_cast<T *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1706,1
    - Dst: MustNotDiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1712,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1713,1
    - Dst: reinterpret_cast<Teffective *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1716,1
    - Dst: AdjustValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1717,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 8
    argNames:
    - pabyBuffer
    - nBytes
    - iBand
    - nBands
    - nPlanarConfig
    - panMaskOffsetLsb
    - bHasNoData
    - nNoDataValue
    argTypes:
    - GByte*
    - size_t
    - int
    - int
    - uint16_t
    - GTiffDataset::MaskOffset*
    - bool
    - Teffective
    constantsTouched: []
    func_position:
      end: 1723
      start: 1639
    functionDepth: 3
    functionLinenumber: 1639
    functionLinenumberEnd: 1723
    functionName: DiscardLsbT
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - RoundValueDiscardLsb
    - MustNotDiscardLsb
    - AdjustValue
    - reinterpret_cast<T *>
    - reinterpret_cast<Teffective *>
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: "void DiscardLsbT(GByte *pabyBuffer, size_t nBytes, int iBand, int
      nBands,\n                        uint16_t nPlanarConfig,\n                        const
      GTiffDataset::MaskOffset *panMaskOffsetLsb,\n                        bool bHasNoData,
      Teffective nNoDataValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1734,1
    - Dst: static_cast<uint8_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1736,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1745,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1747,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1757,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1758,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1762,1
    - Dst: AdjustValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1768,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1787,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1787,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1790,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1792,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1798,1
    - Dst: AdjustValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1805,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1816,1
    - Dst: static_cast<int8_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1818,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1824,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1831,1
    - Dst: static_cast<int16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1833,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1839,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1846,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1848,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1854,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1861,1
    - Dst: static_cast<int32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1863,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1869,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1876,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1878,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1884,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1893,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1895,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1901,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1910,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1912,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1918,1
    - Dst: static_cast<GFloat16>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1924,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1925,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1932,1
    - Dst: DiscardLsbT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1938,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 102
    argCount: 10
    argNames:
    - pabyBuffer
    - nBytes
    - iBand
    - nBands
    - nSampleFormat
    - nBitsPerSample
    - nPlanarConfig
    - panMaskOffsetLsb
    - bHasNoData
    - dfNoDataValue
    argTypes:
    - GByte*
    - GPtrDiff_t
    - int
    - int
    - uint16_t
    - uint16_t
    - uint16_t
    - GTiffDataset::MaskOffset*
    - bool
    - double
    constantsTouched: []
    func_position:
      end: 1942
      start: 1725
    functionDepth: 4
    functionLinenumber: 1725
    functionLinenumberEnd: 1942
    functionName: DiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 3
    functionsReached:
    - DiscardLsbT
    - static_cast<int8_t>
    - static_cast<GFloat16>
    - static_cast<unsigned>
    - GDALIsValueExactAs
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - AdjustValue
    - static_cast<uint16_t>
    - min
    - static_cast<GByte>
    - static_cast<uint32_t>
    - static_cast<int16_t>
    - static_cast<int64_t>
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: "void DiscardLsb(GByte *pabyBuffer, GPtrDiff_t nBytes, int iBand,\n
      \                      int nBands, uint16_t nSampleFormat,\n                       uint16_t
      nBitsPerSample, uint16_t nPlanarConfig,\n                       const GTiffDataset::MaskOffset
      *panMaskOffsetLsb,\n                       bool bHasNoData, double dfNoDataValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::DiscardLsb
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pabyBuffer
    - nBytes
    - iBand
    argTypes:
    - GByte*
    - GPtrDiff_t
    - int
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: GTiffDataset::DiscardLsb
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 3
    functionsReached:
    - GTiffDataset::DiscardLsb
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::DiscardLsb(GByte *pabyBuffer, GPtrDiff_t nBytes,\n
      \                             int iBand) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1961,1
    - Dst: GTiffDataset::WriteEncodedTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1963,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1963,1
    - Dst: GTiffDataset::WriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1971,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tile_or_strip
    - data
    - bPreserveDataBuffer
    argTypes:
    - uint32_t
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1979
      start: 1956
    functionDepth: 3
    functionLinenumber: 1956
    functionLinenumberEnd: 1979
    functionName: GTiffDataset::WriteEncodedTileOrStrip
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - GTiffDataset::WriteEncodedTile
    - GTiffDataset::WriteEncodedStrip
    - static_cast<GByte *>
    - TIFFIsTiled
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::WriteEncodedTileOrStrip(uint32_t tile_or_strip,
      void *data,\n                                             int bPreserveDataBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1994,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:1997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1985
    functionDepth: 4
    functionLinenumber: 1985
    functionLinenumberEnd: 2003
    functionName: GTiffDataset::FlushBlockBuf
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - GTiffDataset::WriteEncodedTileOrStrip
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::FlushBlockBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2013,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2014,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2020,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2023,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2033,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2034,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2036,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2041,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2041,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2042,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - hTIFF
    - nSize
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 2064
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2064
    functionName: GTiffFillStreamableOffsetAndCount
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GPtrDiff_t>
    - TIFFStripSize
    - TIFFTileSize
    - TIFFGetField
    - static_cast<uint32_t>
    - DIV_ROUND_UP
    linkageType: ''
    returnType: void
    signature: void GTiffFillStreamableOffsetAndCount(TIFF *hTIFF, int nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::WriteMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2081,1
    - Dst: GTiffDataset::WriteGeoTIFFInfo
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2083,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2085,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2087,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2089,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2098,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2098,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2100,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2106,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2107,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2109,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2111,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2115,1
    - Dst: GTiffFillStreamableOffsetAndCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2116,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2117,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2122,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2122,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2123,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2124,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2126,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2127,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2131,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2132,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2133,1
    - Dst: TIFFNumberOfDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2137,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2140,1
    - Dst: static_cast<tdir_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2140,1
    - Dst: GTiffDataset::RestoreVolatileParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2144,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2147
    functionName: GTiffDataset::Crystalize
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - GTiffDataset::RestoreVolatileParameters
    - static_cast<int>
    - GTiffDataset::WriteGeoTIFFInfo
    - TIFFWriteCheck
    - TIFFSetDirectory
    - GTiffDataset::WriteMetadata
    - VSIFSeekL
    - static_cast<tdir_t>
    - TIFFCurrentDirOffset
    - GTiffFillStreamableOffsetAndCount
    - GTiffDataset::WriteNoDataValue
    - CPLPopErrorHandler
    - VSIFWriteL
    - CPLPushErrorHandler
    - TIFFIsTiled
    - TIFFNumberOfDirectories
    - TIFFWriteDirectory
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::Crystalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::FlushCacheInternal
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bAtClosing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2160
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2160
    functionName: GTiffDataset::FlushCache
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::FlushCacheInternal
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::FlushCache(bool bAtClosing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2167,1
    - Dst: GTiffDataset::FlushBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2171,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2175,1
    - Dst: m_poCompressQueue::get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2181,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2182,1
    - Dst: auto::WaitCompletion
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2185,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2192,1
    - Dst: GTiffDataset::WaitCompletionForJobIdx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2194,1
    - Dst: auto::front
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2194,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2198,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - bAtClosing
    - bFlushDirectory
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2204
      start: 2162
    functionDepth: 5
    functionLinenumber: 2162
    functionLinenumberEnd: 2204
    functionName: GTiffDataset::FlushCacheInternal
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - GDALPamDataset::FlushCache
    - GetAccess
    - auto::WaitCompletion
    - GTiffDataset::WaitCompletionForJobIdx
    - get
    - auto::empty
    - GTiffDataset::FlushBlockBuf
    - auto::front
    - GTiffDataset::FlushDirectory
    - m_poCompressQueue::get
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::FlushCacheInternal(bool bAtClosing, bool bFlushDirectory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2225,1
    - Dst: m_poMaskDS::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2232,1
    - Dst: auto::m_poMaskDS::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2240,1
    - Dst: auto::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2244,1
    - Dst: GTiffDataset::WriteMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2253,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2261,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2265,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2266,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2267,1
    - Dst: GDALWriteRPCTXTFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2271,1
    - Dst: GDALWriteRPBFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2272,1
    - Dst: GTiffDataset::WriteGeoTIFFInfo
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2278,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2286,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2290,1
    - Dst: GTiffDataset::WriteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2294,1
    - Dst: GTiffDataset::UnsetNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2298,1
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2308,1
    - Dst: TIFFGetSizeProc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2312,1
    - Dst: pfnSizeProc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2314,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2314,1
    - Dst: TIFFRewriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2318,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2321,1
    - Dst: ReloadAllOtherDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2323,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2331,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2346,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2347,1
    - Dst: TIFFGetSizeProc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2349,1
    - Dst: pfnSizeProc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2351,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2351,1
    - Dst: TIFFFlush
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2355,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2358,1
    - Dst: ReloadAllOtherDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2361,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2362,1
    - Dst: GTiffDataset::SetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2367,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2210
    functionDepth: 3
    functionLinenumber: 2210
    functionLinenumberEnd: 2369
    functionName: GTiffDataset::FlushDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - TIFFUnsetField
    - CPLDebug
    - TIFFGetSizeProc
    - GTiffDataset::WriteNoDataValue
    - TIFFSetSubDirectory
    - GDALWriteRPBFile
    - ReloadAllOtherDirectories
    - pfnSizeProc
    - GTiffDataset::WriteGeoTIFFInfo
    - GDALWriteRPCTXTFile
    - GTiffDataset::WriteMetadata
    - GTiffDataset::UnsetNoDataValue
    - TIFFClientdata
    - TIFFRewriteDirectory
    - m_poMaskDS::ReloadDirectory
    - auto::m_poMaskDS::ReloadDirectory
    - std::vector::data
    - ReportError
    - GetAccess
    - GTiffDataset::SetDirectory
    - auto::ReloadDirectory
    - GTiffDataset::Crystalize
    - TIFFFlush
    - GTiffDataset::ReloadDirectory
    - TIFFCurrentDirOffset
    - TIFFGetField
    - TIFFSetField
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::FlushDirectory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2378,1
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2380,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2382,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2392,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2394,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2406,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2412,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2414,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2414,1
    - Dst: TIFFLastDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2418,1
    - Dst: TIFFReadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2421,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2430,1
    - Dst: TIFFUnlinkDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2432,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2432,1
    - Dst: std::vector::pop_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2433,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2436,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2442,1
    - Dst: GTiffDataset::SetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2447,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2375
    functionDepth: 4
    functionLinenumber: 2375
    functionLinenumberEnd: 2451
    functionName: GTiffDataset::CleanOverviews
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - TIFFReadDirectory
    - CPLFree
    - TIFFUnlinkDirectory
    - GTiffDataset::SetDirectory
    - TIFFSetDirectory
    - TIFFCurrentDirOffset
    - static_cast<uint16_t>
    - std::vector::back
    - CPLAssert
    - GTiffDataset::ScanDirectories
    - GTiffDataset::FlushDirectory
    - std::vector::push_back
    - std::vector::empty
    - std::vector::pop_back
    - TIFFLastDirectory
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::CleanOverviews()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2475,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2482,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2491,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2497,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2505,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2515,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2523,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2528,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2534,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2537,1
    - Dst: GTiffDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2538,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2539,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2541,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2551,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2552,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2553,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2555,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2560,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2570,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2570,1
    - Dst: dynamic_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2581,1
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2581,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2583,1
    - Dst: GTiffDataset*::RestoreVolatileParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2587,1
    - Dst: static_cast<GTiffDataset **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2590,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2591,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 3
    argNames:
    - nOverviewOffset
    - l_nJpegQuality
    - papszOptions
    argTypes:
    - toff_t
    - int
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2596
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2596
    functionName: GTiffDataset::RegisterNewOverviewDataset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset*::OpenOffset
    - atoi
    - GTiffDataset*::RestoreVolatileParameters
    - GetRasterBand
    - CPLDebug
    - dynamic_cast<GTiffRasterBand *>
    - CPLError
    - CPLGetConfigOption
    - CSLFetchNameValue
    - CPLStrdup
    - CPLRealloc
    - CPLAtof
    - static_cast<signed char>
    - CPLTestBool
    - static_cast<GTiffDataset **>
    - GTiffDataset*::ShareLockWithParentDataset
    - GTiffDataset*::GetRasterBand
    - VSI_TIFFOpenChild
    - GTiffDataset::GTiffDataset
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::RegisterNewOverviewDataset(toff_t nOverviewOffset,\n
      \                                               int l_nJpegQuality,\n                                                CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<unsigned short>::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2617,1
    - Dst: std::vector<unsigned short>::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2618,1
    - Dst: std::vector<unsigned short>::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2619,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2623,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2627,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2629,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2631,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 9
    argNames:
    - poColorTable
    - nBits
    - nColorTableMultiplier
    - anTRed
    - anTGreen
    - anTBlue
    - panRed
    - panGreen
    - panBlue
    argTypes:
    - GDALColorTable*
    - int
    - int
    - std::vector<unsigned short>
    - std::vector<unsigned short>
    - std::vector<unsigned short>
    - unsigned short*
    - unsigned short*
    - unsigned short*
    constantsTouched: []
    func_position:
      end: 2647
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2647
    functionName: CreateTIFFColorTable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::vector<unsigned short>::resize
    - GDALColorTable*::GetColorEntryCount
    - GTiffDataset::ClampCTEntry
    - GDALColorTable*::GetColorEntryAsRGB
    linkageType: ''
    returnType: void
    signature: "void CreateTIFFColorTable(\n    GDALColorTable *poColorTable, int
      nBits, int nColorTableMultiplier,\n    std::vector<unsigned short> &anTRed,
      std::vector<unsigned short> &anTGreen,\n    std::vector<unsigned short> &anTBlue,
      unsigned short *&panRed,\n    unsigned short *&panGreen, unsigned short *&panBlue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2670,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2677,1
    - Dst: GTIFFGetCompressionMethod
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2693,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2712,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2714,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2718,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2729,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2735,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2735,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2737,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2738,1
    - Dst: GTIFFUpdatePhotometric
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2750,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2767,1
    - Dst: GTiffFormatGDALNoDataTagValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2776,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2784,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2789,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 9
    argNames:
    - nCompression
    - nPlanarConfig
    - nPredictor
    - nPhotometric
    - nOvrJpegQuality
    - osNoData
    - panExtraSampleValues
    - nExtraSamples
    - papszOptions
    argTypes:
    - int
    - uint16_t
    - uint16_t
    - uint16_t
    - int
    - std::string
    - uint16_t*
    - uint16_t
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 2800
      start: 2653
    functionDepth: 1
    functionLinenumber: 2653
    functionLinenumberEnd: 2800
    functionName: GTiffDataset::GetOverviewParameters
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffFormatGDALNoDataTagValue
    - atoi
    - GTIFFSupportsPredictor
    - memcpy
    - static_cast<uint16_t>
    - EQUAL
    - TIFFGetField
    - GTIFFUpdatePhotometric
    - GTIFFGetCompressionMethod
    - CPLError
    - CPLGetConfigOption
    - CSLFetchNameValue
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::GetOverviewParameters(\n    int &nCompression,
      uint16_t &nPlanarConfig, uint16_t &nPredictor,\n    uint16_t &nPhotometric,
      int &nOvrJpegQuality, std::string &osNoData,\n    uint16_t *&panExtraSampleValues,
      uint16_t &nExtraSamples,\n    CSLConstList papszOptions) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2812,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2812,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2813,1
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2815,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2817,1
    - Dst: GTIFFBuildOverviewMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2826,1
    - Dst: GTiffDataset::GetOverviewParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2836,1
    - Dst: CreateTIFFColorTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2859,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2859,1
    - Dst: GTIFFGetOverviewBlockSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2866,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2866,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2866,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2874,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2875,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2876,1
    - Dst: GTIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2881,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2887,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2888,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2889,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2889,1
    - Dst: GTiffDataset::RegisterNewOverviewDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2895,1
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2901,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2903,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - poSrcDS
    - poOvrDS
    - nOverviews
    argTypes:
    - GDALDataset*
    - GDALDataset*
    - int
    constantsTouched: []
    func_position:
      end: 2907
      start: 2808
    functionDepth: 4
    functionLinenumber: 2808
    functionLinenumberEnd: 2907
    functionName: GTiffDataset::CreateOverviewsFromSrcOverviews
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::RegisterNewOverviewDataset
    - GetRasterBand
    - GTiffDataset::GetOverviewParameters
    - GDALDataset*::GetRasterCount
    - std::string::c_str
    - std::string::empty
    - CreateTIFFColorTable
    - ToHandle
    - GTIFFBuildOverviewMetadata
    - GTIFFWriteDirectory
    - GTIFFGetOverviewBlockSize
    - GDALDataset*::GetRasterBand
    - get
    - CPLSPrintf
    - CPLAssert
    - CPLFree
    - GTiffDataset::ReloadDirectory
    - GTiffDataset::FlushDirectory
    - GTiffDataset::ScanDirectories
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::CreateOverviewsFromSrcOverviews(GDALDataset *poSrcDS,\n
      \                                                    GDALDataset *poOvrDS,\n
      \                                                    int nOverviews)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2916,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2923,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2926,1
    - Dst: GDALGetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2926,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2926,1
    - Dst: GTIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2937,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2952,1
    - Dst: GTiffDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2953,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2954,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2955,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2955,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2963,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2963,1
    - Dst: static_cast<GTiffDataset **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2970,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2970,1
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - nOvrBlockXSize
    - nOvrBlockYSize
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2984
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2984
    functionName: GTiffDataset::CreateInternalMaskOverviews
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - CPLTestBool
    - GTIFFWriteDirectory
    - GDALGetMetadataItem
    - CPLStrdup
    - GTiffDataset*::OpenOffset
    - GTiffDataset::ReloadDirectory
    - static_cast<GTiffDataset **>
    - CPLRealloc
    - GTiffDataset::ScanDirectories
    - GTiffDataset::GTiffDataset
    - strstr
    - VSI_TIFFOpenChild
    - GetRasterCount
    - CPLGetConfigOption
    - GTiffDataset*::ShareLockWithParentDataset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::CreateInternalMaskOverviews(int nOvrBlockXSize,\n
      \                                                int nOvrBlockYSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:2998,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3011,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3011,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3012,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3013,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3014,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3015,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3024,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3026,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3036,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3045,1
    - Dst: GDALDataset::IBuildOverviews
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3048,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3053,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3067,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3069,1
    - Dst: GDALDataset::IBuildOverviews
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3083,1
    - Dst: GTiffDataset::CleanOverviews
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3087,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3095,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3097,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3101,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3109,1
    - Dst: GTIFFBuildOverviewMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3118,1
    - Dst: GTiffDataset::GetOverviewParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3128,1
    - Dst: CreateTIFFColorTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3151,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3151,1
    - Dst: GTIFFGetOverviewBlockSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3163,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3163,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3163,1
    - Dst: GTiffDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3178,1
    - Dst: GTiffDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3178,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3179,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3179,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3180,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3180,1
    - Dst: GDALOvLevelAdjust2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3187,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3188,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3189,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3201,1
    - Dst: GTIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3213,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3219,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3221,1
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3222,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3222,1
    - Dst: GTiffDataset::RegisterNewOverviewDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3228,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3233,1
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3236,1
    - Dst: GTiffDataset::CreateInternalMaskOverviews
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3244,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3259,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3260,1
    - Dst: m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3266,1
    - Dst: GDALRegenerateOverviewsEx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3272,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3273,1
    - Dst: reinterpret_cast<GDALRasterBandH *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3274,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3277,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3278,1
    - Dst: BuildOverviewsMask
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3284,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3287,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3295,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3302,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3304,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3305,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3306,1
    - Dst: auto::IsIdentity
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3307,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3308,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3309,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3309,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3310,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3310,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3311,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3312,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3312,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3313,1
    - Dst: static_cast<GDALRasterBand ***>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3325,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3326,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3328,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3328,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3331,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3334,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3335,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3335,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3339,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3343,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3349,1
    - Dst: GDALComputeOvFactor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3351,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3352,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3352,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3353,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3353,1
    - Dst: GDALCopyNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3355,1
    - Dst: GDALOvLevelAdjust2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3358,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3359,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3360,1
    - Dst: GDALGetNormalizedOvrResampling
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3365,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3371,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3372,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3377,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3377,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3391,1
    - Dst: GDALRegenerateOverviewsMultiBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3401,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3405,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3409,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3411,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3412,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3416,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3417,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3423,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3431,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3436,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3441,1
    - Dst: GDALCopyNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3443,1
    - Dst: GDALOvLevelAdjust2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3450,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3451,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3452,1
    - Dst: GDALGetNormalizedOvrResampling
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3457,1
    - Dst: GDALRasterBand*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3463,1
    - Dst: auto::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3464,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3469,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3469,1
    - Dst: GDALRegenerateOverviewsEx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3483,1
    - Dst: reinterpret_cast<GDALRasterBandH *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3485,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3489,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3497,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3500,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 165
    argCount: 8
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nBandsIn
    - panBandList
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - int*
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 3503
      start: 2990
    functionDepth: 5
    functionLinenumber: 2990
    functionLinenumberEnd: 3503
    functionName: GTiffDataset::IBuildOverviews
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::RegisterNewOverviewDataset
    - GTiffDataset*::GetRasterYSize
    - GDALGetNormalizedOvrResampling
    - GDALRegenerateOverviewsEx
    - GDALComputeOvFactor
    - GetRasterBand
    - GTiffDataset::GetOverviewParameters
    - CPLDebug
    - GTiffDataset::CleanOverviews
    - GTiffDataset*::GetRasterXSize
    - GDALRasterBand*::SetMetadataItem
    - GetRasterCount
    - CPLGetConfigOption
    - std::string::c_str
    - BuildOverviewsMask
    - auto::c_str
    - std::string::empty
    - static_cast<GDALRasterBand **>
    - GDALRasterBand*::GetXSize
    - CreateTIFFColorTable
    - GetColorInterpretation
    - ToHandle
    - reinterpret_cast<GDALRasterBandH *>
    - pfnProgress
    - GDALRasterBand*::GetOverview
    - DIV_ROUND_UP
    - GTIFFBuildOverviewMetadata
    - ReportError
    - CPLTestBool
    - STARTS_WITH_CI
    - GetAccess
    - GTIFFWriteDirectory
    - GTIFFGetOverviewBlockSize
    - get
    - CPLSPrintf
    - GDALRasterBand*::GetOverviewCount
    - GetRasterYSize
    - CPLAssert
    - CPLStringList::SetNameValue
    - GDALDataTypeIsComplex
    - CPLCalloc
    - static_cast<GDALRasterBand ***>
    - GDALOvLevelAdjust2
    - CPLFree
    - GDALRasterBand*::GetYSize
    - GDALDestroyScaledProgress
    - auto::IsIdentity
    - GTiffDataset::CreateInternalMaskOverviews
    - CSLFetchNameValueDef
    - GTiffDataset::ReloadDirectory
    - m_poMaskDS::GetRasterBand
    - EQUAL
    - GTiffDataset::FlushDirectory
    - GTiffDataset::ScanDirectories
    - GDALDataset::IBuildOverviews
    - GDALRegenerateOverviewsMultiBand
    - GDALCopyNoDataValue
    - GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::IBuildOverviews(const char *pszResampling, int
      nOverviews,\n                                     const int *panOverviewList,
      int nBandsIn,\n                                     const int *panBandList,\n
      \                                    GDALProgressFunc pfnProgress,\n                                     void
      *pProgressData,\n                                     CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3516,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3520,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3521,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hTIFF
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 3524
      start: 3509
    functionDepth: 0
    functionLinenumber: 3509
    functionLinenumberEnd: 3524
    functionName: GTiffWriteDummyGeokeyDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - TIFFGetField
    - TIFFSetField
    linkageType: ''
    returnType: void
    signature: void GTiffWriteDummyGeokeyDirectory(TIFF *hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::IsGeographic
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3534,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3534,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3534,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3538,1
    - Dst: OGRSpatialReference*::IsDerivedGeographic
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3544,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3545,1
    - Dst: OGRSpatialReference*::IsCompound
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3545,1
    - Dst: OGRSpatialReference*::GetAxesCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3546,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3556,1
    - Dst: OGRSpatialReference*::IsProjected
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3557,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3560,1
    - Dst: OGRSpatialReference*::exportToWkt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3563,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3570,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 2
    argNames:
    - poSRS
    - eGeoTIFFKeysFlavor
    argTypes:
    - OGRSpatialReference*
    - GTIFFKeysFlavorEnum
    constantsTouched: []
    func_position:
      end: 3572
      start: 3530
    functionDepth: 0
    functionLinenumber: 3530
    functionLinenumberEnd: 3572
    functionName: IsSRSCompatibleOfGeoTIFF
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference*::exportToWkt
    - CPLFree
    - OGRSpatialReference*::IsProjected
    - OGRSpatialReference*::IsCompound
    - OGRSpatialReference*::IsGeographic
    - EQUAL
    - OGRSpatialReference*::IsDerivedGeographic
    - OGRSpatialReference*::GetAxesCount
    linkageType: ''
    returnType: bool
    signature: "bool IsSRSCompatibleOfGeoTIFF(const OGRSpatialReference *poSRS,\n
      \                                    GTIFFKeysFlavorEnum eGeoTIFFKeysFlavor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3586,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3590,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3590,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3598,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3599,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3600,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3608,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3609,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3610,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3626,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3627,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3628,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3647,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3657,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3673,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3696,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3700,1
    - Dst: GDALWriteWorldFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3701,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3702,1
    - Dst: GDALWriteWorldFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3703,1
    - Dst: GTiffDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3705,1
    - Dst: GTiffDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3705,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3713,1
    - Dst: Pixel
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3716,1
    - Dst: Line
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3717,1
    - Dst: X
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3719,1
    - Dst: Y
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3720,1
    - Dst: Z
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3721,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3730,1
    - Dst: GTiffDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3730,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3732,1
    - Dst: GTiffWriteDummyGeokeyDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3746,1
    - Dst: GTiffDataset::GTIFNew
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3748,1
    - Dst: IsSRSCompatibleOfGeoTIFF
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3753,1
    - Dst: GTIFSetFromOGISDefnEx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3755,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3756,1
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3761,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3767,1
    - Dst: GTIFWriteKeys
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3771,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3772,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3578
    functionDepth: 8
    functionLinenumber: 3578
    functionLinenumberEnd: 3774
    functionName: GTiffDataset::WriteGeoTIFFInfo
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - GTiffDataset::GetGCPCount
    - TIFFUnsetField
    - GetRasterBand
    - GTiffDataset::GTIFNew
    - GTIFKeySet
    - CPLGetConfigOption
    - GDALPamDataset::SetSpatialRef
    - GDALWriteWorldFile
    - ToHandle
    - Y
    - GTIFFree
    - IsSRSCompatibleOfGeoTIFF
    - CPLTestBool
    - GTIFWriteKeys
    - CPLFetchBool
    - GTIFSetFromOGISDefnEx
    - GTiffWriteDummyGeokeyDirectory
    - Z
    - Pixel
    - CPLFree
    - size
    - X
    - EQUAL
    - TIFFSetField
    - Line
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WriteGeoTIFFInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3789,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3790,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3790,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3796,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3797,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3797,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3802,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3802,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3805,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3806,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3806,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3813,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3814,1
    - Dst: CPLCreateXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3820,1
    - Dst: CPLAddXMLChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3827,1
    - Dst: CPLAddXMLSibling
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 7
    argNames:
    - ppsRoot
    - ppsTail
    - pszKey
    - pszValue
    - nBand
    - pszRole
    - pszDomain
    argTypes:
    - CPLXMLNode**
    - CPLXMLNode**
    - char*
    - char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3832
      start: 3780
    functionDepth: 1
    functionLinenumber: 3780
    functionLinenumberEnd: 3832
    functionName: AppendMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLCreateXMLNode
    - CPLAddXMLChild
    - snprintf
    - strlen
    - CPLAddXMLSibling
    - CPLFree
    linkageType: ''
    returnType: void
    signature: "void AppendMetadataItem(CPLXMLNode **ppsRoot, CPLXMLNode **ppsTail,\n
      \                              const char *pszKey, const char *pszValue,\n                               int
      nBand, const char *pszRole,\n                               const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALMultiDomainMetadata*::GetDomainList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3847,1
    - Dst: GDALMultiDomainMetadata*::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3851,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3854,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3855,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3857,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3859,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3861,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3862,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3862,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3864,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3867,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3882,1
    - Dst: CPLParseNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3887,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3890,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3901,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3902,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3903,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3905,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3908,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3915,1
    - Dst: GTiffDataset::GetTIFFTags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3921,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3924,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3933,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3937,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3938,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3941,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3942,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3950,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3955,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3961,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3967,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3971,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3980,1
    - Dst: GTiffDataset::GetTIFFTags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3982,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3993,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3996,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:3998,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4000,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4003,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 66
    argCount: 6
    argNames:
    - poMDMD
    - hTIFF
    - ppsRoot
    - ppsTail
    - nBand
    - eProfile
    argTypes:
    - GDALMultiDomainMetadata*
    - TIFF*
    - CPLXMLNode**
    - CPLXMLNode**
    - int
    - GTiffProfile
    constantsTouched: []
    func_position:
      end: 4008
      start: 3838
    functionDepth: 2
    functionLinenumber: 3838
    functionLinenumberEnd: 4008
    functionName: WriteMDMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - TIFFUnsetField
    - GDALMultiDomainMetadata*::GetMetadata
    - atoi
    - CPLDebug
    - GTiffDataset::GetTIFFTags
    - CPLError
    - CPLGetConfigOption
    - CPLStrdup
    - strlen
    - CPLAtof
    - CPLTestBool
    - STARTS_WITH_CI
    - CPLFree
    - AppendMetadataItem
    - CPLParseNameValue
    - EQUAL
    - GDALMultiDomainMetadata*::GetDomainList
    - TIFFGetField
    - TIFFSetField
    linkageType: ''
    returnType: void
    signature: "void WriteMDMetadata(GDALMultiDomainMetadata *poMDMD, TIFF *hTIFF,\n
      \                           CPLXMLNode **ppsRoot, CPLXMLNode **ppsTail,\n                            int
      nBand, GTiffProfile eProfile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDatasetWriteRPCTag
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4032,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4043,1
    - Dst: GDALWriteRPBFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4048,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4052,1
    - Dst: GDALWriteRPCTXTFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4055,1
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4060,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 7
    argNames:
    - poSrcDS
    - l_hTIFF
    - bSrcIsGeoTIFF
    - eProfile
    - pszTIFFFilename
    - papszCreationOptions
    - bWriteOnlyInPAMIfNeeded
    argTypes:
    - GDALDataset*
    - TIFF*
    - int
    - GTiffProfile
    - char*
    - CSLConstList
    - bool
    constantsTouched: []
    func_position:
      end: 4063
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4063
    functionName: GTiffDataset::WriteRPC
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDatasetWriteRPCTag
    - CPLFetchBool
    - GDALWriteRPCTXTFile
    - cpl::down_cast<GTiffDataset *>
    - GDALWriteRPBFile
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::WriteRPC(GDALDataset *poSrcDS, TIFF *l_hTIFF,\n
      \                           int bSrcIsGeoTIFF, GTiffProfile eProfile,\n                            const
      char *pszTIFFFilename,\n                            CSLConstList papszCreationOptions,\n
      \                           bool bWriteOnlyInPAMIfNeeded)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4090,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4091,1
    - Dst: WriteMDMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4092,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4097,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4097,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4100,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4101,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4102,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4103,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4104,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4106,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4109,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4109,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4119,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4121,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4121,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4125,1
    - Dst: WriteMDMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4128,1
    - Dst: GTiffDataset::WriteRPC
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4134,1
    - Dst: GDALWriteIMDFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4145,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4150,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4160,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4162,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4167,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4168,1
    - Dst: WriteMDMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4169,1
    - Dst: GDALMultiDomainMetadata::GDALMultiDomainMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4174,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4177,1
    - Dst: GDALRasterBand*::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4181,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4186,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4191,1
    - Dst: cpl::Iterate
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4195,1
    - Dst: CSLConstList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4195,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4198,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4200,1
    - Dst: GDALMultiDomainMetadata::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4203,1
    - Dst: GDALRasterBand*::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4203,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4207,1
    - Dst: WriteMDMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4212,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4222,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4224,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4225,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4226,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4235,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4236,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4238,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4239,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4247,1
    - Dst: auto::IsCompound
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4248,1
    - Dst: auto::GetTargetLinearUnits
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4251,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4252,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4259,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4264,1
    - Dst: GDALRasterBand*::GetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4264,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4266,1
    - Dst: GDALRasterBand*::GetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4267,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4272,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4272,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4276,1
    - Dst: GDALGetColorInterpretationName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4277,1
    - Dst: GDALRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4278,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4283,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4289,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4296,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4304,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4312,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4313,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4317,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4319,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4325,1
    - Dst: GTiffGetWebPLossless
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4327,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4329,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4335,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4337,1
    - Dst: GTiffGetWebPLevel
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4337,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4341,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4349,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4355,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4356,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4361,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4363,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4370,1
    - Dst: GTiffGetJXLLossless
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4373,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4375,1
    - Dst: GTiffGetJXLDistance
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4381,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4382,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4383,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4390,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4391,1
    - Dst: AppendMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4394,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4396,1
    - Dst: GTiffGetJXLEffort
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4396,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4412,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4413,1
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4418,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4423,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4433,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4435,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 142
    argCount: 7
    argNames:
    - poSrcDS
    - l_hTIFF
    - bSrcIsGeoTIFF
    - eProfile
    - pszTIFFFilename
    - papszCreationOptions
    - bExcludeRPBandIMGFileWriting
    argTypes:
    - GDALDataset*
    - TIFF*
    - bool
    - GTiffProfile
    - char*
    - CSLConstList
    - bool
    constantsTouched: []
    func_position:
      end: 4440
      start: 4069
    functionDepth: 3
    functionLinenumber: 4069
    functionLinenumberEnd: 4440
    functionName: GTiffDataset::WriteMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - TIFFUnsetField
    - GTiffGetWebPLossless
    - assert
    - GTiffGetWebPLevel
    - GDALWriteIMDFile
    - GDALDataset*::GetRasterCount
    - CPLGetConfigOption
    - WriteMDMetadata
    - GTiffDataset::WriteRPC
    - GDALDataset*::GetSpatialRef
    - GTiffGetJXLEffort
    - strlen
    - cpl::down_cast<GTiffDataset *>
    - CSLCount
    - GDALDataset*::GetGeoTransform
    - GDALMultiDomainMetadata::GDALMultiDomainMetadata
    - CPLTestBool
    - CSLConstList
    - GDALRasterBand*::GetColorInterpretation
    - cpl::down_cast<GTiffRasterBand *>
    - GDALRasterBand*::GetMetadata
    - GDALDataset*::GetRasterBand
    - GDALRasterBand*::GetDescription
    - STARTS_WITH_CI
    - CPLDestroyXMLNode
    - GTiffGetJXLLossless
    - CPLSPrintf
    - CPLFree
    - GDALDataset*::GetMetadata
    - auto::GetTargetLinearUnits
    - cpl::Iterate
    - AppendMetadataItem
    - CSLFetchNameValueDef
    - CSLDestroy
    - GDALMultiDomainMetadata::SetMetadata
    - EQUAL
    - CPLsnprintf
    - TIFFGetField
    - CSLFindString
    - auto::IsCompound
    - GDALGetColorInterpretationName
    - TIFFSetField
    - GTiffGetJXLDistance
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::WriteMetadata(GDALDataset *poSrcDS, TIFF *l_hTIFF,\n
      \                                bool bSrcIsGeoTIFF, GTiffProfile eProfile,\n
      \                                const char *pszTIFFFilename,\n                                 CSLConstList
      papszCreationOptions,\n                                 bool bExcludeRPBandIMGFileWriting)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPamFlags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4456,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4462,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4473,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4473,1
    - Dst: GDALMultiDomainMetadata*::GetDomainList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4482,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4488,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4489,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4490,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4491,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4492,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4495,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4499,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4500,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4501,1
    - Dst: CSLRemoveStrings
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4502,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4506,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4508,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4511,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4521,1
    - Dst: GTiffRasterBand*::GetOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4521,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetScale
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4522,1
    - Dst: GTiffRasterBand*::GetScale
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4522,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetUnitType
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4523,1
    - Dst: GTiffRasterBand*::GetUnitType
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4523,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4524,1
    - Dst: GTiffRasterBand*::GetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4524,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::SetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4527,1
    - Dst: GTiffRasterBand*::GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4528,1
    - Dst: MarkPamDirty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4532,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4453
    functionDepth: 1
    functionLinenumber: 4453
    functionLinenumberEnd: 4533
    functionName: GTiffDataset::PushMetadataToPam
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - GTiffRasterBand*::GetOffset
    - CSLRemoveStrings
    - GetRasterCount
    - EQUALN
    - GTiffRasterBand*::GDALPamRasterBand::SetOffset
    - GTiffRasterBand*::GetDescription
    - strlen
    - GTiffRasterBand*::GDALPamRasterBand::SetScale
    - GTiffRasterBand*::GDALPamRasterBand::SetColorInterpretation
    - GTiffRasterBand*::GetColorInterpretation
    - STARTS_WITH_CI
    - GTiffRasterBand*::GDALPamRasterBand::SetMetadata
    - cpl::down_cast<GTiffRasterBand *>
    - MarkPamDirty
    - GTiffRasterBand*::GetScale
    - GTiffRasterBand*::GetUnitType
    - CSLDestroy
    - GTiffRasterBand*::GDALPamRasterBand::SetUnitType
    - EQUAL
    - GDALMultiDomainMetadata*::GetDomainList
    - CSLDuplicate
    - GTiffRasterBand*::GDALPamRasterBand::SetDescription
    - GetPamFlags
    - GDALPamDataset::SetMetadata
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::PushMetadataToPam()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4543,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hTIFF
    - dfNoData
    argTypes:
    - TIFF*
    - double
    constantsTouched: []
    func_position:
      end: 4544
      start: 4539
    functionDepth: 0
    functionLinenumber: 4539
    functionLinenumberEnd: 4544
    functionName: GTiffDataset::WriteNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - CPLString::c_str
    - TIFFSetField
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WriteNoDataValue(TIFF *hTIFF, double dfNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4549,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4550,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hTIFF
    - nNoData
    argTypes:
    - TIFF*
    - int64_t
    constantsTouched: []
    func_position:
      end: 4551
      start: 4546
    functionDepth: 1
    functionLinenumber: 4546
    functionLinenumberEnd: 4551
    functionName: GTiffDataset::WriteNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - static_cast<GIntBig>
    - TIFFSetField
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WriteNoDataValue(TIFF *hTIFF, int64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4556,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4557,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hTIFF
    - nNoData
    argTypes:
    - TIFF*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 4558
      start: 4553
    functionDepth: 1
    functionLinenumber: 4553
    functionLinenumberEnd: 4558
    functionName: GTiffDataset::WriteNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - static_cast<GUIntBig>
    - TIFFSetField
    - CPLSPrintf
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::WriteNoDataValue(TIFF *hTIFF, uint64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l_hTIFF
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 4568
      start: 4564
    functionDepth: 1
    functionLinenumber: 4564
    functionLinenumberEnd: 4568
    functionName: GTiffDataset::UnsetNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - TIFFUnsetField
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::UnsetNoDataValue(TIFF *l_hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4618,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4620,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4647,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4652,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4680,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4690,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4697,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4725,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4759,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4763,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4767,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4772,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4773,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4774,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4787,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4787,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4789,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4789,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4791,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4791,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4794,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4795,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4796,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4796,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4814,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4819,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4827,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4827,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4834,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 85
    argCount: 4
    argNames:
    - pDS
    - l_hTIFF
    - papszParamList
    - l_nBitsPerSample
    argTypes:
    - GTiffDataset*
    - TIFF*
    - char**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4837
      start: 4588
    functionDepth: 1
    functionLinenumber: 4588
    functionLinenumberEnd: 4837
    functionName: GTiffDataset::SaveICCProfile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - static_cast<uint16_t>
    - TIFFSetField
    - CSLTokenizeString2
    - CPLStringList::size
    - CPLFree
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::SaveICCProfile(GTiffDataset *pDS, TIFF *l_hTIFF,\n
      \                                 char **papszParamList,\n                                  uint32_t
      l_nBitsPerSample)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4845,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4848,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4855
      start: 4839
    functionDepth: 1
    functionLinenumber: 4839
    functionLinenumberEnd: 4855
    functionName: GTiffGetLZMAPreset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<signed char>
    - atoi
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetLZMAPreset(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4863,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4866,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4872
      start: 4857
    functionDepth: 1
    functionLinenumber: 4857
    functionLinenumberEnd: 4872
    functionName: GTiffGetZSTDPreset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<signed char>
    - atoi
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetZSTDPreset(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4880,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4886,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4898,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4904
      start: 4874
    functionDepth: 1
    functionLinenumber: 4874
    functionLinenumberEnd: 4904
    functionName: GTiffGetZLevel
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<signed char>
    - atoi
    - CPLDebug
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetZLevel(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4912,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4915,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4922
      start: 4906
    functionDepth: 1
    functionLinenumber: 4906
    functionLinenumberEnd: 4922
    functionName: GTiffGetJpegQuality
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<signed char>
    - atoi
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetJpegQuality(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4926,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4926,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4927,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4929
      start: 4924
    functionDepth: 1
    functionLinenumber: 4924
    functionLinenumberEnd: 4929
    functionName: GTiffGetJpegTablesMode
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - CPLSPrintf
    - CSLFetchNameValueDef
    - atoi
    linkageType: ''
    returnType: signed char
    signature: signed char GTiffGetJpegTablesMode(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4943,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4946,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4950,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4954,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4959,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4966,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4971,1
    - Dst: static_cast<GTiffDataset::MaskOffset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4976,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4977,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4992,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:4996,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5000,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5003,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5010,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - hTIFF
    - papszOptions
    argTypes:
    - TIFF*
    - char**
    constantsTouched: []
    func_position:
      end: 5014
      start: 4935
    functionDepth: 1
    functionLinenumber: 4935
    functionLinenumberEnd: 5014
    functionName: GetDiscardLsbOption
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - static_cast<uint64_t>
    - static_cast<GTiffDataset::MaskOffset *>
    - TIFFGetField
    - VSIFree
    - TIFFGetFieldDefaulted
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: GTiffDataset::MaskOffset
    signature: "GTiffDataset::MaskOffset *GetDiscardLsbOption(TIFF *hTIFF,\n                                                     char
      **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::GetDiscardLsbOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 5019
      start: 5016
    functionDepth: 1
    functionLinenumber: 5016
    functionLinenumberEnd: 5019
    functionName: GTiffDataset::GetDiscardLsbOption
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - GTiffDataset::GetDiscardLsbOption
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::GetDiscardLsbOption(char **papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5030,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5032,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5034,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pszProfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 5041
      start: 5025
    functionDepth: 1
    functionLinenumber: 5025
    functionLinenumberEnd: 5041
    functionName: GetProfile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: GTiffProfile
    signature: GTiffProfile GetProfile(const char *pszProfile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5061,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5068,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5079,1
    - Dst: GetProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5091,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5091,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5098,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5101,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5110,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5113,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5131,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5131,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5142,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5144,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5148,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5154,1
    - Dst: GTIFFGetCompressionMethod
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5170,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5193,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5205,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5214,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5229,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5233,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5233,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5253,1
    - Dst: GDALGetDataTypeSizeBits
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5255,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5260,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5262,1
    - Dst: GDALGetDataTypeSizeBits
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5263,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5270,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5273,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5278,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5281,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5295,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5298,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5316,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5321,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5332,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5341,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5344,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5349,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5350,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5367,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5378,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5399,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5407,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5437,1
    - Dst: S_ISFIFO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5439,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5445,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5445,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5448,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5452,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5454,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5462,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5468,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5469,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5495,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5501,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5508,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5512,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5520,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5530,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5547,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5550,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5550,1
    - Dst: VSIGetDiskFreeSpace
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5553,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5553,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5556,1
    - Dst: CPLFormatReadableFileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5562,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5562,1
    - Dst: CPLFormatReadableFileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5564,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5579,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5582,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5586,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5590,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5598,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5600,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5614,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5616,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5618,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5620,1
    - Dst: VSIErrorReset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5622,1
    - Dst: VSIFOpenExL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5623,1
    - Dst: VSIToCPLErrorWithMsg
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5626,1
    - Dst: std::string
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5627,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5633,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5636,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5637,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5641,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5641,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5651,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5652,1
    - Dst: TIFFCreateDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5654,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5663,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5665,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5674,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5675,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5676,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5679,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5694,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5695,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5696,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5707,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5708,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5709,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5711,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5713,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5717,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5723,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5728,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5730,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5733,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5735,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5738,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5746,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5749,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5750,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5750,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5756,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5758,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5759,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5759,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5768,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5773,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5774,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5774,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5778,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5783,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5785,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5787,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5790,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5792,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5795,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5797,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5802,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5806,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5811,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5816,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5825,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5834,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5835,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5840,1
    - Dst: GTiffGetAlphaValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5856,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5856,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5862,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5864,1
    - Dst: GTiffDataset::SaveICCProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5870,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5876,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5882,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5884,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5887,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5889,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5892,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5893,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5893,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5905,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5906,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5908,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5909,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5909,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5920,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5926,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5927,1
    - Dst: GTiffSetDeflateSubCodec
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5931,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5934,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5937,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5939,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5943,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5946,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5952,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5954,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5955,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5956,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5960,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5962,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5965,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5986,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5988,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5990,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5995,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5996,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:5997,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6001,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6003,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6004,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6005,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6014,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6015,1
    - Dst: GTiffWriteJPEGTables
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6017,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6018,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6019,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6020,1
    CyclomaticComplexity: 179
    EdgeCount: 179
    ICount: 413
    argCount: 12
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - l_nBands
    - eType
    - dfExtraSpaceForOverviews
    - nColorTableMultiplier
    - papszParamList
    - pfpL
    - l_osTmpFilename
    - bCreateCopy
    - bTileInterleavingOut
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - double
    - int
    - char**
    - VSILFILE**
    - CPLString
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 6026
      start: 5051
    functionDepth: 2
    functionLinenumber: 5051
    functionLinenumberEnd: 6026
    functionName: GTiffDataset::CreateLL
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - VSIGetDiskFreeSpace
    - atoi
    - GTIFFSupportsPredictor
    - CPLDebug
    - static_cast<unsigned short>
    - GTIFFGetCompressionMethod
    - CPLError
    - VSIStatExL
    - CPLGetConfigOption
    - CPLFormatReadableFileSize
    - CSLFetchNameValue
    - GTiffGetAlphaValue
    - GDALGetDataTypeName
    - XTIFFClose
    - GTiffDataset::ClampCTEntry
    - CPLGetDirnameSafe
    - CPLString::c_str
    - GTiffSetDeflateSubCodec
    - strcpy
    - VSIErrorReset
    - S_ISFIFO
    - ReportError
    - GTiffOneTimeInit
    - CPLTestBool
    - GDALGetDataTypeSizeBits
    - CPLFetchBool
    - static_cast<uint64_t>
    - TIFFFreeDirectory
    - CPLGetLastErrorNo
    - strcat
    - CPL_IGNORE_RET_VAL
    - CPLFree
    - VSI_TIFFOpen
    - VSIFCloseL
    - CSLFetchNameValueDef
    - VSIFOpenExL
    - VSIToCPLErrorWithMsg
    - TIFFCreateDirectory
    - GetProfile
    - EQUAL
    - GTiffDataset::SaveICCProfile
    - GTiffWriteJPEGTables
    - TIFFSetField
    - std::string
    - VSIMemGenerateHiddenFilename
    linkageType: ''
    returnType: TIFF
    signature: "TIFF *GTiffDataset::CreateLL(const char *pszFilename, int nXSize,
      int nYSize,\n                             int l_nBands, GDALDataType eType,\n
      \                            double dfExtraSpaceForOverviews,\n                             int
      nColorTableMultiplier, char **papszParamList,\n                             VSILFILE
      **pfpL, CPLString &l_osTmpFilename,\n                             bool bCreateCopy,
      bool &bTileInterleavingOut)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - paby
    - byMarker
    - nLen
    - pnLenTable
    argTypes:
    - GByte*
    - GByte
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 6061
      start: 6034
    functionDepth: 0
    functionLinenumber: 6034
    functionLinenumberEnd: 6061
    functionName: GTIFFFindNextTable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: "GByte *GTIFFFindNextTable(const GByte *paby, GByte byMarker,\n                                       int
      nLen, int *pnLenTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6078,1
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6080,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6087,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6091,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6092,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - paby1
    - nLen1
    - paby2
    - nLen2
    argTypes:
    - GByte*
    - int
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 6097
      start: 6069
    functionDepth: 0
    functionLinenumber: 6069
    functionLinenumberEnd: 6097
    functionName: GTIFFQuantizationTablesEqual
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - static_cast<int>
    - GTIFFFindNextTable
    linkageType: ''
    returnType: bool
    signature: "bool GTIFFQuantizationTablesEqual(const GByte *paby1, int nLen1,\n
      \                                        const GByte *paby2, int nLen2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMD5Init
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6109,1
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6114,1
    - Dst: CPLMD5Update
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6118,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6120,1
    - Dst: CPLMD5Final
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6125,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - md5JPEGQuantTable
    - pabyJPEGTable
    - nJPEGTableSize
    argTypes:
    - uint8_t[][]
    - GByte*
    - int
    constantsTouched: []
    func_position:
      end: 6135
      start: 6101
    functionDepth: 1
    functionLinenumber: 6101
    functionLinenumberEnd: 6135
    functionName: GuessJPEGQualityFromMD5
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLMD5Init
    - memcmp
    - CPLMD5Update
    - CPLMD5Final
    - GTIFFFindNextTable
    linkageType: ''
    returnType: int
    signature: "int GuessJPEGQualityFromMD5(const uint8_t md5JPEGQuantTable[][16],\n
      \                                  const GByte *const pabyJPEGTable,\n                                   int
      nJPEGTableSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6140,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6143,1
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6152,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6152,1
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6156,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6156,1
    - Dst: GuessJPEGQualityFromMD5
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6168,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6169,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6170,1
    - Dst: GuessJPEGQualityFromMD5
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6184,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6185,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6186,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6193,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6196,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6199,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6201,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6204,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6207,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6215,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6218,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6219,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6221,1
    - Dst: GTiffDataset::CreateLL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6224,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6226,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6228,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6234,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6235,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6236,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6239,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6239,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6241,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6247,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6251,1
    - Dst: GTIFFQuantizationTablesEqual
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6254,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6255,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6256,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6262,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6263,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6263,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6266,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6267,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 2
    argNames:
    - bOutHasQuantizationTable
    - bOutHasHuffmanTable
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 6270
      start: 6137
    functionDepth: 3
    functionLinenumber: 6137
    functionLinenumberEnd: 6270
    functionName: GTiffDataset::GuessJPEGQuality
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - static_cast<const GByte *>
    - GTIFFFindNextTable
    - CPLGetConfigOption
    - XTIFFClose
    - CPLPopErrorHandler
    - TIFFWriteEncodedStrip
    - CPLTestBool
    - static_cast<int>
    - GTIFFQuantizationTablesEqual
    - TIFFSetDirectory
    - VSIUnlink
    - CPLSPrintf
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - static_cast<GByte *>
    - TIFFWriteDirectory
    - GTiffDataset::CreateLL
    - VSIFCloseL
    - TIFFWriteCheck
    - GuessJPEGQualityFromMD5
    - CSLDestroy
    - TIFFGetField
    - TIFFSetField
    - CPLPushErrorHandler
    - VSIMemGenerateHiddenFilename
    - CSLSetNameValue
    linkageType: ''
    returnType: int
    signature: "int GTiffDataset::GuessJPEGQuality(bool &bOutHasQuantizationTable,\n
      \                                  bool &bOutHasHuffmanTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6281,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6282,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6283,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6293,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6300,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6301,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6303,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6319,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6333,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6340,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - nQuality
    - bHasQuantizationTable
    - bHasHuffmanTable
    argTypes:
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 6360
      start: 6276
    functionDepth: 1
    functionLinenumber: 6276
    functionLinenumberEnd: 6360
    functionName: GTiffDataset::SetJPEGQualityAndTablesModeFromFile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - CPLDebug
    - TIFFGetField
    - TIFFSetField
    - TIFFIsTiled
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::SetJPEGQualityAndTablesModeFromFile(\n    int nQuality,
      bool bHasQuantizationTable, bool bHasHuffmanTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::CreateLL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6388,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6399,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6405,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6406,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6409,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6421,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6422,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6432,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6433,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6436,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6438,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6439,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6441,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6443,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6444,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6448,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6454,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6454,1
    - Dst: GTiffDataset*::ComputeBlocksPerColRowAndBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6457,1
    - Dst: GetProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6463,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6463,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6472,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6472,1
    - Dst: GTiffDataset*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6476,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6477,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6479,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6486,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6490,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6503,1
    - Dst: std::make_unique<GDALColorTable>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6506,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6513,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6514,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6515,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6516,1
    - Dst: GTiffDataset*::m_poColorTable::SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6518,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6526,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6536,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6536,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6538,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6538,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6548,1
    - Dst: GTiffGetZLevel
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6550,1
    - Dst: GTiffGetLZMAPreset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6551,1
    - Dst: GTiffGetZSTDPreset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6552,1
    - Dst: GTiffGetWebPLevel
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6553,1
    - Dst: GTiffGetWebPLossless
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6554,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6556,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6558,1
    - Dst: GTiffGetJpegQuality
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6562,1
    - Dst: GTiffGetJpegTablesMode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6563,1
    - Dst: GTiffGetLERCMaxZError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6564,1
    - Dst: GTiffGetLERCMaxZErrorOverview
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6565,1
    - Dst: GTiffGetJXLLossless
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6567,1
    - Dst: GTiffGetJXLEffort
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6568,1
    - Dst: GTiffGetJXLDistance
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6569,1
    - Dst: GTiffGetJXLAlphaDistance
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6570,1
    - Dst: GTiffDataset*::InitCreationOrOpenOptions
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6572,1
    - Dst: GTiffDataset*::SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6583,1
    - Dst: GTiffRasterBand::GTiffRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6583,1
    - Dst: GTiffDataset*::SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6587,1
    - Dst: GTiffOddBitsBand::GTiffOddBitsBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6587,1
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6588,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6589,1
    - Dst: GTiffDataset*::GetDiscardLsbOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6594,1
    - Dst: GTiffDataset*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6597,1
    - Dst: GTiffDataset*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6599,1
    - Dst: GTiffDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6601,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 98
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - l_nBands
    - eType
    - papszParamList
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 6604
      start: 6368
    functionDepth: 3
    functionLinenumber: 6368
    functionLinenumberEnd: 6604
    functionName: GTiffDataset::Create
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset*::m_poColorTable::SetColorEntry
    - GTiffGetWebPLossless
    - GTiffGetWebPLevel
    - GTiffDataset*::InitCreationOrOpenOptions
    - CPLString
    - CPLError
    - GTiffGetJXLAlphaDistance
    - CPLGetConfigOption
    - CSLFetchNameValue
    - GTiffGetJpegTablesMode
    - GTiffDataset*::SetMetadataItem
    - CPLStrdup
    - GTiffDataset*::SetBand
    - static_cast<short>
    - GTiffOddBitsBand::GTiffOddBitsBand
    - GTiffGetJXLEffort
    - GTiffGetZLevel
    - GTiffDataset*::GetDiscardLsbOption
    - CPLTestBool
    - static_cast<int>
    - std::make_unique<GDALColorTable>
    - CPLFetchBool
    - VSIUnlink
    - GTiffGetJXLLossless
    - static_cast<uint16_t>
    - min
    - VSIFOpenL
    - GTiffDataset*::ComputeBlocksPerColRowAndBand
    - GTiffRasterBand::GTiffRasterBand
    - GTiffDataset*::GetRasterBand
    - GTiffGetJpegQuality
    - GTiffDataset::CreateLL
    - GTiffGetLERCMaxZError
    - GTiffDataset*::oOvManager::Initialize
    - CSLFetchNameValueDef
    - GTiffGetZSTDPreset
    - GetProfile
    - CSLDuplicate
    - TIFFGetField
    - GTiffDataset::GTiffDataset
    - TIFFSetField
    - GTiffGetLZMAPreset
    - TIFFIsTiled
    - GTiffGetLERCMaxZErrorOverview
    - GTiffGetJXLDistance
    - memcpy
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GTiffDataset::Create(const char *pszFilename, int nXSize,\n
      \                                 int nYSize, int l_nBands, GDALDataType eType,\n
      \                                 char **papszParamList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6618,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6621,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6622,1
    - Dst: cpl::fits_on<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6623,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6635,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6636,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6666,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6667,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6670,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6673,1
    - Dst: GTiffDataset*::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6678,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6684,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6684,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6717,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6718,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6721,1
    - Dst: GTiffDataset*::m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6730,1
    - Dst: GTiffDataset*::m_poMaskDS::FlushBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6733,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6738,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6738,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6773,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6774,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6781,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6785,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6787,1
    - Dst: GTiffDataset*::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6794,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6796,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6806,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6809,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6810,1
    - Dst: GTiffDataset*::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6815,1
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6830,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6834,1
    - Dst: auto::GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6836,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6838,1
    - Dst: auto::MarkDirty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6841,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6842,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6851,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6854,1
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6862,1
    - Dst: GTiffDataset*::FlushBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6865,1
    - Dst: auto::MarkClean
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6869,1
    - Dst: auto::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6870,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6879,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6880,1
    - Dst: GDALRasterBand*::RasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6883,1
    - Dst: GTiffDataset*::m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6892,1
    - Dst: GTiffDataset*::m_poMaskDS::FlushBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6895,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6903,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6903,1
    - Dst: GTiffDataset*::FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6912,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:6913,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 116
    argCount: 5
    argNames:
    - poDstDS
    - poSrcDS
    - poSrcMaskBand
    - pfnProgress
    - pProgressData
    argTypes:
    - GTiffDataset*
    - GDALDataset*
    - GDALRasterBand*
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 6916
      start: 6610
    functionDepth: 1
    functionLinenumber: 6610
    functionLinenumberEnd: 6916
    functionName: GTiffDataset::CopyImageryAndMask
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - GTiffDataset*::FlushBlockBuf
    - GDALRasterBand*::RasterIO
    - pfnProgress
    - GDALDataset*::RasterIO
    - cpl::fits_on<int>
    - auto::DropLock
    - static_cast<GSpacing>
    - GTiffDataset*::FlushCache
    - GDALDataset*::GetRasterBand
    - CPLAssert
    - static_cast<GByte *>
    - VSI_MALLOC3_VERBOSE
    - GTiffDataset*::m_poMaskDS::GetRasterBand
    - static_cast<double>
    - GTiffDataset*::GetRasterBand
    - static_cast<size_t>
    - auto::MarkClean
    - auto::GetDataRef
    - memset
    - VSIFree
    - GTiffDataset*::m_poMaskDS::FlushBlockBuf
    - auto::MarkDirty
    - GTiffDataset*::WriteEncodedTileOrStrip
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::CopyImageryAndMask(GTiffDataset *poDstDS,\n                                        GDALDataset
      *poSrcDS,\n                                        GDALRasterBand *poSrcMaskBand,\n
      \                                       GDALProgressFunc pfnProgress,\n                                        void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8588,1
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8594,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8595,1
    - Dst: GetPamFlags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8601,1
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8603,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8607,1
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8610,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8617,1
    - Dst: GDALPamDataset::SetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8618,1
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8623,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8625,1
    - Dst: Clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8629,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8634,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - poSRS
    argTypes:
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 8639
      start: 8583
    functionDepth: 2
    functionLinenumber: 8583
    functionLinenumberEnd: 8639
    functionName: GTiffDataset::SetSpatialRef
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - IsEmpty
    - Clear
    - CPLDebug
    - OGRSpatialReference*::IsEmpty
    - SetAxisMappingStrategy
    - GDALPamDataset::GetSpatialRef
    - GTiffDataset::LookForProjection
    - GetPamFlags
    - GDALPamDataset::SetSpatialRef
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::SetSpatialRef(const OGRSpatialReference *poSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8650,1
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8656,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8661,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8663,1
    - Dst: clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8667,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8679,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8684,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8685,1
    - Dst: GetPamFlags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8686,1
    - Dst: GDALPamDataset::SetGeoTransform
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8688,1
    - Dst: GDALPamDataset::DeleteGeoTransform
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8693,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8699,1
    - Dst: GDALPamDataset::SetGeoTransform
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8700,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8705,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 8710
      start: 8645
    functionDepth: 2
    functionLinenumber: 8645
    functionLinenumberEnd: 8710
    functionName: GTiffDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - empty
    - CPLFetchBool
    - CPLDebug
    - GDALPamDataset::DeleteGeoTransform
    - GDALPamDataset::SetGeoTransform
    - GetPamFlags
    - memcpy
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8720,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8721,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8725,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8731,1
    - Dst: GetPamFlags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8744,1
    - Dst: GDALPamDataset::SetGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8746,1
    - Dst: GDALPamDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8752,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8752,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8756,1
    - Dst: GDALPamDataset::SetGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8761,1
    - Dst: GDALPamDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8764,1
    - Dst: GDALPamDataset::SetGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8767,1
    - Dst: static_cast<const OGRSpatialReference *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8769,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8776,1
    - Dst: GDALPamDataset::SetGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8777,1
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8782,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8784,1
    - Dst: Clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8788,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8793,1
    - Dst: gdal::GCP::fromC
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8796,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - nGCPCountIn
    - pasGCPListIn
    - poGCPSRS
    argTypes:
    - int
    - GDAL_GCP*
    - OGRSpatialReference*
    constantsTouched: []
    func_position:
      end: 8800
      start: 8716
    functionDepth: 2
    functionLinenumber: 8716
    functionLinenumberEnd: 8800
    functionName: GTiffDataset::SetGCPs
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - static_cast<const OGRSpatialReference *>
    - IsEmpty
    - empty
    - Clear
    - gdal::GCP::fromC
    - CPLDebug
    - GDALPamDataset::GetGCPCount
    - GDALPamDataset::SetGCPs
    - OGRSpatialReference*::IsEmpty
    - SetAxisMappingStrategy
    - GTiffDataset::LookForProjection
    - GetPamFlags
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::SetGCPs(int nGCPCountIn, const GDAL_GCP *pasGCPListIn,\n
      \                            const OGRSpatialReference *poGCPSRS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8808,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8812,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8821,1
    - Dst: GTiffDataset::LoadMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8825,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8826,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8830,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8834,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8838,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8839,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8842,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8843,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8849,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8851,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8856,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8861,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8865,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8871,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8874,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8879,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 8882
      start: 8805
    functionDepth: 2
    functionLinenumber: 8805
    functionLinenumberEnd: 8882
    functionName: GTiffDataset::SetMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - TIFFUnsetField
    - GTiffDataset::SetMetadata
    - GDALPamDataset::GetMetadata
    - CPLDebug
    - EQUAL
    - TIFFSetField
    - GTiffDataset::LookForProjection
    - CSLCount
    - GDALPamDataset::SetMetadata
    - GTiffDataset::LoadMetadata
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - CSLFetchNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8892,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8896,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8905,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8909,1
    - Dst: GDALPamDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8913,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8914,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8917,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8918,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8920,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8926,1
    - Dst: GDALPamDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8929,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8934,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 8938
      start: 8888
    functionDepth: 2
    functionLinenumber: 8888
    functionLinenumberEnd: 8938
    functionName: GTiffDataset::SetMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - GDALPamDataset::SetMetadataItem
    - CPLDebug
    - EQUAL
    - GTiffDataset::LookForProjection
    - GTiffDataset::SetMetadataItem
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - GDALPamDataset::GetMetadataItem
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::SetMetadataItem(const char *pszName, const char
      *pszValue,\n                                     const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8946,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8950,1
    - Dst: GTiffDataset::MustCreateInternalMask
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8954,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8958,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8965,1
    - Dst: GDALGetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8965,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8965,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8976,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8978,1
    - Dst: GTiffDataset::CreateMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8982,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8988,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:8997,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9003,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9011,1
    - Dst: GTIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9013,1
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9022,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9027,1
    - Dst: ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9030,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9031,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9032,1
    - Dst: GTiffDataset::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9033,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9033,1
    - Dst: GTiffDataset::CreateMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9044,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - nFlagsIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 9045
      start: 8944
    functionDepth: 4
    functionLinenumber: 8944
    functionLinenumberEnd: 9045
    functionName: GTiffDataset::CreateMaskBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - GDALGetDriverByName
    - GTiffDataset::MustCreateInternalMask
    - GTIFFWriteDirectory
    - GDALGetMetadataItem
    - GetAccess
    - CPLTestBool
    - GTiffDataset::ReloadDirectory
    - GTiffDataset::CreateMaskBand
    - GTiffDataset::ScanDirectories
    - TIFFGetField
    - strstr
    - GTiffDataset::FlushDirectory
    - GTiffDataset::GTiffDataset
    - GTiffDataset::OpenOffset
    - VSI_TIFFOpenChild
    - CPLGetConfigOption
    - ShareLockWithParentDataset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::CreateMaskBand(int nFlagsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9053,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9054
      start: 9051
    functionDepth: 1
    functionLinenumber: 9051
    functionLinenumberEnd: 9054
    functionName: GTiffDataset::MustCreateInternalMask
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - CPLGetConfigOption
    - CPLTestBool
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::MustCreateInternalMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9062,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9066,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9074,1
    - Dst: GTiffRasterBand::CreateMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9077,1
    - Dst: GTiffDataset::CreateMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - nFlagsIn
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 9081
      start: 9060
    functionDepth: 5
    functionLinenumber: 9060
    functionLinenumberEnd: 9081
    functionName: GTiffRasterBand::CreateMaskBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - CPLTestBool
    - GTiffRasterBand::CreateMaskBand
    - GTiffDataset::CreateMaskBand
    - ScanDirectories
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::CreateMaskBand(int nFlagsIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9094,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9101,1
    - Dst: static_cast<unsigned short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp:9106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - iColor
    - iComp
    - nCTEntryVal
    - nMultFactor
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 9107
      start: 9087
    functionDepth: 1
    functionLinenumber: 9087
    functionLinenumberEnd: 9107
    functionName: GTiffDataset::ClampCTEntry
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_write.cpp
    functionUses: 2
    functionsReached:
    - CPLError
    - static_cast<unsigned short>
    linkageType: ''
    returnType: unsigned short
    signature: "unsigned short GTiffDataset::ClampCTEntry(int iColor, int iComp,\n
      \                                                      int nCTEntryVal,\n                                                       int
      nMultFactor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_DISALLOW_COPY_ASSIGN
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.h:34,1
    - Dst: GTiffRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 162
    functionName: GDALPamRasterBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband.h
    functionUses: 0
    functionsReached:
    - GTiffRasterBand
    - CPL_DISALLOW_COPY_ASSIGN
    linkageType: ''
    returnType: class GTiffRasterBand
    signature: class GTiffRasterBand GDALPamRasterBand
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTHFlushBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:100,1
    - Dst: static_cast<thandle_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - psGTH
    argTypes:
    - GDALTiffHandle*
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: SetActiveGTH
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - GTHFlushBuffer
    - static_cast<thandle_t>
    linkageType: ''
    returnType: void
    signature: void SetActiveGTH(GDALTiffHandle *psGTH)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:108,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - th
    - nOffset
    - nSize
    argTypes:
    - thandle_t
    - vsi_l_offset
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: VSI_TIFFGetCachedRange
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALTiffHandle *>
    - static_cast<GByte *>
    linkageType: ''
    returnType: void
    signature: void *VSI_TIFFGetCachedRange(thandle_t th, vsi_l_offset nOffset, size_t
      nSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:126,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:131,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:136,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:137,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:143,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:144,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:144,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - th
    - buf
    - size
    argTypes:
    - thandle_t
    - tdata_t
    - tsize_t
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: _tiffReadProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - VSIFSeekL
    - CPLDebug
    - VSIFTellL
    - reinterpret_cast<GDALTiffHandle *>
    - VSIFReadL
    - memcpy
    linkageType: ''
    returnType: tsize_t
    signature: tsize_t _tiffReadProc(thandle_t th, tdata_t buf, tsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:151,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:156,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:161,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: GTHFlushBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 1
    functionsReached:
    - VSIFWriteL
    - VSIStrerror
    - static_cast<GDALTiffHandle *>
    - TIFFErrorExt
    linkageType: ''
    returnType: bool
    signature: bool GTHFlushBuffer(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:170,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:171,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:177,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:183,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:185,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:194,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:196,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:201,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:201,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:210,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:213,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - th
    - buf
    - size
    argTypes:
    - thandle_t
    - tdata_t
    - tsize_t
    constantsTouched: []
    func_position:
      end: 221
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 221
    functionName: _tiffWriteProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<GByte *>
    - VSIFWriteL
    - reinterpret_cast<GDALTiffHandle *>
    - memcpy
    - VSIStrerror
    - SetActiveGTH
    - TIFFErrorExt
    linkageType: ''
    returnType: tsize_t
    signature: tsize_t _tiffWriteProc(thandle_t th, tdata_t buf, tsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:225,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:226,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:234,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:237,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:239,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:239,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:240,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:243,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:244,1
    - Dst: GTHFlushBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:247,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:251,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:253,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:253,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:257,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:257,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - th
    - 'off'
    - whence
    argTypes:
    - thandle_t
    - toff_t
    - int
    constantsTouched: []
    func_position:
      end: 260
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 260
    functionName: _tiffSeekProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - GTHFlushBuffer
    - VSIFSeekL
    - static_cast<toff_t>
    - VSIFTellL
    - reinterpret_cast<GDALTiffHandle *>
    - VSIStrerror
    - SetActiveGTH
    - TIFFErrorExt
    linkageType: ''
    returnType: toff_t
    signature: toff_t _tiffSeekProc(thandle_t th, toff_t off, int whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:267,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:268,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:269,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:276,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:277,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:278,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:279,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - psGTH
    argTypes:
    - GDALTiffHandle*
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: FreeGTH
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - assert
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void FreeGTH(GDALTiffHandle *psGTH)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:285,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:286,1
    - Dst: GTHFlushBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:287,1
    - Dst: FreeGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: _tiffCloseProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - SetActiveGTH
    - GTHFlushBuffer
    - FreeGTH
    - reinterpret_cast<GDALTiffHandle *>
    linkageType: ''
    returnType: int
    signature: int _tiffCloseProc(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:295,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:296,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:300,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:303,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:304,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:304,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:307,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:307,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:308,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: _tiffSizeProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - CPL_IGNORE_RET_VAL
    - VSIFTellL
    - static_cast<toff_t>
    - reinterpret_cast<GDALTiffHandle *>
    - SetActiveGTH
    linkageType: ''
    returnType: toff_t
    signature: toff_t _tiffSizeProc(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:315,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - th
    - pbase
    - psize
    argTypes:
    - thandle_t
    - tdata_t*
    - toff_t*
    constantsTouched: []
    func_position:
      end: 325
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 325
    functionName: _tiffMapProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<toff_t>
    - reinterpret_cast<GDALTiffHandle *>
    linkageType: ''
    returnType: int
    signature: int _tiffMapProc(thandle_t th, tdata_t *pbase, toff_t *psize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: _tiffUnmapProc
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _tiffUnmapProc(thandle_t /* th */, tdata_t /* base */,\n                           toff_t
      /* size */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:334,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:335,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: VSI_TIFFGetVSILFile
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 2
    functionsReached:
    - VSI_TIFFFlushBufferedWrite
    - SetActiveGTH
    - reinterpret_cast<GDALTiffHandle *>
    linkageType: ''
    returnType: VSILFILE
    signature: VSILFILE *VSI_TIFFGetVSILFile(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:342,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:343,1
    - Dst: GTHFlushBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: VSI_TIFFFlushBufferedWrite
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 1
    functionsReached:
    - SetActiveGTH
    - GTHFlushBuffer
    - reinterpret_cast<GDALTiffHandle *>
    linkageType: ''
    returnType: int
    signature: int VSI_TIFFFlushBufferedWrite(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - th
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: VSI_TIFFHasCachedRanges
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GDALTiffHandle *>
    linkageType: ''
    returnType: int
    signature: int VSI_TIFFHasCachedRanges(thandle_t th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:356,1
    - Dst: _tiffSeekProc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - 'off'
    - whence
    argTypes:
    - TIFF*
    - toff_t
    - int
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: VSI_TIFFSeek
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 1
    functionsReached:
    - _tiffSeekProc
    - TIFFClientdata
    linkageType: ''
    returnType: toff_t
    signature: toff_t VSI_TIFFSeek(TIFF *tif, toff_t off, int whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:362,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:363,1
    - Dst: _tiffWriteProc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:363,1
    - Dst: const_cast<tdata_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - buffer
    - buffersize
    argTypes:
    - TIFF*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: VSI_TIFFWrite
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - TIFFClientdata
    - const_cast<tdata_t>
    - _tiffWriteProc
    linkageType: ''
    returnType: int
    signature: int VSI_TIFFWrite(TIFF *tif, const void *buffer, size_t buffersize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:371,1
    - Dst: static_cast<void **>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:375,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:376,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:377,1
    - Dst: static_cast<vsi_l_offset *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:379,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:379,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:381,1
    - Dst: static_cast<size_t *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:384,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:385,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - th
    - nRanges
    - ppData
    - panOffsets
    - panSizes
    argTypes:
    - thandle_t
    - int
    - void**
    - vsi_l_offset*
    - size_t*
    constantsTouched: []
    func_position:
      end: 388
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 388
    functionName: VSI_TIFFSetCachedRanges
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<vsi_l_offset *>
    - static_cast<size_t *>
    - static_cast<void **>
    - CPLRealloc
    - reinterpret_cast<GDALTiffHandle *>
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void VSI_TIFFSetCachedRanges(thandle_t th, int nRanges, void **ppData,\n
      \                            const vsi_l_offset *panOffsets,\n                             const
      size_t *panSizes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 401
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 401
    functionName: IsReadOnly
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsReadOnly(const char *mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:408,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:411,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:411,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:414,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:421,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - psGTH
    - pszMode
    argTypes:
    - GDALTiffHandle*
    - char*
    constantsTouched: []
    func_position:
      end: 423
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 423
    functionName: InitializeWriteBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - CPLTestBool
    - VSIMalloc
    - static_cast<GByte *>
    - VSIGetMemFileBuffer
    - STARTS_WITH
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void InitializeWriteBuffer(GDALTiffHandle *psGTH, const char *pszMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFOpenOptionsSetErrorHandlerExtR
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:428,1
    - Dst: TIFFOpenOptionsSetWarningHandlerExtR
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:429,1
    - Dst: CPLAtoGIntBig
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:437,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:440,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:450,1
    - Dst: TIFFOpenOptionsSetMaxCumulatedMemAlloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:454,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - opts
    argTypes:
    - TIFFOpenOptions*
    constantsTouched: []
    func_position:
      end: 458
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 458
    functionName: VSI_TIFFSetOpenOptions
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - CPLGetUsablePhysicalRAM
    - static_cast<tmsize_t>
    - CPLAtoGIntBig
    - TIFFOpenOptionsSetMaxCumulatedMemAlloc
    - TIFFOpenOptionsSetWarningHandlerExtR
    - TIFFOpenOptionsSetErrorHandlerExtR
    linkageType: ''
    returnType: void
    signature: void VSI_TIFFSetOpenOptions(TIFFOpenOptions *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitializeWriteBuffer
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:463,1
    - Dst: XTIFFInitialize
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:466,1
    - Dst: TIFFOpenOptionsAlloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:467,1
    - Dst: FreeGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:470,1
    - Dst: VSI_TIFFSetOpenOptions
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:473,1
    - Dst: TIFFClientOpenExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:474,1
    - Dst: reinterpret_cast<thandle_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:475,1
    - Dst: TIFFOpenOptionsFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:478,1
    - Dst: XTIFFClientOpen
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:480,1
    - Dst: reinterpret_cast<thandle_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:481,1
    - Dst: FreeGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - psGTH
    - pszMode
    argTypes:
    - GDALTiffHandle*
    - char*
    constantsTouched: []
    func_position:
      end: 489
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 489
    functionName: VSI_TIFFOpen_common
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - TIFFOpenOptionsAlloc
    - TIFFOpenOptionsFree
    - FreeGTH
    - VSI_TIFFSetOpenOptions
    - XTIFFClientOpen
    - InitializeWriteBuffer
    - XTIFFInitialize
    - reinterpret_cast<thandle_t>
    - TIFFClientOpenExt
    linkageType: ''
    returnType: TIFF
    signature: TIFF *VSI_TIFFOpen_common(GDALTiffHandle *psGTH, const char *pszMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:495,1
    - Dst: static_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:499,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:499,1
    - Dst: static_cast<GDALTiffHandleShared *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:502,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:503,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:504,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:505,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:506,1
    - Dst: VSI_TIFFOpen_common
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - name
    - mode
    - fpL
    argTypes:
    - char*
    - char*
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 514
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 514
    functionName: VSI_TIFFOpen
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 6
    functionsReached:
    - CPLStrdup
    - VSI_TIFFOpen_common
    - VSIFSeekL
    - static_cast<GDALTiffHandle *>
    - strchr
    - CPLCalloc
    - static_cast<GDALTiffHandleShared *>
    linkageType: ''
    returnType: TIFF
    signature: TIFF *VSI_TIFFOpen(const char *name, const char *mode, VSILFILE *fpL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:519,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:519,1
    - Dst: static_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:522,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:522,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:528,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:529,1
    - Dst: VSI_TIFFOpen_common
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - parent
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 539
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 539
    functionName: VSI_TIFFOpenChild
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 3
    functionsReached:
    - VSIFSeekL
    - static_cast<GDALTiffHandle *>
    - TIFFClientdata
    - reinterpret_cast<GDALTiffHandle *>
    - CPLCalloc
    - VSI_TIFFOpen_common
    - SetActiveGTH
    linkageType: ''
    returnType: TIFF
    signature: TIFF *VSI_TIFFOpenChild(TIFF *parent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:544,1
    - Dst: reinterpret_cast<GDALTiffHandle *>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:545,1
    - Dst: SetActiveGTH
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:558,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:559,1
    - Dst: TIFFOpenOptionsAlloc
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:564,1
    - Dst: VSI_TIFFSetOpenOptions
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:567,1
    - Dst: TIFFClientOpenExt
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:568,1
    - Dst: reinterpret_cast<thandle_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:569,1
    - Dst: TIFFOpenOptionsFree
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:572,1
    - Dst: XTIFFClientOpen
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:575,1
    - Dst: reinterpret_cast<thandle_t>
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:576,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/tifvsi.cpp:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 586
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 586
    functionName: VSI_TIFFReOpen
    functionSourceFile: /src/gdal/frmts/gtiff/tifvsi.cpp
    functionUses: 0
    functionsReached:
    - XTIFFClose
    - TIFFOpenOptionsAlloc
    - TIFFOpenOptionsFree
    - VSIFSeekL
    - VSI_TIFFSetOpenOptions
    - TIFFClientdata
    - XTIFFClientOpen
    - reinterpret_cast<GDALTiffHandle *>
    - reinterpret_cast<thandle_t>
    - SetActiveGTH
    - TIFFClientOpenExt
    linkageType: ''
    returnType: TIFF
    signature: TIFF *VSI_TIFFReOpen(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: GTiffSplitBand::GTiffSplitBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void GTiffSplitBand::GTiffSplitBand(GTiffDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: GTiffSplitBand::IGetDataCoverageStatus
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTiffSplitBand::IGetDataCoverageStatus(int, int, int, int, int,
      double *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:47,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:60,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:61,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:61,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:70,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:70,1
    - Dst: TIFFReadScanline
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:92,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:97,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:101,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:118,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 124
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 124
    functionName: GTiffSplitBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - TIFFReadScanline
    - static_cast<GByte *>
    - static_cast<uint16_t>
    - CPLAssert
    - Crystalize
    - TIFFScanlineSize
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffSplitBand::IReadBlock(int /* nBlockXOff */, int nBlockYOff,\n
      \                                 void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffsplitband.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: GTiffSplitBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffSplitBand::IWriteBlock(int /* nBlockXOff */, int /* nBlockYOff
      */,\n                                   void * /* pImage */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:101,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:101,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:150,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:164,1
    - Dst: GTiffRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:175,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:195,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:196,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 197
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 197
    functionName: GTiffRasterBand::GTiffRasterBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - CPLTestBool
    - GTiffRasterBand::SetMetadataItem
    - TIFFGetField
    - DIV_ROUND_UP
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::GTiffRasterBand(GTiffDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:208,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:210,1
    - Dst: begin
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:213,1
    - Dst: end
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: GTiffRasterBand::~GTiffRasterBand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - end
    - begin
    - empty
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::~GTiffRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:231,1
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:241,1
    - Dst: static_cast<CPLErr>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:256,1
    - Dst: static_cast<CPLErr>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:264,1
    - Dst: IsMultiThreadedReadCompatible
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:270,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:300,1
    - Dst: VSI_TIFFSetCachedRanges
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:301,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:301,1
    - Dst: HasOptimizedReadMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:311,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:314,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:314,1
    - Dst: BufferedDataFreer::Init
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:332,1
    - Dst: GTiffDataset*::CacheMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:333,1
    - Dst: MultiThreadedRead
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:351,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:359,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:360,1
    - Dst: GDALGetCacheMax64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:361,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:365,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:383,1
    - Dst: HasBlockCache
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:384,1
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:393,1
    - Dst: WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:407,1
    - Dst: LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:413,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:440,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:441,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:445,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:446,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:448,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:452,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:453,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:454,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:456,1
    - Dst: WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:460,1
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffrasterband.cpp:473,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 87
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 482
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 482
    functionName: GTiffRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband.cpp
    functionUses: 0
    functionsReached:
    - BufferedDataFreer::Init
    - static_cast<CPLErr>
    - static_cast<const GByte *>
    - CPLDebug
    - static_cast<GIntBig>
    - WriteEncodedTileOrStrip
    - VSI_TIFFGetVSILFile
    - VSI_TIFFSetCachedRanges
    - OGRNGWDataset::IRasterIO
    - TIFFClientdata
    - HasBlockCache
    - Crystalize
    - GDALCopyWords64
    - GDALGetDataTypeSizeBytes
    - static_cast<int>
    - IsMultiThreadedReadCompatible
    - TryOverviewRasterIO
    - GTiffDataset*::CacheMultiRange
    - GDALGetCacheMax64
    - static_cast<size_t>
    - GDALGetDataTypeSize
    - LoadBlockBuf
    - HasOptimizedReadMultiRange
    - MultiThreadedRead
    - VSIFree
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                  int nXSize, int nYSize, void *pData,\n
      \                                 int nBufXSize, int nBufYSize,\n                                  GDALDataType
      eBufType, GSpacing nPixelSpace,\n                                  GSpacing
      nLineSpace,\n                                  GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nBlockXOff
    - nBlockYOff
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: GTiffRasterBand::ComputeBlockId
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTiffRasterBand::ComputeBlockId(int nBlockXOff, int nBlockYOff)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: GTiffRGBABand::GTiffRGBABand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffRGBABand::GTiffRGBABand(GTiffDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: GTiffRGBABand::IGetDataCoverageStatus
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTiffRGBABand::IGetDataCoverageStatus(int, int, int, int, int,
      double *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: GTiffRGBABand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRGBABand::IWriteBlock(int, int, void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:58,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:61,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:69,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:76,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:85,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:86,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:98,1
    - Dst: TIFFReadRGBATileExt
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:100,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:103,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:108,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:111,1
    - Dst: TIFFReadRGBAStripExt
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:118,1
    - Dst: reinterpret_cast<uint32_t *>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:120,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:125,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:128,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:142,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:143,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:144,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:155,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:158,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:159,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:160,1
    - Dst: FillCacheForOtherBands
      Src: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp:165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 168
    functionName: GTiffRGBABand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp
    functionUses: 0
    functionsReached:
    - IsBlockAvailable
    - ReportError
    - static_cast<GPtrDiff_t>
    - TIFFReadRGBATileExt
    - TIFFReadRGBAStripExt
    - FillCacheForOtherBands
    - reinterpret_cast<uint32_t *>
    - TIFFIsTiled
    - Crystalize
    - GetYSize
    - static_cast<GByte *>
    - memset
    - VSI_MALLOC3_VERBOSE
    - GDALCopyWords
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRGBABand::IReadBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: GTiffRGBABand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GTiffRGBABand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:61,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:61,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:62,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:68,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:93,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:97,1
    - Dst: static_cast<GTiffJPEGOverviewDS **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:110,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:115,1
    - Dst: GTiffJPEGOverviewDS::GTiffJPEGOverviewDS
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 121
    functionName: GTiffDataset::GetJPEGOverviewCount
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverByName
    - CPLTestBool
    - static_cast<GTiffJPEGOverviewDS **>
    - static_cast<int>
    - GTiffJPEGOverviewDS::GTiffJPEGOverviewDS
    - EQUAL
    - TIFFGetField
    - static_cast<GByte *>
    - CPLMalloc
    - CPLGetConfigOption
    linkageType: ''
    returnType: int
    signature: int GTiffDataset::GetJPEGOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::IsWholeBlock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:133,1
    - Dst: IsAllBands
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:136,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:139,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:147,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:149,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:149,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:157,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:161,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:165,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:171,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:175,1
    - Dst: CPLStringList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:184,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 27
    argCount: 6
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nBandCount
    - panBandList
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 185
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 185
    functionName: GTiffDataset::GetCompressionFormats
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - GTiffDataset::IsBlockAvailable
    - CPLStringList::AddString
    - GetRasterBand
    - IsAllBands
    - GTiffDataset::IsWholeBlock
    - CPLStringList
    - static_cast<vsi_l_offset>
    - CPLStringList::CPLStringList
    linkageType: ''
    returnType: CPLStringList
    signature: "CPLStringList GTiffDataset::GetCompressionFormats(int nXOff, int nYOff,\n
      \                                                 int nXSize, int nYSize,\n
      \                                                 int nBandCount,\n                                                  const
      int *panBandList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::IsWholeBlock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:198,1
    - Dst: IsAllBands
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:201,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:204,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:205,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:210,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:214,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:217,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:229,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:230,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:231,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:237,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:240,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:241,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:242,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:244,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:247,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:269,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:274,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:276,1
    - Dst: TIFFReadRawTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:278,1
    - Dst: TIFFReadRawStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:283,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:290,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:297,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:298,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:299,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:300,1
    - Dst: GDALGetCompressionFormatForJPEG
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:305,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:307,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:308,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:311,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:315,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:317,1
    - Dst: VSIStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:329,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:329,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 67
    argCount: 10
    argNames:
    - pszFormat
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nBandCount
    - panBandList
    - ppBuffer
    - pnBufferSize
    - ppszDetailedFormat
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    - int
    - int*
    - void**
    - size_t*
    - char**
    constantsTouched: []
    func_position:
      end: 337
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 337
    functionName: GTiffDataset::ReadCompressedData
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - static_cast<vsi_l_offset>
    - TIFFReadRawTile
    - std::string::c_str
    - simple_max
    - VSIStrdup
    - CSLTokenizeString2
    - CPLStringList::size
    - GTiffDataset::IsBlockAvailable
    - STARTS_WITH_CI
    - GDALGetCompressionFormatForJPEG
    - static_cast<GByte *>
    - GTiffDataset::IsWholeBlock
    - static_cast<tmsize_t>
    - memmove
    - TIFFReadRawStrip
    - static_cast<size_t>
    - EQUAL
    - IsAllBands
    - TIFFGetField
    - VSIFree
    - TIFFIsTiled
    - memcpy
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::ReadCompressedData(const char *pszFormat, int
      nXOff,\n                                        int nYOff, int nXSize, int nYSize,\n
      \                                       int nBandCount, const int *panBandList,\n
      \                                       void **ppBuffer, size_t *pnBufferSize,\n
      \                                       char **ppszDetailedFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const GTiffDecompressJob *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:407,1
    - Dst: auto::oErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:411,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:463,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:489,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:495,1
    - Dst: DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:522,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:537,1
    - Dst: GDALRasterBlock::EnterDisableDirtyBlockFlush
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:547,1
    - Dst: auto::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:548,1
    - Dst: GDALRasterBlock::LeaveDisableDirtyBlockFlush
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:550,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:567,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:576,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:576,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:585,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:587,1
    - Dst: LoadBlocks
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:604,1
    - Dst: AllocInputBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:612,1
    - Dst: auto::poHandle::PRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:618,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:618,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:618,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:619,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:621,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:624,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:625,1
    - Dst: LoadBlocks
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:643,1
    - Dst: AllocInputBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:651,1
    - Dst: auto::poHandle::Seek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:656,1
    - Dst: auto::poHandle::Read
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:657,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:657,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:657,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:660,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:663,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:664,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:681,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:682,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:682,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:684,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:684,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:686,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:694,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:695,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:696,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:697,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:698,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:699,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:700,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:704,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:705,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:707,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:710,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:717,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:722,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:731,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:746,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:750,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:751,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:755,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:756,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:757,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:760,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:760,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:761,1
    - Dst: auto::RestoreVolatileParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:762,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:780,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:780,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:783,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:789,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:790,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:794,1
    - Dst: GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:794,1
    - Dst: TIFFReadFromUserBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:796,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:796,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:797,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:804,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:805,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:805,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:806,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:806,1
    - Dst: GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:825,1
    - Dst: GDALDeinterleave
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:827,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:828,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:829,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:842,1
    - Dst: GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:844,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:846,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:855,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:866,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:868,1
    - Dst: GDALDeinterleave
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:891,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:893,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:898,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:918,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:924,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:931,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:940,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:945,1
    - Dst: GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:945,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:946,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:951,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:951,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:957,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 196
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 960
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 960
    functionName: GTiffDataset::ThreadDecompressionFunc
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - auto::poHandle::Seek
    - TIFFReadFromUserBuffer
    - std::vector::size
    - assert
    - CPLDebug
    - CPLError
    - GDALDeinterleave
    - XTIFFClose
    - auto::GetRasterBand
    - static_cast<const GTiffDecompressJob *>
    - DropLock
    - LoadBlocks
    - auto::poHandle::Read
    - CPLString::c_str
    - GDALCopyWords64
    - GDALRasterBlock::LeaveDisableDirtyBlockFlush
    - std::vector::data
    - static_cast<int>
    - AllocInputBuffer
    - auto::oErrorAccumulator::InstallForCurrentScope
    - VSIUnlink
    - static_cast<uint16_t>
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - static_cast<GByte *>
    - TIFFWriteDirectory
    - std::vector::resize
    - VSI_TIFFOpen
    - static_cast<size_t>
    - auto::RestoreVolatileParameters
    - VSIFCloseL
    - GDALRasterBlock::EnterDisableDirtyBlockFlush
    - TIFFWriteCheck
    - TIFFSetField
    - auto::poHandle::PRead
    - VSIMemGenerateHiddenFilename
    - TIFFIsByteSwapped
    - GetDataRef
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::ThreadDecompressionFunc(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:968,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 982
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 982
    functionName: GTiffDataset::IsMultiThreadedReadCompatible
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - cpl::down_cast<GTiffRasterBand *>
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::IsMultiThreadedReadCompatible() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateJobQueue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:995,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1012,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1012,1
    - Dst: GTiffDecompressContext::poHandle::HasPRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1014,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1020,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1029,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1031,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1040,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1040,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1041,1
    - Dst: TIFFIsBigEndian
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1041,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1071,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1116,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1118,1
    - Dst: GDALGetCacheMax64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1119,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1123,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1150,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1157,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1160,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1177,1
    - Dst: TryGetLockedBlockRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1185,1
    - Dst: auto::GetDirty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1189,1
    - Dst: auto::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1191,1
    - Dst: auto::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1195,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1205,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1206,1
    - Dst: const_cast<int *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1208,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1220,1
    - Dst: GTiffDataset::WaitCompletionForBlock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1234,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1241,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1241,1
    - Dst: GTiffDecompressContext::poHandle::Flush
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1243,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1246,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1248,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1252,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1256,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1263,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1308,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1308,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1314,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1314,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1320,1
    - Dst: GTiffDecompressContext::poHandle::Seek
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1336,1
    - Dst: GTiffDecompressContext::poHandle::Tell
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1337,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1341,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1344,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1345,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1360,1
    - Dst: auto::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1365,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1375,1
    - Dst: auto::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1380,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1396,1
    - Dst: std::min<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1396,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1397,1
    - Dst: CPLDebugOnly
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1412,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1419,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1420,1
    - Dst: std::vector::clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1421,1
    - Dst: auto::reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1422,1
    - Dst: GTiffDataset::MultiThreadedRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1424,1
    - Dst: GTiffDataset::MultiThreadedRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1430,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1432,1
    - Dst: GTiffDecompressContext::poHandle::AdviseRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1455,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1455,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1456,1
    - Dst: TemporarilyDropReadWriteLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1460,1
    - Dst: auto::SubmitJob
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1464,1
    - Dst: auto::WaitCompletion
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1468,1
    - Dst: ReacquireReadWriteLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1471,1
    - Dst: GTiffDecompressContext::oErrorAccumulator::ReplayErrors
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1473,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 230
    argCount: 11
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    argTypes:
    - int
    - int
    - int
    - int
    - void*
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    constantsTouched: []
    func_position:
      end: 1477
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 1477
    functionName: GTiffDataset::MultiThreadedRead
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GUIntBig>
    - GTIFFSupportsPredictor
    - GTiffDecompressContext::poHandle::Tell
    - GTiffDataset::MultiThreadedRead
    - auto::WaitCompletion
    - GetRasterBand
    - CPLDebug
    - GTiffDecompressContext::poHandle::Seek
    - GDALDataset::IRasterIO
    - std::min<vsi_l_offset>
    - INIT_RASTERIO_EXTRA_ARG
    - std::vector::push_back
    - CPLError
    - std::vector::clear
    - TryGetLockedBlockRef
    - TIFFIsBigEndian
    - CPL_TO_BOOL
    - GTiffDecompressContext::poHandle::Flush
    - static_cast<GIntBig>
    - simple_max
    - const_cast<int *>
    - VSI_TIFFGetVSILFile
    - ReacquireReadWriteLock
    - TIFFClientdata
    - GTiffDecompressContext::poHandle::AdviseRead
    - std::vector::empty
    - GDALGetDataTypeSizeBytes
    - auto::DropLock
    - std::vector::data
    - ReportError
    - GTiffDecompressContext::oErrorAccumulator::ReplayErrors
    - GTiffDataset::IsBlockAvailable
    - cpl::down_cast<GTiffRasterBand *>
    - CreateJobQueue
    - auto::empty
    - CPL_IGNORE_RET_VAL
    - GDALGetCacheMax64
    - static_cast<GByte *>
    - TemporarilyDropReadWriteLock
    - static_cast<size_t>
    - auto::GetDirty
    - CPLDebugOnly
    - auto::SubmitJob
    - GTiffDecompressContext::poHandle::HasPRead
    - VSI_TIFFFlushBufferedWrite
    - TIFFGetField
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - static_cast<GSpacing>
    - auto::reset
    - GTiffDataset::WaitCompletionForBlock
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::MultiThreadedRead(int nXOff, int nYOff, int nXSize,\n
      \                                      int nYSize, void *pData,\n                                       GDALDataType
      eBufType, int nBandCount,\n                                       const int
      *panBandMap,\n                                       GSpacing nPixelSpace,\n
      \                                      GSpacing nLineSpace, GSpacing nBandSpace)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - pabySrcDataIn
    - nMappingSizeIn
    - pTempBufferIn
    argTypes:
    - GByte*
    - size_t
    - GByte*
    constantsTouched: []
    func_position:
      end: 1495
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1495
    functionName: FetchBufferVirtualMemIO::FetchBufferVirtualMemIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FetchBufferVirtualMemIO(const GByte *pabySrcDataIn, size_t nMappingSizeIn,\n
      \                           GByte *pTempBufferIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1500,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1502,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1508,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1509,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1511,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - nOffset
    - nPixels
    - nDTSize
    - bIsByteSwapped
    - bIsComplex
    - nBlockId
    argTypes:
    - vsi_l_offset
    - int
    - int
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 1515
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1515
    functionName: FetchBufferVirtualMemIO::FetchBytes
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<size_t>
    - memcpy
    - GDALSwapWords
    linkageType: ''
    returnType: GByte
    signature: "GByte *FetchBytes(vsi_l_offset nOffset, int nPixels, int nDTSize,\n
      \                           bool bIsByteSwapped, bool bIsComplex, int nBlockId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1521,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1523,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1527,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1528,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1532,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - pabyDstBuffer
    - nOffset
    - nPixels
    - nDTSize
    - bIsByteSwapped
    - bIsComplex
    - nBlockId
    argTypes:
    - GByte*
    - vsi_l_offset
    - int
    - int
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 1538
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1538
    functionName: FetchBufferVirtualMemIO::FetchBytes
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<size_t>
    - memcpy
    - GDALSwapWords
    linkageType: ''
    returnType: bool
    signature: "bool FetchBytes(GByte *pabyDstBuffer, vsi_l_offset nOffset, int nPixels,\n
      \                   int nDTSize, bool bIsByteSwapped, bool bIsComplex,\n                    int
      nBlockId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1566,1
    - Dst: STARTS_WITH
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1580,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1583,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1584,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1590,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1590,1
    - Dst: CPLIsVirtualMemFileMapAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1591,1
    - Dst: VSIFGetNativeFileDescriptorL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1592,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1597,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1602,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1603,1
    - Dst: CPLGetUsablePhysicalRAM
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1610,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1611,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1613,1
    - Dst: CPLVirtualMemFileMapNew
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1619,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1632,1
    - Dst: CPLVirtualMemGetSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1634,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1636,1
    - Dst: CPLVirtualMemGetAddr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1636,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1639,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1645,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1648,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1649,1
    - Dst: GTiffDataset::CommonDirectIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1656,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 56
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1548
    functionDepth: 3
    functionLinenumber: 1548
    functionLinenumberEnd: 1659
    functionName: GTiffDataset::VirtualMemIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - CPLVirtualMemGetAddr
    - VSIFGetNativeFileDescriptorL
    - GetRasterBand
    - CPLDebug
    - CPLVirtualMemGetSize
    - VSIFTellL
    - STARTS_WITH
    - static_cast<GIntBig>
    - VSI_TIFFGetVSILFile
    - CPLIsVirtualMemFileMapAvailable
    - CPLVirtualMemFileMapNew
    - TIFFClientdata
    - VSIGetMemFileBuffer
    - VSIFSeekL
    - GTiffDataset::CommonDirectIO
    - static_cast<GByte *>
    - static_cast<size_t>
    - TIFFIsTiled
    - CPLGetUsablePhysicalRAM
    - TIFFIsByteSwapped
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: "int GTiffDataset::VirtualMemIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                               int nXSize, int nYSize, void *pData,\n
      \                              int nBufXSize, int nBufYSize,\n                               GDALDataType
      eBufType, int nBandCount,\n                               const int *panBandMap,
      GSpacing nPixelSpace,\n                               GSpacing nLineSpace, GSpacing
      nBandSpace,\n                               GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 6
    argNames:
    - CPL_RESTRICT
    - nSrcStride
    - CPL_RESTRICT
    - nDestStride
    - nIters
    - nBandCount
    argTypes:
    - GByte*
    - int
    - GByte*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1736
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1736
    functionName: CopyContigByteMultiBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CopyContigByteMultiBand(const GByte *CPL_RESTRICT pabySrc,\n
      \                                          int nSrcStride,\n                                           GByte
      *CPL_RESTRICT pabyDest,\n                                           int nDestStride,
      int nIters,\n                                           int nBandCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1759,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1759,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1760,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1767,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1768,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1809,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1812,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1816,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1838,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1848,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1850,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1859,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1878,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1879,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1885,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1894,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1897,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1914,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1920,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1923,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1923,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1946,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1953,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1955,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1964,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1973,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1978,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1991,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:1994,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2009,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2012,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2062,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2073,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2081,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2102,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2108,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2123,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2135,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2144,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2157,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2162,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2165,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2165,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2215,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2225,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2231,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2238,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2246,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2265,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2271,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2286,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2292,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2294,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2308,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2310,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2343,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2356,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2359,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2361,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2372,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2373,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2387,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2395,1
    - Dst: CopyContigByteMultiBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2396,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2399,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2405,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2408,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2411,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2448,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2460,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2461,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2463,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2473,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2482,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2484,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2495,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2506,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2509,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2512,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2525,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2526,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2537,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2546,1
    - Dst: CopyContigByteMultiBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2547,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2549,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2554,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2573,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2580,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2585,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2596,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2602,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2602,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2604,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2617,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2622,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2646,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2647,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2649,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2658,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2659,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2673,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2681,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2682,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2685,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2723,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2738,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2739,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2749,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2756,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2773,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2783,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2788,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2793,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2794,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2796,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2810,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2811,1
    - Dst: FetchBuffer::FetchBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2822,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2831,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2832,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2835,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2840,1
    - Dst: REACHED
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2854,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2861,1
    CyclomaticComplexity: 151
    EdgeCount: 151
    ICount: 422
    argCount: 14
    argNames:
    - oFetcher
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    argTypes:
    - FetchBuffer
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    constantsTouched: []
    func_position:
      end: 2878
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 2878
    functionName: GTiffDataset::CommonDirectIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - cpl::down_cast<GTiffRasterBand *>
    - REACHED
    - GetRasterBand
    - static_cast<GByte *>
    - auto::GetRasterDataType
    - FetchBuffer::FetchBytes
    - static_cast<GByte>
    - TIFFGetField
    - TIFFIsTiled
    - GDALCopyWords
    - CopyContigByteMultiBand
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::CommonDirectIO(FetchBuffer &oFetcher, int nXOff,
      int nYOff,\n                                    int nXSize, int nYSize, void
      *pData,\n                                    int nBufXSize, int nBufYSize,\n
      \                                   GDALDataType eBufType, int nBandCount,\n
      \                                   const int *panBandMap, GSpacing nPixelSpace,\n
      \                                   GSpacing nLineSpace, GSpacing nBandSpace)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::CommonDirectIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 14
    argNames:
    - oFetcher
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    argTypes:
    - FetchBufferDirectIO
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    constantsTouched: []
    func_position:
      end: 2893
      start: 2884
    functionDepth: 2
    functionLinenumber: 2884
    functionLinenumberEnd: 2893
    functionName: GTiffDataset::CommonDirectIOClassic
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::CommonDirectIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::CommonDirectIOClassic(\n    FetchBufferDirectIO
      &oFetcher, int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int
      nBufXSize, int nBufYSize, GDALDataType eBufType,\n    int nBandCount, const
      int *panBandMap, GSpacing nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2912,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2913,1
    - Dst: auto::IsBaseGTiffClass
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2919,1
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2923,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2957,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2959,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2967,1
    - Dst: GTiffDataset::FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2977,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2978,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2978,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2981,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2989,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2990,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2995,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2995,1
    - Dst: GTiffDataset::CommonDirectIOClassic
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:2999,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3007,1
    - Dst: static_cast<vsi_l_offset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3019,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3020,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3042,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3052,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3053,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3056,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3072,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3074,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3080,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3080,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3088,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3092,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3093,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3096,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3117,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3117,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3119,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3126,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3128,1
    - Dst: CopyContigByteMultiBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3133,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3135,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3141,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3144,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3153,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3154,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3175,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3186,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3187,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3188,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3189,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 102
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 3192
      start: 2905
    functionDepth: 3
    functionLinenumber: 2905
    functionLinenumberEnd: 3192
    functionName: GTiffDataset::DirectIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GetRasterBand
    - CPLDebug
    - static_cast<vsi_l_offset>
    - CopyContigByteMultiBand
    - VSI_TIFFGetVSILFile
    - TIFFIsByteSwapped
    - static_cast<vsi_l_offset *>
    - GDALSwapWords
    - TIFFClientdata
    - GTiffDataset::FlushCache
    - GDALCopyWords
    - static_cast<int>
    - cpl::down_cast<GTiffRasterBand *>
    - auto::GetRasterDataType
    - static_cast<GByte *>
    - GDALDataTypeIsComplex
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - static_cast<size_t>
    - GTiffDataset::Crystalize
    - VSI_TIFFFlushBufferedWrite
    - TIFFGetField
    - TIFFIsTiled
    - auto::IsBaseGTiffClass
    - GTiffDataset::CommonDirectIOClassic
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: "int GTiffDataset::DirectIO(GDALRWFlag eRWFlag, int nXOff, int nYOff,
      int nXSize,\n                           int nYSize, void *pData, int nBufXSize,\n
      \                          int nBufYSize, GDALDataType eBufType, int nBandCount,\n
      \                          const int *panBandMap, GSpacing nPixelSpace,\n                           GSpacing
      nLineSpace, GSpacing nBandSpace,\n                           GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3204,1
    - Dst: tryGet
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3214,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3217,1
    - Dst: TIFFReadFromUserBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3223,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3224,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3239,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3239,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3241,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3241,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3242,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3242,1
    - Dst: TIFFReadFromUserBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3243,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3244,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3252,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3253,1
    - Dst: TIFFReadEncodedTile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3255,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3259,1
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3267,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3271,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - nBlockId
    - pOutputBuffer
    - nBlockReqSize
    argTypes:
    - int
    - void*
    - GPtrDiff_t
    constantsTouched: []
    func_position:
      end: 3280
      start: 3198
    functionDepth: 3
    functionLinenumber: 3198
    functionLinenumberEnd: 3280
    functionName: GTiffDataset::ReadStrile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - CPLError
    - VSI_TIFFGetVSILFile
    - TIFFReadFromUserBuffer
    - std::vector::size
    - VSIFSeekL
    - TIFFReadEncodedTile
    - TIFFClientdata
    - defined
    - TIFFGetStrileByteCount
    - VSIFReadL
    - TIFFIsTiled
    - tryGet
    - TIFFReadEncodedStrip
    - GTIFFGetThreadLocalLibtiffError
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::ReadStrile(int nBlockId, void *pOutputBuffer,\n
      \                             GPtrDiff_t nBlockReqSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::FlushBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3299,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3307,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3308,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3308,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3308,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3311,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3322,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3322,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3349,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3366,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3371,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3372,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3374,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3383,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3385,1
    - Dst: GTiffDataset::ReadStrile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3397,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3399,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3405,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3411,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3412,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3415,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 2
    argNames:
    - nBlockId
    - bReadFromDisk
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 3428
      start: 3288
    functionDepth: 5
    functionLinenumber: 3288
    functionLinenumberEnd: 3428
    functionName: GTiffDataset::LoadBlockBuf
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - ReportError
    - static_cast<GPtrDiff_t>
    - VSI_CALLOC_VERBOSE
    - static_cast<int>
    - GTiffDataset::IsBlockAvailable
    - GTiffDataset::ReadStrile
    - TIFFStripSize
    - static_cast<GByte *>
    - GTiffDataset::FlushBlockBuf
    - TIFFTileSize
    - TIFFIsTiled
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::LoadBlockBuf(int nBlockId, bool bReadFromDisk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3438,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3440,1
    - Dst: GTiffDataset::Identify
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3442,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3449,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 3471
      start: 3434
    functionDepth: 0
    functionLinenumber: 3434
    functionLinenumberEnd: 3471
    functionName: GTiffDataset::Identify
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - strlen
    - GTiffDataset::Identify
    linkageType: ''
    returnType: int
    signature: int GTiffDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3482,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3484,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3487,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3490,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3491,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - osTmpFilename
    - fpTemp
    - fpL
    - nNewLength
    - pabyBuffer
    - nDataLength
    argTypes:
    - CPLString
    - VSILFILE*
    - VSILFILE*
    - int
    - GByte*
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 3502
      start: 3477
    functionDepth: 1
    functionLinenumber: 3477
    functionLinenumberEnd: 3502
    functionName: GTIFFExtendMemoryFile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - CPLError
    - VSIFSeekL
    - VSIFWriteL
    - static_cast<GByte *>
    - VSIGetMemFileBuffer
    linkageType: ''
    returnType: bool
    signature: "bool GTIFFExtendMemoryFile(const CPLString &osTmpFilename,\n                                  VSILFILE
      *fpTemp, VSILFILE *fpL,\n                                  int nNewLength, GByte
      *&pabyBuffer,\n                                  vsi_l_offset &nDataLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3511,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3512,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3516,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3518,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3518,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3521,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3521,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3521,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3523,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3526,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3526,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3530,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3531,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3543,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3545,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3548,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3550,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3550,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3551,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3554,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3556,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3559,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3561,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3561,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3562,1
    - Dst: GTIFFExtendMemoryFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3567,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3570,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3570,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3571,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3578,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3580,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3582,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3584,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3586,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3588,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3591,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3594,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3594,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3595,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3598,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3600,1
    - Dst: static_cast<TIFFDataType>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3600,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3603,1
    - Dst: CPL_SWAP64PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3605,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3608,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3610,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3610,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3611,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3614,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3622,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3624,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3627,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3629,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3629,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3630,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3634,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3636,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3639,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3641,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3641,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3642,1
    - Dst: GTIFFExtendMemoryFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3647,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3650,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3650,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3651,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3657,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3659,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3661,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3663,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3665,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3667,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3670,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3672,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3672,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3673,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3678,1
    - Dst: static_cast<TIFFDataType>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3678,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3681,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3683,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3684,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3686,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3688,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3688,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3689,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3699,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3699,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3700,1
    - Dst: GTIFFExtendMemoryFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3703,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3704,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3707,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3707,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3708,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3711,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3711,1
    - Dst: VSICreateBufferedReaderHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3712,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3713,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3714,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3716,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 139
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 3719
      start: 3508
    functionDepth: 2
    functionLinenumber: 3508
    functionLinenumberEnd: 3719
    functionName: GTIFFMakeBufferedStream
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - TIFFDataWidth
    - VSIFTellL
    - CPL_SWAP32PTR
    - CPLError
    - static_cast<vsi_l_offset>
    - VSIGetMemFileBuffer
    - CPL_SWAP64PTR
    - static_cast<int>
    - static_cast<GUInt32>
    - VSIFSeekL
    - VSIUnlink
    - GTIFFExtendMemoryFile
    - VSIFOpenL
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - static_cast<GByte *>
    - static_cast<TIFFDataType>
    - CPL_SWAP16PTR
    - VSIFCloseL
    - VSIFWriteL
    - VSIMemGenerateHiddenFilename
    - memcpy
    - VSICreateBufferedReaderHandle
    linkageType: ''
    returnType: bool
    signature: bool GTIFFMakeBufferedStream(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3728,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3729,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3735,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3736,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3738,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3744,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3747,1
    - Dst: m_poExternalMaskDS::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3748,1
    - Dst: auto::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3749,1
    - Dst: m_poExternalMaskDS::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3750,1
    - Dst: auto::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3751,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3755
    functionName: GTiffDataset::AssociateExternalMask
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - auto::GetXSize
    - m_poExternalMaskDS::GetRasterYSize
    - auto::GetYSize
    - GetRasterBand
    - get
    - GetRasterYSize
    - m_poExternalMaskDS::GetRasterXSize
    - GetRasterXSize
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::AssociateExternalMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::Identify
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3769,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3773,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3776,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3783,1
    - Dst: GTiffDataset::OpenDir
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3784,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3786,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3796,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3801,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3805,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3805,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3807,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3809,1
    - Dst: GTIFFMakeBufferedStream
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3812,1
    - Dst: CPLErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3820,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3821,1
    - Dst: CPLSetCurrentErrorHandlerCatchDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3822,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3825,1
    - Dst: CPLErrorAccumulator::GetErrors
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3836,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3838,1
    - Dst: msg::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3842,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3849,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3851,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3856,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3858,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3863,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3869,1
    - Dst: GTiffDataset*::SetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3870,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3871,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3885,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3885,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3886,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3888,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3893,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3895,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3897,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3898,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3899,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3900,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3902,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3904,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3905,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3906,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3908,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3910,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3912,1
    - Dst: GTiffDataset*::ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3916,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3927,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3927,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3931,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3939,1
    - Dst: GTiffDataset*::m_oGTiffMDMD::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3943,1
    - Dst: GDALOpenInfo*::AreSiblingFilesLoaded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3949,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3950,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3950,1
    - Dst: GTiffDataset*::oOvManager::TransferSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3952,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3953,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3953,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3958,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3959,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3960,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3960,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3963,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3963,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3973,1
    - Dst: GTiffDataset*::InitCreationOrOpenOptions
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3976,1
    - Dst: GTiffDataset*::m_poMaskExtOvrDS::reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3992,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3992,1
    - Dst: GTiffDataset*::AssociateExternalMask
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3994,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:3996,1
    - Dst: GTiffDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4004,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4009,1
    - Dst: GTiffDataset*::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4011,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 94
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 4015
      start: 3761
    functionDepth: 4
    functionLinenumber: 3761
    functionLinenumberEnd: 4015
    functionName: GTiffDataset::Open
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset*::OpenOffset
    - CPLErrorAccumulator::GetErrors
    - atoi
    - memcmp
    - CPLDebug
    - GTiffDataset*::InitCreationOrOpenOptions
    - strcmp
    - VSIFTellL
    - CPLError
    - CPLGetConfigOption
    - GTiffDataset::Identify
    - GTiffDataset*::LoadGeoreferencingAndPamIfNeeded
    - XTIFFClose
    - CPLStrdup
    - GTiffDataset*::m_poMaskExtOvrDS::reset
    - GTIFFMakeBufferedStream
    - OGRAPISpyOpen
    - strlen
    - CPLSetCurrentErrorHandlerCatchDebug
    - GTiffDataset*::m_oGTiffMDMD::SetMetadataItem
    - CSLCount
    - GTiffOneTimeInit
    - ReportError
    - STARTS_WITH_CI
    - CPLTestBool
    - static_cast<int>
    - GTiffDataset*::SetDescription
    - CPLFetchBool
    - GDALOpenInfo*::GetSiblingFiles
    - min
    - VSIFOpenL
    - GTiffDataset*::oOvManager::TransferSiblingFiles
    - CPLErrorAccumulator::InstallForCurrentScope
    - CPL_IGNORE_RET_VAL
    - strstr
    - msg::c_str
    - VSI_TIFFOpen
    - GTiffDataset*::oOvManager::Initialize
    - GTiffDataset*::ReportError
    - CSLFetchNameValueDef
    - TIFFCurrentDirOffset
    - GTiffDataset*::AssociateExternalMask
    - GTiffDataset::OpenDir
    - GDALOpenInfo*::AreSiblingFilesLoaded
    - TIFFGetField
    - GTiffDataset::GTiffDataset
    - CSLDuplicate
    - max
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GTiffDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGTIFKeyGetSHORT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4027,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4029,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4030,1
    - Dst: GDALMultiDomainMetadata::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hGTIF
    - m_oGTiffMDMD
    argTypes:
    - GTIF*
    - GDALMultiDomainMetadata
    constantsTouched: []
    func_position:
      end: 4035
      start: 4021
    functionDepth: 3
    functionLinenumber: 4021
    functionLinenumberEnd: 4035
    functionName: GTiffDatasetSetAreaOrPointMD
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GDALGTIFKeyGetSHORT
    - static_cast<short>
    - GDALMultiDomainMetadata::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: "void GTiffDatasetSetAreaOrPointMD(GTIF *hGTIF,\n                                         GDALMultiDomainMetadata
      &m_oGTiffMDMD)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4048,1
    - Dst: GTiffDataset::GTIFNew
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4053,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4057,1
    - Dst: GTiffDatasetSetAreaOrPointMD
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4062,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4066
      start: 4045
    functionDepth: 4
    functionLinenumber: 4045
    functionLinenumberEnd: 4066
    functionName: GTiffDataset::LoadMDAreaOrPoint
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffDatasetSetAreaOrPointMD
    - ReportError
    - GTiffDataset::GTIFNew
    - GTIFFree
    - GTiffDataset::GetMetadataItem
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LoadMDAreaOrPoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::IdentifyAuthorizedGeoreferencingSources
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4080,1
    - Dst: Clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4082,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4086,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4088,1
    - Dst: GTiffDataset::LookForProjectionFromGeoTIFF
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4093,1
    - Dst: GTiffDataset::LookForProjectionFromXML
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4097,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4100
      start: 4072
    functionDepth: 1
    functionLinenumber: 4072
    functionLinenumberEnd: 4100
    functionName: GTiffDataset::LookForProjection
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 4
    functionsReached:
    - GTiffDataset::LookForProjectionFromGeoTIFF
    - Clear
    - std::set::insert
    - GTiffDataset::IdentifyAuthorizedGeoreferencingSources
    - GTiffDataset::LookForProjectionFromXML
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LookForProjection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::GTIFNew
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4112,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4116,1
    - Dst: GTIFAllocDefn
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4121,1
    - Dst: CPLErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4128,1
    - Dst: GTIFGetDefn
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4129,1
    - Dst: CPLErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4136,1
    - Dst: GTIFGetOGISDefnAsOSR
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4148,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4152,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4155,1
    - Dst: OSRDestroySpatialReference
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4156,1
    - Dst: CPLErrorAccumulator::GetErrors
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4161,1
    - Dst: msg::find
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4164,1
    - Dst: std::set::find
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4171,1
    - Dst: std::set::end
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4171,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4173,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4174,1
    - Dst: msg::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4175,1
    - Dst: std::set::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4179,1
    - Dst: CPLErrorReset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4181,1
    - Dst: IsCompound
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4184,1
    - Dst: GetTargetLinearUnits
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4187,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4188,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4190,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4191,1
    - Dst: GTIFDirectoryInfo
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4195,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4204,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4204,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4207,1
    - Dst: StripVertical
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4209,1
    - Dst: GTIFFreeDefn
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4213,1
    - Dst: GTiffDatasetSetAreaOrPointMD
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4215,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4219
      start: 4106
    functionDepth: 4
    functionLinenumber: 4106
    functionLinenumberEnd: 4219
    functionName: GTiffDataset::LookForProjectionFromGeoTIFF
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - GTiffDatasetSetAreaOrPointMD
    - OSRDestroySpatialReference
    - CPLErrorAccumulator::GetErrors
    - std::set::insert
    - CPLDebug
    - GTiffDataset::GTIFNew
    - CPLError
    - GetTargetLinearUnits
    - CPLGetConfigOption
    - CPLErrorReset
    - IsCompound
    - CPLStrdup
    - GTIFAllocDefn
    - GTIFFree
    - ReportError
    - CPLTestBool
    - FromHandle
    - GTIFDirectoryInfo
    - GTIFGetDefn
    - std::set::find
    - GTIFFreeDefn
    - msg::find
    - CPLErrorAccumulator::InstallForCurrentScope
    - std::set::empty
    - CPLFree
    - msg::c_str
    - EQUAL
    - GTIFGetOGISDefnAsOSR
    - StripVertical
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LookForProjectionFromGeoTIFF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4227,1
    - Dst: GDALCanFileAcceptSidecarFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4229,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4233,1
    - Dst: GDALCanReliablyUseSiblingFileList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4237,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4237,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4244,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4244,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4245,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4245,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4254,1
    - Dst: VSIIsCaseSensitiveFS
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4264,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4264,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4267,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4268,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4268,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4276,1
    - Dst: VSIIngestFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4285,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4285,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4290,1
    - Dst: CPLXMLTreeCloser::get
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4291,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4300,1
    - Dst: SetFromUserInput
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4302,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4302,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4304,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4305,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4305,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4306
      start: 4225
    functionDepth: 1
    functionLinenumber: 4225
    functionLinenumberEnd: 4306
    functionName: GTiffDataset::LookForProjectionFromXML
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - CPLGetFilename
    - CPLXMLTreeCloser::get
    - VSIIsCaseSensitiveFS
    - CPLString::resize
    - VSIStatExL
    - std::string::c_str
    - CPLString::empty
    - CPLStrdup
    - CPLString::c_str
    - strlen
    - SetFromUserInput
    - GDALCanReliablyUseSiblingFileList
    - CPLSPrintf
    - VSIIngestFile
    - GDALCanFileAcceptSidecarFile
    - CPLFree
    - CPLResetExtensionSafe
    - GTiffDataset::GetSiblingFiles
    - VSIFree
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LookForProjectionFromXML()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4327,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4331,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4334,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4347,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4358,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4359,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4361,1
    - Dst: GTiffDataset::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4373,1
    - Dst: GDALPamDataset::GetGCPCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4374,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4375,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4377,1
    - Dst: gdal::GCP::fromC
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4379,1
    - Dst: GDALPamDataset::GetGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4379,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4382,1
    - Dst: GDALPamDataset::GetGCPSpatialRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4390,1
    - Dst: Clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4394,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4404,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4406,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4408,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4416,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4419,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4421,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4429,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4431,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4432,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4432,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4439,1
    - Dst: push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4441,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4442,1
    - Dst: CPLGetXMLValue
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4442,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4445,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4445,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4446,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4453,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4455,1
    - Dst: Clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4457,1
    - Dst: clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4461,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4465,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4471,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4474,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4480,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4490,1
    - Dst: GetDomainList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4497,1
    - Dst: CSLMerge
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4506,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4508,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4509,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4512,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4515,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4515,1
    - Dst: GTiffRasterBand*::oMDMD::GetDomainList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4516,1
    - Dst: CSLMerge
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4526,1
    - Dst: GTiffRasterBand*::m_oGTiffMDMD::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4528,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4529,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4536,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4536,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::GetOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4545,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4558,1
    - Dst: GTiffRasterBand*::GDALPamRasterBand::GetColorTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4564,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4567,1
    - Dst: auto::Clone
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4567,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4316
    functionDepth: 3
    functionLinenumber: 4316
    functionLinenumberEnd: 4571
    functionName: GTiffDataset::ApplyPamInfo
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffRasterBand*::oMDMD::GetDomainList
    - atoi
    - std::vector::size
    - GetRasterBand
    - GetDomainList
    - CSLMerge
    - GTiffDataset::LookForProjection
    - std::vector::push_back
    - CPLGetXMLValue
    - GetRasterCount
    - GTiffDataset::SetMetadata
    - Clear
    - GDALPamDataset::GetGCPs
    - GDALPamDataset::GetGCPCount
    - SetAxisMappingStrategy
    - auto::Clone
    - GTiffDataset::GetMetadata
    - CSLCount
    - emplace_back
    - GDALPamDataset::GetGeoTransform
    - CPLAtof
    - IsEmpty
    - GTiffRasterBand*::GDALPamRasterBand::GetColorInterpretation
    - importFromWkt
    - cpl::down_cast<GTiffRasterBand *>
    - CPLDestroyXMLNode
    - CPLParseXMLString
    - GDALPamDataset::GetGCPSpatialRef
    - CPLFree
    - size
    - empty
    - CPLGetXMLNode
    - GTiffRasterBand*::GDALPamRasterBand::GetOffset
    - gdal::GCP::fromC
    - CSLDestroy
    - reset
    - EQUAL
    - GTiffRasterBand*::m_oGTiffMDMD::SetMetadata
    - GDALPamDataset::GetSpatialRef
    - push_back
    - memcpy
    - GTiffRasterBand*::GDALPamRasterBand::GetColorTable
    - clear
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::ApplyPamInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4584,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4587,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4590,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4591,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4599,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4602,1
    - Dst: atol
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4608,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4616,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4625,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4633,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4636,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4639,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4642,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4642,1
    - Dst: TIFFReadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4654,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4656,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4657,1
    - Dst: static_cast<long unsigned int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4659,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4660,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4660,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4666,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4672,1
    - Dst: GTiffDataset*::SetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4673,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4674,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4679,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4680,1
    - Dst: GTiffDataset*::SetPhysicalFilename
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4682,1
    - Dst: GTiffDataset*::SetSubdatasetName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4683,1
    - Dst: GDALOpenInfo*::AreSiblingFilesLoaded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4686,1
    - Dst: GTiffDataset*::oOvManager::TransferSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4687,1
    - Dst: GDALOpenInfo*::StealSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4687,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4689,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 4697
      start: 4579
    functionDepth: 4
    functionLinenumber: 4579
    functionLinenumberEnd: 4697
    functionName: GTiffDataset::OpenDir
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - GTiffDataset*::OpenOffset
    - XTIFFClose
    - static_cast<long unsigned int>
    - CPLStrdup
    - GTiffDataset*::SetPhysicalFilename
    - GDALOpenInfo*::StealSiblingFiles
    - strlen
    - ReportError
    - GTiffOneTimeInit
    - STARTS_WITH_CI
    - GTiffDataset*::SetDescription
    - VSIFOpenL
    - GTiffDataset*::oOvManager::TransferSiblingFiles
    - CPL_IGNORE_RET_VAL
    - VSI_TIFFOpen
    - GTiffDataset*::SetSubdatasetName
    - VSIFCloseL
    - TIFFCurrentDirOffset
    - EQUAL
    - GDALOpenInfo*::AreSiblingFilesLoaded
    - GTiffDataset::GTiffDataset
    - TIFFReadDirectory
    - atol
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GTiffDataset::OpenDir(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4714,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pTable
    - nTableEntries
    argTypes:
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4718
      start: 4705
    functionDepth: 1
    functionLinenumber: 4705
    functionLinenumberEnd: 4718
    functionName: ConvertTransferFunctionToString
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - CPLSPrintf
    linkageType: ''
    returnType: CPLString
    signature: "CPLString ConvertTransferFunctionToString(const uint16_t *pTable,\n
      \                                                uint32_t nTableEntries)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4735,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4740,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4743,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4756,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4758,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4761,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4769,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4773,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4775,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4776,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4777,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4779,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4781,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4782,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4783,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4785,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4787,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4788,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4789,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4792,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4794,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4795,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4796,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4804,1
    - Dst: ConvertTransferFunctionToString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4806,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4809,1
    - Dst: ConvertTransferFunctionToString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4811,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4814,1
    - Dst: ConvertTransferFunctionToString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4816,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4822,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4824,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4825,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4826,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4827,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4829,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4831,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4832,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4833,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4839
      start: 4726
    functionDepth: 3
    functionLinenumber: 4726
    functionLinenumberEnd: 4839
    functionName: GTiffDataset::LoadICCProfile
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - static_cast<int>
    - ConvertTransferFunctionToString
    - TIFFGetField
    - CPLString
    - TIFFGetFieldDefaulted
    - GTiffDataset::SetMetadataItem
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LoadICCProfile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::SetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4863,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4871,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4872,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4881,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4888,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4893,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4896,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4899,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4902,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4905,1
    - Dst: TIFFIsCODECConfigured
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4909,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4915,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4921,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4936,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4936,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4938,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4941,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4944,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4951,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4955,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4956,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4959,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4964,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4965,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4969,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4971,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4979,1
    - Dst: GTiffDataset::ComputeBlocksPerColRowAndBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4986,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:4999,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5015,1
    - Dst: TIFFRGBAImageOK
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5027,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5051,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5058,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5067,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5082,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5085,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5095,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5097,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5097,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5113,1
    - Dst: TIFFScanlineSize64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5134,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5138,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5139,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5141,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5146,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5147,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5149,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5151,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5164,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5165,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5172,1
    - Dst: std::strtoll
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5172,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5179,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5179,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5184,1
    - Dst: GDALAdjustNoDataCloseToFloatMax
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5189,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5190,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5203,1
    - Dst: std::make_unique<GDALColorTable>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5211,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5219,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5220,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5227,1
    - Dst: gdal::tiff_common::TIFFColorMapTagToColorTable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5233,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5244,1
    - Dst: GTiffRGBABand::GTiffRGBABand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5244,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5246,1
    - Dst: GTiffSplitBitmapBand::GTiffSplitBitmapBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5246,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5248,1
    - Dst: GTiffSplitBand::GTiffSplitBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5248,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5250,1
    - Dst: GTiffBitmapBand::GTiffBitmapBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5250,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5252,1
    - Dst: GTiffOddBitsBand::GTiffOddBitsBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5252,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5254,1
    - Dst: GTiffRasterBand::GTiffRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5254,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5257,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5259,1
    - Dst: GTiffDataset::GetTIFFTags
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5274,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5279,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5280,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5286,1
    - Dst: CPLsnprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5288,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5289,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5296,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5298,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5299,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5306,1
    - Dst: std::string::assign
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5310,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5311,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5312,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5317,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5320,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5322,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5324,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5326,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5327,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5332,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5337,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5341,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5343,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5353,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5359,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5360,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5360,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5367,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5374,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5378,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5383,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5388,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5393,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5398,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5402,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5407,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5414,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5416,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5418,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5420,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5422,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5423,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5427,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5427,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5427,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5430,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5431,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5436,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5438,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5440,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5442,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5451,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5465,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5467,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5469,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5472,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5477,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5484,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5486,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5488,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5492,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5497,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5501,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5505,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5508,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5511,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5514,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5519,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5521,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5523,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5528,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5533,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5537,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5542,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5547,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5550,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5555,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5572,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5586,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5590,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5597,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5597,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5600,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5603,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5605,1
    - Dst: CPLAtofM
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5608,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5610,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5614,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5618,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5620,1
    - Dst: GDALGetColorInterpretationByName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5625,1
    - Dst: GTiffRasterBand*::m_oGTiffMDMD::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5629,1
    - Dst: GTiffRasterBand*::m_oGTiffMDMD::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5639,1
    - Dst: GTiffRasterBand*::m_oGTiffMDMD::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5643,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5649,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5657,1
    CyclomaticComplexity: 202
    EdgeCount: 202
    ICount: 380
    argCount: 5
    argNames:
    - hTIFFIn
    - nDirOffsetIn
    - eAccessIn
    - bAllowRGBAInterface
    - bReadGeoTransform
    argTypes:
    - TIFF*
    - toff_t
    - GDALAccess
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 5658
      start: 4849
    functionDepth: 3
    functionLinenumber: 4849
    functionLinenumberEnd: 5658
    functionName: GTiffDataset::OpenOffset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - TIFFRGBAImageOK
    - GTiffDataset::ComputeBlocksPerColRowAndBand
    - std::string::assign
    - CPLAtofM
    - GetRasterBand
    - CPLDebug
    - static_cast<uint32_t>
    - CPLString
    - GTiffDataset::GetTIFFTags
    - CPLGetConfigOption
    - std::string::c_str
    - GTiffDataset::SetMetadata
    - std::strtoll
    - gdal::tiff_common::TIFFColorMapTagToColorTable
    - GTiffRGBABand::GTiffRGBABand
    - TIFFIsCODECConfigured
    - GTiffSplitBand::GTiffSplitBand
    - static_cast<short>
    - GTiffOddBitsBand::GTiffOddBitsBand
    - CPLString::c_str
    - GTiffSplitBitmapBand::GTiffSplitBitmapBand
    - GTiffRasterBand*::m_oGTiffMDMD::SetMetadataItem
    - GTiffDataset::SetMetadataItem
    - GDALAdjustNoDataCloseToFloatMax
    - static_cast<signed char>
    - ReportError
    - CPLAtof
    - CPLTestBool
    - static_cast<int>
    - static_cast<float>
    - cpl::down_cast<GTiffRasterBand *>
    - std::make_unique<GDALColorTable>
    - GTiffDataset::SetDirectory
    - SetColorEntry
    - CPLString::Printf
    - static_cast<uint64_t>
    - STARTS_WITH_CI
    - CPLDestroyXMLNode
    - TIFFStripSize64
    - CPLParseXMLString
    - GTiffRasterBand::GTiffRasterBand
    - snprintf
    - TIFFTileSize64
    - CPLFree
    - static_cast<int64_t>
    - GTiffBitmapBand::GTiffBitmapBand
    - SetBand
    - GDALGetColorInterpretationByName
    - CPLGetXMLNode
    - reset
    - EQUAL
    - TIFFScanlineSize64
    - max
    - TIFFGetField
    - CPLsnprintf
    - TIFFSetField
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - GTiffRasterBand*::m_oGTiffMDMD::SetMetadata
    - memcpy
    - std::strtoull
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::OpenOffset(TIFF *hTIFFIn, toff_t nDirOffsetIn,\n
      \                               GDALAccess eAccessIn, bool bAllowRGBAInterface,\n
      \                               bool bReadGeoTransform)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5774,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5778,1
    - Dst: CPLGetDirnameSafe
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5784,1
    - Dst: VSIReadDirEx
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5785,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5785,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5786,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5788,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5789,1
    - Dst: CPLStringList::clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5790,1
    - Dst: TransferSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5792,1
    - Dst: CPLStringList::StealList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5792,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5795
      start: 5770
    functionDepth: 1
    functionLinenumber: 5770
    functionLinenumberEnd: 5795
    functionName: GTiffDataset::GetSiblingFiles
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 2
    functionsReached:
    - TransferSiblingFiles
    - CPLGetDirnameSafe
    - CPLDebug
    - GTiffDataset::GetSiblingFiles
    - VSIReadDirEx
    - CPLStringList::StealList
    - CPLStringList::clear
    - CPLStringList::size
    - std::string::c_str
    linkageType: ''
    returnType: CSLConstList
    signature: CSLConstList GTiffDataset::GetSiblingFiles()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5806,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5808,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5812,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5812,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5814,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5814,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5816,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5816,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5818,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5818,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5820,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5820,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5822
      start: 5801
    functionDepth: 1
    functionLinenumber: 5801
    functionLinenumberEnd: 5822
    functionName: GTiffDataset::IdentifyAuthorizedGeoreferencingSources
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - static_cast<signed char>
    - CSLFetchNameValueDef
    - CSLDestroy
    - CSLFindString
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::IdentifyAuthorizedGeoreferencingSources()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::IdentifyAuthorizedGeoreferencingSources
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5834,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5854,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5856,1
    - Dst: std::set::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5858,1
    - Dst: GTiffDataset::GTIFNew
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5864,1
    - Dst: GDALGTIFKeyGetSHORT
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5868,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5870,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5873,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5873,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5877,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5888,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5900,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5913,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5927,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5951,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5955,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5956,1
    - Dst: IsVertical
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5956,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5970,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5971,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:5980,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6016,1
    - Dst: gdal::GCP::fromC
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6032,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6033,1
    - Dst: GDALDeinitGCPs
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6041,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6042,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6047,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6059,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6061,1
    - Dst: GDALReadWorldFile2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6061,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6067,1
    - Dst: GDALReadWorldFile2
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6067,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6076,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6091,1
    - Dst: clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6095,1
    - Dst: emplace_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6099,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6099,1
    - Dst: back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6108,1
    - Dst: back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6109,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6121,1
    - Dst: importFromWkt
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6123,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6127,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6137,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6138,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6139,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6140,1
    - Dst: TryLoadXML
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6147,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6147,1
    - Dst: GTiffDataset::ApplyPamInfo
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6148,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 144
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 5828
    functionDepth: 4
    functionLinenumber: 5828
    functionLinenumberEnd: 6156
    functionName: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 5
    functionsReached:
    - std::set::insert
    - GetRasterBand
    - TryLoadXML
    - GTiffDataset::GTIFNew
    - GDALGTIFKeyGetSHORT
    - GTiffDataset::LookForProjection
    - GetRasterCount
    - CPLGetConfigOption
    - GTiffDataset::IdentifyAuthorizedGeoreferencingSources
    - CPL_TO_BOOL
    - GDALReadWorldFile2
    - static_cast<short>
    - GTIFFree
    - IsVertical
    - emplace_back
    - ReportError
    - IsEmpty
    - CPLTestBool
    - importFromWkt
    - cpl::down_cast<GTiffRasterBand *>
    - CPLSPrintf
    - GDALDeinitGCPs
    - CPLAssert
    - CPLFree
    - back
    - empty
    - gdal::GCP::fromC
    - GTiffDataset::GetSiblingFiles
    - TIFFGetField
    - GTiffDataset::ApplyPamInfo
    - clear
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LoadGeoreferencingAndPamIfNeeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6165,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6166,1
    - Dst: const_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6168,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6171,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6162
    functionDepth: 1
    functionLinenumber: 6162
    functionLinenumberEnd: 6172
    functionName: GTiffDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - empty
    - const_cast<GTiffDataset *>
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GTiffDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6181,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6183,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 6200
      start: 6178
    functionDepth: 5
    functionLinenumber: 6178
    functionLinenumberEnd: 6200
    functionName: GTiffDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - CPLFetchBool
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6209,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6211,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6212
      start: 6206
    functionDepth: 5
    functionLinenumber: 6206
    functionLinenumberEnd: 6212
    functionName: GTiffDataset::GetGCPCount
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 1
    functionsReached:
    - size
    - static_cast<int>
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: int
    signature: int GTiffDataset::GetGCPCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6221,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6223,1
    - Dst: const_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6225,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6227,1
    - Dst: IsEmpty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6228
      start: 6218
    functionDepth: 1
    functionLinenumber: 6218
    functionLinenumberEnd: 6228
    functionName: GTiffDataset::GetGCPSpatialRef
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - IsEmpty
    - empty
    - const_cast<GTiffDataset *>
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *GTiffDataset::GetGCPSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6237,1
    - Dst: gdal::GCP::c_ptr
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6240
      start: 6234
    functionDepth: 5
    functionLinenumber: 6234
    functionLinenumberEnd: 6240
    functionName: GTiffDataset::GetGCPs
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - gdal::GCP::c_ptr
    linkageType: ''
    returnType: GDAL_GCP
    signature: GDAL_GCP *GTiffDataset::GetGCPs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6248,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6257,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6260,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6264,1
    - Dst: BuildMetadataDomainList
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6270
      start: 6246
    functionDepth: 5
    functionLinenumber: 6246
    functionLinenumberEnd: 6270
    functionName: GTiffDataset::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CSLDestroy
    - BuildMetadataDomainList
    - CSLFindString
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: char
    signature: char **GTiffDataset::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6279,1
    - Dst: GTiffDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6281,1
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6285,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6288,1
    - Dst: GDALPamDataset::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6289,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6291,1
    - Dst: GDALDataset::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6293,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6296,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6297,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6298,1
    - Dst: GTiffDataset::LoadMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6299,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6301,1
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6302,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6304,1
    - Dst: GTiffDataset::LoadEXIFMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6305,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6307,1
    - Dst: GTiffDataset::LoadICCProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6308,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6310,1
    - Dst: GTiffDataset::LoadMDAreaOrPoint
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6311,1
    - Dst: GTiffDataset::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6313,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6276
    functionDepth: 5
    functionLinenumber: 6276
    functionLinenumberEnd: 6314
    functionName: GTiffDataset::GetMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 2
    functionsReached:
    - GDALDataset::GetMetadata
    - GTiffDataset::LoadMDAreaOrPoint
    - GDALPamDataset::GetMetadata
    - EQUAL
    - GTiffDataset::LoadICCProfile
    - GTiffDataset::GetMetadataItem
    - GTiffDataset::ScanDirectories
    - GTiffDataset::GetMetadata
    - GTiffDataset::LoadMetadata
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - GTiffDataset::LoadEXIFMetadata
    linkageType: ''
    returnType: char
    signature: char **GTiffDataset::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6324,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6329,1
    - Dst: GTiffDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6330,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6335,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6340,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6344,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6345,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6346,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6346,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6347,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6351,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6351,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6352,1
    - Dst: GTiffDataset::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6359,1
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6369,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6372,1
    - Dst: GDALPamDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6374,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6376,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6377,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6378,1
    - Dst: GTiffDataset::LoadMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6380,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6382,1
    - Dst: GTiffDataset::ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6384,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6386,1
    - Dst: GTiffDataset::LoadEXIFMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6388,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6390,1
    - Dst: GTiffDataset::LoadICCProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6392,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6394,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6395,1
    - Dst: GTiffDataset::LoadMDAreaOrPoint
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6397,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6399,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6403,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6407,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6407,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6412,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6414,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6417,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6417,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6417,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6422,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6428,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6430,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6434,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6437,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6437,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6437,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6439,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6441,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6444,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6447,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6452,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6456,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6460,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6462,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6464,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6466,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6468,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6470,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6473,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6477,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6479,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6481,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6483,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6485,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6487,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6493,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6496,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6498,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6499,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6503,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6511,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6513,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6515,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6523,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6527,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6530,1
    - Dst: GTiffDataset::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6538,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 105
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 6539
      start: 6320
    functionDepth: 5
    functionLinenumber: 6320
    functionLinenumberEnd: 6539
    functionName: GTiffDataset::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 3
    functionsReached:
    - static_cast<GUIntBig>
    - CPL_ARRAYSIZE
    - memcmp
    - GTiffDataset::GetMetadataItem
    - VSIFTellL
    - static_cast<vsi_l_offset>
    - std::string::c_str
    - GTiffDataset::LoadEXIFMetadata
    - CPLString::empty
    - OGRAPISpyOpen
    - CPLString::size
    - CPLString::c_str
    - strlen
    - GTiffDataset::SetMetadataItem
    - GTiffDataset::LoadMetadata
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    - GTiffDataset::LoadMDAreaOrPoint
    - GTiffDataset::IsBlockAvailable
    - static_cast<int>
    - VSIFSeekL
    - CPLSPrintf
    - min
    - GTiffDataset::LoadICCProfile
    - GDALPamDataset::GetMetadataItem
    - GDALGetDriverByName
    - std::unique_ptr<GDALDataset>
    - EQUAL
    - GTiffDataset::ScanDirectories
    - TIFFGetField
    linkageType: ''
    returnType: char
    signature: "char *GTiffDataset::GetMetadataItem(const char *pszName,\n                                          const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6551,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6551,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6554,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6554,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6564,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6569,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6569,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6574,1
    - Dst: EXIFExtractMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6579,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6579,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6586,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6589
      start: 6545
    functionDepth: 3
    functionLinenumber: 6545
    functionLinenumberEnd: 6589
    functionName: GTiffDataset::LoadEXIFMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - VSI_TIFFGetVSILFile
    - EXIFExtractMetadata
    - VSIFSeekL
    - CSLDestroy
    - TIFFClientdata
    - TIFFGetField
    - VSIFReadL
    - GTiffDataset::SetMetadata
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LoadEXIFMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6600,1
    - Dst: CPLGetExtensionSafe
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6600,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6600,1
    - Dst: GDALMDReaderManager::GDALMDReaderManager
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6612,1
    - Dst: GDALMDReaderManager::GetReader
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6613,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6614,1
    - Dst: GDALMDReaderBase*::FillMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6618,1
    - Dst: GDALMDReaderBase*::GetMetadataDomain
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6620,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6625,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6626,1
    - Dst: GDALMDReaderBase*::GetMetadataFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6630,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6637,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6641
      start: 6594
    functionDepth: 3
    functionLinenumber: 6594
    functionLinenumberEnd: 6641
    functionName: GTiffDataset::LoadMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 3
    functionsReached:
    - GDALMDReaderBase*::FillMetadata
    - GDALMDReaderManager::GetReader
    - GTiffDataset::SetMetadata
    - GetDescription
    - GDALMDReaderBase*::GetMetadataFiles
    - CSLDestroy
    - GDALMDReaderBase*::GetMetadataDomain
    - EQUAL
    - GTiffDataset::GetSiblingFiles
    - CPLGetExtensionSafe
    - GDALMDReaderManager::GDALMDReaderManager
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::LoadMetadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6651,1
    - Dst: VSIHasOptimizedReadMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6652,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6654,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6657
      start: 6647
    functionDepth: 1
    functionLinenumber: 6647
    functionLinenumberEnd: 6657
    functionName: GTiffDataset::HasOptimizedReadMultiRange
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - VSIHasOptimizedReadMultiRange
    - CPLTestBool
    - CPLGetConfigOption
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::HasOptimizedReadMultiRange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6666,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6669,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6675,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6675,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - strileData
    - nStrileSize
    argTypes:
    - GByte*
    - vsi_l_offset
    constantsTouched: []
    func_position:
      end: 6678
      start: 6663
    functionDepth: 0
    functionLinenumber: 6663
    functionLinenumberEnd: 6678
    functionName: CheckTrailer
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - memcpy
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool CheckTrailer(const GByte *strileData, vsi_l_offset nStrileSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6738,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6750,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6753,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6757,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6768,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6783,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6793,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6797,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6835,1
    - Dst: insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6846,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6847,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6857,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6863,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6863,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6864,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6865,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6867,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6869,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6871,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6878,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6886,1
    - Dst: CheckTrailer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6888,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6890,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6904,1
    - Dst: insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6909,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6910,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6915,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6927,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6928,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6931,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6941,1
    - Dst: CheckTrailer
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6944,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6946,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6960,1
    - Dst: m_oCacheStrileToOffsetByteCount::insert
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6966,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6967,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6972,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6981,1
    - Dst: VSI_TIFFHasCachedRanges
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6982,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6993,1
    - Dst: GTiffRasterBand*::TryGetLockedBlockRef
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:6999,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7002,1
    - Dst: OptimizedRetrievalOfOffsetSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7014,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7020,1
    - Dst: GTiffDataset::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7020,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7028,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7033,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7035,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7036,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7036,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7037,1
    - Dst: std::sort
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7048,1
    - Dst: std::vector::begin
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7048,1
    - Dst: std::vector::end
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7048,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7052,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7058,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7059,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7059,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7063,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7076,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7083,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7085,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7088,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7089,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7089,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7093,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7094,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7094,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7100,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7102,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7105,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7105,1
    - Dst: std::vector::back
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7105,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7108,1
    - Dst: VSIFReadMultiRangeL
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7118,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7118,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7118,1
    - Dst: std::map::empty
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7125,1
    - Dst: FillCacheStrileToOffsetByteCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7126,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7130,1
    - Dst: VSI_TIFFSetCachedRanges
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7139,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7140,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7140,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp:7145,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 180
    argCount: 9
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nBufXSize
    - nBufYSize
    - panBandMap
    - nBandCount
    - psExtraArg
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int*
    - int
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 7152
      start: 6680
    functionDepth: 3
    functionLinenumber: 6680
    functionLinenumberEnd: 7152
    functionName: GTiffDataset::CacheMultiRange
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset_read.cpp
    functionUses: 0
    functionsReached:
    - m_oCacheStrileToOffsetByteCount::insert
    - std::vector::size
    - GetRasterBand
    - CPLDebug
    - TIFFGetStrileByteCount
    - GTiffRasterBand*::TryGetLockedBlockRef
    - OptimizedRetrievalOfOffsetSize
    - GDALRasterBlock*::DropLock
    - std::vector::push_back
    - std::vector::end
    - VSI_TIFFGetVSILFile
    - VSI_TIFFSetCachedRanges
    - insert
    - CheckTrailer
    - std::vector::begin
    - std::sort
    - TIFFClientdata
    - GTiffDataset::IsBlockAvailable
    - static_cast<int>
    - FillCacheStrileToOffsetByteCount
    - cpl::down_cast<GTiffRasterBand *>
    - VSI_TIFFHasCachedRanges
    - CPLAssert
    - CPL_IGNORE_RET_VAL
    - static_cast<GByte *>
    - CPLFree
    - TIFFGetStrileOffset
    - size
    - static_cast<size_t>
    - VSIFReadMultiRangeL
    - std::pair
    - std::vector::back
    - std::map::empty
    - memcpy
    - CPL_LSBPTR32
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: void
    signature: "void *GTiffDataset::CacheMultiRange(int nXOff, int nYOff, int nXSize,\n
      \                                   int nYSize, int nBufXSize, int nBufYSize,\n
      \                                   const int *panBandMap, int nBandCount,\n
      \                                   GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetConfiguredCODECs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:40,1
    - Dst: _TIFFfree
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: HasZSTDCompression
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - TIFFGetConfiguredCODECs
    - _TIFFfree
    linkageType: ''
    returnType: bool
    signature: bool HasZSTDCompression()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:64,1
    - Dst: CPLGenerateTempFilenameSafe
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:66,1
    - Dst: CPLGetBasenameSafe
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:67,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pszFilename
    - pszExt
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: GetTmpFilename
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLGetBasenameSafe
    - CPLGetConfigOption
    - VSIUnlink
    - CPLGenerateTempFilenameSafe
    linkageType: ''
    returnType: CPLString
    signature: CPLString GetTmpFilename(const char *pszFilename, const char *pszExt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poSrcDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: GetResampling
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterBand
    linkageType: ''
    returnType: char
    signature: char *GetResampling(GDALDataset *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:94,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:94,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:95,1
    - Dst: GDALDataTypeIsFloating
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:97,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:98,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:103,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:103,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - poSrcDS
    - pszPredictor
    argTypes:
    - GDALDataset*
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: GetPredictor
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALDataTypeIsFloating
    - GDALDataset*::GetRasterBand
    linkageType: ''
    returnType: char
    signature: char *GetPredictor(GDALDataset *poSrcDS, const char *pszPredictor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:122,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:124,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:125,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:125,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:128,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:130,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::haveAllLevelsSameTopLeft
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:133,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:135,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::haveAllLevelsSameTileSize
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:140,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:142,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::hasVariableMatrixWidth
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:147,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:149,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:154,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:156,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::crs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:158,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:161,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:162,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:164,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - papszOptions
    - osTargetSRS
    - poTM
    argTypes:
    - char**
    - CPLString
    - std::unique_ptr<gdal::TileMatrixSet>
    constantsTouched: []
    func_position:
      end: 176
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 176
    functionName: COGGetTargetSRS
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRSpatialReference::SetFromUserInput
    - std::unique_ptr<gdal::TileMatrixSet>::crs
    - std::unique_ptr<gdal::TileMatrixSet>::haveAllLevelsSameTileSize
    - OGRSpatialReference::OGRSpatialReference
    - CPLString::empty
    - CSLFetchNameValueDef
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - EQUAL
    - std::unique_ptr<gdal::TileMatrixSet>::haveAllLevelsSameTopLeft
    - CPLError
    - gdal::TileMatrixSet::parse
    - std::unique_ptr<gdal::TileMatrixSet>::hasVariableMatrixWidth
    linkageType: ''
    returnType: bool
    signature: "bool COGGetTargetSRS(const char *const *papszOptions,\n                            CPLString
      &osTargetSRS,\n                            std::unique_ptr<gdal::TileMatrixSet>
      &poTM)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COGGetTargetSRS
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - papszOptions
    - osTargetSRS
    argTypes:
    - char**
    - CPLString
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: COGGetTargetSRS
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 1
    functionsReached:
    - COGGetTargetSRS
    linkageType: ''
    returnType: bool
    signature: bool COGGetTargetSRS(const char *const *papszOptions, CPLString &osTargetSRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:189,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:190,1
    - Dst: GetResampling
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - poSrcDS
    - papszOptions
    argTypes:
    - GDALDataset*
    - char**
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: COGGetResampling
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - CSLFetchNameValueDef
    - GetResampling
    linkageType: ''
    returnType: std::string
    signature: "std::string COGGetResampling(GDALDataset *poSrcDS,\n                             const
      char *const *papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COGGetTargetSRS
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:205,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:208,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:209,1
    - Dst: OGRSpatialReference::OGRSpatialReference
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:212,1
    - Dst: OGRSpatialReference::SetFromUserInput
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:213,1
    - Dst: OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:215,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:225,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:229,1
    - Dst: auto::IsGeographic
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:230,1
    - Dst: auto::IsDerivedGeographic
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:231,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:251,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:252,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:253,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:254,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:255,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:256,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:257,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:257,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:258,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:259,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:260,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:262,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:262,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:264,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:264,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:265,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:265,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:265,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:266,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:267,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:270,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:271,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:271,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:272,1
    - Dst: GDALCreateGenImgProjTransformer2
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:284,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:284,1
    - Dst: static_cast<GDALTransformerInfo *>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:292,1
    - Dst: GDALSuggestedWarpOutput2
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:296,1
    - Dst: std::unique_ptr::get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:296,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:301,1
    - Dst: GDALDestroyGenImgProjTransformer
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:305,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:307,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:315,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:316,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:319,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:321,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:323,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:325,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::bbox
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:331,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::crs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:332,1
    - Dst: "dfMaxX <\n                    (bInvertAxis ? bbox.mLowerCornerY : bbox.mLowerCornerX)
        ||\n                dfMinX >"
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:334,1
    - Dst: "dfMaxY <\n                    (bInvertAxis ? bbox.mLowerCornerX : bbox.mLowerCornerY)
        ||\n                dfMinY >"
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:338,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:343,1
    - Dst: std::unique_ptr<gdal::TileMatrixSet>::tileMatrixList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:350,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:359,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:360,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:360,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:362,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:364,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:372,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:372,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:377,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:381,1
    - Dst: auto::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:381,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:383,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:388,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:392,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:396,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:407,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:427,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:427,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:427,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:427,1
    - Dst: std::abs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:444,1
    - Dst: std::round
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:444,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:467,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:479,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:480,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:487,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:491,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:492,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:493,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:494,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:501,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:501,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:503,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:504,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:506,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:509,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:510,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:511,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:512,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:513,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:514,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:517,1
    - Dst: std::round
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:517,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:518,1
    - Dst: std::round
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:518,1
    - Dst: COGGetResampling
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:520,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 148
    argCount: 14
    argNames:
    - poSrcDS
    - papszOptions
    - osResampling
    - osTargetSRS
    - nXSize
    - nYSize
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - dfRes
    - poTM
    - nZoomLevel
    - nAlignedLevels
    argTypes:
    - GDALDataset*
    - char**
    - CPLString
    - CPLString
    - int
    - int
    - double
    - double
    - double
    - double
    - double
    - std::unique_ptr<gdal::TileMatrixSet>
    - int
    - int
    constantsTouched: []
    func_position:
      end: 523
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 523
    functionName: COGGetWarpingCharacteristics
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - GDALTranslateOptionsFree
    - auto::IsDerivedGeographic
    - CPLDebug
    - "dfMaxX <\n                    (bInvertAxis ? bbox.mLowerCornerY : bbox.mLowerCornerX)
      ||\n                dfMinX >"
    - CPLError
    - auto::size
    - CPLStringList::CPLStringList
    - static_cast<GDALTransformerInfo *>
    - CPLStringList::List
    - CPLString::empty
    - OGRSpatialReference::SET_FROM_USER_INPUT_LIMITATIONS_get
    - COGGetTargetSRS
    - ToHandle
    - std::abs
    - GDALDataset*::GetSpatialRef
    - GDALDestroyGenImgProjTransformer
    - CSLTokenizeString2
    - std::unique_ptr::reset
    - GDALSuggestedWarpOutput2
    - GDALDataset*::GetGeoTransform
    - DIV_ROUND_UP
    - CPLStringList::size
    - auto::IsGeographic
    - CPLAtof
    - OGRSpatialReference::SetFromUserInput
    - COGGetResampling
    - static_cast<int>
    - FromHandle
    - CPLStringList::AddString
    - GDALTranslateOptionsNew
    - "dfMaxY <\n                    (bInvertAxis ? bbox.mLowerCornerX : bbox.mLowerCornerY)
      ||\n                dfMinY >"
    - CPLSPrintf
    - std::unique_ptr<gdal::TileMatrixSet>::bbox
    - min
    - GDALDataset*::GetRasterXSize
    - CPLStringList::SetNameValue
    - std::unique_ptr::get
    - OGRSpatialReference::OGRSpatialReference
    - std::unique_ptr<gdal::TileMatrixSet>::crs
    - GDALTranslate
    - CSLFetchNameValueDef
    - std::unique_ptr<gdal::TileMatrixSet>::tileMatrixList
    - GDALCreateGenImgProjTransformer2
    - EQUAL
    - max
    - std::round
    - fabs
    linkageType: ''
    returnType: bool
    signature: "bool COGGetWarpingCharacteristics(\n    GDALDataset *poSrcDS, const
      char *const *papszOptions,\n    CPLString &osResampling, CPLString &osTargetSRS,
      int &nXSize, int &nYSize,\n    double &dfMinX, double &dfMinY, double &dfMaxX,
      double &dfMaxY,\n    double &dfRes, std::unique_ptr<gdal::TileMatrixSet> &poTM,
      int &nZoomLevel,\n    int &nAlignedLevels)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COGGetWarpingCharacteristics
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - poSrcDS
    - papszOptions
    - osResampling
    - osTargetSRS
    - nXSize
    - nYSize
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    argTypes:
    - GDALDataset*
    - char**
    - CPLString
    - CPLString
    - int
    - int
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 541
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 541
    functionName: COGGetWarpingCharacteristics
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 1
    functionsReached:
    - COGGetWarpingCharacteristics
    linkageType: ''
    returnType: bool
    signature: "bool COGGetWarpingCharacteristics(GDALDataset *poSrcDS,\n                                  const
      char *const *papszOptions,\n                                  CPLString &osResampling,\n
      \                                 CPLString &osTargetSRS, int &nXSize,\n                                  int
      &nYSize, double &dfMinX, double &dfMinY,\n                                  double
      &dfMaxX, double &dfMaxY)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:549,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:550,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: COGHasWarpingOptions
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - CSLFetchNameValueDef
    - CSLFetchNameValue
    linkageType: ''
    returnType: bool
    signature: bool COGHasWarpingOptions(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:560,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:561,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:562,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:563,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:564,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aosOptions
    argTypes:
    - CPLStringList
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: COGRemoveWarpingOptions
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - CPLStringList::SetNameValue
    linkageType: ''
    returnType: void
    signature: void COGRemoveWarpingOptions(CPLStringList &aosOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:583,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:584,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:585,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:586,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:587,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:588,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:592,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:593,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:594,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:594,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:596,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:597,1
    - Dst: HasZSTDCompression
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:597,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:599,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:600,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:601,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:602,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:602,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:603,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:603,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:604,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:604,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:605,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:605,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:606,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:607,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:607,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:608,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:608,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:612,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:614,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:618,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:619,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:619,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:620,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:620,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:624,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:629,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:631,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:631,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:633,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:635,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:636,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:637,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:638,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:642,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:643,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:644,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:644,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:647,1
    - Dst: GDALWarpAppOptionsNew
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:661,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:662,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:673,1
    - Dst: GDALWarpAppOptionsSetProgress
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:674,1
    - Dst: GetTmpFilename
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:676,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:677,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:682,1
    - Dst: CPLConfigOptionSetter::CPLConfigOptionSetter
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:682,1
    - Dst: GDALWarp
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:686,1
    - Dst: GDALWarpAppOptionsFree
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:687,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:688,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:690,1
    - Dst: std::unique_ptr<GDALDataset>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:692,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 16
    argNames:
    - pszDstFilename
    - poSrcDS
    - papszOptions
    - osResampling
    - osTargetSRS
    - nXSize
    - nYSize
    - dfMinX
    - dfMinY
    - dfMaxX
    - dfMaxY
    - dfRes
    - pfnProgress
    - pProgressData
    - dfCurPixels
    - dfTotalPixelsToProcess
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - CPLString
    - CPLString
    - int
    - int
    - double
    - double
    - double
    - double
    - double
    - GDALProgressFunc
    - void*
    - double
    - double
    constantsTouched: []
    func_position:
      end: 693
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 693
    functionName: CreateReprojectedDS
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - CSLAddString
    - CPLDebug
    - CPLString
    - GDALWarpAppOptionsNew
    - GetTmpFilename
    - ToHandle
    - HasZSTDCompression
    - CPLConfigOptionSetter::CPLConfigOptionSetter
    - GDALWarpAppOptionsSetProgress
    - std::unique_ptr::reset
    - c_str
    - CPLTestBool
    - FromHandle
    - GDALDataset*::GetRasterBand
    - CPLSPrintf
    - GDALWarp
    - GDALDestroyScaledProgress
    - std::unique_ptr<GDALDataset>
    - GDALWarpAppOptionsFree
    - CSLFetchNameValueDef
    - CSLDestroy
    - fabs
    linkageType: ''
    returnType: std::unique_ptr<GDALDataset>
    signature: "std::unique_ptr<GDALDataset> CreateReprojectedDS(\n    const char
      *pszDstFilename, GDALDataset *poSrcDS,\n    const char *const *papszOptions,
      const CPLString &osResampling,\n    const CPLString &osTargetSRS, const int
      nXSize, const int nYSize,\n    const double dfMinX, const double dfMinY, const
      double dfMaxX,\n    const double dfMaxY, const double dfRes, GDALProgressFunc
      pfnProgress,\n    void *pProgressData, double &dfCurPixels, double &dfTotalPixelsToProcess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:722,1
    - Dst: GetDescription
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:731,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:732,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:733,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:735,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:737,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:739,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 744
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 744
    functionName: GDALCOGCreator::~GDALCOGCreator()
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - GetDescription
    - VSIUnlink
    - empty
    - reset
    linkageType: ''
    returnType: void
    signature: void GDALCOGCreator::~GDALCOGCreator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:759,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:761,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:766,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:771,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:773,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:775,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:786,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:795,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:799,1
    - Dst: COGHasWarpingOptions
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:815,1
    - Dst: COGGetWarpingCharacteristics
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:826,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:838,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:857,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:867,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:867,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:868,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:868,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:869,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:869,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:870,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:870,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:872,1
    - Dst: CreateReprojectedDS
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:878,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:885,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:895,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:895,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:896,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:896,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:897,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:897,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:901,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:902,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:903,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:904,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:905,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:907,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:908,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:912,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:912,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:913,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:914,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:915,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:916,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:917,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:918,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:921,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:922,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:923,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:924,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:925,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:930,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:930,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:931,1
    - Dst: GDALDataset*::ClearStatistics
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:939,1
    - Dst: GDALTranslateOptionsNew
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:952,1
    - Dst: const_cast<char **>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:952,1
    - Dst: GDALTranslate
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:953,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:953,1
    - Dst: GDALTranslateOptionsFree
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:955,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:958,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:958,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:959,1
    - Dst: CreateVRTWithOrWithoutStats
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:965,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:976,1
    - Dst: CreateVRTWithOrWithoutStats
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:983,1
    - Dst: ClearStatistics
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:986,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:989,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:990,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:994,1
    - Dst: std::unique_ptr::tileMatrixList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:994,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1004,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1008,1
    - Dst: std::unique_ptr::tileMatrixList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1033,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1043,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1043,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1053,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1054,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1059,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1059,1
    - Dst: auto::GetOverview
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1074,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1075,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1076,1
    - Dst: auto::GetXSize
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1076,1
    - Dst: auto::GetYSize
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1076,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1089,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1089,1
    - Dst: std::vector::emplace_back
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1101,1
    - Dst: std::pair
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1101,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1114,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1115,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1117,1
    - Dst: HasZSTDCompression
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1118,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1119,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1120,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1121,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1122,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1126,1
    - Dst: GetTmpFilename
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1127,1
    - Dst: auto::GetMaskBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1128,1
    - Dst: GTIFFBuildOverviewsEx
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1140,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1142,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1142,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1143,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1143,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1145,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1147,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1156,1
    - Dst: GetTmpFilename
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1157,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1160,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1160,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1175,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1177,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1179,1
    - Dst: GTIFFBuildOverviewsEx
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1182,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1184,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1184,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1185,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1185,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1187,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1189,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1196,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1197,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1198,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1199,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1200,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1201,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1207,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1211,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1213,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1214,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1215,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1217,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1219,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1220,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1221,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1223,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1223,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1225,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1226,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1228,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1228,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1230,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1231,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1233,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1235,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1236,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1239,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1241,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1242,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1243,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1245,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1248,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1255,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1259,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1260,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1261,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1262,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1263,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1264,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1265,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1266,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1267,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1267,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1269,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1271,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1275,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1277,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1280,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1282,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1285,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1287,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1291,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1294,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1295,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1296,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1299,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1300,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1315,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1317,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1319,1
    - Dst: CPLConfigOptionSetter::CPLConfigOptionSetter
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1319,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1324,1
    - Dst: CPLConfigOptionSetter::CPLConfigOptionSetter
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1324,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1326,1
    - Dst: CPLConfigOptionSetter::CPLConfigOptionSetter
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1326,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1332,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1333,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1335,1
    - Dst: CPLConfigOptionSetter::CPLConfigOptionSetter
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1336,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1346,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1346,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1357,1
    - Dst: CPLStringList::AddNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1361,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1362,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1364,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1366,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1367,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1371,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1374,1
    - Dst: GDALDriver*::CreateCopy
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1376,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1376,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1379,1
    - Dst: auto::FlushCache
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1382,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1384,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 278
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1386
      start: 750
    functionDepth: 4
    functionLinenumber: 750
    functionLinenumberEnd: 1386
    functionName: GDALCOGCreator::Create
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - auto::GetYSize
    - atoi
    - GDALTranslateOptionsFree
    - std::vector::size
    - CreateReprojectedDS
    - CSLAddString
    - CPLDebug
    - std::vector::emplace_back
    - CPLStringList::AddNameValue
    - CPLError
    - GDALDataset*::GetRasterCount
    - std::vector::push_back
    - CPLGetConfigOption
    - CPLString::empty
    - CPLStringList::CPLStringList
    - CSLFetchNameValue
    - CPLStringList::List
    - CreateVRTWithOrWithoutStats
    - GetTmpFilename
    - GTIFFBuildOverviewsEx
    - ClearStatistics
    - COGGetWarpingCharacteristics
    - ToHandle
    - GDALDataset*::GetSpatialRef
    - HasZSTDCompression
    - CPLConfigOptionSetter::CPLConfigOptionSetter
    - auto::GetOverview
    - auto::GetMaskBand
    - std::unique_ptr::reset
    - GDALDataset*::GetGeoTransform
    - COGHasWarpingOptions
    - std::vector::data
    - CPLAtof
    - const_cast<char **>
    - auto::GetXSize
    - CPLTestBool
    - static_cast<int>
    - FromHandle
    - STARTS_WITH_CI
    - GDALDataset*::GetRasterBand
    - GDALTranslateOptionsNew
    - CPLString::Printf
    - get
    - CPLSPrintf
    - std::unique_ptr::tileMatrixList
    - GDALDriver*::CreateCopy
    - CPLAssert
    - CPLStringList::SetNameValue
    - auto::FlushCache
    - GDALDataset*::ClearStatistics
    - GDALDestroyScaledProgress
    - GDALGetDriverByName
    - empty
    - GDALTranslate
    - CSLFetchNameValueDef
    - CSLDestroy
    - reset
    - std::pair
    - EQUAL
    - fabs
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *GDALCOGCreator::Create(const char *pszFilename,\n                                    GDALDataset
      *const poSrcDS,\n                                    char **papszOptions,\n
      \                                   GDALProgressFunc pfnProgress,\n                                    void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCOGCreator
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pszFilename
    - poSrcDS
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1399
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1399
    functionName: COGCreateCopy
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - GDALCOGCreator
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *COGCreateCopy(const char *pszFilename, GDALDataset *poSrcDS,\n
      \                                 int /*bStrict*/, char **papszOptions,\n                                  GDALProgressFunc
      pfnProgress,\n                                  void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALCOGDriver::InitializeCreationOptionList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1430,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1432
    functionName: GDALCOGDriver::GetMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - OGRWFSDataSource::GetMetadata
    - GDALCOGDriver::InitializeCreationOptionList
    linkageType: ''
    returnType: char
    signature: char **GetMetadata(const char *pszDomain) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffGetCompressValues
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1445
    functionName: GDALCOGDriver::GDALCOGDriver
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - GTiffGetCompressValues
    linkageType: ''
    returnType: void
    signature: void GDALCOGDriver::GDALCOGDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1451,1
    - Dst: GDALCOGDriver::InitializeCreationOptionList
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1453,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1456
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1456
    functionName: GDALCOGDriver::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - OGRDGNV8DataSource::GetMetadataItem
    - GDALCOGDriver::InitializeCreationOptionList
    linkageType: ''
    returnType: char
    signature: "char *GDALCOGDriver::GetMetadataItem(const char *pszName,\n                                           const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1507,1
    - Dst: gdal::TileMatrixSet::listPredefinedTileMatrixSets
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1590,1
    - Dst: gdal::TileMatrixSet::parse
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1593,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1593,1
    - Dst: auto::haveAllLevelsSameTopLeft
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1594,1
    - Dst: auto::haveAllLevelsSameTileSize
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1595,1
    - Dst: auto::hasVariableMatrixWidth
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1596,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1648,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1648,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1649
    functionName: GDALCOGDriver::InitializeCreationOptionList
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - gdal::TileMatrixSet::listPredefinedTileMatrixSets
    - auto::haveAllLevelsSameTileSize
    - c_str
    - auto::hasVariableMatrixWidth
    - auto::haveAllLevelsSameTopLeft
    - CPLString::c_str
    - gdal::TileMatrixSet::parse
    - SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void GDALCOGDriver::InitializeCreationOptionList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1654,1
    - Dst: GDALCOGDriver::GDALCOGDriver
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1657,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1658,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1659,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1660,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1662,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1663,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1665,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1670,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1672,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gtiff/cogdriver.cpp:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1677
    functionName: GDALRegister_COG
    functionSourceFile: /src/gdal/frmts/gtiff/cogdriver.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GetGDALDriverManager
    - GDALCOGDriver::GDALCOGDriver
    - auto::SetMetadataItem
    - auto::SetDescription
    linkageType: ''
    returnType: void
    signature: void GDALRegister_COG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 112
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 112
    functionName: GetJXLDataType
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int GetJXLDataType(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - dtype
    argTypes:
    - JxlDataType
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: GetJXLDataTypeSize
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetJXLDataTypeSize(JxlDataType dtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: JXLFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int JXLFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:139,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: JXLSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - assert
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int JXLSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:163,1
    - Dst: GetJXLDataType
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:176,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:179,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:200,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:201,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:209,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:210,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:213,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - tif
    - sp
    - module
    argTypes:
    - TIFF*
    - JXLState*
    - char*
    constantsTouched: []
    func_position:
      end: 223
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 223
    functionName: SetupUncompressedBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - GetJXLDataType
    - _TIFFfreeExt
    - _TIFFmallocExt
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int SetupUncompressedBuffer(TIFF *tif, JXLState *sp, const char *module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:231,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:235,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:237,1
    - Dst: SetupUncompressedBuffer
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:243,1
    - Dst: JxlDecoderCreate
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:248,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:251,1
    - Dst: JxlDecoderReset
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:257,1
    - Dst: JxlDecoderSubscribeEvents
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:261,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:265,1
    - Dst: JxlDecoderSetInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:269,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:273,1
    - Dst: JxlDecoderProcessInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:278,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:281,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:283,1
    - Dst: JxlDecoderGetBasicInfo
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:288,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:291,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:293,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:299,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:302,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:308,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:311,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:317,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:321,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:330,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:332,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:341,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:343,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:372,1
    - Dst: JxlDecoderGetExtraChannelInfo
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:373,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:396,1
    - Dst: JxlDecoderExtraChannelBufferSize
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:404,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:408,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:410,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:415,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:419,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:427,1
    - Dst: JxlDecoderGetExtraChannelInfo
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:428,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:440,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:455,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:463,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:470,1
    - Dst: JxlDecoderSetExtraChannelBuffer
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:476,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:481,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:483,1
    - Dst: JxlDecoderProcessInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:493,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:496,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:499,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:500,1
    - Dst: JxlDecoderSetImageOutBuffer
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:504,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:508,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:510,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:511,1
    - Dst: JxlDecoderProcessInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:515,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:518,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:521,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:522,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:533,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:549,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:559,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:569,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:579,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:589,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:599,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:609,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:620,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:638,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:648,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:654,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:658,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:663,1
    - Dst: JxlDecoderReleaseInput
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:666,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 229
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 675
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 675
    functionName: JXLPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - JxlDecoderSubscribeEvents
    - _TIFFfreeExt
    - assert
    - TIFFErrorExtR
    - JxlDecoderSetInput
    - TIFF*::tif_setupdecode
    - JxlDecoderCreate
    - JxlDecoderGetBasicInfo
    - JxlDecoderReset
    - DecoderState
    - JxlDecoderProcessInput
    - JxlDecoderExtraChannelBufferSize
    - SetupUncompressedBuffer
    - JxlDecoderSetImageOutBuffer
    - _TIFFmallocExt
    - memmove
    - JxlDecoderSetExtraChannelBuffer
    - TIFFWarningExtR
    - JxlDecoderReleaseInput
    - memset
    - JxlDecoderGetExtraChannelInfo
    - memcpy
    linkageType: ''
    returnType: int
    signature: int JXLPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:683,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:686,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:687,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:691,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:698,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 706
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 706
    functionName: JXLDecode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - assert
    - memcpy
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int JXLDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:710,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:712,1
    - Dst: GetJXLDataType
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 724
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 724
    functionName: JXLSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - assert
    - GetJXLDataType
    linkageType: ''
    returnType: int
    signature: int JXLSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:732,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:735,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:737,1
    - Dst: SetupUncompressedBuffer
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 743
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 743
    functionName: JXLPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - SetupUncompressedBuffer
    - assert
    - TIFF*::tif_setupencode
    linkageType: ''
    returnType: int
    signature: int JXLPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:751,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:754,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:755,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:760,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 768
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 768
    functionName: JXLEncode
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - assert
    - memcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JXLEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1160,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1162,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1167,1
    - Dst: JxlDecoderDestroy
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1170,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1172,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1176
    functionName: JXLCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - LState
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - JxlDecoderDestroy
    linkageType: ''
    returnType: void
    signature: void JXLCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1192,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1205,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1217,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1230,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1244,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1259
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1259
    functionName: JXLVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - LState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JXLVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1263,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1268,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1271,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1274,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1283
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1283
    functionName: JXLVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - LState
    - va_arg
    linkageType: ''
    returnType: int
    signature: int JXLVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1291,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1296,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1296,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1298,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1305,1
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1308,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/tif_jxl.c:1346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1348
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1348
    functionName: TIFFInitJXL
    functionSourceFile: /src/gdal/frmts/gtiff/tif_jxl.c
    functionUses: 0
    functionsReached:
    - LState
    - _TIFFMergeFields
    - assert
    - _TIFFcallocExt
    - TIFFArrayCount
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitJXL(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: ~GTiffSplitBand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GTiffSplitBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: GTiffSplitBand::IsBaseGTiffClass
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitband.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBaseGTiffClass() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: GTIFFGetThreadLocalLibtiffError
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int &GTIFFGetThreadLocalLibtiffError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - nCompression
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: GTIFFSupportsPredictor
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GTIFFSupportsPredictor(int nCompression)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: GTIFFSetThreadLocalInExternalOvr
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTIFFSetThreadLocalInExternalOvr(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:82,1
    - Dst: GDALRasterBand*::GetBlockSize
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:83,1
    - Dst: CPLIsPowerOfTwo
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:85,1
    - Dst: CPLIsPowerOfTwo
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:94,1
    - Dst: CPLErrorOnce
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - hBand
    - pnBlockXSize
    - pnBlockYSize
    argTypes:
    - GDALRasterBandH
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: GTIFFGetOverviewBlockSize
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 2
    functionsReached:
    - CPLIsPowerOfTwo
    - CPLErrorOnce
    - GDALRasterBand*::GetBlockSize
    - FromHandle
    linkageType: ''
    returnType: void
    signature: "void GTIFFGetOverviewBlockSize(GDALRasterBandH hBand, int *pnBlockXSize,\n
      \                              int *pnBlockYSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:117,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:118,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:118,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:118,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:120,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:121,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - nJpegQuality
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: GTIFFSetJpegQuality
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJpegQuality(GDALDatasetH hGTIFFDS, int nJpegQuality)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:138,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:138,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:138,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:140,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:141,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - nWebpLevel
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: GTIFFSetWebPLevel
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetWebPLevel(GDALDatasetH hGTIFFDS, int nWebpLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:157,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:158,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:158,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:158,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:160,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - bWebpLossless
    argTypes:
    - GDALDatasetH
    - bool
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: GTIFFSetWebPLossless
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetWebPLossless(GDALDatasetH hGTIFFDS, bool bWebpLossless)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:177,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:178,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:178,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:178,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:180,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:181,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - nJpegTablesMode
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: GTIFFSetJpegTablesMode
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJpegTablesMode(GDALDatasetH hGTIFFDS, int nJpegTablesMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:197,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:198,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:198,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:198,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:200,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:201,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - nZLevel
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: GTIFFSetZLevel
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetZLevel(GDALDatasetH hGTIFFDS, int nZLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:217,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:218,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:218,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:218,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:220,1
    - Dst: static_cast<signed char>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:221,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hGTIFFDS
    - nZSTDLevel
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: GTIFFSetZSTDLevel
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - static_cast<signed char>
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetZSTDLevel(GDALDatasetH hGTIFFDS, int nZSTDLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:237,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:238,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:238,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:238,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:240,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - hGTIFFDS
    - dfMaxZError
    argTypes:
    - GDALDatasetH
    - double
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: GTIFFSetMaxZError
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetMaxZError(GDALDatasetH hGTIFFDS, double dfMaxZError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:264,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:265,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:265,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:265,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:267,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGTIFFDS
    - bIsLossless
    argTypes:
    - GDALDatasetH
    - bool
    constantsTouched: []
    func_position:
      end: 276
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 276
    functionName: GTIFFSetJXLLossless
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJXLLossless(GDALDatasetH hGTIFFDS, bool bIsLossless)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:286,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:287,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:287,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:287,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:289,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGTIFFDS
    - nEffort
    argTypes:
    - GDALDatasetH
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: GTIFFSetJXLEffort
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJXLEffort(GDALDatasetH hGTIFFDS, int nEffort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:308,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:309,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:309,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:309,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:311,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGTIFFDS
    - fDistance
    argTypes:
    - GDALDatasetH
    - float
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: GTIFFSetJXLDistance
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJXLDistance(GDALDatasetH hGTIFFDS, float fDistance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:330,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:331,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:331,1
    - Dst: GDALGetDatasetDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:331,1
    - Dst: static_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:333,1
    - Dst: GTiffDataset*::ScanDirectories
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hGTIFFDS
    - fAlphaDistance
    argTypes:
    - GDALDatasetH
    - float
    constantsTouched: []
    func_position:
      end: 343
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 343
    functionName: GTIFFSetJXLAlphaDistance
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - static_cast<GTiffDataset *>
    - EQUAL
    - CPLAssert
    - GTiffDataset*::ScanDirectories
    - GDALGetDatasetDriver
    linkageType: ''
    returnType: void
    signature: void GTIFFSetJXLAlphaDistance(GDALDatasetH hGTIFFDS, float fAlphaDistance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:357,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:359,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:361,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pszValue
    - nDefault
    argTypes:
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: GTiffGetAlphaValue
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t GTiffGetAlphaValue(const char *pszValue, uint16_t nDefault)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:375,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:379,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:382,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:394,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:400,1
    - Dst: CSLFetchNameValueDef
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:400,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:404,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:405,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:410,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:413,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:426,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 31
    argCount: 3
    argNames:
    - hSrcDS
    - nPhotometric
    - papszCreationOptions
    argTypes:
    - GDALDatasetH
    - uint16_t
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 435
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 435
    functionName: GTIFFIsStandardColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - FromHandle
    - GDALDataset*::GetRasterBand
    - CSLFetchNameValueDef
    - EQUAL
    - GDALDataset*::GetRasterCount
    - CSLFetchNameValue
    linkageType: ''
    returnType: bool
    signature: "bool GTIFFIsStandardColorInterpretation(GDALDatasetH hSrcDS,\n                                        uint16_t
      nPhotometric,\n                                        CSLConstList papszCreationOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALExtractRPCInfoV2
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:450,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:468,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:469,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:470,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:471,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - hTIFF
    - papszRPCMD
    argTypes:
    - TIFF*
    - char**
    constantsTouched: []
    func_position:
      end: 474
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 474
    functionName: GTiffDatasetWriteRPCTag
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - GDALExtractRPCInfoV2
    - TIFFSetField
    linkageType: ''
    returnType: void
    signature: void GTiffDatasetWriteRPCTag(TIFF *hTIFF, char **papszRPCMD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:490,1
    - Dst: gdal::tiff_common::TIFFRPCTagToRPCMetadata
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: GTiffDatasetReadRPCTag
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - TIFFGetField
    - gdal::tiff_common::TIFFRPCTagToRPCMetadata
    linkageType: ''
    returnType: char
    signature: char **GTiffDatasetReadRPCTag(TIFF *hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:504,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dfNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: GTiffFormatGDALNoDataTagValue
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - CPLString::Printf
    - std::isnan
    linkageType: ''
    returnType: CPLString
    signature: CPLString GTiffFormatGDALNoDataTagValue(double dfNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:522,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:526,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:530,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:534,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:544,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:553,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:567,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:574,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:578,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:582,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:588,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - pszPhotometric
    - pszOptionKey
    - nCompression
    - pszInterleave
    - nBands
    - nPhotometric
    - nPlanarConfig
    argTypes:
    - char*
    - char*
    - int
    - char*
    - int
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 594
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 594
    functionName: GTIFFUpdatePhotometric
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool GTIFFUpdatePhotometric(const char *pszPhotometric,\n                            const
      char *pszOptionKey, int nCompression,\n                            const char
      *pszInterleave, int nBands,\n                            uint16_t &nPhotometric,
      uint16_t &nPlanarConfig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:617,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:621,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:625,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:632,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:634,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:637,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:640,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:641,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:642,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:643,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:644,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:647,1
    - Dst: GTiffDataset::CreateLL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:651,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:656,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:661,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:662,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:663,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:664,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:665,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:669,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:671,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:671,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:673,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:676,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:678,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:684,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:688,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:690,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:693,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:694,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:696,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:697,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:697,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:699,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - hTIFF
    - pszPhotometric
    - pszJPEGQuality
    - pszJPEGTablesMode
    argTypes:
    - TIFF*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 700
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 700
    functionName: GTiffWriteJPEGTables
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - XTIFFClose
    - GTiffDataset::CreateLL
    - CPLTestBool
    - static_cast<GPtrDiff_t>
    - VSIFCloseL
    - TIFFWriteCheck
    - TIFFSetDirectory
    - CSLDestroy
    - VSIUnlink
    - CPLSPrintf
    - TIFFWriteDirectory
    - TIFFGetField
    - CPL_IGNORE_RET_VAL
    - TIFFSetField
    - VSIMemGenerateHiddenFilename
    - TIFFWriteEncodedStrip
    - CPLGetConfigOption
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: "void GTiffWriteJPEGTables(TIFF *hTIFF, const char *pszPhotometric,\n
      \                         const char *pszJPEGQuality,\n                          const
      char *pszJPEGTablesMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:709,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:711,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:712,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:716,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:720,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:723,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:724,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:724,1
    - Dst: CPLErrorV
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:728,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 732
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 732
    functionName: GTiffWarningHandler
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - CPLDebug
    - CPLString::c_str
    - strstr
    - GTIFFGetThreadLocalLibtiffError
    - CPLFree
    - CPLString::vPrintf
    linkageType: ''
    returnType: void
    signature: void GTiffWarningHandler(const char *module, const char *fmt, va_list
      ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:739,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:741,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:742,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:746,1
    - Dst: CPLErrorV
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:757,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 760
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 760
    functionName: GTiffErrorHandler
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - strcmp
    - GTIFFGetThreadLocalLibtiffError
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GTiffErrorHandler(const char *module, const char *fmt, va_list
      ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:775,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:785,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:789,1
    - Dst: CPLString::vPrintf
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:792,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:793,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:793,1
    - Dst: CPLErrorV
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:797,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - tif
    - user_data
    - module
    - fmt
    - ap
    argTypes:
    - TIFF*
    - void*
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 801
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 801
    functionName: GTiffWarningHandlerExt
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - CPLDebug
    - CPLString::c_str
    - strstr
    - GTIFFGetThreadLocalLibtiffError
    - CPLFree
    - CPLString::vPrintf
    linkageType: ''
    returnType: int
    signature: "int GTiffWarningHandlerExt(TIFF *tif, void *user_data, const char
      *module,\n                           const char *fmt, va_list ap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:814,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:824,1
    - Dst: CPLErrorV
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:835,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - tif
    - user_data
    - module
    - fmt
    - ap
    argTypes:
    - TIFF*
    - void*
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 838
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 838
    functionName: GTiffErrorHandlerExt
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - strcmp
    - GTIFFGetThreadLocalLibtiffError
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int GTiffErrorHandlerExt(TIFF *tif, void *user_data, const char *module,\n
      \                        const char *fmt, va_list ap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:855,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:857,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:859,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:861,1
    - Dst: const_cast<char *>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:863,1
    - Dst: TIFFMergeFieldInfo
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 870
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 870
    functionName: GTiffTagExtender
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - TIFFMergeFieldInfo
    - const_cast<char *>
    linkageType: ''
    returnType: void
    signature: void GTiffTagExtender(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRegisterCODEC
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:902,1
    - Dst: TIFFRegisterCODEC
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:904,1
    - Dst: TIFFSetTagExtender
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:908,1
    - Dst: TIFFSetWarningHandler
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:911,1
    - Dst: TIFFSetErrorHandler
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:912,1
    - Dst: LibgeotiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 916
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 916
    functionName: GTiffOneTimeInit
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 6
    functionsReached:
    - TIFFSetErrorHandler
    - TIFFSetTagExtender
    - LibgeotiffOneTimeInit
    - TIFFRegisterCODEC
    - TIFFSetWarningHandler
    linkageType: ''
    returnType: void
    signature: void GTiffOneTimeInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFUnRegisterCODEC
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:927,1
    - Dst: TIFFUnRegisterCODEC
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 933
    functionName: GDALDeregister_GTiff
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - TIFFUnRegisterCODEC
    linkageType: ''
    returnType: void
    signature: void GDALDeregister_GTiff(GDALDriver *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nCompressionCode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 999
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 999
    functionName: GTIFFGetCompressionMethodName
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GTIFFGetCompressionMethodName(int nCompressionCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1011,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1021,1
    - Dst: TIFFIsCODECConfigured
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1027,1
    - Dst: static_cast<uint16_t>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1027,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1029,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - pszValue
    - pszVariableName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1036
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1036
    functionName: GTIFFGetCompressionMethod
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - CPLError
    - static_cast<uint16_t>
    - TIFFIsCODECConfigured
    linkageType: ''
    returnType: int
    signature: int GTIFFGetCompressionMethod(const char *pszValue, const char *pszVariableName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetConfiguredCODECs
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1061,1
    - Dst: _TIFFfree
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1128,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 8
    argNames:
    - bHasLZW
    - bHasDEFLATE
    - bHasLZMA
    - bHasZSTD
    - bHasJPEG
    - bHasWebP
    - bHasLERC
    - bForCOG
    argTypes:
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1131
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1131
    functionName: GTiffGetCompressValues
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - TIFFGetConfiguredCODECs
    - _TIFFfree
    linkageType: ''
    returnType: CPLString
    signature: "CPLString GTiffGetCompressValues(bool &bHasLZW, bool &bHasDEFLATE,\n
      \                                bool &bHasLZMA, bool &bHasZSTD, bool &bHasJPEG,\n
      \                                bool &bHasWebP, bool &bHasLERC, bool bForCOG)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 1143
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1143
    functionName: GTiffDriverSubdatasetInfo
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffDriverSubdatasetInfo(const std::string &fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1152,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1152,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1157,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1157,1
    - Dst: append
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1178,1
    - Dst: append
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1192
    functionName: GTiffDriverSubdatasetInfo::parseFileName
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - CSLTokenizeString2
    - c_str
    - STARTS_WITH_CI
    - append
    linkageType: ''
    returnType: void
    signature: void GTiffDriverSubdatasetInfo::parseFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1196,1
    - Dst: std::make_unique<GTiffDriverSubdatasetInfo>
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1199,1
    - Dst: std::unique_ptr::GetSubdatasetComponent
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1200,1
    - Dst: std::unique_ptr::GetPathComponent
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1201,1
    - Dst: std::unique_ptr::release
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1207
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1207
    functionName: GTiffDriverGetSubdatasetInfo
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetSubdatasetComponent
    - std::unique_ptr::GetPathComponent
    - STARTS_WITH_CI
    - std::unique_ptr::release
    - std::make_unique<GTiffDriverSubdatasetInfo>
    linkageType: ''
    returnType: GDALSubdatasetInfo
    signature: GDALSubdatasetInfo *GTiffDriverGetSubdatasetInfo(const char *pszFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1216,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1232,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1457,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1458,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1459,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1460,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1461,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1462,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1463,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1464,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1467,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1468,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1499,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1500,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1501,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1503,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1504,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1510,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1512,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1515,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1515,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1518,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1519,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1520,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1521,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1522,1
    - Dst: XSTRINGIFY
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1523,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1526,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/gtiff/geotiff.cpp:1535,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1536
    functionName: GDALRegister_GTiff
    functionSourceFile: /src/gdal/frmts/gtiff/geotiff.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - XSTRINGIFY
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_GTiff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:67,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:73,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:74,1
    - Dst: TIFFCreateDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:77,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:82,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:83,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:85,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:87,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:89,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:90,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:91,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:92,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:93,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:97,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:98,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:102,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:105,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:109,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:113,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:114,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:121,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:127,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:128,1
    - Dst: GTiffWriteJPEGTables
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:135,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:146,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:152,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:161,1
    - Dst: TIFFDeferStrileArrayWriting
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:166,1
    - Dst: TIFFWriteCheck
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:172,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:174,1
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:178,1
    - Dst: TIFFNumberOfDirectories
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:179,1
    - Dst: TIFFSetDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:182,1
    - Dst: static_cast<tdir_t>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:182,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:185,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:187,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 25
    argNames:
    - hTIFF
    - nSubfileType
    - nXSize
    - nYSize
    - nBitsPerPixel
    - nPlanarConfig
    - nSamples
    - nBlockXSize
    - nBlockYSize
    - bTiled
    - nCompressFlag
    - nPhotometric
    - nSampleFormat
    - nPredictor
    - panRed
    - panGreen
    - panBlue
    - nExtraSamples
    - panExtraSampleValues
    - pszMetadata
    - pszJPEGQuality
    - pszJPEGTablesMode
    - pszNoData
    - panLercAddCompressionAndVersion
    - bDeferStrileArrayWriting
    argTypes:
    - TIFF*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - unsigned short*
    - unsigned short*
    - unsigned short*
    - int
    - unsigned short*
    - char*
    - char*
    - char*
    - char*
    - uint32_t*
    - bool
    constantsTouched: []
    func_position:
      end: 190
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 190
    functionName: GTIFFWriteDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/gt_overview.cpp
    functionUses: 4
    functionsReached:
    - GTIFFSupportsPredictor
    - TIFFDeferStrileArrayWriting
    - TIFFWriteCheck
    - TIFFCreateDirectory
    - TIFFCurrentDirOffset
    - TIFFFreeDirectory
    - GTiffWriteJPEGTables
    - TIFFSetDirectory
    - static_cast<tdir_t>
    - TIFFSetSubDirectory
    - TIFFSetField
    - strlen
    - TIFFNumberOfDirectories
    - TIFFWriteDirectory
    linkageType: ''
    returnType: toff_t
    signature: "toff_t GTIFFWriteDirectory(TIFF *hTIFF, int nSubfileType, int nXSize,\n
      \                          int nYSize, int nBitsPerPixel, int nPlanarConfig,\n
      \                          int nSamples, int nBlockXSize, int nBlockYSize,\n
      \                          int bTiled, int nCompressFlag, int nPhotometric,\n
      \                          int nSampleFormat, int nPredictor,\n                           unsigned
      short *panRed, unsigned short *panGreen,\n                           unsigned
      short *panBlue, int nExtraSamples,\n                           unsigned short
      *panExtraSampleValues,\n                           const char *pszMetadata,
      const char *pszJPEGQuality,\n                           const char *pszJPEGTablesMode,
      const char *pszNoData,\n                           const uint32_t *panLercAddCompressionAndVersion,\n
      \                          bool bDeferStrileArrayWriting)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetNormalizedOvrResampling
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:203,1
    - Dst: auto::empty
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:204,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:215,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:222,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:223,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:225,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:225,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:226,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:236,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - pszResampling
    - poBaseDS
    - bIsForMaskBand
    - osMetadata
    argTypes:
    - char*
    - GDALDataset*
    - bool
    - CPLString
    constantsTouched: []
    func_position:
      end: 245
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 245
    functionName: GTIFFBuildOverviewMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gt_overview.cpp
    functionUses: 2
    functionsReached:
    - GDALGetNormalizedOvrResampling
    - GDALDataset*::GetMetadataItem
    - CPLString::Printf
    - auto::empty
    - EQUAL
    - CPLString::c_str
    linkageType: ''
    returnType: void
    signature: "void GTIFFBuildOverviewMetadata(const char *pszResampling,\n                                GDALDataset
      *poBaseDS, bool bIsForMaskBand,\n                                CPLString &osMetadata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - photometric
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 278
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 278
    functionName: GTIFFGetMaxColorChannels
    functionSourceFile: /src/gdal/frmts/gtiff/gt_overview.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFFGetMaxColorChannels(int photometric)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFFBuildOverviewsEx
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - pszFilename
    - nBands
    - papoBandList
    - nOverviews
    - panOverviewList
    - pszResampling
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - GDALRasterBand**
    - int
    - int*
    - char*
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: GTIFFBuildOverviews
    functionSourceFile: /src/gdal/frmts/gtiff/gt_overview.cpp
    functionUses: 0
    functionsReached:
    - GTIFFBuildOverviewsEx
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFFBuildOverviews(const char *pszFilename, int nBands,\n
      \                          GDALRasterBand *const *papoBandList, int nOverviews,\n
      \                          const int *panOverviewList,\n                           const
      char *pszResampling,\n                           GDALProgressFunc pfnProgress,
      void *pProgressData,\n                           CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:308,1
    - Dst: GTiffOneTimeInit
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:310,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:332,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:420,1
    - Dst: GDALRasterBand*::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:424,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:427,1
    - Dst: GDALRasterBand*::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:427,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:429,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:437,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:438,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:442,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:447,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:449,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:454,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:454,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:456,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:474,1
    - Dst: GTIFFGetCompressionMethod
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:489,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:498,1
    - Dst: GetDataset
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:519,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:524,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:534,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:552,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:554,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:558,1
    - Dst: GetColorTable
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:570,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:571,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:572,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:573,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:580,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:590,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:591,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:592,1
    - Dst: GTIFFUpdatePhotometric
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:602,1
    - Dst: GTIFFSupportsPredictor
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:613,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:619,1
    - Dst: VSIStatExL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:630,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:657,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:670,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:676,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:690,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:694,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:703,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:705,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:710,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:713,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:714,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:719,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:719,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:728,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:734,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:735,1
    - Dst: VSI_TIFFOpen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:737,1
    - Dst: CPLGetLastErrorNo
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:742,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:747,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:747,1
    - Dst: GetColorTable
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:761,1
    - Dst: static_cast<unsigned short *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:767,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:768,1
    - Dst: static_cast<unsigned short *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:769,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:770,1
    - Dst: static_cast<unsigned short *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:771,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:772,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:788,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:790,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:792,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:794,1
    - Dst: GetDataset
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:804,1
    - Dst: GTIFFBuildOverviewMetadata
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:809,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:813,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:820,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:820,1
    - Dst: CPLString::substr
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:821,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:821,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:822,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:825,1
    - Dst: CPLString::size
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:825,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:826,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:830,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:830,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:833,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:836,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:838,1
    - Dst: GDALGetColorInterpretationName
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:841,1
    - Dst: GTIFFGetOverviewBlockSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:853,1
    - Dst: GTiffFormatGDALNoDataTagValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:862,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:863,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:869,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:871,1
    - Dst: GTiffGetAlphaValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:871,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:872,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:876,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:883,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:888,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:910,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:913,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:914,1
    - Dst: GTIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:918,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:922,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:922,1
    - Dst: std::vector::empty
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:923,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:923,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:925,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:926,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:929,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:930,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:937,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:938,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:939,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:945,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:946,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:954,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:955,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:956,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:957,1
    - Dst: GetOptionValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:958,1
    - Dst: CPLStringList::SetNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:959,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:961,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:963,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:964,1
    - Dst: static_cast<TIFF *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:971,1
    - Dst: GDALDataset*::GetInternalHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:971,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:978,1
    - Dst: GTIFFSetJpegQuality
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:979,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:979,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:989,1
    - Dst: GTIFFSetWebPLevel
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:990,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:990,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:999,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1000,1
    - Dst: GTIFFSetWebPLossless
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1001,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1001,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1009,1
    - Dst: GTIFFSetJpegTablesMode
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1010,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1010,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1021,1
    - Dst: GTIFFSetZLevel
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1022,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1022,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1035,1
    - Dst: GTIFFSetZSTDLevel
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1036,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1036,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1047,1
    - Dst: GTIFFSetMaxZError
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1048,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1048,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1060,1
    - Dst: GTIFFSetJXLLossless
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1062,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1062,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1068,1
    - Dst: GTIFFSetJXLEffort
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1069,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1069,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1076,1
    - Dst: GTIFFSetJXLDistance
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1077,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1077,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1084,1
    - Dst: GTIFFSetJXLAlphaDistance
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1085,1
    - Dst: ToHandle
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1085,1
    - Dst: static_cast<int *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1099,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1099,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1100,1
    - Dst: std::sort
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1102,1
    - Dst: GTIFFSetThreadLocalInExternalOvr
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1105,1
    - Dst: GetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1114,1
    - Dst: GetColorTable
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1118,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1123,1
    - Dst: GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1123,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1124,1
    - Dst: auto::IsIdentity
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1125,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1126,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1127,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1127,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1128,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1129,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1130,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1130,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1131,1
    - Dst: static_cast<GDALRasterBand ***>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1138,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1138,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1142,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1143,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1144,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1149,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1151,1
    - Dst: GDALRasterBand*::GetOverviewCount
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1161,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1166,1
    - Dst: GDALOvLevelAdjust2
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1181,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1183,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1184,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1188,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1189,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1195,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1198,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1206,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1211,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1218,1
    - Dst: GDALRegenerateOverviewsMultiBand
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1221,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1228,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1230,1
    - Dst: static_cast<GDALRasterBand **>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1234,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1235,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1240,1
    - Dst: GDALRasterBand*::SetNoDataValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1245,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1252,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1253,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1258,1
    - Dst: SetNoDataValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1266,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1278,1
    - Dst: GDALRegenerateOverviewsEx
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1281,1
    - Dst: reinterpret_cast<GDALRasterBandH *>
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1283,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1288,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1291,1
    - Dst: GDALDataset*::FlushCache
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1298,1
    - Dst: GTIFFSetThreadLocalInExternalOvr
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1301,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1303,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gt_overview.cpp:1305,1
    CyclomaticComplexity: 193
    EdgeCount: 193
    ICount: 433
    argCount: 10
    argNames:
    - pszFilename
    - nBands
    - papoBandList
    - nOverviews
    - panOverviewList
    - pasOverviewSize
    - pszResampling
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - int
    - GDALRasterBand**
    - int
    - int*
    - std::pair<int, int>*
    - char*
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1308
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 1308
    functionName: GTIFFBuildOverviewsEx
    functionSourceFile: /src/gdal/frmts/gtiff/gt_overview.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - std::vector::size
    - CPLDebug
    - GDALRasterBand*::SetNoDataValue
    - GTIFFUpdatePhotometric
    - CPLStringList::CPLStringList
    - GTIFFSetZSTDLevel
    - CPLMalloc
    - GTIFFSetJpegTablesMode
    - GDALRasterBand*::GetColorTable
    - VSIFSeekL
    - GTIFFSetWebPLevel
    - GDALOvLevelAdjust2
    - auto::IsIdentity
    - GDALGetColorInterpretationName
    - TIFFSetField
    - GDALRegenerateOverviewsMultiBand
    - static_cast<TIFF *>
    - GTIFFGetCompressionMethod
    - GDALRasterBand*::GetMetadataItem
    - GDALDataset*::GetRasterCount
    - GTIFFSetWebPLossless
    - CSLFetchNameValue
    - CPLStringList::List
    - GetDataset
    - GetColorInterpretation
    - std::vector::empty
    - std::vector::data
    - GTiffFormatGDALNoDataTagValue
    - static_cast<int>
    - GTIFFSetJXLAlphaDistance
    - CPLGetLastErrorNo
    - min
    - CPLAssert
    - VSIFReadL
    - GDALDataTypeIsComplex
    - CPLFree
    - GTIFFSetZLevel
    - GDALRasterBand*::GetYSize
    - VSI_TIFFOpen
    - static_cast<int *>
    - GDALDestroyScaledProgress
    - GDALColorTable*::GetColorEntryAsRGB
    - EQUAL
    - GetRasterDataType
    - static_cast<GDALRasterBand ***>
    - GTIFFSetJXLLossless
    - GetColorTable
    - atoi
    - GTIFFSupportsPredictor
    - SetNoDataValue
    - std::vector::push_back
    - CPLString::resize
    - CPLGetConfigOption
    - VSIStatExL
    - static_cast<unsigned short *>
    - CPLString::empty
    - GTiffGetAlphaValue
    - static_cast<GDALRasterBand **>
    - ToHandle
    - CPLString::c_str
    - OGRAPISpyOpen
    - pfnProgress
    - strlen
    - GDALDataset*::FlushCache
    - GTIFFWriteDirectory
    - GDALDataset*::GetRasterBand
    - CPLSPrintf
    - CPLStringList::SetNameValue
    - CPLCalloc
    - static_cast<double>
    - VSIFCloseL
    - GTIFFSetJXLDistance
    - GDALRasterBand*::GetRasterDataType
    - GTIFFSetMaxZError
    - GetOptionValue
    - GDALRegenerateOverviewsEx
    - CPLError
    - XTIFFClose
    - GTiffDataset::ClampCTEntry
    - CPLString::substr
    - GTIFFSetJXLEffort
    - GDALRasterBand*::GetXSize
    - reinterpret_cast<GDALRasterBandH *>
    - std::sort
    - CPLString::size
    - GDALRasterBand*::GetOverview
    - GDALDataset*::GetInternalHandle
    - GTIFFBuildOverviewMetadata
    - GTiffOneTimeInit
    - STARTS_WITH_CI
    - CPLTestBool
    - GTIFFGetOverviewBlockSize
    - GDALRasterBand*::GetOverviewCount
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - GTIFFSetThreadLocalInExternalOvr
    - GTIFFSetJpegQuality
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFFBuildOverviewsEx(const char *pszFilename, int nBands,\n
      \                            GDALRasterBand *const *papoBandList,\n                             int
      nOverviews, const int *panOverviewList,\n                             const
      std::pair<int, int> *pasOverviewSize,\n                             const char
      *pszResampling,\n                             const char *const *papszOptions,\n
      \                            GDALProgressFunc pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: GTiffSplitBitmapBand::GTiffSplitBitmapBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp
    functionUses: 1
    functionsReached:
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void GTiffSplitBitmapBand::GTiffSplitBitmapBand(GTiffDataset *poDSIn,
      int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: GTiffSplitBitmapBand::~GTiffSplitBitmapBand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffSplitBitmapBand::~GTiffSplitBitmapBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: GTiffSplitBitmapBand::IGetDataCoverageStatus
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GTiffSplitBitmapBand::IGetDataCoverageStatus(int, int, int, int,
      int,\n                                                 double *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:59,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:66,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:67,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:67,1
    - Dst: GTIFFGetThreadLocalLibtiffError
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:82,1
    - Dst: CPLErrorAccumulator::InstallForCurrentScope
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:90,1
    - Dst: TIFFReadScanline
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:91,1
    - Dst: CPLErrorAccumulator::GetErrors
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:95,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:97,1
    - Dst: msg::c_str
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:97,1
    - Dst: msg::find
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:102,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:111,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:130,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:132,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 136
    functionName: GTiffSplitBitmapBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - TIFFReadScanline
    - CPLErrorAccumulator::GetErrors
    - static_cast<GByte *>
    - msg::find
    - Crystalize
    - CPLErrorAccumulator::InstallForCurrentScope
    - TIFFScanlineSize
    - GTIFFGetThreadLocalLibtiffError
    - VSI_MALLOC_VERBOSE
    - msg::c_str
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffSplitBitmapBand::IReadBlock(int /* nBlockXOff */, int
      nBlockYOff,\n                                        void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: GTiffSplitBitmapBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffsplitbitmapband.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffSplitBitmapBand::IWriteBlock(int /* nBlockXOff */,\n                                         int
      /* nBlockYOff */,\n                                         void * /* pImage
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:32,1
    - Dst: GDALPamRasterBand::SetDefaultRAT
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - poRAT
    argTypes:
    - GDALRasterAttributeTable*
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: GTiffRasterBand::SetDefaultRAT
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - GDALPamRasterBand::SetDefaultRAT
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetDefaultRAT(const GDALRasterAttributeTable
      *poRAT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:44,1
    - Dst: WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:65,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:91,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:92,1
    - Dst: GetDirty
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:99,1
    - Dst: DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:101,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:111,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:113,1
    - Dst: LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:118,1
    - Dst: DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:126,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:147,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:154,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:155,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:161,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:163,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:167,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:167,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:172,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:174,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:178,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:179,1
    - Dst: WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:186,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 195
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 195
    functionName: GTiffRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - GetDirty
    - static_cast<GPtrDiff_t>
    - GDALRasterBlock*::GetDirty
    - WriteEncodedTileOrStrip
    - cpl::down_cast<GTiffRasterBand *>
    - DropLock
    - GetRasterBand
    - LoadBlockBuf
    - GDALCopyWords64
    - CPLDebug
    - Crystalize
    - GDALRasterBlock*::GetDataRef
    - static_cast<GByte *>
    - GDALRasterBlock*::DropLock
    - GDALRasterBlock*::MarkClean
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffRasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff,\n
      \                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pszDescription
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: GTiffRasterBand::SetDescription
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::SetDescription(const char *pszDescription)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dfNewValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: GTiffRasterBand::SetOffset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetOffset(double dfNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dfNewValue
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: GTiffRasterBand::SetScale
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetScale(double dfNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:256,1
    - Dst: CPLString::compare
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:259,1
    - Dst: std::move
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pszNewValue
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: GTiffRasterBand::SetUnitType
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - CPLString::compare
    - std::move
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetUnitType(const char *pszNewValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:273,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:277,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:286,1
    - Dst: GTiffRasterBand::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:288,1
    - Dst: OGRWFSDataSource::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:292,1
    - Dst: GDALPamRasterBand::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:293,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:299,1
    - Dst: GDALPamRasterBand::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:302,1
    - Dst: GTiffRasterBand::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - papszMD
    - pszDomain
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 310
    functionName: GTiffRasterBand::SetMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - GTiffRasterBand::GetMetadata
    - GTiffRasterBand::SetMetadata
    - CPLDebug
    - EQUAL
    - LoadGeoreferencingAndPamIfNeeded
    - OGRWFSDataSource::GetMetadata
    - GDALPamRasterBand::SetMetadata
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetMetadata(char **papszMD, const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:321,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:325,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:334,1
    - Dst: OGRDGNV8DataSource::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:338,1
    - Dst: GDALPamRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:340,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:345,1
    - Dst: GDALPamRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:347,1
    - Dst: GTiffRasterBand::SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - pszName
    - pszValue
    - pszDomain
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 355
    functionName: GTiffRasterBand::SetMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 2
    functionsReached:
    - GDALPamRasterBand::SetMetadataItem
    - ReportError
    - OGRDGNV8DataSource::GetMetadataItem
    - CPLDebug
    - GTiffRasterBand::SetMetadataItem
    - EQUAL
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffRasterBand::SetMetadataItem(const char *pszName,\n                                        const
      char *pszValue,\n                                        const char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:364,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:373,1
    - Dst: GDALGetColorInterpretationName
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:376,1
    - Dst: GDALPamRasterBand::SetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:377,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:386,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:392,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:394,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:396,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:399,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:408,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:414,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:417,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:420,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:429,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:436,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:446,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:452,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:456,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:460,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:463,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:473,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:482,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:486,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:489,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:499,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:517,1
    - Dst: GTiffGetAlphaValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:521,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:522,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:531,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:534,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:542,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:546,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 70
    argCount: 1
    argNames:
    - eInterp
    argTypes:
    - GDALColorInterp
    constantsTouched: []
    func_position:
      end: 551
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 551
    functionName: GTiffRasterBand::SetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - ReportError
    - static_cast<int>
    - GetRasterBand
    - CPLDebug
    - GDALGetColorInterpretationName
    - TIFFGetField
    - GDALPamRasterBand::SetColorInterpretation
    - TIFFSetField
    - LoadGeoreferencingAndPamIfNeeded
    - memcpy
    - CPLFree
    - GTiffGetAlphaValue
    - CSLFetchNameValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetColorInterpretation(GDALColorInterp eInterp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:560,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:569,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:577,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:585,1
    - Dst: GDALPamRasterBand::GetColorTable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:593,1
    - Dst: GDALPamRasterBand::SetColorTable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:595,1
    - Dst: GDALPamRasterBand::SetColorInterpretation
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:596,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:603,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:607,1
    - Dst: TIFFUnsetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:610,1
    - Dst: m_poColorTable::reset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:613,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:642,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:645,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:647,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:649,1
    - Dst: GTiffDataset::ClampCTEntry
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:651,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:662,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:664,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:667,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:668,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:669,1
    - Dst: GDALPamRasterBand::SetColorTable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:678,1
    - Dst: m_poColorTable::reset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:681,1
    - Dst: GDALColorTable*::Clone
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:681,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 1
    argNames:
    - poCT
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 685
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 685
    functionName: GTiffRasterBand::SetColorTable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - m_poColorTable::reset
    - TIFFUnsetField
    - GTiffDataset::ClampCTEntry
    - GDALColorTable*::GetColorEntryCount
    - GDALColorTable*::GetColorEntryAsRGB
    - GDALColorTable*::Clone
    - GDALPamRasterBand::SetColorTable
    - GDALPamRasterBand::SetColorInterpretation
    - GDALPamRasterBand::GetColorTable
    - TIFFSetField
    - LoadGeoreferencingAndPamIfNeeded
    - CPLFree
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetColorTable(GDALColorTable *poCT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:702,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:705,1
    - Dst: static_cast<int64_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:708,1
    - Dst: GDALIsValueExactAs
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:711,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:714,1
    - Dst: static_cast<uint64_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:717,1
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:721,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:725,1
    - Dst: std::isnan
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:725,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:727,1
    - Dst: SetNoDataMembers
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:729,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:742,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:754,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:765,1
    - Dst: GDALPamRasterBand::GetNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:765,1
    - Dst: GDALPamRasterBand::DeleteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:769,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:774,1
    - Dst: GDALPamRasterBand::SetNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:775,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:780,1
    - Dst: SetNoDataMembers
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:782,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 1
    argNames:
    - dfNoData
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 786
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 786
    functionName: GTiffRasterBand::SetNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - GDALPamRasterBand::DeleteNoDataValue
    - SetNoDataMembers
    - GDALIsValueExactAs
    - static_cast<uint64_t>
    - GDALPamRasterBand::GetNoDataValue
    - CPLDebug
    - CPL_IGNORE_RET_VAL
    - LoadGeoreferencingAndPamIfNeeded
    - GTiffRasterBand::ResetNoDataValues
    - std::isnan
    - static_cast<int64_t>
    - GDALPamRasterBand::SetNoDataValue
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetNoDataValue(double dfNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:795,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:799,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:812,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:816,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:824,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:825,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:826,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:832,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:843,1
    - Dst: GDALPamRasterBand::GetNoDataValueAsInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:843,1
    - Dst: GDALPamRasterBand::DeleteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:847,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:852,1
    - Dst: GDALPamRasterBand::SetNoDataValueAsInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:853,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:858,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - nNoData
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 865
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 865
    functionName: GTiffRasterBand::SetNoDataValueAsInt64
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - ReportError
    - GDALPamRasterBand::DeleteNoDataValue
    - GDALPamRasterBand::SetNoDataValueAsInt64
    - GDALPamRasterBand::GetNoDataValueAsInt64
    - GetRasterBand
    - CPLDebug
    - CPL_IGNORE_RET_VAL
    - LoadGeoreferencingAndPamIfNeeded
    - GTiffRasterBand::ResetNoDataValues
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetNoDataValueAsInt64(int64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:874,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:879,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:892,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:896,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:904,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:905,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:906,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:912,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:923,1
    - Dst: GDALPamRasterBand::GetNoDataValueAsUInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:924,1
    - Dst: GDALPamRasterBand::DeleteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:928,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:933,1
    - Dst: GDALPamRasterBand::SetNoDataValueAsUInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:934,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:939,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - nNoData
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 949
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 949
    functionName: GTiffRasterBand::SetNoDataValueAsUInt64
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - ReportError
    - GDALPamRasterBand::DeleteNoDataValue
    - GetRasterBand
    - CPLDebug
    - CPL_IGNORE_RET_VAL
    - LoadGeoreferencingAndPamIfNeeded
    - GTiffRasterBand::ResetNoDataValues
    - GDALPamRasterBand::GetNoDataValueAsUInt64
    - GDALPamRasterBand::SetNoDataValueAsUInt64
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::SetNoDataValueAsUInt64(uint64_t nNoData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - bResetDatasetToo
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 983
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 983
    functionName: GTiffRasterBand::ResetNoDataValues
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::ResetNoDataValues(bool bResetDatasetToo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:992,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:996,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1009,1
    - Dst: GDALPamRasterBand::DeleteNoDataValue
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1013,1
    - Dst: GTiffRasterBand::ResetNoDataValues
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1016,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1020
    functionName: GTiffRasterBand::DeleteNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - ReportError
    - GDALPamRasterBand::DeleteNoDataValue
    - CPLDebug
    - LoadGeoreferencingAndPamIfNeeded
    - GTiffRasterBand::ResetNoDataValues
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::DeleteNoDataValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1033,1
    - Dst: GTiffRasterBand::GetNoDataValueAsInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1039,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1042,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1046,1
    - Dst: GTiffRasterBand::GetNoDataValueAsUInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1052,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1055,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1059,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1070,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1072,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1074,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp:1080,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1084
    functionName: GTiffRasterBand::NullBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_write.cpp
    functionUses: 0
    functionsReached:
    - GTiffRasterBand::GetNoDataValueAsUInt64
    - static_cast<GPtrDiff_t>
    - GDALCopyWords64
    - memset
    - GTiffRasterBand::GetNoDataValueAsInt64
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::NullBlock(void *pData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: GTiffDataset::GetTIFFTags
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: GTIFFTag
    signature: GTIFFTag *GTiffDataset::GetTIFFTags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:90,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:90,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:93,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:93,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:94,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:94,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:109,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:111,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 115
    functionName: GTiffDataset::GTiffDataset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 6
    functionsReached:
    - CPLGetConfigOption
    - SetAxisMappingStrategy
    - CPLTestBool
    - EQUAL
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::GTiffDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::Close
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: GTiffDataset::~GTiffDataset()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - GTiffDataset::Close
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::~GTiffDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:139,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:140,1
    - Dst: OGRAPISpyFileClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: GTiffDataset::Close
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 1
    functionsReached:
    - VSIUnlink
    - CPLFree
    - OGRAPISpyFileClose
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffDataset::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::tuple
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:160,1
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:163,1
    - Dst: GTiffDataset::SaveICCProfile
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:167,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:174,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:174,1
    - Dst: GDALPamDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:179,1
    - Dst: CPLVirtualMemFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:184,1
    - Dst: GTiffDataset::FlushCacheInternal
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:198,1
    - Dst: GTiffDataset::FillEmptyTiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:205,1
    - Dst: GTiffDataset::FlushCacheInternal
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:216,1
    - Dst: WaitCompletion
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:224,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:226,1
    - Dst: size
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:226,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:228,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:231,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:232,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:235,1
    - Dst: GTiffDataset::PushMetadataToPam
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:244,1
    - Dst: GDALPamDataset::FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:246,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:272,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:278,1
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:295,1
    - Dst: XTIFFClose
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:299,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:310,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:311,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:315,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:318,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:319,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:323,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:323,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:323,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:324,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:324,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:325,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:326,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:331,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:334,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:342,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:345,1
    - Dst: clear
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:350,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:352,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:355,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:359,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:362,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:365,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:368,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:371,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:374,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:377,1
    - Dst: std::tuple
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:382,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 383
    functionName: GTiffDataset::Finalize
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - WaitCompletion
    - GTiffDataset::FlushCacheInternal
    - memcmp
    - CPLGetConfigOption
    - XTIFFClose
    - strlen
    - GDALPamDataset::FlushCache
    - std::tuple
    - CPLTestBool
    - static_cast<int>
    - GDALPamDataset::SetMetadata
    - ReportError
    - VSIUnlink
    - VSIFSeekL
    - GTiffDataset::PushMetadataToPam
    - CPLAssert
    - VSIFReadL
    - GTiffDataset::FillEmptyTiles
    - CPLFree
    - size
    - GTiffDataset::Crystalize
    - VSIFCloseL
    - GTiffDataset::SaveICCProfile
    - CSLDestroy
    - VSIFWriteL
    - VSIFree
    - reset
    - CPLVirtualMemFree
    - memcpy
    - clear
    linkageType: ''
    returnType: std::tuple<CPLErr, bool>
    signature: std::tuple<CPLErr, bool> GTiffDataset::Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: GTiffDataset::CloseDependentDatasets
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTiffDataset::CloseDependentDatasets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 425
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 425
    functionName: GTiffDataset::IsWholeBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 2
    functionsReached:
    - TIFFIsTiled
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::IsWholeBlock(int nXOff, int nYOff, int nXSize,\n
      \                               int nYSize) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:446,1
    - Dst: static_cast<CPLErr>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:463,1
    - Dst: static_cast<CPLErr>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:472,1
    - Dst: GTiffDataset::IsMultiThreadedReadCompatible
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:478,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:496,1
    - Dst: auto::GetRasterDataType
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:497,1
    - Dst: GTiffDataset::HasOptimizedReadMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:500,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:502,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:502,1
    - Dst: GTiffDataset::CacheMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:508,1
    - Dst: GTiffDataset::CacheMultiRange
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:514,1
    - Dst: GTiffDataset::MultiThreadedRead
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:520,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:532,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:548,1
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:557,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:566,1
    - Dst: GTiffDataset::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:574,1
    - Dst: GTiffDataset::LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:580,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:608,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:609,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:612,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:614,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:615,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:617,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:625,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:627,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:629,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:633,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:643,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:645,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:646,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:649,1
    - Dst: GTiffDataset::WriteEncodedTileOrStrip
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:660,1
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:674,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:683,1
    - Dst: VSI_TIFFSetCachedRanges
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:684,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:684,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 86
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 689
      start: 431
    functionDepth: 6
    functionLinenumber: 431
    functionLinenumberEnd: 689
    functionName: GTiffDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CPLErr>
    - GTiffDataset::MultiThreadedRead
    - static_cast<const GByte *>
    - GTiffDataset::WriteEncodedTileOrStrip
    - static_cast<GPtrDiff_t>
    - VSI_TIFFGetVSILFile
    - GTiffDataset::HasOptimizedReadMultiRange
    - VSI_TIFFSetCachedRanges
    - OGRNGWDataset::IRasterIO
    - TIFFClientdata
    - GDALCopyWords64
    - GTiffDataset::IsMultiThreadedReadCompatible
    - GDALGetDataTypeSizeBytes
    - static_cast<int>
    - cpl::down_cast<GTiffRasterBand *>
    - TryOverviewRasterIO
    - GTiffDataset::CacheMultiRange
    - auto::GetRasterDataType
    - static_cast<size_t>
    - GDALGetDataTypeSize
    - GTiffDataset::Crystalize
    - GTiffDataset::LoadBlockBuf
    - VSIFree
    - memset
    - static_cast<GSpacing>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                               int nXSize, int nYSize, void *pData,\n
      \                              int nBufXSize, int nBufYSize,\n                               GDALDataType
      eBufType, int nBandCount,\n                               BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n                               GSpacing nLineSpace, GSpacing
      nBandSpace,\n                               GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: GetGTIFFKeysFlavor
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: GTIFFKeysFlavorEnum
    signature: GTIFFKeysFlavorEnum GetGTIFFKeysFlavor(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:712,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - papszOptions
    argTypes:
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 717
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 717
    functionName: GetGeoTIFFVersion
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    linkageType: ''
    returnType: GeoTIFFVersionEnum
    signature: GeoTIFFVersionEnum GetGeoTIFFVersion(CSLConstList papszOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::InitCompressionThreads
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:726,1
    - Dst: GetGTIFFKeysFlavor
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:728,1
    - Dst: GetGeoTIFFVersion
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bUpdateMode
    - papszOptions
    argTypes:
    - bool
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: GTiffDataset::InitCreationOrOpenOptions
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - GetGeoTIFFVersion
    - GTiffDataset::InitCompressionThreads
    - GetGTIFFKeysFlavor
    linkageType: ''
    returnType: void
    signature: "void GTiffDataset::InitCreationOrOpenOptions(bool bUpdateMode,\n                                             CSLConstList
      papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryGet
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:748,1
    - Dst: GTiffDataset::WaitCompletionForBlock
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:757,1
    - Dst: TIFFGetStrileByteCountWithErr
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:765,1
    - Dst: TIFFGetStrileOffsetWithErr
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:771,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:797,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:799,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:801,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:803,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 51
    argCount: 4
    argNames:
    - nBlockId
    - pnOffset
    - pnSize
    - pbErrOccurred
    argTypes:
    - int
    - vsi_l_offset*
    - vsi_l_offset*
    - bool*
    constantsTouched: []
    func_position:
      end: 834
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 834
    functionName: GTiffDataset::IsBlockAvailable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 9
    functionsReached:
    - TIFFGetStrileByteCountWithErr
    - TIFFGetField
    - TIFFGetStrileOffsetWithErr
    - tryGet
    - GTiffDataset::WaitCompletionForBlock
    linkageType: ''
    returnType: bool
    signature: "bool GTiffDataset::IsBlockAvailable(int nBlockId, vsi_l_offset *pnOffset,\n
      \                                   vsi_l_offset *pnSize, bool *pbErrOccurred)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_TIFFReOpen
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:849,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:857,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:865,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:867,1
    - Dst: GTiffDataset::SetDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - bReopenHandle
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 868
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 868
    functionName: GTiffDataset::ReloadDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 5
    functionsReached:
    - GTiffDataset::SetDirectory
    - VSI_TIFFReOpen
    - CPL_IGNORE_RET_VAL
    - TIFFSetSubDirectory
    - CPLError
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::ReloadDirectory(bool bReopenHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:877,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:879,1
    - Dst: GTiffDataset::RestoreVolatileParameters
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 891
    functionName: GTiffDataset::SetDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 4
    functionsReached:
    - GTiffDataset::RestoreVolatileParameters
    - TIFFCurrentDirOffset
    - GTiffDataset::Crystalize
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::SetDirectory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:903,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:903,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - hTIFF
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 908
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 908
    functionName: GTiffSetDeflateSubCodec
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 1
    functionsReached:
    - EQUAL
    - CPLGetConfigOption
    - TIFFSetField
    linkageType: ''
    returnType: void
    signature: void GTiffSetDeflateSubCodec(TIFF *hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:924,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:924,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:928,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:931,1
    - Dst: GTiffSetDeflateSubCodec
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:938,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:950,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:953,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:956,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:959,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:961,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:964,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:967,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:970,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:972,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:977,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:979,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:980,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:981,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 37
    argCount: 1
    argNames:
    - hTIFF
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 986
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 986
    functionName: GTiffDataset::RestoreVolatileParameters
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 2
    functionsReached:
    - CPLTestBool
    - CPLDebug
    - GTiffSetDeflateSubCodec
    - TIFFGetField
    - TIFFSetField
    - CPLGetConfigOption
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::RestoreVolatileParameters(TIFF *hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:994,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:995,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:998,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - l_nBands
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1015
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1015
    functionName: GTiffDataset::ComputeBlocksPerColRowAndBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 1
    functionsReached:
    - ReportError
    - DIV_ROUND_UP
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::ComputeBlocksPerColRowAndBand(int l_nBands)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - poParentDS
    argTypes:
    - GTiffDataset*
    constantsTouched: []
    func_position:
      end: 1030
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1030
    functionName: GTiffDataset::SetStructuralMDFromParent
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::SetStructuralMDFromParent(GTiffDataset *poParentDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1053,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1055,1
    - Dst: CPLStringList::CPLStringList
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1060,1
    - Dst: GTiffDataset::FlushDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1063,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1067,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1075,1
    - Dst: static_cast<toff_t *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1080,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1080,1
    - Dst: TIFFLastDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1089,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1091,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1105,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1109,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1113,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1122,1
    - Dst: GTiffDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1123,1
    - Dst: GTiffDataset*::SetStructuralMDFromParent
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1124,1
    - Dst: GTiffDataset*::oOvManager::TransferSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1126,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1127,1
    - Dst: GTiffDataset::GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1127,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1128,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1130,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1130,1
    - Dst: GTiffDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1132,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1132,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1138,1
    - Dst: GTiffDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1139,1
    - Dst: GTiffDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1139,1
    - Dst: static_cast<GTiffDataset **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1141,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1141,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1177,1
    - Dst: ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1178,1
    - Dst: GTiffDataset::SetStructuralMDFromParent
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1179,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1180,1
    - Dst: GTiffDataset::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1192,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1192,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1194,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1195,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1196,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1196,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1197,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1197,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1198,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1198,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1199,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1207,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1212,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1212,1
    - Dst: GTiffDataset::GTiffDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1223,1
    - Dst: GTiffDataset*::ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1224,1
    - Dst: GTiffDataset*::SetStructuralMDFromParent
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1225,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1226,1
    - Dst: GTiffDataset*::OpenOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1227,1
    - Dst: VSI_TIFFOpenChild
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1227,1
    - Dst: GTiffDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1229,1
    - Dst: GTiffDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1230,1
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1239,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1240,1
    - Dst: GTiffDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1242,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1243,1
    - Dst: GTiffDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1244,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1245,1
    - Dst: GTiffDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1246,1
    - Dst: GTiffDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1247,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1247,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1249,1
    - Dst: GTiffDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1251,1
    - Dst: GTiffDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1251,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1255,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1255,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1273,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1274,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1281,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1282,1
    - Dst: CPLParseXMLString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1284,1
    - Dst: CPLGetXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1286,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1294,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1304,1
    - Dst: CPLDestroyXMLNode
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1312,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1317,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1324,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1328,1
    - Dst: Printf
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1330,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1332,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1333,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1336,1
    - Dst: CPLStringList::AddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1337,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1341,1
    - Dst: TIFFCurrentDirOffset
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1345,1
    - Dst: TIFFSetSubDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1346,1
    - Dst: TIFFLastDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1347,1
    - Dst: TIFFReadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1348,1
    - Dst: GTiffDataset::ReloadDirectory
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1350,1
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1358,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1359,1
    - Dst: static_cast<GTiffDataset **>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1364,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1364,1
    - Dst: cpl::down_cast<GTiffDataset *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1368,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1369,1
    - Dst: dynamic_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1381,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1382,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1385,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1393,1
    - Dst: GTiffDataset::SetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1395,1
    - Dst: CPLStringList::List
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1395,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1039
    functionDepth: 4
    functionLinenumber: 1039
    functionLinenumberEnd: 1397
    functionName: GTiffDataset::ScanDirectories
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 7
    functionsReached:
    - static_cast<toff_t *>
    - GTiffDataset*::OpenOffset
    - GTiffDataset*::GetRasterYSize
    - GTiffDataset*::SetStructuralMDFromParent
    - assert
    - GetRasterBand
    - CPLDebug
    - GTiffDataset*::GetRasterXSize
    - TIFFSetSubDirectory
    - dynamic_cast<GTiffRasterBand *>
    - GetRasterCount
    - CPLGetConfigOption
    - CPLStringList::CPLStringList
    - GTiffDataset::SetMetadata
    - CPLStringList::List
    - CPLStrdup
    - CPLRealloc
    - cpl::down_cast<GTiffDataset *>
    - GTiffDataset*::GetRasterCount
    - CPLMalloc
    - CPLStringList::size
    - CPLTestBool
    - static_cast<int>
    - FromHandle
    - CPLDestroyXMLNode
    - CPLString::Printf
    - CPLStringList::AddString
    - GetRasterYSize
    - GTiffDataset*::oOvManager::TransferSiblingFiles
    - static_cast<GTiffDataset **>
    - GTiffDataset::OpenOffset
    - CPLParseXMLString
    - strstr
    - GTiffDataset*::ShareLockWithParentDataset
    - CPLFree
    - ShareLockWithParentDataset
    - GTiffDataset*::GetRasterBand
    - GTiffDataset::Crystalize
    - CPLGetXMLNode
    - TIFFCurrentDirOffset
    - GTiffDataset::ReloadDirectory
    - GTiffDataset::GetSiblingFiles
    - EQUAL
    - GTiffDataset::FlushDirectory
    - TIFFGetField
    - GTiffDataset::GTiffDataset
    - CSLDuplicate
    - VSI_TIFFOpenChild
    - Printf
    - TIFFReadDirectory
    - GTiffDataset::SetStructuralMDFromParent
    - GetRasterXSize
    - TIFFLastDirectory
    linkageType: ''
    returnType: void
    signature: void GTiffDataset::ScanDirectories()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1407
    functionName: GTiffDataset::GetInternalHandle
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *GTiffDataset::GetInternalHandle(const char * /* pszHandleName
      */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1416,1
    - Dst: GTiffDataset::LoadMetadata
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1420,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1425,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1428,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1434,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1436,1
    - Dst: GTiffDataset::LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1440,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1443,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1445,1
    - Dst: std::string
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1448,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1450,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1450,1
    - Dst: CSLAddString
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1452,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1452,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1413
    functionDepth: 5
    functionLinenumber: 1413
    functionLinenumberEnd: 1456
    functionName: GTiffDataset::GetFileList
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIStatL
    - std::string
    - CSLAddString
    - std::string::c_str
    - CSLFindString
    - GTiffDataset::LookForProjection
    - GTiffDataset::LoadMetadata
    - GTiffDataset::LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: char
    signature: char **GTiffDataset::GetFileList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset::FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1466,1
    - Dst: GTiffDataset::Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1467,1
    - Dst: CPLIsPowerOfTwo
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1472,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1474,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1475,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1483,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1484,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1486,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1487,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1495,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1513,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1514,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1517,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1518,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1544,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1545,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1558,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1559,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1573,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1575,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 55
    argCount: 1
    argNames:
    - sLayout
    argTypes:
    - GDALDataset::RawBinaryLayout
    constantsTouched: []
    func_position:
      end: 1583
      start: 1462
    functionDepth: 3
    functionLinenumber: 1462
    functionLinenumberEnd: 1583
    functionName: GTiffDataset::GetRawBinaryLayout
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - GTiffDataset::Crystalize
    - GetRasterBand
    - TIFFGetField
    - GTiffDataset::FlushCache
    - GDALDataTypeIsComplex
    - CPLIsPowerOfTwo
    - TIFFIsByteSwapped
    linkageType: ''
    returnType: bool
    signature: bool GTiffDataset::GetRawBinaryLayout(GDALDataset::RawBinaryLayout
      &sLayout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1593,1
    - Dst: CPLErrorV
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1594,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - pszMsg
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1597
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1597
    functionName: GTiffDatasetLibGeotiffErrorCallback
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLErrorV
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void GTiffDatasetLibGeotiffErrorCallback(GTIF *, int level,\n                                                const
      char *pszMsg, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFNewEx
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1605,1
    - Dst: GTIFAttachPROJContext
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1608,1
    - Dst: OSRGetProjTLSContext
      Src: /src/gdal/frmts/gtiff/gtiffdataset.cpp:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hTIFF
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1611
      start: 1603
    functionDepth: 4
    functionLinenumber: 1603
    functionLinenumberEnd: 1611
    functionName: GTiffDataset::GTIFNew
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffdataset.cpp
    functionUses: 4
    functionsReached:
    - OSRGetProjTLSContext
    - GTIFAttachPROJContext
    - GTIFNewEx
    linkageType: ''
    returnType: GTIF
    signature: GTIF *GTiffDataset::GTIFNew(TIFF *hTIFF)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fpIn
    - pTempBufferIn
    - nTempBufferSizeIn
    argTypes:
    - VSILFILE*
    - GByte*
    - size_t
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: FetchBufferDirectIO::FetchBufferDirectIO
    functionSourceFile: /src/gdal/frmts/gtiff/fetchbufferdirectio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FetchBufferDirectIO(VSILFILE *fpIn, GByte *pTempBufferIn,\n                        size_t
      nTempBufferSizeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FetchBufferDirectIO::FetchBytes
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - nOffset
    - nPixels
    - nDTSize
    - bIsByteSwapped
    - bIsComplex
    - nBlockId
    argTypes:
    - vsi_l_offset
    - int
    - int
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: FetchBufferDirectIO::FetchBytes
    functionSourceFile: /src/gdal/frmts/gtiff/fetchbufferdirectio.h
    functionUses: 1
    functionsReached:
    - FetchBufferDirectIO::FetchBytes
    linkageType: ''
    returnType: GByte
    signature: "GByte *FetchBytes(vsi_l_offset nOffset, int nPixels, int nDTSize,\n
      \                           bool bIsByteSwapped, bool bIsComplex, int nBlockId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:55,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:56,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:58,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:60,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:72,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:72,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:75,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:82,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:82,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:85,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:93,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/fetchbufferdirectio.h:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 7
    argNames:
    - pabyDstBuffer
    - nOffset
    - nPixels
    - nDTSize
    - bIsByteSwapped
    - bIsComplex
    - nBlockId
    argTypes:
    - GByte*
    - vsi_l_offset
    - int
    - int
    - bool
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 99
    functionName: FetchBufferDirectIO::FetchBytes
    functionSourceFile: /src/gdal/frmts/gtiff/fetchbufferdirectio.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - VSIFSeekL
    - GDALSwapWords
    - VSIFTellL
    - VSIFReadL
    - CPLError
    linkageType: ''
    returnType: bool
    signature: "bool FetchBytes(GByte *pabyDstBuffer, vsi_l_offset nOffset, int nPixels,\n
      \                   int nDTSize, bool bIsByteSwapped, bool bIsComplex,\n                    int
      nBlockId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: ~GTiffJPEGOverviewBand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GTiffJPEGOverviewBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffJPEGOverviewDS *>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:39,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: GTiffJPEGOverviewBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTiffJPEGOverviewDS *>
    - GetRasterBand
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GetColorInterpretation() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShareLockWithParentDataset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:56,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:58,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:67,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:67,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:69,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:72,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:76,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:76,1
    - Dst: VSIFileFromMemBuffer
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:76,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:80,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:81,1
    - Dst: SetBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:84,1
    - Dst: GTiffJPEGOverviewBand::GTiffJPEGOverviewBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:84,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:86,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:88,1
    - Dst: SetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - poParentDSIn
    - nOverviewLevelIn
    - pJPEGTable
    - nJPEGTableSizeIn
    argTypes:
    - GTiffDataset*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 91
    functionName: GTiffJPEGOverviewDS::GTiffJPEGOverviewDS
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 1
    functionsReached:
    - SetBand
    - VSIFileFromMemBuffer
    - VSIFCloseL
    - SetMetadataItem
    - GTiffJPEGOverviewBand::GTiffJPEGOverviewBand
    - CPL_IGNORE_RET_VAL
    - static_cast<GByte *>
    - VSIMemGenerateHiddenFilename
    - DIV_ROUND_UP
    - CPLMalloc
    - memcpy
    - ShareLockWithParentDataset
    linkageType: ''
    returnType: void
    signature: "void GTiffJPEGOverviewDS::GTiffJPEGOverviewDS(GTiffDataset *poParentDSIn,\n
      \                                        int nOverviewLevelIn,\n                                         const
      void *pJPEGTable,\n                                         int nJPEGTableSizeIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:99,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:100,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:101,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: GTiffJPEGOverviewDS::~GTiffJPEGOverviewDS()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 0
    functionsReached:
    - VSIUnlink
    - empty
    - reset
    linkageType: ''
    returnType: void
    signature: void GTiffJPEGOverviewDS::~GTiffJPEGOverviewDS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BlockBasedRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:124,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 134
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 134
    functionName: GTiffJPEGOverviewDS::IRasterIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 0
    functionsReached:
    - BlockBasedRasterIO
    - GDALDataset::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffJPEGOverviewDS::IRasterIO(\n    GDALRWFlag eRWFlag, int
      nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize, int
      nBufYSize, GDALDataType eBufType,\n    int nBandCount, BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffJPEGOverviewDS*::m_poParentDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:146,1
    - Dst: GTiffJPEGOverviewDS*::m_poParentDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:147,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:150,1
    - Dst: DIV_ROUND_UP
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffJPEGOverviewDS*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: GTiffJPEGOverviewBand::GTiffJPEGOverviewBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 1
    functionsReached:
    - DIV_ROUND_UP
    - GTiffJPEGOverviewDS*::m_poParentDS::GetRasterBand
    linkageType: ''
    returnType: void
    signature: "void GTiffJPEGOverviewBand::GTiffJPEGOverviewBand(GTiffJPEGOverviewDS
      *poDSIn,\n                                             int nBandIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<GTiffJPEGOverviewDS *>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:161,1
    - Dst: GTiffJPEGOverviewDS*::m_poParentDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:166,1
    - Dst: GTiffJPEGOverviewDS*::m_poParentDS::IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:186,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:189,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:190,1
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:206,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:207,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:218,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:222,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:225,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:226,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:229,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:229,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:230,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:232,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:233,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:237,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:237,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:248,1
    - Dst: GTiffJPEGOverviewDS*::m_osTmpFilename::c_str
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:248,1
    - Dst: VSIFPrintfL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:250,1
    - Dst: GTiffJPEGOverviewDS*::m_osTmpFilenameJPEGTable::c_str
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:264,1
    - Dst: GTiffJPEGOverviewDS*::m_poParentDS::GetDescription
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:265,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:266,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:269,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:269,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:273,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:273,1
    - Dst: GTiffJPEGOverviewDS*::m_poJPEGDS::reset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:285,1
    - Dst: OGRAPISpyOpen
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:286,1
    - Dst: GDALGetOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:295,1
    - Dst: GDALGetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:296,1
    - Dst: GTiffJPEGOverviewDS*::m_poJPEGDS::get
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:296,1
    - Dst: GTiffJPEGOverviewDS*::m_poJPEGDS::get
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:305,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:314,1
    - Dst: GTiffJPEGOverviewDS*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:319,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:321,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:336,1
    - Dst: GDALDataset*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:338,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:346,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:348,1
    - Dst: GTiffJPEGOverviewDS*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:350,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:352,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:353,1
    - Dst: GTiffJPEGOverviewDS*::GetRasterXSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:355,1
    - Dst: GTiffJPEGOverviewDS*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:357,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:359,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:360,1
    - Dst: GTiffJPEGOverviewDS*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:362,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:369,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:371,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp:374,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 379
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 379
    functionName: GTiffJPEGOverviewBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffjpegoverviewds.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<GTiffJPEGOverviewDS *>
    - GDALGetOverviewCount
    - GTiffJPEGOverviewDS*::m_poParentDS::GetRasterBand
    - GTiffJPEGOverviewDS*::m_poParentDS::IsBlockAvailable
    - GDALDataset*::GetRasterCount
    - GTiffJPEGOverviewDS*::m_osTmpFilenameJPEGTable::c_str
    - GTiffJPEGOverviewDS*::m_poJPEGDS::reset
    - GTiffJPEGOverviewDS*::m_poParentDS::GetDescription
    - static_cast<GPtrDiff_t>
    - VSI_TIFFGetVSILFile
    - GTiffJPEGOverviewDS*::m_osTmpFilename::c_str
    - OGRAPISpyOpen
    - GTiffJPEGOverviewDS*::GetRasterYSize
    - TIFFClientdata
    - GTiffJPEGOverviewDS*::GetRasterXSize
    - VSIGetMemFileBuffer
    - GDALGetRasterBand
    - VSIFPrintfL
    - static_cast<int>
    - GDALDataset*::GetRasterBand
    - VSIFSeekL
    - CPLSPrintf
    - VSIFOpenL
    - GDALDataset*::GetRasterXSize
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    - GTiffJPEGOverviewDS*::m_poJPEGDS::get
    - static_cast<size_t>
    - GDALDataset*::GetRasterYSize
    - VSIFCloseL
    - VSIFWriteL
    - VSIMemGenerateHiddenFilename
    - memset
    - memcpy
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffJPEGOverviewBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                        void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:38,1
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:40,1
    - Dst: GDALPamRasterBand::GetDefaultRAT
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:41,1
    - Dst: GDALCanFileAcceptSidecarFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:45,1
    - Dst: std::string
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:48,1
    - Dst: GetSiblingFiles
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:49,1
    - Dst: GDALCanReliablyUseSiblingFileList
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:52,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:52,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:59,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:59,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:60,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:60,1
    - Dst: GDALLoadVATDBF
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:62,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:62,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:64,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:67,1
    - Dst: GDALLoadVATDBF
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:68,1
    - Dst: get
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: GTiffRasterBand::GetDefaultRAT
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GetSiblingFiles
    - CPLGetFilename
    - VSIStatL
    - get
    - GDALCanReliablyUseSiblingFileList
    - CPLString::c_str
    - GDALPamRasterBand::GetDefaultRAT
    - strlen
    - std::string
    - LoadGeoreferencingAndPamIfNeeded
    - CPLString::resize
    - GDALCanFileAcceptSidecarFile
    - std::string::c_str
    - GDALLoadVATDBF
    linkageType: ''
    returnType: GDALRasterAttributeTable
    signature: GDALRasterAttributeTable *GTiffRasterBand::GetDefaultRAT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:82,1
    - Dst: GDALPamRasterBand::GetHistogram
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - dfMin
    - dfMax
    - nBuckets
    - panHistogram
    - bIncludeOutOfRange
    - bApproxOK
    - pfnProgress
    - pProgressData
    argTypes:
    - double
    - double
    - int
    - GUIntBig*
    - int
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: GTiffRasterBand::GetHistogram
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - GDALPamRasterBand::GetHistogram
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffRasterBand::GetHistogram(double dfMin, double dfMax, int
      nBuckets,\n                                     GUIntBig *panHistogram,\n                                     int
      bIncludeOutOfRange, int bApproxOK,\n                                     GDALProgressFunc
      pfnProgress,\n                                     void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:96,1
    - Dst: GDALPamRasterBand::GetDefaultHistogram
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - pdfMin
    - pdfMax
    - pnBuckets
    - ppanHistogram
    - bForce
    - pfnProgress
    - pProgressData
    argTypes:
    - double*
    - double*
    - int*
    - GUIntBig**
    - int
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: GTiffRasterBand::GetDefaultHistogram
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - GDALPamRasterBand::GetDefaultHistogram
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffRasterBand::GetDefaultHistogram(\n    double *pdfMin,
      double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram,\n    int bForce, GDALProgressFunc
      pfnProgress, void *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBaseGTiffClass
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:124,1
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:128,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:138,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:143,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:145,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:146,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:146,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:149,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:158,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:159,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:164,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:164,1
    - Dst: CommonDirectIOClassic
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:169,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:176,1
    - Dst: static_cast<vsi_l_offset *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:190,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:191,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:205,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:210,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:221,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:224,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:225,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:228,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:242,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:244,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:250,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:250,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:258,1
    - Dst: GDALDataTypeIsComplex
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:262,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:263,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:266,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:284,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:286,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:289,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:291,1
    - Dst: GDALCopyWords
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:311,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:321,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:322,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:323,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:324,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 77
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 327
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 327
    functionName: GTiffRasterBand::DirectIO
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - CPLDebug
    - static_cast<vsi_l_offset>
    - FlushCache
    - VSI_TIFFGetVSILFile
    - TIFFIsByteSwapped
    - static_cast<vsi_l_offset *>
    - GDALSwapWords
    - TIFFClientdata
    - Crystalize
    - GDALCopyWords
    - GDALGetDataTypeSizeBytes
    - static_cast<int>
    - GetAccess
    - static_cast<GByte *>
    - GDALDataTypeIsComplex
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - static_cast<size_t>
    - CommonDirectIOClassic
    - VSI_TIFFFlushBufferedWrite
    - TIFFGetField
    - TIFFIsTiled
    - IsBaseGTiffClass
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: int
    signature: "int GTiffRasterBand::DirectIO(GDALRWFlag eRWFlag, int nXOff, int nYOff,\n
      \                             int nXSize, int nYSize, void *pData,\n                              int
      nBufXSize, int nBufYSize,\n                              GDALDataType eBufType,
      GSpacing nPixelSpace,\n                              GSpacing nLineSpace,\n
      \                             GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:340,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:340,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:340,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:341,1
    - Dst: GDALRasterBand::GetVirtualMemAuto
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:343,1
    - Dst: GTiffRasterBand::GetVirtualMemAutoInternal
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:347,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:351,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:355,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:356,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:361,1
    - Dst: GDALRasterBand::GetVirtualMemAuto
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - eRWFlag
    - pnPixelSpace
    - pnLineSpace
    - papszOptions
    argTypes:
    - GDALRWFlag
    - int*
    - GIntBig*
    - char**
    constantsTouched: []
    func_position:
      end: 364
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 364
    functionName: GTiffRasterBand::GetVirtualMemAuto
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - EQUAL
    - GDALRasterBand::GetVirtualMemAuto
    - GTiffRasterBand::GetVirtualMemAutoInternal
    - CPLDebug
    linkageType: ''
    returnType: CPLVirtualMem
    signature: "CPLVirtualMem *GTiffRasterBand::GetVirtualMemAuto(GDALRWFlag eRWFlag,\n
      \                                                 int *pnPixelSpace,\n                                                  GIntBig
      *pnLineSpace,\n                                                  char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GTiffRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:377,1
    - Dst: GTiffRasterBand*::m_aSetPSelf::erase
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:386,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pUserData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: GTiffRasterBand::DropReferenceVirtualMem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffRasterBand*::m_aSetPSelf::erase
    - static_cast<GTiffRasterBand **>
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::DropReferenceVirtualMem(void *pUserData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:411,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:412,1
    - Dst: static_cast<GTiffRasterBand **>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:414,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:415,1
    - Dst: CPLVirtualMemDerivedNew
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:418,1
    - Dst: CPLVirtualMemGetSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:420,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:424,1
    - Dst: insert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:430,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:432,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:440,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:440,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:442,1
    - Dst: CPLIsVirtualMemFileMapAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:444,1
    - Dst: VSIFGetNativeFileDescriptorL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:445,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:447,1
    - Dst: GDALGetDataTypeSizeBits
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:453,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:454,1
    - Dst: TIFFIsByteSwapped
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:455,1
    - Dst: GetAccess
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:461,1
    - Dst: FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:463,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:464,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:464,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:469,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:476,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:477,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:499,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:505,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:507,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:511,1
    - Dst: VSI_CALLOC_VERBOSE
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:511,1
    - Dst: TIFFWriteEncodedStrip
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:516,1
    - Dst: VSI_TIFFFlushBufferedWrite
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:518,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:518,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:519,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:524,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:525,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:525,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:528,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:529,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:529,1
    - Dst: simple_max
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:530,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:532,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:533,1
    - Dst: static_cast<toff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:539,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:545,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:572,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:596,1
    - Dst: CPLVirtualMemFileMapNew
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:603,1
    - Dst: GTiffRasterBand::GetVirtualMemAutoInternal
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:616,1
    - Dst: CPLVirtualMemFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:619,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:625,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 115
    argCount: 4
    argNames:
    - eRWFlag
    - pnPixelSpace
    - pnLineSpace
    - papszOptions
    argTypes:
    - GDALRWFlag
    - int*
    - GIntBig*
    - char**
    constantsTouched: []
    func_position:
      end: 631
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 631
    functionName: GTiffRasterBand::GetVirtualMemAutoInternal
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 2
    functionsReached:
    - VSIFGetNativeFileDescriptorL
    - assert
    - CPLDebug
    - CPLVirtualMemGetSize
    - GTiffRasterBand::GetVirtualMemAutoInternal
    - static_cast<GTiffRasterBand **>
    - VSIFTellL
    - static_cast<vsi_l_offset>
    - FlushCache
    - simple_max
    - static_cast<GIntBig>
    - static_cast<GPtrDiff_t>
    - VSI_TIFFGetVSILFile
    - insert
    - CPLIsVirtualMemFileMapAvailable
    - CPLVirtualMemDerivedNew
    - VSIFTruncateL
    - CPLVirtualMemFileMapNew
    - TIFFClientdata
    - TIFFWriteEncodedStrip
    - GDALGetDataTypeSizeBytes
    - VSI_CALLOC_VERBOSE
    - GetAccess
    - GDALGetDataTypeSizeBits
    - VSIFSeekL
    - CPLAssert
    - static_cast<toff_t>
    - static_cast<GByte *>
    - CPLCalloc
    - CPLFree
    - static_cast<size_t>
    - VSI_TIFFFlushBufferedWrite
    - TIFFGetField
    - VSIFree
    - TIFFIsTiled
    - CPLVirtualMemFree
    - TIFFIsByteSwapped
    linkageType: ''
    returnType: CPLVirtualMem
    signature: "CPLVirtualMem *GTiffRasterBand::GetVirtualMemAutoInternal(GDALRWFlag
      eRWFlag,\n                                                          int *pnPixelSpace,\n
      \                                                         GIntBig *pnLineSpace,\n
      \                                                         char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:642,1
    - Dst: VSI_TIFFGetVSILFile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:649,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:649,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:664,1
    - Dst: VSIFGetRangeStatusL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:682,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:708,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:709,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:710,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:711,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:712,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:725,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 6
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nMaskFlagStop
    - pdfDataPct
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 727
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 727
    functionName: GTiffRasterBand::IGetDataCoverageStatus
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GIntBig>
    - IsBlockAvailable
    - VSI_TIFFGetVSILFile
    - min
    - max
    - TIFFClientdata
    - VSIFGetRangeStatusL
    - FlushCache
    linkageType: ''
    returnType: int
    signature: "int GTiffRasterBand::IGetDataCoverageStatus(int nXOff, int nYOff,
      int nXSize,\n                                            int nYSize, int nMaskFlagStop,\n
      \                                           double *pdfDataPct)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:736,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:739,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:741,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:741,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:745,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:747,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:747,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:764,1
    - Dst: static_cast<GIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:765,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:776,1
    - Dst: GTiffRasterBand::NullBlock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:778,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:789,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:791,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:795,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:796,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:796,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:809,1
    - Dst: ReadStrile
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:811,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:813,1
    - Dst: LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:824,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:827,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:828,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:829,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:840,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:841,1
    - Dst: GDALGetCacheMax64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:842,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:857,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:864,1
    - Dst: GDALDeinterleave
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:870,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:872,1
    - Dst: DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:879,1
    - Dst: GDALCopyWords64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:890,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:892,1
    - Dst: GTiffRasterBand::FillCacheForOtherBands
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:894,1
    - Dst: GTiffRasterBand::CacheMaskForBlock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:898,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 66
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 901
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 901
    functionName: GTiffRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - GetRasterBand
    - VSIFTellL
    - GTiffRasterBand::CacheMaskForBlock
    - GDALDeinterleave
    - static_cast<GIntBig>
    - static_cast<GPtrDiff_t>
    - DropLock
    - Crystalize
    - GDALRasterBlock*::GetDataRef
    - GDALCopyWords64
    - GDALGetDataTypeSizeBytes
    - GTiffRasterBand::FillCacheForOtherBands
    - IsBlockAvailable
    - ReportError
    - static_cast<int>
    - GTiffRasterBand::NullBlock
    - TIFFTileSize
    - CPLAssert
    - GDALGetCacheMax64
    - ReadStrile
    - static_cast<size_t>
    - TIFFStripSize
    - LoadBlockBuf
    - TIFFIsTiled
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,
      void *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSI_TIFFHasCachedRanges
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:912,1
    - Dst: TIFFClientdata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:912,1
    - Dst: cpl::down_cast<GTiffRasterBand *>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:914,1
    - Dst: m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:915,1
    - Dst: m_poMaskDS::m_oCacheStrileToOffsetByteCount::contains
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:916,1
    - Dst: auto::ComputeBlockId
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:917,1
    - Dst: auto::GetLockedBlockRef
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:920,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - nBlockXOff
    - nBlockYOff
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 925
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 925
    functionName: GTiffRasterBand::CacheMaskForBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 1
    functionsReached:
    - auto::ComputeBlockId
    - cpl::down_cast<GTiffRasterBand *>
    - m_poMaskDS::m_oCacheStrileToOffsetByteCount::contains
    - m_poMaskDS::GetRasterBand
    - VSI_TIFFHasCachedRanges
    - auto::GetLockedBlockRef
    - TIFFClientdata
    - GDALRasterBlock*::DropLock
    linkageType: ''
    returnType: void
    signature: void GTiffRasterBand::CacheMaskForBlock(int nBlockXOff, int nBlockYOff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:955,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:956,1
    - Dst: GDALGetCacheMax64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:957,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:967,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:974,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - nBlockXOff
    - nBlockYOff
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 981
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 981
    functionName: GTiffRasterBand::FillCacheForOtherBands
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GPtrDiff_t>
    - GetRasterBand
    - GDALGetCacheMax64
    - GDALRasterBlock*::DropLock
    - GDALGetDataTypeSizeBytes
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTiffRasterBand::FillCacheForOtherBands(int nBlockXOff, int
      nBlockYOff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 992
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 992
    functionName: GTiffRasterBand::GetDescription
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: char
    signature: char *GTiffRasterBand::GetDescription() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1006
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1006
    functionName: GTiffRasterBand::GetOffset
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: double
    signature: double GTiffRasterBand::GetOffset(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    functionName: GTiffRasterBand::GetScale
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: double
    signature: double GTiffRasterBand::GetScale(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1029,1
    - Dst: empty
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1030,1
    - Dst: LookForProjection
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1032,1
    - Dst: c_str
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1038
    functionName: GTiffRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - LookForProjection
    - c_str
    - empty
    linkageType: ''
    returnType: char
    signature: char *GTiffRasterBand::GetUnitType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1046,1
    - Dst: CSLDuplicate
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1048,1
    - Dst: GetDomainList
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: GTiffRasterBand::GetMetadataDomainList
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - GetDomainList
    - CSLDuplicate
    linkageType: ''
    returnType: char
    signature: char **GTiffRasterBand::GetMetadataDomainList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1058,1
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1060,1
    - Dst: GTiffRasterBand::GetMetadata
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1064
    functionName: GTiffRasterBand::GetMetadata
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 2
    functionsReached:
    - EQUAL
    - LoadGeoreferencingAndPamIfNeeded
    - GTiffRasterBand::GetMetadata
    linkageType: ''
    returnType: char
    signature: char **GTiffRasterBand::GetMetadata(const char *pszDomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1074,1
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1076,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1079,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1084,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1088,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1097,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1102,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1104,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1105,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1108,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1122,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1128,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1128,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1131,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1144,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1150,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1150,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1153,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1155,1
    - Dst: HasBlockCache
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1156,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1162,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1162,1
    - Dst: GDALRasterBand::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1165,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 46
    argCount: 2
    argNames:
    - pszName
    - pszDomain
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1168
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1168
    functionName: GTiffRasterBand::GetMetadataItem
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - sscanf
    - IsBlockAvailable
    - CPLSPrintf
    - EQUAL
    - TIFFGetField
    - HasBlockCache
    - LoadGeoreferencingAndPamIfNeeded
    - GDALRasterBand::GetMetadataItem
    - CPLFree
    linkageType: ''
    returnType: char
    signature: "char *GTiffRasterBand::GetMetadataItem(const char *pszName,\n                                             const
      char *pszDomain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: GTiffRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GTiffRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1189,1
    - Dst: m_poColorTable::get
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1195
    functionName: GTiffRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - m_poColorTable::get
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GTiffRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1204,1
    - Dst: GDALGetNoDataValueCastToDouble
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1237,1
    - Dst: GDALGetNoDataValueCastToDouble
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1245,1
    - Dst: GDALGetNoDataValueCastToDouble
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1253,1
    - Dst: GDALGetNoDataValueCastToDouble
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1261,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1267
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1267
    functionName: GTiffRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - GDALGetNoDataValueCastToDouble
    linkageType: ''
    returnType: double
    signature: double GTiffRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1276,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1280,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1288,1
    - Dst: GDALPamRasterBand::GetNoDataValueAsInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1325
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1325
    functionName: GTiffRasterBand::GetNoDataValueAsInt64
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 1
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - CPLError
    - GDALPamRasterBand::GetNoDataValueAsInt64
    linkageType: ''
    returnType: int64_t
    signature: int64_t GTiffRasterBand::GetNoDataValueAsInt64(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadGeoreferencingAndPamIfNeeded
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1334,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1338,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1346,1
    - Dst: GDALPamRasterBand::GetNoDataValueAsUInt64
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1355,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 1383
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1383
    functionName: GTiffRasterBand::GetNoDataValueAsUInt64
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 1
    functionsReached:
    - LoadGeoreferencingAndPamIfNeeded
    - CPLError
    - GDALPamRasterBand::GetNoDataValueAsUInt64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GTiffRasterBand::GetNoDataValueAsUInt64(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AreOverviewsEnabled
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1392,1
    - Dst: ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1395,1
    - Dst: GetJPEGOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1412
    functionName: GTiffRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - AreOverviewsEnabled
    - ScanDirectories
    - GetJPEGOverviewCount
    linkageType: ''
    returnType: int
    signature: int GTiffRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1421,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1429,1
    - Dst: GDALRasterBand::GetOverview
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1432,1
    - Dst: GetJPEGOverviewCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1439,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1443
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1443
    functionName: GTiffRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GetJPEGOverviewCount
    - ScanDirectories
    - GetRasterBand
    - GDALRasterBand::GetOverview
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GTiffRasterBand::GetOverview(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1451,1
    - Dst: m_poMaskDS::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1460,1
    - Dst: m_poBaseDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1470,1
    - Dst: GDALOpenFileGDBRasterBand::GetMaskFlags
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1474
    functionName: GTiffRasterBand::GetMaskFlags
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetMaskFlags
    - ScanDirectories
    - m_poBaseDS::GetRasterBand
    - m_poMaskDS::GetRasterCount
    linkageType: ''
    returnType: int
    signature: int GTiffRasterBand::GetMaskFlags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanDirectories
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1482,1
    - Dst: m_poExternalMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1486,1
    - Dst: m_poMaskDS::GetRasterCount
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1491,1
    - Dst: m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1492,1
    - Dst: m_poMaskDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1494,1
    - Dst: m_poBaseDS::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1500,1
    - Dst: GDALRasterBand*::GetOverview
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1506,1
    - Dst: GDALRasterBand*::GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1507,1
    - Dst: GetXSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1507,1
    - Dst: GDALRasterBand*::GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1508,1
    - Dst: GetYSize
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1508,1
    - Dst: GDALOpenFileGDBRasterBand::GetMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1517
    functionName: GTiffRasterBand::GetMaskBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetMaskBand
    - m_poMaskDS::GetRasterCount
    - GetXSize
    - GDALRasterBand*::GetXSize
    - m_poMaskDS::GetRasterBand
    - m_poExternalMaskDS::GetRasterBand
    - ScanDirectories
    - GDALRasterBand*::GetOverview
    - GetYSize
    - m_poBaseDS::GetRasterBand
    - GDALRasterBand*::GetYSize
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *GTiffRasterBand::GetMaskBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffRasterBand::GetMetadataItem
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    functionName: GTiffRasterBand::IsMaskBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffRasterBand::GetMetadataItem
    linkageType: ''
    returnType: bool
    signature: bool GTiffRasterBand::IsMaskBand() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffRasterBand::IsMaskBand
      Src: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp:1537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1543
    functionName: GTiffRasterBand::GetMaskValueRange
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrasterband_read.cpp
    functionUses: 0
    functionsReached:
    - GTiffRasterBand::IsMaskBand
    linkageType: ''
    returnType: GDALMaskValueRange
    signature: GDALMaskValueRange GTiffRasterBand::GetMaskValueRange() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffOddBitsBand
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: GTiffRasterBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffoddbitsband.h
    functionUses: 3
    functionsReached:
    - GTiffOddBitsBand
    linkageType: ''
    returnType: class GTiffOddBitsBand
    signature: class GTiffOddBitsBand GTiffRasterBand
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTiffDataset*::m_poColorTable::Clone
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:29,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:39,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:43,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:44,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:48,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 53
    functionName: GTiffBitmapBand::GTiffBitmapBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp
    functionUses: 1
    functionsReached:
    - GDALColorTable::GDALColorTable
    - GTiffDataset*::m_poColorTable::Clone
    - SetColorEntry
    linkageType: ''
    returnType: void
    signature: void GTiffBitmapBand::GTiffBitmapBand(GTiffDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: GTiffBitmapBand::~GTiffBitmapBand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffBitmapBand::~GTiffBitmapBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: GTiffBitmapBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp GTiffBitmapBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: GTiffBitmapBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffbitmapband.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *GTiffBitmapBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: ~GTiffRGBABand()
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~GTiffRGBABand()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: GTiffRGBABand::IsBaseGTiffClass
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffrgbaband.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBaseGTiffClass() const override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - paby
    - byMarker
    - nLen
    - pnLenTable
    argTypes:
    - GByte*
    - GByte
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: GTIFFFindNextTable
    functionSourceFile: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: GByte
    signature: "GByte *GTIFFFindNextTable(const GByte *paby, GByte byMarker,\n                                       int
      nLen, int *pnLenTable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:60,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:62,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:64,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:65,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:67,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:70,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:74,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:75,1
    - Dst: CPLPushErrorHandler
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:76,1
    - Dst: FromHandle
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:79,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:79,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:81,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:83,1
    - Dst: std::unique_ptr::reset
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:84,1
    - Dst: CPLPopErrorHandler
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:85,1
    - Dst: TIFFOpen
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:87,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:87,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:90,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:94,1
    - Dst: CPLMD5Init
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:99,1
    - Dst: GTIFFFindNextTable
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:105,1
    - Dst: CPLMD5Update
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:108,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:110,1
    - Dst: CPLMD5Final
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:115,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:116,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:118,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:119,1
    - Dst: TIFFClose
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:122,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:125,1
    - Dst: CSLDestroy
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - nBands
    - nPhotometric
    - nBitsPerSample
    argTypes:
    - int
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 128
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 128
    functionName: generate
    functionSourceFile: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp
    functionUses: 0
    functionsReached:
    - TIFFClose
    - assert
    - static_cast<const GByte *>
    - CPLMD5Update
    - GTIFFFindNextTable
    - printf
    - CPLMD5Init
    - CPLString::c_str
    - CPLPopErrorHandler
    - std::unique_ptr::reset
    - static_cast<int>
    - FromHandle
    - CPLString::Printf
    - VSIUnlink
    - CPLSPrintf
    - GDALGetDriverByName
    - TIFFOpen
    - CSLDestroy
    - CPLMD5Final
    - TIFFGetField
    - CPLPushErrorHandler
    - CSLSetNameValue
    linkageType: ''
    returnType: void
    signature: void generate(int nBands, uint16_t nPhotometric, uint16_t nBitsPerSample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALAllRegister
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:132,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:133,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:137,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:138,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:139,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:140,1
    - Dst: generate
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:145,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:146,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:148,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:150,1
    - Dst: generate
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:155,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/gdal/frmts/gtiff/generate_quant_table_md5sum.cpp
    functionUses: 43
    functionsReached:
    - printf
    - generate
    - GDALAllRegister
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 10
    argCount: 2
    argNames:
    - m_poGDSIn
    - nBandIn
    argTypes:
    - GTiffDataset*
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: GTiffOddBitsBand::GTiffOddBitsBand
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTiffOddBitsBand::GTiffOddBitsBand(GTiffDataset *m_poGDSIn, int
      nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:56,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:67,1
    - Dst: LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:81,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:100,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:114,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:128,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:141,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:152,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:155,1
    - Dst: CPLFloatToHalf
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:157,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:159,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:170,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:171,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:181,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:188,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:199,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:203,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:210,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:212,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:225,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:229,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:233,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:237,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:246,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:261,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:263,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:265,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:268,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:270,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:272,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:311,1
    - Dst: cpl::down_cast<GTiffOddBitsBand *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:315,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:316,1
    - Dst: GDALRasterBlock*::GetDirty
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:322,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:324,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:328,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:328,1
    - Dst: static_cast<GInt64>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:335,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:343,1
    - Dst: reinterpret_cast<const GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:347,1
    - Dst: CPLFloatToHalf
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:349,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:351,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:358,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:359,1
    - Dst: reinterpret_cast<const GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:372,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:380,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:391,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:393,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:402,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:407,1
    - Dst: static_cast<const GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:421,1
    - Dst: reinterpret_cast<const GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:425,1
    - Dst: reinterpret_cast<const GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:430,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:435,1
    - Dst: ReportError
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:444,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:459,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:461,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:463,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:466,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:468,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:470,1
    - Dst: GDALRasterBlock*::MarkClean
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:504,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:505,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 204
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 512
    functionName: GTiffOddBitsBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp
    functionUses: 0
    functionsReached:
    - GetRasterBand
    - static_cast<const GByte *>
    - static_cast<GByte>
    - static_cast<GInt64>
    - GDALRasterBlock*::DropLock
    - static_cast<GUInt32 *>
    - static_cast<GPtrDiff_t>
    - GDALRasterBlock*::GetDirty
    - Crystalize
    - GDALRasterBlock*::GetDataRef
    - ReportError
    - reinterpret_cast<const GUInt32 *>
    - static_cast<GUInt16 *>
    - CPLAssert
    - static_cast<GByte *>
    - reinterpret_cast<GUInt16 *>
    - GDALRasterBlock*::MarkClean
    - static_cast<size_t>
    - cpl::down_cast<GTiffOddBitsBand *>
    - LoadBlockBuf
    - memset
    - reinterpret_cast<const GUInt16 *>
    - CPLFloatToHalf
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffOddBitsBand::IWriteBlock(int nBlockXOff, int nBlockYOff,\n
      \                                    void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crystalize
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:522,1
    - Dst: IsBlockAvailable
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:534,1
    - Dst: NullBlock
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:537,1
    - Dst: LoadBlockBuf
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:548,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:559,1
    - Dst: GDALExpandPackedBitsToByteAt0Or255
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:565,1
    - Dst: GDALExpandPackedBitsToByteAt0Or1
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:570,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:595,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:600,1
    - Dst: CPLHalfToFloat
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:600,1
    - Dst: reinterpret_cast<const GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:601,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:610,1
    - Dst: CPLTripleToFloat
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:610,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:611,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:612,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:613,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:615,1
    - Dst: CPLTripleToFloat
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:615,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:616,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:617,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:618,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:645,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:662,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:670,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:699,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:710,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:711,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:712,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:713,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:715,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:716,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:717,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:718,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:745,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:755,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:759,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:764,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:766,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:774,1
    - Dst: static_cast<unsigned>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:778,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:795,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:796,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:800,1
    - Dst: static_cast<GUInt16>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:801,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:805,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:809,1
    - Dst: CacheMaskForBlock
      Src: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp:816,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 119
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 819
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 819
    functionName: GTiffOddBitsBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/gtiffoddbitsband.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - CPLHalfToFloat
    - NullBlock
    - static_cast<GByte>
    - GDALExpandPackedBitsToByteAt0Or1
    - static_cast<GUInt32 *>
    - static_cast<GUInt16>
    - static_cast<GPtrDiff_t>
    - static_cast<unsigned>
    - CacheMaskForBlock
    - Crystalize
    - IsBlockAvailable
    - static_cast<GUInt32>
    - CPLTripleToFloat
    - static_cast<GUInt16 *>
    - CPLAssert
    - static_cast<GByte *>
    - GDALExpandPackedBitsToByteAt0Or255
    - LoadBlockBuf
    - reinterpret_cast<const GUInt16 *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTiffOddBitsBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<VRTDataset *>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:37,1
    - Dst: auto::GetSingleSimpleSource
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - poSrcDS
    argTypes:
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: GetUnderlyingDataset
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 3
    functionsReached:
    - auto::GetSingleSimpleSource
    - dynamic_cast<VRTDataset *>
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *GetUnderlyingDataset(GDALDataset *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:57,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:60,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:67,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:68,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:70,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:88,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - fp
    argTypes:
    - VSILFILE*
    constantsTouched: []
    func_position:
      end: 95
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 95
    functionName: IsBaselineDCTJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - VSIFSeekL
    - VSIFReadL
    linkageType: ''
    returnType: bool
    signature: bool IsBaselineDCTJPEG(VSILFILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:104,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:107,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:109,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:109,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:109,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:113,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:119,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:119,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:124,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:124,1
    - Dst: IsBaselineDCTJPEG
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:125,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:131,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:134,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:136,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:137,1
    - Dst: GDALDataset*::GetRasterYSize
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:139,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:141,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:144,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:146,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:148,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:151,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:153,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:155,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:159,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:159,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - poSrcDS
    - papszCreateOptions
    argTypes:
    - GDALDataset*
    - char**
    constantsTouched: []
    func_position:
      end: 163
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 163
    functionName: GTIFF_CanDirectCopyFromJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset*::GetRasterYSize
    - GDALGetDriverShortName
    - GDALDataset*::GetDescription
    - VSIFCloseL
    - GDALDataset*::GetRasterBand
    - CPLSPrintf
    - IsBaselineDCTJPEG
    - EQUAL
    - VSIFOpenL
    - GDALDataset*::GetDriver
    - CPL_IGNORE_RET_VAL
    - CSLSetNameValue
    - GetUnderlyingDataset
    linkageType: ''
    returnType: int
    signature: "int GTIFF_CanDirectCopyFromJPEG(GDALDataset *poSrcDS,\n                                char
      **&papszCreateOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:176,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:180,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:180,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:186,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:187,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:187,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:188,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:193,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:193,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:197,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:197,1
    - Dst: GDALDataset*::GetInternalHandle
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:202,1
    - Dst: TIFFWriteRawStrip
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:203,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:206,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:214,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - poDS
    - poSrcDS
    - pfnProgress
    - pProgressData
    - bShouldFallbackToNormalCopyIfFail
    argTypes:
    - GDALDataset*
    - GDALDataset*
    - GDALProgressFunc
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 219
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 219
    functionName: GTIFF_DirectCopyFromJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - TIFFWriteRawStrip
    - GDALDataset*::GetDescription
    - VSIFCloseL
    - VSIFSeekL
    - VSIFOpenL
    - pfnProgress
    - VSIFTellL
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    - VSIFree
    - GDALDataset*::GetInternalHandle
    - static_cast<tmsize_t>
    - GetUnderlyingDataset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFF_DirectCopyFromJPEG(GDALDataset *poDS, GDALDataset *poSrcDS,\n
      \                               GDALProgressFunc pfnProgress,\n                                void
      *pProgressData,\n                                bool &bShouldFallbackToNormalCopyIfFail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:255,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:258,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:260,1
    - Dst: GDALGetDriverShortName
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:260,1
    - Dst: GDALDataset*::GetDriver
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:260,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:264,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:274,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:301,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:302,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:304,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:305,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:308,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:323,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:328,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:329,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:330,1
    - Dst: CSLSetNameValue
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:334,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 27
    argCount: 2
    argNames:
    - poSrcDS
    - papszCreateOptions
    argTypes:
    - GDALDataset*
    - char**
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: GTIFF_CanCopyFromJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDriverShortName
    - GDALDataset*::GetRasterBand
    - CSLFetchNameValue
    - EQUAL
    - GDALDataset*::GetDriver
    - CSLSetNameValue
    - GetUnderlyingDataset
    linkageType: ''
    returnType: int
    signature: int GTIFF_CanCopyFromJPEG(GDALDataset *poSrcDS, char **&papszCreateOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<jmp_buf *>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:347,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:353,1
    - Dst: longjmp
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: GTIFF_ErrorExitJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - static_cast<jmp_buf *>
    - longjmp
    linkageType: ''
    returnType: void
    signature: void GTIFF_ErrorExitJPEG(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:366,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:367,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:367,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:370,1
    - Dst: jpeg_vsiio_dest
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:372,1
    - Dst: jpeg_write_tables
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:387,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:389,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:389,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:393,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:393,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:394,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:394,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:397,1
    - Dst: std::string::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - hTIFF
    - sCInfo
    argTypes:
    - TIFF*
    - jpeg_compress_struct
    constantsTouched: []
    func_position:
      end: 398
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 398
    functionName: GTIFF_Set_TIFFTAG_JPEGTABLES
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - VSIGetMemFileBuffer
    - static_cast<int>
    - jpeg_write_tables
    - VSIFCloseL
    - VSIUnlink
    - VSIFOpenL
    - TIFFGetField
    - CPL_IGNORE_RET_VAL
    - TIFFSetField
    - VSIMemGenerateHiddenFilename
    - std::string::c_str
    - jpeg_vsiio_dest
    linkageType: ''
    returnType: void
    signature: "void GTIFF_Set_TIFFTAG_JPEGTABLES(TIFF *hTIFF,\n                                         jpeg_compress_struct
      &sCInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:406,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:414,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:414,1
    - Dst: setjmp
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:427,1
    - Dst: jpeg_abort_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:431,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:432,1
    - Dst: jpeg_abort_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:436,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:437,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:439,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:439,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:443,1
    - Dst: jpeg_CreateDecompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:448,1
    - Dst: jpeg_vsiio_src
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:450,1
    - Dst: jpeg_read_header
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:451,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:453,1
    - Dst: jpeg_CreateCompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:457,1
    - Dst: jpeg_copy_critical_parameters
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:459,1
    - Dst: GTIFF_Set_TIFFTAG_JPEGTABLES
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:460,1
    - Dst: jpeg_abort_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:462,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:463,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:464,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:471,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:475,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:486,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:490,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:491,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:495,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:514,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:520,1
    - Dst: jpeg_abort_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:530,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:531,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:532,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:534,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - hTIFF
    - poSrcDS
    argTypes:
    - TIFF*
    - GDALDataset*
    constantsTouched: []
    func_position:
      end: 538
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 538
    functionName: GTIFF_CopyFromJPEG_WriteAdditionalTags
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - jpeg_destroy_decompress
    - jpeg_read_header
    - CPLDebug
    - jpeg_CreateDecompress
    - jpeg_abort_compress
    - jpeg_copy_critical_parameters
    - GDALDataset*::GetDescription
    - jpeg_std_error
    - jpeg_destroy_compress
    - static_cast<float>
    - jpeg_abort_decompress
    - setjmp
    - jpeg_vsiio_src
    - VSIFOpenL
    - GTIFF_Set_TIFFTAG_JPEGTABLES
    - CPL_IGNORE_RET_VAL
    - jpeg_CreateCompress
    - GetUnderlyingDataset
    - VSIFCloseL
    - TIFFGetField
    - TIFFSetField
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTIFF_CopyFromJPEG_WriteAdditionalTags(TIFF *hTIFF, GDALDataset
      *poSrcDS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMemGenerateHiddenFilename
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:563,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:564,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:564,1
    - Dst: setjmp
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:570,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:572,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:572,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:573,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:573,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:592,1
    - Dst: jpeg_CreateCompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:597,1
    - Dst: jpeg_copy_critical_parameters
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:598,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:613,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:614,1
    - Dst: static_cast<jvirt_barray_ptr *>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:633,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:634,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:657,1
    - Dst: static_cast<JDIMENSION>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:659,1
    - Dst: jpeg_vsiio_dest
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:662,1
    - Dst: jpeg_write_coefficients
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:665,1
    - Dst: jpeg_suppress_tables
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:667,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:689,1
    - Dst: static_cast<JDIMENSION>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:690,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:704,1
    - Dst: static_cast<JDIMENSION>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:706,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:709,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:714,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:723,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:730,1
    - Dst: static_cast<JDIMENSION>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:732,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:735,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:740,1
    - Dst: jpeg_finish_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:749,1
    - Dst: jpeg_destroy_compress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:750,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:752,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:752,1
    - Dst: VSIGetMemFileBuffer
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:759,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:759,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:765,1
    - Dst: TIFFWriteRawTile
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:766,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:767,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:772,1
    - Dst: TIFFWriteRawStrip
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:773,1
    - Dst: static_cast<tmsize_t>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:774,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:778,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:778,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 1
    argNames:
    - psArgs
    argTypes:
    - GTIFF_CopyBlockFromJPEGArgs*
    constantsTouched: []
    func_position:
      end: 781
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 781
    functionName: GTIFF_CopyBlockFromJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - TIFFWriteRawTile
    - reinterpret_cast<j_common_ptr>
    - jpeg_write_coefficients
    - static_cast<vsi_l_offset>
    - static_cast<JDIMENSION>
    - jpeg_finish_compress
    - jpeg_copy_critical_parameters
    - TIFFWriteRawStrip
    - static_cast<jvirt_barray_ptr *>
    - jpeg_std_error
    - CPLString::c_str
    - jpeg_destroy_compress
    - VSIGetMemFileBuffer
    - setjmp
    - VSIUnlink
    - min
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - jpeg_CreateCompress
    - jpeg_suppress_tables
    - static_cast<tmsize_t>
    - VSIFCloseL
    - VSIMemGenerateHiddenFilename
    - memset
    - memcpy
    - jpeg_vsiio_dest
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr GTIFF_CopyBlockFromJPEG(GTIFF_CopyBlockFromJPEGArgs *psArgs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnderlyingDataset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:793,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:797,1
    - Dst: GDALDataset*::GetDescription
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:797,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:808,1
    - Dst: setjmp
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:810,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:812,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:812,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:813,1
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:817,1
    - Dst: jpeg_CreateDecompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:821,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:824,1
    - Dst: max
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:830,1
    - Dst: jpeg_vsiio_src
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:833,1
    - Dst: jpeg_read_header
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:834,1
    - Dst: jpeg_read_coefficients
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:836,1
    - Dst: static_cast<TIFF *>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:863,1
    - Dst: GDALDataset*::GetInternalHandle
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:863,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:864,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:866,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:867,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:872,1
    - Dst: CPLError
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:874,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:882,1
    - Dst: GTIFF_CopyBlockFromJPEG
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:916,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:918,1
    - Dst: jpeg_finish_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:929,1
    - Dst: jpeg_destroy_decompress
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:930,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp:932,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 5
    argNames:
    - poDS
    - poSrcDS
    - pfnProgress
    - pProgressData
    - bShouldFallbackToNormalCopyIfFail
    argTypes:
    - GDALDataset*
    - GDALDataset*
    - GDALProgressFunc
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 936
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 936
    functionName: GTIFF_CopyFromJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/gt_jpeg_copy.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TIFF *>
    - GTIFF_CopyBlockFromJPEG
    - jpeg_destroy_decompress
    - jpeg_read_header
    - static_cast<uint32_t>
    - CPLError
    - CPLGetConfigOption
    - jpeg_CreateDecompress
    - GDALDataset*::GetDescription
    - jpeg_std_error
    - jpeg_read_coefficients
    - pfnProgress
    - GDALDataset*::GetInternalHandle
    - jpeg_vsiio_src
    - setjmp
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL
    - GetUnderlyingDataset
    - VSIFCloseL
    - max
    - TIFFGetField
    - jpeg_finish_decompress
    - TIFFIsTiled
    - memset
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr GTIFF_CopyFromJPEG(GDALDataset *poDS, GDALDataset *poSrcDS,\n
      \                         GDALProgressFunc pfnProgress, void *pProgressData,\n
      \                         bool &bShouldFallbackToNormalCopyIfFail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:128,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:138,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:139,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:142,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:145,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:146,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:148,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:152,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:154,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:164,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:173,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:179,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:184,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:185,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:186,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:187,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:202,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:211,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:214,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:215,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:218,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:219,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:221,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:224,1
    - Dst: min
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:226,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:231,1
    - Dst: CPLString::append
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:249,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:254,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:255,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 94
    argCount: 2
    argNames:
    - psCitation
    - keyID
    argTypes:
    - char*
    - geokey_t
    constantsTouched: []
    func_position:
      end: 258
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 258
    functionName: ImagineCitationTranslation
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    - CPLStrdup
    - strchr
    - min
    - EQUAL
    - strstr
    - strlen
    - CPLString::empty
    - CPLString::append
    linkageType: ''
    returnType: char
    signature: char *ImagineCitationTranslation(char *psCitation, geokey_t keyID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:281,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:283,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:290,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:291,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:294,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:296,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:296,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:299,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:301,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:301,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:304,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:306,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:306,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:309,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:311,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:311,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:314,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:316,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:316,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:319,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:321,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:321,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:324,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:326,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:326,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:329,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:331,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:331,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:337,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:342,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 346
    functionName: CitationStringParse
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - strncpy
    - strlen
    - strstr
    - strcpy
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **CitationStringParse(char *psCitation, geokey_t keyID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<geokey_t, std::string>::find
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:357,1
    - Dst: std::map<geokey_t, std::string>::end
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:358,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:362,1
    - Dst: std::move
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - oMapAsciiKeys
    - pszLinearUOMName
    argTypes:
    - std::map<geokey_t, std::string>
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: SetLinearUnitCitation
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 1
    functionsReached:
    - CPLString::empty
    - std::map<geokey_t, std::string>::find
    - std::move
    - std::map<geokey_t, std::string>::end
    linkageType: ''
    returnType: void
    signature: "void SetLinearUnitCitation(std::map<geokey_t, std::string> &oMapAsciiKeys,\n
      \                          const char *pszLinearUOMName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<geokey_t, std::string>::find
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:391,1
    - Dst: std::map<geokey_t, std::string>::end
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:392,1
    - Dst: CPLString::empty
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:396,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:400,1
    - Dst: std::move
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:403,1
    - Dst: std::move
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:407,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:413,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:423,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:432,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:439,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:444,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:447,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:447,1
    - Dst: CPLString::back
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:454,1
    - Dst: std::move
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:459,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 6
    argNames:
    - psGTIF
    - oMapAsciiKeys
    - poSRS
    - angUnitName
    - nDatum
    - nSpheroid
    argTypes:
    - GTIF*
    - std::map<geokey_t, std::string>
    - OGRSpatialReference*
    - char*
    - int
    - short
    constantsTouched: []
    func_position:
      end: 461
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 461
    functionName: SetGeogCSCitation
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 1
    functionsReached:
    - CPLString::back
    - STARTS_WITH_CI
    - std::map<geokey_t, std::string>::end
    - EQUAL
    - std::map<geokey_t, std::string>::find
    - std::move
    - strlen
    - GTIFKeySet
    - CPLString::empty
    linkageType: ''
    returnType: void
    signature: "void SetGeogCSCitation(GTIF *psGTIF,\n                       std::map<geokey_t,
      std::string> &oMapAsciiKeys,\n                       const OGRSpatialReference
      *poSRS,\n                       const char *angUnitName, int nDatum, short nSpheroid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OGRSpatialReference*::GetLinearUnits
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:475,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:476,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:476,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:484,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:486,1
    - Dst: OGRSpatialReference*::GetRoot
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:491,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:492,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:495,1
    - Dst: OGRSpatialReference*::SetProjection
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:499,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:505,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:509,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:511,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:517,1
    - Dst: GDALGTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:517,1
    - Dst: OGRSpatialReference*::SetLinearUnits
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:520,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:524,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:525,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:531,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:531,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:534,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:535,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:536,1
    - Dst: OGRSpatialReference*::SetNode
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:537,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 6
    argNames:
    - hGTIF
    - szCTString
    - nCTStringLen
    - geoKey
    - poSRS
    - linearUnitIsSet
    argTypes:
    - GTIF*
    - char*
    - int
    - geokey_t
    - OGRSpatialReference*
    - OGRBoolean*
    constantsTouched: []
    func_position:
      end: 543
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 543
    functionName: SetCitationToSRS
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 0
    functionsReached:
    - CPLAtof
    - OGRSpatialReference*::SetProjection
    - strncpy
    - GDALGTIFKeyGetDOUBLE
    - EQUAL
    - OGRSpatialReference*::GetRoot
    - strchr
    - CPL_IGNORE_RET_VAL
    - strlen
    - OGRSpatialReference*::GetLinearUnits
    - strstr
    - OGRSpatialReference*::SetLinearUnits
    - EQUALN
    - OGRSpatialReference*::SetNode
    - CPLFree
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean SetCitationToSRS(GTIF *hGTIF, char *szCTString, int nCTStringLen,\n
      \                           geokey_t geoKey, OGRSpatialReference *poSRS,\n                            OGRBoolean
      *linearUnitIsSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:564,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:566,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:572,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:575,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:578,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:581,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:584,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:587,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 8
    argNames:
    - szGCSName
    - nGCSName
    - geoKey
    - ppszGeogName
    - ppszDatumName
    - ppszPMName
    - ppszSpheroidName
    - ppszAngularUnits
    argTypes:
    - char*
    - int
    - geokey_t
    - char**
    - char**
    - char**
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 591
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 591
    functionName: GetGeogCSFromCitation
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - strncpy
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void GetGeogCSFromCitation(char *szGCSName, int nGCSName, geokey_t
      geoKey,\n                           char **ppszGeogName, char **ppszDatumName,\n
      \                          char **ppszPMName, char **ppszSpheroidName,\n                           char
      **ppszAngularUnits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGTIFKeyGetASCII
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:621,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:624,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:626,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:626,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:627,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:627,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:628,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:629,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:630,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:631,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:632,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:633,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:634,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:636,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:639,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:640,1
    - Dst: CPLString::resize
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:647,1
    - Dst: OGRSpatialReference*::ImportFromESRIStatePlaneWKT
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:648,1
    - Dst: OGRSpatialReference*::GetAttrNode
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:656,1
    - Dst: OGR_SRSNode*::GetChildCount
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:658,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:661,1
    - Dst: OGR_SRSNode*::GetChild
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:661,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:664,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:666,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:667,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:670,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:672,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:673,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:676,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:678,1
    - Dst: GTIFGetUOMLengthInfo
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:691,1
    - Dst: CPLString
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:694,1
    - Dst: GTIFFreeMemory
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:695,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:697,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:697,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:698,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:698,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:699,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:700,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:700,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:701,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:702,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:703,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:708,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:709,1
    - Dst: GDALGTIFKeyGetASCII
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:713,1
    - Dst: SetCitationToSRS
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:719,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:720,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:720,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:725,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:726,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:728,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:735,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:736,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:736,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:737,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:738,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:739,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:740,1
    - Dst: OGRSpatialReference*::ImportFromESRIStatePlaneWKT
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:741,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:746,1
    - Dst: CheckUTM
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:748,1
    - Dst: OGRSpatialReference*::ImportFromESRIStatePlaneWKT
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:755,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 77
    argCount: 4
    argNames:
    - hGTIF
    - psDefn
    - poSRS
    - pLinearUnitIsSet
    argTypes:
    - GTIF*
    - GTIFDefn*
    - OGRSpatialReference*
    - OGRBoolean*
    constantsTouched: []
    func_position:
      end: 761
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 761
    functionName: CheckCitationKeyForStatePlaneUTM
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 0
    functionsReached:
    - GDALGTIFKeyGetASCII
    - OGRSpatialReference*::GetAttrNode
    - OGR_SRSNode*::GetChildCount
    - GTIFFreeMemory
    - OGR_SRSNode*::GetChild
    - static_cast<int>
    - SetCitationToSRS
    - OGRSpatialReference*::ImportFromESRIStatePlaneWKT
    - GTIFGetUOMLengthInfo
    - CheckUTM
    - strlen
    - strstr
    - CPLString
    - strcpy
    - CPLString::resize
    linkageType: ''
    returnType: OGRBoolean
    signature: "OGRBoolean CheckCitationKeyForStatePlaneUTM(GTIF *hGTIF, GTIFDefn
      *psDefn,\n                                            OGRSpatialReference *poSRS,\n
      \                                           OGRBoolean *pLinearUnitIsSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:777,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:779,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:781,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:786,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:794,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:797,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:800,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:802,1
    - Dst: CPLStrlcpy
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:807,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:821,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:822,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:823,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:825,1
    - Dst: static_cast<short>
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:828,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:828,1
    - Dst: GTIFGetProjTRFInfo
      Src: /src/gdal/frmts/gtiff/gt_citation.cpp:829,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - psDefn
    - pszCtString
    argTypes:
    - GTIFDefn*
    - char*
    constantsTouched: []
    func_position:
      end: 838
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 838
    functionName: CheckUTM
    functionSourceFile: /src/gdal/frmts/gtiff/gt_citation.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - atoi
    - CPLStrlcpy
    - GTIFGetProjTRFInfo
    - strncpy
    - EQUAL
    - static_cast<short>
    - strstr
    - strlen
    - EQUALN
    linkageType: ''
    returnType: void
    signature: void CheckUTM(GTIFDefn *psDefn, const char *pszCtString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - TIFFMethod*
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: GTIFSetSimpleTagsMethods
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTIFSetSimpleTagsMethods(TIFFMethod *method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ST_GetKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:45,1
    - Dst: ST_TagType
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:49,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - tif
    - tag
    - count
    - val
    argTypes:
    - tiff_t*
    - pinfo_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: _GTIFGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached:
    - ST_GetKey
    - _TIFFmemcpy
    - ST_TagType
    linkageType: ''
    returnType: int
    signature: int _GTIFGetField (tiff_t *tif, pinfo_t tag, int *count, void *val
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ST_SetKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - tag
    - count
    - value
    argTypes:
    - tiff_t*
    - pinfo_t
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: _GTIFSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached:
    - ST_SetKey
    linkageType: ''
    returnType: int
    signature: int _GTIFSetField (tiff_t *tif, pinfo_t tag, int count, void *value
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - tiff_t*
    - pinfo_t
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: _GTIFTagType
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tagtype_t
    signature: tagtype_t _GTIFTagType  (tiff_t *tif, pinfo_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: ST_TagType
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ST_TagType( int tag )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st_type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: ST_TypeSize
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ST_TypeSize( int st_type )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: ST_Create
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: ST_TIFF
    signature: ST_TIFF *ST_Create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:159,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:162,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - ST_TIFF*
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: ST_Destroy
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ST_Destroy( ST_TIFF *st )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:178,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:189,1
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:193,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:194,1
    - Dst: realloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:203,1
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:209,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - st
    - tag
    - count
    - st_type
    - data
    argTypes:
    - ST_TIFF*
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 213
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 213
    functionName: ST_SetKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 1
    functionsReached:
    - free
    - strlen
    - malloc
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ST_SetKey( ST_TIFF *st, int tag, int count, int st_type, void *data
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - st
    - tag
    - count
    - st_type
    - data_ptr
    argTypes:
    - ST_TIFF*
    - int
    - int*
    - int*
    - void**
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: ST_GetKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_simpletags.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ST_GetKey( ST_TIFF *st, int tag, int *count,\n               int
      *st_type, void **data_ptr )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gtif
    - version
    - keycount
    argTypes:
    - GTIF*
    - int[]
    - int*
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: GTIFDirectoryInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTIFDirectoryInfo(GTIF *gtif, int version[3], int *keycount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - gtif
    - key
    - size
    - type
    argTypes:
    - GTIF*
    - geokey_t
    - int*
    - tagtype_t*
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: GTIFKeyInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFKeyInfo(GTIF *gtif, geokey_t key, int *size, tagtype_t* type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GTIFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - gtif
    - thekey
    - val
    - nIndex
    - count
    argTypes:
    - GTIF*
    - geokey_t
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 171
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 171
    functionName: GTIFKeyGet
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 4
    functionsReached:
    - _GTIFmemcpy
    linkageType: ''
    returnType: int
    signature: int GTIFKeyGet(GTIF *gtif, geokey_t thekey, void *val, int nIndex,
      int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyInfo
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:184,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:190,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:194,1
    - Dst: GTIFTypeName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:194,1
    - Dst: GTIFTypeName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:195,1
    - Dst: GTIFKeyGet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - psGTIF
    - key
    - pData
    - nIndex
    - nCount
    - expected_tagtype
    argTypes:
    - GTIF*
    - geokey_t
    - void*
    - int
    - int
    - tagtype_t
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: GTIFKeyGetInternal
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 0
    functionsReached:
    - GTIFKeyName
    - GTIFTypeName
    - GTIF*::gt_error_callback
    - GTIFKeyGet
    - GTIFKeyInfo
    linkageType: ''
    returnType: int
    signature: "int GTIFKeyGetInternal( GTIF *psGTIF, geokey_t key,\n                           void*
      pData,\n                           int nIndex,\n                           int
      nCount,\n                           tagtype_t expected_tagtype )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyGetInternal
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gtif
    - key
    - szStr
    - szStrMaxLen
    argTypes:
    - GTIF*
    - geokey_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: GTIFKeyGetASCII
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 2
    functionsReached:
    - GTIFKeyGetInternal
    linkageType: ''
    returnType: int
    signature: int GTIFKeyGetASCII( GTIF *gtif, geokey_t key, char* szStr, int szStrMaxLen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyGetInternal
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - gtif
    - key
    - pnVal
    - nIndex
    - nCount
    argTypes:
    - GTIF*
    - geokey_t
    - unsigned short*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: GTIFKeyGetSHORT
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 4
    functionsReached:
    - GTIFKeyGetInternal
    linkageType: ''
    returnType: int
    signature: "int GTIFKeyGetSHORT( GTIF *gtif, geokey_t key, unsigned short* pnVal,
      int nIndex,\n                     int nCount )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyGetInternal
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - gtif
    - key
    - pdfVal
    - nIndex
    - nCount
    argTypes:
    - GTIF*
    - geokey_t
    - double*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: GTIFKeyGetDOUBLE
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_get.c
    functionUses: 3
    functionsReached:
    - GTIFKeyGetInternal
    linkageType: ''
    returnType: int
    signature: "int GTIFKeyGetDOUBLE( GTIF *gtif, geokey_t key, double* pdfVal, int
      nIndex,\n                      int nCount )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - MapSys
    - Datum
    - nZone
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 437
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 437
    functionName: GTIFMapSysToPCS
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_extra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFMapSysToPCS( int MapSys, int Datum, int nZone )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - MapSys
    - nZone
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 477
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 477
    functionName: GTIFMapSysToProj
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_extra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFMapSysToProj( int MapSys, int nZone )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 3
    argNames:
    - PCSCode
    - pDatum
    - pZone
    argTypes:
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 632
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 632
    functionName: GTIFPCSToMapSys
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_extra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFPCSToMapSys( int PCSCode, int * pDatum, int * pZone )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ProjCode
    - pZone
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 705
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 705
    functionName: GTIFProjToMapSys
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_extra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GTIFProjToMapSys( int ProjCode, int * pZone )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:59,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:60,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:61,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:62,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:62,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:62,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:63,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:65,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:65,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:65,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:67,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:67,1
    - Dst: PrintGeoTags
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:68,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:69,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:69,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:71,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:71,1
    - Dst: PrintKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:77,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:79,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:79,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:81,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - gtif
    - print
    - aux
    argTypes:
    - GTIF*
    - GTIFPrintMethod
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 82
    functionName: GTIFPrint
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 0
    functionsReached:
    - print
    - PrintKey
    - PrintGeoTags
    - sprintf
    linkageType: ''
    returnType: void
    signature: void GTIFPrint(GTIF *gtif, GTIFPrintMethod print,void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintTag
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:94,1
    - Dst: PrintTag
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:96,1
    - Dst: PrintTag
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - gt
    - print
    - aux
    argTypes:
    - GTIF*
    - GTIFPrintMethod
    - void*
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: PrintGeoTags
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 1
    functionsReached:
    - PrintTag
    linkageType: ''
    returnType: void
    signature: void PrintGeoTags(GTIF *gt, GTIFPrintMethod print,void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:104,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:105,1
    - Dst: GTIFTagName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:105,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:108,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:109,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:114,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:117,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:118,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:121,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:123,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - tag
    - nrows
    - dptr
    - ncols
    - print
    - aux
    argTypes:
    - int
    - int
    - double*
    - int
    - GTIFPrintMethod
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: PrintTag
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 1
    functionsReached:
    - GTIFTagName
    - sprintf
    - _GTIFFree
    - print
    linkageType: ''
    returnType: void
    signature: "void PrintTag(int tag, int nrows, double *dptr, int ncols,\n\t\t\t\t\tGTIFPrintMethod
      print,void *aux)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:131,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:133,1
    - Dst: GTIFKeyNameEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:133,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:137,1
    - Dst: GTIFTypeName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:137,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:138,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:153,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:178,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:184,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:186,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:196,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:197,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:199,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:207,1
    - Dst: GTIFValueNameEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:207,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:208,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:211,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:219,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:220,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:222,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:228,1
    - Dst: print
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:229,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 4
    argNames:
    - gtif
    - key
    - print
    - aux
    argTypes:
    - GTIF*
    - GeoKey*
    - GTIFPrintMethod
    - void*
    constantsTouched: []
    func_position:
      end: 232
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 232
    functionName: PrintKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 1
    functionsReached:
    - print
    - GTIFKeyNameEx
    - GTIFTypeName
    - sprintf
    - GTIFValueNameEx
    linkageType: ''
    returnType: void
    signature: void PrintKey(GTIF *gtif, GeoKey *key, GTIFPrintMethod print, void
      *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - string
    - aux
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: DefaultPrint
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int DefaultPrint(char *string, void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:262,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:263,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:264,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:265,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:266,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:267,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:270,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:271,1
    - Dst: ReadTag
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:273,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:276,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:277,1
    - Dst: ReadKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - gtif
    - scan
    - aux
    argTypes:
    - GTIF*
    - GTIFReadMethod
    - void*
    constantsTouched: []
    func_position:
      end: 281
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 281
    functionName: GTIFImport
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strncmp
    - ReadTag
    - scan
    - ReadKey
    linkageType: ''
    returnType: int
    signature: int GTIFImport(GTIF *gtif, GTIFReadMethod scan,void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: StringError
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int StringError(char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:298,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:299,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:305,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:308,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:317,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:321,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:323,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:324,1
    - Dst: FINDCHAR
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:326,1
    - Dst: SKIPWHITE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:327,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - gt
    - scan
    - aux
    argTypes:
    - GTIF*
    - GTIFReadMethod
    - void*
    constantsTouched: []
    func_position:
      end: 335
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 335
    functionName: ReadTag
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 1
    functionsReached:
    - sscanf
    - StringError
    - strncmp
    - SKIPWHITE
    - _GTIFFree
    - scan
    - FINDCHAR
    linkageType: ''
    returnType: int
    signature: int ReadTag(GTIF *gt,GTIFReadMethod scan,void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:341,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:342,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:348,1
    - Dst: FINDCHAR
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:351,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:352,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:358,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:365,1
    - Dst: SKIPWHITE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:370,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:371,1
    - Dst: FINDCHAR
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:387,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:388,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:390,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:414,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:415,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:419,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:421,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:434,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:435,1
    - Dst: FINDCHAR
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:436,1
    - Dst: SKIPWHITE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:437,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:441,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:446,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:448,1
    - Dst: GTIFValueCode
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:455,1
    - Dst: StringError
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:456,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:458,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:472,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:474,1
    - Dst: scan
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:478,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:483,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 3
    argNames:
    - gt
    - scan
    - aux
    argTypes:
    - GTIF*
    - GTIFReadMethod
    - void*
    constantsTouched: []
    func_position:
      end: 491
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 491
    functionName: ReadKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 1
    functionsReached:
    - sscanf
    - StringError
    - strncmp
    - GTIFValueCode
    - GTIFKeySet
    - SKIPWHITE
    - _GTIFFree
    - scan
    - _GTIFcalloc
    - FINDCHAR
    linkageType: ''
    returnType: int
    signature: int ReadKey(GTIF *gt, GTIFReadMethod scan, void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - string
    - aux
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: DefaultRead
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_print.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int DefaultRead(char *string, void *aux)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFMergeFieldInfo
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:57,1
    - Dst: N
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: _XTIFFLocalDefaultDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 0
    functionsReached:
    - TIFFMergeFieldInfo
    - N
    linkageType: ''
    returnType: void
    signature: void _XTIFFLocalDefaultDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _XTIFFLocalDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: _XTIFFDefaultDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 0
    functionsReached:
    - _XTIFFLocalDefaultDirectory
    linkageType: ''
    returnType: void
    signature: void _XTIFFDefaultDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetTagExtender
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: XTIFFInitialize
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 2
    functionsReached:
    - TIFFSetTagExtender
    linkageType: ''
    returnType: void
    signature: void XTIFFInitialize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XTIFFInitialize
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:140,1
    - Dst: TIFFOpen
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: XTIFFOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 0
    functionsReached:
    - XTIFFInitialize
    - TIFFOpen
    linkageType: ''
    returnType: TIFF
    signature: 'TIFF *

      XTIFFOpen(const char* name, const char* mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XTIFFInitialize
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:156,1
    - Dst: TIFFFdOpen
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - name
    - mode
    argTypes:
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: XTIFFFdOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 0
    functionsReached:
    - XTIFFInitialize
    - TIFFFdOpen
    linkageType: ''
    returnType: TIFF
    signature: 'TIFF *

      XTIFFFdOpen(int fd, const char* name, const char* mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XTIFFInitialize
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:176,1
    - Dst: TIFFClientOpen
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - name
    - mode
    - thehandle
    - RWProc
    - RWProc2
    - SProc
    - CProc
    - SzProc
    - MFProvc
    - UMFProc
    argTypes:
    - char*
    - char*
    - thandle_t
    - TIFFReadWriteProc
    - TIFFReadWriteProc
    - TIFFSeekProc
    - TIFFCloseProc
    - TIFFSizeProc
    - TIFFMapFileProc
    - TIFFUnmapFileProc
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: XTIFFClientOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 2
    functionsReached:
    - XTIFFInitialize
    - TIFFClientOpen
    linkageType: ''
    returnType: TIFF
    signature: "TIFF *\nXTIFFClientOpen(const char* name, const char* mode, thandle_t
      thehandle,\n\t    TIFFReadWriteProc RWProc, TIFFReadWriteProc RWProc2,\n\t    TIFFSeekProc
      SProc, TIFFCloseProc CProc,\n\t    TIFFSizeProc SzProc,\n\t    TIFFMapFileProc
      MFProvc, TIFFUnmapFileProc UMFProc )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClose
      Src: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: XTIFFClose
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/xtiff.c
    functionUses: 14
    functionsReached:
    - TIFFClose
    linkageType: ''
    returnType: void
    signature: void XTIFFClose(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SortKeys
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:49,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:73,1
    - Dst: WriteKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:84,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:88,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:112,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - gt
    argTypes:
    - GTIF*
    constantsTouched: []
    func_position:
      end: 115
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 115
    functionName: GTIFWriteKeys
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c
    functionUses: 3
    functionsReached:
    - _GTIFFree
    - _GTIFcalloc
    - SortKeys
    - WriteKey
    linkageType: ''
    returnType: int
    signature: int GTIFWriteKeys(GTIF *gt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:138,1
    - Dst: _GTIFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - gt
    - tempData
    - entptr
    - keyptr
    argTypes:
    - GTIF*
    - TempKeyData*
    - KeyEntry*
    - GeoKey*
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: WriteKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _GTIFmemcpy
    linkageType: ''
    returnType: int
    signature: "int WriteKey(GTIF* gt, TempKeyData* tempData,\n                    KeyEntry*
      entptr, GeoKey* keyptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - gt
    - sortkeys
    argTypes:
    - GTIF*
    - int*
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: SortKeys
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_write.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SortKeys(GTIF* gt,int *sortkeys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - gt_in
    - gt_out
    argTypes:
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: inv_geotransform
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: int
    signature: int inv_geotransform( double *gt_in, double *gt_out )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - gcp_count
    - gcps_in
    - gcps_out
    - x_in
    - y_in
    - x_out
    - y_out
    argTypes:
    - int
    - double*
    - double*
    - double
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: GTIFTiepointTranslate
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GTIFTiepointTranslate( int gcp_count, double * gcps_in, double
      * gcps_out,\n                           double x_in, double y_in,\n                           double
      *x_out, double *y_out )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFTiepointTranslate
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:131,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:170,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:172,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - gtif
    - x
    - y
    argTypes:
    - GTIF*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 177
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 177
    functionName: GTIFImageToPCS
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c
    functionUses: 0
    functionsReached:
    - _GTIFFree
    - GTIFTiepointTranslate
    linkageType: ''
    returnType: int
    signature: int GTIFImageToPCS( GTIF *gtif, double *x, double *y )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFTiepointTranslate
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:233,1
    - Dst: inv_geotransform
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:255,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:281,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:283,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c:285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - gtif
    - x
    - y
    argTypes:
    - GTIF*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 288
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 288
    functionName: GTIFPCSToImage
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_trans.c
    functionUses: 0
    functionsReached:
    - inv_geotransform
    - _GTIFFree
    - GTIFTiepointTranslate
    linkageType: ''
    returnType: int
    signature: int GTIFPCSToImage( GTIF *gtif, double *x, double *y )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - TIFFMethod*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: _GTIFSetDefaultTIFF
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _GTIFSetDefaultTIFF(TIFFMethod *method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:45,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - gsize_t
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: _GTIFcalloc
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 2
    functionsReached:
    - _TIFFmemset
    - _TIFFmalloc
    linkageType: ''
    returnType: gdata_t
    signature: gdata_t _GTIFcalloc(gsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFrealloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - gdata_t
    - gsize_t
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: _GTIFrealloc
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 0
    functionsReached:
    - _TIFFrealloc
    linkageType: ''
    returnType: gdata_t
    signature: gdata_t _GTIFrealloc(gdata_t ptr, gsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - gdata_t
    - gdata_t
    - gsize_t
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: _GTIFmemcpy
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 2
    functionsReached:
    - _TIFFmemcpy
    linkageType: ''
    returnType: void
    signature: void _GTIFmemcpy(gdata_t out,gdata_t in,gsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gdata_t
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: _GTIFFree
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 6
    functionsReached:
    - _TIFFfree
    linkageType: ''
    returnType: void
    signature: void _GTIFFree(gdata_t data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GTIFTagType
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:77,1
    - Dst: _GTIFTagType
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:79,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:81,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:83,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:85,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - tif
    - tag
    - count
    - val
    argTypes:
    - tiff_t*
    - pinfo_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: _GTIFGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 0
    functionsReached:
    - strlen
    - TIFFGetField
    - _GTIFTagType
    - _TIFFmemcpy
    linkageType: ''
    returnType: int
    signature: int _GTIFGetField (tiff_t *tif, pinfo_t tag, int *count, void *val
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GTIFTagType
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:108,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:109,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - tag
    - count
    - value
    argTypes:
    - tiff_t*
    - pinfo_t
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: _GTIFSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 0
    functionsReached:
    - _GTIFTagType
    - TIFFSetField
    linkageType: ''
    returnType: int
    signature: int _GTIFSetField (tiff_t *tif, pinfo_t tag, int count, void *value
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - tiff_t*
    - pinfo_t
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: _GTIFTagType
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_tiffp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: tagtype_t
    signature: tagtype_t _GTIFTagType  (tiff_t *tif, pinfo_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - info
    - key
    argTypes:
    - KeyInfo*
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: FindName
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *FindName(const KeyInfo *info,int key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - geokey_t
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: GTIFKeyName
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 3
    functionsReached:
    - FindName
    linkageType: ''
    returnType: char
    signature: char *GTIFKeyName(geokey_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - gtif
    - key
    argTypes:
    - GTIF*
    - geokey_t
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: GTIFKeyNameEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 1
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char * GTIFKeyNameEx(GTIF* gtif, geokey_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - tagtype_t
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: GTIFTypeName
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 3
    functionsReached:
    - FindName
    linkageType: ''
    returnType: char
    signature: char *GTIFTypeName(tagtype_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: GTIFTagName
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 1
    functionsReached:
    - FindName
    linkageType: ''
    returnType: char
    signature: char *GTIFTagName(int tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - key
    argTypes:
    - geokey_t
    constantsTouched: []
    func_position:
      end: 129
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 129
    functionName: FindTable
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyInfo
    signature: KeyInfo * FindTable(geokey_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:134,1
    - Dst: FindTable
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - geokey_t
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: GTIFValueName
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - FindName
    - FindTable
    linkageType: ''
    returnType: char
    signature: char *GTIFValueName(geokey_t key, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:143,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:152,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - gtif
    - pszCode
    - category
    - pszOut
    - nOutSize
    argTypes:
    - GTIF*
    - char*
    - PJ_CATEGORY
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 161
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 161
    functionName: GetNameFromDatabase
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - memcpy
    - proj_destroy
    - proj_create_from_database
    linkageType: ''
    returnType: void
    signature: "void GetNameFromDatabase(GTIF* gtif,\n                                const
      char* pszCode,\n                                PJ_CATEGORY category,\n                                char*
      pszOut,\n                                size_t nOutSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindTable
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:189,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:197,1
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:201,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:213,1
    - Dst: proj_uom_get_info_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:225,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:228,1
    - Dst: GetNameFromDatabase
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:236,1
    - Dst: GetNameFromDatabase
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:241,1
    - Dst: GetNameFromDatabase
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:246,1
    - Dst: GetNameFromDatabase
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:254,1
    - Dst: GetNameFromDatabase
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:260,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:271,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 3
    argNames:
    - gtif
    - key
    - value
    argTypes:
    - GTIF*
    - geokey_t
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 280
    functionName: GTIFValueNameEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 2
    functionsReached:
    - GetNameFromDatabase
    - strncpy
    - proj_uom_get_info_from_database
    - sprintf
    - FindTable
    - proj_context_create
    linkageType: ''
    returnType: char
    signature: char *GTIFValueNameEx(GTIF* gtif, geokey_t key, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:289,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:294,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:297,1
    - Dst: strncmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:299,1
    - Dst: sscanf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - info
    - key
    argTypes:
    - KeyInfo*
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: FindCode
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strcmp
    - strncmp
    linkageType: ''
    returnType: int
    signature: int FindCode(const KeyInfo *info,const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindCode
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: GTIFKeyCode
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - FindCode
    linkageType: ''
    returnType: int
    signature: int GTIFKeyCode(const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindCode
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: GTIFTypeCode
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - FindCode
    linkageType: ''
    returnType: int
    signature: int GTIFTypeCode(const char *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindCode
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: GTIFTagCode
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 0
    functionsReached:
    - FindCode
    linkageType: ''
    returnType: int
    signature: int GTIFTagCode(const char *tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindCode
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:335,1
    - Dst: FindTable
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - geokey_t
    - char*
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: GTIFValueCode
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_names.c
    functionUses: 1
    functionsReached:
    - FindTable
    - FindCode
    linkageType: ''
    returnType: int
    signature: int GTIFValueCode(geokey_t key, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:33,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:35,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:37,1
    - Dst: vfprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:38,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:39,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - gt
    - level
    - msg
    argTypes:
    - GTIF*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: GTIFErrorFunction
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - va_start
    - fprintf
    linkageType: ''
    returnType: void
    signature: void GTIFErrorFunction(GTIF* gt, int level, const char* msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFNewEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: GTIFNew
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 8
    functionsReached:
    - GTIFNewEx
    linkageType: ''
    returnType: GTIF
    signature: GTIF * GTIFNew(void *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GTIFSetDefaultTIFF
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:81,1
    - Dst: GTIFNewWithMethodsEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tif
    - error_callback
    - user_data
    argTypes:
    - void*
    - GTErrorCallback
    - void*
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: GTIFNewEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 2
    functionsReached:
    - GTIFNewWithMethodsEx
    - _GTIFSetDefaultTIFF
    linkageType: ''
    returnType: GTIF
    signature: "GTIF * GTIFNewEx(void *tif,\n                GTErrorCallback error_callback,
      void* user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFSetSimpleTagsMethods
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:91,1
    - Dst: GTIFNewWithMethods
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: GTIFNewSimpleTags
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 0
    functionsReached:
    - GTIFSetSimpleTagsMethods
    - GTIFNewWithMethods
    linkageType: ''
    returnType: GTIF
    signature: GTIF *GTIFNewSimpleTags( void *tif )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFNewWithMethodsEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - methods
    argTypes:
    - void*
    - TIFFMethod*
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: GTIFNewWithMethods
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 1
    functionsReached:
    - GTIFNewWithMethodsEx
    linkageType: ''
    returnType: GTIF
    signature: GTIF * GTIFNewWithMethods(void *tif, TIFFMethod* methods)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:113,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:115,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:123,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:131,1
    - Dst: _GTIFrealloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:142,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:171,1
    - Dst: _GTIFrealloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:179,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:202,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:204,1
    - Dst: ReadKey
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:214,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:222,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:229,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:230,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 4
    argNames:
    - tif
    - methods
    - error_callback
    - user_data
    argTypes:
    - void*
    - TIFFMethod*
    - GTErrorCallback
    - void*
    constantsTouched: []
    func_position:
      end: 232
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 232
    functionName: GTIFNewWithMethodsEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 2
    functionsReached:
    - GTIFFree
    - _GTIFFree
    - _GTIFrealloc
    - memset
    - memcpy
    - _GTIFcalloc
    - ReadKey
    linkageType: ''
    returnType: GTIF
    signature: "GTIF * GTIFNewWithMethodsEx(void *tif, TIFFMethod* methods,\n                           GTErrorCallback
      error_callback, void* user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:268,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:273,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:277,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:285,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:290,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:302,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:307,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:318,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:323,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:341,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:347,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:356,1
    - Dst: GTIFKeyName
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:361,1
    - Dst: MAX
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:367,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:368,1
    - Dst: _GTIFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:370,1
    - Dst: MAX
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:372,1
    - Dst: MAX
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:374,1
    - Dst: MAX
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:378,1
    - Dst: GTIF*::gt_error_callback
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c:383,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - gt
    - tempData
    - entptr
    - keyptr
    argTypes:
    - GTIF*
    - TempKeyData*
    - KeyEntry*
    - GeoKey*
    constantsTouched: []
    func_position:
      end: 394
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 394
    functionName: ReadKey
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 2
    functionsReached:
    - GTIFKeyName
    - MAX
    - GTIF*::gt_error_callback
    - _GTIFmemcpy
    - memcpy
    - _GTIFcalloc
    linkageType: ''
    returnType: int
    signature: "int ReadKey(GTIF* gt, TempKeyData* tempData,\n                   KeyEntry*
      entptr, GeoKey* keyptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gtif
    argTypes:
    - GTIF*
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: GTIFGetUserData
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_new.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *GTIFGetUserData(GTIF *gtif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:36,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:38,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:40,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:42,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:47,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - psDefn
    - pszProjection
    argTypes:
    - GTIFDefn*
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: GTIFProj4AppendEllipsoid
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - strcat
    - strlen
    - sprintf
    linkageType: ''
    returnType: void
    signature: void GTIFProj4AppendEllipsoid(GTIFDefn* psDefn, char* pszProjection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:86,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:88,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:93,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:95,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:96,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:114,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:117,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 123
    functionName: OSRProj4Tokenize
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - strncpy
    - strcat
    - strlen
    - strstr
    - CPLFree
    linkageType: ''
    returnType: char
    signature: char **OSRProj4Tokenize( const char *pszFull )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUALN
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:140,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - papszNV
    - pszField
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: OSR_GSV
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - EQUALN
    - strlen
    linkageType: ''
    returnType: char
    signature: char *OSR_GSV( char **papszNV, const char * pszField )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:168,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:169,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - papszNV
    - pszField
    - dfDefaultValue
    argTypes:
    - char**
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: OSR_GDV
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 2
    functionsReached:
    - EQUAL
    - GTIFAtof
    - OSR_GDV
    linkageType: ''
    returnType: double
    signature: "double OSR_GDV( char **papszNV, const char * pszField,\n                       double
      dfDefaultValue )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:185,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: OSRFreeStringList
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void OSRFreeStringList( char ** list )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:210,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:212,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:214,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:216,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:221,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:222,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:223,1
    - Dst: OSR_GSV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:231,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:239,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:244,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:249,1
    - Dst: OSR_GSV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:258,1
    - Dst: OSRFreeStringList
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:262,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:266,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:266,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:270,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:272,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:274,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:276,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:279,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:282,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:283,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:285,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:286,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:288,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:289,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:291,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:292,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:294,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:295,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:298,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:303,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:305,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:307,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:310,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:313,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:316,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:319,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:322,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:326,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:329,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:333,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:334,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:335,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:337,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:339,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:341,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:344,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:347,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:348,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:350,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:351,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:353,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:354,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:356,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:357,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:359,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:360,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:363,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:365,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:367,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:369,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:372,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:375,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:376,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:378,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:379,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:381,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:382,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:384,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:385,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:387,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:388,1
    - Dst: GTIFKeySet
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:390,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:391,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:395,1
    - Dst: SetBonne
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:397,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:397,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:398,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:399,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:400,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:403,1
    - Dst: SetCS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:405,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:405,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:406,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:407,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:408,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:411,1
    - Dst: SetNZMG
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:413,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:413,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:414,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:415,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:416,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:419,1
    - Dst: SetCEA
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:421,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:421,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:422,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:423,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:424,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:427,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:428,1
    - Dst: SetMercator2SP
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:430,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:430,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:432,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:433,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:434,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:437,1
    - Dst: SetMercator
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:439,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:440,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:441,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:442,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:443,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:446,1
    - Dst: ABS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:447,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:447,1
    - Dst: SetPS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:449,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:449,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:450,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:451,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:452,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:453,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:456,1
    - Dst: ABS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:457,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:457,1
    - Dst: SetPS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:459,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:459,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:460,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:461,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:462,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:463,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:466,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:467,1
    - Dst: SetOS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:469,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:469,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:470,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:471,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:472,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:473,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:476,1
    - Dst: SetStereographic
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:478,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:478,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:479,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:481,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:482,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:485,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:487,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:487,1
    - Dst: SetEquirectangular2
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:488,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:488,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:489,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:490,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:491,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:492,1
    - Dst: SetEquirectangular
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:494,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:494,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:495,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:496,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:497,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:500,1
    - Dst: SetGaussLabordeReunion
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:502,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:502,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:503,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:504,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:505,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:506,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:509,1
    - Dst: SetGnomonic
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:511,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:511,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:512,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:513,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:514,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:517,1
    - Dst: SetOrthographic
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:519,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:519,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:520,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:521,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:522,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:525,1
    - Dst: SetLAEA
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:527,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:527,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:528,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:529,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:530,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:533,1
    - Dst: SetAE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:535,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:535,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:536,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:537,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:538,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:541,1
    - Dst: SetEC
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:543,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:543,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:544,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:545,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:546,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:547,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:548,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:551,1
    - Dst: SetMC
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:553,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:553,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:554,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:555,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:556,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:559,1
    - Dst: SetMollweide
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:561,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:561,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:562,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:563,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:566,1
    - Dst: SetEckertIV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:568,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:568,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:569,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:570,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:573,1
    - Dst: SetEckertVI
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:575,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:575,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:576,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:577,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:580,1
    - Dst: SetPolyconic
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:582,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:582,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:583,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:584,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:585,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:588,1
    - Dst: SetACEA
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:590,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:590,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:591,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:592,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:593,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:594,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:595,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:598,1
    - Dst: SetRobinson
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:600,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:600,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:601,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:602,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:605,1
    - Dst: SetVDG
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:607,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:607,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:608,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:609,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:612,1
    - Dst: SetSinusoidal
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:614,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:614,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:615,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:616,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:619,1
    - Dst: SetGS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:621,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:621,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:622,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:623,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:626,1
    - Dst: SetGH
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:628,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:628,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:629,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:630,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:633,1
    - Dst: SetGEOS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:635,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:635,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:636,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:637,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:638,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:641,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:643,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:644,1
    - Dst: SetLCC1SP
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:647,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:647,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:648,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:649,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:650,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:651,1
    - Dst: SetLCC
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:656,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:656,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:657,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:658,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:659,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:660,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:661,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:665,1
    - Dst: SetHOM
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:667,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:667,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:668,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:669,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:671,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:672,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:673,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:676,1
    - Dst: SetHOM
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:678,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:678,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:679,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:681,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:682,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:683,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:686,1
    - Dst: SetKrovak
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:688,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:688,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:689,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:690,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:692,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:693,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:694,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:697,1
    - Dst: SetIWMPolyconic
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:699,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:699,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:700,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:701,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:702,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:703,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:706,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:708,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:709,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:710,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:713,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:715,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:716,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:717,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:720,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:722,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:723,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:724,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:725,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:728,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:730,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:731,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:732,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:735,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:737,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:738,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:739,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:742,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:744,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:745,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:746,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:749,1
    - Dst: SetWagner
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:751,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:752,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:753,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:756,1
    - Dst: SetTPED
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:758,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:758,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:759,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:760,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:761,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:762,1
    - Dst: OSR_GDV
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:763,1
    - Dst: OSRFreeStringList
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:769,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 180
    argCount: 2
    argNames:
    - gtif
    - proj4
    argTypes:
    - GTIF*
    - char*
    constantsTouched: []
    func_position:
      end: 771
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 771
    functionName: GTIFSetFromProj4
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - SetLCC
    - ABS
    - SetEC
    - SetEckertIV
    - SetLAEA
    - SetWagner
    - SetGH
    - SetSinusoidal
    - SetStereographic
    - GTIFKeySet
    - SetGEOS
    - OSR_GDV
    - SetMollweide
    - EQUALN
    - CSLFetchNameValue
    - SetKrovak
    - SetLCC1SP
    - OSR_GSV
    - SetRobinson
    - SetGaussLabordeReunion
    - SetMC
    - SetPS
    - SetHOM
    - OSRFreeStringList
    - SetEckertVI
    - SetCS
    - SetMercator2SP
    - SetACEA
    - SetCEA
    - SetTPED
    - SetEquirectangular
    - SetPolyconic
    - SetGnomonic
    - SetVDG
    - SetBonne
    - SetOrthographic
    - SetNZMG
    - SetMercator
    - SetEquirectangular2
    - SetGS
    - SetIWMPolyconic
    - EQUAL
    - SetAE
    - SetOS
    linkageType: ''
    returnType: int
    signature: int GTIFSetFromProj4( GTIF *gtif, const char *proj4 )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:860,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:871,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:875,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:879,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:883,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:887,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:891,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:895,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:899,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:903,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:925,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:925,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:934,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:934,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:944,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:944,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:958,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:958,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:974,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:974,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:981,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:981,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:995,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:995,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1009,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1009,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1023,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1023,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1037,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1037,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1046,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1046,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1061,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1061,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1075,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1075,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1088,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1088,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1101,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1101,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1114,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1114,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1127,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1127,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1140,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1140,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1153,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1153,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1169,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1169,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1185,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1185,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1197,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1197,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1209,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1209,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1221,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1221,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1237,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1237,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1253,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1253,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1267,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1267,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1293,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1293,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1307,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1308,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1310,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1310,1
    - Dst: sprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1321,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1321,1
    - Dst: GTIFProj4AppendEllipsoid
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1342,1
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1344,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1347,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1347,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1349,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 127
    argCount: 1
    argNames:
    - psDefn
    argTypes:
    - GTIFDefn*
    constantsTouched: []
    func_position:
      end: 1350
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 1350
    functionName: GTIFGetProj4Defn
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - GTIFProj4AppendEllipsoid
    - CPLStrdup
    - sprintf
    - strcat
    - strlen
    - strstr
    - fabs
    - strcpy
    linkageType: ''
    returnType: char
    signature: char * GTIFGetProj4Defn( GTIFDefn * psDefn )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1372,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1375,1
    - Dst: GTIFProj4AppendEllipsoid
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1376,1
    - Dst: proj_create_crs_to_crs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1378,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1379,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1383,1
    - Dst: proj_trans
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1398,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1404,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - psDefn
    - nPoints
    - padfX
    - padfY
    argTypes:
    - GTIFDefn*
    - int
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1408
    functionName: GTIFProj4FromLatLong
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - GTIFProj4AppendEllipsoid
    - proj_context_destroy
    - proj_destroy
    - proj_trans
    - proj_create_crs_to_crs
    - proj_context_create
    - strcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int GTIFProj4FromLatLong( GTIFDefn * psDefn, int nPoints,\n                          double
      *padfX, double *padfY )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1429,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1432,1
    - Dst: GTIFProj4AppendEllipsoid
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1433,1
    - Dst: proj_create_crs_to_crs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1435,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1436,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1440,1
    - Dst: proj_trans
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1455,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1461,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c:1462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - psDefn
    - nPoints
    - padfX
    - padfY
    argTypes:
    - GTIFDefn*
    - int
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1465
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1465
    functionName: GTIFProj4ToLatLong
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geotiff_proj4.c
    functionUses: 0
    functionsReached:
    - GTIFProj4AppendEllipsoid
    - proj_context_destroy
    - proj_destroy
    - proj_trans
    - proj_create_crs_to_crs
    - proj_context_create
    - strcpy
    - CPLFree
    linkageType: ''
    returnType: int
    signature: "int GTIFProj4ToLatLong( GTIFDefn * psDefn, int nPoints,\n                        double
      *padfX, double *padfY )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyGetSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:102,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gtif
    - key
    - pnVal
    argTypes:
    - GTIF*
    - geokey_t
    - short*
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: GTIFKeyGetSSHORT
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - GTIFKeyGetSHORT
    - memcpy
    linkageType: ''
    returnType: int
    signature: int GTIFKeyGetSSHORT( GTIF *gtif, geokey_t key, short* pnVal )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:144,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:148,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:171,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:172,1
    - Dst: proj_get_type
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:179,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:181,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:191,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:194,1
    - Dst: proj_crs_get_coordoperation
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:199,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:204,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:210,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:211,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:214,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:219,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:224,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:230,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:240,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:243,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:244,1
    - Dst: proj_crs_get_geodetic_crs
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:250,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:254,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:260,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:261,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:264,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:268,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 6
    argNames:
    - ctxIn
    - nPCSCode
    - ppszEPSGName
    - pnProjOp
    - pnUOMLengthCode
    - pnGeogCS
    argTypes:
    - void*
    - int
    - char**
    - short*
    - short*
    - short*
    constantsTouched: []
    func_position:
      end: 271
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 271
    functionName: GTIFGetPCSInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - proj_destroy
    - proj_get_type
    - atoi
    - proj_crs_get_geodetic_crs
    - assert
    - snprintf
    - proj_crs_get_coordoperation
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_create_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetPCSInfoEx( void* ctxIn,\n                      int nPCSCode,
      char **ppszEPSGName,\n                      short *pnProjOp, short *pnUOMLengthCode,\n
      \                     short *pnGeogCS )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:279,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - nPCSCode
    - ppszEPSGName
    - pnProjOp
    - pnUOMLengthCode
    - pnGeogCS
    argTypes:
    - int
    - char**
    - short*
    - short*
    - short*
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: GTIFGetPCSInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetPCSInfo( int nPCSCode, char **ppszEPSGName,\n                    short
      *pnProjOp, short *pnUOMLengthCode,\n                    short *pnGeogCS )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:301,1
    - Dst: GTIFAngleStringToDD
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:302,1
    - Dst: GTIFGetUOMAngleInfo
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dfAngle
    - nUOMAngle
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 314
    functionName: GTIFAngleToDD
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - GTIFGetUOMAngleInfo
    - snprintf
    - GTIFAngleStringToDD
    linkageType: ''
    returnType: double
    signature: double GTIFAngleToDD( double dfAngle, int nUOMAngle )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:331,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:331,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:332,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:333,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:345,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:347,1
    - Dst: strncpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:354,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:362,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:371,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:375,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:379,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:383,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:387,1
    - Dst: GTIFAtof
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:390,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - pszAngle
    - nUOMAngle
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 394
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 394
    functionName: GTIFAngleStringToDD
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 1
    functionsReached:
    - ABS
    - atoi
    - strncpy
    - strchr
    - CPLAssert
    - strlen
    - GTIFAtof
    linkageType: ''
    returnType: double
    signature: double GTIFAngleStringToDD( const char * pszAngle, int nUOMAngle )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:444,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:463,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:464,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:478,1
    - Dst: proj_get_name
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:485,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:489,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:492,1
    - Dst: proj_crs_get_datum_forced
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:498,1
    - Dst: proj_crs_get_datum
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:500,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:504,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:510,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:511,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:514,1
    - Dst: proj_get_prime_meridian
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:519,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:522,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:528,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:529,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:532,1
    - Dst: proj_crs_get_coordinate_system
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:537,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:542,1
    - Dst: proj_cs_get_axis_info
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:548,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:558,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:561,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:562,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:566,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 6
    argNames:
    - ctxIn
    - nGCSCode
    - ppszName
    - pnDatum
    - pnPM
    - pnUOMAngle
    argTypes:
    - void*
    - int
    - char**
    - short*
    - short*
    - short*
    constantsTouched: []
    func_position:
      end: 569
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 569
    functionName: GTIFGetGCSInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - proj_destroy
    - atoi
    - proj_crs_get_datum
    - assert
    - snprintf
    - proj_crs_get_datum_forced
    - proj_get_prime_meridian
    - proj_cs_get_axis_info
    - proj_crs_get_coordinate_system
    - proj_get_name
    - proj_create_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetGCSInfoEx( void* ctxIn,\n                      int nGCSCode,
      char ** ppszName,\n                      short * pnDatum, short * pnPM, short
      *pnUOMAngle )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:575,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - nGCSCode
    - ppszName
    - pnDatum
    - pnPM
    - pnUOMAngle
    argTypes:
    - int
    - char**
    - short*
    - short*
    - short*
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: GTIFGetGCSInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetGCSInfo( int nGCSCode, char ** ppszName,\n                    short
      * pnDatum, short * pnPM, short *pnUOMAngle )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:642,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:656,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:657,1
    - Dst: proj_get_name
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:666,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:670,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:673,1
    - Dst: proj_ellipsoid_get_parameters
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:676,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:679,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 5
    argNames:
    - ctxIn
    - nEllipseCode
    - ppszName
    - pdfSemiMajor
    - pdfSemiMinor
    argTypes:
    - void*
    - int
    - char**
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 683
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 683
    functionName: GTIFGetEllipsoidInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_ellipsoid_get_parameters
    - CPLStrdup
    - proj_destroy
    - snprintf
    - proj_get_name
    - proj_create_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetEllipsoidInfoEx( void* ctxIn,\n                            int
      nEllipseCode, char ** ppszName,\n                            double * pdfSemiMajor,
      double * pdfSemiMinor )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:689,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - nEllipseCode
    - ppszName
    - pdfSemiMajor
    - pdfSemiMinor
    argTypes:
    - int
    - char**
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 694
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 694
    functionName: GTIFGetEllipsoidInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetEllipsoidInfo( int nEllipseCode, char ** ppszName,\n                          double
      * pdfSemiMajor, double * pdfSemiMinor )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:715,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:730,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:731,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:744,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:747,1
    - Dst: proj_prime_meridian_get_parameters
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:753,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ctxIn
    - nPMCode
    - ppszName
    - pdfOffset
    argTypes:
    - void*
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 762
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 762
    functionName: GTIFGetPMInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - proj_destroy
    - proj_create_from_database
    - snprintf
    - proj_prime_meridian_get_parameters
    linkageType: ''
    returnType: int
    signature: "int GTIFGetPMInfoEx( void* ctxIn,\n                     int nPMCode,
      char ** ppszName, double *pdfOffset )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:767,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nPMCode
    - ppszName
    - pdfOffset
    argTypes:
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: GTIFGetPMInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: int GTIFGetPMInfo( int nPMCode, char ** ppszName, double *pdfOffset
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:816,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:831,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:832,1
    - Dst: proj_get_type
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:839,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:843,1
    - Dst: proj_get_name
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:849,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:853,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:856,1
    - Dst: proj_get_ellipsoid
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:861,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:864,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:871,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:872,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:875,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:878,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - ctxIn
    - nDatumCode
    - ppszName
    - pnEllipsoid
    argTypes:
    - void*
    - int
    - char**
    - short*
    constantsTouched: []
    func_position:
      end: 882
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 882
    functionName: GTIFGetDatumInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - proj_destroy
    - proj_get_type
    - atoi
    - assert
    - proj_get_ellipsoid
    - snprintf
    - proj_get_name
    - proj_create_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetDatumInfoEx( void* ctxIn,\n                        int
      nDatumCode, char ** ppszName, short * pnEllipsoid )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:887,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nDatumCode
    - ppszName
    - pnEllipsoid
    argTypes:
    - int
    - char**
    - short*
    constantsTouched: []
    func_position:
      end: 891
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 891
    functionName: GTIFGetDatumInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: int GTIFGetDatumInfo( int nDatumCode, char ** ppszName, short * pnEllipsoid
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:913,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:923,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:933,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:950,1
    - Dst: proj_uom_get_info_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:952,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:959,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - ctxIn
    - nUOMLengthCode
    - ppszUOMName
    - pdfInMeters
    argTypes:
    - void*
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 962
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 962
    functionName: GTIFGetUOMLengthInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - snprintf
    - CPLStrdup
    - proj_uom_get_info_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetUOMLengthInfoEx( void* ctxIn,\n                            int
      nUOMLengthCode,\n                            char **ppszUOMName,\n                            double
      * pdfInMeters )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:969,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nUOMLengthCode
    - ppszUOMName
    - pdfInMeters
    argTypes:
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 974
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 974
    functionName: GTIFGetUOMLengthInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 1
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetUOMLengthInfo( int nUOMLengthCode,\n                          char
      **ppszUOMName,\n                          double * pdfInMeters )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1038,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1058,1
    - Dst: proj_uom_get_info_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1060,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1067,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 4
    argNames:
    - ctxIn
    - nUOMAngleCode
    - ppszUOMName
    - pdfInDegrees
    argTypes:
    - void*
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 1074
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1074
    functionName: GTIFGetUOMAngleInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - snprintf
    - CPLStrdup
    - proj_uom_get_info_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetUOMAngleInfoEx( void* ctxIn,\n                           int
      nUOMAngleCode,\n                           char **ppszUOMName,\n                           double
      * pdfInDegrees )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1081,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nUOMAngleCode
    - ppszUOMName
    - pdfInDegrees
    argTypes:
    - int
    - char**
    - double*
    constantsTouched: []
    func_position:
      end: 1086
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1086
    functionName: GTIFGetUOMAngleInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 1
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetUOMAngleInfo( int nUOMAngleCode,\n                         char
      **ppszUOMName,\n                         double * pdfInDegrees )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 58
    argCount: 2
    argNames:
    - nEPSG
    - bReturnExtendedCTCode
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1182
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1182
    functionName: EPSGProjMethodToCTProjMethod
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EPSGProjMethodToCTProjMethod( int nEPSG, int bReturnExtendedCTCode
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 158
    argCount: 4
    argNames:
    - nCTProjection
    - nEPSGProjMethod
    - panProjParamId
    - panEPSGCodes
    argTypes:
    - int
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1390
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1390
    functionName: SetGTParamIds
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: "int SetGTParamIds( int nCTProjection,\n                          int
      nEPSGProjMethod,\n                          int *panProjParamId,\n                          int
      *panEPSGCodes )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1427,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1429,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1454,1
    - Dst: proj_create_from_database
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1456,1
    - Dst: proj_get_type
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1463,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1465,1
    - Dst: proj_coordoperation_get_method_info
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1471,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1475,1
    - Dst: SetGTParamIds
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1484,1
    - Dst: proj_coordoperation_get_param
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1521,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1533,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1534,1
    - Dst: proj_coordoperation_get_param
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1562,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1574,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1575,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1585,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1588,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1604,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1607,1
    - Dst: proj_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1622,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 96
    argCount: 5
    argNames:
    - ctxIn
    - nProjTRFCode
    - ppszProjTRFName
    - pnProjMethod
    - padfProjParams
    argTypes:
    - void*
    - int
    - char**
    - short*
    - double*
    constantsTouched: []
    func_position:
      end: 1626
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1626
    functionName: GTIFGetProjTRFInfoEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - proj_destroy
    - proj_get_type
    - atoi
    - assert
    - proj_coordoperation_get_method_info
    - proj_coordoperation_get_param
    - SetGTParamIds
    - strcmp
    - snprintf
    - proj_create_from_database
    linkageType: ''
    returnType: int
    signature: "int GTIFGetProjTRFInfoEx( void* ctxIn,\n                          int
      nProjTRFCode,\n                          char **ppszProjTRFName,\n                          short
      * pnProjMethod,\n                          double * padfProjParams )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1634,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - nProjTRFCode
    - ppszProjTRFName
    - pnProjMethod
    - padfProjParams
    argTypes:
    - int
    - char**
    - short*
    - double*
    constantsTouched: []
    func_position:
      end: 1639
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1639
    functionName: GTIFGetProjTRFInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 1
    functionsReached:
    - proj_context_destroy
    - proj_context_create
    linkageType: ''
    returnType: int
    signature: "int GTIFGetProjTRFInfo( /* Conversion code */\n                        int
      nProjTRFCode,\n                        char **ppszProjTRFName,\n                        short
      * pnProjMethod,\n                        double * padfProjParams )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1656,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1657,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1659,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1664,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1665,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1667,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1680,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1682,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1684,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1688,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1690,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1692,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1696,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1719,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1721,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1723,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1727,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1729,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1731,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1779,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1781,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1783,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1787,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1789,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1791,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1795,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1798,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1822,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1824,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1826,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1830,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1832,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1834,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1838,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1842,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1846,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1848,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1875,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1877,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1879,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1883,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1885,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1887,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1891,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1895,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1897,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1923,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1925,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1927,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1931,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1933,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1935,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1939,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1941,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1969,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1971,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1973,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1977,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1979,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:1981,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2002,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2004,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2006,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2010,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2012,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2014,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2018,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2043,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2045,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2047,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2066,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2068,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2070,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2072,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2076,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2078,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2080,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2084,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2086,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2109,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2113,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2117,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2119,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2121,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2125,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2127,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2129,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2155,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2159,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2163,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2165,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2167,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2171,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2173,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2175,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2200,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2204,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2206,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2208,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 310
    argCount: 2
    argNames:
    - psGTIF
    - psDefn
    argTypes:
    - GTIF*
    - GTIFDefn*
    constantsTouched: []
    func_position:
      end: 2278
      start: 1649
    functionDepth: 4
    functionLinenumber: 1649
    functionLinenumberEnd: 2278
    functionName: GTIFFetchProjParms
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - GTIFKeyGetDOUBLE
    linkageType: ''
    returnType: void
    signature: void GTIFFetchProjParms( GTIF * psGTIF, GTIFDefn * psDefn )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2397,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2421,1
    - Dst: GTIFDirectoryInfo
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2444,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2456,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2462,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2470,1
    - Dst: GTIFGetPCSInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2476,1
    - Dst: GTIFMapSysToProj
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2494,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2503,1
    - Dst: GTIFGetProjTRFInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2514,1
    - Dst: EPSGProjMethodToCTProjMethod
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2522,1
    - Dst: SetGTParamIds
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2524,1
    - Dst: EPSGProjMethodToCTProjMethod
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2524,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2534,1
    - Dst: GTIFGetGCSInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2543,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2552,1
    - Dst: GTIFGetUOMAngleInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2555,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2564,1
    - Dst: GTIFGetDatumInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2568,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2576,1
    - Dst: GTIFGetEllipsoidInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2580,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2590,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2590,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2591,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2591,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2594,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2607,1
    - Dst: GTIFGetPMInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2611,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2616,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2616,1
    - Dst: GTIFAngleToDD
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2620,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2629,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2638,1
    - Dst: GTIFGetUOMLengthInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2642,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2648,1
    - Dst: GTIFKeyGetDOUBLE
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2648,1
    - Dst: GTIFKeyGetSSHORT
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2654,1
    - Dst: GTIFFetchProjParms
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2657,1
    - Dst: GTIFProjToMapSys
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2663,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 117
    argCount: 2
    argNames:
    - psGTIF
    - psDefn
    argTypes:
    - GTIF*
    - GTIFDefn*
    constantsTouched: []
    func_position:
      end: 2697
      start: 2394
    functionDepth: 5
    functionLinenumber: 2394
    functionLinenumberEnd: 2697
    functionName: GTIFGetDefn
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 2
    functionsReached:
    - GTIFGetEllipsoidInfoEx
    - GTIFGetPMInfoEx
    - SetGTParamIds
    - CPL_IGNORE_RET_VAL_INT
    - GTIFGetPROJContext
    - GTIFGetDatumInfoEx
    - GTIFGetGCSInfoEx
    - GTIFGetUOMLengthInfoEx
    - GTIFGetUOMAngleInfoEx
    - GTIFKeyGetSSHORT
    - GTIFFetchProjParms
    - GTIFAngleToDD
    - GTIFDirectoryInfo
    - GTIFGetPCSInfoEx
    - GTIFGetProjTRFInfoEx
    - GTIFKeyGetDOUBLE
    - GTIFProjToMapSys
    - EPSGProjMethodToCTProjMethod
    - GTIFMapSysToProj
    - memset
    linkageType: ''
    returnType: int
    signature: int GTIFGetDefn( GTIF * psGTIF, GTIFDefn * psDefn )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2726,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2728,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2736,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - dfAngle
    - pszAxis
    - nPrecision
    argTypes:
    - double
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2743
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2743
    functionName: GTIFDecToDMS
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - EQUAL
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *GTIFDecToDMS( double dfAngle, const char * pszAxis,\n                          int
      nPrecision )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFGetPROJContext
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2755,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2762,1
    - Dst: GTIFGetPCSInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2775,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2779,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2781,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2782,1
    - Dst: GTIFGetProjTRFInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2794,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2798,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2800,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2803,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2819,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2834,1
    - Dst: strstr
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2836,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2841,1
    - Dst: GTIFDecToDMS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2843,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2846,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2848,1
    - Dst: GTIFGetGCSInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2861,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2865,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2867,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2868,1
    - Dst: GTIFGetDatumInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2880,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2884,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2886,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2887,1
    - Dst: GTIFGetEllipsoidInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2899,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2903,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2905,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2908,1
    - Dst: GTIFGetPMInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2920,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2925,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2927,1
    - Dst: GTIFDecToDMS
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2930,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2931,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2940,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2945,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2946,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2949,1
    - Dst: GTIFGetUOMLengthInfoEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2963,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2967,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2969,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2971,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2975,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 3
    argNames:
    - psGTIF
    - psDefn
    - fp
    argTypes:
    - GTIF*
    - GTIFDefn*
    - FILE*
    constantsTouched: []
    func_position:
      end: 2978
      start: 2752
    functionDepth: 2
    functionLinenumber: 2752
    functionLinenumberEnd: 2978
    functionName: GTIFPrintDefnEx
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - GTIFGetEllipsoidInfoEx
    - GTIFGetPROJContext
    - CPLStrdup
    - GTIFDecToDMS
    - GTIFGetPMInfoEx
    - fprintf
    - GTIFGetPCSInfoEx
    - strstr
    - GTIFGetDatumInfoEx
    - GTIFGetUOMLengthInfoEx
    - GTIFGetGCSInfoEx
    - GTIFGetProjTRFInfoEx
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void GTIFPrintDefnEx( GTIF *psGTIF, GTIFDefn * psDefn, FILE * fp )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GTIFNew
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2982,1
    - Dst: GTIFPrintDefnEx
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2985,1
    - Dst: GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:2986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - psDefn
    - fp
    argTypes:
    - GTIFDefn*
    - FILE*
    constantsTouched: []
    func_position:
      end: 2988
      start: 2980
    functionDepth: 3
    functionLinenumber: 2980
    functionLinenumberEnd: 2988
    functionName: GTIFPrintDefn
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached:
    - GTIFFree
    - GTIFPrintDefnEx
    - GTIFNew
    linkageType: ''
    returnType: void
    signature: void GTIFPrintDefn( GTIFDefn * psDefn, FILE * fp )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:3001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pMemory
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3002
      start: 2997
    functionDepth: 1
    functionLinenumber: 2997
    functionLinenumberEnd: 3002
    functionName: GTIFFreeMemory
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 2
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void GTIFFreeMemory( char * pMemory )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:3014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3015
    functionName: GTIFAllocDefn
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 2
    functionsReached:
    - CPLCalloc
    linkageType: ''
    returnType: GTIFDefn
    signature: GTIFDefn *GTIFAllocDefn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:3025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - defn
    argTypes:
    - GTIFDefn*
    constantsTouched: []
    func_position:
      end: 3026
      start: 3023
    functionDepth: 1
    functionLinenumber: 3023
    functionLinenumberEnd: 3026
    functionName: GTIFFreeDefn
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 2
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void GTIFFreeDefn( GTIFDefn *defn )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:3039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - psGTIF
    - pjContext
    argTypes:
    - GTIF*
    - void*
    constantsTouched: []
    func_position:
      end: 3043
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3043
    functionName: GTIFAttachPROJContext
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 3
    functionsReached:
    - proj_context_destroy
    linkageType: ''
    returnType: void
    signature: void GTIFAttachPROJContext( GTIF *psGTIF, void* pjContext )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: proj_context_create
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c:3064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - psGTIF
    - instantiateIfNeeded
    - out_gtif_own_pj_context
    argTypes:
    - GTIF*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3071
      start: 3053
    functionDepth: 0
    functionLinenumber: 3053
    functionLinenumberEnd: 3071
    functionName: GTIFGetPROJContext
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 6
    functionsReached:
    - proj_context_create
    linkageType: ''
    returnType: void
    signature: "void *GTIFGetPROJContext( GTIF *psGTIF, int instantiateIfNeeded,\n
      \                         int* out_gtif_own_pj_context )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3074
    functionDepth: 0
    functionLinenumber: 3074
    functionLinenumberEnd: 3077
    functionName: GTIFDeaccessCSV
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GTIFDeaccessCSV( void )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (*CSVFileOverride)(const char *)
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3084
      start: 3080
    functionDepth: 0
    functionLinenumber: 3080
    functionLinenumberEnd: 3084
    functionName: SetCSVFilenameHook
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_normalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCSVFilenameHook( const char *(*CSVFileOverride)(const char
      *) )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:80,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:84,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:89,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:96,1
    - Dst: _GTIFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:101,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:119,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:124,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:128,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:129,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:132,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:135,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:190,1
    - Dst: _GTIFcalloc
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:192,1
    - Dst: _GTIFmemcpy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c:200,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 4
    argNames:
    - gtif
    - keyID
    - type
    - count
    argTypes:
    - GTIF*
    - geokey_t
    - tagtype_t
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 204
    functionName: GTIFKeySet
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c
    functionUses: 7
    functionsReached:
    - va_start
    - assert
    - va_end
    - va_arg
    - _GTIFmemcpy
    - strlen
    - _GTIFFree
    - _GTIFcalloc
    linkageType: ''
    returnType: int
    signature: int GTIFKeySet(GTIF *gtif, geokey_t keyID, tagtype_t type, int count,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - gtif
    - version
    - key_revision
    - minor_revision
    argTypes:
    - GTIF*
    - unsigned short
    - unsigned short
    - unsigned short
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: GTIFSetVersionNumbers
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_set.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GTIFSetVersionNumbers(GTIF* gtif,\n                           unsigned
      short version,\n                           unsigned short key_revision,\n                           unsigned
      short minor_revision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:43,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:44,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:53,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:56,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:58,1
    - Dst: proj_context_destroy
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:62,1
    - Dst: _GTIFFree
      Src: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - gtif
    argTypes:
    - GTIF*
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: GTIFFree
    functionSourceFile: /src/gdal/frmts/gtiff/libgeotiff/geo_free.c
    functionUses: 18
    functionsReached:
    - proj_context_destroy
    - _GTIFFree
    linkageType: ''
    returnType: void
    signature: void GTIFFree(GTIF* gtif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: TIFFHashSetHashPointer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long TIFFHashSetHashPointer(const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elt1
    - elt2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: TIFFHashSetEqualPointer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TIFFHashSetEqualPointer(const void *elt1, const void *elt2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:142,1
    - Dst: calloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:149,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - fnHashFunc
    - fnEqualFunc
    - fnFreeEltFunc
    argTypes:
    - TIFFHashSetHashFunc
    - TIFFHashSetEqualFunc
    - TIFFHashSetFreeEltFunc
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: TIFFHashSetNew
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - malloc
    linkageType: ''
    returnType: TIFFHashSet
    signature: "TIFFHashSet *TIFFHashSetNew(TIFFHashSetHashFunc fnHashFunc,\n                            TIFFHashSetEqualFunc
      fnEqualFunc,\n                            TIFFHashSetFreeEltFunc fnFreeEltFunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - TIFFHashSet*
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: TIFFHashSetSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int TIFFHashSetSize(const TIFFHashSet *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - set
    argTypes:
    - TIFFHashSet*
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: TIFFHashSetGetNewListElt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: TIFFList
    signature: TIFFList *TIFFHashSetGetNewListElt(TIFFHashSet *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - set
    - psList
    argTypes:
    - TIFFHashSet*
    - TIFFList*
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: TIFFHashSetReturnListElt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void TIFFHashSetReturnListElt(TIFFHashSet *set, TIFFList *psList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:228,1
    - Dst: TIFFHashSet*::fnFreeEltFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:235,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:238,1
    - Dst: TIFFHashSetReturnListElt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - set
    - bFinalize
    argTypes:
    - TIFFHashSet*
    - bool
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: TIFFHashSetClearInternal
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetReturnListElt
    - TIFFHashSet*::fnFreeEltFunc
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void TIFFHashSetClearInternal(TIFFHashSet *set, bool bFinalize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psList
    argTypes:
    - TIFFList*
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: TIFFListDestroy
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void TIFFListDestroy(TIFFList *psList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetClearInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:289,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:290,1
    - Dst: TIFFListDestroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:291,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - TIFFHashSet*
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: TIFFHashSetDestroy
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - free
    - TIFFHashSetClearInternal
    - TIFFListDestroy
    linkageType: ''
    returnType: void
    signature: void TIFFHashSetDestroy(TIFFHashSet *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetClearInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - TIFFHashSet*
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: TIFFHashSetClear
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetClearInternal
    linkageType: ''
    returnType: void
    signature: void TIFFHashSetClear(TIFFHashSet *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:344,1
    - Dst: fnIterFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - set
    - fnIterFunc
    - user_data
    argTypes:
    - TIFFHashSet*
    - TIFFHashSetIterEltFunc
    - void*
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: TIFFHashSetForeach
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - assert
    - fnIterFunc
    linkageType: ''
    returnType: void
    signature: "void TIFFHashSetForeach(TIFFHashSet *set, TIFFHashSetIterEltFunc fnIterFunc,\n
      \                       void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:370,1
    - Dst: TIFFDebug
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:374,1
    - Dst: free
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - set
    argTypes:
    - TIFFHashSet*
    constantsTouched: []
    func_position:
      end: 403
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 403
    functionName: TIFFHashSetRehash
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFDebug
    - free
    - calloc
    linkageType: ''
    returnType: bool
    signature: bool TIFFHashSetRehash(TIFFHashSet *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fnEqualFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 420
    functionName: TIFFHashSetFindPtr
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - fnEqualFunc
    linkageType: ''
    returnType: void
    signature: void **TIFFHashSetFindPtr(TIFFHashSet *set, const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:442,1
    - Dst: TIFFHashSet*::fnFreeEltFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:447,1
    - Dst: TIFFHashSetRehash
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:458,1
    - Dst: TIFFHashSet*::fnFreeEltFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:462,1
    - Dst: TIFFHashSetGetNewListElt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:473,1
    - Dst: TIFFHashSet*::fnFreeEltFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:477,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - set
    - elt
    argTypes:
    - TIFFHashSet*
    - void*
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: TIFFHashSetInsert
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetGetNewListElt
    - TIFFHashSet*::fnFreeEltFunc
    - assert
    - TIFFHashSetRehash
    linkageType: ''
    returnType: bool
    signature: bool TIFFHashSetInsert(TIFFHashSet *set, void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - set
    - elt
    argTypes:
    - TIFFHashSet*
    - void*
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: TIFFHashSetLookup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *TIFFHashSetLookup(TIFFHashSet *set, const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:519,1
    - Dst: TIFFHashSetRehash
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:527,1
    - Dst: TIFFHashSet*::fnEqualFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:540,1
    - Dst: TIFFHashSet*::fnFreeEltFunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:548,1
    - Dst: TIFFHashSetReturnListElt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - set
    - elt
    - bDeferRehash
    argTypes:
    - TIFFHashSet*
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 562
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 562
    functionName: TIFFHashSetRemoveInternal
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetReturnListElt
    - TIFFHashSet*::fnFreeEltFunc
    - assert
    - TIFFHashSetRehash
    - TIFFHashSet*::fnEqualFunc
    linkageType: ''
    returnType: bool
    signature: "bool TIFFHashSetRemoveInternal(TIFFHashSet *set, const void *elt,\n
      \                                     bool bDeferRehash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetRemoveInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - elt
    argTypes:
    - TIFFHashSet*
    - void*
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: TIFFHashSetRemove
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetRemoveInternal
    linkageType: ''
    returnType: bool
    signature: bool TIFFHashSetRemove(TIFFHashSet *set, const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetRemoveInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - elt
    argTypes:
    - TIFFHashSet*
    - void*
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: TIFFHashSetRemoveDeferRehash
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_hash_set.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetRemoveInternal
    linkageType: ''
    returnType: bool
    signature: bool TIFFHashSetRemoveDeferRehash(TIFFHashSet *set, const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - TIFFErrorHandler
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: TIFFSetWarningHandler
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_warning.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFErrorHandler
    signature: TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler handler)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - TIFFErrorHandlerExt
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: TIFFSetWarningHandlerExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_warning.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFFErrorHandlerExt
    signature: TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt handler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:51,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:53,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:57,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fmt
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: TIFFWarning
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_warning.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFWarning(const char *module, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:68,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:70,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:74,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - module
    - fmt
    argTypes:
    - thandle_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: TIFFWarningExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_warning.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFWarningExt(thandle_t fd, const char *module, const char *fmt,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:85,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:88,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:94,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:96,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:100,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_warning.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - module
    - fmt
    argTypes:
    - TIFF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: TIFFWarningExtR
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_warning.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFWarningExtR(TIFF *tif, const char *module, const char *fmt,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:72,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:100,1
    - Dst: TIFFroundup_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:101,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:105,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:108,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:112,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:115,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:128,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:133,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:137,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 6
    argNames:
    - tif
    - size
    - rawdata_offset
    - is_strip
    - strip_or_tile
    - module
    argTypes:
    - TIFF*
    - tmsize_t
    - tmsize_t
    - int
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 157
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 157
    functionName: TIFFReadAndRealloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFroundup_64
    - TIFFReadFile
    - _TIFFreallocExt
    - _TIFFfreeExt
    - assert
    - memset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadAndRealloc(TIFF *tif, tmsize_t size, tmsize_t rawdata_offset,\n
      \                             int is_strip, uint32_t strip_or_tile,\n                              const
      char *module)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:186,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:191,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:216,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:217,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:223,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:226,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:228,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:241,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:244,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:248,1
    - Dst: TIFFReadAndRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:249,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:263,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:266,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:267,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:284,1
    - Dst: TIFFJPEGIsFullStripRequired
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:286,1
    - Dst: TIFFFillStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:288,1
    - Dst: TIFFStartStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:293,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - tif
    - strip
    - read_ahead
    - restart
    argTypes:
    - TIFF*
    - int
    - tmsize_t
    - int
    constantsTouched: []
    func_position:
      end: 299
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 299
    functionName: TIFFFillStripPartial
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFReverseBits
    - assert
    - TIFFStartStrip
    - SeekOK
    - TIFFReadAndRealloc
    - TIFFGetStrileByteCount
    - isFillOrder
    - TIFFFillStrip
    - TIFFErrorExtR
    - TIFFJPEGIsFullStripRequired
    - memmove
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: int
    signature: "int TIFFFillStripPartial(TIFF *tif, int strip, tmsize_t read_ahead,\n
      \                               int restart)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:321,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:330,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:346,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:346,1
    - Dst: TIFFFillStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:384,1
    - Dst: if
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:390,1
    - Dst: TIFFFillStripPartial
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:390,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:405,1
    - Dst: TIFFFillStripPartial
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:407,1
    - Dst: TIFFFillStripPartial
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:426,1
    - Dst: TIFFStartStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:431,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 3
    argNames:
    - tif
    - row
    - sample
    argTypes:
    - TIFF*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 450
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 450
    functionName: TIFFSeek
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - if
    - TIFFFillStripPartial
    - TIFFStartStrip
    - isMapped
    - TIFFGetStrileByteCount
    - TIFFFillStrip
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFSeek(TIFF *tif, uint32_t row, uint16_t sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:456,1
    - Dst: TIFFSeek
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:458,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - tif
    - buf
    - row
    - sample
    argTypes:
    - TIFF*
    - void*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 479
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 479
    functionName: TIFFReadScanline
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 2
    functionsReached:
    - memset
    - TIFFSeek
    - TIFFCheckRead
    linkageType: ''
    returnType: int
    signature: int TIFFReadScanline(TIFF *tif, void *buf, uint32_t row, uint16_t sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:496,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:500,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:511,1
    - Dst: TIFFhowmany_32_maxuint_compat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:515,1
    - Dst: TIFFVStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - tif
    - strip
    - pplane
    argTypes:
    - TIFF*
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 526
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 526
    functionName: TIFFReadEncodedStripGetStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - TIFFVStripSize
    - TIFFhowmany_32_maxuint_compat
    - TIFFCheckRead
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadEncodedStripGetStripSize(TIFF *tif, uint32_t strip,\n
      \                                                uint16_t *pplane)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadEncodedStripGetStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:540,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:546,1
    - Dst: TIFFReadRawStrip1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:549,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:552,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:554,1
    - Dst: TIFFFillStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:562,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:567,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 4
    argNames:
    - tif
    - strip
    - buf
    - size
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 574
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 574
    functionName: TIFFReadEncodedStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFReadEncodedStripGetStripSize
    - TIFFReverseBits
    - isMapped
    - isFillOrder
    - TIFFFillStrip
    - TIFFReadRawStrip1
    - memset
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadEncodedStrip(TIFF *tif, uint32_t strip, void *buf,\n
      \                             tmsize_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:592,1
    - Dst: TIFFReadEncodedStripGetStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:595,1
    - Dst: TIFFFillStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:601,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:604,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:607,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:607,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - tif
    - strip
    - buf
    - bufsizetoalloc
    - size_to_read
    argTypes:
    - TIFF*
    - uint32_t
    - void**
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 616
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 616
    functionName: _TIFFReadEncodedStripAndAllocBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFReadEncodedStripGetStripSize
    - TIFFFileName
    - _TIFFmallocExt
    - TIFFReadEncodedStrip
    - TIFFFillStrip
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t _TIFFReadEncodedStripAndAllocBuffer(TIFF *tif, uint32_t strip,\n
      \                                            void **buf,\n                                             tmsize_t
      bufsizetoalloc,\n                                             tmsize_t size_to_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:621,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:622,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:626,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:626,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:628,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:633,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:636,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:648,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:649,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:667,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - tif
    - strip
    - buf
    - size
    - module
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 677
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 677
    functionName: TIFFReadRawStrip1
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - assert
    - isMapped
    - SeekOK
    - _TIFFmemcpy
    - TIFFErrorExtR
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadRawStrip1(TIFF *tif, uint32_t strip, void *buf,\n
      \                                 tmsize_t size, const char *module)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:683,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:683,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:684,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:686,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:686,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:690,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:696,1
    - Dst: TIFFReadAndRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - tif
    - strip_or_tile
    - is_strip
    - size
    - module
    argTypes:
    - TIFF*
    - uint32_t
    - int
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 710
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 710
    functionName: TIFFReadRawStripOrTile2
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - assert
    - isMapped
    - SeekOK
    - TIFFReadAndRealloc
    - TIFFErrorExtR
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadRawStripOrTile2(TIFF *tif, uint32_t strip_or_tile,\n
      \                                       int is_strip, tmsize_t size,\n                                        const
      char *module)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:722,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:726,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:733,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:738,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:742,1
    - Dst: TIFFReadRawStrip1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - tif
    - strip
    - buf
    - size
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 748
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 748
    functionName: TIFFReadRawStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFCheckRead
    - _TIFFCastUInt64ToSSize
    - TIFFGetStrileByteCount
    - TIFFReadRawStrip1
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFReadRawStrip(TIFF *tif, uint32_t strip, void *buf, tmsize_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 751
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 751
    functionName: NoSanitizeSubUInt64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW NoSanitizeSubUInt64(uint64_t
      a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:767,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:781,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:785,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:793,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:805,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:813,1
    - Dst: NoSanitizeSubUInt64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:819,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:820,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:827,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:827,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:843,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:850,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:874,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:882,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:896,1
    - Dst: TIFFReadBufferSetup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:899,1
    - Dst: TIFFReadRawStrip1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:903,1
    - Dst: TIFFReadRawStripOrTile2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:911,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:921,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:923,1
    - Dst: TIFFStartStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:926,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 2
    argNames:
    - tif
    - strip
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 927
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 927
    functionName: TIFFFillStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 4
    functionsReached:
    - _TIFFfreeExt
    - TIFFReverseBits
    - TIFFStripSize
    - TIFFStartStrip
    - isMapped
    - TIFFReadRawStrip1
    - TIFFReadRawStripOrTile2
    - isFillOrder
    - TIFFErrorExtR
    - NoSanitizeSubUInt64
    - TIFFReadBufferSetup
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: int
    signature: int TIFFFillStrip(TIFF *tif, uint32_t strip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:941,1
    - Dst: TIFFCheckTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:941,1
    - Dst: TIFFReadEncodedTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:943,1
    - Dst: TIFFComputeTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - tif
    - buf
    - x
    - y
    - z
    - s
    argTypes:
    - TIFF*
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 945
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 945
    functionName: TIFFReadTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFReadEncodedTile
    - TIFFCheckTile
    - TIFFComputeTile
    - TIFFCheckRead
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadTile(TIFF *tif, void *buf, uint32_t x, uint32_t y,
      uint32_t z,\n                      uint16_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:957,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:961,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:969,1
    - Dst: TIFFReadRawTile1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:972,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:975,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:977,1
    - Dst: TIFFFillTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:987,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:991,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 4
    argNames:
    - tif
    - tile
    - buf
    - size
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1002
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1002
    functionName: TIFFReadEncodedTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 2
    functionsReached:
    - TIFFReadRawTile1
    - TIFFReverseBits
    - isMapped
    - TIFFCheckRead
    - TIFFFillTile
    - isFillOrder
    - memset
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFReadEncodedTile(TIFF *tif, uint32_t tile, void *buf, tmsize_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1014,1
    - Dst: TIFFCheckTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1014,1
    - Dst: _TIFFReadEncodedTileAndAllocBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1016,1
    - Dst: TIFFComputeTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - tif
    - buf
    - bufsizetoalloc
    - x
    - y
    - z
    - s
    argTypes:
    - TIFF*
    - void**
    - tmsize_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1019
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1019
    functionName: _TIFFReadTileAndAllocBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - _TIFFReadEncodedTileAndAllocBuffer
    - TIFFCheckTile
    - TIFFComputeTile
    - TIFFCheckRead
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t _TIFFReadTileAndAllocBuffer(TIFF *tif, void **buf,\n                                     tmsize_t
      bufsizetoalloc, uint32_t x,\n                                     uint32_t y,
      uint32_t z, uint16_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadEncodedTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1037,1
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1040,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1044,1
    - Dst: TIFFFillTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1050,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1059,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1059,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1085,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1085,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1095,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1098,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1098,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - tif
    - tile
    - buf
    - bufsizetoalloc
    - size_to_read
    argTypes:
    - TIFF*
    - uint32_t
    - void**
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1115
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1115
    functionName: _TIFFReadEncodedTileAndAllocBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFFileName
    - TIFFCheckRead
    - _TIFFmallocExt
    - TIFFReadEncodedTile
    - TIFFFillTile
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t _TIFFReadEncodedTileAndAllocBuffer(TIFF *tif, uint32_t tile,\n
      \                                           void **buf, tmsize_t bufsizetoalloc,\n
      \                                           tmsize_t size_to_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1120,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1121,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1125,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1125,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1127,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1133,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1136,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1148,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1150,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1159,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - tif
    - tile
    - buf
    - size
    - module
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 1169
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1169
    functionName: TIFFReadRawTile1
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - assert
    - isMapped
    - SeekOK
    - _TIFFmemcpy
    - TIFFErrorExtR
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFReadRawTile1(TIFF *tif, uint32_t tile, void *buf,\n                                 tmsize_t
      size, const char *module)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckRead
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1181,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1185,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1192,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1197,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1201,1
    - Dst: TIFFReadRawTile1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - tif
    - tile
    - buf
    - size
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1207
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1207
    functionName: TIFFReadRawTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFReadRawTile1
    - TIFFCheckRead
    - _TIFFCastUInt64ToSSize
    - TIFFGetStrileByteCount
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFReadRawTile(TIFF *tif, uint32_t tile, void *buf, tmsize_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1223,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1236,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1240,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1248,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1260,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1268,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1268,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1284,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1292,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1308,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1316,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1330,1
    - Dst: TIFFReadBufferSetup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1333,1
    - Dst: TIFFReadRawTile1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1337,1
    - Dst: TIFFReadRawStripOrTile2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1345,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1356,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1358,1
    - Dst: TIFFStartTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1361,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 2
    argNames:
    - tif
    - tile
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1362
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1362
    functionName: TIFFFillTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 2
    functionsReached:
    - TIFFReadRawTile1
    - _TIFFfreeExt
    - TIFFReverseBits
    - isMapped
    - TIFFStartTile
    - TIFFTileSize
    - TIFFReadRawStripOrTile2
    - isFillOrder
    - TIFFErrorExtR
    - TIFFReadBufferSetup
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: int
    signature: int TIFFFillTile(TIFF *tif, uint32_t tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1377,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1383,1
    - Dst: TIFFroundup_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1395,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1398,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1404,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - tif
    - bp
    - size
    argTypes:
    - TIFF*
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1416
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1416
    functionName: TIFFReadBufferSetup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 2
    functionsReached:
    - TIFFroundup_64
    - _TIFFfreeExt
    - assert
    - _TIFFcallocExt
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFReadBufferSetup(TIFF *tif, void *bp, tmsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - tif
    - strip
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1461
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1461
    functionName: TIFFStartStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 3
    functionsReached:
    - TIFFGetStrileByteCount
    linkageType: ''
    returnType: int
    signature: int TIFFStartStrip(TIFF *tif, uint32_t strip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1482,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1485,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1488,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1492,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1495,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - tif
    - tile
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1515
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1515
    functionName: TIFFStartTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 1
    functionsReached:
    - TIFFhowmany_32
    - TIFFGetStrileByteCount
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFStartTile(TIFF *tif, uint32_t tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1521,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1524,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tif
    - tiles
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1532
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1532
    functionName: TIFFCheckRead
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 8
    functionsReached:
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFCheckRead(TIFF *tif, int tiles)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1555,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1560,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1573,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1576,1
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1579,1
    - Dst: TIFFStartTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1581,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1586,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1603,1
    - Dst: TIFFhowmany_32_maxuint_compat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1609,1
    - Dst: TIFFStartStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1610,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1615,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1630,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1633,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 6
    argNames:
    - tif
    - strile
    - inbuf
    - insize
    - outbuf
    - outsize
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1644
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1644
    functionName: TIFFReadFromUserBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 2
    functionsReached:
    - TIFFReverseBits
    - TIFFStartStrip
    - TIFFhowmany_32_maxuint_compat
    - isFillOrder
    - TIFFIsTiled
    - memset
    - TIFFStartTile
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadFromUserBuffer(TIFF *tif, uint32_t strile, void *inbuf,\n
      \                          tmsize_t insize, void *outbuf, tmsize_t outsize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1651
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1651
    functionName: _TIFFNoPostDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _TIFFNoPostDecode(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1656,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1658
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1658
    functionName: _TIFFSwab16BitData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfShort
    - assert
    linkageType: ''
    returnType: void
    signature: void _TIFFSwab16BitData(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1663,1
    - Dst: TIFFSwabArrayOfTriples
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1665
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1665
    functionName: _TIFFSwab24BitData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfTriples
    - assert
    linkageType: ''
    returnType: void
    signature: void _TIFFSwab24BitData(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1670,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1672
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1672
    functionName: _TIFFSwab32BitData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong
    - assert
    linkageType: ''
    returnType: void
    signature: void _TIFFSwab32BitData(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1677,1
    - Dst: TIFFSwabArrayOfDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_read.c:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1679
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1679
    functionName: _TIFFSwab64BitData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_read.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFSwabArrayOfDouble
    linkageType: ''
    returnType: void
    signature: void _TIFFSwab64BitData(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:179,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 5
    argNames:
    - wp
    - n
    - stride
    - op
    - ToLinearF
    argTypes:
    - uint16_t*
    - int
    - int
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 189
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 189
    functionName: horizontalAccumulateF
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulateF(uint16_t *wp, int n, int stride, float
      *op,\n                                  float *ToLinearF)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:208,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:209,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:210,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:220,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:221,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:222,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:231,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:232,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:233,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:234,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:245,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:246,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:247,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:248,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:253,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:254,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:258,1
    - Dst: CLAMP12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 5
    argNames:
    - wp
    - n
    - stride
    - op
    - ToLinearF
    argTypes:
    - uint16_t*
    - int
    - int
    - int16_t*
    - float*
    constantsTouched: []
    func_position:
      end: 265
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 265
    functionName: horizontalAccumulate12
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - CLAMP12
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulate12(uint16_t *wp, int n, int stride, int16_t
      *op,\n                                   float *ToLinearF)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:311,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 5
    argNames:
    - wp
    - n
    - stride
    - op
    - ToLinear16
    argTypes:
    - uint16_t*
    - int
    - int
    - uint16_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 321
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 321
    functionName: horizontalAccumulate16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulate16(uint16_t *wp, int n, int stride,\n                                   uint16_t
      *op, uint16_t *ToLinear16)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:378,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 4
    argNames:
    - wp
    - n
    - stride
    - op
    argTypes:
    - uint16_t*
    - int
    - int
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 387
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 387
    functionName: horizontalAccumulate11
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulate11(uint16_t *wp, int n, int stride,\n                                   uint16_t
      *op)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:433,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 5
    argNames:
    - wp
    - n
    - stride
    - op
    - ToLinear8
    argTypes:
    - uint16_t*
    - int
    - int
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 443
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 443
    functionName: horizontalAccumulate8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulate8(uint16_t *wp, int n, int stride,\n                                  unsigned
      char *op, unsigned char *ToLinear8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:507,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 5
    argNames:
    - wp
    - n
    - stride
    - op
    - ToLinear8
    argTypes:
    - uint16_t*
    - int
    - int
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 517
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 517
    functionName: horizontalAccumulate8abgr
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    linkageType: ''
    returnType: void
    signature: "void horizontalAccumulate8abgr(uint16_t *wp, int n, int stride,\n
      \                                     unsigned char *op,\n                                      unsigned
      char *ToLinear8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:571,1
    - Dst: exp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:574,1
    - Dst: exp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:575,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:580,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:581,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:582,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:583,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:584,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:586,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:591,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:593,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:595,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:597,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:599,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:601,1
    - Dst: exp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:620,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 2
    argNames:
    - tif
    - sp
    argTypes:
    - TIFF*
    - PixarLogState*
    constantsTouched: []
    func_position:
      end: 671
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 671
    functionName: PixarLogMakeTables
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - exp
    - _TIFFfreeExt
    - log
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int PixarLogMakeTables(TIFF *tif, PixarLogState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 1
    argNames:
    - td
    argTypes:
    - TIFFDirectory*
    constantsTouched: []
    func_position:
      end: 714
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 714
    functionName: PixarLogGuessDataFmt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PixarLogGuessDataFmt(TIFFDirectory *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: multiply_ms
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - _TIFFMultiplySSize
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t multiply_ms(tmsize_t m1, tmsize_t m2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 731
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 731
    functionName: add_ms
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t add_ms(tmsize_t m1, tmsize_t m2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: PixarLogFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PixarLogFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:743,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:747,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:768,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:769,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:769,1
    - Dst: add_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:772,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:776,1
    - Dst: PixarLogGuessDataFmt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:781,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:784,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:787,1
    - Dst: inflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:794,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:796,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:799,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 808
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 808
    functionName: PixarLogSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - PixarLogGuessDataFmt
    - assert
    - multiply_ms
    - _TIFFmallocExt
    - inflateInit
    - PixarLogDecoderState
    - add_ms
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:816,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:819,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:821,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:828,1
    - Dst: inflateReset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 832
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 832
    functionName: PixarLogPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - inflateReset
    - PixarLogDecoderState
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:838,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:859,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:862,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:869,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:875,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:882,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:883,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:889,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:890,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:902,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:905,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:910,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:912,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:920,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:924,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:934,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:943,1
    - Dst: horizontalAccumulateF
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:955,1
    - Dst: horizontalAccumulate16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:960,1
    - Dst: horizontalAccumulate12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:965,1
    - Dst: horizontalAccumulate11
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:970,1
    - Dst: horizontalAccumulate8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:974,1
    - Dst: horizontalAccumulate8abgr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:979,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:984,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:986,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 99
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 992
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 992
    functionName: PixarLogDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfShort
    - horizontalAccumulate8abgr
    - TIFFWarningExtR
    - assert
    - horizontalAccumulate16
    - horizontalAccumulate8
    - PixarLogDecoderState
    - horizontalAccumulateF
    - horizontalAccumulate12
    - memset
    - horizontalAccumulate11
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:998,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1001,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1009,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1009,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1009,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1015,1
    - Dst: PixarLogGuessDataFmt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1019,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1022,1
    - Dst: deflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1029,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1040
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1040
    functionName: PixarLogSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - PixarLogEncoderState
    - PixarLogGuessDataFmt
    - assert
    - multiply_ms
    - _TIFFmallocExt
    - deflateInit
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1048,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1051,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1053,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1060,1
    - Dst: deflateReset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1064
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1064
    functionName: PixarLogPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - deflateReset
    - assert
    - PixarLogEncoderState
    linkageType: ''
    returnType: int
    signature: int PixarLogPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1083,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1084,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1085,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1092,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1095,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1098,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1105,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1106,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1107,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1108,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1115,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1118,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1121,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1124,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1131,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1131,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1135,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1136,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 5
    argNames:
    - ip
    - n
    - stride
    - wp
    - FromLT2
    argTypes:
    - float*
    - int
    - int
    - uint16_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1144
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1144
    functionName: horizontalDifferenceF
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - CLAMP
    linkageType: ''
    returnType: void
    signature: "void horizontalDifferenceF(float *ip, int n, int stride, uint16_t
      *wp,\n                                  uint16_t *FromLT2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1160,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1161,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1162,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1169,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1172,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1175,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1182,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1183,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1184,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1185,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1192,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1195,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1198,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1201,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1208,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1208,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1212,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1213,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 5
    argNames:
    - ip
    - n
    - stride
    - wp
    - From14
    argTypes:
    - unsigned short*
    - int
    - int
    - unsigned short*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1220
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1220
    functionName: horizontalDifference16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - CLAMP
    linkageType: ''
    returnType: void
    signature: "void horizontalDifference16(unsigned short *ip, int n, int stride,\n
      \                                  unsigned short *wp, uint16_t *From14)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1235,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1236,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1237,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1242,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1245,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1248,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1257,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1258,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1259,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1260,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1265,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1268,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1271,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1274,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1283,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1283,1
    - Dst: REPEAT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1287,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1288,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 5
    argNames:
    - ip
    - n
    - stride
    - wp
    - From8
    argTypes:
    - unsigned char*
    - int
    - int
    - unsigned short*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1295
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1295
    functionName: horizontalDifference8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - CLAMP
    linkageType: ''
    returnType: void
    signature: "void horizontalDifference8(unsigned char *ip, int n, int stride,\n
      \                                 unsigned short *wp, uint16_t *From8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1304,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1327,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1337,1
    - Dst: horizontalDifferenceF
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1346,1
    - Dst: horizontalDifference16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1351,1
    - Dst: horizontalDifference8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1356,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1361,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1369,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1376,1
    - Dst: deflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1382,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1384,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1391,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1401
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1401
    functionName: PixarLogEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - horizontalDifferenceF
    - PixarLogEncoderState
    - assert
    - horizontalDifference8
    - horizontalDifference16
    - deflate
    - TIFFFlushData1
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixarLogEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1411,1
    - Dst: deflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1418,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1427,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1443
    functionName: PixarLogPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    - deflate
    - TIFFErrorExtR
    - PixarLogEncoderState
    linkageType: ''
    returnType: int
    signature: int PixarLogPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1473
    functionName: PixarLogClose
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void PixarLogClose(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1479,1
    - Dst: TIFFPredictorCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1481,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1487,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1489,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1491,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1493,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1495,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1497,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1501,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1503,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1506,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1507,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1510,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1511
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1511
    functionName: PixarLogCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorCleanup
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - inflateEnd
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void PixarLogCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1522,1
    - Dst: deflateParams
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1525,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1528,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1535,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1545,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1546,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1549,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1550,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1553,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1554,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1557,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1558,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1561,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1562,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1570,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1570,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1578
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1578
    functionName: PixarLogVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - deflateParams
    - TIFFTileSize
    - va_arg
    - TIFFSetField
    - isTiled
    - TIFFScanlineSize
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PixarLogVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1587,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1596
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1596
    functionName: PixarLogVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: int PixarLogVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1611,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1616,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1616,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1618,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1626,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1630,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1665,1
    - Dst: PixarLogMakeTables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1670,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c:1674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1676
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1676
    functionName: TIFFInitPixarLog
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_pixarlog.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorInit
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - PixarLogMakeTables
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitPixarLog(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: LZWFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LZWFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:185,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:194,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:197,1
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:201,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:208,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:213,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:216,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 237
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 237
    functionName: LZWSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorInit
    - LZWDecoderState
    - _TIFFmallocExt
    - memset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZWSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:245,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:248,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:251,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:265,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:284,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:288,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:296,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 319
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 319
    functionName: LZWPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - MAXCODE
    - LZWDecoderState
    - TIFFWarningExtR
    - assert
    - TIFF*::tif_setupdecode
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZWPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:403,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:412,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:413,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:417,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:418,1
    - Dst: GetNextCodeLZW
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:493,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:517,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:562,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:588,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:596,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:633,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:643,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:661,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:673,1
    - Dst: GetNextCodeLZW
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:677,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:732,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:734,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:743,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:745,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:750,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:752,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 259
    argCount: 4
    argNames:
    - tif
    - op0
    - occ0
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 754
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 754
    functionName: LZWDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - LZWDecoderState
    - MAXCODE
    - assert
    - GetNextCodeLZW
    - memset
    - memcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZWDecode(TIFF *tif, uint8_t *op0, tmsize_t occ0, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:799,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:811,1
    - Dst: NextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:872,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:880,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:883,1
    - Dst: NextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:885,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:891,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:910,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:920,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:933,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:945,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:981,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1008,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 128
    argCount: 4
    argNames:
    - tif
    - op0
    - occ0
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1015
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 1015
    functionName: LZWDecodeCompat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - MAXCODE
    - LZWDecoderState
    - assert
    - NextCode
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZWDecodeCompat(TIFF *tif, uint8_t *op0, tmsize_t occ0, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1029,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1031,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1032,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1039
    functionName: LZWSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFErrorExtR
    - LZWEncoderState
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int LZWSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1046,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1049,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1053,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1057,1
    - Dst: cl_hash
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1073
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1073
    functionName: LZWPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - MAXCODE
    - assert
    - cl_hash
    - TIFF*::tif_setupencode
    - LZWEncoderState
    linkageType: ''
    returnType: int
    signature: int LZWPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1117,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1134,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1158,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1219,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1223,1
    - Dst: cl_hash
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1230,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1235,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1237,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1248,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1249,1
    - Dst: CALCRATIO
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1261,1
    - Dst: cl_hash
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1264,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1269,1
    - Dst: MAXCODE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1271,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 106
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1294
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1294
    functionName: LZWEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - MAXCODE
    - assert
    - PutNextCode
    - cl_hash
    - TIFFFlushData1
    - LZWEncoderState
    - CALCRATIO
    linkageType: ''
    returnType: int
    signature: int LZWEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1302,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1312,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1320,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1328,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1340,1
    - Dst: PutNextCode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1351
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1351
    functionName: LZWPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    - LZWEncoderState
    - PutNextCode
    - assert
    linkageType: ''
    returnType: int
    signature: int LZWPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - sp
    argTypes:
    - LZWCodecState*
    constantsTouched: []
    func_position:
      end: 1376
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1376
    functionName: cl_hash
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_hash(LZWCodecState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFPredictorCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1382,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1384,1
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1386,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1387,1
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1387,1
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1389,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1390,1
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1390,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1392,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1396
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1396
    functionName: LZWCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorCleanup
    - LZWDecoderState
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - LZWEncoderState
    linkageType: ''
    returnType: void
    signature: void LZWCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1402,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1406,1
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1409,1
    - Dst: LZWDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1410,1
    - Dst: LZWEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1411,1
    - Dst: LZWState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1412,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1435,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1440
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1440
    functionName: TIFFInitLZW
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzw.c
    functionUses: 0
    functionsReached:
    - LZWDecoderState
    - TIFFPredictorInit
    - assert
    - LZWState
    - _TIFFmallocExt
    - LZWEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitLZW(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - wp
    argTypes:
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: TIFFSwabShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabShort(uint16_t *wp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - lp
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: TIFFSwabLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabLong(uint32_t *lp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - lp
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: TIFFSwabLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabLong8(uint64_t *lp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - wp
    - n
    argTypes:
    - uint16_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: TIFFSwabArrayOfShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfShort(register uint16_t *wp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tp
    - n
    argTypes:
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: TIFFSwabArrayOfTriples
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfTriples(register uint8_t *tp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - lp
    - n
    argTypes:
    - uint32_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 134
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 134
    functionName: TIFFSwabArrayOfLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfLong(register uint32_t *lp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - lp
    - n
    argTypes:
    - uint64_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: TIFFSwabArrayOfLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfLong8(register uint64_t *lp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - fp
    argTypes:
    - float*
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: TIFFSwabFloat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabFloat(float *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - fp
    - n
    argTypes:
    - float*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: TIFFSwabArrayOfFloat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfFloat(register float *fp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - dp
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: TIFFSwabDouble
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabDouble(double *dp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_swab.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - dp
    - n
    argTypes:
    - double*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: TIFFSwabArrayOfDouble
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void TIFFSwabArrayOfDouble(double *dp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reversed
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: TIFFGetBitRevTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *TIFFGetBitRevTable(int reversed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - cp
    - n
    argTypes:
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: TIFFReverseBits
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_swab.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFReverseBits(uint8_t *cp, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:34,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:38,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tif
    - method
    argTypes:
    - TIFF*
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: TIFFNoEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFFindCODEC
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFNoEncode(TIFF *tif, const char *method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: _TIFFNoRowEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoEncode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoRowEncode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: _TIFFNoStripEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoEncode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoStripEncode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: _TIFFNoTileEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoEncode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoTileEncode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:77,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:80,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - method
    argTypes:
    - TIFF*
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: TIFFNoDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFFindCODEC
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFNoDecode(TIFF *tif, const char *method)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: _TIFFNoFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _TIFFNoFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoDecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: _TIFFNoRowDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoDecode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoRowDecode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoDecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: _TIFFNoStripDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoDecode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoStripDecode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFNoDecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: _TIFFNoTileDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFNoDecode
    linkageType: ''
    returnType: int
    signature: int _TIFFNoTileDecode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tif
    - 'off'
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: _TIFFNoSeek
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _TIFFNoSeek(TIFF *tif, uint32_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: _TIFFNoPreCode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _TIFFNoPreCode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: _TIFFtrue
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _TIFFtrue(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: _TIFFvoid
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _TIFFvoid(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: _TIFFSetDefaultCompressionState
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _TIFFSetDefaultCompressionState(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:168,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: TIFFSetCompressionScheme
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 0
    functionsReached:
    - _TIFFSetDefaultCompressionState
    - TIFFFindCODEC
    linkageType: ''
    returnType: int
    signature: int TIFFSetCompressionScheme(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: TIFFFindCODEC
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: TIFFCodec
    signature: TIFFCodec *TIFFFindCODEC(uint16_t scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:209,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:211,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:217,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - scheme
    - name
    - init
    argTypes:
    - uint16_t
    - char*
    - TIFFInitMethod
    constantsTouched: []
    func_position:
      end: 230
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 230
    functionName: TIFFRegisterCODEC
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 1
    functionsReached:
    - strcpy
    - strlen
    - TIFFErrorExt
    - _TIFFmallocExt
    linkageType: ''
    returnType: TIFFCodec
    signature: "TIFFCodec *TIFFRegisterCODEC(uint16_t scheme, const char *name,\n
      \                            TIFFInitMethod init)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:241,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - TIFFCodec*
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: TIFFUnRegisterCODEC
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - TIFFErrorExt
    linkageType: ''
    returnType: void
    signature: void TIFFUnRegisterCODEC(TIFFCodec *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:272,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:275,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:279,1
    - Dst: TIFFIsCODECConfigured
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:284,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:286,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:290,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:294,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:300,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:303,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_compress.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 310
    functionName: TIFFGetConfiguredCODECs
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_compress.c
    functionUses: 2
    functionsReached:
    - TIFFIsCODECConfigured
    - _TIFFreallocExt
    - _TIFFfreeExt
    - _TIFFmemcpy
    - _TIFFmemset
    linkageType: ''
    returnType: TIFFCodec
    signature: TIFFCodec *TIFFGetConfiguredCODECs()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: TIFFGetTagListCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFGetTagListCount(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - tif
    - tag_index
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: TIFFGetTagListEntry
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFGetTagListEntry(TIFF *tif, int tag_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: TIFFAccessTagMethods
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFFTagMethods
    signature: TIFFTagMethods *TIFFAccessTagMethods(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - tif
    - name
    argTypes:
    - TIFF*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: TIFFGetClientInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_extension.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void *TIFFGetClientInfo(TIFF *tif, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:87,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:101,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:102,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:104,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:104,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:105,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_extension.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - tif
    - data
    - name
    argTypes:
    - TIFF*
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 110
    functionName: TIFFSetClientInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_extension.c
    functionUses: 0
    functionsReached:
    - assert
    - _TIFFmallocExt
    - strcmp
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void TIFFSetClientInfo(TIFF *tif, void *data, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:48,1
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:53,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:55,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - tif
    - vpp
    - vp
    - nmemb
    - elem_size
    argTypes:
    - TIFF*
    - void**
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: setByteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmemcpy
    - _TIFFMultiplySSize
    - _TIFFmallocExt
    linkageType: ''
    returnType: void
    signature: "void setByteArray(TIFF *tif, void **vpp, const void *vp, size_t nmemb,\n
      \                        size_t elem_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vpp
    - vp
    - n
    argTypes:
    - void**
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: _TIFFsetByteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetByteArray(void **vpp, const void *vp, uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - vpp
    - vp
    - n
    argTypes:
    - TIFF*
    - void**
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: _TIFFsetByteArrayExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetByteArrayExt(TIFF *tif, void **vpp, const void *vp, uint32_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - cpp
    - cp
    - n
    argTypes:
    - TIFF*
    - char**
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: _TIFFsetNString
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetNString(TIFF *tif, char **cpp, const char *cp, uint32_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wpp
    - wp
    - n
    argTypes:
    - uint16_t**
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: _TIFFsetShortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetShortArray(uint16_t **wpp, const uint16_t *wp, uint32_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - wpp
    - wp
    - n
    argTypes:
    - TIFF*
    - uint16_t**
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: _TIFFsetShortArrayExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: "void _TIFFsetShortArrayExt(TIFF *tif, uint16_t **wpp, const uint16_t
      *wp,\n                           uint32_t n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lpp
    - lp
    - n
    argTypes:
    - uint32_t**
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: _TIFFsetLongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetLongArray(uint32_t **lpp, const uint32_t *lp, uint32_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - lpp
    - lp
    - n
    argTypes:
    - TIFF*
    - uint32_t**
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: _TIFFsetLongArrayExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: "void _TIFFsetLongArrayExt(TIFF *tif, uint32_t **lpp, const uint32_t
      *lp,\n                          uint32_t n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - lpp
    - lp
    - n
    argTypes:
    - TIFF*
    - uint64_t**
    - uint64_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: _TIFFsetLong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: "void _TIFFsetLong8Array(TIFF *tif, uint64_t **lpp, const uint64_t
      *lp,\n                               uint32_t n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fpp
    - fp
    - n
    argTypes:
    - float**
    - float*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: _TIFFsetFloatArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetFloatArray(float **fpp, const float *fp, uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - fpp
    - fp
    - n
    argTypes:
    - TIFF*
    - float**
    - float*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: _TIFFsetFloatArrayExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetFloatArrayExt(TIFF *tif, float **fpp, const float *fp,
      uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dpp
    - dp
    - n
    argTypes:
    - double**
    - double*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: _TIFFsetDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: void _TIFFsetDoubleArray(double **dpp, const double *dp, uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - dpp
    - dp
    - n
    argTypes:
    - TIFF*
    - double**
    - double*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: _TIFFsetDoubleArrayExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - setByteArray
    linkageType: ''
    returnType: void
    signature: "void _TIFFsetDoubleArrayExt(TIFF *tif, double **dpp, const double
      *dp,\n                            uint32_t n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:123,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - tif
    - vpp
    - value
    - nmemb
    argTypes:
    - TIFF*
    - double**
    - double
    - size_t
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: setDoubleArrayOneValue
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmallocExt
    linkageType: ''
    returnType: void
    signature: "void setDoubleArrayOneValue(TIFF *tif, double **vpp, double value,\n
      \                                  size_t nmemb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:145,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:148,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:172,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:176,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:177,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - tif
    - ap
    - v
    argTypes:
    - TIFF*
    - va_list
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 186
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 186
    functionName: setExtraSamples
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFsetShortArrayExt
    - _TIFFfreeExt
    - TIFFWarningExtR
    - TIFFClrFieldBit
    - va_arg
    linkageType: ''
    returnType: int
    signature: int setExtraSamples(TIFF *tif, va_list ap, uint32_t *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - slen
    - s
    argTypes:
    - TIFF*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: countInkNamesString
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t countInkNamesString(TIFF *tif, uint32_t slen, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:229,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:247,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:250,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:253,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:256,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:281,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:287,1
    - Dst: TIFFSetCompressionScheme
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:297,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:303,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:306,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:309,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:315,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:322,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:330,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:334,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:335,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:340,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:344,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:345,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:355,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:359,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:360,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:367,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:371,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:378,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:381,1
    - Dst: _TIFFsetDoubleArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:385,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:386,1
    - Dst: setDoubleArrayOneValue
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:389,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:390,1
    - Dst: _TIFFsetDoubleArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:395,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:396,1
    - Dst: setDoubleArrayOneValue
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:399,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:400,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:404,1
    - Dst: _TIFFClampDoubleToFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:407,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:410,1
    - Dst: _TIFFClampDoubleToFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:413,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:416,1
    - Dst: _TIFFClampDoubleToFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:422,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:422,1
    - Dst: _TIFFClampDoubleToFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:425,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:425,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:428,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:434,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:435,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:438,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:439,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:443,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:444,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:445,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:446,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:447,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:448,1
    - Dst: setExtraSamples
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:451,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:455,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:459,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:463,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:468,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:476,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:481,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:489,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:495,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:516,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:533,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:538,1
    - Dst: _TIFFsetLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:539,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:540,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:545,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:551,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:554,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:555,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:562,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:563,1
    - Dst: _TIFFsetFloatArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:569,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:570,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:574,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:575,1
    - Dst: countInkNamesString
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:577,1
    - Dst: _TIFFsetNString
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:581,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:584,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:588,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:602,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:604,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:608,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:621,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:624,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:628,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:643,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:647,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:658,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:682,1
    - Dst: isPseudoTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:685,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:692,1
    - Dst: isPseudoTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:695,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:712,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:726,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:731,1
    - Dst: TIFFFieldSetGetSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:753,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:757,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:768,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:769,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:770,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:774,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:779,1
    - Dst: setByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:788,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:795,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:797,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:809,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:818,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:827,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:834,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:835,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:836,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:846,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:846,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:859,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:879,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:896,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:904,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:910,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:916,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:922,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:929,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:935,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:942,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:948,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:961,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:967,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:987,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:993,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:999,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1012,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1018,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1022,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1032,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1034,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1039,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1043,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1044,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1046,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1051,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1052,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1054,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1059,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1060,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1062,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1084,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1097,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1099,1
    CyclomaticComplexity: 197
    EdgeCount: 197
    ICount: 550
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1102
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 1102
    functionName: _TIFFVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - _TIFFreallocExt
    - setDoubleArrayOneValue
    - assert
    - TIFFFieldSet
    - _TIFFsetNString
    - strcmp
    - countInkNamesString
    - setExtraSamples
    - TIFFErrorExtR
    - TIFFFindField
    - _TIFFClampDoubleToFloat
    - _TIFFsetLong8Array
    - isPseudoTag
    - setByteArray
    - _TIFFsetFloatArrayExt
    - va_end
    - TIFFClrFieldBit
    - TIFFFieldSetGetSize
    - _TIFFCheckMalloc
    - _TIFFmemcpy
    - TIFFFieldWithTag
    - _TIFFmemset
    - _TIFFsetShortArrayExt
    - TIFFSetCompressionScheme
    - TIFFWarningExtR
    - TIFFSetFieldBit
    - va_arg
    - _TIFFsetDoubleArrayExt
    linkageType: ''
    returnType: int
    signature: int _TIFFVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1115,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1118,1
    - Dst: isPseudoTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1119,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1137
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1137
    functionName: OkToChangeTag
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - isPseudoTag
    - TIFFFindField
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OkToChangeTag(TIFF *tif, uint32_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1151,1
    - Dst: TIFFVSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1152,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1155
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1155
    functionName: TIFFSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 31
    functionsReached:
    - va_end
    - TIFFVSetField
    - va_start
    linkageType: ''
    returnType: int
    signature: int TIFFSetField(TIFF *tif, uint32_t tag, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1162,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1169,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1197
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1197
    functionName: TIFFUnsetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 7
    functionsReached:
    - TIFFClrFieldBit
    - TIFFFieldWithTag
    - _TIFFfreeExt
    linkageType: ''
    returnType: int
    signature: int TIFFUnsetField(TIFF *tif, uint32_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OkToChangeTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1210
      start: 1205
    functionDepth: 2
    functionLinenumber: 1205
    functionLinenumberEnd: 1210
    functionName: TIFFVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 1
    functionsReached:
    - OkToChangeTag
    linkageType: ''
    returnType: int
    signature: int TIFFVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1217,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1235,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1238,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1241,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1244,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1247,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1250,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1253,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1256,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1259,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1262,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1265,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1268,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1271,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1275,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1289,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1302,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1305,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1308,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1311,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1314,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1317,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1320,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1321,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1324,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1325,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1328,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1329,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1330,1
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1334,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1335,1
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1341,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1342,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1347,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1352,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1353,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1356,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1359,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1362,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1368,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1371,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1374,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1377,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1382,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1385,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1388,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1389,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1392,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1395,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1396,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1399,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1412,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1415,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1418,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1435,1
    - Dst: isPseudoTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1438,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1458,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1460,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1465,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1488,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1493,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1497,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1501,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1505,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1510,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1514,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1519,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1523,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1548,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1558,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1562,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 273
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1576
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1576
    functionName: _TIFFVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - TIFFFindField
    - assert
    - _TIFFFillStriles
    - isPseudoTag
    - strcmp
    - va_arg
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _TIFFVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1587,1
    - Dst: TIFFVGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1588,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1591
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1591
    functionName: TIFFGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 44
    functionsReached:
    - va_end
    - TIFFVGetField
    - va_start
    linkageType: ''
    returnType: int
    signature: int TIFFGetField(TIFF *tif, uint32_t tag, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1601,1
    - Dst: isPseudoTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1602,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1605
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1605
    functionName: TIFFVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 1
    functionsReached:
    - TIFFFindField
    - TIFFFieldSet
    - isPseudoTag
    linkageType: ''
    returnType: int
    signature: int TIFFVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1625,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1626,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1627,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1628,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1629,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1630,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1631,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1632,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1633,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1634,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1635,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1636,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1637,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1638,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1639,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1641,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1642,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1648,1
    - Dst: CleanupField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1652,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1654,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1655,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1667
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1667
    functionName: TIFFFreeDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached:
    - TIFFClrFieldBit
    - _TIFFfreeExt
    - CleanupField
    - _TIFFmemset
    linkageType: ''
    returnType: void
    signature: void TIFFFreeDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - extender
    argTypes:
    - TIFFExtendProc
    constantsTouched: []
    func_position:
      end: 1680
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1680
    functionName: TIFFSetTagExtender
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TIFFExtendProc
    signature: TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc extender)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1692,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1702
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1702
    functionName: TIFFCreateDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached:
    - TIFFFreeDirectory
    - TIFFDefaultDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFCreateDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1707,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1708,1
    - Dst: _TIFFSetupFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1715,1
    - Dst: _TIFFCleanupIFDOffsetAndNumberMaps
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - tif
    - infoarray
    argTypes:
    - TIFF*
    - TIFFFieldArray*
    constantsTouched: []
    func_position:
      end: 1730
      start: 1704
    functionDepth: 2
    functionLinenumber: 1704
    functionLinenumberEnd: 1730
    functionName: TIFFCreateCustomDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFSetupFields
    - _TIFFCleanupIFDOffsetAndNumberMaps
    - TIFFFreeDirectory
    - TIFFDefaultDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFCreateCustomDirectory(TIFF *tif, const TIFFFieldArray *infoarray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetExifFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1735,1
    - Dst: TIFFCreateCustomDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1737
      start: 1732
    functionDepth: 3
    functionLinenumber: 1732
    functionLinenumberEnd: 1737
    functionName: TIFFCreateEXIFDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFGetExifFields
    - TIFFCreateCustomDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFCreateEXIFDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetGpsFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1745,1
    - Dst: TIFFCreateCustomDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1747
      start: 1742
    functionDepth: 3
    functionLinenumber: 1742
    functionLinenumberEnd: 1747
    functionName: TIFFCreateGPSDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - TIFFCreateCustomDirectory
    - _TIFFGetGpsFields
    linkageType: ''
    returnType: int
    signature: int TIFFCreateGPSDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1757,1
    - Dst: _TIFFSetupFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1758,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1760,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1809,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1811,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1836
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1836
    functionName: TIFFDefaultDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached:
    - _TIFFSetupFields
    - _TIFFfreeExt
    - TIFFSetField
    - _TIFFGetFields
    - _TIFFmemset
    linkageType: ''
    returnType: int
    signature: int TIFFDefaultDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCheckDirNumberAndOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1844,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1846,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1855,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1868,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1874,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1876,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1882,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1887,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1889,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1899,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1908,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1913,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1915,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1918,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1926,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1933,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1938,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1940,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1949,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1950,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1952,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1958,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1960,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1962,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1963,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1965,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1970,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1977,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1978,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1980,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1986,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1989,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1996,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1998,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:1999,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2001,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2006,1
    - Dst: _TIFFCheckDirNumberAndOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2014,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2016,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 116
    argCount: 4
    argNames:
    - tif
    - nextdiroff
    - 'off'
    - nextdirnum
    argTypes:
    - TIFF*
    - uint64_t*
    - uint64_t*
    - tdir_t*
    constantsTouched: []
    func_position:
      end: 2027
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 2027
    functionName: TIFFAdvanceDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 0
    functionsReached:
    - _TIFFCheckDirNumberAndOffset
    - TIFFSwabLong
    - TIFFSwabLong8
    - TIFFWarningExtR
    - isMapped
    - SeekOK
    - TIFFSwabShort
    - _TIFFmemcpy
    - TIFFSeekFile
    - ReadOK
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFAdvanceDirectory(TIFF *tif, uint64_t *nextdiroff, uint64_t
      *off,\n                                tdir_t *nextdirnum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFAdvanceDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2051
      start: 2032
    functionDepth: 2
    functionLinenumber: 2032
    functionLinenumberEnd: 2051
    functionName: TIFFNumberOfDirectories
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached:
    - TIFFAdvanceDirectory
    linkageType: ''
    returnType: tdir_t
    signature: tdir_t TIFFNumberOfDirectories(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCleanupIFDOffsetAndNumberMaps
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2069,1
    - Dst: _TIFFGetOffsetFromDirNumber
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2074,1
    - Dst: TIFFAdvanceDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - tif
    - dirn
    argTypes:
    - TIFF*
    - tdir_t
    constantsTouched: []
    func_position:
      end: 2145
      start: 2057
    functionDepth: 2
    functionLinenumber: 2057
    functionLinenumberEnd: 2145
    functionName: TIFFSetDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 5
    functionsReached:
    - TIFFAdvanceDirectory
    - _TIFFGetOffsetFromDirNumber
    - _TIFFCleanupIFDOffsetAndNumberMaps
    linkageType: ''
    returnType: int
    signature: int TIFFSetDirectory(TIFF *tif, tdir_t dirn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetDirNumberFromOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2177,1
    - Dst: TIFFReadDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2191,1
    - Dst: _TIFFCleanupIFDOffsetAndNumberMaps
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2208,1
    - Dst: _TIFFCheckDirNumberAndOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - tif
    - diroff
    argTypes:
    - TIFF*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2218
      start: 2153
    functionDepth: 1
    functionLinenumber: 2153
    functionLinenumberEnd: 2218
    functionName: TIFFSetSubDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 4
    functionsReached:
    - TIFFReadDirectory
    - _TIFFCheckDirNumberAndOffset
    - _TIFFGetDirNumberFromOffset
    - _TIFFCleanupIFDOffsetAndNumberMaps
    linkageType: ''
    returnType: int
    signature: int TIFFSetSubDirectory(TIFF *tif, uint64_t diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: TIFFCurrentDirOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFCurrentDirOffset(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2229
      start: 2229
    functionDepth: 0
    functionLinenumber: 2229
    functionLinenumberEnd: 2229
    functionName: TIFFLastDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFLastDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2247,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2253,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2279,1
    - Dst: TIFFAdvanceDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2282,1
    - Dst: TIFFAdvanceDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2289,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2296,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2301,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2303,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2304,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2306,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2315,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2316,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2318,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2342,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2350,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2351,1
    - Dst: _TIFFCleanupIFDOffsetAndNumberMaps
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dir.c:2363,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 2
    argNames:
    - tif
    - dirn
    argTypes:
    - TIFF*
    - tdir_t
    constantsTouched: []
    func_position:
      end: 2365
      start: 2237
    functionDepth: 2
    functionLinenumber: 2237
    functionLinenumberEnd: 2365
    functionName: TIFFUnlinkDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dir.c
    functionUses: 1
    functionsReached:
    - TIFFSwabLong
    - _TIFFCleanupIFDOffsetAndNumberMaps
    - WriteOK
    - TIFFSwabLong8
    - _TIFFfreeExt
    - assert
    - TIFFAdvanceDirectory
    - TIFFFreeDirectory
    - TIFFSeekFile
    - TIFFDefaultDirectory
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFUnlinkDirectory(TIFF *tif, tdir_t dirn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:79,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:94,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:111,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:121,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:142,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:147,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:165,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 168
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 168
    functionName: NeXTDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_next.c
    functionUses: 0
    functionsReached:
    - _TIFFmemcpy
    - SETPIXEL
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int NeXTDecode(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_next.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: NeXTPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_next.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int NeXTPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: TIFFInitNeXT
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_next.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFInitNeXT(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - size
    argTypes:
    - thandle_t
    - tdata_t
    - tsize_t
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: _tiffReadProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFReadL
    linkageType: ''
    returnType: tsize_t
    signature: tsize_t _tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - size
    argTypes:
    - thandle_t
    - tdata_t
    - tsize_t
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: _tiffWriteProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 1
    functionsReached:
    - VSIFWriteL
    linkageType: ''
    returnType: tsize_t
    signature: tsize_t _tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:38,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - 'off'
    - whence
    argTypes:
    - thandle_t
    - toff_t
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: _tiffSeekProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    linkageType: ''
    returnType: toff_t
    signature: toff_t _tiffSeekProc(thandle_t fd, toff_t off, int whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: _tiffCloseProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: int
    signature: int _tiffCloseProc(thandle_t fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:56,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:57,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:57,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:59,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:60,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - thandle_t
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: _tiffSizeProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    - CPL_IGNORE_RET_VAL_INT
    linkageType: ''
    returnType: toff_t
    signature: toff_t _tiffSizeProc(thandle_t fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - pbase
    - psize
    argTypes:
    - thandle_t
    - tdata_t*
    - toff_t*
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: _tiffMapProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - base
    - size
    argTypes:
    - thandle_t
    - tdata_t
    - toff_t
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: _tiffUnmapProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - name
    - mode
    argTypes:
    - CPL_UNUSED
    - CPL_UNUSED*
    - CPL_UNUSED*
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: TIFFFdOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFF
    signature: 'TIFF *

      TIFFFdOpen(CPL_UNUSED int fd, CPL_UNUSED const char* name, CPL_UNUSED const
      char* mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:114,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:116,1
    - Dst: TIFFError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:119,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:119,1
    - Dst: TIFFError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:121,1
    - Dst: TIFFClientOpen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:125,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:134,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 137
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 137
    functionName: TIFFOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 12
    functionsReached:
    - VSIFCloseL
    - TIFFError
    - strcat
    - VSIFOpenL
    - CPL_IGNORE_RET_VAL_INT
    - TIFFClientOpen
    - VSIStrerror
    linkageType: ''
    returnType: TIFF
    signature: 'TIFF *

      TIFFOpen(const char* name, const char* mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - tsize_t
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: _TIFFmalloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 1
    functionsReached:
    - VSIMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _TIFFmalloc(tsize_t s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSICalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - siz
    argTypes:
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: _TIFFcalloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - VSICalloc
    linkageType: ''
    returnType: void
    signature: void * _TIFFcalloc(tmsize_t nmemb, tmsize_t siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - tdata_t
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: _TIFFfree
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 3
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void _TIFFfree(tdata_t p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - tdata_t
    - tsize_t
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: _TIFFrealloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 1
    functionsReached:
    - VSIRealloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _TIFFrealloc(tdata_t p, tsize_t s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - v
    - c
    argTypes:
    - void*
    - int
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: _TIFFmemset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 9
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _TIFFmemset(void* p, int v, tmsize_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - s
    - c
    argTypes:
    - void*
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: _TIFFmemcpy
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 10
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _TIFFmemcpy(void* d, const void* s, tmsize_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - p2
    - c
    argTypes:
    - void*
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: _TIFFmemcmp
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:187,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:188,1
    - Dst: vfprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:189,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: unixWarningHandler
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void unixWarningHandler(const char* module, const char* fmt, va_list
      ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:198,1
    - Dst: vfprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:199,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: unixErrorHandler
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_vsi.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void unixErrorHandler(const char* module, const char* fmt, va_list
      ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITECHECKSTRIPS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:54,1
    - Dst: BUFFERCHECK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:61,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:74,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:89,1
    - Dst: TIFFGrowStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:105,1
    - Dst: TIFFFlushData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:112,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:122,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:125,1
    - Dst: TIFF*::tif_postdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:173,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 4
    argNames:
    - tif
    - buf
    - row
    - sample
    argTypes:
    - TIFF*
    - void*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 181
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 181
    functionName: TIFFWriteScanline
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 0
    functionsReached:
    - WRITECHECKSTRIPS
    - TIFFhowmany_32
    - TIFF*::tif_postdecode
    - TIFFFlushData
    - BUFFERCHECK
    - TIFFGrowStrips
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFWriteScanline(TIFF *tif, void *buf, uint32_t row, uint16_t
      sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteBufferSetup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:200,1
    - Dst: TIFFroundup_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - tif
    - strip_or_tile
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 207
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 207
    functionName: _TIFFReserveLargeEnoughWriteBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 0
    functionsReached:
    - TIFFroundup_64
    - TIFFWriteBufferSetup
    linkageType: ''
    returnType: int
    signature: int _TIFFReserveLargeEnoughWriteBuffer(TIFF *tif, uint32_t strip_or_tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITECHECKSTRIPS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:222,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:237,1
    - Dst: TIFFGrowStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:242,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:245,1
    - Dst: BUFFERCHECK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:252,1
    - Dst: _TIFFReserveLargeEnoughWriteBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:262,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:272,1
    - Dst: TIFF*::tif_postdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:290,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:292,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:294,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:296,1
    - Dst: TIFF*::tif_postdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:306,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:312,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:314,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:316,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - tif
    - strip
    - data
    - cc
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 321
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 321
    functionName: TIFFWriteEncodedStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 6
    functionsReached:
    - TIFFhowmany_32
    - WRITECHECKSTRIPS
    - _TIFFReserveLargeEnoughWriteBuffer
    - TIFFReverseBits
    - TIFF*::tif_postdecode
    - TIFFAppendToStrip
    - isFillOrder
    - BUFFERCHECK
    - TIFFGrowStrips
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFWriteEncodedStrip(TIFF *tif, uint32_t strip, void *data,\n
      \                              tmsize_t cc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITECHECKSTRIPS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:333,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:348,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:360,1
    - Dst: TIFFGrowStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:361,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:375,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:379,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - tif
    - strip
    - data
    - cc
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 381
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 381
    functionName: TIFFWriteRawStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 3
    functionsReached:
    - TIFFhowmany_32
    - WRITECHECKSTRIPS
    - TIFFAppendToStrip
    - TIFFGrowStrips
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFWriteRawStrip(TIFF *tif, uint32_t strip, void *data, tmsize_t
      cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCheckTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:390,1
    - Dst: TIFFWriteEncodedTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:398,1
    - Dst: TIFFComputeTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - tif
    - buf
    - x
    - y
    - z
    - s
    argTypes:
    - TIFF*
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: TIFFWriteTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 0
    functionsReached:
    - TIFFWriteEncodedTile
    - TIFFCheckTile
    - TIFFComputeTile
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t TIFFWriteTile(TIFF *tif, void *buf, uint32_t x, uint32_t
      y, uint32_t z,\n                       uint16_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITECHECKTILES
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:421,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:426,1
    - Dst: BUFFERCHECK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:435,1
    - Dst: _TIFFReserveLargeEnoughWriteBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:445,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:457,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:460,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:464,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:467,1
    - Dst: TIFF*::tif_postdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:492,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:494,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:496,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:498,1
    - Dst: TIFF*::tif_postdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:507,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:513,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:515,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:517,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 4
    argNames:
    - tif
    - tile
    - data
    - cc
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 522
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 522
    functionName: TIFFWriteEncodedTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 2
    functionsReached:
    - WRITECHECKTILES
    - TIFFhowmany_32
    - _TIFFReserveLargeEnoughWriteBuffer
    - TIFFReverseBits
    - TIFF*::tif_postdecode
    - TIFFAppendToStrip
    - isFillOrder
    - BUFFERCHECK
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFWriteEncodedTile(TIFF *tif, uint32_t tile, void *data,
      tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITECHECKTILES
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:537,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:541,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - tif
    - tile
    - data
    - cc
    argTypes:
    - TIFF*
    - uint32_t
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 548
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 548
    functionName: TIFFWriteRawTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 2
    functionsReached:
    - TIFFAppendToStrip
    - WRITECHECKTILES
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFWriteRawTile(TIFF *tif, uint32_t tile, void *data, tmsize_t
      cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:557,1
    - Dst: isUnspecified
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:558,1
    - Dst: TIFFNumberOfTiles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:560,1
    - Dst: isUnspecified
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:562,1
    - Dst: TIFFNumberOfStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:564,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:570,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:578,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:579,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:582,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:583,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:591,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:592,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:593,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 596
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 596
    functionName: TIFFSetupStrips
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - TIFFNumberOfStrips
    - TIFFSetFieldBit
    - isUnspecified
    - isTiled
    - _TIFFCheckMalloc
    - TIFFNumberOfTiles
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFSetupStrips(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:609,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:612,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:614,1
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:620,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:632,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:634,1
    - Dst: TIFFSetupStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:638,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:641,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:642,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:645,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:647,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:653,1
    - Dst: TIFFForceStrileArrayWriting
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:668,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - tif
    - tiles
    - module
    argTypes:
    - TIFF*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 672
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 672
    functionName: TIFFWriteCheck
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 6
    functionsReached:
    - TIFFFieldSet
    - _TIFFFillStriles
    - TIFFTileSize
    - isTiled
    - TIFFScanlineSize
    - TIFFSetupStrips
    - TIFFForceStrileArrayWriting
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFWriteCheck(TIFF *tif, int tiles, const char *module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:685,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:692,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:692,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:706,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:709,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - tif
    - bp
    - size
    argTypes:
    - TIFF*
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 722
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 722
    functionName: TIFFWriteBufferSetup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 2
    functionsReached:
    - _TIFFfreeExt
    - TIFFStripSize
    - _TIFFmallocExt
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFWriteBufferSetup(TIFF *tif, void *bp, tmsize_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:733,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:734,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:736,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:742,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:744,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:746,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:751,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - tif
    - delta
    - module
    argTypes:
    - TIFF*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 759
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 759
    functionName: TIFFGrowStrips
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 3
    functionsReached:
    - _TIFFreallocExt
    - _TIFFfreeExt
    - assert
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFGrowStrips(TIFF *tif, uint32_t delta, const char *module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:777,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:790,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:792,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:806,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:824,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:851,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:856,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:860,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:863,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:875,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:877,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:878,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:881,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:883,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:884,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:887,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:889,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:890,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:893,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:895,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:896,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:904,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:911,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:913,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 4
    argNames:
    - tif
    - strip
    - data
    - cc
    argTypes:
    - TIFF*
    - uint32_t
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 924
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 924
    functionName: TIFFAppendToStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 4
    functionsReached:
    - WriteOK
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - SeekOK
    - TIFFSeekFile
    - ReadOK
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFAppendToStrip(TIFF *tif, uint32_t strip, uint8_t *data,\n
      \                            tmsize_t cc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:935,1
    - Dst: TIFFReverseBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:937,1
    - Dst: TIFFAppendToStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:938,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_write.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 953
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 953
    functionName: TIFFFlushData1
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 4
    functionsReached:
    - TIFFReverseBits
    - TIFFAppendToStrip
    - isFillOrder
    - isTiled
    linkageType: ''
    returnType: int
    signature: int TIFFFlushData1(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tif
    - 'off'
    argTypes:
    - TIFF*
    - toff_t
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: TIFFSetWriteOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_write.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFSetWriteOffset(TIFF *tif, toff_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:91,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:104,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:112,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:118,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:129,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:142,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:168,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:177,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:180,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:187,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:198,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:208,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:216,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:223,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:235,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:245,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 2
    argNames:
    - tif
    - emsg
    argTypes:
    - TIFF*
    - char[]
    constantsTouched: []
    func_position:
      end: 251
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 251
    functionName: TIFFRGBAImageOK
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 1
    functionsReached:
    - TIFFGetField
    - snprintf
    - TIFFGetFieldDefaulted
    linkageType: ''
    returnType: int
    signature: int TIFFRGBAImageOK(TIFF *tif, char emsg[EMSG_BUF_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:257,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:262,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:267,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:272,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:277,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:282,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:287,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:293,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:294,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: TIFFRGBAImageEnd
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    linkageType: ''
    returnType: void
    signature: void TIFFRGBAImageEnd(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: isCCITTCompression
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFGetField
    linkageType: ''
    returnType: int
    signature: int isCCITTCompression(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRGBAImageOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:321,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:341,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:351,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:358,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:359,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:379,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:391,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:392,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:393,1
    - Dst: isCCITTCompression
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:398,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:407,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:415,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:418,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:426,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:428,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:430,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:433,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:438,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:439,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:440,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:448,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:472,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:490,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:499,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:502,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:510,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:521,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:526,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:534,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:542,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:547,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:554,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:559,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:560,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:561,1
    - Dst: PickContigCase
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:566,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:568,1
    - Dst: PickSeparateCase
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:574,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:576,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:583,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 184
    argCount: 4
    argNames:
    - img
    - tif
    - stop
    - emsg
    argTypes:
    - TIFFRGBAImage*
    - TIFF*
    - int
    - char[]
    constantsTouched: []
    func_position:
      end: 585
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 585
    functionName: TIFFRGBAImageBegin
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFRGBAImageOK
    - isCCITTCompression
    - PickSeparateCase
    - TIFFRGBAImageEnd
    - _TIFFmallocExt
    - TIFFGetField
    - snprintf
    - _TIFFmemcpy
    - TIFFGetFieldDefaulted
    - TIFFSetField
    - PickContigCase
    linkageType: ''
    returnType: int
    signature: "int TIFFRGBAImageBegin(TIFFRGBAImage *img, TIFF *tif, int stop,\n
      \                      char emsg[EMSG_BUF_SIZE])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:592,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:592,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:598,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - img
    - raster
    - w
    - h
    argTypes:
    - TIFFRGBAImage*
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 604
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 604
    functionName: TIFFRGBAImageGet
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFFileName
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFRGBAImageGet(TIFFRGBAImage *img, uint32_t *raster, uint32_t
      w,\n                     uint32_t h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRGBAImageBegin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:617,1
    - Dst: TIFFRGBAImageGet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:621,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:623,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:627,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - rwidth
    - rheight
    - raster
    - orientation
    - stop
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 631
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 631
    functionName: TIFFReadRGBAImageOriented
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFRGBAImageGet
    - TIFFRGBAImageEnd
    - TIFFFileName
    - TIFFRGBAImageBegin
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadRGBAImageOriented(TIFF *tif, uint32_t rwidth, uint32_t
      rheight,\n                              uint32_t *raster, int orientation, int
      stop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadRGBAImageOriented
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tif
    - rwidth
    - rheight
    - raster
    - stop
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: TIFFReadRGBAImage
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFReadRGBAImageOriented
    linkageType: ''
    returnType: int
    signature: "int TIFFReadRGBAImage(TIFF *tif, uint32_t rwidth, uint32_t rheight,\n
      \                     uint32_t *raster, int stop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 41
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 703
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 703
    functionName: setorientation
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setorientation(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:729,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:732,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:732,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:736,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:737,1
    - Dst: setorientation
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:739,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:744,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:744,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:755,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:755,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:765,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:765,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:777,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:777,1
    - Dst: _TIFFReadTileAndAllocBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:793,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:801,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:828,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 4
    argNames:
    - img
    - raster
    - w
    - h
    argTypes:
    - TIFFRGBAImage*
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 851
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 851
    functionName: gtTileContig
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - _TIFFReadTileAndAllocBuffer
    - TIFFTileRowSize
    - TIFFFileName
    - _TIFFfreeExt
    - TIFFTileSize
    - TIFFGetField
    - setorientation
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int gtTileContig(TIFFRGBAImage *img, uint32_t *raster, uint32_t w,\n
      \                       uint32_t h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:884,1
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:886,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:892,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:893,1
    - Dst: setorientation
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:895,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:900,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:900,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:911,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:911,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:934,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:934,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:946,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:946,1
    - Dst: _TIFFReadTileAndAllocBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:964,1
    - Dst: TIFFReadTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:985,1
    - Dst: TIFFReadTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:993,1
    - Dst: TIFFReadTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1001,1
    - Dst: TIFFReadTile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1009,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1017,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1066,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 112
    argCount: 4
    argNames:
    - img
    - raster
    - w
    - h
    argTypes:
    - TIFFRGBAImage*
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1068
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 1068
    functionName: gtTileSeparate
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - _TIFFReadTileAndAllocBuffer
    - TIFFTileRowSize
    - TIFFReadTile
    - TIFFFileName
    - _TIFFfreeExt
    - TIFFTileSize
    - _TIFFMultiplySSize
    - TIFFGetField
    - setorientation
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int gtTileSeparate(TIFFRGBAImage *img, uint32_t *raster, uint32_t
      w,\n                          uint32_t h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1092,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1096,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1096,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1101,1
    - Dst: setorientation
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1103,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1108,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1108,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1120,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1123,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1123,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1127,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1140,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1140,1
    - Dst: _TIFFReadEncodedStripAndAllocBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1144,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1145,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 4
    argNames:
    - img
    - raster
    - w
    - h
    argTypes:
    - TIFFRGBAImage*
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1184
      start: 1076
    functionDepth: 4
    functionLinenumber: 1076
    functionLinenumberEnd: 1184
    functionName: gtStripContig
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFFileName
    - _TIFFfreeExt
    - _TIFFReadEncodedStripAndAllocBuffer
    - TIFFComputeStrip
    - TIFFStripSize
    - TIFFGetFieldDefaulted
    - TIFFScanlineSize
    - setorientation
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int gtStripContig(TIFFRGBAImage *img, uint32_t *raster, uint32_t w,\n
      \                        uint32_t h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1211,1
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1213,1
    - Dst: setorientation
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1219,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1224,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1224,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1249,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1252,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1252,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1256,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1267,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1267,1
    - Dst: _TIFFReadEncodedStripAndAllocBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1273,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1274,1
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1294,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1294,1
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1302,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1302,1
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1310,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1310,1
    - Dst: TIFFReadEncodedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1319,1
    - Dst: TIFFComputeStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1320,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1357,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 4
    argNames:
    - img
    - raster
    - w
    - h
    argTypes:
    - TIFFRGBAImage*
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1359
      start: 1192
    functionDepth: 4
    functionLinenumber: 1192
    functionLinenumberEnd: 1359
    functionName: gtStripSeparate
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFFileName
    - _TIFFfreeExt
    - _TIFFReadEncodedStripAndAllocBuffer
    - TIFFComputeStrip
    - TIFFStripSize
    - _TIFFMultiplySSize
    - TIFFReadEncodedStrip
    - TIFFGetFieldDefaulted
    - TIFFScanlineSize
    - setorientation
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int gtStripSeparate(TIFFRGBAImage *img, uint32_t *raster, uint32_t
      w,\n                           uint32_t h)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1505
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put8bitcmaptile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1524
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL2
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put4bitcmaptile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1543
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL4
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put2bitcmaptile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1562
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL8
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put1bitcmaptile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1583
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putgreytile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1604
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putagreytile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1630
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put16bitbwtile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1649
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL8
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put1bitbwtile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1668
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL4
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put2bitbwtile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1687
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL2
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(put4bitbwtile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1701,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1706
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL8
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBcontig8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1721,1
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1726
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - UNROLL8
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBAAcontig8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1732
    functionDepth: 0
    functionLinenumber: 1732
    functionLinenumberEnd: 1754
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBUAcontig8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1776
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBcontig16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1799
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBAAcontig16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1828
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBUAcontig16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1845,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1851
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL8
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBcontig8bitCMYKtile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1858
    functionDepth: 0
    functionLinenumber: 1858
    functionLinenumberEnd: 1880
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putRGBcontig8bitCMYKMaptile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1899,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1899,1
    - Dst: SKEW
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1903
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - UNROLL8
    - SKEW
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBseparate8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNROLL8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1915,1
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1915,1
    - Dst: SKEW4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1919
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - UNROLL8
    - SKEW4
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBAAseparate8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1937,1
    - Dst: SKEW4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1942
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - SKEW4
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putCMYKseparate8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1962,1
    - Dst: SKEW4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1967
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - SKEW4
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBUAseparate8bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1983,1
    - Dst: SKEW
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:1985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1988
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - SKEW
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBseparate16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2004,1
    - Dst: SKEW4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 2009
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - SKEW4
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBAAseparate16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2033,1
    - Dst: SKEW4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2038
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - PACK4
    - SKEW4
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putRGBUAseparate16bittile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCIELabToXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2053,1
    - Dst: TIFFXYZToRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2055,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2062
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFCIELabToXYZ
    - TIFFXYZToRGB
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitCIELab8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCIELab16ToXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2078,1
    - Dst: TIFFXYZToRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2080,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2087
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFCIELab16ToXYZ
    - TIFFXYZToRGB
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitCIELab16)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2123,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2124,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2125,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2126,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2127,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2128,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2129,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2130,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2131,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2132,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2133,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2134,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2135,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2136,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2137,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2138,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2167,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2169,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2171,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2173,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2179,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2181,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2183,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2185,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2191,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2193,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2195,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2197,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2203,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2205,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2207,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2209,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2240
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr44tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2262,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2263,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2264,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2265,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2266,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2267,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2268,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2269,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2294,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2296,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2302,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2304,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2310,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2312,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2318,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2320,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2345
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr42tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2362,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2363,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2364,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2365,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2380,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2382,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2350
    functionDepth: 0
    functionLinenumber: 2350
    functionLinenumberEnd: 2396
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr41tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2415,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2416,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2417,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2418,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2428,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2429,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2446,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2447,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2460
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr22tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2477,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2478,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2465
    functionDepth: 0
    functionLinenumber: 2465
    functionLinenumberEnd: 2499
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr21tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2518,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2519,1
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2541
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr12tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2565
    functionName: DECLAREContigPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - YCbCrtoRGB
    linkageType: ''
    returnType: void
    signature: void DECLAREContigPutFunc(putcontig8bitYCbCr11tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFYCbCrtoRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2582,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2583,1
    - Dst: SKEW
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2570
    functionDepth: 1
    functionLinenumber: 2570
    functionLinenumberEnd: 2588
    functionName: DECLARESepPutFunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFYCbCrtoRGB
    - SKEW
    - PACK
    linkageType: ''
    returnType: void
    signature: void DECLARESepPutFunc(putseparate8bitYCbCr11tile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 2594
      start: 2591
    functionDepth: 0
    functionLinenumber: 2591
    functionLinenumberEnd: 2594
    functionName: isInRefBlackWhiteRange
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isInRefBlackWhiteRange(float f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2604,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2605,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2610,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2616,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2617,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2625,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2630,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2631,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2632,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2633,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2634,1
    - Dst: isInRefBlackWhiteRange
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2635,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2637,1
    - Dst: TIFFYCbCrToRGBInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2642,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2645
      start: 2596
    functionDepth: 1
    functionLinenumber: 2596
    functionLinenumberEnd: 2645
    functionName: initYCbCrConversion
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - isInRefBlackWhiteRange
    - TIFFroundup_32
    - _TIFFmallocExt
    - TIFFYCbCrToRGBInit
    - TIFFGetFieldDefaulted
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int initYCbCrConversion(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2654,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2657,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2663,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2667,1
    - Dst: TIFFCIELabToRGBInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2677,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2679,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2690
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2690
    functionName: initCIELabConversion
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFCIELabToRGBInit
    - TIFFGetFieldDefaulted
    - TIFFErrorExtR
    linkageType: ''
    returnType: tileContigRoutine
    signature: tileContigRoutine initCIELabConversion(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2710,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2715,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2715,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2730,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2731,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2732,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2733,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2734,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2735,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2736,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2737,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2740,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2741,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2742,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2743,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2746,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2747,1
    - Dst: GREY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2757
      start: 2699
    functionDepth: 1
    functionLinenumber: 2699
    functionLinenumberEnd: 2757
    functionName: makebwmap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - TIFFFileName
    - GREY
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int makebwmap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2774,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2778,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2778,1
    - Dst: makebwmap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2800,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2807
      start: 2764
    functionDepth: 2
    functionLinenumber: 2764
    functionLinenumberEnd: 2807
    functionName: setupMap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFFileName
    - _TIFFfreeExt
    - _TIFFmallocExt
    - makebwmap
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int setupMap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2820
      start: 2809
    functionDepth: 0
    functionLinenumber: 2809
    functionLinenumberEnd: 2820
    functionName: checkcmap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int checkcmap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CVT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2832,1
    - Dst: CVT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2833,1
    - Dst: CVT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2837
      start: 2822
    functionDepth: 0
    functionLinenumber: 2822
    functionLinenumberEnd: 2837
    functionName: cvtcmap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - CVT
    linkageType: ''
    returnType: void
    signature: void cvtcmap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2856,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2861,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2861,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2876,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2877,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2878,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2879,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2880,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2881,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2882,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2883,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2886,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2887,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2888,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2889,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2892,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2893,1
    - Dst: CMAP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2902
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2902
    functionName: makecmap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - TIFFFileName
    - CMAP
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int makecmap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setupMap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2920,1
    - Dst: checkcmap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2928,1
    - Dst: cvtcmap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2929,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2931,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2931,1
    - Dst: makecmap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 2942
      start: 2908
    functionDepth: 3
    functionLinenumber: 2908
    functionLinenumberEnd: 2942
    functionName: buildMap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFFileName
    - TIFFWarningExtR
    - cvtcmap
    - setupMap
    - checkcmap
    - makecmap
    linkageType: ''
    returnType: int
    signature: int buildMap(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2949,1
    - Dst: BuildMapUaToAa
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2963,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2973,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2979,1
    - Dst: BuildMapUaToAa
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2979,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2984,1
    - Dst: buildMap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:2991,1
    - Dst: buildMap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3003,1
    - Dst: buildMap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3024,1
    - Dst: initYCbCrConversion
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3052,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3065,1
    - Dst: buildMap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3095,1
    - Dst: initCIELabConversion
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3098,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 121
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 3103
      start: 2947
    functionDepth: 4
    functionLinenumber: 2947
    functionLinenumberEnd: 3103
    functionName: PickContigCase
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 1
    functionsReached:
    - BuildMapBitdepth16To8
    - initYCbCrConversion
    - buildMap
    - initCIELabConversion
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - BuildMapUaToAa
    linkageType: ''
    returnType: int
    signature: int PickContigCase(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3113,1
    - Dst: BuildMapUaToAa
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3129,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3138,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3143,1
    - Dst: BuildMapUaToAa
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3143,1
    - Dst: BuildMapBitdepth16To8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3148,1
    - Dst: initYCbCrConversion
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3165,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3168,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 52
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 3182
      start: 3111
    functionDepth: 2
    functionLinenumber: 3111
    functionLinenumberEnd: 3182
    functionName: PickSeparateCase
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 1
    functionsReached:
    - BuildMapBitdepth16To8
    - initYCbCrConversion
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - BuildMapUaToAa
    linkageType: ''
    returnType: int
    signature: int PickSeparateCase(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3189,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3190,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 3203
      start: 3184
    functionDepth: 1
    functionLinenumber: 3184
    functionLinenumberEnd: 3203
    functionName: BuildMapUaToAa
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 2
    functionsReached:
    - TIFFErrorExtR
    - assert
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int BuildMapUaToAa(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3210,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3211,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - img
    argTypes:
    - TIFFRGBAImage*
    constantsTouched: []
    func_position:
      end: 3221
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3221
    functionName: BuildMapBitdepth16To8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 2
    functionsReached:
    - TIFFErrorExtR
    - assert
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int BuildMapBitdepth16To8(TIFFRGBAImage *img)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadRGBAStripExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - row
    - raster
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3234
      start: 3230
    functionDepth: 1
    functionLinenumber: 3230
    functionLinenumberEnd: 3234
    functionName: TIFFReadRGBAStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFReadRGBAStripExt
    linkageType: ''
    returnType: int
    signature: int TIFFReadRGBAStrip(TIFF *tif, uint32_t row, uint32_t *raster)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3245,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3247,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3247,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3252,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3256,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3256,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3262,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3263,1
    - Dst: TIFFRGBAImageBegin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3268,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3272,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3272,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3274,1
    - Dst: TIFFRGBAImageGet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3286,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3288,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3292,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - tif
    - row
    - raster
    - stop_on_error
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 3297
      start: 3236
    functionDepth: 3
    functionLinenumber: 3236
    functionLinenumberEnd: 3297
    functionName: TIFFReadRGBAStripExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 2
    functionsReached:
    - TIFFRGBAImageEnd
    - TIFFRGBAImageGet
    - TIFFFileName
    - TIFFRGBAImageBegin
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadRGBAStripExt(TIFF *tif, uint32_t row, uint32_t *raster,\n
      \                        int stop_on_error)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadRGBATileExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - col
    - row
    - raster
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3309
      start: 3305
    functionDepth: 1
    functionLinenumber: 3305
    functionLinenumberEnd: 3309
    functionName: TIFFReadRGBATile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 0
    functionsReached:
    - TIFFReadRGBATileExt
    linkageType: ''
    returnType: int
    signature: int TIFFReadRGBATile(TIFF *tif, uint32_t col, uint32_t row, uint32_t
      *raster)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3326,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3328,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3328,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3333,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3334,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3337,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3337,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3344,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3344,1
    - Dst: TIFFRGBAImageBegin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3354,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3356,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3356,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3362,1
    - Dst: TIFFFileName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3362,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3364,1
    - Dst: TIFFRGBAImageGet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3392,1
    - Dst: TIFFRGBAImageEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3394,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3409,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3412,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c:3419,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - tif
    - col
    - row
    - raster
    - stop_on_error
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 3424
      start: 3311
    functionDepth: 3
    functionLinenumber: 3311
    functionLinenumberEnd: 3424
    functionName: TIFFReadRGBATileExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_getimage.c
    functionUses: 2
    functionsReached:
    - TIFFRGBAImageEnd
    - TIFFRGBAImageGet
    - TIFFFileName
    - TIFFRGBAImageBegin
    - TIFFGetFieldDefaulted
    - TIFFIsTiled
    - _TIFFmemset
    - memmove
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadRGBATileExt(TIFF *tif, uint32_t col, uint32_t row, uint32_t
      *raster,\n                        int stop_on_error)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_codec.c:112,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_codec.c:115,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_codec.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: _notConfigured
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_codec.c
    functionUses: 0
    functionsReached:
    - snprintf
    - TIFFFindCODEC
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _notConfigured(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: NotConfigured
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_codec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NotConfigured(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_codec.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: TIFFIsCODECConfigured
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_codec.c
    functionUses: 3
    functionsReached:
    - TIFFFindCODEC
    linkageType: ''
    returnType: int
    signature: int TIFFIsCODECConfigured(uint16_t scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:67,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:78,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:88,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:98,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:107,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:117,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:118,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 125
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 125
    functionName: PredictorSetup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - isTiled
    - TIFFScanlineSize
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PredictorSetup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:129,1
    - Dst: PredictorSetup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 224
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 224
    functionName: PredictorSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - PredictorSetup
    linkageType: ''
    returnType: int
    signature: int PredictorSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:228,1
    - Dst: PredictorSetup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:231,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 320
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 320
    functionName: PredictorSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - PredictorSetup
    linkageType: ''
    returnType: int
    signature: int PredictorSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:653,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:655,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:656,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - tif
    - op0
    - occ0
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 665
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 665
    functionName: PredictorDecodeRow
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - assert
    - PredictorState
    linkageType: ''
    returnType: int
    signature: "int PredictorDecodeRow(TIFF *tif, uint8_t *op0, tmsize_t occ0,\n                              uint16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:677,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:679,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:680,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:685,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:688,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - tif
    - op0
    - occ0
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 704
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 704
    functionName: PredictorDecodeTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - assert
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int PredictorDecodeTile(TIFF *tif, uint8_t *op0, tmsize_t occ0,\n
      \                              uint16_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:709,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:715,1
    - Dst: REPEAT4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 782
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 782
    functionName: horDiff8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - REPEAT4
    - TIFFErrorExtR
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW horDiff8(TIFF *tif, uint8_t *cp0,
      tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:787,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:794,1
    - Dst: REPEAT4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 812
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 812
    functionName: horDiff16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - REPEAT4
    - TIFFErrorExtR
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW horDiff16(TIFF *tif, uint8_t
      *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: horDiff16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:819,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 824
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 824
    functionName: swabHorDiff16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfShort
    - horDiff16
    linkageType: ''
    returnType: int
    signature: int swabHorDiff16(TIFF *tif, uint8_t *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:829,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:836,1
    - Dst: REPEAT4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 851
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 851
    functionName: horDiff32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - REPEAT4
    - TIFFErrorExtR
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW horDiff32(TIFF *tif, uint8_t
      *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: horDiff32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:858,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 863
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 863
    functionName: swabHorDiff32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - horDiff32
    - TIFFSwabArrayOfLong
    linkageType: ''
    returnType: int
    signature: int swabHorDiff32(TIFF *tif, uint8_t *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:868,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:875,1
    - Dst: REPEAT4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 890
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 890
    functionName: horDiff64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - REPEAT4
    - TIFFErrorExtR
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW horDiff64(TIFF *tif, uint8_t
      *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: horDiff64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:897,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 902
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 902
    functionName: swabHorDiff64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong8
    - horDiff64
    linkageType: ''
    returnType: int
    signature: int swabHorDiff64(TIFF *tif, uint8_t *cp0, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:910,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:919,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:923,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:927,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:940,1
    - Dst: REPEAT4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - tif
    - cp0
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 949
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 949
    functionName: fpDiff
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - REPEAT4
    - _TIFFmallocExt
    - _TIFFmemcpy
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW fpDiff(TIFF *tif, uint8_t *cp0,
      tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:954,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:958,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:959,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:960,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:967,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:970,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:975,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:979,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 985
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 985
    functionName: PredictorEncodeRow
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PredictorEncodeRow(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:991,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:997,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:998,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:999,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1005,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1008,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1013,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1017,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1020,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1021,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - tif
    - bp0
    - cc0
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1035
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1035
    functionName: PredictorEncodeTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int PredictorEncodeTile(TIFF *tif, uint8_t *bp0, tmsize_t cc0,\n                               uint16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1046,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1048,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1049,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1054,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1062
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1062
    functionName: PredictorVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - assert
    - va_arg
    - PredictorState
    - TIFFSetFieldBit
    linkageType: ''
    returnType: int
    signature: int PredictorVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1066,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1068,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1069,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1080
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1080
    functionName: PredictorVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - assert
    - va_arg
    - PredictorState
    linkageType: ''
    returnType: int
    signature: int PredictorVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1084,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1087,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1089,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1093,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1096,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1099,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - tif
    - fd
    - flags
    argTypes:
    - TIFF*
    - FILE*
    - long
    constantsTouched: []
    func_position:
      end: 1106
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1106
    functionName: PredictorPrintDir
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 0
    functionsReached:
    - PredictorState
    - fprintf
    - TIFFFieldSet
    linkageType: ''
    returnType: void
    signature: void PredictorPrintDir(TIFF *tif, FILE *fd, long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1110,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1112,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1117,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1117,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1146
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1146
    functionName: TIFFPredictorInit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 3
    functionsReached:
    - _TIFFMergeFields
    - assert
    - TIFFArrayCount
    - PredictorState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFPredictorInit(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PredictorState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1150,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_predict.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1161
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1161
    functionName: TIFFPredictorCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_predict.c
    functionUses: 2
    functionsReached:
    - assert
    - PredictorState
    linkageType: ''
    returnType: int
    signature: int TIFFPredictorCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:251,1
    - Dst: jpeg_abort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:253,1
    - Dst: LONGJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: TIFFjpeg_error_exit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - LONGJMP
    - jpeg_abort
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_error_exit(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: TIFFjpeg_output_message
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_output_message(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:283,1
    - Dst: jpeg_abort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:291,1
    - Dst: LONGJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: TIFFjpeg_progress_monitor
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - LONGJMP
    - jpeg_abort
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_progress_monitor(j_common_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:309,1
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:316,1
    - Dst: jpeg_create_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: TIFFjpeg_create_compress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_std_error
    - CALLVJPEG
    - jpeg_create_compress
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_create_compress(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:322,1
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:329,1
    - Dst: jpeg_create_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: TIFFjpeg_create_decompress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_std_error
    - CALLVJPEG
    - jpeg_create_decompress
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_create_decompress(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:334,1
    - Dst: jpeg_set_defaults
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: TIFFjpeg_set_defaults
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_set_defaults
    - CALLVJPEG
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_set_defaults(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:339,1
    - Dst: jpeg_set_colorspace
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sp
    - colorspace
    argTypes:
    - JPEGState*
    - J_COLOR_SPACE
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: TIFFjpeg_set_colorspace
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_set_colorspace
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_set_colorspace(JPEGState *sp, J_COLOR_SPACE colorspace)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:345,1
    - Dst: jpeg_set_quality
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sp
    - quality
    - force_baseline
    argTypes:
    - JPEGState*
    - int
    - boolean
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: TIFFjpeg_set_quality
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_set_quality
    linkageType: ''
    returnType: int
    signature: "int TIFFjpeg_set_quality(JPEGState *sp, int quality,\n                                boolean
      force_baseline)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:351,1
    - Dst: jpeg_suppress_tables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sp
    - suppress
    argTypes:
    - JPEGState*
    - boolean
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: TIFFjpeg_suppress_tables
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_suppress_tables
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_suppress_tables(JPEGState *sp, boolean suppress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:356,1
    - Dst: jpeg_start_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sp
    - write_all_tables
    argTypes:
    - JPEGState*
    - boolean
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: TIFFjpeg_start_compress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_start_compress
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_start_compress(JPEGState *sp, boolean write_all_tables)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:363,1
    - Dst: jpeg12_write_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:364,1
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:367,1
    - Dst: jpeg_write_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - scanlines
    - num_lines
    argTypes:
    - JPEGState*
    - TIFF_JSAMPARRAY
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: TIFFjpeg_write_scanlines
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg12_write_scanlines
    - CALLJPEG
    - jpeg_write_scanlines
    linkageType: ''
    returnType: int
    signature: "int TIFFjpeg_write_scanlines(JPEGState *sp, TIFF_JSAMPARRAY scanlines,\n
      \                                   int num_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:377,1
    - Dst: jpeg12_write_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:379,1
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:381,1
    - Dst: jpeg_write_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - data
    - num_lines
    argTypes:
    - JPEGState*
    - TIFF_JSAMPIMAGE
    - int
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: TIFFjpeg_write_raw_data
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_write_raw_data
    - CALLJPEG
    - jpeg12_write_raw_data
    linkageType: ''
    returnType: int
    signature: "int TIFFjpeg_write_raw_data(JPEGState *sp, TIFF_JSAMPIMAGE data,\n
      \                                  int num_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:389,1
    - Dst: jpeg_finish_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: TIFFjpeg_finish_compress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_finish_compress
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_finish_compress(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:394,1
    - Dst: jpeg_write_tables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: TIFFjpeg_write_tables
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_write_tables
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_write_tables(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:399,1
    - Dst: jpeg_read_header
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sp
    - require_image
    argTypes:
    - JPEGState*
    - boolean
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: TIFFjpeg_read_header
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLJPEG
    - jpeg_read_header
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_read_header(JPEGState *sp, boolean require_image)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:404,1
    - Dst: jpeg_has_multiple_scans
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: TIFFjpeg_has_multiple_scans
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_has_multiple_scans
    - CALLJPEG
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_has_multiple_scans(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:414,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:417,1
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:419,1
    - Dst: jpeg_start_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 420
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 420
    functionName: TIFFjpeg_start_decompress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_start_decompress
    - CALLVJPEG
    - getenv
    - atoi
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_start_decompress(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:426,1
    - Dst: jpeg12_read_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:427,1
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:430,1
    - Dst: jpeg_read_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - scanlines
    - max_lines
    argTypes:
    - JPEGState*
    - TIFF_JSAMPARRAY
    - int
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: TIFFjpeg_read_scanlines
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_read_scanlines
    - jpeg12_read_scanlines
    - CALLJPEG
    linkageType: ''
    returnType: int
    signature: "int TIFFjpeg_read_scanlines(JPEGState *sp, TIFF_JSAMPARRAY scanlines,\n
      \                                  int max_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:440,1
    - Dst: jpeg12_read_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:442,1
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:444,1
    - Dst: jpeg_read_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - data
    - max_lines
    argTypes:
    - JPEGState*
    - TIFF_JSAMPIMAGE
    - int
    constantsTouched: []
    func_position:
      end: 448
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 448
    functionName: TIFFjpeg_read_raw_data
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLJPEG
    - jpeg_read_raw_data
    - jpeg12_read_raw_data
    linkageType: ''
    returnType: int
    signature: "int TIFFjpeg_read_raw_data(JPEGState *sp, TIFF_JSAMPIMAGE data,\n
      \                                 int max_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:452,1
    - Dst: jpeg_finish_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: TIFFjpeg_finish_decompress
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLJPEG
    - jpeg_finish_decompress
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_finish_decompress(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:457,1
    - Dst: jpeg_abort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: TIFFjpeg_abort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_abort
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_abort(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLVJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:462,1
    - Dst: jpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: TIFFjpeg_destroy
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLVJPEG
    - jpeg_destroy
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_destroy(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CALLJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sp
    - pool_id
    - samplesperrow
    - numrows
    argTypes:
    - JPEGState*
    - int
    - JDIMENSION
    - JDIMENSION
    constantsTouched: []
    func_position:
      end: 472
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: TIFFjpeg_alloc_sarray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - CALLJPEG
    linkageType: ''
    returnType: JSAMPARRAY
    signature: "JSAMPARRAY TIFFjpeg_alloc_sarray(JPEGState *sp, int pool_id,\n                                        JDIMENSION
      samplesperrow,\n                                        JDIMENSION numrows)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: std_init_destination
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_init_destination(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 516
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 516
    functionName: std_empty_output_buffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    linkageType: ''
    returnType: boolean
    signature: boolean std_empty_output_buffer(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: std_term_destination
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_term_destination(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sp
    - tif
    argTypes:
    - JPEGState*
    - TIFF*
    constantsTouched: []
    func_position:
      end: 535
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 535
    functionName: TIFFjpeg_data_dest
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_data_dest(JPEGState *sp, TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: tables_init_destination
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tables_init_destination(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:558,1
    - Dst: ERREXIT1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 568
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 568
    functionName: tables_empty_output_buffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFreallocExt
    - ERREXIT1
    linkageType: ''
    returnType: boolean
    signature: boolean tables_empty_output_buffer(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 576
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 576
    functionName: tables_term_destination
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tables_term_destination(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:586,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:588,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - sp
    - tif
    argTypes:
    - JPEGState*
    - TIFF*
    constantsTouched: []
    func_position:
      end: 602
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 602
    functionName: TIFFjpeg_tables_dest
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - _TIFFfreeExt
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int TIFFjpeg_tables_dest(JPEGState *sp, TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 616
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 616
    functionName: std_init_source
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_init_source(j_decompress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WARNMS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 652
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 652
    functionName: std_fill_input_buffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - WARNMS
    linkageType: ''
    returnType: boolean
    signature: boolean std_fill_input_buffer(j_decompress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std_fill_input_buffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - j_decompress_ptr
    - long
    constantsTouched: []
    func_position:
      end: 671
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 671
    functionName: std_skip_input_data
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - std_fill_input_buffer
    linkageType: ''
    returnType: void
    signature: void std_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: std_term_source
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_term_source(j_decompress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 689
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 689
    functionName: TIFFjpeg_data_src
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_data_src(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    constantsTouched: []
    func_position:
      end: 702
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 702
    functionName: tables_init_source
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tables_init_source(j_decompress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFjpeg_data_src
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sp
    argTypes:
    - JPEGState*
    constantsTouched: []
    func_position:
      end: 708
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 708
    functionName: TIFFjpeg_tables_src
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFjpeg_data_src
    linkageType: ''
    returnType: void
    signature: void TIFFjpeg_tables_src(JPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:720,1
    - Dst: TIFFjpeg_alloc_sarray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tif
    - comp_info
    - num_components
    argTypes:
    - TIFF*
    - jpeg_component_info*
    - int
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: alloc_downsampled_buffers
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - JState
    - TIFFjpeg_alloc_sarray
    linkageType: ''
    returnType: int
    signature: "int alloc_downsampled_buffers(TIFF *tif, jpeg_component_info *comp_info,\n
      \                                    int num_components)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:787,1
    - Dst: JPEGFixupTagsSubsampling
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 796
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 796
    functionName: JPEGFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - JState
    - JPEGFixupTagsSubsampling
    linkageType: ''
    returnType: int
    signature: int JPEGFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:836,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:839,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:848,1
    - Dst: JPEGFixupTagsSubsamplingSec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:849,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:850,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 855
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 855
    functionName: JPEGFixupTagsSubsampling
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - TIFFWarningExtR
    - _TIFFmallocExt
    - JPEGFixupTagsSubsamplingSec
    - TIFFGetStrileByteCount
    linkageType: ''
    returnType: void
    signature: void JPEGFixupTagsSubsampling(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:866,1
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:873,1
    - Dst: JPEGFixupTagsSubsamplingReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:908,1
    - Dst: JPEGFixupTagsSubsamplingSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:914,1
    - Dst: JPEGFixupTagsSubsamplingReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:933,1
    - Dst: JPEGFixupTagsSubsamplingSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:937,1
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:938,1
    - Dst: JPEGFixupTagsSubsamplingSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:942,1
    - Dst: JPEGFixupTagsSubsamplingSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:945,1
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:946,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:950,1
    - Dst: JPEGFixupTagsSubsamplingSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:958,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:963,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:973,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 87
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct JPEGFixupTagsSubsamplingData*
    constantsTouched: []
    func_position:
      end: 990
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 990
    functionName: JPEGFixupTagsSubsamplingSec
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached:
    - JPEGFixupTagsSubsamplingReadByte
    - TIFFWarningExtR
    - JPEGFixupTagsSubsamplingSkip
    - JPEGFixupTagsSubsamplingReadWord
    linkageType: ''
    returnType: int
    signature: int JPEGFixupTagsSubsamplingSec(struct JPEGFixupTagsSubsamplingData
      *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1003,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1013,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - data
    - result
    argTypes:
    - struct JPEGFixupTagsSubsamplingData*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1025
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1025
    functionName: JPEGFixupTagsSubsamplingReadByte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - assert
    - TIFFSeekFile
    linkageType: ''
    returnType: int
    signature: "int JPEGFixupTagsSubsamplingReadByte(struct JPEGFixupTagsSubsamplingData
      *data,\n                                 uint8_t *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1033,1
    - Dst: JPEGFixupTagsSubsamplingReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - result
    argTypes:
    - struct JPEGFixupTagsSubsamplingData*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1039
    functionName: JPEGFixupTagsSubsamplingReadWord
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached:
    - JPEGFixupTagsSubsamplingReadByte
    linkageType: ''
    returnType: int
    signature: "int JPEGFixupTagsSubsamplingReadWord(struct JPEGFixupTagsSubsamplingData
      *data,\n                                 uint16_t *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - data
    - skiplength
    argTypes:
    - struct JPEGFixupTagsSubsamplingData*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1067
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1067
    functionName: JPEGFixupTagsSubsamplingSkip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JPEGFixupTagsSubsamplingSkip(struct JPEGFixupTagsSubsamplingData
      *data,\n                             uint16_t skiplength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1073,1
    - Dst: TIFFReInitJPEG_12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1082,1
    - Dst: JPEGInitializeLibJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1086,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1088,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1089,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1092,1
    - Dst: TIFFjpeg_tables_src
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1094,1
    - Dst: TIFFjpeg_read_header
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1095,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1097,1
    - Dst: TIFFjpeg_data_src
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1121
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1121
    functionName: JPEGSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFjpeg_tables_src
    - assert
    - TIFFjpeg_data_src
    - TIFFFieldSet
    - JPEGInitializeLibJPEG
    - TIFFReInitJPEG_12
    - JState
    - TIFFjpeg_read_header
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JPEGSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFJPEGIsFullStripRequired_12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1137,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1140,1
    - Dst: TIFFjpeg_create_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1143,1
    - Dst: TIFFjpeg_data_src
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1145,1
    - Dst: TIFFjpeg_read_header
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1147,1
    - Dst: TIFFjpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1149,1
    - Dst: TIFFjpeg_has_multiple_scans
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1152,1
    - Dst: TIFFjpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1157
    functionName: TIFFJPEGIsFullStripRequired
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 1
    functionsReached:
    - TIFFjpeg_create_decompress
    - TIFFjpeg_data_src
    - TIFFJPEGIsFullStripRequired_12
    - TIFFjpeg_has_multiple_scans
    - TIFFjpeg_destroy
    - TIFFjpeg_read_header
    - memset
    linkageType: ''
    returnType: int
    signature: int TIFFJPEGIsFullStripRequired(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1164,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1171,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1175,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1178,1
    - Dst: TIFFjpeg_abort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1183,1
    - Dst: TIFFjpeg_read_header
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1189,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1198,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1202,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1210,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1220,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1224,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1225,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1230,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1238,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1244,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1259,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1270,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1276,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1284,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1292,1
    - Dst: TIFFjpeg_has_multiple_scans
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1303,1
    - Dst: getenv
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1330,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1332,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1354,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1368,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1379,1
    - Dst: TIFFjpeg_start_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1422,1
    - Dst: alloc_downsampled_buffers
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1427,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 117
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1433
      start: 1162
    functionDepth: 2
    functionLinenumber: 1162
    functionLinenumberEnd: 1433
    functionName: JPEGPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - TIFFhowmany_32
    - TIFFWarningExtR
    - assert
    - getenv
    - TIFF*::tif_setupdecode
    - TIFFjpeg_has_multiple_scans
    - JState
    - alloc_downsampled_buffers
    - isTiled
    - TIFFScanlineSize
    - TIFFjpeg_read_header
    - TIFFjpeg_start_decompress
    - TIFFjpeg_abort
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JPEGPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1442,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1455,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1461,1
    - Dst: TIFFjpeg_read_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1477,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1479,1
    - Dst: TIFFjpeg_finish_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1496
      start: 1440
    functionDepth: 2
    functionLinenumber: 1440
    functionLinenumberEnd: 1496
    functionName: JPEGDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    - TIFFjpeg_read_scanlines
    - JState
    - TIFFjpeg_finish_decompress
    - memset
    linkageType: ''
    returnType: int
    signature: int JPEGDecode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1503,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1516,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1522,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1538,1
    - Dst: TIFFjpeg_read_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1553,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1555,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1599,1
    - Dst: TIFFjpeg_finish_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1608,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1609
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1609
    functionName: JPEGDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - TIFFWarningExtR
    - _TIFFmallocExt
    - TIFFjpeg_read_scanlines
    - JState
    - TIFFjpeg_finish_decompress
    - memset
    linkageType: ''
    returnType: int
    signature: "int JPEGDecode(TIFF *tif, uint8_t *buf, tmsize_t cc,\n                                   uint16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1626
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1626
    functionName: DecodeRowError
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int DecodeRowError(TIFF *tif, uint8_t *buf, tmsize_t cc,\n                                       uint16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1635,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1644,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1660,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1665,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1677,1
    - Dst: TIFFjpeg_read_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1687,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1717,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1793,1
    - Dst: TIFFjpeg_finish_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1799,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1803,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1806
      start: 1632
    functionDepth: 2
    functionLinenumber: 1632
    functionLinenumberEnd: 1806
    functionName: JPEGDecodeRaw
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmallocExt
    - JState
    - isTiled
    - TIFFjpeg_finish_decompress
    - TIFFjpeg_read_raw_data
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int JPEGDecodeRaw(TIFF *tif, uint8_t *buf, tmsize_t cc,\n                                      uint16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sp
    - tblno
    argTypes:
    - JPEGState*
    - int
    constantsTouched: []
    func_position:
      end: 1818
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1818
    functionName: unsuppress_quant_table
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unsuppress_quant_table(JPEGState *sp, int tblno)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sp
    - tblno
    argTypes:
    - JPEGState*
    - int
    constantsTouched: []
    func_position:
      end: 1826
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1826
    functionName: suppress_quant_table
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void suppress_quant_table(JPEGState *sp, int tblno)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - sp
    - tblno
    argTypes:
    - JPEGState*
    - int
    constantsTouched: []
    func_position:
      end: 1836
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1836
    functionName: unsuppress_huff_table
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unsuppress_huff_table(JPEGState *sp, int tblno)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - sp
    - tblno
    argTypes:
    - JPEGState*
    - int
    constantsTouched: []
    func_position:
      end: 1846
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1846
    functionName: suppress_huff_table
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void suppress_huff_table(JPEGState *sp, int tblno)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1850,1
    - Dst: TIFFjpeg_set_quality
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1853,1
    - Dst: TIFFjpeg_suppress_tables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1857,1
    - Dst: unsuppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1861,1
    - Dst: unsuppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1863,1
    - Dst: unsuppress_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1867,1
    - Dst: unsuppress_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1869,1
    - Dst: TIFFjpeg_tables_dest
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1872,1
    - Dst: TIFFjpeg_write_tables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1879
      start: 1848
    functionDepth: 2
    functionLinenumber: 1848
    functionLinenumberEnd: 1879
    functionName: prepare_JPEGTables
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - unsuppress_huff_table
    - TIFFjpeg_set_quality
    - TIFFjpeg_suppress_tables
    - JState
    - unsuppress_quant_table
    - TIFFjpeg_tables_dest
    - TIFFjpeg_write_tables
    linkageType: ''
    returnType: int
    signature: int prepare_JPEGTables(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_std_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1892,1
    - Dst: jpeg_std_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1896,1
    - Dst: jpeg_std_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1900,1
    - Dst: jpeg_std_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_compress_ptr
    constantsTouched: []
    func_position:
      end: 1906
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1906
    functionName: TIFF_std_huff_tables
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_std_huff_table
    linkageType: ''
    returnType: void
    signature: void TIFF_std_huff_tables(j_compress_ptr cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1911,1
    - Dst: TIFFReInitJPEG_12
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1921,1
    - Dst: JPEGInitializeLibJPEG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1925,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1927,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1928,1
    - Dst: TIFFjpeg_set_defaults
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1972,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:1983,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2001,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2007,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2020,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2030,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2036,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2062,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2071,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2075,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2082,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2093,1
    - Dst: memcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2106,1
    - Dst: TIFF_std_huff_tables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2119,1
    - Dst: prepare_JPEGTables
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2123,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2128,1
    - Dst: TIFFClrFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2135,1
    - Dst: TIFFjpeg_data_dest
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2139,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2142
      start: 1909
    functionDepth: 3
    functionLinenumber: 1909
    functionLinenumberEnd: 2142
    functionName: JPEGSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFjpeg_set_defaults
    - prepare_JPEGTables
    - TIFFWarningExtR
    - assert
    - TIFFjpeg_data_dest
    - TIFFSetFieldBit
    - memcmp
    - TIFFClrFieldBit
    - JPEGInitializeLibJPEG
    - TIFFReInitJPEG_12
    - JState
    - TIFFGetField
    - TIFFSetField
    - isTiled
    - TIFF_std_huff_tables
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JPEGSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2149,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2155,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2159,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2162,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2166,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2170,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2178,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2187,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2191,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2192,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2197,1
    - Dst: TIFFjpeg_set_colorspace
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2215,1
    - Dst: TIFFjpeg_set_colorspace
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2226,1
    - Dst: TIFFjpeg_set_colorspace
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2233,1
    - Dst: TIFFjpeg_set_quality
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2256,1
    - Dst: suppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2260,1
    - Dst: suppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2261,1
    - Dst: unsuppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2265,1
    - Dst: unsuppress_quant_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2266,1
    - Dst: suppress_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2273,1
    - Dst: suppress_huff_table
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2274,1
    - Dst: TIFFjpeg_start_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2296,1
    - Dst: alloc_downsampled_buffers
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2301,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2308
      start: 2147
    functionDepth: 2
    functionLinenumber: 2147
    functionLinenumberEnd: 2308
    functionName: JPEGPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - TIFFjpeg_set_colorspace
    - suppress_quant_table
    - TIFFhowmany_32
    - TIFFjpeg_start_compress
    - assert
    - suppress_huff_table
    - TIFF*::tif_setupencode
    - TIFFjpeg_set_quality
    - JState
    - unsuppress_quant_table
    - isTiled
    - TIFFScanlineSize
    - alloc_downsampled_buffers
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JPEGPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2316,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2323,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2327,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2330,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2336,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2339,1
    - Dst: TIFFjpeg_write_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2369,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2382
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2382
    functionName: JPEGEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - TIFFWarningExtR
    - assert
    - _TIFFmallocExt
    - JState
    - isTiled
    - TIFFjpeg_write_scanlines
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int JPEGEncode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2390,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2401,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2417,1
    - Dst: TIFFjpeg_write_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2481
      start: 2388
    functionDepth: 2
    functionLinenumber: 2388
    functionLinenumberEnd: 2481
    functionName: JPEGEncodeRaw
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFWarningExtR
    - JState
    - TIFFjpeg_write_raw_data
    linkageType: ''
    returnType: int
    signature: int JPEGEncodeRaw(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2488,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2507,1
    - Dst: TIFFjpeg_write_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2512,1
    - Dst: TIFFjpeg_finish_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2516,1
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2517
      start: 2486
    functionDepth: 2
    functionLinenumber: 2486
    functionLinenumberEnd: 2517
    functionName: JPEGPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFmemcpy
    - JState
    - TIFFjpeg_finish_compress
    - TIFFjpeg_write_raw_data
    linkageType: ''
    returnType: int
    signature: int JPEGPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2521,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2523,1
    - Dst: TIFFjpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2529,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2531,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2532,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2536
      start: 2519
    functionDepth: 2
    functionLinenumber: 2519
    functionLinenumberEnd: 2536
    functionName: JPEGCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - JState
    - TIFFjpeg_destroy
    linkageType: ''
    returnType: void
    signature: void JPEGCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2540,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2571,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2571,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2574
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2574
    functionName: JPEGResetUpsampled
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - TIFFTileSize
    - JState
    - isTiled
    - TIFFScanlineSize
    linkageType: ''
    returnType: void
    signature: void JPEGResetUpsampled(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2578,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2582,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2587,1
    - Dst: _TIFFsetByteArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2593,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2594,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2596,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2599,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2602,1
    - Dst: JPEGResetUpsampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2603,1
    - Dst: JPEGResetUpsampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2608,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2612,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2623,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 2634
      start: 2576
    functionDepth: 3
    functionLinenumber: 2576
    functionLinenumberEnd: 2634
    functionName: JPEGVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFSetFieldBit
    - va_arg
    - JState
    - JPEGResetUpsampled
    - TIFFFieldWithTag
    - _TIFFsetByteArrayExt
    linkageType: ''
    returnType: int
    signature: int JPEGVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2638,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2640,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2645,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2646,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2649,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2652,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 2661
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2661
    functionName: JPEGVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - va_arg
    - JState
    linkageType: ''
    returnType: int
    signature: int JPEGVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2665,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2667,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2672,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - fd
    - flags
    argTypes:
    - TIFF*
    - FILE*
    - long
    constantsTouched: []
    func_position:
      end: 2678
      start: 2663
    functionDepth: 0
    functionLinenumber: 2663
    functionLinenumberEnd: 2678
    functionName: JPEGPrintDir
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - JState
    - fprintf
    - TIFFFieldSet
    linkageType: ''
    returnType: void
    signature: void JPEGPrintDir(TIFF *tif, FILE *fd, long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2682,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2689
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2689
    functionName: JPEGDefaultStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - JState
    - TIFFroundup_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t JPEGDefaultStripSize(TIFF *tif, uint32_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2693,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2697,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - tw
    - th
    argTypes:
    - TIFF*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2699
      start: 2691
    functionDepth: 0
    functionLinenumber: 2691
    functionLinenumberEnd: 2699
    functionName: JPEGDefaultTileSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - JState
    - TIFFroundup_32
    linkageType: ''
    returnType: void
    signature: void JPEGDefaultTileSize(TIFF *tif, uint32_t *tw, uint32_t *th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2725,1
    - Dst: TIFFjpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2730,1
    - Dst: TIFFjpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2732,1
    - Dst: TIFFjpeg_create_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2744,1
    - Dst: TIFFjpeg_create_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2749,1
    - Dst: getenv
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2761,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - tif
    - decompress
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 2779
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2779
    functionName: JPEGInitializeLibJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 2
    functionsReached:
    - TIFFjpeg_create_decompress
    - TIFFjpeg_create_compress
    - getenv
    - JState
    - TIFFjpeg_destroy
    linkageType: ''
    returnType: int
    signature: int JPEGInitializeLibJPEG(TIFF *tif, int decompress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2823
      start: 2782
    functionDepth: 0
    functionLinenumber: 2782
    functionLinenumberEnd: 2823
    functionName: TIFFInitJPEGCommon
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - JState
    linkageType: ''
    returnType: void
    signature: void TIFFInitJPEGCommon(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2830,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2835,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2835,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2837,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2845,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2849,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2852,1
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2854,1
    - Dst: TIFFInitJPEGCommon
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2865,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2886,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2889,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c:2893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 2900
      start: 2825
    functionDepth: 1
    functionLinenumber: 2825
    functionLinenumberEnd: 2900
    functionName: TIFFInitJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - JState
    - TIFFInitJPEGCommon
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitJPEG(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:43,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tif
    - row
    - sample
    argTypes:
    - TIFF*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: TIFFComputeStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 2
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFComputeStrip(TIFF *tif, uint32_t row, uint16_t sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:71,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:76,1
    - Dst: _TIFFMultiply32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: TIFFNumberOfStrips
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 1
    functionsReached:
    - TIFFWarningExtR
    - _TIFFMultiply32
    - TIFFhowmany_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFNumberOfStrips(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:94,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:112,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:115,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:123,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:129,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:130,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:131,1
    - Dst: TIFFhowmany8_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:133,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:133,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:136,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:139,1
    - Dst: TIFFScanlineSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:139,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - tif
    - nrows
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 140
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 140
    functionName: TIFFVStripSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - TIFFhowmany_32
    - TIFFhowmany8_64
    - TIFFScanlineSize64
    - _TIFFMultiply64
    - TIFFGetFieldDefaulted
    - isUpSampled
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFVStripSize64(TIFF *tif, uint32_t nrows)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:145,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tif
    - nrows
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: TIFFVStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 1
    functionsReached:
    - _TIFFCastUInt64ToSSize
    - TIFFVStripSize64
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFVStripSize(TIFF *tif, uint32_t nrows)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tif
    - strip
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: TIFFRawStripSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFRawStripSize64(TIFF *tif, uint32_t strip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRawStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:172,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - strip
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: TIFFRawStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - TIFFRawStripSize64
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFRawStripSize(TIFF *tif, uint32_t strip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: TIFFStripSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 1
    functionsReached:
    - TIFFVStripSize64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFStripSize64(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:207,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: TIFFStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 9
    functionsReached:
    - _TIFFCastUInt64ToSSize
    - TIFFStripSize64
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFStripSize(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - request
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: TIFFDefaultStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFDefaultStripSize(TIFF *tif, uint32_t request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFScanlineSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: _TIFFDefaultStripSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - TIFFScanlineSize64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _TIFFDefaultStripSize(TIFF *tif, uint32_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:264,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:273,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:276,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:284,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:290,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:291,1
    - Dst: TIFFhowmany_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:294,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:294,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:312,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:316,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:320,1
    - Dst: TIFFhowmany_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:323,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:323,1
    - Dst: TIFFhowmany_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:331,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:331,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:337,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 341
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 341
    functionName: TIFFScanlineSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 3
    functionsReached:
    - TIFFroundup_32
    - TIFFhowmany_32
    - _TIFFMultiply64
    - TIFFGetFieldDefaulted
    - TIFFhowmany_64
    - isUpSampled
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFScanlineSize64(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFScanlineSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:346,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: TIFFScanlineSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 10
    functionsReached:
    - TIFFScanlineSize64
    - _TIFFCastUInt64ToSSize
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFScanlineSize(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:363,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:367,1
    - Dst: TIFFhowmany8_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:368,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:371,1
    - Dst: TIFFhowmany8_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 373
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 373
    functionName: TIFFRasterScanlineSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - TIFFhowmany8_64
    - _TIFFMultiply64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFRasterScanlineSize64(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRasterScanlineSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:378,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_strip.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: TIFFRasterScanlineSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_strip.c
    functionUses: 0
    functionsReached:
    - _TIFFCastUInt64ToSSize
    - TIFFRasterScanlineSize64
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFRasterScanlineSize(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compar
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - key
    - base
    - nmemb
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: td_lfind
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - compar
    linkageType: ''
    returnType: void
    signature: "void *td_lfind(const void *key, const void *base, size_t *nmemb,\n
      \                     size_t size, int (*compar)(const void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 507
    functionName: _TIFFGetFields
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFFieldArray
    signature: TIFFFieldArray *_TIFFGetFields(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 509
    functionName: _TIFFGetExifFields
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFFieldArray
    signature: TIFFFieldArray *_TIFFGetExifFields(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: _TIFFGetGpsFields
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFFieldArray
    signature: TIFFFieldArray *_TIFFGetGpsFields(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFieldIsAnonymous
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:524,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:526,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:531,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:536,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:540,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - fieldarray
    argTypes:
    - TIFF*
    - TIFFFieldArray*
    constantsTouched: []
    func_position:
      end: 544
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 544
    functionName: _TIFFSetupFields
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 2
    functionsReached:
    - TIFFErrorExtR
    - _TIFFfreeExt
    - TIFFFieldIsAnonymous
    - _TIFFMergeFields
    linkageType: ''
    returnType: void
    signature: void _TIFFSetupFields(TIFF *tif, const TIFFFieldArray *fieldarray)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 557
    functionName: tagCompare
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tagCompare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: tagNameCompare
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tagNameCompare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCheckRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:584,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:591,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:595,1
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:602,1
    - Dst: qsort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:613,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tif
    - info
    - n
    argTypes:
    - TIFF*
    - TIFFField[]
    - uint32_t
    constantsTouched: []
    func_position:
      end: 616
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 616
    functionName: _TIFFMergeFields
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 5
    functionsReached:
    - TIFFFindField
    - qsort
    - _TIFFCheckRealloc
    - _TIFFCheckMalloc
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _TIFFMergeFields(TIFF *tif, const TIFFField info[], uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:622,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - fd
    argTypes:
    - TIFF*
    - FILE*
    constantsTouched: []
    func_position:
      end: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    functionName: _TIFFPrintFieldInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _TIFFPrintFieldInfo(TIFF *tif, FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - type
    argTypes:
    - TIFFDataType
    constantsTouched: []
    func_position:
      end: 665
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 665
    functionName: TIFFDataWidth
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFDataWidth(TIFFDataType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 751
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 751
    functionName: TIFFFieldSetGetSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldSetGetSize(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 793
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 793
    functionName: TIFFFieldSetGetCountSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldSetGetCountSize(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - tag
    - dt
    argTypes:
    - TIFF*
    - uint32_t
    - TIFFDataType
    constantsTouched: []
    func_position:
      end: 816
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 816
    functionName: TIFFFindField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 5
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: TIFFField
    signature: TIFFField *TIFFFindField(TIFF *tif, uint32_t tag, TIFFDataType dt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: streq
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:825,1
    - Dst: td_lfind
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - field_name
    - dt
    argTypes:
    - TIFF*
    - char*
    - TIFFDataType
    constantsTouched: []
    func_position:
      end: 843
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 843
    functionName: _TIFFFindFieldByName
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - td_lfind
    - streq
    linkageType: ''
    returnType: TIFFField
    signature: "TIFFField *_TIFFFindFieldByName(TIFF *tif, const char *field_name,\n
      \                                            TIFFDataType dt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:847,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 854
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 854
    functionName: TIFFFieldWithTag
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 3
    functionsReached:
    - TIFFFindField
    - TIFFWarningExtR
    linkageType: ''
    returnType: TIFFField
    signature: TIFFField *TIFFFieldWithTag(TIFF *tif, uint32_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFFindFieldByName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:858,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - field_name
    argTypes:
    - TIFF*
    - char*
    constantsTouched: []
    func_position:
      end: 865
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 865
    functionName: TIFFFieldWithName
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - _TIFFFindFieldByName
    - TIFFWarningExtR
    linkageType: ''
    returnType: TIFFField
    signature: TIFFField *TIFFFieldWithName(TIFF *tif, const char *field_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 867
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 867
    functionName: TIFFFieldTag
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFFieldTag(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: TIFFFieldName
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TIFFFieldName(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 871
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 871
    functionName: TIFFFieldDataType
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFFDataType
    signature: TIFFDataType TIFFFieldDataType(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 873
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 873
    functionName: TIFFFieldPassCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldPassCount(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 875
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 875
    functionName: TIFFFieldReadCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldReadCount(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 877
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 877
    functionName: TIFFFieldWriteCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldWriteCount(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fip
    argTypes:
    - TIFFField*
    constantsTouched: []
    func_position:
      end: 879
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 879
    functionName: TIFFFieldIsAnonymous
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFFieldIsAnonymous(const TIFFField *fip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:887,1
    - Dst: _TIFFCreateAnonField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:890,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - tif
    - tag
    - dt
    argTypes:
    - TIFF*
    - uint32_t
    - TIFFDataType
    constantsTouched: []
    func_position:
      end: 896
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 896
    functionName: _TIFFFindOrRegisterField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - TIFFFindField
    - _TIFFCreateAnonField
    - _TIFFMergeFields
    linkageType: ''
    returnType: TIFFField
    signature: "TIFFField *_TIFFFindOrRegisterField(TIFF *tif, uint32_t tag,\n                                          TIFFDataType
      dt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:904,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:907,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:964,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:967,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:978,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 3
    argNames:
    - tif
    - tag
    - field_type
    argTypes:
    - TIFF*
    - uint32_t
    - TIFFDataType
    constantsTouched: []
    func_position:
      end: 981
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 981
    functionName: _TIFFCreateAnonField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - snprintf
    - _TIFFmemset
    - _TIFFmallocExt
    linkageType: ''
    returnType: TIFFField
    signature: "TIFFField *_TIFFCreateAnonField(TIFF *tif, uint32_t tag,\n                                TIFFDataType
      field_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 140
    argCount: 3
    argNames:
    - type
    - count
    - passcount
    argTypes:
    - TIFFDataType
    - short
    - unsigned char
    constantsTouched: []
    func_position:
      end: 1145
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1145
    functionName: _TIFFSetGetType
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFFSetGetFieldType
    signature: "TIFFSetGetFieldType _TIFFSetGetType(TIFFDataType type, short count,\n
      \                                          unsigned char passcount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCheckRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1157,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1163,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1168,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1177,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1180,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1193,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1205,1
    - Dst: _TIFFSetGetType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1217,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1238,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - tif
    - info
    - n
    argTypes:
    - TIFF*
    - TIFFFieldInfo[]
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1245
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1245
    functionName: TIFFMergeFieldInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 2
    functionsReached:
    - _TIFFMergeFields
    - _TIFFCheckMalloc
    - _TIFFCheckRealloc
    - _TIFFSetGetType
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFMergeFieldInfo(TIFF *tif, const TIFFFieldInfo info[], uint32_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFIsCODECConfigured
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c:1276,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - ttag_t
    constantsTouched: []
    func_position:
      end: 1364
      start: 1247
    functionDepth: 2
    functionLinenumber: 1247
    functionLinenumberEnd: 1364
    functionName: _TIFFCheckFieldIsValidForCodec
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirinfo.c
    functionUses: 0
    functionsReached:
    - TIFFIsCODECConfigured
    linkageType: ''
    returnType: int
    signature: int _TIFFCheckFieldIsValidForCodec(TIFF *tif, ttag_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - TIFFErrorHandler
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: TIFFSetErrorHandler
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFErrorHandler
    signature: TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - TIFFErrorHandlerExt
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: TIFFSetErrorHandlerExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFFErrorHandlerExt
    signature: TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt handler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:51,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:53,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:57,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fmt
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: TIFFError
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFError(const char *module, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:68,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:70,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:74,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - module
    - fmt
    argTypes:
    - thandle_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: TIFFErrorExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 5
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFErrorExt(thandle_t fd, const char *module, const char *fmt,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:86,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:89,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:95,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:97,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:101,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - opts
    - clientdata
    - module
    - fmt
    argTypes:
    - TIFFOpenOptions*
    - thandle_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: _TIFFErrorEarly
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void _TIFFErrorEarly(TIFFOpenOptions *opts, thandle_t clientdata,\n
      \                    const char *module, const char *fmt, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:112,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:115,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:121,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:123,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:127,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_error.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - module
    - fmt
    argTypes:
    - TIFF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 132
    functionName: TIFFErrorExtR
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_error.c
    functionUses: 106
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void TIFFErrorExtR(TIFF *tif, const char *module, const char *fmt,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: ZIPFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZIPFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:104,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:106,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:111,1
    - Dst: inflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:119,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:121,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: ZIPSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - assert
    - ZIPDecoderState
    - inflateInit
    - SAFE_MSG
    - deflateEnd
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: TIFF_MIN_UINT64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFF_MIN_UINT64(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFF_MIN_UINT64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: TIFF_CLAMP_UINT64_TO_INT32_MAX
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - TIFF_MIN_UINT64
    linkageType: ''
    returnType: uInt
    signature: uInt TIFF_CLAMP_UINT64_TO_INT32_MAX(uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:146,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:149,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:152,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:158,1
    - Dst: TIFF_CLAMP_UINT64_TO_INT32_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:162,1
    - Dst: inflateReset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 169
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 169
    functionName: ZIPPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - TIFF_CLAMP_UINT64_TO_INT32_MAX
    - assert
    - ZIPDecoderState
    - TIFF*::tif_setupdecode
    - inflateReset
    linkageType: ''
    returnType: int
    signature: int ZIPPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:174,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:177,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:178,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:182,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:183,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:206,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:208,1
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:216,1
    - Dst: libdeflate_alloc_decompressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:231,1
    - Dst: libdeflate_zlib_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:240,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:255,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:256,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:271,1
    - Dst: TIFF_CLAMP_UINT64_TO_INT32_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:278,1
    - Dst: TIFF_CLAMP_UINT64_TO_INT32_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:279,1
    - Dst: inflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:282,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:289,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:290,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:291,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:297,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:298,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:298,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:305,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:309,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 317
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 317
    functionName: ZIPDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - libdeflate_alloc_decompressor
    - TIFFVStripSize64
    - inflate
    - TIFF_CLAMP_UINT64_TO_INT32_MAX
    - assert
    - libdeflate_zlib_decompress
    - ZIPDecoderState
    - SAFE_MSG
    - isTiled
    - memset
    - TIFFTileSize64
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:322,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:325,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:328,1
    - Dst: deflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:336,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:338,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 346
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 346
    functionName: ZIPSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - assert
    - deflateInit
    - inflateEnd
    - SAFE_MSG
    - ZIPEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:353,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:356,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:358,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:364,1
    - Dst: deflateReset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 372
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 372
    functionName: ZIPPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - deflateReset
    - assert
    - ZIPEncoderState
    - TIFF*::tif_setupencode
    linkageType: ''
    returnType: int
    signature: int ZIPPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:380,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:382,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:383,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:407,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:409,1
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:417,1
    - Dst: libdeflate_alloc_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:434,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:441,1
    - Dst: libdeflate_zlib_compress_bound
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:452,1
    - Dst: libdeflate_zlib_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:459,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:465,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:472,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:482,1
    - Dst: TIFF_CLAMP_UINT64_TO_INT32_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:488,1
    - Dst: deflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:490,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:492,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:492,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:498,1
    - Dst: TIFF_CLAMP_UINT64_TO_INT32_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:502,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 67
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 507
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 507
    functionName: ZIPEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - libdeflate_zlib_compress
    - TIFFVStripSize64
    - libdeflate_alloc_compressor
    - TIFF_CLAMP_UINT64_TO_INT32_MAX
    - assert
    - libdeflate_zlib_compress_bound
    - TIFFFlushData1
    - deflate
    - SAFE_MSG
    - isTiled
    - TIFFTileSize64
    - ZIPEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIPEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:516,1
    - Dst: deflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:527,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:536,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:546,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 551
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 551
    functionName: ZIPPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    - deflate
    - SAFE_MSG
    - ZIPEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZIPState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:555,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:557,1
    - Dst: TIFFPredictorCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:559,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:566,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:571,1
    - Dst: libdeflate_free_decompressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:577,1
    - Dst: libdeflate_free_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:579,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:582,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 586
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 586
    functionName: ZIPCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - libdeflate_free_decompressor
    - TIFFPredictorCleanup
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - libdeflate_free_compressor
    - GetZIPState
    - inflateEnd
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void ZIPCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZIPState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:591,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:596,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:600,1
    - Dst: deflateParams
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:612,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:615,1
    - Dst: SAFE_MSG
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:615,1
    - Dst: libdeflate_free_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:623,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:631,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:635,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:641,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 653
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 653
    functionName: ZIPVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - deflateParams
    - va_arg
    - libdeflate_free_compressor
    - SAFE_MSG
    - GetZIPState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZIPVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZIPState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:657,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:662,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: ZIPVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - va_arg
    - GetZIPState
    linkageType: ''
    returnType: int
    signature: int ZIPVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:689,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 694
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 694
    functionName: TIFF_zalloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - _TIFFmallocExt
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void *TIFF_zalloc(void *opaque, unsigned int items, unsigned int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: TIFF_zfree
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    linkageType: ''
    returnType: void
    signature: void TIFF_zfree(void *opaque, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:706,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:715,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:715,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:717,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:725,1
    - Dst: GetZIPState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:728,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:770,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zip.c:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 775
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 775
    functionName: TIFFInitZIP
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zip.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorInit
    - _TIFFMergeFields
    - assert
    - _TIFFcallocExt
    - TIFFArrayCount
    - GetZIPState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitZIP(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: TIFFReadUInt64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFReadUInt64(const uint8_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:309,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:314,1
    - Dst: TIFFReadDirEntryCheckRangeByteSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:315,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:324,1
    - Dst: TIFFReadDirEntryCheckRangeByteShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:325,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:334,1
    - Dst: TIFFReadDirEntryCheckRangeByteSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:335,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:344,1
    - Dst: TIFFReadDirEntryCheckRangeByteLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:345,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:354,1
    - Dst: TIFFReadDirEntryCheckRangeByteSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:355,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:364,1
    - Dst: TIFFReadDirEntryCheckRangeByteLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:367,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:376,1
    - Dst: TIFFReadDirEntryCheckRangeByteSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 388
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 388
    functionName: TIFFReadDirEntryByte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeByteSshort
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckRangeByteSlong
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckRangeByteSlong8
    - TIFFReadDirEntryCheckRangeByteShort
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckRangeByteLong
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckRangeByteLong8
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeByteSbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryByte(TIFF *tif, TIFFDirEntry
      *direntry, uint8_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:403,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:404,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:412,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:418,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:419,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:428,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:429,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:438,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:439,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:448,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:449,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:458,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:461,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:470,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:473,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 72
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int8_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 482
    functionName: TIFFReadDirEntrySbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeSbyteSlong
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckRangeSbyteLong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckRangeSbyteLong
    - TIFFReadDirEntryCheckRangeSbyteSlong8
    - TIFFReadDirEntryCheckRangeSbyteByte
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeSbyteSshort
    - TIFFReadDirEntryCheckRangeSbyteShort
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySbyte(TIFF *tif, TIFFDirEntry
      *direntry, int8_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:495,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:502,1
    - Dst: TIFFReadDirEntryCheckRangeShortSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:503,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:510,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:515,1
    - Dst: TIFFReadDirEntryCheckRangeShortSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:516,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:525,1
    - Dst: TIFFReadDirEntryCheckRangeShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:526,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:535,1
    - Dst: TIFFReadDirEntryCheckRangeShortSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:536,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:545,1
    - Dst: TIFFReadDirEntryCheckRangeShortLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:548,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:557,1
    - Dst: TIFFReadDirEntryCheckRangeShortSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:560,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 67
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 569
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 569
    functionName: TIFFReadDirEntryShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeShortSlong8
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckRangeShortSshort
    - TIFFReadDirEntryCheckRangeShortSlong
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckRangeShortLong8
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckRangeShortLong
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeShortSbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryShort(TIFF *tif, TIFFDirEntry
      *direntry, uint16_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:582,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:589,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:596,1
    - Dst: TIFFReadDirEntryCheckRangeSshortShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:597,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:604,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:609,1
    - Dst: TIFFReadDirEntryCheckRangeSshortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:610,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:619,1
    - Dst: TIFFReadDirEntryCheckRangeSshortSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:620,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:629,1
    - Dst: TIFFReadDirEntryCheckRangeSshortLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:632,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:641,1
    - Dst: TIFFReadDirEntryCheckRangeSshortSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:644,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int16_t*
    constantsTouched: []
    func_position:
      end: 653
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 653
    functionName: TIFFReadDirEntrySshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckRangeSshortSlong
    - TIFFReadDirEntryCheckRangeSshortLong8
    - TIFFReadDirEntryCheckRangeSshortShort
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckRangeSshortLong
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeSshortSlong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySshort(TIFF *tif, TIFFDirEntry
      *direntry, int16_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:666,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:673,1
    - Dst: TIFFReadDirEntryCheckRangeLongSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:674,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:683,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:690,1
    - Dst: TIFFReadDirEntryCheckRangeLongSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:691,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:698,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:703,1
    - Dst: TIFFReadDirEntryCheckRangeLongSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:704,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:713,1
    - Dst: TIFFReadDirEntryCheckRangeLongLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:716,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:725,1
    - Dst: TIFFReadDirEntryCheckRangeLongSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 737
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 737
    functionName: TIFFReadDirEntryLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckRangeLongLong8
    - TIFFReadDirEntryCheckRangeLongSlong
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckRangeLongSshort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckRangeLongSlong8
    - TIFFReadDirEntryCheckRangeLongSbyte
    - TIFFReadDirEntryCheckedLong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryLong(TIFF *tif, TIFFDirEntry
      *direntry, uint32_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:750,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:757,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:764,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:771,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:778,1
    - Dst: TIFFReadDirEntryCheckRangeSlongLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:779,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:786,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:791,1
    - Dst: TIFFReadDirEntryCheckRangeSlongLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:794,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:803,1
    - Dst: TIFFReadDirEntryCheckRangeSlongSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 815
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 815
    functionName: TIFFReadDirEntrySlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeSlongLong8
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckRangeSlongSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeSlongLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySlong(TIFF *tif, TIFFDirEntry
      *direntry, int32_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:828,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:835,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Sbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:836,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:845,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:852,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Sshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:853,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:862,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:869,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Slong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:870,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:877,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:882,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Slong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 894
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 894
    functionName: TIFFReadDirEntryLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckRangeLong8Slong
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckRangeLong8Sshort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckRangeLong8Slong8
    - TIFFReadDirEntryCheckedLong8
    - TIFFReadDirEntryCheckRangeLong8Sbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryLong8(TIFF *tif, TIFFDirEntry
      *direntry, uint64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:907,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:914,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:921,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:928,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:935,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:942,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:949,1
    - Dst: TIFFReadDirEntryCheckRangeSlong8Long8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:952,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int64_t*
    constantsTouched: []
    func_position:
      end: 964
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 964
    functionName: TIFFReadDirEntrySlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckRangeSlong8Long8
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckedLong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySlong8(TIFF *tif, TIFFDirEntry
      *direntry, int64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:977,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:984,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:991,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:998,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1005,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1012,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1019,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1028,1
    - Dst: TIFFReadDirEntryCheckedRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1037,1
    - Dst: TIFFReadDirEntryCheckedSrational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1046,1
    - Dst: TIFFReadDirEntryCheckedFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1053,1
    - Dst: TIFFReadDirEntryCheckedDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1058,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - float*
    constantsTouched: []
    func_position:
      end: 1069
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 1069
    functionName: TIFFReadDirEntryFloat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckedSrational
    - TIFFReadDirEntryCheckedRational
    - TIFFReadDirEntryCheckedFloat
    - TIFFReadDirEntryCheckedDouble
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckedLong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryFloat(TIFF *tif, TIFFDirEntry
      *direntry, float *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1082,1
    - Dst: TIFFReadDirEntryCheckedSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1089,1
    - Dst: TIFFReadDirEntryCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1096,1
    - Dst: TIFFReadDirEntryCheckedSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1103,1
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1110,1
    - Dst: TIFFReadDirEntryCheckedSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1117,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1124,1
    - Dst: TIFFReadDirEntryCheckedSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1133,1
    - Dst: TIFFReadDirEntryCheckedRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1140,1
    - Dst: TIFFReadDirEntryCheckedSrational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1143,1
    - Dst: TIFFReadDirEntryCheckedFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1148,1
    - Dst: TIFFReadDirEntryCheckedDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 65
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - double*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1158
    functionName: TIFFReadDirEntryDouble
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedSlong8
    - TIFFReadDirEntryCheckedSshort
    - TIFFReadDirEntryCheckedSrational
    - TIFFReadDirEntryCheckedRational
    - TIFFReadDirEntryCheckedFloat
    - TIFFReadDirEntryCheckedDouble
    - TIFFReadDirEntryCheckedByte
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedShort
    - TIFFReadDirEntryCheckedSlong
    - TIFFReadDirEntryCheckedSbyte
    - TIFFReadDirEntryCheckedLong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryDouble(TIFF *tif, TIFFDirEntry
      *direntry, double *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1172,1
    - Dst: TIFFReadDirEntryCheckedLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1183
    functionName: TIFFReadDirEntryIfd8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckedLong
    - TIFFReadDirEntryCheckedLong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryIfd8(TIFF *tif, TIFFDirEntry
      *direntry, uint64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1201,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1201,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1203,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1226,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1229,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - tif
    - offset
    - size
    - pdest
    argTypes:
    - TIFF*
    - uint64_t
    - tmsize_t
    - void**
    constantsTouched: []
    func_position:
      end: 1247
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1247
    functionName: TIFFReadDirEntryDataAndRealloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadFile
    - _TIFFreallocExt
    - assert
    - isMapped
    - SeekOK
    - TIFFErrorExtR
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryDataAndRealloc(TIFF *tif,\n
      \                                                              uint64_t offset,\n
      \                                                              tmsize_t size,\n
      \                                                              void **pdest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1263,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1294,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1304,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1314,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1317,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1324,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1333,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1339,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1340,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1341,1
    - Dst: TIFFReadDirEntryDataAndRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1344,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1348,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1357,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1363,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1364,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1365,1
    - Dst: TIFFReadDirEntryDataAndRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1368,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1372,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 6
    argNames:
    - tif
    - direntry
    - count
    - desttypesize
    - value
    - maxcount
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t*
    - uint32_t
    - void**
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1379
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1379
    functionName: TIFFReadDirEntryArrayWithLimit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabLong
    - _TIFFfreeExt
    - TIFFWarningExtR
    - assert
    - TIFFDataWidth
    - TIFFSwabLong8
    - isMapped
    - TIFFReadDirEntryData
    - _TIFFmemcpy
    - _TIFFCheckMalloc
    - TIFFReadDirEntryDataAndRealloc
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryArrayWithLimit(TIFF *tif,
      TIFFDirEntry *direntry,\n                               uint32_t *count, uint32_t
      desttypesize,\n                               void **value, uint64_t maxcount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArrayWithLimit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tif
    - direntry
    - count
    - desttypesize
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t*
    - uint32_t
    - void**
    constantsTouched: []
    func_position:
      end: 1387
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1387
    functionName: TIFFReadDirEntryArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryArrayWithLimit
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryArray(TIFF *tif, TIFFDirEntry
      *direntry, uint32_t *count,\n                      uint32_t desttypesize, void
      **value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1412,1
    - Dst: TIFFReadDirEntryCheckRangeByteSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1432,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1435,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1444,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1447,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1462,1
    - Dst: TIFFReadDirEntryCheckRangeByteShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1463,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1480,1
    - Dst: TIFFReadDirEntryCheckRangeByteSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1481,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1498,1
    - Dst: TIFFReadDirEntryCheckRangeByteLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1499,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1516,1
    - Dst: TIFFReadDirEntryCheckRangeByteSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1517,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1534,1
    - Dst: TIFFReadDirEntryCheckRangeByteLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1535,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1552,1
    - Dst: TIFFReadDirEntryCheckRangeByteSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1553,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1561,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1564,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 133
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 1569
      start: 1389
    functionDepth: 4
    functionLinenumber: 1389
    functionLinenumberEnd: 1569
    functionName: TIFFReadDirEntryByteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeByteSshort
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - TIFFReadDirEntryCheckRangeByteSlong
    - _TIFFfreeExt
    - TIFFSwabLong8
    - TIFFReadDirEntryCheckRangeByteSlong8
    - _TIFFmallocExt
    - TIFFReadDirEntryCheckRangeByteShort
    - TIFFReadDirEntryCheckRangeByteLong
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeByteLong8
    - TIFFReadDirEntryCheckRangeByteSbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryByteArray(TIFF *tif, TIFFDirEntry
      *direntry, uint8_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1593,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1609,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1612,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1624,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1627,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1642,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1643,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1660,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1661,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1678,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1679,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1696,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1697,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1714,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1715,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1732,1
    - Dst: TIFFReadDirEntryCheckRangeSbyteSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1733,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1741,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1744,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 131
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int8_t**
    constantsTouched: []
    func_position:
      end: 1749
      start: 1571
    functionDepth: 4
    functionLinenumber: 1571
    functionLinenumberEnd: 1749
    functionName: TIFFReadDirEntrySbyteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeSbyteSlong
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - TIFFReadDirEntryCheckRangeSbyteLong8
    - TIFFReadDirEntryCheckRangeSbyteLong
    - _TIFFfreeExt
    - TIFFSwabLong8
    - TIFFReadDirEntryCheckRangeSbyteSlong8
    - _TIFFmallocExt
    - TIFFReadDirEntryCheckRangeSbyteByte
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeSbyteSshort
    - TIFFReadDirEntryCheckRangeSbyteShort
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySbyteArray(TIFF *tif, TIFFDirEntry
      *direntry, int8_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1772,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1783,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1793,1
    - Dst: TIFFReadDirEntryCheckRangeShortSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1794,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1797,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1806,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1809,1
    - Dst: TIFFReadDirEntryCheckRangeShortSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1834,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1851,1
    - Dst: TIFFReadDirEntryCheckRangeShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1852,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1869,1
    - Dst: TIFFReadDirEntryCheckRangeShortSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1870,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1887,1
    - Dst: TIFFReadDirEntryCheckRangeShortLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1888,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1905,1
    - Dst: TIFFReadDirEntryCheckRangeShortSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1906,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1914,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1917,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 125
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t**
    constantsTouched: []
    func_position:
      end: 1922
      start: 1751
    functionDepth: 4
    functionLinenumber: 1751
    functionLinenumberEnd: 1922
    functionName: TIFFReadDirEntryShortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfShort
    - TIFFReadDirEntryCheckRangeShortSlong8
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - _TIFFfreeExt
    - TIFFSwabLong8
    - TIFFReadDirEntryCheckRangeShortSshort
    - _TIFFmallocExt
    - TIFFReadDirEntryCheckRangeShortSlong
    - TIFFReadDirEntryCheckRangeShortLong8
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeShortLong
    - TIFFReadDirEntryCheckRangeShortSbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryShortArray(TIFF *tif, TIFFDirEntry
      *direntry, uint16_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1945,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1961,1
    - Dst: TIFFReadDirEntryCheckRangeSshortShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1962,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1965,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1976,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1979,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:1982,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2019,1
    - Dst: TIFFReadDirEntryCheckRangeSshortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2020,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2037,1
    - Dst: TIFFReadDirEntryCheckRangeSshortSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2038,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2055,1
    - Dst: TIFFReadDirEntryCheckRangeSshortLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2056,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2073,1
    - Dst: TIFFReadDirEntryCheckRangeSshortSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2074,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2082,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2085,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 121
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int16_t**
    constantsTouched: []
    func_position:
      end: 2090
      start: 1924
    functionDepth: 4
    functionLinenumber: 1924
    functionLinenumberEnd: 2090
    functionName: TIFFReadDirEntrySshortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfShort
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - _TIFFfreeExt
    - TIFFReadDirEntryCheckRangeSshortSlong
    - TIFFSwabLong8
    - TIFFReadDirEntryCheckRangeSshortLong8
    - TIFFReadDirEntryCheckRangeSshortShort
    - _TIFFmallocExt
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeSshortLong
    - TIFFReadDirEntryCheckRangeSshortSlong8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySshortArray(TIFF *tif, TIFFDirEntry
      *direntry, int16_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2113,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2124,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2134,1
    - Dst: TIFFReadDirEntryCheckRangeLongSlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2135,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2138,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2147,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2150,1
    - Dst: TIFFReadDirEntryCheckRangeLongSbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2175,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2192,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2207,1
    - Dst: TIFFReadDirEntryCheckRangeLongSshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2208,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2225,1
    - Dst: TIFFReadDirEntryCheckRangeLongLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2226,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2243,1
    - Dst: TIFFReadDirEntryCheckRangeLongSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2244,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2252,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2255,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 122
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t**
    constantsTouched: []
    func_position:
      end: 2260
      start: 2092
    functionDepth: 4
    functionLinenumber: 2092
    functionLinenumberEnd: 2260
    functionName: TIFFReadDirEntryLongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - TIFFSwabLong8
    - TIFFReadDirEntryCheckRangeLongLong8
    - _TIFFmallocExt
    - TIFFReadDirEntryCheckRangeLongSlong
    - TIFFReadDirEntryCheckRangeLongSlong8
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeLongSshort
    - TIFFReadDirEntryCheckRangeLongSbyte
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryLongArray(TIFF *tif, TIFFDirEntry
      *direntry, uint32_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2283,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2299,1
    - Dst: TIFFReadDirEntryCheckRangeSlongLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2300,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2303,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2314,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2317,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2320,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2357,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2372,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2387,1
    - Dst: TIFFReadDirEntryCheckRangeSlongLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2388,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2405,1
    - Dst: TIFFReadDirEntryCheckRangeSlongSlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2406,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2414,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2417,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int32_t**
    constantsTouched: []
    func_position:
      end: 2422
      start: 2262
    functionDepth: 4
    functionLinenumber: 2262
    functionLinenumberEnd: 2422
    functionName: TIFFReadDirEntrySlongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryCheckRangeSlongLong8
    - TIFFSwabLong
    - TIFFReadDirEntryCheckRangeSlongSlong8
    - TIFFReadDirEntryArray
    - _TIFFfreeExt
    - TIFFSwabArrayOfLong
    - TIFFSwabLong8
    - _TIFFmallocExt
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeSlongLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySlongArray(TIFF *tif, TIFFDirEntry
      *direntry, int32_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArrayWithLimit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2446,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2458,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2468,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Slong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2469,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2472,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2481,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2484,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Sbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2509,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2526,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2541,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Sshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2542,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2559,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2574,1
    - Dst: TIFFReadDirEntryCheckRangeLong8Slong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2575,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2583,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2586,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 119
    argCount: 4
    argNames:
    - tif
    - direntry
    - value
    - maxcount
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t**
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2591
      start: 2424
    functionDepth: 3
    functionLinenumber: 2424
    functionLinenumberEnd: 2591
    functionName: TIFFReadDirEntryLong8ArrayWithLimit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong8
    - TIFFSwabLong
    - TIFFReadDirEntryCheckRangeLong8Slong
    - TIFFSwabLong8
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFReadDirEntryCheckRangeLong8Slong8
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeLong8Sshort
    - TIFFReadDirEntryCheckRangeLong8Sbyte
    - TIFFReadDirEntryArrayWithLimit
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryLong8ArrayWithLimit(TIFF
      *tif, TIFFDirEntry *direntry,\n                                    uint64_t
      **value, uint64_t maxcount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryLong8ArrayWithLimit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t**
    constantsTouched: []
    func_position:
      end: 2598
      start: 2593
    functionDepth: 4
    functionLinenumber: 2593
    functionLinenumberEnd: 2598
    functionName: TIFFReadDirEntryLong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryLong8ArrayWithLimit
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryLong8Array(TIFF *tif, TIFFDirEntry
      *direntry, uint64_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2621,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2637,1
    - Dst: TIFFReadDirEntryCheckRangeSlong8Long8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2638,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2641,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2652,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2655,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2658,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2695,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2710,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2725,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2740,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2746,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int64_t**
    constantsTouched: []
    func_position:
      end: 2749
      start: 2600
    functionDepth: 4
    functionLinenumber: 2600
    functionLinenumberEnd: 2749
    functionName: TIFFReadDirEntrySlong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong8
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - TIFFSwabLong8
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFSwabShort
    - TIFFReadDirEntryCheckRangeSlong8Long8
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntrySlong8Array(TIFF *tif, TIFFDirEntry
      *direntry, int64_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2776,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2786,1
    - Dst: TIFFCvtIEEEFloatToNative
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2787,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2791,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2794,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2831,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2846,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2861,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2876,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2891,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2906,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2923,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2926,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2947,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2951,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2966,1
    - Dst: TIFFCvtIEEEDoubleToNative
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2967,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:2982,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 163
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - float**
    constantsTouched: []
    func_position:
      end: 2985
      start: 2751
    functionDepth: 4
    functionLinenumber: 2751
    functionLinenumberEnd: 2985
    functionName: TIFFReadDirEntryFloatArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabLong
    - TIFFSwabArrayOfLong8
    - TIFFReadDirEntryArray
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - TIFFCvtIEEEFloatToNative
    - TIFFSwabLong8
    - _TIFFmallocExt
    - TIFFCvtIEEEDoubleToNative
    - TIFFSwabShort
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryFloatArray(TIFF *tif, TIFFDirEntry
      *direntry, float **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3012,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3022,1
    - Dst: TIFFCvtIEEEDoubleToNative
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3023,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3027,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3030,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3067,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3082,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3097,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3112,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3127,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3142,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3159,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3162,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3183,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3187,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3202,1
    - Dst: TIFFCvtIEEEFloatToNative
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3203,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3211,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 158
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - double**
    constantsTouched: []
    func_position:
      end: 3214
      start: 2987
    functionDepth: 4
    functionLinenumber: 2987
    functionLinenumberEnd: 3214
    functionName: TIFFReadDirEntryDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong8
    - TIFFSwabLong
    - TIFFReadDirEntryArray
    - _TIFFfreeExt
    - TIFFSwabLong8
    - TIFFSwabArrayOfLong
    - TIFFCvtIEEEFloatToNative
    - _TIFFmallocExt
    - TIFFCvtIEEEDoubleToNative
    - TIFFSwabShort
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryDoubleArray(TIFF *tif, TIFFDirEntry
      *direntry, double **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3233,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3245,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3248,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3251,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3267,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t**
    constantsTouched: []
    func_position:
      end: 3276
      start: 3216
    functionDepth: 4
    functionLinenumber: 3216
    functionLinenumberEnd: 3276
    functionName: TIFFReadDirEntryIfd8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabLong
    - TIFFSwabArrayOfLong8
    - TIFFReadDirEntryArray
    - _TIFFfreeExt
    - _TIFFmallocExt
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryIfd8Array(TIFF *tif, TIFFDirEntry
      *direntry, uint64_t **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3288,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 3306
      start: 3278
    functionDepth: 5
    functionLinenumber: 3278
    functionLinenumberEnd: 3306
    functionName: TIFFReadDirEntryPersampleShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - TIFFReadDirEntryShortArray
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryPersampleShort(TIFF *tif,
      TIFFDirEntry *direntry,\n                               uint16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 3313
      start: 3308
    functionDepth: 0
    functionLinenumber: 3308
    functionLinenumberEnd: 3313
    functionName: TIFFReadDirEntryCheckedByte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedByte(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                       uint8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int8_t*
    constantsTouched: []
    func_position:
      end: 3320
      start: 3315
    functionDepth: 0
    functionLinenumber: 3315
    functionLinenumberEnd: 3320
    functionName: TIFFReadDirEntryCheckedSbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedSbyte(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                        int8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 3329
      start: 3322
    functionDepth: 1
    functionLinenumber: 3322
    functionLinenumberEnd: 3329
    functionName: TIFFReadDirEntryCheckedShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached:
    - TIFFSwabShort
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedShort(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                        uint16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int16_t*
    constantsTouched: []
    func_position:
      end: 3337
      start: 3331
    functionDepth: 1
    functionLinenumber: 3331
    functionLinenumberEnd: 3337
    functionName: TIFFReadDirEntryCheckedSshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached:
    - TIFFSwabShort
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedSshort(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                         int16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3345
      start: 3339
    functionDepth: 1
    functionLinenumber: 3339
    functionLinenumberEnd: 3345
    functionName: TIFFReadDirEntryCheckedLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 11
    functionsReached:
    - TIFFSwabLong
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedLong(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                       uint32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 3353
      start: 3347
    functionDepth: 1
    functionLinenumber: 3347
    functionLinenumberEnd: 3353
    functionName: TIFFReadDirEntryCheckedSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached:
    - TIFFSwabLong
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedSlong(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                        int32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3363,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3364,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3373
      start: 3355
    functionDepth: 1
    functionLinenumber: 3355
    functionLinenumberEnd: 3373
    functionName: TIFFReadDirEntryCheckedLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 11
    functionsReached:
    - TIFFSwabLong8
    - TIFFReadDirEntryData
    - TIFFSwabLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedLong8(TIFF *tif, TIFFDirEntry
      *direntry, uint64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3383,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3384,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int64_t*
    constantsTouched: []
    func_position:
      end: 3393
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3393
    functionName: TIFFReadDirEntryCheckedSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 10
    functionsReached:
    - TIFFSwabLong8
    - TIFFReadDirEntryData
    - TIFFSwabLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedSlong8(TIFF *tif, TIFFDirEntry
      *direntry, int64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3401,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3402,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3403,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3409,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3410,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - double*
    constantsTouched: []
    func_position:
      end: 3426
      start: 3395
    functionDepth: 1
    functionLinenumber: 3395
    functionLinenumberEnd: 3426
    functionName: TIFFReadDirEntryCheckedRational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - TIFFReadDirEntryData
    - assert
    - TIFFSwabLong
    - TIFFSwabArrayOfLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedRational(TIFF *tif,
      TIFFDirEntry *direntry,\n                                double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3433,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3434,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3435,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3436,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3442,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3443,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - double*
    constantsTouched: []
    func_position:
      end: 3459
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3459
    functionName: TIFFReadDirEntryCheckedSrational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - TIFFReadDirEntryData
    - assert
    - TIFFSwabLong
    - TIFFSwabArrayOfLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedSrational(TIFF *tif,
      TIFFDirEntry *direntry,\n                                 double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3469,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3470,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3471,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3485,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3486,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - TIFFRational_t*
    constantsTouched: []
    func_position:
      end: 3501
      start: 3462
    functionDepth: 1
    functionLinenumber: 3462
    functionLinenumberEnd: 3501
    functionName: TIFFReadDirEntryCheckedRationalDirect
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadDirEntryData
    - assert
    - TIFFSwabLong
    - TIFFSwabArrayOfLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedRationalDirect(TIFF
      *tif, TIFFDirEntry *direntry,\n                                      TIFFRational_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3512,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3513,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3514,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - float*
    constantsTouched: []
    func_position:
      end: 3519
      start: 3504
    functionDepth: 1
    functionLinenumber: 3504
    functionLinenumberEnd: 3519
    functionName: TIFFReadDirEntryCheckedFloat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - assert
    - TIFFSwabLong
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryCheckedFloat(TIFF *tif, TIFFDirEntry *direntry,\n
      \                                        float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3524,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3525,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3526,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3532,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3533,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - direntry
    - value
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - double*
    constantsTouched: []
    func_position:
      end: 3546
      start: 3521
    functionDepth: 1
    functionLinenumber: 3521
    functionLinenumberEnd: 3546
    functionName: TIFFReadDirEntryCheckedDouble
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - TIFFSwabLong8
    - TIFFReadDirEntryData
    - assert
    - TIFFSwabLong
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckedDouble(TIFF *tif, TIFFDirEntry
      *direntry, double *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 3555
      start: 3548
    functionDepth: 0
    functionLinenumber: 3548
    functionLinenumberEnd: 3555
    functionName: TIFFReadDirEntryCheckRangeByteSbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteSbyte(int8_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 3564
      start: 3557
    functionDepth: 0
    functionLinenumber: 3557
    functionLinenumberEnd: 3564
    functionName: TIFFReadDirEntryCheckRangeByteShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteShort(uint16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 3573
      start: 3566
    functionDepth: 0
    functionLinenumber: 3566
    functionLinenumberEnd: 3573
    functionName: TIFFReadDirEntryCheckRangeByteSshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteSshort(int16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3582
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3582
    functionName: TIFFReadDirEntryCheckRangeByteLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteLong(uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3591
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3591
    functionName: TIFFReadDirEntryCheckRangeByteSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteSlong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3600
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3600
    functionName: TIFFReadDirEntryCheckRangeByteLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3609
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3609
    functionName: TIFFReadDirEntryCheckRangeByteSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeByteSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 3618
      start: 3611
    functionDepth: 0
    functionLinenumber: 3611
    functionLinenumberEnd: 3618
    functionName: TIFFReadDirEntryCheckRangeSbyteByte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteByte(uint8_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 3627
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3627
    functionName: TIFFReadDirEntryCheckRangeSbyteShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteShort(uint16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 3636
      start: 3629
    functionDepth: 0
    functionLinenumber: 3629
    functionLinenumberEnd: 3636
    functionName: TIFFReadDirEntryCheckRangeSbyteSshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteSshort(int16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3645
      start: 3638
    functionDepth: 0
    functionLinenumber: 3638
    functionLinenumberEnd: 3645
    functionName: TIFFReadDirEntryCheckRangeSbyteLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteLong(uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3654
      start: 3647
    functionDepth: 0
    functionLinenumber: 3647
    functionLinenumberEnd: 3654
    functionName: TIFFReadDirEntryCheckRangeSbyteSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteSlong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3663
      start: 3656
    functionDepth: 0
    functionLinenumber: 3656
    functionLinenumberEnd: 3663
    functionName: TIFFReadDirEntryCheckRangeSbyteLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3672
      start: 3665
    functionDepth: 0
    functionLinenumber: 3665
    functionLinenumberEnd: 3672
    functionName: TIFFReadDirEntryCheckRangeSbyteSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSbyteSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 3681
      start: 3674
    functionDepth: 0
    functionLinenumber: 3674
    functionLinenumberEnd: 3681
    functionName: TIFFReadDirEntryCheckRangeShortSbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortSbyte(int8_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 3690
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3690
    functionName: TIFFReadDirEntryCheckRangeShortSshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortSshort(int16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3699
      start: 3692
    functionDepth: 0
    functionLinenumber: 3692
    functionLinenumberEnd: 3699
    functionName: TIFFReadDirEntryCheckRangeShortLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortLong(uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3708
      start: 3701
    functionDepth: 0
    functionLinenumber: 3701
    functionLinenumberEnd: 3708
    functionName: TIFFReadDirEntryCheckRangeShortSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortSlong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3717
      start: 3710
    functionDepth: 0
    functionLinenumber: 3710
    functionLinenumberEnd: 3717
    functionName: TIFFReadDirEntryCheckRangeShortLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3726
      start: 3719
    functionDepth: 0
    functionLinenumber: 3719
    functionLinenumberEnd: 3726
    functionName: TIFFReadDirEntryCheckRangeShortSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeShortSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 3735
      start: 3728
    functionDepth: 0
    functionLinenumber: 3728
    functionLinenumberEnd: 3735
    functionName: TIFFReadDirEntryCheckRangeSshortShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSshortShort(uint16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3744
      start: 3737
    functionDepth: 0
    functionLinenumber: 3737
    functionLinenumberEnd: 3744
    functionName: TIFFReadDirEntryCheckRangeSshortLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSshortLong(uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3753
      start: 3746
    functionDepth: 0
    functionLinenumber: 3746
    functionLinenumberEnd: 3753
    functionName: TIFFReadDirEntryCheckRangeSshortSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSshortSlong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3762
      start: 3755
    functionDepth: 0
    functionLinenumber: 3755
    functionLinenumberEnd: 3762
    functionName: TIFFReadDirEntryCheckRangeSshortLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSshortLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3771
      start: 3764
    functionDepth: 0
    functionLinenumber: 3764
    functionLinenumberEnd: 3771
    functionName: TIFFReadDirEntryCheckRangeSshortSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSshortSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 3780
      start: 3773
    functionDepth: 0
    functionLinenumber: 3773
    functionLinenumberEnd: 3780
    functionName: TIFFReadDirEntryCheckRangeLongSbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLongSbyte(int8_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 3789
      start: 3782
    functionDepth: 0
    functionLinenumber: 3782
    functionLinenumberEnd: 3789
    functionName: TIFFReadDirEntryCheckRangeLongSshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLongSshort(int16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3798
      start: 3791
    functionDepth: 0
    functionLinenumber: 3791
    functionLinenumberEnd: 3798
    functionName: TIFFReadDirEntryCheckRangeLongSlong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLongSlong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3807
      start: 3800
    functionDepth: 0
    functionLinenumber: 3800
    functionLinenumberEnd: 3807
    functionName: TIFFReadDirEntryCheckRangeLongLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLongLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3816
      start: 3809
    functionDepth: 0
    functionLinenumber: 3809
    functionLinenumberEnd: 3816
    functionName: TIFFReadDirEntryCheckRangeLongSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLongSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3825
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3825
    functionName: TIFFReadDirEntryCheckRangeSlongLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSlongLong(uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3835
      start: 3828
    functionDepth: 0
    functionLinenumber: 3828
    functionLinenumberEnd: 3835
    functionName: TIFFReadDirEntryCheckRangeSlongLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSlongLong8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3845
      start: 3838
    functionDepth: 0
    functionLinenumber: 3838
    functionLinenumberEnd: 3845
    functionName: TIFFReadDirEntryCheckRangeSlongSlong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSlongSlong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 3854
      start: 3847
    functionDepth: 0
    functionLinenumber: 3847
    functionLinenumberEnd: 3854
    functionName: TIFFReadDirEntryCheckRangeLong8Sbyte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Sbyte(int8_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 3863
      start: 3856
    functionDepth: 0
    functionLinenumber: 3856
    functionLinenumberEnd: 3863
    functionName: TIFFReadDirEntryCheckRangeLong8Sshort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Sshort(int16_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3872
      start: 3865
    functionDepth: 0
    functionLinenumber: 3865
    functionLinenumberEnd: 3872
    functionName: TIFFReadDirEntryCheckRangeLong8Slong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Slong(int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 3881
      start: 3874
    functionDepth: 0
    functionLinenumber: 3874
    functionLinenumberEnd: 3881
    functionName: TIFFReadDirEntryCheckRangeLong8Slong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Slong8(int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3890
      start: 3883
    functionDepth: 0
    functionLinenumber: 3883
    functionLinenumberEnd: 3890
    functionName: TIFFReadDirEntryCheckRangeSlong8Long8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSlong8Long8(uint64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3895,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3896,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3898,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3900,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3914,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - tif
    - offset
    - size
    - dest
    argTypes:
    - TIFF*
    - uint64_t
    - tmsize_t
    - void*
    constantsTouched: []
    func_position:
      end: 3917
      start: 3892
    functionDepth: 1
    functionLinenumber: 3892
    functionLinenumberEnd: 3917
    functionName: TIFFReadDirEntryData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 7
    functionsReached:
    - assert
    - isMapped
    - SeekOK
    - _TIFFmemcpy
    - ReadOK
    linkageType: ''
    returnType: enum TIFFReadDirEntryErr
    signature: "enum TIFFReadDirEntryErr TIFFReadDirEntryData(TIFF *tif, uint64_t
      offset,\n                                                     tmsize_t size,
      void *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3928,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3932,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3936,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3940,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3944,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3950,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3955,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3959,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3968,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3973,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3978,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3983,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3988,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:3994,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4000,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4005,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 5
    argNames:
    - tif
    - err
    - module
    - tagname
    - recover
    argTypes:
    - TIFF*
    - enum TIFFReadDirEntryErr
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4009
      start: 3919
    functionDepth: 1
    functionLinenumber: 3919
    functionLinenumberEnd: 4009
    functionName: TIFFReadDirEntryOutputErr
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirEntryOutputErr(TIFF *tif, enum TIFFReadDirEntryErr
      err,\n                                      const char *module, const char *tagname,\n
      \                                     int recover)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - photometric
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 4039
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4039
    functionName: _TIFFGetMaxColorChannels
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _TIFFGetMaxColorChannels(uint16_t photometric)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4066,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 4081
      start: 4041
    functionDepth: 0
    functionLinenumber: 4041
    functionLinenumberEnd: 4081
    functionName: ByteCountLooksBad
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFGetFileSize
    linkageType: ''
    returnType: int
    signature: int ByteCountLooksBad(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4092,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4101,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4112,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - tif
    - dp
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    constantsTouched: []
    func_position:
      end: 4135
      start: 4087
    functionDepth: 1
    functionLinenumber: 4087
    functionLinenumberEnd: 4135
    functionName: EvaluateIFDdatasizeReading
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSwabLong8
    - TIFFSwabLong
    - TIFFErrorExtR
    linkageType: ''
    returnType: bool
    signature: bool EvaluateIFDdatasizeReading(TIFF *tif, TIFFDirEntry *dp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 4151
      start: 4140
    functionDepth: 0
    functionLinenumber: 4140
    functionLinenumberEnd: 4151
    functionName: cmpTIFFEntryOffsetAndLength
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmpTIFFEntryOffsetAndLength(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4169,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - tif
    - dircount
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 4230
      start: 4160
    functionDepth: 0
    functionLinenumber: 4160
    functionLinenumberEnd: 4230
    functionName: CalcFinalIFDdatasizeReading
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFSeekFile
    - qsort
    linkageType: ''
    returnType: void
    signature: void CalcFinalIFDdatasizeReading(TIFF *tif, uint16_t dircount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCheckDirNumberAndOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4262,1
    - Dst: TIFFFetchDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4272,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4275,1
    - Dst: TIFFReadDirectoryCheckOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4288,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4316,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4317,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4327,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4331,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4344,1
    - Dst: TIFFReadDirectoryFindEntry
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4363,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4366,1
    - Dst: TIFFReadDirectoryFindEntry
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4370,1
    - Dst: TIFFReadDirEntryShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4381,1
    - Dst: TIFFReadDirEntryPersampleShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4383,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4386,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4389,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4395,1
    - Dst: TIFFReadDirectoryFindFieldInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4405,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4410,1
    - Dst: _TIFFCreateAnonField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4417,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4419,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4421,1
    - Dst: TIFFReadDirectoryFindFieldInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4430,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4431,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4448,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4459,1
    - Dst: _TIFFCheckFieldIsValidForCodec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4464,1
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4482,1
    - Dst: TIFFReadDirectoryFindEntry
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4484,1
    - Dst: TIFFReadDirectoryFindEntry
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4488,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4493,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4502,1
    - Dst: MissingRequired
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4504,1
    - Dst: TIFFReadDirEntryShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4535,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4536,1
    - Dst: TIFFReadDirEntryPersampleShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4540,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4543,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4544,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4549,1
    - Dst: TIFFReadDirEntryDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4567,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4568,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4572,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4573,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4580,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4582,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4603,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4604,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4610,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4612,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4632,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4633,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4639,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4641,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4662,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4663,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4674,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4675,1
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4697,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4698,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4702,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4703,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4709,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4712,1
    - Dst: TIFFReadDirEntryShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4721,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4737,1
    - Dst: TIFFReadDirEntryCheckedRationalDirect
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4754,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4758,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4759,1
    - Dst: snprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4767,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4769,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4774,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4777,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4778,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4788,1
    - Dst: CalcFinalIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4795,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4815,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4817,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4820,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4826,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4830,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4832,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4835,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4838,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4842,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4845,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4850,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4853,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4863,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4874,1
    - Dst: TIFFNumberOfStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4876,1
    - Dst: TIFFNumberOfTiles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4884,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4889,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4890,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4896,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4900,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4910,1
    - Dst: MissingRequired
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4915,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4915,1
    - Dst: TIFFSetupStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4931,1
    - Dst: TIFFFetchStripThing
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4937,1
    - Dst: TIFFFetchStripThing
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4946,1
    - Dst: _TIFFGetMaxColorChannels
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4959,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4967,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4979,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4983,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4992,1
    - Dst: _TIFFsetShortArrayExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4994,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:4996,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5003,1
    - Dst: MissingRequired
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5012,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5026,1
    - Dst: MissingRequired
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5039,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5042,1
    - Dst: EstimateStripByteCounts
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5046,1
    - Dst: ByteCountLooksBad
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5050,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5058,1
    - Dst: EstimateStripByteCounts
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5061,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5068,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5069,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5070,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5071,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5083,1
    - Dst: EstimateStripByteCounts
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5086,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5092,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5095,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5117,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5118,1
    - Dst: ChopUpSingleUncompressedStrip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5146,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5155,1
    - Dst: TryChopUpUncompressedBigTiff
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5157,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5175,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5178,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5182,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5184,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5187,1
    - Dst: TIFFStripSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5193,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5195,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5202,1
    CyclomaticComplexity: 209
    EdgeCount: 209
    ICount: 492
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 5204
      start: 4236
    functionDepth: 6
    functionLinenumber: 4236
    functionLinenumberEnd: 5204
    functionName: TIFFReadDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 4
    functionsReached:
    - _TIFFCheckFieldIsValidForCodec
    - TryChopUpUncompressedBigTiff
    - TIFFReadDirEntryDoubleArray
    - memcpy
    - _TIFFfreeExt
    - assert
    - TIFFNumberOfStrips
    - TIFFFieldSet
    - TIFFGetStrileByteCount
    - TIFFDefaultDirectory
    - TIFFSetupStrips
    - TIFFErrorExtR
    - _TIFFCheckDirNumberAndOffset
    - CalcFinalIFDdatasizeReading
    - EstimateStripByteCounts
    - _TIFFMergeFields
    - EvaluateIFDdatasizeReading
    - _TIFFFillStriles
    - _TIFFCreateAnonField
    - MissingRequired
    - TIFFReadDirectoryFindFieldInfo
    - TIFFReadDirectoryFindEntry
    - TIFFReadDirEntryShortArray
    - _TIFFGetMaxColorChannels
    - _TIFFcallocExt
    - ChopUpSingleUncompressedStrip
    - TIFFFreeDirectory
    - TIFFStripSize64
    - _TIFFmallocExt
    - TIFFTileSize
    - _TIFFmemcpy
    - TIFFReadDirEntryCheckedRationalDirect
    - snprintf
    - ByteCountLooksBad
    - TIFFScanlineSize
    - TIFFReadDirEntryOutputErr
    - TIFFFieldWithTag
    - TIFFGetStrileOffset
    - TIFFFetchDirectory
    - TIFFReadDirEntryShort
    - TIFFFetchStripThing
    - _TIFFsetShortArrayExt
    - TIFFWarningExtR
    - TIFFReadDirectoryCheckOrder
    - TIFFReadDirEntryPersampleShort
    - TIFFSetFieldBit
    - TIFFStripSize
    - TIFFSetField
    - isTiled
    - TIFFNumberOfTiles
    - TIFFFetchNormalTag
    linkageType: ''
    returnType: int
    signature: int TIFFReadDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - dir
    - dircount
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5225
      start: 5206
    functionDepth: 1
    functionLinenumber: 5206
    functionLinenumberEnd: 5225
    functionName: TIFFReadDirectoryCheckOrder
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFWarningExtR
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirectoryCheckOrder(TIFF *tif, TIFFDirEntry *dir,\n                                        uint16_t
      dircount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - tif
    - dir
    - dircount
    - tagid
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5240
      start: 5227
    functionDepth: 0
    functionLinenumber: 5227
    functionLinenumberEnd: 5240
    functionName: TIFFReadDirectoryFindEntry
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TIFFDirEntry
    signature: "TIFFDirEntry *TIFFReadDirectoryFindEntry(TIFF *tif, TIFFDirEntry *dir,\n
      \                                               uint16_t dircount,\n                                                uint16_t
      tagid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - tif
    - tagid
    - fii
    argTypes:
    - TIFF*
    - uint16_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 5272
      start: 5242
    functionDepth: 0
    functionLinenumber: 5242
    functionLinenumberEnd: 5272
    functionName: TIFFReadDirectoryFindFieldInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFReadDirectoryFindFieldInfo(TIFF *tif, uint16_t tagid,\n                                           uint32_t
      *fii)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFetchDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5289,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5292,1
    - Dst: TIFFReadDirectoryCheckOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5297,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5321,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5328,1
    - Dst: _TIFFSetupFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5329,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5334,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5338,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5342,1
    - Dst: TIFFReadDirectoryFindFieldInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5348,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5353,1
    - Dst: _TIFFCreateAnonField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5358,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5360,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5364,1
    - Dst: TIFFReadDirectoryFindFieldInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5374,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5375,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5401,1
    - Dst: CheckDirCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5419,1
    - Dst: TIFFFieldIsAnonymous
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5429,1
    - Dst: TIFFFetchSubjectDistance
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5433,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5437,1
    - Dst: TIFFFetchNormalTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5441,1
    - Dst: CalcFinalIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5448,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5453,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 3
    argNames:
    - tif
    - diroff
    - infoarray
    argTypes:
    - TIFF*
    - toff_t
    - TIFFFieldArray*
    constantsTouched: []
    func_position:
      end: 5455
      start: 5278
    functionDepth: 2
    functionLinenumber: 5278
    functionLinenumberEnd: 5455
    functionName: TIFFReadCustomDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFFetchSubjectDistance
    - _TIFFSetupFields
    - TIFFFetchDirectory
    - CheckDirCount
    - CalcFinalIFDdatasizeReading
    - _TIFFfreeExt
    - TIFFWarningExtR
    - _TIFFMergeFields
    - TIFFReadDirectoryCheckOrder
    - TIFFFreeDirectory
    - assert
    - _TIFFmallocExt
    - _TIFFCreateAnonField
    - TIFFDefaultDirectory
    - TIFFReadDirectoryFindFieldInfo
    - TIFFFieldIsAnonymous
    - TIFFFetchNormalTag
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReadCustomDirectory(TIFF *tif, toff_t diroff,\n                            const
      TIFFFieldArray *infoarray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadCustomDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5463,1
    - Dst: _TIFFGetExifFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - diroff
    argTypes:
    - TIFF*
    - toff_t
    constantsTouched: []
    func_position:
      end: 5464
      start: 5461
    functionDepth: 3
    functionLinenumber: 5461
    functionLinenumberEnd: 5464
    functionName: TIFFReadEXIFDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFGetExifFields
    - TIFFReadCustomDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFReadEXIFDirectory(TIFF *tif, toff_t diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadCustomDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5471,1
    - Dst: _TIFFGetGpsFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - diroff
    argTypes:
    - TIFF*
    - toff_t
    constantsTouched: []
    func_position:
      end: 5472
      start: 5469
    functionDepth: 3
    functionLinenumber: 5469
    functionLinenumberEnd: 5472
    functionName: TIFFReadGPSDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFGetGpsFields
    - TIFFReadCustomDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFReadGPSDirectory(TIFF *tif, toff_t diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFFillStrilesInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5484,1
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5493,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5496,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5506,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5507,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5525,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5528,1
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5552,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5588,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5606,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5607,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 3
    argNames:
    - tif
    - dir
    - dircount
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5610
      start: 5474
    functionDepth: 1
    functionLinenumber: 5474
    functionLinenumberEnd: 5610
    functionName: EstimateStripByteCounts
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - _TIFFFillStrilesInternal
    - TIFFGetFileSize
    - _TIFFfreeExt
    - TIFFWarningExtR
    - TIFFDataWidth
    - TIFFSetFieldBit
    - TIFFFieldSet
    - isTiled
    - _TIFFCheckMalloc
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir,\n                                   uint16_t
      dircount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - tagname
    argTypes:
    - TIFF*
    - char*
    constantsTouched: []
    func_position:
      end: 5618
      start: 5612
    functionDepth: 1
    functionLinenumber: 5612
    functionLinenumberEnd: 5618
    functionName: MissingRequired
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void MissingRequired(TIFF *tif, const char *tagname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 5627
      start: 5620
    functionDepth: 0
    functionLinenumber: 5620
    functionLinenumberEnd: 5627
    functionName: hashFuncOffsetToNumber
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hashFuncOffsetToNumber(const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elt1
    - elt2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 5636
      start: 5629
    functionDepth: 0
    functionLinenumber: 5629
    functionLinenumberEnd: 5636
    functionName: equalFuncOffsetToNumber
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool equalFuncOffsetToNumber(const void *elt1, const void *elt2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 5643
      start: 5638
    functionDepth: 0
    functionLinenumber: 5638
    functionLinenumberEnd: 5643
    functionName: hashFuncNumberToOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hashFuncNumberToOffset(const void *elt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elt1
    - elt2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 5652
      start: 5645
    functionDepth: 0
    functionLinenumber: 5645
    functionLinenumberEnd: 5652
    functionName: equalFuncNumberToOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool equalFuncNumberToOffset(const void *elt1, const void *elt2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetNew
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5671,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5675,1
    - Dst: TIFFHashSetNew
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5685,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5689,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5705,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5715,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5726,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5739,1
    - Dst: TIFFHashSetRemove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5743,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5746,1
    - Dst: TIFFHashSetRemove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5750,1
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5754,1
    - Dst: TIFFHashSetInsert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5764,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5766,1
    - Dst: TIFFHashSetInsert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5771,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5773,1
    - Dst: TIFFHashSetSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5783,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5786,1
    - Dst: malloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5793,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5796,1
    - Dst: TIFFHashSetInsert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5804,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5806,1
    - Dst: TIFFHashSetInsert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5810,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5812,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 3
    argNames:
    - tif
    - dirn
    - diroff
    argTypes:
    - TIFF*
    - tdir_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 5818
      start: 5664
    functionDepth: 4
    functionLinenumber: 5664
    functionLinenumberEnd: 5818
    functionName: _TIFFCheckDirNumberAndOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 3
    functionsReached:
    - TIFFHashSetLookup
    - TIFFHashSetInsert
    - TIFFWarningExtR
    - TIFFHashSetNew
    - malloc
    - TIFFHashSetSize
    - TIFFHashSetRemove
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _TIFFCheckDirNumberAndOffset(TIFF *tif, tdir_t dirn, uint64_t diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5843,1
    - Dst: TIFFNumberOfDirectories
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5852,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - tif
    - diroff
    - dirn
    argTypes:
    - TIFF*
    - uint64_t
    - tdir_t*
    constantsTouched: []
    func_position:
      end: 5863
      start: 5827
    functionDepth: 3
    functionLinenumber: 5827
    functionLinenumberEnd: 5863
    functionName: _TIFFGetDirNumberFromOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFHashSetLookup
    - TIFFNumberOfDirectories
    linkageType: ''
    returnType: int
    signature: int _TIFFGetDirNumberFromOffset(TIFF *tif, uint64_t diroff, tdir_t
      *dirn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tif
    - dirn
    - diroff
    argTypes:
    - TIFF*
    - tdir_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 5891
      start: 5872
    functionDepth: 1
    functionLinenumber: 5872
    functionLinenumberEnd: 5891
    functionName: _TIFFGetOffsetFromDirNumber
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFHashSetLookup
    linkageType: ''
    returnType: int
    signature: int _TIFFGetOffsetFromDirNumber(TIFF *tif, tdir_t dirn, uint64_t *diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5912,1
    - Dst: TIFFHashSetLookup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5920,1
    - Dst: TIFFHashSetRemove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5924,1
    - Dst: TIFFHashSetRemove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5926,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tif
    - diroff
    argTypes:
    - TIFF*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 5940
      start: 5899
    functionDepth: 4
    functionLinenumber: 5899
    functionLinenumberEnd: 5940
    functionName: _TIFFRemoveEntryFromDirectoryListByOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFHashSetRemove
    - TIFFHashSetLookup
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int _TIFFRemoveEntryFromDirectoryListByOffset(TIFF *tif, uint64_t diroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5950,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5951,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5960,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tif
    - dir
    - count
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5970
      start: 5946
    functionDepth: 2
    functionLinenumber: 5946
    functionLinenumberEnd: 5970
    functionName: CheckDirCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFFieldWithTag
    - TIFFWarningExtR
    linkageType: ''
    returnType: int
    signature: int CheckDirCount(TIFF *tif, TIFFDirEntry *dir, uint32_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5990,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5995,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5997,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:5999,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6006,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6008,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6014,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6017,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6027,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6029,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6035,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6038,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6046,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6050,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6052,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6054,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6066,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6069,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6074,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6077,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6087,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6107,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6112,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6116,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6119,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6133,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6138,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6142,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6145,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6155,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6166,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6174,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6182,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6183,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6188,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6201,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6204,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6214,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6217,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6223,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6227,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6236,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6240,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6246,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6256,1
    - Dst: TIFFReadUInt64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6257,1
    - Dst: TIFFReadUInt64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6259,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6264,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 175
    argCount: 4
    argNames:
    - tif
    - diroff
    - pdir
    - nextdiroff
    argTypes:
    - TIFF*
    - uint64_t
    - TIFFDirEntry**
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 6267
      start: 5977
    functionDepth: 1
    functionLinenumber: 5977
    functionLinenumberEnd: 6267
    functionName: TIFFFetchDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - TIFFSwabLong
    - TIFFSwabLong8
    - _TIFFfreeExt
    - assert
    - TIFFWarningExtR
    - isMapped
    - SeekOK
    - TIFFSwabShort
    - _TIFFmemcpy
    - _TIFFCheckMalloc
    - ReadOK
    - TIFFReadUInt64
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff,\n                                   TIFFDirEntry
      **pdir, uint64_t *nextdiroff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirectoryFindFieldInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6278,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6281,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6286,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6287,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6290,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6297,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6306,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6307,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6318,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6335,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6338,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6342,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6350,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6356,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6362,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6367,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6371,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6374,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6376,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6385,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6386,1
    - Dst: TIFFReadDirEntryByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6387,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6390,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6398,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6399,1
    - Dst: TIFFReadDirEntrySbyte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6400,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6403,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6411,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6412,1
    - Dst: TIFFReadDirEntryShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6413,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6416,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6424,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6425,1
    - Dst: TIFFReadDirEntrySshort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6426,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6429,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6437,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6438,1
    - Dst: TIFFReadDirEntryLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6439,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6442,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6450,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6451,1
    - Dst: TIFFReadDirEntrySlong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6452,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6455,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6463,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6464,1
    - Dst: TIFFReadDirEntryLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6465,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6468,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6470,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6478,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6479,1
    - Dst: TIFFReadDirEntrySlong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6480,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6483,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6485,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6493,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6494,1
    - Dst: TIFFReadDirEntryFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6495,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6498,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6500,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6508,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6509,1
    - Dst: TIFFReadDirEntryDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6510,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6513,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6515,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6523,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6524,1
    - Dst: TIFFReadDirEntryIfd8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6525,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6528,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6530,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6538,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6539,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6542,1
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6548,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6552,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6553,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6554,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6563,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6564,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6567,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6576,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6579,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6582,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6586,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6588,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6598,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6599,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6602,1
    - Dst: TIFFReadDirEntrySbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6611,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6614,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6617,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6621,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6623,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6633,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6634,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6637,1
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6646,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6649,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6652,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6656,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6658,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6668,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6669,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6672,1
    - Dst: TIFFReadDirEntrySshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6681,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6684,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6687,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6691,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6693,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6703,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6704,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6707,1
    - Dst: TIFFReadDirEntryLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6716,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6719,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6722,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6726,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6728,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6738,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6739,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6742,1
    - Dst: TIFFReadDirEntrySlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6751,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6754,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6757,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6761,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6763,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6773,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6774,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6777,1
    - Dst: TIFFReadDirEntryLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6786,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6789,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6792,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6796,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6798,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6808,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6809,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6812,1
    - Dst: TIFFReadDirEntrySlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6821,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6824,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6827,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6831,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6833,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6843,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6844,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6847,1
    - Dst: TIFFReadDirEntryFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6856,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6859,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6862,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6866,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6868,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6880,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6881,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6884,1
    - Dst: TIFFReadDirEntryDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6893,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6896,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6899,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6903,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6905,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6915,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6916,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6921,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6924,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6927,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6934,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6945,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6950,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6955,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6958,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6961,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6971,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6972,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6977,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6980,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6983,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6987,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:6990,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7000,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7001,1
    - Dst: TIFFReadDirEntrySbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7006,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7009,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7012,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7016,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7019,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7029,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7030,1
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7035,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7038,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7041,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7045,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7048,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7058,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7059,1
    - Dst: TIFFReadDirEntrySshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7064,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7067,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7070,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7074,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7077,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7087,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7088,1
    - Dst: TIFFReadDirEntryLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7093,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7096,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7099,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7103,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7106,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7116,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7117,1
    - Dst: TIFFReadDirEntrySlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7122,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7125,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7128,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7132,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7135,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7145,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7146,1
    - Dst: TIFFReadDirEntryLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7151,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7154,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7157,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7161,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7164,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7174,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7175,1
    - Dst: TIFFReadDirEntrySlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7180,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7183,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7186,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7190,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7193,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7203,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7204,1
    - Dst: TIFFReadDirEntryFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7209,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7212,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7215,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7219,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7222,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7232,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7233,1
    - Dst: TIFFReadDirEntryDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7238,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7241,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7244,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7248,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7251,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7261,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7262,1
    - Dst: TIFFReadDirEntryIfd8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7267,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7270,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7273,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7277,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7280,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7290,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7291,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7292,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7295,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7298,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7305,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7316,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7321,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7326,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7329,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7332,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7342,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7343,1
    - Dst: TIFFReadDirEntryArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7351,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7359,1
    - Dst: TIFFReadDirEntryByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7366,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7371,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7374,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7378,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7380,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7389,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7390,1
    - Dst: TIFFReadDirEntrySbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7391,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7394,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7397,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7401,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7404,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7413,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7414,1
    - Dst: TIFFReadDirEntryShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7415,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7418,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7421,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7425,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7428,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7437,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7438,1
    - Dst: TIFFReadDirEntrySshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7439,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7442,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7445,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7449,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7452,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7461,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7462,1
    - Dst: TIFFReadDirEntryLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7463,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7466,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7469,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7473,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7476,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7485,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7486,1
    - Dst: TIFFReadDirEntrySlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7487,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7490,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7493,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7497,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7500,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7509,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7510,1
    - Dst: TIFFReadDirEntryLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7511,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7514,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7517,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7521,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7524,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7533,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7534,1
    - Dst: TIFFReadDirEntrySlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7535,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7538,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7541,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7545,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7548,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7557,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7558,1
    - Dst: TIFFReadDirEntryFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7559,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7562,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7565,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7569,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7572,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7581,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7582,1
    - Dst: TIFFReadDirEntryDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7583,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7586,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7589,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7593,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7596,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7605,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7606,1
    - Dst: TIFFReadDirEntryIfd8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7607,1
    - Dst: EvaluateIFDdatasizeReading
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7610,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7613,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7617,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7620,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7627,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7632,1
    CyclomaticComplexity: 310
    EdgeCount: 310
    ICount: 951
    argCount: 3
    argNames:
    - tif
    - dp
    - recover
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int
    constantsTouched: []
    func_position:
      end: 7636
      start: 6272
    functionDepth: 5
    functionLinenumber: 6272
    functionLinenumberEnd: 7636
    functionName: TIFFFetchNormalTag
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - TIFFReadDirEntryArray
    - TIFFReadDirEntryDoubleArray
    - _TIFFfreeExt
    - TIFFReadDirEntryLong8
    - assert
    - TIFFReadDirEntryFloatArray
    - TIFFReadDirEntrySlong
    - TIFFReadDirEntrySlongArray
    - TIFFReadDirEntrySlong8Array
    - TIFFErrorExtR
    - TIFFSwabArrayOfLong
    - EvaluateIFDdatasizeReading
    - TIFFReadDirEntryIfd8Array
    - strlen
    - TIFFReadDirEntryLong
    - TIFFReadDirectoryFindFieldInfo
    - TIFFReadDirEntryShortArray
    - TIFFReadDirEntrySlong8
    - _TIFFmemcpy
    - TIFFReadDirEntryByte
    - TIFFReadDirEntryDouble
    - TIFFReadDirEntryLong8Array
    - TIFFReadDirEntryOutputErr
    - TIFFReadDirEntryLongArray
    - TIFFReadDirEntryIfd8
    - TIFFReadDirEntryShort
    - TIFFReadDirEntryByteArray
    - TIFFReadDirEntrySbyte
    - TIFFWarningExtR
    - TIFFReadDirEntryFloat
    - TIFFReadDirEntrySshortArray
    - TIFFSetField
    - TIFFReadDirEntrySbyteArray
    - TIFFReadDirEntrySshort
    linkageType: ''
    returnType: int
    signature: int TIFFFetchNormalTag(TIFF *tif, TIFFDirEntry *dp, int recover)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFReadDirEntryLong8ArrayWithLimit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7648,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7651,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7652,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7659,1
    - Dst: atoi
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7663,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7664,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7670,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7683,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7689,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7693,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7697,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7701,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7703,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - tif
    - dir
    - nstrips
    - lpp
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - uint32_t
    - uint64_t**
    constantsTouched: []
    func_position:
      end: 7710
      start: 7642
    functionDepth: 4
    functionLinenumber: 7642
    functionLinenumberEnd: 7710
    functionName: TIFFFetchStripThing
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - atoi
    - TIFFReadDirEntryLong8ArrayWithLimit
    - _TIFFfreeExt
    - TIFFWarningExtR
    - _TIFFCheckMalloc
    - _TIFFmemcpy
    - TIFFReadDirEntryOutputErr
    - TIFFFieldWithTag
    - _TIFFmemset
    linkageType: ''
    returnType: int
    signature: "int TIFFFetchStripThing(TIFF *tif, TIFFDirEntry *dir, uint32_t nstrips,\n
      \                              uint64_t **lpp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7721,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7722,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7723,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7735,1
    - Dst: TIFFReadDirEntryData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7736,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7748,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7760,1
    - Dst: TIFFReadDirEntryOutputErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7764,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - tif
    - dir
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    constantsTouched: []
    func_position:
      end: 7767
      start: 7715
    functionDepth: 2
    functionLinenumber: 7715
    functionLinenumberEnd: 7767
    functionName: TIFFFetchSubjectDistance
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - TIFFSwabLong
    - TIFFSwabArrayOfLong
    - assert
    - TIFFReadDirEntryData
    - TIFFSetField
    - TIFFReadDirEntryOutputErr
    linkageType: ''
    returnType: int
    signature: int TIFFFetchSubjectDistance(TIFF *tif, TIFFDirEntry *dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7782,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7783,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7784,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7802,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7813,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7815,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7824,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7826,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7848,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7850,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7851,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - tif
    - nstrips
    - stripbytes
    - rowsperstrip
    argTypes:
    - TIFF*
    - uint32_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7858
      start: 7769
    functionDepth: 1
    functionLinenumber: 7769
    functionLinenumberEnd: 7858
    functionName: allocChoppedUpStripArrays
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - TIFFWarningExtR
    - TIFFGetStrileByteCount
    - TIFFSetField
    - _TIFFCheckMalloc
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: void
    signature: "void allocChoppedUpStripArrays(TIFF *tif, uint32_t nstrips,\n                                      uint64_t
      stripbytes,\n                                      uint32_t rowsperstrip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7877,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7883,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7884,1
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7885,1
    - Dst: TIFFVTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7889,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7914,1
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7921,1
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7922,1
    - Dst: allocChoppedUpStripArrays
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7927,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 7928
      start: 7866
    functionDepth: 2
    functionLinenumber: 7866
    functionLinenumberEnd: 7928
    functionName: ChopUpSingleUncompressedStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - allocChoppedUpStripArrays
    - TIFFhowmany_32
    - TIFFGetFileSize
    - assert
    - TIFFVTileSize64
    - TIFFGetStrileByteCount
    - isUpSampled
    linkageType: ''
    returnType: void
    signature: void ChopUpSingleUncompressedStrip(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7948,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7950,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7951,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7952,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7954,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7959,1
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7962,1
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7966,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7978,1
    - Dst: TIFFVStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7979,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7987,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7991,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7992,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:7993,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8006,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8010,1
    - Dst: allocChoppedUpStripArrays
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8028,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 8029
      start: 7936
    functionDepth: 3
    functionLinenumber: 7936
    functionLinenumberEnd: 8029
    functionName: TryChopUpUncompressedBigTiff
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 1
    functionsReached:
    - allocChoppedUpStripArrays
    - TIFFVStripSize64
    - TIFFhowmany_32
    - assert
    - TIFFStripSize64
    - TIFFGetStrileByteCount
    - isUpSampled
    - TIFFGetStrileOffset
    linkageType: ''
    returnType: void
    signature: void TryChopUpUncompressedBigTiff(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - int
    constantsTouched: []
    func_position:
      end: 8035
      start: 8031
    functionDepth: 0
    functionLinenumber: 8031
    functionLinenumberEnd: 8035
    functionName: _TIFFUnsanitizedAddUInt64AndInt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
    signature: TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW _TIFFUnsanitizedAddUInt64AndInt(uint64_t
      a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8062,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8084,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8095,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8102,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8108,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8126,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8131,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8138,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8141,1
    - Dst: _TIFFUnsanitizedAddUInt64AndInt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8150,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8157,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8161,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8167,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8171,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8177,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8181,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8188,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8192,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 4
    argNames:
    - tif
    - dirent
    - strile
    - panVals
    argTypes:
    - TIFF*
    - TIFFDirEntry*
    - int
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 8197
      start: 8041
    functionDepth: 1
    functionLinenumber: 8041
    functionLinenumberEnd: 8197
    functionName: _TIFFPartialReadStripArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - TIFFReadFile
    - TIFFSwabLong
    - TIFFSwabLong8
    - assert
    - SeekOK
    - TIFFSwabShort
    - memcpy
    - _TIFFUnsanitizedAddUInt64AndInt
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int _TIFFPartialReadStripArray(TIFF *tif, TIFFDirEntry *dirent,\n
      \                                     int strile, uint64_t *panVals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8225,1
    - Dst: TIFF_MAX
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8239,1
    - Dst: TIFF_MIN
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8242,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8244,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8250,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8255,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8257,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8267,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8270,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8276,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8278,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8280,1
    - Dst: _TIFFPartialReadStripArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8290,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 4
    argNames:
    - tif
    - strile
    - dirent
    - parray
    argTypes:
    - TIFF*
    - uint32_t
    - TIFFDirEntry*
    - uint64_t**
    constantsTouched: []
    func_position:
      end: 8298
      start: 8199
    functionDepth: 2
    functionLinenumber: 8199
    functionLinenumberEnd: 8298
    functionName: _TIFFFetchStrileValue
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFPartialReadStripArray
    - TIFF_MIN
    - TIFF_MAX
    - assert
    - _TIFFreallocExt
    - _TIFFfreeExt
    - memset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int _TIFFFetchStrileValue(TIFF *tif, uint32_t strile,\n                                 TIFFDirEntry
      *dirent, uint64_t **parray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8316,1
    - Dst: _TIFFFetchStrileValue
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 5
    argNames:
    - tif
    - strile
    - dirent
    - parray
    - pbErr
    argTypes:
    - TIFF*
    - uint32_t
    - TIFFDirEntry*
    - uint64_t**
    - int*
    constantsTouched: []
    func_position:
      end: 8342
      start: 8300
    functionDepth: 3
    functionLinenumber: 8300
    functionLinenumberEnd: 8342
    functionName: _TIFFGetStrileOffsetOrByteCountValue
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 0
    functionsReached:
    - _TIFFFetchStrileValue
    - _TIFFFillStriles
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _TIFFGetStrileOffsetOrByteCountValue(TIFF *tif, uint32_t
      strile,\n                                                     TIFFDirEntry *dirent,\n
      \                                                    uint64_t **parray,\n                                                     int
      *pbErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileOffsetWithErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - strile
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8349
      start: 8346
    functionDepth: 1
    functionLinenumber: 8346
    functionLinenumberEnd: 8349
    functionName: TIFFGetStrileOffset
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 11
    functionsReached:
    - TIFFGetStrileOffsetWithErr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFGetStrileOffset(TIFF *tif, uint32_t strile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetStrileOffsetOrByteCountValue
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - strile
    - pbErr
    argTypes:
    - TIFF*
    - uint32_t
    - int*
    constantsTouched: []
    func_position:
      end: 8359
      start: 8353
    functionDepth: 4
    functionLinenumber: 8353
    functionLinenumberEnd: 8359
    functionName: TIFFGetStrileOffsetWithErr
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - _TIFFGetStrileOffsetOrByteCountValue
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFGetStrileOffsetWithErr(TIFF *tif, uint32_t strile, int
      *pbErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetStrileByteCountWithErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - strile
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8366
      start: 8363
    functionDepth: 1
    functionLinenumber: 8363
    functionLinenumberEnd: 8366
    functionName: TIFFGetStrileByteCount
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 13
    functionsReached:
    - TIFFGetStrileByteCountWithErr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFGetStrileByteCount(TIFF *tif, uint32_t strile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFGetStrileOffsetOrByteCountValue
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - strile
    - pbErr
    argTypes:
    - TIFF*
    - uint32_t
    - int*
    constantsTouched: []
    func_position:
      end: 8376
      start: 8370
    functionDepth: 4
    functionLinenumber: 8370
    functionLinenumberEnd: 8376
    functionName: TIFFGetStrileByteCountWithErr
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - _TIFFGetStrileOffsetOrByteCountValue
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFGetStrileByteCountWithErr(TIFF *tif, uint32_t strile,
      int *pbErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFFillStrilesInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 8378
      start: 8378
    functionDepth: 1
    functionLinenumber: 8378
    functionLinenumberEnd: 8378
    functionName: _TIFFFillStriles
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 4
    functionsReached:
    - _TIFFFillStrilesInternal
    linkageType: ''
    returnType: int
    signature: int _TIFFFillStriles(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8393,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8394,1
    - Dst: TIFFFetchStripThing
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8409,1
    - Dst: TIFFFetchStripThing
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8416,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8422,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c:8423,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - tif
    - loadStripByteCount
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 8444
      start: 8380
    functionDepth: 5
    functionLinenumber: 8380
    functionLinenumberEnd: 8444
    functionName: _TIFFFillStrilesInternal
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirread.c
    functionUses: 2
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmemset
    - TIFFFetchStripThing
    linkageType: ''
    returnType: int
    signature: int _TIFFFillStrilesInternal(TIFF *tif, int loadStripByteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:87,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - data
    - data_size
    - picture
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: TWebPDatasetWriter
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - _TIFFmemcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TWebPDatasetWriter(const uint8_t *data, size_t data_size,\n                              const
      WebPPicture *const picture)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:107,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:110,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:111,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:115,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 123
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 123
    functionName: TWebPEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - assert
    - memcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:129,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:135,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:136,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:140,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:141,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:153,1
    - Dst: WebPGetInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:167,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:173,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:175,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:181,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:183,1
    - Dst: WebPInitDecoderConfig
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:191,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:193,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:195,1
    - Dst: WebPFreeDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:206,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:210,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:212,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:225,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:227,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:245,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:249,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:252,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:253,1
    - Dst: WebPInitDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:262,1
    - Dst: WebPINewDecoder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:280,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:284,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:286,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:295,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:297,1
    - Dst: WebPIAppend
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:301,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:307,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:311,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:315,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:317,1
    - Dst: WebPIDecGetRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:327,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:338,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:340,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:348,1
    - Dst: WebPIDelete
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:360,1
    - Dst: WebPFreeDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:361,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:369,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:371,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 138
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 375
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 375
    functionName: TWebPDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - WebPGetInfo
    - memcpy
    - _TIFFfreeExt
    - WebPFreeDecBuffer
    - assert
    - WebPIAppend
    - WebPIDelete
    - _TIFFmallocExt
    - WebPInitDecBuffer
    - isTiled
    - WebPIDecGetRGB
    - memset
    - WebPINewDecoder
    - WebPInitDecoderConfig
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: TWebPFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:401,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:402,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:413,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:426,1
    - Dst: WebPPictureFree
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:433,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 446
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 446
    functionName: TWebPSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - _TIFFfreeExt
    - assert
    - WebPPictureFree
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:455,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:458,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:460,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:475,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:481,1
    - Dst: WebPIDelete
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:485,1
    - Dst: WebPFreeDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 493
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 493
    functionName: TWebPPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - WebPIDelete
    - assert
    - TIFF*::tif_setupdecode
    - isTiled
    - WebPFreeDecBuffer
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:501,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:502,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:513,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:526,1
    - Dst: WebPIDelete
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:532,1
    - Dst: WebPFreeDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:533,1
    - Dst: WebPPictureInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:541,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:543,1
    - Dst: WebPConfigInitInternal
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:547,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:551,1
    - Dst: WebPValidateConfig
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:568,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:570,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 575
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 575
    functionName: TWebPSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - WebPPictureInit
    - WebPIDelete
    - assert
    - WebPConfigInitInternal
    - EncoderState
    - WebPValidateConfig
    - WebPFreeDecBuffer
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:584,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:589,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:591,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:596,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:611,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:622,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:626,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 640
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 640
    functionName: TWebPPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - assert
    - TIFF*::tif_setupencode
    - _TIFFmallocExt
    - EncoderState
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:649,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:650,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:652,1
    - Dst: WebPPictureImportRGBA
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:659,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:661,1
    - Dst: WebPPictureImportRGB
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:667,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:669,1
    - Dst: WebPEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:673,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:712,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:718,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:720,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:727,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:729,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 734
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 734
    functionName: TWebPPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPictureImportRGB
    - EncoderState
    - TIFFFlushData1
    - WebPEncode
    - WebPPictureImportRGBA
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:738,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:740,1
    - Dst: WebPPictureFree
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:747,1
    - Dst: WebPIDelete
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:752,1
    - Dst: WebPFreeDecBuffer
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:753,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:760,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:764,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 768
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 768
    functionName: TWebPCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - LState
    - WebPIDelete
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - WebPPictureFree
    - WebPFreeDecBuffer
    linkageType: ''
    returnType: void
    signature: void TWebPCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:773,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:778,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:781,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:787,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:794,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:802,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 815
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 815
    functionName: TWebPVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - LState
    - TIFFWarningExtR
    - va_arg
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TWebPVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:819,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:824,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:827,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 836
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 836
    functionName: TWebPVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - LState
    - va_arg
    linkageType: ''
    returnType: int
    signature: int TWebPVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:853,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:858,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:858,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:860,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:867,1
    - Dst: LState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:870,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_webp.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 915
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 915
    functionName: TIFFInitWebP
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_webp.c
    functionUses: 0
    functionsReached:
    - LState
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitWebP(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:40,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:46,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:47,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: PackBitsPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - TIFFScanlineSize
    - isTiled
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int PackBitsPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: PackBitsPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    linkageType: ''
    returnType: int
    signature: int PackBitsPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:107,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:117,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 208
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 208
    functionName: PackBitsEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    linkageType: ''
    returnType: int
    signature: int PackBitsEncode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PackBitsEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: PackBitsEncodeChunk
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached:
    - PackBitsEncode
    linkageType: ''
    returnType: int
    signature: int PackBitsEncodeChunk(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:260,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:268,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:283,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:291,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:296,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:307,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c:308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 313
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 313
    functionName: PackBitsDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached:
    - memset
    - TIFFWarningExtR
    - _TIFFmemcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int PackBitsDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: TIFFInitPackBits
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_packbits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFInitPackBits(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: ThunderSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ThunderSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:133,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:136,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:139,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:144,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:147,1
    - Dst: SETPIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:151,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:160,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:161,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 3
    argNames:
    - tif
    - op0
    - maxpixels
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 170
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 170
    functionName: ThunderDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c
    functionUses: 0
    functionsReached:
    - memset
    - SETPIXEL
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ThunderDecode(TIFF *tif, uint8_t *op0, tmsize_t maxpixels)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:180,1
    - Dst: ThunderDecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: ThunderDecodeRow
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c
    functionUses: 0
    functionsReached:
    - ThunderDecode
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ThunderDecodeRow(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: TIFFInitThunderScan
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_thunder.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFInitThunderScan(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: TIFFGetVersion
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TIFFGetVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - tif
    - x
    - y
    - z
    - s
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: TIFFComputeTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TIFFComputeTile(TIFF *tif, uint32_t x, uint32_t y, uint32_t
      z,\n                         uint16_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:77,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:83,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:90,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - tif
    - x
    - y
    - z
    - s
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 103
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 103
    functionName: TIFFCheckTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 3
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFCheckTile(TIFF *tif, uint32_t x, uint32_t y, uint32_t z, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMultiply32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:125,1
    - Dst: _TIFFMultiply32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:127,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:127,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:128,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:130,1
    - Dst: _TIFFMultiply32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: TIFFNumberOfTiles
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 2
    functionsReached:
    - TIFFhowmany_32
    - _TIFFMultiply32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFNumberOfTiles(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:149,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:154,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:157,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:163,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:166,1
    - Dst: TIFFhowmany8_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:169,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: TIFFTileRowSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 0
    functionsReached:
    - TIFFhowmany8_64
    - _TIFFMultiply64
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFTileRowSize64(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileRowSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:181,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: TIFFTileRowSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 6
    functionsReached:
    - TIFFTileRowSize64
    - _TIFFCastUInt64ToSSize
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFTileRowSize(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:197,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:213,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:220,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:226,1
    - Dst: TIFFhowmany_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:227,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:228,1
    - Dst: TIFFhowmany8_64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:230,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:230,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:233,1
    - Dst: _TIFFMultiply64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:236,1
    - Dst: TIFFTileRowSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:236,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - nrows
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 237
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 237
    functionName: TIFFVTileSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 1
    functionsReached:
    - TIFFhowmany_32
    - TIFFTileRowSize64
    - TIFFhowmany8_64
    - _TIFFMultiply64
    - TIFFGetFieldDefaulted
    - isUpSampled
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFVTileSize64(TIFF *tif, uint32_t nrows)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFVTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:242,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tif
    - nrows
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: TIFFVTileSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 0
    functionsReached:
    - TIFFVTileSize64
    - _TIFFCastUInt64ToSSize
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFVTileSize(TIFF *tif, uint32_t nrows)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFVTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: TIFFTileSize64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 3
    functionsReached:
    - TIFFVTileSize64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TIFFTileSize64(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:257,1
    - Dst: _TIFFCastUInt64ToSSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: TIFFTileSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 12
    functionsReached:
    - _TIFFCastUInt64ToSSize
    - TIFFTileSize64
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t TIFFTileSize(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - tw
    - th
    argTypes:
    - TIFF*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: TIFFDefaultTileSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TIFFDefaultTileSize(TIFF *tif, uint32_t *tw, uint32_t *th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:281,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_tile.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - tif
    - tw
    - th
    argTypes:
    - TIFF*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: _TIFFDefaultTileSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_tile.c
    functionUses: 0
    functionsReached:
    - TIFFroundup_32
    linkageType: ''
    returnType: void
    signature: void _TIFFDefaultTileSize(TIFF *tif, uint32_t *tw, uint32_t *th)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFieldIsAnonymous
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:83,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:94,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:99,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:101,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:103,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:105,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:107,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:109,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:111,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:113,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:119,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:121,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:124,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:126,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:128,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:130,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:132,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:135,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:140,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:145,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:148,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 4
    argNames:
    - fd
    - fip
    - value_count
    - raw_data
    argTypes:
    - FILE*
    - TIFFField*
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 149
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 149
    functionName: _TIFFPrintField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 0
    functionsReached:
    - TIFFFieldIsAnonymous
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void _TIFFPrintField(FILE *fd, const TIFFField *fip,\n                            uint32_t
      value_count, void *raw_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFieldIsAnonymous
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:158,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:168,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:172,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:175,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:187,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:196,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:206,1
    - Dst: fputc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:208,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:209,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:213,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:218,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:223,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 6
    argNames:
    - tif
    - fip
    - fd
    - tag
    - value_count
    - raw_data
    argTypes:
    - TIFF*
    - TIFFField*
    - FILE*
    - uint32_t
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 238
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 238
    functionName: _TIFFPrettyPrintField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 0
    functionsReached:
    - TIFFFieldIsAnonymous
    - fputc
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int _TIFFPrettyPrintField(TIFF *tif, const TIFFField *fip, FILE *fd,\n
      \                                uint32_t tag, uint32_t value_count,\n                                 void
      *raw_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:250,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:252,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:254,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:258,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:263,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:267,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:268,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:271,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:273,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:275,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:276,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:277,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:279,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:281,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:283,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:284,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:285,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:287,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:289,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:291,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:296,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:299,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:302,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:305,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:310,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:312,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:313,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:314,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:315,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:316,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:318,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:322,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:325,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:328,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:331,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:334,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:337,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:340,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:345,1
    - Dst: TIFFFindCODEC
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:347,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:348,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:350,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:352,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:355,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:357,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:359,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:365,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:368,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:371,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:377,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:380,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:387,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:390,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:393,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:396,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:402,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:404,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:408,1
    - Dst: strchr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:413,1
    - Dst: fputs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:416,1
    - Dst: _TIFFprintAsciiBounded
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:417,1
    - Dst: fputs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:420,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:422,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:424,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:426,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:428,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:432,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:435,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:438,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:441,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:446,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:448,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:452,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:455,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:458,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:463,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:465,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:468,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:470,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:474,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:477,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:480,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:485,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:486,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:488,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:490,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:492,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:494,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:497,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:498,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:499,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:501,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:503,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:505,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:507,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:508,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:509,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:510,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:511,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:516,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:518,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:519,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:521,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:526,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:528,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:529,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:531,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:533,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:537,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:540,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:543,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:548,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:549,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:551,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:553,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:556,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:559,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:564,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:566,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:569,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:571,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:575,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:577,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:580,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:585,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:590,1
    - Dst: fputc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:591,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:595,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:597,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:600,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:602,1
    - Dst: fputc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:603,1
    - Dst: TIFFGetTagListCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:613,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:624,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:632,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:638,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:645,1
    - Dst: strcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:660,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:667,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:674,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:683,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:685,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:687,1
    - Dst: _TIFFPrettyPrintField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:700,1
    - Dst: _TIFFPrintField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:702,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:705,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:712,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:716,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:717,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:719,1
    - Dst: TIFFGetStrileOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:720,1
    - Dst: TIFFGetStrileByteCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:721,1
    CyclomaticComplexity: 127
    EdgeCount: 127
    ICount: 322
    argCount: 3
    argNames:
    - tif
    - fd
    - flags
    argTypes:
    - TIFF*
    - FILE*
    - long
    constantsTouched: []
    func_position:
      end: 723
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 723
    functionName: TIFFPrintDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 0
    functionsReached:
    - TIFFGetTagListCount
    - _TIFFfreeExt
    - assert
    - TIFFFieldSet
    - _TIFFPrettyPrintField
    - strcmp
    - TIFFGetStrileByteCount
    - fprintf
    - _TIFFprintAsciiBounded
    - fputs
    - TIFFFindCODEC
    - _TIFFmallocExt
    - TIFFFieldWithTag
    - TIFFGetStrileOffset
    - fputc
    - strchr
    - _TIFFPrintField
    - TIFFGetField
    - isTiled
    linkageType: ''
    returnType: void
    signature: void TIFFPrintDirectory(TIFF *tif, FILE *fd, long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFprintAsciiBounded
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:727,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - cp
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: _TIFFprintAscii
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 0
    functionsReached:
    - _TIFFprintAsciiBounded
    - strlen
    linkageType: ''
    returnType: void
    signature: void _TIFFprintAscii(FILE *fd, const char *cp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:736,1
    - Dst: fputc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:738,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:745,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:747,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - cp
    - max_chars
    argTypes:
    - FILE*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 749
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 749
    functionName: _TIFFprintAsciiBounded
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 2
    functionsReached:
    - fputc
    - isprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _TIFFprintAsciiBounded(FILE *fd, const char *cp, size_t max_chars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:753,1
    - Dst: _TIFFprintAscii
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:754,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_print.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - name
    - value
    argTypes:
    - FILE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: _TIFFprintAsciiTag
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_print.c
    functionUses: 0
    functionsReached:
    - _TIFFprintAscii
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _TIFFprintAsciiTag(FILE *fd, const char *name, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:188,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:199,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:200,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:210,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:215,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:243,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 256
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 256
    functionName: LogL16Decode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - assert
    - _TIFFmemset
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int LogL16Decode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:264,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:272,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:273,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:283,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: LogLuvDecode24
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - assert
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int LogLuvDecode24(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:328,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:329,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:330,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:340,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:345,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:373,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 386
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 386
    functionName: LogLuvDecode32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - assert
    - _TIFFmemset
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int LogLuvDecode32(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:395,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 407
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 407
    functionName: LogLuvDecodeStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFScanlineSize
    linkageType: ''
    returnType: int
    signature: int LogLuvDecodeStrip(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:416,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 428
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 428
    functionName: LogLuvDecodeTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - assert
    linkageType: ''
    returnType: int
    signature: int LogLuvDecodeTile(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:436,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:449,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:450,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:460,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:476,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:514,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 541
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 541
    functionName: LogL16Encode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - TIFFFlushData1
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogL16Encode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:549,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:557,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:558,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:568,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 596
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 596
    functionName: LogLuvEncode24
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - TIFFFlushData1
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogLuvEncode24(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:604,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:617,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:618,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:629,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:646,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:683,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 710
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 710
    functionName: LogLuvEncode32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - TIFFFlushData1
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogLuvEncode32(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:718,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: LogLuvEncodeStrip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFScanlineSize
    linkageType: ''
    returnType: int
    signature: int LogLuvEncodeStrip(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:738,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 750
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 750
    functionName: LogLuvEncodeTile
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - assert
    linkageType: ''
    returnType: int
    signature: int LogLuvEncodeTile(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 788
    functionName: _TIFFRand
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _TIFFRand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFRand
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - m
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 795
    functionName: tiff_itrunc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - _TIFFRand
    linkageType: ''
    returnType: int
    signature: int tiff_itrunc(double x, int m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p16
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 810
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 810
    functionName: LogL16toY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - exp
    linkageType: ''
    returnType: double
    signature: double LogL16toY(int p16)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:823,1
    - Dst: log2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:823,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:825,1
    - Dst: log2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - Y
    - em
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 827
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 827
    functionName: LogL16fromY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - log2
    - tiff_itrunc
    linkageType: ''
    returnType: int
    signature: int LogL16fromY(double Y, int em)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL16toY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 836
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 836
    functionName: L16toY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogL16toY
    linkageType: ''
    returnType: void
    signature: void L16toY(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 850
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 850
    functionName: L16toGry
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: void
    signature: void L16toGry(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL16fromY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 859
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 859
    functionName: L16fromY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogL16fromY
    linkageType: ''
    returnType: void
    signature: void L16fromY(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:874,1
    - Dst: sqrt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:875,1
    - Dst: sqrt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - xyz
    - rgb
    argTypes:
    - float*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 877
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 877
    functionName: XYZtoRGB24
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: void
    signature: void XYZtoRGB24(float *xyz, uint8_t *rgb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p10
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 888
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 888
    functionName: LogL10toY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - exp
    linkageType: ''
    returnType: double
    signature: double LogL10toY(int p10)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:901,1
    - Dst: log2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - Y
    - em
    argTypes:
    - double
    - int
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: LogL10fromY
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - log2
    - tiff_itrunc
    linkageType: ''
    returnType: int
    signature: int LogL10fromY(double Y, int em)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uv2ang
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:929,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:931,1
    - Dst: uv2ang
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:956,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - u
    - v
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 958
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 958
    functionName: oog_encode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - fabs
    - uv2ang
    linkageType: ''
    returnType: int
    signature: int oog_encode(double u, double v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oog_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:980,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:981,1
    - Dst: oog_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:983,1
    - Dst: oog_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:985,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:986,1
    - Dst: oog_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:988,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - u
    - v
    - em
    argTypes:
    - double
    - double
    - int
    constantsTouched: []
    func_position:
      end: 991
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 991
    functionName: uv_encode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - oog_encode
    - tiff_itrunc
    linkageType: ''
    returnType: int
    signature: int uv_encode(double u, double v, int em)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - up
    - vp
    - c
    argTypes:
    - double*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 1026
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1026
    functionName: uv_decode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uv_decode(double *up, double *vp, int c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL10toY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1037,1
    - Dst: uv_decode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - p
    - XYZ
    argTypes:
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1057
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1057
    functionName: LogLuv24toXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - uv_decode
    - LogL10toY
    linkageType: ''
    returnType: void
    signature: void LogLuv24toXYZ(uint32_t p, float *XYZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL10fromY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1068,1
    - Dst: uv_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1081,1
    - Dst: uv_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - XYZ
    - em
    argTypes:
    - float*
    - int
    constantsTouched: []
    func_position:
      end: 1086
      start: 1062
    functionDepth: 3
    functionLinenumber: 1062
    functionLinenumberEnd: 1086
    functionName: LogLuv24fromXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - LogL10fromY
    - uv_encode
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t LogLuv24fromXYZ(float *XYZ, int em)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv24toXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1099
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1099
    functionName: Luv24toXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogLuv24toXYZ
    linkageType: ''
    returnType: void
    signature: void Luv24toXYZ(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uv_decode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1120
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1120
    functionName: Luv24toLuv48
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - uv_decode
    linkageType: ''
    returnType: void
    signature: void Luv24toLuv48(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv24toXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1131,1
    - Dst: XYZtoRGB24
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1135
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1135
    functionName: Luv24toRGB
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - LogLuv24toXYZ
    - XYZtoRGB24
    linkageType: ''
    returnType: void
    signature: void Luv24toRGB(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv24fromXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1147
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1147
    functionName: Luv24fromXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogLuv24fromXYZ
    linkageType: ''
    returnType: void
    signature: void Luv24fromXYZ(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1165,1
    - Dst: uv_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1167,1
    - Dst: uv_encode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1174
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1174
    functionName: Luv24fromLuv48
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - tiff_itrunc
    - uv_encode
    linkageType: ''
    returnType: void
    signature: void Luv24fromLuv48(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL16toY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - p
    - XYZ
    argTypes:
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1200
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1200
    functionName: LogLuv32toXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - LogL16toY
    linkageType: ''
    returnType: void
    signature: void LogLuv32toXYZ(uint32_t p, float *XYZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogL16fromY
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1211,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1227,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - XYZ
    - em
    argTypes:
    - float*
    - int
    constantsTouched: []
    func_position:
      end: 1238
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1238
    functionName: LogLuv32fromXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - tiff_itrunc
    - LogL16fromY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t LogLuv32fromXYZ(float *XYZ, int em)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv32toXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1250
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1250
    functionName: Luv32toXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogLuv32toXYZ
    linkageType: ''
    returnType: void
    signature: void Luv32toXYZ(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1268
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1268
    functionName: Luv32toLuv48
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Luv32toLuv48(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv32toXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1279,1
    - Dst: XYZtoRGB24
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1283
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1283
    functionName: Luv32toRGB
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - LogLuv32toXYZ
    - XYZtoRGB24
    linkageType: ''
    returnType: void
    signature: void Luv32toRGB(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLuv32fromXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1295
      start: 1285
    functionDepth: 4
    functionLinenumber: 1285
    functionLinenumberEnd: 1295
    functionName: Luv32fromXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 1
    functionsReached:
    - LogLuv32fromXYZ
    linkageType: ''
    returnType: void
    signature: void Luv32fromXYZ(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1317,1
    - Dst: tiff_itrunc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1324
      start: 1297
    functionDepth: 2
    functionLinenumber: 1297
    functionLinenumberEnd: 1324
    functionName: Luv32fromLuv48
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - tiff_itrunc
    linkageType: ''
    returnType: void
    signature: void Luv32fromLuv48(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sp
    - op
    - n
    argTypes:
    - LogLuvState*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1331
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1331
    functionName: _logLuvNop
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _logLuvNop(LogLuvState *sp, uint8_t *op, tmsize_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1337,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1339,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1341,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1342,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1343,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1345,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - td
    argTypes:
    - TIFFDirectory*
    constantsTouched: []
    func_position:
      end: 1351
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1351
    functionName: LogL16GuessDataFmt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - PACK
    linkageType: ''
    returnType: int
    signature: int LogL16GuessDataFmt(TIFFDirectory *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 1356
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1356
    functionName: multiply_ms
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 2
    functionsReached:
    - _TIFFMultiplySSize
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t multiply_ms(tmsize_t m1, tmsize_t m2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1362,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1364,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1365,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1369,1
    - Dst: LogL16GuessDataFmt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1377,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1390,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1394,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1395,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1397,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1399,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1400,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1401,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1408
    functionName: LogL16InitState
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - assert
    - multiply_ms
    - _TIFFmallocExt
    - isTiled
    - LogL16GuessDataFmt
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogL16InitState(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1419,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1421,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1424,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1425,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1426,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1429,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1430,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1431,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1434,1
    - Dst: PACK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - td
    argTypes:
    - TIFFDirectory*
    constantsTouched: []
    func_position:
      end: 1461
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1461
    functionName: LogLuvGuessDataFmt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - PACK
    linkageType: ''
    returnType: int
    signature: int LogLuvGuessDataFmt(TIFFDirectory *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1467,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1469,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1470,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1475,1
    - Dst: LogLuvGuessDataFmt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1480,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1496,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1501,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1502,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1504,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1506,1
    - Dst: multiply_ms
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1507,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1508,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1511,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1515
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1515
    functionName: LogLuvInitState
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - LogLuvGuessDataFmt
    - DecoderState
    - assert
    - multiply_ms
    - _TIFFmallocExt
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogLuvInitState(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1521
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1521
    functionName: LogLuvFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LogLuvFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1526,1
    - Dst: LogLuvInitState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1533,1
    - Dst: LogL16InitState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1569,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1583,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1590
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1590
    functionName: LogLuvSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    - LogL16InitState
    - LogLuvInitState
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int LogLuvSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1595,1
    - Dst: LogLuvInitState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1601,1
    - Dst: LogL16InitState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1639,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1654,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1663,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1667
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1667
    functionName: LogLuvSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - LogL16InitState
    - LogLuvInitState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogLuvSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1692
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1692
    functionName: LogLuvClose
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void LogLuvClose(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1698,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1704,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1705,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1709
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1709
    functionName: LogLuvCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - _TIFFSetDefaultCompressionState
    - _TIFFfreeExt
    - assert
    linkageType: ''
    returnType: void
    signature: void LogLuvCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1714,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1720,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1740,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1747,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1753,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1754,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1758,1
    - Dst: TIFFTileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1758,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1759,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1762,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1766,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1775
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1775
    functionName: LogLuvVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - TIFFTileSize
    - va_arg
    - TIFFSetField
    - isTiled
    - TIFFScanlineSize
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LogLuvVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1789
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1789
    functionName: LogLuvVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: int LogLuvVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1802,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1807,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1807,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1809,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1816,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1820,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_luv.c:1851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1854
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1854
    functionName: TIFFInitSGILog
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_luv.c
    functionUses: 0
    functionsReached:
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitSGILog(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: DumpFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DumpFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c:52,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c:59,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - tif
    - pp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 68
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 68
    functionName: DumpModeEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c
    functionUses: 0
    functionsReached:
    - TIFFFlushData1
    - _TIFFmemcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int DumpModeEncode(TIFF *tif, uint8_t *pp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c:79,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: DumpModeDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c
    functionUses: 0
    functionsReached:
    - _TIFFmemcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int DumpModeDecode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tif
    - nrows
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: DumpModeSeek
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DumpModeSeek(TIFF *tif, uint32_t nrows)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: TIFFInitDumpMode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dumpmode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TIFFInitDumpMode(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ret
    argTypes:
    - lzma_ret
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: LZMAStrerror
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *LZMAStrerror(lzma_ret ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: LZMAFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LZMAFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMADecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:111,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:113,1
    - Dst: lzma_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: LZMASetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - assert
    - lzma_end
    - LZMADecoderState
    linkageType: ''
    returnType: int
    signature: int LZMASetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMADecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:132,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:136,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:139,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:145,1
    - Dst: lzma_stream_decoder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:154,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:157,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 165
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: LZMAPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - LZMAStrerror
    - lzma_stream_decoder
    - assert
    - LZMADecoderState
    - TIFF*::tif_setupdecode
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMAPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMADecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:170,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:173,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:174,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:178,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:179,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:195,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:196,1
    - Dst: lzma_code
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:210,1
    - Dst: lzma_stream_decoder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:216,1
    - Dst: lzma_memusage
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:216,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:220,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:221,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:223,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:232,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:234,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:241,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:242,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 253
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 253
    functionName: LZMADecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - lzma_memusage
    - LZMAStrerror
    - lzma_stream_decoder
    - assert
    - lzma_code
    - LZMADecoderState
    - memset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMADecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMAEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:257,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:259,1
    - Dst: lzma_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: LZMASetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - assert
    - LZMAEncoderState
    - lzma_end
    linkageType: ''
    returnType: int
    signature: int LZMASetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMAEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:276,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:280,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:282,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:288,1
    - Dst: lzma_stream_encoder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:292,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:295,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 300
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 300
    functionName: LZMAPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - LZMAStrerror
    - assert
    - TIFF*::tif_setupencode
    - LZMAEncoderState
    - lzma_stream_encoder
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMAPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMAEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:308,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:310,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:311,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:318,1
    - Dst: lzma_code
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:324,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:327,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:329,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: LZMAEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - LZMAStrerror
    - assert
    - lzma_code
    - TIFFFlushData1
    - LZMAEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMAEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMAEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:354,1
    - Dst: lzma_code
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:360,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:369,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:380,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 386
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 386
    functionName: LZMAPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - LZMAStrerror
    - lzma_code
    - TIFFFlushData1
    - LZMAEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMAPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLZMAState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:390,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:392,1
    - Dst: TIFFPredictorCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:394,1
    - Dst: lzma_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:401,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:404,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 408
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 408
    functionName: LZMACleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorCleanup
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - lzma_end
    - GetLZMAState
    linkageType: ''
    returnType: void
    signature: void LZMACleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLZMAState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:413,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:418,1
    - Dst: lzma_lzma_preset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:419,1
    - Dst: lzma_stream_encoder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:423,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:426,1
    - Dst: LZMAStrerror
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 435
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 435
    functionName: LZMAVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - LZMAStrerror
    - lzma_lzma_preset
    - va_arg
    - lzma_stream_encoder
    - GetLZMAState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LZMAVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLZMAState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:439,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: LZMAVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - GetLZMAState
    - va_arg
    linkageType: ''
    returnType: int
    signature: int LZMAVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:464,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:469,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:469,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:471,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:478,1
    - Dst: GetLZMAState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:481,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:482,1
    - Dst: lzma_lzma_preset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:509,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:535,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 540
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 540
    functionName: TIFFInitLZMA
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lzma.c
    functionUses: 0
    functionsReached:
    - TIFFPredictorInit
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - lzma_lzma_preset
    - GetLZMAState
    - memcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitLZMA(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: ZSTDFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTDFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:72,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:74,1
    - Dst: ZSTD_freeCStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: ZSTDSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDDecoderState
    - assert
    - ZSTD_freeCStream
    linkageType: ''
    returnType: int
    signature: int ZSTDSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:94,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:98,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:101,1
    - Dst: ZSTD_createDStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:105,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:108,1
    - Dst: ZSTD_initDStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:113,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:114,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:116,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: ZSTDPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - assert
    - TIFF*::tif_setupdecode
    - ZSTD_isError
    - ZSTD_initDStream
    - ZSTDDecoderState
    - ZSTD_createDStream
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:127,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:133,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:134,1
    - Dst: ZSTD_decompressStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:146,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:147,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:149,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:150,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:151,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:159,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 171
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 171
    functionName: ZSTDDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - assert
    - ZSTD_isError
    - ZSTD_decompressStream
    - memset
    - ZSTDDecoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:175,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:177,1
    - Dst: ZSTD_freeDStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: ZSTDSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDEncoderState
    - assert
    - ZSTD_freeDStream
    linkageType: ''
    returnType: int
    signature: int ZSTDSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:195,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:199,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:201,1
    - Dst: ZSTD_createCStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:205,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:208,1
    - Dst: ZSTD_initCStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:213,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:214,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:216,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 226
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 226
    functionName: ZSTDPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - ZSTD_initCStream
    - ZSTD_createCStream
    - assert
    - TIFF*::tif_setupencode
    - ZSTD_isError
    - ZSTDEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:234,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:238,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:239,1
    - Dst: ZSTD_compressStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:250,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:251,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:253,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:254,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 268
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 268
    functionName: ZSTDEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - assert
    - ZSTD_isError
    - TIFFFlushData1
    - ZSTDEncoderState
    - ZSTD_compressStream
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:276,1
    - Dst: ZSTD_endStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:281,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:282,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:284,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:285,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: ZSTDPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - ZSTD_isError
    - TIFFFlushData1
    - ZSTD_endStream
    - ZSTDEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZSTDState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:302,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:304,1
    - Dst: TIFFPredictorCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:306,1
    - Dst: ZSTD_freeDStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:313,1
    - Dst: ZSTD_freeCStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:318,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:321,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: ZSTDCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - GetZSTDState
    - TIFFPredictorCleanup
    - _TIFFfreeExt
    - assert
    - ZSTD_freeDStream
    - _TIFFSetDefaultCompressionState
    - ZSTD_freeCStream
    linkageType: ''
    returnType: void
    signature: void ZSTDCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZSTDState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:330,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:335,1
    - Dst: ZSTD_maxCLevel
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:337,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:339,1
    - Dst: ZSTD_maxCLevel
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 348
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 348
    functionName: ZSTDVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - GetZSTDState
    - va_arg
    - ZSTD_maxCLevel
    - TIFFWarningExtR
    linkageType: ''
    returnType: int
    signature: int ZSTDVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetZSTDState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:352,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: ZSTDVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - GetZSTDState
    - va_arg
    linkageType: ''
    returnType: int
    signature: int ZSTDVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:376,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:381,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:381,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:383,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:390,1
    - Dst: GetZSTDState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:393,1
    - Dst: TIFFPredictorInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:431,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 436
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 436
    functionName: TIFFInitZSTD
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_zstd.c
    functionUses: 0
    functionsReached:
    - GetZSTDState
    - TIFFPredictorInit
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitZSTD(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCIELab16ToXYZ
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - cielab
    - l
    - a
    - b
    - X
    - Y
    - Z
    argTypes:
    - TIFFCIELabToRGB*
    - uint32_t
    - int32_t
    - int32_t
    - float*
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: TIFFCIELabToXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 1
    functionsReached:
    - TIFFCIELab16ToXYZ
    linkageType: ''
    returnType: void
    signature: "void TIFFCIELabToXYZ(TIFFCIELabToRGB *cielab, uint32_t l, int32_t
      a, int32_t b,\n                     float *X, float *Y, float *Z)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - cielab
    - l
    - a
    - b
    - X
    - Y
    - Z
    argTypes:
    - TIFFCIELabToRGB*
    - uint32_t
    - int32_t
    - int32_t
    - float*
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 83
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 83
    functionName: TIFFCIELab16ToXYZ
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFCIELab16ToXYZ(TIFFCIELabToRGB *cielab, uint32_t l, int32_t
      a,\n                       int32_t b, float *X, float *Y, float *Z)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFmax
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:102,1
    - Dst: TIFFmax
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:103,1
    - Dst: TIFFmax
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:104,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:107,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:108,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:109,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:113,1
    - Dst: RINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:114,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:117,1
    - Dst: RINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:118,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:121,1
    - Dst: RINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:122,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:125,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:126,1
    - Dst: TIFFmin
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 7
    argNames:
    - cielab
    - X
    - Y
    - Z
    - r
    - g
    - b
    argTypes:
    - TIFFCIELabToRGB*
    - float
    - float
    - float
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 128
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 128
    functionName: TIFFXYZToRGB
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 2
    functionsReached:
    - TIFFmax
    - TIFFmin
    - RINT
    linkageType: ''
    returnType: void
    signature: "void TIFFXYZToRGB(TIFFCIELabToRGB *cielab, float X, float Y, float
      Z,\n                  uint32_t *r, uint32_t *g, uint32_t *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:143,1
    - Dst: pow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:152,1
    - Dst: pow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:162,1
    - Dst: pow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - cielab
    - display
    - refWhite
    argTypes:
    - TIFFCIELabToRGB*
    - TIFFDisplay*
    - float*
    constantsTouched: []
    func_position:
      end: 181
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 181
    functionName: TIFFCIELabToRGBInit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 1
    functionsReached:
    - _TIFFmemcpy
    - pow
    linkageType: ''
    returnType: int
    signature: "int TIFFCIELabToRGBInit(TIFFCIELabToRGB *cielab, const TIFFDisplay
      *display,\n                        float *refWhite)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HICLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:205,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:206,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:207,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:210,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:213,1
    - Dst: CLAMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - ycbcr
    - Y
    - Cb
    - Cr
    - r
    - g
    - b
    argTypes:
    - TIFFYCbCrToRGB*
    - uint32_t
    - int32_t
    - int32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: TIFFYCbCrtoRGB
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 1
    functionsReached:
    - CLAMP
    - HICLAMP
    linkageType: ''
    returnType: void
    signature: "void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *ycbcr, uint32_t Y, int32_t Cb,
      int32_t Cr,\n                    uint32_t *r, uint32_t *g, uint32_t *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - v
    - vmin
    - vmax
    argTypes:
    - float
    - float
    - float
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: CLAMPw
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float CLAMPw(float v, float vmin, float vmax)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:262,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:263,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:267,1
    - Dst: CLAMPw
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:309,1
    - Dst: Code2V
      Src: /src/gdal/frmts/gtiff/libtiff/tif_color.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - ycbcr
    - luma
    - refBlackWhite
    argTypes:
    - TIFFYCbCrToRGB*
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 316
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 316
    functionName: TIFFYCbCrToRGBInit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_color.c
    functionUses: 1
    functionsReached:
    - Code2V
    - _TIFFmemset
    - TIFFroundup_32
    - CLAMPw
    linkageType: ''
    returnType: int
    signature: int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB *ycbcr, float *luma, float *refBlackWhite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:173,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:176,1
    - Dst: TIFFGetBitRevTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 201
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 201
    functionName: Fax3PreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFGetBitRevTable
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int Fax3PreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:212,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:215,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - tif
    - line
    - a0
    argTypes:
    - char*
    - TIFF*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: Fax3Unexpected
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void Fax3Unexpected(const char *module, TIFF *tif, uint32_t line,\n
      \                          uint32_t a0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:228,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:231,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - tif
    - line
    - a0
    argTypes:
    - char*
    - TIFF*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: Fax3Extension
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void Fax3Extension(const char *module, TIFF *tif, uint32_t line,\n
      \                         uint32_t a0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:239,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:243,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - tif
    - line
    - a0
    - lastx
    argTypes:
    - char*
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: Fax3BadLength
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    - isTiled
    linkageType: ''
    returnType: void
    signature: "void Fax3BadLength(const char *module, TIFF *tif, uint32_t line,\n
      \                         uint32_t a0, uint32_t lastx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:257,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:260,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - tif
    - line
    - a0
    argTypes:
    - char*
    - TIFF*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: Fax3PrematureEOF
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    - isTiled
    linkageType: ''
    returnType: void
    signature: "void Fax3PrematureEOF(const char *module, TIFF *tif, uint32_t line,\n
      \                            uint32_t a0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:277,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:280,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:285,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:288,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:293,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tif
    - module
    - sp
    argTypes:
    - TIFF*
    - char*
    - Fax3CodecState*
    constantsTouched: []
    func_position:
      end: 301
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 301
    functionName: CheckReachedCounters
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int CheckReachedCounters(TIFF *tif, const char *module,\n                                Fax3CodecState
      *sp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:312,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:316,1
    - Dst: CheckReachedCounters
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:319,1
    - Dst: CACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:321,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:329,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:330,1
    - Dst: fflush
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:331,1
    - Dst: SYNC_EOL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:333,1
    - Dst: EXPAND1D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:334,1
    - Dst: CLEANUP_RUNS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:341,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:344,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 349
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 349
    functionName: Fax3Decode1D
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - CACHE_STATE
    - UNCACHE_STATE
    - fflush
    - EXPAND1D
    - CheckReachedCounters
    - SYNC_EOL
    - DECLARE_STATE
    - CLEANUP_RUNS
    - printf
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax3Decode1D(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_STATE_2D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:363,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:368,1
    - Dst: CheckReachedCounters
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:371,1
    - Dst: CACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:373,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:380,1
    - Dst: SYNC_EOL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:383,1
    - Dst: NeedBits8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:384,1
    - Dst: GetBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:385,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:386,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:388,1
    - Dst: fflush
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:390,1
    - Dst: EXPAND1D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:395,1
    - Dst: EXPAND2D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:397,1
    - Dst: SETVALUE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:401,1
    - Dst: CLEANUP_RUNS
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:409,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:412,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 417
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 417
    functionName: Fax3Decode2D
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - CACHE_STATE
    - UNCACHE_STATE
    - fflush
    - EXPAND1D
    - NeedBits8
    - GetBits
    - EXPAND2D
    - ClrBits
    - DECLARE_STATE_2D
    - CheckReachedCounters
    - SYNC_EOL
    - CLEANUP_RUNS
    - printf
    - SETVALUE
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax3Decode2D(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:474,1
    - Dst: ZERO
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:485,1
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:516,1
    - Dst: FILL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:527,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:539,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 4
    argNames:
    - buf
    - runs
    - erun
    - lastx
    argTypes:
    - unsigned char*
    - uint32_t*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 540
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 540
    functionName: _TIFFFax3fillruns
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - ZERO
    - assert
    - FILL
    - isAligned
    linkageType: ''
    returnType: void
    signature: "void _TIFFFax3fillruns(unsigned char *buf, uint32_t *runs, uint32_t
      *erun,\n                       uint32_t lastx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 548
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 548
    functionName: Fax3FixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Fax3FixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:561,1
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:563,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:569,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:576,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:585,1
    - Dst: TIFFTileRowSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:587,1
    - Dst: TIFFScanlineSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:592,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:597,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:618,1
    - Dst: TIFFroundup_32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:621,1
    - Dst: TIFFSafeMultiply
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:624,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:628,1
    - Dst: return
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 632
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 632
    functionName: Fax3SetupState
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - TIFFTileRowSize
    - TIFFroundup_32
    - Fax3State
    - _TIFFfreeExt
    - return
    - isTiled
    - TIFFScanlineSize
    - TIFFSafeMultiply
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax3SetupState(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:729,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tif
    - bits
    - length
    argTypes:
    - TIFF*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 738
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 738
    functionName: Fax3PutBits
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - _PutBits
    linkageType: ''
    returnType: int
    signature: int Fax3PutBits(TIFF *tif, unsigned int bits, unsigned int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:766,1
    - Dst: DEBUG_PRINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:777,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:779,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:785,1
    - Dst: DEBUG_PRINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:789,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:791,1
    - Dst: DEBUG_PRINT
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:797,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - tif
    - span
    - tab
    argTypes:
    - TIFF*
    - int32_t
    - tableentry*
    constantsTouched: []
    func_position:
      end: 805
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 805
    functionName: putspan
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - assert
    - _PutBits
    - DEBUG_PRINT
    linkageType: ''
    returnType: int
    signature: int putspan(TIFF *tif, int32_t span, const tableentry *tab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:815,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:835,1
    - Dst: is2DEncoding
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:840,1
    - Dst: _PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 851
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 851
    functionName: Fax3PutEOL
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - is2DEncoding
    - _PutBits
    linkageType: ''
    returnType: int
    signature: int Fax3PutEOL(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:858,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:861,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:871,1
    - Dst: is2DEncoding
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 894
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 894
    functionName: Fax3PreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - is2DEncoding
    - assert
    - _TIFFmemset
    linkageType: ''
    returnType: int
    signature: int Fax3PreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:967,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - bp
    - bs
    - be
    argTypes:
    - unsigned char*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1004
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 1004
    functionName: find0span
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - isAligned
    linkageType: ''
    returnType: int32_t
    signature: int32_t find0span(unsigned char *bp, int32_t bs, int32_t be)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1035,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - bp
    - bs
    - be
    argTypes:
    - unsigned char*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1073
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1073
    functionName: find1span
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - isAligned
    linkageType: ''
    returnType: int32_t
    signature: int32_t find1span(unsigned char *bp, int32_t bs, int32_t be)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1097,1
    - Dst: find0span
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1103,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1104,1
    - Dst: find1span
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1109,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1110,1
    - Dst: Fax3FlushBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1119,1
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1121,1
    - Dst: Fax3FlushBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - tif
    - bp
    - bits
    argTypes:
    - TIFF*
    - unsigned char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1125
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1125
    functionName: Fax3Encode1DRow
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - find1span
    - Fax3FlushBits
    - EncoderState
    - putspan
    - find0span
    - isAligned
    linkageType: ''
    returnType: int
    signature: int Fax3Encode1DRow(TIFF *tif, unsigned char *bp, uint32_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: finddiff2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1154,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1154,1
    - Dst: finddiff2
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1167,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1167,1
    - Dst: putcode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1168,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1170,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1172,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1174,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1179,1
    - Dst: putspan
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1181,1
    - Dst: putcode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1188,1
    - Dst: putcode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1195,1
    - Dst: finddiff
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1201,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1201,1
    - Dst: finddiff
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1202,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1202,1
    - Dst: finddiff
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1203,1
    - Dst: PIXEL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1203,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - tif
    - bp
    - rp
    - bits
    argTypes:
    - TIFF*
    - unsigned char*
    - unsigned char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1207
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1207
    functionName: Fax3Encode2DRow
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - PIXEL
    - finddiff
    - putspan
    - putcode
    - finddiff2
    linkageType: ''
    returnType: int
    signature: "int Fax3Encode2DRow(TIFF *tif, unsigned char *bp, unsigned char *rp,\n
      \                          uint32_t bits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1215,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1219,1
    - Dst: Fax3PutEOL
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1226,1
    - Dst: is2DEncoding
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1229,1
    - Dst: Fax3Encode1DRow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1233,1
    - Dst: Fax3Encode2DRow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1239,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1249,1
    - Dst: Fax3Encode1DRow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1260
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1260
    functionName: Fax3Encode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - Fax3Encode2DRow
    - EncoderState
    - _TIFFmemcpy
    - Fax3Encode1DRow
    - is2DEncoding
    - Fax3PutEOL
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax3Encode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1264,1
    - Dst: Fax3FlushBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1269
    functionName: Fax3PostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - Fax3FlushBits
    linkageType: ''
    returnType: int
    signature: int Fax3PostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1273,1
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1275,1
    - Dst: is2DEncoding
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1280,1
    - Dst: Fax3PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1286,1
    - Dst: Fax3FlushBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1290
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1290
    functionName: _Fax3Close
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - Fax3State
    - Fax3FlushBits
    - EncoderState
    - Fax3PutBits
    - is2DEncoding
    linkageType: ''
    returnType: int
    signature: int _Fax3Close(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _Fax3Close
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1292
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1292
    functionName: Fax3Close
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 1
    functionsReached:
    - _Fax3Close
    linkageType: ''
    returnType: void
    signature: void Fax3Close(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1296,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1298,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1305,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1307,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1309,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1313
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1313
    functionName: Fax3Cleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - _TIFFSetDefaultCompressionState
    - _TIFFfreeExt
    - assert
    - DecoderState
    linkageType: ''
    returnType: void
    signature: void Fax3Cleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1343,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1346,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1347,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1352,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1355,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1355,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1360,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1365,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1368,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1371,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1374,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1380,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1387
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1387
    functionName: Fax3VSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - Fax3State
    - assert
    - TIFFSetFieldBit
    - va_arg
    - TIFFFieldWithTag
    - DecoderState
    linkageType: ''
    returnType: int
    signature: int Fax3VSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1391,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1393,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1398,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1401,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1401,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1405,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1408,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1411,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1420
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1420
    functionName: Fax3VGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - va_arg
    - assert
    - DecoderState
    - Fax3State
    linkageType: ''
    returnType: int
    signature: int Fax3VGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1424,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1426,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1429,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1434,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1436,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1441,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1444,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1449,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1453,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1455,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1458,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1460,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1464,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1467,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1470,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1473,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1476,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1477,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1478,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1479,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - tif
    - fd
    - flags
    argTypes:
    - TIFF*
    - FILE*
    - long
    constantsTouched: []
    func_position:
      end: 1483
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1483
    functionName: Fax3PrintDir
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFFieldSet
    - fprintf
    - Fax3State
    linkageType: ''
    returnType: void
    signature: void Fax3PrintDir(TIFF *tif, FILE *fd, long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1493,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1493,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1495,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1503,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1507,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1510,1
    - Dst: Fax3State
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1512,1
    - Dst: DecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1528,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1529,1
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1551
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1551
    functionName: InitCCITTFax3
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - DecoderState
    - Fax3State
    - _TIFFMergeFields
    - _TIFFmallocExt
    - TIFFArrayCount
    - EncoderState
    - TIFFSetField
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int InitCCITTFax3(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCCITTFax3
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1556,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1561,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1561,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1563,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1575
      start: 1553
    functionDepth: 3
    functionLinenumber: 1553
    functionLinenumberEnd: 1575
    functionName: TIFFInitCCITTFax3
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - InitCCITTFax3
    - _TIFFMergeFields
    - TIFFArrayCount
    - TIFFSetField
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitCCITTFax3(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_STATE_2D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1594,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1598,1
    - Dst: CheckReachedCounters
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1601,1
    - Dst: CACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1603,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1613,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1614,1
    - Dst: fflush
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1615,1
    - Dst: EXPAND2D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1617,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1622,1
    - Dst: SETVALUE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1629,1
    - Dst: NeedBits16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1636,1
    - Dst: GetBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1639,1
    - Dst: fputs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1640,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1642,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1645,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1652,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1659
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1659
    functionName: Fax4Decode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - fputs
    - CACHE_STATE
    - UNCACHE_STATE
    - fflush
    - GetBits
    - EXPAND2D
    - NeedBits16
    - DECLARE_STATE_2D
    - CheckReachedCounters
    - ClrBits
    - printf
    - SETVALUE
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax4Decode(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1668,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1672,1
    - Dst: Fax3Encode2DRow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1677,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1684
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1684
    functionName: Fax4Encode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - _TIFFmemcpy
    - Fax3Encode2DRow
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax4Encode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1688,1
    - Dst: Fax3PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1691,1
    - Dst: Fax3PutBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1692,1
    - Dst: Fax3FlushBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1696
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1696
    functionName: Fax4PostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - EncoderState
    - Fax3PutBits
    - Fax3FlushBits
    linkageType: ''
    returnType: int
    signature: int Fax4PostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCCITTFax3
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1701,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1706,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1706,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1708,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1727
      start: 1698
    functionDepth: 3
    functionLinenumber: 1698
    functionLinenumberEnd: 1727
    functionName: TIFFInitCCITTFax4
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - InitCCITTFax3
    - _TIFFMergeFields
    - TIFFArrayCount
    - TIFFSetField
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitCCITTFax4(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1739,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1744,1
    - Dst: CheckReachedCounters
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1747,1
    - Dst: CACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1749,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1757,1
    - Dst: printf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1758,1
    - Dst: fflush
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1759,1
    - Dst: EXPAND1D
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1761,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1769,1
    - Dst: ClrBits
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1774,1
    - Dst: isAligned
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1775,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1784,1
    - Dst: UNCACHE_STATE
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - tif
    - buf
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1789
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1789
    functionName: Fax3DecodeRLE
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 1
    functionsReached:
    - CACHE_STATE
    - UNCACHE_STATE
    - fflush
    - EXPAND1D
    - ClrBits
    - CheckReachedCounters
    - DECLARE_STATE
    - printf
    - isAligned
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int Fax3DecodeRLE(TIFF *tif, uint8_t *buf, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCCITTFax3
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1794,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1807
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1807
    functionName: TIFFInitCCITTRLE
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - InitCCITTFax3
    - TIFFSetField
    linkageType: ''
    returnType: int
    signature: int TIFFInitCCITTRLE(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCCITTFax3
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1812,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1825
      start: 1809
    functionDepth: 3
    functionLinenumber: 1809
    functionLinenumberEnd: 1825
    functionName: TIFFInitCCITTRLEW
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_fax3.c
    functionUses: 0
    functionsReached:
    - InitCCITTFax3
    - TIFFSetField
    linkageType: ''
    returnType: int
    signature: int TIFFInitCCITTRLEW(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TIFFWriteDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 12
    functionsReached:
    - TIFFWriteDirectorySec
    linkageType: ''
    returnType: int
    signature: int TIFFWriteDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:273,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: TIFFDeferStrileArrayWriting
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFDeferStrileArrayWriting(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSetupStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:297,1
    - Dst: TIFFWriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:298,1
    - Dst: TIFFSetWriteOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:299,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: TIFFCheckpointDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - TIFFSetupStrips
    - TIFFWriteDirectorySec
    - TIFFSeekFile
    - TIFFSetWriteOffset
    linkageType: ''
    returnType: int
    signature: int TIFFCheckpointDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - pdiroff
    argTypes:
    - TIFF*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: TIFFWriteCustomDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - TIFFWriteDirectorySec
    linkageType: ''
    returnType: int
    signature: int TIFFWriteCustomDirectory(TIFF *tif, uint64_t *pdiroff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:322,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:337,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:338,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:340,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:346,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:360,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:360,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:362,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:367,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:368,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:369,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:371,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:375,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:380,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:382,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:384,1
    - Dst: _TIFFRemoveEntryFromDirectoryListByOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:397,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:406,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:407,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:409,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:423,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:423,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:425,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:430,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:433,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:439,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:440,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:442,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:446,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:451,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:453,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:455,1
    - Dst: _TIFFRemoveEntryFromDirectoryListByOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:468,1
    - Dst: TIFFWriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:474,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 94
    argCount: 4
    argNames:
    - tif
    - isimage
    - imagedone
    - pdiroff
    argTypes:
    - TIFF*
    - int
    - int
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 475
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 475
    functionName: TIFFRewriteDirectorySec
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - _TIFFRemoveEntryFromDirectoryListByOffset
    - TIFFWriteDirectorySec
    - TIFFSwabLong
    - WriteOK
    - TIFFSwabLong8
    - SeekOK
    - TIFFSwabShort
    - TIFFSeekFile
    - ReadOK
    - TIFFWriteDirectory
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFRewriteDirectorySec(TIFF *tif, int isimage, int imagedone,\n
      \                                  uint64_t *pdiroff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFRewriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 6
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: TIFFRewriteDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFRewriteDirectorySec
    linkageType: ''
    returnType: int
    signature: int TIFFRewriteDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFFillStriles
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:500,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:514,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:529,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:531,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:538,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:548,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:551,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:570,1
    - Dst: TIFFWriteDirectoryTagShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:572,1
    - Dst: TIFFWriteDirectoryTagShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:576,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:581,1
    - Dst: TIFFWriteDirectoryTagShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:583,1
    - Dst: TIFFWriteDirectoryTagShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:587,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:592,1
    - Dst: TIFFWriteDirectoryTagRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:594,1
    - Dst: TIFFWriteDirectoryTagRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:598,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:603,1
    - Dst: TIFFWriteDirectoryTagRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:605,1
    - Dst: TIFFWriteDirectoryTagRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:609,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:614,1
    - Dst: TIFFWriteDirectoryTagLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:616,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:621,1
    - Dst: TIFFWriteDirectoryTagShortPerSample
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:623,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:628,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:630,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:635,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:637,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:642,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:644,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:649,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:651,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:656,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:658,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:663,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:665,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:670,1
    - Dst: TIFFWriteDirectoryTagShortLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:672,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:677,1
    - Dst: TIFFWriteDirectoryTagShortPerSample
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:679,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:684,1
    - Dst: TIFFWriteDirectoryTagShortPerSample
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:686,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:691,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:693,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:698,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:700,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:705,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:707,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:712,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:714,1
    - Dst: TIFFWriteDirectoryTagLongLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:716,1
    - Dst: TIFFWriteDirectoryTagLongLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:724,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:731,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:733,1
    - Dst: TIFFWriteDirectoryTagLongLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:747,1
    - Dst: TIFFWriteDirectoryTagLongLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:755,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:762,1
    - Dst: TIFFWriteDirectoryTagColormap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:764,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:767,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:773,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:774,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:779,1
    - Dst: TIFFWriteDirectoryTagShortPerSample
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:781,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:786,1
    - Dst: TIFFWriteDirectoryTagSampleformatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:788,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:794,1
    - Dst: TIFFWriteDirectoryTagSampleformatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:796,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:802,1
    - Dst: TIFFWriteDirectoryTagLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:804,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:809,1
    - Dst: TIFFWriteDirectoryTagLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:811,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:816,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:818,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:823,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:825,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:830,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:832,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:837,1
    - Dst: TIFFWriteDirectoryTagRationalArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:839,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:844,1
    - Dst: TIFFWriteDirectoryTagTransferfunction
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:846,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:849,1
    - Dst: TIFFWriteDirectoryTagAscii
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:851,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:856,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:858,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:863,1
    - Dst: TIFFWriteDirectoryTagSubifd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:865,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:879,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:887,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:888,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:889,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:890,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:891,1
    - Dst: TIFFWriteDirectoryTagAscii
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:892,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:901,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:902,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:903,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:904,1
    - Dst: TIFFWriteDirectoryTagShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:905,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:914,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:915,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:916,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:917,1
    - Dst: TIFFWriteDirectoryTagLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:918,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:928,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:929,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:930,1
    - Dst: TIFFGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:931,1
    - Dst: TIFFWriteDirectoryTagUndefinedArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:932,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:939,1
    - Dst: TIFFFieldTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:942,1
    - Dst: TIFFWriteDirectoryTagAscii
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:960,1
    - Dst: TIFFWriteDirectoryTagUndefinedArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:966,1
    - Dst: TIFFWriteDirectoryTagByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:972,1
    - Dst: TIFFWriteDirectoryTagSbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:978,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:984,1
    - Dst: TIFFWriteDirectoryTagSshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:990,1
    - Dst: TIFFWriteDirectoryTagLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:996,1
    - Dst: TIFFWriteDirectoryTagSlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1002,1
    - Dst: TIFFWriteDirectoryTagLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1008,1
    - Dst: TIFFWriteDirectoryTagSlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1014,1
    - Dst: TIFFFieldSetGetSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1025,1
    - Dst: TIFFWriteDirectoryTagRationalDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1029,1
    - Dst: TIFFWriteDirectoryTagRationalArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1037,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1045,1
    - Dst: TIFFFieldSetGetSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1060,1
    - Dst: TIFFWriteDirectoryTagSrationalDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1064,1
    - Dst: TIFFWriteDirectoryTagSrationalArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1072,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1080,1
    - Dst: TIFFWriteDirectoryTagFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1090,1
    - Dst: TIFFWriteDirectoryTagDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1096,1
    - Dst: TIFFWriteDirectoryTagIfdArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1102,1
    - Dst: TIFFWriteDirectoryTagIfdIfd8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1108,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1114,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1130,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1133,1
    - Dst: TIFFLinkDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1148,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1156,1
    - Dst: TIFFRewriteDirectorySec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1159,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1176,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1196,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1207,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1215,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1229,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1232,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1243,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1250,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1254,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1257,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1259,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1263,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1269,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1270,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1279,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1286,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1290,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1292,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1294,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1296,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1300,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1302,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1304,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1306,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1308,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1312,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1314,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1317,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1324,1
    - Dst: TIFFNumberOfDirectories
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1337,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1339,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1362,1
    - Dst: _TIFFCheckDirNumberAndOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1372,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1374,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1382,1
    - Dst: TIFFCreateDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1386,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1397,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1399,1
    CyclomaticComplexity: 278
    EdgeCount: 278
    ICount: 584
    argCount: 4
    argNames:
    - tif
    - isimage
    - imagedone
    - pdiroff
    argTypes:
    - TIFF*
    - int
    - int
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1401
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 1401
    functionName: TIFFWriteDirectorySec
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 4
    functionsReached:
    - TIFFWriteDirectoryTagByteArray
    - TIFFWriteDirectoryTagSshortArray
    - _TIFFfreeExt
    - TIFFWriteDirectoryTagColormap
    - assert
    - TIFFFieldSet
    - TIFFFlushData1
    - TIFFWriteDirectoryTagSubifd
    - TIFFWriteDirectoryTagTransferfunction
    - TIFFFieldTag
    - TIFFErrorExtR
    - TIFFWriteDirectoryTagLongArray
    - TIFFWriteDirectoryTagRationalDoubleArray
    - _TIFFCheckDirNumberAndOffset
    - TIFFWriteDirectoryTagShortArray
    - TIFFWriteDirectoryTagSlong8Array
    - TIFFWriteDirectoryTagIfdIfd8Array
    - _TIFFFillStriles
    - TIFFWriteDirectoryTagFloatArray
    - TIFFSwabShort
    - strlen
    - TIFFLinkDirectory
    - TIFFWriteDirectoryTagShortPerSample
    - TIFFNumberOfDirectories
    - TIFFWriteDirectoryTagLong
    - TIFFWriteDirectoryTagSrationalDoubleArray
    - TIFFWriteDirectoryTagIfdArray
    - TIFFWriteDirectoryTagLong8Array
    - TIFFSwabLong8
    - TIFFWriteDirectoryTagDoubleArray
    - TIFFFreeDirectory
    - TIFFWriteDirectoryTagUndefinedArray
    - TIFFFieldSetGetSize
    - TIFFWriteDirectoryTagSampleformatArray
    - TIFFWriteDirectoryTagSrationalArray
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagSbyteArray
    - _TIFFmemcpy
    - SeekOK
    - TIFFWriteDirectoryTagRationalArray
    - TIFFSwabLong
    - WriteOK
    - TIFFWarningExtR
    - TIFFCreateDirectory
    - TIFFWriteDirectoryTagShort
    - TIFFWriteDirectoryTagRational
    - TIFFWriteDirectoryTagLongLong8Array
    - TIFFGetField
    - TIFFWriteDirectoryTagSlongArray
    - isTiled
    - TIFFGetFieldDefaulted
    - TIFFRewriteDirectorySec
    - TIFFSeekFile
    - TIFFWriteDirectoryTagShortLong
    - TIFFWriteDirectoryTagAscii
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectorySec(TIFF *tif, int isimage, int imagedone,\n
      \                                uint64_t *pdiroff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1410
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1410
    functionName: TIFFClampDoubleToInt8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t TIFFClampDoubleToInt8(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1419
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1419
    functionName: TIFFClampDoubleToInt16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t TIFFClampDoubleToInt16(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1428
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1428
    functionName: TIFFClampDoubleToInt32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t TIFFClampDoubleToInt32(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1437
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1437
    functionName: TIFFClampDoubleToUInt8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TIFFClampDoubleToUInt8(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1446
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1446
    functionName: TIFFClampDoubleToUInt16
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TIFFClampDoubleToUInt16(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1455
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1455
    functionName: TIFFClampDoubleToUInt32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TIFFClampDoubleToUInt32(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1466,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1469,1
    - Dst: _TIFFClampDoubleToFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1479,1
    - Dst: TIFFWriteDirectoryTagFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1480,1
    - Dst: TIFFWriteDirectoryTagDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1485,1
    - Dst: TIFFClampDoubleToInt8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1493,1
    - Dst: TIFFWriteDirectoryTagSbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1494,1
    - Dst: TIFFClampDoubleToInt16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1500,1
    - Dst: TIFFWriteDirectoryTagSshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1501,1
    - Dst: TIFFClampDoubleToInt32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1507,1
    - Dst: TIFFWriteDirectoryTagSlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1508,1
    - Dst: TIFFClampDoubleToUInt8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1516,1
    - Dst: TIFFWriteDirectoryTagByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1517,1
    - Dst: TIFFClampDoubleToUInt16
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1523,1
    - Dst: TIFFWriteDirectoryTagShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1524,1
    - Dst: TIFFClampDoubleToUInt32
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1530,1
    - Dst: TIFFWriteDirectoryTagLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1531,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1539,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 1541
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1541
    functionName: TIFFWriteDirectoryTagSampleformatArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagLongArray
    - TIFFWriteDirectoryTagByteArray
    - TIFFClampDoubleToUInt16
    - TIFFWriteDirectoryTagShortArray
    - TIFFClampDoubleToInt32
    - TIFFClampDoubleToInt8
    - _TIFFClampDoubleToFloat
    - TIFFWriteDirectoryTagSshortArray
    - _TIFFfreeExt
    - TIFFClampDoubleToUInt32
    - TIFFWriteDirectoryTagDoubleArray
    - _TIFFmallocExt
    - TIFFClampDoubleToInt16
    - TIFFWriteDirectoryTagFloatArray
    - TIFFWriteDirectoryTagSbyteArray
    - TIFFWriteDirectoryTagSlongArray
    - TIFFClampDoubleToUInt8
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSampleformatArray(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  double
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedAscii
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1549
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1549
    functionName: TIFFWriteDirectoryTagAscii
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedAscii
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagAscii(TIFF *tif, uint32_t *ndir,\n                                      TIFFDirEntry
      *dir, uint16_t tag,\n                                      uint32_t count, char
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedUndefinedArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1557
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1557
    functionName: TIFFWriteDirectoryTagUndefinedArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedUndefinedArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagUndefinedArray(TIFF *tif, uint32_t *ndir,\n
      \                                              TIFFDirEntry *dir, uint16_t tag,\n
      \                                              uint32_t count, uint8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedByteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1565
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1565
    functionName: TIFFWriteDirectoryTagByteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedByteArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagByteArray(TIFF *tif, uint32_t *ndir,\n                                          TIFFDirEntry
      *dir, uint16_t tag,\n                                          uint32_t count,
      uint8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSbyteArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int8_t*
    constantsTouched: []
    func_position:
      end: 1573
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1573
    functionName: TIFFWriteDirectoryTagSbyteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedSbyteArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSbyteArray(TIFF *tif, uint32_t *ndir,\n                                           TIFFDirEntry
      *dir, uint16_t tag,\n                                           uint32_t count,
      int8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1580
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1580
    functionName: TIFFWriteDirectoryTagShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedShort
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagShort(TIFF *tif, uint32_t *ndir,\n                                      TIFFDirEntry
      *dir, uint16_t tag,\n                                      uint16_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1588
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1588
    functionName: TIFFWriteDirectoryTagShortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedShortArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagShortArray(TIFF *tif, uint32_t *ndir,\n                                           TIFFDirEntry
      *dir, uint16_t tag,\n                                           uint32_t count,
      uint16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1602,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1605,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1608,1
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1613,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1617
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1617
    functionName: TIFFWriteDirectoryTagShortPerSample
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFErrorExtR
    - _TIFFfreeExt
    - TIFFWriteDirectoryTagCheckedShortArray
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagShortPerSample(TIFF *tif, uint32_t *ndir,\n
      \                                              TIFFDirEntry *dir, uint16_t tag,\n
      \                                              uint16_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSshortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int16_t*
    constantsTouched: []
    func_position:
      end: 1625
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1625
    functionName: TIFFWriteDirectoryTagSshortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedSshortArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSshortArray(TIFF *tif, uint32_t *ndir,\n
      \                                           TIFFDirEntry *dir, uint16_t tag,\n
      \                                           uint32_t count, int16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1632
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1632
    functionName: TIFFWriteDirectoryTagLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedLong
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagLong(TIFF *tif, uint32_t *ndir,\n                                     TIFFDirEntry
      *dir, uint16_t tag,\n                                     uint32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1640
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1640
    functionName: TIFFWriteDirectoryTagLongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedLongArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagLongArray(TIFF *tif, uint32_t *ndir,\n                                          TIFFDirEntry
      *dir, uint16_t tag,\n                                          uint32_t count,
      uint32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int32_t*
    constantsTouched: []
    func_position:
      end: 1648
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1648
    functionName: TIFFWriteDirectoryTagSlongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedSlongArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSlongArray(TIFF *tif, uint32_t *ndir,\n                                           TIFFDirEntry
      *dir, uint16_t tag,\n                                           uint32_t count,
      int32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1670,1
    - Dst: TIFFWriteDirectoryTagCheckedLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1676,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1683,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1686,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1694,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1699,1
    - Dst: TIFFWriteDirectoryTagCheckedLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1705,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1709
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1709
    functionName: TIFFWriteDirectoryTagLong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagCheckedLong8Array
    - TIFFWriteDirectoryTagCheckedLongArray
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagLong8Array(TIFF *tif, uint32_t *ndir,\n                                           TIFFDirEntry
      *dir, uint16_t tag,\n                                           uint32_t count,
      uint64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1731,1
    - Dst: TIFFWriteDirectoryTagCheckedSlong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1736,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1743,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1746,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1754,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1759,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1764,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1769,1
    - Dst: TIFFWriteDirectoryTagCheckedSlongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1775,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int64_t*
    constantsTouched: []
    func_position:
      end: 1779
      start: 1716
    functionDepth: 1
    functionLinenumber: 1716
    functionLinenumberEnd: 1779
    functionName: TIFFWriteDirectoryTagSlong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - TIFFWriteDirectoryTagCheckedSlong8Array
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagCheckedSlongArray
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSlong8Array(TIFF *tif, uint32_t *ndir,\n
      \                                           TIFFDirEntry *dir, uint16_t tag,\n
      \                                           uint32_t count, int64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - double
    constantsTouched: []
    func_position:
      end: 1786
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1786
    functionName: TIFFWriteDirectoryTagRational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedRational
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagRational(TIFF *tif, uint32_t *ndir,\n                                         TIFFDirEntry
      *dir, uint16_t tag,\n                                         double value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedRationalArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1794
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1794
    functionName: TIFFWriteDirectoryTagRationalArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedRationalArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagRationalArray(TIFF *tif, uint32_t *ndir,\n
      \                                             TIFFDirEntry *dir, uint16_t tag,\n
      \                                             uint32_t count, float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSrationalArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1802
    functionName: TIFFWriteDirectoryTagSrationalArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedSrationalArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSrationalArray(TIFF *tif, uint32_t *ndir,\n
      \                                              TIFFDirEntry *dir, uint16_t tag,\n
      \                                              uint32_t count, float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedRationalDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 1813
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1813
    functionName: TIFFWriteDirectoryTagRationalDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedRationalDoubleArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagRationalDoubleArray(TIFF *tif, uint32_t *ndir,\n
      \                                                   TIFFDirEntry *dir,\n                                                    uint16_t
      tag,\n                                                    uint32_t count,\n
      \                                                   double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedSrationalDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 1823
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1823
    functionName: TIFFWriteDirectoryTagSrationalDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedSrationalDoubleArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSrationalDoubleArray(TIFF *tif, uint32_t
      *ndir,\n                                                     TIFFDirEntry *dir,\n
      \                                                    uint16_t tag,\n                                                     uint32_t
      count,\n                                                     double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedFloatArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1831
      start: 1825
    functionDepth: 1
    functionLinenumber: 1825
    functionLinenumberEnd: 1831
    functionName: TIFFWriteDirectoryTagFloatArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedFloatArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagFloatArray(TIFF *tif, uint32_t *ndir,\n                                           TIFFDirEntry
      *dir, uint16_t tag,\n                                           uint32_t count,
      float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedDoubleArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 1839
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1839
    functionName: TIFFWriteDirectoryTagDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagCheckedDoubleArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagDoubleArray(TIFF *tif, uint32_t *ndir,\n
      \                                           TIFFDirEntry *dir, uint16_t tag,\n
      \                                           uint32_t count, double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedIfdArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1847
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1847
    functionName: TIFFWriteDirectoryTagIfdArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedIfdArray
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagIfdArray(TIFF *tif, uint32_t *ndir,\n                                         TIFFDirEntry
      *dir, uint16_t tag,\n                                         uint32_t count,
      uint32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1854,1
    - Dst: TIFFWriteDirectoryTagCheckedLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1858
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1858
    functionName: TIFFWriteDirectoryTagShortLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedLong
    - TIFFWriteDirectoryTagCheckedShort
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagShortLong(TIFF *tif, uint32_t *ndir,\n                                          TIFFDirEntry
      *dir, uint16_t tag,\n                                          uint32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 3
    argNames:
    - tif
    - strile_size
    - uncompressed_threshold
    argTypes:
    - TIFF*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1883
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1883
    functionName: _WriteAsType
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _WriteAsType(TIFF *tif, uint64_t strile_size,\n                        uint64_t
      uncompressed_threshold)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _WriteAsType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - strile_size
    argTypes:
    - TIFF*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1888
      start: 1885
    functionDepth: 1
    functionLinenumber: 1885
    functionLinenumberEnd: 1888
    functionName: WriteAsLong8
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - _WriteAsType
    linkageType: ''
    returnType: int
    signature: int WriteAsLong8(TIFF *tif, uint64_t strile_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _WriteAsType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - strile_size
    argTypes:
    - TIFF*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1893
      start: 1890
    functionDepth: 1
    functionLinenumber: 1890
    functionLinenumberEnd: 1893
    functionName: WriteAsLong4
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - _WriteAsType
    linkageType: ''
    returnType: int
    signature: int WriteAsLong4(TIFF *tif, uint64_t strile_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1920,1
    - Dst: WriteAsLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1933,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1933,1
    - Dst: WriteAsLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1937,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1937,1
    - Dst: TIFFWriteDirectoryTagCheckedLong8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1941,1
    - Dst: WriteAsLong4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1949,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1949,1
    - Dst: WriteAsLong4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1953,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1953,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1969,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1977,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1980,1
    - Dst: TIFFWriteDirectoryTagCheckedLongArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1986,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1988,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:1999,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2008,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2011,1
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2017,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2019,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2023
      start: 1902
    functionDepth: 4
    functionLinenumber: 1902
    functionLinenumberEnd: 2023
    functionName: TIFFWriteDirectoryTagLongLong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - TIFFStripSize64
    - TIFFWriteDirectoryTagCheckedLong8Array
    - WriteAsLong4
    - TIFFWriteDirectoryTagData
    - WriteAsLong8
    - TIFFWriteDirectoryTagCheckedLongArray
    - TIFFTileSize64
    - TIFFWriteDirectoryTagCheckedShortArray
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagLongLong8Array(TIFF *tif, uint32_t *ndir,\n
      \                                              TIFFDirEntry *dir, uint16_t tag,\n
      \                                              uint32_t count, uint64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWriteDirectoryTagCheckedIfd8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2044,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2052,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2055,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2063,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2066,1
    - Dst: TIFFWriteDirectoryTagCheckedIfdArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2072,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2076
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2076
    functionName: TIFFWriteDirectoryTagIfdIfd8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedIfdArray
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagCheckedIfd8Array
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagIfdIfd8Array(TIFF *tif, uint32_t *ndir,\n
      \                                            TIFFDirEntry *dir, uint16_t tag,\n
      \                                            uint32_t count, uint64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - tif
    - count
    - typesize
    - ndir
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2096
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2096
    functionName: EvaluateIFDdatasizeWrite
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EvaluateIFDdatasizeWrite(TIFF *tif, uint32_t count,\n                                     uint32_t
      typesize, uint32_t *ndir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2108,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2112,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2115,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2118,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2119,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2120,1
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2121,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tif
    - ndir
    - dir
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    constantsTouched: []
    func_position:
      end: 2125
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2125
    functionName: TIFFWriteDirectoryTagColormap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - _TIFFfreeExt
    - _TIFFmallocExt
    - _TIFFmemcpy
    - TIFFWriteDirectoryTagCheckedShortArray
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagColormap(TIFF *tif, uint32_t *ndir,\n                                         TIFFDirEntry
      *dir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2148,1
    - Dst: _TIFFmemcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2162,1
    - Dst: _TIFFmemcmp
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2165,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2172,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2176,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2179,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2182,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2185,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2188,1
    - Dst: TIFFWriteDirectoryTagCheckedShortArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2190,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - tif
    - ndir
    - dir
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    constantsTouched: []
    func_position:
      end: 2194
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2194
    functionName: TIFFWriteDirectoryTagTransferfunction
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - _TIFFmemcmp
    - EvaluateIFDdatasizeWrite
    - _TIFFfreeExt
    - TIFFWarningExtR
    - _TIFFmallocExt
    - _TIFFmemcpy
    - TIFFWriteDirectoryTagCheckedShortArray
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagTransferfunction(TIFF *tif, uint32_t *ndir,\n
      \                                                TIFFDirEntry *dir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2211,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2214,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2221,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2227,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2228,1
    - Dst: TIFFWriteDirectoryTagCheckedIfdArray
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2233,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2235,1
    - Dst: TIFFWriteDirectoryTagCheckedIfd8Array
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - tif
    - ndir
    - dir
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    constantsTouched: []
    func_position:
      end: 2264
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2264
    functionName: TIFFWriteDirectoryTagSubifd
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagCheckedIfdArray
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagCheckedIfd8Array
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagSubifd(TIFF *tif, uint32_t *ndir,\n                                       TIFFDirEntry
      *dir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2270,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2273,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 2278
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2278
    functionName: TIFFWriteDirectoryTagCheckedAscii
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedAscii(TIFF *tif, uint32_t *ndir,\n
      \                                            TIFFDirEntry *dir, uint16_t tag,\n
      \                                            uint32_t count, char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2286,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2289,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2294
      start: 2280
    functionDepth: 1
    functionLinenumber: 2280
    functionLinenumberEnd: 2294
    functionName: TIFFWriteDirectoryTagCheckedUndefinedArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedUndefinedArray(TIFF *tif, uint32_t
      *ndir,\n                                                      TIFFDirEntry *dir,\n
      \                                                     uint16_t tag,\n                                                      uint32_t
      count,\n                                                      uint8_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2301,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2304,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2309
      start: 2296
    functionDepth: 1
    functionLinenumber: 2296
    functionLinenumberEnd: 2309
    functionName: TIFFWriteDirectoryTagCheckedByteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedByteArray(TIFF *tif, uint32_t *ndir,\n
      \                                                TIFFDirEntry *dir,\n                                                 uint16_t
      tag, uint32_t count,\n                                                 uint8_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2316,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2319,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int8_t*
    constantsTouched: []
    func_position:
      end: 2324
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2324
    functionName: TIFFWriteDirectoryTagCheckedSbyteArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSbyteArray(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  int8_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2331,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2340,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2343
      start: 2326
    functionDepth: 1
    functionLinenumber: 2326
    functionLinenumberEnd: 2343
    functionName: TIFFWriteDirectoryTagCheckedShort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagData
    - TIFFSwabShort
    - assert
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedShort(TIFF *tif, uint32_t *ndir,\n
      \                                            TIFFDirEntry *dir, uint16_t tag,\n
      \                                            uint16_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2350,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2351,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2354,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2358,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2361
    functionName: TIFFWriteDirectoryTagCheckedShortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 5
    functionsReached:
    - TIFFSwabArrayOfShort
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedShortArray(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  uint16_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2368,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2369,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2372,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2376,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int16_t*
    constantsTouched: []
    func_position:
      end: 2379
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2379
    functionName: TIFFWriteDirectoryTagCheckedSshortArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFSwabArrayOfShort
    - TIFFWriteDirectoryTagData
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSshortArray(TIFF *tif, uint32_t *ndir,\n
      \                                                  TIFFDirEntry *dir,\n                                                   uint16_t
      tag, uint32_t count,\n                                                   int16_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2386,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2395,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2398
      start: 2381
    functionDepth: 1
    functionLinenumber: 2381
    functionLinenumberEnd: 2398
    functionName: TIFFWriteDirectoryTagCheckedLong
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - TIFFSwabLong
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedLong(TIFF *tif, uint32_t *ndir,\n
      \                                           TIFFDirEntry *dir, uint16_t tag,\n
      \                                           uint32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2405,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2406,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2409,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2413,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2416
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2416
    functionName: TIFFWriteDirectoryTagCheckedLongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 3
    functionsReached:
    - TIFFWriteDirectoryTagData
    - TIFFSwabArrayOfLong
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedLongArray(TIFF *tif, uint32_t *ndir,\n
      \                                                TIFFDirEntry *dir,\n                                                 uint16_t
      tag, uint32_t count,\n                                                 uint32_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2423,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2424,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2427,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2431,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int32_t*
    constantsTouched: []
    func_position:
      end: 2434
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2434
    functionName: TIFFWriteDirectoryTagCheckedSlongArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagData
    - TIFFSwabArrayOfLong
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSlongArray(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  int32_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2441,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2442,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2445,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2451,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2455,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2458
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2458
    functionName: TIFFWriteDirectoryTagCheckedLong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFSwabArrayOfLong8
    - EvaluateIFDdatasizeWrite
    - assert
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedLong8Array(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  uint64_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2465,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2466,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2469,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2475,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2479,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - int64_t*
    constantsTouched: []
    func_position:
      end: 2482
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2482
    functionName: TIFFWriteDirectoryTagCheckedSlong8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFSwabArrayOfLong8
    - EvaluateIFDdatasizeWrite
    - assert
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSlong8Array(TIFF *tif, uint32_t *ndir,\n
      \                                                  TIFFDirEntry *dir,\n                                                   uint16_t
      tag, uint32_t count,\n                                                   int64_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2490,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2493,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2498,1
    - Dst: DoubleToRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2510,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2514,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2515,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - double
    constantsTouched: []
    func_position:
      end: 2519
      start: 2484
    functionDepth: 1
    functionLinenumber: 2484
    functionLinenumberEnd: 2519
    functionName: TIFFWriteDirectoryTagCheckedRational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFSwabLong
    - DoubleToRational
    - assert
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedRational(TIFF *tif, uint32_t *ndir,\n
      \                                               TIFFDirEntry *dir, uint16_t
      tag,\n                                                double value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2533,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2536,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2539,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2542,1
    - Dst: DoubleToRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2547,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2550,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2551,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 2555
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2555
    functionName: TIFFWriteDirectoryTagCheckedRationalArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - DoubleToRational
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedRationalArray(TIFF *tif, uint32_t
      *ndir,\n                                                     TIFFDirEntry *dir,\n
      \                                                    uint16_t tag,\n                                                     uint32_t
      count,\n                                                     float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2569,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2572,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2575,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2578,1
    - Dst: DoubleToSrational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2583,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2586,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2587,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 2591
      start: 2557
    functionDepth: 1
    functionLinenumber: 2557
    functionLinenumberEnd: 2591
    functionName: TIFFWriteDirectoryTagCheckedSrationalArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - assert
    - DoubleToSrational
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSrationalArray(TIFF *tif, uint32_t
      *ndir,\n                                                      TIFFDirEntry *dir,\n
      \                                                     uint16_t tag,\n                                                      uint32_t
      count,\n                                                      float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2606,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2609,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2612,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2615,1
    - Dst: DoubleToRational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2620,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2623,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2624,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 2628
      start: 2594
    functionDepth: 1
    functionLinenumber: 2594
    functionLinenumberEnd: 2628
    functionName: TIFFWriteDirectoryTagCheckedRationalDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - DoubleToRational
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - assert
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedRationalDoubleArray(TIFF *tif, uint32_t
      *ndir,\n                                                TIFFDirEntry *dir, uint16_t
      tag,\n                                                uint32_t count, double
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2641,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2644,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2647,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2650,1
    - Dst: DoubleToSrational
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2655,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2658,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2659,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 2663
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2663
    functionName: TIFFWriteDirectoryTagCheckedSrationalDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - TIFFSwabArrayOfLong
    - _TIFFfreeExt
    - assert
    - DoubleToSrational
    - _TIFFmallocExt
    - TIFFWriteDirectoryTagData
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedSrationalDoubleArray(\n    TIFF *tif,
      uint32_t *ndir, TIFFDirEntry *dir, uint16_t tag, uint32_t count,\n    double
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2746,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - value
    - blnUseSignedRange
    - blnUseSmallRange
    - ullNum
    - ullDenom
    argTypes:
    - double
    - int
    - int
    - uint64_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2807
      start: 2686
    functionDepth: 0
    functionLinenumber: 2686
    functionLinenumberEnd: 2807
    functionName: ToRationalEuclideanGCD
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: void
    signature: "void ToRationalEuclideanGCD(double value, int blnUseSignedRange,\n
      \                                  int blnUseSmallRange, uint64_t *ullNum,\n
      \                                  uint64_t *ullDenom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2825,1
    - Dst: ToRationalEuclideanGCD
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2856,1
    - Dst: ToRationalEuclideanGCD
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2857,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2862,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2867,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2871,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2872,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - value
    - num
    - denom
    argTypes:
    - double
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2883
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2883
    functionName: DoubleToRational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 3
    functionsReached:
    - fabs
    - assert
    - ToRationalEuclideanGCD
    - TIFFErrorExt
    linkageType: ''
    returnType: void
    signature: void DoubleToRational(double value, uint32_t *num, uint32_t *denom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToRationalEuclideanGCD
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2932,1
    - Dst: ToRationalEuclideanGCD
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2933,1
    - Dst: TIFFErrorExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2938,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2943,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2947,1
    - Dst: fabs
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - value
    - num
    - denom
    argTypes:
    - double
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 2959
      start: 2890
    functionDepth: 1
    functionLinenumber: 2890
    functionLinenumberEnd: 2959
    functionName: DoubleToSrational
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - fabs
    - assert
    - ToRationalEuclideanGCD
    - TIFFErrorExt
    linkageType: ''
    returnType: void
    signature: void DoubleToSrational(double value, int32_t *num, int32_t *denom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2966,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2967,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2970,1
    - Dst: TIFFCvtNativeToIEEEFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2973,1
    - Dst: TIFFSwabArrayOfFloat
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2975,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - float*
    constantsTouched: []
    func_position:
      end: 2978
      start: 2961
    functionDepth: 1
    functionLinenumber: 2961
    functionLinenumberEnd: 2978
    functionName: TIFFWriteDirectoryTagCheckedFloatArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - assert
    - TIFFSwabArrayOfFloat
    - TIFFWriteDirectoryTagData
    - TIFFCvtNativeToIEEEFloat
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedFloatArray(TIFF *tif, uint32_t *ndir,\n
      \                                                 TIFFDirEntry *dir,\n                                                  uint16_t
      tag, uint32_t count,\n                                                  float
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2985,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2986,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2989,1
    - Dst: TIFFCvtNativeToIEEEDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2992,1
    - Dst: TIFFSwabArrayOfDouble
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2994,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:2995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - double*
    constantsTouched: []
    func_position:
      end: 2997
      start: 2980
    functionDepth: 1
    functionLinenumber: 2980
    functionLinenumberEnd: 2997
    functionName: TIFFWriteDirectoryTagCheckedDoubleArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - EvaluateIFDdatasizeWrite
    - assert
    - TIFFCvtNativeToIEEEDouble
    - TIFFWriteDirectoryTagData
    - TIFFSwabArrayOfDouble
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedDoubleArray(TIFF *tif, uint32_t *ndir,\n
      \                                                  TIFFDirEntry *dir,\n                                                   uint16_t
      tag, uint32_t count,\n                                                   double
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3003,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3004,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3007,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3011,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3014
      start: 2999
    functionDepth: 1
    functionLinenumber: 2999
    functionLinenumberEnd: 3014
    functionName: TIFFWriteDirectoryTagCheckedIfdArray
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 3
    functionsReached:
    - TIFFWriteDirectoryTagData
    - TIFFSwabArrayOfLong
    - assert
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedIfdArray(TIFF *tif, uint32_t *ndir,\n
      \                                               TIFFDirEntry *dir, uint16_t
      tag,\n                                                uint32_t count, uint32_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3021,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3022,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3023,1
    - Dst: EvaluateIFDdatasizeWrite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3026,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3030,1
    - Dst: TIFFWriteDirectoryTagData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - count
    - value
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3033
      start: 3016
    functionDepth: 1
    functionLinenumber: 3016
    functionLinenumberEnd: 3033
    functionName: TIFFWriteDirectoryTagCheckedIfd8Array
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 2
    functionsReached:
    - TIFFWriteDirectoryTagData
    - assert
    - TIFFSwabArrayOfLong8
    - EvaluateIFDdatasizeWrite
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagCheckedIfd8Array(TIFF *tif, uint32_t *ndir,\n
      \                                                TIFFDirEntry *dir,\n                                                 uint16_t
      tag, uint32_t count,\n                                                 uint64_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3045,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3064,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3076,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3079,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3081,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3086,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3091,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3093,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3104,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3105,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3111,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 8
    argNames:
    - tif
    - ndir
    - dir
    - tag
    - datatype
    - count
    - datalength
    - data
    argTypes:
    - TIFF*
    - uint32_t*
    - TIFFDirEntry*
    - uint16_t
    - uint16_t
    - uint32_t
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 3116
      start: 3035
    functionDepth: 1
    functionLinenumber: 3035
    functionLinenumberEnd: 3116
    functionName: TIFFWriteDirectoryTagData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 22
    functionsReached:
    - TIFFSwabLong
    - WriteOK
    - TIFFSwabLong8
    - assert
    - SeekOK
    - _TIFFmemcpy
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFWriteDirectoryTagData(TIFF *tif, uint32_t *ndir,\n                                     TIFFDirEntry
      *dir, uint16_t tag,\n                                     uint16_t datatype,
      uint32_t count,\n                                     uint32_t datalength, void
      *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3125,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3137,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3138,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3139,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3141,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3161,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3162,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3163,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3165,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3192,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3200,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3201,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3203,1
    - Dst: _TIFFGetDirNumberFromOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3215,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3233,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3233,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3235,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3239,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3240,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3241,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3243,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3247,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3250,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3251,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3253,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3270,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3278,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3279,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3281,1
    - Dst: _TIFFGetDirNumberFromOffset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3293,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3311,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3311,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3313,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3317,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3320,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3326,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3327,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3329,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3333,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3336,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3337,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3339,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 137
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 3361
      start: 3121
    functionDepth: 4
    functionLinenumber: 3121
    functionLinenumberEnd: 3361
    functionName: TIFFLinkDirectory
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 1
    functionsReached:
    - TIFFSwabLong
    - WriteOK
    - TIFFSwabLong8
    - _TIFFGetDirNumberFromOffset
    - SeekOK
    - TIFFSwabShort
    - TIFFSeekFile
    - ReadOK
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFLinkDirectory(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFindField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3396,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3401,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3403,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3411,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3420,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3422,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3431,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3433,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3438,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3445,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3447,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3452,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3463,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3465,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3470,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3472,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3482,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3490,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3492,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3498,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3500,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3503,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3505,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3510,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3512,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3514,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3516,1
    - Dst: WriteAsLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3534,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3534,1
    - Dst: WriteAsLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3538,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3538,1
    - Dst: WriteAsLong4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3549,1
    - Dst: TIFFStripSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3549,1
    - Dst: WriteAsLong4
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3553,1
    - Dst: TIFFTileSize64
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3553,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3570,1
    - Dst: _TIFFCheckMalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3601,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3602,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3607,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3607,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3617,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3618,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3635,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3636,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3652,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3653,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3661,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3665,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3667,1
    - Dst: TIFFSwabArrayOfShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3668,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3669,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3670,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3671,1
    - Dst: TIFFSwabArrayOfLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3672,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3680,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3688,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3720,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3722,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3723,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3728,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3728,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3730,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3731,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3735,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3744,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3746,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3746,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3748,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3749,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3755,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3758,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3758,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3763,1
    - Dst: TIFFDataWidth
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3764,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3768,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3776,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3778,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3785,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3787,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3790,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3792,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3796,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3798,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3800,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3802,1
    - Dst: SeekOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3808,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3810,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3815,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c:3817,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 242
    argCount: 5
    argNames:
    - tif
    - tag
    - in_datatype
    - count
    - data
    argTypes:
    - TIFF*
    - uint16_t
    - TIFFDataType
    - tmsize_t
    - void*
    constantsTouched: []
    func_position:
      end: 3823
      start: 3376
    functionDepth: 4
    functionLinenumber: 3376
    functionLinenumberEnd: 3823
    functionName: _TIFFRewriteField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_dirwrite.c
    functionUses: 0
    functionsReached:
    - TIFFSwabArrayOfLong8
    - WriteAsLong8
    - _TIFFfreeExt
    - TIFFDataWidth
    - TIFFErrorExtR
    - TIFFSwabArrayOfShort
    - TIFFFindField
    - TIFFSwabArrayOfLong
    - isMapped
    - TIFFSwabShort
    - TIFFSwabLong8
    - TIFFStripSize64
    - SeekOK
    - WriteAsLong4
    - TIFFTileSize64
    - TIFFSwabLong
    - WriteOK
    - TIFFSeekFile
    - _TIFFCheckMalloc
    - ReadOK
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int _TIFFRewriteField(TIFF *tif, uint16_t tag, TIFFDataType in_datatype,\n
      \                     tmsize_t count, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFlushData
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:35,1
    - Dst: TIFFForceStrileArrayWriting
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:46,1
    - Dst: TIFFRewriteDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 7
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: TIFFFlush
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_flush.c
    functionUses: 1
    functionsReached:
    - TIFFFlushData
    - TIFFForceStrileArrayWriting
    - TIFFRewriteDirectory
    linkageType: ''
    returnType: int
    signature: int TIFFFlush(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:83,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:88,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:93,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:110,1
    - Dst: TIFFSetupStrips
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:116,1
    - Dst: _TIFFRewriteField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:120,1
    - Dst: _TIFFRewriteField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:124,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 135
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 135
    functionName: TIFFForceStrileArrayWriting
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_flush.c
    functionUses: 2
    functionsReached:
    - TIFFSetupStrips
    - _TIFFRewriteField
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFForceStrileArrayWriting(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_flush.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: TIFFFlushData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_flush.c
    functionUses: 2
    functionsReached:
    - TIFFFlushData1
    linkageType: ''
    returnType: int
    signature: int TIFFFlushData(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:37,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:40,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:44,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:50,1
    - Dst: TIFFInitJPEGCommon
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:52,1
    - Dst: JState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:54,1
    - Dst: JPEGSetupEncode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:58,1
    - Dst: JPEGSetupDecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - tif
    - otherSettings
    - scheme
    - is_encode
    argTypes:
    - TIFF*
    - JPEGOtherSettings*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: TIFFReInitJPEG_12
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_jpeg_12.c
    functionUses: 2
    functionsReached:
    - _TIFFreallocExt
    - JPEGSetupEncode
    - assert
    - JPEGSetupDecode
    - JState
    - TIFFInitJPEGCommon
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: "int TIFFReInitJPEG_12(TIFF *tif, const JPEGOtherSettings *otherSettings,\n
      \                     int scheme, int is_encode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFFlush
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:50,1
    - Dst: TIFFFreeDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:51,1
    - Dst: _TIFFCleanupIFDOffsetAndNumberMaps
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:53,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:63,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:64,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:68,1
    - Dst: isMapped
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:69,1
    - Dst: TIFFUnmapFileContents
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:70,1
    - Dst: TIFFFieldIsAnonymous
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:89,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:91,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:92,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:97,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:107,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:109,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:114,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:120,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 121
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 121
    functionName: TIFFCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_close.c
    functionUses: 0
    functionsReached:
    - _TIFFCleanupIFDOffsetAndNumberMaps
    - _TIFFfreeExt
    - TIFFFlush
    - TIFFFreeDirectory
    - isMapped
    - TIFFUnmapFileContents
    - TIFFFieldIsAnonymous
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void TIFFCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFHashSetDestroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:131,1
    - Dst: TIFFHashSetDestroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: _TIFFCleanupIFDOffsetAndNumberMaps
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_close.c
    functionUses: 5
    functionsReached:
    - TIFFHashSetDestroy
    linkageType: ''
    returnType: void
    signature: void _TIFFCleanupIFDOffsetAndNumberMaps(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_close.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: TIFFClose
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_close.c
    functionUses: 16
    functionsReached:
    - TIFFCleanup
    linkageType: ''
    returnType: void
    signature: void TIFFClose(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: LERCFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LERCFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:106,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: LERCSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - assert
    - LERCDecoderState
    linkageType: ''
    returnType: int
    signature: int LERCSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 171
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 171
    functionName: GetLercDataType
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int GetLercDataType(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:183,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:222,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:223,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:231,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:232,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:235,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:236,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:247,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:252,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:266,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 3
    argNames:
    - tif
    - sp
    - module
    argTypes:
    - TIFF*
    - LERCState*
    - char*
    constantsTouched: []
    func_position:
      end: 279
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 279
    functionName: SetupBuffers
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - LERC_AT_LEAST_VERSION
    - _TIFFfreeExt
    - _TIFFmallocExt
    - isTiled
    - GetLercDataType
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int SetupBuffers(TIFF *tif, LERCState *sp, const char *module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:289,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:299,1
    - Dst: TIFF*::tif_setupdecode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:301,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:303,1
    - Dst: SetupBuffers
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:307,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:314,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:315,1
    - Dst: libdeflate_alloc_decompressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:332,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:335,1
    - Dst: libdeflate_zlib_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:340,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:345,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:349,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:356,1
    - Dst: inflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:360,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:363,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:364,1
    - Dst: inflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:372,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:375,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:376,1
    - Dst: inflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:381,1
    - Dst: ZSTD_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:389,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:391,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:393,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:394,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:401,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:407,1
    - Dst: lerc_getBlobInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:412,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:415,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:424,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:442,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:448,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:454,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:461,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:470,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:477,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:483,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:493,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:496,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:507,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:514,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:521,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:527,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:535,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:546,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:561,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:568,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:570,1
    - Dst: lerc_decode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:578,1
    - Dst: lerc_decode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:587,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:588,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:597,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:602,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:615,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:624,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:637,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:662,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:663,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:693,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:696,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:697,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:698,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 238
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 740
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 740
    functionName: LERCPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - _TIFFfreeExt
    - assert
    - libdeflate_zlib_decompress
    - SetupBuffers
    - TIFFErrorExtR
    - inflate
    - ZSTD_getErrorName
    - TIFF*::tif_setupdecode
    - inflateInit
    - inflateEnd
    - libdeflate_alloc_decompressor
    - ZSTD_decompress
    - _TIFFmallocExt
    - ZSTD_isError
    - LERCDecoderState
    - lerc_decode
    - GetLercDataType
    - memmove
    - LERC_AT_LEAST_VERSION
    - TIFFWarningExtR
    - lerc_getBlobInfo
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int LERCPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCDecoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:748,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:751,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:752,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:756,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:757,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:764,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:765,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - tif
    - op
    - occ
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 773
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 773
    functionName: LERCDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - memset
    - LERCDecoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LERCDecode(TIFF *tif, uint8_t *op, tmsize_t occ, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:779,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 790
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 790
    functionName: LERCSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - assert
    - LERCEncoderState
    linkageType: ''
    returnType: int
    signature: int LERCSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:798,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:802,1
    - Dst: TIFF*::tif_setupencode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:804,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:806,1
    - Dst: SetupBuffers
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 814
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 814
    functionName: LERCPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - assert
    - LERCEncoderState
    - TIFF*::tif_setupencode
    - SetupBuffers
    - GetLercDataType
    linkageType: ''
    returnType: int
    signature: int LERCPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:822,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:825,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:826,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:831,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - tif
    - bp
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 839
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 839
    functionName: LERCEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - LERCEncoderState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LERCEncode(TIFF *tif, uint8_t *bp, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LERCEncoderState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:848,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:856,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:867,1
    - Dst: memmove
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:893,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:901,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1002,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1007,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1009,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1052,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1104,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1113,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1114,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1123,1
    - Dst: lerc_encodeForVersion
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1126,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1128,1
    - Dst: lerc_encodeForVersion
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1136,1
    - Dst: GetLercDataType
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1137,1
    - Dst: LERC_AT_LEAST_VERSION
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1140,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1149,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1152,1
    - Dst: libdeflate_alloc_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1161,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1168,1
    - Dst: libdeflate_zlib_compress_bound
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1174,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1177,1
    - Dst: libdeflate_zlib_compress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1182,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1188,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1199,1
    - Dst: deflateInit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1203,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1206,1
    - Dst: deflate
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1214,1
    - Dst: deflateEnd
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1219,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1222,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1230,1
    - Dst: ZSTD_isError
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1244,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1246,1
    - Dst: ZSTD_getErrorName
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1247,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1256,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1264,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1270,1
    - Dst: TIFFFlushData1
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1279,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 230
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1286
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 1286
    functionName: LERCPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - libdeflate_zlib_compress
    - libdeflate_alloc_compressor
    - _TIFFfreeExt
    - assert
    - TIFFFlushData1
    - deflateInit
    - TIFFErrorExtR
    - ZSTD_getErrorName
    - libdeflate_zlib_compress_bound
    - lerc_encodeForVersion
    - LERCEncoderState
    - _TIFFmallocExt
    - ZSTD_isError
    - memmove
    - GetLercDataType
    - LERC_AT_LEAST_VERSION
    - deflate
    - memset
    - deflateEnd
    - memcpy
    linkageType: ''
    returnType: int
    signature: int LERCPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLERCState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1292,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1294,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1299,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1300,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1301,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1302,1
    - Dst: libdeflate_free_decompressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1306,1
    - Dst: libdeflate_free_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1308,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1311,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1315
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1315
    functionName: LERCCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - libdeflate_free_decompressor
    - _TIFFfreeExt
    - assert
    - _TIFFSetDefaultCompressionState
    - libdeflate_free_compressor
    - GetLERCState
    linkageType: ''
    returnType: void
    signature: void LERCCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLERCState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1335,1
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1338,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1342
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1342
    functionName: LERCVSetFieldBase
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - GetLERCState
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int LERCVSetFieldBase(TIFF *tif, uint32_t tag, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLERCState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1347,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1357,1
    - Dst: LERCVSetFieldBase
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1363,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1367,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1375,1
    - Dst: LERCVSetFieldBase
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1382,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1391,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1400,1
    - Dst: LERCVSetFieldBase
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1408,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1413,1
    - Dst: ZSTD_maxCLevel
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1415,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1417,1
    - Dst: ZSTD_maxCLevel
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1419,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1426,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1430,1
    - Dst: libdeflate_free_compressor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1440,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1451
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1451
    functionName: LERCVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - LERCVSetFieldBase
    - TIFFWarningExtR
    - ZSTD_maxCLevel
    - va_arg
    - libdeflate_free_compressor
    - GetLERCState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int LERCVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLERCState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1455,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1460,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1463,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1466,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1469,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 1478
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1478
    functionName: LERCVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - GetLERCState
    - va_arg
    linkageType: ''
    returnType: int
    signature: int LERCVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1486,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1491,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1491,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1493,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1500,1
    - Dst: GetLERCState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1503,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1533,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1534,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c:1542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 1544
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1544
    functionName: TIFFInitLERC
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_lerc.c
    functionUses: 0
    functionsReached:
    - _TIFFMergeFields
    - assert
    - _TIFFcallocExt
    - TIFFArrayCount
    - TIFFSetField
    - GetLERCState
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitLERC(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - first
    - second
    - where
    argTypes:
    - TIFF*
    - uint32_t
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: _TIFFMultiply32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 2
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t _TIFFMultiply32(TIFF *tif, uint32_t first, uint32_t second,\n
      \                        const char *where)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - first
    - second
    - where
    argTypes:
    - TIFF*
    - uint64_t
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: _TIFFMultiply64
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 5
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _TIFFMultiply64(TIFF *tif, uint64_t first, uint64_t second,\n
      \                        const char *where)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:66,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - tif
    - first
    - second
    - where
    argTypes:
    - TIFF*
    - tmsize_t
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: _TIFFMultiplySSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 5
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: "tmsize_t _TIFFMultiplySSize(TIFF *tif, tmsize_t first, tmsize_t second,\n
      \                           const char *where)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - tif
    - val
    - module
    argTypes:
    - TIFF*
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: _TIFFCastUInt64ToSSize
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 9
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: tmsize_t
    signature: tmsize_t _TIFFCastUInt64ToSSize(TIFF *tif, uint64_t val, const char
      *module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFMultiplySSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:101,1
    - Dst: _TIFFreallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:107,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - tif
    - buffer
    - nmemb
    - elem_size
    - what
    argTypes:
    - TIFF*
    - void*
    - tmsize_t
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: _TIFFCheckRealloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 2
    functionsReached:
    - _TIFFreallocExt
    - _TIFFMultiplySSize
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void *_TIFFCheckRealloc(TIFF *tif, void *buffer, tmsize_t nmemb,\n
      \                       tmsize_t elem_size, const char *what)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFCheckRealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tif
    - nmemb
    - elem_size
    - what
    argTypes:
    - TIFF*
    - tmsize_t
    - tmsize_t
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: _TIFFCheckMalloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 10
    functionsReached:
    - _TIFFCheckRealloc
    linkageType: ''
    returnType: void
    signature: "void *_TIFFCheckMalloc(TIFF *tif, tmsize_t nmemb, tmsize_t elem_size,\n
      \                      const char *what)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:142,1
    - Dst: floor
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:149,1
    - Dst: pow
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:149,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:154,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:157,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:158,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:161,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:167,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:169,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:171,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - tif
    - td
    argTypes:
    - TIFF*
    - TIFFDirectory*
    constantsTouched: []
    func_position:
      end: 174
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 174
    functionName: TIFFDefaultTransferFunction
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 0
    functionsReached:
    - pow
    - floor
    - _TIFFfreeExt
    - _TIFFmallocExt
    - _TIFFmemcpy
    linkageType: ''
    returnType: int
    signature: int TIFFDefaultTransferFunction(TIFF *tif, TIFFDirectory *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - tif
    - td
    argTypes:
    - TIFF*
    - TIFFDirectory*
    constantsTouched: []
    func_position:
      end: 207
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 207
    functionName: TIFFDefaultRefBlackWhite
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 0
    functionsReached:
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int TIFFDefaultRefBlackWhite(TIFF *tif, TIFFDirectory *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFVGetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:221,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:226,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:229,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:232,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:235,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:238,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:241,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:244,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:247,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:277,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:280,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:287,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:297,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:298,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:301,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:304,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:307,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:308,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:311,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:316,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:319,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:322,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:325,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:335,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:336,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:339,1
    - Dst: TIFFDefaultTransferFunction
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:354,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:356,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:360,1
    - Dst: TIFFDefaultRefBlackWhite
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:368,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:370,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 118
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 374
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 374
    functionName: TIFFVGetFieldDefaulted
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 0
    functionsReached:
    - TIFFVGetField
    - va_arg
    - TIFFDefaultTransferFunction
    - TIFFDefaultRefBlackWhite
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFVGetFieldDefaulted(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:385,1
    - Dst: TIFFVGetFieldDefaulted
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:386,1
    - Dst: va_end
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tif
    - tag
    argTypes:
    - TIFF*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: TIFFGetFieldDefaulted
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 18
    functionsReached:
    - va_end
    - TIFFVGetFieldDefaulted
    - va_start
    linkageType: ''
    returnType: int
    signature: int TIFFGetFieldDefaulted(TIFF *tif, uint32_t tag, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: _TIFFClampDoubleToFloat
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float _TIFFClampDoubleToFloat(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: _TIFFClampDoubleToUInt32
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _TIFFClampDoubleToUInt32(double val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_aux.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - tif
    - 'off'
    argTypes:
    - TIFF*
    - toff_t
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: _TIFFSeekOK
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_aux.c
    functionUses: 0
    functionsReached:
    - TIFFSeekFile
    linkageType: ''
    returnType: int
    signature: int _TIFFSeekOK(TIFF *tif, toff_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - pbase
    - psize
    argTypes:
    - thandle_t
    - void**
    - toff_t*
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: _tiffDummyMapProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _tiffDummyMapProc(thandle_t fd, void **pbase, toff_t *psize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - base
    - size
    argTypes:
    - thandle_t
    - void*
    - toff_t
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: _tiffDummyUnmapProc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _tiffDummyUnmapProc(thandle_t fd, void *base, toff_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFErrorEarly
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - opts
    - clientdata
    - mode
    - module
    argTypes:
    - TIFFOpenOptions*
    - thandle_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: _TIFFgetMode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached:
    - _TIFFErrorEarly
    linkageType: ''
    returnType: int
    signature: "int _TIFFgetMode(TIFFOpenOptions *opts, thandle_t clientdata, const
      char *mode,\n                 const char *module)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFcalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: TIFFOpenOptionsAlloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 2
    functionsReached:
    - _TIFFcalloc
    linkageType: ''
    returnType: TIFFOpenOptions
    signature: TIFFOpenOptions *TIFFOpenOptionsAlloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfree
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - TIFFOpenOptions*
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: TIFFOpenOptionsFree
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 2
    functionsReached:
    - _TIFFfree
    linkageType: ''
    returnType: void
    signature: void TIFFOpenOptionsFree(TIFFOpenOptions *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - max_single_mem_alloc
    argTypes:
    - TIFFOpenOptions*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: TIFFOpenOptionsSetMaxSingleMemAlloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFOpenOptionsSetMaxSingleMemAlloc(TIFFOpenOptions *opts,\n
      \                                        tmsize_t max_single_mem_alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - max_cumulated_mem_alloc
    argTypes:
    - TIFFOpenOptions*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: TIFFOpenOptionsSetMaxCumulatedMemAlloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFOpenOptionsSetMaxCumulatedMemAlloc(TIFFOpenOptions *opts,\n
      \                                           tmsize_t max_cumulated_mem_alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - warn_about_unknown_tags
    argTypes:
    - TIFFOpenOptions*
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: TIFFOpenOptionsSetWarnAboutUnknownTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFOpenOptionsSetWarnAboutUnknownTags(TIFFOpenOptions *opts,\n
      \                                           int warn_about_unknown_tags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opts
    - handler
    - errorhandler_user_data
    argTypes:
    - TIFFOpenOptions*
    - TIFFErrorHandlerExtR
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: TIFFOpenOptionsSetErrorHandlerExtR
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFOpenOptionsSetErrorHandlerExtR(TIFFOpenOptions *opts,\n                                        TIFFErrorHandlerExtR
      handler,\n                                        void *errorhandler_user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opts
    - handler
    - warnhandler_user_data
    argTypes:
    - TIFFOpenOptions*
    - TIFFErrorHandlerExtR
    - void*
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: TIFFOpenOptionsSetWarningHandlerExtR
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TIFFOpenOptionsSetWarningHandlerExtR(TIFFOpenOptions *opts,\n
      \                                         TIFFErrorHandlerExtR handler,\n                                          void
      *warnhandler_user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - pszFunction
    - s
    argTypes:
    - TIFF*
    - char*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: _TIFFEmitErrorAboveMaxSingleMemAlloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void _TIFFEmitErrorAboveMaxSingleMemAlloc(TIFF *tif,\n                                                 const
      char *pszFunction,\n                                                 tmsize_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tif
    - pszFunction
    - s
    argTypes:
    - TIFF*
    - char*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: _TIFFEmitErrorAboveMaxCumulatedMemAlloc
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void _TIFFEmitErrorAboveMaxCumulatedMemAlloc(TIFF *tif,\n                                                    const
      char *pszFunction,\n                                                    tmsize_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFEmitErrorAboveMaxSingleMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:178,1
    - Dst: _TIFFEmitErrorAboveMaxCumulatedMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:187,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:194,1
    - Dst: _TIFFmalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: _TIFFmallocExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 78
    functionsReached:
    - _TIFFEmitErrorAboveMaxSingleMemAlloc
    - memcpy
    - _TIFFmalloc
    - _TIFFEmitErrorAboveMaxCumulatedMemAlloc
    linkageType: ''
    returnType: void
    signature: void *_TIFFmallocExt(TIFF *tif, tmsize_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFEmitErrorAboveMaxSingleMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:209,1
    - Dst: _TIFFEmitErrorAboveMaxCumulatedMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:221,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:228,1
    - Dst: _TIFFcalloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - tif
    - nmemb
    - siz
    argTypes:
    - TIFF*
    - tmsize_t
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 232
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 232
    functionName: _TIFFcallocExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 5
    functionsReached:
    - _TIFFcalloc
    - _TIFFEmitErrorAboveMaxSingleMemAlloc
    - memcpy
    - _TIFFEmitErrorAboveMaxCumulatedMemAlloc
    linkageType: ''
    returnType: void
    signature: void *_TIFFcallocExt(TIFF *tif, tmsize_t nmemb, tmsize_t siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFEmitErrorAboveMaxSingleMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:240,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:250,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:251,1
    - Dst: _TIFFEmitErrorAboveMaxCumulatedMemAlloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:258,1
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:268,1
    - Dst: _TIFFrealloc
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - tif
    - p
    - s
    argTypes:
    - TIFF*
    - void*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 272
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 272
    functionName: _TIFFreallocExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 9
    functionsReached:
    - _TIFFEmitErrorAboveMaxCumulatedMemAlloc
    - assert
    - _TIFFrealloc
    - _TIFFEmitErrorAboveMaxSingleMemAlloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *_TIFFreallocExt(TIFF *tif, void *p, tmsize_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:281,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:282,1
    - Dst: _TIFFfree
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - tif
    - p
    argTypes:
    - TIFF*
    - void*
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: _TIFFfreeExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 99
    functionsReached:
    - assert
    - memcpy
    - _TIFFfree
    linkageType: ''
    returnType: void
    signature: void _TIFFfreeExt(TIFF *tif, void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClientOpenExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - name
    - mode
    - clientdata
    - readproc
    - writeproc
    - seekproc
    - closeproc
    - sizeproc
    - mapproc
    - unmapproc
    argTypes:
    - char*
    - char*
    - thandle_t
    - TIFFReadWriteProc
    - TIFFReadWriteProc
    - TIFFSeekProc
    - TIFFCloseProc
    - TIFFSizeProc
    - TIFFMapFileProc
    - TIFFUnmapFileProc
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: TIFFClientOpen
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 4
    functionsReached:
    - TIFFClientOpenExt
    linkageType: ''
    returnType: TIFF
    signature: "TIFF *TIFFClientOpen(const char *name, const char *mode, thandle_t
      clientdata,\n                     TIFFReadWriteProc readproc, TIFFReadWriteProc
      writeproc,\n                     TIFFSeekProc seekproc, TIFFCloseProc closeproc,\n
      \                    TIFFSizeProc sizeproc, TIFFMapFileProc mapproc,\n                     TIFFUnmapFileProc
      unmapproc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:316,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:317,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:318,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:319,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:320,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:321,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:322,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:323,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:334,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:336,1
    - Dst: _TIFFgetMode
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:340,1
    - Dst: strlen
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:343,1
    - Dst: _TIFFErrorEarly
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:347,1
    - Dst: _TIFFErrorEarly
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:358,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:366,1
    - Dst: _TIFFErrorEarly
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:369,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:373,1
    - Dst: strcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:375,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:403,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:405,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:409,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:503,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:554,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:558,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:578,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:581,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:591,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:595,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:596,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:606,1
    - Dst: WriteOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:607,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:610,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:616,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:641,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:647,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:668,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:672,1
    - Dst: TIFFSwabLong
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:682,1
    - Dst: ReadOK
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:687,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:691,1
    - Dst: TIFFSwabShort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:696,1
    - Dst: TIFFSwabLong8
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:697,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:701,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:710,1
    - Dst: TIFFMapFileContents
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:741,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:744,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:761,1
    - Dst: TIFFReadDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:769,1
    - Dst: TIFFDefaultDirectory
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:780,1
    - Dst: TIFFCleanup
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:786,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:859,1
    - Dst: isUpSampled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:889,1
    - Dst: isFillOrder
      Src: /src/gdal/frmts/gtiff/libtiff/tif_open.c:894,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 307
    argCount: 11
    argNames:
    - name
    - mode
    - clientdata
    - readproc
    - writeproc
    - seekproc
    - closeproc
    - sizeproc
    - mapproc
    - unmapproc
    - opts
    argTypes:
    - char*
    - char*
    - thandle_t
    - TIFFReadWriteProc
    - TIFFReadWriteProc
    - TIFFSeekProc
    - TIFFCloseProc
    - TIFFSizeProc
    - TIFFMapFileProc
    - TIFFUnmapFileProc
    - TIFFOpenOptions*
    constantsTouched: []
    func_position:
      end: 945
      start: 300
    functionDepth: 9
    functionLinenumber: 300
    functionLinenumberEnd: 945
    functionName: TIFFClientOpenExt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_open.c
    functionUses: 3
    functionsReached:
    - TIFFReadDirectory
    - isUpSampled
    - _TIFFErrorEarly
    - _TIFFfreeExt
    - assert
    - isFillOrder
    - TIFFDefaultDirectory
    - TIFFErrorExtR
    - TIFFSwabShort
    - strlen
    - TIFFSwabLong8
    - _TIFFmallocExt
    - _TIFFSetDefaultCompressionState
    - _TIFFmemcpy
    - TIFFMapFileContents
    - _TIFFmemset
    - TIFFSwabLong
    - WriteOK
    - TIFFWarningExtR
    - _TIFFgetMode
    - TIFFSeekFile
    - isTiled
    - strcpy
    - TIFFCleanup
    - ReadOK
    linkageType: ''
    returnType: TIFF
    signature: "TIFF *TIFFClientOpenExt(const char *name, const char *mode,\n                        thandle_t
      clientdata, TIFFReadWriteProc readproc,\n                        TIFFReadWriteProc
      writeproc, TIFFSeekProc seekproc,\n                        TIFFCloseProc closeproc,
      TIFFSizeProc sizeproc,\n                        TIFFMapFileProc mapproc, TIFFUnmapFileProc
      unmapproc,\n                        TIFFOpenOptions *opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:463,1
    - Dst: _TIFFMergeFields
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:468,1
    - Dst: TIFFArrayCount
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:468,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:470,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:476,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:479,1
    - Dst: _TIFFmemset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:482,1
    - Dst: TIFFSetField
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - tif
    - scheme
    argTypes:
    - TIFF*
    - int
    constantsTouched: []
    func_position:
      end: 519
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 519
    functionName: TIFFInitOJPEG
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFMergeFields
    - assert
    - _TIFFmallocExt
    - TIFFArrayCount
    - TIFFSetField
    - _TIFFmemset
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int TIFFInitOJPEG(TIFF *tif, int scheme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:527,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:530,1
    - Dst: OJPEGSubsamplingCorrect
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:535,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:536,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:537,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:540,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:541,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:544,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:545,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:548,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:549,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:552,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 561
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 561
    functionName: OJPEGVGetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - va_arg
    - OJPEGSubsamplingCorrect
    linkageType: ''
    returnType: int
    signature: int OJPEGVGetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:575,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:578,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:582,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:583,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:588,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:593,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:598,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:604,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:609,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:614,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:620,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:625,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:630,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:636,1
    - Dst: va_arg
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:639,1
    - Dst: TIFFFieldWithTag
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:644,1
    - Dst: TIFFSetFieldBit
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:647,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 3
    argNames:
    - tif
    - tag
    - ap
    argTypes:
    - TIFF*
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 650
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 650
    functionName: OJPEGVSetField
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFFieldWithTag
    - va_arg
    - TIFFSetFieldBit
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGVSetField(TIFF *tif, uint32_t tag, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:657,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:658,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:659,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:661,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:662,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:664,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:666,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:668,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:669,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:671,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:673,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:675,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:676,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:678,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:680,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:682,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:683,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:685,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:686,1
    - Dst: TIFFFieldSet
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:687,1
    - Dst: fprintf
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:688,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - tif
    - fd
    - flags
    argTypes:
    - TIFF*
    - FILE*
    - long
    constantsTouched: []
    func_position:
      end: 692
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 692
    functionName: OJPEGPrintDir
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - fprintf
    - TIFFFieldSet
    linkageType: ''
    returnType: void
    signature: void OJPEGPrintDir(TIFF *tif, FILE *fd, long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: OJPEGFixupTags
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OJPEGFixupTags(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: OJPEGSetupDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGSetupDecode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGSubsamplingCorrect
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:715,1
    - Dst: OJPEGReadHeaderInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:718,1
    - Dst: OJPEGReadSecondarySos
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:723,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:726,1
    - Dst: OJPEGLibjpegSessionAbort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:734,1
    - Dst: OJPEGWriteHeaderInfo
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:754,1
    - Dst: OJPEGPreDecodeSkipRaw
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:764,1
    - Dst: OJPEGPreDecodeSkipScanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:769,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 776
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 776
    functionName: OJPEGPreDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - OJPEGWriteHeaderInfo
    - OJPEGReadHeaderInfo
    - OJPEGPreDecodeSkipRaw
    - OJPEGReadSecondarySos
    - isTiled
    - OJPEGPreDecodeSkipScanlines
    - OJPEGLibjpegSessionAbort
    - OJPEGSubsamplingCorrect
    linkageType: ''
    returnType: int
    signature: int OJPEGPreDecode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_read_raw_data_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:798,1
    - Dst: jpeg_read_raw_data_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 813
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 813
    functionName: OJPEGPreDecodeSkipRaw
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - jpeg_read_raw_data_encap
    linkageType: ''
    returnType: int
    signature: int OJPEGPreDecodeSkipRaw(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:822,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:825,1
    - Dst: jpeg_read_scanlines_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 836
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 836
    functionName: OJPEGPreDecodeSkipScanlines
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - TIFFErrorExtR
    - jpeg_read_scanlines_encap
    - _TIFFmallocExt
    linkageType: ''
    returnType: int
    signature: int OJPEGPreDecodeSkipScanlines(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:845,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:846,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:852,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:860,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:866,1
    - Dst: OJPEGDecodeRaw
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:871,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:873,1
    - Dst: OJPEGDecodeScanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:879,1
    - Dst: memset
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:881,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 886
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 886
    functionName: OJPEGDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - OJPEGDecodeScanlines
    - memset
    - OJPEGDecodeRaw
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGDecode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:903,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:906,1
    - Dst: jpeg_read_raw_data_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 950
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 950
    functionName: OJPEGDecodeRaw
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    - jpeg_read_raw_data_encap
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGDecodeRaw(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:960,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:963,1
    - Dst: jpeg_read_scanlines_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 975
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 975
    functionName: OJPEGDecodeScanlines
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - jpeg_read_scanlines_encap
    - assert
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGDecodeScanlines(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:993,1
    - Dst: OJPEGLibjpegSessionAbort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tif
    - buf
    - cc
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    constantsTouched: []
    func_position:
      end: 997
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 997
    functionName: OJPEGPostDecode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - OJPEGLibjpegSessionAbort
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGPostDecode(TIFF *tif, uint8_t *buf, tmsize_t cc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1006
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1006
    functionName: OJPEGSetupEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGSetupEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: OJPEGPreEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGPreEncode(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - buf
    - cc
    - s
    argTypes:
    - TIFF*
    - uint8_t*
    - tmsize_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1028
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1028
    functionName: OJPEGEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGEncode(TIFF *tif, uint8_t *buf, tmsize_t cc, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1037
    functionName: OJPEGPostEncode
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGPostEncode(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1048,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1050,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1052,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1054,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1056,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1058,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1060,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1062,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1064,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1066,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1068,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1070,1
    - Dst: OJPEGLibjpegSessionAbort
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1072,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1074,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1076,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1078,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1079,1
    - Dst: _TIFFSetDefaultCompressionState
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1081,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1039
    functionDepth: 3
    functionLinenumber: 1039
    functionLinenumberEnd: 1083
    functionName: OJPEGCleanup
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - _TIFFSetDefaultCompressionState
    - _TIFFfreeExt
    - OJPEGLibjpegSessionAbort
    linkageType: ''
    returnType: void
    signature: void OJPEGCleanup(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1092,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1098,1
    - Dst: OJPEGReadHeaderInfoSec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1111,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1122,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1130,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1141,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1149,1
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1161,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1168
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1168
    functionName: OJPEGSubsamplingCorrect
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - TIFFWarningExtR
    - assert
    - OJPEGReadHeaderInfoSec
    linkageType: ''
    returnType: void
    signature: void OJPEGSubsamplingCorrect(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1174,1
    - Dst: isTiled
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1177,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1205,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1225,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1230,1
    - Dst: OJPEGReadHeaderInfoSec
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1240,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1251
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1251
    functionName: OJPEGReadHeaderInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - OJPEGReadHeaderInfoSec
    - assert
    - isTiled
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfo(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1257,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1258,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1259,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1260,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1279,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1285,1
    - Dst: OJPEGReadHeaderInfoSecStreamSos
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1295,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - tif
    - s
    argTypes:
    - TIFF*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1308
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1308
    functionName: OJPEGReadSecondarySos
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    - OJPEGReadByte
    - OJPEGReadHeaderInfoSecStreamSos
    linkageType: ''
    returnType: int
    signature: int OJPEGReadSecondarySos(TIFF *tif, uint16_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_std_error
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1321,1
    - Dst: jpeg_create_decompress_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1327,1
    - Dst: jpeg_read_header_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1343,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1356,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1357,1
    - Dst: _TIFFcallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1387,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1390,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1401,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1405,1
    - Dst: jpeg_start_decompress_encap
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1446,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1451,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1463,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 88
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1475
      start: 1310
    functionDepth: 3
    functionLinenumber: 1310
    functionLinenumberEnd: 1475
    functionName: OJPEGWriteHeaderInfo
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - jpeg_std_error
    - jpeg_read_header_encap
    - assert
    - _TIFFcallocExt
    - jpeg_start_decompress_encap
    - _TIFFmallocExt
    - jpeg_create_decompress_encap
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGWriteHeaderInfo(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1480,1
    - Dst: jpeg_destroy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1483
    functionName: OJPEGLibjpegSessionAbort
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 3
    functionsReached:
    - assert
    - jpeg_destroy
    linkageType: ''
    returnType: void
    signature: void OJPEGLibjpegSessionAbort(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetFileSize
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1493,1
    - Dst: OJPEGReadBytePeek
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1520,1
    - Dst: OJPEGReadByteAdvance
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1524,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1527,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1554,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1559,1
    - Dst: OJPEGReadSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1563,1
    - Dst: OJPEGReadHeaderInfoSecStreamDri
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1566,1
    - Dst: OJPEGReadHeaderInfoSecStreamDqt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1570,1
    - Dst: OJPEGReadHeaderInfoSecStreamDht
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1574,1
    - Dst: OJPEGReadHeaderInfoSecStreamSof
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1580,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1588,1
    - Dst: OJPEGReadHeaderInfoSecStreamSos
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1589,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1593,1
    - Dst: OJPEGReadHeaderInfoSecTablesQTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1602,1
    - Dst: OJPEGReadHeaderInfoSecTablesDcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1613,1
    - Dst: OJPEGReadHeaderInfoSecTablesAcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1615,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 111
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1621
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1621
    functionName: OJPEGReadHeaderInfoSec
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - OJPEGReadHeaderInfoSecTablesDcTable
    - OJPEGReadByte
    - OJPEGReadHeaderInfoSecTablesQTable
    - OJPEGReadByteAdvance
    - OJPEGReadHeaderInfoSecStreamDri
    - OJPEGReadHeaderInfoSecStreamDqt
    - assert
    - OJPEGReadHeaderInfoSecStreamDht
    - OJPEGReadHeaderInfoSecStreamSof
    - OJPEGReadHeaderInfoSecTablesAcTable
    - OJPEGReadWord
    - OJPEGReadHeaderInfoSecStreamSos
    - OJPEGReadSkip
    - TIFFGetFileSize
    - OJPEGReadBytePeek
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSec(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1630,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1634,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1641
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1641
    functionName: OJPEGReadHeaderInfoSecStreamDri
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - OJPEGReadWord
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecStreamDri(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1653,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1658,1
    - Dst: OJPEGReadSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1662,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1670,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1674,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1677,1
    - Dst: OJPEGReadBlock
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1685,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1687,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1693,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1694,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1698,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1704
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1704
    functionName: OJPEGReadHeaderInfoSecStreamDqt
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - OJPEGReadBlock
    - _TIFFmallocExt
    - OJPEGReadWord
    - OJPEGReadSkip
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecStreamDqt(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1718,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1723,1
    - Dst: OJPEGReadSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1728,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1733,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1736,1
    - Dst: OJPEGReadBlock
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1744,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1746,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1754,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1755,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1759,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1766,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1767,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1773,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1774,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1778,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 1783
      start: 1706
    functionDepth: 3
    functionLinenumber: 1706
    functionLinenumberEnd: 1783
    functionName: OJPEGReadHeaderInfoSecStreamDht
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - _TIFFfreeExt
    - OJPEGReadBlock
    - _TIFFmallocExt
    - OJPEGReadWord
    - OJPEGReadSkip
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecStreamDht(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1798,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1804,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1809,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1816,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1824,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1831,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1836,1
    - Dst: OJPEGReadSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1843,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1847,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1852,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1858,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1862,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1868,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1876,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1881,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1890,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1895,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1926,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1936,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1945,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 103
    argCount: 2
    argNames:
    - tif
    - marker_id
    argTypes:
    - TIFF*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1953
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1953
    functionName: OJPEGReadHeaderInfoSecStreamSof
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - OJPEGReadSkip
    - OJPEGReadWord
    - OJPEGReadByte
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecStreamSof(TIFF *tif, uint8_t marker_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1964,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1967,1
    - Dst: OJPEGReadWord
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1971,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1975,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1979,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1983,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1990,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:1994,1
    - Dst: OJPEGReadSkip
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2002
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 2002
    functionName: OJPEGReadHeaderInfoSecStreamSos
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - OJPEGReadByte
    - assert
    - OJPEGReadWord
    - OJPEGReadSkip
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecStreamSos(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2015,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2028,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2033,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2036,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2045,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2046,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2049,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2053,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2061
      start: 2004
    functionDepth: 3
    functionLinenumber: 2004
    functionLinenumberEnd: 2061
    functionName: OJPEGReadHeaderInfoSecTablesQTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFSeekFile
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecTablesQTable(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2076,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2089,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2094,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2095,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2102,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2105,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2116,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2119,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2131
      start: 2063
    functionDepth: 3
    functionLinenumber: 2063
    functionLinenumberEnd: 2131
    functionName: OJPEGReadHeaderInfoSecTablesDcTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFSeekFile
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecTablesDcTable(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2146,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2159,1
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2164,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2165,1
    - Dst: _TIFFmallocExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2172,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2175,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2186,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2189,1
    - Dst: _TIFFfreeExt
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2193,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2201
      start: 2133
    functionDepth: 3
    functionLinenumber: 2133
    functionLinenumberEnd: 2201
    functionName: OJPEGReadHeaderInfoSecTablesAcTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - TIFFReadFile
    - _TIFFfreeExt
    - _TIFFmallocExt
    - TIFFSeekFile
    - TIFFErrorExtR
    linkageType: ''
    returnType: int
    signature: int OJPEGReadHeaderInfoSecTablesAcTable(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFSeekFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2216,1
    - Dst: TIFFReadFile
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2222,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2225,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2226,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2227,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2228,1
    - Dst: TIFFGetStrileOffsetWithErr
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - sp
    argTypes:
    - OJPEGState*
    constantsTouched: []
    func_position:
      end: 2294
      start: 2203
    functionDepth: 5
    functionLinenumber: 2203
    functionLinenumberEnd: 2294
    functionName: OJPEGReadBufferFill
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - assert
    - TIFFReadFile
    - TIFFSeekFile
    - TIFFGetStrileOffsetWithErr
    linkageType: ''
    returnType: int
    signature: int OJPEGReadBufferFill(OJPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadBufferFill
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2300,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sp
    - byte
    argTypes:
    - OJPEGState*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2308
      start: 2296
    functionDepth: 6
    functionLinenumber: 2296
    functionLinenumberEnd: 2308
    functionName: OJPEGReadByte
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 4
    functionsReached:
    - OJPEGReadBufferFill
    - assert
    linkageType: ''
    returnType: int
    signature: int OJPEGReadByte(OJPEGState *sp, uint8_t *byte)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadBufferFill
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2314,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sp
    - byte
    argTypes:
    - OJPEGState*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2320
      start: 2310
    functionDepth: 6
    functionLinenumber: 2310
    functionLinenumberEnd: 2320
    functionName: OJPEGReadBytePeek
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - OJPEGReadBufferFill
    - assert
    linkageType: ''
    returnType: int
    signature: int OJPEGReadBytePeek(OJPEGState *sp, uint8_t *byte)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - OJPEGState*
    constantsTouched: []
    func_position:
      end: 2327
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2327
    functionName: OJPEGReadByteAdvance
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGReadByteAdvance(OJPEGState *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2332,1
    - Dst: OJPEGReadByte
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sp
    - word
    argTypes:
    - OJPEGState*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 2339
      start: 2329
    functionDepth: 7
    functionLinenumber: 2329
    functionLinenumberEnd: 2339
    functionName: OJPEGReadWord
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 6
    functionsReached:
    - OJPEGReadByte
    linkageType: ''
    returnType: int
    signature: int OJPEGReadWord(OJPEGState *sp, uint16_t *word)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2346,1
    - Dst: OJPEGReadBufferFill
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2353,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2355,1
    - Dst: _TIFFmemcpy
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - sp
    - len
    - mem
    argTypes:
    - OJPEGState*
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 2367
      start: 2341
    functionDepth: 6
    functionLinenumber: 2341
    functionLinenumberEnd: 2367
    functionName: OJPEGReadBlock
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - OJPEGReadBufferFill
    - _TIFFmemcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int OJPEGReadBlock(OJPEGState *sp, uint16_t len, void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - sp
    - len
    argTypes:
    - OJPEGState*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2396
      start: 2369
    functionDepth: 0
    functionLinenumber: 2369
    functionLinenumberEnd: 2396
    functionName: OJPEGReadSkip
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGReadSkip(OJPEGState *sp, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2404,1
    - Dst: OJPEGWriteStreamSoi
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2408,1
    - Dst: OJPEGWriteStreamQTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2411,1
    - Dst: OJPEGWriteStreamQTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2414,1
    - Dst: OJPEGWriteStreamQTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2417,1
    - Dst: OJPEGWriteStreamQTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2420,1
    - Dst: OJPEGWriteStreamDcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2423,1
    - Dst: OJPEGWriteStreamDcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2426,1
    - Dst: OJPEGWriteStreamDcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2429,1
    - Dst: OJPEGWriteStreamDcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2432,1
    - Dst: OJPEGWriteStreamAcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2435,1
    - Dst: OJPEGWriteStreamAcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2438,1
    - Dst: OJPEGWriteStreamAcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2441,1
    - Dst: OJPEGWriteStreamAcTable
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2444,1
    - Dst: OJPEGWriteStreamDri
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2447,1
    - Dst: OJPEGWriteStreamSof
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2450,1
    - Dst: OJPEGWriteStreamSos
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2453,1
    - Dst: OJPEGWriteStreamCompressed
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2456,1
    - Dst: OJPEGWriteStreamRst
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2460,1
    - Dst: OJPEGWriteStreamEoi
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2463,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2468
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2468
    functionName: OJPEGWriteStream
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - OJPEGWriteStreamQTable
    - OJPEGWriteStreamDcTable
    - OJPEGWriteStreamRst
    - assert
    - OJPEGWriteStreamSoi
    - OJPEGWriteStreamDri
    - OJPEGWriteStreamAcTable
    - OJPEGWriteStreamEoi
    - OJPEGWriteStreamSof
    - OJPEGWriteStreamSos
    - OJPEGWriteStreamCompressed
    linkageType: ''
    returnType: int
    signature: int OJPEGWriteStream(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2479
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2479
    functionName: OJPEGWriteStreamSoi
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamSoi(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - table_index
    - mem
    - len
    argTypes:
    - TIFF*
    - uint8_t
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2491
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2491
    functionName: OJPEGWriteStreamQTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OJPEGWriteStreamQTable(TIFF *tif, uint8_t table_index, void **mem,\n
      \                                  uint32_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - table_index
    - mem
    - len
    argTypes:
    - TIFF*
    - uint8_t
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2503
      start: 2493
    functionDepth: 0
    functionLinenumber: 2493
    functionLinenumberEnd: 2503
    functionName: OJPEGWriteStreamDcTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OJPEGWriteStreamDcTable(TIFF *tif, uint8_t table_index, void
      **mem,\n                                    uint32_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - tif
    - table_index
    - mem
    - len
    argTypes:
    - TIFF*
    - uint8_t
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2515
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2515
    functionName: OJPEGWriteStreamAcTable
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OJPEGWriteStreamAcTable(TIFF *tif, uint8_t table_index, void
      **mem,\n                                    uint32_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2533
      start: 2517
    functionDepth: 0
    functionLinenumber: 2517
    functionLinenumberEnd: 2533
    functionName: OJPEGWriteStreamDri
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamDri(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2539,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2570
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2570
    functionName: OJPEGWriteStreamSof
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamSof(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2576,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2602
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2602
    functionName: OJPEGWriteStreamSos
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamSos(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGReadBufferFill
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2609,1
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2634
      start: 2604
    functionDepth: 6
    functionLinenumber: 2604
    functionLinenumberEnd: 2634
    functionName: OJPEGWriteStreamCompressed
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - OJPEGReadBufferFill
    - assert
    linkageType: ''
    returnType: int
    signature: int OJPEGWriteStreamCompressed(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2648
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2648
    functionName: OJPEGWriteStreamRst
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamRst(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tif
    - mem
    - len
    argTypes:
    - TIFF*
    - void**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2658
      start: 2650
    functionDepth: 0
    functionLinenumber: 2650
    functionLinenumberEnd: 2658
    functionName: OJPEGWriteStreamEoi
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void OJPEGWriteStreamEoi(TIFF *tif, void **mem, uint32_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2664,1
    - Dst: jpeg_create_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sp
    - cinfo
    argTypes:
    - OJPEGState*
    - jpeg_decompress_struct*
    constantsTouched: []
    func_position:
      end: 2671
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2671
    functionName: jpeg_create_decompress_encap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - SETJMP
    - jpeg_create_decompress
    linkageType: ''
    returnType: int
    signature: "int jpeg_create_decompress_encap(OJPEGState *sp,\n                                        jpeg_decompress_struct
      *cinfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2678,1
    - Dst: jpeg_read_header
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sp
    - cinfo
    - require_image
    argTypes:
    - OJPEGState*
    - jpeg_decompress_struct*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2685
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2685
    functionName: jpeg_read_header_encap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - SETJMP
    - jpeg_read_header
    linkageType: ''
    returnType: int
    signature: "int jpeg_read_header_encap(OJPEGState *sp, jpeg_decompress_struct
      *cinfo,\n                                  uint8_t require_image)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2692,1
    - Dst: jpeg_start_decompress
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sp
    - cinfo
    argTypes:
    - OJPEGState*
    - jpeg_decompress_struct*
    constantsTouched: []
    func_position:
      end: 2699
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2699
    functionName: jpeg_start_decompress_encap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 1
    functionsReached:
    - jpeg_start_decompress
    - SETJMP
    linkageType: ''
    returnType: int
    signature: "int jpeg_start_decompress_encap(OJPEGState *sp,\n                                       jpeg_decompress_struct
      *cinfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2707,1
    - Dst: jpeg_read_scanlines
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - sp
    - cinfo
    - scanlines
    - max_lines
    argTypes:
    - OJPEGState*
    - jpeg_decompress_struct*
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2714
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2714
    functionName: jpeg_read_scanlines_encap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - jpeg_read_scanlines
    - SETJMP
    linkageType: ''
    returnType: int
    signature: "int jpeg_read_scanlines_encap(OJPEGState *sp,\n                                     jpeg_decompress_struct
      *cinfo,\n                                     void *scanlines, uint32_t max_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2722,1
    - Dst: jpeg_read_raw_data
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - sp
    - cinfo
    - data
    - max_lines
    argTypes:
    - OJPEGState*
    - jpeg_decompress_struct*
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2729
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2729
    functionName: jpeg_read_raw_data_encap
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 2
    functionsReached:
    - SETJMP
    - jpeg_read_raw_data
    linkageType: ''
    returnType: int
    signature: "int jpeg_read_raw_data_encap(OJPEGState *sp,\n                                    jpeg_decompress_struct
      *cinfo, void *data,\n                                    uint32_t max_lines)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LONGJMP
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tif
    argTypes:
    - TIFF*
    constantsTouched: []
    func_position:
      end: 2737
      start: 2733
    functionDepth: 0
    functionLinenumber: 2733
    functionLinenumberEnd: 2737
    functionName: jpeg_encap_unwind
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - LONGJMP
    linkageType: ''
    returnType: void
    signature: void jpeg_encap_unwind(TIFF *tif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFWarningExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - jpeg_common_struct*
    constantsTouched: []
    func_position:
      end: 2745
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2745
    functionName: OJPEGLibjpegJpegErrorMgrOutputMessage
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - TIFFWarningExtR
    linkageType: ''
    returnType: void
    signature: void OJPEGLibjpegJpegErrorMgrOutputMessage(jpeg_common_struct *cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2751,1
    - Dst: jpeg_encap_unwind
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - jpeg_common_struct*
    constantsTouched: []
    func_position:
      end: 2753
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2753
    functionName: OJPEGLibjpegJpegErrorMgrErrorExit
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_encap_unwind
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: void OJPEGLibjpegJpegErrorMgrErrorExit(jpeg_common_struct *cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - jpeg_decompress_struct*
    constantsTouched: []
    func_position:
      end: 2758
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2758
    functionName: OJPEGLibjpegJpegSourceMgrInitSource
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OJPEGLibjpegJpegSourceMgrInitSource(jpeg_decompress_struct *cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OJPEGWriteStream
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2767,1
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2769,1
    - Dst: jpeg_encap_unwind
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - jpeg_decompress_struct*
    constantsTouched: []
    func_position:
      end: 2775
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2775
    functionName: OJPEGLibjpegJpegSourceMgrFillInputBuffer
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - OJPEGWriteStream
    - jpeg_encap_unwind
    - TIFFErrorExtR
    linkageType: ''
    returnType: boolean
    signature: boolean OJPEGLibjpegJpegSourceMgrFillInputBuffer(jpeg_decompress_struct
      *cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2783,1
    - Dst: jpeg_encap_unwind
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - jpeg_decompress_struct*
    - long
    constantsTouched: []
    func_position:
      end: 2785
      start: 2777
    functionDepth: 1
    functionLinenumber: 2777
    functionLinenumberEnd: 2785
    functionName: OJPEGLibjpegJpegSourceMgrSkipInputData
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_encap_unwind
    - TIFFErrorExtR
    linkageType: ''
    returnType: void
    signature: "void OJPEGLibjpegJpegSourceMgrSkipInputData(jpeg_decompress_struct
      *cinfo,\n                                       long num_bytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIFFErrorExtR
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2797,1
    - Dst: jpeg_encap_unwind
      Src: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c:2798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cinfo
    - desired
    argTypes:
    - jpeg_decompress_struct*
    - int
    constantsTouched: []
    func_position:
      end: 2800
      start: 2791
    functionDepth: 1
    functionLinenumber: 2791
    functionLinenumberEnd: 2800
    functionName: OJPEGLibjpegJpegSourceMgrResyncToRestart
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_encap_unwind
    - TIFFErrorExtR
    linkageType: ''
    returnType: boolean
    signature: "boolean OJPEGLibjpegJpegSourceMgrResyncToRestart(jpeg_decompress_struct
      *cinfo,\n                                         int desired)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - jpeg_decompress_struct*
    constantsTouched: []
    func_position:
      end: 2808
      start: 2805
    functionDepth: 0
    functionLinenumber: 2805
    functionLinenumberEnd: 2808
    functionName: OJPEGLibjpegJpegSourceMgrTermSource
    functionSourceFile: /src/gdal/frmts/gtiff/libtiff/tif_ojpeg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OJPEGLibjpegJpegSourceMgrTermSource(jpeg_decompress_struct *cinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dw
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: countonbits
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countonbits(GUInt32 dw)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - GUInt32
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: findfirstonbit
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int findfirstonbit(GUInt32 n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BMPRasterBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 275
    functionName: GDALPamRasterBand
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - BMPRasterBand
    linkageType: ''
    returnType: class BMPRasterBand
    signature: class BMPRasterBand GDALPamRasterBand
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:291,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:294,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:298,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:309,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:313,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - BMPDataset*
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 314
    functionName: BMPRasterBand::BMPRasterBand
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - CPLDebug
    - VSIMalloc
    - static_cast<GByte *>
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void BMPRasterBand::BMPRasterBand(BMPDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: BMPRasterBand::~BMPRasterBand()
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void BMPRasterBand::~BMPRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BMPDataset *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:332,1
    - Dst: BMPDataset*::GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:337,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:338,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:341,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:343,1
    - Dst: memset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:349,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:354,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:361,1
    - Dst: memset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:366,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:371,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:390,1
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:396,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:405,1
    - Dst: GDALSwapWords
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:407,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:428,1
    - Dst: findfirstonbit
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:435,1
    - Dst: countonbits
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:436,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:439,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 112
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 527
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 527
    functionName: BMPRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - countonbits
    - reinterpret_cast<GUInt16 *>
    - memcpy
    - findfirstonbit
    - VSIFSeekL
    - cpl::down_cast<BMPDataset *>
    - GDALSwapWords
    - memset
    - VSIFReadL
    - static_cast<GByte *>
    - CPLError
    - static_cast<vsi_l_offset>
    - BMPDataset*::GetRasterYSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr BMPRasterBand::IReadBlock(int /* nBlockXOff */, int nBlockYOff,\n
      \                                void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BMPDataset *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:535,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:537,1
    - Dst: BMPDataset*::GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:541,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:542,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:543,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:545,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:548,1
    - Dst: memset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:554,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:555,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:556,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:565,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:567,1
    - Dst: VSIStrerror
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 574
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 574
    functionName: BMPRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - cpl::down_cast<BMPDataset *>
    - memset
    - CPLAssert
    - VSIFWriteL
    - VSIFReadL
    - CPLError
    - static_cast<vsi_l_offset>
    - BMPDataset*::GetRasterYSize
    - VSIStrerror
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr BMPRasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff, void
      *pImage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BMPDataset *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: BMPRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<BMPDataset *>
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *BMPRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BMPDataset *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:593,1
    - Dst: GDALColorTable*::GetColorEntryCount
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:597,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:602,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:604,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:605,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:606,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:607,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:616,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:626,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:627,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:628,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - poColorTable
    argTypes:
    - GDALColorTable*
    constantsTouched: []
    func_position:
      end: 640
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 640
    functionName: BMPRasterBand::SetColorTable
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - GDALColorTable*::GetColorEntryCount
    - VSIFSeekL
    - GDALColorTable*::GetColorEntryAsRGB
    - CPLRealloc
    - VSIFWriteL
    - cpl::down_cast<BMPDataset *>
    - CPL_LSBWORD32
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr BMPRasterBand::SetColorTable(GDALColorTable *poColorTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<BMPDataset *>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 667
    functionName: BMPRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - cpl::down_cast<BMPDataset *>
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp BMPRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:701,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:702,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:702,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:704,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:705,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:705,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:712,1
    - Dst: static_cast<GUInt32>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:716,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:719,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:719,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:722,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:723,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:729,1
    - Dst: VSIMalloc
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:730,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:733,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:735,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:740,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:741,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:743,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:746,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:748,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:792,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:793,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:794,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:796,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:799,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:807,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:860,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:861,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:862,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:864,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:867,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:875,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:897,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:901,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 124
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - BMPDataset*
    - int
    constantsTouched: []
    func_position:
      end: 903
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 903
    functionName: BMPComprRasterBand::BMPComprRasterBand
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - simple_max
    - static_cast<int>
    - static_cast<GUInt32>
    - VSIFSeekL
    - CPLDebug
    - VSIMalloc
    - GetRasterYSize
    - CPLAssert
    - VSIFReadL
    - CPLError
    - CPLFree
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void BMPComprRasterBand::BMPComprRasterBand(BMPDataset *poDSIn, int
      nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:911,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: BMPComprRasterBand::~BMPComprRasterBand()
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void BMPComprRasterBand::~BMPComprRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:922,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:923,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - CPL_UNUSED
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 928
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 928
    functionName: BMPComprRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterYSize
    - memcpy
    - GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr BMPComprRasterBand::IReadBlock(CPL_UNUSED int nBlockXOff, int
      nBlockYOff,\n                                      void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:940,1
    - Dst: memset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 949
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 949
    functionName: BMPDataset::BMPDataset
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void BMPDataset::BMPDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:957,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:962,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:964,1
    - Dst: VSIFTruncateL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:966,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:970,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:973,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 976
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 976
    functionName: BMPDataset::~BMPDataset()
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFCloseL
    - VSIFSeekL
    - VSIFTruncateL
    - VSIFTellL
    - CPLFree
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void BMPDataset::~BMPDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:986,1
    - Dst: GDALPamDataset::GetGeoTransform
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1006
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1006
    functionName: BMPDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - GDALPamDataset::GetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr BMPDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1016,1
    - Dst: GDALWriteWorldFile
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1019,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1021,1
    - Dst: GDALPamDataset::SetGeoTransform
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 1028
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1028
    functionName: BMPDataset::SetGeoTransform
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - memcpy
    - GDALWriteWorldFile
    - GDALPamDataset::SetGeoTransform
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr BMPDataset::SetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset::BlockBasedRasterIO
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1049,1
    - Dst: GDALDataset::IRasterIO
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1058
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1058
    functionName: BMPDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALDataset::BlockBasedRasterIO
    - GDALDataset::IRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr BMPDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int nYOff,\n
      \                            int nXSize, int nYSize, void *pData, int nBufXSize,\n
      \                            int nBufYSize, GDALDataType eBufType,\n                             int
      nBandCount, BANDMAP_TYPE panBandMap,\n                             GSpacing
      nPixelSpace, GSpacing nLineSpace,\n                             GSpacing nBandSpace,\n
      \                            GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1074,1
    - Dst: CPL_LSBPTR32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1076,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1082
    functionName: BMPDataset::Identify
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CPL_LSBPTR32
    linkageType: ''
    returnType: int
    signature: int BMPDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BMPDataset::Identify
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1090,1
    - Dst: BMPDataset::BMPDataset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1096,1
    - Dst: VSIStatL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1100,1
    - Dst: memcpy
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1109,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1111,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1116,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1117,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1118,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1136,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1137,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1139,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1155,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1156,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1157,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1158,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1160,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1162,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1166,1
    - Dst: static_cast<BMPComprMethod>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1171,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1172,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1173,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1174,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1175,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1176,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1184,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1185,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1186,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1189,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1190,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1191,1
    - Dst: CPL_SWAP16PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1192,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1193,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1194,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1195,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1196,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1197,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1199,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1200,1
    - Dst: CPL_SWAP32PTR
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1201,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1216,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1217,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1218,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1219,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1220,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1221,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1222,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1223,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1237,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1264,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1284,1
    - Dst: VSI_MALLOC2_VERBOSE
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1295,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1302,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1303,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1306,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1309,1
    - Dst: GDALColorTable::GDALColorTable
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1315,1
    - Dst: BMPDataset*::poColorTable::SetColorEntry
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1326,1
    - Dst: BMPRasterBand::BMPRasterBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1348,1
    - Dst: BMPDataset*::SetBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1349,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1352,1
    - Dst: BMPComprRasterBand::BMPComprRasterBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1366,1
    - Dst: BMPDataset*::SetBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1367,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1370,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1388,1
    - Dst: GDALReadWorldFile
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1392,1
    - Dst: BMPDataset*::SetDescription
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1398,1
    - Dst: BMPDataset*::TryLoadXML
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1399,1
    - Dst: BMPDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1404,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 169
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1407
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1407
    functionName: BMPDataset::Open
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GUIntBig>
    - BMPComprRasterBand::BMPComprRasterBand
    - CPL_LSBWORD16
    - memcpy
    - CPLDebug
    - GDALColorTable::GDALColorTable
    - CPL_SWAP32PTR
    - CPLError
    - static_cast<vsi_l_offset>
    - GDALReadWorldFile
    - BMPDataset*::SetDescription
    - BMPRasterBand::BMPRasterBand
    - BMPDataset*::oOvManager::Initialize
    - static_cast<BMPComprMethod>
    - BMPDataset::Identify
    - VSIFSeekL
    - BMPDataset*::TryLoadXML
    - VSIFReadL
    - CPL_SWAP16PTR
    - BMPDataset::BMPDataset
    - VSIStatL
    - VSI_MALLOC2_VERBOSE
    - BMPDataset*::SetBand
    - BMPDataset*::poColorTable::SetColorEntry
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *BMPDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1420,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1423,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1430,1
    - Dst: BMPDataset::BMPDataset
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1440,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1443,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1446,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1452,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1479,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1499,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1499,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1526,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1531,1
    - Dst: static_cast<vsi_l_offset>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1536,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1538,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1540,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1544,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1545,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1547,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1549,1
    - Dst: simple_max
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1553,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1554,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1558,1
    - Dst: static_cast<uint32_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1559,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1570,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1572,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1585,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1586,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1587,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1588,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1589,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1590,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1591,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1592,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1594,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1595,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1596,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1597,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1598,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1599,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1600,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1601,1
    - Dst: CPL_LSBWORD16
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1602,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1603,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1604,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1605,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1606,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1607,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1608,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1609,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1610,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1611,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1612,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1613,1
    - Dst: CPL_LSBWORD32
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1614,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1615,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1619,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1620,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1623,1
    - Dst: CPLError
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1625,1
    - Dst: BMPDataset*::SetBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1643,1
    - Dst: BMPRasterBand::BMPRasterBand
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1643,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1649,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 119
    argCount: 6
    argNames:
    - pszFilename
    - nXSize
    - nYSize
    - nBandsIn
    - eType
    - papszOptions
    argTypes:
    - char*
    - int
    - int
    - int
    - GDALDataType
    - char**
    constantsTouched: []
    func_position:
      end: 1653
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1653
    functionName: BMPDataset::Create
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALGetDataTypeName
    - simple_max
    - static_cast<size_t>
    - CPL_LSBWORD32
    - CPL_LSBWORD16
    - CPLStrdup
    - CPLFetchBool
    - BMPRasterBand::BMPRasterBand
    - CPLDebug
    - VSIFOpenL
    - static_cast<uint32_t>
    - VSIFWriteL
    - BMPDataset*::SetBand
    - CPLError
    - static_cast<vsi_l_offset>
    - CPLMalloc
    - BMPDataset::BMPDataset
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *BMPDataset::Create(const char *pszFilename, int nXSize,
      int nYSize,\n                                int nBandsIn, GDALDataType eType,\n
      \                               char **papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1662,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1665,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1667,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1668,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1669,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1671,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1672,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1673,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1674,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1680,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/bmp/bmpdataset.cpp:1686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1687
    functionName: GDALRegister_BMP
    functionSourceFile: /src/gdal/frmts/bmp/bmpdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_BMP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:30,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:30,1
    - Dst: strncpy
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:32,1
    - Dst: atoi
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pszField
    - nWidth
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: JDEMGetField
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLAssert
    - static_cast<int>
    - strncpy
    - atoi
    linkageType: ''
    returnType: int
    signature: int JDEMGetField(const char *pszField, int nWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszField
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: JDEMGetAngle
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double JDEMGetAngle(const char *pszField)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JDEMDataset*::GetRasterXSize
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:112,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - JDEMDataset*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: JDEMRasterBand::JDEMRasterBand
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterXSize
    - JDEMDataset*::GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void JDEMRasterBand::JDEMRasterBand(JDEMDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFree
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: JDEMRasterBand::~JDEMRasterBand()
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - VSIFree
    linkageType: ''
    returnType: void
    signature: void JDEMRasterBand::~JDEMRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<JDEMDataset *>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:140,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:147,1
    - Dst: VSI_MALLOC_VERBOSE
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:147,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:155,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:156,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:158,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:160,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:165,1
    - Dst: reinterpret_cast<char *>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:165,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:167,1
    - Dst: JDEMGetField
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:173,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:175,1
    - Dst: static_cast<float *>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:182,1
    - Dst: JDEMGetField
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 186
    functionName: JDEMRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPLError
    - reinterpret_cast<char *>
    - static_cast<float *>
    - VSIFSeekL
    - JDEMGetField
    - cpl::down_cast<JDEMDataset *>
    - CPL_IGNORE_RET_VAL
    - VSIFReadL
    - static_cast<char *>
    - EQUALN
    - VSI_MALLOC_VERBOSE
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JDEMRasterBand::IReadBlock(int /* nBlockXOff */, int nBlockYOff,\n
      \                                 void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fill_n
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:200,1
    - Dst: CPL_ARRAYSIZE
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:200,1
    - Dst: static_cast<GByte>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:200,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:201,1
    - Dst: importFromEPSG
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: JDEMDataset::JDEMDataset
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_ARRAYSIZE
    - std::fill_n
    - static_cast<GByte>
    - SetAxisMappingStrategy
    - importFromEPSG
    linkageType: ''
    returnType: void
    signature: void JDEMDataset::JDEMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:212,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:214,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: JDEMDataset::~JDEMDataset()
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - CPL_IGNORE_RET_VAL
    - FlushCache
    - VSIFCloseL
    linkageType: ''
    returnType: void
    signature: void JDEMDataset::~JDEMDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:233,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 240
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 240
    functionName: JDEMDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - GetRasterYSize
    - GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr JDEMDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: JDEMDataset::GetSpatialRef
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OGRSpatialReference
    signature: OGRSpatialReference *JDEMDataset::GetSpatialRef() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:266,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:267,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:268,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:269,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:270,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:271,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 10
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 290
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 290
    functionName: JDEMDataset::Identify
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int JDEMDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JDEMDataset::Identify
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:300,1
    - Dst: ReportUpdateNotSupportedByDriver
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:306,1
    - Dst: std::make_unique<JDEMDataset>
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:317,1
    - Dst: swap
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:320,1
    - Dst: memcpy
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:324,1
    - Dst: JDEMGetField
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:327,1
    - Dst: JDEMGetField
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:328,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:329,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:335,1
    - Dst: auto::get
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:335,1
    - Dst: JDEMRasterBand::JDEMRasterBand
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:335,1
    - Dst: auto::SetDescription
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:338,1
    - Dst: auto::TryLoadXML
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:339,1
    - Dst: auto::oOvManager::Initialize
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:342,1
    - Dst: auto::get
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:342,1
    - Dst: auto::release
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 345
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 345
    functionName: JDEMDataset::Open
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 0
    functionsReached:
    - auto::SetBand
    - auto::SetDescription
    - auto::release
    - ReportUpdateNotSupportedByDriver
    - auto::get
    - GDALCheckDatasetDimensions
    - auto::TryLoadXML
    - std::make_unique<JDEMDataset>
    - swap
    - JDEMDataset::Identify
    - JDEMRasterBand::JDEMRasterBand
    - memcpy
    - JDEMGetField
    - auto::oOvManager::Initialize
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *JDEMDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:354,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:357,1
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:359,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:360,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:361,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:362,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:363,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:364,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/jdem/jdemdataset.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 370
    functionName: GDALRegister_JDEM
    functionSourceFile: /src/gdal/frmts/jdem/jdemdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    - GDALDriver::GDALDriver
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_JDEM()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: JP2KAKRasterBand::~JP2KAKRasterBand()
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JP2KAKRasterBand::~JP2KAKRasterBand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AreOverviewsEnabled
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:251,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:258,1
    - Dst: m_apoOverviews::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: JP2KAKRasterBand::GetOverviewCount
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - AreOverviewsEnabled
    - static_cast<int>
    - m_apoOverviews::size
    linkageType: ''
    returnType: int
    signature: int JP2KAKRasterBand::GetOverviewCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:268,1
    - Dst: GDALOpenFileGDBRasterBand::GetOverview
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:269,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:272,1
    - Dst: m_apoOverviews::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:272,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - iOverviewIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: JP2KAKRasterBand::GetOverview
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    - m_apoOverviews::size
    - static_cast<int>
    - GetRasterBand
    - GDALOpenFileGDBRasterBand::GetOverview
    linkageType: ''
    returnType: GDALRasterBand
    signature: GDALRasterBand *JP2KAKRasterBand::GetOverview(int iOverviewIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:287,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:304,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:306,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:310,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:312,1
    - Dst: memset
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:317,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:318,1
    - Dst: INIT_RASTERIO_EXTRA_ARG
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:323,1
    - Dst: DirectRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:327,1
    - Dst: GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:338,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:340,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:341,1
    - Dst: std::vector::push_back
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:343,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:346,1
    - Dst: VSIMalloc3
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:347,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:347,1
    - Dst: DirectRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:351,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:353,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:353,1
    - Dst: static_cast<GSpacing>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:355,1
    - Dst: memcpy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:367,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:368,1
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:375,1
    - Dst: cpl::down_cast<JP2KAKRasterBand *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:377,1
    - Dst: JP2KAKRasterBand*::GetLockedBlockRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:383,1
    - Dst: memcpy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:387,1
    - Dst: GDALRasterBlock*::GetDataRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:387,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:388,1
    - Dst: GDALRasterBlock*::DropLock
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:390,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:395,1
    - Dst: VSIFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:399,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 401
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 401
    functionName: JP2KAKRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - GetRasterBand
    - CPLDebug
    - INIT_RASTERIO_EXTRA_ARG
    - std::vector::push_back
    - GetRasterCount
    - GDALRasterBlock*::DropLock
    - JP2KAKRasterBand*::GetLockedBlockRef
    - GDALRasterBlock*::GetDataRef
    - static_cast<int>
    - GetRasterYSize
    - static_cast<GByte *>
    - DirectRasterIO
    - VSIMalloc3
    - static_cast<size_t>
    - cpl::down_cast<JP2KAKRasterBand *>
    - VSIFree
    - GDALRasterBand*::GetRasterDataType
    - memset
    - static_cast<GSpacing>
    - memcpy
    - GetRasterXSize
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JP2KAKRasterBand::IReadBlock(int nBlockXOff, int nBlockYOff,\n
      \                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:419,1
    - Dst: TestUseBlockIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:427,1
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:429,1
    - Dst: DirectRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 12
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nPixelSpace
    - nLineSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 436
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 436
    functionName: JP2KAKRasterBand::IRasterIO
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - TestUseBlockIO
    - OGRNGWDataset::IRasterIO
    - TryOverviewRasterIO
    - DirectRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JP2KAKRasterBand::IRasterIO(GDALRWFlag eRWFlag, int nXOff,
      int nYOff,\n                                   int nXSize, int nYSize, void
      *pData,\n                                   int nBufXSize, int nBufYSize,\n
      \                                  GDALDataType eBufType, GSpacing nPixelSpace,\n
      \                                  GSpacing nLineSpace,\n                                   GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:450,1
    - Dst: min
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pafLUT
    - nPos
    argTypes:
    - float*
    - int
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: GetColorValue
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: short
    signature: short GetColorValue(const float *pafLUT, int nPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jp2_palette::exists
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:459,1
    - Dst: jp2_palette::get_num_luts
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:462,1
    - Dst: jp2_palette::get_num_entries
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:462,1
    - Dst: jp2_palette::get_num_luts
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:465,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:467,1
    - Dst: jp2_palette::get_num_luts
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:470,1
    - Dst: jp2_palette::get_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:484,1
    - Dst: jp2_palette::get_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:485,1
    - Dst: jp2_palette::get_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:486,1
    - Dst: jp2_palette::get_num_luts
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:488,1
    - Dst: jp2_palette::get_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:490,1
    - Dst: GetColorValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:509,1
    - Dst: GetColorValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:510,1
    - Dst: GetColorValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:511,1
    - Dst: GetColorValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:512,1
    - Dst: SetColorEntry
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:514,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - oJP2Palette
    argTypes:
    - jp2_palette
    constantsTouched: []
    func_position:
      end: 520
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 520
    functionName: JP2KAKRasterBand::ApplyPalette
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - jp2_palette::get_lut
    - GetColorValue
    - SetColorEntry
    - CPLDebug
    - jp2_palette::get_num_luts
    - jp2_palette::get_num_entries
    - CPLFree
    - jp2_palette::exists
    linkageType: ''
    returnType: void
    signature: void JP2KAKRasterBand::ApplyPalette(jp2_palette oJP2Palette)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: JP2KAKRasterBand::GetColorInterpretation
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GDALColorInterp
    signature: GDALColorInterp JP2KAKRasterBand::GetColorInterpretation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetColorEntryCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 542
    functionName: JP2KAKRasterBand::GetColorTable
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - GetColorEntryCount
    linkageType: ''
    returnType: GDALColorTable
    signature: GDALColorTable *JP2KAKRasterBand::GetColorTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: JP2KAKDataset::JP2KAKDataset
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JP2KAKDataset::JP2KAKDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - poMainDS
    - nDiscardLevels
    - dimsIn
    argTypes:
    - JP2KAKDataset*
    - int
    - kdu_dims
    constantsTouched: []
    func_position:
      end: 575
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 575
    functionName: JP2KAKDataset::JP2KAKDataset
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JP2KAKDataset::JP2KAKDataset(JP2KAKDataset *poMainDS, int nDiscardLevels,\n
      \                            const kdu_dims &dimsIn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:584,1
    - Dst: destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:590,1
    - Dst: close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:591,1
    - Dst: close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:595,1
    - Dst: close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:603,1
    - Dst: terminate
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:611,1
    - Dst: destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 616
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 616
    functionName: JP2KAKDataset::~JP2KAKDataset()
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - close
    - destroy
    - terminate
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void JP2KAKDataset::~JP2KAKDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:633,1
    - Dst: GDALPamDataset::IBuildOverviews
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - pszResampling
    - nOverviews
    - panOverviewList
    - nListBands
    - panBandList
    - pfnProgress
    - pProgressData
    - papszOptions
    argTypes:
    - char*
    - int
    - int*
    - int
    - int*
    - GDALProgressFunc
    - void*
    - CSLConstList
    constantsTouched: []
    func_position:
      end: 638
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 638
    functionName: JP2KAKDataset::IBuildOverviews
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALPamDataset::IBuildOverviews
    - clear
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JP2KAKDataset::IBuildOverviews(const char *pszResampling, int
      nOverviews,\n                                      const int *panOverviewList,\n
      \                                     int nListBands, const int *panBandList,\n
      \                                     GDALProgressFunc pfnProgress,\n                                      void
      *pProgressData,\n                                      CSLConstList papszOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:655,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:656,1
    - Dst: kdu_customize_warnings
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:658,1
    - Dst: kdu_cpl_error_message::kdu_cpl_error_message
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:658,1
    - Dst: kdu_customize_errors
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:659,1
    - Dst: kdu_cpl_error_message::kdu_cpl_error_message
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 660
    functionName: JP2KAKDataset::KakaduInitialize
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - kdu_customize_warnings
    - CPL_IGNORE_RET_VAL
    - kdu_cpl_error_message::kdu_cpl_error_message
    - kdu_customize_errors
    linkageType: ''
    returnType: void
    signature: void JP2KAKDataset::KakaduInitialize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JP2KAKDatasetIdentify
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:671,1
    - Dst: JP2KAKDataset::KakaduInitialize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:692,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:699,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:700,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:701,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:702,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:706,1
    - Dst: subfile_source::subfile_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:710,1
    - Dst: subfile_source*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:711,1
    - Dst: subfile_source*::seek
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:713,1
    - Dst: subfile_source*::read
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:715,1
    - Dst: subfile_source*::seek
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:716,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:723,1
    - Dst: VSIStat
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:743,1
    - Dst: subfile_source::subfile_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:747,1
    - Dst: subfile_source*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:748,1
    - Dst: subfile_source*::seek
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:749,1
    - Dst: memcmp
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:759,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:781,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:782,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:788,1
    - Dst: CPLSleep
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:790,1
    - Dst: kdu_client::kdu_client
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:791,1
    - Dst: kdu_client*::connect
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:792,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:794,1
    - Dst: kdu_client*::get_databin_length
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:798,1
    - Dst: CPLSleep
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:801,1
    - Dst: jp2_family_src::jp2_family_src
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:803,1
    - Dst: jp2_family_src*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:804,1
    - Dst: jp2_source::jp2_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:807,1
    - Dst: jp2_source*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:808,1
    - Dst: jp2_source*::read_header
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:809,1
    - Dst: kdu_client*::is_idle
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:811,1
    - Dst: CPLSleep
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:812,1
    - Dst: kdu_client*::is_alive
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:814,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:816,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:820,1
    - Dst: jp2_source*::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:824,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:828,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:835,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:835,1
    - Dst: jp2_family_src::jp2_family_src
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:837,1
    - Dst: jp2_family_src*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:839,1
    - Dst: jp2_family_src*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:841,1
    - Dst: jp2_source::jp2_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:842,1
    - Dst: jp2_source*::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:844,1
    - Dst: jp2_source*::read_header
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:844,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:846,1
    - Dst: jp2_source*::access_palette
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:853,1
    - Dst: jp2_source*::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:854,1
    - Dst: jp2_source*::access_colour
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:856,1
    - Dst: jp2_colour::get_space
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:857,1
    - Dst: jp2_colour::get_space
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:858,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:860,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:862,1
    - Dst: jp2_colour::get_space
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:862,1
    - Dst: kdu_simple_file_source::kdu_simple_file_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:867,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:877,1
    - Dst: JP2KAKDataset::JP2KAKDataset
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:889,1
    - Dst: JP2KAKDataset*::oCodeStream::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:894,1
    - Dst: JP2KAKDataset*::oCodeStream::set_persistent
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:895,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:899,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:899,1
    - Dst: JP2KAKDataset*::oCodeStream::set_fussy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:902,1
    - Dst: JP2KAKDataset*::oCodeStream::set_resilient
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:904,1
    - Dst: JP2KAKDataset*::oCodeStream::get_dims
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:909,1
    - Dst: JP2KAKDataset*::oCodeStream::get_num_components
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:916,1
    - Dst: JP2KAKDataset*::oCodeStream::get_dims
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:924,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:928,1
    - Dst: kdu_get_num_processors
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:941,1
    - Dst: kdu_thread_env::kdu_thread_env
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:947,1
    - Dst: JP2KAKDataset*::poThreadEnv::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:948,1
    - Dst: JP2KAKDataset*::poThreadEnv::add_thread
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:952,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:954,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:959,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:963,1
    - Dst: JP2KAKDataset*::oCodeStream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:969,1
    - Dst: siz_params*::access_cluster
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:970,1
    - Dst: kdu_params*::get
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:973,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:976,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:979,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:985,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:988,1
    - Dst: kdu_params*::get
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:994,1
    - Dst: JP2KAKDataset*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1016,1
    - Dst: kdu_params*::get
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1020,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1022,1
    - Dst: JP2KAKDataset*::oCodeStream::get_valid_tiles
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1026,1
    - Dst: JP2KAKDataset*::oCodeStream::open_tile
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1028,1
    - Dst: kdu_tile::access_component
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1029,1
    - Dst: kdu_tile::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1030,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1032,1
    - Dst: JP2KAKDataset*::oCodeStream::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1036,1
    - Dst: JP2KAKDataset*::oCodeStream::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1037,1
    - Dst: JP2KAKDataset*::oCodeStream::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1038,1
    - Dst: JP2KAKDataset*::oCodeStream::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1039,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1040,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1043,1
    - Dst: JP2KAKRasterBand::JP2KAKRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1050,1
    - Dst: JP2KAKRasterBand*::GDALPamRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1055,1
    - Dst: jp2_palette::exists
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1057,1
    - Dst: JP2KAKRasterBand*::ApplyPalette
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1058,1
    - Dst: JP2KAKDataset*::SetBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1060,1
    - Dst: JP2KAKDataset*::oCodeStream::apply_input_restrictions
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1079,1
    - Dst: JP2KAKDataset*::oCodeStream::get_dims
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1082,1
    - Dst: std::make_unique<JP2KAKDataset>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1088,1
    - Dst: auto::get
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1094,1
    - Dst: JP2KAKRasterBand::JP2KAKRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1092,1
    - Dst: jp2_palette::exists
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1096,1
    - Dst: JP2KAKRasterBand*::ApplyPalette
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1097,1
    - Dst: auto::SetBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1099,1
    - Dst: JP2KAKDataset*::m_apoOverviews::emplace_back
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1101,1
    - Dst: std::move
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1101,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1105,1
    - Dst: JP2KAKDataset*::LoadJP2Metadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1116,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1123,1
    - Dst: JP2KAKDataset*::SetDescription
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1135,1
    - Dst: JP2KAKDataset*::TryLoadXML
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1137,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1137,1
    - Dst: JP2KAKDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1142,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1143,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1149,1
    - Dst: JP2KAKDataset*::LoadVectorLayers
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1158,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1158,1
    - Dst: JP2KAKDataset*::GetLayerCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1164,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1175,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 245
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 1181
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 1181
    functionName: JP2KAKDataset::Open
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - jp2_source*::read_header
    - auto::SetBand
    - JP2KAKDataset*::oCodeStream::open_tile
    - kdu_client::kdu_client
    - jp2_family_src::jp2_family_src
    - JP2KAKDataset*::SetMetadataItem
    - JP2KAKDataset*::LoadJP2Metadata
    - JP2KAKDataset*::oCodeStream::set_resilient
    - subfile_source*::open
    - memcmp
    - CPLDebug
    - kdu_client*::connect
    - JP2KAKDataset::KakaduInitialize
    - kdu_client*::is_idle
    - kdu_tile::close
    - JP2KAKDataset*::oCodeStream::get_valid_tiles
    - JP2KAKDataset*::oCodeStream::get_bit_depth
    - JP2KAKDataset*::oCodeStream::set_fussy
    - JP2KAKDataset::JP2KAKDataset
    - CPLError
    - CPLGetConfigOption
    - subfile_source*::read
    - VSIStat
    - JP2KAKDataset*::poThreadEnv::add_thread
    - JP2KAKRasterBand*::ApplyPalette
    - JP2KAKDataset*::GetLayerCount
    - kdu_client*::is_alive
    - kdu_simple_file_source::kdu_simple_file_source
    - JP2KAKDataset*::oCodeStream::get_dims
    - JP2KAKDataset*::oCodeStream::access_siz
    - JP2KAKDataset*::m_apoOverviews::emplace_back
    - CPLString::c_str
    - std::move
    - JP2KAKDataset*::TryLoadXML
    - jp2_source*::open
    - jp2_source*::access_palette
    - JP2KAKDataset*::SetDescription
    - std::vector::data
    - JP2KAKDatasetIdentify
    - JP2KAKDataset*::oCodeStream::create
    - jp2_colour::get_space
    - STARTS_WITH_CI
    - static_cast<int>
    - CPLTestBool
    - JP2KAKDataset*::oCodeStream::get_num_components
    - kdu_get_num_processors
    - CPLFetchBool
    - JP2KAKDataset*::oCodeStream::apply_input_restrictions
    - auto::get
    - JP2KAKDataset*::oOvManager::Initialize
    - jp2_source::jp2_source
    - GDALOpenInfo*::GetSiblingFiles
    - kdu_thread_env::kdu_thread_env
    - subfile_source::subfile_source
    - CPLFree
    - kdu_client*::get_databin_length
    - static_cast<double>
    - JP2KAKDataset*::poThreadEnv::create
    - CPLSleep
    - jp2_family_src*::open
    - JP2KAKDataset*::oCodeStream::set_persistent
    - kdu_tile::access_component
    - std::make_unique<JP2KAKDataset>
    - kdu_params*::get
    - JP2KAKDataset*::LoadVectorLayers
    - JP2KAKRasterBand::JP2KAKRasterBand
    - jp2_source*::access_colour
    - EQUAL
    - JP2KAKDataset*::SetBand
    - siz_params*::access_cluster
    - subfile_source*::seek
    - jp2_source*::access_channels
    - JP2KAKRasterBand*::GDALPamRasterBand::GetOverviewCount
    - jp2_palette::exists
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *JP2KAKDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1194
    functionName: vector_safe_bool::vector_safe_bool
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vector_safe_bool()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1199
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1199
    functionName: vector_safe_bool::vector_safe_bool
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vector_safe_bool(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    functionName: '*operator&() noexcept'
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool *operator&() noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1209
    functionName: '*operator&() const noexcept'
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool *operator&() const noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1214
    functionName: operator const bool &() const noexcept
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator const bool &() const noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1219
    functionName: operator bool &() noexcept
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool &() noexcept
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RasterIOResampled
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1237,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1243,1
    - Dst: subfile_source::subfile_source
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1252,1
    - Dst: subfile_source::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1261,1
    - Dst: c_str
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1261,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1265,1
    - Dst: c_str
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1266,1
    - Dst: jp2_family_src::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1272,1
    - Dst: jp2_source::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1273,1
    - Dst: jp2_source::read_header
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1274,1
    - Dst: kdu_codestream::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1276,1
    - Dst: kdu_codestream::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1280,1
    - Dst: kdu_codestream::set_fussy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1284,1
    - Dst: kdu_codestream::set_resilient
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1286,1
    - Dst: kdu_codestream*::apply_input_restrictions
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1311,1
    - Dst: kdu_codestream*::get_dims
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1314,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1326,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1331,1
    - Dst: kdu_codestream*::map_region
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1342,1
    - Dst: kdu_codestream*::apply_input_restrictions
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1343,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1344,1
    - Dst: kdu_stripe_decompressor::start
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1354,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1356,1
    - Dst: kdu_codestream*::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1365,1
    - Dst: GDALDataTypeIsSigned
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1366,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1368,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1369,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1370,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1374,1
    - Dst: static_cast<kdu_byte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1374,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1379,1
    - Dst: static_cast<kdu_int16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1379,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1384,1
    - Dst: static_cast<kdu_int32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1384,1
    - Dst: kdu_stripe_decompressor::finish
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1388,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1395,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1395,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1402,1
    - Dst: kdu_stripe_decompressor::start
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1410,1
    - Dst: kdu_codestream*::get_bit_depth
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1415,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1424,1
    - Dst: reinterpret_cast<kdu_byte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1425,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1429,1
    - Dst: reinterpret_cast<kdu_int16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1430,1
    - Dst: kdu_stripe_decompressor::pull_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1434,1
    - Dst: reinterpret_cast<kdu_int32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1435,1
    - Dst: kdu_stripe_decompressor::finish
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1438,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1463,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1467,1
    - Dst: static_cast<GUInt16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1472,1
    - Dst: reinterpret_cast<GUInt16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1475,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1477,1
    - Dst: static_cast<GUInt32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1482,1
    - Dst: reinterpret_cast<GUInt32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1485,1
    - Dst: static_cast<GPtrDiff_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1487,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1494,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1510,1
    - Dst: kdu_codestream::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1521,1
    - Dst: jp2_source::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1522,1
    - Dst: jp2_family_src::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1523,1
    - Dst: subfile_source::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1524,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 115
    argCount: 14
    argNames:
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - int*
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1528
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1528
    functionName: JP2KAKDataset::DirectRasterIO
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - kdu_stripe_decompressor::pull_stripe
    - CPLDebug
    - reinterpret_cast<kdu_byte *>
    - kdu_codestream*::get_bit_depth
    - jp2_source::read_header
    - kdu_stripe_decompressor::start
    - CPLError
    - static_cast<kdu_byte *>
    - kdu_codestream*::apply_input_restrictions
    - static_cast<GUInt32 *>
    - kdu_codestream::set_fussy
    - static_cast<GPtrDiff_t>
    - subfile_source::close
    - reinterpret_cast<kdu_int32 *>
    - kdu_codestream::destroy
    - reinterpret_cast<kdu_int16 *>
    - std::vector::data
    - jp2_family_src::open
    - subfile_source::open
    - c_str
    - static_cast<int>
    - jp2_family_src::close
    - kdu_codestream::create
    - static_cast<GUInt16 *>
    - CPLAssert
    - kdu_codestream*::map_region
    - kdu_codestream*::get_dims
    - static_cast<GByte *>
    - subfile_source::subfile_source
    - kdu_stripe_decompressor::finish
    - reinterpret_cast<GUInt16 *>
    - CPLFree
    - RasterIOResampled
    - VSI_MALLOC3_VERBOSE
    - jp2_source::open
    - static_cast<kdu_int32 *>
    - GDALDataTypeIsSigned
    - reinterpret_cast<GUInt32 *>
    - static_cast<kdu_int16 *>
    - jp2_source::close
    - kdu_codestream::set_resilient
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JP2KAKDataset::DirectRasterIO(\n    GDALRWFlag /* eRWFlag */,
      int nXOff, int nYOff, int nXSize, int nYSize,\n    void *pData, int nBufXSize,
      int nBufYSize, GDALDataType eBufType,\n    int nBandCount, const int *panBandMap,
      GSpacing nPixelSpace,\n    GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg
      *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1543,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1561,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1564,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1570,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 7
    argNames:
    - nXSize
    - nYSize
    - nBufXSize
    - nBufYSize
    - eDataType
    - nBandCount
    - panBandList
    argTypes:
    - int
    - int
    - int
    - int
    - GDALDataType
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1573
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1573
    functionName: JP2KAKDataset::TestUseBlockIO
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - GetRasterBand
    - CPLTestBool
    linkageType: ''
    returnType: bool
    signature: "bool JP2KAKDataset::TestUseBlockIO(int nXSize, int nYSize, int nBufXSize,\n
      \                                  int nBufYSize, GDALDataType eDataType,\n
      \                                  int nBandCount, const int *panBandList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TryOverviewRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1592,1
    - Dst: JP2KAKDataset::TestUseBlockIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1601,1
    - Dst: OGRNGWDataset::IRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1603,1
    - Dst: JP2KAKDataset::DirectRasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 15
    argNames:
    - eRWFlag
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - pData
    - nBufXSize
    - nBufYSize
    - eBufType
    - nBandCount
    - panBandMap
    - nPixelSpace
    - nLineSpace
    - nBandSpace
    - psExtraArg
    argTypes:
    - GDALRWFlag
    - int
    - int
    - int
    - int
    - void*
    - int
    - int
    - GDALDataType
    - int
    - BANDMAP_TYPE
    - GSpacing
    - GSpacing
    - GSpacing
    - GDALRasterIOExtraArg*
    constantsTouched: []
    func_position:
      end: 1612
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1612
    functionName: JP2KAKDataset::IRasterIO
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - JP2KAKDataset::TestUseBlockIO
    - OGRNGWDataset::IRasterIO
    - TryOverviewRasterIO
    - JP2KAKDataset::DirectRasterIO
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr JP2KAKDataset::IRasterIO(GDALRWFlag eRWFlag, int nXOff, int
      nYOff,\n                                int nXSize, int nYSize, void *pData,\n
      \                               int nBufXSize, int nBufYSize,\n                                GDALDataType
      eBufType, int nBandCount,\n                                BANDMAP_TYPE panBandMap,
      GSpacing nPixelSpace,\n                                GSpacing nLineSpace,
      GSpacing nBandSpace,\n                                GDALRasterIOExtraArg *psExtraArg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1629,1
    - Dst: GDALJP2Box*::GetType
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1629,1
    - Dst: CPL_MSBPTR32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1630,1
    - Dst: jp2_output_box::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1635,1
    - Dst: jp2_output_box::set_target_size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1636,1
    - Dst: jp2_output_box::write
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1637,1
    - Dst: const_cast<kdu_byte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1637,1
    - Dst: GDALJP2Box*::GetWritableData
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1637,1
    - Dst: jp2_output_box::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - jp2_family
    - poBox
    argTypes:
    - jp2_family_tgt*
    - GDALJP2Box*
    constantsTouched: []
    func_position:
      end: 1641
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1641
    functionName: JP2KAKWriteBox
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - const_cast<kdu_byte *>
    - jp2_output_box::close
    - GDALJP2Box*::GetWritableData
    - CPL_MSBPTR32
    - jp2_output_box::open
    - GDALJP2Box*::GetType
    - jp2_output_box::set_target_size
    - memcpy
    - jp2_output_box::write
    linkageType: ''
    returnType: void
    signature: void JP2KAKWriteBox(jp2_family_tgt *jp2_family, GDALJP2Box *poBox)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kdu_tile::set_components_of_interest
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1657,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1659,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1659,1
    - Dst: kdu_thread_env*::add_queue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1667,1
    - Dst: kdu_multi_analysis::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1669,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1677,1
    - Dst: kdu_multi_analysis::exchange_line
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1697,1
    - Dst: RasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1705,1
    - Dst: static_cast<const kdu_byte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1718,1
    - Dst: get_buf16
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1720,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1726,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1734,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1738,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1741,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1750,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1758,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1762,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1767,1
    - Dst: static_cast<const GInt16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1773,1
    - Dst: get_buf16
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1774,1
    - Dst: "sp < -(1 << (nBits - 1)) ||\n                            *sp >"
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1778,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1781,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1794,1
    - Dst: "sp < -(1 << (nBits - 1)) ||\n                            *sp >"
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1799,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1802,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1816,1
    - Dst: static_cast<const GUInt16 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1822,1
    - Dst: get_buf16
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1824,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1831,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1840,1
    - Dst: static_cast<kdu_int16>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1844,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1847,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1854,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1868,1
    - Dst: static_cast<const GInt32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1874,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1875,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1889,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1903,1
    - Dst: static_cast<const GUInt32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1909,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1910,1
    - Dst: static_cast<kdu_int32>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1919,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1924,1
    - Dst: static_cast<kdu_int32>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1932,1
    - Dst: static_cast<kdu_int32>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1935,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1940,1
    - Dst: get_buf32
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1947,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1954,1
    - Dst: kdu_multi_analysis::exchange_line
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1961,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1965,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1966,1
    - Dst: kdu_codestream::ready_for_flush
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1977,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1979,1
    - Dst: kdu_codestream::flush
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1984,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1989,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:1997,1
    - Dst: kdu_thread_env*::join
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2008,1
    - Dst: kdu_multi_analysis::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2010,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2012,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 182
    argCount: 17
    argNames:
    - poSrcDS
    - oTile
    - poThreadEnv
    - poROIImage
    - nXOff
    - nYOff
    - nXSize
    - nYSize
    - nBits
    - eType
    - oCodeStream
    - bFlushEnabled
    - layer_bytes
    - layer_count
    - pfnProgress
    - pProgressData
    - bComseg
    argTypes:
    - GDALDataset*
    - kdu_tile
    - kdu_thread_env*
    - kdu_roi_image*
    - int
    - int
    - int
    - int
    - int
    - GDALDataType
    - kdu_codestream
    - bool
    - kdu_long*
    - int
    - GDALProgressFunc
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 2015
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 2015
    functionName: JP2KAKCreateCopy_WriteTile
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - kdu_codestream::ready_for_flush
    - static_cast<const GUInt16 *>
    - static_cast<const kdu_byte *>
    - CPLDebug
    - RasterIO
    - CPLError
    - CPLGetConfigOption
    - static_cast<const GInt16 *>
    - "sp < -(1 << (nBits - 1)) ||\n                            *sp >"
    - get_buf16
    - pfnProgress
    - static_cast<kdu_int16>
    - kdu_codestream::flush
    - kdu_thread_env*::join
    - kdu_multi_analysis::destroy
    - kdu_multi_analysis::create
    - static_cast<kdu_int32>
    - CPLTestBool
    - GDALDataset*::GetRasterBand
    - static_cast<const GUInt32 *>
    - CPLAssert
    - CPLFree
    - static_cast<double>
    - get_buf32
    - kdu_tile::set_components_of_interest
    - kdu_multi_analysis::exchange_line
    - static_cast<const GInt32 *>
    - kdu_thread_env*::add_queue
    linkageType: ''
    returnType: bool
    signature: "bool JP2KAKCreateCopy_WriteTile(\n    GDALDataset *poSrcDS, kdu_tile
      &oTile, kdu_thread_env *poThreadEnv,\n    kdu_roi_image *poROIImage, int nXOff,
      int nYOff, int nXSize, int nYSize,\n    int nBits, GDALDataType eType, kdu_codestream
      &oCodeStream,\n    bool bFlushEnabled, kdu_long *layer_bytes, int layer_count,\n
      \   GDALProgressFunc pfnProgress, void *pProgressData, bool bComseg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2028,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2030,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2042,1
    - Dst: CPL_IGNORE_RET_VAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2043,1
    - Dst: kdu_customize_warnings
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2045,1
    - Dst: kdu_cpl_error_message::kdu_cpl_error_message
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2045,1
    - Dst: kdu_customize_errors
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2046,1
    - Dst: kdu_cpl_error_message::kdu_cpl_error_message
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2046,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2051,1
    - Dst: GDALRasterBand*::GetRasterDataType
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2053,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2059,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2061,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2065,1
    - Dst: GDALGetDataTypeName
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2068,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2080,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2081,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2081,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2082,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2083,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2083,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2097,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2099,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2124,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2125,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2130,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2163,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2175,1
    - Dst: strcmp
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2181,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2190,1
    - Dst: CPLAtof
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2193,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2196,1
    - Dst: static_cast<kdu_long>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2202,1
    - Dst: floor
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2203,1
    - Dst: std::vector::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2230,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2232,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2233,1
    - Dst: std::vector::resize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2238,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2245,1
    - Dst: static_cast<kdu_long>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2252,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2254,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2255,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2280,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2281,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2281,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2283,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2284,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2284,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2287,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2295,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2306,1
    - Dst: GDALRasterBand*::GetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2317,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2320,1
    - Dst: GDALGetDataTypeSizeBytes
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2322,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2327,1
    - Dst: GDALGetDataTypeSize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2334,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2345,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2345,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2346,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2347,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2348,1
    - Dst: GDALDataTypeIsSigned
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2349,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2350,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2352,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2356,1
    - Dst: siz_params::set
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2357,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2359,1
    - Dst: kdu_params*::finalize
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2363,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2366,1
    - Dst: vsil_target::vsil_target
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2393,1
    - Dst: vsil_target::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2397,1
    - Dst: jp2_family_tgt::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2402,1
    - Dst: jp2_target::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2404,1
    - Dst: jpx_family_tgt::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2410,1
    - Dst: jpx_target::open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2412,1
    - Dst: jpx_target::add_codestream
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2413,1
    - Dst: kdu_codestream::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2421,1
    - Dst: CSLTokenizeStringComplex
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2435,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2437,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2439,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2445,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2446,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2447,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2448,1
    - Dst: kdu_roi_rect::kdu_roi_rect
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2450,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2456,1
    - Dst: CPLString
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2457,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2459,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2466,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2468,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2516,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2519,1
    - Dst: jp2_target::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2525,1
    - Dst: jp2_family_tgt::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2526,1
    - Dst: kdu_compressed_target*::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2530,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2535,1
    - Dst: CPLString::c_str
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2535,1
    - Dst: kdu_codestream::access_siz
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2539,1
    - Dst: jp2_target::access_dimensions
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2546,1
    - Dst: jp2_dimensions::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2547,1
    - Dst: jp2_target::access_colour
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2550,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2552,1
    - Dst: jp2_colour::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2554,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2556,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2557,1
    - Dst: jp2_colour::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2560,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2561,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2562,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2563,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2564,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2565,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2566,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2567,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2569,1
    - Dst: GDALDataset*::GetRasterBand
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2570,1
    - Dst: jp2_colour::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2573,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2574,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2575,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2576,1
    - Dst: jp2_colour::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2580,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2584,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2585,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2586,1
    - Dst: jp2_target::access_resolution
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2588,1
    - Dst: atoi
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2594,1
    - Dst: GDALDataset*::GetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2594,1
    - Dst: fabs
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2609,1
    - Dst: jp2_resolution::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2610,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2610,1
    - Dst: jp2_resolution::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2612,1
    - Dst: jp2_resolution::set_resolution
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2613,1
    - Dst: static_cast<float>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2613,1
    - Dst: GDALRasterBand*::GetColorTable
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2621,1
    - Dst: static_cast<kdu_int32 *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2624,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2624,1
    - Dst: jp2_target::access_palette
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2626,1
    - Dst: jp2_palette::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2627,1
    - Dst: GDALColorTable*::GetColorEntryAsRGB
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2633,1
    - Dst: jp2_palette::set_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2639,1
    - Dst: jp2_palette::set_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2640,1
    - Dst: jp2_palette::set_lut
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2641,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2643,1
    - Dst: jp2_target::access_channels
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2645,1
    - Dst: jp2_channels::init
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2647,1
    - Dst: jp2_channels::set_colour_mapping
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2648,1
    - Dst: jp2_channels::set_colour_mapping
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2649,1
    - Dst: jp2_channels::set_colour_mapping
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2650,1
    - Dst: jp2_target::write_header
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2657,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2661,1
    - Dst: kdu_codestream::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2662,1
    - Dst: GDALDataset*::GetGeoTransform
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2672,1
    - Dst: std::abs
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2675,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2676,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2676,1
    - Dst: GDALJP2Metadata::GDALJP2Metadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2678,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2680,1
    - Dst: GDALJP2Metadata::SetSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2682,1
    - Dst: GDALDataset*::GetGCPSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2682,1
    - Dst: GDALJP2Metadata::SetGCPs
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2683,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2683,1
    - Dst: GDALDataset*::GetGCPs
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2683,1
    - Dst: GDALJP2Metadata::SetSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2687,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2687,1
    - Dst: GDALJP2Metadata::SetGeoTransform
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2688,1
    - Dst: GDALJP2Metadata::SetRPCMD
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2691,1
    - Dst: GDALDataset*::GetMetadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2691,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2696,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2698,1
    - Dst: GDALJP2Metadata::CreateGMLJP2V2
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2705,1
    - Dst: GDALDataset*::GetGCPCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2711,1
    - Dst: GDALDataset*::GetGCPSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2711,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2712,1
    - Dst: OGRSpatialReference*::IsEmpty
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2713,1
    - Dst: GDALJP2Metadata::IsSRSCompatible
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2714,1
    - Dst: GDALJP2Metadata::CreateGMLJP2
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2716,1
    - Dst: CSLFetchNameValue
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2718,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2720,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2729,1
    - Dst: JP2KAKWriteBox
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2737,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2741,1
    - Dst: kdu_codestream::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2742,1
    - Dst: CPLFetchBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2748,1
    - Dst: GDALJP2Metadata::CreateJP2GeoTIFF
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2750,1
    - Dst: JP2KAKWriteBox
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2753,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2757,1
    - Dst: kdu_codestream::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2758,1
    - Dst: CPLString::Printf
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2770,1
    - Dst: CSLCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2773,1
    - Dst: GDALJP2Box::GDALJP2Box
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2776,1
    - Dst: GDALJP2Box*::SetType
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2778,1
    - Dst: GDALJP2Box*::SetWritableData
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2779,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2779,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2779,1
    - Dst: reinterpret_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2780,1
    - Dst: JP2KAKWriteBox
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2781,1
    - Dst: jp2_target::open_codestream
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2787,1
    - Dst: kdu_get_num_processors
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2793,1
    - Dst: kdu_thread_env::kdu_thread_env
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2800,1
    - Dst: kdu_thread_env*::create
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2801,1
    - Dst: kdu_thread_env*::add_thread
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2805,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2807,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2812,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2816,1
    - Dst: std::strtoull
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2826,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2827,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2828,1
    - Dst: GDALGetCacheMax64
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2828,1
    - Dst: static_cast<unsigned long long>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2830,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2842,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2846,1
    - Dst: static_cast<GUIntBig>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2847,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2854,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2856,1
    - Dst: kdu_stripe_compressor::start
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2859,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2859,1
    - Dst: kdu_stripe_compressor::get_recommended_stripe_heights
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2872,1
    - Dst: max
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2874,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2874,1
    - Dst: min
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2875,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2879,1
    - Dst: static_cast<GByte *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2880,1
    - Dst: VSI_MALLOC3_VERBOSE
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2880,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2890,1
    - Dst: CPL_TO_BOOL
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2893,1
    - Dst: GDALDataTypeIsSigned
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2893,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2907,1
    - Dst: GDALDataset*::RasterIO
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2912,1
    - Dst: GDALDataset*::GetRasterCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2914,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2921,1
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2921,1
    - Dst: kdu_stripe_compressor::push_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2929,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2929,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2930,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2933,1
    - Dst: kdu_stripe_compressor::push_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2935,1
    - Dst: reinterpret_cast<kdu_int16 **>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2936,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2936,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2937,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2939,1
    - Dst: kdu_stripe_compressor::push_stripe
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2942,1
    - Dst: reinterpret_cast<kdu_int32 **>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2943,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2943,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2944,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2946,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2954,1
    - Dst: kdu_codestream::open_tile
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2969,1
    - Dst: kdu_coords
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2970,1
    - Dst: JP2KAKCreateCopy_WriteTile
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2993,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:2996,1
    - Dst: GDALDestroyScaledProgress
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3003,1
    - Dst: kdu_tile::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3008,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3012,1
    - Dst: kdu_thread_env*::cs_terminate
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3026,1
    - Dst: kdu_thread_env*::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3027,1
    - Dst: kdu_codestream::flush
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3034,1
    - Dst: std::vector::data
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3034,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3039,1
    - Dst: kdu_codestream::destroy
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3044,1
    - Dst: jp2_target::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3048,1
    - Dst: jp2_family_tgt::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3049,1
    - Dst: kdu_compressed_target*::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3053,1
    - Dst: vsil_target::close
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3056,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3059,1
    - Dst: pfnProgress
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3063,1
    - Dst: static_cast<GDALPamDataset *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3069,1
    - Dst: JP2KAKDataset::Open
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3069,1
    - Dst: GDALPamDataset*::CloneInfo
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3072,1
    CyclomaticComplexity: 166
    EdgeCount: 166
    ICount: 415
    argCount: 6
    argNames:
    - pszFilename
    - poSrcDS
    - bStrict
    - papszOptions
    - pfnProgress
    - pProgressData
    argTypes:
    - char*
    - GDALDataset*
    - int
    - char**
    - GDALProgressFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3075
      start: 2021
    functionDepth: 2
    functionLinenumber: 2021
    functionLinenumberEnd: 3075
    functionName: JP2KAKCreateCopy
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 0
    functionsReached:
    - GDALJP2Box*::SetWritableData
    - jp2_target::access_palette
    - reinterpret_cast<GByte *>
    - std::vector::size
    - JP2KAKDataset::Open
    - CPLDebug
    - kdu_codestream::access_siz
    - vsil_target::close
    - GDALGetDataTypeName
    - vsil_target::open
    - kdu_thread_env*::destroy
    - jp2_target::access_colour
    - GDALDataset*::GetSpatialRef
    - JP2KAKWriteBox
    - jpx_target::add_codestream
    - CSLCount
    - siz_params::set
    - CPLMalloc
    - GDALRasterBand*::GetColorTable
    - GDALJP2Metadata::CreateGMLJP2
    - jp2_target::open_codestream
    - GDALJP2Metadata::SetRPCMD
    - static_cast<float>
    - GDALJP2Metadata::IsSRSCompatible
    - CPLFetchBool
    - GDALPamDataset*::CloneInfo
    - VSIUnlink
    - kdu_codestream::create
    - GDALDataset*::GetGCPCount
    - GDALJP2Metadata::SetGeoTransform
    - GDALDataset*::GetMetadata
    - jpx_target::open
    - GDALJP2Box*::SetType
    - jp2_family_tgt::close
    - static_cast<kdu_long>
    - jp2_palette::init
    - fabs
    - GDALJP2Box::GDALJP2Box
    - jp2_channels::set_colour_mapping
    - kdu_tile::close
    - GDALJP2Metadata::SetSpatialRef
    - GDALDataset*::GetRasterCount
    - kdu_codestream::open_tile
    - CSLFetchNameValue
    - GDALJP2Metadata::CreateGMLJP2V2
    - kdu_stripe_compressor::start
    - GDALJP2Metadata::GDALJP2Metadata
    - kdu_codestream::destroy
    - vsil_target::vsil_target
    - std::vector::data
    - CPLAtof
    - jp2_target::access_resolution
    - static_cast<int>
    - kdu_get_num_processors
    - static_cast<unsigned long long>
    - floor
    - CPLString::Printf
    - min
    - reinterpret_cast<kdu_int16 **>
    - GDALGetCacheMax64
    - GDALDataset*::GetGCPSpatialRef
    - GDALDataset*::GetGCPs
    - jp2_dimensions::init
    - jp2_colour::init
    - CPLFree
    - VSI_MALLOC3_VERBOSE
    - GDALDestroyScaledProgress
    - jp2_resolution::init
    - GDALColorTable*::GetColorEntryAsRGB
    - EQUAL
    - kdu_thread_env*::cs_terminate
    - reinterpret_cast<kdu_int32 **>
    - JP2KAKCreateCopy_WriteTile
    - kdu_stripe_compressor::push_stripe
    - atoi
    - jp2_target::access_channels
    - static_cast<GDALPamDataset *>
    - strcmp
    - jp2_target::open
    - CPLString
    - CPLGetConfigOption
    - CPL_TO_BOOL
    - std::abs
    - CPLString::c_str
    - pfnProgress
    - strlen
    - kdu_thread_env*::create
    - kdu_codestream::flush
    - CPLStringList::size
    - GDALDataset*::GetGeoTransform
    - GDALJP2Metadata::CreateJP2GeoTIFF
    - jp2_resolution::set_resolution
    - GDALDataset*::GetRasterBand
    - jp2_target::access_dimensions
    - CPLSPrintf
    - kdu_thread_env::kdu_thread_env
    - GDALJP2Metadata::SetGCPs
    - kdu_compressed_target*::close
    - static_cast<GByte *>
    - std::vector::resize
    - static_cast<double>
    - kdu_thread_env*::add_thread
    - GDALGetDataTypeSize
    - GDALDataTypeIsSigned
    - GDALRasterBand*::GetRasterDataType
    - GDALDataset*::RasterIO
    - static_cast<GUIntBig>
    - kdu_coords
    - kdu_stripe_compressor::get_recommended_stripe_heights
    - CSLTokenizeStringComplex
    - jp2_family_tgt::open
    - kdu_cpl_error_message::kdu_cpl_error_message
    - jp2_palette::set_lut
    - kdu_customize_warnings
    - CPLError
    - kdu_params*::finalize
    - GDALDataset*::GetMetadataItem
    - kdu_roi_rect::kdu_roi_rect
    - GDALGetDataTypeSizeBytes
    - CPLTestBool
    - jpx_family_tgt::open
    - jp2_target::close
    - CPL_IGNORE_RET_VAL
    - OGRSpatialReference*::IsEmpty
    - kdu_customize_errors
    - static_cast<size_t>
    - static_cast<kdu_int32 *>
    - max
    - GDALRasterBand*::GetMetadataItem
    - std::strtoull
    - jp2_channels::init
    - jp2_target::write_header
    linkageType: ''
    returnType: GDALDataset
    signature: "GDALDataset *JP2KAKCreateCopy(const char *pszFilename,\n                                     GDALDataset
      *poSrcDS, int bStrict,\n                                     char **papszOptions,\n
      \                                    GDALProgressFunc pfnProgress,\n                                     void
      *pProgressData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDAL_CHECK_VERSION
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3084,1
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3087,1
    - Dst: GDALDriver::GDALDriver
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3090,1
    - Dst: JP2KAKDriverSetCommonMetadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3091,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp:3095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3096
    functionName: GDALRegister_JP2KAK
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDAL_CHECK_VERSION
    - GDALDriver::GDALDriver
    - JP2KAKDriverSetCommonMetadata
    - GetGDALDriverManager
    linkageType: ''
    returnType: void
    signature: void GDALRegister_JP2KAK()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALOpenFileGDBRasterBand::GetOverviewCount
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: JP2KAKRasterBand::HasExternalOverviews
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.h
    functionUses: 0
    functionsReached:
    - GDALOpenFileGDBRasterBand::GetOverviewCount
    linkageType: ''
    returnType: bool
    signature: bool HasExternalOverviews()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - eErrClass
    argTypes:
    - CPLErr
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: kdu_cpl_error_message::kdu_cpl_error_message
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kdu_cpl_error_message(CPLErr eErrClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:171,1
    - Dst: static_cast<char *>
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:175,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:175,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:176,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:176,1
    - Dst: strcat
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: kdu_cpl_error_message::put_text
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.h
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - strcat
    - CPLRealloc
    - strlen
    - static_cast<char *>
    linkageType: ''
    returnType: void
    signature: void put_text(const char *string) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kdu_cpl_error_message::flush
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:187,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:191,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:192,1
    - Dst: CPLError
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:194,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:195,1
    - Dst: JP2KAKException
      Src: /src/gdal/frmts/jp2kak/jp2kakdataset.h:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: kdu_cpl_error_message::flush
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdataset.h
    functionUses: 1
    functionsReached:
    - CPLError
    - JP2KAKException
    - strlen
    - kdu_cpl_error_message::flush
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void flush(bool end_of_message = false) override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: vsil_target::vsil_target
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vsil_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vsil_target::close
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ~vsil_target()
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 0
    functionsReached:
    - vsil_target::close
    linkageType: ''
    returnType: void
    signature: void ~vsil_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vsil_target::close
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:40,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fname
    - access
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: vsil_target::open
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 1
    functionsReached:
    - VSIFOpenL
    - vsil_target::close
    linkageType: ''
    returnType: void
    signature: void open(const char *fname, const char *access)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - num_bytes
    argTypes:
    - kdu_byte*
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: vsil_target::write
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 0
    functionsReached:
    - VSIFWriteL
    linkageType: ''
    returnType: bool
    signature: bool write(const kdu_byte *buf, int num_bytes) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:66,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - backtrack
    argTypes:
    - kdu_long
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: vsil_target::start_rewrite
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    - VSIFTellL
    linkageType: ''
    returnType: bool
    signature: bool start_rewrite(kdu_long backtrack) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: vsil_target::end_rewrite
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 0
    functionsReached:
    - VSIFSeekL
    linkageType: ''
    returnType: bool
    signature: bool end_rewrite() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/jp2kak/vsil_target.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: vsil_target::close
    functionSourceFile: /src/gdal/frmts/jp2kak/vsil_target.h
    functionUses: 3
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: bool
    signature: bool close() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: subfile_source::subfile_source
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void subfile_source()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subfile_source::close
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: ~subfile_source() override
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached:
    - subfile_source::close
    linkageType: ''
    returnType: void
    signature: void ~subfile_source() override
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: subfile_source::exists
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exists() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: operator!() const
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subfile_source::close
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:61,1
    - Dst: EQUALN
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:65,1
    - Dst: CSLTokenizeString2
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:68,1
    - Dst: CPLStringList::size
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:69,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:71,1
    - Dst: CPLScanUIntBig
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:71,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:72,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:72,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:73,1
    - Dst: CPLScanUIntBig
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:73,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:74,1
    - Dst: strlen
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:74,1
    - Dst: strstr
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:84,1
    - Dst: strstr
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:87,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:108,1
    - Dst: VSICreateCachedFile
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:119,1
    - Dst: subfile_source::seek
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - fname
    - bSequential
    - bCached
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 128
    functionName: subfile_source::open
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 1
    functionsReached:
    - VSICreateCachedFile
    - subfile_source::seek
    - static_cast<int>
    - subfile_source::close
    - CPLScanUIntBig
    - VSIFOpenL
    - strlen
    - strstr
    - CSLTokenizeString2
    - EQUALN
    - CPLStringList::size
    linkageType: ''
    returnType: void
    signature: void open(const char *fname, int bSequential, int bCached)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: subfile_source::get_capabilities
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_capabilities() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:137,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - offset
    argTypes:
    - kdu_long
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: subfile_source::seek
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - assert
    linkageType: ''
    returnType: bool
    signature: bool seek(kdu_long offset) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: subfile_source::get_pos
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached:
    - VSIFTellL
    linkageType: ''
    returnType: kdu_long
    signature: kdu_long get_pos() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:161,1
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:163,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:164,1
    - Dst: static_cast<size_t>
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num_bytes
    argTypes:
    - kdu_byte*
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: subfile_source::read
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - assert
    - static_cast<int>
    - VSIFReadL
    linkageType: ''
    returnType: int
    signature: int read(kdu_byte *buf, int num_bytes) override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/jp2kak/subfile_source.h:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: subfile_source::close
    functionSourceFile: /src/gdal/frmts/jp2kak/subfile_source.h
    functionUses: 3
    functionsReached:
    - VSIFCloseL
    linkageType: ''
    returnType: bool
    signature: bool close() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALDriver*::SetDescription
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:23,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:24,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:25,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:26,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:28,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:29,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:31,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:32,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:33,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:35,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:51,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:95,1
    - Dst: GDALDriver*::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - poDriver
    argTypes:
    - GDALDriver*
    constantsTouched: []
    func_position:
      end: 97
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 97
    functionName: JP2KAKDriverSetCommonMetadata
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALDriver*::SetMetadataItem
    - GDALDriver*::SetDescription
    linkageType: ''
    returnType: void
    signature: void JP2KAKDriverSetCommonMetadata(GDALDriver *poDriver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:107,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:109,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:110,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:111,1
    - Dst: GDALOpenInfo*::IsExtensionEqualToCI
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:112,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:120,1
    - Dst: memcmp
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:131,1
    - Dst: memcmp
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:133,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:137,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:138,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:139,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:139,1
    - Dst: strstr
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:143,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 148
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 148
    functionName: JP2KAKDatasetIdentify
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp
    functionUses: 1
    functionsReached:
    - STARTS_WITH_CI
    - static_cast<int>
    - memcmp
    - EQUAL
    - strstr
    - GDALOpenInfo*::IsExtensionEqualToCI
    linkageType: ''
    returnType: int
    signature: int JP2KAKDatasetIdentify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GDALGetDriverByName
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:157,1
    - Dst: GDALPluginDriverProxy::GDALPluginDriverProxy
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:161,1
    - Dst: auto::SetMetadataItem
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:163,1
    - Dst: JP2KAKDriverSetCommonMetadata
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:166,1
    - Dst: GetGDALDriverManager
      Src: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: DeclareDeferredJP2KAKPlugin
    functionSourceFile: /src/gdal/frmts/jp2kak/jp2kakdrivercore.cpp
    functionUses: 1
    functionsReached:
    - GDALGetDriverByName
    - GDALPluginDriverProxy::GDALPluginDriverProxy
    - JP2KAKDriverSetCommonMetadata
    - GetGDALDriverManager
    - auto::SetMetadataItem
    linkageType: ''
    returnType: void
    signature: void DeclareDeferredJP2KAKPlugin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/gdal/frmts/dted/dted_create.c:36,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_create.c:36,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_create.c:36,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_create.c:38,1
    - Dst: ABS
      Src: /src/gdal/frmts/dted/dted_create.c:53,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_create.c:55,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_create.c:57,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_create.c:59,1
    - Dst: snprintf
      Src: /src/gdal/frmts/dted/dted_create.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - achField
    - nTargetLenSize
    - nOffset
    - dfAngle
    - pszLatLong
    - pszFormat
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - double
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 63
    functionName: DTEDFormatDMS
    functionSourceFile: /src/gdal/frmts/dted/dted_create.c
    functionUses: 0
    functionsReached:
    - ABS
    - floor
    - assert
    - EQUAL
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void DTEDFormatDMS(unsigned char *achField, size_t nTargetLenSize,\n
      \                         size_t nOffset, double dfAngle,\n                          const
      char *pszLatLong, const char *pszFormat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/gdal/frmts/dted/dted_create.c:79,1
    - Dst: CPLvsnprintf
      Src: /src/gdal/frmts/dted/dted_create.c:80,1
    - Dst: va_end
      Src: /src/gdal/frmts/dted/dted_create.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pszTarget
    - nTargetLenSize
    - nOffset
    - pszFormat
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: DTEDFormat
    functionSourceFile: /src/gdal/frmts/dted/dted_create.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - CPLvsnprintf
    linkageType: ''
    returnType: void
    signature: "void DTEDFormat(unsigned char *pszTarget, size_t nTargetLenSize,\n
      \                      size_t nOffset, const char *pszFormat, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/dted/dted_create.c:117,1
    - Dst: VSIFOpenL
      Src: /src/gdal/frmts/dted/dted_create.c:135,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/dted/dted_create.c:139,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_create.c:145,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:147,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:149,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:150,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:152,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:154,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:157,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:158,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:159,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:160,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:161,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_create.c:163,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_create.c:169,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:171,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:172,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:174,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:175,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:176,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:177,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:178,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:179,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:180,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:181,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:182,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:183,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:184,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:185,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:188,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:190,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:194,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:196,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:200,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:202,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:206,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:208,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:212,1
    - Dst: DTEDFormatDMS
      Src: /src/gdal/frmts/dted/dted_create.c:214,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:217,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:218,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:220,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:222,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:225,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:226,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:227,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_create.c:229,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_create.c:235,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:237,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:239,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:240,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:241,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:242,1
    - Dst: DTEDFormat
      Src: /src/gdal/frmts/dted/dted_create.c:244,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_create.c:246,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_create.c:252,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_create.c:253,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_create.c:266,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/dted/dted_create.c:270,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 99
    argCount: 4
    argNames:
    - pszFilename
    - nLevel
    - nLLOriginLat
    - nLLOriginLong
    argTypes:
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 274
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 274
    functionName: DTEDCreate
    functionSourceFile: /src/gdal/frmts/dted/dted_create.c
    functionUses: 0
    functionsReached:
    - DTEDFormat
    - VSIFCloseL
    - CPLSPrintf
    - VSIFOpenL
    - VSIFWriteL
    - DTEDFormatDMS
    - memset
    linkageType: ''
    returnType: char
    signature: "char *DTEDCreate(const char *pszFilename, int nLevel, int nLLOriginLat,\n
      \                      int nLLOriginLong)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStat
      Src: /src/gdal/frmts/dted/dted_ptstream.c:56,1
    - Dst: VSIMkdir
      Src: /src/gdal/frmts/dted/dted_ptstream.c:58,1
    - Dst: CPLError
      Src: /src/gdal/frmts/dted/dted_ptstream.c:61,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:72,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dted_ptstream.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pszPath
    - nLevel
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 90
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 90
    functionName: DTEDCreatePtStream
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - CPLStrdup
    - VSIMkdir
    - CPLStat
    - CPLError
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void *DTEDCreatePtStream(const char *pszPath, int nLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/gdal/frmts/dted/dted_ptstream.c:119,1
    - Dst: ABS
      Src: /src/gdal/frmts/dted/dted_ptstream.c:120,1
    - Dst: ABS
      Src: /src/gdal/frmts/dted/dted_ptstream.c:120,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dted_ptstream.c:123,1
    - Dst: CPLFormFilename
      Src: /src/gdal/frmts/dted/dted_ptstream.c:123,1
    - Dst: DTEDCreate
      Src: /src/gdal/frmts/dted/dted_ptstream.c:126,1
    - Dst: CPLError
      Src: /src/gdal/frmts/dted/dted_ptstream.c:130,1
    - Dst: DTEDOpen
      Src: /src/gdal/frmts/dted/dted_ptstream.c:137,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:141,1
    - Dst: CPLRealloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:147,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - psStream
    - nCrLong
    - nCrLat
    argTypes:
    - DTEDPtStream*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 160
    functionName: DTEDPtStreamNewTile
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - ABS
    - CPLStrdup
    - DTEDOpen
    - DTEDCreate
    - CPLRealloc
    - snprintf
    - CPLFormFilename
    - CPLError
    - CPLCalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int DTEDPtStreamNewTile(DTEDPtStream *psStream, int nCrLong, int nCrLat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/frmts/dted/dted_ptstream.c:178,1
    - Dst: MIN
      Src: /src/gdal/frmts/dted/dted_ptstream.c:178,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:183,1
    - Dst: MAX
      Src: /src/gdal/frmts/dted/dted_ptstream.c:193,1
    - Dst: MIN
      Src: /src/gdal/frmts/dted/dted_ptstream.c:193,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - DTEDPtStream *psStream
    - psCF
    - dfLong
    - dfLat
    - dfElev
    argTypes:
    - CPL_UNUSED
    - DTEDCachedFile*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 198
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 198
    functionName: DTEDWritePtLL
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - floor
    - CPLMalloc
    - MIN
    - MAX
    linkageType: ''
    returnType: int
    signature: "int DTEDWritePtLL(CPL_UNUSED DTEDPtStream *psStream,\n                         DTEDCachedFile
      *psCF, double dfLong, double dfLat,\n                         double dfElev)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:220,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:221,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:222,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:223,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:276,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:277,1
    - Dst: DTEDPtStreamNewTile
      Src: /src/gdal/frmts/dted/dted_ptstream.c:279,1
    - Dst: DTEDWritePtLL
      Src: /src/gdal/frmts/dted/dted_ptstream.c:288,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:301,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:302,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:303,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:304,1
    - Dst: DTEDPtStreamNewTile
      Src: /src/gdal/frmts/dted/dted_ptstream.c:334,1
    - Dst: DTEDWritePtLL
      Src: /src/gdal/frmts/dted/dted_ptstream.c:343,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 48
    argCount: 4
    argNames:
    - hStream
    - dfLong
    - dfLat
    - dfElev
    argTypes:
    - void*
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 352
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 352
    functionName: DTEDWritePt
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - floor
    - DTEDWritePtLL
    - DTEDPtStreamNewTile
    linkageType: ''
    returnType: int
    signature: int DTEDWritePt(void *hStream, double dfLong, double dfLat, double
      dfElev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTEDWriteProfile
      Src: /src/gdal/frmts/dted/dted_ptstream.c:376,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:378,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:382,1
    - Dst: DTEDSetMetadata
      Src: /src/gdal/frmts/dted/dted_ptstream.c:387,1
    - Dst: DTEDClose
      Src: /src/gdal/frmts/dted/dted_ptstream.c:391,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:399,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:401,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:402,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - hStream
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 404
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 404
    functionName: DTEDClosePtStream
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - DTEDClose
    - CPLFree
    - DTEDWriteProfile
    - DTEDSetMetadata
    linkageType: ''
    returnType: void
    signature: void DTEDClosePtStream(void *hStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/gdal/frmts/dted/dted_ptstream.c:419,1
    - Dst: MIN
      Src: /src/gdal/frmts/dted/dted_ptstream.c:420,1
    - Dst: MAX
      Src: /src/gdal/frmts/dted/dted_ptstream.c:421,1
    - Dst: MIN
      Src: /src/gdal/frmts/dted/dted_ptstream.c:422,1
    - Dst: floor
      Src: /src/gdal/frmts/dted/dted_ptstream.c:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - psInfo
    - papanProfiles
    - papanDstProfiles
    - iX
    - iY
    - nPixelSearchDist
    - pafKernel
    argTypes:
    - DTEDInfo*
    - GInt16**
    - GInt16**
    - int
    - int
    - int
    - float*
    constantsTouched: []
    func_position:
      end: 452
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 452
    functionName: DTEDFillPixel
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - floor
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: "void DTEDFillPixel(DTEDInfo *psInfo, GInt16 **papanProfiles,\n                          GInt16
      **papanDstProfiles, int iX, int iY,\n                          int nPixelSearchDist,
      float *pafKernel)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:474,1
    - Dst: sqrt
      Src: /src/gdal/frmts/dted/dted_ptstream.c:482,1
    - Dst: CPLCalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:498,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_ptstream.c:508,1
    - Dst: DTEDFillPixel
      Src: /src/gdal/frmts/dted/dted_ptstream.c:524,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:540,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:544,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - hStream
    - nPixelSearchDist
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 548
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 548
    functionName: DTEDFillPtStream
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - sqrt
    - DTEDFillPixel
    - CPLMalloc
    - CPLFree
    - CPLCalloc
    linkageType: ''
    returnType: void
    signature: void DTEDFillPtStream(void *hStream, int nPixelSearchDist)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:562,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dted_ptstream.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - hStream
    - eCode
    - pszValue
    argTypes:
    - void*
    - DTEDMetaDataCode
    - char*
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: DTEDPtStreamSetMetadata
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: "void DTEDPtStreamSetMetadata(void *hStream, DTEDMetaDataCode eCode,\n
      \                            const char *pszValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:608,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:610,1
    - Dst: DTEDClose
      Src: /src/gdal/frmts/dted/dted_ptstream.c:612,1
    - Dst: VSIUnlink
      Src: /src/gdal/frmts/dted/dted_ptstream.c:614,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_ptstream.c:615,1
    - Dst: memmove
      Src: /src/gdal/frmts/dted/dted_ptstream.c:617,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - hStream
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 621
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 621
    functionName: DTEDPtStreamTrimEdgeOnlyTiles
    functionSourceFile: /src/gdal/frmts/dted/dted_ptstream.c
    functionUses: 0
    functionsReached:
    - DTEDClose
    - VSIUnlink
    - CPLFree
    - memmove
    linkageType: ''
    returnType: void
    signature: void DTEDPtStreamTrimEdgeOnlyTiles(void *hStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unused
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: CPL_IGNORE_RET_VAL_INT
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_INT(CPL_UNUSED int unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size_t
    argTypes:
    - CPL_UNUSED
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: CPL_IGNORE_RET_VAL_SIZET
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CPL_INLINE
    signature: CPL_INLINE CPL_IGNORE_RET_VAL_SIZET(CPL_UNUSED size_t unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLAssert
      Src: /src/gdal/frmts/dted/dted_api.c:45,1
    - Dst: memcpy
      Src: /src/gdal/frmts/dted/dted_api.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - szResult
    - pachRecord
    - nStart
    - nSize
    argTypes:
    - char[]
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: DTEDGetField
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 0
    functionsReached:
    - CPLAssert
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *DTEDGetField(char szResult[81], const char *pachRecord, int
      nStart,\n                          int nSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: stripLeadingZeros
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *stripLeadingZeros(const char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:350,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/dted/dted_api.c:351,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:354,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/dted/dted_api.c:361,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:361,1
    - Dst: VSIFTellL
      Src: /src/gdal/frmts/dted/dted_api.c:362,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:365,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:369,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/dted/dted_api.c:370,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:373,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_api.c:392,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:404,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:427,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:439,1
    - Dst: VSIFReadL
      Src: /src/gdal/frmts/dted/dted_api.c:441,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:444,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:452,1
    - Dst: CPLDebug
      Src: /src/gdal/frmts/dted/dted_api.c:461,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 1
    argNames:
    - psDInfo
    argTypes:
    - DTEDInfo*
    constantsTouched: []
    func_position:
      end: 471
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 471
    functionName: DTEDDetectVariantWithMissingColumns
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 0
    functionsReached:
    - CPL_IGNORE_RET_VAL_SIZET
    - VSIFSeekL
    - CPLDebug
    - VSIFTellL
    - VSIFReadL
    - CPLMalloc
    linkageType: ''
    returnType: void
    signature: void DTEDDetectVariantWithMissingColumns(DTEDInfo *psDInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLError
      Src: /src/gdal/frmts/dted/dted_api.c:755,1
    - Dst: fprintf
      Src: /src/gdal/frmts/dted/dted_api.c:757,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_api.c:766,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:803,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_api.c:804,1
    - Dst: CPLError
      Src: /src/gdal/frmts/dted/dted_api.c:807,1
    - Dst: fprintf
      Src: /src/gdal/frmts/dted/dted_api.c:809,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:814,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - psDInfo
    - nColumnOffset
    - panData
    argTypes:
    - DTEDInfo*
    - int
    - GInt16*
    constantsTouched: []
    func_position:
      end: 821
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 821
    functionName: DTEDWriteProfile
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 1
    functionsReached:
    - VSIFSeekL
    - fprintf
    - VSIFWriteL
    - CPLError
    - CPLMalloc
    - CPLFree
    linkageType: ''
    returnType: int
    signature: int DTEDWriteProfile(DTEDInfo *psDInfo, int nColumnOffset, GInt16 *panData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 142
    argCount: 4
    argNames:
    - psDInfo
    - eCode
    - ppszLocation
    - pnLength
    argTypes:
    - DTEDInfo*
    - DTEDMetaDataCode
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1017
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 1017
    functionName: DTEDGetMetadataLocation
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DTEDGetMetadataLocation(DTEDInfo *psDInfo, DTEDMetaDataCode eCode,\n
      \                                   char **ppszLocation, int *pnLength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTEDGetMetadataLocation
      Src: /src/gdal/frmts/dted/dted_api.c:1030,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dted_api.c:1032,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dted_api.c:1034,1
    - Dst: strncpy
      Src: /src/gdal/frmts/dted/dted_api.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - psDInfo
    - eCode
    argTypes:
    - DTEDInfo*
    - DTEDMetaDataCode
    constantsTouched: []
    func_position:
      end: 1039
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1039
    functionName: DTEDGetMetadata
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 0
    functionsReached:
    - CPLMalloc
    - DTEDGetMetadataLocation
    - CPLStrdup
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *DTEDGetMetadata(DTEDInfo *psDInfo, DTEDMetaDataCode eCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTEDGetMetadataLocation
      Src: /src/gdal/frmts/dted/dted_api.c:1059,1
    - Dst: MIN
      Src: /src/gdal/frmts/dted/dted_api.c:1066,1
    - Dst: strlen
      Src: /src/gdal/frmts/dted/dted_api.c:1066,1
    - Dst: memcpy
      Src: /src/gdal/frmts/dted/dted_api.c:1067,1
    - Dst: memset
      Src: /src/gdal/frmts/dted/dted_api.c:1069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - psDInfo
    - eCode
    - pszNewValue
    argTypes:
    - DTEDInfo*
    - DTEDMetaDataCode
    - char*
    constantsTouched: []
    func_position:
      end: 1076
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1076
    functionName: DTEDSetMetadata
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 1
    functionsReached:
    - DTEDGetMetadataLocation
    - MIN
    - strlen
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int DTEDSetMetadata(DTEDInfo *psDInfo, DTEDMetaDataCode eCode,\n                    const
      char *pszNewValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/dted/dted_api.c:1092,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:1093,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/dted/dted_api.c:1094,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_api.c:1095,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/dted/dted_api.c:1097,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:1098,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/dted/dted_api.c:1099,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_api.c:1100,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/dted/dted_api.c:1102,1
    - Dst: VSIFSeekL
      Src: /src/gdal/frmts/dted/dted_api.c:1103,1
    - Dst: CPL_IGNORE_RET_VAL_SIZET
      Src: /src/gdal/frmts/dted/dted_api.c:1104,1
    - Dst: VSIFWriteL
      Src: /src/gdal/frmts/dted/dted_api.c:1105,1
    - Dst: CPL_IGNORE_RET_VAL_INT
      Src: /src/gdal/frmts/dted/dted_api.c:1108,1
    - Dst: VSIFCloseL
      Src: /src/gdal/frmts/dted/dted_api.c:1108,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:1110,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:1111,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:1112,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:1114,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dted_api.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - psDInfo
    argTypes:
    - DTEDInfo*
    constantsTouched: []
    func_position:
      end: 1117
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1117
    functionName: DTEDClose
    functionSourceFile: /src/gdal/frmts/dted/dted_api.c
    functionUses: 2
    functionsReached:
    - CPL_IGNORE_RET_VAL_SIZET
    - VSIFCloseL
    - VSIFSeekL
    - VSIFWriteL
    - CPL_IGNORE_RET_VAL_INT
    - CPLFree
    linkageType: ''
    returnType: void
    signature: void DTEDClose(DTEDInfo *psDInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/gdal/frmts/dted/dted_test.c:24,1
    - Dst: exit
      Src: /src/gdal/frmts/dted/dted_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Usage
    functionSourceFile: /src/gdal/frmts/dted/dted_test.c
    functionUses: 3
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_test.c:52,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_test.c:55,1
    - Dst: atoi
      Src: /src/gdal/frmts/dted/dted_test.c:56,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dted_test.c:58,1
    - Dst: atoi
      Src: /src/gdal/frmts/dted/dted_test.c:59,1
    - Dst: Usage
      Src: /src/gdal/frmts/dted/dted_test.c:63,1
    - Dst: Usage
      Src: /src/gdal/frmts/dted/dted_test.c:69,1
    - Dst: GDALAllRegister
      Src: /src/gdal/frmts/dted/dted_test.c:74,1
    - Dst: GDALOpen
      Src: /src/gdal/frmts/dted/dted_test.c:75,1
    - Dst: exit
      Src: /src/gdal/frmts/dted/dted_test.c:77,1
    - Dst: GDALGetRasterBand
      Src: /src/gdal/frmts/dted/dted_test.c:79,1
    - Dst: GDALGetRasterNoDataValue
      Src: /src/gdal/frmts/dted/dted_test.c:81,1
    - Dst: GDALGetRasterXSize
      Src: /src/gdal/frmts/dted/dted_test.c:83,1
    - Dst: GDALGetRasterYSize
      Src: /src/gdal/frmts/dted/dted_test.c:84,1
    - Dst: GDALGetGeoTransform
      Src: /src/gdal/frmts/dted/dted_test.c:86,1
    - Dst: DTEDCreatePtStream
      Src: /src/gdal/frmts/dted/dted_test.c:91,1
    - Dst: exit
      Src: /src/gdal/frmts/dted/dted_test.c:94,1
    - Dst: malloc
      Src: /src/gdal/frmts/dted/dted_test.c:99,1
    - Dst: GDALRasterIO
      Src: /src/gdal/frmts/dted/dted_test.c:103,1
    - Dst: DTEDWritePt
      Src: /src/gdal/frmts/dted/dted_test.c:117,1
    - Dst: free
      Src: /src/gdal/frmts/dted/dted_test.c:126,1
    - Dst: DTEDPtStreamTrimEdgeOnlyTiles
      Src: /src/gdal/frmts/dted/dted_test.c:132,1
    - Dst: DTEDFillPtStream
      Src: /src/gdal/frmts/dted/dted_test.c:135,1
    - Dst: DTEDClosePtStream
      Src: /src/gdal/frmts/dted/dted_test.c:137,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/dted/dted_test.c:138,1
    - Dst: exit
      Src: /src/gdal/frmts/dted/dted_test.c:140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 141
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 141
    functionName: main
    functionSourceFile: /src/gdal/frmts/dted/dted_test.c
    functionUses: 43
    functionsReached:
    - Usage
    - atoi
    - GDALAllRegister
    - GDALClose
    - DTEDFillPtStream
    - GDALGetGeoTransform
    - DTEDCreatePtStream
    - DTEDWritePt
    - GDALGetRasterBand
    - free
    - DTEDPtStreamTrimEdgeOnlyTiles
    - DTEDClosePtStream
    - GDALGetRasterNoDataValue
    - GDALGetRasterXSize
    - exit
    - GDALRasterIO
    - GDALGetRasterYSize
    - EQUAL
    - malloc
    - GDALOpen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: DTEDDataset::GetFileName
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetFileName() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: DTEDRasterBand::GetUnitType
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetUnitType() override
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/gdal/frmts/dted/dteddataset.cpp:89,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/dted/dteddataset.cpp:103,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/dted/dteddataset.cpp:103,1
    - Dst: GetRasterXSize
      Src: /src/gdal/frmts/dted/dteddataset.cpp:104,1
    - Dst: GetRasterYSize
      Src: /src/gdal/frmts/dted/dteddataset.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - poDSIn
    - nBandIn
    argTypes:
    - DTEDDataset*
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: DTEDRasterBand::DTEDRasterBand
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - CPLTestBool
    - GetRasterYSize
    - CPLGetConfigOption
    - GetRasterXSize
    linkageType: ''
    returnType: void
    signature: void DTEDRasterBand::DTEDRasterBand(DTEDDataset *poDSIn, int nBandIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<DTEDDataset *>
      Src: /src/gdal/frmts/dted/dteddataset.cpp:116,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/dted/dteddataset.cpp:121,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dteddataset.cpp:128,1
    - Dst: DTEDReadProfileEx
      Src: /src/gdal/frmts/dted/dteddataset.cpp:134,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:138,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:153,1
    - Dst: DTEDReadProfileEx
      Src: /src/gdal/frmts/dted/dteddataset.cpp:161,1
    - Dst: swap
      Src: /src/gdal/frmts/dted/dteddataset.cpp:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - CPL_UNUSED
    - void*
    constantsTouched: []
    func_position:
      end: 175
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 175
    functionName: DTEDRasterBand::IReadBlock
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - DTEDReadProfileEx
    - CPLAssert
    - swap
    - CPLMalloc
    - CPLFree
    - cpl::down_cast<DTEDDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr DTEDRasterBand::IReadBlock(int nBlockXOff, CPL_UNUSED int nBlockYOff,\n
      \                                 void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpl::down_cast<DTEDDataset *>
      Src: /src/gdal/frmts/dted/dteddataset.cpp:184,1
    - Dst: CPLAssert
      Src: /src/gdal/frmts/dted/dteddataset.cpp:188,1
    - Dst: CPLMalloc
      Src: /src/gdal/frmts/dted/dteddataset.cpp:196,1
    - Dst: DTEDWriteProfile
      Src: /src/gdal/frmts/dted/dteddataset.cpp:203,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:205,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:210,1
    - Dst: DTEDWriteProfile
      Src: /src/gdal/frmts/dted/dteddataset.cpp:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - nBlockXOff
    - nBlockYOff
    - pImage
    argTypes:
    - int
    - CPL_UNUSED
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 219
    functionName: DTEDRasterBand::IWriteBlock
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - DTEDWriteProfile
    - CPLAssert
    - CPLMalloc
    - CPLFree
    - cpl::down_cast<DTEDDataset *>
    linkageType: ''
    returnType: CPLErr
    signature: "CPLErr DTEDRasterBand::IWriteBlock(int nBlockXOff, CPL_UNUSED int
      nBlockYOff,\n                                   void *pImage)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbSuccess
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: DTEDRasterBand::GetNoDataValue
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double DTEDRasterBand::GetNoDataValue(int *pbSuccess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dteddataset.cpp:239,1
    - Dst: CPLTestBool
      Src: /src/gdal/frmts/dted/dteddataset.cpp:241,1
    - Dst: CPLGetConfigOption
      Src: /src/gdal/frmts/dted/dteddataset.cpp:241,1
    - Dst: SetAxisMappingStrategy
      Src: /src/gdal/frmts/dted/dteddataset.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: DTEDDataset::DTEDDataset
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - CPLGetConfigOption
    - SetAxisMappingStrategy
    - CPLTestBool
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void DTEDDataset::DTEDDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushCache
      Src: /src/gdal/frmts/dted/dteddataset.cpp:253,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:254,1
    - Dst: DTEDClose
      Src: /src/gdal/frmts/dted/dteddataset.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: DTEDDataset::~DTEDDataset()
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - DTEDClose
    - CPLFree
    - FlushCache
    linkageType: ''
    returnType: void
    signature: void DTEDDataset::~DTEDDataset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:266,1
    - Dst: CPLStrdup
      Src: /src/gdal/frmts/dted/dteddataset.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pszFilenameIn
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: DTEDDataset::SetFileName
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - CPLFree
    - CPLStrdup
    linkageType: ''
    returnType: void
    signature: void DTEDDataset::SetFileName(const char *pszFilenameIn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/dted/dteddataset.cpp:284,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/dted/dteddataset.cpp:285,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/dted/dteddataset.cpp:286,1
    - Dst: STARTS_WITH_CI
      Src: /src/gdal/frmts/dted/dteddataset.cpp:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 304
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 304
    functionName: DTEDDataset::Identify
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - STARTS_WITH_CI
    linkageType: ''
    returnType: int
    signature: int DTEDDataset::Identify(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTEDDataset::Identify
      Src: /src/gdal/frmts/dted/dteddataset.cpp:313,1
    - Dst: DTEDOpenEx
      Src: /src/gdal/frmts/dted/dteddataset.cpp:322,1
    - Dst: DTEDDataset::DTEDDataset
      Src: /src/gdal/frmts/dted/dteddataset.cpp:331,1
    - Dst: DTEDDataset*::SetFileName
      Src: /src/gdal/frmts/dted/dteddataset.cpp:332,1
    - Dst: GDALCheckDatasetDimensions
      Src: /src/gdal/frmts/dted/dteddataset.cpp:343,1
    - Dst: DTEDDataset*::SetBand
      Src: /src/gdal/frmts/dted/dteddataset.cpp:354,1
    - Dst: DTEDRasterBand::DTEDRasterBand
      Src: /src/gdal/frmts/dted/dteddataset.cpp:354,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:360,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:361,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:363,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:364,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:365,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:367,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:368,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:369,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:371,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:372,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:373,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:375,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:376,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:377,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:379,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:380,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:381,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:383,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:384,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:385,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:387,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:388,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:389,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:391,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:392,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:393,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:395,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:396,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:397,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:399,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:400,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:401,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:403,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:404,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:405,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:407,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:408,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:409,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:411,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:412,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:413,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:415,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:416,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:417,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:419,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:420,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:421,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:423,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:424,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:425,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:427,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:428,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:429,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:431,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:432,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:433,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:435,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:436,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:437,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:439,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:440,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:441,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:443,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:444,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:445,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:447,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:448,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:449,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:451,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:452,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:453,1
    - Dst: DTEDGetMetadata
      Src: /src/gdal/frmts/dted/dteddataset.cpp:455,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:456,1
    - Dst: CPLFree
      Src: /src/gdal/frmts/dted/dteddataset.cpp:457,1
    - Dst: DTEDDataset*::SetMetadataItem
      Src: /src/gdal/frmts/dted/dteddataset.cpp:459,1
    - Dst: DTEDDataset*::SetDescription
      Src: /src/gdal/frmts/dted/dteddataset.cpp:464,1
    - Dst: DTEDDataset*::TryLoadXML
      Src: /src/gdal/frmts/dted/dteddataset.cpp:465,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/dted/dteddataset.cpp:465,1
    - Dst: DTEDDataset*::GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/dted/dteddataset.cpp:468,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/dted/dteddataset.cpp:471,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/dted/dteddataset.cpp:472,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/dted/dteddataset.cpp:472,1
    - Dst: CPLResetExtensionSafe
      Src: /src/gdal/frmts/dted/dteddataset.cpp:473,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/dted/dteddataset.cpp:474,1
    - Dst: CSLFindString
      Src: /src/gdal/frmts/dted/dteddataset.cpp:476,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/dted/dteddataset.cpp:477,1
    - Dst: CPLSPrintf
      Src: /src/gdal/frmts/dted/dteddataset.cpp:478,1
    - Dst: CPLGetFilename
      Src: /src/gdal/frmts/dted/dteddataset.cpp:478,1
    - Dst: GDALFindAssociatedAuxFile
      Src: /src/gdal/frmts/dted/dteddataset.cpp:483,1
    - Dst: GDALDataset*::GetSpatialRef
      Src: /src/gdal/frmts/dted/dteddataset.cpp:487,1
    - Dst: GDALClose
      Src: /src/gdal/frmts/dted/dteddataset.cpp:493,1
    - Dst: DTEDDataset*::oOvManager::Initialize
      Src: /src/gdal/frmts/dted/dteddataset.cpp:501,1
    - Dst: GDALOpenInfo*::GetSiblingFiles
      Src: /src/gdal/frmts/dted/dteddataset.cpp:502,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 109
    argCount: 1
    argNames:
    - poOpenInfo
    argTypes:
    - GDALOpenInfo*
    constantsTouched: []
    func_position:
      end: 504
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 504
    functionName: DTEDDataset::Open
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached:
    - DTEDDataset*::SetDescription
    - CPLGetFilename
    - DTEDDataset*::SetBand
    - GDALClose
    - DTEDDataset*::oOvManager::Initialize
    - DTEDRasterBand::DTEDRasterBand
    - DTEDDataset*::SetMetadataItem
    - GDALDataset*::GetSpatialRef
    - DTEDOpenEx
    - DTEDGetMetadata
    - DTEDDataset::DTEDDataset
    - CPLSPrintf
    - GDALOpenInfo*::GetSiblingFiles
    - DTEDDataset*::SetFileName
    - CPLFree
    - GDALFindAssociatedAuxFile
    - CPLResetExtensionSafe
    - GDALCheckDatasetDimensions
    - DTEDDataset*::TryLoadXML
    - CSLFindString
    - DTEDDataset::Identify
    - DTEDDataset*::GDALPamDataset::GetSpatialRef
    linkageType: ''
    returnType: GDALDataset
    signature: GDALDataset *DTEDDataset::Open(GDALOpenInfo *poOpenInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - padfTransform
    argTypes:
    - double*
    constantsTouched: []
    func_position:
      end: 538
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 538
    functionName: DTEDDataset::GetGeoTransform
    functionSourceFile: /src/gdal/frmts/dted/dteddataset.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CPLErr
    signature: CPLErr DTEDDataset::GetGeoTransform(double *padfTransform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/gdal/frmts/dted/dteddataset.cpp:547,1
    - Dst: GDALPamDataset::GetSpatialRef
      Src: /src/gdal/frmts/dted/dteddataset.cpp:551,1
    - Dst: EQUAL
      Src: /src/gdal/frmts/dted/dteddataset.cpp:561,1
    - Dst: const_cast<DTEDDataset *>
      Src: /src/gdal/frmts/dted/dteddataset.cpp:564,1
    - Dst: EQUAL
      Sr